diff --git a/.eslintignore b/.eslintignore index aa20f8ce..165923d7 100644 --- a/.eslintignore +++ b/.eslintignore @@ -2,3 +2,4 @@ node_modules out dist ext +build diff --git a/.eslintrc b/.eslintrc index 9486bd75..63f63e10 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,7 +1,8 @@ { "extends": "@medic", "env": { - "node": true + "node": true, + "jquery": true }, "parserOptions": { "ecmaVersion": 11 diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 3f8a3264..c5da2324 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -26,4 +26,4 @@ jobs: node-version: ${{ matrix.node-version }} - run: sudo apt install -y xsltproc - run: npm ci --legacy-peer-deps - - run: npm run travis + - run: npm run build-ci diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f4509099..8b498929 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,8 +14,9 @@ The Community Health Toolkit is powered by people like you. Your contributions h - Include tests for any new/updated logic. - Include the issue/PR number in the test title. This provides context for future debugging if the test ever regresses. - Update the project's version number in the [package.json](./package.json) by running `npm version ` + - Update the [release-notes.md](./release-notes.md) with a description of your change. - Before you submit a pull request, please make sure your contribution passes all tests. Test failures need to be addressed before we can merge your contribution. - - You can run `npm run travis` to build the project, lint the source code, and execute the tests. + - You can run `npm run build-ci` to build the project, lint the source code, and execute the tests. - Provide detail about the issue you are solving in the pull request description. Note: If your pull request addresses a specific issue, please reference it using medic/# - Our CI will automatically schedule a build; monitor the build to ensure it passes. - Your PR will be reviewed by one of the repository's maintainers. Most PRs have at least one change requested before they're merged so don't be offended if your change doesn't get accepted on the first try! @@ -26,3 +27,53 @@ All maintainers and contributors are required to act according to our [Code of C #### License The software is provided under AGPL-3.0. Contributions to this project are accepted under the same license. + +## Architecture + +```mermaid +flowchart TB + cht-core-bundle + subgraph browser + form-host + cht-form + form-host --> cht-form + end + + subgraph tests[Config Tests] + harness[Harness] + end + + harness -->|tasks/targets/contact-summary| cht-core-bundle + harness -->|forms| form-host +``` + +The test harness leverages subsets of the actual cht-core code to recreate an approximation of the production environment. + +- `Harness` - The external interface exposed to users via cht-conf-test-harness for writing config tests +- `form-host` - Browser-side shim for integrating with cht-form +- `cht-form` - Renders ODK forms. Built from cht-core/webapp. +- `cht-core-bundle` - A bundle of code from cht-core used for calculating tasks, targets, and contact summaries. Also used to convert forms to xforms. + +## Maintaining CHT Artifacts + +### Adding new cht-core version + +Code for each CHT version is stored in [`cht-bundles`](./cht-bundles). To add a new version: + +1. Create a new folder in `cht-bundles` with the name of the version you want to add (e.g. `cht-core-5-0`). + 1. Inside this folder create `bundle.js` and `xsl-paths.js` files following the pattern of the other versions. + 1. Update the contents of these files to point to the (non-existent) `build` directory of the cht-core version you want to add. This build directory will be created/populated later. +1. Update the [`all-chts-bundle.js`](./cht-bundles/all-chts-bundle.js) file to include the new version. + 1. Note that the key given here will represent the value consumers should set in the `coreVersion` field of their harness configuration. +1. Update the [`build.sh`](./build.sh) script to include the new version in the `cht_versions` map. Include the exact commit hash to use for the version. +1. Run `npm run build` to create the new artifacts. +1. Update the [`harness.defaults.json` config](./test/collateral/harness.defaults.json) so that `coreVersion` points to the new version. + 1. Run `npm run test` to ensure the new artifacts are working as expected. +1. Update the compatibility matrix in the [`README.md`](./README.md) to include the new version. +1. Do not forget to commit the newly generated contents of `./dist`! + +### Updating existing cht-core artifacts + +It is not necessary to rebuild the cht-core artifacts for every change to the cht-conf-test-harness code. Many changes to the harness logic should be passive in regard to the cht-core integration and running `npm run build` should be sufficient to rebuild only the required artifacts. + +By default, the build script will not re-build the cht-core artifacts in the `dist/cht-core-x-x` directories if they already exist. To rebuild a particular version, delete the `dist/cht-core-x-x` directory before running the build script. To force a rebuild of all versions, you can run the `build.sh` script with the `--force` flag. Rebuilding the existing cht-core artifacts should only be necessary if changes to the harness logic require changes to the cht-core integration (e.g. pulling in additional logic from the cht-core code). diff --git a/README.md b/README.md index a0d510dd..9746e95e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,21 @@ # Test Harness for CHT Configuration +## Usage + View the documentation [here](http://docs.communityhealthtoolkit.org/cht-conf-test-harness/). +### Compatibility + +The cht-conf-test-harness is targeted at specific versions of the CHT Core Framework. This allows you to run your tests and validate your config against a specific version of the CHT before deploying it to a live environment. + +The following table shows the compatibility between the test harness and the CHT Core Framework (including the `coreVersion` values you can use in your harness configuration): + +| cht-conf-test-harness | CHT Core Framework | Supported `coreVersion` values | +|-----------------------|--------------------|-----------------------------------------------| +| 2.x | 3.9.x+ | `3.9`, `3.10`, `3.11`, `3.12`, `3.13`, `3.14` | +| 3.x | 4.0.x-4.5.x | `4.0` | +| 4.x | 4.6.x+ | `4.6` | + ## Contributing At Medic we are the technical steward of the [Community Health Toolkit](https://communityhealthtoolkit.org) (CHT). We welcome and appreciate contributions, and support new developers to use the tools whenever possible. If you have an idea or a question we'd love to hear from you! The easiest ways to get in touch are by raising issues in the [Github repo](https://github.com/medic/cht-conf-test-harness/issues) or [joining our Slack channel](https://communityhealthtoolkit.org/slack). For more info check out our [contributor guidelines](CONTRIBUTING.md). diff --git a/all-chts-bundle.js b/all-chts-bundle.js deleted file mode 100644 index 1a6a0ee5..00000000 --- a/all-chts-bundle.js +++ /dev/null @@ -1,15 +0,0 @@ - -module.exports = { - '4.0': { - ddocs: require('./build/cht-core-4-0-ddocs.json'), - RegistrationUtils: require('cht-core-4-0/shared-libs/registration-utils'), - CalendarInterval: require('cht-core-4-0/shared-libs/calendar-interval'), - RulesEngineCore: require('cht-core-4-0/shared-libs/rules-engine'), - RulesEmitter: require('cht-core-4-0/shared-libs/rules-engine/src/rules-emitter'), - nootils: require('cht-core-4-0/shared-libs/rules-engine/node_modules/cht-nootils'), - Lineage: require('cht-core-4-0/shared-libs/lineage'), - ChtScriptApi: require('cht-core-4-0/shared-libs/cht-script-api'), - - convertFormXmlToXFormModel: require('cht-core-4-0/api/src/services/generate-xform.js').generate, - }, -}; diff --git a/build.sh b/build.sh index 51c82edd..bf948e50 100755 --- a/build.sh +++ b/build.sh @@ -1,4 +1,8 @@ #!/usr/bin/env bash +declare -A cht_versions=( + ["cht-core-4-6"]="4.6.0" +) + exit_on_error() { exit_code=$? if [[ $exit_code -ne 0 ]]; then @@ -10,40 +14,47 @@ exit_on_error() { set -e trap exit_on_error EXIT +if [ "$1" == "--force" ]; then + FORCE=1 +fi + npm ci --legacy-peer-deps -rm -Rf dist build -node ./compile-ddocs.js - -mkdir -p ext/xsl -mkdir -p ext/enketo-transformer/xsl -cp ./node_modules/cht-core-4-0/api/src/xsl/openrosa2html5form.xsl ext/xsl -cp ./node_modules/cht-core-4-0/api/src/enketo-transformer/xsl/* ext/enketo-transformer/xsl - -dirs=($(find node_modules/cht-* -maxdepth 0 -type d)) -for dir in "${dirs[@]}"; do - (cd "$dir"/webapp && npm ci --legacy-peer-deps --production) - (cd "$dir"/api && npm ci --legacy-peer-deps --production) - (cd "$dir"/shared-libs/calendar-interval && npm ci --legacy-peer-deps) - (cd "$dir"/shared-libs/rules-engine && npm ci --legacy-peer-deps) - (cd "$dir"/shared-libs/phone-number && npm ci --legacy-peer-deps --production) - - # patch the daterangepicker for responsiveness - # https://github.com/dangrossman/bootstrap-daterangepicker/pull/437 - (cd "$dir" && patch -f webapp/node_modules/bootstrap-daterangepicker/daterangepicker.js < webapp/patches/bootstrap-daterangepicker.patch) +rm -Rf build + +if [[ 1 == "$FORCE" ]]; then + rm -Rf dist +else + for item in `ls dist | grep -v cht-core`; do + rm -rf dist/"$item" + done +fi + +for version in "${!cht_versions[@]}"; do + if [[ ! 1 == "$FORCE" ]] && [ -d dist/"$version" ]; then + printf "\033[0;32m== SKIPPING $version ==\n" + continue + fi - # 210 patch to disable db-object-widget - (cd "$dir" && patch -f webapp/src/js/enketo/widgets.js < ../../patches/210-disable-db-object-widgets.patch) + git clone https://github.com/medic/cht-core.git build/"$version" + (cd build/"$version" && git reset --hard "${cht_versions[$version]}") + (cd build/"$version" && git clean -df) - # patch enketo to always mark the /inputs group as relevant - (cd "$dir" && patch -f webapp/node_modules/enketo-core/src/js/form.js < webapp/patches/enketo-inputs-always-relevant_form.patch) - (cd "$dir" && patch -f webapp/node_modules/enketo-core/src/js/relevant.js < webapp/patches/enketo-inputs-always-relevant_relevant.patch) + (cd build/"$version" && npm ci) + + node ./compile-ddocs.js "$version" + + (cd build/"$version"/api && npm ci --legacy-peer-deps --production) + (cd build/"$version" && patch -f api/src/services/generate-xform.js < ../../patches/generate-xform.patch) + # 210 patch to disable db-object-widget + (cd build/"$version" && patch -f webapp/src/js/enketo/widgets.js < ../../patches/210-disable-db-object-widgets.patch) + (cd build/"$version" && npm run build-cht-form) - # patch enketo to fix repeat name collision bug - this should be removed when upgrading to a new version of enketo-core - # https://github.com/enketo/enketo-core/issues/815 - (cd "$dir" && patch -f webapp/node_modules/enketo-core/src/js/calculate.js < webapp/patches/enketo-repeat-name-collision.patch) + mkdir -p dist/"$version"/xsl + mkdir -p dist/"$version"/enketo-transformer/xsl + cp ./build/"$version"/api/src/xsl/openrosa2html5form.xsl dist/"$version"/xsl + cp ./build/"$version"/api/src/enketo-transformer/xsl/* dist/"$version"/enketo-transformer/xsl - # patch messageformat to add a default plural function for languages not yet supported by make-plural #5705 - (cd "$dir" && patch -f webapp/node_modules/messageformat/lib/plurals.js < webapp/patches/messageformat-default-plurals.patch) + npx webpack --config cht-bundles/webpack.config.cht-core.js --env.cht="$version" done npx webpack diff --git a/cht-bundles/all-chts-bundle.js b/cht-bundles/all-chts-bundle.js new file mode 100644 index 00000000..40dae3a8 --- /dev/null +++ b/cht-bundles/all-chts-bundle.js @@ -0,0 +1,3 @@ +module.exports = { + '4.6': require('../dist/cht-core-4-6/cht-core-bundle.dev'), +}; diff --git a/cht-bundles/cht-core-4-6/bundle.js b/cht-bundles/cht-core-4-6/bundle.js new file mode 100644 index 00000000..74593b26 --- /dev/null +++ b/cht-bundles/cht-core-4-6/bundle.js @@ -0,0 +1,11 @@ +module.exports = { + ddocs: require('../../build/cht-core-4-6-ddocs.json'), + RegistrationUtils: require('../../build/cht-core-4-6/shared-libs/registration-utils'), + CalendarInterval: require('../../build/cht-core-4-6/shared-libs/calendar-interval'), + RulesEngineCore: require('../../build/cht-core-4-6/shared-libs/rules-engine'), + RulesEmitter: require('../../build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter'), + nootils: require('../../build/cht-core-4-6/node_modules/cht-nootils'), + Lineage: require('../../build/cht-core-4-6/shared-libs/lineage'), + ChtScriptApi: require('../../build/cht-core-4-6/shared-libs/cht-script-api'), + convertFormXmlToXFormModel: require('../../build/cht-core-4-6/api/src/services/generate-xform.js').generate, +}; diff --git a/cht-bundles/cht-core-4-6/xsl-paths.js b/cht-bundles/cht-core-4-6/xsl-paths.js new file mode 100644 index 00000000..f6eeecd6 --- /dev/null +++ b/cht-bundles/cht-core-4-6/xsl-paths.js @@ -0,0 +1,6 @@ +const path = require('path'); + +module.exports = { + FORM_STYLESHEET: path.join(__dirname, '../dist/cht-core-4-6/xsl/openrosa2html5form.xsl'), + MODEL_STYLESHEET: path.join(__dirname, '../dist/cht-core-4-6/enketo-transformer/xsl/openrosa2xmlmodel.xsl'), +}; diff --git a/cht-bundles/webpack.config.cht-core.js b/cht-bundles/webpack.config.cht-core.js new file mode 100644 index 00000000..598aeb92 --- /dev/null +++ b/cht-bundles/webpack.config.cht-core.js @@ -0,0 +1,62 @@ +const path = require('path'); +const WebpackCleanConsolePlugin = require('webpack-clean-console-plugin'); +module.exports = env => [ + { + entry: `./cht-bundles/${env.cht}/bundle.js`, + output: { + path: path.join(__dirname,'../', 'dist', env.cht), + filename: `cht-core-bundle.dev.js`, + library: { + type: 'commonjs', + } + }, + resolve: { + alias: { + // inside cht-core/api/src/services/generate-xform.js + '../xsl/xsl-paths': path.join(__dirname, env.cht, 'xsl-paths.js'), + }, + }, + target: 'node', + mode: 'development', + devtool: 'source-map', + plugins: [ + new WebpackCleanConsolePlugin({ include: ['debug'] }), + ], + }, + { + entry: [ + `./build/${env.cht}/build/cht-form/main.js`, + `./build/${env.cht}/build/cht-form/polyfills.js`, + `./build/${env.cht}/build/cht-form/runtime.js`, + `./build/${env.cht}/build/cht-form/scripts.js`, + `./build/${env.cht}/build/cht-form/styles.css`, + ], + output: { + filename: 'cht-form.js', + path: path.join(__dirname, '../', 'dist', env.cht), + assetModuleFilename: '[name][ext]' + }, + resolve: { + alias: { + '/fonts/NotoSans-Regular.ttf': './fonts/NotoSans-Regular.ttf', + '/fonts/NotoSans-Bold.ttf': './fonts/NotoSans-Bold.ttf', + '/fonts/enketo-icons-v2.woff': './fonts/enketo-icons-v2.woff', + '/fonts/enketo-icons-v2.ttf': './fonts/enketo-icons-v2.ttf', + '/fonts/enketo-icons-v2.svg': './fonts/enketo-icons-v2.svg', + }, + }, + module: { + rules: [ + { + test: /\.(svg|ttf|woff)$/i, + type: 'asset/resource' + }, + { + test: /\.css$/i, + use: ['style-loader', 'css-loader'], + }, + ], + }, + optimization: { minimize: false }, + } +]; diff --git a/compile-ddocs.js b/compile-ddocs.js index b7f7e526..2783489d 100644 --- a/compile-ddocs.js +++ b/compile-ddocs.js @@ -6,23 +6,19 @@ if (!fs.existsSync('build')) { fs.mkdirSync('build'); } -const coreVersions = fs.readdirSync('node_modules') - .filter(dir => dir.startsWith('cht-core-')); +const coreVersion = process.argv[2]; +const outputPath = path.resolve(`./build/${coreVersion}-ddocs.json`); +const ddocFolderPath = [ + `build/${coreVersion}/ddocs/medic-client/`, + `build/${coreVersion}/ddocs/medic-db/medic-client/`, +].find(fs.existsSync); +console.log(`Compiling ddocs for ${coreVersion} to ${outputPath}`); +compile(ddocFolderPath, function(error, doc) { + if (error) { + console.error(error); + throw error; + } -for (const coreVersion of coreVersions) { - const outputPath = path.resolve(`./build/${coreVersion}-ddocs.json`); - const ddocFolderPath = [ - `node_modules/${coreVersion}/ddocs/medic-client/`, - `node_modules/${coreVersion}/ddocs/medic-db/medic-client/`, - ].find(fs.existsSync); - console.log(`Compiling ddocs for ${coreVersion} to ${outputPath}`); - compile(ddocFolderPath, function(error, doc) { - if (error) { - console.error(error); - throw error; - } - - fs.writeFileSync(outputPath, JSON.stringify([doc], null, 2)); - console.log(`ddocs compiled to ${outputPath}`); - }); -} + fs.writeFileSync(outputPath, JSON.stringify([doc], null, 2)); + console.log(`ddocs compiled to ${outputPath}`); +}); diff --git a/dist/all-chts-bundle.dev.js b/dist/all-chts-bundle.dev.js index ccfc7615..ddd35aab 100644 --- a/dist/all-chts-bundle.dev.js +++ b/dist/all-chts-bundle.dev.js @@ -1,1265 +1,1244 @@ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ -/***/ "./all-chts-bundle.js": -/*!****************************!*\ - !*** ./all-chts-bundle.js ***! - \****************************/ +/***/ "./cht-bundles/all-chts-bundle.js": +/*!****************************************!*\ + !*** ./cht-bundles/all-chts-bundle.js ***! + \****************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { - module.exports = { - '4.0': { - ddocs: __webpack_require__(/*! ./build/cht-core-4-0-ddocs.json */ "./build/cht-core-4-0-ddocs.json"), - RegistrationUtils: __webpack_require__(/*! cht-core-4-0/shared-libs/registration-utils */ "./node_modules/cht-core-4-0/shared-libs/registration-utils/src/index.js"), - CalendarInterval: __webpack_require__(/*! cht-core-4-0/shared-libs/calendar-interval */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/src/index.js"), - RulesEngineCore: __webpack_require__(/*! cht-core-4-0/shared-libs/rules-engine */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/index.js"), - RulesEmitter: __webpack_require__(/*! cht-core-4-0/shared-libs/rules-engine/src/rules-emitter */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/rules-emitter.js"), - nootils: __webpack_require__(/*! cht-core-4-0/shared-libs/rules-engine/node_modules/cht-nootils */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/cht-nootils/src/nootils.js"), - Lineage: __webpack_require__(/*! cht-core-4-0/shared-libs/lineage */ "./node_modules/cht-core-4-0/shared-libs/lineage/src/index.js"), - ChtScriptApi: __webpack_require__(/*! cht-core-4-0/shared-libs/cht-script-api */ "./node_modules/cht-core-4-0/shared-libs/cht-script-api/src/index.js"), - - convertFormXmlToXFormModel: __webpack_require__(/*! cht-core-4-0/api/src/services/generate-xform.js */ "./node_modules/cht-core-4-0/api/src/services/generate-xform.js").generate, - }, + '4.6': __webpack_require__(/*! ../dist/cht-core-4-6/cht-core-bundle.dev */ "./dist/cht-core-4-6/cht-core-bundle.dev.js"), }; /***/ }), -/***/ "./build/cht-core-4-0-ddocs.json": +/***/ "./dist/cht-core-4-6/cht-core-bundle.dev.js": +/*!**************************************************!*\ + !*** ./dist/cht-core-4-6/cht-core-bundle.dev.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./build/cht-core-4-6-ddocs.json": /*!***************************************!*\ - !*** ./build/cht-core-4-0-ddocs.json ***! + !*** ./build/cht-core-4-6-ddocs.json ***! \***************************************/ /***/ ((module) => { "use strict"; -module.exports = JSON.parse('[{"_id":"_design/medic-client","validate_doc_update":"function(newDoc, oldDoc, userCtx) {\\n /*\\n LOCAL DOCUMENT VALIDATION\\n\\n This is for validating document structure, irrespective of authority, so it\\n can be run both on couchdb and pouchdb (where you are technically admin).\\n\\n For validations around authority check lib/validate_doc_update.js, which is\\n only run on the server.\\n */\\n\\n var _err = function(msg) {\\n throw({ forbidden: msg });\\n };\\n\\n /**\\n * Ensure that type=\'form\' documents are created with correctly formatted _id\\n * property.\\n */\\n var validateForm = function(newDoc) {\\n var id_parts = newDoc._id.split(\':\');\\n var prefix = id_parts[0];\\n var form_id = id_parts.slice(1).join(\':\');\\n if (prefix !== \'form\') {\\n _err(\'_id property must be prefixed with \\"form:\\". e.g. \\"form:registration\\"\');\\n }\\n if (!form_id) {\\n _err(\'_id property must define a value after \\"form:\\". e.g. \\"form:registration\\"\');\\n }\\n if (newDoc._id !== newDoc._id.toLowerCase()) {\\n _err(\'_id property must be lower case. e.g. \\"form:registration\\"\');\\n }\\n };\\n\\n var validateUserSettings = function(newDoc) {\\n var id_parts = newDoc._id.split(\':\');\\n var prefix = id_parts[0];\\n var username = id_parts.slice(1).join(\':\');\\n var idExample = \' e.g. \\"org.couchdb.user:sally\\"\';\\n if (prefix !== \'org.couchdb.user\') {\\n _err(\'_id must be prefixed with \\"org.couchdb.user:\\".\' + idExample);\\n }\\n if (!username) {\\n _err(\'_id must define a value after \\"org.couchdb.user:\\".\' + idExample);\\n }\\n if (newDoc._id !== newDoc._id.toLowerCase()) {\\n _err(\'_id must be lower case.\' + idExample);\\n }\\n if (typeof newDoc.name === \'undefined\' || newDoc.name !== username) {\\n _err(\'name property must be equivalent to username.\' + idExample);\\n }\\n if (newDoc.name.toLowerCase() !== username.toLowerCase()) {\\n _err(\'name must be equivalent to username\');\\n }\\n if (typeof newDoc.known !== \'undefined\' && typeof newDoc.known !== \'boolean\') {\\n _err(\'known is not a boolean.\');\\n }\\n if (typeof newDoc.roles !== \'object\') {\\n _err(\'roles is a required array\');\\n }\\n };\\n\\n if (userCtx.facility_id === newDoc._id) {\\n _err(\'You are not authorized to edit your own place\');\\n }\\n if (newDoc.type === \'form\') {\\n validateForm(newDoc);\\n }\\n if (newDoc.type === \'user-settings\') {\\n validateUserSettings(newDoc);\\n }\\n\\n log(\\n \'medic-client validate_doc_update passed for User \\"\' + userCtx.name +\\n \'\\" changing document \\"\' + newDoc._id + \'\\"\'\\n );\\n}","views":{"contacts_by_freetext":{"map":"function(doc) {\\n var skip = [ \'_id\', \'_rev\', \'type\', \'refid\', \'geolocation\' ];\\n\\n var usedKeys = [];\\n var emitMaybe = function(key, value) {\\n if (usedKeys.indexOf(key) === -1 && // Not already used\\n key.length > 2 // Not too short\\n ) {\\n usedKeys.push(key);\\n emit([key], value);\\n }\\n };\\n\\n var emitField = function(key, value, order) {\\n if (!key || !value) {\\n return;\\n }\\n key = key.toLowerCase();\\n if (skip.indexOf(key) !== -1 || /_date$/.test(key)) {\\n return;\\n }\\n if (typeof value === \'string\') {\\n value = value.toLowerCase();\\n value.split(/\\\\s+/).forEach(function(word) {\\n emitMaybe(word, order);\\n });\\n }\\n if (typeof value === \'number\' || typeof value === \'string\') {\\n emitMaybe(key + \':\' + value, order);\\n }\\n };\\n\\n var types = [ \'district_hospital\', \'health_center\', \'clinic\', \'person\' ];\\n var idx;\\n if (doc.type === \'contact\') {\\n idx = types.indexOf(doc.contact_type);\\n if (idx === -1) {\\n idx = doc.contact_type;\\n }\\n } else {\\n idx = types.indexOf(doc.type);\\n }\\n\\n if (idx !== -1) {\\n var dead = !!doc.date_of_death;\\n var muted = !!doc.muted;\\n var order = dead + \' \' + muted + \' \' + idx + \' \' + (doc.name && doc.name.toLowerCase());\\n Object.keys(doc).forEach(function(key) {\\n emitField(key, doc[key], order);\\n });\\n }\\n}"},"contacts_by_last_visited":{"reduce":"_stats","map":"function(doc) {\\n if (doc.type === \'data_record\' &&\\n doc.form &&\\n doc.fields &&\\n doc.fields.visited_contact_uuid) {\\n\\n var date = doc.fields.visited_date ? Date.parse(doc.fields.visited_date) : doc.reported_date;\\n if (typeof date !== \'number\' || isNaN(date)) {\\n date = 0;\\n }\\n // Is a visit report about a family\\n emit(doc.fields.visited_contact_uuid, date);\\n } else if (doc.type === \'contact\' ||\\n doc.type === \'clinic\' ||\\n doc.type === \'health_center\' ||\\n doc.type === \'district_hospital\' ||\\n doc.type === \'person\') {\\n // Is a contact type\\n emit(doc._id, 0);\\n }\\n}"},"contacts_by_parent":{"map":"function(doc) {\\n if (doc.type === \'contact\' ||\\n doc.type === \'clinic\' ||\\n doc.type === \'health_center\' ||\\n doc.type === \'district_hospital\' ||\\n doc.type === \'person\') {\\n var parentId = doc.parent && doc.parent._id;\\n var type = doc.type === \'contact\' ? doc.contact_type : doc.type;\\n if (parentId) {\\n emit([parentId, type]);\\n }\\n }\\n}"},"contacts_by_phone":{"map":"function(doc) {\\n if (doc.phone) {\\n var types = [ \'contact\', \'district_hospital\', \'health_center\', \'clinic\', \'person\' ];\\n if (types.indexOf(doc.type) !== -1) {\\n emit(doc.phone);\\n }\\n }\\n}"},"contacts_by_place":{"map":"function(doc) {\\n var types = [ \'district_hospital\', \'health_center\', \'clinic\', \'person\' ];\\n var idx;\\n if (doc.type === \'contact\') {\\n idx = types.indexOf(doc.contact_type);\\n if (idx === -1) {\\n idx = doc.contact_type;\\n }\\n } else {\\n idx = types.indexOf(doc.type);\\n }\\n if (idx !== -1) {\\n var place = doc.parent;\\n var order = idx + \' \' + (doc.name && doc.name.toLowerCase());\\n while (place) {\\n if (place._id) {\\n emit([ place._id ], order);\\n }\\n place = place.parent;\\n }\\n }\\n}"},"contacts_by_reference":{"map":"function(doc) {\\n var tombstone = false;\\n if (doc.type === \'tombstone\' && doc.tombstone) {\\n tombstone = true;\\n doc = doc.tombstone;\\n }\\n\\n if (doc.type === \'contact\' ||\\n doc.type === \'clinic\' ||\\n doc.type === \'health_center\' ||\\n doc.type === \'district_hospital\' ||\\n doc.type === \'national_office\' ||\\n doc.type === \'person\') {\\n\\n var emitReference = function(prefix, key) {\\n if (tombstone) {\\n prefix = \'tombstone-\' + prefix;\\n }\\n emit([ prefix, String(key) ], doc.reported_date);\\n };\\n\\n if (doc.place_id) {\\n emitReference(\'shortcode\', doc.place_id);\\n }\\n if (doc.patient_id) {\\n emitReference(\'shortcode\', doc.patient_id);\\n }\\n if (doc.rc_code) {\\n // need String because rewriter wraps everything in quotes\\n // keep refid case-insenstive since data is usually coming from SMS\\n emitReference(\'external\', String(doc.rc_code).toUpperCase());\\n }\\n }\\n}"},"contacts_by_type_freetext":{"map":"function(doc) {\\n var skip = [ \'_id\', \'_rev\', \'type\', \'refid\', \'geolocation\' ];\\n\\n var usedKeys = [];\\n var emitMaybe = function(type, key, value) {\\n if (usedKeys.indexOf(key) === -1 && // Not already used\\n key.length > 2 // Not too short\\n ) {\\n usedKeys.push(key);\\n emit([ type, key ], value);\\n }\\n };\\n\\n var emitField = function(type, key, value, order) {\\n if (!key || !value) {\\n return;\\n }\\n key = key.toLowerCase();\\n if (skip.indexOf(key) !== -1 || /_date$/.test(key)) {\\n return;\\n }\\n if (typeof value === \'string\') {\\n value = value.toLowerCase();\\n value.split(/\\\\s+/).forEach(function(word) {\\n emitMaybe(type, word, order);\\n });\\n }\\n if (typeof value === \'number\' || typeof value === \'string\') {\\n emitMaybe(type, key + \':\' + value, order);\\n }\\n };\\n\\n var types = [ \'district_hospital\', \'health_center\', \'clinic\', \'person\' ];\\n var idx;\\n var type;\\n if (doc.type === \'contact\') {\\n type = doc.contact_type;\\n idx = types.indexOf(type);\\n if (idx === -1) {\\n idx = type;\\n }\\n } else {\\n type = doc.type;\\n idx = types.indexOf(type);\\n }\\n if (idx !== -1) {\\n var dead = !!doc.date_of_death;\\n var muted = !!doc.muted;\\n var order = dead + \' \' + muted + \' \' + idx + \' \' + (doc.name && doc.name.toLowerCase());\\n Object.keys(doc).forEach(function(key) {\\n emitField(type, key, doc[key], order);\\n });\\n }\\n}"},"contacts_by_type":{"map":"function(doc) {\\n var tombstone = false;\\n if (doc.type === \'tombstone\' && doc.tombstone) {\\n tombstone = true;\\n doc = doc.tombstone;\\n }\\n var types = [ \'district_hospital\', \'health_center\', \'clinic\', \'person\' ];\\n var idx;\\n var type;\\n if (doc.type === \'contact\') {\\n type = doc.contact_type;\\n idx = types.indexOf(type);\\n if (idx === -1) {\\n idx = type;\\n }\\n } else {\\n type = doc.type;\\n idx = types.indexOf(type);\\n }\\n if (tombstone) {\\n type = \'tombstone-\' + type;\\n }\\n if (idx !== -1) {\\n var dead = !!doc.date_of_death;\\n var muted = !!doc.muted;\\n var order = dead + \' \' + muted + \' \' + idx + \' \' + (doc.name && doc.name.toLowerCase());\\n emit([ type ], order);\\n }\\n}"},"data_records_by_type":{"reduce":"_count","map":"function(doc) {\\n if (doc.type === \'data_record\') {\\n emit(doc.form ? \'report\' : \'message\');\\n }\\n}"},"doc_by_type":{"map":"function(doc) {\\n if (doc.type === \'translations\') {\\n emit([ \'translations\', doc.enabled ], {\\n code: doc.code,\\n name: doc.name\\n });\\n return;\\n }\\n emit([ doc.type ]);\\n}"},"docs_by_id_lineage":{"map":"function(doc) {\\n\\n var emitLineage = function(contact, depth) {\\n while (contact && contact._id) {\\n emit([ doc._id, depth++ ], { _id: contact._id });\\n contact = contact.parent;\\n }\\n };\\n\\n var types = [ \'contact\', \'district_hospital\', \'health_center\', \'clinic\', \'person\' ];\\n\\n if (types.indexOf(doc.type) !== -1) {\\n // contact\\n emitLineage(doc, 0);\\n } else if (doc.type === \'data_record\' && doc.form) {\\n // report\\n emit([ doc._id, 0 ]);\\n emitLineage(doc.contact, 1);\\n }\\n}"},"registered_patients":{"map":"// NB: This returns *registrations* for contacts. If contacts are created by\\n// means other then sending in a registration report (eg created in the UI)\\n// they will not show up in this view.\\n//\\n// For a view with all patients by their shortcode, use:\\n// medic/docs_by_shortcode\\nfunction(doc) {\\n var patientId = doc.patient_id || (doc.fields && doc.fields.patient_id);\\n var placeId = doc.place_id || (doc.fields && doc.fields.place_id);\\n\\n if (!doc.form || doc.type !== \'data_record\' || (doc.errors && doc.errors.length)) {\\n return;\\n }\\n\\n if (patientId) {\\n emit(String(patientId));\\n }\\n\\n if (placeId) {\\n emit(String(placeId));\\n }\\n}"},"reports_by_date":{"map":"function(doc) {\\n if (doc.type === \'data_record\' && doc.form) {\\n emit([doc.reported_date], doc.reported_date);\\n }\\n}"},"messages_by_contact_date":{"reduce":"function(key, values) {\\n var latest = { date: 0 };\\n values.forEach(function(value) {\\n if (value.date > latest.date) {\\n latest = value;\\n }\\n });\\n return latest;\\n}","map":"function(doc) {\\n\\n var emitMessage = function(doc, contact, phone) {\\n var id = (contact && contact._id) || phone || doc._id;\\n emit([ id, doc.reported_date ], {\\n id: doc._id,\\n date: doc.reported_date,\\n contact: contact && contact._id\\n });\\n };\\n\\n if (doc.type === \'data_record\' && !doc.form) {\\n if (doc.kujua_message && doc.tasks) {\\n // outgoing\\n doc.tasks.forEach(function(task) {\\n var message = task.messages && task.messages[0];\\n if(message) {\\n emitMessage(doc, message.contact, message.to);\\n }\\n });\\n } else if (doc.sms_message) {\\n // incoming\\n emitMessage(doc, doc.contact, doc.from);\\n }\\n }\\n}"},"reports_by_form":{"map":"function(doc) {\\n if (doc.type === \'data_record\' && doc.form) {\\n emit([doc.form], doc.reported_date);\\n }\\n}","reduce":"function() {\\n return true;\\n}"},"reports_by_freetext":{"map":"function(doc) {\\n var skip = [ \'_id\', \'_rev\', \'type\', \'refid\', \'content\' ];\\n\\n var usedKeys = [];\\n var emitMaybe = function(key, value) {\\n if (usedKeys.indexOf(key) === -1 && // Not already used\\n key.length > 2 // Not too short\\n ) {\\n usedKeys.push(key);\\n emit([key], value);\\n }\\n };\\n\\n var emitField = function(key, value, reportedDate) {\\n if (!key || !value) {\\n return;\\n }\\n key = key.toLowerCase();\\n if (skip.indexOf(key) !== -1 || /_date$/.test(key)) {\\n return;\\n }\\n if (typeof value === \'string\') {\\n value = value.toLowerCase();\\n value.split(/\\\\s+/).forEach(function(word) {\\n emitMaybe(word, reportedDate);\\n });\\n }\\n if (typeof value === \'number\' || typeof value === \'string\') {\\n emitMaybe(key + \':\' + value, reportedDate);\\n }\\n };\\n\\n if (doc.type === \'data_record\' && doc.form) {\\n Object.keys(doc).forEach(function(key) {\\n emitField(key, doc[key], doc.reported_date);\\n });\\n if (doc.fields) {\\n Object.keys(doc.fields).forEach(function(key) {\\n emitField(key, doc.fields[key], doc.reported_date);\\n });\\n }\\n if (doc.contact && doc.contact._id) {\\n emitMaybe(\'contact:\' + doc.contact._id.toLowerCase(), doc.reported_date);\\n }\\n }\\n}"},"reports_by_place":{"map":"function(doc) {\\n if (doc.type === \'data_record\' && doc.form) {\\n var place = doc.contact && doc.contact.parent;\\n while (place) {\\n if (place._id) {\\n emit([ place._id ], doc.reported_date);\\n }\\n place = place.parent;\\n }\\n }\\n}"},"reports_by_subject":{"map":"function(doc) {\\n if (doc.type === \'data_record\' && doc.form) {\\n var emitField = function(obj, field) {\\n if (obj[field]) {\\n emit(obj[field], doc.reported_date);\\n }\\n };\\n\\n emitField(doc, \'patient_id\');\\n emitField(doc, \'place_id\');\\n emitField(doc, \'case_id\');\\n\\n if (doc.fields) {\\n emitField(doc.fields, \'patient_id\');\\n emitField(doc.fields, \'place_id\');\\n emitField(doc.fields, \'case_id\');\\n emitField(doc.fields, \'patient_uuid\');\\n emitField(doc.fields, \'place_uuid\');\\n }\\n }\\n}"},"reports_by_verification":{"map":"function(doc) {\\n if (doc.type === \'data_record\' && doc.form) {\\n emit([doc.verified], doc.reported_date);\\n }\\n}"},"tasks_by_contact":{"map":"function(doc) {\\n if (doc.type === \'task\') {\\n var isTerminalState = [\'Cancelled\', \'Completed\', \'Failed\'].indexOf(doc.state) >= 0;\\n var owner = (doc.owner || \'_unassigned\');\\n\\n if (!isTerminalState) {\\n emit(\'owner-\' + owner);\\n }\\n\\n if (doc.requester) {\\n emit(\'requester-\' + doc.requester);\\n }\\n\\n emit([\'owner\', \'all\', owner], { state: doc.state });\\n }\\n}"},"reports_by_validity":{"map":"function(doc) {\\n if (doc.type === \'data_record\' && doc.form) {\\n emit([!doc.errors || doc.errors.length === 0], doc.reported_date);\\n }\\n}"},"total_clinics_by_facility":{"map":"function(doc) {\\n var districtId = doc.parent && doc.parent.parent && doc.parent.parent._id;\\n if (doc.type === \'clinic\' || (doc.type === \'contact\' && districtId)) {\\n var healthCenterId = doc.parent && doc.parent._id;\\n emit([ districtId, healthCenterId, doc._id, 0 ]);\\n if (doc.contact && doc.contact._id) {\\n emit([ districtId, healthCenterId, doc._id, 1 ], { _id: doc.contact._id });\\n }\\n var index = 2;\\n var parent = doc.parent;\\n while(parent) {\\n if (parent._id) {\\n emit([ districtId, healthCenterId, doc._id, index++ ], { _id: parent._id });\\n }\\n parent = parent.parent;\\n }\\n }\\n}"},"visits_by_date":{"map":"function(doc) {\\n if (doc.type === \'data_record\' &&\\n doc.form &&\\n doc.fields &&\\n doc.fields.visited_contact_uuid) {\\n\\n var visited_date = doc.fields.visited_date ? Date.parse(doc.fields.visited_date) : doc.reported_date;\\n\\n // Is a visit report about a family\\n emit(visited_date, doc.fields.visited_contact_uuid);\\n emit([doc.fields.visited_contact_uuid, visited_date]);\\n }\\n}"}}}]'); +module.exports = JSON.parse('[{"views":{"contacts_by_freetext":{"map":"function(doc) {\\n var skip = [ \'_id\', \'_rev\', \'type\', \'refid\', \'geolocation\' ];\\n\\n var usedKeys = [];\\n var emitMaybe = function(key, value) {\\n if (usedKeys.indexOf(key) === -1 && // Not already used\\n key.length > 2 // Not too short\\n ) {\\n usedKeys.push(key);\\n emit([key], value);\\n }\\n };\\n\\n var emitField = function(key, value, order) {\\n if (!key || !value) {\\n return;\\n }\\n key = key.toLowerCase();\\n if (skip.indexOf(key) !== -1 || /_date$/.test(key)) {\\n return;\\n }\\n if (typeof value === \'string\') {\\n value = value.toLowerCase();\\n value.split(/\\\\s+/).forEach(function(word) {\\n emitMaybe(word, order);\\n });\\n }\\n if (typeof value === \'number\' || typeof value === \'string\') {\\n emitMaybe(key + \':\' + value, order);\\n }\\n };\\n\\n var types = [ \'district_hospital\', \'health_center\', \'clinic\', \'person\' ];\\n var idx;\\n if (doc.type === \'contact\') {\\n idx = types.indexOf(doc.contact_type);\\n if (idx === -1) {\\n idx = doc.contact_type;\\n }\\n } else {\\n idx = types.indexOf(doc.type);\\n }\\n\\n if (idx !== -1) {\\n var dead = !!doc.date_of_death;\\n var muted = !!doc.muted;\\n var order = dead + \' \' + muted + \' \' + idx + \' \' + (doc.name && doc.name.toLowerCase());\\n Object.keys(doc).forEach(function(key) {\\n emitField(key, doc[key], order);\\n });\\n }\\n}"},"contacts_by_last_visited":{"map":"function(doc) {\\n if (doc.type === \'data_record\' &&\\n doc.form &&\\n doc.fields &&\\n doc.fields.visited_contact_uuid) {\\n\\n var date = doc.fields.visited_date ? Date.parse(doc.fields.visited_date) : doc.reported_date;\\n if (typeof date !== \'number\' || isNaN(date)) {\\n date = 0;\\n }\\n // Is a visit report about a family\\n emit(doc.fields.visited_contact_uuid, date);\\n } else if (doc.type === \'contact\' ||\\n doc.type === \'clinic\' ||\\n doc.type === \'health_center\' ||\\n doc.type === \'district_hospital\' ||\\n doc.type === \'person\') {\\n // Is a contact type\\n emit(doc._id, 0);\\n }\\n}","reduce":"_stats"},"contacts_by_parent":{"map":"function(doc) {\\n if (doc.type === \'contact\' ||\\n doc.type === \'clinic\' ||\\n doc.type === \'health_center\' ||\\n doc.type === \'district_hospital\' ||\\n doc.type === \'person\') {\\n var parentId = doc.parent && doc.parent._id;\\n var type = doc.type === \'contact\' ? doc.contact_type : doc.type;\\n if (parentId) {\\n emit([parentId, type]);\\n }\\n }\\n}"},"contacts_by_phone":{"map":"function(doc) {\\n if (doc.phone) {\\n var types = [ \'contact\', \'district_hospital\', \'health_center\', \'clinic\', \'person\' ];\\n if (types.indexOf(doc.type) !== -1) {\\n emit(doc.phone);\\n }\\n }\\n}"},"contacts_by_place":{"map":"function(doc) {\\n var types = [ \'district_hospital\', \'health_center\', \'clinic\', \'person\' ];\\n var idx;\\n if (doc.type === \'contact\') {\\n idx = types.indexOf(doc.contact_type);\\n if (idx === -1) {\\n idx = doc.contact_type;\\n }\\n } else {\\n idx = types.indexOf(doc.type);\\n }\\n if (idx !== -1) {\\n var place = doc.parent;\\n var order = idx + \' \' + (doc.name && doc.name.toLowerCase());\\n while (place) {\\n if (place._id) {\\n emit([ place._id ], order);\\n }\\n place = place.parent;\\n }\\n }\\n}"},"contacts_by_reference":{"map":"function(doc) {\\n if (doc.type === \'contact\' ||\\n doc.type === \'clinic\' ||\\n doc.type === \'health_center\' ||\\n doc.type === \'district_hospital\' ||\\n doc.type === \'national_office\' ||\\n doc.type === \'person\') {\\n\\n var emitReference = function(prefix, key) {\\n emit([ prefix, String(key) ], doc.reported_date);\\n };\\n\\n if (doc.place_id) {\\n emitReference(\'shortcode\', doc.place_id);\\n }\\n if (doc.patient_id) {\\n emitReference(\'shortcode\', doc.patient_id);\\n }\\n if (doc.rc_code) {\\n // need String because rewriter wraps everything in quotes\\n // keep refid case-insenstive since data is usually coming from SMS\\n emitReference(\'external\', String(doc.rc_code).toUpperCase());\\n }\\n }\\n}"},"contacts_by_type_freetext":{"map":"function(doc) {\\n var skip = [ \'_id\', \'_rev\', \'type\', \'refid\', \'geolocation\' ];\\n\\n var usedKeys = [];\\n var emitMaybe = function(type, key, value) {\\n if (usedKeys.indexOf(key) === -1 && // Not already used\\n key.length > 2 // Not too short\\n ) {\\n usedKeys.push(key);\\n emit([ type, key ], value);\\n }\\n };\\n\\n var emitField = function(type, key, value, order) {\\n if (!key || !value) {\\n return;\\n }\\n key = key.toLowerCase();\\n if (skip.indexOf(key) !== -1 || /_date$/.test(key)) {\\n return;\\n }\\n if (typeof value === \'string\') {\\n value = value.toLowerCase();\\n value.split(/\\\\s+/).forEach(function(word) {\\n emitMaybe(type, word, order);\\n });\\n }\\n if (typeof value === \'number\' || typeof value === \'string\') {\\n emitMaybe(type, key + \':\' + value, order);\\n }\\n };\\n\\n var types = [ \'district_hospital\', \'health_center\', \'clinic\', \'person\' ];\\n var idx;\\n var type;\\n if (doc.type === \'contact\') {\\n type = doc.contact_type;\\n idx = types.indexOf(type);\\n if (idx === -1) {\\n idx = type;\\n }\\n } else {\\n type = doc.type;\\n idx = types.indexOf(type);\\n }\\n if (idx !== -1) {\\n var dead = !!doc.date_of_death;\\n var muted = !!doc.muted;\\n var order = dead + \' \' + muted + \' \' + idx + \' \' + (doc.name && doc.name.toLowerCase());\\n Object.keys(doc).forEach(function(key) {\\n emitField(type, key, doc[key], order);\\n });\\n }\\n}"},"contacts_by_type":{"map":"function(doc) {\\n var types = [ \'district_hospital\', \'health_center\', \'clinic\', \'person\' ];\\n var idx;\\n var type;\\n if (doc.type === \'contact\') {\\n type = doc.contact_type;\\n idx = types.indexOf(type);\\n if (idx === -1) {\\n idx = type;\\n }\\n } else {\\n type = doc.type;\\n idx = types.indexOf(type);\\n }\\n if (idx !== -1) {\\n var dead = !!doc.date_of_death;\\n var muted = !!doc.muted;\\n var order = dead + \' \' + muted + \' \' + idx + \' \' + (doc.name && doc.name.toLowerCase());\\n emit([ type ], order);\\n }\\n}"},"data_records_by_type":{"reduce":"_count","map":"function(doc) {\\n if (doc.type === \'data_record\') {\\n emit(doc.form ? \'report\' : \'message\');\\n }\\n}"},"doc_by_type":{"map":"function(doc) {\\n if (doc.type === \'translations\') {\\n emit([ \'translations\', doc.enabled ], {\\n code: doc.code,\\n name: doc.name\\n });\\n return;\\n }\\n emit([ doc.type ]);\\n}"},"docs_by_id_lineage":{"map":"function(doc) {\\n\\n var emitLineage = function(contact, depth) {\\n while (contact && contact._id) {\\n emit([ doc._id, depth++ ], { _id: contact._id });\\n contact = contact.parent;\\n }\\n };\\n\\n var types = [ \'contact\', \'district_hospital\', \'health_center\', \'clinic\', \'person\' ];\\n\\n if (types.indexOf(doc.type) !== -1) {\\n // contact\\n emitLineage(doc, 0);\\n } else if (doc.type === \'data_record\' && doc.form) {\\n // report\\n emit([ doc._id, 0 ]);\\n emitLineage(doc.contact, 1);\\n }\\n}"},"messages_by_contact_date":{"map":"function(doc) {\\n\\n var emitMessage = function(doc, contact, phone) {\\n var id = (contact && contact._id) || phone || doc._id;\\n emit([ id, doc.reported_date ], {\\n id: doc._id,\\n date: doc.reported_date,\\n contact: contact && contact._id\\n });\\n };\\n\\n if (doc.type === \'data_record\' && !doc.form) {\\n if (doc.kujua_message && doc.tasks) {\\n // outgoing\\n doc.tasks.forEach(function(task) {\\n var message = task.messages && task.messages[0];\\n if(message) {\\n emitMessage(doc, message.contact, message.to);\\n }\\n });\\n } else if (doc.sms_message) {\\n // incoming\\n emitMessage(doc, doc.contact, doc.from);\\n }\\n }\\n}","reduce":"function(key, values) {\\n var latest = { date: 0 };\\n values.forEach(function(value) {\\n if (value.date > latest.date) {\\n latest = value;\\n }\\n });\\n return latest;\\n}"},"registered_patients":{"map":"// NB: This returns *registrations* for contacts. If contacts are created by\\n// means other then sending in a registration report (eg created in the UI)\\n// they will not show up in this view.\\n//\\n// For a view with all patients by their shortcode, use:\\n// medic/docs_by_shortcode\\nfunction(doc) {\\n var patientId = doc.patient_id || (doc.fields && doc.fields.patient_id);\\n var placeId = doc.place_id || (doc.fields && doc.fields.place_id);\\n\\n if (!doc.form || doc.type !== \'data_record\' || (doc.errors && doc.errors.length)) {\\n return;\\n }\\n\\n if (patientId) {\\n emit(String(patientId));\\n }\\n\\n if (placeId) {\\n emit(String(placeId));\\n }\\n}"},"reports_by_form":{"map":"function(doc) {\\n if (doc.type === \'data_record\' && doc.form) {\\n emit([doc.form], doc.reported_date);\\n }\\n}","reduce":"function() {\\n return true;\\n}"},"reports_by_date":{"map":"function(doc) {\\n if (doc.type === \'data_record\' && doc.form) {\\n emit([doc.reported_date], doc.reported_date);\\n }\\n}"},"reports_by_freetext":{"map":"function(doc) {\\n var skip = [ \'_id\', \'_rev\', \'type\', \'refid\', \'content\' ];\\n\\n var usedKeys = [];\\n var emitMaybe = function(key, value) {\\n if (usedKeys.indexOf(key) === -1 && // Not already used\\n key.length > 2 // Not too short\\n ) {\\n usedKeys.push(key);\\n emit([key], value);\\n }\\n };\\n\\n var emitField = function(key, value, reportedDate) {\\n if (!key || !value) {\\n return;\\n }\\n key = key.toLowerCase();\\n if (skip.indexOf(key) !== -1 || /_date$/.test(key)) {\\n return;\\n }\\n if (typeof value === \'string\') {\\n value = value.toLowerCase();\\n value.split(/\\\\s+/).forEach(function(word) {\\n emitMaybe(word, reportedDate);\\n });\\n }\\n if (typeof value === \'number\' || typeof value === \'string\') {\\n emitMaybe(key + \':\' + value, reportedDate);\\n }\\n };\\n\\n if (doc.type === \'data_record\' && doc.form) {\\n Object.keys(doc).forEach(function(key) {\\n emitField(key, doc[key], doc.reported_date);\\n });\\n if (doc.fields) {\\n Object.keys(doc.fields).forEach(function(key) {\\n emitField(key, doc.fields[key], doc.reported_date);\\n });\\n }\\n if (doc.contact && doc.contact._id) {\\n emitMaybe(\'contact:\' + doc.contact._id.toLowerCase(), doc.reported_date);\\n }\\n }\\n}"},"reports_by_place":{"map":"function(doc) {\\n if (doc.type === \'data_record\' && doc.form) {\\n var place = doc.contact && doc.contact.parent;\\n while (place) {\\n if (place._id) {\\n emit([ place._id ], doc.reported_date);\\n }\\n place = place.parent;\\n }\\n }\\n}"},"reports_by_subject":{"map":"function(doc) {\\n if (doc.type === \'data_record\' && doc.form) {\\n var emitField = function(obj, field) {\\n if (obj[field]) {\\n emit(obj[field], doc.reported_date);\\n }\\n };\\n\\n emitField(doc, \'patient_id\');\\n emitField(doc, \'place_id\');\\n emitField(doc, \'case_id\');\\n\\n if (doc.fields) {\\n emitField(doc.fields, \'patient_id\');\\n emitField(doc.fields, \'place_id\');\\n emitField(doc.fields, \'case_id\');\\n emitField(doc.fields, \'patient_uuid\');\\n emitField(doc.fields, \'place_uuid\');\\n }\\n }\\n}"},"reports_by_validity":{"map":"function(doc) {\\n if (doc.type === \'data_record\' && doc.form) {\\n emit([!doc.errors || doc.errors.length === 0], doc.reported_date);\\n }\\n}"},"reports_by_verification":{"map":"function(doc) {\\n if (doc.type === \'data_record\' && doc.form) {\\n emit([doc.verified], doc.reported_date);\\n }\\n}"},"tasks_by_contact":{"map":"function(doc) {\\n if (doc.type === \'task\') {\\n var isTerminalState = [\'Cancelled\', \'Completed\', \'Failed\'].indexOf(doc.state) >= 0;\\n var owner = (doc.owner || \'_unassigned\');\\n\\n if (!isTerminalState) {\\n emit(\'owner-\' + owner);\\n }\\n\\n if (doc.requester) {\\n emit(\'requester-\' + doc.requester);\\n }\\n\\n emit([\'owner\', \'all\', owner], { state: doc.state });\\n }\\n}"},"total_clinics_by_facility":{"map":"function(doc) {\\n var districtId = doc.parent && doc.parent.parent && doc.parent.parent._id;\\n if (doc.type === \'clinic\' || (doc.type === \'contact\' && districtId)) {\\n var healthCenterId = doc.parent && doc.parent._id;\\n emit([ districtId, healthCenterId, doc._id, 0 ]);\\n if (doc.contact && doc.contact._id) {\\n emit([ districtId, healthCenterId, doc._id, 1 ], { _id: doc.contact._id });\\n }\\n var index = 2;\\n var parent = doc.parent;\\n while(parent) {\\n if (parent._id) {\\n emit([ districtId, healthCenterId, doc._id, index++ ], { _id: parent._id });\\n }\\n parent = parent.parent;\\n }\\n }\\n}"},"visits_by_date":{"map":"function(doc) {\\n if (doc.type === \'data_record\' &&\\n doc.form &&\\n doc.fields &&\\n doc.fields.visited_contact_uuid) {\\n\\n var visited_date = doc.fields.visited_date ? Date.parse(doc.fields.visited_date) : doc.reported_date;\\n\\n // Is a visit report about a family\\n emit(visited_date, doc.fields.visited_contact_uuid);\\n emit([doc.fields.visited_contact_uuid, visited_date]);\\n }\\n}"}},"validate_doc_update":"function(newDoc, oldDoc, userCtx) {\\n /*\\n LOCAL DOCUMENT VALIDATION\\n\\n This is for validating document structure, irrespective of authority, so it\\n can be run both on couchdb and pouchdb (where you are technically admin).\\n\\n For validations around authority check lib/validate_doc_update.js, which is\\n only run on the server.\\n */\\n\\n var _err = function(msg) {\\n throw({ forbidden: msg });\\n };\\n\\n /**\\n * Ensure that type=\'form\' documents are created with correctly formatted _id\\n * property.\\n */\\n var validateForm = function(newDoc) {\\n var id_parts = newDoc._id.split(\':\');\\n var prefix = id_parts[0];\\n var form_id = id_parts.slice(1).join(\':\');\\n if (prefix !== \'form\') {\\n _err(\'_id property must be prefixed with \\"form:\\". e.g. \\"form:registration\\"\');\\n }\\n if (!form_id) {\\n _err(\'_id property must define a value after \\"form:\\". e.g. \\"form:registration\\"\');\\n }\\n if (newDoc._id !== newDoc._id.toLowerCase()) {\\n _err(\'_id property must be lower case. e.g. \\"form:registration\\"\');\\n }\\n };\\n\\n var validateUserSettings = function(newDoc) {\\n var id_parts = newDoc._id.split(\':\');\\n var prefix = id_parts[0];\\n var username = id_parts.slice(1).join(\':\');\\n var idExample = \' e.g. \\"org.couchdb.user:sally\\"\';\\n if (prefix !== \'org.couchdb.user\') {\\n _err(\'_id must be prefixed with \\"org.couchdb.user:\\".\' + idExample);\\n }\\n if (!username) {\\n _err(\'_id must define a value after \\"org.couchdb.user:\\".\' + idExample);\\n }\\n if (newDoc._id !== newDoc._id.toLowerCase()) {\\n _err(\'_id must be lower case.\' + idExample);\\n }\\n if (typeof newDoc.name === \'undefined\' || newDoc.name !== username) {\\n _err(\'name property must be equivalent to username.\' + idExample);\\n }\\n if (newDoc.name.toLowerCase() !== username.toLowerCase()) {\\n _err(\'name must be equivalent to username\');\\n }\\n if (typeof newDoc.known !== \'undefined\' && typeof newDoc.known !== \'boolean\') {\\n _err(\'known is not a boolean.\');\\n }\\n if (typeof newDoc.roles !== \'object\') {\\n _err(\'roles is a required array\');\\n }\\n };\\n\\n if (userCtx.facility_id === newDoc._id) {\\n _err(\'You are not authorized to edit your own place\');\\n }\\n if (newDoc.type === \'form\') {\\n validateForm(newDoc);\\n }\\n if (newDoc.type === \'user-settings\') {\\n validateUserSettings(newDoc);\\n }\\n\\n log(\\n \'medic-client validate_doc_update passed for User \\"\' + userCtx.name +\\n \'\\" changing document \\"\' + newDoc._id + \'\\"\'\\n );\\n}","_id":"_design/medic-client"}]'); /***/ }), -/***/ "./ext/xsl-paths.js": -/*!**************************!*\ - !*** ./ext/xsl-paths.js ***! - \**************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -const path = __webpack_require__(/*! path */ "path"); - -module.exports = { - FORM_STYLESHEET: path.join(__dirname, '../ext/xsl/openrosa2html5form.xsl'), - MODEL_STYLESHEET: path.join(__dirname, '../ext/enketo-transformer/xsl/openrosa2xmlmodel.xsl'), -}; - - -/***/ }), +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/colors.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/colors.js ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_17509__) => { -/***/ "./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/adapters/index.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/adapters/index.js ***! - \****************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/* -var enabled = __webpack_require__(/*! enabled */ "./node_modules/cht-core-4-0/api/node_modules/enabled/index.js"); +The MIT License (MIT) -/** - * Creates a new Adapter. - * - * @param {Function} fn Function that returns the value. - * @returns {Function} The adapter logic. - * @public - */ -module.exports = function create(fn) { - return function adapter(namespace) { - try { - return enabled(namespace, fn()); - } catch (e) { /* Any failure means that we found nothing */ } +Original Library + - Copyright (c) Marak Squires - return false; - }; -} +Additional functionality + - Copyright (c) Sindre Sorhus (sindresorhus.com) +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -/***/ }), +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -/***/ "./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/adapters/process.env.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/adapters/process.env.js ***! - \**********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. -var adapter = __webpack_require__(/*! ./ */ "./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/adapters/index.js"); +*/ -/** - * Extracts the values from process.env. - * - * @type {Function} - * @public - */ -module.exports = adapter(function processenv() { - return process.env.DEBUG || process.env.DIAGNOSTICS; -}); +var colors = {}; +module['exports'] = colors; +colors.themes = {}; -/***/ }), +var util = __nested_webpack_require_17509__(/*! util */ "util"); +var ansiStyles = colors.styles = __nested_webpack_require_17509__(/*! ./styles */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/styles.js"); +var defineProps = Object.defineProperties; +var newLineRegex = new RegExp(/[\r\n]+/g); -/***/ "./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/diagnostics.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/diagnostics.js ***! - \*************************************************************************************/ -/***/ ((module) => { +colors.supportsColor = __nested_webpack_require_17509__(/*! ./system/supports-colors */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/supports-colors.js").supportsColor; -/** - * Contains all configured adapters for the given environment. - * - * @type {Array} - * @public - */ -var adapters = []; +if (typeof colors.enabled === 'undefined') { + colors.enabled = colors.supportsColor() !== false; +} -/** - * Contains all modifier functions. - * - * @typs {Array} - * @public - */ -var modifiers = []; +colors.enable = function() { + colors.enabled = true; +}; -/** - * Our default logger. - * - * @public - */ -var logger = function devnull() {}; +colors.disable = function() { + colors.enabled = false; +}; -/** - * Register a new adapter that will used to find environments. - * - * @param {Function} adapter A function that will return the possible env. - * @returns {Boolean} Indication of a successful add. - * @public - */ -function use(adapter) { - if (~adapters.indexOf(adapter)) return false; +colors.stripColors = colors.strip = function(str) { + return ('' + str).replace(/\x1B\[\d+m/g, ''); +}; - adapters.push(adapter); - return true; -} +// eslint-disable-next-line no-unused-vars +var stylize = colors.stylize = function stylize(str, style) { + if (!colors.enabled) { + return str+''; + } -/** - * Assign a new log method. - * - * @param {Function} custom The log method. - * @public - */ -function set(custom) { - logger = custom; -} + var styleMap = ansiStyles[style]; -/** - * Check if the namespace is allowed by any of our adapters. - * - * @param {String} namespace The namespace that needs to be enabled - * @returns {Boolean|Promise} Indication if the namespace is enabled by our adapters. - * @public - */ -function enabled(namespace) { - var async = []; + // Stylize should work for non-ANSI styles, too + if (!styleMap && style in colors) { + // Style maps like trap operate as functions on strings; + // they don't have properties like open or close. + return colors[style](str); + } - for (var i = 0; i < adapters.length; i++) { - if (adapters[i].async) { - async.push(adapters[i]); - continue; - } + return styleMap.open + str + styleMap.close; +}; - if (adapters[i](namespace)) return true; +var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; +var escapeStringRegexp = function(str) { + if (typeof str !== 'string') { + throw new TypeError('Expected a string'); } + return str.replace(matchOperatorsRe, '\\$&'); +}; - if (!async.length) return false; +function build(_styles) { + var builder = function builder() { + return applyStyle.apply(builder, arguments); + }; + builder._styles = _styles; + // __proto__ is used because we must return a function, but there is + // no way to create a function with a different prototype. + builder.__proto__ = proto; + return builder; +} - // - // Now that we know that we Async functions, we know we run in an ES6 - // environment and can use all the API's that they offer, in this case - // we want to return a Promise so that we can `await` in React-Native - // for an async adapter. - // - return new Promise(function pinky(resolve) { - Promise.all( - async.map(function prebind(fn) { - return fn(namespace); - }) - ).then(function resolved(values) { - resolve(values.some(Boolean)); - }); +var styles = (function() { + var ret = {}; + ansiStyles.grey = ansiStyles.gray; + Object.keys(ansiStyles).forEach(function(key) { + ansiStyles[key].closeRe = + new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g'); + ret[key] = { + get: function() { + return build(this._styles.concat(key)); + }, + }; }); -} + return ret; +})(); -/** - * Add a new message modifier to the debugger. - * - * @param {Function} fn Modification function. - * @returns {Boolean} Indication of a successful add. - * @public - */ -function modify(fn) { - if (~modifiers.indexOf(fn)) return false; +var proto = defineProps(function colors() {}, styles); - modifiers.push(fn); - return true; -} +function applyStyle() { + var args = Array.prototype.slice.call(arguments); -/** - * Write data to the supplied logger. - * - * @param {Object} meta Meta information about the log. - * @param {Array} args Arguments for console.log. - * @public - */ -function write() { - logger.apply(logger, arguments); -} + var str = args.map(function(arg) { + // Use weak equality check so we can colorize null/undefined in safe mode + if (arg != null && arg.constructor === String) { + return arg; + } else { + return util.inspect(arg); + } + }).join(' '); -/** - * Process the message with the modifiers. - * - * @param {Mixed} message The message to be transformed by modifers. - * @returns {String} Transformed message. - * @public - */ -function process(message) { - for (var i = 0; i < modifiers.length; i++) { - message = modifiers[i].apply(modifiers[i], arguments); + if (!colors.enabled || !str) { + return str; } - return message; -} + var newLinesPresent = str.indexOf('\n') != -1; -/** - * Introduce options to the logger function. - * - * @param {Function} fn Calback function. - * @param {Object} options Properties to introduce on fn. - * @returns {Function} The passed function - * @public - */ -function introduce(fn, options) { - var has = Object.prototype.hasOwnProperty; + var nestedStyles = this._styles; - for (var key in options) { - if (has.call(options, key)) { - fn[key] = options[key]; + var i = nestedStyles.length; + while (i--) { + var code = ansiStyles[nestedStyles[i]]; + str = code.open + str.replace(code.closeRe, code.open) + code.close; + if (newLinesPresent) { + str = str.replace(newLineRegex, function(match) { + return code.close + match + code.open; + }); } } - return fn; + return str; } -/** - * Nope, we're not allowed to write messages. - * - * @returns {Boolean} false - * @public - */ -function nope(options) { - options.enabled = false; - options.modify = modify; - options.set = set; - options.use = use; +colors.setTheme = function(theme) { + if (typeof theme === 'string') { + console.log('colors.setTheme now only accepts an object, not a string. ' + + 'If you are trying to set a theme from a file, it is now your (the ' + + 'caller\'s) responsibility to require the file. The old syntax ' + + 'looked like colors.setTheme(__dirname + ' + + '\'/../themes/generic-logging.js\'); The new syntax looks like '+ + 'colors.setTheme(require(__dirname + ' + + '\'/../themes/generic-logging.js\'));'); + return; + } + for (var style in theme) { + (function(style) { + colors[style] = function(str) { + if (typeof theme[style] === 'object') { + var out = str; + for (var i in theme[style]) { + out = colors[theme[style][i]](out); + } + return out; + } + return colors[theme[style]](str); + }; + })(style); + } +}; - return introduce(function diagnopes() { - return false; - }, options); +function init() { + var ret = {}; + Object.keys(styles).forEach(function(name) { + ret[name] = { + get: function() { + return build([name]); + }, + }; + }); + return ret; } -/** - * Yep, we're allowed to write debug messages. - * - * @param {Object} options The options for the process. - * @returns {Function} The function that does the logging. - * @public - */ -function yep(options) { - /** - * The function that receives the actual debug information. - * - * @returns {Boolean} indication that we're logging. - * @public - */ - function diagnostics() { - var args = Array.prototype.slice.call(arguments, 0); +var sequencer = function sequencer(map, str) { + var exploded = str.split(''); + exploded = exploded.map(map); + return exploded.join(''); +}; - write.call(write, options, process(args, options)); - return true; - } +// custom formatter methods +colors.trap = __nested_webpack_require_17509__(/*! ./custom/trap */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/trap.js"); +colors.zalgo = __nested_webpack_require_17509__(/*! ./custom/zalgo */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/zalgo.js"); - options.enabled = true; - options.modify = modify; - options.set = set; - options.use = use; +// maps +colors.maps = {}; +colors.maps.america = __nested_webpack_require_17509__(/*! ./maps/america */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/america.js")(colors); +colors.maps.zebra = __nested_webpack_require_17509__(/*! ./maps/zebra */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/zebra.js")(colors); +colors.maps.rainbow = __nested_webpack_require_17509__(/*! ./maps/rainbow */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/rainbow.js")(colors); +colors.maps.random = __nested_webpack_require_17509__(/*! ./maps/random */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/random.js")(colors); - return introduce(diagnostics, options); +for (var map in colors.maps) { + (function(map) { + colors[map] = function(str) { + return sequencer(colors.maps[map], str); + }; + })(map); } -/** - * Simple helper function to introduce various of helper methods to our given - * diagnostics function. - * - * @param {Function} diagnostics The diagnostics function. - * @returns {Function} diagnostics - * @public - */ -module.exports = function create(diagnostics) { - diagnostics.introduce = introduce; - diagnostics.enabled = enabled; - diagnostics.process = process; - diagnostics.modify = modify; - diagnostics.write = write; - diagnostics.nope = nope; - diagnostics.yep = yep; - diagnostics.set = set; - diagnostics.use = use; - - return diagnostics; -} +defineProps(colors, init()); /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/logger/console.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/logger/console.js ***! - \****************************************************************************************/ +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/trap.js": +/*!*******************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/trap.js ***! + \*******************************************************************************/ /***/ ((module) => { -/** - * An idiot proof logger to be used as default. We've wrapped it in a try/catch - * statement to ensure the environments without the `console` API do not crash - * as well as an additional fix for ancient browsers like IE8 where the - * `console.log` API doesn't have an `apply`, so we need to use the Function's - * apply functionality to apply the arguments. - * - * @param {Object} meta Options of the logger. - * @param {Array} messages The actuall message that needs to be logged. - * @public - */ -module.exports = function (meta, messages) { - // - // So yea. IE8 doesn't have an apply so we need a work around to puke the - // arguments in place. - // - try { Function.prototype.apply.call(console.log, console, messages); } - catch (e) {} -} - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/modifiers/namespace-ansi.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/modifiers/namespace-ansi.js ***! - \**************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var colorspace = __webpack_require__(/*! colorspace */ "./node_modules/cht-core-4-0/api/node_modules/colorspace/index.js"); -var kuler = __webpack_require__(/*! kuler */ "./node_modules/cht-core-4-0/api/node_modules/kuler/index.js"); - -/** - * Prefix the messages with a colored namespace. - * - * @param {Array} args The messages array that is getting written. - * @param {Object} options Options for diagnostics. - * @returns {Array} Altered messages array. - * @public - */ -module.exports = function ansiModifier(args, options) { - var namespace = options.namespace; - var ansi = options.colors !== false - ? kuler(namespace +':', colorspace(namespace)) - : namespace +':'; - - args[0] = ansi +' '+ args[0]; - return args; +module['exports'] = function runTheTrap(text, options) { + var result = ''; + text = text || 'Run the trap, drop the bass'; + text = text.split(''); + var trap = { + a: ['\u0040', '\u0104', '\u023a', '\u0245', '\u0394', '\u039b', '\u0414'], + b: ['\u00df', '\u0181', '\u0243', '\u026e', '\u03b2', '\u0e3f'], + c: ['\u00a9', '\u023b', '\u03fe'], + d: ['\u00d0', '\u018a', '\u0500', '\u0501', '\u0502', '\u0503'], + e: ['\u00cb', '\u0115', '\u018e', '\u0258', '\u03a3', '\u03be', '\u04bc', + '\u0a6c'], + f: ['\u04fa'], + g: ['\u0262'], + h: ['\u0126', '\u0195', '\u04a2', '\u04ba', '\u04c7', '\u050a'], + i: ['\u0f0f'], + j: ['\u0134'], + k: ['\u0138', '\u04a0', '\u04c3', '\u051e'], + l: ['\u0139'], + m: ['\u028d', '\u04cd', '\u04ce', '\u0520', '\u0521', '\u0d69'], + n: ['\u00d1', '\u014b', '\u019d', '\u0376', '\u03a0', '\u048a'], + o: ['\u00d8', '\u00f5', '\u00f8', '\u01fe', '\u0298', '\u047a', '\u05dd', + '\u06dd', '\u0e4f'], + p: ['\u01f7', '\u048e'], + q: ['\u09cd'], + r: ['\u00ae', '\u01a6', '\u0210', '\u024c', '\u0280', '\u042f'], + s: ['\u00a7', '\u03de', '\u03df', '\u03e8'], + t: ['\u0141', '\u0166', '\u0373'], + u: ['\u01b1', '\u054d'], + v: ['\u05d8'], + w: ['\u0428', '\u0460', '\u047c', '\u0d70'], + x: ['\u04b2', '\u04fe', '\u04fc', '\u04fd'], + y: ['\u00a5', '\u04b0', '\u04cb'], + z: ['\u01b5', '\u0240'], + }; + text.forEach(function(c) { + c = c.toLowerCase(); + var chars = trap[c] || [' ']; + var rand = Math.floor(Math.random() * chars.length); + if (typeof trap[c] !== 'undefined') { + result += trap[c][rand]; + } else { + result += c; + } + }); + return result; }; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/node/development.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/node/development.js ***! - \******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var create = __webpack_require__(/*! ../diagnostics */ "./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/diagnostics.js"); -var tty = __webpack_require__(/*! tty */ "tty").isatty(1); - -/** - * Create a new diagnostics logger. - * - * @param {String} namespace The namespace it should enable. - * @param {Object} options Additional options. - * @returns {Function} The logger. - * @public - */ -var diagnostics = create(function dev(namespace, options) { - options = options || {}; - options.colors = 'colors' in options ? options.colors : tty; - options.namespace = namespace; - options.prod = false; - options.dev = true; - - if (!dev.enabled(namespace) && !(options.force || dev.force)) { - return dev.nope(options); - } - - return dev.yep(options); -}); +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/zalgo.js": +/*!********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/zalgo.js ***! + \********************************************************************************/ +/***/ ((module) => { -// -// Configure the logger for the given environment. -// -diagnostics.modify(__webpack_require__(/*! ../modifiers/namespace-ansi */ "./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/modifiers/namespace-ansi.js")); -diagnostics.use(__webpack_require__(/*! ../adapters/process.env */ "./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/adapters/process.env.js")); -diagnostics.set(__webpack_require__(/*! ../logger/console */ "./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/logger/console.js")); +// please no +module['exports'] = function zalgo(text, options) { + text = text || ' he is here '; + var soul = { + 'up': [ + '̍', '̎', '̄', '̅', + '̿', '̑', '̆', '̐', + '͒', '͗', '͑', '̇', + '̈', '̊', '͂', '̓', + '̈', '͊', '͋', '͌', + '̃', '̂', '̌', '͐', + '̀', '́', '̋', '̏', + '̒', '̓', '̔', '̽', + '̉', 'ͣ', 'ͤ', 'ͥ', + 'ͦ', 'ͧ', 'ͨ', 'ͩ', + 'ͪ', 'ͫ', 'ͬ', 'ͭ', + 'ͮ', 'ͯ', '̾', '͛', + '͆', '̚', + ], + 'down': [ + '̖', '̗', '̘', '̙', + '̜', '̝', '̞', '̟', + '̠', '̤', '̥', '̦', + '̩', '̪', '̫', '̬', + '̭', '̮', '̯', '̰', + '̱', '̲', '̳', '̹', + '̺', '̻', '̼', 'ͅ', + '͇', '͈', '͉', '͍', + '͎', '͓', '͔', '͕', + '͖', '͙', '͚', '̣', + ], + 'mid': [ + '̕', '̛', '̀', '́', + '͘', '̡', '̢', '̧', + '̨', '̴', '̵', '̶', + '͜', '͝', '͞', + '͟', '͠', '͢', '̸', + '̷', '͡', ' ҉', + ], + }; + var all = [].concat(soul.up, soul.down, soul.mid); + + function randomNumber(range) { + var r = Math.floor(Math.random() * range); + return r; + } + + function isChar(character) { + var bool = false; + all.filter(function(i) { + bool = (i === character); + }); + return bool; + } + + + function heComes(text, options) { + var result = ''; + var counts; + var l; + options = options || {}; + options['up'] = + typeof options['up'] !== 'undefined' ? options['up'] : true; + options['mid'] = + typeof options['mid'] !== 'undefined' ? options['mid'] : true; + options['down'] = + typeof options['down'] !== 'undefined' ? options['down'] : true; + options['size'] = + typeof options['size'] !== 'undefined' ? options['size'] : 'maxi'; + text = text.split(''); + for (l in text) { + if (isChar(l)) { + continue; + } + result = result + text[l]; + counts = {'up': 0, 'down': 0, 'mid': 0}; + switch (options.size) { + case 'mini': + counts.up = randomNumber(8); + counts.mid = randomNumber(2); + counts.down = randomNumber(8); + break; + case 'maxi': + counts.up = randomNumber(16) + 3; + counts.mid = randomNumber(4) + 1; + counts.down = randomNumber(64) + 3; + break; + default: + counts.up = randomNumber(8) + 1; + counts.mid = randomNumber(6) / 2; + counts.down = randomNumber(8) + 1; + break; + } + + var arr = ['up', 'mid', 'down']; + for (var d in arr) { + var index = arr[d]; + for (var i = 0; i <= counts[index]; i++) { + if (options[index]) { + result = result + soul[index][randomNumber(soul[index].length)]; + } + } + } + } + return result; + } + // don't summon him + return heComes(text, options); +}; -// -// Expose the diagnostics logger. -// -module.exports = diagnostics; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/node/index.js": -/*!************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/node/index.js ***! - \************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/america.js": +/*!********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/america.js ***! + \********************************************************************************/ +/***/ ((module) => { -// -// Select the correct build version depending on the environment. -// -if (false) {} else { - module.exports = __webpack_require__(/*! ./development.js */ "./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/node/development.js"); -} +module['exports'] = function(colors) { + return function(letter, i, exploded) { + if (letter === ' ') return letter; + switch (i%3) { + case 0: return colors.red(letter); + case 1: return colors.white(letter); + case 2: return colors.blue(letter); + } + }; +}; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/asyncify.js": -/*!**********************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/asyncify.js ***! - \**********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/rainbow.js": +/*!********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/rainbow.js ***! + \********************************************************************************/ +/***/ ((module) => { -"use strict"; +module['exports'] = function(colors) { + // RoY G BiV + var rainbowColors = ['red', 'yellow', 'green', 'blue', 'magenta']; + return function(letter, i, exploded) { + if (letter === ' ') { + return letter; + } else { + return colors[rainbowColors[i++ % rainbowColors.length]](letter); + } + }; +}; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.default = asyncify; -var _initialParams = __webpack_require__(/*! ./internal/initialParams.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/initialParams.js"); +/***/ }), -var _initialParams2 = _interopRequireDefault(_initialParams); +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/random.js": +/*!*******************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/random.js ***! + \*******************************************************************************/ +/***/ ((module) => { -var _setImmediate = __webpack_require__(/*! ./internal/setImmediate.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/setImmediate.js"); +module['exports'] = function(colors) { + var available = ['underline', 'inverse', 'grey', 'yellow', 'red', 'green', + 'blue', 'white', 'cyan', 'magenta', 'brightYellow', 'brightRed', + 'brightGreen', 'brightBlue', 'brightWhite', 'brightCyan', 'brightMagenta']; + return function(letter, i, exploded) { + return letter === ' ' ? letter : + colors[ + available[Math.round(Math.random() * (available.length - 2))] + ](letter); + }; +}; -var _setImmediate2 = _interopRequireDefault(_setImmediate); -var _wrapAsync = __webpack_require__(/*! ./internal/wrapAsync.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/wrapAsync.js"); +/***/ }), -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/zebra.js": +/*!******************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/zebra.js ***! + \******************************************************************************/ +/***/ ((module) => { -/** - * Take a sync function and make it async, passing its return value to a - * callback. This is useful for plugging sync functions into a waterfall, - * series, or other async functions. Any arguments passed to the generated - * function will be passed to the wrapped function (except for the final - * callback argument). Errors thrown will be passed to the callback. - * - * If the function passed to `asyncify` returns a Promise, that promises's - * resolved/rejected state will be used to call the callback, rather than simply - * the synchronous return value. - * - * This also means you can asyncify ES2017 `async` functions. - * - * @name asyncify - * @static - * @memberOf module:Utils - * @method - * @alias wrapSync - * @category Util - * @param {Function} func - The synchronous function, or Promise-returning - * function to convert to an {@link AsyncFunction}. - * @returns {AsyncFunction} An asynchronous wrapper of the `func`. To be - * invoked with `(args..., callback)`. - * @example - * - * // passing a regular synchronous function - * async.waterfall([ - * async.apply(fs.readFile, filename, "utf8"), - * async.asyncify(JSON.parse), - * function (data, next) { - * // data is the result of parsing the text. - * // If there was a parsing error, it would have been caught. - * } - * ], callback); - * - * // passing a function returning a promise - * async.waterfall([ - * async.apply(fs.readFile, filename, "utf8"), - * async.asyncify(function (contents) { - * return db.model.create(contents); - * }), - * function (model, next) { - * // `model` is the instantiated model object. - * // If there was an error, this function would be skipped. - * } - * ], callback); - * - * // es2017 example, though `asyncify` is not needed if your JS environment - * // supports async functions out of the box - * var q = async.queue(async.asyncify(async function(file) { - * var intermediateStep = await processFile(file); - * return await somePromise(intermediateStep) - * })); - * - * q.push(files); - */ -function asyncify(func) { - if ((0, _wrapAsync.isAsync)(func)) { - return function (...args /*, callback*/) { - const callback = args.pop(); - const promise = func.apply(this, args); - return handlePromise(promise, callback); - }; - } +module['exports'] = function(colors) { + return function(letter, i, exploded) { + return i % 2 === 0 ? letter : colors.inverse(letter); + }; +}; - return (0, _initialParams2.default)(function (args, callback) { - var result; - try { - result = func.apply(this, args); - } catch (e) { - return callback(e); - } - // if result is Promise object - if (result && typeof result.then === 'function') { - return handlePromise(result, callback); - } else { - callback(null, result); - } - }); -} -function handlePromise(promise, callback) { - return promise.then(value => { - invokeCallback(callback, null, value); - }, err => { - invokeCallback(callback, err && err.message ? err : new Error(err)); - }); -} +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/styles.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/styles.js ***! + \**************************************************************************/ +/***/ ((module) => { + +/* +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ + +var styles = {}; +module['exports'] = styles; + +var codes = { + reset: [0, 0], + + bold: [1, 22], + dim: [2, 22], + italic: [3, 23], + underline: [4, 24], + inverse: [7, 27], + hidden: [8, 28], + strikethrough: [9, 29], + + black: [30, 39], + red: [31, 39], + green: [32, 39], + yellow: [33, 39], + blue: [34, 39], + magenta: [35, 39], + cyan: [36, 39], + white: [37, 39], + gray: [90, 39], + grey: [90, 39], + + brightRed: [91, 39], + brightGreen: [92, 39], + brightYellow: [93, 39], + brightBlue: [94, 39], + brightMagenta: [95, 39], + brightCyan: [96, 39], + brightWhite: [97, 39], + + bgBlack: [40, 49], + bgRed: [41, 49], + bgGreen: [42, 49], + bgYellow: [43, 49], + bgBlue: [44, 49], + bgMagenta: [45, 49], + bgCyan: [46, 49], + bgWhite: [47, 49], + bgGray: [100, 49], + bgGrey: [100, 49], + + bgBrightRed: [101, 49], + bgBrightGreen: [102, 49], + bgBrightYellow: [103, 49], + bgBrightBlue: [104, 49], + bgBrightMagenta: [105, 49], + bgBrightCyan: [106, 49], + bgBrightWhite: [107, 49], + + // legacy styles for colors pre v1.0.0 + blackBG: [40, 49], + redBG: [41, 49], + greenBG: [42, 49], + yellowBG: [43, 49], + blueBG: [44, 49], + magentaBG: [45, 49], + cyanBG: [46, 49], + whiteBG: [47, 49], + +}; + +Object.keys(codes).forEach(function(key) { + var val = codes[key]; + var style = styles[key] = []; + style.open = '\u001b[' + val[0] + 'm'; + style.close = '\u001b[' + val[1] + 'm'; +}); -function invokeCallback(callback, error, value) { - try { - callback(error, value); - } catch (err) { - (0, _setImmediate2.default)(e => { - throw e; - }, err); - } -} -module.exports = exports['default']; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/eachOf.js": -/*!********************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/eachOf.js ***! - \********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/has-flag.js": +/*!***********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/has-flag.js ***! + \***********************************************************************************/ +/***/ ((module) => { "use strict"; +/* +MIT License +Copyright (c) Sindre Sorhus (sindresorhus.com) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: -var _isArrayLike = __webpack_require__(/*! ./internal/isArrayLike.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/isArrayLike.js"); +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -var _isArrayLike2 = _interopRequireDefault(_isArrayLike); +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ -var _breakLoop = __webpack_require__(/*! ./internal/breakLoop.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/breakLoop.js"); -var _breakLoop2 = _interopRequireDefault(_breakLoop); -var _eachOfLimit = __webpack_require__(/*! ./eachOfLimit.js */ "./node_modules/cht-core-4-0/api/node_modules/async/eachOfLimit.js"); +module.exports = function(flag, argv) { + argv = argv || process.argv; -var _eachOfLimit2 = _interopRequireDefault(_eachOfLimit); + var terminatorPos = argv.indexOf('--'); + var prefix = /^-{1,2}/.test(flag) ? '' : '--'; + var pos = argv.indexOf(prefix + flag); -var _once = __webpack_require__(/*! ./internal/once.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/once.js"); + return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); +}; -var _once2 = _interopRequireDefault(_once); -var _onlyOnce = __webpack_require__(/*! ./internal/onlyOnce.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/onlyOnce.js"); +/***/ }), -var _onlyOnce2 = _interopRequireDefault(_onlyOnce); +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/supports-colors.js": +/*!******************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/supports-colors.js ***! + \******************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_37135__) => { -var _wrapAsync = __webpack_require__(/*! ./internal/wrapAsync.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/wrapAsync.js"); +"use strict"; +/* +The MIT License (MIT) -var _wrapAsync2 = _interopRequireDefault(_wrapAsync); +Copyright (c) Sindre Sorhus (sindresorhus.com) -var _awaitify = __webpack_require__(/*! ./internal/awaitify.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/awaitify.js"); +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -var _awaitify2 = _interopRequireDefault(_awaitify); +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. -// eachOf implementation optimized for array-likes -function eachOfArrayLike(coll, iteratee, callback) { - callback = (0, _once2.default)(callback); - var index = 0, - completed = 0, - { length } = coll, - canceled = false; - if (length === 0) { - callback(null); - } +*/ - function iteratorCallback(err, value) { - if (err === false) { - canceled = true; - } - if (canceled === true) return; - if (err) { - callback(err); - } else if (++completed === length || value === _breakLoop2.default) { - callback(null); - } - } - for (; index < length; index++) { - iteratee(coll[index], index, (0, _onlyOnce2.default)(iteratorCallback)); - } + +var os = __nested_webpack_require_37135__(/*! os */ "os"); +var hasFlag = __nested_webpack_require_37135__(/*! ./has-flag.js */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/has-flag.js"); + +var env = process.env; + +var forceColor = void 0; +if (hasFlag('no-color') || hasFlag('no-colors') || hasFlag('color=false')) { + forceColor = false; +} else if (hasFlag('color') || hasFlag('colors') || hasFlag('color=true') + || hasFlag('color=always')) { + forceColor = true; +} +if ('FORCE_COLOR' in env) { + forceColor = env.FORCE_COLOR.length === 0 + || parseInt(env.FORCE_COLOR, 10) !== 0; } -// a generic version of eachOf which can handle array, object, and iterator cases. -function eachOfGeneric(coll, iteratee, callback) { - return (0, _eachOfLimit2.default)(coll, Infinity, iteratee, callback); +function translateLevel(level) { + if (level === 0) { + return false; + } + + return { + level: level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3, + }; } -/** - * Like [`each`]{@link module:Collections.each}, except that it passes the key (or index) as the second argument - * to the iteratee. - * - * @name eachOf - * @static - * @memberOf module:Collections - * @method - * @alias forEachOf - * @category Collection - * @see [async.each]{@link module:Collections.each} - * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over. - * @param {AsyncFunction} iteratee - A function to apply to each - * item in `coll`. - * The `key` is the item's key, or index in the case of an array. - * Invoked with (item, key, callback). - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - * @returns {Promise} a promise, if a callback is omitted - * @example - * - * // dev.json is a file containing a valid json object config for dev environment - * // dev.json is a file containing a valid json object config for test environment - * // prod.json is a file containing a valid json object config for prod environment - * // invalid.json is a file with a malformed json object - * - * let configs = {}; //global variable - * let validConfigFileMap = {dev: 'dev.json', test: 'test.json', prod: 'prod.json'}; - * let invalidConfigFileMap = {dev: 'dev.json', test: 'test.json', invalid: 'invalid.json'}; - * - * // asynchronous function that reads a json file and parses the contents as json object - * function parseFile(file, key, callback) { - * fs.readFile(file, "utf8", function(err, data) { - * if (err) return calback(err); - * try { - * configs[key] = JSON.parse(data); - * } catch (e) { - * return callback(e); - * } - * callback(); - * }); - * } - * - * // Using callbacks - * async.forEachOf(validConfigFileMap, parseFile, function (err) { - * if (err) { - * console.error(err); - * } else { - * console.log(configs); - * // configs is now a map of JSON data, e.g. - * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json} - * } - * }); - * - * //Error handing - * async.forEachOf(invalidConfigFileMap, parseFile, function (err) { - * if (err) { - * console.error(err); - * // JSON parse error exception - * } else { - * console.log(configs); - * } - * }); - * - * // Using Promises - * async.forEachOf(validConfigFileMap, parseFile) - * .then( () => { - * console.log(configs); - * // configs is now a map of JSON data, e.g. - * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json} - * }).catch( err => { - * console.error(err); - * }); - * - * //Error handing - * async.forEachOf(invalidConfigFileMap, parseFile) - * .then( () => { - * console.log(configs); - * }).catch( err => { - * console.error(err); - * // JSON parse error exception - * }); - * - * // Using async/await - * async () => { - * try { - * let result = await async.forEachOf(validConfigFileMap, parseFile); - * console.log(configs); - * // configs is now a map of JSON data, e.g. - * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json} - * } - * catch (err) { - * console.log(err); - * } - * } - * - * //Error handing - * async () => { - * try { - * let result = await async.forEachOf(invalidConfigFileMap, parseFile); - * console.log(configs); - * } - * catch (err) { - * console.log(err); - * // JSON parse error exception - * } - * } - * - */ -function eachOf(coll, iteratee, callback) { - var eachOfImplementation = (0, _isArrayLike2.default)(coll) ? eachOfArrayLike : eachOfGeneric; - return eachOfImplementation(coll, (0, _wrapAsync2.default)(iteratee), callback); -} +function supportsColor(stream) { + if (forceColor === false) { + return 0; + } -exports.default = (0, _awaitify2.default)(eachOf, 3); -module.exports = exports['default']; + if (hasFlag('color=16m') || hasFlag('color=full') + || hasFlag('color=truecolor')) { + return 3; + } -/***/ }), + if (hasFlag('color=256')) { + return 2; + } -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/eachOfLimit.js": -/*!*************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/eachOfLimit.js ***! - \*************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { + if (stream && !stream.isTTY && forceColor !== true) { + return 0; + } -"use strict"; + var min = forceColor ? 1 : 0; + if (process.platform === 'win32') { + // Node.js 7.5.0 is the first version of Node.js to include a patch to + // libuv that enables 256 color output on Windows. Anything earlier and it + // won't work. However, here we target Node.js 8 at minimum as it is an LTS + // release, and Node.js 7 is not. Windows 10 build 10586 is the first + // Windows release that supports 256 colors. Windows 10 build 14931 is the + // first release that supports 16m/TrueColor. + var osRelease = os.release().split('.'); + if (Number(process.versions.node.split('.')[0]) >= 8 + && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } -Object.defineProperty(exports, "__esModule", ({ - value: true -})); + return 1; + } -var _eachOfLimit2 = __webpack_require__(/*! ./internal/eachOfLimit.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/eachOfLimit.js"); + if ('CI' in env) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(function(sign) { + return sign in env; + }) || env.CI_NAME === 'codeship') { + return 1; + } -var _eachOfLimit3 = _interopRequireDefault(_eachOfLimit2); + return min; + } -var _wrapAsync = __webpack_require__(/*! ./internal/wrapAsync.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/wrapAsync.js"); + if ('TEAMCITY_VERSION' in env) { + return (/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0 + ); + } -var _wrapAsync2 = _interopRequireDefault(_wrapAsync); + if ('TERM_PROGRAM' in env) { + var version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); -var _awaitify = __webpack_require__(/*! ./internal/awaitify.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/awaitify.js"); + switch (env.TERM_PROGRAM) { + case 'iTerm.app': + return version >= 3 ? 3 : 2; + case 'Hyper': + return 3; + case 'Apple_Terminal': + return 2; + // No default + } + } -var _awaitify2 = _interopRequireDefault(_awaitify); + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + if (/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } -/** - * The same as [`eachOf`]{@link module:Collections.eachOf} but runs a maximum of `limit` async operations at a - * time. - * - * @name eachOfLimit - * @static - * @memberOf module:Collections - * @method - * @see [async.eachOf]{@link module:Collections.eachOf} - * @alias forEachOfLimit - * @category Collection - * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over. - * @param {number} limit - The maximum number of async operations at a time. - * @param {AsyncFunction} iteratee - An async function to apply to each - * item in `coll`. The `key` is the item's key, or index in the case of an - * array. - * Invoked with (item, key, callback). - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - * @returns {Promise} a promise, if a callback is omitted - */ -function eachOfLimit(coll, limit, iteratee, callback) { - return (0, _eachOfLimit3.default)(limit)(coll, (0, _wrapAsync2.default)(iteratee), callback); -} + if ('COLORTERM' in env) { + return 1; + } -exports.default = (0, _awaitify2.default)(eachOfLimit, 4); -module.exports = exports['default']; + if (env.TERM === 'dumb') { + return min; + } -/***/ }), + return min; +} -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/eachOfSeries.js": -/*!**************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/eachOfSeries.js ***! - \**************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { +function getSupportLevel(stream) { + var level = supportsColor(stream); + return translateLevel(level); +} -"use strict"; +module.exports = { + supportsColor: getSupportLevel, + stdout: getSupportLevel(process.stdout), + stderr: getSupportLevel(process.stderr), +}; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); +/***/ }), -var _eachOfLimit = __webpack_require__(/*! ./eachOfLimit.js */ "./node_modules/cht-core-4-0/api/node_modules/async/eachOfLimit.js"); +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/safe.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/safe.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_41675__) => { -var _eachOfLimit2 = _interopRequireDefault(_eachOfLimit); +// +// Remark: Requiring this file will use the "safe" colors API, +// which will not touch String.prototype. +// +// var colors = require('colors/safe'); +// colors.red("foo") +// +// +var colors = __nested_webpack_require_41675__(/*! ./lib/colors */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/colors.js"); +module['exports'] = colors; -var _awaitify = __webpack_require__(/*! ./internal/awaitify.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/awaitify.js"); -var _awaitify2 = _interopRequireDefault(_awaitify); +/***/ }), -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +/***/ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/index.js": +/*!*********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/index.js ***! + \*********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_42434__) => { + +var enabled = __nested_webpack_require_42434__(/*! enabled */ "./build/cht-core-4-6/api/node_modules/enabled/index.js"); /** - * The same as [`eachOf`]{@link module:Collections.eachOf} but runs only a single async operation at a time. + * Creates a new Adapter. * - * @name eachOfSeries - * @static - * @memberOf module:Collections - * @method - * @see [async.eachOf]{@link module:Collections.eachOf} - * @alias forEachOfSeries - * @category Collection - * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over. - * @param {AsyncFunction} iteratee - An async function to apply to each item in - * `coll`. - * Invoked with (item, key, callback). - * @param {Function} [callback] - A callback which is called when all `iteratee` - * functions have finished, or an error occurs. Invoked with (err). - * @returns {Promise} a promise, if a callback is omitted + * @param {Function} fn Function that returns the value. + * @returns {Function} The adapter logic. + * @public */ -function eachOfSeries(coll, iteratee, callback) { - return (0, _eachOfLimit2.default)(coll, 1, iteratee, callback); -} -exports.default = (0, _awaitify2.default)(eachOfSeries, 3); -module.exports = exports['default']; +module.exports = function create(fn) { + return function adapter(namespace) { + try { + return enabled(namespace, fn()); + } catch (e) { /* Any failure means that we found nothing */ } -/***/ }), + return false; + }; +} -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/forEach.js": -/*!*********************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/forEach.js ***! - \*********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { -"use strict"; +/***/ }), +/***/ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/process.env.js": +/*!***************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/process.env.js ***! + \***************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_43358__) => { -Object.defineProperty(exports, "__esModule", ({ - value: true -})); +var adapter = __nested_webpack_require_43358__(/*! ./ */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/index.js"); -var _eachOf = __webpack_require__(/*! ./eachOf.js */ "./node_modules/cht-core-4-0/api/node_modules/async/eachOf.js"); +/** + * Extracts the values from process.env. + * + * @type {Function} + * @public + */ +module.exports = adapter(function processenv() { + return process.env.DEBUG || process.env.DIAGNOSTICS; +}); -var _eachOf2 = _interopRequireDefault(_eachOf); -var _withoutIndex = __webpack_require__(/*! ./internal/withoutIndex.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/withoutIndex.js"); +/***/ }), -var _withoutIndex2 = _interopRequireDefault(_withoutIndex); +/***/ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/diagnostics.js": +/*!******************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/diagnostics.js ***! + \******************************************************************************/ +/***/ ((module) => { -var _wrapAsync = __webpack_require__(/*! ./internal/wrapAsync.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/wrapAsync.js"); +/** + * Contains all configured adapters for the given environment. + * + * @type {Array} + * @public + */ +var adapters = []; -var _wrapAsync2 = _interopRequireDefault(_wrapAsync); +/** + * Contains all modifier functions. + * + * @typs {Array} + * @public + */ +var modifiers = []; -var _awaitify = __webpack_require__(/*! ./internal/awaitify.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/awaitify.js"); +/** + * Our default logger. + * + * @public + */ +var logger = function devnull() {}; -var _awaitify2 = _interopRequireDefault(_awaitify); +/** + * Register a new adapter that will used to find environments. + * + * @param {Function} adapter A function that will return the possible env. + * @returns {Boolean} Indication of a successful add. + * @public + */ +function use(adapter) { + if (~adapters.indexOf(adapter)) return false; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + adapters.push(adapter); + return true; +} /** - * Applies the function `iteratee` to each item in `coll`, in parallel. - * The `iteratee` is called with an item from the list, and a callback for when - * it has finished. If the `iteratee` passes an error to its `callback`, the - * main `callback` (for the `each` function) is immediately called with the - * error. - * - * Note, that since this function applies `iteratee` to each item in parallel, - * there is no guarantee that the iteratee functions will complete in order. - * - * @name each - * @static - * @memberOf module:Collections - * @method - * @alias forEach - * @category Collection - * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over. - * @param {AsyncFunction} iteratee - An async function to apply to - * each item in `coll`. Invoked with (item, callback). - * The array index is not passed to the iteratee. - * If you need the index, use `eachOf`. - * @param {Function} [callback] - A callback which is called when all - * `iteratee` functions have finished, or an error occurs. Invoked with (err). - * @returns {Promise} a promise, if a callback is omitted - * @example - * - * // dir1 is a directory that contains file1.txt, file2.txt - * // dir2 is a directory that contains file3.txt, file4.txt - * // dir3 is a directory that contains file5.txt - * // dir4 does not exist - * - * const fileList = [ 'dir1/file2.txt', 'dir2/file3.txt', 'dir/file5.txt']; - * const withMissingFileList = ['dir1/file1.txt', 'dir4/file2.txt']; - * - * // asynchronous function that deletes a file - * const deleteFile = function(file, callback) { - * fs.unlink(file, callback); - * }; - * - * // Using callbacks - * async.each(fileList, deleteFile, function(err) { - * if( err ) { - * console.log(err); - * } else { - * console.log('All files have been deleted successfully'); - * } - * }); - * - * // Error Handling - * async.each(withMissingFileList, deleteFile, function(err){ - * console.log(err); - * // [ Error: ENOENT: no such file or directory ] - * // since dir4/file2.txt does not exist - * // dir1/file1.txt could have been deleted - * }); - * - * // Using Promises - * async.each(fileList, deleteFile) - * .then( () => { - * console.log('All files have been deleted successfully'); - * }).catch( err => { - * console.log(err); - * }); - * - * // Error Handling - * async.each(fileList, deleteFile) - * .then( () => { - * console.log('All files have been deleted successfully'); - * }).catch( err => { - * console.log(err); - * // [ Error: ENOENT: no such file or directory ] - * // since dir4/file2.txt does not exist - * // dir1/file1.txt could have been deleted - * }); - * - * // Using async/await - * async () => { - * try { - * await async.each(files, deleteFile); - * } - * catch (err) { - * console.log(err); - * } - * } - * - * // Error Handling - * async () => { - * try { - * await async.each(withMissingFileList, deleteFile); - * } - * catch (err) { - * console.log(err); - * // [ Error: ENOENT: no such file or directory ] - * // since dir4/file2.txt does not exist - * // dir1/file1.txt could have been deleted - * } - * } + * Assign a new log method. * + * @param {Function} custom The log method. + * @public */ -function eachLimit(coll, iteratee, callback) { - return (0, _eachOf2.default)(coll, (0, _withoutIndex2.default)((0, _wrapAsync2.default)(iteratee)), callback); +function set(custom) { + logger = custom; } -exports.default = (0, _awaitify2.default)(eachLimit, 3); -module.exports = exports['default']; +/** + * Check if the namespace is allowed by any of our adapters. + * + * @param {String} namespace The namespace that needs to be enabled + * @returns {Boolean|Promise} Indication if the namespace is enabled by our adapters. + * @public + */ +function enabled(namespace) { + var async = []; -/***/ }), + for (var i = 0; i < adapters.length; i++) { + if (adapters[i].async) { + async.push(adapters[i]); + continue; + } -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/internal/asyncEachOfLimit.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/internal/asyncEachOfLimit.js ***! - \***************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { + if (adapters[i](namespace)) return true; + } -"use strict"; + if (!async.length) return false; + // + // Now that we know that we Async functions, we know we run in an ES6 + // environment and can use all the API's that they offer, in this case + // we want to return a Promise so that we can `await` in React-Native + // for an async adapter. + // + return new Promise(function pinky(resolve) { + Promise.all( + async.map(function prebind(fn) { + return fn(namespace); + }) + ).then(function resolved(values) { + resolve(values.some(Boolean)); + }); + }); +} -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.default = asyncEachOfLimit; +/** + * Add a new message modifier to the debugger. + * + * @param {Function} fn Modification function. + * @returns {Boolean} Indication of a successful add. + * @public + */ +function modify(fn) { + if (~modifiers.indexOf(fn)) return false; -var _breakLoop = __webpack_require__(/*! ./breakLoop.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/breakLoop.js"); + modifiers.push(fn); + return true; +} -var _breakLoop2 = _interopRequireDefault(_breakLoop); +/** + * Write data to the supplied logger. + * + * @param {Object} meta Meta information about the log. + * @param {Array} args Arguments for console.log. + * @public + */ +function write() { + logger.apply(logger, arguments); +} -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +/** + * Process the message with the modifiers. + * + * @param {Mixed} message The message to be transformed by modifers. + * @returns {String} Transformed message. + * @public + */ +function process(message) { + for (var i = 0; i < modifiers.length; i++) { + message = modifiers[i].apply(modifiers[i], arguments); + } -// for async generators -function asyncEachOfLimit(generator, limit, iteratee, callback) { - let done = false; - let canceled = false; - let awaiting = false; - let running = 0; - let idx = 0; + return message; +} - function replenish() { - //console.log('replenish') - if (running >= limit || awaiting || done) return; - //console.log('replenish awaiting') - awaiting = true; - generator.next().then(({ value, done: iterDone }) => { - //console.log('got value', value) - if (canceled || done) return; - awaiting = false; - if (iterDone) { - done = true; - if (running <= 0) { - //console.log('done nextCb') - callback(null); - } - return; - } - running++; - iteratee(value, idx, iterateeCallback); - idx++; - replenish(); - }).catch(handleError); - } - - function iterateeCallback(err, result) { - //console.log('iterateeCallback') - running -= 1; - if (canceled) return; - if (err) return handleError(err); - - if (err === false) { - done = true; - canceled = true; - return; - } - - if (result === _breakLoop2.default || done && running <= 0) { - done = true; - //console.log('done iterCb') - return callback(null); - } - replenish(); - } +/** + * Introduce options to the logger function. + * + * @param {Function} fn Calback function. + * @param {Object} options Properties to introduce on fn. + * @returns {Function} The passed function + * @public + */ +function introduce(fn, options) { + var has = Object.prototype.hasOwnProperty; - function handleError(err) { - if (canceled) return; - awaiting = false; - done = true; - callback(err); + for (var key in options) { + if (has.call(options, key)) { + fn[key] = options[key]; } + } - replenish(); + return fn; } -module.exports = exports['default']; -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/internal/awaitify.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/internal/awaitify.js ***! - \*******************************************************************************/ -/***/ ((module, exports) => { +/** + * Nope, we're not allowed to write messages. + * + * @returns {Boolean} false + * @public + */ +function nope(options) { + options.enabled = false; + options.modify = modify; + options.set = set; + options.use = use; -"use strict"; + return introduce(function diagnopes() { + return false; + }, options); +} +/** + * Yep, we're allowed to write debug messages. + * + * @param {Object} options The options for the process. + * @returns {Function} The function that does the logging. + * @public + */ +function yep(options) { + /** + * The function that receives the actual debug information. + * + * @returns {Boolean} indication that we're logging. + * @public + */ + function diagnostics() { + var args = Array.prototype.slice.call(arguments, 0); -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.default = awaitify; -// conditionally promisify a function. -// only return a promise if a callback is omitted -function awaitify(asyncFn, arity = asyncFn.length) { - if (!arity) throw new Error('arity is undefined'); - function awaitable(...args) { - if (typeof args[arity - 1] === 'function') { - return asyncFn.apply(this, args); - } + write.call(write, options, process(args, options)); + return true; + } - return new Promise((resolve, reject) => { - args[arity - 1] = (err, ...cbArgs) => { - if (err) return reject(err); - resolve(cbArgs.length > 1 ? cbArgs : cbArgs[0]); - }; - asyncFn.apply(this, args); - }); - } + options.enabled = true; + options.modify = modify; + options.set = set; + options.use = use; - return awaitable; + return introduce(diagnostics, options); } -module.exports = exports['default']; - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/internal/breakLoop.js": -/*!********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/internal/breakLoop.js ***! - \********************************************************************************/ -/***/ ((module, exports) => { -"use strict"; +/** + * Simple helper function to introduce various of helper methods to our given + * diagnostics function. + * + * @param {Function} diagnostics The diagnostics function. + * @returns {Function} diagnostics + * @public + */ +module.exports = function create(diagnostics) { + diagnostics.introduce = introduce; + diagnostics.enabled = enabled; + diagnostics.process = process; + diagnostics.modify = modify; + diagnostics.write = write; + diagnostics.nope = nope; + diagnostics.yep = yep; + diagnostics.set = set; + diagnostics.use = use; + return diagnostics; +} -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -// A temporary value used to identify if the loop should be broken. -// See #1064, #1293 -const breakLoop = {}; -exports.default = breakLoop; -module.exports = exports["default"]; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/internal/eachOfLimit.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/internal/eachOfLimit.js ***! - \**********************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/logger/console.js": +/*!*********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/logger/console.js ***! + \*********************************************************************************/ +/***/ ((module) => { -"use strict"; +/** + * An idiot proof logger to be used as default. We've wrapped it in a try/catch + * statement to ensure the environments without the `console` API do not crash + * as well as an additional fix for ancient browsers like IE8 where the + * `console.log` API doesn't have an `apply`, so we need to use the Function's + * apply functionality to apply the arguments. + * + * @param {Object} meta Options of the logger. + * @param {Array} messages The actuall message that needs to be logged. + * @public + */ +module.exports = function (meta, messages) { + // + // So yea. IE8 doesn't have an apply so we need a work around to puke the + // arguments in place. + // + try { Function.prototype.apply.call(console.log, console, messages); } + catch (e) {} +} -Object.defineProperty(exports, "__esModule", ({ - value: true -})); +/***/ }), -var _once = __webpack_require__(/*! ./once.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/once.js"); +/***/ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/modifiers/namespace-ansi.js": +/*!*******************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/modifiers/namespace-ansi.js ***! + \*******************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_50143__) => { -var _once2 = _interopRequireDefault(_once); +var colorspace = __nested_webpack_require_50143__(/*! colorspace */ "./build/cht-core-4-6/api/node_modules/colorspace/index.js"); +var kuler = __nested_webpack_require_50143__(/*! kuler */ "./build/cht-core-4-6/api/node_modules/kuler/index.js"); -var _iterator = __webpack_require__(/*! ./iterator.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/iterator.js"); +/** + * Prefix the messages with a colored namespace. + * + * @param {Array} args The messages array that is getting written. + * @param {Object} options Options for diagnostics. + * @returns {Array} Altered messages array. + * @public + */ +module.exports = function ansiModifier(args, options) { + var namespace = options.namespace; + var ansi = options.colors !== false + ? kuler(namespace +':', colorspace(namespace)) + : namespace +':'; -var _iterator2 = _interopRequireDefault(_iterator); + args[0] = ansi +' '+ args[0]; + return args; +}; -var _onlyOnce = __webpack_require__(/*! ./onlyOnce.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/onlyOnce.js"); -var _onlyOnce2 = _interopRequireDefault(_onlyOnce); +/***/ }), -var _wrapAsync = __webpack_require__(/*! ./wrapAsync.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/wrapAsync.js"); +/***/ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/development.js": +/*!***********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/development.js ***! + \***********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_51281__) => { -var _asyncEachOfLimit = __webpack_require__(/*! ./asyncEachOfLimit.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/asyncEachOfLimit.js"); +var create = __nested_webpack_require_51281__(/*! ../diagnostics */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/diagnostics.js"); +var tty = __nested_webpack_require_51281__(/*! tty */ "tty").isatty(1); -var _asyncEachOfLimit2 = _interopRequireDefault(_asyncEachOfLimit); +/** + * Create a new diagnostics logger. + * + * @param {String} namespace The namespace it should enable. + * @param {Object} options Additional options. + * @returns {Function} The logger. + * @public + */ +var diagnostics = create(function dev(namespace, options) { + options = options || {}; + options.colors = 'colors' in options ? options.colors : tty; + options.namespace = namespace; + options.prod = false; + options.dev = true; -var _breakLoop = __webpack_require__(/*! ./breakLoop.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/breakLoop.js"); + if (!dev.enabled(namespace) && !(options.force || dev.force)) { + return dev.nope(options); + } + + return dev.yep(options); +}); -var _breakLoop2 = _interopRequireDefault(_breakLoop); +// +// Configure the logger for the given environment. +// +diagnostics.modify(__nested_webpack_require_51281__(/*! ../modifiers/namespace-ansi */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/modifiers/namespace-ansi.js")); +diagnostics.use(__nested_webpack_require_51281__(/*! ../adapters/process.env */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/process.env.js")); +diagnostics.set(__nested_webpack_require_51281__(/*! ../logger/console */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/logger/console.js")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +// +// Expose the diagnostics logger. +// +module.exports = diagnostics; -exports.default = limit => { - return (obj, iteratee, callback) => { - callback = (0, _once2.default)(callback); - if (limit <= 0) { - throw new RangeError('concurrency limit cannot be less than 1'); - } - if (!obj) { - return callback(null); - } - if ((0, _wrapAsync.isAsyncGenerator)(obj)) { - return (0, _asyncEachOfLimit2.default)(obj, limit, iteratee, callback); - } - if ((0, _wrapAsync.isAsyncIterable)(obj)) { - return (0, _asyncEachOfLimit2.default)(obj[Symbol.asyncIterator](), limit, iteratee, callback); - } - var nextElem = (0, _iterator2.default)(obj); - var done = false; - var canceled = false; - var running = 0; - var looping = false; - function iterateeCallback(err, value) { - if (canceled) return; - running -= 1; - if (err) { - done = true; - callback(err); - } else if (err === false) { - done = true; - canceled = true; - } else if (value === _breakLoop2.default || done && running <= 0) { - done = true; - return callback(null); - } else if (!looping) { - replenish(); - } - } +/***/ }), - function replenish() { - looping = true; - while (running < limit && !done) { - var elem = nextElem(); - if (elem === null) { - done = true; - if (running <= 0) { - callback(null); - } - return; - } - running += 1; - iteratee(elem.value, elem.key, (0, _onlyOnce2.default)(iterateeCallback)); - } - looping = false; - } +/***/ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/index.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/index.js ***! + \*****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_53029__) => { - replenish(); - }; -}; +// +// Select the correct build version depending on the environment. +// +if (false) {} else { + module.exports = __nested_webpack_require_53029__(/*! ./development.js */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/development.js"); +} -module.exports = exports['default']; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/internal/getIterator.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/internal/getIterator.js ***! - \**********************************************************************************/ -/***/ ((module, exports) => { +/***/ "./build/cht-core-4-6/api/node_modules/async/asyncify.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/asyncify.js ***! + \***************************************************************/ +/***/ ((module, exports, __nested_webpack_require_53603__) => { "use strict"; @@ -1267,64 +1246,127 @@ module.exports = exports['default']; Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.default = asyncify; -exports.default = function (coll) { - return coll[Symbol.iterator] && coll[Symbol.iterator](); -}; - -module.exports = exports["default"]; - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/internal/initialParams.js": -/*!************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/internal/initialParams.js ***! - \************************************************************************************/ -/***/ ((module, exports) => { - -"use strict"; +var _initialParams = __nested_webpack_require_53603__(/*! ./internal/initialParams.js */ "./build/cht-core-4-6/api/node_modules/async/internal/initialParams.js"); +var _initialParams2 = _interopRequireDefault(_initialParams); -Object.defineProperty(exports, "__esModule", ({ - value: true -})); +var _setImmediate = __nested_webpack_require_53603__(/*! ./internal/setImmediate.js */ "./build/cht-core-4-6/api/node_modules/async/internal/setImmediate.js"); -exports.default = function (fn) { - return function (...args /*, callback*/) { - var callback = args.pop(); - return fn.call(this, args, callback); - }; -}; +var _setImmediate2 = _interopRequireDefault(_setImmediate); -module.exports = exports["default"]; +var _wrapAsync = __nested_webpack_require_53603__(/*! ./internal/wrapAsync.js */ "./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js"); -/***/ }), +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/internal/isArrayLike.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/internal/isArrayLike.js ***! - \**********************************************************************************/ -/***/ ((module, exports) => { +/** + * Take a sync function and make it async, passing its return value to a + * callback. This is useful for plugging sync functions into a waterfall, + * series, or other async functions. Any arguments passed to the generated + * function will be passed to the wrapped function (except for the final + * callback argument). Errors thrown will be passed to the callback. + * + * If the function passed to `asyncify` returns a Promise, that promises's + * resolved/rejected state will be used to call the callback, rather than simply + * the synchronous return value. + * + * This also means you can asyncify ES2017 `async` functions. + * + * @name asyncify + * @static + * @memberOf module:Utils + * @method + * @alias wrapSync + * @category Util + * @param {Function} func - The synchronous function, or Promise-returning + * function to convert to an {@link AsyncFunction}. + * @returns {AsyncFunction} An asynchronous wrapper of the `func`. To be + * invoked with `(args..., callback)`. + * @example + * + * // passing a regular synchronous function + * async.waterfall([ + * async.apply(fs.readFile, filename, "utf8"), + * async.asyncify(JSON.parse), + * function (data, next) { + * // data is the result of parsing the text. + * // If there was a parsing error, it would have been caught. + * } + * ], callback); + * + * // passing a function returning a promise + * async.waterfall([ + * async.apply(fs.readFile, filename, "utf8"), + * async.asyncify(function (contents) { + * return db.model.create(contents); + * }), + * function (model, next) { + * // `model` is the instantiated model object. + * // If there was an error, this function would be skipped. + * } + * ], callback); + * + * // es2017 example, though `asyncify` is not needed if your JS environment + * // supports async functions out of the box + * var q = async.queue(async.asyncify(async function(file) { + * var intermediateStep = await processFile(file); + * return await somePromise(intermediateStep) + * })); + * + * q.push(files); + */ +function asyncify(func) { + if ((0, _wrapAsync.isAsync)(func)) { + return function (...args /*, callback*/) { + const callback = args.pop(); + const promise = func.apply(this, args); + return handlePromise(promise, callback); + }; + } -"use strict"; + return (0, _initialParams2.default)(function (args, callback) { + var result; + try { + result = func.apply(this, args); + } catch (e) { + return callback(e); + } + // if result is Promise object + if (result && typeof result.then === 'function') { + return handlePromise(result, callback); + } else { + callback(null, result); + } + }); +} +function handlePromise(promise, callback) { + return promise.then(value => { + invokeCallback(callback, null, value); + }, err => { + invokeCallback(callback, err && (err instanceof Error || err.message) ? err : new Error(err)); + }); +} -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.default = isArrayLike; -function isArrayLike(value) { - return value && typeof value.length === 'number' && value.length >= 0 && value.length % 1 === 0; +function invokeCallback(callback, error, value) { + try { + callback(error, value); + } catch (err) { + (0, _setImmediate2.default)(e => { + throw e; + }, err); + } } -module.exports = exports['default']; +module.exports = exports.default; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/internal/iterator.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/internal/iterator.js ***! - \*******************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/async/eachOf.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/eachOf.js ***! + \*************************************************************/ +/***/ ((module, exports, __nested_webpack_require_57958__) => { "use strict"; @@ -1332,118 +1374,194 @@ module.exports = exports['default']; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.default = createIterator; -var _isArrayLike = __webpack_require__(/*! ./isArrayLike.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/isArrayLike.js"); +var _isArrayLike = __nested_webpack_require_57958__(/*! ./internal/isArrayLike.js */ "./build/cht-core-4-6/api/node_modules/async/internal/isArrayLike.js"); var _isArrayLike2 = _interopRequireDefault(_isArrayLike); -var _getIterator = __webpack_require__(/*! ./getIterator.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/getIterator.js"); - -var _getIterator2 = _interopRequireDefault(_getIterator); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function createArrayIterator(coll) { - var i = -1; - var len = coll.length; - return function next() { - return ++i < len ? { value: coll[i], key: i } : null; - }; -} +var _breakLoop = __nested_webpack_require_57958__(/*! ./internal/breakLoop.js */ "./build/cht-core-4-6/api/node_modules/async/internal/breakLoop.js"); -function createES2015Iterator(iterator) { - var i = -1; - return function next() { - var item = iterator.next(); - if (item.done) return null; - i++; - return { value: item.value, key: i }; - }; -} +var _breakLoop2 = _interopRequireDefault(_breakLoop); -function createObjectIterator(obj) { - var okeys = obj ? Object.keys(obj) : []; - var i = -1; - var len = okeys.length; - return function next() { - var key = okeys[++i]; - if (key === '__proto__') { - return next(); - } - return i < len ? { value: obj[key], key } : null; - }; -} +var _eachOfLimit = __nested_webpack_require_57958__(/*! ./eachOfLimit.js */ "./build/cht-core-4-6/api/node_modules/async/eachOfLimit.js"); -function createIterator(coll) { - if ((0, _isArrayLike2.default)(coll)) { - return createArrayIterator(coll); - } +var _eachOfLimit2 = _interopRequireDefault(_eachOfLimit); - var iterator = (0, _getIterator2.default)(coll); - return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll); -} -module.exports = exports['default']; +var _once = __nested_webpack_require_57958__(/*! ./internal/once.js */ "./build/cht-core-4-6/api/node_modules/async/internal/once.js"); -/***/ }), +var _once2 = _interopRequireDefault(_once); -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/internal/once.js": -/*!***************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/internal/once.js ***! - \***************************************************************************/ -/***/ ((module, exports) => { +var _onlyOnce = __nested_webpack_require_57958__(/*! ./internal/onlyOnce.js */ "./build/cht-core-4-6/api/node_modules/async/internal/onlyOnce.js"); -"use strict"; +var _onlyOnce2 = _interopRequireDefault(_onlyOnce); +var _wrapAsync = __nested_webpack_require_57958__(/*! ./internal/wrapAsync.js */ "./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js"); -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.default = once; -function once(fn) { - function wrapper(...args) { - if (fn === null) return; - var callFn = fn; - fn = null; - callFn.apply(this, args); - } - Object.assign(wrapper, fn); - return wrapper; -} -module.exports = exports["default"]; +var _wrapAsync2 = _interopRequireDefault(_wrapAsync); -/***/ }), +var _awaitify = __nested_webpack_require_57958__(/*! ./internal/awaitify.js */ "./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js"); -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/internal/onlyOnce.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/internal/onlyOnce.js ***! - \*******************************************************************************/ -/***/ ((module, exports) => { +var _awaitify2 = _interopRequireDefault(_awaitify); -"use strict"; +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +// eachOf implementation optimized for array-likes +function eachOfArrayLike(coll, iteratee, callback) { + callback = (0, _once2.default)(callback); + var index = 0, + completed = 0, + { length } = coll, + canceled = false; + if (length === 0) { + callback(null); + } -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.default = onlyOnce; -function onlyOnce(fn) { - return function (...args) { - if (fn === null) throw new Error("Callback was already called."); - var callFn = fn; - fn = null; - callFn.apply(this, args); - }; + function iteratorCallback(err, value) { + if (err === false) { + canceled = true; + } + if (canceled === true) return; + if (err) { + callback(err); + } else if (++completed === length || value === _breakLoop2.default) { + callback(null); + } + } + + for (; index < length; index++) { + iteratee(coll[index], index, (0, _onlyOnce2.default)(iteratorCallback)); + } +} + +// a generic version of eachOf which can handle array, object, and iterator cases. +function eachOfGeneric(coll, iteratee, callback) { + return (0, _eachOfLimit2.default)(coll, Infinity, iteratee, callback); +} + +/** + * Like [`each`]{@link module:Collections.each}, except that it passes the key (or index) as the second argument + * to the iteratee. + * + * @name eachOf + * @static + * @memberOf module:Collections + * @method + * @alias forEachOf + * @category Collection + * @see [async.each]{@link module:Collections.each} + * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over. + * @param {AsyncFunction} iteratee - A function to apply to each + * item in `coll`. + * The `key` is the item's key, or index in the case of an array. + * Invoked with (item, key, callback). + * @param {Function} [callback] - A callback which is called when all + * `iteratee` functions have finished, or an error occurs. Invoked with (err). + * @returns {Promise} a promise, if a callback is omitted + * @example + * + * // dev.json is a file containing a valid json object config for dev environment + * // dev.json is a file containing a valid json object config for test environment + * // prod.json is a file containing a valid json object config for prod environment + * // invalid.json is a file with a malformed json object + * + * let configs = {}; //global variable + * let validConfigFileMap = {dev: 'dev.json', test: 'test.json', prod: 'prod.json'}; + * let invalidConfigFileMap = {dev: 'dev.json', test: 'test.json', invalid: 'invalid.json'}; + * + * // asynchronous function that reads a json file and parses the contents as json object + * function parseFile(file, key, callback) { + * fs.readFile(file, "utf8", function(err, data) { + * if (err) return calback(err); + * try { + * configs[key] = JSON.parse(data); + * } catch (e) { + * return callback(e); + * } + * callback(); + * }); + * } + * + * // Using callbacks + * async.forEachOf(validConfigFileMap, parseFile, function (err) { + * if (err) { + * console.error(err); + * } else { + * console.log(configs); + * // configs is now a map of JSON data, e.g. + * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json} + * } + * }); + * + * //Error handing + * async.forEachOf(invalidConfigFileMap, parseFile, function (err) { + * if (err) { + * console.error(err); + * // JSON parse error exception + * } else { + * console.log(configs); + * } + * }); + * + * // Using Promises + * async.forEachOf(validConfigFileMap, parseFile) + * .then( () => { + * console.log(configs); + * // configs is now a map of JSON data, e.g. + * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json} + * }).catch( err => { + * console.error(err); + * }); + * + * //Error handing + * async.forEachOf(invalidConfigFileMap, parseFile) + * .then( () => { + * console.log(configs); + * }).catch( err => { + * console.error(err); + * // JSON parse error exception + * }); + * + * // Using async/await + * async () => { + * try { + * let result = await async.forEachOf(validConfigFileMap, parseFile); + * console.log(configs); + * // configs is now a map of JSON data, e.g. + * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json} + * } + * catch (err) { + * console.log(err); + * } + * } + * + * //Error handing + * async () => { + * try { + * let result = await async.forEachOf(invalidConfigFileMap, parseFile); + * console.log(configs); + * } + * catch (err) { + * console.log(err); + * // JSON parse error exception + * } + * } + * + */ +function eachOf(coll, iteratee, callback) { + var eachOfImplementation = (0, _isArrayLike2.default)(coll) ? eachOfArrayLike : eachOfGeneric; + return eachOfImplementation(coll, (0, _wrapAsync2.default)(iteratee), callback); } -module.exports = exports["default"]; + +exports.default = (0, _awaitify2.default)(eachOf, 3); +module.exports = exports.default; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/internal/parallel.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/internal/parallel.js ***! - \*******************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/async/eachOfLimit.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/eachOfLimit.js ***! + \******************************************************************/ +/***/ ((module, exports, __nested_webpack_require_64635__) => { "use strict"; @@ -1452,42 +1570,55 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); -var _isArrayLike = __webpack_require__(/*! ./isArrayLike.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/isArrayLike.js"); +var _eachOfLimit2 = __nested_webpack_require_64635__(/*! ./internal/eachOfLimit.js */ "./build/cht-core-4-6/api/node_modules/async/internal/eachOfLimit.js"); -var _isArrayLike2 = _interopRequireDefault(_isArrayLike); +var _eachOfLimit3 = _interopRequireDefault(_eachOfLimit2); -var _wrapAsync = __webpack_require__(/*! ./wrapAsync.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/wrapAsync.js"); +var _wrapAsync = __nested_webpack_require_64635__(/*! ./internal/wrapAsync.js */ "./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js"); var _wrapAsync2 = _interopRequireDefault(_wrapAsync); -var _awaitify = __webpack_require__(/*! ./awaitify.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/awaitify.js"); +var _awaitify = __nested_webpack_require_64635__(/*! ./internal/awaitify.js */ "./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js"); var _awaitify2 = _interopRequireDefault(_awaitify); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -exports.default = (0, _awaitify2.default)((eachfn, tasks, callback) => { - var results = (0, _isArrayLike2.default)(tasks) ? [] : {}; +/** + * The same as [`eachOf`]{@link module:Collections.eachOf} but runs a maximum of `limit` async operations at a + * time. + * + * @name eachOfLimit + * @static + * @memberOf module:Collections + * @method + * @see [async.eachOf]{@link module:Collections.eachOf} + * @alias forEachOfLimit + * @category Collection + * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over. + * @param {number} limit - The maximum number of async operations at a time. + * @param {AsyncFunction} iteratee - An async function to apply to each + * item in `coll`. The `key` is the item's key, or index in the case of an + * array. + * Invoked with (item, key, callback). + * @param {Function} [callback] - A callback which is called when all + * `iteratee` functions have finished, or an error occurs. Invoked with (err). + * @returns {Promise} a promise, if a callback is omitted + */ +function eachOfLimit(coll, limit, iteratee, callback) { + return (0, _eachOfLimit3.default)(limit)(coll, (0, _wrapAsync2.default)(iteratee), callback); +} - eachfn(tasks, (task, key, taskCb) => { - (0, _wrapAsync2.default)(task)((err, ...result) => { - if (result.length < 2) { - [result] = result; - } - results[key] = result; - taskCb(err); - }); - }, err => callback(err, results)); -}, 3); -module.exports = exports['default']; +exports.default = (0, _awaitify2.default)(eachOfLimit, 4); +module.exports = exports.default; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/internal/setImmediate.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/internal/setImmediate.js ***! - \***********************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { +/***/ "./build/cht-core-4-6/api/node_modules/async/eachOfSeries.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/eachOfSeries.js ***! + \*******************************************************************/ +/***/ ((module, exports, __nested_webpack_require_66884__) => { "use strict"; @@ -1495,63 +1626,48 @@ module.exports = exports['default']; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fallback = fallback; -exports.wrap = wrap; -/* istanbul ignore file */ - -var hasQueueMicrotask = exports.hasQueueMicrotask = typeof queueMicrotask === 'function' && queueMicrotask; -var hasSetImmediate = exports.hasSetImmediate = typeof setImmediate === 'function' && setImmediate; -var hasNextTick = exports.hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function'; - -function fallback(fn) { - setTimeout(fn, 0); -} - -function wrap(defer) { - return (fn, ...args) => defer(() => fn(...args)); -} - -var _defer; - -if (hasQueueMicrotask) { - _defer = queueMicrotask; -} else if (hasSetImmediate) { - _defer = setImmediate; -} else if (hasNextTick) { - _defer = process.nextTick; -} else { - _defer = fallback; -} -exports.default = wrap(_defer); +var _eachOfLimit = __nested_webpack_require_66884__(/*! ./eachOfLimit.js */ "./build/cht-core-4-6/api/node_modules/async/eachOfLimit.js"); -/***/ }), +var _eachOfLimit2 = _interopRequireDefault(_eachOfLimit); -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/internal/withoutIndex.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/internal/withoutIndex.js ***! - \***********************************************************************************/ -/***/ ((module, exports) => { +var _awaitify = __nested_webpack_require_66884__(/*! ./internal/awaitify.js */ "./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js"); -"use strict"; +var _awaitify2 = _interopRequireDefault(_awaitify); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.default = _withoutIndex; -function _withoutIndex(iteratee) { - return (value, index, callback) => iteratee(value, callback); +/** + * The same as [`eachOf`]{@link module:Collections.eachOf} but runs only a single async operation at a time. + * + * @name eachOfSeries + * @static + * @memberOf module:Collections + * @method + * @see [async.eachOf]{@link module:Collections.eachOf} + * @alias forEachOfSeries + * @category Collection + * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over. + * @param {AsyncFunction} iteratee - An async function to apply to each item in + * `coll`. + * Invoked with (item, key, callback). + * @param {Function} [callback] - A callback which is called when all `iteratee` + * functions have finished, or an error occurs. Invoked with (err). + * @returns {Promise} a promise, if a callback is omitted + */ +function eachOfSeries(coll, iteratee, callback) { + return (0, _eachOfLimit2.default)(coll, 1, iteratee, callback); } -module.exports = exports["default"]; +exports.default = (0, _awaitify2.default)(eachOfSeries, 3); +module.exports = exports.default; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/internal/wrapAsync.js": -/*!********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/internal/wrapAsync.js ***! - \********************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/async/forEach.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/forEach.js ***! + \**************************************************************/ +/***/ ((module, exports, __nested_webpack_require_68711__) => { "use strict"; @@ -1559,3051 +1675,3061 @@ module.exports = exports["default"]; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isAsyncIterable = exports.isAsyncGenerator = exports.isAsync = undefined; - -var _asyncify = __webpack_require__(/*! ../asyncify.js */ "./node_modules/cht-core-4-0/api/node_modules/async/asyncify.js"); - -var _asyncify2 = _interopRequireDefault(_asyncify); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function isAsync(fn) { - return fn[Symbol.toStringTag] === 'AsyncFunction'; -} - -function isAsyncGenerator(fn) { - return fn[Symbol.toStringTag] === 'AsyncGenerator'; -} - -function isAsyncIterable(obj) { - return typeof obj[Symbol.asyncIterator] === 'function'; -} - -function wrapAsync(asyncFn) { - if (typeof asyncFn !== 'function') throw new Error('expected a function'); - return isAsync(asyncFn) ? (0, _asyncify2.default)(asyncFn) : asyncFn; -} - -exports.default = wrapAsync; -exports.isAsync = isAsync; -exports.isAsyncGenerator = isAsyncGenerator; -exports.isAsyncIterable = isAsyncIterable; - -/***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/async/series.js": -/*!********************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/async/series.js ***! - \********************************************************************/ -/***/ ((module, exports, __webpack_require__) => { +var _eachOf = __nested_webpack_require_68711__(/*! ./eachOf.js */ "./build/cht-core-4-6/api/node_modules/async/eachOf.js"); -"use strict"; +var _eachOf2 = _interopRequireDefault(_eachOf); +var _withoutIndex = __nested_webpack_require_68711__(/*! ./internal/withoutIndex.js */ "./build/cht-core-4-6/api/node_modules/async/internal/withoutIndex.js"); -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.default = series; +var _withoutIndex2 = _interopRequireDefault(_withoutIndex); -var _parallel2 = __webpack_require__(/*! ./internal/parallel.js */ "./node_modules/cht-core-4-0/api/node_modules/async/internal/parallel.js"); +var _wrapAsync = __nested_webpack_require_68711__(/*! ./internal/wrapAsync.js */ "./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js"); -var _parallel3 = _interopRequireDefault(_parallel2); +var _wrapAsync2 = _interopRequireDefault(_wrapAsync); -var _eachOfSeries = __webpack_require__(/*! ./eachOfSeries.js */ "./node_modules/cht-core-4-0/api/node_modules/async/eachOfSeries.js"); +var _awaitify = __nested_webpack_require_68711__(/*! ./internal/awaitify.js */ "./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js"); -var _eachOfSeries2 = _interopRequireDefault(_eachOfSeries); +var _awaitify2 = _interopRequireDefault(_awaitify); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** - * Run the functions in the `tasks` collection in series, each one running once - * the previous function has completed. If any functions in the series pass an - * error to its callback, no more functions are run, and `callback` is - * immediately called with the value of the error. Otherwise, `callback` - * receives an array of results when `tasks` have completed. - * - * It is also possible to use an object instead of an array. Each property will - * be run as a function, and the results will be passed to the final `callback` - * as an object instead of an array. This can be a more readable way of handling - * results from {@link async.series}. - * - * **Note** that while many implementations preserve the order of object - * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6) - * explicitly states that - * - * > The mechanics and order of enumerating the properties is not specified. + * Applies the function `iteratee` to each item in `coll`, in parallel. + * The `iteratee` is called with an item from the list, and a callback for when + * it has finished. If the `iteratee` passes an error to its `callback`, the + * main `callback` (for the `each` function) is immediately called with the + * error. * - * So if you rely on the order in which your series of functions are executed, - * and want this to work on all platforms, consider using an array. + * Note, that since this function applies `iteratee` to each item in parallel, + * there is no guarantee that the iteratee functions will complete in order. * - * @name series + * @name each * @static - * @memberOf module:ControlFlow + * @memberOf module:Collections * @method - * @category Control Flow - * @param {Array|Iterable|AsyncIterable|Object} tasks - A collection containing - * [async functions]{@link AsyncFunction} to run in series. - * Each function can complete with any number of optional `result` values. - * @param {Function} [callback] - An optional callback to run once all the - * functions have completed. This function gets a results array (or object) - * containing all the result arguments passed to the `task` callbacks. Invoked - * with (err, result). - * @return {Promise} a promise, if no callback is passed + * @alias forEach + * @category Collection + * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over. + * @param {AsyncFunction} iteratee - An async function to apply to + * each item in `coll`. Invoked with (item, callback). + * The array index is not passed to the iteratee. + * If you need the index, use `eachOf`. + * @param {Function} [callback] - A callback which is called when all + * `iteratee` functions have finished, or an error occurs. Invoked with (err). + * @returns {Promise} a promise, if a callback is omitted * @example * - * //Using Callbacks - * async.series([ - * function(callback) { - * setTimeout(function() { - * // do some async task - * callback(null, 'one'); - * }, 200); - * }, - * function(callback) { - * setTimeout(function() { - * // then do another async task - * callback(null, 'two'); - * }, 100); + * // dir1 is a directory that contains file1.txt, file2.txt + * // dir2 is a directory that contains file3.txt, file4.txt + * // dir3 is a directory that contains file5.txt + * // dir4 does not exist + * + * const fileList = [ 'dir1/file2.txt', 'dir2/file3.txt', 'dir/file5.txt']; + * const withMissingFileList = ['dir1/file1.txt', 'dir4/file2.txt']; + * + * // asynchronous function that deletes a file + * const deleteFile = function(file, callback) { + * fs.unlink(file, callback); + * }; + * + * // Using callbacks + * async.each(fileList, deleteFile, function(err) { + * if( err ) { + * console.log(err); + * } else { + * console.log('All files have been deleted successfully'); * } - * ], function(err, results) { - * console.log(results); - * // results is equal to ['one','two'] * }); * - * // an example using objects instead of arrays - * async.series({ - * one: function(callback) { - * setTimeout(function() { - * // do some async task - * callback(null, 1); - * }, 200); - * }, - * two: function(callback) { - * setTimeout(function() { - * // then do another async task - * callback(null, 2); - * }, 100); - * } - * }, function(err, results) { - * console.log(results); - * // results is equal to: { one: 1, two: 2 } + * // Error Handling + * async.each(withMissingFileList, deleteFile, function(err){ + * console.log(err); + * // [ Error: ENOENT: no such file or directory ] + * // since dir4/file2.txt does not exist + * // dir1/file1.txt could have been deleted * }); * - * //Using Promises - * async.series([ - * function(callback) { - * setTimeout(function() { - * callback(null, 'one'); - * }, 200); - * }, - * function(callback) { - * setTimeout(function() { - * callback(null, 'two'); - * }, 100); - * } - * ]).then(results => { - * console.log(results); - * // results is equal to ['one','two'] - * }).catch(err => { + * // Using Promises + * async.each(fileList, deleteFile) + * .then( () => { + * console.log('All files have been deleted successfully'); + * }).catch( err => { * console.log(err); * }); * - * // an example using an object instead of an array - * async.series({ - * one: function(callback) { - * setTimeout(function() { - * // do some async task - * callback(null, 1); - * }, 200); - * }, - * two: function(callback) { - * setTimeout(function() { - * // then do another async task - * callback(null, 2); - * }, 100); - * } - * }).then(results => { - * console.log(results); - * // results is equal to: { one: 1, two: 2 } - * }).catch(err => { + * // Error Handling + * async.each(fileList, deleteFile) + * .then( () => { + * console.log('All files have been deleted successfully'); + * }).catch( err => { * console.log(err); + * // [ Error: ENOENT: no such file or directory ] + * // since dir4/file2.txt does not exist + * // dir1/file1.txt could have been deleted * }); * - * //Using async/await + * // Using async/await * async () => { * try { - * let results = await async.series([ - * function(callback) { - * setTimeout(function() { - * // do some async task - * callback(null, 'one'); - * }, 200); - * }, - * function(callback) { - * setTimeout(function() { - * // then do another async task - * callback(null, 'two'); - * }, 100); - * } - * ]); - * console.log(results); - * // results is equal to ['one','two'] + * await async.each(files, deleteFile); * } * catch (err) { * console.log(err); * } * } * - * // an example using an object instead of an array + * // Error Handling * async () => { * try { - * let results = await async.parallel({ - * one: function(callback) { - * setTimeout(function() { - * // do some async task - * callback(null, 1); - * }, 200); - * }, - * two: function(callback) { - * setTimeout(function() { - * // then do another async task - * callback(null, 2); - * }, 100); - * } - * }); - * console.log(results); - * // results is equal to: { one: 1, two: 2 } + * await async.each(withMissingFileList, deleteFile); * } * catch (err) { * console.log(err); + * // [ Error: ENOENT: no such file or directory ] + * // since dir4/file2.txt does not exist + * // dir1/file1.txt could have been deleted * } * } * */ -function series(tasks, callback) { - return (0, _parallel3.default)(_eachOfSeries2.default, tasks, callback); +function eachLimit(coll, iteratee, callback) { + return (0, _eachOf2.default)(coll, (0, _withoutIndex2.default)((0, _wrapAsync2.default)(iteratee)), callback); } -module.exports = exports['default']; + +exports.default = (0, _awaitify2.default)(eachLimit, 3); +module.exports = exports.default; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/boolbase/index.js": -/*!**********************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/boolbase/index.js ***! - \**********************************************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/asyncEachOfLimit.js": +/*!********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/asyncEachOfLimit.js ***! + \********************************************************************************/ +/***/ ((module, exports, __nested_webpack_require_73473__) => { -module.exports = { - trueFunc: function trueFunc(){ - return true; - }, - falseFunc: function falseFunc(){ - return false; - } -}; +"use strict"; -/***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/color-convert/conversions.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/color-convert/conversions.js ***! - \*********************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.default = asyncEachOfLimit; -/* MIT license */ -var cssKeywords = __webpack_require__(/*! color-name */ "./node_modules/cht-core-4-0/api/node_modules/color-name/index.js"); +var _breakLoop = __nested_webpack_require_73473__(/*! ./breakLoop.js */ "./build/cht-core-4-6/api/node_modules/async/internal/breakLoop.js"); -// NOTE: conversions should only return primitive values (i.e. arrays, or -// values that give correct `typeof` results). -// do not use box values types (i.e. Number(), String(), etc.) +var _breakLoop2 = _interopRequireDefault(_breakLoop); -var reverseKeywords = {}; -for (var key in cssKeywords) { - if (cssKeywords.hasOwnProperty(key)) { - reverseKeywords[cssKeywords[key]] = key; - } -} +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var convert = module.exports = { - rgb: {channels: 3, labels: 'rgb'}, - hsl: {channels: 3, labels: 'hsl'}, - hsv: {channels: 3, labels: 'hsv'}, - hwb: {channels: 3, labels: 'hwb'}, - cmyk: {channels: 4, labels: 'cmyk'}, - xyz: {channels: 3, labels: 'xyz'}, - lab: {channels: 3, labels: 'lab'}, - lch: {channels: 3, labels: 'lch'}, - hex: {channels: 1, labels: ['hex']}, - keyword: {channels: 1, labels: ['keyword']}, - ansi16: {channels: 1, labels: ['ansi16']}, - ansi256: {channels: 1, labels: ['ansi256']}, - hcg: {channels: 3, labels: ['h', 'c', 'g']}, - apple: {channels: 3, labels: ['r16', 'g16', 'b16']}, - gray: {channels: 1, labels: ['gray']} -}; +// for async generators +function asyncEachOfLimit(generator, limit, iteratee, callback) { + let done = false; + let canceled = false; + let awaiting = false; + let running = 0; + let idx = 0; -// hide .channels and .labels properties -for (var model in convert) { - if (convert.hasOwnProperty(model)) { - if (!('channels' in convert[model])) { - throw new Error('missing channels property: ' + model); - } + function replenish() { + //console.log('replenish') + if (running >= limit || awaiting || done) return; + //console.log('replenish awaiting') + awaiting = true; + generator.next().then(({ value, done: iterDone }) => { + //console.log('got value', value) + if (canceled || done) return; + awaiting = false; + if (iterDone) { + done = true; + if (running <= 0) { + //console.log('done nextCb') + callback(null); + } + return; + } + running++; + iteratee(value, idx, iterateeCallback); + idx++; + replenish(); + }).catch(handleError); + } - if (!('labels' in convert[model])) { - throw new Error('missing channel labels property: ' + model); - } + function iterateeCallback(err, result) { + //console.log('iterateeCallback') + running -= 1; + if (canceled) return; + if (err) return handleError(err); - if (convert[model].labels.length !== convert[model].channels) { - throw new Error('channel and label counts mismatch: ' + model); - } + if (err === false) { + done = true; + canceled = true; + return; + } - var channels = convert[model].channels; - var labels = convert[model].labels; - delete convert[model].channels; - delete convert[model].labels; - Object.defineProperty(convert[model], 'channels', {value: channels}); - Object.defineProperty(convert[model], 'labels', {value: labels}); - } -} + if (result === _breakLoop2.default || done && running <= 0) { + done = true; + //console.log('done iterCb') + return callback(null); + } + replenish(); + } -convert.rgb.hsl = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var min = Math.min(r, g, b); - var max = Math.max(r, g, b); - var delta = max - min; - var h; - var s; - var l; + function handleError(err) { + if (canceled) return; + awaiting = false; + done = true; + callback(err); + } - if (max === min) { - h = 0; - } else if (r === max) { - h = (g - b) / delta; - } else if (g === max) { - h = 2 + (b - r) / delta; - } else if (b === max) { - h = 4 + (r - g) / delta; - } + replenish(); +} +module.exports = exports.default; - h = Math.min(h * 60, 360); +/***/ }), - if (h < 0) { - h += 360; - } +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js ***! + \************************************************************************/ +/***/ ((module, exports) => { - l = (min + max) / 2; +"use strict"; - if (max === min) { - s = 0; - } else if (l <= 0.5) { - s = delta / (max + min); - } else { - s = delta / (2 - max - min); - } - return [h, s * 100, l * 100]; -}; +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.default = awaitify; +// conditionally promisify a function. +// only return a promise if a callback is omitted +function awaitify(asyncFn, arity) { + if (!arity) arity = asyncFn.length; + if (!arity) throw new Error('arity is undefined'); + function awaitable(...args) { + if (typeof args[arity - 1] === 'function') { + return asyncFn.apply(this, args); + } -convert.rgb.hsv = function (rgb) { - var rdif; - var gdif; - var bdif; - var h; - var s; + return new Promise((resolve, reject) => { + args[arity - 1] = (err, ...cbArgs) => { + if (err) return reject(err); + resolve(cbArgs.length > 1 ? cbArgs : cbArgs[0]); + }; + asyncFn.apply(this, args); + }); + } - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var v = Math.max(r, g, b); - var diff = v - Math.min(r, g, b); - var diffc = function (c) { - return (v - c) / 6 / diff + 1 / 2; - }; + return awaitable; +} +module.exports = exports.default; - if (diff === 0) { - h = s = 0; - } else { - s = diff / v; - rdif = diffc(r); - gdif = diffc(g); - bdif = diffc(b); +/***/ }), - if (r === v) { - h = bdif - gdif; - } else if (g === v) { - h = (1 / 3) + rdif - bdif; - } else if (b === v) { - h = (2 / 3) + gdif - rdif; - } - if (h < 0) { - h += 1; - } else if (h > 1) { - h -= 1; - } - } +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/breakLoop.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/breakLoop.js ***! + \*************************************************************************/ +/***/ ((module, exports) => { - return [ - h * 360, - s * 100, - v * 100 - ]; -}; +"use strict"; -convert.rgb.hwb = function (rgb) { - var r = rgb[0]; - var g = rgb[1]; - var b = rgb[2]; - var h = convert.rgb.hsl(rgb)[0]; - var w = 1 / 255 * Math.min(r, Math.min(g, b)); - b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +// A temporary value used to identify if the loop should be broken. +// See #1064, #1293 +const breakLoop = {}; +exports.default = breakLoop; +module.exports = exports.default; - return [h, w * 100, b * 100]; -}; +/***/ }), -convert.rgb.cmyk = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var c; - var m; - var y; - var k; +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/eachOfLimit.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/eachOfLimit.js ***! + \***************************************************************************/ +/***/ ((module, exports, __nested_webpack_require_77703__) => { - k = Math.min(1 - r, 1 - g, 1 - b); - c = (1 - r - k) / (1 - k) || 0; - m = (1 - g - k) / (1 - k) || 0; - y = (1 - b - k) / (1 - k) || 0; +"use strict"; - return [c * 100, m * 100, y * 100, k * 100]; -}; -/** - * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance - * */ -function comparativeDistance(x, y) { - return ( - Math.pow(x[0] - y[0], 2) + - Math.pow(x[1] - y[1], 2) + - Math.pow(x[2] - y[2], 2) - ); -} +Object.defineProperty(exports, "__esModule", ({ + value: true +})); -convert.rgb.keyword = function (rgb) { - var reversed = reverseKeywords[rgb]; - if (reversed) { - return reversed; - } +var _once = __nested_webpack_require_77703__(/*! ./once.js */ "./build/cht-core-4-6/api/node_modules/async/internal/once.js"); - var currentClosestDistance = Infinity; - var currentClosestKeyword; +var _once2 = _interopRequireDefault(_once); - for (var keyword in cssKeywords) { - if (cssKeywords.hasOwnProperty(keyword)) { - var value = cssKeywords[keyword]; +var _iterator = __nested_webpack_require_77703__(/*! ./iterator.js */ "./build/cht-core-4-6/api/node_modules/async/internal/iterator.js"); - // Compute comparative distance - var distance = comparativeDistance(rgb, value); +var _iterator2 = _interopRequireDefault(_iterator); - // Check if its less, if so set as closest - if (distance < currentClosestDistance) { - currentClosestDistance = distance; - currentClosestKeyword = keyword; - } - } - } +var _onlyOnce = __nested_webpack_require_77703__(/*! ./onlyOnce.js */ "./build/cht-core-4-6/api/node_modules/async/internal/onlyOnce.js"); - return currentClosestKeyword; -}; +var _onlyOnce2 = _interopRequireDefault(_onlyOnce); -convert.keyword.rgb = function (keyword) { - return cssKeywords[keyword]; -}; +var _wrapAsync = __nested_webpack_require_77703__(/*! ./wrapAsync.js */ "./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js"); -convert.rgb.xyz = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; +var _asyncEachOfLimit = __nested_webpack_require_77703__(/*! ./asyncEachOfLimit.js */ "./build/cht-core-4-6/api/node_modules/async/internal/asyncEachOfLimit.js"); - // assume sRGB - r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92); - g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92); - b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92); +var _asyncEachOfLimit2 = _interopRequireDefault(_asyncEachOfLimit); - var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805); - var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722); - var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505); +var _breakLoop = __nested_webpack_require_77703__(/*! ./breakLoop.js */ "./build/cht-core-4-6/api/node_modules/async/internal/breakLoop.js"); - return [x * 100, y * 100, z * 100]; -}; +var _breakLoop2 = _interopRequireDefault(_breakLoop); -convert.rgb.lab = function (rgb) { - var xyz = convert.rgb.xyz(rgb); - var x = xyz[0]; - var y = xyz[1]; - var z = xyz[2]; - var l; - var a; - var b; +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - x /= 95.047; - y /= 100; - z /= 108.883; +exports.default = limit => { + return (obj, iteratee, callback) => { + callback = (0, _once2.default)(callback); + if (limit <= 0) { + throw new RangeError('concurrency limit cannot be less than 1'); + } + if (!obj) { + return callback(null); + } + if ((0, _wrapAsync.isAsyncGenerator)(obj)) { + return (0, _asyncEachOfLimit2.default)(obj, limit, iteratee, callback); + } + if ((0, _wrapAsync.isAsyncIterable)(obj)) { + return (0, _asyncEachOfLimit2.default)(obj[Symbol.asyncIterator](), limit, iteratee, callback); + } + var nextElem = (0, _iterator2.default)(obj); + var done = false; + var canceled = false; + var running = 0; + var looping = false; - x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); - y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); - z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); + function iterateeCallback(err, value) { + if (canceled) return; + running -= 1; + if (err) { + done = true; + callback(err); + } else if (err === false) { + done = true; + canceled = true; + } else if (value === _breakLoop2.default || done && running <= 0) { + done = true; + return callback(null); + } else if (!looping) { + replenish(); + } + } - l = (116 * y) - 16; - a = 500 * (x - y); - b = 200 * (y - z); + function replenish() { + looping = true; + while (running < limit && !done) { + var elem = nextElem(); + if (elem === null) { + done = true; + if (running <= 0) { + callback(null); + } + return; + } + running += 1; + iteratee(elem.value, elem.key, (0, _onlyOnce2.default)(iterateeCallback)); + } + looping = false; + } - return [l, a, b]; + replenish(); + }; }; -convert.hsl.rgb = function (hsl) { - var h = hsl[0] / 360; - var s = hsl[1] / 100; - var l = hsl[2] / 100; - var t1; - var t2; - var t3; - var rgb; - var val; - - if (s === 0) { - val = l * 255; - return [val, val, val]; - } +module.exports = exports.default; - if (l < 0.5) { - t2 = l * (1 + s); - } else { - t2 = l + s - l * s; - } +/***/ }), - t1 = 2 * l - t2; +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/getIterator.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/getIterator.js ***! + \***************************************************************************/ +/***/ ((module, exports) => { - rgb = [0, 0, 0]; - for (var i = 0; i < 3; i++) { - t3 = h + 1 / 3 * -(i - 1); - if (t3 < 0) { - t3++; - } - if (t3 > 1) { - t3--; - } +"use strict"; - if (6 * t3 < 1) { - val = t1 + (t2 - t1) * 6 * t3; - } else if (2 * t3 < 1) { - val = t2; - } else if (3 * t3 < 2) { - val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; - } else { - val = t1; - } - rgb[i] = val * 255; - } +Object.defineProperty(exports, "__esModule", ({ + value: true +})); - return rgb; +exports.default = function (coll) { + return coll[Symbol.iterator] && coll[Symbol.iterator](); }; -convert.hsl.hsv = function (hsl) { - var h = hsl[0]; - var s = hsl[1] / 100; - var l = hsl[2] / 100; - var smin = s; - var lmin = Math.max(l, 0.01); - var sv; - var v; +module.exports = exports.default; - l *= 2; - s *= (l <= 1) ? l : 2 - l; - smin *= lmin <= 1 ? lmin : 2 - lmin; - v = (l + s) / 2; - sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s); +/***/ }), - return [h, sv * 100, v * 100]; -}; +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/initialParams.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/initialParams.js ***! + \*****************************************************************************/ +/***/ ((module, exports) => { -convert.hsv.rgb = function (hsv) { - var h = hsv[0] / 60; - var s = hsv[1] / 100; - var v = hsv[2] / 100; - var hi = Math.floor(h) % 6; +"use strict"; - var f = h - Math.floor(h); - var p = 255 * v * (1 - s); - var q = 255 * v * (1 - (s * f)); - var t = 255 * v * (1 - (s * (1 - f))); - v *= 255; - switch (hi) { - case 0: - return [v, t, p]; - case 1: - return [q, v, p]; - case 2: - return [p, v, t]; - case 3: - return [p, q, v]; - case 4: - return [t, p, v]; - case 5: - return [v, p, q]; - } -}; +Object.defineProperty(exports, "__esModule", ({ + value: true +})); -convert.hsv.hsl = function (hsv) { - var h = hsv[0]; - var s = hsv[1] / 100; - var v = hsv[2] / 100; - var vmin = Math.max(v, 0.01); - var lmin; - var sl; - var l; +exports.default = function (fn) { + return function (...args /*, callback*/) { + var callback = args.pop(); + return fn.call(this, args, callback); + }; +}; - l = (2 - s) * v; - lmin = (2 - s) * vmin; - sl = s * vmin; - sl /= (lmin <= 1) ? lmin : 2 - lmin; - sl = sl || 0; - l /= 2; +module.exports = exports.default; - return [h, sl * 100, l * 100]; -}; +/***/ }), -// http://dev.w3.org/csswg/css-color/#hwb-to-rgb -convert.hwb.rgb = function (hwb) { - var h = hwb[0] / 360; - var wh = hwb[1] / 100; - var bl = hwb[2] / 100; - var ratio = wh + bl; - var i; - var v; - var f; - var n; +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/isArrayLike.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/isArrayLike.js ***! + \***************************************************************************/ +/***/ ((module, exports) => { - // wh + bl cant be > 1 - if (ratio > 1) { - wh /= ratio; - bl /= ratio; - } +"use strict"; - i = Math.floor(6 * h); - v = 1 - bl; - f = 6 * h - i; - if ((i & 0x01) !== 0) { - f = 1 - f; - } +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.default = isArrayLike; +function isArrayLike(value) { + return value && typeof value.length === 'number' && value.length >= 0 && value.length % 1 === 0; +} +module.exports = exports.default; - n = wh + f * (v - wh); // linear interpolation +/***/ }), - var r; - var g; - var b; - switch (i) { - default: - case 6: - case 0: r = v; g = n; b = wh; break; - case 1: r = n; g = v; b = wh; break; - case 2: r = wh; g = v; b = n; break; - case 3: r = wh; g = n; b = v; break; - case 4: r = n; g = wh; b = v; break; - case 5: r = v; g = wh; b = n; break; - } +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/iterator.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/iterator.js ***! + \************************************************************************/ +/***/ ((module, exports, __nested_webpack_require_83117__) => { - return [r * 255, g * 255, b * 255]; -}; +"use strict"; -convert.cmyk.rgb = function (cmyk) { - var c = cmyk[0] / 100; - var m = cmyk[1] / 100; - var y = cmyk[2] / 100; - var k = cmyk[3] / 100; - var r; - var g; - var b; - r = 1 - Math.min(1, c * (1 - k) + k); - g = 1 - Math.min(1, m * (1 - k) + k); - b = 1 - Math.min(1, y * (1 - k) + k); +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.default = createIterator; - return [r * 255, g * 255, b * 255]; -}; +var _isArrayLike = __nested_webpack_require_83117__(/*! ./isArrayLike.js */ "./build/cht-core-4-6/api/node_modules/async/internal/isArrayLike.js"); -convert.xyz.rgb = function (xyz) { - var x = xyz[0] / 100; - var y = xyz[1] / 100; - var z = xyz[2] / 100; - var r; - var g; - var b; +var _isArrayLike2 = _interopRequireDefault(_isArrayLike); - r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986); - g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415); - b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570); +var _getIterator = __nested_webpack_require_83117__(/*! ./getIterator.js */ "./build/cht-core-4-6/api/node_modules/async/internal/getIterator.js"); - // assume sRGB - r = r > 0.0031308 - ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055) - : r * 12.92; +var _getIterator2 = _interopRequireDefault(_getIterator); - g = g > 0.0031308 - ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055) - : g * 12.92; +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - b = b > 0.0031308 - ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055) - : b * 12.92; +function createArrayIterator(coll) { + var i = -1; + var len = coll.length; + return function next() { + return ++i < len ? { value: coll[i], key: i } : null; + }; +} - r = Math.min(Math.max(0, r), 1); - g = Math.min(Math.max(0, g), 1); - b = Math.min(Math.max(0, b), 1); +function createES2015Iterator(iterator) { + var i = -1; + return function next() { + var item = iterator.next(); + if (item.done) return null; + i++; + return { value: item.value, key: i }; + }; +} - return [r * 255, g * 255, b * 255]; -}; +function createObjectIterator(obj) { + var okeys = obj ? Object.keys(obj) : []; + var i = -1; + var len = okeys.length; + return function next() { + var key = okeys[++i]; + if (key === '__proto__') { + return next(); + } + return i < len ? { value: obj[key], key } : null; + }; +} -convert.xyz.lab = function (xyz) { - var x = xyz[0]; - var y = xyz[1]; - var z = xyz[2]; - var l; - var a; - var b; +function createIterator(coll) { + if ((0, _isArrayLike2.default)(coll)) { + return createArrayIterator(coll); + } - x /= 95.047; - y /= 100; - z /= 108.883; + var iterator = (0, _getIterator2.default)(coll); + return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll); +} +module.exports = exports.default; - x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); - y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); - z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); +/***/ }), - l = (116 * y) - 16; - a = 500 * (x - y); - b = 200 * (y - z); +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/once.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/once.js ***! + \********************************************************************/ +/***/ ((module, exports) => { - return [l, a, b]; -}; +"use strict"; -convert.lab.xyz = function (lab) { - var l = lab[0]; - var a = lab[1]; - var b = lab[2]; - var x; - var y; - var z; - y = (l + 16) / 116; - x = a / 500 + y; - z = y - b / 200; +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.default = once; +function once(fn) { + function wrapper(...args) { + if (fn === null) return; + var callFn = fn; + fn = null; + callFn.apply(this, args); + } + Object.assign(wrapper, fn); + return wrapper; +} +module.exports = exports.default; - var y2 = Math.pow(y, 3); - var x2 = Math.pow(x, 3); - var z2 = Math.pow(z, 3); - y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; - x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; - z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; +/***/ }), - x *= 95.047; - y *= 100; - z *= 108.883; +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/onlyOnce.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/onlyOnce.js ***! + \************************************************************************/ +/***/ ((module, exports) => { - return [x, y, z]; -}; +"use strict"; -convert.lab.lch = function (lab) { - var l = lab[0]; - var a = lab[1]; - var b = lab[2]; - var hr; - var h; - var c; - hr = Math.atan2(b, a); - h = hr * 360 / 2 / Math.PI; +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.default = onlyOnce; +function onlyOnce(fn) { + return function (...args) { + if (fn === null) throw new Error("Callback was already called."); + var callFn = fn; + fn = null; + callFn.apply(this, args); + }; +} +module.exports = exports.default; - if (h < 0) { - h += 360; - } +/***/ }), - c = Math.sqrt(a * a + b * b); +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/parallel.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/parallel.js ***! + \************************************************************************/ +/***/ ((module, exports, __nested_webpack_require_86540__) => { - return [l, c, h]; -}; +"use strict"; -convert.lch.lab = function (lch) { - var l = lch[0]; - var c = lch[1]; - var h = lch[2]; - var a; - var b; - var hr; - hr = h / 360 * 2 * Math.PI; - a = c * Math.cos(hr); - b = c * Math.sin(hr); +Object.defineProperty(exports, "__esModule", ({ + value: true +})); - return [l, a, b]; -}; +var _isArrayLike = __nested_webpack_require_86540__(/*! ./isArrayLike.js */ "./build/cht-core-4-6/api/node_modules/async/internal/isArrayLike.js"); -convert.rgb.ansi16 = function (args) { - var r = args[0]; - var g = args[1]; - var b = args[2]; - var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization +var _isArrayLike2 = _interopRequireDefault(_isArrayLike); - value = Math.round(value / 50); +var _wrapAsync = __nested_webpack_require_86540__(/*! ./wrapAsync.js */ "./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js"); - if (value === 0) { - return 30; - } +var _wrapAsync2 = _interopRequireDefault(_wrapAsync); - var ansi = 30 - + ((Math.round(b / 255) << 2) - | (Math.round(g / 255) << 1) - | Math.round(r / 255)); +var _awaitify = __nested_webpack_require_86540__(/*! ./awaitify.js */ "./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js"); - if (value === 2) { - ansi += 60; - } +var _awaitify2 = _interopRequireDefault(_awaitify); - return ansi; -}; +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -convert.hsv.ansi16 = function (args) { - // optimization here; we already know the value and don't need to get - // it converted for us. - return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); -}; +exports.default = (0, _awaitify2.default)((eachfn, tasks, callback) => { + var results = (0, _isArrayLike2.default)(tasks) ? [] : {}; -convert.rgb.ansi256 = function (args) { - var r = args[0]; - var g = args[1]; - var b = args[2]; + eachfn(tasks, (task, key, taskCb) => { + (0, _wrapAsync2.default)(task)((err, ...result) => { + if (result.length < 2) { + [result] = result; + } + results[key] = result; + taskCb(err); + }); + }, err => callback(err, results)); +}, 3); +module.exports = exports.default; - // we use the extended greyscale palette here, with the exception of - // black and white. normal palette only has 4 greyscale shades. - if (r === g && g === b) { - if (r < 8) { - return 16; - } +/***/ }), - if (r > 248) { - return 231; - } +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/setImmediate.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/setImmediate.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { - return Math.round(((r - 8) / 247) * 24) + 232; - } +"use strict"; - var ansi = 16 - + (36 * Math.round(r / 255 * 5)) - + (6 * Math.round(g / 255 * 5)) - + Math.round(b / 255 * 5); - return ansi; -}; +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.fallback = fallback; +exports.wrap = wrap; +/* istanbul ignore file */ -convert.ansi16.rgb = function (args) { - var color = args % 10; +var hasQueueMicrotask = exports.hasQueueMicrotask = typeof queueMicrotask === 'function' && queueMicrotask; +var hasSetImmediate = exports.hasSetImmediate = typeof setImmediate === 'function' && setImmediate; +var hasNextTick = exports.hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function'; - // handle greyscale - if (color === 0 || color === 7) { - if (args > 50) { - color += 3.5; - } +function fallback(fn) { + setTimeout(fn, 0); +} - color = color / 10.5 * 255; +function wrap(defer) { + return (fn, ...args) => defer(() => fn(...args)); +} - return [color, color, color]; - } +var _defer; - var mult = (~~(args > 50) + 1) * 0.5; - var r = ((color & 1) * mult) * 255; - var g = (((color >> 1) & 1) * mult) * 255; - var b = (((color >> 2) & 1) * mult) * 255; +if (hasQueueMicrotask) { + _defer = queueMicrotask; +} else if (hasSetImmediate) { + _defer = setImmediate; +} else if (hasNextTick) { + _defer = process.nextTick; +} else { + _defer = fallback; +} - return [r, g, b]; -}; +exports.default = wrap(_defer); -convert.ansi256.rgb = function (args) { - // handle greyscale - if (args >= 232) { - var c = (args - 232) * 10 + 8; - return [c, c, c]; - } +/***/ }), - args -= 16; +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/withoutIndex.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/withoutIndex.js ***! + \****************************************************************************/ +/***/ ((module, exports) => { - var rem; - var r = Math.floor(args / 36) / 5 * 255; - var g = Math.floor((rem = args % 36) / 6) / 5 * 255; - var b = (rem % 6) / 5 * 255; +"use strict"; - return [r, g, b]; -}; -convert.rgb.hex = function (args) { - var integer = ((Math.round(args[0]) & 0xFF) << 16) - + ((Math.round(args[1]) & 0xFF) << 8) - + (Math.round(args[2]) & 0xFF); +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.default = _withoutIndex; +function _withoutIndex(iteratee) { + return (value, index, callback) => iteratee(value, callback); +} +module.exports = exports.default; - var string = integer.toString(16).toUpperCase(); - return '000000'.substring(string.length) + string; -}; +/***/ }), -convert.hex.rgb = function (args) { - var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); - if (!match) { - return [0, 0, 0]; - } +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_90019__) => { - var colorString = match[0]; +"use strict"; - if (match[0].length === 3) { - colorString = colorString.split('').map(function (char) { - return char + char; - }).join(''); - } - var integer = parseInt(colorString, 16); - var r = (integer >> 16) & 0xFF; - var g = (integer >> 8) & 0xFF; - var b = integer & 0xFF; +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.isAsyncIterable = exports.isAsyncGenerator = exports.isAsync = undefined; - return [r, g, b]; -}; +var _asyncify = __nested_webpack_require_90019__(/*! ../asyncify.js */ "./build/cht-core-4-6/api/node_modules/async/asyncify.js"); -convert.rgb.hcg = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var max = Math.max(Math.max(r, g), b); - var min = Math.min(Math.min(r, g), b); - var chroma = (max - min); - var grayscale; - var hue; +var _asyncify2 = _interopRequireDefault(_asyncify); - if (chroma < 1) { - grayscale = min / (1 - chroma); - } else { - grayscale = 0; - } +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - if (chroma <= 0) { - hue = 0; - } else - if (max === r) { - hue = ((g - b) / chroma) % 6; - } else - if (max === g) { - hue = 2 + (b - r) / chroma; - } else { - hue = 4 + (r - g) / chroma + 4; - } +function isAsync(fn) { + return fn[Symbol.toStringTag] === 'AsyncFunction'; +} - hue /= 6; - hue %= 1; +function isAsyncGenerator(fn) { + return fn[Symbol.toStringTag] === 'AsyncGenerator'; +} - return [hue * 360, chroma * 100, grayscale * 100]; -}; +function isAsyncIterable(obj) { + return typeof obj[Symbol.asyncIterator] === 'function'; +} -convert.hsl.hcg = function (hsl) { - var s = hsl[1] / 100; - var l = hsl[2] / 100; - var c = 1; - var f = 0; +function wrapAsync(asyncFn) { + if (typeof asyncFn !== 'function') throw new Error('expected a function'); + return isAsync(asyncFn) ? (0, _asyncify2.default)(asyncFn) : asyncFn; +} - if (l < 0.5) { - c = 2.0 * s * l; - } else { - c = 2.0 * s * (1.0 - l); - } +exports.default = wrapAsync; +exports.isAsync = isAsync; +exports.isAsyncGenerator = isAsyncGenerator; +exports.isAsyncIterable = isAsyncIterable; - if (c < 1.0) { - f = (l - 0.5 * c) / (1.0 - c); - } +/***/ }), - return [hsl[0], c * 100, f * 100]; -}; +/***/ "./build/cht-core-4-6/api/node_modules/async/series.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/series.js ***! + \*************************************************************/ +/***/ ((module, exports, __nested_webpack_require_91380__) => { -convert.hsv.hcg = function (hsv) { - var s = hsv[1] / 100; - var v = hsv[2] / 100; +"use strict"; - var c = s * v; - var f = 0; - if (c < 1.0) { - f = (v - c) / (1 - c); - } +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.default = series; - return [hsv[0], c * 100, f * 100]; -}; +var _parallel2 = __nested_webpack_require_91380__(/*! ./internal/parallel.js */ "./build/cht-core-4-6/api/node_modules/async/internal/parallel.js"); -convert.hcg.rgb = function (hcg) { - var h = hcg[0] / 360; - var c = hcg[1] / 100; - var g = hcg[2] / 100; +var _parallel3 = _interopRequireDefault(_parallel2); - if (c === 0.0) { - return [g * 255, g * 255, g * 255]; - } +var _eachOfSeries = __nested_webpack_require_91380__(/*! ./eachOfSeries.js */ "./build/cht-core-4-6/api/node_modules/async/eachOfSeries.js"); - var pure = [0, 0, 0]; - var hi = (h % 1) * 6; - var v = hi % 1; - var w = 1 - v; - var mg = 0; +var _eachOfSeries2 = _interopRequireDefault(_eachOfSeries); - switch (Math.floor(hi)) { - case 0: - pure[0] = 1; pure[1] = v; pure[2] = 0; break; - case 1: - pure[0] = w; pure[1] = 1; pure[2] = 0; break; - case 2: - pure[0] = 0; pure[1] = 1; pure[2] = v; break; - case 3: - pure[0] = 0; pure[1] = w; pure[2] = 1; break; - case 4: - pure[0] = v; pure[1] = 0; pure[2] = 1; break; - default: - pure[0] = 1; pure[1] = 0; pure[2] = w; - } - - mg = (1.0 - c) * g; - - return [ - (c * pure[0] + mg) * 255, - (c * pure[1] + mg) * 255, - (c * pure[2] + mg) * 255 - ]; -}; - -convert.hcg.hsv = function (hcg) { - var c = hcg[1] / 100; - var g = hcg[2] / 100; - - var v = c + g * (1.0 - c); - var f = 0; - - if (v > 0.0) { - f = c / v; - } - - return [hcg[0], f * 100, v * 100]; -}; - -convert.hcg.hsl = function (hcg) { - var c = hcg[1] / 100; - var g = hcg[2] / 100; - - var l = g * (1.0 - c) + 0.5 * c; - var s = 0; - - if (l > 0.0 && l < 0.5) { - s = c / (2 * l); - } else - if (l >= 0.5 && l < 1.0) { - s = c / (2 * (1 - l)); - } - - return [hcg[0], s * 100, l * 100]; -}; - -convert.hcg.hwb = function (hcg) { - var c = hcg[1] / 100; - var g = hcg[2] / 100; - var v = c + g * (1.0 - c); - return [hcg[0], (v - c) * 100, (1 - v) * 100]; -}; +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -convert.hwb.hcg = function (hwb) { - var w = hwb[1] / 100; - var b = hwb[2] / 100; - var v = 1 - b; - var c = v - w; - var g = 0; +/** + * Run the functions in the `tasks` collection in series, each one running once + * the previous function has completed. If any functions in the series pass an + * error to its callback, no more functions are run, and `callback` is + * immediately called with the value of the error. Otherwise, `callback` + * receives an array of results when `tasks` have completed. + * + * It is also possible to use an object instead of an array. Each property will + * be run as a function, and the results will be passed to the final `callback` + * as an object instead of an array. This can be a more readable way of handling + * results from {@link async.series}. + * + * **Note** that while many implementations preserve the order of object + * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6) + * explicitly states that + * + * > The mechanics and order of enumerating the properties is not specified. + * + * So if you rely on the order in which your series of functions are executed, + * and want this to work on all platforms, consider using an array. + * + * @name series + * @static + * @memberOf module:ControlFlow + * @method + * @category Control Flow + * @param {Array|Iterable|AsyncIterable|Object} tasks - A collection containing + * [async functions]{@link AsyncFunction} to run in series. + * Each function can complete with any number of optional `result` values. + * @param {Function} [callback] - An optional callback to run once all the + * functions have completed. This function gets a results array (or object) + * containing all the result arguments passed to the `task` callbacks. Invoked + * with (err, result). + * @return {Promise} a promise, if no callback is passed + * @example + * + * //Using Callbacks + * async.series([ + * function(callback) { + * setTimeout(function() { + * // do some async task + * callback(null, 'one'); + * }, 200); + * }, + * function(callback) { + * setTimeout(function() { + * // then do another async task + * callback(null, 'two'); + * }, 100); + * } + * ], function(err, results) { + * console.log(results); + * // results is equal to ['one','two'] + * }); + * + * // an example using objects instead of arrays + * async.series({ + * one: function(callback) { + * setTimeout(function() { + * // do some async task + * callback(null, 1); + * }, 200); + * }, + * two: function(callback) { + * setTimeout(function() { + * // then do another async task + * callback(null, 2); + * }, 100); + * } + * }, function(err, results) { + * console.log(results); + * // results is equal to: { one: 1, two: 2 } + * }); + * + * //Using Promises + * async.series([ + * function(callback) { + * setTimeout(function() { + * callback(null, 'one'); + * }, 200); + * }, + * function(callback) { + * setTimeout(function() { + * callback(null, 'two'); + * }, 100); + * } + * ]).then(results => { + * console.log(results); + * // results is equal to ['one','two'] + * }).catch(err => { + * console.log(err); + * }); + * + * // an example using an object instead of an array + * async.series({ + * one: function(callback) { + * setTimeout(function() { + * // do some async task + * callback(null, 1); + * }, 200); + * }, + * two: function(callback) { + * setTimeout(function() { + * // then do another async task + * callback(null, 2); + * }, 100); + * } + * }).then(results => { + * console.log(results); + * // results is equal to: { one: 1, two: 2 } + * }).catch(err => { + * console.log(err); + * }); + * + * //Using async/await + * async () => { + * try { + * let results = await async.series([ + * function(callback) { + * setTimeout(function() { + * // do some async task + * callback(null, 'one'); + * }, 200); + * }, + * function(callback) { + * setTimeout(function() { + * // then do another async task + * callback(null, 'two'); + * }, 100); + * } + * ]); + * console.log(results); + * // results is equal to ['one','two'] + * } + * catch (err) { + * console.log(err); + * } + * } + * + * // an example using an object instead of an array + * async () => { + * try { + * let results = await async.parallel({ + * one: function(callback) { + * setTimeout(function() { + * // do some async task + * callback(null, 1); + * }, 200); + * }, + * two: function(callback) { + * setTimeout(function() { + * // then do another async task + * callback(null, 2); + * }, 100); + * } + * }); + * console.log(results); + * // results is equal to: { one: 1, two: 2 } + * } + * catch (err) { + * console.log(err); + * } + * } + * + */ +function series(tasks, callback) { + return (0, _parallel3.default)(_eachOfSeries2.default, tasks, callback); +} +module.exports = exports.default; - if (c < 1) { - g = (v - c) / (1 - c); - } +/***/ }), - return [hwb[0], c * 100, g * 100]; -}; +/***/ "./build/cht-core-4-6/api/node_modules/basic-auth/index.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/basic-auth/index.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_97730__) => { -convert.apple.rgb = function (apple) { - return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255]; -}; +"use strict"; +/*! + * basic-auth + * Copyright(c) 2013 TJ Holowaychuk + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015-2016 Douglas Christopher Wilson + * MIT Licensed + */ -convert.rgb.apple = function (rgb) { - return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535]; -}; -convert.gray.rgb = function (args) { - return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; -}; -convert.gray.hsl = convert.gray.hsv = function (args) { - return [0, 0, args[0]]; -}; +/** + * Module dependencies. + * @private + */ -convert.gray.hwb = function (gray) { - return [0, 100, gray[0]]; -}; +var Buffer = __nested_webpack_require_97730__(/*! safe-buffer */ "./build/cht-core-4-6/api/node_modules/safe-buffer/index.js").Buffer -convert.gray.cmyk = function (gray) { - return [0, 0, 0, gray[0]]; -}; +/** + * Module exports. + * @public + */ -convert.gray.lab = function (gray) { - return [gray[0], 0, 0]; -}; +module.exports = auth +module.exports.parse = parse -convert.gray.hex = function (gray) { - var val = Math.round(gray[0] / 100 * 255) & 0xFF; - var integer = (val << 16) + (val << 8) + val; +/** + * RegExp for basic auth credentials + * + * credentials = auth-scheme 1*SP token68 + * auth-scheme = "Basic" ; case insensitive + * token68 = 1*( ALPHA / DIGIT / "-" / "." / "_" / "~" / "+" / "/" ) *"=" + * @private + */ - var string = integer.toString(16).toUpperCase(); - return '000000'.substring(string.length) + string; -}; +var CREDENTIALS_REGEXP = /^ *(?:[Bb][Aa][Ss][Ii][Cc]) +([A-Za-z0-9._~+/-]+=*) *$/ -convert.rgb.gray = function (rgb) { - var val = (rgb[0] + rgb[1] + rgb[2]) / 3; - return [val / 255 * 100]; -}; +/** + * RegExp for basic auth user/pass + * + * user-pass = userid ":" password + * userid = * + * password = *TEXT + * @private + */ +var USER_PASS_REGEXP = /^([^:]*):(.*)$/ -/***/ }), +/** + * Parse the Authorization header field of a request. + * + * @param {object} req + * @return {object} with .name and .pass + * @public + */ -/***/ "./node_modules/cht-core-4-0/api/node_modules/color-convert/index.js": -/*!***************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/color-convert/index.js ***! - \***************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +function auth (req) { + if (!req) { + throw new TypeError('argument req is required') + } -var conversions = __webpack_require__(/*! ./conversions */ "./node_modules/cht-core-4-0/api/node_modules/color-convert/conversions.js"); -var route = __webpack_require__(/*! ./route */ "./node_modules/cht-core-4-0/api/node_modules/color-convert/route.js"); + if (typeof req !== 'object') { + throw new TypeError('argument req is required to be an object') + } -var convert = {}; + // get header + var header = getAuthorization(req) -var models = Object.keys(conversions); + // parse header + return parse(header) +} -function wrapRaw(fn) { - var wrappedFn = function (args) { - if (args === undefined || args === null) { - return args; - } +/** + * Decode base64 string. + * @private + */ - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } +function decodeBase64 (str) { + return Buffer.from(str, 'base64').toString() +} - return fn(args); - }; +/** + * Get the Authorization header from request object. + * @private + */ - // preserve .conversion property if there is one - if ('conversion' in fn) { - wrappedFn.conversion = fn.conversion; - } +function getAuthorization (req) { + if (!req.headers || typeof req.headers !== 'object') { + throw new TypeError('argument req is required to have headers property') + } - return wrappedFn; + return req.headers.authorization } -function wrapRounded(fn) { - var wrappedFn = function (args) { - if (args === undefined || args === null) { - return args; - } +/** + * Parse basic auth to object. + * + * @param {string} string + * @return {object} + * @public + */ - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } +function parse (string) { + if (typeof string !== 'string') { + return undefined + } - var result = fn(args); + // parse header + var match = CREDENTIALS_REGEXP.exec(string) - // we're assuming the result is an array here. - // see notice in conversions.js; don't use box types - // in conversion functions. - if (typeof result === 'object') { - for (var len = result.length, i = 0; i < len; i++) { - result[i] = Math.round(result[i]); - } - } + if (!match) { + return undefined + } - return result; - }; + // decode user pass + var userPass = USER_PASS_REGEXP.exec(decodeBase64(match[1])) - // preserve .conversion property if there is one - if ('conversion' in fn) { - wrappedFn.conversion = fn.conversion; - } + if (!userPass) { + return undefined + } - return wrappedFn; + // return credentials object + return new Credentials(userPass[1], userPass[2]) } -models.forEach(function (fromModel) { - convert[fromModel] = {}; - - Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels}); - Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels}); - - var routes = route(fromModel); - var routeModels = Object.keys(routes); - - routeModels.forEach(function (toModel) { - var fn = routes[toModel]; - - convert[fromModel][toModel] = wrapRounded(fn); - convert[fromModel][toModel].raw = wrapRaw(fn); - }); -}); +/** + * Object to represent user credentials. + * @private + */ -module.exports = convert; +function Credentials (name, pass) { + this.name = name + this.pass = pass +} /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/color-convert/route.js": -/*!***************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/color-convert/route.js ***! - \***************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/boolbase/index.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/boolbase/index.js ***! + \***************************************************************/ +/***/ ((module) => { -var conversions = __webpack_require__(/*! ./conversions */ "./node_modules/cht-core-4-0/api/node_modules/color-convert/conversions.js"); +module.exports = { + trueFunc: function trueFunc(){ + return true; + }, + falseFunc: function falseFunc(){ + return false; + } +}; -/* - this function routes a model to all other models. +/***/ }), - all functions that are routed have a property `.conversion` attached - to the returned synthetic function. This property is an array - of strings, each with the steps in between the 'from' and 'to' - color models (inclusive). +/***/ "./build/cht-core-4-6/api/node_modules/color-convert/conversions.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/color-convert/conversions.js ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_100999__) => { - conversions that are not possible simply are not included. -*/ +/* MIT license */ +var cssKeywords = __nested_webpack_require_100999__(/*! color-name */ "./build/cht-core-4-6/api/node_modules/color-name/index.js"); -function buildGraph() { - var graph = {}; - // https://jsperf.com/object-keys-vs-for-in-with-closure/3 - var models = Object.keys(conversions); +// NOTE: conversions should only return primitive values (i.e. arrays, or +// values that give correct `typeof` results). +// do not use box values types (i.e. Number(), String(), etc.) - for (var len = models.length, i = 0; i < len; i++) { - graph[models[i]] = { - // http://jsperf.com/1-vs-infinity - // micro-opt, but this is simple. - distance: -1, - parent: null - }; +var reverseKeywords = {}; +for (var key in cssKeywords) { + if (cssKeywords.hasOwnProperty(key)) { + reverseKeywords[cssKeywords[key]] = key; } - - return graph; } -// https://en.wikipedia.org/wiki/Breadth-first_search -function deriveBFS(fromModel) { - var graph = buildGraph(); - var queue = [fromModel]; // unshift -> queue -> pop - - graph[fromModel].distance = 0; - - while (queue.length) { - var current = queue.pop(); - var adjacents = Object.keys(conversions[current]); +var convert = module.exports = { + rgb: {channels: 3, labels: 'rgb'}, + hsl: {channels: 3, labels: 'hsl'}, + hsv: {channels: 3, labels: 'hsv'}, + hwb: {channels: 3, labels: 'hwb'}, + cmyk: {channels: 4, labels: 'cmyk'}, + xyz: {channels: 3, labels: 'xyz'}, + lab: {channels: 3, labels: 'lab'}, + lch: {channels: 3, labels: 'lch'}, + hex: {channels: 1, labels: ['hex']}, + keyword: {channels: 1, labels: ['keyword']}, + ansi16: {channels: 1, labels: ['ansi16']}, + ansi256: {channels: 1, labels: ['ansi256']}, + hcg: {channels: 3, labels: ['h', 'c', 'g']}, + apple: {channels: 3, labels: ['r16', 'g16', 'b16']}, + gray: {channels: 1, labels: ['gray']} +}; - for (var len = adjacents.length, i = 0; i < len; i++) { - var adjacent = adjacents[i]; - var node = graph[adjacent]; +// hide .channels and .labels properties +for (var model in convert) { + if (convert.hasOwnProperty(model)) { + if (!('channels' in convert[model])) { + throw new Error('missing channels property: ' + model); + } - if (node.distance === -1) { - node.distance = graph[current].distance + 1; - node.parent = current; - queue.unshift(adjacent); - } + if (!('labels' in convert[model])) { + throw new Error('missing channel labels property: ' + model); } - } - return graph; -} + if (convert[model].labels.length !== convert[model].channels) { + throw new Error('channel and label counts mismatch: ' + model); + } -function link(from, to) { - return function (args) { - return to(from(args)); - }; + var channels = convert[model].channels; + var labels = convert[model].labels; + delete convert[model].channels; + delete convert[model].labels; + Object.defineProperty(convert[model], 'channels', {value: channels}); + Object.defineProperty(convert[model], 'labels', {value: labels}); + } } -function wrapConversion(toModel, graph) { - var path = [graph[toModel].parent, toModel]; - var fn = conversions[graph[toModel].parent][toModel]; +convert.rgb.hsl = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var min = Math.min(r, g, b); + var max = Math.max(r, g, b); + var delta = max - min; + var h; + var s; + var l; - var cur = graph[toModel].parent; - while (graph[cur].parent) { - path.unshift(graph[cur].parent); - fn = link(conversions[graph[cur].parent][cur], fn); - cur = graph[cur].parent; + if (max === min) { + h = 0; + } else if (r === max) { + h = (g - b) / delta; + } else if (g === max) { + h = 2 + (b - r) / delta; + } else if (b === max) { + h = 4 + (r - g) / delta; } - fn.conversion = path; - return fn; -} + h = Math.min(h * 60, 360); -module.exports = function (fromModel) { - var graph = deriveBFS(fromModel); - var conversion = {}; + if (h < 0) { + h += 360; + } - var models = Object.keys(graph); - for (var len = models.length, i = 0; i < len; i++) { - var toModel = models[i]; - var node = graph[toModel]; + l = (min + max) / 2; - if (node.parent === null) { - // no possible conversion, or this node is the source model. - continue; - } - - conversion[toModel] = wrapConversion(toModel, graph); + if (max === min) { + s = 0; + } else if (l <= 0.5) { + s = delta / (max + min); + } else { + s = delta / (2 - max - min); } - return conversion; + return [h, s * 100, l * 100]; }; +convert.rgb.hsv = function (rgb) { + var rdif; + var gdif; + var bdif; + var h; + var s; + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var v = Math.max(r, g, b); + var diff = v - Math.min(r, g, b); + var diffc = function (c) { + return (v - c) / 6 / diff + 1 / 2; + }; -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/color-name/index.js": -/*!************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/color-name/index.js ***! - \************************************************************************/ -/***/ ((module) => { - -"use strict"; - - -module.exports = { - "aliceblue": [240, 248, 255], - "antiquewhite": [250, 235, 215], - "aqua": [0, 255, 255], - "aquamarine": [127, 255, 212], - "azure": [240, 255, 255], - "beige": [245, 245, 220], - "bisque": [255, 228, 196], - "black": [0, 0, 0], - "blanchedalmond": [255, 235, 205], - "blue": [0, 0, 255], - "blueviolet": [138, 43, 226], - "brown": [165, 42, 42], - "burlywood": [222, 184, 135], - "cadetblue": [95, 158, 160], - "chartreuse": [127, 255, 0], - "chocolate": [210, 105, 30], - "coral": [255, 127, 80], - "cornflowerblue": [100, 149, 237], - "cornsilk": [255, 248, 220], - "crimson": [220, 20, 60], - "cyan": [0, 255, 255], - "darkblue": [0, 0, 139], - "darkcyan": [0, 139, 139], - "darkgoldenrod": [184, 134, 11], - "darkgray": [169, 169, 169], - "darkgreen": [0, 100, 0], - "darkgrey": [169, 169, 169], - "darkkhaki": [189, 183, 107], - "darkmagenta": [139, 0, 139], - "darkolivegreen": [85, 107, 47], - "darkorange": [255, 140, 0], - "darkorchid": [153, 50, 204], - "darkred": [139, 0, 0], - "darksalmon": [233, 150, 122], - "darkseagreen": [143, 188, 143], - "darkslateblue": [72, 61, 139], - "darkslategray": [47, 79, 79], - "darkslategrey": [47, 79, 79], - "darkturquoise": [0, 206, 209], - "darkviolet": [148, 0, 211], - "deeppink": [255, 20, 147], - "deepskyblue": [0, 191, 255], - "dimgray": [105, 105, 105], - "dimgrey": [105, 105, 105], - "dodgerblue": [30, 144, 255], - "firebrick": [178, 34, 34], - "floralwhite": [255, 250, 240], - "forestgreen": [34, 139, 34], - "fuchsia": [255, 0, 255], - "gainsboro": [220, 220, 220], - "ghostwhite": [248, 248, 255], - "gold": [255, 215, 0], - "goldenrod": [218, 165, 32], - "gray": [128, 128, 128], - "green": [0, 128, 0], - "greenyellow": [173, 255, 47], - "grey": [128, 128, 128], - "honeydew": [240, 255, 240], - "hotpink": [255, 105, 180], - "indianred": [205, 92, 92], - "indigo": [75, 0, 130], - "ivory": [255, 255, 240], - "khaki": [240, 230, 140], - "lavender": [230, 230, 250], - "lavenderblush": [255, 240, 245], - "lawngreen": [124, 252, 0], - "lemonchiffon": [255, 250, 205], - "lightblue": [173, 216, 230], - "lightcoral": [240, 128, 128], - "lightcyan": [224, 255, 255], - "lightgoldenrodyellow": [250, 250, 210], - "lightgray": [211, 211, 211], - "lightgreen": [144, 238, 144], - "lightgrey": [211, 211, 211], - "lightpink": [255, 182, 193], - "lightsalmon": [255, 160, 122], - "lightseagreen": [32, 178, 170], - "lightskyblue": [135, 206, 250], - "lightslategray": [119, 136, 153], - "lightslategrey": [119, 136, 153], - "lightsteelblue": [176, 196, 222], - "lightyellow": [255, 255, 224], - "lime": [0, 255, 0], - "limegreen": [50, 205, 50], - "linen": [250, 240, 230], - "magenta": [255, 0, 255], - "maroon": [128, 0, 0], - "mediumaquamarine": [102, 205, 170], - "mediumblue": [0, 0, 205], - "mediumorchid": [186, 85, 211], - "mediumpurple": [147, 112, 219], - "mediumseagreen": [60, 179, 113], - "mediumslateblue": [123, 104, 238], - "mediumspringgreen": [0, 250, 154], - "mediumturquoise": [72, 209, 204], - "mediumvioletred": [199, 21, 133], - "midnightblue": [25, 25, 112], - "mintcream": [245, 255, 250], - "mistyrose": [255, 228, 225], - "moccasin": [255, 228, 181], - "navajowhite": [255, 222, 173], - "navy": [0, 0, 128], - "oldlace": [253, 245, 230], - "olive": [128, 128, 0], - "olivedrab": [107, 142, 35], - "orange": [255, 165, 0], - "orangered": [255, 69, 0], - "orchid": [218, 112, 214], - "palegoldenrod": [238, 232, 170], - "palegreen": [152, 251, 152], - "paleturquoise": [175, 238, 238], - "palevioletred": [219, 112, 147], - "papayawhip": [255, 239, 213], - "peachpuff": [255, 218, 185], - "peru": [205, 133, 63], - "pink": [255, 192, 203], - "plum": [221, 160, 221], - "powderblue": [176, 224, 230], - "purple": [128, 0, 128], - "rebeccapurple": [102, 51, 153], - "red": [255, 0, 0], - "rosybrown": [188, 143, 143], - "royalblue": [65, 105, 225], - "saddlebrown": [139, 69, 19], - "salmon": [250, 128, 114], - "sandybrown": [244, 164, 96], - "seagreen": [46, 139, 87], - "seashell": [255, 245, 238], - "sienna": [160, 82, 45], - "silver": [192, 192, 192], - "skyblue": [135, 206, 235], - "slateblue": [106, 90, 205], - "slategray": [112, 128, 144], - "slategrey": [112, 128, 144], - "snow": [255, 250, 250], - "springgreen": [0, 255, 127], - "steelblue": [70, 130, 180], - "tan": [210, 180, 140], - "teal": [0, 128, 128], - "thistle": [216, 191, 216], - "tomato": [255, 99, 71], - "turquoise": [64, 224, 208], - "violet": [238, 130, 238], - "wheat": [245, 222, 179], - "white": [255, 255, 255], - "whitesmoke": [245, 245, 245], - "yellow": [255, 255, 0], - "yellowgreen": [154, 205, 50] -}; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/color-string/index.js": -/*!**************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/color-string/index.js ***! - \**************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -/* MIT license */ -var colorNames = __webpack_require__(/*! color-name */ "./node_modules/cht-core-4-0/api/node_modules/color-name/index.js"); -var swizzle = __webpack_require__(/*! simple-swizzle */ "./node_modules/cht-core-4-0/api/node_modules/simple-swizzle/index.js"); -var hasOwnProperty = Object.hasOwnProperty; - -var reverseNames = {}; + if (diff === 0) { + h = s = 0; + } else { + s = diff / v; + rdif = diffc(r); + gdif = diffc(g); + bdif = diffc(b); -// create a list of reverse color names -for (var name in colorNames) { - if (hasOwnProperty.call(colorNames, name)) { - reverseNames[colorNames[name]] = name; + if (r === v) { + h = bdif - gdif; + } else if (g === v) { + h = (1 / 3) + rdif - bdif; + } else if (b === v) { + h = (2 / 3) + gdif - rdif; + } + if (h < 0) { + h += 1; + } else if (h > 1) { + h -= 1; + } } -} -var cs = module.exports = { - to: {}, - get: {} + return [ + h * 360, + s * 100, + v * 100 + ]; }; -cs.get = function (string) { - var prefix = string.substring(0, 3).toLowerCase(); - var val; - var model; - switch (prefix) { - case 'hsl': - val = cs.get.hsl(string); - model = 'hsl'; - break; - case 'hwb': - val = cs.get.hwb(string); - model = 'hwb'; - break; - default: - val = cs.get.rgb(string); - model = 'rgb'; - break; - } +convert.rgb.hwb = function (rgb) { + var r = rgb[0]; + var g = rgb[1]; + var b = rgb[2]; + var h = convert.rgb.hsl(rgb)[0]; + var w = 1 / 255 * Math.min(r, Math.min(g, b)); - if (!val) { - return null; - } + b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); - return {model: model, value: val}; + return [h, w * 100, b * 100]; }; -cs.get.rgb = function (string) { - if (!string) { - return null; - } +convert.rgb.cmyk = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var c; + var m; + var y; + var k; - var abbr = /^#([a-f0-9]{3,4})$/i; - var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i; - var rgba = /^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/; - var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/; - var keyword = /^(\w+)$/; + k = Math.min(1 - r, 1 - g, 1 - b); + c = (1 - r - k) / (1 - k) || 0; + m = (1 - g - k) / (1 - k) || 0; + y = (1 - b - k) / (1 - k) || 0; - var rgb = [0, 0, 0, 1]; - var match; - var i; - var hexAlpha; + return [c * 100, m * 100, y * 100, k * 100]; +}; - if (match = string.match(hex)) { - hexAlpha = match[2]; - match = match[1]; +/** + * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance + * */ +function comparativeDistance(x, y) { + return ( + Math.pow(x[0] - y[0], 2) + + Math.pow(x[1] - y[1], 2) + + Math.pow(x[2] - y[2], 2) + ); +} - for (i = 0; i < 3; i++) { - // https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19 - var i2 = i * 2; - rgb[i] = parseInt(match.slice(i2, i2 + 2), 16); - } +convert.rgb.keyword = function (rgb) { + var reversed = reverseKeywords[rgb]; + if (reversed) { + return reversed; + } - if (hexAlpha) { - rgb[3] = parseInt(hexAlpha, 16) / 255; - } - } else if (match = string.match(abbr)) { - match = match[1]; - hexAlpha = match[3]; + var currentClosestDistance = Infinity; + var currentClosestKeyword; - for (i = 0; i < 3; i++) { - rgb[i] = parseInt(match[i] + match[i], 16); - } + for (var keyword in cssKeywords) { + if (cssKeywords.hasOwnProperty(keyword)) { + var value = cssKeywords[keyword]; - if (hexAlpha) { - rgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255; - } - } else if (match = string.match(rgba)) { - for (i = 0; i < 3; i++) { - rgb[i] = parseInt(match[i + 1], 0); - } + // Compute comparative distance + var distance = comparativeDistance(rgb, value); - if (match[4]) { - if (match[5]) { - rgb[3] = parseFloat(match[4]) * 0.01; - } else { - rgb[3] = parseFloat(match[4]); + // Check if its less, if so set as closest + if (distance < currentClosestDistance) { + currentClosestDistance = distance; + currentClosestKeyword = keyword; } } - } else if (match = string.match(per)) { - for (i = 0; i < 3; i++) { - rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55); - } + } - if (match[4]) { - if (match[5]) { - rgb[3] = parseFloat(match[4]) * 0.01; - } else { - rgb[3] = parseFloat(match[4]); - } - } - } else if (match = string.match(keyword)) { - if (match[1] === 'transparent') { - return [0, 0, 0, 0]; - } + return currentClosestKeyword; +}; - if (!hasOwnProperty.call(colorNames, match[1])) { - return null; - } +convert.keyword.rgb = function (keyword) { + return cssKeywords[keyword]; +}; - rgb = colorNames[match[1]]; - rgb[3] = 1; +convert.rgb.xyz = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; - return rgb; - } else { - return null; - } + // assume sRGB + r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92); + g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92); + b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92); - for (i = 0; i < 3; i++) { - rgb[i] = clamp(rgb[i], 0, 255); - } - rgb[3] = clamp(rgb[3], 0, 1); + var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805); + var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722); + var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505); - return rgb; + return [x * 100, y * 100, z * 100]; }; -cs.get.hsl = function (string) { - if (!string) { - return null; - } +convert.rgb.lab = function (rgb) { + var xyz = convert.rgb.xyz(rgb); + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; - var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/; - var match = string.match(hsl); + x /= 95.047; + y /= 100; + z /= 108.883; - if (match) { - var alpha = parseFloat(match[4]); - var h = ((parseFloat(match[1]) % 360) + 360) % 360; - var s = clamp(parseFloat(match[2]), 0, 100); - var l = clamp(parseFloat(match[3]), 0, 100); - var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1); + x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); - return [h, s, l, a]; - } + l = (116 * y) - 16; + a = 500 * (x - y); + b = 200 * (y - z); - return null; + return [l, a, b]; }; -cs.get.hwb = function (string) { - if (!string) { - return null; - } +convert.hsl.rgb = function (hsl) { + var h = hsl[0] / 360; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var t1; + var t2; + var t3; + var rgb; + var val; - var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/; - var match = string.match(hwb); + if (s === 0) { + val = l * 255; + return [val, val, val]; + } - if (match) { - var alpha = parseFloat(match[4]); - var h = ((parseFloat(match[1]) % 360) + 360) % 360; - var w = clamp(parseFloat(match[2]), 0, 100); - var b = clamp(parseFloat(match[3]), 0, 100); - var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1); - return [h, w, b, a]; + if (l < 0.5) { + t2 = l * (1 + s); + } else { + t2 = l + s - l * s; } - return null; -}; + t1 = 2 * l - t2; -cs.to.hex = function () { - var rgba = swizzle(arguments); + rgb = [0, 0, 0]; + for (var i = 0; i < 3; i++) { + t3 = h + 1 / 3 * -(i - 1); + if (t3 < 0) { + t3++; + } + if (t3 > 1) { + t3--; + } - return ( - '#' + - hexDouble(rgba[0]) + - hexDouble(rgba[1]) + - hexDouble(rgba[2]) + - (rgba[3] < 1 - ? (hexDouble(Math.round(rgba[3] * 255))) - : '') - ); -}; + if (6 * t3 < 1) { + val = t1 + (t2 - t1) * 6 * t3; + } else if (2 * t3 < 1) { + val = t2; + } else if (3 * t3 < 2) { + val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + } else { + val = t1; + } -cs.to.rgb = function () { - var rgba = swizzle(arguments); + rgb[i] = val * 255; + } - return rgba.length < 4 || rgba[3] === 1 - ? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')' - : 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')'; + return rgb; }; -cs.to.rgb.percent = function () { - var rgba = swizzle(arguments); +convert.hsl.hsv = function (hsl) { + var h = hsl[0]; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var smin = s; + var lmin = Math.max(l, 0.01); + var sv; + var v; - var r = Math.round(rgba[0] / 255 * 100); - var g = Math.round(rgba[1] / 255 * 100); - var b = Math.round(rgba[2] / 255 * 100); + l *= 2; + s *= (l <= 1) ? l : 2 - l; + smin *= lmin <= 1 ? lmin : 2 - lmin; + v = (l + s) / 2; + sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s); - return rgba.length < 4 || rgba[3] === 1 - ? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)' - : 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')'; + return [h, sv * 100, v * 100]; }; -cs.to.hsl = function () { - var hsla = swizzle(arguments); - return hsla.length < 4 || hsla[3] === 1 - ? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)' - : 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')'; -}; +convert.hsv.rgb = function (hsv) { + var h = hsv[0] / 60; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var hi = Math.floor(h) % 6; -// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax -// (hwb have alpha optional & 1 is default value) -cs.to.hwb = function () { - var hwba = swizzle(arguments); + var f = h - Math.floor(h); + var p = 255 * v * (1 - s); + var q = 255 * v * (1 - (s * f)); + var t = 255 * v * (1 - (s * (1 - f))); + v *= 255; - var a = ''; - if (hwba.length >= 4 && hwba[3] !== 1) { - a = ', ' + hwba[3]; + switch (hi) { + case 0: + return [v, t, p]; + case 1: + return [q, v, p]; + case 2: + return [p, v, t]; + case 3: + return [p, q, v]; + case 4: + return [t, p, v]; + case 5: + return [v, p, q]; } - - return 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')'; }; -cs.to.keyword = function (rgb) { - return reverseNames[rgb.slice(0, 3)]; -}; +convert.hsv.hsl = function (hsv) { + var h = hsv[0]; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var vmin = Math.max(v, 0.01); + var lmin; + var sl; + var l; -// helpers -function clamp(num, min, max) { - return Math.min(Math.max(min, num), max); -} + l = (2 - s) * v; + lmin = (2 - s) * vmin; + sl = s * vmin; + sl /= (lmin <= 1) ? lmin : 2 - lmin; + sl = sl || 0; + l /= 2; -function hexDouble(num) { - var str = Math.round(num).toString(16).toUpperCase(); - return (str.length < 2) ? '0' + str : str; -} + return [h, sl * 100, l * 100]; +}; +// http://dev.w3.org/csswg/css-color/#hwb-to-rgb +convert.hwb.rgb = function (hwb) { + var h = hwb[0] / 360; + var wh = hwb[1] / 100; + var bl = hwb[2] / 100; + var ratio = wh + bl; + var i; + var v; + var f; + var n; -/***/ }), + // wh + bl cant be > 1 + if (ratio > 1) { + wh /= ratio; + bl /= ratio; + } -/***/ "./node_modules/cht-core-4-0/api/node_modules/color/index.js": -/*!*******************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/color/index.js ***! - \*******************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + i = Math.floor(6 * h); + v = 1 - bl; + f = 6 * h - i; -"use strict"; + if ((i & 0x01) !== 0) { + f = 1 - f; + } + n = wh + f * (v - wh); // linear interpolation -var colorString = __webpack_require__(/*! color-string */ "./node_modules/cht-core-4-0/api/node_modules/color-string/index.js"); -var convert = __webpack_require__(/*! color-convert */ "./node_modules/cht-core-4-0/api/node_modules/color-convert/index.js"); + var r; + var g; + var b; + switch (i) { + default: + case 6: + case 0: r = v; g = n; b = wh; break; + case 1: r = n; g = v; b = wh; break; + case 2: r = wh; g = v; b = n; break; + case 3: r = wh; g = n; b = v; break; + case 4: r = n; g = wh; b = v; break; + case 5: r = v; g = wh; b = n; break; + } -var _slice = [].slice; + return [r * 255, g * 255, b * 255]; +}; -var skippedModels = [ - // to be honest, I don't really feel like keyword belongs in color convert, but eh. - 'keyword', +convert.cmyk.rgb = function (cmyk) { + var c = cmyk[0] / 100; + var m = cmyk[1] / 100; + var y = cmyk[2] / 100; + var k = cmyk[3] / 100; + var r; + var g; + var b; - // gray conflicts with some method names, and has its own method defined. - 'gray', + r = 1 - Math.min(1, c * (1 - k) + k); + g = 1 - Math.min(1, m * (1 - k) + k); + b = 1 - Math.min(1, y * (1 - k) + k); - // shouldn't really be in color-convert either... - 'hex' -]; + return [r * 255, g * 255, b * 255]; +}; -var hashedModelKeys = {}; -Object.keys(convert).forEach(function (model) { - hashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model; -}); +convert.xyz.rgb = function (xyz) { + var x = xyz[0] / 100; + var y = xyz[1] / 100; + var z = xyz[2] / 100; + var r; + var g; + var b; -var limiters = {}; + r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986); + g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415); + b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570); -function Color(obj, model) { - if (!(this instanceof Color)) { - return new Color(obj, model); - } + // assume sRGB + r = r > 0.0031308 + ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055) + : r * 12.92; - if (model && model in skippedModels) { - model = null; - } + g = g > 0.0031308 + ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055) + : g * 12.92; - if (model && !(model in convert)) { - throw new Error('Unknown model: ' + model); - } + b = b > 0.0031308 + ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055) + : b * 12.92; - var i; - var channels; + r = Math.min(Math.max(0, r), 1); + g = Math.min(Math.max(0, g), 1); + b = Math.min(Math.max(0, b), 1); - if (obj == null) { // eslint-disable-line no-eq-null,eqeqeq - this.model = 'rgb'; - this.color = [0, 0, 0]; - this.valpha = 1; - } else if (obj instanceof Color) { - this.model = obj.model; - this.color = obj.color.slice(); - this.valpha = obj.valpha; - } else if (typeof obj === 'string') { - var result = colorString.get(obj); - if (result === null) { - throw new Error('Unable to parse color from string: ' + obj); - } + return [r * 255, g * 255, b * 255]; +}; - this.model = result.model; - channels = convert[this.model].channels; - this.color = result.value.slice(0, channels); - this.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1; - } else if (obj.length) { - this.model = model || 'rgb'; - channels = convert[this.model].channels; - var newArr = _slice.call(obj, 0, channels); - this.color = zeroArray(newArr, channels); - this.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1; - } else if (typeof obj === 'number') { - // this is always RGB - can be converted later on. - obj &= 0xFFFFFF; - this.model = 'rgb'; - this.color = [ - (obj >> 16) & 0xFF, - (obj >> 8) & 0xFF, - obj & 0xFF - ]; - this.valpha = 1; - } else { - this.valpha = 1; +convert.xyz.lab = function (xyz) { + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; - var keys = Object.keys(obj); - if ('alpha' in obj) { - keys.splice(keys.indexOf('alpha'), 1); - this.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0; - } + x /= 95.047; + y /= 100; + z /= 108.883; - var hashedKeys = keys.sort().join(''); - if (!(hashedKeys in hashedModelKeys)) { - throw new Error('Unable to parse color from object: ' + JSON.stringify(obj)); - } + x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); - this.model = hashedModelKeys[hashedKeys]; + l = (116 * y) - 16; + a = 500 * (x - y); + b = 200 * (y - z); - var labels = convert[this.model].labels; - var color = []; - for (i = 0; i < labels.length; i++) { - color.push(obj[labels[i]]); - } + return [l, a, b]; +}; - this.color = zeroArray(color); - } +convert.lab.xyz = function (lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var x; + var y; + var z; - // perform limitations (clamping, etc.) - if (limiters[this.model]) { - channels = convert[this.model].channels; - for (i = 0; i < channels; i++) { - var limit = limiters[this.model][i]; - if (limit) { - this.color[i] = limit(this.color[i]); - } - } - } + y = (l + 16) / 116; + x = a / 500 + y; + z = y - b / 200; - this.valpha = Math.max(0, Math.min(1, this.valpha)); + var y2 = Math.pow(y, 3); + var x2 = Math.pow(x, 3); + var z2 = Math.pow(z, 3); + y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; + x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; + z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; - if (Object.freeze) { - Object.freeze(this); - } -} + x *= 95.047; + y *= 100; + z *= 108.883; -Color.prototype = { - toString: function () { - return this.string(); - }, + return [x, y, z]; +}; - toJSON: function () { - return this[this.model](); - }, +convert.lab.lch = function (lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var hr; + var h; + var c; - string: function (places) { - var self = this.model in colorString.to ? this : this.rgb(); - self = self.round(typeof places === 'number' ? places : 1); - var args = self.valpha === 1 ? self.color : self.color.concat(this.valpha); - return colorString.to[self.model](args); - }, + hr = Math.atan2(b, a); + h = hr * 360 / 2 / Math.PI; - percentString: function (places) { - var self = this.rgb().round(typeof places === 'number' ? places : 1); - var args = self.valpha === 1 ? self.color : self.color.concat(this.valpha); - return colorString.to.rgb.percent(args); - }, + if (h < 0) { + h += 360; + } - array: function () { - return this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha); - }, + c = Math.sqrt(a * a + b * b); - object: function () { - var result = {}; - var channels = convert[this.model].channels; - var labels = convert[this.model].labels; + return [l, c, h]; +}; - for (var i = 0; i < channels; i++) { - result[labels[i]] = this.color[i]; - } +convert.lch.lab = function (lch) { + var l = lch[0]; + var c = lch[1]; + var h = lch[2]; + var a; + var b; + var hr; - if (this.valpha !== 1) { - result.alpha = this.valpha; - } + hr = h / 360 * 2 * Math.PI; + a = c * Math.cos(hr); + b = c * Math.sin(hr); - return result; - }, + return [l, a, b]; +}; - unitArray: function () { - var rgb = this.rgb().color; - rgb[0] /= 255; - rgb[1] /= 255; - rgb[2] /= 255; +convert.rgb.ansi16 = function (args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; + var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization - if (this.valpha !== 1) { - rgb.push(this.valpha); - } + value = Math.round(value / 50); - return rgb; - }, + if (value === 0) { + return 30; + } - unitObject: function () { - var rgb = this.rgb().object(); - rgb.r /= 255; - rgb.g /= 255; - rgb.b /= 255; + var ansi = 30 + + ((Math.round(b / 255) << 2) + | (Math.round(g / 255) << 1) + | Math.round(r / 255)); - if (this.valpha !== 1) { - rgb.alpha = this.valpha; - } + if (value === 2) { + ansi += 60; + } - return rgb; - }, + return ansi; +}; - round: function (places) { - places = Math.max(places || 0, 0); - return new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model); - }, +convert.hsv.ansi16 = function (args) { + // optimization here; we already know the value and don't need to get + // it converted for us. + return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); +}; - alpha: function (val) { - if (arguments.length) { - return new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model); +convert.rgb.ansi256 = function (args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; + + // we use the extended greyscale palette here, with the exception of + // black and white. normal palette only has 4 greyscale shades. + if (r === g && g === b) { + if (r < 8) { + return 16; } - return this.valpha; - }, + if (r > 248) { + return 231; + } - // rgb - red: getset('rgb', 0, maxfn(255)), - green: getset('rgb', 1, maxfn(255)), - blue: getset('rgb', 2, maxfn(255)), + return Math.round(((r - 8) / 247) * 24) + 232; + } - hue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style + var ansi = 16 + + (36 * Math.round(r / 255 * 5)) + + (6 * Math.round(g / 255 * 5)) + + Math.round(b / 255 * 5); - saturationl: getset('hsl', 1, maxfn(100)), - lightness: getset('hsl', 2, maxfn(100)), + return ansi; +}; - saturationv: getset('hsv', 1, maxfn(100)), - value: getset('hsv', 2, maxfn(100)), +convert.ansi16.rgb = function (args) { + var color = args % 10; - chroma: getset('hcg', 1, maxfn(100)), - gray: getset('hcg', 2, maxfn(100)), + // handle greyscale + if (color === 0 || color === 7) { + if (args > 50) { + color += 3.5; + } - white: getset('hwb', 1, maxfn(100)), - wblack: getset('hwb', 2, maxfn(100)), + color = color / 10.5 * 255; - cyan: getset('cmyk', 0, maxfn(100)), - magenta: getset('cmyk', 1, maxfn(100)), - yellow: getset('cmyk', 2, maxfn(100)), - black: getset('cmyk', 3, maxfn(100)), + return [color, color, color]; + } - x: getset('xyz', 0, maxfn(100)), - y: getset('xyz', 1, maxfn(100)), - z: getset('xyz', 2, maxfn(100)), + var mult = (~~(args > 50) + 1) * 0.5; + var r = ((color & 1) * mult) * 255; + var g = (((color >> 1) & 1) * mult) * 255; + var b = (((color >> 2) & 1) * mult) * 255; - l: getset('lab', 0, maxfn(100)), - a: getset('lab', 1), - b: getset('lab', 2), + return [r, g, b]; +}; - keyword: function (val) { - if (arguments.length) { - return new Color(val); - } +convert.ansi256.rgb = function (args) { + // handle greyscale + if (args >= 232) { + var c = (args - 232) * 10 + 8; + return [c, c, c]; + } - return convert[this.model].keyword(this.color); - }, + args -= 16; - hex: function (val) { - if (arguments.length) { - return new Color(val); - } + var rem; + var r = Math.floor(args / 36) / 5 * 255; + var g = Math.floor((rem = args % 36) / 6) / 5 * 255; + var b = (rem % 6) / 5 * 255; - return colorString.to.hex(this.rgb().round().color); - }, + return [r, g, b]; +}; - rgbNumber: function () { - var rgb = this.rgb().color; - return ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF); - }, +convert.rgb.hex = function (args) { + var integer = ((Math.round(args[0]) & 0xFF) << 16) + + ((Math.round(args[1]) & 0xFF) << 8) + + (Math.round(args[2]) & 0xFF); - luminosity: function () { - // http://www.w3.org/TR/WCAG20/#relativeluminancedef - var rgb = this.rgb().color; + var string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; +}; - var lum = []; - for (var i = 0; i < rgb.length; i++) { - var chan = rgb[i] / 255; - lum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4); - } +convert.hex.rgb = function (args) { + var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); + if (!match) { + return [0, 0, 0]; + } - return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2]; - }, + var colorString = match[0]; - contrast: function (color2) { - // http://www.w3.org/TR/WCAG20/#contrast-ratiodef - var lum1 = this.luminosity(); - var lum2 = color2.luminosity(); + if (match[0].length === 3) { + colorString = colorString.split('').map(function (char) { + return char + char; + }).join(''); + } - if (lum1 > lum2) { - return (lum1 + 0.05) / (lum2 + 0.05); - } + var integer = parseInt(colorString, 16); + var r = (integer >> 16) & 0xFF; + var g = (integer >> 8) & 0xFF; + var b = integer & 0xFF; - return (lum2 + 0.05) / (lum1 + 0.05); - }, + return [r, g, b]; +}; - level: function (color2) { - var contrastRatio = this.contrast(color2); - if (contrastRatio >= 7.1) { - return 'AAA'; - } +convert.rgb.hcg = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var max = Math.max(Math.max(r, g), b); + var min = Math.min(Math.min(r, g), b); + var chroma = (max - min); + var grayscale; + var hue; - return (contrastRatio >= 4.5) ? 'AA' : ''; - }, + if (chroma < 1) { + grayscale = min / (1 - chroma); + } else { + grayscale = 0; + } - isDark: function () { - // YIQ equation from http://24ways.org/2010/calculating-color-contrast - var rgb = this.rgb().color; - var yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000; - return yiq < 128; - }, + if (chroma <= 0) { + hue = 0; + } else + if (max === r) { + hue = ((g - b) / chroma) % 6; + } else + if (max === g) { + hue = 2 + (b - r) / chroma; + } else { + hue = 4 + (r - g) / chroma + 4; + } - isLight: function () { - return !this.isDark(); - }, + hue /= 6; + hue %= 1; - negate: function () { - var rgb = this.rgb(); - for (var i = 0; i < 3; i++) { - rgb.color[i] = 255 - rgb.color[i]; - } - return rgb; - }, + return [hue * 360, chroma * 100, grayscale * 100]; +}; - lighten: function (ratio) { - var hsl = this.hsl(); - hsl.color[2] += hsl.color[2] * ratio; - return hsl; - }, +convert.hsl.hcg = function (hsl) { + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var c = 1; + var f = 0; - darken: function (ratio) { - var hsl = this.hsl(); - hsl.color[2] -= hsl.color[2] * ratio; - return hsl; - }, + if (l < 0.5) { + c = 2.0 * s * l; + } else { + c = 2.0 * s * (1.0 - l); + } - saturate: function (ratio) { - var hsl = this.hsl(); - hsl.color[1] += hsl.color[1] * ratio; - return hsl; - }, + if (c < 1.0) { + f = (l - 0.5 * c) / (1.0 - c); + } - desaturate: function (ratio) { - var hsl = this.hsl(); - hsl.color[1] -= hsl.color[1] * ratio; - return hsl; - }, + return [hsl[0], c * 100, f * 100]; +}; - whiten: function (ratio) { - var hwb = this.hwb(); - hwb.color[1] += hwb.color[1] * ratio; - return hwb; - }, +convert.hsv.hcg = function (hsv) { + var s = hsv[1] / 100; + var v = hsv[2] / 100; - blacken: function (ratio) { - var hwb = this.hwb(); - hwb.color[2] += hwb.color[2] * ratio; - return hwb; - }, + var c = s * v; + var f = 0; - grayscale: function () { - // http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale - var rgb = this.rgb().color; - var val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11; - return Color.rgb(val, val, val); - }, + if (c < 1.0) { + f = (v - c) / (1 - c); + } - fade: function (ratio) { - return this.alpha(this.valpha - (this.valpha * ratio)); - }, + return [hsv[0], c * 100, f * 100]; +}; - opaquer: function (ratio) { - return this.alpha(this.valpha + (this.valpha * ratio)); - }, +convert.hcg.rgb = function (hcg) { + var h = hcg[0] / 360; + var c = hcg[1] / 100; + var g = hcg[2] / 100; - rotate: function (degrees) { - var hsl = this.hsl(); - var hue = hsl.color[0]; - hue = (hue + degrees) % 360; - hue = hue < 0 ? 360 + hue : hue; - hsl.color[0] = hue; - return hsl; - }, + if (c === 0.0) { + return [g * 255, g * 255, g * 255]; + } - mix: function (mixinColor, weight) { - // ported from sass implementation in C - // https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209 - if (!mixinColor || !mixinColor.rgb) { - throw new Error('Argument to "mix" was not a Color instance, but rather an instance of ' + typeof mixinColor); - } - var color1 = mixinColor.rgb(); - var color2 = this.rgb(); - var p = weight === undefined ? 0.5 : weight; + var pure = [0, 0, 0]; + var hi = (h % 1) * 6; + var v = hi % 1; + var w = 1 - v; + var mg = 0; - var w = 2 * p - 1; - var a = color1.alpha() - color2.alpha(); + switch (Math.floor(hi)) { + case 0: + pure[0] = 1; pure[1] = v; pure[2] = 0; break; + case 1: + pure[0] = w; pure[1] = 1; pure[2] = 0; break; + case 2: + pure[0] = 0; pure[1] = 1; pure[2] = v; break; + case 3: + pure[0] = 0; pure[1] = w; pure[2] = 1; break; + case 4: + pure[0] = v; pure[1] = 0; pure[2] = 1; break; + default: + pure[0] = 1; pure[1] = 0; pure[2] = w; + } - var w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0; - var w2 = 1 - w1; + mg = (1.0 - c) * g; - return Color.rgb( - w1 * color1.red() + w2 * color2.red(), - w1 * color1.green() + w2 * color2.green(), - w1 * color1.blue() + w2 * color2.blue(), - color1.alpha() * p + color2.alpha() * (1 - p)); - } + return [ + (c * pure[0] + mg) * 255, + (c * pure[1] + mg) * 255, + (c * pure[2] + mg) * 255 + ]; }; -// model conversion methods and static constructors -Object.keys(convert).forEach(function (model) { - if (skippedModels.indexOf(model) !== -1) { - return; - } +convert.hcg.hsv = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; - var channels = convert[model].channels; + var v = c + g * (1.0 - c); + var f = 0; - // conversion methods - Color.prototype[model] = function () { - if (this.model === model) { - return new Color(this); - } + if (v > 0.0) { + f = c / v; + } - if (arguments.length) { - return new Color(arguments, model); - } + return [hcg[0], f * 100, v * 100]; +}; - var newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha; - return new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model); - }; +convert.hcg.hsl = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; - // 'static' construction methods - Color[model] = function (color) { - if (typeof color === 'number') { - color = zeroArray(_slice.call(arguments), channels); - } - return new Color(color, model); - }; -}); + var l = g * (1.0 - c) + 0.5 * c; + var s = 0; -function roundTo(num, places) { - return Number(num.toFixed(places)); -} + if (l > 0.0 && l < 0.5) { + s = c / (2 * l); + } else + if (l >= 0.5 && l < 1.0) { + s = c / (2 * (1 - l)); + } -function roundToPlace(places) { - return function (num) { - return roundTo(num, places); - }; -} + return [hcg[0], s * 100, l * 100]; +}; -function getset(model, channel, modifier) { - model = Array.isArray(model) ? model : [model]; +convert.hcg.hwb = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + var v = c + g * (1.0 - c); + return [hcg[0], (v - c) * 100, (1 - v) * 100]; +}; - model.forEach(function (m) { - (limiters[m] || (limiters[m] = []))[channel] = modifier; - }); +convert.hwb.hcg = function (hwb) { + var w = hwb[1] / 100; + var b = hwb[2] / 100; + var v = 1 - b; + var c = v - w; + var g = 0; - model = model[0]; + if (c < 1) { + g = (v - c) / (1 - c); + } - return function (val) { - var result; + return [hwb[0], c * 100, g * 100]; +}; - if (arguments.length) { - if (modifier) { - val = modifier(val); - } +convert.apple.rgb = function (apple) { + return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255]; +}; - result = this[model](); - result.color[channel] = val; - return result; - } +convert.rgb.apple = function (rgb) { + return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535]; +}; - result = this[model]().color[channel]; - if (modifier) { - result = modifier(result); - } +convert.gray.rgb = function (args) { + return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; +}; - return result; - }; -} +convert.gray.hsl = convert.gray.hsv = function (args) { + return [0, 0, args[0]]; +}; -function maxfn(max) { - return function (v) { - return Math.max(0, Math.min(max, v)); - }; -} +convert.gray.hwb = function (gray) { + return [0, 100, gray[0]]; +}; -function assertArray(val) { - return Array.isArray(val) ? val : [val]; -} +convert.gray.cmyk = function (gray) { + return [0, 0, 0, gray[0]]; +}; -function zeroArray(arr, length) { - for (var i = 0; i < length; i++) { - if (typeof arr[i] !== 'number') { - arr[i] = 0; - } - } +convert.gray.lab = function (gray) { + return [gray[0], 0, 0]; +}; - return arr; -} +convert.gray.hex = function (gray) { + var val = Math.round(gray[0] / 100 * 255) & 0xFF; + var integer = (val << 16) + (val << 8) + val; -module.exports = Color; + var string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; +}; + +convert.rgb.gray = function (rgb) { + var val = (rgb[0] + rgb[1] + rgb[2]) / 3; + return [val / 255 * 100]; +}; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/colors.js": -/*!*************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/colors/lib/colors.js ***! - \*************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/color-convert/index.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/color-convert/index.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_118299__) => { -/* +var conversions = __nested_webpack_require_118299__(/*! ./conversions */ "./build/cht-core-4-6/api/node_modules/color-convert/conversions.js"); +var route = __nested_webpack_require_118299__(/*! ./route */ "./build/cht-core-4-6/api/node_modules/color-convert/route.js"); -The MIT License (MIT) +var convert = {}; -Original Library - - Copyright (c) Marak Squires +var models = Object.keys(conversions); -Additional functionality - - Copyright (c) Sindre Sorhus (sindresorhus.com) +function wrapRaw(fn) { + var wrappedFn = function (args) { + if (args === undefined || args === null) { + return args; + } -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. + return fn(args); + }; -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. + // preserve .conversion property if there is one + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; + } -*/ + return wrappedFn; +} -var colors = {}; -module['exports'] = colors; +function wrapRounded(fn) { + var wrappedFn = function (args) { + if (args === undefined || args === null) { + return args; + } -colors.themes = {}; + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } -var util = __webpack_require__(/*! util */ "util"); -var ansiStyles = colors.styles = __webpack_require__(/*! ./styles */ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/styles.js"); -var defineProps = Object.defineProperties; -var newLineRegex = new RegExp(/[\r\n]+/g); + var result = fn(args); -colors.supportsColor = __webpack_require__(/*! ./system/supports-colors */ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/system/supports-colors.js").supportsColor; + // we're assuming the result is an array here. + // see notice in conversions.js; don't use box types + // in conversion functions. + if (typeof result === 'object') { + for (var len = result.length, i = 0; i < len; i++) { + result[i] = Math.round(result[i]); + } + } -if (typeof colors.enabled === 'undefined') { - colors.enabled = colors.supportsColor() !== false; -} + return result; + }; -colors.enable = function() { - colors.enabled = true; -}; + // preserve .conversion property if there is one + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; + } -colors.disable = function() { - colors.enabled = false; -}; + return wrappedFn; +} -colors.stripColors = colors.strip = function(str) { - return ('' + str).replace(/\x1B\[\d+m/g, ''); -}; +models.forEach(function (fromModel) { + convert[fromModel] = {}; -// eslint-disable-next-line no-unused-vars -var stylize = colors.stylize = function stylize(str, style) { - if (!colors.enabled) { - return str+''; - } + Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels}); + Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels}); - var styleMap = ansiStyles[style]; + var routes = route(fromModel); + var routeModels = Object.keys(routes); - // Stylize should work for non-ANSI styles, too - if(!styleMap && style in colors){ - // Style maps like trap operate as functions on strings; - // they don't have properties like open or close. - return colors[style](str); - } + routeModels.forEach(function (toModel) { + var fn = routes[toModel]; - return styleMap.open + str + styleMap.close; -}; + convert[fromModel][toModel] = wrapRounded(fn); + convert[fromModel][toModel].raw = wrapRaw(fn); + }); +}); -var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; -var escapeStringRegexp = function(str) { - if (typeof str !== 'string') { - throw new TypeError('Expected a string'); - } - return str.replace(matchOperatorsRe, '\\$&'); -}; +module.exports = convert; -function build(_styles) { - var builder = function builder() { - return applyStyle.apply(builder, arguments); - }; - builder._styles = _styles; - // __proto__ is used because we must return a function, but there is - // no way to create a function with a different prototype. - builder.__proto__ = proto; - return builder; -} -var styles = (function() { - var ret = {}; - ansiStyles.grey = ansiStyles.gray; - Object.keys(ansiStyles).forEach(function(key) { - ansiStyles[key].closeRe = - new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g'); - ret[key] = { - get: function() { - return build(this._styles.concat(key)); - }, - }; - }); - return ret; -})(); +/***/ }), -var proto = defineProps(function colors() {}, styles); +/***/ "./build/cht-core-4-6/api/node_modules/color-convert/route.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/color-convert/route.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_120563__) => { -function applyStyle() { - var args = Array.prototype.slice.call(arguments); +var conversions = __nested_webpack_require_120563__(/*! ./conversions */ "./build/cht-core-4-6/api/node_modules/color-convert/conversions.js"); - var str = args.map(function(arg) { - // Use weak equality check so we can colorize null/undefined in safe mode - if (arg != null && arg.constructor === String) { - return arg; - } else { - return util.inspect(arg); - } - }).join(' '); +/* + this function routes a model to all other models. - if (!colors.enabled || !str) { - return str; - } + all functions that are routed have a property `.conversion` attached + to the returned synthetic function. This property is an array + of strings, each with the steps in between the 'from' and 'to' + color models (inclusive). - var newLinesPresent = str.indexOf('\n') != -1; + conversions that are not possible simply are not included. +*/ - var nestedStyles = this._styles; +function buildGraph() { + var graph = {}; + // https://jsperf.com/object-keys-vs-for-in-with-closure/3 + var models = Object.keys(conversions); - var i = nestedStyles.length; - while (i--) { - var code = ansiStyles[nestedStyles[i]]; - str = code.open + str.replace(code.closeRe, code.open) + code.close; - if (newLinesPresent) { - str = str.replace(newLineRegex, function(match) { - return code.close + match + code.open; - }); - } - } + for (var len = models.length, i = 0; i < len; i++) { + graph[models[i]] = { + // http://jsperf.com/1-vs-infinity + // micro-opt, but this is simple. + distance: -1, + parent: null + }; + } - return str; + return graph; } -colors.setTheme = function(theme) { - if (typeof theme === 'string') { - console.log('colors.setTheme now only accepts an object, not a string. ' + - 'If you are trying to set a theme from a file, it is now your (the ' + - 'caller\'s) responsibility to require the file. The old syntax ' + - 'looked like colors.setTheme(__dirname + ' + - '\'/../themes/generic-logging.js\'); The new syntax looks like '+ - 'colors.setTheme(require(__dirname + ' + - '\'/../themes/generic-logging.js\'));'); - return; - } - for (var style in theme) { - (function(style) { - colors[style] = function(str) { - if (typeof theme[style] === 'object') { - var out = str; - for (var i in theme[style]) { - out = colors[theme[style][i]](out); - } - return out; - } - return colors[theme[style]](str); - }; - })(style); - } -}; +// https://en.wikipedia.org/wiki/Breadth-first_search +function deriveBFS(fromModel) { + var graph = buildGraph(); + var queue = [fromModel]; // unshift -> queue -> pop -function init() { - var ret = {}; - Object.keys(styles).forEach(function(name) { - ret[name] = { - get: function() { - return build([name]); - }, - }; - }); - return ret; -} + graph[fromModel].distance = 0; -var sequencer = function sequencer(map, str) { - var exploded = str.split(''); - exploded = exploded.map(map); - return exploded.join(''); -}; + while (queue.length) { + var current = queue.pop(); + var adjacents = Object.keys(conversions[current]); -// custom formatter methods -colors.trap = __webpack_require__(/*! ./custom/trap */ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/custom/trap.js"); -colors.zalgo = __webpack_require__(/*! ./custom/zalgo */ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/custom/zalgo.js"); + for (var len = adjacents.length, i = 0; i < len; i++) { + var adjacent = adjacents[i]; + var node = graph[adjacent]; -// maps -colors.maps = {}; -colors.maps.america = __webpack_require__(/*! ./maps/america */ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/maps/america.js")(colors); -colors.maps.zebra = __webpack_require__(/*! ./maps/zebra */ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/maps/zebra.js")(colors); -colors.maps.rainbow = __webpack_require__(/*! ./maps/rainbow */ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/maps/rainbow.js")(colors); -colors.maps.random = __webpack_require__(/*! ./maps/random */ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/maps/random.js")(colors); + if (node.distance === -1) { + node.distance = graph[current].distance + 1; + node.parent = current; + queue.unshift(adjacent); + } + } + } -for (var map in colors.maps) { - (function(map) { - colors[map] = function(str) { - return sequencer(colors.maps[map], str); - }; - })(map); + return graph; } -defineProps(colors, init()); - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/custom/trap.js": -/*!******************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/colors/lib/custom/trap.js ***! - \******************************************************************************/ -/***/ ((module) => { - -module['exports'] = function runTheTrap(text, options) { - var result = ''; - text = text || 'Run the trap, drop the bass'; - text = text.split(''); - var trap = { - a: ['\u0040', '\u0104', '\u023a', '\u0245', '\u0394', '\u039b', '\u0414'], - b: ['\u00df', '\u0181', '\u0243', '\u026e', '\u03b2', '\u0e3f'], - c: ['\u00a9', '\u023b', '\u03fe'], - d: ['\u00d0', '\u018a', '\u0500', '\u0501', '\u0502', '\u0503'], - e: ['\u00cb', '\u0115', '\u018e', '\u0258', '\u03a3', '\u03be', '\u04bc', - '\u0a6c'], - f: ['\u04fa'], - g: ['\u0262'], - h: ['\u0126', '\u0195', '\u04a2', '\u04ba', '\u04c7', '\u050a'], - i: ['\u0f0f'], - j: ['\u0134'], - k: ['\u0138', '\u04a0', '\u04c3', '\u051e'], - l: ['\u0139'], - m: ['\u028d', '\u04cd', '\u04ce', '\u0520', '\u0521', '\u0d69'], - n: ['\u00d1', '\u014b', '\u019d', '\u0376', '\u03a0', '\u048a'], - o: ['\u00d8', '\u00f5', '\u00f8', '\u01fe', '\u0298', '\u047a', '\u05dd', - '\u06dd', '\u0e4f'], - p: ['\u01f7', '\u048e'], - q: ['\u09cd'], - r: ['\u00ae', '\u01a6', '\u0210', '\u024c', '\u0280', '\u042f'], - s: ['\u00a7', '\u03de', '\u03df', '\u03e8'], - t: ['\u0141', '\u0166', '\u0373'], - u: ['\u01b1', '\u054d'], - v: ['\u05d8'], - w: ['\u0428', '\u0460', '\u047c', '\u0d70'], - x: ['\u04b2', '\u04fe', '\u04fc', '\u04fd'], - y: ['\u00a5', '\u04b0', '\u04cb'], - z: ['\u01b5', '\u0240'], - }; - text.forEach(function(c) { - c = c.toLowerCase(); - var chars = trap[c] || [' ']; - var rand = Math.floor(Math.random() * chars.length); - if (typeof trap[c] !== 'undefined') { - result += trap[c][rand]; - } else { - result += c; - } - }); - return result; -}; - +function link(from, to) { + return function (args) { + return to(from(args)); + }; +} -/***/ }), +function wrapConversion(toModel, graph) { + var path = [graph[toModel].parent, toModel]; + var fn = conversions[graph[toModel].parent][toModel]; -/***/ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/custom/zalgo.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/colors/lib/custom/zalgo.js ***! - \*******************************************************************************/ -/***/ ((module) => { + var cur = graph[toModel].parent; + while (graph[cur].parent) { + path.unshift(graph[cur].parent); + fn = link(conversions[graph[cur].parent][cur], fn); + cur = graph[cur].parent; + } -// please no -module['exports'] = function zalgo(text, options) { - text = text || ' he is here '; - var soul = { - 'up': [ - '̍', '̎', '̄', '̅', - '̿', '̑', '̆', '̐', - '͒', '͗', '͑', '̇', - '̈', '̊', '͂', '̓', - '̈', '͊', '͋', '͌', - '̃', '̂', '̌', '͐', - '̀', '́', '̋', '̏', - '̒', '̓', '̔', '̽', - '̉', 'ͣ', 'ͤ', 'ͥ', - 'ͦ', 'ͧ', 'ͨ', 'ͩ', - 'ͪ', 'ͫ', 'ͬ', 'ͭ', - 'ͮ', 'ͯ', '̾', '͛', - '͆', '̚', - ], - 'down': [ - '̖', '̗', '̘', '̙', - '̜', '̝', '̞', '̟', - '̠', '̤', '̥', '̦', - '̩', '̪', '̫', '̬', - '̭', '̮', '̯', '̰', - '̱', '̲', '̳', '̹', - '̺', '̻', '̼', 'ͅ', - '͇', '͈', '͉', '͍', - '͎', '͓', '͔', '͕', - '͖', '͙', '͚', '̣', - ], - 'mid': [ - '̕', '̛', '̀', '́', - '͘', '̡', '̢', '̧', - '̨', '̴', '̵', '̶', - '͜', '͝', '͞', - '͟', '͠', '͢', '̸', - '̷', '͡', ' ҉', - ], - }; - var all = [].concat(soul.up, soul.down, soul.mid); + fn.conversion = path; + return fn; +} - function randomNumber(range) { - var r = Math.floor(Math.random() * range); - return r; - } +module.exports = function (fromModel) { + var graph = deriveBFS(fromModel); + var conversion = {}; - function isChar(character) { - var bool = false; - all.filter(function(i) { - bool = (i === character); - }); - return bool; - } + var models = Object.keys(graph); + for (var len = models.length, i = 0; i < len; i++) { + var toModel = models[i]; + var node = graph[toModel]; + if (node.parent === null) { + // no possible conversion, or this node is the source model. + continue; + } - function heComes(text, options) { - var result = ''; - var counts; - var l; - options = options || {}; - options['up'] = - typeof options['up'] !== 'undefined' ? options['up'] : true; - options['mid'] = - typeof options['mid'] !== 'undefined' ? options['mid'] : true; - options['down'] = - typeof options['down'] !== 'undefined' ? options['down'] : true; - options['size'] = - typeof options['size'] !== 'undefined' ? options['size'] : 'maxi'; - text = text.split(''); - for (l in text) { - if (isChar(l)) { - continue; - } - result = result + text[l]; - counts = {'up': 0, 'down': 0, 'mid': 0}; - switch (options.size) { - case 'mini': - counts.up = randomNumber(8); - counts.mid = randomNumber(2); - counts.down = randomNumber(8); - break; - case 'maxi': - counts.up = randomNumber(16) + 3; - counts.mid = randomNumber(4) + 1; - counts.down = randomNumber(64) + 3; - break; - default: - counts.up = randomNumber(8) + 1; - counts.mid = randomNumber(6) / 2; - counts.down = randomNumber(8) + 1; - break; - } + conversion[toModel] = wrapConversion(toModel, graph); + } - var arr = ['up', 'mid', 'down']; - for (var d in arr) { - var index = arr[d]; - for (var i = 0; i <= counts[index]; i++) { - if (options[index]) { - result = result + soul[index][randomNumber(soul[index].length)]; - } - } - } - } - return result; - } - // don't summon him - return heComes(text, options); + return conversion; }; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/maps/america.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/colors/lib/maps/america.js ***! - \*******************************************************************************/ +/***/ "./build/cht-core-4-6/api/node_modules/color-name/index.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/color-name/index.js ***! + \*****************************************************************/ /***/ ((module) => { -module['exports'] = function(colors) { - return function(letter, i, exploded) { - if (letter === ' ') return letter; - switch (i%3) { - case 0: return colors.red(letter); - case 1: return colors.white(letter); - case 2: return colors.blue(letter); - } - }; -}; +"use strict"; + + +module.exports = { + "aliceblue": [240, 248, 255], + "antiquewhite": [250, 235, 215], + "aqua": [0, 255, 255], + "aquamarine": [127, 255, 212], + "azure": [240, 255, 255], + "beige": [245, 245, 220], + "bisque": [255, 228, 196], + "black": [0, 0, 0], + "blanchedalmond": [255, 235, 205], + "blue": [0, 0, 255], + "blueviolet": [138, 43, 226], + "brown": [165, 42, 42], + "burlywood": [222, 184, 135], + "cadetblue": [95, 158, 160], + "chartreuse": [127, 255, 0], + "chocolate": [210, 105, 30], + "coral": [255, 127, 80], + "cornflowerblue": [100, 149, 237], + "cornsilk": [255, 248, 220], + "crimson": [220, 20, 60], + "cyan": [0, 255, 255], + "darkblue": [0, 0, 139], + "darkcyan": [0, 139, 139], + "darkgoldenrod": [184, 134, 11], + "darkgray": [169, 169, 169], + "darkgreen": [0, 100, 0], + "darkgrey": [169, 169, 169], + "darkkhaki": [189, 183, 107], + "darkmagenta": [139, 0, 139], + "darkolivegreen": [85, 107, 47], + "darkorange": [255, 140, 0], + "darkorchid": [153, 50, 204], + "darkred": [139, 0, 0], + "darksalmon": [233, 150, 122], + "darkseagreen": [143, 188, 143], + "darkslateblue": [72, 61, 139], + "darkslategray": [47, 79, 79], + "darkslategrey": [47, 79, 79], + "darkturquoise": [0, 206, 209], + "darkviolet": [148, 0, 211], + "deeppink": [255, 20, 147], + "deepskyblue": [0, 191, 255], + "dimgray": [105, 105, 105], + "dimgrey": [105, 105, 105], + "dodgerblue": [30, 144, 255], + "firebrick": [178, 34, 34], + "floralwhite": [255, 250, 240], + "forestgreen": [34, 139, 34], + "fuchsia": [255, 0, 255], + "gainsboro": [220, 220, 220], + "ghostwhite": [248, 248, 255], + "gold": [255, 215, 0], + "goldenrod": [218, 165, 32], + "gray": [128, 128, 128], + "green": [0, 128, 0], + "greenyellow": [173, 255, 47], + "grey": [128, 128, 128], + "honeydew": [240, 255, 240], + "hotpink": [255, 105, 180], + "indianred": [205, 92, 92], + "indigo": [75, 0, 130], + "ivory": [255, 255, 240], + "khaki": [240, 230, 140], + "lavender": [230, 230, 250], + "lavenderblush": [255, 240, 245], + "lawngreen": [124, 252, 0], + "lemonchiffon": [255, 250, 205], + "lightblue": [173, 216, 230], + "lightcoral": [240, 128, 128], + "lightcyan": [224, 255, 255], + "lightgoldenrodyellow": [250, 250, 210], + "lightgray": [211, 211, 211], + "lightgreen": [144, 238, 144], + "lightgrey": [211, 211, 211], + "lightpink": [255, 182, 193], + "lightsalmon": [255, 160, 122], + "lightseagreen": [32, 178, 170], + "lightskyblue": [135, 206, 250], + "lightslategray": [119, 136, 153], + "lightslategrey": [119, 136, 153], + "lightsteelblue": [176, 196, 222], + "lightyellow": [255, 255, 224], + "lime": [0, 255, 0], + "limegreen": [50, 205, 50], + "linen": [250, 240, 230], + "magenta": [255, 0, 255], + "maroon": [128, 0, 0], + "mediumaquamarine": [102, 205, 170], + "mediumblue": [0, 0, 205], + "mediumorchid": [186, 85, 211], + "mediumpurple": [147, 112, 219], + "mediumseagreen": [60, 179, 113], + "mediumslateblue": [123, 104, 238], + "mediumspringgreen": [0, 250, 154], + "mediumturquoise": [72, 209, 204], + "mediumvioletred": [199, 21, 133], + "midnightblue": [25, 25, 112], + "mintcream": [245, 255, 250], + "mistyrose": [255, 228, 225], + "moccasin": [255, 228, 181], + "navajowhite": [255, 222, 173], + "navy": [0, 0, 128], + "oldlace": [253, 245, 230], + "olive": [128, 128, 0], + "olivedrab": [107, 142, 35], + "orange": [255, 165, 0], + "orangered": [255, 69, 0], + "orchid": [218, 112, 214], + "palegoldenrod": [238, 232, 170], + "palegreen": [152, 251, 152], + "paleturquoise": [175, 238, 238], + "palevioletred": [219, 112, 147], + "papayawhip": [255, 239, 213], + "peachpuff": [255, 218, 185], + "peru": [205, 133, 63], + "pink": [255, 192, 203], + "plum": [221, 160, 221], + "powderblue": [176, 224, 230], + "purple": [128, 0, 128], + "rebeccapurple": [102, 51, 153], + "red": [255, 0, 0], + "rosybrown": [188, 143, 143], + "royalblue": [65, 105, 225], + "saddlebrown": [139, 69, 19], + "salmon": [250, 128, 114], + "sandybrown": [244, 164, 96], + "seagreen": [46, 139, 87], + "seashell": [255, 245, 238], + "sienna": [160, 82, 45], + "silver": [192, 192, 192], + "skyblue": [135, 206, 235], + "slateblue": [106, 90, 205], + "slategray": [112, 128, 144], + "slategrey": [112, 128, 144], + "snow": [255, 250, 250], + "springgreen": [0, 255, 127], + "steelblue": [70, 130, 180], + "tan": [210, 180, 140], + "teal": [0, 128, 128], + "thistle": [216, 191, 216], + "tomato": [255, 99, 71], + "turquoise": [64, 224, 208], + "violet": [238, 130, 238], + "wheat": [245, 222, 179], + "white": [255, 255, 255], + "whitesmoke": [245, 245, 245], + "yellow": [255, 255, 0], + "yellowgreen": [154, 205, 50] +}; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/maps/rainbow.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/colors/lib/maps/rainbow.js ***! - \*******************************************************************************/ -/***/ ((module) => { - -module['exports'] = function(colors) { - // RoY G BiV - var rainbowColors = ['red', 'yellow', 'green', 'blue', 'magenta']; - return function(letter, i, exploded) { - if (letter === ' ') { - return letter; - } else { - return colors[rainbowColors[i++ % rainbowColors.length]](letter); - } - }; -}; - +/***/ "./build/cht-core-4-6/api/node_modules/color-string/index.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/color-string/index.js ***! + \*******************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_128178__) => { +/* MIT license */ +var colorNames = __nested_webpack_require_128178__(/*! color-name */ "./build/cht-core-4-6/api/node_modules/color-name/index.js"); +var swizzle = __nested_webpack_require_128178__(/*! simple-swizzle */ "./build/cht-core-4-6/api/node_modules/simple-swizzle/index.js"); +var hasOwnProperty = Object.hasOwnProperty; -/***/ }), +var reverseNames = {}; -/***/ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/maps/random.js": -/*!******************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/colors/lib/maps/random.js ***! - \******************************************************************************/ -/***/ ((module) => { +// create a list of reverse color names +for (var name in colorNames) { + if (hasOwnProperty.call(colorNames, name)) { + reverseNames[colorNames[name]] = name; + } +} -module['exports'] = function(colors) { - var available = ['underline', 'inverse', 'grey', 'yellow', 'red', 'green', - 'blue', 'white', 'cyan', 'magenta', 'brightYellow', 'brightRed', - 'brightGreen', 'brightBlue', 'brightWhite', 'brightCyan', 'brightMagenta']; - return function(letter, i, exploded) { - return letter === ' ' ? letter : - colors[ - available[Math.round(Math.random() * (available.length - 2))] - ](letter); - }; +var cs = module.exports = { + to: {}, + get: {} }; +cs.get = function (string) { + var prefix = string.substring(0, 3).toLowerCase(); + var val; + var model; + switch (prefix) { + case 'hsl': + val = cs.get.hsl(string); + model = 'hsl'; + break; + case 'hwb': + val = cs.get.hwb(string); + model = 'hwb'; + break; + default: + val = cs.get.rgb(string); + model = 'rgb'; + break; + } -/***/ }), + if (!val) { + return null; + } -/***/ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/maps/zebra.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/colors/lib/maps/zebra.js ***! - \*****************************************************************************/ -/***/ ((module) => { - -module['exports'] = function(colors) { - return function(letter, i, exploded) { - return i % 2 === 0 ? letter : colors.inverse(letter); - }; + return {model: model, value: val}; }; +cs.get.rgb = function (string) { + if (!string) { + return null; + } -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/styles.js": -/*!*************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/colors/lib/styles.js ***! - \*************************************************************************/ -/***/ ((module) => { + var abbr = /^#([a-f0-9]{3,4})$/i; + var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i; + var rgba = /^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/; + var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/; + var keyword = /^(\w+)$/; -/* -The MIT License (MIT) + var rgb = [0, 0, 0, 1]; + var match; + var i; + var hexAlpha; -Copyright (c) Sindre Sorhus (sindresorhus.com) + if (match = string.match(hex)) { + hexAlpha = match[2]; + match = match[1]; -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: + for (i = 0; i < 3; i++) { + // https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19 + var i2 = i * 2; + rgb[i] = parseInt(match.slice(i2, i2 + 2), 16); + } -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. + if (hexAlpha) { + rgb[3] = parseInt(hexAlpha, 16) / 255; + } + } else if (match = string.match(abbr)) { + match = match[1]; + hexAlpha = match[3]; -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. + for (i = 0; i < 3; i++) { + rgb[i] = parseInt(match[i] + match[i], 16); + } -*/ + if (hexAlpha) { + rgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255; + } + } else if (match = string.match(rgba)) { + for (i = 0; i < 3; i++) { + rgb[i] = parseInt(match[i + 1], 0); + } -var styles = {}; -module['exports'] = styles; + if (match[4]) { + if (match[5]) { + rgb[3] = parseFloat(match[4]) * 0.01; + } else { + rgb[3] = parseFloat(match[4]); + } + } + } else if (match = string.match(per)) { + for (i = 0; i < 3; i++) { + rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55); + } -var codes = { - reset: [0, 0], + if (match[4]) { + if (match[5]) { + rgb[3] = parseFloat(match[4]) * 0.01; + } else { + rgb[3] = parseFloat(match[4]); + } + } + } else if (match = string.match(keyword)) { + if (match[1] === 'transparent') { + return [0, 0, 0, 0]; + } - bold: [1, 22], - dim: [2, 22], - italic: [3, 23], - underline: [4, 24], - inverse: [7, 27], - hidden: [8, 28], - strikethrough: [9, 29], + if (!hasOwnProperty.call(colorNames, match[1])) { + return null; + } - black: [30, 39], - red: [31, 39], - green: [32, 39], - yellow: [33, 39], - blue: [34, 39], - magenta: [35, 39], - cyan: [36, 39], - white: [37, 39], - gray: [90, 39], - grey: [90, 39], + rgb = colorNames[match[1]]; + rgb[3] = 1; - brightRed: [91, 39], - brightGreen: [92, 39], - brightYellow: [93, 39], - brightBlue: [94, 39], - brightMagenta: [95, 39], - brightCyan: [96, 39], - brightWhite: [97, 39], + return rgb; + } else { + return null; + } - bgBlack: [40, 49], - bgRed: [41, 49], - bgGreen: [42, 49], - bgYellow: [43, 49], - bgBlue: [44, 49], - bgMagenta: [45, 49], - bgCyan: [46, 49], - bgWhite: [47, 49], - bgGray: [100, 49], - bgGrey: [100, 49], + for (i = 0; i < 3; i++) { + rgb[i] = clamp(rgb[i], 0, 255); + } + rgb[3] = clamp(rgb[3], 0, 1); - bgBrightRed: [101, 49], - bgBrightGreen: [102, 49], - bgBrightYellow: [103, 49], - bgBrightBlue: [104, 49], - bgBrightMagenta: [105, 49], - bgBrightCyan: [106, 49], - bgBrightWhite: [107, 49], + return rgb; +}; - // legacy styles for colors pre v1.0.0 - blackBG: [40, 49], - redBG: [41, 49], - greenBG: [42, 49], - yellowBG: [43, 49], - blueBG: [44, 49], - magentaBG: [45, 49], - cyanBG: [46, 49], - whiteBG: [47, 49], +cs.get.hsl = function (string) { + if (!string) { + return null; + } -}; + var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/; + var match = string.match(hsl); -Object.keys(codes).forEach(function(key) { - var val = codes[key]; - var style = styles[key] = []; - style.open = '\u001b[' + val[0] + 'm'; - style.close = '\u001b[' + val[1] + 'm'; -}); + if (match) { + var alpha = parseFloat(match[4]); + var h = ((parseFloat(match[1]) % 360) + 360) % 360; + var s = clamp(parseFloat(match[2]), 0, 100); + var l = clamp(parseFloat(match[3]), 0, 100); + var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1); + return [h, s, l, a]; + } -/***/ }), + return null; +}; -/***/ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/system/has-flag.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/colors/lib/system/has-flag.js ***! - \**********************************************************************************/ -/***/ ((module) => { +cs.get.hwb = function (string) { + if (!string) { + return null; + } -"use strict"; -/* -MIT License + var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/; + var match = string.match(hwb); -Copyright (c) Sindre Sorhus (sindresorhus.com) + if (match) { + var alpha = parseFloat(match[4]); + var h = ((parseFloat(match[1]) % 360) + 360) % 360; + var w = clamp(parseFloat(match[2]), 0, 100); + var b = clamp(parseFloat(match[3]), 0, 100); + var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1); + return [h, w, b, a]; + } -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: + return null; +}; -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +cs.to.hex = function () { + var rgba = swizzle(arguments); -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ + return ( + '#' + + hexDouble(rgba[0]) + + hexDouble(rgba[1]) + + hexDouble(rgba[2]) + + (rgba[3] < 1 + ? (hexDouble(Math.round(rgba[3] * 255))) + : '') + ); +}; +cs.to.rgb = function () { + var rgba = swizzle(arguments); + return rgba.length < 4 || rgba[3] === 1 + ? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')' + : 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')'; +}; -module.exports = function(flag, argv) { - argv = argv || process.argv; +cs.to.rgb.percent = function () { + var rgba = swizzle(arguments); - var terminatorPos = argv.indexOf('--'); - var prefix = /^-{1,2}/.test(flag) ? '' : '--'; - var pos = argv.indexOf(prefix + flag); + var r = Math.round(rgba[0] / 255 * 100); + var g = Math.round(rgba[1] / 255 * 100); + var b = Math.round(rgba[2] / 255 * 100); - return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); + return rgba.length < 4 || rgba[3] === 1 + ? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)' + : 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')'; }; +cs.to.hsl = function () { + var hsla = swizzle(arguments); + return hsla.length < 4 || hsla[3] === 1 + ? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)' + : 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')'; +}; -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/system/supports-colors.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/colors/lib/system/supports-colors.js ***! - \*****************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax +// (hwb have alpha optional & 1 is default value) +cs.to.hwb = function () { + var hwba = swizzle(arguments); -"use strict"; -/* -The MIT License (MIT) + var a = ''; + if (hwba.length >= 4 && hwba[3] !== 1) { + a = ', ' + hwba[3]; + } -Copyright (c) Sindre Sorhus (sindresorhus.com) + return 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')'; +}; -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +cs.to.keyword = function (rgb) { + return reverseNames[rgb.slice(0, 3)]; +}; -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +// helpers +function clamp(num, min, max) { + return Math.min(Math.max(min, num), max); +} -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +function hexDouble(num) { + var str = Math.round(num).toString(16).toUpperCase(); + return (str.length < 2) ? '0' + str : str; +} -*/ +/***/ }), +/***/ "./build/cht-core-4-6/api/node_modules/color/index.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/color/index.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_134376__) => { -var os = __webpack_require__(/*! os */ "os"); -var hasFlag = __webpack_require__(/*! ./has-flag.js */ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/system/has-flag.js"); +"use strict"; -var env = process.env; -var forceColor = void 0; -if (hasFlag('no-color') || hasFlag('no-colors') || hasFlag('color=false')) { - forceColor = false; -} else if (hasFlag('color') || hasFlag('colors') || hasFlag('color=true') - || hasFlag('color=always')) { - forceColor = true; -} -if ('FORCE_COLOR' in env) { - forceColor = env.FORCE_COLOR.length === 0 - || parseInt(env.FORCE_COLOR, 10) !== 0; -} +var colorString = __nested_webpack_require_134376__(/*! color-string */ "./build/cht-core-4-6/api/node_modules/color-string/index.js"); +var convert = __nested_webpack_require_134376__(/*! color-convert */ "./build/cht-core-4-6/api/node_modules/color-convert/index.js"); -function translateLevel(level) { - if (level === 0) { - return false; - } +var _slice = [].slice; - return { - level: level, - hasBasic: true, - has256: level >= 2, - has16m: level >= 3, - }; -} +var skippedModels = [ + // to be honest, I don't really feel like keyword belongs in color convert, but eh. + 'keyword', -function supportsColor(stream) { - if (forceColor === false) { - return 0; - } + // gray conflicts with some method names, and has its own method defined. + 'gray', - if (hasFlag('color=16m') || hasFlag('color=full') - || hasFlag('color=truecolor')) { - return 3; - } + // shouldn't really be in color-convert either... + 'hex' +]; - if (hasFlag('color=256')) { - return 2; - } +var hashedModelKeys = {}; +Object.keys(convert).forEach(function (model) { + hashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model; +}); - if (stream && !stream.isTTY && forceColor !== true) { - return 0; - } +var limiters = {}; - var min = forceColor ? 1 : 0; +function Color(obj, model) { + if (!(this instanceof Color)) { + return new Color(obj, model); + } - if (process.platform === 'win32') { - // Node.js 7.5.0 is the first version of Node.js to include a patch to - // libuv that enables 256 color output on Windows. Anything earlier and it - // won't work. However, here we target Node.js 8 at minimum as it is an LTS - // release, and Node.js 7 is not. Windows 10 build 10586 is the first - // Windows release that supports 256 colors. Windows 10 build 14931 is the - // first release that supports 16m/TrueColor. - var osRelease = os.release().split('.'); - if (Number(process.versions.node.split('.')[0]) >= 8 - && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { - return Number(osRelease[2]) >= 14931 ? 3 : 2; - } + if (model && model in skippedModels) { + model = null; + } - return 1; - } + if (model && !(model in convert)) { + throw new Error('Unknown model: ' + model); + } - if ('CI' in env) { - if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(function(sign) { - return sign in env; - }) || env.CI_NAME === 'codeship') { - return 1; - } + var i; + var channels; - return min; - } + if (obj == null) { // eslint-disable-line no-eq-null,eqeqeq + this.model = 'rgb'; + this.color = [0, 0, 0]; + this.valpha = 1; + } else if (obj instanceof Color) { + this.model = obj.model; + this.color = obj.color.slice(); + this.valpha = obj.valpha; + } else if (typeof obj === 'string') { + var result = colorString.get(obj); + if (result === null) { + throw new Error('Unable to parse color from string: ' + obj); + } - if ('TEAMCITY_VERSION' in env) { - return (/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0 - ); - } + this.model = result.model; + channels = convert[this.model].channels; + this.color = result.value.slice(0, channels); + this.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1; + } else if (obj.length) { + this.model = model || 'rgb'; + channels = convert[this.model].channels; + var newArr = _slice.call(obj, 0, channels); + this.color = zeroArray(newArr, channels); + this.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1; + } else if (typeof obj === 'number') { + // this is always RGB - can be converted later on. + obj &= 0xFFFFFF; + this.model = 'rgb'; + this.color = [ + (obj >> 16) & 0xFF, + (obj >> 8) & 0xFF, + obj & 0xFF + ]; + this.valpha = 1; + } else { + this.valpha = 1; - if ('TERM_PROGRAM' in env) { - var version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + var keys = Object.keys(obj); + if ('alpha' in obj) { + keys.splice(keys.indexOf('alpha'), 1); + this.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0; + } - switch (env.TERM_PROGRAM) { - case 'iTerm.app': - return version >= 3 ? 3 : 2; - case 'Hyper': - return 3; - case 'Apple_Terminal': - return 2; - // No default - } - } + var hashedKeys = keys.sort().join(''); + if (!(hashedKeys in hashedModelKeys)) { + throw new Error('Unable to parse color from object: ' + JSON.stringify(obj)); + } - if (/-256(color)?$/i.test(env.TERM)) { - return 2; - } + this.model = hashedModelKeys[hashedKeys]; - if (/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { - return 1; - } + var labels = convert[this.model].labels; + var color = []; + for (i = 0; i < labels.length; i++) { + color.push(obj[labels[i]]); + } - if ('COLORTERM' in env) { - return 1; - } + this.color = zeroArray(color); + } - if (env.TERM === 'dumb') { - return min; - } + // perform limitations (clamping, etc.) + if (limiters[this.model]) { + channels = convert[this.model].channels; + for (i = 0; i < channels; i++) { + var limit = limiters[this.model][i]; + if (limit) { + this.color[i] = limit(this.color[i]); + } + } + } - return min; -} + this.valpha = Math.max(0, Math.min(1, this.valpha)); -function getSupportLevel(stream) { - var level = supportsColor(stream); - return translateLevel(level); + if (Object.freeze) { + Object.freeze(this); + } } -module.exports = { - supportsColor: getSupportLevel, - stdout: getSupportLevel(process.stdout), - stderr: getSupportLevel(process.stderr), -}; +Color.prototype = { + toString: function () { + return this.string(); + }, + toJSON: function () { + return this[this.model](); + }, -/***/ }), + string: function (places) { + var self = this.model in colorString.to ? this : this.rgb(); + self = self.round(typeof places === 'number' ? places : 1); + var args = self.valpha === 1 ? self.color : self.color.concat(this.valpha); + return colorString.to[self.model](args); + }, -/***/ "./node_modules/cht-core-4-0/api/node_modules/colors/safe.js": -/*!*******************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/colors/safe.js ***! - \*******************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + percentString: function (places) { + var self = this.rgb().round(typeof places === 'number' ? places : 1); + var args = self.valpha === 1 ? self.color : self.color.concat(this.valpha); + return colorString.to.rgb.percent(args); + }, -// -// Remark: Requiring this file will use the "safe" colors API, -// which will not touch String.prototype. -// -// var colors = require('colors/safe'); -// colors.red("foo") -// -// -var colors = __webpack_require__(/*! ./lib/colors */ "./node_modules/cht-core-4-0/api/node_modules/colors/lib/colors.js"); -module['exports'] = colors; + array: function () { + return this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha); + }, + + object: function () { + var result = {}; + var channels = convert[this.model].channels; + var labels = convert[this.model].labels; + + for (var i = 0; i < channels; i++) { + result[labels[i]] = this.color[i]; + } + + if (this.valpha !== 1) { + result.alpha = this.valpha; + } + + return result; + }, + + unitArray: function () { + var rgb = this.rgb().color; + rgb[0] /= 255; + rgb[1] /= 255; + rgb[2] /= 255; + + if (this.valpha !== 1) { + rgb.push(this.valpha); + } + + return rgb; + }, + + unitObject: function () { + var rgb = this.rgb().object(); + rgb.r /= 255; + rgb.g /= 255; + rgb.b /= 255; + + if (this.valpha !== 1) { + rgb.alpha = this.valpha; + } + + return rgb; + }, + + round: function (places) { + places = Math.max(places || 0, 0); + return new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model); + }, + + alpha: function (val) { + if (arguments.length) { + return new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model); + } + + return this.valpha; + }, + + // rgb + red: getset('rgb', 0, maxfn(255)), + green: getset('rgb', 1, maxfn(255)), + blue: getset('rgb', 2, maxfn(255)), + + hue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style + + saturationl: getset('hsl', 1, maxfn(100)), + lightness: getset('hsl', 2, maxfn(100)), + + saturationv: getset('hsv', 1, maxfn(100)), + value: getset('hsv', 2, maxfn(100)), + + chroma: getset('hcg', 1, maxfn(100)), + gray: getset('hcg', 2, maxfn(100)), + + white: getset('hwb', 1, maxfn(100)), + wblack: getset('hwb', 2, maxfn(100)), + + cyan: getset('cmyk', 0, maxfn(100)), + magenta: getset('cmyk', 1, maxfn(100)), + yellow: getset('cmyk', 2, maxfn(100)), + black: getset('cmyk', 3, maxfn(100)), + + x: getset('xyz', 0, maxfn(100)), + y: getset('xyz', 1, maxfn(100)), + z: getset('xyz', 2, maxfn(100)), + + l: getset('lab', 0, maxfn(100)), + a: getset('lab', 1), + b: getset('lab', 2), + + keyword: function (val) { + if (arguments.length) { + return new Color(val); + } + + return convert[this.model].keyword(this.color); + }, + + hex: function (val) { + if (arguments.length) { + return new Color(val); + } + + return colorString.to.hex(this.rgb().round().color); + }, + + rgbNumber: function () { + var rgb = this.rgb().color; + return ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF); + }, + + luminosity: function () { + // http://www.w3.org/TR/WCAG20/#relativeluminancedef + var rgb = this.rgb().color; + + var lum = []; + for (var i = 0; i < rgb.length; i++) { + var chan = rgb[i] / 255; + lum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4); + } + + return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2]; + }, + + contrast: function (color2) { + // http://www.w3.org/TR/WCAG20/#contrast-ratiodef + var lum1 = this.luminosity(); + var lum2 = color2.luminosity(); + + if (lum1 > lum2) { + return (lum1 + 0.05) / (lum2 + 0.05); + } + + return (lum2 + 0.05) / (lum1 + 0.05); + }, + + level: function (color2) { + var contrastRatio = this.contrast(color2); + if (contrastRatio >= 7.1) { + return 'AAA'; + } + + return (contrastRatio >= 4.5) ? 'AA' : ''; + }, + + isDark: function () { + // YIQ equation from http://24ways.org/2010/calculating-color-contrast + var rgb = this.rgb().color; + var yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000; + return yiq < 128; + }, + + isLight: function () { + return !this.isDark(); + }, + + negate: function () { + var rgb = this.rgb(); + for (var i = 0; i < 3; i++) { + rgb.color[i] = 255 - rgb.color[i]; + } + return rgb; + }, + + lighten: function (ratio) { + var hsl = this.hsl(); + hsl.color[2] += hsl.color[2] * ratio; + return hsl; + }, + + darken: function (ratio) { + var hsl = this.hsl(); + hsl.color[2] -= hsl.color[2] * ratio; + return hsl; + }, + + saturate: function (ratio) { + var hsl = this.hsl(); + hsl.color[1] += hsl.color[1] * ratio; + return hsl; + }, + + desaturate: function (ratio) { + var hsl = this.hsl(); + hsl.color[1] -= hsl.color[1] * ratio; + return hsl; + }, + + whiten: function (ratio) { + var hwb = this.hwb(); + hwb.color[1] += hwb.color[1] * ratio; + return hwb; + }, + + blacken: function (ratio) { + var hwb = this.hwb(); + hwb.color[2] += hwb.color[2] * ratio; + return hwb; + }, + + grayscale: function () { + // http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale + var rgb = this.rgb().color; + var val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11; + return Color.rgb(val, val, val); + }, + + fade: function (ratio) { + return this.alpha(this.valpha - (this.valpha * ratio)); + }, + + opaquer: function (ratio) { + return this.alpha(this.valpha + (this.valpha * ratio)); + }, + + rotate: function (degrees) { + var hsl = this.hsl(); + var hue = hsl.color[0]; + hue = (hue + degrees) % 360; + hue = hue < 0 ? 360 + hue : hue; + hsl.color[0] = hue; + return hsl; + }, + + mix: function (mixinColor, weight) { + // ported from sass implementation in C + // https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209 + if (!mixinColor || !mixinColor.rgb) { + throw new Error('Argument to "mix" was not a Color instance, but rather an instance of ' + typeof mixinColor); + } + var color1 = mixinColor.rgb(); + var color2 = this.rgb(); + var p = weight === undefined ? 0.5 : weight; + + var w = 2 * p - 1; + var a = color1.alpha() - color2.alpha(); + + var w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0; + var w2 = 1 - w1; + + return Color.rgb( + w1 * color1.red() + w2 * color2.red(), + w1 * color1.green() + w2 * color2.green(), + w1 * color1.blue() + w2 * color2.blue(), + color1.alpha() * p + color2.alpha() * (1 - p)); + } +}; + +// model conversion methods and static constructors +Object.keys(convert).forEach(function (model) { + if (skippedModels.indexOf(model) !== -1) { + return; + } + + var channels = convert[model].channels; + + // conversion methods + Color.prototype[model] = function () { + if (this.model === model) { + return new Color(this); + } + + if (arguments.length) { + return new Color(arguments, model); + } + + var newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha; + return new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model); + }; + + // 'static' construction methods + Color[model] = function (color) { + if (typeof color === 'number') { + color = zeroArray(_slice.call(arguments), channels); + } + return new Color(color, model); + }; +}); + +function roundTo(num, places) { + return Number(num.toFixed(places)); +} + +function roundToPlace(places) { + return function (num) { + return roundTo(num, places); + }; +} + +function getset(model, channel, modifier) { + model = Array.isArray(model) ? model : [model]; + + model.forEach(function (m) { + (limiters[m] || (limiters[m] = []))[channel] = modifier; + }); + + model = model[0]; + + return function (val) { + var result; + + if (arguments.length) { + if (modifier) { + val = modifier(val); + } + + result = this[model](); + result.color[channel] = val; + return result; + } + + result = this[model]().color[channel]; + if (modifier) { + result = modifier(result); + } + + return result; + }; +} + +function maxfn(max) { + return function (v) { + return Math.max(0, Math.min(max, v)); + }; +} + +function assertArray(val) { + return Array.isArray(val) ? val : [val]; +} + +function zeroArray(arr, length) { + for (var i = 0; i < length; i++) { + if (typeof arr[i] !== 'number') { + arr[i] = 0; + } + } + + return arr; +} + +module.exports = Color; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/colorspace/index.js": -/*!************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/colorspace/index.js ***! - \************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/colorspace/index.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/colorspace/index.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_146016__) => { "use strict"; -var color = __webpack_require__(/*! color */ "./node_modules/cht-core-4-0/api/node_modules/color/index.js") - , hex = __webpack_require__(/*! text-hex */ "./node_modules/cht-core-4-0/api/node_modules/text-hex/index.js"); +var color = __nested_webpack_require_146016__(/*! color */ "./build/cht-core-4-6/api/node_modules/color/index.js") + , hex = __nested_webpack_require_146016__(/*! text-hex */ "./build/cht-core-4-6/api/node_modules/text-hex/index.js"); /** * Generate a color for a given name. But be reasonably smart about it by @@ -4633,17 +4759,17 @@ module.exports = function colorspace(namespace, delimiter) { /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/attributes.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/css-select/lib/attributes.js ***! - \*********************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/attributes.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/attributes.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_147301__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.attributeRules = void 0; -var boolbase_1 = __webpack_require__(/*! boolbase */ "./node_modules/cht-core-4-0/api/node_modules/boolbase/index.js"); +var boolbase_1 = __nested_webpack_require_147301__(/*! boolbase */ "./build/cht-core-4-6/api/node_modules/boolbase/index.js"); /** * All reserved characters in a regex, used for escaping. * @@ -4876,11 +5002,11 @@ exports.attributeRules = { /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/compile.js": -/*!******************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/css-select/lib/compile.js ***! - \******************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/compile.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/compile.js ***! + \***********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_155310__) { "use strict"; @@ -4889,12 +5015,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.compileToken = exports.compileUnsafe = exports.compile = void 0; -var css_what_1 = __webpack_require__(/*! css-what */ "./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/index.js"); -var boolbase_1 = __webpack_require__(/*! boolbase */ "./node_modules/cht-core-4-0/api/node_modules/boolbase/index.js"); -var sort_1 = __importDefault(__webpack_require__(/*! ./sort */ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/sort.js")); -var procedure_1 = __webpack_require__(/*! ./procedure */ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/procedure.js"); -var general_1 = __webpack_require__(/*! ./general */ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/general.js"); -var subselects_1 = __webpack_require__(/*! ./pseudo-selectors/subselects */ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/subselects.js"); +var css_what_1 = __nested_webpack_require_155310__(/*! css-what */ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/index.js"); +var boolbase_1 = __nested_webpack_require_155310__(/*! boolbase */ "./build/cht-core-4-6/api/node_modules/boolbase/index.js"); +var sort_1 = __importDefault(__nested_webpack_require_155310__(/*! ./sort */ "./build/cht-core-4-6/api/node_modules/css-select/lib/sort.js")); +var procedure_1 = __nested_webpack_require_155310__(/*! ./procedure */ "./build/cht-core-4-6/api/node_modules/css-select/lib/procedure.js"); +var general_1 = __nested_webpack_require_155310__(/*! ./general */ "./build/cht-core-4-6/api/node_modules/css-select/lib/general.js"); +var subselects_1 = __nested_webpack_require_155310__(/*! ./pseudo-selectors/subselects */ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/subselects.js"); /** * Compiles a selector to an executable function. * @@ -5006,19 +5132,19 @@ function reduceRules(a, b) { /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/general.js": -/*!******************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/css-select/lib/general.js ***! - \******************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/general.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/general.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_160749__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.compileGeneralSelector = void 0; -var attributes_1 = __webpack_require__(/*! ./attributes */ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/attributes.js"); -var pseudo_selectors_1 = __webpack_require__(/*! ./pseudo-selectors */ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/index.js"); -var css_what_1 = __webpack_require__(/*! css-what */ "./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/index.js"); +var attributes_1 = __nested_webpack_require_160749__(/*! ./attributes */ "./build/cht-core-4-6/api/node_modules/css-select/lib/attributes.js"); +var pseudo_selectors_1 = __nested_webpack_require_160749__(/*! ./pseudo-selectors */ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/index.js"); +var css_what_1 = __nested_webpack_require_160749__(/*! css-what */ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/index.js"); /* * All available rules */ @@ -5157,11 +5283,11 @@ exports.compileGeneralSelector = compileGeneralSelector; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/index.js": -/*!****************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/css-select/lib/index.js ***! - \****************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/index.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/index.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_167215__) { "use strict"; @@ -5190,10 +5316,10 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.aliases = exports.pseudos = exports.filters = exports.is = exports.selectOne = exports.selectAll = exports.prepareContext = exports._compileToken = exports._compileUnsafe = exports.compile = void 0; -var DomUtils = __importStar(__webpack_require__(/*! domutils */ "./node_modules/cht-core-4-0/api/node_modules/domutils/lib/index.js")); -var boolbase_1 = __webpack_require__(/*! boolbase */ "./node_modules/cht-core-4-0/api/node_modules/boolbase/index.js"); -var compile_1 = __webpack_require__(/*! ./compile */ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/compile.js"); -var subselects_1 = __webpack_require__(/*! ./pseudo-selectors/subselects */ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/subselects.js"); +var DomUtils = __importStar(__nested_webpack_require_167215__(/*! domutils */ "./build/cht-core-4-6/api/node_modules/domutils/lib/index.js")); +var boolbase_1 = __nested_webpack_require_167215__(/*! boolbase */ "./build/cht-core-4-6/api/node_modules/boolbase/index.js"); +var compile_1 = __nested_webpack_require_167215__(/*! ./compile */ "./build/cht-core-4-6/api/node_modules/css-select/lib/compile.js"); +var subselects_1 = __nested_webpack_require_167215__(/*! ./pseudo-selectors/subselects */ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/subselects.js"); var defaultEquals = function (a, b) { return a === b; }; var defaultOptions = { adapter: DomUtils, @@ -5309,7 +5435,7 @@ exports.is = is; */ exports.default = exports.selectAll; // Export filters, pseudos and aliases to allow users to supply their own. -var pseudo_selectors_1 = __webpack_require__(/*! ./pseudo-selectors */ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/index.js"); +var pseudo_selectors_1 = __nested_webpack_require_167215__(/*! ./pseudo-selectors */ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/index.js"); Object.defineProperty(exports, "filters", ({ enumerable: true, get: function () { return pseudo_selectors_1.filters; } })); Object.defineProperty(exports, "pseudos", ({ enumerable: true, get: function () { return pseudo_selectors_1.pseudos; } })); Object.defineProperty(exports, "aliases", ({ enumerable: true, get: function () { return pseudo_selectors_1.aliases; } })); @@ -5317,10 +5443,10 @@ Object.defineProperty(exports, "aliases", ({ enumerable: true, get: function () /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/procedure.js": -/*!********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/css-select/lib/procedure.js ***! - \********************************************************************************/ +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/procedure.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/procedure.js ***! + \*************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; @@ -5349,10 +5475,10 @@ exports.isTraversal = isTraversal; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/aliases.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/aliases.js ***! - \***********************************************************************************************/ +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/aliases.js": +/*!****************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/aliases.js ***! + \****************************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; @@ -5393,11 +5519,11 @@ exports.aliases = { /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/filters.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/filters.js ***! - \***********************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/filters.js": +/*!****************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/filters.js ***! + \****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_177759__) { "use strict"; @@ -5406,8 +5532,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.filters = void 0; -var nth_check_1 = __importDefault(__webpack_require__(/*! nth-check */ "./node_modules/cht-core-4-0/api/node_modules/nth-check/lib/index.js")); -var boolbase_1 = __webpack_require__(/*! boolbase */ "./node_modules/cht-core-4-0/api/node_modules/boolbase/index.js"); +var nth_check_1 = __importDefault(__nested_webpack_require_177759__(/*! nth-check */ "./build/cht-core-4-6/api/node_modules/nth-check/lib/index.js")); +var boolbase_1 = __nested_webpack_require_177759__(/*! boolbase */ "./build/cht-core-4-6/api/node_modules/boolbase/index.js"); function getChildFunc(next, adapter) { return function (elem) { var parent = adapter.getParent(elem); @@ -5560,11 +5686,11 @@ function dynamicStatePseudo(name) { /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/index.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/index.js ***! - \*********************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/index.js": +/*!**************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/index.js ***! + \**************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_184225__) => { "use strict"; @@ -5584,15 +5710,15 @@ exports.compilePseudoSelector = exports.aliases = exports.pseudos = exports.filt * of `next()` and your code. * Pseudos should be used to implement simple checks. */ -var boolbase_1 = __webpack_require__(/*! boolbase */ "./node_modules/cht-core-4-0/api/node_modules/boolbase/index.js"); -var css_what_1 = __webpack_require__(/*! css-what */ "./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/index.js"); -var filters_1 = __webpack_require__(/*! ./filters */ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/filters.js"); +var boolbase_1 = __nested_webpack_require_184225__(/*! boolbase */ "./build/cht-core-4-6/api/node_modules/boolbase/index.js"); +var css_what_1 = __nested_webpack_require_184225__(/*! css-what */ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/index.js"); +var filters_1 = __nested_webpack_require_184225__(/*! ./filters */ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/filters.js"); Object.defineProperty(exports, "filters", ({ enumerable: true, get: function () { return filters_1.filters; } })); -var pseudos_1 = __webpack_require__(/*! ./pseudos */ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/pseudos.js"); +var pseudos_1 = __nested_webpack_require_184225__(/*! ./pseudos */ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/pseudos.js"); Object.defineProperty(exports, "pseudos", ({ enumerable: true, get: function () { return pseudos_1.pseudos; } })); -var aliases_1 = __webpack_require__(/*! ./aliases */ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/aliases.js"); +var aliases_1 = __nested_webpack_require_184225__(/*! ./aliases */ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/aliases.js"); Object.defineProperty(exports, "aliases", ({ enumerable: true, get: function () { return aliases_1.aliases; } })); -var subselects_1 = __webpack_require__(/*! ./subselects */ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/subselects.js"); +var subselects_1 = __nested_webpack_require_184225__(/*! ./subselects */ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/subselects.js"); function compilePseudoSelector(next, selector, options, context, compileToken) { var name = selector.name, data = selector.data; if (Array.isArray(data)) { @@ -5625,10 +5751,10 @@ exports.compilePseudoSelector = compilePseudoSelector; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/pseudos.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/pseudos.js ***! - \***********************************************************************************************/ +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/pseudos.js": +/*!****************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/pseudos.js ***! + \****************************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; @@ -5725,11 +5851,11 @@ exports.verifyPseudoArgs = verifyPseudoArgs; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/subselects.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/subselects.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/subselects.js": +/*!*******************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/subselects.js ***! + \*******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_191698__) { "use strict"; @@ -5744,8 +5870,8 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.subselects = exports.getNextSiblings = exports.ensureIsTag = exports.PLACEHOLDER_ELEMENT = void 0; -var boolbase_1 = __webpack_require__(/*! boolbase */ "./node_modules/cht-core-4-0/api/node_modules/boolbase/index.js"); -var procedure_1 = __webpack_require__(/*! ../procedure */ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/procedure.js"); +var boolbase_1 = __nested_webpack_require_191698__(/*! boolbase */ "./build/cht-core-4-6/api/node_modules/boolbase/index.js"); +var procedure_1 = __nested_webpack_require_191698__(/*! ../procedure */ "./build/cht-core-4-6/api/node_modules/css-select/lib/procedure.js"); /** Used as a placeholder for :has. Will be replaced with the actual element. */ exports.PLACEHOLDER_ELEMENT = {}; function ensureIsTag(next, adapter) { @@ -5846,17 +5972,17 @@ exports.subselects = { /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/sort.js": -/*!***************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/css-select/lib/sort.js ***! - \***************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/sort.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/sort.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_196533__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -var css_what_1 = __webpack_require__(/*! css-what */ "./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/index.js"); -var procedure_1 = __webpack_require__(/*! ./procedure */ "./node_modules/cht-core-4-0/api/node_modules/css-select/lib/procedure.js"); +var css_what_1 = __nested_webpack_require_196533__(/*! css-what */ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/index.js"); +var procedure_1 = __nested_webpack_require_196533__(/*! ./procedure */ "./build/cht-core-4-6/api/node_modules/css-select/lib/procedure.js"); var attributes = { exists: 10, equals: 8, @@ -5942,15 +6068,15 @@ function getProcedure(token) { /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/index.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/index.js ***! - \*****************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/index.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-what/lib/es/index.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __nested_webpack_require_199613__) => { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { +__nested_webpack_require_199613__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_199613__.d(__webpack_exports__, { /* harmony export */ "AttributeAction": () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction), /* harmony export */ "IgnoreCaseMode": () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_0__.IgnoreCaseMode), /* harmony export */ "SelectorType": () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType), @@ -5958,9 +6084,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ "parse": () => (/* reexport safe */ _parse__WEBPACK_IMPORTED_MODULE_1__.parse), /* harmony export */ "stringify": () => (/* reexport safe */ _stringify__WEBPACK_IMPORTED_MODULE_2__.stringify) /* harmony export */ }); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types */ "./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/types.js"); -/* harmony import */ var _parse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parse */ "./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/parse.js"); -/* harmony import */ var _stringify__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./stringify */ "./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/stringify.js"); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_199613__(/*! ./types */ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/types.js"); +/* harmony import */ var _parse__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_199613__(/*! ./parse */ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/parse.js"); +/* harmony import */ var _stringify__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_199613__(/*! ./stringify */ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/stringify.js"); @@ -5968,19 +6094,19 @@ __webpack_require__.r(__webpack_exports__); /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/parse.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/parse.js ***! - \*****************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/parse.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-what/lib/es/parse.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __nested_webpack_require_201358__) => { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { +__nested_webpack_require_201358__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_201358__.d(__webpack_exports__, { /* harmony export */ "isTraversal": () => (/* binding */ isTraversal), /* harmony export */ "parse": () => (/* binding */ parse) /* harmony export */ }); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types */ "./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/types.js"); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_201358__(/*! ./types */ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/types.js"); const reName = /^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/; const reEscape = /\\([\da-f]{1,6}\s?|(\s)|.)/gi; @@ -6405,18 +6531,18 @@ function parseSelector(subselects, selector, selectorIndex) { /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/stringify.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/stringify.js ***! - \*********************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/stringify.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-what/lib/es/stringify.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __nested_webpack_require_219615__) => { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { +__nested_webpack_require_219615__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_219615__.d(__webpack_exports__, { /* harmony export */ "stringify": () => (/* binding */ stringify) /* harmony export */ }); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types */ "./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/types.js"); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_219615__(/*! ./types */ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/types.js"); const attribValChars = ["\\", '"']; const pseudoValChars = [...attribValChars, "(", ")"]; @@ -6547,15 +6673,15 @@ function escapeName(str, charsToEscape) { /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/types.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/types.js ***! - \*****************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/types.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-what/lib/es/types.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __nested_webpack_require_225584__) => { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { +__nested_webpack_require_225584__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_225584__.d(__webpack_exports__, { /* harmony export */ "SelectorType": () => (/* binding */ SelectorType), /* harmony export */ "IgnoreCaseMode": () => (/* binding */ IgnoreCaseMode), /* harmony export */ "AttributeAction": () => (/* binding */ AttributeAction) @@ -6603,4428 +6729,5073 @@ var AttributeAction; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/dom-serializer/lib/foreignNames.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/dom-serializer/lib/foreignNames.js ***! - \***************************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { +/***/ "./build/cht-core-4-6/api/node_modules/debug/src/browser.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/debug/src/browser.js ***! + \******************************************************************/ +/***/ ((module, exports, __nested_webpack_require_227614__) => { -"use strict"; +/** + * This is the web browser implementation of `debug()`. + * + * Expose `debug()` as the module. + */ -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.attributeNames = exports.elementNames = void 0; -exports.elementNames = new Map([ - ["altglyph", "altGlyph"], - ["altglyphdef", "altGlyphDef"], - ["altglyphitem", "altGlyphItem"], - ["animatecolor", "animateColor"], - ["animatemotion", "animateMotion"], - ["animatetransform", "animateTransform"], - ["clippath", "clipPath"], - ["feblend", "feBlend"], - ["fecolormatrix", "feColorMatrix"], - ["fecomponenttransfer", "feComponentTransfer"], - ["fecomposite", "feComposite"], - ["feconvolvematrix", "feConvolveMatrix"], - ["fediffuselighting", "feDiffuseLighting"], - ["fedisplacementmap", "feDisplacementMap"], - ["fedistantlight", "feDistantLight"], - ["fedropshadow", "feDropShadow"], - ["feflood", "feFlood"], - ["fefunca", "feFuncA"], - ["fefuncb", "feFuncB"], - ["fefuncg", "feFuncG"], - ["fefuncr", "feFuncR"], - ["fegaussianblur", "feGaussianBlur"], - ["feimage", "feImage"], - ["femerge", "feMerge"], - ["femergenode", "feMergeNode"], - ["femorphology", "feMorphology"], - ["feoffset", "feOffset"], - ["fepointlight", "fePointLight"], - ["fespecularlighting", "feSpecularLighting"], - ["fespotlight", "feSpotLight"], - ["fetile", "feTile"], - ["feturbulence", "feTurbulence"], - ["foreignobject", "foreignObject"], - ["glyphref", "glyphRef"], - ["lineargradient", "linearGradient"], - ["radialgradient", "radialGradient"], - ["textpath", "textPath"], -]); -exports.attributeNames = new Map([ - ["definitionurl", "definitionURL"], - ["attributename", "attributeName"], - ["attributetype", "attributeType"], - ["basefrequency", "baseFrequency"], - ["baseprofile", "baseProfile"], - ["calcmode", "calcMode"], - ["clippathunits", "clipPathUnits"], - ["diffuseconstant", "diffuseConstant"], - ["edgemode", "edgeMode"], - ["filterunits", "filterUnits"], - ["glyphref", "glyphRef"], - ["gradienttransform", "gradientTransform"], - ["gradientunits", "gradientUnits"], - ["kernelmatrix", "kernelMatrix"], - ["kernelunitlength", "kernelUnitLength"], - ["keypoints", "keyPoints"], - ["keysplines", "keySplines"], - ["keytimes", "keyTimes"], - ["lengthadjust", "lengthAdjust"], - ["limitingconeangle", "limitingConeAngle"], - ["markerheight", "markerHeight"], - ["markerunits", "markerUnits"], - ["markerwidth", "markerWidth"], - ["maskcontentunits", "maskContentUnits"], - ["maskunits", "maskUnits"], - ["numoctaves", "numOctaves"], - ["pathlength", "pathLength"], - ["patterncontentunits", "patternContentUnits"], - ["patterntransform", "patternTransform"], - ["patternunits", "patternUnits"], - ["pointsatx", "pointsAtX"], - ["pointsaty", "pointsAtY"], - ["pointsatz", "pointsAtZ"], - ["preservealpha", "preserveAlpha"], - ["preserveaspectratio", "preserveAspectRatio"], - ["primitiveunits", "primitiveUnits"], - ["refx", "refX"], - ["refy", "refY"], - ["repeatcount", "repeatCount"], - ["repeatdur", "repeatDur"], - ["requiredextensions", "requiredExtensions"], - ["requiredfeatures", "requiredFeatures"], - ["specularconstant", "specularConstant"], - ["specularexponent", "specularExponent"], - ["spreadmethod", "spreadMethod"], - ["startoffset", "startOffset"], - ["stddeviation", "stdDeviation"], - ["stitchtiles", "stitchTiles"], - ["surfacescale", "surfaceScale"], - ["systemlanguage", "systemLanguage"], - ["tablevalues", "tableValues"], - ["targetx", "targetX"], - ["targety", "targetY"], - ["textlength", "textLength"], - ["viewbox", "viewBox"], - ["viewtarget", "viewTarget"], - ["xchannelselector", "xChannelSelector"], - ["ychannelselector", "yChannelSelector"], - ["zoomandpan", "zoomAndPan"], -]); +exports = module.exports = __nested_webpack_require_227614__(/*! ./debug */ "./build/cht-core-4-6/api/node_modules/debug/src/debug.js"); +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = 'undefined' != typeof chrome + && 'undefined' != typeof chrome.storage + ? chrome.storage.local + : localstorage(); +/** + * Colors. + */ -/***/ }), +exports.colors = [ + 'lightseagreen', + 'forestgreen', + 'goldenrod', + 'dodgerblue', + 'darkorchid', + 'crimson' +]; -/***/ "./node_modules/cht-core-4-0/api/node_modules/dom-serializer/lib/index.js": -/*!********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/dom-serializer/lib/index.js ***! - \********************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +/** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ -"use strict"; +function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') { + return true; + } -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; + // is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || + // is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || + // is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || + // double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); +} + +/** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + +exports.formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (err) { + return '[UnexpectedJSONParseError]: ' + err.message; + } }; -Object.defineProperty(exports, "__esModule", ({ value: true })); -/* - * Module dependencies + + +/** + * Colorize log arguments if enabled. + * + * @api public */ -var ElementType = __importStar(__webpack_require__(/*! domelementtype */ "./node_modules/cht-core-4-0/api/node_modules/domelementtype/lib/index.js")); -var entities_1 = __webpack_require__(/*! entities */ "./node_modules/cht-core-4-0/api/node_modules/entities/lib/index.js"); + +function formatArgs(args) { + var useColors = this.useColors; + + args[0] = (useColors ? '%c' : '') + + this.namespace + + (useColors ? ' %c' : ' ') + + args[0] + + (useColors ? '%c ' : ' ') + + '+' + exports.humanize(this.diff); + + if (!useColors) return; + + var c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit') + + // the final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + var index = 0; + var lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, function(match) { + if ('%%' === match) return; + index++; + if ('%c' === match) { + // we only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); + + args.splice(lastC, 0, c); +} + /** - * Mixed-case SVG and MathML tags & attributes - * recognized by the HTML parser. + * Invokes `console.log()` when available. + * No-op when `console.log` is not a "function". * - * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign + * @api public */ -var foreignNames_1 = __webpack_require__(/*! ./foreignNames */ "./node_modules/cht-core-4-0/api/node_modules/dom-serializer/lib/foreignNames.js"); -var unencodedElements = new Set([ - "style", - "script", - "xmp", - "iframe", - "noembed", - "noframes", - "plaintext", - "noscript", -]); + +function log() { + // this hackery is required for IE8/9, where + // the `console.log` function doesn't have 'apply' + return 'object' === typeof console + && console.log + && Function.prototype.apply.call(console.log, console, arguments); +} + /** - * Format attributes + * Save `namespaces`. + * + * @param {String} namespaces + * @api private */ -function formatAttributes(attributes, opts) { - if (!attributes) - return; - return Object.keys(attributes) - .map(function (key) { - var _a, _b; - var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : ""; - if (opts.xmlMode === "foreign") { - /* Fix up mixed-case attribute names */ - key = (_b = foreignNames_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key; - } - if (!opts.emptyAttrs && !opts.xmlMode && value === "") { - return key; - } - return key + "=\"" + (opts.decodeEntities !== false - ? entities_1.encodeXML(value) - : value.replace(/"/g, """)) + "\""; - }) - .join(" "); + +function save(namespaces) { + try { + if (null == namespaces) { + exports.storage.removeItem('debug'); + } else { + exports.storage.debug = namespaces; + } + } catch(e) {} } + /** - * Self-enclosing tags + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private */ -var singleTag = new Set([ - "area", - "base", - "basefont", - "br", - "col", - "command", - "embed", - "frame", - "hr", - "img", - "input", - "isindex", - "keygen", - "link", - "meta", - "param", - "source", - "track", - "wbr", -]); + +function load() { + var r; + try { + r = exports.storage.debug; + } catch(e) {} + + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG; + } + + return r; +} + /** - * Renders a DOM node or an array of DOM nodes to a string. + * Enable namespaces listed in `localStorage.debug` initially. + */ + +exports.enable(load()); + +/** + * Localstorage attempts to return the localstorage. * - * Can be thought of as the equivalent of the `outerHTML` of the passed node(s). + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. * - * @param node Node to be rendered. - * @param options Changes serialization behavior + * @return {LocalStorage} + * @api private */ -function render(node, options) { - if (options === void 0) { options = {}; } - var nodes = "length" in node ? node : [node]; - var output = ""; - for (var i = 0; i < nodes.length; i++) { - output += renderNode(nodes[i], options); - } - return output; -} -exports.default = render; -function renderNode(node, options) { - switch (node.type) { - case ElementType.Root: - return render(node.children, options); - case ElementType.Directive: - case ElementType.Doctype: - return renderDirective(node); - case ElementType.Comment: - return renderComment(node); - case ElementType.CDATA: - return renderCdata(node); - case ElementType.Script: - case ElementType.Style: - case ElementType.Tag: - return renderTag(node, options); - case ElementType.Text: - return renderText(node, options); - } -} -var foreignModeIntegrationPoints = new Set([ - "mi", - "mo", - "mn", - "ms", - "mtext", - "annotation-xml", - "foreignObject", - "desc", - "title", -]); -var foreignElements = new Set(["svg", "math"]); -function renderTag(elem, opts) { - var _a; - // Handle SVG / MathML in HTML - if (opts.xmlMode === "foreign") { - /* Fix up mixed-case element names */ - elem.name = (_a = foreignNames_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name; - /* Exit foreign mode at integration points */ - if (elem.parent && - foreignModeIntegrationPoints.has(elem.parent.name)) { - opts = __assign(__assign({}, opts), { xmlMode: false }); - } - } - if (!opts.xmlMode && foreignElements.has(elem.name)) { - opts = __assign(__assign({}, opts), { xmlMode: "foreign" }); - } - var tag = "<" + elem.name; - var attribs = formatAttributes(elem.attribs, opts); - if (attribs) { - tag += " " + attribs; - } - if (elem.children.length === 0 && - (opts.xmlMode - ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags - opts.selfClosingTags !== false - : // User explicitly asked for self-closing tags, even in HTML mode - opts.selfClosingTags && singleTag.has(elem.name))) { - if (!opts.xmlMode) - tag += " "; - tag += "/>"; - } - else { - tag += ">"; - if (elem.children.length > 0) { - tag += render(elem.children, opts); - } - if (opts.xmlMode || !singleTag.has(elem.name)) { - tag += ""; - } - } - return tag; -} -function renderDirective(elem) { - return "<" + elem.data + ">"; -} -function renderText(elem, opts) { - var data = elem.data || ""; - // If entities weren't decoded, no need to encode them back - if (opts.decodeEntities !== false && - !(!opts.xmlMode && - elem.parent && - unencodedElements.has(elem.parent.name))) { - data = entities_1.encodeXML(data); - } - return data; -} -function renderCdata(elem) { - return ""; -} -function renderComment(elem) { - return ""; + +function localstorage() { + try { + return window.localStorage; + } catch (e) {} } /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/domelementtype/lib/index.js": -/*!********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/domelementtype/lib/index.js ***! - \********************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { +/***/ "./build/cht-core-4-6/api/node_modules/debug/src/debug.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/debug/src/debug.js ***! + \****************************************************************/ +/***/ ((module, exports, __nested_webpack_require_232764__) => { -"use strict"; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0; -/** Types of elements found in htmlparser2's DOM */ -var ElementType; -(function (ElementType) { - /** Type for the root element of a document */ - ElementType["Root"] = "root"; - /** Type for Text */ - ElementType["Text"] = "text"; - /** Type for */ - ElementType["Directive"] = "directive"; - /** Type for */ - ElementType["Comment"] = "comment"; - /** Type for or ... - const closeMarkup = ``; - const index = (() => { - if (options.lowerCaseTagName) { - return data.toLocaleLowerCase().indexOf(closeMarkup, kMarkupPattern.lastIndex); - } - return data.indexOf(closeMarkup, kMarkupPattern.lastIndex); - })(); - if (element_should_be_ignore(match[2])) { - let text; - if (index === -1) { - // there is no matching ending for the text element. - text = data.substr(kMarkupPattern.lastIndex); - } - else { - text = data.substring(kMarkupPattern.lastIndex, index); - } - if (text.length > 0) { - currentParent.appendChild(new _text__WEBPACK_IMPORTED_MODULE_4__.default(text, currentParent)); - } - } - if (index === -1) { - lastTextPos = kMarkupPattern.lastIndex = data.length + 1; - } - else { - lastTextPos = kMarkupPattern.lastIndex = index + closeMarkup.length; - match[1] = 'true'; - } - } - } - if (match[1] || match[4] || kSelfClosingElements[match[2]]) { - // or
etc. - while (true) { - if (currentParent.rawTagName === match[2]) { - stack.pop(); - currentParent = (0,_back__WEBPACK_IMPORTED_MODULE_6__.default)(stack); - break; - } - else { - const tagName = currentParent.tagName; - // Trying to close current tag, and move on - if (kElementsClosedByClosing[tagName]) { - if (kElementsClosedByClosing[tagName][match[2]]) { - stack.pop(); - currentParent = (0,_back__WEBPACK_IMPORTED_MODULE_6__.default)(stack); - continue; - } - } - // Use aggressive strategy to handle unmatching markups. - break; - } - } - } - } - return stack; -} -/** - * Parses HTML and returns a root element - * Parse a chuck of HTML source. - */ -function parse(data, options = { lowerCaseTagName: false, comment: false }) { - const stack = base_parse(data, options); - const [root] = stack; - while (stack.length > 1) { - // Handle each error elements. - const last = stack.pop(); - const oneBefore = (0,_back__WEBPACK_IMPORTED_MODULE_6__.default)(stack); - if (last.parentNode && last.parentNode.parentNode) { - if (last.parentNode === oneBefore && last.tagName === oneBefore.tagName) { - // Pair error case

handle : Fixes to

- oneBefore.removeChild(last); - last.childNodes.forEach((child) => { - oneBefore.parentNode.appendChild(child); - }); - stack.pop(); - } - else { - // Single error

handle: Just removes

- oneBefore.removeChild(last); - last.childNodes.forEach((child) => { - oneBefore.appendChild(child); - }); - } - } - else { - // If it's final element just skip. - } - } - // response.childNodes.forEach((node) => { - // if (node instanceof HTMLElement) { - // node.parentNode = null; - // } - // }); - return root; -} - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/nodes/node.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/nodes/node.js ***! - \********************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Node) -/* harmony export */ }); -/** - * Node Class as base class for TextNode and HTMLElement. - */ -class Node { - constructor(parentNode = null) { - this.parentNode = parentNode; - this.childNodes = []; - } - get innerText() { - return this.rawText; - } - get textContent() { - return this.rawText; - } - set textContent(val) { - this.rawText = val; - } -} - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/nodes/text.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/nodes/text.js ***! - \********************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ TextNode) -/* harmony export */ }); -/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./type */ "./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/nodes/type.js"); -/* harmony import */ var _node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node */ "./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/nodes/node.js"); - - -/** - * TextNode to contain a text element in DOM tree. - * @param {string} value [description] - */ -class TextNode extends _node__WEBPACK_IMPORTED_MODULE_0__.default { - constructor(rawText, parentNode) { - super(parentNode); - this.rawText = rawText; - /** - * Node Type declaration. - * @type {Number} - */ - this.nodeType = _type__WEBPACK_IMPORTED_MODULE_1__.default.TEXT_NODE; - } - /** - * Returns text with all whitespace trimmed except single leading/trailing non-breaking space - */ - get trimmedText() { - if (this._trimmedText !== undefined) - return this._trimmedText; - const text = this.rawText; - let i = 0; - let startPos; - let endPos; - while (i >= 0 && i < text.length) { - if (/\S/.test(text[i])) { - if (startPos === undefined) { - startPos = i; - i = text.length; - } - else { - endPos = i; - i = void 0; - } - } - if (startPos === undefined) - i++; - else - i--; - } - if (startPos === undefined) - startPos = 0; - if (endPos === undefined) - endPos = text.length - 1; - const hasLeadingSpace = startPos > 0 && /[^\S\r\n]/.test(text[startPos - 1]); - const hasTrailingSpace = endPos < (text.length - 1) && /[^\S\r\n]/.test(text[endPos + 1]); - this._trimmedText = (hasLeadingSpace ? ' ' : '') + text.slice(startPos, endPos + 1) + (hasTrailingSpace ? ' ' : ''); - return this._trimmedText; - } - /** - * Get unescaped text value of current node and its children. - * @return {string} text content - */ - get text() { - return this.rawText; - } - /** - * Detect if the node contains only white space. - * @return {bool} - */ - get isWhitespace() { - return /^(\s| )*$/.test(this.rawText); - } - toString() { - return this.text; - } -} - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/nodes/type.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/nodes/type.js ***! - \********************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -var NodeType; -(function (NodeType) { - NodeType[NodeType["ELEMENT_NODE"] = 1] = "ELEMENT_NODE"; - NodeType[NodeType["TEXT_NODE"] = 3] = "TEXT_NODE"; - NodeType[NodeType["COMMENT_NODE"] = 8] = "COMMENT_NODE"; -})(NodeType || (NodeType = {})); -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NodeType); - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/valid.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/valid.js ***! - \***************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ valid) -/* harmony export */ }); -/* harmony import */ var _nodes_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./nodes/html */ "./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/nodes/html.js"); - -/** - * Parses HTML and returns a root element - * Parse a chuck of HTML source. - */ -function valid(data, options = { lowerCaseTagName: false, comment: false }) { - const stack = (0,_nodes_html__WEBPACK_IMPORTED_MODULE_0__.base_parse)(data, options); - return Boolean(stack.length === 1); -} - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/nth-check/lib/compile.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/nth-check/lib/compile.js ***! - \*****************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.generate = exports.compile = void 0; -var boolbase_1 = __importDefault(__webpack_require__(/*! boolbase */ "./node_modules/cht-core-4-0/api/node_modules/boolbase/index.js")); -/** - * Returns a function that checks if an elements index matches the given rule - * highly optimized to return the fastest solution. - * - * @param parsed A tuple [a, b], as returned by `parse`. - * @returns A highly optimized function that returns whether an index matches the nth-check. - * @example - * - * ```js - * const check = nthCheck.compile([2, 3]); - * - * check(0); // `false` - * check(1); // `false` - * check(2); // `true` - * check(3); // `false` - * check(4); // `true` - * check(5); // `false` - * check(6); // `true` - * ``` - */ -function compile(parsed) { - var a = parsed[0]; - // Subtract 1 from `b`, to convert from one- to zero-indexed. - var b = parsed[1] - 1; - /* - * When `b <= 0`, `a * n` won't be lead to any matches for `a < 0`. - * Besides, the specification states that no elements are - * matched when `a` and `b` are 0. - * - * `b < 0` here as we subtracted 1 from `b` above. - */ - if (b < 0 && a <= 0) - return boolbase_1.default.falseFunc; - // When `a` is in the range -1..1, it matches any element (so only `b` is checked). - if (a === -1) - return function (index) { return index <= b; }; - if (a === 0) - return function (index) { return index === b; }; - // When `b <= 0` and `a === 1`, they match any element. - if (a === 1) - return b < 0 ? boolbase_1.default.trueFunc : function (index) { return index >= b; }; - /* - * Otherwise, modulo can be used to check if there is a match. - * - * Modulo doesn't care about the sign, so let's use `a`s absolute value. - */ - var absA = Math.abs(a); - // Get `b mod a`, + a if this is negative. - var bMod = ((b % absA) + absA) % absA; - return a > 1 - ? function (index) { return index >= b && index % absA === bMod; } - : function (index) { return index <= b && index % absA === bMod; }; -} -exports.compile = compile; -/** - * Returns a function that produces a monotonously increasing sequence of indices. - * - * If the sequence has an end, the returned function will return `null` after - * the last index in the sequence. - * - * @param parsed A tuple [a, b], as returned by `parse`. - * @returns A function that produces a sequence of indices. - * @example Always increasing (2n+3) - * - * ```js - * const gen = nthCheck.generate([2, 3]) - * - * gen() // `1` - * gen() // `3` - * gen() // `5` - * gen() // `8` - * gen() // `11` - * ``` - * - * @example With end value (-2n+10) - * - * ```js - * - * const gen = nthCheck.generate([-2, 5]); - * - * gen() // 0 - * gen() // 2 - * gen() // 4 - * gen() // null - * ``` - */ -function generate(parsed) { - var a = parsed[0]; - // Subtract 1 from `b`, to convert from one- to zero-indexed. - var b = parsed[1] - 1; - var n = 0; - // Make sure to always return an increasing sequence - if (a < 0) { - var aPos_1 = -a; - // Get `b mod a` - var minValue_1 = ((b % aPos_1) + aPos_1) % aPos_1; - return function () { - var val = minValue_1 + aPos_1 * n++; - return val > b ? null : val; - }; - } - if (a === 0) - return b < 0 - ? // There are no result — always return `null` - function () { return null; } - : // Return `b` exactly once - function () { return (n++ === 0 ? b : null); }; - if (b < 0) { - b += a * Math.ceil(-b / a); - } - return function () { return a * n++ + b; }; -} -exports.generate = generate; -//# sourceMappingURL=compile.js.map - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/nth-check/lib/index.js": -/*!***************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/nth-check/lib/index.js ***! - \***************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.sequence = exports.generate = exports.compile = exports.parse = void 0; -var parse_js_1 = __webpack_require__(/*! ./parse.js */ "./node_modules/cht-core-4-0/api/node_modules/nth-check/lib/parse.js"); -Object.defineProperty(exports, "parse", ({ enumerable: true, get: function () { return parse_js_1.parse; } })); -var compile_js_1 = __webpack_require__(/*! ./compile.js */ "./node_modules/cht-core-4-0/api/node_modules/nth-check/lib/compile.js"); -Object.defineProperty(exports, "compile", ({ enumerable: true, get: function () { return compile_js_1.compile; } })); -Object.defineProperty(exports, "generate", ({ enumerable: true, get: function () { return compile_js_1.generate; } })); -/** - * Parses and compiles a formula to a highly optimized function. - * Combination of {@link parse} and {@link compile}. - * - * If the formula doesn't match any elements, - * it returns [`boolbase`](https://github.com/fb55/boolbase)'s `falseFunc`. - * Otherwise, a function accepting an _index_ is returned, which returns - * whether or not the passed _index_ matches the formula. - * - * Note: The nth-rule starts counting at `1`, the returned function at `0`. - * - * @param formula The formula to compile. - * @example - * const check = nthCheck("2n+3"); - * - * check(0); // `false` - * check(1); // `false` - * check(2); // `true` - * check(3); // `false` - * check(4); // `true` - * check(5); // `false` - * check(6); // `true` - */ -function nthCheck(formula) { - return (0, compile_js_1.compile)((0, parse_js_1.parse)(formula)); -} -exports.default = nthCheck; -/** - * Parses and compiles a formula to a generator that produces a sequence of indices. - * Combination of {@link parse} and {@link generate}. - * - * @param formula The formula to compile. - * @returns A function that produces a sequence of indices. - * @example Always increasing - * - * ```js - * const gen = nthCheck.sequence('2n+3') - * - * gen() // `1` - * gen() // `3` - * gen() // `5` - * gen() // `8` - * gen() // `11` - * ``` - * - * @example With end value - * - * ```js - * - * const gen = nthCheck.sequence('-2n+5'); - * - * gen() // 0 - * gen() // 2 - * gen() // 4 - * gen() // null - * ``` - */ -function sequence(formula) { - return (0, compile_js_1.generate)((0, parse_js_1.parse)(formula)); -} -exports.sequence = sequence; -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/nth-check/lib/parse.js": -/*!***************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/nth-check/lib/parse.js ***! - \***************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -// Following http://www.w3.org/TR/css3-selectors/#nth-child-pseudo -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.parse = void 0; -// Whitespace as per https://www.w3.org/TR/selectors-3/#lex is " \t\r\n\f" -var whitespace = new Set([9, 10, 12, 13, 32]); -var ZERO = "0".charCodeAt(0); -var NINE = "9".charCodeAt(0); -/** - * Parses an expression. - * - * @throws An `Error` if parsing fails. - * @returns An array containing the integer step size and the integer offset of the nth rule. - * @example nthCheck.parse("2n+3"); // returns [2, 3] - */ -function parse(formula) { - formula = formula.trim().toLowerCase(); - if (formula === "even") { - return [2, 0]; - } - else if (formula === "odd") { - return [2, 1]; - } - // Parse [ ['-'|'+']? INTEGER? {N} [ S* ['-'|'+'] S* INTEGER ]? - var idx = 0; - var a = 0; - var sign = readSign(); - var number = readNumber(); - if (idx < formula.length && formula.charAt(idx) === "n") { - idx++; - a = sign * (number !== null && number !== void 0 ? number : 1); - skipWhitespace(); - if (idx < formula.length) { - sign = readSign(); - skipWhitespace(); - number = readNumber(); - } - else { - sign = number = 0; - } - } - // Throw if there is anything else - if (number === null || idx < formula.length) { - throw new Error("n-th rule couldn't be parsed ('".concat(formula, "')")); - } - return [a, sign * number]; - function readSign() { - if (formula.charAt(idx) === "-") { - idx++; - return -1; - } - if (formula.charAt(idx) === "+") { - idx++; - } - return 1; - } - function readNumber() { - var start = idx; - var value = 0; - while (idx < formula.length && - formula.charCodeAt(idx) >= ZERO && - formula.charCodeAt(idx) <= NINE) { - value = value * 10 + (formula.charCodeAt(idx) - ZERO); - idx++; - } - // Return `null` if we didn't read anything. - return idx === start ? null : value; - } - function skipWhitespace() { - while (idx < formula.length && - whitespace.has(formula.charCodeAt(idx))) { - idx++; - } - } -} -exports.parse = parse; -//# sourceMappingURL=parse.js.map - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/one-time/index.js": -/*!**********************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/one-time/index.js ***! - \**********************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var name = __webpack_require__(/*! fn.name */ "./node_modules/cht-core-4-0/api/node_modules/fn.name/index.js"); - -/** - * Wrap callbacks to prevent double execution. - * - * @param {Function} fn Function that should only be called once. - * @returns {Function} A wrapped callback which prevents multiple executions. - * @public - */ -module.exports = function one(fn) { - var called = 0 - , value; - - /** - * The function that prevents double execution. - * - * @private - */ - function onetime() { - if (called) return value; - - called = 1; - value = fn.apply(this, arguments); - fn = null; - - return value; - } - - // - // To make debugging more easy we want to use the name of the supplied - // function. So when you look at the functions that are assigned to event - // listeners you don't see a load of `onetime` functions but actually the - // names of the functions that this module will call. - // - // NOTE: We cannot override the `name` property, as that is `readOnly` - // property, so displayName will have to do. - // - onetime.displayName = name(fn); - return onetime; -}; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/safe-buffer/index.js": -/*!*************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/safe-buffer/index.js ***! - \*************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -/* eslint-disable node/no-deprecated-api */ -var buffer = __webpack_require__(/*! buffer */ "buffer") -var Buffer = buffer.Buffer - -// alternative to using Object.keys for old browsers -function copyProps (src, dst) { - for (var key in src) { - dst[key] = src[key] - } -} -if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { - module.exports = buffer -} else { - // Copy properties from require('buffer') - copyProps(buffer, exports) - exports.Buffer = SafeBuffer -} - -function SafeBuffer (arg, encodingOrOffset, length) { - return Buffer(arg, encodingOrOffset, length) -} - -// Copy static methods from Buffer -copyProps(Buffer, SafeBuffer) - -SafeBuffer.from = function (arg, encodingOrOffset, length) { - if (typeof arg === 'number') { - throw new TypeError('Argument must not be a number') - } - return Buffer(arg, encodingOrOffset, length) -} - -SafeBuffer.alloc = function (size, fill, encoding) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - var buf = Buffer(size) - if (fill !== undefined) { - if (typeof encoding === 'string') { - buf.fill(fill, encoding) - } else { - buf.fill(fill) - } - } else { - buf.fill(0) - } - return buf -} - -SafeBuffer.allocUnsafe = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - return Buffer(size) -} - -SafeBuffer.allocUnsafeSlow = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - return buffer.SlowBuffer(size) -} - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/safe-stable-stringify/index.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/safe-stable-stringify/index.js ***! - \***********************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -const stringify = __webpack_require__(/*! ./stable */ "./node_modules/cht-core-4-0/api/node_modules/safe-stable-stringify/stable.js") - -module.exports = stringify -stringify.default = stringify - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/safe-stable-stringify/stable.js": -/*!************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/safe-stable-stringify/stable.js ***! - \************************************************************************************/ -/***/ ((module) => { - -"use strict"; - - -module.exports = stringify - -var indentation = '' -// eslint-disable-next-line -const strEscapeSequencesRegExp = /[\x00-\x1f\x22\x5c]/ -// eslint-disable-next-line -const strEscapeSequencesReplacer = /[\x00-\x1f\x22\x5c]/g - -// Escaped special characters. Use empty strings to fill up unused entries. -const meta = [ - '\\u0000', '\\u0001', '\\u0002', '\\u0003', '\\u0004', - '\\u0005', '\\u0006', '\\u0007', '\\b', '\\t', - '\\n', '\\u000b', '\\f', '\\r', '\\u000e', - '\\u000f', '\\u0010', '\\u0011', '\\u0012', '\\u0013', - '\\u0014', '\\u0015', '\\u0016', '\\u0017', '\\u0018', - '\\u0019', '\\u001a', '\\u001b', '\\u001c', '\\u001d', - '\\u001e', '\\u001f', '', '', '\\"', - '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '\\\\' -] - -function escapeFn (str) { - return meta[str.charCodeAt(0)] -} - -// Escape control characters, double quotes and the backslash. -// Note: it is faster to run this only once for a big string instead of only for -// the parts that it is necessary for. But this is only true if we do not add -// extra indentation to the string before. -function strEscape (str) { - // Some magic numbers that worked out fine while benchmarking with v8 6.0 - if (str.length < 5000 && !strEscapeSequencesRegExp.test(str)) { - return str - } - if (str.length > 100) { - return str.replace(strEscapeSequencesReplacer, escapeFn) - } - var result = '' - var last = 0 - for (var i = 0; i < str.length; i++) { - const point = str.charCodeAt(i) - if (point === 34 || point === 92 || point < 32) { - if (last === i) { - result += meta[point] - } else { - result += `${str.slice(last, i)}${meta[point]}` - } - last = i + 1 - } - } - if (last === 0) { - result = str - } else if (last !== i) { - result += str.slice(last) - } - return result -} - -// Full version: supports all options -function stringifyFullFn (key, parent, stack, replacer, indent) { - var i, res, join - const originalIndentation = indentation - var value = parent[key] - - if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') { - value = value.toJSON(key) - } - value = replacer.call(parent, key, value) - - switch (typeof value) { - case 'object': - if (value === null) { - return 'null' - } - for (i = 0; i < stack.length; i++) { - if (stack[i] === value) { - return '"[Circular]"' - } - } - if (Array.isArray(value)) { - if (value.length === 0) { - return '[]' - } - stack.push(value) - res = '[' - indentation += indent - res += `\n${indentation}` - join = `,\n${indentation}` - // Use null as placeholder for non-JSON values. - for (i = 0; i < value.length - 1; i++) { - const tmp = stringifyFullFn(i, value, stack, replacer, indent) - res += tmp !== undefined ? tmp : 'null' - res += join - } - const tmp = stringifyFullFn(i, value, stack, replacer, indent) - res += tmp !== undefined ? tmp : 'null' - if (indentation !== '') { - res += `\n${originalIndentation}` - } - res += ']' - stack.pop() - indentation = originalIndentation - return res - } - - var keys = insertSort(Object.keys(value)) - if (keys.length === 0) { - return '{}' - } - stack.push(value) - res = '{' - indentation += indent - res += `\n${indentation}` - join = `,\n${indentation}` - var separator = '' - for (i = 0; i < keys.length; i++) { - key = keys[i] - const tmp = stringifyFullFn(key, value, stack, replacer, indent) - if (tmp !== undefined) { - res += `${separator}"${strEscape(key)}": ${tmp}` - separator = join - } - } - if (separator !== '') { - res += `\n${originalIndentation}` - } else { - res = '{' - } - res += '}' - stack.pop() - indentation = originalIndentation - return res - case 'string': - return `"${strEscape(value)}"` - case 'number': - // JSON numbers must be finite. Encode non-finite numbers as null. - return isFinite(value) ? String(value) : 'null' - case 'boolean': - return value === true ? 'true' : 'false' - } -} - -function stringifyFullArr (key, value, stack, replacer, indent) { - var i, res, join - const originalIndentation = indentation - - if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') { - value = value.toJSON(key) - } - - switch (typeof value) { - case 'object': - if (value === null) { - return 'null' - } - for (i = 0; i < stack.length; i++) { - if (stack[i] === value) { - return '"[Circular]"' - } - } - if (Array.isArray(value)) { - if (value.length === 0) { - return '[]' - } - stack.push(value) - res = '[' - indentation += indent - res += `\n${indentation}` - join = `,\n${indentation}` - // Use null as placeholder for non-JSON values. - for (i = 0; i < value.length - 1; i++) { - const tmp = stringifyFullArr(i, value[i], stack, replacer, indent) - res += tmp !== undefined ? tmp : 'null' - res += join - } - const tmp = stringifyFullArr(i, value[i], stack, replacer, indent) - res += tmp !== undefined ? tmp : 'null' - if (indentation !== '') { - res += `\n${originalIndentation}` - } - res += ']' - stack.pop() - indentation = originalIndentation - return res - } - - if (replacer.length === 0) { - return '{}' - } - stack.push(value) - res = '{' - indentation += indent - res += `\n${indentation}` - join = `,\n${indentation}` - var separator = '' - for (i = 0; i < replacer.length; i++) { - if (typeof replacer[i] === 'string' || typeof replacer[i] === 'number') { - key = replacer[i] - const tmp = stringifyFullArr(key, value[key], stack, replacer, indent) - if (tmp !== undefined) { - res += `${separator}"${strEscape(key)}": ${tmp}` - separator = join - } - } - } - if (separator !== '') { - res += `\n${originalIndentation}` - } else { - res = '{' - } - res += '}' - stack.pop() - indentation = originalIndentation - return res - case 'string': - return `"${strEscape(value)}"` - case 'number': - // JSON numbers must be finite. Encode non-finite numbers as null. - return isFinite(value) ? String(value) : 'null' - case 'boolean': - return value === true ? 'true' : 'false' - } -} - -// Supports only the spacer option -function stringifyIndent (key, value, stack, indent) { - var i, res, join - const originalIndentation = indentation - - switch (typeof value) { - case 'object': - if (value === null) { - return 'null' - } - if (typeof value.toJSON === 'function') { - value = value.toJSON(key) - // Prevent calling `toJSON` again. - if (typeof value !== 'object') { - return stringifyIndent(key, value, stack, indent) - } - if (value === null) { - return 'null' - } - } - for (i = 0; i < stack.length; i++) { - if (stack[i] === value) { - return '"[Circular]"' - } - } - - if (Array.isArray(value)) { - if (value.length === 0) { - return '[]' - } - stack.push(value) - res = '[' - indentation += indent - res += `\n${indentation}` - join = `,\n${indentation}` - // Use null as placeholder for non-JSON values. - for (i = 0; i < value.length - 1; i++) { - const tmp = stringifyIndent(i, value[i], stack, indent) - res += tmp !== undefined ? tmp : 'null' - res += join - } - const tmp = stringifyIndent(i, value[i], stack, indent) - res += tmp !== undefined ? tmp : 'null' - if (indentation !== '') { - res += `\n${originalIndentation}` - } - res += ']' - stack.pop() - indentation = originalIndentation - return res - } - - var keys = insertSort(Object.keys(value)) - if (keys.length === 0) { - return '{}' - } - stack.push(value) - res = '{' - indentation += indent - res += `\n${indentation}` - join = `,\n${indentation}` - var separator = '' - for (i = 0; i < keys.length; i++) { - key = keys[i] - const tmp = stringifyIndent(key, value[key], stack, indent) - if (tmp !== undefined) { - res += `${separator}"${strEscape(key)}": ${tmp}` - separator = join - } - } - if (separator !== '') { - res += `\n${originalIndentation}` - } else { - res = '{' - } - res += '}' - stack.pop() - indentation = originalIndentation - return res - case 'string': - return `"${strEscape(value)}"` - case 'number': - // JSON numbers must be finite. Encode non-finite numbers as null. - return isFinite(value) ? String(value) : 'null' - case 'boolean': - return value === true ? 'true' : 'false' - } -} - -// Supports only the replacer option -function stringifyReplacerArr (key, value, stack, replacer) { - var i, res - // If the value has a toJSON method, call it to obtain a replacement value. - if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') { - value = value.toJSON(key) - } - - switch (typeof value) { - case 'object': - if (value === null) { - return 'null' - } - for (i = 0; i < stack.length; i++) { - if (stack[i] === value) { - return '"[Circular]"' - } - } - if (Array.isArray(value)) { - if (value.length === 0) { - return '[]' - } - stack.push(value) - res = '[' - // Use null as placeholder for non-JSON values. - for (i = 0; i < value.length - 1; i++) { - const tmp = stringifyReplacerArr(i, value[i], stack, replacer) - res += tmp !== undefined ? tmp : 'null' - res += ',' - } - const tmp = stringifyReplacerArr(i, value[i], stack, replacer) - res += tmp !== undefined ? tmp : 'null' - res += ']' - stack.pop() - return res - } - - if (replacer.length === 0) { - return '{}' - } - stack.push(value) - res = '{' - var separator = '' - for (i = 0; i < replacer.length; i++) { - if (typeof replacer[i] === 'string' || typeof replacer[i] === 'number') { - key = replacer[i] - const tmp = stringifyReplacerArr(key, value[key], stack, replacer) - if (tmp !== undefined) { - res += `${separator}"${strEscape(key)}":${tmp}` - separator = ',' - } - } - } - res += '}' - stack.pop() - return res - case 'string': - return `"${strEscape(value)}"` - case 'number': - // JSON numbers must be finite. Encode non-finite numbers as null. - return isFinite(value) ? String(value) : 'null' - case 'boolean': - return value === true ? 'true' : 'false' - } -} - -function stringifyReplacerFn (key, parent, stack, replacer) { - var i, res - var value = parent[key] - // If the value has a toJSON method, call it to obtain a replacement value. - if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') { - value = value.toJSON(key) - } - value = replacer.call(parent, key, value) - - switch (typeof value) { - case 'object': - if (value === null) { - return 'null' - } - for (i = 0; i < stack.length; i++) { - if (stack[i] === value) { - return '"[Circular]"' - } - } - if (Array.isArray(value)) { - if (value.length === 0) { - return '[]' - } - stack.push(value) - res = '[' - // Use null as placeholder for non-JSON values. - for (i = 0; i < value.length - 1; i++) { - const tmp = stringifyReplacerFn(i, value, stack, replacer) - res += tmp !== undefined ? tmp : 'null' - res += ',' - } - const tmp = stringifyReplacerFn(i, value, stack, replacer) - res += tmp !== undefined ? tmp : 'null' - res += ']' - stack.pop() - return res - } - - var keys = insertSort(Object.keys(value)) - if (keys.length === 0) { - return '{}' - } - stack.push(value) - res = '{' - var separator = '' - for (i = 0; i < keys.length; i++) { - key = keys[i] - const tmp = stringifyReplacerFn(key, value, stack, replacer) - if (tmp !== undefined) { - res += `${separator}"${strEscape(key)}":${tmp}` - separator = ',' - } - } - res += '}' - stack.pop() - return res - case 'string': - return `"${strEscape(value)}"` - case 'number': - // JSON numbers must be finite. Encode non-finite numbers as null. - return isFinite(value) ? String(value) : 'null' - case 'boolean': - return value === true ? 'true' : 'false' - } -} - -// Simple without any options -function stringifySimple (key, value, stack) { - var i, res - switch (typeof value) { - case 'object': - if (value === null) { - return 'null' - } - if (typeof value.toJSON === 'function') { - value = value.toJSON(key) - // Prevent calling `toJSON` again - if (typeof value !== 'object') { - return stringifySimple(key, value, stack) - } - if (value === null) { - return 'null' - } - } - for (i = 0; i < stack.length; i++) { - if (stack[i] === value) { - return '"[Circular]"' - } - } - - if (Array.isArray(value)) { - if (value.length === 0) { - return '[]' - } - stack.push(value) - res = '[' - // Use null as placeholder for non-JSON values. - for (i = 0; i < value.length - 1; i++) { - const tmp = stringifySimple(i, value[i], stack) - res += tmp !== undefined ? tmp : 'null' - res += ',' - } - const tmp = stringifySimple(i, value[i], stack) - res += tmp !== undefined ? tmp : 'null' - res += ']' - stack.pop() - return res - } - - var keys = insertSort(Object.keys(value)) - if (keys.length === 0) { - return '{}' - } - stack.push(value) - var separator = '' - res = '{' - for (i = 0; i < keys.length; i++) { - key = keys[i] - const tmp = stringifySimple(key, value[key], stack) - if (tmp !== undefined) { - res += `${separator}"${strEscape(key)}":${tmp}` - separator = ',' - } - } - res += '}' - stack.pop() - return res - case 'string': - return `"${strEscape(value)}"` - case 'number': - // JSON numbers must be finite. Encode non-finite numbers as null. - // Convert the numbers implicit to a string instead of explicit. - return isFinite(value) ? String(value) : 'null' - case 'boolean': - return value === true ? 'true' : 'false' - } -} - -function insertSort (arr) { - for (var i = 1; i < arr.length; i++) { - const tmp = arr[i] - var j = i - while (j !== 0 && arr[j - 1] > tmp) { - arr[j] = arr[j - 1] - j-- - } - arr[j] = tmp - } - - return arr -} - -function stringify (value, replacer, spacer) { - var i - var indent = '' - indentation = '' - - if (arguments.length > 1) { - // If the spacer parameter is a number, make an indent string containing that - // many spaces. - if (typeof spacer === 'number') { - for (i = 0; i < spacer; i += 1) { - indent += ' ' - } - // If the spacer parameter is a string, it will be used as the indent string. - } else if (typeof spacer === 'string') { - indent = spacer - } - if (indent !== '') { - if (replacer !== undefined && replacer !== null) { - if (typeof replacer === 'function') { - return stringifyFullFn('', { '': value }, [], replacer, indent) - } - if (Array.isArray(replacer)) { - return stringifyFullArr('', value, [], replacer, indent) - } - } - return stringifyIndent('', value, [], indent) - } - if (typeof replacer === 'function') { - return stringifyReplacerFn('', { '': value }, [], replacer) - } - if (Array.isArray(replacer)) { - return stringifyReplacerArr('', value, [], replacer) - } - } - return stringifySimple('', value, []) -} - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/simple-swizzle/index.js": -/*!****************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/simple-swizzle/index.js ***! - \****************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var isArrayish = __webpack_require__(/*! is-arrayish */ "./node_modules/cht-core-4-0/api/node_modules/is-arrayish/index.js"); - -var concat = Array.prototype.concat; -var slice = Array.prototype.slice; - -var swizzle = module.exports = function swizzle(args) { - var results = []; - - for (var i = 0, len = args.length; i < len; i++) { - var arg = args[i]; - - if (isArrayish(arg)) { - // http://jsperf.com/javascript-array-concat-vs-push/98 - results = concat.call(results, slice.call(arg)); - } else { - results.push(arg); - } - } - - return results; -}; - -swizzle.wrap = function (fn) { - return function () { - return fn(swizzle(arguments)); - }; -}; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/stack-trace/lib/stack-trace.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/stack-trace/lib/stack-trace.js ***! - \***********************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -exports.get = function(belowFn) { - var oldLimit = Error.stackTraceLimit; - Error.stackTraceLimit = Infinity; - - var dummyObject = {}; - - var v8Handler = Error.prepareStackTrace; - Error.prepareStackTrace = function(dummyObject, v8StackTrace) { - return v8StackTrace; - }; - Error.captureStackTrace(dummyObject, belowFn || exports.get); - - var v8StackTrace = dummyObject.stack; - Error.prepareStackTrace = v8Handler; - Error.stackTraceLimit = oldLimit; - - return v8StackTrace; -}; - -exports.parse = function(err) { - if (!err.stack) { - return []; - } - - var self = this; - var lines = err.stack.split('\n').slice(1); - - return lines - .map(function(line) { - if (line.match(/^\s*[-]{4,}$/)) { - return self._createParsedCallSite({ - fileName: line, - lineNumber: null, - functionName: null, - typeName: null, - methodName: null, - columnNumber: null, - 'native': null, - }); - } - - var lineMatch = line.match(/at (?:(.+)\s+\()?(?:(.+?):(\d+)(?::(\d+))?|([^)]+))\)?/); - if (!lineMatch) { - return; - } - - var object = null; - var method = null; - var functionName = null; - var typeName = null; - var methodName = null; - var isNative = (lineMatch[5] === 'native'); - - if (lineMatch[1]) { - functionName = lineMatch[1]; - var methodStart = functionName.lastIndexOf('.'); - if (functionName[methodStart-1] == '.') - methodStart--; - if (methodStart > 0) { - object = functionName.substr(0, methodStart); - method = functionName.substr(methodStart + 1); - var objectEnd = object.indexOf('.Module'); - if (objectEnd > 0) { - functionName = functionName.substr(objectEnd + 1); - object = object.substr(0, objectEnd); - } - } - typeName = null; - } - - if (method) { - typeName = object; - methodName = method; - } - - if (method === '') { - methodName = null; - functionName = null; - } - - var properties = { - fileName: lineMatch[2] || null, - lineNumber: parseInt(lineMatch[3], 10) || null, - functionName: functionName, - typeName: typeName, - methodName: methodName, - columnNumber: parseInt(lineMatch[4], 10) || null, - 'native': isNative, - }; - - return self._createParsedCallSite(properties); - }) - .filter(function(callSite) { - return !!callSite; - }); -}; - -function CallSite(properties) { - for (var property in properties) { - this[property] = properties[property]; - } -} - -var strProperties = [ - 'this', - 'typeName', - 'functionName', - 'methodName', - 'fileName', - 'lineNumber', - 'columnNumber', - 'function', - 'evalOrigin' -]; -var boolProperties = [ - 'topLevel', - 'eval', - 'native', - 'constructor' -]; -strProperties.forEach(function (property) { - CallSite.prototype[property] = null; - CallSite.prototype['get' + property[0].toUpperCase() + property.substr(1)] = function () { - return this[property]; - } -}); -boolProperties.forEach(function (property) { - CallSite.prototype[property] = false; - CallSite.prototype['is' + property[0].toUpperCase() + property.substr(1)] = function () { - return this[property]; - } -}); - -exports._createParsedCallSite = function(properties) { - return new CallSite(properties); -}; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/string_decoder/lib/string_decoder.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/string_decoder/lib/string_decoder.js ***! - \*****************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - - - -/**/ - -var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/cht-core-4-0/api/node_modules/safe-buffer/index.js").Buffer; -/**/ - -var isEncoding = Buffer.isEncoding || function (encoding) { - encoding = '' + encoding; - switch (encoding && encoding.toLowerCase()) { - case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw': - return true; - default: - return false; - } -}; - -function _normalizeEncoding(enc) { - if (!enc) return 'utf8'; - var retried; - while (true) { - switch (enc) { - case 'utf8': - case 'utf-8': - return 'utf8'; - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return 'utf16le'; - case 'latin1': - case 'binary': - return 'latin1'; - case 'base64': - case 'ascii': - case 'hex': - return enc; - default: - if (retried) return; // undefined - enc = ('' + enc).toLowerCase(); - retried = true; - } - } -}; - -// Do not cache `Buffer.isEncoding` when checking encoding names as some -// modules monkey-patch it to support additional encodings -function normalizeEncoding(enc) { - var nenc = _normalizeEncoding(enc); - if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc); - return nenc || enc; -} - -// StringDecoder provides an interface for efficiently splitting a series of -// buffers into a series of JS strings without breaking apart multi-byte -// characters. -exports.StringDecoder = StringDecoder; -function StringDecoder(encoding) { - this.encoding = normalizeEncoding(encoding); - var nb; - switch (this.encoding) { - case 'utf16le': - this.text = utf16Text; - this.end = utf16End; - nb = 4; - break; - case 'utf8': - this.fillLast = utf8FillLast; - nb = 4; - break; - case 'base64': - this.text = base64Text; - this.end = base64End; - nb = 3; - break; - default: - this.write = simpleWrite; - this.end = simpleEnd; - return; - } - this.lastNeed = 0; - this.lastTotal = 0; - this.lastChar = Buffer.allocUnsafe(nb); -} - -StringDecoder.prototype.write = function (buf) { - if (buf.length === 0) return ''; - var r; - var i; - if (this.lastNeed) { - r = this.fillLast(buf); - if (r === undefined) return ''; - i = this.lastNeed; - this.lastNeed = 0; - } else { - i = 0; - } - if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); - return r || ''; -}; - -StringDecoder.prototype.end = utf8End; - -// Returns only complete characters in a Buffer -StringDecoder.prototype.text = utf8Text; - -// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer -StringDecoder.prototype.fillLast = function (buf) { - if (this.lastNeed <= buf.length) { - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); - return this.lastChar.toString(this.encoding, 0, this.lastTotal); - } - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); - this.lastNeed -= buf.length; -}; - -// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a -// continuation byte. If an invalid byte is detected, -2 is returned. -function utf8CheckByte(byte) { - if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4; - return byte >> 6 === 0x02 ? -1 : -2; -} - -// Checks at most 3 bytes at the end of a Buffer in order to detect an -// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4) -// needed to complete the UTF-8 character (if applicable) are returned. -function utf8CheckIncomplete(self, buf, i) { - var j = buf.length - 1; - if (j < i) return 0; - var nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) self.lastNeed = nb - 1; - return nb; - } - if (--j < i || nb === -2) return 0; - nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) self.lastNeed = nb - 2; - return nb; - } - if (--j < i || nb === -2) return 0; - nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) { - if (nb === 2) nb = 0;else self.lastNeed = nb - 3; - } - return nb; - } - return 0; -} - -// Validates as many continuation bytes for a multi-byte UTF-8 character as -// needed or are available. If we see a non-continuation byte where we expect -// one, we "replace" the validated continuation bytes we've seen so far with -// a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding -// behavior. The continuation byte check is included three times in the case -// where all of the continuation bytes for a character exist in the same buffer. -// It is also done this way as a slight performance increase instead of using a -// loop. -function utf8CheckExtraBytes(self, buf, p) { - if ((buf[0] & 0xC0) !== 0x80) { - self.lastNeed = 0; - return '\ufffd'; - } - if (self.lastNeed > 1 && buf.length > 1) { - if ((buf[1] & 0xC0) !== 0x80) { - self.lastNeed = 1; - return '\ufffd'; - } - if (self.lastNeed > 2 && buf.length > 2) { - if ((buf[2] & 0xC0) !== 0x80) { - self.lastNeed = 2; - return '\ufffd'; - } - } - } -} - -// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer. -function utf8FillLast(buf) { - var p = this.lastTotal - this.lastNeed; - var r = utf8CheckExtraBytes(this, buf, p); - if (r !== undefined) return r; - if (this.lastNeed <= buf.length) { - buf.copy(this.lastChar, p, 0, this.lastNeed); - return this.lastChar.toString(this.encoding, 0, this.lastTotal); - } - buf.copy(this.lastChar, p, 0, buf.length); - this.lastNeed -= buf.length; -} - -// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a -// partial character, the character's bytes are buffered until the required -// number of bytes are available. -function utf8Text(buf, i) { - var total = utf8CheckIncomplete(this, buf, i); - if (!this.lastNeed) return buf.toString('utf8', i); - this.lastTotal = total; - var end = buf.length - (total - this.lastNeed); - buf.copy(this.lastChar, 0, end); - return buf.toString('utf8', i, end); -} - -// For UTF-8, a replacement character is added when ending on a partial -// character. -function utf8End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) return r + '\ufffd'; - return r; -} - -// UTF-16LE typically needs two bytes per character, but even if we have an even -// number of bytes available, we need to check if we end on a leading/high -// surrogate. In that case, we need to wait for the next two bytes in order to -// decode the last character properly. -function utf16Text(buf, i) { - if ((buf.length - i) % 2 === 0) { - var r = buf.toString('utf16le', i); - if (r) { - var c = r.charCodeAt(r.length - 1); - if (c >= 0xD800 && c <= 0xDBFF) { - this.lastNeed = 2; - this.lastTotal = 4; - this.lastChar[0] = buf[buf.length - 2]; - this.lastChar[1] = buf[buf.length - 1]; - return r.slice(0, -1); - } - } - return r; - } - this.lastNeed = 1; - this.lastTotal = 2; - this.lastChar[0] = buf[buf.length - 1]; - return buf.toString('utf16le', i, buf.length - 1); -} - -// For UTF-16LE we do not explicitly append special replacement characters if we -// end on a partial character, we simply let v8 handle that. -function utf16End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) { - var end = this.lastTotal - this.lastNeed; - return r + this.lastChar.toString('utf16le', 0, end); - } - return r; -} - -function base64Text(buf, i) { - var n = (buf.length - i) % 3; - if (n === 0) return buf.toString('base64', i); - this.lastNeed = 3 - n; - this.lastTotal = 3; - if (n === 1) { - this.lastChar[0] = buf[buf.length - 1]; - } else { - this.lastChar[0] = buf[buf.length - 2]; - this.lastChar[1] = buf[buf.length - 1]; - } - return buf.toString('base64', i, buf.length - n); -} - -function base64End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed); - return r; -} - -// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex) -function simpleWrite(buf) { - return buf.toString(this.encoding); -} - -function simpleEnd(buf) { - return buf && buf.length ? this.write(buf) : ''; -} - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/text-hex/index.js": -/*!**********************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/text-hex/index.js ***! - \**********************************************************************/ -/***/ ((module) => { - -"use strict"; - - -/*** - * Convert string to hex color. - * - * @param {String} str Text to hash and convert to hex. - * @returns {String} - * @api public - */ -module.exports = function hex(str) { - for ( - var i = 0, hash = 0; - i < str.length; - hash = str.charCodeAt(i++) + ((hash << 5) - hash) - ); - - var color = Math.floor( - Math.abs( - (Math.sin(hash) * 10000) % 1 * 16777216 - ) - ).toString(16); - - return '#' + Array(6 - color.length + 1).join('0') + color; -}; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/triple-beam/config/cli.js": -/*!******************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/triple-beam/config/cli.js ***! - \******************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -/** - * cli.js: Config that conform to commonly used CLI logging levels. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ - - - -/** - * Default levels for the CLI configuration. - * @type {Object} - */ -exports.levels = { - error: 0, - warn: 1, - help: 2, - data: 3, - info: 4, - debug: 5, - prompt: 6, - verbose: 7, - input: 8, - silly: 9 -}; - -/** - * Default colors for the CLI configuration. - * @type {Object} - */ -exports.colors = { - error: 'red', - warn: 'yellow', - help: 'cyan', - data: 'grey', - info: 'green', - debug: 'blue', - prompt: 'grey', - verbose: 'cyan', - input: 'grey', - silly: 'magenta' -}; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/triple-beam/config/index.js": -/*!********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/triple-beam/config/index.js ***! - \********************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -/** - * index.js: Default settings for all levels that winston knows about. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ - - - -/** - * Export config set for the CLI. - * @type {Object} - */ -Object.defineProperty(exports, "cli", ({ - value: __webpack_require__(/*! ./cli */ "./node_modules/cht-core-4-0/api/node_modules/triple-beam/config/cli.js") -})); - -/** - * Export config set for npm. - * @type {Object} - */ -Object.defineProperty(exports, "npm", ({ - value: __webpack_require__(/*! ./npm */ "./node_modules/cht-core-4-0/api/node_modules/triple-beam/config/npm.js") -})); - -/** - * Export config set for the syslog. - * @type {Object} - */ -Object.defineProperty(exports, "syslog", ({ - value: __webpack_require__(/*! ./syslog */ "./node_modules/cht-core-4-0/api/node_modules/triple-beam/config/syslog.js") -})); - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/triple-beam/config/npm.js": -/*!******************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/triple-beam/config/npm.js ***! - \******************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -/** - * npm.js: Config that conform to npm logging levels. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ - - - -/** - * Default levels for the npm configuration. - * @type {Object} - */ -exports.levels = { - error: 0, - warn: 1, - info: 2, - http: 3, - verbose: 4, - debug: 5, - silly: 6 -}; - -/** - * Default levels for the npm configuration. - * @type {Object} - */ -exports.colors = { - error: 'red', - warn: 'yellow', - info: 'green', - http: 'green', - verbose: 'cyan', - debug: 'blue', - silly: 'magenta' -}; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/triple-beam/config/syslog.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/triple-beam/config/syslog.js ***! - \*********************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -/** - * syslog.js: Config that conform to syslog logging levels. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ - - - -/** - * Default levels for the syslog configuration. - * @type {Object} - */ -exports.levels = { - emerg: 0, - alert: 1, - crit: 2, - error: 3, - warning: 4, - notice: 5, - info: 6, - debug: 7 -}; - -/** - * Default levels for the syslog configuration. - * @type {Object} - */ -exports.colors = { - emerg: 'red', - alert: 'yellow', - crit: 'red', - error: 'red', - warning: 'red', - notice: 'yellow', - info: 'green', - debug: 'blue' -}; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/triple-beam/index.js": -/*!*************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/triple-beam/index.js ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; - - -/** - * A shareable symbol constant that can be used - * as a non-enumerable / semi-hidden level identifier - * to allow the readable level property to be mutable for - * operations like colorization - * - * @type {Symbol} - */ -Object.defineProperty(exports, "LEVEL", ({ - value: Symbol.for('level') -})); - -/** - * A shareable symbol constant that can be used - * as a non-enumerable / semi-hidden message identifier - * to allow the final message property to not have - * side effects on another. - * - * @type {Symbol} - */ -Object.defineProperty(exports, "MESSAGE", ({ - value: Symbol.for('message') -})); - -/** - * A shareable symbol constant that can be used - * as a non-enumerable / semi-hidden message identifier - * to allow the extracted splat property be hidden - * - * @type {Symbol} - */ -Object.defineProperty(exports, "SPLAT", ({ - value: Symbol.for('splat') -})); - -/** - * A shareable object constant that can be used - * as a standard configuration for winston@3. - * - * @type {Object} - */ -Object.defineProperty(exports, "configs", ({ - value: __webpack_require__(/*! ./config */ "./node_modules/cht-core-4-0/api/node_modules/triple-beam/config/index.js") -})); - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/util-deprecate/node.js": -/*!***************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/util-deprecate/node.js ***! - \***************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - - -/** - * For Node.js, simply re-export the core `util.deprecate` function. - */ - -module.exports = __webpack_require__(/*! util */ "util").deprecate; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/index.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston-transport/index.js ***! - \*******************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -const util = __webpack_require__(/*! util */ "util"); -const Writable = __webpack_require__(/*! readable-stream/lib/_stream_writable.js */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js"); -const { LEVEL } = __webpack_require__(/*! triple-beam */ "./node_modules/cht-core-4-0/api/node_modules/triple-beam/index.js"); - -/** - * Constructor function for the TransportStream. This is the base prototype - * that all `winston >= 3` transports should inherit from. - * @param {Object} options - Options for this TransportStream instance - * @param {String} options.level - Highest level according to RFC5424. - * @param {Boolean} options.handleExceptions - If true, info with - * { exception: true } will be written. - * @param {Function} options.log - Custom log function for simple Transport - * creation - * @param {Function} options.close - Called on "unpipe" from parent. - */ -const TransportStream = module.exports = function TransportStream(options = {}) { - Writable.call(this, { objectMode: true, highWaterMark: options.highWaterMark }); - - this.format = options.format; - this.level = options.level; - this.handleExceptions = options.handleExceptions; - this.handleRejections = options.handleRejections; - this.silent = options.silent; - - if (options.log) this.log = options.log; - if (options.logv) this.logv = options.logv; - if (options.close) this.close = options.close; - - // Get the levels from the source we are piped from. - this.once('pipe', logger => { - // Remark (indexzero): this bookkeeping can only support multiple - // Logger parents with the same `levels`. This comes into play in - // the `winston.Container` code in which `container.add` takes - // a fully realized set of options with pre-constructed TransportStreams. - this.levels = logger.levels; - this.parent = logger; - }); - - // If and/or when the transport is removed from this instance - this.once('unpipe', src => { - // Remark (indexzero): this bookkeeping can only support multiple - // Logger parents with the same `levels`. This comes into play in - // the `winston.Container` code in which `container.add` takes - // a fully realized set of options with pre-constructed TransportStreams. - if (src === this.parent) { - this.parent = null; - if (this.close) { - this.close(); - } - } - }); -}; - -/* - * Inherit from Writeable using Node.js built-ins - */ -util.inherits(TransportStream, Writable); - -/** - * Writes the info object to our transport instance. - * @param {mixed} info - TODO: add param description. - * @param {mixed} enc - TODO: add param description. - * @param {function} callback - TODO: add param description. - * @returns {undefined} - * @private - */ -TransportStream.prototype._write = function _write(info, enc, callback) { - if (this.silent || (info.exception === true && !this.handleExceptions)) { - return callback(null); - } - - // Remark: This has to be handled in the base transport now because we - // cannot conditionally write to our pipe targets as stream. We always - // prefer any explicit level set on the Transport itself falling back to - // any level set on the parent. - const level = this.level || (this.parent && this.parent.level); - - if (!level || this.levels[level] >= this.levels[info[LEVEL]]) { - if (info && !this.format) { - return this.log(info, callback); - } - - let errState; - let transformed; - - // We trap(and re-throw) any errors generated by the user-provided format, but also - // guarantee that the streams callback is invoked so that we can continue flowing. - try { - transformed = this.format.transform(Object.assign({}, info), this.format.options); - } catch (err) { - errState = err; - } - - if (errState || !transformed) { - // eslint-disable-next-line callback-return - callback(); - if (errState) throw errState; - return; - } - - return this.log(transformed, callback); - } - - return callback(null); -}; - -/** - * Writes the batch of info objects (i.e. "object chunks") to our transport - * instance after performing any necessary filtering. - * @param {mixed} chunks - TODO: add params description. - * @param {function} callback - TODO: add params description. - * @returns {mixed} - TODO: add returns description. - * @private - */ -TransportStream.prototype._writev = function _writev(chunks, callback) { - if (this.logv) { - const infos = chunks.filter(this._accept, this); - if (!infos.length) { - return callback(null); - } - - // Remark (indexzero): from a performance perspective if Transport - // implementers do choose to implement logv should we make it their - // responsibility to invoke their format? - return this.logv(infos, callback); - } - - for (let i = 0; i < chunks.length; i++) { - if (!this._accept(chunks[i])) continue; - - if (chunks[i].chunk && !this.format) { - this.log(chunks[i].chunk, chunks[i].callback); - continue; - } - - let errState; - let transformed; - - // We trap(and re-throw) any errors generated by the user-provided format, but also - // guarantee that the streams callback is invoked so that we can continue flowing. - try { - transformed = this.format.transform( - Object.assign({}, chunks[i].chunk), - this.format.options - ); - } catch (err) { - errState = err; - } - - if (errState || !transformed) { - // eslint-disable-next-line callback-return - chunks[i].callback(); - if (errState) { - // eslint-disable-next-line callback-return - callback(null); - throw errState; - } - } else { - this.log(transformed, chunks[i].callback); - } - } - - return callback(null); -}; - -/** - * Predicate function that returns true if the specfied `info` on the - * WriteReq, `write`, should be passed down into the derived - * TransportStream's I/O via `.log(info, callback)`. - * @param {WriteReq} write - winston@3 Node.js WriteReq for the `info` object - * representing the log message. - * @returns {Boolean} - Value indicating if the `write` should be accepted & - * logged. - */ -TransportStream.prototype._accept = function _accept(write) { - const info = write.chunk; - if (this.silent) { - return false; - } - - // We always prefer any explicit level set on the Transport itself - // falling back to any level set on the parent. - const level = this.level || (this.parent && this.parent.level); - - // Immediately check the average case: log level filtering. - if ( - info.exception === true || - !level || - this.levels[level] >= this.levels[info[LEVEL]] - ) { - // Ensure the info object is valid based on `{ exception }`: - // 1. { handleExceptions: true }: all `info` objects are valid - // 2. { exception: false }: accepted by all transports. - if (this.handleExceptions || info.exception !== true) { - return true; - } - } - - return false; -}; - -/** - * _nop is short for "No operation" - * @returns {Boolean} Intentionally false. - */ -TransportStream.prototype._nop = function _nop() { - // eslint-disable-next-line no-undefined - return void undefined; -}; - - -// Expose legacy stream -module.exports.LegacyTransportStream = __webpack_require__(/*! ./legacy */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/legacy.js"); - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/legacy.js": -/*!********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston-transport/legacy.js ***! - \********************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -const util = __webpack_require__(/*! util */ "util"); -const { LEVEL } = __webpack_require__(/*! triple-beam */ "./node_modules/cht-core-4-0/api/node_modules/triple-beam/index.js"); -const TransportStream = __webpack_require__(/*! ./ */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/index.js"); - -/** - * Constructor function for the LegacyTransportStream. This is an internal - * wrapper `winston >= 3` uses to wrap older transports implementing - * log(level, message, meta). - * @param {Object} options - Options for this TransportStream instance. - * @param {Transpot} options.transport - winston@2 or older Transport to wrap. - */ - -const LegacyTransportStream = module.exports = function LegacyTransportStream(options = {}) { - TransportStream.call(this, options); - if (!options.transport || typeof options.transport.log !== 'function') { - throw new Error('Invalid transport, must be an object with a log method.'); - } - - this.transport = options.transport; - this.level = this.level || options.transport.level; - this.handleExceptions = this.handleExceptions || options.transport.handleExceptions; - - // Display our deprecation notice. - this._deprecated(); - - // Properly bubble up errors from the transport to the - // LegacyTransportStream instance, but only once no matter how many times - // this transport is shared. - function transportError(err) { - this.emit('error', err, this.transport); - } - - if (!this.transport.__winstonError) { - this.transport.__winstonError = transportError.bind(this); - this.transport.on('error', this.transport.__winstonError); - } -}; - -/* - * Inherit from TransportStream using Node.js built-ins - */ -util.inherits(LegacyTransportStream, TransportStream); - -/** - * Writes the info object to our transport instance. - * @param {mixed} info - TODO: add param description. - * @param {mixed} enc - TODO: add param description. - * @param {function} callback - TODO: add param description. - * @returns {undefined} - * @private - */ -LegacyTransportStream.prototype._write = function _write(info, enc, callback) { - if (this.silent || (info.exception === true && !this.handleExceptions)) { - return callback(null); - } - - // Remark: This has to be handled in the base transport now because we - // cannot conditionally write to our pipe targets as stream. - if (!this.level || this.levels[this.level] >= this.levels[info[LEVEL]]) { - this.transport.log(info[LEVEL], info.message, info, this._nop); - } - - callback(null); -}; - -/** - * Writes the batch of info objects (i.e. "object chunks") to our transport - * instance after performing any necessary filtering. - * @param {mixed} chunks - TODO: add params description. - * @param {function} callback - TODO: add params description. - * @returns {mixed} - TODO: add returns description. - * @private - */ -LegacyTransportStream.prototype._writev = function _writev(chunks, callback) { - for (let i = 0; i < chunks.length; i++) { - if (this._accept(chunks[i])) { - this.transport.log( - chunks[i].chunk[LEVEL], - chunks[i].chunk.message, - chunks[i].chunk, - this._nop - ); - chunks[i].callback(); - } - } - - return callback(null); -}; - -/** - * Displays a deprecation notice. Defined as a function so it can be - * overriden in tests. - * @returns {undefined} - */ -LegacyTransportStream.prototype._deprecated = function _deprecated() { - // eslint-disable-next-line no-console - console.error([ - `${this.transport.name} is a legacy winston transport. Consider upgrading: `, - '- Upgrade docs: https://github.com/winstonjs/winston/blob/master/UPGRADE-3.0.md' - ].join('\n')); -}; - -/** - * Clean up error handling state on the legacy transport associated - * with this instance. - * @returns {undefined} - */ -LegacyTransportStream.prototype.close = function close() { - if (this.transport.close) { - this.transport.close(); - } - - if (this.transport.__winstonError) { - this.transport.removeListener('error', this.transport.__winstonError); - this.transport.__winstonError = null; - } -}; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/errors.js": -/*!*************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/errors.js ***! - \*************************************************************************************************************/ -/***/ ((module) => { - -"use strict"; - - -const codes = {}; - -function createErrorType(code, message, Base) { - if (!Base) { - Base = Error - } - - function getMessage (arg1, arg2, arg3) { - if (typeof message === 'string') { - return message - } else { - return message(arg1, arg2, arg3) - } - } - - class NodeError extends Base { - constructor (arg1, arg2, arg3) { - super(getMessage(arg1, arg2, arg3)); - } - } - - NodeError.prototype.name = Base.name; - NodeError.prototype.code = code; - - codes[code] = NodeError; -} - -// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js -function oneOf(expected, thing) { - if (Array.isArray(expected)) { - const len = expected.length; - expected = expected.map((i) => String(i)); - if (len > 2) { - return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` + - expected[len - 1]; - } else if (len === 2) { - return `one of ${thing} ${expected[0]} or ${expected[1]}`; - } else { - return `of ${thing} ${expected[0]}`; - } - } else { - return `of ${thing} ${String(expected)}`; - } -} - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith -function startsWith(str, search, pos) { - return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; -} - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith -function endsWith(str, search, this_len) { - if (this_len === undefined || this_len > str.length) { - this_len = str.length; - } - return str.substring(this_len - search.length, this_len) === search; -} - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes -function includes(str, search, start) { - if (typeof start !== 'number') { - start = 0; - } - - if (start + search.length > str.length) { - return false; - } else { - return str.indexOf(search, start) !== -1; - } -} - -createErrorType('ERR_INVALID_OPT_VALUE', function (name, value) { - return 'The value "' + value + '" is invalid for option "' + name + '"' -}, TypeError); -createErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) { - // determiner: 'must be' or 'must not be' - let determiner; - if (typeof expected === 'string' && startsWith(expected, 'not ')) { - determiner = 'must not be'; - expected = expected.replace(/^not /, ''); - } else { - determiner = 'must be'; - } - - let msg; - if (endsWith(name, ' argument')) { - // For cases like 'first argument' - msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`; - } else { - const type = includes(name, '.') ? 'property' : 'argument'; - msg = `The "${name}" ${type} ${determiner} ${oneOf(expected, 'type')}`; - } - - msg += `. Received type ${typeof actual}`; - return msg; -}, TypeError); -createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF'); -createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) { - return 'The ' + name + ' method is not implemented' -}); -createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close'); -createErrorType('ERR_STREAM_DESTROYED', function (name) { - return 'Cannot call ' + name + ' after a stream was destroyed'; -}); -createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times'); -createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable'); -createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end'); -createErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError); -createErrorType('ERR_UNKNOWN_ENCODING', function (arg) { - return 'Unknown encoding: ' + arg -}, TypeError); -createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event'); - -module.exports.codes = codes; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js": -/*!*************************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js ***! - \*************************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. -// a duplex stream is just a stream that is both readable and writable. -// Since JS doesn't have multiple prototypal inheritance, this class -// prototypally inherits from Readable, and then parasitically from -// Writable. - -/**/ - -var objectKeys = Object.keys || function (obj) { - var keys = []; - - for (var key in obj) { - keys.push(key); - } - - return keys; -}; -/**/ - - -module.exports = Duplex; - -var Readable = __webpack_require__(/*! ./_stream_readable */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_readable.js"); - -var Writable = __webpack_require__(/*! ./_stream_writable */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js"); - -__webpack_require__(/*! inherits */ "./node_modules/cht-core-4-0/api/node_modules/inherits/inherits.js")(Duplex, Readable); - -{ - // Allow the keys array to be GC'ed. - var keys = objectKeys(Writable.prototype); - - for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; - } -} - -function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); - Readable.call(this, options); - Writable.call(this, options); - this.allowHalfOpen = true; - - if (options) { - if (options.readable === false) this.readable = false; - if (options.writable === false) this.writable = false; - - if (options.allowHalfOpen === false) { - this.allowHalfOpen = false; - this.once('end', onend); - } - } -} - -Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.highWaterMark; - } -}); -Object.defineProperty(Duplex.prototype, 'writableBuffer', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState && this._writableState.getBuffer(); - } -}); -Object.defineProperty(Duplex.prototype, 'writableLength', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.length; - } -}); // the no-half-open enforcer - -function onend() { - // If the writable side ended, then we're ok. - if (this._writableState.ended) return; // no more data can be written. - // But allow more writes to happen in this tick. - - process.nextTick(onEndNT, this); -} - -function onEndNT(self) { - self.end(); -} - -Object.defineProperty(Duplex.prototype, 'destroyed', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - if (this._readableState === undefined || this._writableState === undefined) { - return false; - } - - return this._readableState.destroyed && this._writableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (this._readableState === undefined || this._writableState === undefined) { - return; - } // backward compatibility, the user is explicitly - // managing destroyed - - - this._readableState.destroyed = value; - this._writableState.destroyed = value; - } -}); - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_readable.js": -/*!***************************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_readable.js ***! - \***************************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - - -module.exports = Readable; -/**/ - -var Duplex; -/**/ - -Readable.ReadableState = ReadableState; -/**/ - -var EE = __webpack_require__(/*! events */ "events").EventEmitter; - -var EElistenerCount = function EElistenerCount(emitter, type) { - return emitter.listeners(type).length; -}; -/**/ - -/**/ - - -var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/stream.js"); -/**/ - - -var Buffer = __webpack_require__(/*! buffer */ "buffer").Buffer; - -var OurUint8Array = global.Uint8Array || function () {}; - -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} - -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} -/**/ - - -var debugUtil = __webpack_require__(/*! util */ "util"); - -var debug; - -if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream'); -} else { - debug = function debug() {}; -} -/**/ - - -var BufferList = __webpack_require__(/*! ./internal/streams/buffer_list */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/buffer_list.js"); - -var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/destroy.js"); - -var _require = __webpack_require__(/*! ./internal/streams/state */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/state.js"), - getHighWaterMark = _require.getHighWaterMark; - -var _require$codes = __webpack_require__(/*! ../errors */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/errors.js").codes, - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance. - - -var StringDecoder; -var createReadableStreamAsyncIterator; -var from; - -__webpack_require__(/*! inherits */ "./node_modules/cht-core-4-0/api/node_modules/inherits/inherits.js")(Readable, Stream); - -var errorOrDestroy = destroyImpl.errorOrDestroy; -var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; - -function prependListener(emitter, event, fn) { - // Sadly this is not cacheable as some libraries bundle their own - // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any - // userland ones. NEVER DO THIS. This is here only because this code needs - // to continue to work with older versions of Node.js that do not include - // the prependListener() method. The goal is to eventually remove this hack. - - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; -} - -function ReadableState(options, stream, isDuplex) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js"); - options = options || {}; // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream. - // These options can be provided separately as readableXXX and writableXXX. - - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away - - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - - this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the - // linked list can remove elements from the beginning faster than - // array.shift() - - this.buffer = new BufferList(); - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted - // immediately, or on a later tick. We set this to true at first, because - // any actions that shouldn't happen until "later" should generally also - // not happen before the first read call. - - this.sync = true; // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. - - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - this.resumeScheduled = false; - this.paused = true; // Should close be emitted on destroy. Defaults to true. - - this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish') - - this.autoDestroy = !!options.autoDestroy; // has it been destroyed - - this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - - this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s - - this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled - - this.readingMore = false; - this.decoder = null; - this.encoding = null; - - if (options.encoding) { - if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ "./node_modules/cht-core-4-0/api/node_modules/string_decoder/lib/string_decoder.js").StringDecoder; - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } -} - -function Readable(options) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js"); - if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside - // the ReadableState constructor, at least with V8 6.5 - - var isDuplex = this instanceof Duplex; - this._readableState = new ReadableState(options, this, isDuplex); // legacy - - this.readable = true; - - if (options) { - if (typeof options.read === 'function') this._read = options.read; - if (typeof options.destroy === 'function') this._destroy = options.destroy; - } - - Stream.call(this); -} - -Object.defineProperty(Readable.prototype, 'destroyed', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - if (this._readableState === undefined) { - return false; - } - - return this._readableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._readableState) { - return; - } // backward compatibility, the user is explicitly - // managing destroyed - - - this._readableState.destroyed = value; - } -}); -Readable.prototype.destroy = destroyImpl.destroy; -Readable.prototype._undestroy = destroyImpl.undestroy; - -Readable.prototype._destroy = function (err, cb) { - cb(err); -}; // Manually shove something into the read() buffer. -// This returns true if the highWaterMark has not been hit yet, -// similar to how Writable.write() returns true if you should -// write() some more. - - -Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState; - var skipChunkCheck; - - if (!state.objectMode) { - if (typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - - if (encoding !== state.encoding) { - chunk = Buffer.from(chunk, encoding); - encoding = ''; - } - - skipChunkCheck = true; - } - } else { - skipChunkCheck = true; - } - - return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); -}; // Unshift should *always* be something directly out of read() - - -Readable.prototype.unshift = function (chunk) { - return readableAddChunk(this, chunk, null, true, false); -}; - -function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { - debug('readableAddChunk', chunk); - var state = stream._readableState; - - if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } else { - var er; - if (!skipChunkCheck) er = chunkInvalid(state, chunk); - - if (er) { - errorOrDestroy(stream, er); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { - chunk = _uint8ArrayToBuffer(chunk); - } - - if (addToFront) { - if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true); - } else if (state.ended) { - errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); - } else if (state.destroyed) { - return false; - } else { - state.reading = false; - - if (state.decoder && !encoding) { - chunk = state.decoder.write(chunk); - if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); - } else { - addChunk(stream, state, chunk, false); - } - } - } else if (!addToFront) { - state.reading = false; - maybeReadMore(stream, state); - } - } // We can push more data if we are below the highWaterMark. - // Also, if we have no data yet, we can stand some more bytes. - // This is to work around cases where hwm=0, such as the repl. - - - return !state.ended && (state.length < state.highWaterMark || state.length === 0); -} - -function addChunk(stream, state, chunk, addToFront) { - if (state.flowing && state.length === 0 && !state.sync) { - state.awaitDrain = 0; - stream.emit('data', chunk); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - if (state.needReadable) emitReadable(stream); - } - - maybeReadMore(stream, state); -} - -function chunkInvalid(state, chunk) { - var er; - - if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk); - } - - return er; -} - -Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; -}; // backwards compatibility. - - -Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ "./node_modules/cht-core-4-0/api/node_modules/string_decoder/lib/string_decoder.js").StringDecoder; - var decoder = new StringDecoder(enc); - this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8 - - this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers: - - var p = this._readableState.buffer.head; - var content = ''; - - while (p !== null) { - content += decoder.write(p.data); - p = p.next; - } - - this._readableState.buffer.clear(); - - if (content !== '') this._readableState.buffer.push(content); - this._readableState.length = content.length; - return this; -}; // Don't raise the hwm > 1GB - - -var MAX_HWM = 0x40000000; - -function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE. - n = MAX_HWM; - } else { - // Get the next highest power of 2 to prevent increasing hwm excessively in - // tiny amounts - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } - - return n; -} // This function is designed to be inlinable, so please take care when making -// changes to the function body. - - -function howMuchToRead(n, state) { - if (n <= 0 || state.length === 0 && state.ended) return 0; - if (state.objectMode) return 1; - - if (n !== n) { - // Only flow one buffer at a time - if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } // If we're asking for more than the current hwm, then raise the hwm. - - - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; // Don't have enough - - if (!state.ended) { - state.needReadable = true; - return 0; - } - - return state.length; -} // you can override either this method, or the async _read(n) below. - - -Readable.prototype.read = function (n) { - debug('read', n); - n = parseInt(n, 10); - var state = this._readableState; - var nOrig = n; - if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - - if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } - - n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up. - - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; - } // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. - // if we need a readable event, then we need to do some reading. - - - var doRead = state.needReadable; - debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some - - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - - - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } else if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; // if the length is currently zero, then we *need* a readable event. - - if (state.length === 0) state.needReadable = true; // call internal read method - - this._read(state.highWaterMark); - - state.sync = false; // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. - - if (!state.reading) n = howMuchToRead(nOrig, state); - } - - var ret; - if (n > 0) ret = fromList(n, state);else ret = null; - - if (ret === null) { - state.needReadable = state.length <= state.highWaterMark; - n = 0; - } else { - state.length -= n; - state.awaitDrain = 0; - } - - if (state.length === 0) { - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick. - - if (nOrig !== n && state.ended) endReadable(this); - } - - if (ret !== null) this.emit('data', ret); - return ret; -}; - -function onEofChunk(stream, state) { - debug('onEofChunk'); - if (state.ended) return; - - if (state.decoder) { - var chunk = state.decoder.end(); - - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } - - state.ended = true; - - if (state.sync) { - // if we are sync, wait until next tick to emit the data. - // Otherwise we risk emitting data in the flow() - // the readable code triggers during a read() call - emitReadable(stream); - } else { - // emit 'readable' now to make sure it gets picked up. - state.needReadable = false; - - if (!state.emittedReadable) { - state.emittedReadable = true; - emitReadable_(stream); - } - } -} // Don't emit readable right away in sync mode, because this can trigger -// another read() call => stack overflow. This way, it might trigger -// a nextTick recursion warning, but that's not so bad. - - -function emitReadable(stream) { - var state = stream._readableState; - debug('emitReadable', state.needReadable, state.emittedReadable); - state.needReadable = false; - - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - process.nextTick(emitReadable_, stream); - } -} - -function emitReadable_(stream) { - var state = stream._readableState; - debug('emitReadable_', state.destroyed, state.length, state.ended); - - if (!state.destroyed && (state.length || state.ended)) { - stream.emit('readable'); - state.emittedReadable = false; - } // The stream needs another readable event if - // 1. It is not flowing, as the flow mechanism will take - // care of it. - // 2. It is not ended. - // 3. It is below the highWaterMark, so we can schedule - // another readable later. - - - state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; - flow(stream); -} // at this point, the user has presumably seen the 'readable' event, -// and called read() to consume some data. that may have triggered -// in turn another _read(n) call, in which case reading = true if -// it's in progress. -// However, if we're not ended, or reading, and the length < hwm, -// then go ahead and try to read some more preemptively. - - -function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - process.nextTick(maybeReadMore_, stream, state); - } -} - -function maybeReadMore_(stream, state) { - // Attempt to read more data if we should. - // - // The conditions for reading more data are (one of): - // - Not enough data buffered (state.length < state.highWaterMark). The loop - // is responsible for filling the buffer with enough data if such data - // is available. If highWaterMark is 0 and we are not in the flowing mode - // we should _not_ attempt to buffer any extra data. We'll get more data - // when the stream consumer calls read() instead. - // - No data in the buffer, and the stream is in flowing mode. In this mode - // the loop below is responsible for ensuring read() is called. Failing to - // call read here would abort the flow and there's no other mechanism for - // continuing the flow if the stream consumer has just subscribed to the - // 'data' event. - // - // In addition to the above conditions to keep reading data, the following - // conditions prevent the data from being read: - // - The stream has ended (state.ended). - // - There is already a pending 'read' operation (state.reading). This is a - // case where the the stream has called the implementation defined _read() - // method, but they are processing the call asynchronously and have _not_ - // called push() with new data. In this case we skip performing more - // read()s. The execution ends in this method again after the _read() ends - // up calling push() with more data. - while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) { - var len = state.length; - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) // didn't get any data, stop spinning. - break; - } - - state.readingMore = false; -} // abstract method. to be overridden in specific implementation classes. -// call cb(er, data) where data is <= n in length. -// for virtual (non-string, non-buffer) streams, "length" is somewhat -// arbitrary, and perhaps not very meaningful. - - -Readable.prototype._read = function (n) { - errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')); -}; - -Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; - - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; - - case 1: - state.pipes = [state.pipes, dest]; - break; - - default: - state.pipes.push(dest); - break; - } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Vandag om] LT', + nextDay: '[Môre om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[Gister om] LT', + lastWeek: '[Laas] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oor %s', + past: '%s gelede', + s: "'n paar sekondes", + ss: '%d sekondes', + m: "'n minuut", + mm: '%d minute', + h: "'n uur", + hh: '%d ure', + d: "'n dag", + dd: '%d dae', + M: "'n maand", + MM: '%d maande', + y: "'n jaar", + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); // Thanks to Joris Röling : https://github.com/jjupiter + }, + week: { + dow: 1, // Maandag is die eerste dag van die week. + doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. + }, + }); - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - var endFn = doEnd ? onend : unpipe; - if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn); - dest.on('unpipe', onunpipe); + return af; - function onunpipe(readable, unpipeInfo) { - debug('onunpipe'); +}))); - if (readable === src) { - if (unpipeInfo && unpipeInfo.hasUnpiped === false) { - unpipeInfo.hasUnpiped = true; - cleanup(); - } - } - } - function onend() { - debug('onend'); - dest.end(); - } // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. +/***/ }), +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ar-dz.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ar-dz.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_545250__) { - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - var cleanedUp = false; +//! moment.js locale configuration +//! locale : Arabic (Algeria) [ar-dz] +//! author : Amine Roukh: https://github.com/Amine27 +//! author : Abdel Said: https://github.com/abdelsaid +//! author : Ahmed Elkhatib +//! author : forabi https://github.com/forabi +//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem - function cleanup() { - debug('cleanup'); // cleanup event handlers once the pipe is broken +;(function (global, factory) { + true ? factory(__nested_webpack_require_545250__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', unpipe); - src.removeListener('data', ondata); - cleanedUp = true; // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. + //! moment.js locale configuration - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } + var pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + 'جانفي', + 'فيفري', + 'مارس', + 'أفريل', + 'ماي', + 'جوان', + 'جويلية', + 'أوت', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; - src.on('data', ondata); + var arDz = moment.defineLocale('ar-dz', { + months: months, + monthsShort: months, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - function ondata(chunk) { - debug('ondata'); - var ret = dest.write(chunk); - debug('dest.write', ret); + return arDz; - if (ret === false) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - // => Check whether `dest` is still a piping destination. - if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug('false write response, pause', state.awaitDrain); - state.awaitDrain++; - } +}))); - src.pause(); - } - } // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. +/***/ }), - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er); - } // Make sure our error handler is attached before userland ones. +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ar-kw.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ar-kw.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_550437__) { +//! moment.js locale configuration +//! locale : Arabic (Kuwait) [ar-kw] +//! author : Nusret Parlak: https://github.com/nusretparlak - prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once. +;(function (global, factory) { + true ? factory(__nested_webpack_require_550437__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } + //! moment.js locale configuration - dest.once('close', onclose); + var arKw = moment.defineLocale('ar-kw', { + months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } + return arKw; - dest.once('finish', onfinish); +}))); - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } // tell the dest that it's being piped to +/***/ }), - dest.emit('pipe', src); // start the flow if it hasn't been started already. +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ar-ly.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ar-ly.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_552877__) { - if (!state.flowing) { - debug('pipe resume'); - src.resume(); - } +//! moment.js locale configuration +//! locale : Arabic (Libya) [ar-ly] +//! author : Ali Hmer: https://github.com/kikoanis - return dest; -}; +;(function (global, factory) { + true ? factory(__nested_webpack_require_552877__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -function pipeOnDrain(src) { - return function pipeOnDrainFunctionResult() { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; + //! moment.js locale configuration - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true; - flow(src); - } - }; -} + var symbolMap = { + 1: '1', + 2: '2', + 3: '3', + 4: '4', + 5: '5', + 6: '6', + 7: '7', + 8: '8', + 9: '9', + 0: '0', + }, + pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; -Readable.prototype.unpipe = function (dest) { - var state = this._readableState; - var unpipeInfo = { - hasUnpiped: false - }; // if we're not piping anywhere, then do nothing. + var arLy = moment.defineLocale('ar-ly', { + months: months, + monthsShort: months, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); - if (state.pipesCount === 0) return this; // just one destination. most common case. + return arLy; - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; - if (!dest) dest = state.pipes; // got a match. +}))); - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this, unpipeInfo); - return this; - } // slow case. multiple pipe destinations. +/***/ }), - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ar-ma.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ar-ma.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_558334__) { - for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this, { - hasUnpiped: false - }); - } +//! moment.js locale configuration +//! locale : Arabic (Morocco) [ar-ma] +//! author : ElFadili Yassine : https://github.com/ElFadiliY +//! author : Abdel Said : https://github.com/abdelsaid - return this; - } // try to find the right one. +;(function (global, factory) { + true ? factory(__nested_webpack_require_558334__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + //! moment.js locale configuration - var index = indexOf(state.pipes, dest); - if (index === -1) return this; - state.pipes.splice(index, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; - dest.emit('unpipe', this, unpipeInfo); - return this; -}; // set up data events if they are asked for -// Ensure readable listeners eventually get something + var arMa = moment.defineLocale('ar-ma', { + months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + return arMa; -Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); - var state = this._readableState; +}))); - if (ev === 'data') { - // update readableListening so that resume() may be a no-op - // a few lines down. This is needed to support once('readable'). - state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused - if (state.flowing !== false) this.resume(); - } else if (ev === 'readable') { - if (!state.endEmitted && !state.readableListening) { - state.readableListening = state.needReadable = true; - state.flowing = false; - state.emittedReadable = false; - debug('on readable', state.length, state.reading); +/***/ }), - if (state.length) { - emitReadable(this); - } else if (!state.reading) { - process.nextTick(nReadingNextTick, this); - } - } - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ar-sa.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ar-sa.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_560829__) { - return res; -}; +//! moment.js locale configuration +//! locale : Arabic (Saudi Arabia) [ar-sa] +//! author : Suhail Alkowaileet : https://github.com/xsoh -Readable.prototype.addListener = Readable.prototype.on; +;(function (global, factory) { + true ? factory(__nested_webpack_require_560829__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -Readable.prototype.removeListener = function (ev, fn) { - var res = Stream.prototype.removeListener.call(this, ev, fn); + //! moment.js locale configuration - if (ev === 'readable') { - // We need to check if there is someone still listening to - // readable and reset the state. However this needs to happen - // after readable has been emitted but before I/O (nextTick) to - // support once('readable', fn) cycles. This means that calling - // resume within the same tick will have no - // effect. - process.nextTick(updateReadableListening, this); - } + var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }; - return res; -}; + var arSa = moment.defineLocale('ar-sa', { + months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); -Readable.prototype.removeAllListeners = function (ev) { - var res = Stream.prototype.removeAllListeners.apply(this, arguments); + return arSa; - if (ev === 'readable' || ev === undefined) { - // We need to check if there is someone still listening to - // readable and reset the state. However this needs to happen - // after readable has been emitted but before I/O (nextTick) to - // support once('readable', fn) cycles. This means that calling - // resume within the same tick will have no - // effect. - process.nextTick(updateReadableListening, this); - } +}))); - return res; -}; -function updateReadableListening(self) { - var state = self._readableState; - state.readableListening = self.listenerCount('readable') > 0; +/***/ }), - if (state.resumeScheduled && !state.paused) { - // flowing needs to be set to true now, otherwise - // the upcoming resume will not flow. - state.flowing = true; // crude way to check if we should resume - } else if (self.listenerCount('data') > 0) { - self.resume(); - } -} +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ar-tn.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ar-tn.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_564526__) { -function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); -} // pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. +//! moment.js locale configuration +//! locale : Arabic (Tunisia) [ar-tn] +//! author : Nader Toukabri : https://github.com/naderio +;(function (global, factory) { + true ? factory(__nested_webpack_require_564526__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -Readable.prototype.resume = function () { - var state = this._readableState; + //! moment.js locale configuration - if (!state.flowing) { - debug('resume'); // we flow only if there is no one listening - // for readable, but we still have to call - // resume() + var arTn = moment.defineLocale('ar-tn', { + months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + monthsShort: + 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - state.flowing = !state.readableListening; - resume(this, state); - } + return arTn; - state.paused = false; - return this; -}; +}))); -function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - process.nextTick(resume_, stream, state); - } -} -function resume_(stream, state) { - debug('resume', state.reading); +/***/ }), - if (!state.reading) { - stream.read(0); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ar.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ar.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_566954__) { - state.resumeScheduled = false; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); -} +//! moment.js locale configuration +//! locale : Arabic [ar] +//! author : Abdel Said: https://github.com/abdelsaid +//! author : Ahmed Elkhatib +//! author : forabi https://github.com/forabi -Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); +;(function (global, factory) { + true ? factory(__nested_webpack_require_566954__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (this._readableState.flowing !== false) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } + //! moment.js locale configuration - this._readableState.paused = true; - return this; -}; + var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }, + pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; -function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); + var ar = moment.defineLocale('ar', { + months: months, + monthsShort: months, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); - while (state.flowing && stream.read() !== null) { - ; - } -} // wrap an old-style stream as the async data source. -// This is *not* part of the readable stream interface. -// It is an ugly unfortunate mess of history. + return ar; +}))); -Readable.prototype.wrap = function (stream) { - var _this = this; - var state = this._readableState; - var paused = false; - stream.on('end', function () { - debug('wrapped end'); +/***/ }), - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) _this.push(chunk); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/az.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/az.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_572853__) { - _this.push(null); - }); - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode +//! moment.js locale configuration +//! locale : Azerbaijani [az] +//! author : topchiyev : https://github.com/topchiyev - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; +;(function (global, factory) { + true ? factory(__nested_webpack_require_572853__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - var ret = _this.push(chunk); + //! moment.js locale configuration - if (!ret) { - paused = true; - stream.pause(); - } - }); // proxy all the other methods. - // important when wrapping filters and duplexes. + var suffixes = { + 1: '-inci', + 5: '-inci', + 8: '-inci', + 70: '-inci', + 80: '-inci', + 2: '-nci', + 7: '-nci', + 20: '-nci', + 50: '-nci', + 3: '-üncü', + 4: '-üncü', + 100: '-üncü', + 6: '-ncı', + 9: '-uncu', + 10: '-uncu', + 30: '-uncu', + 60: '-ıncı', + 90: '-ıncı', + }; - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function methodWrap(method) { - return function methodWrapReturnFunction() { - return stream[method].apply(stream, arguments); - }; - }(i); - } - } // proxy certain important events. + var az = moment.defineLocale('az', { + months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( + '_' + ), + monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), + weekdays: + 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split( + '_' + ), + weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), + weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün saat] LT', + nextDay: '[sabah saat] LT', + nextWeek: '[gələn həftə] dddd [saat] LT', + lastDay: '[dünən] LT', + lastWeek: '[keçən həftə] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s əvvəl', + s: 'bir neçə saniyə', + ss: '%d saniyə', + m: 'bir dəqiqə', + mm: '%d dəqiqə', + h: 'bir saat', + hh: '%d saat', + d: 'bir gün', + dd: '%d gün', + M: 'bir ay', + MM: '%d ay', + y: 'bir il', + yy: '%d il', + }, + meridiemParse: /gecə|səhər|gündüz|axşam/, + isPM: function (input) { + return /^(gündüz|axşam)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'gecə'; + } else if (hour < 12) { + return 'səhər'; + } else if (hour < 17) { + return 'gündüz'; + } else { + return 'axşam'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, + ordinal: function (number) { + if (number === 0) { + // special case for zero + return number + '-ıncı'; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + return az; - for (var n = 0; n < kProxyEvents.length; n++) { - stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); - } // when we try to consume some more bytes, simply unpause the - // underlying stream. +}))); - this._read = function (n) { - debug('wrapped _read', n); +/***/ }), - if (paused) { - paused = false; - stream.resume(); - } - }; +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/be.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/be.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_576593__) { - return this; -}; +//! moment.js locale configuration +//! locale : Belarusian [be] +//! author : Dmitry Demidov : https://github.com/demidov91 +//! author: Praleska: http://praleska.pro/ +//! Author : Menelion Elensúle : https://github.com/Oire -if (typeof Symbol === 'function') { - Readable.prototype[Symbol.asyncIterator] = function () { - if (createReadableStreamAsyncIterator === undefined) { - createReadableStreamAsyncIterator = __webpack_require__(/*! ./internal/streams/async_iterator */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/async_iterator.js"); - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_576593__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - return createReadableStreamAsyncIterator(this); - }; -} + //! moment.js locale configuration -Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState.highWaterMark; - } -}); -Object.defineProperty(Readable.prototype, 'readableBuffer', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState && this._readableState.buffer; - } -}); -Object.defineProperty(Readable.prototype, 'readableFlowing', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState.flowing; - }, - set: function set(state) { - if (this._readableState) { - this._readableState.flowing = state; + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', + mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін', + hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін', + dd: 'дзень_дні_дзён', + MM: 'месяц_месяцы_месяцаў', + yy: 'год_гады_гадоў', + }; + if (key === 'm') { + return withoutSuffix ? 'хвіліна' : 'хвіліну'; + } else if (key === 'h') { + return withoutSuffix ? 'гадзіна' : 'гадзіну'; + } else { + return number + ' ' + plural(format[key], +number); + } } - } -}); // exposed for testing purposes only. -Readable._fromList = fromList; -Object.defineProperty(Readable.prototype, 'readableLength', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState.length; - } -}); // Pluck off n bytes from an array of buffers. -// Length is the combined lengths of all the buffers in the list. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. + var be = moment.defineLocale('be', { + months: { + format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split( + '_' + ), + standalone: + 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split( + '_' + ), + }, + monthsShort: + 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'), + weekdays: { + format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split( + '_' + ), + standalone: + 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split( + '_' + ), + isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/, + }, + weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY г.', + LLL: 'D MMMM YYYY г., HH:mm', + LLLL: 'dddd, D MMMM YYYY г., HH:mm', + }, + calendar: { + sameDay: '[Сёння ў] LT', + nextDay: '[Заўтра ў] LT', + lastDay: '[Учора ў] LT', + nextWeek: function () { + return '[У] dddd [ў] LT'; + }, + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return '[У мінулую] dddd [ў] LT'; + case 1: + case 2: + case 4: + return '[У мінулы] dddd [ў] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'праз %s', + past: '%s таму', + s: 'некалькі секунд', + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: relativeTimeWithPlural, + hh: relativeTimeWithPlural, + d: 'дзень', + dd: relativeTimeWithPlural, + M: 'месяц', + MM: relativeTimeWithPlural, + y: 'год', + yy: relativeTimeWithPlural, + }, + meridiemParse: /ночы|раніцы|дня|вечара/, + isPM: function (input) { + return /^(дня|вечара)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночы'; + } else if (hour < 12) { + return 'раніцы'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечара'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return (number % 10 === 2 || number % 10 === 3) && + number % 100 !== 12 && + number % 100 !== 13 + ? number + '-і' + : number + '-ы'; + case 'D': + return number + '-га'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); -function fromList(n, state) { - // nothing buffered - if (state.length === 0) return null; - var ret; - if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { - // read it all, truncate the list - if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length); - state.buffer.clear(); - } else { - // read part of list - ret = state.buffer.consume(n, state.decoder); - } - return ret; -} + return be; -function endReadable(stream) { - var state = stream._readableState; - debug('endReadable', state.endEmitted); +}))); - if (!state.endEmitted) { - state.ended = true; - process.nextTick(endReadableNT, state, stream); - } -} -function endReadableNT(state, stream) { - debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift. +/***/ }), - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/bg.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/bg.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_582196__) { - if (state.autoDestroy) { - // In case of duplex streams we need a way to detect - // if the writable side is ready for autoDestroy as well - var wState = stream._writableState; +//! moment.js locale configuration +//! locale : Bulgarian [bg] +//! author : Krasen Borisov : https://github.com/kraz - if (!wState || wState.autoDestroy && wState.finished) { - stream.destroy(); - } - } - } -} +;(function (global, factory) { + true ? factory(__nested_webpack_require_582196__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -if (typeof Symbol === 'function') { - Readable.from = function (iterable, opts) { - if (from === undefined) { - from = __webpack_require__(/*! ./internal/streams/from */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/from.js"); - } + //! moment.js locale configuration - return from(Readable, iterable, opts); - }; -} + var bg = moment.defineLocale('bg', { + months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split( + '_' + ), + monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), + weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split( + '_' + ), + weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'), + weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Днес в] LT', + nextDay: '[Утре в] LT', + nextWeek: 'dddd [в] LT', + lastDay: '[Вчера в] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[Миналата] dddd [в] LT'; + case 1: + case 2: + case 4: + case 5: + return '[Миналия] dddd [в] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'след %s', + past: 'преди %s', + s: 'няколко секунди', + ss: '%d секунди', + m: 'минута', + mm: '%d минути', + h: 'час', + hh: '%d часа', + d: 'ден', + dd: '%d дена', + w: 'седмица', + ww: '%d седмици', + M: 'месец', + MM: '%d месеца', + y: 'година', + yy: '%d години', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); -function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } + return bg; + +}))); - return -1; -} /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js": -/*!***************************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js ***! - \***************************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/bm.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/bm.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_585737__) { -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. -// A bit simpler than readable streams. -// Implement an async ._write(chunk, encoding, cb), and it'll handle all -// the drain event emission and buffering. +//! moment.js locale configuration +//! locale : Bambara [bm] +//! author : Estelle Comment : https://github.com/estellecomment +;(function (global, factory) { + true ? factory(__nested_webpack_require_585737__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -module.exports = Writable; -/* */ + //! moment.js locale configuration -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; -} // It seems a linked list but it is not -// there will be only 2 of these for each stream + var bm = moment.defineLocale('bm', { + months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split( + '_' + ), + monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'), + weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), + weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'), + weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'MMMM [tile] D [san] YYYY', + LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', + LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', + }, + calendar: { + sameDay: '[Bi lɛrɛ] LT', + nextDay: '[Sini lɛrɛ] LT', + nextWeek: 'dddd [don lɛrɛ] LT', + lastDay: '[Kunu lɛrɛ] LT', + lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s kɔnɔ', + past: 'a bɛ %s bɔ', + s: 'sanga dama dama', + ss: 'sekondi %d', + m: 'miniti kelen', + mm: 'miniti %d', + h: 'lɛrɛ kelen', + hh: 'lɛrɛ %d', + d: 'tile kelen', + dd: 'tile %d', + M: 'kalo kelen', + MM: 'kalo %d', + y: 'san kelen', + yy: 'san %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + return bm; -function CorkedRequest(state) { - var _this = this; +}))); - this.next = null; - this.entry = null; - this.finish = function () { - onCorkedFinish(_this, state); - }; -} -/* */ +/***/ }), -/**/ +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/bn-bd.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/bn-bd.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_588207__) { +//! moment.js locale configuration +//! locale : Bengali (Bangladesh) [bn-bd] +//! author : Asraf Hossain Patoary : https://github.com/ashwoolford -var Duplex; -/**/ +;(function (global, factory) { + true ? factory(__nested_webpack_require_588207__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -Writable.WritableState = WritableState; -/**/ + //! moment.js locale configuration -var internalUtil = { - deprecate: __webpack_require__(/*! util-deprecate */ "./node_modules/cht-core-4-0/api/node_modules/util-deprecate/node.js") -}; -/**/ + var symbolMap = { + 1: '১', + 2: '২', + 3: '৩', + 4: '৪', + 5: '৫', + 6: '৬', + 7: '৭', + 8: '৮', + 9: '৯', + 0: '০', + }, + numberMap = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0', + }; + + var bnBd = moment.defineLocale('bn-bd', { + months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( + '_' + ), + monthsShort: + 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( + '_' + ), + weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( + '_' + ), + weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), + weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), + longDateFormat: { + LT: 'A h:mm সময়', + LTS: 'A h:mm:ss সময়', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm সময়', + LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', + }, + calendar: { + sameDay: '[আজ] LT', + nextDay: '[আগামীকাল] LT', + nextWeek: 'dddd, LT', + lastDay: '[গতকাল] LT', + lastWeek: '[গত] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s পরে', + past: '%s আগে', + s: 'কয়েক সেকেন্ড', + ss: '%d সেকেন্ড', + m: 'এক মিনিট', + mm: '%d মিনিট', + h: 'এক ঘন্টা', + hh: '%d ঘন্টা', + d: 'এক দিন', + dd: '%d দিন', + M: 'এক মাস', + MM: '%d মাস', + y: 'এক বছর', + yy: '%d বছর', + }, + preparse: function (string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, -/**/ + meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'রাত') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ভোর') { + return hour; + } else if (meridiem === 'সকাল') { + return hour; + } else if (meridiem === 'দুপুর') { + return hour >= 3 ? hour : hour + 12; + } else if (meridiem === 'বিকাল') { + return hour + 12; + } else if (meridiem === 'সন্ধ্যা') { + return hour + 12; + } + }, -var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/stream.js"); -/**/ + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'রাত'; + } else if (hour < 6) { + return 'ভোর'; + } else if (hour < 12) { + return 'সকাল'; + } else if (hour < 15) { + return 'দুপুর'; + } else if (hour < 18) { + return 'বিকাল'; + } else if (hour < 20) { + return 'সন্ধ্যা'; + } else { + return 'রাত'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + return bnBd; -var Buffer = __webpack_require__(/*! buffer */ "buffer").Buffer; +}))); -var OurUint8Array = global.Uint8Array || function () {}; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} +/***/ }), -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/bn.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/bn.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_592738__) { -var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/destroy.js"); +//! moment.js locale configuration +//! locale : Bengali [bn] +//! author : Kaushik Gandhi : https://github.com/kaushikgandhi -var _require = __webpack_require__(/*! ./internal/streams/state */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/state.js"), - getHighWaterMark = _require.getHighWaterMark; +;(function (global, factory) { + true ? factory(__nested_webpack_require_592738__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -var _require$codes = __webpack_require__(/*! ../errors */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/errors.js").codes, - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, - ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, - ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, - ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; + //! moment.js locale configuration -var errorOrDestroy = destroyImpl.errorOrDestroy; + var symbolMap = { + 1: '১', + 2: '২', + 3: '৩', + 4: '৪', + 5: '৫', + 6: '৬', + 7: '৭', + 8: '৮', + 9: '৯', + 0: '০', + }, + numberMap = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0', + }; -__webpack_require__(/*! inherits */ "./node_modules/cht-core-4-0/api/node_modules/inherits/inherits.js")(Writable, Stream); + var bn = moment.defineLocale('bn', { + months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( + '_' + ), + monthsShort: + 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( + '_' + ), + weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( + '_' + ), + weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), + weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), + longDateFormat: { + LT: 'A h:mm সময়', + LTS: 'A h:mm:ss সময়', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm সময়', + LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', + }, + calendar: { + sameDay: '[আজ] LT', + nextDay: '[আগামীকাল] LT', + nextWeek: 'dddd, LT', + lastDay: '[গতকাল] LT', + lastWeek: '[গত] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s পরে', + past: '%s আগে', + s: 'কয়েক সেকেন্ড', + ss: '%d সেকেন্ড', + m: 'এক মিনিট', + mm: '%d মিনিট', + h: 'এক ঘন্টা', + hh: '%d ঘন্টা', + d: 'এক দিন', + dd: '%d দিন', + M: 'এক মাস', + MM: '%d মাস', + y: 'এক বছর', + yy: '%d বছর', + }, + preparse: function (string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'রাত' && hour >= 4) || + (meridiem === 'দুপুর' && hour < 5) || + meridiem === 'বিকাল' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'রাত'; + } else if (hour < 10) { + return 'সকাল'; + } else if (hour < 17) { + return 'দুপুর'; + } else if (hour < 20) { + return 'বিকাল'; + } else { + return 'রাত'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); -function nop() {} + return bn; -function WritableState(options, stream, isDuplex) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js"); - options = options || {}; // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream, - // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. +}))); - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream - // contains buffers or objects. - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() +/***/ }), - this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/bo.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/bo.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_596850__) { - this.finalCalled = false; // drain event flag. +//! moment.js locale configuration +//! locale : Tibetan [bo] +//! author : Thupten N. Chakrishar : https://github.com/vajradog - this.needDrain = false; // at the start of calling end() +;(function (global, factory) { + true ? factory(__nested_webpack_require_596850__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - this.ending = false; // when end() has been called, and returned + //! moment.js locale configuration - this.ended = false; // when 'finish' is emitted + var symbolMap = { + 1: '༡', + 2: '༢', + 3: '༣', + 4: '༤', + 5: '༥', + 6: '༦', + 7: '༧', + 8: '༨', + 9: '༩', + 0: '༠', + }, + numberMap = { + '༡': '1', + '༢': '2', + '༣': '3', + '༤': '4', + '༥': '5', + '༦': '6', + '༧': '7', + '༨': '8', + '༩': '9', + '༠': '0', + }; - this.finished = false; // has it been destroyed + var bo = moment.defineLocale('bo', { + months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split( + '_' + ), + monthsShort: + 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split( + '_' + ), + monthsShortRegex: /^(ཟླ་\d{1,2})/, + monthsParseExact: true, + weekdays: + 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split( + '_' + ), + weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split( + '_' + ), + weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[དི་རིང] LT', + nextDay: '[སང་ཉིན] LT', + nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT', + lastDay: '[ཁ་སང] LT', + lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ལ་', + past: '%s སྔན་ལ', + s: 'ལམ་སང', + ss: '%d སྐར་ཆ།', + m: 'སྐར་མ་གཅིག', + mm: '%d སྐར་མ', + h: 'ཆུ་ཚོད་གཅིག', + hh: '%d ཆུ་ཚོད', + d: 'ཉིན་གཅིག', + dd: '%d ཉིན་', + M: 'ཟླ་བ་གཅིག', + MM: '%d ཟླ་བ', + y: 'ལོ་གཅིག', + yy: '%d ལོ', + }, + preparse: function (string) { + return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'མཚན་མོ' && hour >= 4) || + (meridiem === 'ཉིན་གུང' && hour < 5) || + meridiem === 'དགོང་དག' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'མཚན་མོ'; + } else if (hour < 10) { + return 'ཞོགས་ཀས'; + } else if (hour < 17) { + return 'ཉིན་གུང'; + } else if (hour < 20) { + return 'དགོང་དག'; + } else { + return 'མཚན་མོ'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); - this.destroyed = false; // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. + return bo; - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. +}))); - this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; // a flag to see when we're in the middle of a write. +/***/ }), - this.writing = false; // when true all writes will be buffered until .uncork() call +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/br.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/br.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_601215__) { - this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. +//! moment.js locale configuration +//! locale : Breton [br] +//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou - this.sync = true; // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. +;(function (global, factory) { + true ? factory(__nested_webpack_require_601215__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb) + //! moment.js locale configuration - this.onwrite = function (er) { - onwrite(stream, er); - }; // the callback that the user supplies to write(chunk,encoding,cb) + function relativeTimeWithMutation(number, withoutSuffix, key) { + var format = { + mm: 'munutenn', + MM: 'miz', + dd: 'devezh', + }; + return number + ' ' + mutation(format[key], number); + } + function specialMutationForYears(number) { + switch (lastNumber(number)) { + case 1: + case 3: + case 4: + case 5: + case 9: + return number + ' bloaz'; + default: + return number + ' vloaz'; + } + } + function lastNumber(number) { + if (number > 9) { + return lastNumber(number % 10); + } + return number; + } + function mutation(text, number) { + if (number === 2) { + return softMutation(text); + } + return text; + } + function softMutation(text) { + var mutationTable = { + m: 'v', + b: 'v', + d: 'z', + }; + if (mutationTable[text.charAt(0)] === undefined) { + return text; + } + return mutationTable[text.charAt(0)] + text.substring(1); + } + var monthsParse = [ + /^gen/i, + /^c[ʼ\']hwe/i, + /^meu/i, + /^ebr/i, + /^mae/i, + /^(mez|eve)/i, + /^gou/i, + /^eos/i, + /^gwe/i, + /^her/i, + /^du/i, + /^ker/i, + ], + monthsRegex = + /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + monthsStrictRegex = + /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, + monthsShortStrictRegex = + /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + fullWeekdaysParse = [ + /^sul/i, + /^lun/i, + /^meurzh/i, + /^merc[ʼ\']her/i, + /^yaou/i, + /^gwener/i, + /^sadorn/i, + ], + shortWeekdaysParse = [ + /^Sul/i, + /^Lun/i, + /^Meu/i, + /^Mer/i, + /^Yao/i, + /^Gwe/i, + /^Sad/i, + ], + minWeekdaysParse = [ + /^Su/i, + /^Lu/i, + /^Me([^r]|$)/i, + /^Mer/i, + /^Ya/i, + /^Gw/i, + /^Sa/i, + ]; - this.writecb = null; // the amount that is being written when _write is called. + var br = moment.defineLocale('br', { + months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( + '_' + ), + monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), + weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'), + weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), + weekdaysParse: minWeekdaysParse, + fullWeekdaysParse: fullWeekdaysParse, + shortWeekdaysParse: shortWeekdaysParse, + minWeekdaysParse: minWeekdaysParse, - this.writelen = 0; - this.bufferedRequest = null; - this.lastBufferedRequest = null; // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, - this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [a viz] MMMM YYYY', + LLL: 'D [a viz] MMMM YYYY HH:mm', + LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hiziv da] LT', + nextDay: '[Warcʼhoazh da] LT', + nextWeek: 'dddd [da] LT', + lastDay: '[Decʼh da] LT', + lastWeek: 'dddd [paset da] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'a-benn %s', + past: '%s ʼzo', + s: 'un nebeud segondennoù', + ss: '%d eilenn', + m: 'ur vunutenn', + mm: relativeTimeWithMutation, + h: 'un eur', + hh: '%d eur', + d: 'un devezh', + dd: relativeTimeWithMutation, + M: 'ur miz', + MM: relativeTimeWithMutation, + y: 'ur bloaz', + yy: specialMutationForYears, + }, + dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, + ordinal: function (number) { + var output = number === 1 ? 'añ' : 'vet'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn + isPM: function (token) { + return token === 'g.m.'; + }, + meridiem: function (hour, minute, isLower) { + return hour < 12 ? 'a.m.' : 'g.m.'; + }, + }); - this.prefinished = false; // True if the error was already emitted and should not be thrown again + return br; - this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true. +}))); - this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end') - this.autoDestroy = !!options.autoDestroy; // count buffered requests +/***/ }), - this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always - // one allocated and free to use, and we maintain at most two +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/bs.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/bs.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_606980__) { - this.corkedRequestsFree = new CorkedRequest(this); -} +//! moment.js locale configuration +//! locale : Bosnian [bs] +//! author : Nedim Cholich : https://github.com/frontyard +//! based on (hr) translation by Bojan Marković -WritableState.prototype.getBuffer = function getBuffer() { - var current = this.bufferedRequest; - var out = []; +;(function (global, factory) { + true ? factory(__nested_webpack_require_606980__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - while (current) { - out.push(current); - current = current.next; - } + //! moment.js locale configuration - return out; -}; + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } -(function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function writableStateBufferGetter() { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') + var bs = moment.defineLocale('bs', { + months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[jučer u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + return '[prošlu] dddd [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, }); - } catch (_) {} -})(); // Test _writableState for inheritance to account for Duplex streams, -// whose prototype chain only points to Readable. - - -var realHasInstance; -if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { - realHasInstance = Function.prototype[Symbol.hasInstance]; - Object.defineProperty(Writable, Symbol.hasInstance, { - value: function value(object) { - if (realHasInstance.call(this, object)) return true; - if (this !== Writable) return false; - return object && object._writableState instanceof WritableState; - } - }); -} else { - realHasInstance = function realHasInstance(object) { - return object instanceof this; - }; -} - -function Writable(options) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js"); // Writable ctor is applied to Duplexes, too. - // `realHasInstance` is necessary because using plain `instanceof` - // would return false, as no `_writableState` property is attached. - // Trying to use the custom `instanceof` for Writable here will also break the - // Node.js LazyTransform implementation, which has a non-trivial getter for - // `_writableState` that would lead to infinite recursion. - // Checking for a Stream.Duplex instance is faster here instead of inside - // the WritableState constructor, at least with V8 6.5 + return bs; - var isDuplex = this instanceof Duplex; - if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); - this._writableState = new WritableState(options, this, isDuplex); // legacy. +}))); - this.writable = true; - if (options) { - if (typeof options.write === 'function') this._write = options.write; - if (typeof options.writev === 'function') this._writev = options.writev; - if (typeof options.destroy === 'function') this._destroy = options.destroy; - if (typeof options.final === 'function') this._final = options.final; - } +/***/ }), - Stream.call(this); -} // Otherwise people can pipe Writable streams, which is just wrong. +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ca.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ca.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_612619__) { +//! moment.js locale configuration +//! locale : Catalan [ca] +//! author : Juan G. Hurtado : https://github.com/juanghurtado -Writable.prototype.pipe = function () { - errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); -}; +;(function (global, factory) { + true ? factory(__nested_webpack_require_612619__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -function writeAfterEnd(stream, cb) { - var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb + //! moment.js locale configuration - errorOrDestroy(stream, er); - process.nextTick(cb, er); -} // Checks that a user-supplied chunk is valid, especially for the particular -// mode the stream is in. Currently this means that `null` is never accepted -// and undefined/non-string values are only allowed in object mode. + var ca = moment.defineLocale('ca', { + months: { + standalone: + 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( + '_' + ), + format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a les] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: function () { + return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextDay: function () { + return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastDay: function () { + return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [passat a ' + + (this.hours() !== 1 ? 'les' : 'la') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: "d'aquí %s", + past: 'fa %s', + s: 'uns segons', + ss: '%d segons', + m: 'un minut', + mm: '%d minuts', + h: 'una hora', + hh: '%d hores', + d: 'un dia', + dd: '%d dies', + M: 'un mes', + MM: '%d mesos', + y: 'un any', + yy: '%d anys', + }, + dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, + ordinal: function (number, period) { + var output = + number === 1 + ? 'r' + : number === 2 + ? 'n' + : number === 3 + ? 'r' + : number === 4 + ? 't' + : 'è'; + if (period === 'w' || period === 'W') { + output = 'a'; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + return ca; -function validChunk(stream, state, chunk, cb) { - var er; +}))); - if (chunk === null) { - er = new ERR_STREAM_NULL_VALUES(); - } else if (typeof chunk !== 'string' && !state.objectMode) { - er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); - } - if (er) { - errorOrDestroy(stream, er); - process.nextTick(cb, er); - return false; - } +/***/ }), - return true; -} +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/cs.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/cs.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_616623__) { -Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; +//! moment.js locale configuration +//! locale : Czech [cs] +//! author : petrbela : https://github.com/petrbela - var isBuf = !state.objectMode && _isUint8Array(chunk); +;(function (global, factory) { + true ? factory(__nested_webpack_require_616623__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (isBuf && !Buffer.isBuffer(chunk)) { - chunk = _uint8ArrayToBuffer(chunk); - } + //! moment.js locale configuration - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } + var months = { + format: 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split( + '_' + ), + standalone: + 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split( + '_' + ), + }, + monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'), + monthsParse = [ + /^led/i, + /^úno/i, + /^bře/i, + /^dub/i, + /^kvě/i, + /^(čvn|červen$|června)/i, + /^(čvc|červenec|července)/i, + /^srp/i, + /^zář/i, + /^říj/i, + /^lis/i, + /^pro/i, + ], + // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. + // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. + monthsRegex = + /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i; - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - if (typeof cb !== 'function') cb = nop; - if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); - } - return ret; -}; + function plural(n) { + return n > 1 && n < 5 && ~~(n / 10) !== 1; + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'sekundy' : 'sekund'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'minuty' : 'minut'); + } else { + return result + 'minutami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hodin'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'den' : 'dnem'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dny' : 'dní'); + } else { + return result + 'dny'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'měsíc' : 'měsícem'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'měsíce' : 'měsíců'); + } else { + return result + 'měsíci'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokem'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'let'); + } else { + return result + 'lety'; + } + } + } -Writable.prototype.cork = function () { - this._writableState.corked++; -}; + var cs = moment.defineLocale('cs', { + months: months, + monthsShort: monthsShort, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. + // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. + monthsStrictRegex: + /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i, + monthsShortStrictRegex: + /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'), + weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'), + weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + l: 'D. M. YYYY', + }, + calendar: { + sameDay: '[dnes v] LT', + nextDay: '[zítra v] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v neděli v] LT'; + case 1: + case 2: + return '[v] dddd [v] LT'; + case 3: + return '[ve středu v] LT'; + case 4: + return '[ve čtvrtek v] LT'; + case 5: + return '[v pátek v] LT'; + case 6: + return '[v sobotu v] LT'; + } + }, + lastDay: '[včera v] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulou neděli v] LT'; + case 1: + case 2: + return '[minulé] dddd [v] LT'; + case 3: + return '[minulou středu v] LT'; + case 4: + case 5: + return '[minulý] dddd [v] LT'; + case 6: + return '[minulou sobotu v] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'před %s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); -Writable.prototype.uncork = function () { - var state = this._writableState; + return cs; - if (state.corked) { - state.corked--; - if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); - } -}; +}))); -Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding); - this._writableState.defaultEncoding = encoding; - return this; -}; -Object.defineProperty(Writable.prototype, 'writableBuffer', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState && this._writableState.getBuffer(); - } -}); +/***/ }), -function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/cv.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/cv.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_624493__) { - return chunk; -} +//! moment.js locale configuration +//! locale : Chuvash [cv] +//! author : Anatoly Mironov : https://github.com/mirontoli -Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.highWaterMark; - } -}); // if we're already writing something, then just put this -// in the queue, and wait our turn. Otherwise, call _write -// If we return false, then we need a drain event, so set that flag. +;(function (global, factory) { + true ? factory(__nested_webpack_require_624493__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { - if (!isBuf) { - var newChunk = decodeChunk(state, chunk, encoding); + //! moment.js locale configuration - if (chunk !== newChunk) { - isBuf = true; - encoding = 'buffer'; - chunk = newChunk; - } - } + var cv = moment.defineLocale('cv', { + months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split( + '_' + ), + monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), + weekdays: + 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split( + '_' + ), + weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), + weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', + LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + }, + calendar: { + sameDay: '[Паян] LT [сехетре]', + nextDay: '[Ыран] LT [сехетре]', + lastDay: '[Ӗнер] LT [сехетре]', + nextWeek: '[Ҫитес] dddd LT [сехетре]', + lastWeek: '[Иртнӗ] dddd LT [сехетре]', + sameElse: 'L', + }, + relativeTime: { + future: function (output) { + var affix = /сехет$/i.exec(output) + ? 'рен' + : /ҫул$/i.exec(output) + ? 'тан' + : 'ран'; + return output + affix; + }, + past: '%s каялла', + s: 'пӗр-ик ҫеккунт', + ss: '%d ҫеккунт', + m: 'пӗр минут', + mm: '%d минут', + h: 'пӗр сехет', + hh: '%d сехет', + d: 'пӗр кун', + dd: '%d кун', + M: 'пӗр уйӑх', + MM: '%d уйӑх', + y: 'пӗр ҫул', + yy: '%d ҫул', + }, + dayOfMonthOrdinalParse: /\d{1,2}-мӗш/, + ordinal: '%d-мӗш', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); - var len = state.objectMode ? 1 : chunk.length; - state.length += len; - var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false. + return cv; - if (!ret) state.needDrain = true; +}))); - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = { - chunk: chunk, - encoding: encoding, - isBuf: isBuf, - callback: cb, - next: null - }; - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; - } +/***/ }), - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/cy.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/cy.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_627282__) { - return ret; -} +//! moment.js locale configuration +//! locale : Welsh [cy] +//! author : Robert Allen : https://github.com/robgallen +//! author : https://github.com/ryangreaves -function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; -} +;(function (global, factory) { + true ? factory(__nested_webpack_require_627282__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; + //! moment.js locale configuration - if (sync) { - // defer the callback if we are being called synchronously - // to avoid piling up things on the stack - process.nextTick(cb, er); // this can emit finish, and it will always happen - // after error + var cy = moment.defineLocale('cy', { + months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( + '_' + ), + monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( + '_' + ), + weekdays: + 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( + '_' + ), + weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), + weekdaysParseExact: true, + // time formats are the same as en-gb + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Heddiw am] LT', + nextDay: '[Yfory am] LT', + nextWeek: 'dddd [am] LT', + lastDay: '[Ddoe am] LT', + lastWeek: 'dddd [diwethaf am] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'mewn %s', + past: '%s yn ôl', + s: 'ychydig eiliadau', + ss: '%d eiliad', + m: 'munud', + mm: '%d munud', + h: 'awr', + hh: '%d awr', + d: 'diwrnod', + dd: '%d diwrnod', + M: 'mis', + MM: '%d mis', + y: 'blwyddyn', + yy: '%d flynedd', + }, + dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, + // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh + ordinal: function (number) { + var b = number, + output = '', + lookup = [ + '', + 'af', + 'il', + 'ydd', + 'ydd', + 'ed', + 'ed', + 'ed', + 'fed', + 'fed', + 'fed', // 1af to 10fed + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'fed', // 11eg to 20fed + ]; + if (b > 20) { + if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { + output = 'fed'; // not 30ain, 70ain or 90ain + } else { + output = 'ain'; + } + } else if (b > 0) { + output = lookup[b]; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - process.nextTick(finishMaybe, stream, state); - stream._writableState.errorEmitted = true; - errorOrDestroy(stream, er); - } else { - // the caller expect this to happen before if - // it is async - cb(er); - stream._writableState.errorEmitted = true; - errorOrDestroy(stream, er); // this can emit finish, but finish must - // always follow error + return cy; - finishMaybe(stream, state); - } -} +}))); -function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; -} -function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK(); - onwriteStateUpdate(state); - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state) || stream.destroyed; +/***/ }), - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/da.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/da.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_631083__) { - if (sync) { - process.nextTick(afterWrite, stream, state, finished, cb); - } else { - afterWrite(stream, state, finished, cb); - } - } -} +//! moment.js locale configuration +//! locale : Danish [da] +//! author : Ulrik Nielsen : https://github.com/mrbase -function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); -} // Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. +;(function (global, factory) { + true ? factory(__nested_webpack_require_631083__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + //! moment.js locale configuration -function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } -} // if there's something in the buffer waiting, then process it + var da = moment.defineLocale('da', { + months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'), + weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'på dddd [kl.] LT', + lastDay: '[i går kl.] LT', + lastWeek: '[i] dddd[s kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'få sekunder', + ss: '%d sekunder', + m: 'et minut', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dage', + M: 'en måned', + MM: '%d måneder', + y: 'et år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + return da; -function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; +}))); - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; - var count = 0; - var allBuffers = true; - while (entry) { - buffer[count] = entry; - if (!entry.isBuf) allBuffers = false; - entry = entry.next; - count += 1; - } +/***/ }), - buffer.allBuffers = allBuffers; - doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/de-at.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/de-at.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_633503__) { - state.pendingcb++; - state.lastBufferedRequest = null; +//! moment.js locale configuration +//! locale : German (Austria) [de-at] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elensúle: https://github.com/Oire +//! author : Martin Groller : https://github.com/MadMG +//! author : Mikolaj Dadela : https://github.com/mik01aj - if (holder.next) { - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - state.corkedRequestsFree = new CorkedRequest(state); - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_633503__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - state.bufferedRequestCount = 0; - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. + //! moment.js locale configuration - if (state.writing) { - break; - } + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; } - if (entry === null) state.lastBufferedRequest = null; - } - - state.bufferedRequest = entry; - state.bufferProcessing = false; -} - -Writable.prototype._write = function (chunk, encoding, cb) { - cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); -}; - -Writable.prototype._writev = null; - -Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; - - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks + var deAt = moment.defineLocale('de-at', { + months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - if (state.corked) { - state.corked = 1; - this.uncork(); - } // ignore unnecessary end() calls. + return deAt; +}))); - if (!state.ending) endWritable(this, state, cb); - return this; -}; -Object.defineProperty(Writable.prototype, 'writableLength', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.length; - } -}); +/***/ }), -function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; -} +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/de-ch.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/de-ch.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_637029__) { -function callFinal(stream, state) { - stream._final(function (err) { - state.pendingcb--; +//! moment.js locale configuration +//! locale : German (Switzerland) [de-ch] +//! author : sschueller : https://github.com/sschueller - if (err) { - errorOrDestroy(stream, err); - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_637029__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - state.prefinished = true; - stream.emit('prefinish'); - finishMaybe(stream, state); - }); -} + //! moment.js locale configuration -function prefinish(stream, state) { - if (!state.prefinished && !state.finalCalled) { - if (typeof stream._final === 'function' && !state.destroyed) { - state.pendingcb++; - state.finalCalled = true; - process.nextTick(callFinal, stream, state); - } else { - state.prefinished = true; - stream.emit('prefinish'); + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; } - } -} -function finishMaybe(stream, state) { - var need = needFinish(state); + var deCh = moment.defineLocale('de-ch', { + months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - if (need) { - prefinish(stream, state); + return deCh; - if (state.pendingcb === 0) { - state.finished = true; - stream.emit('finish'); +}))); - if (state.autoDestroy) { - // In case of duplex streams we need a way to detect - // if the readable side is ready for autoDestroy as well - var rState = stream._readableState; - if (!rState || rState.autoDestroy && rState.endEmitted) { - stream.destroy(); - } - } - } - } +/***/ }), - return need; -} +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/de.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/de.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_640381__) { -function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); +//! moment.js locale configuration +//! locale : German [de] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elensúle: https://github.com/Oire +//! author : Mikolaj Dadela : https://github.com/mik01aj - if (cb) { - if (state.finished) process.nextTick(cb);else stream.once('finish', cb); - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_640381__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - state.ended = true; - stream.writable = false; -} + //! moment.js locale configuration -function onCorkedFinish(corkReq, state, err) { - var entry = corkReq.entry; - corkReq.entry = null; + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } // reuse the free corkReq. + var de = moment.defineLocale('de', { + months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + return de; - state.corkedRequestsFree.next = corkReq; -} +}))); -Object.defineProperty(Writable.prototype, 'destroyed', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - if (this._writableState === undefined) { - return false; - } - return this._writableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._writableState) { - return; - } // backward compatibility, the user is explicitly - // managing destroyed +/***/ }), +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/dv.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/dv.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_643820__) { - this._writableState.destroyed = value; - } -}); -Writable.prototype.destroy = destroyImpl.destroy; -Writable.prototype._undestroy = destroyImpl.undestroy; +//! moment.js locale configuration +//! locale : Maldivian [dv] +//! author : Jawish Hameed : https://github.com/jawish -Writable.prototype._destroy = function (err, cb) { - cb(err); -}; +;(function (global, factory) { + true ? factory(__nested_webpack_require_643820__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -/***/ }), + //! moment.js locale configuration -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/async_iterator.js": -/*!******************************************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/async_iterator.js ***! - \******************************************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + var months = [ + 'ޖެނުއަރީ', + 'ފެބްރުއަރީ', + 'މާރިޗު', + 'އޭޕްރީލު', + 'މޭ', + 'ޖޫން', + 'ޖުލައި', + 'އޯގަސްޓު', + 'ސެޕްޓެމްބަރު', + 'އޮކްޓޯބަރު', + 'ނޮވެމްބަރު', + 'ޑިސެމްބަރު', + ], + weekdays = [ + 'އާދިއްތަ', + 'ހޯމަ', + 'އަންގާރަ', + 'ބުދަ', + 'ބުރާސްފަތި', + 'ހުކުރު', + 'ހޮނިހިރު', + ]; -"use strict"; + var dv = moment.defineLocale('dv', { + months: months, + monthsShort: months, + weekdays: weekdays, + weekdaysShort: weekdays, + weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/M/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /މކ|މފ/, + isPM: function (input) { + return 'މފ' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'މކ'; + } else { + return 'މފ'; + } + }, + calendar: { + sameDay: '[މިއަދު] LT', + nextDay: '[މާދަމާ] LT', + nextWeek: 'dddd LT', + lastDay: '[އިއްޔެ] LT', + lastWeek: '[ފާއިތުވި] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ތެރޭގައި %s', + past: 'ކުރިން %s', + s: 'ސިކުންތުކޮޅެއް', + ss: 'd% ސިކުންތު', + m: 'މިނިޓެއް', + mm: 'މިނިޓު %d', + h: 'ގަޑިއިރެއް', + hh: 'ގަޑިއިރު %d', + d: 'ދުވަހެއް', + dd: 'ދުވަސް %d', + M: 'މަހެއް', + MM: 'މަސް %d', + y: 'އަހަރެއް', + yy: 'އަހަރު %d', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 7, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + return dv; -var _Object$setPrototypeO; +}))); -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -var finished = __webpack_require__(/*! ./end-of-stream */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); +/***/ }), -var kLastResolve = Symbol('lastResolve'); -var kLastReject = Symbol('lastReject'); -var kError = Symbol('error'); -var kEnded = Symbol('ended'); -var kLastPromise = Symbol('lastPromise'); -var kHandlePromise = Symbol('handlePromise'); -var kStream = Symbol('stream'); +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/el.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/el.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_646906__) { -function createIterResult(value, done) { - return { - value: value, - done: done - }; -} +//! moment.js locale configuration +//! locale : Greek [el] +//! author : Aggelos Karalias : https://github.com/mehiel -function readAndResolve(iter) { - var resolve = iter[kLastResolve]; +;(function (global, factory) { + true ? factory(__nested_webpack_require_646906__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (resolve !== null) { - var data = iter[kStream].read(); // we defer if data is null - // we can be expecting either 'end' or - // 'error' + //! moment.js locale configuration - if (data !== null) { - iter[kLastPromise] = null; - iter[kLastResolve] = null; - iter[kLastReject] = null; - resolve(createIterResult(data, false)); + function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); } - } -} -function onReadable(iter) { - // we wait for the next tick, because it might - // emit an error with process.nextTick - process.nextTick(readAndResolve, iter); -} + var el = moment.defineLocale('el', { + monthsNominativeEl: + 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split( + '_' + ), + monthsGenitiveEl: + 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split( + '_' + ), + months: function (momentToFormat, format) { + if (!momentToFormat) { + return this._monthsNominativeEl; + } else if ( + typeof format === 'string' && + /D/.test(format.substring(0, format.indexOf('MMMM'))) + ) { + // if there is a day number before 'MMMM' + return this._monthsGenitiveEl[momentToFormat.month()]; + } else { + return this._monthsNominativeEl[momentToFormat.month()]; + } + }, + monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), + weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split( + '_' + ), + weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), + weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'μμ' : 'ΜΜ'; + } else { + return isLower ? 'πμ' : 'ΠΜ'; + } + }, + isPM: function (input) { + return (input + '').toLowerCase()[0] === 'μ'; + }, + meridiemParse: /[ΠΜ]\.?Μ?\.?/i, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendarEl: { + sameDay: '[Σήμερα {}] LT', + nextDay: '[Αύριο {}] LT', + nextWeek: 'dddd [{}] LT', + lastDay: '[Χθες {}] LT', + lastWeek: function () { + switch (this.day()) { + case 6: + return '[το προηγούμενο] dddd [{}] LT'; + default: + return '[την προηγούμενη] dddd [{}] LT'; + } + }, + sameElse: 'L', + }, + calendar: function (key, mom) { + var output = this._calendarEl[key], + hours = mom && mom.hours(); + if (isFunction(output)) { + output = output.apply(mom); + } + return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις'); + }, + relativeTime: { + future: 'σε %s', + past: '%s πριν', + s: 'λίγα δευτερόλεπτα', + ss: '%d δευτερόλεπτα', + m: 'ένα λεπτό', + mm: '%d λεπτά', + h: 'μία ώρα', + hh: '%d ώρες', + d: 'μία μέρα', + dd: '%d μέρες', + M: 'ένας μήνας', + MM: '%d μήνες', + y: 'ένας χρόνος', + yy: '%d χρόνια', + }, + dayOfMonthOrdinalParse: /\d{1,2}η/, + ordinal: '%dη', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4st is the first week of the year. + }, + }); -function wrapForNext(lastPromise, iter) { - return function (resolve, reject) { - lastPromise.then(function () { - if (iter[kEnded]) { - resolve(createIterResult(undefined, true)); - return; - } + return el; - iter[kHandlePromise](resolve, reject); - }, reject); - }; -} +}))); -var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}); -var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { - get stream() { - return this[kStream]; - }, - next: function next() { - var _this = this; +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/en-au.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/en-au.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_651306__) { + +//! moment.js locale configuration +//! locale : English (Australia) [en-au] +//! author : Jared Morse : https://github.com/jarcoal - // if we have detected an error in the meanwhile - // reject straight away - var error = this[kError]; +;(function (global, factory) { + true ? factory(__nested_webpack_require_651306__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (error !== null) { - return Promise.reject(error); - } + //! moment.js locale configuration - if (this[kEnded]) { - return Promise.resolve(createIterResult(undefined, true)); - } + var enAu = moment.defineLocale('en-au', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - if (this[kStream].destroyed) { - // We need to defer via nextTick because if .destroy(err) is - // called, the error will be emitted via nextTick, and - // we cannot guarantee that there is no error lingering around - // waiting to be emitted. - return new Promise(function (resolve, reject) { - process.nextTick(function () { - if (_this[kError]) { - reject(_this[kError]); - } else { - resolve(createIterResult(undefined, true)); - } - }); - }); - } // if we have multiple next() calls - // we will wait for the previous Promise to finish - // this logic is optimized to support for await loops, - // where next() is only called once at a time + return enAu; +}))); - var lastPromise = this[kLastPromise]; - var promise; - if (lastPromise) { - promise = new Promise(wrapForNext(lastPromise, this)); - } else { - // fast path needed to support multiple this.push() - // without triggering the next() queue - var data = this[kStream].read(); +/***/ }), - if (data !== null) { - return Promise.resolve(createIterResult(data, false)); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/en-ca.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/en-ca.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_654203__) { - promise = new Promise(this[kHandlePromise]); - } +//! moment.js locale configuration +//! locale : English (Canada) [en-ca] +//! author : Jonathan Abourbih : https://github.com/jonbca - this[kLastPromise] = promise; - return promise; - } -}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () { - return this; -}), _defineProperty(_Object$setPrototypeO, "return", function _return() { - var _this2 = this; +;(function (global, factory) { + true ? factory(__nested_webpack_require_654203__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - // destroy(err, cb) is a private API - // we can guarantee we have that here, because we control the - // Readable class this is attached to - return new Promise(function (resolve, reject) { - _this2[kStream].destroy(null, function (err) { - if (err) { - reject(err); - return; - } + //! moment.js locale configuration - resolve(createIterResult(undefined, true)); + var enCa = moment.defineLocale('en-ca', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'YYYY-MM-DD', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, }); - }); -}), _Object$setPrototypeO), AsyncIteratorPrototype); -var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { - var _Object$create; + return enCa; - var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { - value: stream, - writable: true - }), _defineProperty(_Object$create, kLastResolve, { - value: null, - writable: true - }), _defineProperty(_Object$create, kLastReject, { - value: null, - writable: true - }), _defineProperty(_Object$create, kError, { - value: null, - writable: true - }), _defineProperty(_Object$create, kEnded, { - value: stream._readableState.endEmitted, - writable: true - }), _defineProperty(_Object$create, kHandlePromise, { - value: function value(resolve, reject) { - var data = iterator[kStream].read(); +}))); - if (data) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - resolve(createIterResult(data, false)); - } else { - iterator[kLastResolve] = resolve; - iterator[kLastReject] = reject; - } - }, - writable: true - }), _Object$create)); - iterator[kLastPromise] = null; - finished(stream, function (err) { - if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { - var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise - // returned by next() and store the error - if (reject !== null) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - reject(err); - } +/***/ }), - iterator[kError] = err; - return; - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/en-gb.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/en-gb.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_656933__) { - var resolve = iterator[kLastResolve]; +//! moment.js locale configuration +//! locale : English (United Kingdom) [en-gb] +//! author : Chris Gedrim : https://github.com/chrisgedrim - if (resolve !== null) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - resolve(createIterResult(undefined, true)); - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_656933__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - iterator[kEnded] = true; - }); - stream.on('readable', onReadable.bind(null, iterator)); - return iterator; -}; + //! moment.js locale configuration -module.exports = createReadableStreamAsyncIterator; + var enGb = moment.defineLocale('en-gb', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); -/***/ }), + return enGb; -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/buffer_list.js": -/*!***************************************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/buffer_list.js ***! - \***************************************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +}))); -"use strict"; +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/en-ie.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/en-ie.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_659836__) { -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } +//! moment.js locale configuration +//! locale : English (Ireland) [en-ie] +//! author : Chris Cartlidge : https://github.com/chriscartlidge -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } +;(function (global, factory) { + true ? factory(__nested_webpack_require_659836__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + //! moment.js locale configuration -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + var enIe = moment.defineLocale('en-ie', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + return enIe; -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +}))); -var _require = __webpack_require__(/*! buffer */ "buffer"), - Buffer = _require.Buffer; -var _require2 = __webpack_require__(/*! util */ "util"), - inspect = _require2.inspect; +/***/ }), -var custom = inspect && inspect.custom || 'inspect'; +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/en-il.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/en-il.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_662737__) { -function copyBuffer(src, target, offset) { - Buffer.prototype.copy.call(src, target, offset); -} +//! moment.js locale configuration +//! locale : English (Israel) [en-il] +//! author : Chris Gedrim : https://github.com/chrisgedrim -module.exports = -/*#__PURE__*/ -function () { - function BufferList() { - _classCallCheck(this, BufferList); +;(function (global, factory) { + true ? factory(__nested_webpack_require_662737__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - this.head = null; - this.tail = null; - this.length = 0; - } + //! moment.js locale configuration - _createClass(BufferList, [{ - key: "push", - value: function push(v) { - var entry = { - data: v, - next: null - }; - if (this.length > 0) this.tail.next = entry;else this.head = entry; - this.tail = entry; - ++this.length; - } - }, { - key: "unshift", - value: function unshift(v) { - var entry = { - data: v, - next: this.head - }; - if (this.length === 0) this.tail = entry; - this.head = entry; - ++this.length; - } - }, { - key: "shift", - value: function shift() { - if (this.length === 0) return; - var ret = this.head.data; - if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; - --this.length; - return ret; - } - }, { - key: "clear", - value: function clear() { - this.head = this.tail = null; - this.length = 0; - } - }, { - key: "join", - value: function join(s) { - if (this.length === 0) return ''; - var p = this.head; - var ret = '' + p.data; + var enIl = moment.defineLocale('en-il', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); - while (p = p.next) { - ret += s + p.data; - } + return enIl; - return ret; - } - }, { - key: "concat", - value: function concat(n) { - if (this.length === 0) return Buffer.alloc(0); - var ret = Buffer.allocUnsafe(n >>> 0); - var p = this.head; - var i = 0; +}))); - while (p) { - copyBuffer(p.data, ret, i); - i += p.data.length; - p = p.next; - } - return ret; - } // Consumes a specified amount of bytes or characters from the buffered data. +/***/ }), - }, { - key: "consume", - value: function consume(n, hasStrings) { - var ret; +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/en-in.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/en-in.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_665460__) { - if (n < this.head.data.length) { - // `slice` is the same for buffers and strings. - ret = this.head.data.slice(0, n); - this.head.data = this.head.data.slice(n); - } else if (n === this.head.data.length) { - // First chunk is a perfect match. - ret = this.shift(); - } else { - // Result spans more than one buffer. - ret = hasStrings ? this._getString(n) : this._getBuffer(n); - } +//! moment.js locale configuration +//! locale : English (India) [en-in] +//! author : Jatin Agrawal : https://github.com/jatinag22 - return ret; - } - }, { - key: "first", - value: function first() { - return this.head.data; - } // Consumes a specified amount of characters from the buffered data. +;(function (global, factory) { + true ? factory(__nested_webpack_require_665460__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - }, { - key: "_getString", - value: function _getString(n) { - var p = this.head; - var c = 1; - var ret = p.data; - n -= ret.length; + //! moment.js locale configuration - while (p = p.next) { - var str = p.data; - var nb = n > str.length ? str.length : n; - if (nb === str.length) ret += str;else ret += str.slice(0, n); - n -= nb; + var enIn = moment.defineLocale('en-in', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 1st is the first week of the year. + }, + }); - if (n === 0) { - if (nb === str.length) { - ++c; - if (p.next) this.head = p.next;else this.head = this.tail = null; - } else { - this.head = p; - p.data = str.slice(nb); - } + return enIn; - break; - } +}))); - ++c; - } - this.length -= c; - return ret; - } // Consumes a specified amount of bytes from the buffered data. +/***/ }), - }, { - key: "_getBuffer", - value: function _getBuffer(n) { - var ret = Buffer.allocUnsafe(n); - var p = this.head; - var c = 1; - p.data.copy(ret); - n -= p.data.length; +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/en-nz.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/en-nz.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_668357__) { - while (p = p.next) { - var buf = p.data; - var nb = n > buf.length ? buf.length : n; - buf.copy(ret, ret.length - n, 0, nb); - n -= nb; +//! moment.js locale configuration +//! locale : English (New Zealand) [en-nz] +//! author : Luke McGregor : https://github.com/lukemcgregor - if (n === 0) { - if (nb === buf.length) { - ++c; - if (p.next) this.head = p.next;else this.head = this.tail = null; - } else { - this.head = p; - p.data = buf.slice(nb); - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_668357__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - break; - } + //! moment.js locale configuration - ++c; - } + var enNz = moment.defineLocale('en-nz', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - this.length -= c; - return ret; - } // Make sure the linked list only shows the minimal necessary information. + return enNz; - }, { - key: custom, - value: function value(_, options) { - return inspect(this, _objectSpread({}, options, { - // Only inspect one level. - depth: 0, - // It should not recurse. - customInspect: false - })); - } - }]); +}))); - return BufferList; -}(); /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/destroy.js": -/*!***********************************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/destroy.js ***! - \***********************************************************************************************************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/en-sg.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/en-sg.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_671263__) { -"use strict"; - // undocumented cb() API, needed for core, not for public API +//! moment.js locale configuration +//! locale : English (Singapore) [en-sg] +//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension -function destroy(err, cb) { - var _this = this; +;(function (global, factory) { + true ? factory(__nested_webpack_require_671263__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - var readableDestroyed = this._readableState && this._readableState.destroyed; - var writableDestroyed = this._writableState && this._writableState.destroyed; + //! moment.js locale configuration - if (readableDestroyed || writableDestroyed) { - if (cb) { - cb(err); - } else if (err) { - if (!this._writableState) { - process.nextTick(emitErrorNT, this, err); - } else if (!this._writableState.errorEmitted) { - this._writableState.errorEmitted = true; - process.nextTick(emitErrorNT, this, err); - } - } + var enSg = moment.defineLocale('en-sg', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - return this; - } // we set destroyed to true before firing error callbacks in order - // to make it re-entrance safe in case destroy() is called within callbacks + return enSg; +}))); - if (this._readableState) { - this._readableState.destroyed = true; - } // if this is a duplex stream mark the writable part as destroyed as well +/***/ }), - if (this._writableState) { - this._writableState.destroyed = true; - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/eo.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/eo.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_674166__) { - this._destroy(err || null, function (err) { - if (!cb && err) { - if (!_this._writableState) { - process.nextTick(emitErrorAndCloseNT, _this, err); - } else if (!_this._writableState.errorEmitted) { - _this._writableState.errorEmitted = true; - process.nextTick(emitErrorAndCloseNT, _this, err); - } else { - process.nextTick(emitCloseNT, _this); - } - } else if (cb) { - process.nextTick(emitCloseNT, _this); - cb(err); - } else { - process.nextTick(emitCloseNT, _this); - } - }); +//! moment.js locale configuration +//! locale : Esperanto [eo] +//! author : Colin Dean : https://github.com/colindean +//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia +//! comment : miestasmia corrected the translation by colindean +//! comment : Vivakvo corrected the translation by colindean and miestasmia - return this; -} +;(function (global, factory) { + true ? factory(__nested_webpack_require_674166__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -function emitErrorAndCloseNT(self, err) { - emitErrorNT(self, err); - emitCloseNT(self); -} + //! moment.js locale configuration -function emitCloseNT(self) { - if (self._writableState && !self._writableState.emitClose) return; - if (self._readableState && !self._readableState.emitClose) return; - self.emit('close'); -} + var eo = moment.defineLocale('eo', { + months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split( + '_' + ), + monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'), + weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'), + weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'), + weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: '[la] D[-an de] MMMM, YYYY', + LLL: '[la] D[-an de] MMMM, YYYY HH:mm', + LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', + llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', + }, + meridiemParse: /[ap]\.t\.m/i, + isPM: function (input) { + return input.charAt(0).toLowerCase() === 'p'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'p.t.m.' : 'P.T.M.'; + } else { + return isLower ? 'a.t.m.' : 'A.T.M.'; + } + }, + calendar: { + sameDay: '[Hodiaŭ je] LT', + nextDay: '[Morgaŭ je] LT', + nextWeek: 'dddd[n je] LT', + lastDay: '[Hieraŭ je] LT', + lastWeek: '[pasintan] dddd[n je] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'post %s', + past: 'antaŭ %s', + s: 'kelkaj sekundoj', + ss: '%d sekundoj', + m: 'unu minuto', + mm: '%d minutoj', + h: 'unu horo', + hh: '%d horoj', + d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo + dd: '%d tagoj', + M: 'unu monato', + MM: '%d monatoj', + y: 'unu jaro', + yy: '%d jaroj', + }, + dayOfMonthOrdinalParse: /\d{1,2}a/, + ordinal: '%da', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); -function undestroy() { - if (this._readableState) { - this._readableState.destroyed = false; - this._readableState.reading = false; - this._readableState.ended = false; - this._readableState.endEmitted = false; - } + return eo; - if (this._writableState) { - this._writableState.destroyed = false; - this._writableState.ended = false; - this._writableState.ending = false; - this._writableState.finalCalled = false; - this._writableState.prefinished = false; - this._writableState.finished = false; - this._writableState.errorEmitted = false; - } -} +}))); -function emitErrorNT(self, err) { - self.emit('error', err); -} -function errorOrDestroy(stream, err) { - // We have tests that rely on errors being emitted - // in the same tick, so changing this is semver major. - // For now when you opt-in to autoDestroy we allow - // the error to be emitted nextTick. In a future - // semver major update we should change the default to this. - var rState = stream._readableState; - var wState = stream._writableState; - if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err); -} +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/es-do.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/es-do.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_677343__) { + +//! moment.js locale configuration +//! locale : Spanish (Dominican Republic) [es-do] + +;(function (global, factory) { + true ? factory(__nested_webpack_require_677343__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -module.exports = { - destroy: destroy, - undestroy: undestroy, - errorOrDestroy: errorOrDestroy -}; + //! moment.js locale configuration -/***/ }), + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/end-of-stream.js": -/*!*****************************************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***! - \*****************************************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + var esDo = moment.defineLocale('es-do', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); -"use strict"; -// Ported from https://github.com/mafintosh/end-of-stream with -// permission from the author, Mathias Buus (@mafintosh). + return esDo; +}))); -var ERR_STREAM_PREMATURE_CLOSE = __webpack_require__(/*! ../../../errors */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/errors.js").codes.ERR_STREAM_PREMATURE_CLOSE; -function once(callback) { - var called = false; - return function () { - if (called) return; - called = true; +/***/ }), - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/es-mx.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/es-mx.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_681800__) { - callback.apply(this, args); - }; -} +//! moment.js locale configuration +//! locale : Spanish (Mexico) [es-mx] +//! author : JC Franco : https://github.com/jcfranco -function noop() {} +;(function (global, factory) { + true ? factory(__nested_webpack_require_681800__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -function isRequest(stream) { - return stream.setHeader && typeof stream.abort === 'function'; -} + //! moment.js locale configuration -function eos(stream, opts, callback) { - if (typeof opts === 'function') return eos(stream, null, opts); - if (!opts) opts = {}; - callback = once(callback || noop); - var readable = opts.readable || opts.readable !== false && stream.readable; - var writable = opts.writable || opts.writable !== false && stream.writable; + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - var onlegacyfinish = function onlegacyfinish() { - if (!stream.writable) onfinish(); - }; + var esMx = moment.defineLocale('es-mx', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + invalidDate: 'Fecha inválida', + }); - var writableEnded = stream._writableState && stream._writableState.finished; + return esMx; - var onfinish = function onfinish() { - writable = false; - writableEnded = true; - if (!readable) callback.call(stream); - }; +}))); - var readableEnded = stream._readableState && stream._readableState.endEmitted; - var onend = function onend() { - readable = false; - readableEnded = true; - if (!writable) callback.call(stream); - }; +/***/ }), - var onerror = function onerror(err) { - callback.call(stream, err); - }; +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/es-us.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/es-us.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_686329__) { - var onclose = function onclose() { - var err; +//! moment.js locale configuration +//! locale : Spanish (United States) [es-us] +//! author : bustta : https://github.com/bustta +//! author : chrisrodz : https://github.com/chrisrodz - if (readable && !readableEnded) { - if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); - return callback.call(stream, err); - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_686329__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (writable && !writableEnded) { - if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); - return callback.call(stream, err); - } - }; + //! moment.js locale configuration - var onrequest = function onrequest() { - stream.req.on('finish', onfinish); - }; + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - if (isRequest(stream)) { - stream.on('complete', onfinish); - stream.on('abort', onclose); - if (stream.req) onrequest();else stream.on('request', onrequest); - } else if (writable && !stream._writableState) { - // legacy streams - stream.on('end', onlegacyfinish); - stream.on('close', onlegacyfinish); - } + var esUs = moment.defineLocale('es-us', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'MM/DD/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); - stream.on('end', onend); - stream.on('finish', onfinish); - if (opts.error !== false) stream.on('error', onerror); - stream.on('close', onclose); - return function () { - stream.removeListener('complete', onfinish); - stream.removeListener('abort', onclose); - stream.removeListener('request', onrequest); - if (stream.req) stream.req.removeListener('finish', onfinish); - stream.removeListener('end', onlegacyfinish); - stream.removeListener('close', onlegacyfinish); - stream.removeListener('finish', onfinish); - stream.removeListener('end', onend); - stream.removeListener('error', onerror); - stream.removeListener('close', onclose); - }; -} + return esUs; + +}))); -module.exports = eos; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/from.js": -/*!********************************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/from.js ***! - \********************************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/es.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/es.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_690871__) { -"use strict"; +//! moment.js locale configuration +//! locale : Spanish [es] +//! author : Julio Napurí : https://github.com/julionc +;(function (global, factory) { + true ? factory(__nested_webpack_require_690871__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + //! moment.js locale configuration -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + var es = moment.defineLocale('es', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + invalidDate: 'Fecha inválida', + }); -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + return es; -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } +}))); -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -var ERR_INVALID_ARG_TYPE = __webpack_require__(/*! ../../../errors */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/errors.js").codes.ERR_INVALID_ARG_TYPE; +/***/ }), -function from(Readable, iterable, opts) { - var iterator; +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/et.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/et.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_695371__) { - if (iterable && typeof iterable.next === 'function') { - iterator = iterable; - } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable); +//! moment.js locale configuration +//! locale : Estonian [et] +//! author : Henry Kehlmann : https://github.com/madhenry +//! improvements : Illimar Tambek : https://github.com/ragulka - var readable = new Readable(_objectSpread({ - objectMode: true - }, opts)); // Reading boolean to protect against _read - // being called before last iteration completion. +;(function (global, factory) { + true ? factory(__nested_webpack_require_695371__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - var reading = false; + //! moment.js locale configuration - readable._read = function () { - if (!reading) { - reading = true; - next(); + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'], + ss: [number + 'sekundi', number + 'sekundit'], + m: ['ühe minuti', 'üks minut'], + mm: [number + ' minuti', number + ' minutit'], + h: ['ühe tunni', 'tund aega', 'üks tund'], + hh: [number + ' tunni', number + ' tundi'], + d: ['ühe päeva', 'üks päev'], + M: ['kuu aja', 'kuu aega', 'üks kuu'], + MM: [number + ' kuu', number + ' kuud'], + y: ['ühe aasta', 'aasta', 'üks aasta'], + yy: [number + ' aasta', number + ' aastat'], + }; + if (withoutSuffix) { + return format[key][2] ? format[key][2] : format[key][1]; + } + return isFuture ? format[key][0] : format[key][1]; } - }; - - function next() { - return _next2.apply(this, arguments); - } - - function _next2() { - _next2 = _asyncToGenerator(function* () { - try { - var _ref = yield iterator.next(), - value = _ref.value, - done = _ref.done; - if (done) { - readable.push(null); - } else if (readable.push((yield value))) { - next(); - } else { - reading = false; - } - } catch (err) { - readable.destroy(err); - } + var et = moment.defineLocale('et', { + months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( + '_' + ), + monthsShort: + 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), + weekdays: + 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split( + '_' + ), + weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), + weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Täna,] LT', + nextDay: '[Homme,] LT', + nextWeek: '[Järgmine] dddd LT', + lastDay: '[Eile,] LT', + lastWeek: '[Eelmine] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s pärast', + past: '%s tagasi', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: '%d päeva', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, }); - return _next2.apply(this, arguments); - } - - return readable; -} - -module.exports = from; -/***/ }), + return et; -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/state.js": -/*!*********************************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/state.js ***! - \*********************************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +}))); -"use strict"; +/***/ }), -var ERR_INVALID_OPT_VALUE = __webpack_require__(/*! ../../../errors */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/errors.js").codes.ERR_INVALID_OPT_VALUE; +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/eu.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/eu.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_698860__) { -function highWaterMarkFrom(options, isDuplex, duplexKey) { - return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; -} +//! moment.js locale configuration +//! locale : Basque [eu] +//! author : Eneko Illarramendi : https://github.com/eillarra -function getHighWaterMark(state, options, duplexKey, isDuplex) { - var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); +;(function (global, factory) { + true ? factory(__nested_webpack_require_698860__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (hwm != null) { - if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { - var name = isDuplex ? duplexKey : 'highWaterMark'; - throw new ERR_INVALID_OPT_VALUE(name, hwm); - } + //! moment.js locale configuration - return Math.floor(hwm); - } // Default value + var eu = moment.defineLocale('eu', { + months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( + '_' + ), + monthsShort: + 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( + '_' + ), + weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), + weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY[ko] MMMM[ren] D[a]', + LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', + LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', + l: 'YYYY-M-D', + ll: 'YYYY[ko] MMM D[a]', + lll: 'YYYY[ko] MMM D[a] HH:mm', + llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', + }, + calendar: { + sameDay: '[gaur] LT[etan]', + nextDay: '[bihar] LT[etan]', + nextWeek: 'dddd LT[etan]', + lastDay: '[atzo] LT[etan]', + lastWeek: '[aurreko] dddd LT[etan]', + sameElse: 'L', + }, + relativeTime: { + future: '%s barru', + past: 'duela %s', + s: 'segundo batzuk', + ss: '%d segundo', + m: 'minutu bat', + mm: '%d minutu', + h: 'ordu bat', + hh: '%d ordu', + d: 'egun bat', + dd: '%d egun', + M: 'hilabete bat', + MM: '%d hilabete', + y: 'urte bat', + yy: '%d urte', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + return eu; - return state.objectMode ? 16 : 16 * 1024; -} +}))); -module.exports = { - getHighWaterMark: getHighWaterMark -}; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/stream.js": -/*!**********************************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/stream.js ***! - \**********************************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -module.exports = __webpack_require__(/*! stream */ "stream"); +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/fa.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/fa.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_701664__) { +//! moment.js locale configuration +//! locale : Persian [fa] +//! author : Ebrahim Byagowi : https://github.com/ebraminio -/***/ }), +;(function (global, factory) { + true ? factory(__nested_webpack_require_701664__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston.js": -/*!***************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston.js ***! - \***************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + //! moment.js locale configuration -"use strict"; -/** - * winston.js: Top-level include defining Winston. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ + var symbolMap = { + 1: '۱', + 2: '۲', + 3: '۳', + 4: '۴', + 5: '۵', + 6: '۶', + 7: '۷', + 8: '۸', + 9: '۹', + 0: '۰', + }, + numberMap = { + '۱': '1', + '۲': '2', + '۳': '3', + '۴': '4', + '۵': '5', + '۶': '6', + '۷': '7', + '۸': '8', + '۹': '9', + '۰': '0', + }; + var fa = moment.defineLocale('fa', { + months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( + '_' + ), + monthsShort: + 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( + '_' + ), + weekdays: + 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( + '_' + ), + weekdaysShort: + 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( + '_' + ), + weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /قبل از ظهر|بعد از ظهر/, + isPM: function (input) { + return /بعد از ظهر/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'قبل از ظهر'; + } else { + return 'بعد از ظهر'; + } + }, + calendar: { + sameDay: '[امروز ساعت] LT', + nextDay: '[فردا ساعت] LT', + nextWeek: 'dddd [ساعت] LT', + lastDay: '[دیروز ساعت] LT', + lastWeek: 'dddd [پیش] [ساعت] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'در %s', + past: '%s پیش', + s: 'چند ثانیه', + ss: '%d ثانیه', + m: 'یک دقیقه', + mm: '%d دقیقه', + h: 'یک ساعت', + hh: '%d ساعت', + d: 'یک روز', + dd: '%d روز', + M: 'یک ماه', + MM: '%d ماه', + y: 'یک سال', + yy: '%d سال', + }, + preparse: function (string) { + return string + .replace(/[۰-۹]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + dayOfMonthOrdinalParse: /\d{1,2}م/, + ordinal: '%dم', + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + return fa; -const logform = __webpack_require__(/*! logform */ "./node_modules/cht-core-4-0/api/node_modules/logform/index.js"); -const { warn } = __webpack_require__(/*! ./winston/common */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/common.js"); +}))); -/** - * Expose version. Use `require` method for `webpack` support. - * @type {string} - */ -exports.version = __webpack_require__(/*! ../package.json */ "./node_modules/cht-core-4-0/api/node_modules/winston/package.json").version; -/** - * Include transports defined by default by winston - * @type {Array} - */ -exports.transports = __webpack_require__(/*! ./winston/transports */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/index.js"); -/** - * Expose utility methods - * @type {Object} - */ -exports.config = __webpack_require__(/*! ./winston/config */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/config/index.js"); -/** - * Hoist format-related functionality from logform. - * @type {Object} - */ -exports.addColors = logform.levels; -/** - * Hoist format-related functionality from logform. - * @type {Object} - */ -exports.format = logform.format; -/** - * Expose core Logging-related prototypes. - * @type {function} - */ -exports.createLogger = __webpack_require__(/*! ./winston/create-logger */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/create-logger.js"); -/** - * Expose core Logging-related prototypes. - * @type {Object} - */ -exports.ExceptionHandler = __webpack_require__(/*! ./winston/exception-handler */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/exception-handler.js"); -/** - * Expose core Logging-related prototypes. - * @type {Object} - */ -exports.RejectionHandler = __webpack_require__(/*! ./winston/rejection-handler */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/rejection-handler.js"); -/** - * Expose core Logging-related prototypes. - * @type {Container} - */ -exports.Container = __webpack_require__(/*! ./winston/container */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/container.js"); -/** - * Expose core Logging-related prototypes. - * @type {Object} - */ -exports.Transport = __webpack_require__(/*! winston-transport */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/index.js"); -/** - * We create and expose a default `Container` to `winston.loggers` so that the - * programmer may manage multiple `winston.Logger` instances without any - * additional overhead. - * @example - * // some-file1.js - * const logger = require('winston').loggers.get('something'); - * - * // some-file2.js - * const logger = require('winston').loggers.get('something'); - */ -exports.loggers = new exports.Container(); -/** - * We create and expose a 'defaultLogger' so that the programmer may do the - * following without the need to create an instance of winston.Logger directly: - * @example - * const winston = require('winston'); - * winston.log('info', 'some message'); - * winston.error('some error'); - */ -const defaultLogger = exports.createLogger(); +/***/ }), -// Pass through the target methods onto `winston. -Object.keys(exports.config.npm.levels) - .concat([ - 'log', - 'query', - 'stream', - 'add', - 'remove', - 'clear', - 'profile', - 'startTimer', - 'handleExceptions', - 'unhandleExceptions', - 'handleRejections', - 'unhandleRejections', - 'configure', - 'child' - ]) - .forEach( - method => (exports[method] = (...args) => defaultLogger[method](...args)) - ); +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/fi.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/fi.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_705550__) { -/** - * Define getter / setter for the default logger level which need to be exposed - * by winston. - * @type {string} - */ -Object.defineProperty(exports, "level", ({ - get() { - return defaultLogger.level; - }, - set(val) { - defaultLogger.level = val; - } -})); +//! moment.js locale configuration +//! locale : Finnish [fi] +//! author : Tarmo Aidantausta : https://github.com/bleadof -/** - * Define getter for `exceptions` which replaces `handleExceptions` and - * `unhandleExceptions`. - * @type {Object} - */ -Object.defineProperty(exports, "exceptions", ({ - get() { - return defaultLogger.exceptions; - } -})); +;(function (global, factory) { + true ? factory(__nested_webpack_require_705550__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -/** - * Define getters / setters for appropriate properties of the default logger - * which need to be exposed by winston. - * @type {Logger} - */ -['exitOnError'].forEach(prop => { - Object.defineProperty(exports, prop, { - get() { - return defaultLogger[prop]; - }, - set(val) { - defaultLogger[prop] = val; - } - }); -}); + //! moment.js locale configuration -/** - * The default transports and exceptionHandlers for the default winston logger. - * @type {Object} - */ -Object.defineProperty(exports, "default", ({ - get() { - return { - exceptionHandlers: defaultLogger.exceptionHandlers, - rejectionHandlers: defaultLogger.rejectionHandlers, - transports: defaultLogger.transports - }; - } -})); + var numbersPast = + 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split( + ' ' + ), + numbersFuture = [ + 'nolla', + 'yhden', + 'kahden', + 'kolmen', + 'neljän', + 'viiden', + 'kuuden', + numbersPast[7], + numbersPast[8], + numbersPast[9], + ]; + function translate(number, withoutSuffix, key, isFuture) { + var result = ''; + switch (key) { + case 's': + return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; + case 'ss': + result = isFuture ? 'sekunnin' : 'sekuntia'; + break; + case 'm': + return isFuture ? 'minuutin' : 'minuutti'; + case 'mm': + result = isFuture ? 'minuutin' : 'minuuttia'; + break; + case 'h': + return isFuture ? 'tunnin' : 'tunti'; + case 'hh': + result = isFuture ? 'tunnin' : 'tuntia'; + break; + case 'd': + return isFuture ? 'päivän' : 'päivä'; + case 'dd': + result = isFuture ? 'päivän' : 'päivää'; + break; + case 'M': + return isFuture ? 'kuukauden' : 'kuukausi'; + case 'MM': + result = isFuture ? 'kuukauden' : 'kuukautta'; + break; + case 'y': + return isFuture ? 'vuoden' : 'vuosi'; + case 'yy': + result = isFuture ? 'vuoden' : 'vuotta'; + break; + } + result = verbalNumber(number, isFuture) + ' ' + result; + return result; + } + function verbalNumber(number, isFuture) { + return number < 10 + ? isFuture + ? numbersFuture[number] + : numbersPast[number] + : number; + } -// Have friendlier breakage notices for properties that were exposed by default -// on winston < 3.0. -warn.deprecated(exports, 'setLevels'); -warn.forFunctions(exports, 'useFormat', ['cli']); -warn.forProperties(exports, 'useFormat', ['padLevels', 'stripColors']); -warn.forFunctions(exports, 'deprecated', [ - 'addRewriter', - 'addFilter', - 'clone', - 'extend' -]); -warn.forProperties(exports, 'deprecated', ['emitErrs', 'levelLength']); -// Throw a useful error when users attempt to run `new winston.Logger`. -warn.moved(exports, 'createLogger', 'Logger'); + var fi = moment.defineLocale('fi', { + months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( + '_' + ), + monthsShort: + 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split( + '_' + ), + weekdays: + 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( + '_' + ), + weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), + weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM[ta] YYYY', + LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm', + LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', + l: 'D.M.YYYY', + ll: 'Do MMM YYYY', + lll: 'Do MMM YYYY, [klo] HH.mm', + llll: 'ddd, Do MMM YYYY, [klo] HH.mm', + }, + calendar: { + sameDay: '[tänään] [klo] LT', + nextDay: '[huomenna] [klo] LT', + nextWeek: 'dddd [klo] LT', + lastDay: '[eilen] [klo] LT', + lastWeek: '[viime] dddd[na] [klo] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s päästä', + past: '%s sitten', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + return fi; -/***/ }), +}))); -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/common.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/common.js ***! - \**********************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -"use strict"; -/** - * common.js: Internal helper and utility functions for winston. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ +/***/ }), +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/fil.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/fil.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_710235__) { +//! moment.js locale configuration +//! locale : Filipino [fil] +//! author : Dan Hagman : https://github.com/hagmandan +//! author : Matthew Co : https://github.com/matthewdeeco -const { format } = __webpack_require__(/*! util */ "util"); +;(function (global, factory) { + true ? factory(__nested_webpack_require_710235__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -/** - * Set of simple deprecation notices and a way to expose them for a set of - * properties. - * @type {Object} - * @private - */ -exports.warn = { - deprecated(prop) { - return () => { - throw new Error(format('{ %s } was removed in winston@3.0.0.', prop)); - }; - }, - useFormat(prop) { - return () => { - throw new Error([ - format('{ %s } was removed in winston@3.0.0.', prop), - 'Use a custom winston.format = winston.format(function) instead.' - ].join('\n')); - }; - }, - forFunctions(obj, type, props) { - props.forEach(prop => { - obj[prop] = exports.warn[type](prop); - }); - }, - moved(obj, movedTo, prop) { - function movedNotice() { - return () => { - throw new Error([ - format('winston.%s was moved in winston@3.0.0.', prop), - format('Use a winston.%s instead.', movedTo) - ].join('\n')); - }; - } + //! moment.js locale configuration - Object.defineProperty(obj, prop, { - get: movedNotice, - set: movedNotice - }); - }, - forProperties(obj, type, props) { - props.forEach(prop => { - const notice = exports.warn[type](prop); - Object.defineProperty(obj, prop, { - get: notice, - set: notice - }); + var fil = moment.defineLocale('fil', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, }); - } -}; + return fil; -/***/ }), +}))); -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/config/index.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/config/index.js ***! - \****************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -"use strict"; -/** - * index.js: Default settings for all levels that winston knows about. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ +/***/ }), +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/fo.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/fo.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_712821__) { +//! moment.js locale configuration +//! locale : Faroese [fo] +//! author : Ragnar Johannesen : https://github.com/ragnar123 +//! author : Kristian Sakarisson : https://github.com/sakarisson -const logform = __webpack_require__(/*! logform */ "./node_modules/cht-core-4-0/api/node_modules/logform/index.js"); -const { configs } = __webpack_require__(/*! triple-beam */ "./node_modules/cht-core-4-0/api/node_modules/triple-beam/index.js"); +;(function (global, factory) { + true ? factory(__nested_webpack_require_712821__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -/** - * Export config set for the CLI. - * @type {Object} - */ -exports.cli = logform.levels(configs.cli); + //! moment.js locale configuration -/** - * Export config set for npm. - * @type {Object} - */ -exports.npm = logform.levels(configs.npm); + var fo = moment.defineLocale('fo', { + months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdays: + 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split( + '_' + ), + weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'), + weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D. MMMM, YYYY HH:mm', + }, + calendar: { + sameDay: '[Í dag kl.] LT', + nextDay: '[Í morgin kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[Í gjár kl.] LT', + lastWeek: '[síðstu] dddd [kl] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'um %s', + past: '%s síðani', + s: 'fá sekund', + ss: '%d sekundir', + m: 'ein minuttur', + mm: '%d minuttir', + h: 'ein tími', + hh: '%d tímar', + d: 'ein dagur', + dd: '%d dagar', + M: 'ein mánaður', + MM: '%d mánaðir', + y: 'eitt ár', + yy: '%d ár', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); -/** - * Export config set for the syslog. - * @type {Object} - */ -exports.syslog = logform.levels(configs.syslog); + return fo; -/** - * Hoist addColors from logform where it was refactored into in winston@3. - * @type {Object} - */ -exports.addColors = logform.levels; +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/container.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/container.js ***! - \*************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * container.js: Inversion of control container for winston logger instances. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ - - - -const createLogger = __webpack_require__(/*! ./create-logger */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/create-logger.js"); - -/** - * Inversion of control container for winston logger instances. - * @type {Container} - */ -module.exports = class Container { - /** - * Constructor function for the Container object responsible for managing a - * set of `winston.Logger` instances based on string ids. - * @param {!Object} [options={}] - Default pass-thru options for Loggers. - */ - constructor(options = {}) { - this.loggers = new Map(); - this.options = options; - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/fr-ca.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/fr-ca.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_715380__) { - /** - * Retrieves a `winston.Logger` instance for the specified `id`. If an - * instance does not exist, one is created. - * @param {!string} id - The id of the Logger to get. - * @param {?Object} [options] - Options for the Logger instance. - * @returns {Logger} - A configured Logger instance with a specified id. - */ - add(id, options) { - if (!this.loggers.has(id)) { - // Remark: Simple shallow clone for configuration options in case we pass - // in instantiated protoypal objects - options = Object.assign({}, options || this.options); - const existing = options.transports || this.options.transports; +//! moment.js locale configuration +//! locale : French (Canada) [fr-ca] +//! author : Jonathan Abourbih : https://github.com/jonbca - // Remark: Make sure if we have an array of transports we slice it to - // make copies of those references. - options.transports = existing ? existing.slice() : []; +;(function (global, factory) { + true ? factory(__nested_webpack_require_715380__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - const logger = createLogger(options); - logger.on('close', () => this._delete(id)); - this.loggers.set(id, logger); - } + //! moment.js locale configuration - return this.loggers.get(id); - } + var frCa = moment.defineLocale('fr-ca', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); - /** - * Retreives a `winston.Logger` instance for the specified `id`. If - * an instance does not exist, one is created. - * @param {!string} id - The id of the Logger to get. - * @param {?Object} [options] - Options for the Logger instance. - * @returns {Logger} - A configured Logger instance with a specified id. - */ - get(id, options) { - return this.add(id, options); - } + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + }); - /** - * Check if the container has a logger with the id. - * @param {?string} id - The id of the Logger instance to find. - * @returns {boolean} - Boolean value indicating if this instance has a - * logger with the specified `id`. - */ - has(id) { - return !!this.loggers.has(id); - } + return frCa; - /** - * Closes a `Logger` instance with the specified `id` if it exists. - * If no `id` is supplied then all Loggers are closed. - * @param {?string} id - The id of the Logger instance to close. - * @returns {undefined} - */ - close(id) { - if (id) { - return this._removeLogger(id); - } +}))); - this.loggers.forEach((val, key) => this._removeLogger(key)); - } - /** - * Remove a logger based on the id. - * @param {!string} id - The id of the logger to remove. - * @returns {undefined} - * @private - */ - _removeLogger(id) { - if (!this.loggers.has(id)) { - return; - } +/***/ }), - const logger = this.loggers.get(id); - logger.close(); - this._delete(id); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/fr-ch.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/fr-ch.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_718343__) { - /** - * Deletes a `Logger` instance with the specified `id`. - * @param {!string} id - The id of the Logger instance to delete from - * container. - * @returns {undefined} - * @private - */ - _delete(id) { - this.loggers.delete(id); - } -}; +//! moment.js locale configuration +//! locale : French (Switzerland) [fr-ch] +//! author : Gaspard Bucher : https://github.com/gaspard +;(function (global, factory) { + true ? factory(__nested_webpack_require_718343__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -/***/ }), + //! moment.js locale configuration -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/create-logger.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/create-logger.js ***! - \*****************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + var frCh = moment.defineLocale('fr-ch', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); -"use strict"; -/** - * create-logger.js: Logger factory for winston logger instances. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + return frCh; +}))); -const { LEVEL } = __webpack_require__(/*! triple-beam */ "./node_modules/cht-core-4-0/api/node_modules/triple-beam/index.js"); -const config = __webpack_require__(/*! ./config */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/config/index.js"); -const Logger = __webpack_require__(/*! ./logger */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/logger.js"); -const debug = __webpack_require__(/*! @dabh/diagnostics */ "./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/node/index.js")('winston:create-logger'); -function isLevelEnabledFunctionName(level) { - return 'is' + level.charAt(0).toUpperCase() + level.slice(1) + 'Enabled'; -} +/***/ }), -/** - * Create a new instance of a winston Logger. Creates a new - * prototype for each instance. - * @param {!Object} opts - Options for the created logger. - * @returns {Logger} - A newly created logger instance. - */ -module.exports = function (opts = {}) { - // - // Default levels: npm - // - opts.levels = opts.levels || config.npm.levels; +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/fr.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/fr.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_721469__) { - /** - * DerivedLogger to attach the logs level methods. - * @type {DerivedLogger} - * @extends {Logger} - */ - class DerivedLogger extends Logger { - /** - * Create a new class derived logger for which the levels can be attached to - * the prototype of. This is a V8 optimization that is well know to increase - * performance of prototype functions. - * @param {!Object} options - Options for the created logger. - */ - constructor(options) { - super(options); - } - } +//! moment.js locale configuration +//! locale : French [fr] +//! author : John Fischer : https://github.com/jfroffice - const logger = new DerivedLogger(opts); +;(function (global, factory) { + true ? factory(__nested_webpack_require_721469__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - // - // Create the log level methods for the derived logger. - // - Object.keys(opts.levels).forEach(function (level) { - debug('Define prototype method for "%s"', level); - if (level === 'log') { - // eslint-disable-next-line no-console - console.warn('Level "log" not defined: conflicts with the method "log". Use a different level name.'); - return; - } + //! moment.js locale configuration - // - // Define prototype methods for each log level e.g.: - // logger.log('info', msg) implies these methods are defined: - // - logger.info(msg) - // - logger.isInfoEnabled() - // - // Remark: to support logger.child this **MUST** be a function - // so it'll always be called on the instance instead of a fixed - // place in the prototype chain. - // - DerivedLogger.prototype[level] = function (...args) { - // Prefer any instance scope, but default to "root" logger - const self = this || logger; + var monthsStrictRegex = + /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, + monthsShortStrictRegex = + /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i, + monthsRegex = + /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, + monthsParse = [ + /^janv/i, + /^févr/i, + /^mars/i, + /^avr/i, + /^mai/i, + /^juin/i, + /^juil/i, + /^août/i, + /^sept/i, + /^oct/i, + /^nov/i, + /^déc/i, + ]; - // Optimize the hot-path which is the single object. - if (args.length === 1) { - const [msg] = args; - const info = msg && msg.message && msg || { message: msg }; - info.level = info[LEVEL] = level; - self._addDefaultMeta(info); - self.write(info); - return (this || logger); - } + var fr = moment.defineLocale('fr', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + w: 'une semaine', + ww: '%d semaines', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|)/, + ordinal: function (number, period) { + switch (period) { + // TODO: Return 'e' when day of month > 1. Move this case inside + // block for masculine words below. + // See https://github.com/moment/moment/issues/3375 + case 'D': + return number + (number === 1 ? 'er' : ''); - // When provided nothing assume the empty string - if (args.length === 0) { - self.log(level, ''); - return self; - } + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); - // Otherwise build argument list which could potentially conform to - // either: - // . v3 API: log(obj) - // 2. v1/v2 API: log(level, msg, ... [string interpolate], [{metadata}], [callback]) - return self.log(level, ...args); - }; + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - DerivedLogger.prototype[isLevelEnabledFunctionName(level)] = function () { - return (this || logger).isLevelEnabled(level); - }; - }); + return fr; - return logger; -}; +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/exception-handler.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/exception-handler.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * exception-handler.js: Object for handling uncaughtException events. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ - - +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/fy.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/fy.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_725912__) { -const os = __webpack_require__(/*! os */ "os"); -const asyncForEach = __webpack_require__(/*! async/forEach */ "./node_modules/cht-core-4-0/api/node_modules/async/forEach.js"); -const debug = __webpack_require__(/*! @dabh/diagnostics */ "./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/node/index.js")('winston:exception'); -const once = __webpack_require__(/*! one-time */ "./node_modules/cht-core-4-0/api/node_modules/one-time/index.js"); -const stackTrace = __webpack_require__(/*! stack-trace */ "./node_modules/cht-core-4-0/api/node_modules/stack-trace/lib/stack-trace.js"); -const ExceptionStream = __webpack_require__(/*! ./exception-stream */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/exception-stream.js"); +//! moment.js locale configuration +//! locale : Frisian [fy] +//! author : Robin van der Vliet : https://github.com/robin0van0der0v -/** - * Object for handling uncaughtException events. - * @type {ExceptionHandler} - */ -module.exports = class ExceptionHandler { - /** - * TODO: add contructor description - * @param {!Logger} logger - TODO: add param description - */ - constructor(logger) { - if (!logger) { - throw new Error('Logger is required to handle exceptions'); - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_725912__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - this.logger = logger; - this.handlers = new Map(); - } + //! moment.js locale configuration - /** - * Handles `uncaughtException` events for the current process by adding any - * handlers passed in. - * @returns {undefined} - */ - handle(...args) { - args.forEach(arg => { - if (Array.isArray(arg)) { - return arg.forEach(handler => this._addHandler(handler)); - } + var monthsShortWithDots = + 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); - this._addHandler(arg); + var fy = moment.defineLocale('fy', { + months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + monthsParseExact: true, + weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( + '_' + ), + weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), + weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[hjoed om] LT', + nextDay: '[moarn om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[juster om] LT', + lastWeek: '[ôfrûne] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oer %s', + past: '%s lyn', + s: 'in pear sekonden', + ss: '%d sekonden', + m: 'ien minút', + mm: '%d minuten', + h: 'ien oere', + hh: '%d oeren', + d: 'ien dei', + dd: '%d dagen', + M: 'ien moanne', + MM: '%d moannen', + y: 'ien jier', + yy: '%d jierren', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, }); - if (!this.catcher) { - this.catcher = this._uncaughtException.bind(this); - process.on('uncaughtException', this.catcher); - } - } + return fy; - /** - * Removes any handlers to `uncaughtException` events for the current - * process. This does not modify the state of the `this.handlers` set. - * @returns {undefined} - */ - unhandle() { - if (this.catcher) { - process.removeListener('uncaughtException', this.catcher); - this.catcher = false; +}))); - Array.from(this.handlers.values()) - .forEach(wrapper => this.logger.unpipe(wrapper)); - } - } - /** - * TODO: add method description - * @param {Error} err - Error to get information about. - * @returns {mixed} - TODO: add return description. - */ - getAllInfo(err) { - let { message } = err; - if (!message && typeof err === 'string') { - message = err; - } +/***/ }), - return { - error: err, - // TODO (indexzero): how do we configure this? - level: 'error', - message: [ - `uncaughtException: ${(message || '(no error message)')}`, - err.stack || ' No stack trace' - ].join('\n'), - stack: err.stack, - exception: true, - date: new Date().toString(), - process: this.getProcessInfo(), - os: this.getOsInfo(), - trace: this.getTrace(err) - }; - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ga.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ga.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_729060__) { - /** - * Gets all relevant process information for the currently running process. - * @returns {mixed} - TODO: add return description. - */ - getProcessInfo() { - return { - pid: process.pid, - uid: process.getuid ? process.getuid() : null, - gid: process.getgid ? process.getgid() : null, - cwd: process.cwd(), - execPath: process.execPath, - version: process.version, - argv: process.argv, - memoryUsage: process.memoryUsage() - }; - } +//! moment.js locale configuration +//! locale : Irish or Irish Gaelic [ga] +//! author : André Silva : https://github.com/askpt - /** - * Gets all relevant OS information for the currently running process. - * @returns {mixed} - TODO: add return description. - */ - getOsInfo() { - return { - loadavg: os.loadavg(), - uptime: os.uptime() - }; - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_729060__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - /** - * Gets a stack trace for the specified error. - * @param {mixed} err - TODO: add param description. - * @returns {mixed} - TODO: add return description. - */ - getTrace(err) { - const trace = err ? stackTrace.parse(err) : stackTrace.get(); - return trace.map(site => { - return { - column: site.getColumnNumber(), - file: site.getFileName(), - function: site.getFunctionName(), - line: site.getLineNumber(), - method: site.getMethodName(), - native: site.isNative() - }; - }); - } + //! moment.js locale configuration - /** - * Helper method to add a transport as an exception handler. - * @param {Transport} handler - The transport to add as an exception handler. - * @returns {void} - */ - _addHandler(handler) { - if (!this.handlers.has(handler)) { - handler.handleExceptions = true; - const wrapper = new ExceptionStream(handler); - this.handlers.set(handler, wrapper); - this.logger.pipe(wrapper); - } - } + var months = [ + 'Eanáir', + 'Feabhra', + 'Márta', + 'Aibreán', + 'Bealtaine', + 'Meitheamh', + 'Iúil', + 'Lúnasa', + 'Meán Fómhair', + 'Deireadh Fómhair', + 'Samhain', + 'Nollaig', + ], + monthsShort = [ + 'Ean', + 'Feabh', + 'Márt', + 'Aib', + 'Beal', + 'Meith', + 'Iúil', + 'Lún', + 'M.F.', + 'D.F.', + 'Samh', + 'Noll', + ], + weekdays = [ + 'Dé Domhnaigh', + 'Dé Luain', + 'Dé Máirt', + 'Dé Céadaoin', + 'Déardaoin', + 'Dé hAoine', + 'Dé Sathairn', + ], + weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'], + weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa']; - /** - * Logs all relevant information around the `err` and exits the current - * process. - * @param {Error} err - Error to handle - * @returns {mixed} - TODO: add return description. - * @private - */ - _uncaughtException(err) { - const info = this.getAllInfo(err); - const handlers = this._getExceptionHandlers(); - // Calculate if we should exit on this error - let doExit = typeof this.logger.exitOnError === 'function' - ? this.logger.exitOnError(err) - : this.logger.exitOnError; - let timeout; + var ga = moment.defineLocale('ga', { + months: months, + monthsShort: monthsShort, + monthsParseExact: true, + weekdays: weekdays, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Inniu ag] LT', + nextDay: '[Amárach ag] LT', + nextWeek: 'dddd [ag] LT', + lastDay: '[Inné ag] LT', + lastWeek: 'dddd [seo caite] [ag] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i %s', + past: '%s ó shin', + s: 'cúpla soicind', + ss: '%d soicind', + m: 'nóiméad', + mm: '%d nóiméad', + h: 'uair an chloig', + hh: '%d uair an chloig', + d: 'lá', + dd: '%d lá', + M: 'mí', + MM: '%d míonna', + y: 'bliain', + yy: '%d bliain', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - if (!handlers.length && doExit) { - // eslint-disable-next-line no-console - console.warn('winston: exitOnError cannot be true with no exception handlers.'); - // eslint-disable-next-line no-console - console.warn('winston: not exiting process.'); - doExit = false; - } + return ga; - function gracefulExit() { - debug('doExit', doExit); - debug('process._exiting', process._exiting); +}))); - if (doExit && !process._exiting) { - // Remark: Currently ignoring any exceptions from transports when - // catching uncaught exceptions. - if (timeout) { - clearTimeout(timeout); - } - // eslint-disable-next-line no-process-exit - process.exit(1); - } - } - if (!handlers || handlers.length === 0) { - return process.nextTick(gracefulExit); - } +/***/ }), - // Log to all transports attempting to listen for when they are completed. - asyncForEach(handlers, (handler, next) => { - const done = once(next); - const transport = handler.transport || handler; +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/gd.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/gd.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_732337__) { - // Debug wrapping so that we can inspect what's going on under the covers. - function onDone(event) { - return () => { - debug(event); - done(); - }; - } +//! moment.js locale configuration +//! locale : Scottish Gaelic [gd] +//! author : Jon Ashdown : https://github.com/jonashdown - transport._ending = true; - transport.once('finish', onDone('finished')); - transport.once('error', onDone('error')); - }, () => doExit && gracefulExit()); +;(function (global, factory) { + true ? factory(__nested_webpack_require_732337__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - this.logger.log(info); + //! moment.js locale configuration - // If exitOnError is true, then only allow the logging of exceptions to - // take up to `3000ms`. - if (doExit) { - timeout = setTimeout(gracefulExit, 3000); - } - } + var months = [ + 'Am Faoilleach', + 'An Gearran', + 'Am Màrt', + 'An Giblean', + 'An Cèitean', + 'An t-Ògmhios', + 'An t-Iuchar', + 'An Lùnastal', + 'An t-Sultain', + 'An Dàmhair', + 'An t-Samhain', + 'An Dùbhlachd', + ], + monthsShort = [ + 'Faoi', + 'Gear', + 'Màrt', + 'Gibl', + 'Cèit', + 'Ògmh', + 'Iuch', + 'Lùn', + 'Sult', + 'Dàmh', + 'Samh', + 'Dùbh', + ], + weekdays = [ + 'Didòmhnaich', + 'Diluain', + 'Dimàirt', + 'Diciadain', + 'Diardaoin', + 'Dihaoine', + 'Disathairne', + ], + weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], + weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa']; - /** - * Returns the list of transports and exceptionHandlers for this instance. - * @returns {Array} - List of transports and exceptionHandlers for this - * instance. - * @private - */ - _getExceptionHandlers() { - // Remark (indexzero): since `logger.transports` returns all of the pipes - // from the _readableState of the stream we actually get the join of the - // explicit handlers and the implicit transports with - // `handleExceptions: true` - return this.logger.transports.filter(wrap => { - const transport = wrap.transport || wrap; - return transport.handleExceptions; + var gd = moment.defineLocale('gd', { + months: months, + monthsShort: monthsShort, + monthsParseExact: true, + weekdays: weekdays, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[An-diugh aig] LT', + nextDay: '[A-màireach aig] LT', + nextWeek: 'dddd [aig] LT', + lastDay: '[An-dè aig] LT', + lastWeek: 'dddd [seo chaidh] [aig] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ann an %s', + past: 'bho chionn %s', + s: 'beagan diogan', + ss: '%d diogan', + m: 'mionaid', + mm: '%d mionaidean', + h: 'uair', + hh: '%d uairean', + d: 'latha', + dd: '%d latha', + M: 'mìos', + MM: '%d mìosan', + y: 'bliadhna', + yy: '%d bliadhna', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, }); - } -}; + return gd; -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/exception-stream.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/exception-stream.js ***! - \********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +}))); -"use strict"; -/** - * exception-stream.js: TODO: add file header handler. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ +/***/ }), +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/gl.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/gl.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_735653__) { -const { Writable } = __webpack_require__(/*! readable-stream */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/readable.js"); +//! moment.js locale configuration +//! locale : Galician [gl] +//! author : Juan G. Hurtado : https://github.com/juanghurtado -/** - * TODO: add class description. - * @type {ExceptionStream} - * @extends {Writable} - */ -module.exports = class ExceptionStream extends Writable { - /** - * Constructor function for the ExceptionStream responsible for wrapping a - * TransportStream; only allowing writes of `info` objects with - * `info.exception` set to true. - * @param {!TransportStream} transport - Stream to filter to exceptions - */ - constructor(transport) { - super({ objectMode: true }); +;(function (global, factory) { + true ? factory(__nested_webpack_require_735653__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (!transport) { - throw new Error('ExceptionStream requires a TransportStream instance.'); - } + //! moment.js locale configuration - // Remark (indexzero): we set `handleExceptions` here because it's the - // predicate checked in ExceptionHandler.prototype.__getExceptionHandlers - this.handleExceptions = true; - this.transport = transport; - } + var gl = moment.defineLocale('gl', { + months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split( + '_' + ), + monthsShort: + 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; + }, + nextDay: function () { + return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; + }, + nextWeek: function () { + return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'; + }, + lastDay: function () { + return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT'; + }, + lastWeek: function () { + return ( + '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: function (str) { + if (str.indexOf('un') === 0) { + return 'n' + str; + } + return 'en ' + str; + }, + past: 'hai %s', + s: 'uns segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'unha hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + M: 'un mes', + MM: '%d meses', + y: 'un ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - /** - * Writes the info object to our transport instance if (and only if) the - * `exception` property is set on the info. - * @param {mixed} info - TODO: add param description. - * @param {mixed} enc - TODO: add param description. - * @param {mixed} callback - TODO: add param description. - * @returns {mixed} - TODO: add return description. - * @private - */ - _write(info, enc, callback) { - if (info.exception) { - return this.transport.log(info, callback); - } + return gl; - callback(); - return true; - } -}; +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/logger.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/logger.js ***! - \**********************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * logger.js: TODO: add file header description. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ - - - -const { Stream, Transform } = __webpack_require__(/*! readable-stream */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/readable.js"); -const asyncForEach = __webpack_require__(/*! async/forEach */ "./node_modules/cht-core-4-0/api/node_modules/async/forEach.js"); -const { LEVEL, SPLAT } = __webpack_require__(/*! triple-beam */ "./node_modules/cht-core-4-0/api/node_modules/triple-beam/index.js"); -const isStream = __webpack_require__(/*! is-stream */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/is-stream/index.js"); -const ExceptionHandler = __webpack_require__(/*! ./exception-handler */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/exception-handler.js"); -const RejectionHandler = __webpack_require__(/*! ./rejection-handler */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/rejection-handler.js"); -const LegacyTransportStream = __webpack_require__(/*! winston-transport/legacy */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/legacy.js"); -const Profiler = __webpack_require__(/*! ./profiler */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/profiler.js"); -const { warn } = __webpack_require__(/*! ./common */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/common.js"); -const config = __webpack_require__(/*! ./config */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/config/index.js"); - -/** - * Captures the number of format (i.e. %s strings) in a given string. - * Based on `util.format`, see Node.js source: - * https://github.com/nodejs/node/blob/b1c8f15c5f169e021f7c46eb7b219de95fe97603/lib/util.js#L201-L230 - * @type {RegExp} - */ -const formatRegExp = /%[scdjifoO%]/g; - -/** - * TODO: add class description. - * @type {Logger} - * @extends {Transform} - */ -class Logger extends Transform { - /** - * Constructor function for the Logger object responsible for persisting log - * messages and metadata to one or more transports. - * @param {!Object} options - foo - */ - constructor(options) { - super({ objectMode: true }); - this.configure(options); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/gom-deva.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/gom-deva.js ***! + \***********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_738883__) { - child(defaultRequestMetadata) { - const logger = this; - return Object.create(logger, { - write: { - value: function (info) { - const infoClone = Object.assign( - {}, - defaultRequestMetadata, - info - ); +//! moment.js locale configuration +//! locale : Konkani Devanagari script [gom-deva] +//! author : The Discoverer : https://github.com/WikiDiscoverer - // Object.assign doesn't copy inherited Error - // properties so we have to do that explicitly - // - // Remark (indexzero): we should remove this - // since the errors format will handle this case. - // - if (info instanceof Error) { - infoClone.stack = info.stack; - infoClone.message = info.message; - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_738883__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - logger.write(infoClone); - } - } - }); - } + //! moment.js locale configuration - /** - * This will wholesale reconfigure this instance by: - * 1. Resetting all transports. Older transports will be removed implicitly. - * 2. Set all other options including levels, colors, rewriters, filters, - * exceptionHandlers, etc. - * @param {!Object} options - TODO: add param description. - * @returns {undefined} - */ - configure({ - silent, - format, - defaultMeta, - levels, - level = 'info', - exitOnError = true, - transports, - colors, - emitErrs, - formatters, - padLevels, - rewriters, - stripColors, - exceptionHandlers, - rejectionHandlers - } = {}) { - // Reset transports if we already have them - if (this.transports.length) { - this.clear(); + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'], + ss: [number + ' सॅकंडांनी', number + ' सॅकंड'], + m: ['एका मिणटान', 'एक मिनूट'], + mm: [number + ' मिणटांनी', number + ' मिणटां'], + h: ['एका वरान', 'एक वर'], + hh: [number + ' वरांनी', number + ' वरां'], + d: ['एका दिसान', 'एक दीस'], + dd: [number + ' दिसांनी', number + ' दीस'], + M: ['एका म्हयन्यान', 'एक म्हयनो'], + MM: [number + ' म्हयन्यानी', number + ' म्हयने'], + y: ['एका वर्सान', 'एक वर्स'], + yy: [number + ' वर्सांनी', number + ' वर्सां'], + }; + return isFuture ? format[key][0] : format[key][1]; } - this.silent = silent; - this.format = format || this.format || __webpack_require__(/*! logform/json */ "./node_modules/cht-core-4-0/api/node_modules/logform/json.js")(); + var gomDeva = moment.defineLocale('gom-deva', { + months: { + standalone: + 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( + '_' + ), + format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'), + weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'), + weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [वाजतां]', + LTS: 'A h:mm:ss [वाजतां]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [वाजतां]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]', + llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]', + }, + calendar: { + sameDay: '[आयज] LT', + nextDay: '[फाल्यां] LT', + nextWeek: '[फुडलो] dddd[,] LT', + lastDay: '[काल] LT', + lastWeek: '[फाटलो] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s आदीं', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(वेर)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'वेर' only applies to day of the month + case 'D': + return number + 'वेर'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /राती|सकाळीं|दनपारां|सांजे/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'राती') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'सकाळीं') { + return hour; + } else if (meridiem === 'दनपारां') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'सांजे') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'राती'; + } else if (hour < 12) { + return 'सकाळीं'; + } else if (hour < 16) { + return 'दनपारां'; + } else if (hour < 20) { + return 'सांजे'; + } else { + return 'राती'; + } + }, + }); + + return gomDeva; - this.defaultMeta = defaultMeta || null; - // Hoist other options onto this instance. - this.levels = levels || this.levels || config.npm.levels; - this.level = level; - if (this.exceptions) { - this.exceptions.unhandle(); - } - if (this.rejections) { - this.rejections.unhandle(); - } - this.exceptions = new ExceptionHandler(this); - this.rejections = new RejectionHandler(this); - this.profilers = {}; - this.exitOnError = exitOnError; +}))); - // Add all transports we have been provided. - if (transports) { - transports = Array.isArray(transports) ? transports : [transports]; - transports.forEach(transport => this.add(transport)); - } - if ( - colors || - emitErrs || - formatters || - padLevels || - rewriters || - stripColors - ) { - throw new Error( - [ - '{ colors, emitErrs, formatters, padLevels, rewriters, stripColors } were removed in winston@3.0.0.', - 'Use a custom winston.format(function) instead.', - 'See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md' - ].join('\n') - ); - } +/***/ }), - if (exceptionHandlers) { - this.exceptions.handle(exceptionHandlers); - } - if (rejectionHandlers) { - this.rejections.handle(rejectionHandlers); - } - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/gom-latn.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/gom-latn.js ***! + \***********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_744185__) { - isLevelEnabled(level) { - const givenLevelValue = getLevelValue(this.levels, level); - if (givenLevelValue === null) { - return false; - } +//! moment.js locale configuration +//! locale : Konkani Latin script [gom-latn] +//! author : The Discoverer : https://github.com/WikiDiscoverer - const configuredLevelValue = getLevelValue(this.levels, this.level); - if (configuredLevelValue === null) { - return false; - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_744185__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (!this.transports || this.transports.length === 0) { - return configuredLevelValue >= givenLevelValue; + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['thoddea sekondamni', 'thodde sekond'], + ss: [number + ' sekondamni', number + ' sekond'], + m: ['eka mintan', 'ek minut'], + mm: [number + ' mintamni', number + ' mintam'], + h: ['eka voran', 'ek vor'], + hh: [number + ' voramni', number + ' voram'], + d: ['eka disan', 'ek dis'], + dd: [number + ' disamni', number + ' dis'], + M: ['eka mhoinean', 'ek mhoino'], + MM: [number + ' mhoineamni', number + ' mhoine'], + y: ['eka vorsan', 'ek voros'], + yy: [number + ' vorsamni', number + ' vorsam'], + }; + return isFuture ? format[key][0] : format[key][1]; } - const index = this.transports.findIndex(transport => { - let transportLevelValue = getLevelValue(this.levels, transport.level); - if (transportLevelValue === null) { - transportLevelValue = configuredLevelValue; - } - return transportLevelValue >= givenLevelValue; + var gomLatn = moment.defineLocale('gom-latn', { + months: { + standalone: + 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( + '_' + ), + format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), + weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), + weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [vazta]', + LTS: 'A h:mm:ss [vazta]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [vazta]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', + llll: 'ddd, D MMM YYYY, A h:mm [vazta]', + }, + calendar: { + sameDay: '[Aiz] LT', + nextDay: '[Faleam] LT', + nextWeek: '[Fuddlo] dddd[,] LT', + lastDay: '[Kal] LT', + lastWeek: '[Fattlo] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s adim', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(er)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'er' only applies to day of the month + case 'D': + return number + 'er'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /rati|sokallim|donparam|sanje/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'rati') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'sokallim') { + return hour; + } else if (meridiem === 'donparam') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'sanje') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'rati'; + } else if (hour < 12) { + return 'sokallim'; + } else if (hour < 16) { + return 'donparam'; + } else if (hour < 20) { + return 'sanje'; + } else { + return 'rati'; + } + }, }); - return index !== -1; - } - /* eslint-disable valid-jsdoc */ - /** - * Ensure backwards compatibility with a `log` method - * @param {mixed} level - Level the log message is written at. - * @param {mixed} msg - TODO: add param description. - * @param {mixed} meta - TODO: add param description. - * @returns {Logger} - TODO: add return description. - * - * @example - * // Supports the existing API: - * logger.log('info', 'Hello world', { custom: true }); - * logger.log('info', new Error('Yo, it\'s on fire')); - * - * // Requires winston.format.splat() - * logger.log('info', '%s %d%%', 'A string', 50, { thisIsMeta: true }); - * - * // And the new API with a single JSON literal: - * logger.log({ level: 'info', message: 'Hello world', custom: true }); - * logger.log({ level: 'info', message: new Error('Yo, it\'s on fire') }); - * - * // Also requires winston.format.splat() - * logger.log({ - * level: 'info', - * message: '%s %d%%', - * [SPLAT]: ['A string', 50], - * meta: { thisIsMeta: true } - * }); - * - */ - /* eslint-enable valid-jsdoc */ - log(level, msg, ...splat) { - // eslint-disable-line max-params - // Optimize for the hotpath of logging JSON literals - if (arguments.length === 1) { - // Yo dawg, I heard you like levels ... seriously ... - // In this context the LHS `level` here is actually the `info` so read - // this as: info[LEVEL] = info.level; - level[LEVEL] = level.level; - this._addDefaultMeta(level); - this.write(level); - return this; - } + return gomLatn; - // Slightly less hotpath, but worth optimizing for. - if (arguments.length === 2) { - if (msg && typeof msg === 'object') { - msg[LEVEL] = msg.level = level; - this._addDefaultMeta(msg); - this.write(msg); - return this; - } +}))); - msg = { [LEVEL]: level, level, message: msg }; - this._addDefaultMeta(msg); - this.write(msg); - return this; - } - const [meta] = splat; - if (typeof meta === 'object' && meta !== null) { - // Extract tokens, if none available default to empty array to - // ensure consistancy in expected results - const tokens = msg && msg.match && msg.match(formatRegExp); +/***/ }), - if (!tokens) { - const info = Object.assign({}, this.defaultMeta, meta, { - [LEVEL]: level, - [SPLAT]: splat, - level, - message: msg - }); +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/gu.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/gu.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_749397__) { - if (meta.message) info.message = `${info.message} ${meta.message}`; - if (meta.stack) info.stack = meta.stack; +//! moment.js locale configuration +//! locale : Gujarati [gu] +//! author : Kaushik Thanki : https://github.com/Kaushik1987 - this.write(info); - return this; - } - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_749397__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - this.write(Object.assign({}, this.defaultMeta, { - [LEVEL]: level, - [SPLAT]: splat, - level, - message: msg - })); + //! moment.js locale configuration - return this; - } + var symbolMap = { + 1: '૧', + 2: '૨', + 3: '૩', + 4: '૪', + 5: '૫', + 6: '૬', + 7: '૭', + 8: '૮', + 9: '૯', + 0: '૦', + }, + numberMap = { + '૧': '1', + '૨': '2', + '૩': '3', + '૪': '4', + '૫': '5', + '૬': '6', + '૭': '7', + '૮': '8', + '૯': '9', + '૦': '0', + }; - /** - * Pushes data so that it can be picked up by all of our pipe targets. - * @param {mixed} info - TODO: add param description. - * @param {mixed} enc - TODO: add param description. - * @param {mixed} callback - Continues stream processing. - * @returns {undefined} - * @private - */ - _transform(info, enc, callback) { - if (this.silent) { - return callback(); - } + var gu = moment.defineLocale('gu', { + months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split( + '_' + ), + monthsShort: + 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split( + '_' + ), + weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'), + weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'), + longDateFormat: { + LT: 'A h:mm વાગ્યે', + LTS: 'A h:mm:ss વાગ્યે', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm વાગ્યે', + LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે', + }, + calendar: { + sameDay: '[આજ] LT', + nextDay: '[કાલે] LT', + nextWeek: 'dddd, LT', + lastDay: '[ગઇકાલે] LT', + lastWeek: '[પાછલા] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s મા', + past: '%s પહેલા', + s: 'અમુક પળો', + ss: '%d સેકંડ', + m: 'એક મિનિટ', + mm: '%d મિનિટ', + h: 'એક કલાક', + hh: '%d કલાક', + d: 'એક દિવસ', + dd: '%d દિવસ', + M: 'એક મહિનો', + MM: '%d મહિનો', + y: 'એક વર્ષ', + yy: '%d વર્ષ', + }, + preparse: function (string) { + return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Gujarati notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. + meridiemParse: /રાત|બપોર|સવાર|સાંજ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'રાત') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'સવાર') { + return hour; + } else if (meridiem === 'બપોર') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'સાંજ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'રાત'; + } else if (hour < 10) { + return 'સવાર'; + } else if (hour < 17) { + return 'બપોર'; + } else if (hour < 20) { + return 'સાંજ'; + } else { + return 'રાત'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); - // [LEVEL] is only soft guaranteed to be set here since we are a proper - // stream. It is likely that `info` came in through `.log(info)` or - // `.info(info)`. If it is not defined, however, define it. - // This LEVEL symbol is provided by `triple-beam` and also used in: - // - logform - // - winston-transport - // - abstract-winston-transport - if (!info[LEVEL]) { - info[LEVEL] = info.level; - } + return gu; - // Remark: really not sure what to do here, but this has been reported as - // very confusing by pre winston@2.0.0 users as quite confusing when using - // custom levels. - if (!this.levels[info[LEVEL]] && this.levels[info[LEVEL]] !== 0) { - // eslint-disable-next-line no-console - console.error('[winston] Unknown logger level: %s', info[LEVEL]); - } +}))); - // Remark: not sure if we should simply error here. - if (!this._readableState.pipes) { - // eslint-disable-next-line no-console - console.error( - '[winston] Attempt to write logs with no transports %j', - info - ); - } - // Here we write to the `format` pipe-chain, which on `readable` above will - // push the formatted `info` Object onto the buffer for this instance. We trap - // (and re-throw) any errors generated by the user-provided format, but also - // guarantee that the streams callback is invoked so that we can continue flowing. - try { - this.push(this.format.transform(info, this.format.options)); - } catch (ex) { - throw ex; - } finally { - // eslint-disable-next-line callback-return - callback(); - } - } +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/he.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/he.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_753789__) { + +//! moment.js locale configuration +//! locale : Hebrew [he] +//! author : Tomer Cohen : https://github.com/tomer +//! author : Moshe Simantov : https://github.com/DevelopmentIL +//! author : Tal Ater : https://github.com/TalAter + +;(function (global, factory) { + true ? factory(__nested_webpack_require_753789__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var he = moment.defineLocale('he', { + months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split( + '_' + ), + monthsShort: + 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'), + weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), + weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), + weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [ב]MMMM YYYY', + LLL: 'D [ב]MMMM YYYY HH:mm', + LLLL: 'dddd, D [ב]MMMM YYYY HH:mm', + l: 'D/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[היום ב־]LT', + nextDay: '[מחר ב־]LT', + nextWeek: 'dddd [בשעה] LT', + lastDay: '[אתמול ב־]LT', + lastWeek: '[ביום] dddd [האחרון בשעה] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'בעוד %s', + past: 'לפני %s', + s: 'מספר שניות', + ss: '%d שניות', + m: 'דקה', + mm: '%d דקות', + h: 'שעה', + hh: function (number) { + if (number === 2) { + return 'שעתיים'; + } + return number + ' שעות'; + }, + d: 'יום', + dd: function (number) { + if (number === 2) { + return 'יומיים'; + } + return number + ' ימים'; + }, + M: 'חודש', + MM: function (number) { + if (number === 2) { + return 'חודשיים'; + } + return number + ' חודשים'; + }, + y: 'שנה', + yy: function (number) { + if (number === 2) { + return 'שנתיים'; + } else if (number % 10 === 0 && number !== 10) { + return number + ' שנה'; + } + return number + ' שנים'; + }, + }, + meridiemParse: + /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, + isPM: function (input) { + return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 5) { + return 'לפנות בוקר'; + } else if (hour < 10) { + return 'בבוקר'; + } else if (hour < 12) { + return isLower ? 'לפנה"צ' : 'לפני הצהריים'; + } else if (hour < 18) { + return isLower ? 'אחה"צ' : 'אחרי הצהריים'; + } else { + return 'בערב'; + } + }, + }); - /** - * Delays the 'finish' event until all transport pipe targets have - * also emitted 'finish' or are already finished. - * @param {mixed} callback - Continues stream processing. - */ - _final(callback) { - const transports = this.transports.slice(); - asyncForEach( - transports, - (transport, next) => { - if (!transport || transport.finished) return setImmediate(next); - transport.once('finish', next); - transport.end(); - }, - callback - ); - } + return he; - /** - * Adds the transport to this logger instance by piping to it. - * @param {mixed} transport - TODO: add param description. - * @returns {Logger} - TODO: add return description. - */ - add(transport) { - // Support backwards compatibility with all existing `winston < 3.x.x` - // transports which meet one of two criteria: - // 1. They inherit from winston.Transport in < 3.x.x which is NOT a stream. - // 2. They expose a log method which has a length greater than 2 (i.e. more then - // just `log(info, callback)`. - const target = - !isStream(transport) || transport.log.length > 2 - ? new LegacyTransportStream({ transport }) - : transport; +}))); - if (!target._writableState || !target._writableState.objectMode) { - throw new Error( - 'Transports must WritableStreams in objectMode. Set { objectMode: true }.' - ); - } - // Listen for the `error` event and the `warn` event on the new Transport. - this._onEvent('error', target); - this._onEvent('warn', target); - this.pipe(target); +/***/ }), - if (transport.handleExceptions) { - this.exceptions.handle(); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/hi.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/hi.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_757547__) { - if (transport.handleRejections) { - this.rejections.handle(); - } +//! moment.js locale configuration +//! locale : Hindi [hi] +//! author : Mayank Singhal : https://github.com/mayanksinghal - return this; - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_757547__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - /** - * Removes the transport from this logger instance by unpiping from it. - * @param {mixed} transport - TODO: add param description. - * @returns {Logger} - TODO: add return description. - */ - remove(transport) { - if (!transport) return this; - let target = transport; - if (!isStream(transport) || transport.log.length > 2) { - target = this.transports.filter( - match => match.transport === transport - )[0]; - } + //! moment.js locale configuration - if (target) { - this.unpipe(target); - } - return this; - } + var symbolMap = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }, + monthsParse = [ + /^जन/i, + /^फ़र|फर/i, + /^मार्च/i, + /^अप्रै/i, + /^मई/i, + /^जून/i, + /^जुल/i, + /^अग/i, + /^सितं|सित/i, + /^अक्टू/i, + /^नव|नवं/i, + /^दिसं|दिस/i, + ], + shortMonthsParse = [ + /^जन/i, + /^फ़र/i, + /^मार्च/i, + /^अप्रै/i, + /^मई/i, + /^जून/i, + /^जुल/i, + /^अग/i, + /^सित/i, + /^अक्टू/i, + /^नव/i, + /^दिस/i, + ]; - /** - * Removes all transports from this logger instance. - * @returns {Logger} - TODO: add return description. - */ - clear() { - this.unpipe(); - return this; - } + var hi = moment.defineLocale('hi', { + months: { + format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split( + '_' + ), + standalone: + 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split( + '_' + ), + }, + monthsShort: + 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'), + weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), + longDateFormat: { + LT: 'A h:mm बजे', + LTS: 'A h:mm:ss बजे', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm बजे', + LLLL: 'dddd, D MMMM YYYY, A h:mm बजे', + }, - /** - * Cleans up resources (streams, event listeners) for all transports - * associated with this instance (if necessary). - * @returns {Logger} - TODO: add return description. - */ - close() { - this.exceptions.unhandle(); - this.rejections.unhandle(); - this.clear(); - this.emit('close'); - return this; - } + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: shortMonthsParse, - /** - * Sets the `target` levels specified on this instance. - * @param {Object} Target levels to use on this instance. - */ - setLevels() { - warn.deprecated('setLevels'); - } + monthsRegex: + /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, - /** - * Queries the all transports for this instance with the specified `options`. - * This will aggregate each transport's results into one object containing - * a property per transport. - * @param {Object} options - Query options for this instance. - * @param {function} callback - Continuation to respond to when complete. - */ - query(options, callback) { - if (typeof options === 'function') { - callback = options; - options = {}; - } + monthsShortRegex: + /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, - options = options || {}; - const results = {}; - const queryObject = Object.assign({}, options.query || {}); + monthsStrictRegex: + /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i, - // Helper function to query a single transport - function queryTransport(transport, next) { - if (options.query && typeof transport.formatQuery === 'function') { - options.query = transport.formatQuery(queryObject); - } + monthsShortStrictRegex: + /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i, - transport.query(options, (err, res) => { - if (err) { - return next(err); - } + calendar: { + sameDay: '[आज] LT', + nextDay: '[कल] LT', + nextWeek: 'dddd, LT', + lastDay: '[कल] LT', + lastWeek: '[पिछले] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s में', + past: '%s पहले', + s: 'कुछ ही क्षण', + ss: '%d सेकंड', + m: 'एक मिनट', + mm: '%d मिनट', + h: 'एक घंटा', + hh: '%d घंटे', + d: 'एक दिन', + dd: '%d दिन', + M: 'एक महीने', + MM: '%d महीने', + y: 'एक वर्ष', + yy: '%d वर्ष', + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Hindi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. + meridiemParse: /रात|सुबह|दोपहर|शाम/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'रात') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'सुबह') { + return hour; + } else if (meridiem === 'दोपहर') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'शाम') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'रात'; + } else if (hour < 10) { + return 'सुबह'; + } else if (hour < 17) { + return 'दोपहर'; + } else if (hour < 20) { + return 'शाम'; + } else { + return 'रात'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); - if (typeof transport.formatResults === 'function') { - res = transport.formatResults(res, options.format); - } + return hi; - next(null, res); - }); - } +}))); - // Helper function to accumulate the results from `queryTransport` into - // the `results`. - function addResults(transport, next) { - queryTransport(transport, (err, result) => { - // queryTransport could potentially invoke the callback multiple times - // since Transport code can be unpredictable. - if (next) { - result = err || result; - if (result) { - results[transport.name] = result; - } - // eslint-disable-next-line callback-return - next(); - } +/***/ }), - next = null; - }); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/hr.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/hr.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_763460__) { - // Iterate over the transports in parallel setting the appropriate key in - // the `results`. - asyncForEach( - this.transports.filter(transport => !!transport.query), - addResults, - () => callback(null, results) - ); - } +//! moment.js locale configuration +//! locale : Croatian [hr] +//! author : Bojan Marković : https://github.com/bmarkovic - /** - * Returns a log stream for all transports. Options object is optional. - * @param{Object} options={} - Stream options for this instance. - * @returns {Stream} - TODO: add return description. - */ - stream(options = {}) { - const out = new Stream(); - const streams = []; +;(function (global, factory) { + true ? factory(__nested_webpack_require_763460__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - out._streams = streams; - out.destroy = () => { - let i = streams.length; - while (i--) { - streams[i].destroy(); - } - }; + //! moment.js locale configuration - // Create a list of all transports for this instance. - this.transports - .filter(transport => !!transport.stream) - .forEach(transport => { - const str = transport.stream(options); - if (!str) { - return; + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; } + } - streams.push(str); - - str.on('log', log => { - log.transport = log.transport || []; - log.transport.push(transport.name); - out.emit('log', log); - }); - - str.on('error', err => { - err.transport = err.transport || []; - err.transport.push(transport.name); - out.emit('error', err); - }); - }); - - return out; - } - - /** - * Returns an object corresponding to a specific timing. When done is called - * the timer will finish and log the duration. e.g.: - * @returns {Profile} - TODO: add return description. - * @example - * const timer = winston.startTimer() - * setTimeout(() => { - * timer.done({ - * message: 'Logging message' - * }); - * }, 1000); - */ - startTimer() { - return new Profiler(this); - } + var hr = moment.defineLocale('hr', { + months: { + format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( + '_' + ), + standalone: + 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( + '_' + ), + }, + monthsShort: + 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM YYYY', + LLL: 'Do MMMM YYYY H:mm', + LLLL: 'dddd, Do MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[jučer u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prošlu] [nedjelju] [u] LT'; + case 3: + return '[prošlu] [srijedu] [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); - /** - * Tracks the time inbetween subsequent calls to this method with the same - * `id` parameter. The second call to this method will log the difference in - * milliseconds along with the message. - * @param {string} id Unique id of the profiler - * @returns {Logger} - TODO: add return description. - */ - profile(id, ...args) { - const time = Date.now(); - if (this.profilers[id]) { - const timeEnd = this.profilers[id]; - delete this.profilers[id]; + return hr; - // Attempt to be kind to users if they are still using older APIs. - if (typeof args[args.length - 2] === 'function') { - // eslint-disable-next-line no-console - console.warn( - 'Callback function no longer supported as of winston@3.0.0' - ); - args.pop(); - } +}))); - // Set the duration property of the metadata - const info = typeof args[args.length - 1] === 'object' ? args.pop() : {}; - info.level = info.level || 'info'; - info.durationMs = time - timeEnd; - info.message = info.message || id; - return this.write(info); - } - this.profilers[id] = time; - return this; - } +/***/ }), - /** - * Backwards compatibility to `exceptions.handle` in winston < 3.0.0. - * @returns {undefined} - * @deprecated - */ - handleExceptions(...args) { - // eslint-disable-next-line no-console - console.warn( - 'Deprecated: .handleExceptions() will be removed in winston@4. Use .exceptions.handle()' - ); - this.exceptions.handle(...args); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/hu.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/hu.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_769362__) { - /** - * Backwards compatibility to `exceptions.handle` in winston < 3.0.0. - * @returns {undefined} - * @deprecated - */ - unhandleExceptions(...args) { - // eslint-disable-next-line no-console - console.warn( - 'Deprecated: .unhandleExceptions() will be removed in winston@4. Use .exceptions.unhandle()' - ); - this.exceptions.unhandle(...args); - } +//! moment.js locale configuration +//! locale : Hungarian [hu] +//! author : Adam Brunner : https://github.com/adambrunner +//! author : Peter Viszt : https://github.com/passatgt - /** - * Throw a more meaningful deprecation notice - * @throws {Error} - TODO: add throws description. - */ - cli() { - throw new Error( - [ - 'Logger.cli() was removed in winston@3.0.0', - 'Use a custom winston.formats.cli() instead.', - 'See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md' - ].join('\n') - ); - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_769362__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - /** - * Bubbles the `event` that occured on the specified `transport` up - * from this instance. - * @param {string} event - The event that occured - * @param {Object} transport - Transport on which the event occured - * @private - */ - _onEvent(event, transport) { - function transportEvent(err) { - // https://github.com/winstonjs/winston/issues/1364 - if (event === 'error' && !this.transports.includes(transport)) { - this.add(transport); - } - this.emit(event, err, transport); - } + //! moment.js locale configuration - if (!transport['__winston' + event]) { - transport['__winston' + event] = transportEvent.bind(this); - transport.on(event, transport['__winston' + event]); + var weekEndings = + 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' '); + function translate(number, withoutSuffix, key, isFuture) { + var num = number; + switch (key) { + case 's': + return isFuture || withoutSuffix + ? 'néhány másodperc' + : 'néhány másodperce'; + case 'ss': + return num + (isFuture || withoutSuffix) + ? ' másodperc' + : ' másodperce'; + case 'm': + return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'mm': + return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'h': + return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'hh': + return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'd': + return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'dd': + return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'M': + return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'MM': + return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'y': + return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); + case 'yy': + return num + (isFuture || withoutSuffix ? ' év' : ' éve'); + } + return ''; } - } - - _addDefaultMeta(msg) { - if (this.defaultMeta) { - Object.assign(msg, this.defaultMeta); + function week(isFuture) { + return ( + (isFuture ? '' : '[múlt] ') + + '[' + + weekEndings[this.day()] + + '] LT[-kor]' + ); } - } -} -function getLevelValue(levels, level) { - const value = levels[level]; - if (!value && value !== 0) { - return null; - } - return value; -} + var hu = moment.defineLocale('hu', { + months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'), + weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), + weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY. MMMM D.', + LLL: 'YYYY. MMMM D. H:mm', + LLLL: 'YYYY. MMMM D., dddd H:mm', + }, + meridiemParse: /de|du/i, + isPM: function (input) { + return input.charAt(1).toLowerCase() === 'u'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower === true ? 'de' : 'DE'; + } else { + return isLower === true ? 'du' : 'DU'; + } + }, + calendar: { + sameDay: '[ma] LT[-kor]', + nextDay: '[holnap] LT[-kor]', + nextWeek: function () { + return week.call(this, true); + }, + lastDay: '[tegnap] LT[-kor]', + lastWeek: function () { + return week.call(this, false); + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s múlva', + past: '%s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); -/** - * Represents the current readableState pipe targets for this Logger instance. - * @type {Array|Object} - */ -Object.defineProperty(Logger.prototype, 'transports', { - configurable: false, - enumerable: true, - get() { - const { pipes } = this._readableState; - return !Array.isArray(pipes) ? [pipes].filter(Boolean) : pipes; - } -}); + return hu; -module.exports = Logger; +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/profiler.js": -/*!************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/profiler.js ***! - \************************************************************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/hy-am.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/hy-am.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_774177__) { -"use strict"; -/** - * profiler.js: TODO: add file header description. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ +//! moment.js locale configuration +//! locale : Armenian [hy-am] +//! author : Armendarabyan : https://github.com/armendarabyan +;(function (global, factory) { + true ? factory(__nested_webpack_require_774177__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + //! moment.js locale configuration -/** - * TODO: add class description. - * @type {Profiler} - * @private - */ -module.exports = class Profiler { - /** - * Constructor function for the Profiler instance used by - * `Logger.prototype.startTimer`. When done is called the timer will finish - * and log the duration. - * @param {!Logger} logger - TODO: add param description. - * @private - */ - constructor(logger) { - if (!logger) { - throw new Error('Logger is required for profiling.'); - } + var hyAm = moment.defineLocale('hy-am', { + months: { + format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split( + '_' + ), + standalone: + 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split( + '_' + ), + }, + monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), + weekdays: + 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split( + '_' + ), + weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY թ.', + LLL: 'D MMMM YYYY թ., HH:mm', + LLLL: 'dddd, D MMMM YYYY թ., HH:mm', + }, + calendar: { + sameDay: '[այսօր] LT', + nextDay: '[վաղը] LT', + lastDay: '[երեկ] LT', + nextWeek: function () { + return 'dddd [օրը ժամը] LT'; + }, + lastWeek: function () { + return '[անցած] dddd [օրը ժամը] LT'; + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s հետո', + past: '%s առաջ', + s: 'մի քանի վայրկյան', + ss: '%d վայրկյան', + m: 'րոպե', + mm: '%d րոպե', + h: 'ժամ', + hh: '%d ժամ', + d: 'օր', + dd: '%d օր', + M: 'ամիս', + MM: '%d ամիս', + y: 'տարի', + yy: '%d տարի', + }, + meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, + isPM: function (input) { + return /^(ցերեկվա|երեկոյան)$/.test(input); + }, + meridiem: function (hour) { + if (hour < 4) { + return 'գիշերվա'; + } else if (hour < 12) { + return 'առավոտվա'; + } else if (hour < 17) { + return 'ցերեկվա'; + } else { + return 'երեկոյան'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, + ordinal: function (number, period) { + switch (period) { + case 'DDD': + case 'w': + case 'W': + case 'DDDo': + if (number === 1) { + return number + '-ին'; + } + return number + '-րդ'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); - this.logger = logger; - this.start = Date.now(); - } + return hyAm; - /** - * Ends the current timer (i.e. Profiler) instance and logs the `msg` along - * with the duration since creation. - * @returns {mixed} - TODO: add return description. - * @private - */ - done(...args) { - if (typeof args[args.length - 1] === 'function') { - // eslint-disable-next-line no-console - console.warn('Callback function no longer supported as of winston@3.0.0'); - args.pop(); - } +}))); - const info = typeof args[args.length - 1] === 'object' ? args.pop() : {}; - info.level = info.level || 'info'; - info.durationMs = (Date.now()) - this.start; - return this.logger.write(info); - } -}; +/***/ }), +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/id.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/id.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_777880__) { -/***/ }), +//! moment.js locale configuration +//! locale : Indonesian [id] +//! author : Mohammad Satrio Utomo : https://github.com/tyok +//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/rejection-handler.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/rejection-handler.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +;(function (global, factory) { + true ? factory(__nested_webpack_require_777880__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -"use strict"; -/** - * exception-handler.js: Object for handling uncaughtException events. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ + //! moment.js locale configuration + + var id = moment.defineLocale('id', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|siang|sore|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'siang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sore' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'siang'; + } else if (hours < 19) { + return 'sore'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Besok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kemarin pukul] LT', + lastWeek: 'dddd [lalu pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lalu', + s: 'beberapa detik', + ss: '%d detik', + m: 'semenit', + mm: '%d menit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + return id; +}))); -const os = __webpack_require__(/*! os */ "os"); -const asyncForEach = __webpack_require__(/*! async/forEach */ "./node_modules/cht-core-4-0/api/node_modules/async/forEach.js"); -const debug = __webpack_require__(/*! @dabh/diagnostics */ "./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/node/index.js")('winston:rejection'); -const once = __webpack_require__(/*! one-time */ "./node_modules/cht-core-4-0/api/node_modules/one-time/index.js"); -const stackTrace = __webpack_require__(/*! stack-trace */ "./node_modules/cht-core-4-0/api/node_modules/stack-trace/lib/stack-trace.js"); -const ExceptionStream = __webpack_require__(/*! ./exception-stream */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/exception-stream.js"); -/** - * Object for handling unhandledRejection events. - * @type {RejectionHandler} - */ -module.exports = class RejectionHandler { - /** - * TODO: add contructor description - * @param {!Logger} logger - TODO: add param description - */ - constructor(logger) { - if (!logger) { - throw new Error('Logger is required to handle rejections'); - } +/***/ }), - this.logger = logger; - this.handlers = new Map(); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/is.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/is.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_781135__) { - /** - * Handles `unhandledRejection` events for the current process by adding any - * handlers passed in. - * @returns {undefined} - */ - handle(...args) { - args.forEach(arg => { - if (Array.isArray(arg)) { - return arg.forEach(handler => this._addHandler(handler)); - } +//! moment.js locale configuration +//! locale : Icelandic [is] +//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik - this._addHandler(arg); - }); +;(function (global, factory) { + true ? factory(__nested_webpack_require_781135__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (!this.catcher) { - this.catcher = this._unhandledRejection.bind(this); - process.on('unhandledRejection', this.catcher); + //! moment.js locale configuration + + function plural(n) { + if (n % 100 === 11) { + return true; + } else if (n % 10 === 1) { + return false; + } + return true; + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nokkrar sekúndur' + : 'nokkrum sekúndum'; + case 'ss': + if (plural(number)) { + return ( + result + + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum') + ); + } + return result + 'sekúnda'; + case 'm': + return withoutSuffix ? 'mínúta' : 'mínútu'; + case 'mm': + if (plural(number)) { + return ( + result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum') + ); + } else if (withoutSuffix) { + return result + 'mínúta'; + } + return result + 'mínútu'; + case 'hh': + if (plural(number)) { + return ( + result + + (withoutSuffix || isFuture + ? 'klukkustundir' + : 'klukkustundum') + ); + } + return result + 'klukkustund'; + case 'd': + if (withoutSuffix) { + return 'dagur'; + } + return isFuture ? 'dag' : 'degi'; + case 'dd': + if (plural(number)) { + if (withoutSuffix) { + return result + 'dagar'; + } + return result + (isFuture ? 'daga' : 'dögum'); + } else if (withoutSuffix) { + return result + 'dagur'; + } + return result + (isFuture ? 'dag' : 'degi'); + case 'M': + if (withoutSuffix) { + return 'mánuður'; + } + return isFuture ? 'mánuð' : 'mánuði'; + case 'MM': + if (plural(number)) { + if (withoutSuffix) { + return result + 'mánuðir'; + } + return result + (isFuture ? 'mánuði' : 'mánuðum'); + } else if (withoutSuffix) { + return result + 'mánuður'; + } + return result + (isFuture ? 'mánuð' : 'mánuði'); + case 'y': + return withoutSuffix || isFuture ? 'ár' : 'ári'; + case 'yy': + if (plural(number)) { + return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); + } + return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); + } } - } - /** - * Removes any handlers to `unhandledRejection` events for the current - * process. This does not modify the state of the `this.handlers` set. - * @returns {undefined} - */ - unhandle() { - if (this.catcher) { - process.removeListener('unhandledRejection', this.catcher); - this.catcher = false; + var is = moment.defineLocale('is', { + months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'), + weekdays: + 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split( + '_' + ), + weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'), + weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', + }, + calendar: { + sameDay: '[í dag kl.] LT', + nextDay: '[á morgun kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[í gær kl.] LT', + lastWeek: '[síðasta] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'eftir %s', + past: 'fyrir %s síðan', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: 'klukkustund', + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - Array.from(this.handlers.values()).forEach(wrapper => - this.logger.unpipe(wrapper) - ); - } - } + return is; - /** - * TODO: add method description - * @param {Error} err - Error to get information about. - * @returns {mixed} - TODO: add return description. - */ - getAllInfo(err) { - let message = null; - if (err) { - message = typeof err === 'string' ? err : err.message; - } +}))); - return { - error: err, - // TODO (indexzero): how do we configure this? - level: 'error', - message: [ - `unhandledRejection: ${message || '(no error message)'}`, - err && err.stack || ' No stack trace' - ].join('\n'), - stack: err && err.stack, - exception: true, - date: new Date().toString(), - process: this.getProcessInfo(), - os: this.getOsInfo(), - trace: this.getTrace(err) - }; - } - /** - * Gets all relevant process information for the currently running process. - * @returns {mixed} - TODO: add return description. - */ - getProcessInfo() { - return { - pid: process.pid, - uid: process.getuid ? process.getuid() : null, - gid: process.getgid ? process.getgid() : null, - cwd: process.cwd(), - execPath: process.execPath, - version: process.version, - argv: process.argv, - memoryUsage: process.memoryUsage() - }; - } +/***/ }), - /** - * Gets all relevant OS information for the currently running process. - * @returns {mixed} - TODO: add return description. - */ - getOsInfo() { - return { - loadavg: os.loadavg(), - uptime: os.uptime() - }; - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/it-ch.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/it-ch.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_786659__) { - /** - * Gets a stack trace for the specified error. - * @param {mixed} err - TODO: add param description. - * @returns {mixed} - TODO: add return description. - */ - getTrace(err) { - const trace = err ? stackTrace.parse(err) : stackTrace.get(); - return trace.map(site => { - return { - column: site.getColumnNumber(), - file: site.getFileName(), - function: site.getFunctionName(), - line: site.getLineNumber(), - method: site.getMethodName(), - native: site.isNative() - }; - }); - } +//! moment.js locale configuration +//! locale : Italian (Switzerland) [it-ch] +//! author : xfh : https://github.com/xfh - /** - * Helper method to add a transport as an exception handler. - * @param {Transport} handler - The transport to add as an exception handler. - * @returns {void} - */ - _addHandler(handler) { - if (!this.handlers.has(handler)) { - handler.handleRejections = true; - const wrapper = new ExceptionStream(handler); - this.handlers.set(handler, wrapper); - this.logger.pipe(wrapper); - } - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_786659__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - /** - * Logs all relevant information around the `err` and exits the current - * process. - * @param {Error} err - Error to handle - * @returns {mixed} - TODO: add return description. - * @private - */ - _unhandledRejection(err) { - const info = this.getAllInfo(err); - const handlers = this._getRejectionHandlers(); - // Calculate if we should exit on this error - let doExit = - typeof this.logger.exitOnError === 'function' - ? this.logger.exitOnError(err) - : this.logger.exitOnError; - let timeout; + //! moment.js locale configuration - if (!handlers.length && doExit) { - // eslint-disable-next-line no-console - console.warn('winston: exitOnError cannot be true with no rejection handlers.'); - // eslint-disable-next-line no-console - console.warn('winston: not exiting process.'); - doExit = false; - } + var itCh = moment.defineLocale('it-ch', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Oggi alle] LT', + nextDay: '[Domani alle] LT', + nextWeek: 'dddd [alle] LT', + lastDay: '[Ieri alle] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[la scorsa] dddd [alle] LT'; + default: + return '[lo scorso] dddd [alle] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; + }, + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - function gracefulExit() { - debug('doExit', doExit); - debug('process._exiting', process._exiting); + return itCh; - if (doExit && !process._exiting) { - // Remark: Currently ignoring any rejections from transports when - // catching unhandled rejections. - if (timeout) { - clearTimeout(timeout); - } - // eslint-disable-next-line no-process-exit - process.exit(1); - } - } +}))); - if (!handlers || handlers.length === 0) { - return process.nextTick(gracefulExit); - } - // Log to all transports attempting to listen for when they are completed. - asyncForEach( - handlers, - (handler, next) => { - const done = once(next); - const transport = handler.transport || handler; +/***/ }), - // Debug wrapping so that we can inspect what's going on under the covers. - function onDone(event) { - return () => { - debug(event); - done(); - }; - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/it.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/it.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_789433__) { - transport._ending = true; - transport.once('finish', onDone('finished')); - transport.once('error', onDone('error')); - }, - () => doExit && gracefulExit() - ); +//! moment.js locale configuration +//! locale : Italian [it] +//! author : Lorenzo : https://github.com/aliem +//! author: Mattia Larentis: https://github.com/nostalgiaz +//! author: Marco : https://github.com/Manfre98 - this.logger.log(info); +;(function (global, factory) { + true ? factory(__nested_webpack_require_789433__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - // If exitOnError is true, then only allow the logging of exceptions to - // take up to `3000ms`. - if (doExit) { - timeout = setTimeout(gracefulExit, 3000); - } - } + //! moment.js locale configuration - /** - * Returns the list of transports and exceptionHandlers for this instance. - * @returns {Array} - List of transports and exceptionHandlers for this - * instance. - * @private - */ - _getRejectionHandlers() { - // Remark (indexzero): since `logger.transports` returns all of the pipes - // from the _readableState of the stream we actually get the join of the - // explicit handlers and the implicit transports with - // `handleRejections: true` - return this.logger.transports.filter(wrap => { - const transport = wrap.transport || wrap; - return transport.handleRejections; + var it = moment.defineLocale('it', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: function () { + return ( + '[Oggi a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextDay: function () { + return ( + '[Domani a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextWeek: function () { + return ( + 'dddd [a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastDay: function () { + return ( + '[Ieri a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastWeek: function () { + switch (this.day()) { + case 0: + return ( + '[La scorsa] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + default: + return ( + '[Lo scorso] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'tra %s', + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + w: 'una settimana', + ww: '%d settimane', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, }); - } -}; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/tail-file.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/tail-file.js ***! - \*************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * tail-file.js: TODO: add file header description. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ - - - -const fs = __webpack_require__(/*! fs */ "fs"); -const { StringDecoder } = __webpack_require__(/*! string_decoder */ "string_decoder"); -const { Stream } = __webpack_require__(/*! readable-stream */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/readable.js"); - -/** - * Simple no-op function. - * @returns {undefined} - */ -function noop() {} - -/** - * TODO: add function description. - * @param {Object} options - Options for tail. - * @param {function} iter - Iterator function to execute on every line. -* `tail -f` a file. Options must include file. - * @returns {mixed} - TODO: add return description. - */ -module.exports = (options, iter) => { - const buffer = Buffer.alloc(64 * 1024); - const decode = new StringDecoder('utf8'); - const stream = new Stream(); - let buff = ''; - let pos = 0; - let row = 0; - - if (options.start === -1) { - delete options.start; - } - stream.readable = true; - stream.destroy = () => { - stream.destroyed = true; - stream.emit('end'); - stream.emit('close'); - }; + return it; - fs.open(options.file, 'a+', '0644', (err, fd) => { - if (err) { - if (!iter) { - stream.emit('error', err); - } else { - iter(err); - } - stream.destroy(); - return; - } +}))); - (function read() { - if (stream.destroyed) { - fs.close(fd, noop); - return; - } - return fs.read(fd, buffer, 0, buffer.length, pos, (error, bytes) => { - if (error) { - if (!iter) { - stream.emit('error', error); - } else { - iter(error); - } - stream.destroy(); - return; - } +/***/ }), - if (!bytes) { - if (buff) { - // eslint-disable-next-line eqeqeq - if (options.start == null || row > options.start) { - if (!iter) { - stream.emit('line', buff); - } else { - iter(null, buff); - } - } - row++; - buff = ''; - } - return setTimeout(read, 1000); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ja.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ja.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_793673__) { - let data = decode.write(buffer.slice(0, bytes)); - if (!iter) { - stream.emit('data', data); - } +//! moment.js locale configuration +//! locale : Japanese [ja] +//! author : LI Long : https://github.com/baryon - data = (buff + data).split(/\n+/); +;(function (global, factory) { + true ? factory(__nested_webpack_require_793673__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - const l = data.length - 1; - let i = 0; + //! moment.js locale configuration - for (; i < l; i++) { - // eslint-disable-next-line eqeqeq - if (options.start == null || row > options.start) { - if (!iter) { - stream.emit('line', data[i]); + var ja = moment.defineLocale('ja', { + eras: [ + { + since: '2019-05-01', + offset: 1, + name: '令和', + narrow: '㋿', + abbr: 'R', + }, + { + since: '1989-01-08', + until: '2019-04-30', + offset: 1, + name: '平成', + narrow: '㍻', + abbr: 'H', + }, + { + since: '1926-12-25', + until: '1989-01-07', + offset: 1, + name: '昭和', + narrow: '㍼', + abbr: 'S', + }, + { + since: '1912-07-30', + until: '1926-12-24', + offset: 1, + name: '大正', + narrow: '㍽', + abbr: 'T', + }, + { + since: '1873-01-01', + until: '1912-07-29', + offset: 6, + name: '明治', + narrow: '㍾', + abbr: 'M', + }, + { + since: '0001-01-01', + until: '1873-12-31', + offset: 1, + name: '西暦', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: '紀元前', + narrow: 'BC', + abbr: 'BC', + }, + ], + eraYearOrdinalRegex: /(元|\d+)年/, + eraYearOrdinalParse: function (input, match) { + return match[1] === '元' ? 1 : parseInt(match[1] || input, 10); + }, + months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'), + weekdaysShort: '日_月_火_水_木_金_土'.split('_'), + weekdaysMin: '日_月_火_水_木_金_土'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日 dddd HH:mm', + l: 'YYYY/MM/DD', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日(ddd) HH:mm', + }, + meridiemParse: /午前|午後/i, + isPM: function (input) { + return input === '午後'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '午前'; } else { - iter(null, data[i]); + return '午後'; } - } - row++; - } - - buff = data[l]; - pos += bytes; - return read(); - }); - }()); - }); + }, + calendar: { + sameDay: '[今日] LT', + nextDay: '[明日] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[来週]dddd LT'; + } else { + return 'dddd LT'; + } + }, + lastDay: '[昨日] LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[先週]dddd LT'; + } else { + return 'dddd LT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}日/, + ordinal: function (number, period) { + switch (period) { + case 'y': + return number === 1 ? '元年' : number + '年'; + case 'd': + case 'D': + case 'DDD': + return number + '日'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '数秒', + ss: '%d秒', + m: '1分', + mm: '%d分', + h: '1時間', + hh: '%d時間', + d: '1日', + dd: '%d日', + M: '1ヶ月', + MM: '%dヶ月', + y: '1年', + yy: '%d年', + }, + }); - if (!iter) { - return stream; - } + return ja; - return stream.destroy; -}; +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/console.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/console.js ***! - \**********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/* eslint-disable no-console */ -/* - * console.js: Transport for outputting to the console. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ - +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/jv.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/jv.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_798512__) { +//! moment.js locale configuration +//! locale : Javanese [jv] +//! author : Rony Lantip : https://github.com/lantip +//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa -const os = __webpack_require__(/*! os */ "os"); -const { LEVEL, MESSAGE } = __webpack_require__(/*! triple-beam */ "./node_modules/cht-core-4-0/api/node_modules/triple-beam/index.js"); -const TransportStream = __webpack_require__(/*! winston-transport */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/index.js"); - -/** - * Transport for outputting to the console. - * @type {Console} - * @extends {TransportStream} - */ -module.exports = class Console extends TransportStream { - /** - * Constructor function for the Console transport object responsible for - * persisting log messages and metadata to a terminal or TTY. - * @param {!Object} [options={}] - Options for this instance. - */ - constructor(options = {}) { - super(options); +;(function (global, factory) { + true ? factory(__nested_webpack_require_798512__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - // Expose the name of this Transport on the prototype - this.name = options.name || 'console'; - this.stderrLevels = this._stringArrayToSet(options.stderrLevels); - this.consoleWarnLevels = this._stringArrayToSet(options.consoleWarnLevels); - this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL; + //! moment.js locale configuration - this.setMaxListeners(30); - } + var jv = moment.defineLocale('jv', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), + weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /enjing|siyang|sonten|ndalu/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'enjing') { + return hour; + } else if (meridiem === 'siyang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sonten' || meridiem === 'ndalu') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'enjing'; + } else if (hours < 15) { + return 'siyang'; + } else if (hours < 19) { + return 'sonten'; + } else { + return 'ndalu'; + } + }, + calendar: { + sameDay: '[Dinten puniko pukul] LT', + nextDay: '[Mbenjang pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kala wingi pukul] LT', + lastWeek: 'dddd [kepengker pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'wonten ing %s', + past: '%s ingkang kepengker', + s: 'sawetawis detik', + ss: '%d detik', + m: 'setunggal menit', + mm: '%d menit', + h: 'setunggal jam', + hh: '%d jam', + d: 'sedinten', + dd: '%d dinten', + M: 'sewulan', + MM: '%d wulan', + y: 'setaun', + yy: '%d taun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); - /** - * Core logging method exposed to Winston. - * @param {Object} info - TODO: add param description. - * @param {Function} callback - TODO: add param description. - * @returns {undefined} - */ - log(info, callback) { - setImmediate(() => this.emit('logged', info)); + return jv; - // Remark: what if there is no raw...? - if (this.stderrLevels[info[LEVEL]]) { - if (console._stderr) { - // Node.js maps `process.stderr` to `console._stderr`. - console._stderr.write(`${info[MESSAGE]}${this.eol}`); - } else { - // console.error adds a newline - console.error(info[MESSAGE]); - } +}))); - if (callback) { - callback(); // eslint-disable-line callback-return - } - return; - } else if (this.consoleWarnLevels[info[LEVEL]]) { - if (console._stderr) { - // Node.js maps `process.stderr` to `console._stderr`. - // in Node.js console.warn is an alias for console.error - console._stderr.write(`${info[MESSAGE]}${this.eol}`); - } else { - // console.warn adds a newline - console.warn(info[MESSAGE]); - } - if (callback) { - callback(); // eslint-disable-line callback-return - } - return; - } +/***/ }), - if (console._stdout) { - // Node.js maps `process.stdout` to `console._stdout`. - console._stdout.write(`${info[MESSAGE]}${this.eol}`); - } else { - // console.log adds a newline. - console.log(info[MESSAGE]); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ka.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ka.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_801776__) { - if (callback) { - callback(); // eslint-disable-line callback-return - } - } +//! moment.js locale configuration +//! locale : Georgian [ka] +//! author : Irakli Janiashvili : https://github.com/IrakliJani - /** - * Returns a Set-like object with strArray's elements as keys (each with the - * value true). - * @param {Array} strArray - Array of Set-elements as strings. - * @param {?string} [errMsg] - Custom error message thrown on invalid input. - * @returns {Object} - TODO: add return description. - * @private - */ - _stringArrayToSet(strArray, errMsg) { - if (!strArray) - return {}; +;(function (global, factory) { + true ? factory(__nested_webpack_require_801776__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - errMsg = errMsg || 'Cannot make set from type other than Array of string elements'; + //! moment.js locale configuration - if (!Array.isArray(strArray)) { - throw new Error(errMsg); - } + var ka = moment.defineLocale('ka', { + months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split( + '_' + ), + monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), + weekdays: { + standalone: + 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split( + '_' + ), + format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split( + '_' + ), + isFormat: /(წინა|შემდეგ)/, + }, + weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), + weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[დღეს] LT[-ზე]', + nextDay: '[ხვალ] LT[-ზე]', + lastDay: '[გუშინ] LT[-ზე]', + nextWeek: '[შემდეგ] dddd LT[-ზე]', + lastWeek: '[წინა] dddd LT-ზე', + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return s.replace( + /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, + function ($0, $1, $2) { + return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში'; + } + ); + }, + past: function (s) { + if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) { + return s.replace(/(ი|ე)$/, 'ის წინ'); + } + if (/წელი/.test(s)) { + return s.replace(/წელი$/, 'წლის წინ'); + } + return s; + }, + s: 'რამდენიმე წამი', + ss: '%d წამი', + m: 'წუთი', + mm: '%d წუთი', + h: 'საათი', + hh: '%d საათი', + d: 'დღე', + dd: '%d დღე', + M: 'თვე', + MM: '%d თვე', + y: 'წელი', + yy: '%d წელი', + }, + dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, + ordinal: function (number) { + if (number === 0) { + return number; + } + if (number === 1) { + return number + '-ლი'; + } + if ( + number < 20 || + (number <= 100 && number % 20 === 0) || + number % 100 === 0 + ) { + return 'მე-' + number; + } + return number + '-ე'; + }, + week: { + dow: 1, + doy: 7, + }, + }); - return strArray.reduce((set, el) => { - if (typeof el !== 'string') { - throw new Error(errMsg); - } - set[el] = true; + return ka; - return set; - }, {}); - } -}; +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/file.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/file.js ***! - \*******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/* eslint-disable complexity,max-statements */ -/** - * file.js: Transport for outputting to a local log file. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ - - - -const fs = __webpack_require__(/*! fs */ "fs"); -const path = __webpack_require__(/*! path */ "path"); -const asyncSeries = __webpack_require__(/*! async/series */ "./node_modules/cht-core-4-0/api/node_modules/async/series.js"); -const zlib = __webpack_require__(/*! zlib */ "zlib"); -const { MESSAGE } = __webpack_require__(/*! triple-beam */ "./node_modules/cht-core-4-0/api/node_modules/triple-beam/index.js"); -const { Stream, PassThrough } = __webpack_require__(/*! readable-stream */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/readable.js"); -const TransportStream = __webpack_require__(/*! winston-transport */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/index.js"); -const debug = __webpack_require__(/*! @dabh/diagnostics */ "./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/node/index.js")('winston:file'); -const os = __webpack_require__(/*! os */ "os"); -const tailFile = __webpack_require__(/*! ../tail-file */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/tail-file.js"); - -/** - * Transport for outputting to a local log file. - * @type {File} - * @extends {TransportStream} - */ -module.exports = class File extends TransportStream { - /** - * Constructor function for the File transport object responsible for - * persisting log messages and metadata to one or more files. - * @param {Object} options - Options for this instance. - */ - constructor(options = {}) { - super(options); - - // Expose the name of this Transport on the prototype. - this.name = options.name || 'file'; - - // Helper function which throws an `Error` in the event that any of the - // rest of the arguments is present in `options`. - function throwIf(target, ...args) { - args.slice(1).forEach(name => { - if (options[name]) { - throw new Error(`Cannot set ${name} and ${target} together`); - } - }); - } - - // Setup the base stream that always gets piped to to handle buffering. - this._stream = new PassThrough(); - this._stream.setMaxListeners(30); - - // Bind this context for listener methods. - this._onError = this._onError.bind(this); - - if (options.filename || options.dirname) { - throwIf('filename or dirname', 'stream'); - this._basename = this.filename = options.filename - ? path.basename(options.filename) - : 'winston.log'; - - this.dirname = options.dirname || path.dirname(options.filename); - this.options = options.options || { flags: 'a' }; - } else if (options.stream) { - // eslint-disable-next-line no-console - console.warn('options.stream will be removed in winston@4. Use winston.transports.Stream'); - throwIf('stream', 'filename', 'maxsize'); - this._dest = this._stream.pipe(this._setupStream(options.stream)); - this.dirname = path.dirname(this._dest.path); - // We need to listen for drain events when write() returns false. This - // can make node mad at times. - } else { - throw new Error('Cannot log to file without filename or stream.'); - } - - this.maxsize = options.maxsize || null; - this.rotationFormat = options.rotationFormat || false; - this.zippedArchive = options.zippedArchive || false; - this.maxFiles = options.maxFiles || null; - this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL; - this.tailable = options.tailable || false; +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/kk.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/kk.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_805344__) { - // Internal state variables representing the number of files this instance - // has created and the current size (in bytes) of the current logfile. - this._size = 0; - this._pendingSize = 0; - this._created = 0; - this._drain = false; - this._opening = false; - this._ending = false; +//! moment.js locale configuration +//! locale : Kazakh [kk] +//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan - if (this.dirname) this._createLogDirIfNotExist(this.dirname); - this.open(); - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_805344__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - finishIfEnding() { - if (this._ending) { - if (this._opening) { - this.once('open', () => { - this._stream.once('finish', () => this.emit('finish')); - setImmediate(() => this._stream.end()); - }); - } else { - this._stream.once('finish', () => this.emit('finish')); - setImmediate(() => this._stream.end()); - } - } - } + //! moment.js locale configuration + var suffixes = { + 0: '-ші', + 1: '-ші', + 2: '-ші', + 3: '-ші', + 4: '-ші', + 5: '-ші', + 6: '-шы', + 7: '-ші', + 8: '-ші', + 9: '-шы', + 10: '-шы', + 20: '-шы', + 30: '-шы', + 40: '-шы', + 50: '-ші', + 60: '-шы', + 70: '-ші', + 80: '-ші', + 90: '-шы', + 100: '-ші', + }; - /** - * Core logging method exposed to Winston. Metadata is optional. - * @param {Object} info - TODO: add param description. - * @param {Function} callback - TODO: add param description. - * @returns {undefined} - */ - log(info, callback = () => {}) { - // Remark: (jcrugzz) What is necessary about this callback(null, true) now - // when thinking about 3.x? Should silent be handled in the base - // TransportStream _write method? - if (this.silent) { - callback(); - return true; - } + var kk = moment.defineLocale('kk', { + months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split( + '_' + ), + monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), + weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split( + '_' + ), + weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), + weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Бүгін сағат] LT', + nextDay: '[Ертең сағат] LT', + nextWeek: 'dddd [сағат] LT', + lastDay: '[Кеше сағат] LT', + lastWeek: '[Өткен аптаның] dddd [сағат] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ішінде', + past: '%s бұрын', + s: 'бірнеше секунд', + ss: '%d секунд', + m: 'бір минут', + mm: '%d минут', + h: 'бір сағат', + hh: '%d сағат', + d: 'бір күн', + dd: '%d күн', + M: 'бір ай', + MM: '%d ай', + y: 'бір жыл', + yy: '%d жыл', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); - // Output stream buffer is full and has asked us to wait for the drain event - if (this._drain) { - this._stream.once('drain', () => { - this._drain = false; - this.log(info, callback); - }); - return; - } - if (this._rotate) { - this._stream.once('rotate', () => { - this._rotate = false; - this.log(info, callback); - }); - return; - } + return kk; - // Grab the raw string and append the expected EOL. - const output = `${info[MESSAGE]}${this.eol}`; - const bytes = Buffer.byteLength(output); +}))); - // After we have written to the PassThrough check to see if we need - // to rotate to the next file. - // - // Remark: This gets called too early and does not depict when data - // has been actually flushed to disk. - function logged() { - this._size += bytes; - this._pendingSize -= bytes; - debug('logged %s %s', this._size, output); - this.emit('logged', info); +/***/ }), - // Do not attempt to rotate files while opening - if (this._opening) { - return; - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/km.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/km.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_808376__) { - // Check to see if we need to end the stream and create a new one. - if (!this._needsNewFile()) { - return; - } +//! moment.js locale configuration +//! locale : Cambodian [km] +//! author : Kruy Vanna : https://github.com/kruyvanna - // End the current stream, ensure it flushes and create a new one. - // This could potentially be optimized to not run a stat call but its - // the safest way since we are supporting `maxFiles`. - this._rotate = true; - this._endStream(() => this._rotateFile()); - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_808376__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - // Keep track of the pending bytes being written while files are opening - // in order to properly rotate the PassThrough this._stream when the file - // eventually does open. - this._pendingSize += bytes; - if (this._opening - && !this.rotatedWhileOpening - && this._needsNewFile(this._size + this._pendingSize)) { - this.rotatedWhileOpening = true; - } + //! moment.js locale configuration - const written = this._stream.write(output, logged.bind(this)); - if (!written) { - this._drain = true; - this._stream.once('drain', () => { - this._drain = false; - callback(); - }); - } else { - callback(); // eslint-disable-line callback-return - } + var symbolMap = { + 1: '១', + 2: '២', + 3: '៣', + 4: '៤', + 5: '៥', + 6: '៦', + 7: '៧', + 8: '៨', + 9: '៩', + 0: '០', + }, + numberMap = { + '១': '1', + '២': '2', + '៣': '3', + '៤': '4', + '៥': '5', + '៦': '6', + '៧': '7', + '៨': '8', + '៩': '9', + '០': '0', + }; - debug('written', written, this._drain); + var km = moment.defineLocale('km', { + months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( + '_' + ), + monthsShort: + 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( + '_' + ), + weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), + weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), + weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /ព្រឹក|ល្ងាច/, + isPM: function (input) { + return input === 'ល្ងាច'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ព្រឹក'; + } else { + return 'ល្ងាច'; + } + }, + calendar: { + sameDay: '[ថ្ងៃនេះ ម៉ោង] LT', + nextDay: '[ស្អែក ម៉ោង] LT', + nextWeek: 'dddd [ម៉ោង] LT', + lastDay: '[ម្សិលមិញ ម៉ោង] LT', + lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sទៀត', + past: '%sមុន', + s: 'ប៉ុន្មានវិនាទី', + ss: '%d វិនាទី', + m: 'មួយនាទី', + mm: '%d នាទី', + h: 'មួយម៉ោង', + hh: '%d ម៉ោង', + d: 'មួយថ្ងៃ', + dd: '%d ថ្ងៃ', + M: 'មួយខែ', + MM: '%d ខែ', + y: 'មួយឆ្នាំ', + yy: '%d ឆ្នាំ', + }, + dayOfMonthOrdinalParse: /ទី\d{1,2}/, + ordinal: 'ទី%d', + preparse: function (string) { + return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - this.finishIfEnding(); + return km; - return written; - } +}))); - /** - * Query the transport. Options object is optional. - * @param {Object} options - Loggly-like query options for this instance. - * @param {function} callback - Continuation to respond to when complete. - * TODO: Refactor me. - */ - query(options, callback) { - if (typeof options === 'function') { - callback = options; - options = {}; - } - options = normalizeQuery(options); - const file = path.join(this.dirname, this.filename); - let buff = ''; - let results = []; - let row = 0; +/***/ }), - const stream = fs.createReadStream(file, { - encoding: 'utf8' - }); +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/kn.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/kn.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_811990__) { - stream.on('error', err => { - if (stream.readable) { - stream.destroy(); - } - if (!callback) { - return; - } +//! moment.js locale configuration +//! locale : Kannada [kn] +//! author : Rajeev Naik : https://github.com/rajeevnaikte - return err.code !== 'ENOENT' ? callback(err) : callback(null, results); - }); +;(function (global, factory) { + true ? factory(__nested_webpack_require_811990__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - stream.on('data', data => { - data = (buff + data).split(/\n+/); - const l = data.length - 1; - let i = 0; + //! moment.js locale configuration - for (; i < l; i++) { - if (!options.start || row >= options.start) { - add(data[i]); - } - row++; - } + var symbolMap = { + 1: '೧', + 2: '೨', + 3: '೩', + 4: '೪', + 5: '೫', + 6: '೬', + 7: '೭', + 8: '೮', + 9: '೯', + 0: '೦', + }, + numberMap = { + '೧': '1', + '೨': '2', + '೩': '3', + '೪': '4', + '೫': '5', + '೬': '6', + '೭': '7', + '೮': '8', + '೯': '9', + '೦': '0', + }; - buff = data[l]; + var kn = moment.defineLocale('kn', { + months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split( + '_' + ), + monthsShort: + 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split( + '_' + ), + weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'), + weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[ಇಂದು] LT', + nextDay: '[ನಾಳೆ] LT', + nextWeek: 'dddd, LT', + lastDay: '[ನಿನ್ನೆ] LT', + lastWeek: '[ಕೊನೆಯ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ನಂತರ', + past: '%s ಹಿಂದೆ', + s: 'ಕೆಲವು ಕ್ಷಣಗಳು', + ss: '%d ಸೆಕೆಂಡುಗಳು', + m: 'ಒಂದು ನಿಮಿಷ', + mm: '%d ನಿಮಿಷ', + h: 'ಒಂದು ಗಂಟೆ', + hh: '%d ಗಂಟೆ', + d: 'ಒಂದು ದಿನ', + dd: '%d ದಿನ', + M: 'ಒಂದು ತಿಂಗಳು', + MM: '%d ತಿಂಗಳು', + y: 'ಒಂದು ವರ್ಷ', + yy: '%d ವರ್ಷ', + }, + preparse: function (string) { + return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ರಾತ್ರಿ') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') { + return hour; + } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'ಸಂಜೆ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ರಾತ್ರಿ'; + } else if (hour < 10) { + return 'ಬೆಳಿಗ್ಗೆ'; + } else if (hour < 17) { + return 'ಮಧ್ಯಾಹ್ನ'; + } else if (hour < 20) { + return 'ಸಂಜೆ'; + } else { + return 'ರಾತ್ರಿ'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/, + ordinal: function (number) { + return number + 'ನೇ'; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, }); - stream.on('close', () => { - if (buff) { - add(buff, true); - } - if (options.order === 'desc') { - results = results.reverse(); - } - - // eslint-disable-next-line callback-return - if (callback) callback(null, results); - }); + return kn; - function add(buff, attempt) { - try { - const log = JSON.parse(buff); - if (check(log)) { - push(log); - } - } catch (e) { - if (!attempt) { - stream.emit('error', e); - } - } - } +}))); - function push(log) { - if ( - options.rows && - results.length >= options.rows && - options.order !== 'desc' - ) { - if (stream.readable) { - stream.destroy(); - } - return; - } - if (options.fields) { - log = options.fields.reduce((obj, key) => { - obj[key] = log[key]; - return obj; - }, {}); - } +/***/ }), - if (options.order === 'desc') { - if (results.length >= options.rows) { - results.shift(); - } - } - results.push(log); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ko.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ko.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_816380__) { - function check(log) { - if (!log) { - return; - } +//! moment.js locale configuration +//! locale : Korean [ko] +//! author : Kyungwook, Park : https://github.com/kyungw00k +//! author : Jeeeyul Lee - if (typeof log !== 'object') { - return; - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_816380__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - const time = new Date(log.timestamp); - if ( - (options.from && time < options.from) || - (options.until && time > options.until) || - (options.level && options.level !== log.level) - ) { - return; - } + //! moment.js locale configuration - return true; - } + var ko = moment.defineLocale('ko', { + months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), + monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split( + '_' + ), + weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'), + weekdaysShort: '일_월_화_수_목_금_토'.split('_'), + weekdaysMin: '일_월_화_수_목_금_토'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY년 MMMM D일', + LLL: 'YYYY년 MMMM D일 A h:mm', + LLLL: 'YYYY년 MMMM D일 dddd A h:mm', + l: 'YYYY.MM.DD.', + ll: 'YYYY년 MMMM D일', + lll: 'YYYY년 MMMM D일 A h:mm', + llll: 'YYYY년 MMMM D일 dddd A h:mm', + }, + calendar: { + sameDay: '오늘 LT', + nextDay: '내일 LT', + nextWeek: 'dddd LT', + lastDay: '어제 LT', + lastWeek: '지난주 dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 후', + past: '%s 전', + s: '몇 초', + ss: '%d초', + m: '1분', + mm: '%d분', + h: '한 시간', + hh: '%d시간', + d: '하루', + dd: '%d일', + M: '한 달', + MM: '%d달', + y: '일 년', + yy: '%d년', + }, + dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '일'; + case 'M': + return number + '월'; + case 'w': + case 'W': + return number + '주'; + default: + return number; + } + }, + meridiemParse: /오전|오후/, + isPM: function (token) { + return token === '오후'; + }, + meridiem: function (hour, minute, isUpper) { + return hour < 12 ? '오전' : '오후'; + }, + }); - function normalizeQuery(options) { - options = options || {}; + return ko; - // limit - options.rows = options.rows || options.limit || 10; +}))); - // starting row offset - options.start = options.start || 0; - // now - options.until = options.until || new Date(); - if (typeof options.until !== 'object') { - options.until = new Date(options.until); - } +/***/ }), - // now - 24 - options.from = options.from || (options.until - (24 * 60 * 60 * 1000)); - if (typeof options.from !== 'object') { - options.from = new Date(options.from); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ku.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ku.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_819245__) { - // 'asc' or 'desc' - options.order = options.order || 'desc'; +//! moment.js locale configuration +//! locale : Kurdish [ku] +//! author : Shahram Mebashar : https://github.com/ShahramMebashar - return options; - } - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_819245__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - /** - * Returns a log stream for this transport. Options object is optional. - * @param {Object} options - Stream options for this instance. - * @returns {Stream} - TODO: add return description. - * TODO: Refactor me. - */ - stream(options = {}) { - const file = path.join(this.dirname, this.filename); - const stream = new Stream(); - const tail = { - file, - start: options.start - }; + //! moment.js locale configuration - stream.destroy = tailFile(tail, (err, line) => { - if (err) { - return stream.emit('error', err); - } + var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }, + months = [ + 'کانونی دووەم', + 'شوبات', + 'ئازار', + 'نیسان', + 'ئایار', + 'حوزەیران', + 'تەمموز', + 'ئاب', + 'ئەیلوول', + 'تشرینی یەكەم', + 'تشرینی دووەم', + 'كانونی یەکەم', + ]; - try { - stream.emit('data', line); - line = JSON.parse(line); - stream.emit('log', line); - } catch (e) { - stream.emit('error', e); - } + var ku = moment.defineLocale('ku', { + months: months, + monthsShort: months, + weekdays: + 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split( + '_' + ), + weekdaysShort: + 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'), + weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /ئێواره‌|به‌یانی/, + isPM: function (input) { + return /ئێواره‌/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'به‌یانی'; + } else { + return 'ئێواره‌'; + } + }, + calendar: { + sameDay: '[ئه‌مرۆ كاتژمێر] LT', + nextDay: '[به‌یانی كاتژمێر] LT', + nextWeek: 'dddd [كاتژمێر] LT', + lastDay: '[دوێنێ كاتژمێر] LT', + lastWeek: 'dddd [كاتژمێر] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'له‌ %s', + past: '%s', + s: 'چه‌ند چركه‌یه‌ك', + ss: 'چركه‌ %d', + m: 'یه‌ك خوله‌ك', + mm: '%d خوله‌ك', + h: 'یه‌ك كاتژمێر', + hh: '%d كاتژمێر', + d: 'یه‌ك ڕۆژ', + dd: '%d ڕۆژ', + M: 'یه‌ك مانگ', + MM: '%d مانگ', + y: 'یه‌ك ساڵ', + yy: '%d ساڵ', + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, }); - return stream; - } - - /** - * Checks to see the filesize of. - * @returns {undefined} - */ - open() { - // If we do not have a filename then we were passed a stream and - // don't need to keep track of size. - if (!this.filename) return; - if (this._opening) return; + return ku; - this._opening = true; +}))); - // Stat the target file to get the size and create the stream. - this.stat((err, size) => { - if (err) { - return this.emit('error', err); - } - debug('stat done: %s { size: %s }', this.filename, size); - this._size = size; - this._dest = this._createStream(this._stream); - this._opening = false; - this.once('open', () => { - if (this._stream.eventNames().includes('rotate')) { - this._stream.emit('rotate'); - } else { - this._rotate = false; - } - }); - }); - } - /** - * Stat the file and assess information in order to create the proper stream. - * @param {function} callback - TODO: add param description. - * @returns {undefined} - */ - stat(callback) { - const target = this._getFile(); - const fullpath = path.join(this.dirname, target); +/***/ }), - fs.stat(fullpath, (err, stat) => { - if (err && err.code === 'ENOENT') { - debug('ENOENT ok', fullpath); - // Update internally tracked filename with the new target name. - this.filename = target; - return callback(null, 0); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ky.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ky.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_823163__) { - if (err) { - debug(`err ${err.code} ${fullpath}`); - return callback(err); - } +//! moment.js locale configuration +//! locale : Kyrgyz [ky] +//! author : Chyngyz Arystan uulu : https://github.com/chyngyz - if (!stat || this._needsNewFile(stat.size)) { - // If `stats.size` is greater than the `maxsize` for this - // instance then try again. - return this._incFile(() => this.stat(callback)); - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_823163__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - // Once we have figured out what the filename is, set it - // and return the size. - this.filename = target; - callback(null, stat.size); - }); - } + //! moment.js locale configuration - /** - * Closes the stream associated with this instance. - * @param {function} cb - TODO: add param description. - * @returns {undefined} - */ - close(cb) { - if (!this._stream) { - return; - } + var suffixes = { + 0: '-чү', + 1: '-чи', + 2: '-чи', + 3: '-чү', + 4: '-чү', + 5: '-чи', + 6: '-чы', + 7: '-чи', + 8: '-чи', + 9: '-чу', + 10: '-чу', + 20: '-чы', + 30: '-чу', + 40: '-чы', + 50: '-чү', + 60: '-чы', + 70: '-чи', + 80: '-чи', + 90: '-чу', + 100: '-чү', + }; - this._stream.end(() => { - if (cb) { - cb(); // eslint-disable-line callback-return - } - this.emit('flush'); - this.emit('closed'); + var ky = moment.defineLocale('ky', { + months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( + '_' + ), + monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split( + '_' + ), + weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split( + '_' + ), + weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'), + weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Бүгүн саат] LT', + nextDay: '[Эртең саат] LT', + nextWeek: 'dddd [саат] LT', + lastDay: '[Кечээ саат] LT', + lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ичинде', + past: '%s мурун', + s: 'бирнече секунд', + ss: '%d секунд', + m: 'бир мүнөт', + mm: '%d мүнөт', + h: 'бир саат', + hh: '%d саат', + d: 'бир күн', + dd: '%d күн', + M: 'бир ай', + MM: '%d ай', + y: 'бир жыл', + yy: '%d жыл', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, }); - } - /** - * TODO: add method description. - * @param {number} size - TODO: add param description. - * @returns {undefined} - */ - _needsNewFile(size) { - size = size || this._size; - return this.maxsize && size >= this.maxsize; - } + return ky; - /** - * TODO: add method description. - * @param {Error} err - TODO: add param description. - * @returns {undefined} - */ - _onError(err) { - this.emit('error', err); - } +}))); - /** - * TODO: add method description. - * @param {Stream} stream - TODO: add param description. - * @returns {mixed} - TODO: add return description. - */ - _setupStream(stream) { - stream.on('error', this._onError); - return stream; - } +/***/ }), - /** - * TODO: add method description. - * @param {Stream} stream - TODO: add param description. - * @returns {mixed} - TODO: add return description. - */ - _cleanupStream(stream) { - stream.removeListener('error', this._onError); +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/lb.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/lb.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_826226__) { - return stream; - } +//! moment.js locale configuration +//! locale : Luxembourgish [lb] +//! author : mweimerskirch : https://github.com/mweimerskirch +//! author : David Raison : https://github.com/kwisatz - /** - * TODO: add method description. - */ - _rotateFile() { - this._incFile(() => this.open()); - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_826226__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - /** - * Unpipe from the stream that has been marked as full and end it so it - * flushes to disk. - * - * @param {function} callback - Callback for when the current file has closed. - * @private - */ - _endStream(callback = () => {}) { - if (this._dest) { - this._stream.unpipe(this._dest); - this._dest.end(() => { - this._cleanupStream(this._dest); - callback(); - }); - } else { - callback(); // eslint-disable-line callback-return + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eng Minutt', 'enger Minutt'], + h: ['eng Stonn', 'enger Stonn'], + d: ['een Dag', 'engem Dag'], + M: ['ee Mount', 'engem Mount'], + y: ['ee Joer', 'engem Joer'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + function processFutureTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'a ' + string; + } + return 'an ' + string; + } + function processPastTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'viru ' + string; + } + return 'virun ' + string; + } + /** + * Returns true if the word before the given number loses the '-n' ending. + * e.g. 'an 10 Deeg' but 'a 5 Deeg' + * + * @param number {integer} + * @returns {boolean} + */ + function eifelerRegelAppliesToNumber(number) { + number = parseInt(number, 10); + if (isNaN(number)) { + return false; + } + if (number < 0) { + // Negative Number --> always true + return true; + } else if (number < 10) { + // Only 1 digit + if (4 <= number && number <= 7) { + return true; + } + return false; + } else if (number < 100) { + // 2 digits + var lastDigit = number % 10, + firstDigit = number / 10; + if (lastDigit === 0) { + return eifelerRegelAppliesToNumber(firstDigit); + } + return eifelerRegelAppliesToNumber(lastDigit); + } else if (number < 10000) { + // 3 or 4 digits --> recursively check first digit + while (number >= 10) { + number = number / 10; + } + return eifelerRegelAppliesToNumber(number); + } else { + // Anything larger than 4 digits: recursively check first n-3 digits + number = number / 1000; + return eifelerRegelAppliesToNumber(number); + } } - } - /** - * Returns the WritableStream for the active file on this instance. If we - * should gzip the file then a zlib stream is returned. - * - * @param {ReadableStream} source – PassThrough to pipe to the file when open. - * @returns {WritableStream} Stream that writes to disk for the active file. - */ - _createStream(source) { - const fullpath = path.join(this.dirname, this.filename); + var lb = moment.defineLocale('lb', { + months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split( + '_' + ), + weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm [Auer]', + LTS: 'H:mm:ss [Auer]', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm [Auer]', + LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', + }, + calendar: { + sameDay: '[Haut um] LT', + sameElse: 'L', + nextDay: '[Muer um] LT', + nextWeek: 'dddd [um] LT', + lastDay: '[Gëschter um] LT', + lastWeek: function () { + // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule + switch (this.day()) { + case 2: + case 4: + return '[Leschten] dddd [um] LT'; + default: + return '[Leschte] dddd [um] LT'; + } + }, + }, + relativeTime: { + future: processFutureTime, + past: processPastTime, + s: 'e puer Sekonnen', + ss: '%d Sekonnen', + m: processRelativeTime, + mm: '%d Minutten', + h: processRelativeTime, + hh: '%d Stonnen', + d: processRelativeTime, + dd: '%d Deeg', + M: processRelativeTime, + MM: '%d Méint', + y: processRelativeTime, + yy: '%d Joer', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - debug('create stream start', fullpath, this.options); - const dest = fs.createWriteStream(fullpath, this.options) - // TODO: What should we do with errors here? - .on('error', err => debug(err)) - .on('close', () => debug('close', dest.path, dest.bytesWritten)) - .on('open', () => { - debug('file open ok', fullpath); - this.emit('open', fullpath); - source.pipe(dest); + return lb; - // If rotation occured during the open operation then we immediately - // start writing to a new PassThrough, begin opening the next file - // and cleanup the previous source and dest once the source has drained. - if (this.rotatedWhileOpening) { - this._stream = new PassThrough(); - this._stream.setMaxListeners(30); - this._rotateFile(); - this.rotatedWhileOpening = false; - this._cleanupStream(dest); - source.end(); - } - }); +}))); - debug('create stream ok', fullpath); - if (this.zippedArchive) { - const gzip = zlib.createGzip(); - gzip.pipe(dest); - return gzip; - } - return dest; - } +/***/ }), - /** - * TODO: add method description. - * @param {function} callback - TODO: add param description. - * @returns {undefined} - */ - _incFile(callback) { - debug('_incFile', this.filename); - const ext = path.extname(this._basename); - const basename = path.basename(this._basename, ext); +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/lo.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/lo.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_831601__) { - if (!this.tailable) { - this._created += 1; - this._checkMaxFilesIncrementing(ext, basename, callback); - } else { - this._checkMaxFilesTailable(ext, basename, callback); - } - } +//! moment.js locale configuration +//! locale : Lao [lo] +//! author : Ryan Hart : https://github.com/ryanhart2 - /** - * Gets the next filename to use for this instance in the case that log - * filesizes are being capped. - * @returns {string} - TODO: add return description. - * @private - */ - _getFile() { - const ext = path.extname(this._basename); - const basename = path.basename(this._basename, ext); - const isRotation = this.rotationFormat - ? this.rotationFormat() - : this._created; +;(function (global, factory) { + true ? factory(__nested_webpack_require_831601__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - // Caveat emptor (indexzero): rotationFormat() was broken by design When - // combined with max files because the set of files to unlink is never - // stored. - const target = !this.tailable && this._created - ? `${basename}${isRotation}${ext}` - : `${basename}${ext}`; + //! moment.js locale configuration - return this.zippedArchive && !this.tailable - ? `${target}.gz` - : target; - } + var lo = moment.defineLocale('lo', { + months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( + '_' + ), + monthsShort: + 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( + '_' + ), + weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), + weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), + weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'ວັນdddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, + isPM: function (input) { + return input === 'ຕອນແລງ'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ຕອນເຊົ້າ'; + } else { + return 'ຕອນແລງ'; + } + }, + calendar: { + sameDay: '[ມື້ນີ້ເວລາ] LT', + nextDay: '[ມື້ອື່ນເວລາ] LT', + nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT', + lastDay: '[ມື້ວານນີ້ເວລາ] LT', + lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ອີກ %s', + past: '%sຜ່ານມາ', + s: 'ບໍ່ເທົ່າໃດວິນາທີ', + ss: '%d ວິນາທີ', + m: '1 ນາທີ', + mm: '%d ນາທີ', + h: '1 ຊົ່ວໂມງ', + hh: '%d ຊົ່ວໂມງ', + d: '1 ມື້', + dd: '%d ມື້', + M: '1 ເດືອນ', + MM: '%d ເດືອນ', + y: '1 ປີ', + yy: '%d ປີ', + }, + dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/, + ordinal: function (number) { + return 'ທີ່' + number; + }, + }); - /** - * Increment the number of files created or checked by this instance. - * @param {mixed} ext - TODO: add param description. - * @param {mixed} basename - TODO: add param description. - * @param {mixed} callback - TODO: add param description. - * @returns {undefined} - * @private - */ - _checkMaxFilesIncrementing(ext, basename, callback) { - // Check for maxFiles option and delete file. - if (!this.maxFiles || this._created < this.maxFiles) { - return setImmediate(callback); - } + return lo; - const oldest = this._created - this.maxFiles; - const isOldest = oldest !== 0 ? oldest : ''; - const isZipped = this.zippedArchive ? '.gz' : ''; - const filePath = `${basename}${isOldest}${ext}${isZipped}`; - const target = path.join(this.dirname, filePath); +}))); - fs.unlink(target, callback); - } - /** - * Roll files forward based on integer, up to maxFiles. e.g. if base if - * file.log and it becomes oversized, roll to file1.log, and allow file.log - * to be re-used. If file is oversized again, roll file1.log to file2.log, - * roll file.log to file1.log, and so on. - * @param {mixed} ext - TODO: add param description. - * @param {mixed} basename - TODO: add param description. - * @param {mixed} callback - TODO: add param description. - * @returns {undefined} - * @private - */ - _checkMaxFilesTailable(ext, basename, callback) { - const tasks = []; - if (!this.maxFiles) { - return; - } +/***/ }), - // const isZipped = this.zippedArchive ? '.gz' : ''; - const isZipped = this.zippedArchive ? '.gz' : ''; - for (let x = this.maxFiles - 1; x > 1; x--) { - tasks.push(function (i, cb) { - let fileName = `${basename}${(i - 1)}${ext}${isZipped}`; - const tmppath = path.join(this.dirname, fileName); +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/lt.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/lt.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_834298__) { - fs.exists(tmppath, exists => { - if (!exists) { - return cb(null); - } +//! moment.js locale configuration +//! locale : Lithuanian [lt] +//! author : Mindaugas Mozūras : https://github.com/mmozuras - fileName = `${basename}${i}${ext}${isZipped}`; - fs.rename(tmppath, path.join(this.dirname, fileName), cb); - }); - }.bind(this, x)); - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_834298__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - asyncSeries(tasks, () => { - fs.rename( - path.join(this.dirname, `${basename}${ext}`), - path.join(this.dirname, `${basename}1${ext}${isZipped}`), - callback - ); + //! moment.js locale configuration + + var units = { + ss: 'sekundė_sekundžių_sekundes', + m: 'minutė_minutės_minutę', + mm: 'minutės_minučių_minutes', + h: 'valanda_valandos_valandą', + hh: 'valandos_valandų_valandas', + d: 'diena_dienos_dieną', + dd: 'dienos_dienų_dienas', + M: 'mėnuo_mėnesio_mėnesį', + MM: 'mėnesiai_mėnesių_mėnesius', + y: 'metai_metų_metus', + yy: 'metai_metų_metus', + }; + function translateSeconds(number, withoutSuffix, key, isFuture) { + if (withoutSuffix) { + return 'kelios sekundės'; + } else { + return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; + } + } + function translateSingular(number, withoutSuffix, key, isFuture) { + return withoutSuffix + ? forms(key)[0] + : isFuture + ? forms(key)[1] + : forms(key)[2]; + } + function special(number) { + return number % 10 === 0 || (number > 10 && number < 20); + } + function forms(key) { + return units[key].split('_'); + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + if (number === 1) { + return ( + result + translateSingular(number, withoutSuffix, key[0], isFuture) + ); + } else if (withoutSuffix) { + return result + (special(number) ? forms(key)[1] : forms(key)[0]); + } else { + if (isFuture) { + return result + forms(key)[1]; + } else { + return result + (special(number) ? forms(key)[1] : forms(key)[2]); + } + } + } + var lt = moment.defineLocale('lt', { + months: { + format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split( + '_' + ), + standalone: + 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split( + '_' + ), + isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, + }, + monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), + weekdays: { + format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split( + '_' + ), + standalone: + 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split( + '_' + ), + isFormat: /dddd HH:mm/, + }, + weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), + weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY [m.] MMMM D [d.]', + LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', + l: 'YYYY-MM-DD', + ll: 'YYYY [m.] MMMM D [d.]', + lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', + }, + calendar: { + sameDay: '[Šiandien] LT', + nextDay: '[Rytoj] LT', + nextWeek: 'dddd LT', + lastDay: '[Vakar] LT', + lastWeek: '[Praėjusį] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: 'po %s', + past: 'prieš %s', + s: translateSeconds, + ss: translate, + m: translateSingular, + mm: translate, + h: translateSingular, + hh: translate, + d: translateSingular, + dd: translate, + M: translateSingular, + MM: translate, + y: translateSingular, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}-oji/, + ordinal: function (number) { + return number + '-oji'; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, }); - } - - _createLogDirIfNotExist(dirPath) { - /* eslint-disable no-sync */ - if (!fs.existsSync(dirPath)) { - fs.mkdirSync(dirPath, { recursive: true }); - } - /* eslint-enable no-sync */ - } -}; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/http.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/http.js ***! - \*******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * http.js: Transport for outputting to a json-rpcserver. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ + return lt; +}))); -const http = __webpack_require__(/*! http */ "http"); -const https = __webpack_require__(/*! https */ "https"); -const { Stream } = __webpack_require__(/*! readable-stream */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/readable.js"); -const TransportStream = __webpack_require__(/*! winston-transport */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/index.js"); - -/** - * Transport for outputting to a json-rpc server. - * @type {Stream} - * @extends {TransportStream} - */ -module.exports = class Http extends TransportStream { - /** - * Constructor function for the Http transport object responsible for - * persisting log messages and metadata to a terminal or TTY. - * @param {!Object} [options={}] - Options for this instance. - */ - constructor(options = {}) { - super(options); - - this.options = options; - this.name = options.name || 'http'; - this.ssl = !!options.ssl; - this.host = options.host || 'localhost'; - this.port = options.port; - this.auth = options.auth; - this.path = options.path || ''; - this.agent = options.agent; - this.headers = options.headers || {}; - this.headers['content-type'] = 'application/json'; - if (!this.port) { - this.port = this.ssl ? 443 : 80; - } - } +/***/ }), - /** - * Core logging method exposed to Winston. - * @param {Object} info - TODO: add param description. - * @param {function} callback - TODO: add param description. - * @returns {undefined} - */ - log(info, callback) { - this._request(info, (err, res) => { - if (res && res.statusCode !== 200) { - err = new Error(`Invalid HTTP Status Code: ${res.statusCode}`); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/lv.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/lv.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_839321__) { - if (err) { - this.emit('warn', err); - } else { - this.emit('logged', info); - } - }); +//! moment.js locale configuration +//! locale : Latvian [lv] +//! author : Kristaps Karlsons : https://github.com/skakri +//! author : Jānis Elmeris : https://github.com/JanisE - // Remark: (jcrugzz) Fire and forget here so requests dont cause buffering - // and block more requests from happening? - if (callback) { - setImmediate(callback); - } - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_839321__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - /** - * Query the transport. Options object is optional. - * @param {Object} options - Loggly-like query options for this instance. - * @param {function} callback - Continuation to respond to when complete. - * @returns {undefined} - */ - query(options, callback) { - if (typeof options === 'function') { - callback = options; - options = {}; - } + //! moment.js locale configuration - options = { - method: 'query', - params: this.normalizeQuery(options) + var units = { + ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'), + m: 'minūtes_minūtēm_minūte_minūtes'.split('_'), + mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'), + h: 'stundas_stundām_stunda_stundas'.split('_'), + hh: 'stundas_stundām_stunda_stundas'.split('_'), + d: 'dienas_dienām_diena_dienas'.split('_'), + dd: 'dienas_dienām_diena_dienas'.split('_'), + M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), + MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), + y: 'gada_gadiem_gads_gadi'.split('_'), + yy: 'gada_gadiem_gads_gadi'.split('_'), }; - - if (options.params.path) { - options.path = options.params.path; - delete options.params.path; + /** + * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. + */ + function format(forms, number, withoutSuffix) { + if (withoutSuffix) { + // E.g. "21 minūte", "3 minūtes". + return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; + } else { + // E.g. "21 minūtes" as in "pēc 21 minūtes". + // E.g. "3 minūtēm" as in "pēc 3 minūtēm". + return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; + } } - - if (options.params.auth) { - options.auth = options.params.auth; - delete options.params.auth; + function relativeTimeWithPlural(number, withoutSuffix, key) { + return number + ' ' + format(units[key], number, withoutSuffix); } - - this._request(options, (err, res, body) => { - if (res && res.statusCode !== 200) { - err = new Error(`Invalid HTTP Status Code: ${res.statusCode}`); - } - - if (err) { - return callback(err); - } - - if (typeof body === 'string') { - try { - body = JSON.parse(body); - } catch (e) { - return callback(e); - } - } - - callback(null, body); - }); - } - - /** - * Returns a log stream for this transport. Options object is optional. - * @param {Object} options - Stream options for this instance. - * @returns {Stream} - TODO: add return description - */ - stream(options = {}) { - const stream = new Stream(); - options = { - method: 'stream', - params: options - }; - - if (options.params.path) { - options.path = options.params.path; - delete options.params.path; + function relativeTimeWithSingular(number, withoutSuffix, key) { + return format(units[key], number, withoutSuffix); } - - if (options.params.auth) { - options.auth = options.params.auth; - delete options.params.auth; + function relativeSeconds(number, withoutSuffix) { + return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm'; } - let buff = ''; - const req = this._request(options); - - stream.destroy = () => req.destroy(); - req.on('data', data => { - data = (buff + data).split(/\n+/); - const l = data.length - 1; - - let i = 0; - for (; i < l; i++) { - try { - stream.emit('log', JSON.parse(data[i])); - } catch (e) { - stream.emit('error', e); - } - } - - buff = data[l]; + var lv = moment.defineLocale('lv', { + months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'), + weekdays: + 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split( + '_' + ), + weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY.', + LL: 'YYYY. [gada] D. MMMM', + LLL: 'YYYY. [gada] D. MMMM, HH:mm', + LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', + }, + calendar: { + sameDay: '[Šodien pulksten] LT', + nextDay: '[Rīt pulksten] LT', + nextWeek: 'dddd [pulksten] LT', + lastDay: '[Vakar pulksten] LT', + lastWeek: '[Pagājušā] dddd [pulksten] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'pēc %s', + past: 'pirms %s', + s: relativeSeconds, + ss: relativeTimeWithPlural, + m: relativeTimeWithSingular, + mm: relativeTimeWithPlural, + h: relativeTimeWithSingular, + hh: relativeTimeWithPlural, + d: relativeTimeWithSingular, + dd: relativeTimeWithPlural, + M: relativeTimeWithSingular, + MM: relativeTimeWithPlural, + y: relativeTimeWithSingular, + yy: relativeTimeWithPlural, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, }); - req.on('error', err => stream.emit('error', err)); - return stream; - } - - /** - * Make a request to a winstond server or any http server which can - * handle json-rpc. - * @param {function} options - Options to sent the request. - * @param {function} callback - Continuation to respond to when complete. - */ - _request(options, callback) { - options = options || {}; - - const auth = options.auth || this.auth; - const path = options.path || this.path || ''; - - delete options.auth; - delete options.path; - - // Prepare options for outgoing HTTP request - const headers = Object.assign({}, this.headers); - if (auth && auth.bearer) { - headers.Authorization = `Bearer ${auth.bearer}`; - } - const req = (this.ssl ? https : http).request({ - ...this.options, - method: 'POST', - host: this.host, - port: this.port, - path: `/${path.replace(/^\//, '')}`, - headers: headers, - auth: (auth && auth.username && auth.password) ? (`${auth.username}:${auth.password}`) : '', - agent: this.agent - }); + return lv; - req.on('error', callback); - req.on('response', res => ( - res.on('end', () => callback(null, res)).resume() - )); - req.end(Buffer.from(JSON.stringify(options), 'utf8')); - } -}; +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/index.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/index.js ***! - \********************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -/** - * transports.js: Set of all transports Winston knows about. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ - +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/me.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/me.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_843659__) { +//! moment.js locale configuration +//! locale : Montenegrin [me] +//! author : Miodrag Nikač : https://github.com/miodragnikac -/** - * TODO: add property description. - * @type {Console} - */ -Object.defineProperty(exports, "Console", ({ - configurable: true, - enumerable: true, - get() { - return __webpack_require__(/*! ./console */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/console.js"); - } -})); +;(function (global, factory) { + true ? factory(__nested_webpack_require_843659__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -/** - * TODO: add property description. - * @type {File} - */ -Object.defineProperty(exports, "File", ({ - configurable: true, - enumerable: true, - get() { - return __webpack_require__(/*! ./file */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/file.js"); - } -})); + //! moment.js locale configuration -/** - * TODO: add property description. - * @type {Http} - */ -Object.defineProperty(exports, "Http", ({ - configurable: true, - enumerable: true, - get() { - return __webpack_require__(/*! ./http */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/http.js"); - } -})); + var translator = { + words: { + //Different grammatical cases + ss: ['sekund', 'sekunda', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + dd: ['dan', 'dana', 'dana'], + MM: ['mjesec', 'mjeseca', 'mjeseci'], + yy: ['godina', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + return number === 1 + ? wordKey[0] + : number >= 2 && number <= 4 + ? wordKey[1] + : wordKey[2]; + }, + translate: function (number, withoutSuffix, key) { + var wordKey = translator.words[key]; + if (key.length === 1) { + return withoutSuffix ? wordKey[0] : wordKey[1]; + } else { + return ( + number + + ' ' + + translator.correctGrammaticalCase(number, wordKey) + ); + } + }, + }; -/** - * TODO: add property description. - * @type {Stream} - */ -Object.defineProperty(exports, "Stream", ({ - configurable: true, - enumerable: true, - get() { - return __webpack_require__(/*! ./stream */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/stream.js"); - } -})); + var me = moment.defineLocale('me', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sjutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[juče u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[prošle] [nedjelje] [u] LT', + '[prošlog] [ponedjeljka] [u] LT', + '[prošlog] [utorka] [u] LT', + '[prošle] [srijede] [u] LT', + '[prošlog] [četvrtka] [u] LT', + '[prošlog] [petka] [u] LT', + '[prošle] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: 'dan', + dd: translator.translate, + M: 'mjesec', + MM: translator.translate, + y: 'godinu', + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); -/***/ }), + return me; -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/stream.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/stream.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +}))); -"use strict"; -/** - * stream.js: Transport for outputting to any arbitrary stream. - * - * (C) 2010 Charlie Robbins - * MIT LICENCE - */ +/***/ }), +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/mi.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/mi.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_848347__) { -const isStream = __webpack_require__(/*! is-stream */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/is-stream/index.js"); -const { MESSAGE } = __webpack_require__(/*! triple-beam */ "./node_modules/cht-core-4-0/api/node_modules/triple-beam/index.js"); -const os = __webpack_require__(/*! os */ "os"); -const TransportStream = __webpack_require__(/*! winston-transport */ "./node_modules/cht-core-4-0/api/node_modules/winston-transport/index.js"); +//! moment.js locale configuration +//! locale : Maori [mi] +//! author : John Corrigan : https://github.com/johnideal -/** - * Transport for outputting to any arbitrary stream. - * @type {Stream} - * @extends {TransportStream} - */ -module.exports = class Stream extends TransportStream { - /** - * Constructor function for the Console transport object responsible for - * persisting log messages and metadata to a terminal or TTY. - * @param {!Object} [options={}] - Options for this instance. - */ - constructor(options = {}) { - super(options); +;(function (global, factory) { + true ? factory(__nested_webpack_require_848347__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (!options.stream || !isStream(options.stream)) { - throw new Error('options.stream is required.'); - } + //! moment.js locale configuration - // We need to listen for drain events when write() returns false. This can - // make node mad at times. - this._stream = options.stream; - this._stream.setMaxListeners(Infinity); - this.isObjectMode = options.stream._writableState.objectMode; - this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL; - } + var mi = moment.defineLocale('mi', { + months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split( + '_' + ), + monthsShort: + 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( + '_' + ), + monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, + weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'), + weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), + weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [i] HH:mm', + LLLL: 'dddd, D MMMM YYYY [i] HH:mm', + }, + calendar: { + sameDay: '[i teie mahana, i] LT', + nextDay: '[apopo i] LT', + nextWeek: 'dddd [i] LT', + lastDay: '[inanahi i] LT', + lastWeek: 'dddd [whakamutunga i] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i roto i %s', + past: '%s i mua', + s: 'te hēkona ruarua', + ss: '%d hēkona', + m: 'he meneti', + mm: '%d meneti', + h: 'te haora', + hh: '%d haora', + d: 'he ra', + dd: '%d ra', + M: 'he marama', + MM: '%d marama', + y: 'he tau', + yy: '%d tau', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - /** - * Core logging method exposed to Winston. - * @param {Object} info - TODO: add param description. - * @param {Function} callback - TODO: add param description. - * @returns {undefined} - */ - log(info, callback) { - setImmediate(() => this.emit('logged', info)); - if (this.isObjectMode) { - this._stream.write(info); - if (callback) { - callback(); // eslint-disable-line callback-return - } - return; - } + return mi; - this._stream.write(`${info[MESSAGE]}${this.eol}`); - if (callback) { - callback(); // eslint-disable-line callback-return - } - return; - } -}; +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/is-stream/index.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/is-stream/index.js ***! - \********************************************************************************************/ -/***/ ((module) => { - -"use strict"; - +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/mk.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/mk.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_851166__) { -const isStream = stream => - stream !== null && - typeof stream === 'object' && - typeof stream.pipe === 'function'; +//! moment.js locale configuration +//! locale : Macedonian [mk] +//! author : Borislav Mickov : https://github.com/B0k0 +//! author : Sashko Todorov : https://github.com/bkyceh -isStream.writable = stream => - isStream(stream) && - stream.writable !== false && - typeof stream._write === 'function' && - typeof stream._writableState === 'object'; +;(function (global, factory) { + true ? factory(__nested_webpack_require_851166__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -isStream.readable = stream => - isStream(stream) && - stream.readable !== false && - typeof stream._read === 'function' && - typeof stream._readableState === 'object'; + //! moment.js locale configuration -isStream.duplex = stream => - isStream.writable(stream) && - isStream.readable(stream); + var mk = moment.defineLocale('mk', { + months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split( + '_' + ), + monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), + weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split( + '_' + ), + weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'), + weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Денес во] LT', + nextDay: '[Утре во] LT', + nextWeek: '[Во] dddd [во] LT', + lastDay: '[Вчера во] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[Изминатата] dddd [во] LT'; + case 1: + case 2: + case 4: + case 5: + return '[Изминатиот] dddd [во] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: 'пред %s', + s: 'неколку секунди', + ss: '%d секунди', + m: 'една минута', + mm: '%d минути', + h: 'еден час', + hh: '%d часа', + d: 'еден ден', + dd: '%d дена', + M: 'еден месец', + MM: '%d месеци', + y: 'една година', + yy: '%d години', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); -isStream.transform = stream => - isStream.duplex(stream) && - typeof stream._transform === 'function'; + return mk; -module.exports = isStream; +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/errors.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/errors.js ***! - \***************************************************************************************************/ -/***/ ((module) => { - -"use strict"; +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ml.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ml.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_854750__) { +//! moment.js locale configuration +//! locale : Malayalam [ml] +//! author : Floyd Pink : https://github.com/floydpink -const codes = {}; +;(function (global, factory) { + true ? factory(__nested_webpack_require_854750__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -function createErrorType(code, message, Base) { - if (!Base) { - Base = Error - } + //! moment.js locale configuration - function getMessage (arg1, arg2, arg3) { - if (typeof message === 'string') { - return message - } else { - return message(arg1, arg2, arg3) - } - } + var ml = moment.defineLocale('ml', { + months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split( + '_' + ), + monthsShort: + 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split( + '_' + ), + weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), + weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), + longDateFormat: { + LT: 'A h:mm -നു', + LTS: 'A h:mm:ss -നു', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm -നു', + LLLL: 'dddd, D MMMM YYYY, A h:mm -നു', + }, + calendar: { + sameDay: '[ഇന്ന്] LT', + nextDay: '[നാളെ] LT', + nextWeek: 'dddd, LT', + lastDay: '[ഇന്നലെ] LT', + lastWeek: '[കഴിഞ്ഞ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s കഴിഞ്ഞ്', + past: '%s മുൻപ്', + s: 'അൽപ നിമിഷങ്ങൾ', + ss: '%d സെക്കൻഡ്', + m: 'ഒരു മിനിറ്റ്', + mm: '%d മിനിറ്റ്', + h: 'ഒരു മണിക്കൂർ', + hh: '%d മണിക്കൂർ', + d: 'ഒരു ദിവസം', + dd: '%d ദിവസം', + M: 'ഒരു മാസം', + MM: '%d മാസം', + y: 'ഒരു വർഷം', + yy: '%d വർഷം', + }, + meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'രാത്രി' && hour >= 4) || + meridiem === 'ഉച്ച കഴിഞ്ഞ്' || + meridiem === 'വൈകുന്നേരം' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'രാത്രി'; + } else if (hour < 12) { + return 'രാവിലെ'; + } else if (hour < 17) { + return 'ഉച്ച കഴിഞ്ഞ്'; + } else if (hour < 20) { + return 'വൈകുന്നേരം'; + } else { + return 'രാത്രി'; + } + }, + }); - class NodeError extends Base { - constructor (arg1, arg2, arg3) { - super(getMessage(arg1, arg2, arg3)); - } - } + return ml; - NodeError.prototype.name = Base.name; - NodeError.prototype.code = code; +}))); - codes[code] = NodeError; -} -// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js -function oneOf(expected, thing) { - if (Array.isArray(expected)) { - const len = expected.length; - expected = expected.map((i) => String(i)); - if (len > 2) { - return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` + - expected[len - 1]; - } else if (len === 2) { - return `one of ${thing} ${expected[0]} or ${expected[1]}`; - } else { - return `of ${thing} ${expected[0]}`; - } - } else { - return `of ${thing} ${String(expected)}`; - } -} +/***/ }), -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith -function startsWith(str, search, pos) { - return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; -} +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/mn.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/mn.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_857995__) { -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith -function endsWith(str, search, this_len) { - if (this_len === undefined || this_len > str.length) { - this_len = str.length; - } - return str.substring(this_len - search.length, this_len) === search; -} +//! moment.js locale configuration +//! locale : Mongolian [mn] +//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7 -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes -function includes(str, search, start) { - if (typeof start !== 'number') { - start = 0; - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_857995__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (start + search.length > str.length) { - return false; - } else { - return str.indexOf(search, start) !== -1; - } -} + //! moment.js locale configuration -createErrorType('ERR_INVALID_OPT_VALUE', function (name, value) { - return 'The value "' + value + '" is invalid for option "' + name + '"' -}, TypeError); -createErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) { - // determiner: 'must be' or 'must not be' - let determiner; - if (typeof expected === 'string' && startsWith(expected, 'not ')) { - determiner = 'must not be'; - expected = expected.replace(/^not /, ''); - } else { - determiner = 'must be'; - } + function translate(number, withoutSuffix, key, isFuture) { + switch (key) { + case 's': + return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын'; + case 'ss': + return number + (withoutSuffix ? ' секунд' : ' секундын'); + case 'm': + case 'mm': + return number + (withoutSuffix ? ' минут' : ' минутын'); + case 'h': + case 'hh': + return number + (withoutSuffix ? ' цаг' : ' цагийн'); + case 'd': + case 'dd': + return number + (withoutSuffix ? ' өдөр' : ' өдрийн'); + case 'M': + case 'MM': + return number + (withoutSuffix ? ' сар' : ' сарын'); + case 'y': + case 'yy': + return number + (withoutSuffix ? ' жил' : ' жилийн'); + default: + return number; + } + } - let msg; - if (endsWith(name, ' argument')) { - // For cases like 'first argument' - msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`; - } else { - const type = includes(name, '.') ? 'property' : 'argument'; - msg = `The "${name}" ${type} ${determiner} ${oneOf(expected, 'type')}`; - } + var mn = moment.defineLocale('mn', { + months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split( + '_' + ), + monthsShort: + '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'), + weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'), + weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY оны MMMMын D', + LLL: 'YYYY оны MMMMын D HH:mm', + LLLL: 'dddd, YYYY оны MMMMын D HH:mm', + }, + meridiemParse: /ҮӨ|ҮХ/i, + isPM: function (input) { + return input === 'ҮХ'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ҮӨ'; + } else { + return 'ҮХ'; + } + }, + calendar: { + sameDay: '[Өнөөдөр] LT', + nextDay: '[Маргааш] LT', + nextWeek: '[Ирэх] dddd LT', + lastDay: '[Өчигдөр] LT', + lastWeek: '[Өнгөрсөн] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s дараа', + past: '%s өмнө', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2} өдөр/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + ' өдөр'; + default: + return number; + } + }, + }); - msg += `. Received type ${typeof actual}`; - return msg; -}, TypeError); -createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF'); -createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) { - return 'The ' + name + ' method is not implemented' -}); -createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close'); -createErrorType('ERR_STREAM_DESTROYED', function (name) { - return 'Cannot call ' + name + ' after a stream was destroyed'; -}); -createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times'); -createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable'); -createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end'); -createErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError); -createErrorType('ERR_UNKNOWN_ENCODING', function (arg) { - return 'Unknown encoding: ' + arg -}, TypeError); -createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event'); + return mn; -module.exports.codes = codes; +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js": -/*!***************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js ***! - \***************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. -// a duplex stream is just a stream that is both readable and writable. -// Since JS doesn't have multiple prototypal inheritance, this class -// prototypally inherits from Readable, and then parasitically from -// Writable. - -/**/ - -var objectKeys = Object.keys || function (obj) { - var keys = []; - - for (var key in obj) { - keys.push(key); - } - - return keys; -}; -/**/ +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/mr.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/mr.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_861952__) { +//! moment.js locale configuration +//! locale : Marathi [mr] +//! author : Harshad Kale : https://github.com/kalehv +//! author : Vivek Athalye : https://github.com/vnathalye -module.exports = Duplex; +;(function (global, factory) { + true ? factory(__nested_webpack_require_861952__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -var Readable = __webpack_require__(/*! ./_stream_readable */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js"); + //! moment.js locale configuration -var Writable = __webpack_require__(/*! ./_stream_writable */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js"); + var symbolMap = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }; -__webpack_require__(/*! inherits */ "./node_modules/cht-core-4-0/api/node_modules/inherits/inherits.js")(Duplex, Readable); + function relativeTimeMr(number, withoutSuffix, string, isFuture) { + var output = ''; + if (withoutSuffix) { + switch (string) { + case 's': + output = 'काही सेकंद'; + break; + case 'ss': + output = '%d सेकंद'; + break; + case 'm': + output = 'एक मिनिट'; + break; + case 'mm': + output = '%d मिनिटे'; + break; + case 'h': + output = 'एक तास'; + break; + case 'hh': + output = '%d तास'; + break; + case 'd': + output = 'एक दिवस'; + break; + case 'dd': + output = '%d दिवस'; + break; + case 'M': + output = 'एक महिना'; + break; + case 'MM': + output = '%d महिने'; + break; + case 'y': + output = 'एक वर्ष'; + break; + case 'yy': + output = '%d वर्षे'; + break; + } + } else { + switch (string) { + case 's': + output = 'काही सेकंदां'; + break; + case 'ss': + output = '%d सेकंदां'; + break; + case 'm': + output = 'एका मिनिटा'; + break; + case 'mm': + output = '%d मिनिटां'; + break; + case 'h': + output = 'एका तासा'; + break; + case 'hh': + output = '%d तासां'; + break; + case 'd': + output = 'एका दिवसा'; + break; + case 'dd': + output = '%d दिवसां'; + break; + case 'M': + output = 'एका महिन्या'; + break; + case 'MM': + output = '%d महिन्यां'; + break; + case 'y': + output = 'एका वर्षा'; + break; + case 'yy': + output = '%d वर्षां'; + break; + } + } + return output.replace(/%d/i, number); + } -{ - // Allow the keys array to be GC'ed. - var keys = objectKeys(Writable.prototype); + var mr = moment.defineLocale('mr', { + months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( + '_' + ), + monthsShort: + 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), + longDateFormat: { + LT: 'A h:mm वाजता', + LTS: 'A h:mm:ss वाजता', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm वाजता', + LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता', + }, + calendar: { + sameDay: '[आज] LT', + nextDay: '[उद्या] LT', + nextWeek: 'dddd, LT', + lastDay: '[काल] LT', + lastWeek: '[मागील] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sमध्ये', + past: '%sपूर्वी', + s: relativeTimeMr, + ss: relativeTimeMr, + m: relativeTimeMr, + mm: relativeTimeMr, + h: relativeTimeMr, + hh: relativeTimeMr, + d: relativeTimeMr, + dd: relativeTimeMr, + M: relativeTimeMr, + MM: relativeTimeMr, + y: relativeTimeMr, + yy: relativeTimeMr, + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'पहाटे' || meridiem === 'सकाळी') { + return hour; + } else if ( + meridiem === 'दुपारी' || + meridiem === 'सायंकाळी' || + meridiem === 'रात्री' + ) { + return hour >= 12 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour >= 0 && hour < 6) { + return 'पहाटे'; + } else if (hour < 12) { + return 'सकाळी'; + } else if (hour < 17) { + return 'दुपारी'; + } else if (hour < 20) { + return 'सायंकाळी'; + } else { + return 'रात्री'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); - for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; - } -} + return mr; -function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); - Readable.call(this, options); - Writable.call(this, options); - this.allowHalfOpen = true; +}))); - if (options) { - if (options.readable === false) this.readable = false; - if (options.writable === false) this.writable = false; - if (options.allowHalfOpen === false) { - this.allowHalfOpen = false; - this.once('end', onend); - } - } -} +/***/ }), -Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.highWaterMark; - } -}); -Object.defineProperty(Duplex.prototype, 'writableBuffer', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState && this._writableState.getBuffer(); - } -}); -Object.defineProperty(Duplex.prototype, 'writableLength', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.length; - } -}); // the no-half-open enforcer +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ms-my.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ms-my.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_868844__) { -function onend() { - // If the writable side ended, then we're ok. - if (this._writableState.ended) return; // no more data can be written. - // But allow more writes to happen in this tick. +//! moment.js locale configuration +//! locale : Malay [ms-my] +//! note : DEPRECATED, the correct one is [ms] +//! author : Weldan Jamili : https://github.com/weldan - process.nextTick(onEndNT, this); -} +;(function (global, factory) { + true ? factory(__nested_webpack_require_868844__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -function onEndNT(self) { - self.end(); -} + //! moment.js locale configuration -Object.defineProperty(Duplex.prototype, 'destroyed', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - if (this._readableState === undefined || this._writableState === undefined) { - return false; - } + var msMy = moment.defineLocale('ms-my', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); - return this._readableState.destroyed && this._writableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (this._readableState === undefined || this._writableState === undefined) { - return; - } // backward compatibility, the user is explicitly - // managing destroyed + return msMy; +}))); - this._readableState.destroyed = value; - this._writableState.destroyed = value; - } -}); /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_passthrough.js": -/*!********************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_passthrough.js ***! - \********************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ms.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ms.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_872058__) { -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. -// a passthrough stream. -// basically just the most minimal sort of Transform stream. -// Every written chunk gets output as-is. +//! moment.js locale configuration +//! locale : Malay [ms] +//! author : Weldan Jamili : https://github.com/weldan +;(function (global, factory) { + true ? factory(__nested_webpack_require_872058__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -module.exports = PassThrough; + //! moment.js locale configuration -var Transform = __webpack_require__(/*! ./_stream_transform */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js"); + var ms = moment.defineLocale('ms', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); -__webpack_require__(/*! inherits */ "./node_modules/cht-core-4-0/api/node_modules/inherits/inherits.js")(PassThrough, Transform); + return ms; -function PassThrough(options) { - if (!(this instanceof PassThrough)) return new PassThrough(options); - Transform.call(this, options); -} +}))); -PassThrough.prototype._transform = function (chunk, encoding, cb) { - cb(null, chunk); -}; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js": -/*!*****************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js ***! - \*****************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/mt.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/mt.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_875215__) { -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. +//! moment.js locale configuration +//! locale : Maltese (Malta) [mt] +//! author : Alessandro Maruccia : https://github.com/alesma +;(function (global, factory) { + true ? factory(__nested_webpack_require_875215__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -module.exports = Readable; -/**/ + //! moment.js locale configuration -var Duplex; -/**/ + var mt = moment.defineLocale('mt', { + months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split( + '_' + ), + monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'), + weekdays: + 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split( + '_' + ), + weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'), + weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Illum fil-]LT', + nextDay: '[Għada fil-]LT', + nextWeek: 'dddd [fil-]LT', + lastDay: '[Il-bieraħ fil-]LT', + lastWeek: 'dddd [li għadda] [fil-]LT', + sameElse: 'L', + }, + relativeTime: { + future: 'f’ %s', + past: '%s ilu', + s: 'ftit sekondi', + ss: '%d sekondi', + m: 'minuta', + mm: '%d minuti', + h: 'siegħa', + hh: '%d siegħat', + d: 'ġurnata', + dd: '%d ġranet', + M: 'xahar', + MM: '%d xhur', + y: 'sena', + yy: '%d sni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); -Readable.ReadableState = ReadableState; -/**/ + return mt; -var EE = __webpack_require__(/*! events */ "events").EventEmitter; +}))); -var EElistenerCount = function EElistenerCount(emitter, type) { - return emitter.listeners(type).length; -}; -/**/ -/**/ +/***/ }), +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/my.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/my.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_877677__) { -var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/stream.js"); -/**/ +//! moment.js locale configuration +//! locale : Burmese [my] +//! author : Squar team, mysquar.com +//! author : David Rossellat : https://github.com/gholadr +//! author : Tin Aung Lin : https://github.com/thanyawzinmin +;(function (global, factory) { + true ? factory(__nested_webpack_require_877677__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -var Buffer = __webpack_require__(/*! buffer */ "buffer").Buffer; + //! moment.js locale configuration -var OurUint8Array = global.Uint8Array || function () {}; + var symbolMap = { + 1: '၁', + 2: '၂', + 3: '၃', + 4: '၄', + 5: '၅', + 6: '၆', + 7: '၇', + 8: '၈', + 9: '၉', + 0: '၀', + }, + numberMap = { + '၁': '1', + '၂': '2', + '၃': '3', + '၄': '4', + '၅': '5', + '၆': '6', + '၇': '7', + '၈': '8', + '၉': '9', + '၀': '0', + }; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} + var my = moment.defineLocale('my', { + months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split( + '_' + ), + monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), + weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split( + '_' + ), + weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} -/**/ + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[ယနေ.] LT [မှာ]', + nextDay: '[မနက်ဖြန်] LT [မှာ]', + nextWeek: 'dddd LT [မှာ]', + lastDay: '[မနေ.က] LT [မှာ]', + lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]', + sameElse: 'L', + }, + relativeTime: { + future: 'လာမည့် %s မှာ', + past: 'လွန်ခဲ့သော %s က', + s: 'စက္ကန်.အနည်းငယ်', + ss: '%d စက္ကန့်', + m: 'တစ်မိနစ်', + mm: '%d မိနစ်', + h: 'တစ်နာရီ', + hh: '%d နာရီ', + d: 'တစ်ရက်', + dd: '%d ရက်', + M: 'တစ်လ', + MM: '%d လ', + y: 'တစ်နှစ်', + yy: '%d နှစ်', + }, + preparse: function (string) { + return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + return my; -var debugUtil = __webpack_require__(/*! util */ "util"); +}))); -var debug; -if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream'); -} else { - debug = function debug() {}; -} -/**/ +/***/ }), +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/nb.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/nb.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_880985__) { -var BufferList = __webpack_require__(/*! ./internal/streams/buffer_list */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/buffer_list.js"); +//! moment.js locale configuration +//! locale : Norwegian Bokmål [nb] +//! authors : Espen Hovlandsdal : https://github.com/rexxars +//! Sigurd Gartmann : https://github.com/sigurdga +//! Stephen Ramthun : https://github.com/stephenramthun -var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/destroy.js"); +;(function (global, factory) { + true ? factory(__nested_webpack_require_880985__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -var _require = __webpack_require__(/*! ./internal/streams/state */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/state.js"), - getHighWaterMark = _require.getHighWaterMark; + //! moment.js locale configuration -var _require$codes = __webpack_require__(/*! ../errors */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/errors.js").codes, - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance. + var nb = moment.defineLocale('nb', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'), + weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[i går kl.] LT', + lastWeek: '[forrige] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'noen sekunder', + ss: '%d sekunder', + m: 'ett minutt', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dager', + w: 'en uke', + ww: '%d uker', + M: 'en måned', + MM: '%d måneder', + y: 'ett år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + return nb; -var StringDecoder; -var createReadableStreamAsyncIterator; -var from; +}))); -__webpack_require__(/*! inherits */ "./node_modules/cht-core-4-0/api/node_modules/inherits/inherits.js")(Readable, Stream); -var errorOrDestroy = destroyImpl.errorOrDestroy; -var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; +/***/ }), -function prependListener(emitter, event, fn) { - // Sadly this is not cacheable as some libraries bundle their own - // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any - // userland ones. NEVER DO THIS. This is here only because this code needs - // to continue to work with older versions of Node.js that do not include - // the prependListener() method. The goal is to eventually remove this hack. +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ne.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ne.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_883684__) { - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; -} +//! moment.js locale configuration +//! locale : Nepalese [ne] +//! author : suvash : https://github.com/suvash -function ReadableState(options, stream, isDuplex) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js"); - options = options || {}; // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream. - // These options can be provided separately as readableXXX and writableXXX. +;(function (global, factory) { + true ? factory(__nested_webpack_require_883684__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away + //! moment.js locale configuration - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" + var symbolMap = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }; - this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the - // linked list can remove elements from the beginning faster than - // array.shift() + var ne = moment.defineLocale('ne', { + months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split( + '_' + ), + monthsShort: + 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split( + '_' + ), + weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), + weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'Aको h:mm बजे', + LTS: 'Aको h:mm:ss बजे', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, Aको h:mm बजे', + LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे', + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /राति|बिहान|दिउँसो|साँझ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'राति') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'बिहान') { + return hour; + } else if (meridiem === 'दिउँसो') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'साँझ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 3) { + return 'राति'; + } else if (hour < 12) { + return 'बिहान'; + } else if (hour < 16) { + return 'दिउँसो'; + } else if (hour < 20) { + return 'साँझ'; + } else { + return 'राति'; + } + }, + calendar: { + sameDay: '[आज] LT', + nextDay: '[भोलि] LT', + nextWeek: '[आउँदो] dddd[,] LT', + lastDay: '[हिजो] LT', + lastWeek: '[गएको] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sमा', + past: '%s अगाडि', + s: 'केही क्षण', + ss: '%d सेकेण्ड', + m: 'एक मिनेट', + mm: '%d मिनेट', + h: 'एक घण्टा', + hh: '%d घण्टा', + d: 'एक दिन', + dd: '%d दिन', + M: 'एक महिना', + MM: '%d महिना', + y: 'एक बर्ष', + yy: '%d बर्ष', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); - this.buffer = new BufferList(); - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted - // immediately, or on a later tick. We set this to true at first, because - // any actions that shouldn't happen until "later" should generally also - // not happen before the first read call. + return ne; - this.sync = true; // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. +}))); - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - this.resumeScheduled = false; - this.paused = true; // Should close be emitted on destroy. Defaults to true. - this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish') +/***/ }), - this.autoDestroy = !!options.autoDestroy; // has it been destroyed +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/nl-be.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/nl-be.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_887963__) { - this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. +//! moment.js locale configuration +//! locale : Dutch (Belgium) [nl-be] +//! author : Joris Röling : https://github.com/jorisroling +//! author : Jacob Middag : https://github.com/middagj - this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s +;(function (global, factory) { + true ? factory(__nested_webpack_require_887963__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled + //! moment.js locale configuration - this.readingMore = false; - this.decoder = null; - this.encoding = null; + var monthsShortWithDots = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse = [ + /^jan/i, + /^feb/i, + /^maart|mrt.?$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - if (options.encoding) { - if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ "./node_modules/cht-core-4-0/api/node_modules/string_decoder/lib/string_decoder.js").StringDecoder; - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } -} + var nlBe = moment.defineLocale('nl-be', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, -function Readable(options) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js"); - if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside - // the ReadableState constructor, at least with V8 6.5 + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, - var isDuplex = this instanceof Duplex; - this._readableState = new ReadableState(options, this, isDuplex); // legacy + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, - this.readable = true; + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: 'één minuut', + mm: '%d minuten', + h: 'één uur', + hh: '%d uur', + d: 'één dag', + dd: '%d dagen', + M: 'één maand', + MM: '%d maanden', + y: 'één jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - if (options) { - if (typeof options.read === 'function') this._read = options.read; - if (typeof options.destroy === 'function') this._destroy = options.destroy; - } + return nlBe; - Stream.call(this); -} +}))); -Object.defineProperty(Readable.prototype, 'destroyed', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - if (this._readableState === undefined) { - return false; - } - return this._readableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._readableState) { - return; - } // backward compatibility, the user is explicitly - // managing destroyed +/***/ }), +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/nl.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/nl.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_892093__) { - this._readableState.destroyed = value; - } -}); -Readable.prototype.destroy = destroyImpl.destroy; -Readable.prototype._undestroy = destroyImpl.undestroy; +//! moment.js locale configuration +//! locale : Dutch [nl] +//! author : Joris Röling : https://github.com/jorisroling +//! author : Jacob Middag : https://github.com/middagj -Readable.prototype._destroy = function (err, cb) { - cb(err); -}; // Manually shove something into the read() buffer. -// This returns true if the highWaterMark has not been hit yet, -// similar to how Writable.write() returns true if you should -// write() some more. +;(function (global, factory) { + true ? factory(__nested_webpack_require_892093__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + //! moment.js locale configuration -Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState; - var skipChunkCheck; + var monthsShortWithDots = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse = [ + /^jan/i, + /^feb/i, + /^maart|mrt.?$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - if (!state.objectMode) { - if (typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; + var nl = moment.defineLocale('nl', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, - if (encoding !== state.encoding) { - chunk = Buffer.from(chunk, encoding); - encoding = ''; - } + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, - skipChunkCheck = true; - } - } else { - skipChunkCheck = true; - } + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, - return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); -}; // Unshift should *always* be something directly out of read() + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: 'één minuut', + mm: '%d minuten', + h: 'één uur', + hh: '%d uur', + d: 'één dag', + dd: '%d dagen', + w: 'één week', + ww: '%d weken', + M: 'één maand', + MM: '%d maanden', + y: 'één jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + return nl; -Readable.prototype.unshift = function (chunk) { - return readableAddChunk(this, chunk, null, true, false); -}; +}))); -function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { - debug('readableAddChunk', chunk); - var state = stream._readableState; - if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } else { - var er; - if (!skipChunkCheck) er = chunkInvalid(state, chunk); +/***/ }), - if (er) { - errorOrDestroy(stream, er); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { - chunk = _uint8ArrayToBuffer(chunk); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/nn.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/nn.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_896258__) { - if (addToFront) { - if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true); - } else if (state.ended) { - errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); - } else if (state.destroyed) { - return false; - } else { - state.reading = false; +//! moment.js locale configuration +//! locale : Nynorsk [nn] +//! authors : https://github.com/mechuwind +//! Stephen Ramthun : https://github.com/stephenramthun - if (state.decoder && !encoding) { - chunk = state.decoder.write(chunk); - if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); - } else { - addChunk(stream, state, chunk, false); - } - } - } else if (!addToFront) { - state.reading = false; - maybeReadMore(stream, state); - } - } // We can push more data if we are below the highWaterMark. - // Also, if we have no data yet, we can stand some more bytes. - // This is to work around cases where hwm=0, such as the repl. +;(function (global, factory) { + true ? factory(__nested_webpack_require_896258__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + //! moment.js locale configuration - return !state.ended && (state.length < state.highWaterMark || state.length === 0); -} + var nn = moment.defineLocale('nn', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), + weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'), + weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[I dag klokka] LT', + nextDay: '[I morgon klokka] LT', + nextWeek: 'dddd [klokka] LT', + lastDay: '[I går klokka] LT', + lastWeek: '[Føregåande] dddd [klokka] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s sidan', + s: 'nokre sekund', + ss: '%d sekund', + m: 'eit minutt', + mm: '%d minutt', + h: 'ein time', + hh: '%d timar', + d: 'ein dag', + dd: '%d dagar', + w: 'ei veke', + ww: '%d veker', + M: 'ein månad', + MM: '%d månader', + y: 'eit år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); -function addChunk(stream, state, chunk, addToFront) { - if (state.flowing && state.length === 0 && !state.sync) { - state.awaitDrain = 0; - stream.emit('data', chunk); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - if (state.needReadable) emitReadable(stream); - } + return nn; - maybeReadMore(stream, state); -} +}))); -function chunkInvalid(state, chunk) { - var er; - if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk); - } +/***/ }), - return er; -} +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/oc-lnc.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/oc-lnc.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_898904__) { -Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; -}; // backwards compatibility. +//! moment.js locale configuration +//! locale : Occitan, lengadocian dialecte [oc-lnc] +//! author : Quentin PAGÈS : https://github.com/Quenty31 + +;(function (global, factory) { + true ? factory(__nested_webpack_require_898904__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + //! moment.js locale configuration -Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ "./node_modules/cht-core-4-0/api/node_modules/string_decoder/lib/string_decoder.js").StringDecoder; - var decoder = new StringDecoder(enc); - this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8 + var ocLnc = moment.defineLocale('oc-lnc', { + months: { + standalone: + 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split( + '_' + ), + format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: '[uèi a] LT', + nextDay: '[deman a] LT', + nextWeek: 'dddd [a] LT', + lastDay: '[ièr a] LT', + lastWeek: 'dddd [passat a] LT', + sameElse: 'L', + }, + relativeTime: { + future: "d'aquí %s", + past: 'fa %s', + s: 'unas segondas', + ss: '%d segondas', + m: 'una minuta', + mm: '%d minutas', + h: 'una ora', + hh: '%d oras', + d: 'un jorn', + dd: '%d jorns', + M: 'un mes', + MM: '%d meses', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, + ordinal: function (number, period) { + var output = + number === 1 + ? 'r' + : number === 2 + ? 'n' + : number === 3 + ? 'r' + : number === 4 + ? 't' + : 'è'; + if (period === 'w' || period === 'W') { + output = 'a'; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, + }, + }); - this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers: + return ocLnc; - var p = this._readableState.buffer.head; - var content = ''; +}))); - while (p !== null) { - content += decoder.write(p.data); - p = p.next; - } - this._readableState.buffer.clear(); +/***/ }), - if (content !== '') this._readableState.buffer.push(content); - this._readableState.length = content.length; - return this; -}; // Don't raise the hwm > 1GB +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/pa-in.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/pa-in.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_902297__) { +//! moment.js locale configuration +//! locale : Punjabi (India) [pa-in] +//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit -var MAX_HWM = 0x40000000; +;(function (global, factory) { + true ? factory(__nested_webpack_require_902297__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE. - n = MAX_HWM; - } else { - // Get the next highest power of 2 to prevent increasing hwm excessively in - // tiny amounts - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } + //! moment.js locale configuration - return n; -} // This function is designed to be inlinable, so please take care when making -// changes to the function body. + var symbolMap = { + 1: '੧', + 2: '੨', + 3: '੩', + 4: '੪', + 5: '੫', + 6: '੬', + 7: '੭', + 8: '੮', + 9: '੯', + 0: '੦', + }, + numberMap = { + '੧': '1', + '੨': '2', + '੩': '3', + '੪': '4', + '੫': '5', + '੬': '6', + '੭': '7', + '੮': '8', + '੯': '9', + '੦': '0', + }; + var paIn = moment.defineLocale('pa-in', { + // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. + months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( + '_' + ), + monthsShort: + 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( + '_' + ), + weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split( + '_' + ), + weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), + weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), + longDateFormat: { + LT: 'A h:mm ਵਜੇ', + LTS: 'A h:mm:ss ਵਜੇ', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm ਵਜੇ', + LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ', + }, + calendar: { + sameDay: '[ਅਜ] LT', + nextDay: '[ਕਲ] LT', + nextWeek: '[ਅਗਲਾ] dddd, LT', + lastDay: '[ਕਲ] LT', + lastWeek: '[ਪਿਛਲੇ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ਵਿੱਚ', + past: '%s ਪਿਛਲੇ', + s: 'ਕੁਝ ਸਕਿੰਟ', + ss: '%d ਸਕਿੰਟ', + m: 'ਇਕ ਮਿੰਟ', + mm: '%d ਮਿੰਟ', + h: 'ਇੱਕ ਘੰਟਾ', + hh: '%d ਘੰਟੇ', + d: 'ਇੱਕ ਦਿਨ', + dd: '%d ਦਿਨ', + M: 'ਇੱਕ ਮਹੀਨਾ', + MM: '%d ਮਹੀਨੇ', + y: 'ਇੱਕ ਸਾਲ', + yy: '%d ਸਾਲ', + }, + preparse: function (string) { + return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Punjabi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. + meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ਰਾਤ') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ਸਵੇਰ') { + return hour; + } else if (meridiem === 'ਦੁਪਹਿਰ') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'ਸ਼ਾਮ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ਰਾਤ'; + } else if (hour < 10) { + return 'ਸਵੇਰ'; + } else if (hour < 17) { + return 'ਦੁਪਹਿਰ'; + } else if (hour < 20) { + return 'ਸ਼ਾਮ'; + } else { + return 'ਰਾਤ'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); -function howMuchToRead(n, state) { - if (n <= 0 || state.length === 0 && state.ended) return 0; - if (state.objectMode) return 1; + return paIn; - if (n !== n) { - // Only flow one buffer at a time - if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } // If we're asking for more than the current hwm, then raise the hwm. +}))); - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; // Don't have enough +/***/ }), - if (!state.ended) { - state.needReadable = true; - return 0; - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/pl.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/pl.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_906777__) { - return state.length; -} // you can override either this method, or the async _read(n) below. +//! moment.js locale configuration +//! locale : Polish [pl] +//! author : Rafal Hirsz : https://github.com/evoL +;(function (global, factory) { + true ? factory(__nested_webpack_require_906777__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -Readable.prototype.read = function (n) { - debug('read', n); - n = parseInt(n, 10); - var state = this._readableState; - var nOrig = n; - if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. + //! moment.js locale configuration - if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } + var monthsNominative = + 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split( + '_' + ), + monthsSubjective = + 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split( + '_' + ), + monthsParse = [ + /^sty/i, + /^lut/i, + /^mar/i, + /^kwi/i, + /^maj/i, + /^cze/i, + /^lip/i, + /^sie/i, + /^wrz/i, + /^paź/i, + /^lis/i, + /^gru/i, + ]; + function plural(n) { + return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; + } + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + return result + (plural(number) ? 'sekundy' : 'sekund'); + case 'm': + return withoutSuffix ? 'minuta' : 'minutę'; + case 'mm': + return result + (plural(number) ? 'minuty' : 'minut'); + case 'h': + return withoutSuffix ? 'godzina' : 'godzinę'; + case 'hh': + return result + (plural(number) ? 'godziny' : 'godzin'); + case 'ww': + return result + (plural(number) ? 'tygodnie' : 'tygodni'); + case 'MM': + return result + (plural(number) ? 'miesiące' : 'miesięcy'); + case 'yy': + return result + (plural(number) ? 'lata' : 'lat'); + } + } - n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up. + var pl = moment.defineLocale('pl', { + months: function (momentToFormat, format) { + if (!momentToFormat) { + return monthsNominative; + } else if (/D MMMM/.test(format)) { + return monthsSubjective[momentToFormat.month()]; + } else { + return monthsNominative[momentToFormat.month()]; + } + }, + monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: + 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'), + weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'), + weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Dziś o] LT', + nextDay: '[Jutro o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[W niedzielę o] LT'; - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; - } // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. - // if we need a readable event, then we need to do some reading. + case 2: + return '[We wtorek o] LT'; + case 3: + return '[W środę o] LT'; - var doRead = state.needReadable; - debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some + case 6: + return '[W sobotę o] LT'; - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. + default: + return '[W] dddd [o] LT'; + } + }, + lastDay: '[Wczoraj o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[W zeszłą niedzielę o] LT'; + case 3: + return '[W zeszłą środę o] LT'; + case 6: + return '[W zeszłą sobotę o] LT'; + default: + return '[W zeszły] dddd [o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: '%s temu', + s: 'kilka sekund', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: '1 dzień', + dd: '%d dni', + w: 'tydzień', + ww: translate, + M: 'miesiąc', + MM: translate, + y: 'rok', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + return pl; - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } else if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; // if the length is currently zero, then we *need* a readable event. +}))); - if (state.length === 0) state.needReadable = true; // call internal read method - this._read(state.highWaterMark); +/***/ }), - state.sync = false; // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/pt-br.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/pt-br.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_912037__) { - if (!state.reading) n = howMuchToRead(nOrig, state); - } +//! moment.js locale configuration +//! locale : Portuguese (Brazil) [pt-br] +//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira - var ret; - if (n > 0) ret = fromList(n, state);else ret = null; +;(function (global, factory) { + true ? factory(__nested_webpack_require_912037__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (ret === null) { - state.needReadable = state.length <= state.highWaterMark; - n = 0; - } else { - state.length -= n; - state.awaitDrain = 0; - } + //! moment.js locale configuration - if (state.length === 0) { - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick. + var ptBr = moment.defineLocale('pt-br', { + months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split( + '_' + ), + weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'), + weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY [às] HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm', + }, + calendar: { + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[Último] dddd [às] LT' // Saturday + Sunday + : '[Última] dddd [às] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'há %s', + s: 'poucos segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + M: 'um mês', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + invalidDate: 'Data inválida', + }); - if (nOrig !== n && state.ended) endReadable(this); - } + return ptBr; - if (ret !== null) this.emit('data', ret); - return ret; -}; +}))); -function onEofChunk(stream, state) { - debug('onEofChunk'); - if (state.ended) return; - if (state.decoder) { - var chunk = state.decoder.end(); +/***/ }), - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/pt.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/pt.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_914681__) { - state.ended = true; +//! moment.js locale configuration +//! locale : Portuguese [pt] +//! author : Jefferson : https://github.com/jalex79 - if (state.sync) { - // if we are sync, wait until next tick to emit the data. - // Otherwise we risk emitting data in the flow() - // the readable code triggers during a read() call - emitReadable(stream); - } else { - // emit 'readable' now to make sure it gets picked up. - state.needReadable = false; +;(function (global, factory) { + true ? factory(__nested_webpack_require_914681__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (!state.emittedReadable) { - state.emittedReadable = true; - emitReadable_(stream); - } - } -} // Don't emit readable right away in sync mode, because this can trigger -// another read() call => stack overflow. This way, it might trigger -// a nextTick recursion warning, but that's not so bad. + //! moment.js locale configuration + var pt = moment.defineLocale('pt', { + months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split( + '_' + ), + weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), + weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', + }, + calendar: { + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[Último] dddd [às] LT' // Saturday + Sunday + : '[Última] dddd [às] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'há %s', + s: 'segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + w: 'uma semana', + ww: '%d semanas', + M: 'um mês', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); -function emitReadable(stream) { - var state = stream._readableState; - debug('emitReadable', state.needReadable, state.emittedReadable); - state.needReadable = false; + return pt; - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - process.nextTick(emitReadable_, stream); - } -} +}))); -function emitReadable_(stream) { - var state = stream._readableState; - debug('emitReadable_', state.destroyed, state.length, state.ended); - if (!state.destroyed && (state.length || state.ended)) { - stream.emit('readable'); - state.emittedReadable = false; - } // The stream needs another readable event if - // 1. It is not flowing, as the flow mechanism will take - // care of it. - // 2. It is not ended. - // 3. It is below the highWaterMark, so we can schedule - // another readable later. +/***/ }), +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ro.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ro.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_917458__) { - state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; - flow(stream); -} // at this point, the user has presumably seen the 'readable' event, -// and called read() to consume some data. that may have triggered -// in turn another _read(n) call, in which case reading = true if -// it's in progress. -// However, if we're not ended, or reading, and the length < hwm, -// then go ahead and try to read some more preemptively. +//! moment.js locale configuration +//! locale : Romanian [ro] +//! author : Vlad Gurdiga : https://github.com/gurdiga +//! author : Valentin Agachi : https://github.com/avaly +//! author : Emanuel Cepoi : https://github.com/cepem +;(function (global, factory) { + true ? factory(__nested_webpack_require_917458__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - process.nextTick(maybeReadMore_, stream, state); - } -} + //! moment.js locale configuration -function maybeReadMore_(stream, state) { - // Attempt to read more data if we should. - // - // The conditions for reading more data are (one of): - // - Not enough data buffered (state.length < state.highWaterMark). The loop - // is responsible for filling the buffer with enough data if such data - // is available. If highWaterMark is 0 and we are not in the flowing mode - // we should _not_ attempt to buffer any extra data. We'll get more data - // when the stream consumer calls read() instead. - // - No data in the buffer, and the stream is in flowing mode. In this mode - // the loop below is responsible for ensuring read() is called. Failing to - // call read here would abort the flow and there's no other mechanism for - // continuing the flow if the stream consumer has just subscribed to the - // 'data' event. - // - // In addition to the above conditions to keep reading data, the following - // conditions prevent the data from being read: - // - The stream has ended (state.ended). - // - There is already a pending 'read' operation (state.reading). This is a - // case where the the stream has called the implementation defined _read() - // method, but they are processing the call asynchronously and have _not_ - // called push() with new data. In this case we skip performing more - // read()s. The execution ends in this method again after the _read() ends - // up calling push() with more data. - while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) { - var len = state.length; - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) // didn't get any data, stop spinning. - break; - } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: 'secunde', + mm: 'minute', + hh: 'ore', + dd: 'zile', + ww: 'săptămâni', + MM: 'luni', + yy: 'ani', + }, + separator = ' '; + if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { + separator = ' de '; + } + return number + separator + format[key]; + } - state.readingMore = false; -} // abstract method. to be overridden in specific implementation classes. -// call cb(er, data) where data is <= n in length. -// for virtual (non-string, non-buffer) streams, "length" is somewhat -// arbitrary, and perhaps not very meaningful. + var ro = moment.defineLocale('ro', { + months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( + '_' + ), + monthsShort: + 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'), + weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), + weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[azi la] LT', + nextDay: '[mâine la] LT', + nextWeek: 'dddd [la] LT', + lastDay: '[ieri la] LT', + lastWeek: '[fosta] dddd [la] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'peste %s', + past: '%s în urmă', + s: 'câteva secunde', + ss: relativeTimeWithPlural, + m: 'un minut', + mm: relativeTimeWithPlural, + h: 'o oră', + hh: relativeTimeWithPlural, + d: 'o zi', + dd: relativeTimeWithPlural, + w: 'o săptămână', + ww: relativeTimeWithPlural, + M: 'o lună', + MM: relativeTimeWithPlural, + y: 'un an', + yy: relativeTimeWithPlural, + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + return ro; -Readable.prototype._read = function (n) { - errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')); -}; +}))); -Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; +/***/ }), - case 1: - state.pipes = [state.pipes, dest]; - break; +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ru.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ru.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_920629__) { - default: - state.pipes.push(dest); - break; - } +//! moment.js locale configuration +//! locale : Russian [ru] +//! author : Viktorminator : https://github.com/Viktorminator +//! author : Menelion Elensúle : https://github.com/Oire +//! author : Коренберг Марк : https://github.com/socketpair - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - var endFn = doEnd ? onend : unpipe; - if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn); - dest.on('unpipe', onunpipe); +;(function (global, factory) { + true ? factory(__nested_webpack_require_920629__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - function onunpipe(readable, unpipeInfo) { - debug('onunpipe'); + //! moment.js locale configuration - if (readable === src) { - if (unpipeInfo && unpipeInfo.hasUnpiped === false) { - unpipeInfo.hasUnpiped = true; - cleanup(); - } + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; } - } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', + mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', + hh: 'час_часа_часов', + dd: 'день_дня_дней', + ww: 'неделя_недели_недель', + MM: 'месяц_месяца_месяцев', + yy: 'год_года_лет', + }; + if (key === 'm') { + return withoutSuffix ? 'минута' : 'минуту'; + } else { + return number + ' ' + plural(format[key], +number); + } + } + var monthsParse = [ + /^янв/i, + /^фев/i, + /^мар/i, + /^апр/i, + /^ма[йя]/i, + /^июн/i, + /^июл/i, + /^авг/i, + /^сен/i, + /^окт/i, + /^ноя/i, + /^дек/i, + ]; - function onend() { - debug('onend'); - dest.end(); - } // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. + // http://new.gramota.ru/spravka/rules/139-prop : § 103 + // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 + // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 + var ru = moment.defineLocale('ru', { + months: { + format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split( + '_' + ), + standalone: + 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( + '_' + ), + }, + monthsShort: { + // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку? + format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split( + '_' + ), + standalone: + 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split( + '_' + ), + }, + weekdays: { + standalone: + 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split( + '_' + ), + format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split( + '_' + ), + isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/, + }, + weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки + monthsRegex: + /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - var cleanedUp = false; + // копия предыдущего + monthsShortRegex: + /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, - function cleanup() { - debug('cleanup'); // cleanup event handlers once the pipe is broken + // полные названия с падежами + monthsStrictRegex: + /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', unpipe); - src.removeListener('data', ondata); - cleanedUp = true; // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. + // Выражение, которое соответствует только сокращённым формам + monthsShortStrictRegex: + /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY г.', + LLL: 'D MMMM YYYY г., H:mm', + LLLL: 'dddd, D MMMM YYYY г., H:mm', + }, + calendar: { + sameDay: '[Сегодня, в] LT', + nextDay: '[Завтра, в] LT', + lastDay: '[Вчера, в] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + switch (this.day()) { + case 0: + return '[В следующее] dddd, [в] LT'; + case 1: + case 2: + case 4: + return '[В следующий] dddd, [в] LT'; + case 3: + case 5: + case 6: + return '[В следующую] dddd, [в] LT'; + } + } else { + if (this.day() === 2) { + return '[Во] dddd, [в] LT'; + } else { + return '[В] dddd, [в] LT'; + } + } + }, + lastWeek: function (now) { + if (now.week() !== this.week()) { + switch (this.day()) { + case 0: + return '[В прошлое] dddd, [в] LT'; + case 1: + case 2: + case 4: + return '[В прошлый] dddd, [в] LT'; + case 3: + case 5: + case 6: + return '[В прошлую] dddd, [в] LT'; + } + } else { + if (this.day() === 2) { + return '[Во] dddd, [в] LT'; + } else { + return '[В] dddd, [в] LT'; + } + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'через %s', + past: '%s назад', + s: 'несколько секунд', + ss: relativeTimeWithPlural, + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: 'час', + hh: relativeTimeWithPlural, + d: 'день', + dd: relativeTimeWithPlural, + w: 'неделя', + ww: relativeTimeWithPlural, + M: 'месяц', + MM: relativeTimeWithPlural, + y: 'год', + yy: relativeTimeWithPlural, + }, + meridiemParse: /ночи|утра|дня|вечера/i, + isPM: function (input) { + return /^(дня|вечера)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночи'; + } else if (hour < 12) { + return 'утра'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечера'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + return number + '-й'; + case 'D': + return number + '-го'; + case 'w': + case 'W': + return number + '-я'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } + return ru; - src.on('data', ondata); +}))); - function ondata(chunk) { - debug('ondata'); - var ret = dest.write(chunk); - debug('dest.write', ret); - if (ret === false) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - // => Check whether `dest` is still a piping destination. - if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug('false write response, pause', state.awaitDrain); - state.awaitDrain++; - } +/***/ }), - src.pause(); - } - } // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/sd.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/sd.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_929085__) { +//! moment.js locale configuration +//! locale : Sindhi [sd] +//! author : Narain Sagar : https://github.com/narainsagar - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er); - } // Make sure our error handler is attached before userland ones. +;(function (global, factory) { + true ? factory(__nested_webpack_require_929085__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + //! moment.js locale configuration - prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once. + var months = [ + 'جنوري', + 'فيبروري', + 'مارچ', + 'اپريل', + 'مئي', + 'جون', + 'جولاءِ', + 'آگسٽ', + 'سيپٽمبر', + 'آڪٽوبر', + 'نومبر', + 'ڊسمبر', + ], + days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر']; - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } + var sd = moment.defineLocale('sd', { + months: months, + monthsShort: months, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd، D MMMM YYYY HH:mm', + }, + meridiemParse: /صبح|شام/, + isPM: function (input) { + return 'شام' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'صبح'; + } + return 'شام'; + }, + calendar: { + sameDay: '[اڄ] LT', + nextDay: '[سڀاڻي] LT', + nextWeek: 'dddd [اڳين هفتي تي] LT', + lastDay: '[ڪالهه] LT', + lastWeek: '[گزريل هفتي] dddd [تي] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s پوء', + past: '%s اڳ', + s: 'چند سيڪنڊ', + ss: '%d سيڪنڊ', + m: 'هڪ منٽ', + mm: '%d منٽ', + h: 'هڪ ڪلاڪ', + hh: '%d ڪلاڪ', + d: 'هڪ ڏينهن', + dd: '%d ڏينهن', + M: 'هڪ مهينو', + MM: '%d مهينا', + y: 'هڪ سال', + yy: '%d سال', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - dest.once('close', onclose); + return sd; - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } +}))); - dest.once('finish', onfinish); - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } // tell the dest that it's being piped to +/***/ }), +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/se.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/se.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_931932__) { - dest.emit('pipe', src); // start the flow if it hasn't been started already. +//! moment.js locale configuration +//! locale : Northern Sami [se] +//! authors : Bård Rolstad Henriksen : https://github.com/karamell - if (!state.flowing) { - debug('pipe resume'); - src.resume(); - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_931932__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - return dest; -}; + //! moment.js locale configuration -function pipeOnDrain(src) { - return function pipeOnDrainFunctionResult() { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; + var se = moment.defineLocale('se', { + months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split( + '_' + ), + monthsShort: + 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'), + weekdays: + 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split( + '_' + ), + weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), + weekdaysMin: 's_v_m_g_d_b_L'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'MMMM D. [b.] YYYY', + LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', + LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', + }, + calendar: { + sameDay: '[otne ti] LT', + nextDay: '[ihttin ti] LT', + nextWeek: 'dddd [ti] LT', + lastDay: '[ikte ti] LT', + lastWeek: '[ovddit] dddd [ti] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s geažes', + past: 'maŋit %s', + s: 'moadde sekunddat', + ss: '%d sekunddat', + m: 'okta minuhta', + mm: '%d minuhtat', + h: 'okta diimmu', + hh: '%d diimmut', + d: 'okta beaivi', + dd: '%d beaivvit', + M: 'okta mánnu', + MM: '%d mánut', + y: 'okta jahki', + yy: '%d jagit', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true; - flow(src); - } - }; -} + return se; -Readable.prototype.unpipe = function (dest) { - var state = this._readableState; - var unpipeInfo = { - hasUnpiped: false - }; // if we're not piping anywhere, then do nothing. +}))); - if (state.pipesCount === 0) return this; // just one destination. most common case. - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; - if (!dest) dest = state.pipes; // got a match. +/***/ }), - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this, unpipeInfo); - return this; - } // slow case. multiple pipe destinations. +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/si.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/si.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_934553__) { +//! moment.js locale configuration +//! locale : Sinhalese [si] +//! author : Sampath Sitinamaluwa : https://github.com/sampathsris - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; +;(function (global, factory) { + true ? factory(__nested_webpack_require_934553__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this, { - hasUnpiped: false - }); - } + //! moment.js locale configuration - return this; - } // try to find the right one. + /*jshint -W100*/ + var si = moment.defineLocale('si', { + months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split( + '_' + ), + monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split( + '_' + ), + weekdays: + 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split( + '_' + ), + weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), + weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'a h:mm', + LTS: 'a h:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY MMMM D', + LLL: 'YYYY MMMM D, a h:mm', + LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss', + }, + calendar: { + sameDay: '[අද] LT[ට]', + nextDay: '[හෙට] LT[ට]', + nextWeek: 'dddd LT[ට]', + lastDay: '[ඊයේ] LT[ට]', + lastWeek: '[පසුගිය] dddd LT[ට]', + sameElse: 'L', + }, + relativeTime: { + future: '%sකින්', + past: '%sකට පෙර', + s: 'තත්පර කිහිපය', + ss: 'තත්පර %d', + m: 'මිනිත්තුව', + mm: 'මිනිත්තු %d', + h: 'පැය', + hh: 'පැය %d', + d: 'දිනය', + dd: 'දින %d', + M: 'මාසය', + MM: 'මාස %d', + y: 'වසර', + yy: 'වසර %d', + }, + dayOfMonthOrdinalParse: /\d{1,2} වැනි/, + ordinal: function (number) { + return number + ' වැනි'; + }, + meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, + isPM: function (input) { + return input === 'ප.ව.' || input === 'පස් වරු'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'ප.ව.' : 'පස් වරු'; + } else { + return isLower ? 'පෙ.ව.' : 'පෙර වරු'; + } + }, + }); + return si; - var index = indexOf(state.pipes, dest); - if (index === -1) return this; - state.pipes.splice(index, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; - dest.emit('unpipe', this, unpipeInfo); - return this; -}; // set up data events if they are asked for -// Ensure readable listeners eventually get something +}))); -Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); - var state = this._readableState; +/***/ }), - if (ev === 'data') { - // update readableListening so that resume() may be a no-op - // a few lines down. This is needed to support once('readable'). - state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/sk.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/sk.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_937376__) { + +//! moment.js locale configuration +//! locale : Slovak [sk] +//! author : Martin Minka : https://github.com/k2s +//! based on work of petrbela : https://github.com/petrbela - if (state.flowing !== false) this.resume(); - } else if (ev === 'readable') { - if (!state.endEmitted && !state.readableListening) { - state.readableListening = state.needReadable = true; - state.flowing = false; - state.emittedReadable = false; - debug('on readable', state.length, state.reading); +;(function (global, factory) { + true ? factory(__nested_webpack_require_937376__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (state.length) { - emitReadable(this); - } else if (!state.reading) { - process.nextTick(nReadingNextTick, this); - } - } - } + //! moment.js locale configuration - return res; -}; + var months = + 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split( + '_' + ), + monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); + function plural(n) { + return n > 1 && n < 5; + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'sekundy' : 'sekúnd'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'minúty' : 'minút'); + } else { + return result + 'minútami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hodín'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'deň' : 'dňom'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dni' : 'dní'); + } else { + return result + 'dňami'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'mesiace' : 'mesiacov'); + } else { + return result + 'mesiacmi'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokom'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'rokov'); + } else { + return result + 'rokmi'; + } + } + } -Readable.prototype.addListener = Readable.prototype.on; + var sk = moment.defineLocale('sk', { + months: months, + monthsShort: monthsShort, + weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'), + weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'), + weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[dnes o] LT', + nextDay: '[zajtra o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v nedeľu o] LT'; + case 1: + case 2: + return '[v] dddd [o] LT'; + case 3: + return '[v stredu o] LT'; + case 4: + return '[vo štvrtok o] LT'; + case 5: + return '[v piatok o] LT'; + case 6: + return '[v sobotu o] LT'; + } + }, + lastDay: '[včera o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulú nedeľu o] LT'; + case 1: + case 2: + return '[minulý] dddd [o] LT'; + case 3: + return '[minulú stredu o] LT'; + case 4: + case 5: + return '[minulý] dddd [o] LT'; + case 6: + return '[minulú sobotu o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pred %s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); -Readable.prototype.removeListener = function (ev, fn) { - var res = Stream.prototype.removeListener.call(this, ev, fn); + return sk; - if (ev === 'readable') { - // We need to check if there is someone still listening to - // readable and reset the state. However this needs to happen - // after readable has been emitted but before I/O (nextTick) to - // support once('readable', fn) cycles. This means that calling - // resume within the same tick will have no - // effect. - process.nextTick(updateReadableListening, this); - } +}))); - return res; -}; -Readable.prototype.removeAllListeners = function (ev) { - var res = Stream.prototype.removeAllListeners.apply(this, arguments); +/***/ }), - if (ev === 'readable' || ev === undefined) { - // We need to check if there is someone still listening to - // readable and reset the state. However this needs to happen - // after readable has been emitted but before I/O (nextTick) to - // support once('readable', fn) cycles. This means that calling - // resume within the same tick will have no - // effect. - process.nextTick(updateReadableListening, this); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/sl.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/sl.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_943663__) { - return res; -}; +//! moment.js locale configuration +//! locale : Slovenian [sl] +//! author : Robert Sedovšek : https://github.com/sedovsek -function updateReadableListening(self) { - var state = self._readableState; - state.readableListening = self.listenerCount('readable') > 0; +;(function (global, factory) { + true ? factory(__nested_webpack_require_943663__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (state.resumeScheduled && !state.paused) { - // flowing needs to be set to true now, otherwise - // the upcoming resume will not flow. - state.flowing = true; // crude way to check if we should resume - } else if (self.listenerCount('data') > 0) { - self.resume(); - } -} + //! moment.js locale configuration -function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); -} // pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nekaj sekund' + : 'nekaj sekundami'; + case 'ss': + if (number === 1) { + result += withoutSuffix ? 'sekundo' : 'sekundi'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; + } else { + result += 'sekund'; + } + return result; + case 'm': + return withoutSuffix ? 'ena minuta' : 'eno minuto'; + case 'mm': + if (number === 1) { + result += withoutSuffix ? 'minuta' : 'minuto'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'minute' : 'minutami'; + } else { + result += withoutSuffix || isFuture ? 'minut' : 'minutami'; + } + return result; + case 'h': + return withoutSuffix ? 'ena ura' : 'eno uro'; + case 'hh': + if (number === 1) { + result += withoutSuffix ? 'ura' : 'uro'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'uri' : 'urama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'ure' : 'urami'; + } else { + result += withoutSuffix || isFuture ? 'ur' : 'urami'; + } + return result; + case 'd': + return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; + case 'dd': + if (number === 1) { + result += withoutSuffix || isFuture ? 'dan' : 'dnem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; + } else { + result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; + } + return result; + case 'M': + return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; + case 'MM': + if (number === 1) { + result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; + } else { + result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; + } + return result; + case 'y': + return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; + case 'yy': + if (number === 1) { + result += withoutSuffix || isFuture ? 'leto' : 'letom'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'leti' : 'letoma'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'leta' : 'leti'; + } else { + result += withoutSuffix || isFuture ? 'let' : 'leti'; + } + return result; + } + } + var sl = moment.defineLocale('sl', { + months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'), + weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'), + weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD. MM. YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danes ob] LT', + nextDay: '[jutri ob] LT', -Readable.prototype.resume = function () { - var state = this._readableState; + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v] [nedeljo] [ob] LT'; + case 3: + return '[v] [sredo] [ob] LT'; + case 6: + return '[v] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[v] dddd [ob] LT'; + } + }, + lastDay: '[včeraj ob] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prejšnjo] [nedeljo] [ob] LT'; + case 3: + return '[prejšnjo] [sredo] [ob] LT'; + case 6: + return '[prejšnjo] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prejšnji] dddd [ob] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'čez %s', + past: 'pred %s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); - if (!state.flowing) { - debug('resume'); // we flow only if there is no one listening - // for readable, but we still have to call - // resume() + return sl; - state.flowing = !state.readableListening; - resume(this, state); - } +}))); - state.paused = false; - return this; -}; -function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - process.nextTick(resume_, stream, state); - } -} +/***/ }), -function resume_(stream, state) { - debug('resume', state.reading); +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/sq.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/sq.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_951024__) { - if (!state.reading) { - stream.read(0); - } +//! moment.js locale configuration +//! locale : Albanian [sq] +//! author : Flakërim Ismani : https://github.com/flakerimi +//! author : Menelion Elensúle : https://github.com/Oire +//! author : Oerd Cukalla : https://github.com/oerd - state.resumeScheduled = false; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); -} +;(function (global, factory) { + true ? factory(__nested_webpack_require_951024__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); + //! moment.js locale configuration - if (this._readableState.flowing !== false) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } + var sq = moment.defineLocale('sq', { + months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split( + '_' + ), + monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), + weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split( + '_' + ), + weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), + weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'), + weekdaysParseExact: true, + meridiemParse: /PD|MD/, + isPM: function (input) { + return input.charAt(0) === 'M'; + }, + meridiem: function (hours, minutes, isLower) { + return hours < 12 ? 'PD' : 'MD'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Sot në] LT', + nextDay: '[Nesër në] LT', + nextWeek: 'dddd [në] LT', + lastDay: '[Dje në] LT', + lastWeek: 'dddd [e kaluar në] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'në %s', + past: '%s më parë', + s: 'disa sekonda', + ss: '%d sekonda', + m: 'një minutë', + mm: '%d minuta', + h: 'një orë', + hh: '%d orë', + d: 'një ditë', + dd: '%d ditë', + M: 'një muaj', + MM: '%d muaj', + y: 'një vit', + yy: '%d vite', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - this._readableState.paused = true; - return this; -}; + return sq; -function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); +}))); - while (state.flowing && stream.read() !== null) { - ; - } -} // wrap an old-style stream as the async data source. -// This is *not* part of the readable stream interface. -// It is an ugly unfortunate mess of history. +/***/ }), -Readable.prototype.wrap = function (stream) { - var _this = this; +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/sr-cyrl.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/sr-cyrl.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_953831__) { - var state = this._readableState; - var paused = false; - stream.on('end', function () { - debug('wrapped end'); +//! moment.js locale configuration +//! locale : Serbian Cyrillic [sr-cyrl] +//! author : Milan Janačković : https://github.com/milan-j +//! author : Stefan Crnjaković : https://github.com/crnjakovic - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) _this.push(chunk); - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_953831__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - _this.push(null); - }); - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode + //! moment.js locale configuration - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; + var translator = { + words: { + //Different grammatical cases + ss: ['секунда', 'секунде', 'секунди'], + m: ['један минут', 'једног минута'], + mm: ['минут', 'минута', 'минута'], + h: ['један сат', 'једног сата'], + hh: ['сат', 'сата', 'сати'], + d: ['један дан', 'једног дана'], + dd: ['дан', 'дана', 'дана'], + M: ['један месец', 'једног месеца'], + MM: ['месец', 'месеца', 'месеци'], + y: ['једну годину', 'једне године'], + yy: ['годину', 'године', 'година'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key], + word; - var ret = _this.push(chunk); + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'једна година'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } - if (!ret) { - paused = true; - stream.pause(); - } - }); // proxy all the other methods. - // important when wrapping filters and duplexes. + word = translator.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'годину') { + return number + ' година'; + } - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function methodWrap(method) { - return function methodWrapReturnFunction() { - return stream[method].apply(stream, arguments); - }; - }(i); - } - } // proxy certain important events. + return number + ' ' + word; + }, + }; + var srCyrl = moment.defineLocale('sr-cyrl', { + months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split( + '_' + ), + monthsShort: + 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'), + monthsParseExact: true, + weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), + weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), + weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[данас у] LT', + nextDay: '[сутра у] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[у] [недељу] [у] LT'; + case 3: + return '[у] [среду] [у] LT'; + case 6: + return '[у] [суботу] [у] LT'; + case 1: + case 2: + case 4: + case 5: + return '[у] dddd [у] LT'; + } + }, + lastDay: '[јуче у] LT', + lastWeek: function () { + var lastWeekDays = [ + '[прошле] [недеље] [у] LT', + '[прошлог] [понедељка] [у] LT', + '[прошлог] [уторка] [у] LT', + '[прошле] [среде] [у] LT', + '[прошлог] [четвртка] [у] LT', + '[прошлог] [петка] [у] LT', + '[прошле] [суботе] [у] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: 'пре %s', + s: 'неколико секунди', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: translator.translate, + dd: translator.translate, + M: translator.translate, + MM: translator.translate, + y: translator.translate, + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, + }); - for (var n = 0; n < kProxyEvents.length; n++) { - stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); - } // when we try to consume some more bytes, simply unpause the - // underlying stream. + return srCyrl; +}))); - this._read = function (n) { - debug('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; +/***/ }), - return this; -}; +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/sr.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/sr.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_959101__) { -if (typeof Symbol === 'function') { - Readable.prototype[Symbol.asyncIterator] = function () { - if (createReadableStreamAsyncIterator === undefined) { - createReadableStreamAsyncIterator = __webpack_require__(/*! ./internal/streams/async_iterator */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/async_iterator.js"); - } +//! moment.js locale configuration +//! locale : Serbian [sr] +//! author : Milan Janačković : https://github.com/milan-j +//! author : Stefan Crnjaković : https://github.com/crnjakovic - return createReadableStreamAsyncIterator(this); - }; -} +;(function (global, factory) { + true ? factory(__nested_webpack_require_959101__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState.highWaterMark; - } -}); -Object.defineProperty(Readable.prototype, 'readableBuffer', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState && this._readableState.buffer; - } -}); -Object.defineProperty(Readable.prototype, 'readableFlowing', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState.flowing; - }, - set: function set(state) { - if (this._readableState) { - this._readableState.flowing = state; - } - } -}); // exposed for testing purposes only. + //! moment.js locale configuration -Readable._fromList = fromList; -Object.defineProperty(Readable.prototype, 'readableLength', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState.length; - } -}); // Pluck off n bytes from an array of buffers. -// Length is the combined lengths of all the buffers in the list. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. + var translator = { + words: { + //Different grammatical cases + ss: ['sekunda', 'sekunde', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + d: ['jedan dan', 'jednog dana'], + dd: ['dan', 'dana', 'dana'], + M: ['jedan mesec', 'jednog meseca'], + MM: ['mesec', 'meseca', 'meseci'], + y: ['jednu godinu', 'jedne godine'], + yy: ['godinu', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key], + word; -function fromList(n, state) { - // nothing buffered - if (state.length === 0) return null; - var ret; - if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { - // read it all, truncate the list - if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length); - state.buffer.clear(); - } else { - // read part of list - ret = state.buffer.consume(n, state.decoder); - } - return ret; -} + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'jedna godina'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } -function endReadable(stream) { - var state = stream._readableState; - debug('endReadable', state.endEmitted); + word = translator.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'godinu') { + return number + ' godina'; + } - if (!state.endEmitted) { - state.ended = true; - process.nextTick(endReadableNT, state, stream); - } -} + return number + ' ' + word; + }, + }; -function endReadableNT(state, stream) { - debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift. + var sr = moment.defineLocale('sr', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedelju] [u] LT'; + case 3: + return '[u] [sredu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[juče u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[prošle] [nedelje] [u] LT', + '[prošlog] [ponedeljka] [u] LT', + '[prošlog] [utorka] [u] LT', + '[prošle] [srede] [u] LT', + '[prošlog] [četvrtka] [u] LT', + '[prošlog] [petka] [u] LT', + '[prošle] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pre %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: translator.translate, + dd: translator.translate, + M: translator.translate, + MM: translator.translate, + y: translator.translate, + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); + return sr; - if (state.autoDestroy) { - // In case of duplex streams we need a way to detect - // if the writable side is ready for autoDestroy as well - var wState = stream._writableState; +}))); - if (!wState || wState.autoDestroy && wState.finished) { - stream.destroy(); - } - } - } -} -if (typeof Symbol === 'function') { - Readable.from = function (iterable, opts) { - if (from === undefined) { - from = __webpack_require__(/*! ./internal/streams/from */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/from.js"); - } +/***/ }), - return from(Readable, iterable, opts); - }; -} +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ss.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ss.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_964371__) { -function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } +//! moment.js locale configuration +//! locale : siSwati [ss] +//! author : Nicolai Davies : https://github.com/nicolaidavies - return -1; -} +;(function (global, factory) { + true ? factory(__nested_webpack_require_964371__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -/***/ }), + //! moment.js locale configuration -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js": -/*!******************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js ***! - \******************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + var ss = moment.defineLocale('ss', { + months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( + '_' + ), + monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), + weekdays: + 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( + '_' + ), + weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), + weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Namuhla nga] LT', + nextDay: '[Kusasa nga] LT', + nextWeek: 'dddd [nga] LT', + lastDay: '[Itolo nga] LT', + lastWeek: 'dddd [leliphelile] [nga] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'nga %s', + past: 'wenteka nga %s', + s: 'emizuzwana lomcane', + ss: '%d mzuzwana', + m: 'umzuzu', + mm: '%d emizuzu', + h: 'lihora', + hh: '%d emahora', + d: 'lilanga', + dd: '%d emalanga', + M: 'inyanga', + MM: '%d tinyanga', + y: 'umnyaka', + yy: '%d iminyaka', + }, + meridiemParse: /ekuseni|emini|entsambama|ebusuku/, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'ekuseni'; + } else if (hours < 15) { + return 'emini'; + } else if (hours < 19) { + return 'entsambama'; + } else { + return 'ebusuku'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ekuseni') { + return hour; + } else if (meridiem === 'emini') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { + if (hour === 0) { + return 0; + } + return hour + 12; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: '%d', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. -// a transform stream is a readable/writable stream where you do -// something with the data. Sometimes it's called a "filter", -// but that's not a great name for it, since that implies a thing where -// some bits pass through, and others are simply ignored. (That would -// be a valid example of a transform, of course.) -// -// While the output is causally related to the input, it's not a -// necessarily symmetric or synchronous transformation. For example, -// a zlib stream might take multiple plain-text writes(), and then -// emit a single compressed chunk some time in the future. -// -// Here's how this works: -// -// The Transform stream has all the aspects of the readable and writable -// stream classes. When you write(chunk), that calls _write(chunk,cb) -// internally, and returns false if there's a lot of pending writes -// buffered up. When you call read(), that calls _read(n) until -// there's enough pending readable data buffered up. -// -// In a transform stream, the written data is placed in a buffer. When -// _read(n) is called, it transforms the queued up data, calling the -// buffered _write cb's as it consumes chunks. If consuming a single -// written chunk would result in multiple output chunks, then the first -// outputted bit calls the readcb, and subsequent chunks just go into -// the read buffer, and will cause it to emit 'readable' if necessary. -// -// This way, back-pressure is actually determined by the reading side, -// since _read has to be called to start processing a new chunk. However, -// a pathological inflate type of transform can cause excessive buffering -// here. For example, imagine a stream where every byte of input is -// interpreted as an integer from 0-255, and then results in that many -// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in -// 1kb of data being output. In this case, you could write a very small -// amount of input, and end up with a very large amount of output. In -// such a pathological inflating mechanism, there'd be no way to tell -// the system to stop doing the transform. A single 4MB write could -// cause the system to run out of memory. -// -// However, even in such a pathological case, only a single written chunk -// would be consumed, and then the rest would wait (un-transformed) until -// the results of the previous transformed chunk were consumed. + return ss; +}))); -module.exports = Transform; -var _require$codes = __webpack_require__(/*! ../errors */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/errors.js").codes, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, - ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; +/***/ }), -var Duplex = __webpack_require__(/*! ./_stream_duplex */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js"); +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/sv.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/sv.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_967859__) { -__webpack_require__(/*! inherits */ "./node_modules/cht-core-4-0/api/node_modules/inherits/inherits.js")(Transform, Duplex); +//! moment.js locale configuration +//! locale : Swedish [sv] +//! author : Jens Alm : https://github.com/ulmus -function afterTransform(er, data) { - var ts = this._transformState; - ts.transforming = false; - var cb = ts.writecb; +;(function (global, factory) { + true ? factory(__nested_webpack_require_967859__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (cb === null) { - return this.emit('error', new ERR_MULTIPLE_CALLBACK()); - } + //! moment.js locale configuration - ts.writechunk = null; - ts.writecb = null; - if (data != null) // single equals check for both `null` and `undefined` - this.push(data); - cb(er); - var rs = this._readableState; - rs.reading = false; + var sv = moment.defineLocale('sv', { + months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), + weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'), + weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Idag] LT', + nextDay: '[Imorgon] LT', + lastDay: '[Igår] LT', + nextWeek: '[På] dddd LT', + lastWeek: '[I] dddd[s] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: 'för %s sedan', + s: 'några sekunder', + ss: '%d sekunder', + m: 'en minut', + mm: '%d minuter', + h: 'en timme', + hh: '%d timmar', + d: 'en dag', + dd: '%d dagar', + M: 'en månad', + MM: '%d månader', + y: 'ett år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? ':e' + : b === 1 + ? ':a' + : b === 2 + ? ':a' + : b === 3 + ? ':e' + : ':e'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - if (rs.needReadable || rs.length < rs.highWaterMark) { - this._read(rs.highWaterMark); - } -} + return sv; -function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options); - Duplex.call(this, options); - this._transformState = { - afterTransform: afterTransform.bind(this), - needTransform: false, - transforming: false, - writecb: null, - writechunk: null, - writeencoding: null - }; // start out asking for a readable event once data is transformed. +}))); - this._readableState.needReadable = true; // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. - this._readableState.sync = false; +/***/ }), - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform; - if (typeof options.flush === 'function') this._flush = options.flush; - } // When the writable side finishes, then flush out anything remaining. +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/sw.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/sw.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_970760__) { +//! moment.js locale configuration +//! locale : Swahili [sw] +//! author : Fahad Kassim : https://github.com/fadsel - this.on('prefinish', prefinish); -} +;(function (global, factory) { + true ? factory(__nested_webpack_require_970760__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -function prefinish() { - var _this = this; + //! moment.js locale configuration - if (typeof this._flush === 'function' && !this._readableState.destroyed) { - this._flush(function (er, data) { - done(_this, er, data); + var sw = moment.defineLocale('sw', { + months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), + weekdays: + 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( + '_' + ), + weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), + weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'hh:mm A', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[leo saa] LT', + nextDay: '[kesho saa] LT', + nextWeek: '[wiki ijayo] dddd [saat] LT', + lastDay: '[jana] LT', + lastWeek: '[wiki iliyopita] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s baadaye', + past: 'tokea %s', + s: 'hivi punde', + ss: 'sekunde %d', + m: 'dakika moja', + mm: 'dakika %d', + h: 'saa limoja', + hh: 'masaa %d', + d: 'siku moja', + dd: 'siku %d', + M: 'mwezi mmoja', + MM: 'miezi %d', + y: 'mwaka mmoja', + yy: 'miaka %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, }); - } else { - done(this, null, null); - } -} -Transform.prototype.push = function (chunk, encoding) { - this._transformState.needTransform = false; - return Duplex.prototype.push.call(this, chunk, encoding); -}; // This is the part where you do stuff! -// override this function in implementation classes. -// 'chunk' is an input chunk. -// -// Call `push(newChunk)` to pass along transformed output -// to the readable side. You may call 'push' zero or more times. -// -// Call `cb(err)` when you are done with this chunk. If you pass -// an error, then that'll put the hurt on the whole operation. If you -// never call cb(), then you'll never get another chunk. + return sw; +}))); -Transform.prototype._transform = function (chunk, encoding, cb) { - cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')); -}; -Transform.prototype._write = function (chunk, encoding, cb) { - var ts = this._transformState; - ts.writecb = cb; - ts.writechunk = chunk; - ts.writeencoding = encoding; +/***/ }), - if (!ts.transforming) { - var rs = this._readableState; - if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); - } -}; // Doesn't matter what the args are here. -// _transform does all the work. -// That we got here means that the readable side wants more data. +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ta.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ta.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_973211__) { +//! moment.js locale configuration +//! locale : Tamil [ta] +//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 -Transform.prototype._read = function (n) { - var ts = this._transformState; +;(function (global, factory) { + true ? factory(__nested_webpack_require_973211__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (ts.writechunk !== null && !ts.transforming) { - ts.transforming = true; + //! moment.js locale configuration - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); - } else { - // mark that we need a transform, so that any data that comes in - // will get processed, now that we've asked for it. - ts.needTransform = true; - } -}; + var symbolMap = { + 1: '௧', + 2: '௨', + 3: '௩', + 4: '௪', + 5: '௫', + 6: '௬', + 7: '௭', + 8: '௮', + 9: '௯', + 0: '௦', + }, + numberMap = { + '௧': '1', + '௨': '2', + '௩': '3', + '௪': '4', + '௫': '5', + '௬': '6', + '௭': '7', + '௮': '8', + '௯': '9', + '௦': '0', + }; -Transform.prototype._destroy = function (err, cb) { - Duplex.prototype._destroy.call(this, err, function (err2) { - cb(err2); - }); -}; + var ta = moment.defineLocale('ta', { + months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( + '_' + ), + monthsShort: + 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( + '_' + ), + weekdays: + 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split( + '_' + ), + weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split( + '_' + ), + weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, HH:mm', + LLLL: 'dddd, D MMMM YYYY, HH:mm', + }, + calendar: { + sameDay: '[இன்று] LT', + nextDay: '[நாளை] LT', + nextWeek: 'dddd, LT', + lastDay: '[நேற்று] LT', + lastWeek: '[கடந்த வாரம்] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s இல்', + past: '%s முன்', + s: 'ஒரு சில விநாடிகள்', + ss: '%d விநாடிகள்', + m: 'ஒரு நிமிடம்', + mm: '%d நிமிடங்கள்', + h: 'ஒரு மணி நேரம்', + hh: '%d மணி நேரம்', + d: 'ஒரு நாள்', + dd: '%d நாட்கள்', + M: 'ஒரு மாதம்', + MM: '%d மாதங்கள்', + y: 'ஒரு வருடம்', + yy: '%d ஆண்டுகள்', + }, + dayOfMonthOrdinalParse: /\d{1,2}வது/, + ordinal: function (number) { + return number + 'வது'; + }, + preparse: function (string) { + return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // refer http://ta.wikipedia.org/s/1er1 + meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, + meridiem: function (hour, minute, isLower) { + if (hour < 2) { + return ' யாமம்'; + } else if (hour < 6) { + return ' வைகறை'; // வைகறை + } else if (hour < 10) { + return ' காலை'; // காலை + } else if (hour < 14) { + return ' நண்பகல்'; // நண்பகல் + } else if (hour < 18) { + return ' எற்பாடு'; // எற்பாடு + } else if (hour < 22) { + return ' மாலை'; // மாலை + } else { + return ' யாமம்'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'யாமம்') { + return hour < 2 ? hour : hour + 12; + } else if (meridiem === 'வைகறை' || meridiem === 'காலை') { + return hour; + } else if (meridiem === 'நண்பகல்') { + return hour >= 10 ? hour : hour + 12; + } else { + return hour + 12; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); -function done(stream, er, data) { - if (er) return stream.emit('error', er); - if (data != null) // single equals check for both `null` and `undefined` - stream.push(data); // TODO(BridgeAR): Write a test for these two error cases - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided + return ta; + +}))); - if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0(); - if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); - return stream.push(null); -} /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js": -/*!*****************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js ***! - \*****************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/te.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/te.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_977937__) { -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. -// A bit simpler than readable streams. -// Implement an async ._write(chunk, encoding, cb), and it'll handle all -// the drain event emission and buffering. +//! moment.js locale configuration +//! locale : Telugu [te] +//! author : Krishna Chaitanya Thota : https://github.com/kcthota +;(function (global, factory) { + true ? factory(__nested_webpack_require_977937__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -module.exports = Writable; -/* */ + //! moment.js locale configuration -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; -} // It seems a linked list but it is not -// there will be only 2 of these for each stream + var te = moment.defineLocale('te', { + months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split( + '_' + ), + monthsShort: + 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split( + '_' + ), + weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), + weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[నేడు] LT', + nextDay: '[రేపు] LT', + nextWeek: 'dddd, LT', + lastDay: '[నిన్న] LT', + lastWeek: '[గత] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s లో', + past: '%s క్రితం', + s: 'కొన్ని క్షణాలు', + ss: '%d సెకన్లు', + m: 'ఒక నిమిషం', + mm: '%d నిమిషాలు', + h: 'ఒక గంట', + hh: '%d గంటలు', + d: 'ఒక రోజు', + dd: '%d రోజులు', + M: 'ఒక నెల', + MM: '%d నెలలు', + y: 'ఒక సంవత్సరం', + yy: '%d సంవత్సరాలు', + }, + dayOfMonthOrdinalParse: /\d{1,2}వ/, + ordinal: '%dవ', + meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'రాత్రి') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ఉదయం') { + return hour; + } else if (meridiem === 'మధ్యాహ్నం') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'సాయంత్రం') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'రాత్రి'; + } else if (hour < 10) { + return 'ఉదయం'; + } else if (hour < 17) { + return 'మధ్యాహ్నం'; + } else if (hour < 20) { + return 'సాయంత్రం'; + } else { + return 'రాత్రి'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + return te; -function CorkedRequest(state) { - var _this = this; +}))); - this.next = null; - this.entry = null; - this.finish = function () { - onCorkedFinish(_this, state); - }; -} -/* */ +/***/ }), -/**/ +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/tet.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/tet.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_981447__) { +//! moment.js locale configuration +//! locale : Tetun Dili (East Timor) [tet] +//! author : Joshua Brooks : https://github.com/joshbrooks +//! author : Onorio De J. Afonso : https://github.com/marobo +//! author : Sonia Simoes : https://github.com/soniasimoes -var Duplex; -/**/ +;(function (global, factory) { + true ? factory(__nested_webpack_require_981447__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -Writable.WritableState = WritableState; -/**/ + //! moment.js locale configuration -var internalUtil = { - deprecate: __webpack_require__(/*! util-deprecate */ "./node_modules/cht-core-4-0/api/node_modules/util-deprecate/node.js") -}; -/**/ + var tet = moment.defineLocale('tet', { + months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), + weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), + weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), + weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Ohin iha] LT', + nextDay: '[Aban iha] LT', + nextWeek: 'dddd [iha] LT', + lastDay: '[Horiseik iha] LT', + lastWeek: 'dddd [semana kotuk] [iha] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'iha %s', + past: '%s liuba', + s: 'segundu balun', + ss: 'segundu %d', + m: 'minutu ida', + mm: 'minutu %d', + h: 'oras ida', + hh: 'oras %d', + d: 'loron ida', + dd: 'loron %d', + M: 'fulan ida', + MM: 'fulan %d', + y: 'tinan ida', + yy: 'tinan %d', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); -/**/ + return tet; -var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/stream.js"); -/**/ +}))); -var Buffer = __webpack_require__(/*! buffer */ "buffer").Buffer; +/***/ }), -var OurUint8Array = global.Uint8Array || function () {}; +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/tg.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/tg.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_984447__) { -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} +//! moment.js locale configuration +//! locale : Tajik [tg] +//! author : Orif N. Jr. : https://github.com/orif-jr -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} +;(function (global, factory) { + true ? factory(__nested_webpack_require_984447__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/destroy.js"); + //! moment.js locale configuration -var _require = __webpack_require__(/*! ./internal/streams/state */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/state.js"), - getHighWaterMark = _require.getHighWaterMark; + var suffixes = { + 0: '-ум', + 1: '-ум', + 2: '-юм', + 3: '-юм', + 4: '-ум', + 5: '-ум', + 6: '-ум', + 7: '-ум', + 8: '-ум', + 9: '-ум', + 10: '-ум', + 12: '-ум', + 13: '-ум', + 20: '-ум', + 30: '-юм', + 40: '-ум', + 50: '-ум', + 60: '-ум', + 70: '-ум', + 80: '-ум', + 90: '-ум', + 100: '-ум', + }; -var _require$codes = __webpack_require__(/*! ../errors */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/errors.js").codes, - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, - ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, - ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, - ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; + var tg = moment.defineLocale('tg', { + months: { + format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split( + '_' + ), + standalone: + 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( + '_' + ), + }, + monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split( + '_' + ), + weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'), + weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Имрӯз соати] LT', + nextDay: '[Фардо соати] LT', + lastDay: '[Дирӯз соати] LT', + nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT', + lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'баъди %s', + past: '%s пеш', + s: 'якчанд сония', + m: 'як дақиқа', + mm: '%d дақиқа', + h: 'як соат', + hh: '%d соат', + d: 'як рӯз', + dd: '%d рӯз', + M: 'як моҳ', + MM: '%d моҳ', + y: 'як сол', + yy: '%d сол', + }, + meridiemParse: /шаб|субҳ|рӯз|бегоҳ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'шаб') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'субҳ') { + return hour; + } else if (meridiem === 'рӯз') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'бегоҳ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'шаб'; + } else if (hour < 11) { + return 'субҳ'; + } else if (hour < 16) { + return 'рӯз'; + } else if (hour < 19) { + return 'бегоҳ'; + } else { + return 'шаб'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1th is the first week of the year. + }, + }); -var errorOrDestroy = destroyImpl.errorOrDestroy; + return tg; -__webpack_require__(/*! inherits */ "./node_modules/cht-core-4-0/api/node_modules/inherits/inherits.js")(Writable, Stream); +}))); -function nop() {} -function WritableState(options, stream, isDuplex) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js"); - options = options || {}; // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream, - // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. +/***/ }), - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream - // contains buffers or objects. +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/th.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/th.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_988617__) { - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() +//! moment.js locale configuration +//! locale : Thai [th] +//! author : Kridsada Thanabulpong : https://github.com/sirn - this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called +;(function (global, factory) { + true ? factory(__nested_webpack_require_988617__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - this.finalCalled = false; // drain event flag. + //! moment.js locale configuration - this.needDrain = false; // at the start of calling end() + var th = moment.defineLocale('th', { + months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split( + '_' + ), + monthsShort: + 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), + weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference + weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY เวลา H:mm', + LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm', + }, + meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, + isPM: function (input) { + return input === 'หลังเที่ยง'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ก่อนเที่ยง'; + } else { + return 'หลังเที่ยง'; + } + }, + calendar: { + sameDay: '[วันนี้ เวลา] LT', + nextDay: '[พรุ่งนี้ เวลา] LT', + nextWeek: 'dddd[หน้า เวลา] LT', + lastDay: '[เมื่อวานนี้ เวลา] LT', + lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'อีก %s', + past: '%sที่แล้ว', + s: 'ไม่กี่วินาที', + ss: '%d วินาที', + m: '1 นาที', + mm: '%d นาที', + h: '1 ชั่วโมง', + hh: '%d ชั่วโมง', + d: '1 วัน', + dd: '%d วัน', + w: '1 สัปดาห์', + ww: '%d สัปดาห์', + M: '1 เดือน', + MM: '%d เดือน', + y: '1 ปี', + yy: '%d ปี', + }, + }); - this.ending = false; // when end() has been called, and returned + return th; - this.ended = false; // when 'finish' is emitted +}))); - this.finished = false; // has it been destroyed - this.destroyed = false; // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. +/***/ }), - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/tk.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/tk.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_991381__) { - this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. +//! moment.js locale configuration +//! locale : Turkmen [tk] +//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy - this.length = 0; // a flag to see when we're in the middle of a write. +;(function (global, factory) { + true ? factory(__nested_webpack_require_991381__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - this.writing = false; // when true all writes will be buffered until .uncork() call + //! moment.js locale configuration - this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. + var suffixes = { + 1: "'inji", + 5: "'inji", + 8: "'inji", + 70: "'inji", + 80: "'inji", + 2: "'nji", + 7: "'nji", + 20: "'nji", + 50: "'nji", + 3: "'ünji", + 4: "'ünji", + 100: "'ünji", + 6: "'njy", + 9: "'unjy", + 10: "'unjy", + 30: "'unjy", + 60: "'ynjy", + 90: "'ynjy", + }; - this.sync = true; // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. + var tk = moment.defineLocale('tk', { + months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split( + '_' + ), + monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'), + weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split( + '_' + ), + weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'), + weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün sagat] LT', + nextDay: '[ertir sagat] LT', + nextWeek: '[indiki] dddd [sagat] LT', + lastDay: '[düýn] LT', + lastWeek: '[geçen] dddd [sagat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s soň', + past: '%s öň', + s: 'birnäçe sekunt', + m: 'bir minut', + mm: '%d minut', + h: 'bir sagat', + hh: '%d sagat', + d: 'bir gün', + dd: '%d gün', + M: 'bir aý', + MM: '%d aý', + y: 'bir ýyl', + yy: '%d ýyl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'unjy"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); - this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb) + return tk; - this.onwrite = function (er) { - onwrite(stream, er); - }; // the callback that the user supplies to write(chunk,encoding,cb) +}))); - this.writecb = null; // the amount that is being written when _write is called. +/***/ }), - this.writelen = 0; - this.bufferedRequest = null; - this.lastBufferedRequest = null; // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/tl-ph.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/tl-ph.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_994773__) { - this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams +//! moment.js locale configuration +//! locale : Tagalog (Philippines) [tl-ph] +//! author : Dan Hagman : https://github.com/hagmandan - this.prefinished = false; // True if the error was already emitted and should not be thrown again +;(function (global, factory) { + true ? factory(__nested_webpack_require_994773__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true. + //! moment.js locale configuration - this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end') + var tlPh = moment.defineLocale('tl-ph', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - this.autoDestroy = !!options.autoDestroy; // count buffered requests + return tlPh; - this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always - // one allocated and free to use, and we maintain at most two +}))); - this.corkedRequestsFree = new CorkedRequest(this); -} -WritableState.prototype.getBuffer = function getBuffer() { - var current = this.bufferedRequest; - var out = []; +/***/ }), - while (current) { - out.push(current); - current = current.next; - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/tlh.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/tlh.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_997324__) { - return out; -}; +//! moment.js locale configuration +//! locale : Klingon [tlh] +//! author : Dominika Kruk : https://github.com/amaranthrose -(function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function writableStateBufferGetter() { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') - }); - } catch (_) {} -})(); // Test _writableState for inheritance to account for Duplex streams, -// whose prototype chain only points to Readable. +;(function (global, factory) { + true ? factory(__nested_webpack_require_997324__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + //! moment.js locale configuration -var realHasInstance; + var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); -if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { - realHasInstance = Function.prototype[Symbol.hasInstance]; - Object.defineProperty(Writable, Symbol.hasInstance, { - value: function value(object) { - if (realHasInstance.call(this, object)) return true; - if (this !== Writable) return false; - return object && object._writableState instanceof WritableState; + function translateFuture(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'leS' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'waQ' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'nem' + : time + ' pIq'; + return time; } - }); -} else { - realHasInstance = function realHasInstance(object) { - return object instanceof this; - }; -} - -function Writable(options) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js"); // Writable ctor is applied to Duplexes, too. - // `realHasInstance` is necessary because using plain `instanceof` - // would return false, as no `_writableState` property is attached. - // Trying to use the custom `instanceof` for Writable here will also break the - // Node.js LazyTransform implementation, which has a non-trivial getter for - // `_writableState` that would lead to infinite recursion. - // Checking for a Stream.Duplex instance is faster here instead of inside - // the WritableState constructor, at least with V8 6.5 - - var isDuplex = this instanceof Duplex; - if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); - this._writableState = new WritableState(options, this, isDuplex); // legacy. - - this.writable = true; - - if (options) { - if (typeof options.write === 'function') this._write = options.write; - if (typeof options.writev === 'function') this._writev = options.writev; - if (typeof options.destroy === 'function') this._destroy = options.destroy; - if (typeof options.final === 'function') this._final = options.final; - } - - Stream.call(this); -} // Otherwise people can pipe Writable streams, which is just wrong. + function translatePast(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'Hu’' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'wen' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'ben' + : time + ' ret'; + return time; + } -Writable.prototype.pipe = function () { - errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); -}; + function translate(number, withoutSuffix, string, isFuture) { + var numberNoun = numberAsNoun(number); + switch (string) { + case 'ss': + return numberNoun + ' lup'; + case 'mm': + return numberNoun + ' tup'; + case 'hh': + return numberNoun + ' rep'; + case 'dd': + return numberNoun + ' jaj'; + case 'MM': + return numberNoun + ' jar'; + case 'yy': + return numberNoun + ' DIS'; + } + } -function writeAfterEnd(stream, cb) { - var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb + function numberAsNoun(number) { + var hundred = Math.floor((number % 1000) / 100), + ten = Math.floor((number % 100) / 10), + one = number % 10, + word = ''; + if (hundred > 0) { + word += numbersNouns[hundred] + 'vatlh'; + } + if (ten > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; + } + if (one > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[one]; + } + return word === '' ? 'pagh' : word; + } - errorOrDestroy(stream, er); - process.nextTick(cb, er); -} // Checks that a user-supplied chunk is valid, especially for the particular -// mode the stream is in. Currently this means that `null` is never accepted -// and undefined/non-string values are only allowed in object mode. + var tlh = moment.defineLocale('tlh', { + months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split( + '_' + ), + monthsShort: + 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( + '_' + ), + weekdaysShort: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + weekdaysMin: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[DaHjaj] LT', + nextDay: '[wa’leS] LT', + nextWeek: 'LLL', + lastDay: '[wa’Hu’] LT', + lastWeek: 'LLL', + sameElse: 'L', + }, + relativeTime: { + future: translateFuture, + past: translatePast, + s: 'puS lup', + ss: translate, + m: 'wa’ tup', + mm: translate, + h: 'wa’ rep', + hh: translate, + d: 'wa’ jaj', + dd: translate, + M: 'wa’ jar', + MM: translate, + y: 'wa’ DIS', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + return tlh; -function validChunk(stream, state, chunk, cb) { - var er; +}))); - if (chunk === null) { - er = new ERR_STREAM_NULL_VALUES(); - } else if (typeof chunk !== 'string' && !state.objectMode) { - er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); - } - if (er) { - errorOrDestroy(stream, er); - process.nextTick(cb, er); - return false; - } +/***/ }), - return true; -} +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/tr.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/tr.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_1002063__) { -Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; +//! moment.js locale configuration +//! locale : Turkish [tr] +//! authors : Erhan Gundogan : https://github.com/erhangundogan, +//! Burak Yiğit Kaya: https://github.com/BYK - var isBuf = !state.objectMode && _isUint8Array(chunk); +;(function (global, factory) { + true ? factory(__nested_webpack_require_1002063__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (isBuf && !Buffer.isBuffer(chunk)) { - chunk = _uint8ArrayToBuffer(chunk); - } + //! moment.js locale configuration - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } + var suffixes = { + 1: "'inci", + 5: "'inci", + 8: "'inci", + 70: "'inci", + 80: "'inci", + 2: "'nci", + 7: "'nci", + 20: "'nci", + 50: "'nci", + 3: "'üncü", + 4: "'üncü", + 100: "'üncü", + 6: "'ncı", + 9: "'uncu", + 10: "'uncu", + 30: "'uncu", + 60: "'ıncı", + 90: "'ıncı", + }; - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - if (typeof cb !== 'function') cb = nop; - if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); - } - return ret; -}; + var tr = moment.defineLocale('tr', { + months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split( + '_' + ), + monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'), + weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split( + '_' + ), + weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'), + weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'öö' : 'ÖÖ'; + } else { + return isLower ? 'ös' : 'ÖS'; + } + }, + meridiemParse: /öö|ÖÖ|ös|ÖS/, + isPM: function (input) { + return input === 'ös' || input === 'ÖS'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün saat] LT', + nextDay: '[yarın saat] LT', + nextWeek: '[gelecek] dddd [saat] LT', + lastDay: '[dün] LT', + lastWeek: '[geçen] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s önce', + s: 'birkaç saniye', + ss: '%d saniye', + m: 'bir dakika', + mm: '%d dakika', + h: 'bir saat', + hh: '%d saat', + d: 'bir gün', + dd: '%d gün', + w: 'bir hafta', + ww: '%d hafta', + M: 'bir ay', + MM: '%d ay', + y: 'bir yıl', + yy: '%d yıl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'ıncı"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); -Writable.prototype.cork = function () { - this._writableState.corked++; -}; + return tr; -Writable.prototype.uncork = function () { - var state = this._writableState; +}))); - if (state.corked) { - state.corked--; - if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); - } -}; -Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding); - this._writableState.defaultEncoding = encoding; - return this; -}; +/***/ }), -Object.defineProperty(Writable.prototype, 'writableBuffer', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState && this._writableState.getBuffer(); - } -}); +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/tzl.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/tzl.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_1005938__) { -function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding); - } +//! moment.js locale configuration +//! locale : Talossan [tzl] +//! author : Robin van der Vliet : https://github.com/robin0van0der0v +//! author : Iustì Canun - return chunk; -} +;(function (global, factory) { + true ? factory(__nested_webpack_require_1005938__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.highWaterMark; - } -}); // if we're already writing something, then just put this -// in the queue, and wait our turn. Otherwise, call _write -// If we return false, then we need a drain event, so set that flag. + //! moment.js locale configuration -function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { - if (!isBuf) { - var newChunk = decodeChunk(state, chunk, encoding); + // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. + // This is currently too difficult (maybe even impossible) to add. + var tzl = moment.defineLocale('tzl', { + months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), + weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), + weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), + weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM [dallas] YYYY', + LLL: 'D. MMMM [dallas] YYYY HH.mm', + LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', + }, + meridiemParse: /d\'o|d\'a/i, + isPM: function (input) { + return "d'o" === input.toLowerCase(); + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? "d'o" : "D'O"; + } else { + return isLower ? "d'a" : "D'A"; + } + }, + calendar: { + sameDay: '[oxhi à] LT', + nextDay: '[demà à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[ieiri à] LT', + lastWeek: '[sür el] dddd [lasteu à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'osprei %s', + past: 'ja%s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - if (chunk !== newChunk) { - isBuf = true; - encoding = 'buffer'; - chunk = newChunk; + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['viensas secunds', "'iensas secunds"], + ss: [number + ' secunds', '' + number + ' secunds'], + m: ["'n míut", "'iens míut"], + mm: [number + ' míuts', '' + number + ' míuts'], + h: ["'n þora", "'iensa þora"], + hh: [number + ' þoras', '' + number + ' þoras'], + d: ["'n ziua", "'iensa ziua"], + dd: [number + ' ziuas', '' + number + ' ziuas'], + M: ["'n mes", "'iens mes"], + MM: [number + ' mesen', '' + number + ' mesen'], + y: ["'n ar", "'iens ar"], + yy: [number + ' ars', '' + number + ' ars'], + }; + return isFuture + ? format[key][0] + : withoutSuffix + ? format[key][0] + : format[key][1]; } - } - var len = state.objectMode ? 1 : chunk.length; - state.length += len; - var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false. + return tzl; - if (!ret) state.needDrain = true; +}))); - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = { - chunk: chunk, - encoding: encoding, - isBuf: isBuf, - callback: cb, - next: null - }; - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; - } +/***/ }), - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/tzm-latn.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/tzm-latn.js ***! + \***********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_1009962__) { - return ret; -} +//! moment.js locale configuration +//! locale : Central Atlas Tamazight Latin [tzm-latn] +//! author : Abdel Said : https://github.com/abdelsaid -function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; -} +;(function (global, factory) { + true ? factory(__nested_webpack_require_1009962__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; + //! moment.js locale configuration - if (sync) { - // defer the callback if we are being called synchronously - // to avoid piling up things on the stack - process.nextTick(cb, er); // this can emit finish, and it will always happen - // after error + var tzmLatn = moment.defineLocale('tzm-latn', { + months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( + '_' + ), + monthsShort: + 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( + '_' + ), + weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[asdkh g] LT', + nextDay: '[aska g] LT', + nextWeek: 'dddd [g] LT', + lastDay: '[assant g] LT', + lastWeek: 'dddd [g] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dadkh s yan %s', + past: 'yan %s', + s: 'imik', + ss: '%d imik', + m: 'minuḍ', + mm: '%d minuḍ', + h: 'saɛa', + hh: '%d tassaɛin', + d: 'ass', + dd: '%d ossan', + M: 'ayowr', + MM: '%d iyyirn', + y: 'asgas', + yy: '%d isgasn', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); - process.nextTick(finishMaybe, stream, state); - stream._writableState.errorEmitted = true; - errorOrDestroy(stream, er); - } else { - // the caller expect this to happen before if - // it is async - cb(er); - stream._writableState.errorEmitted = true; - errorOrDestroy(stream, er); // this can emit finish, but finish must - // always follow error + return tzmLatn; - finishMaybe(stream, state); - } -} +}))); -function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; -} -function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK(); - onwriteStateUpdate(state); - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state) || stream.destroyed; +/***/ }), - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/tzm.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/tzm.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_1012433__) { - if (sync) { - process.nextTick(afterWrite, stream, state, finished, cb); - } else { - afterWrite(stream, state, finished, cb); - } - } -} +//! moment.js locale configuration +//! locale : Central Atlas Tamazight [tzm] +//! author : Abdel Said : https://github.com/abdelsaid -function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); -} // Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. +;(function (global, factory) { + true ? factory(__nested_webpack_require_1012433__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + //! moment.js locale configuration -function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } -} // if there's something in the buffer waiting, then process it + var tzm = moment.defineLocale('tzm', { + months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( + '_' + ), + monthsShort: + 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( + '_' + ), + weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[ⴰⵙⴷⵅ ⴴ] LT', + nextDay: '[ⴰⵙⴽⴰ ⴴ] LT', + nextWeek: 'dddd [ⴴ] LT', + lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT', + lastWeek: 'dddd [ⴴ] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s', + past: 'ⵢⴰⵏ %s', + s: 'ⵉⵎⵉⴽ', + ss: '%d ⵉⵎⵉⴽ', + m: 'ⵎⵉⵏⵓⴺ', + mm: '%d ⵎⵉⵏⵓⴺ', + h: 'ⵙⴰⵄⴰ', + hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ', + d: 'ⴰⵙⵙ', + dd: '%d oⵙⵙⴰⵏ', + M: 'ⴰⵢoⵓⵔ', + MM: '%d ⵉⵢⵢⵉⵔⵏ', + y: 'ⴰⵙⴳⴰⵙ', + yy: '%d ⵉⵙⴳⴰⵙⵏ', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + return tzm; -function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; +}))); - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; - var count = 0; - var allBuffers = true; - while (entry) { - buffer[count] = entry; - if (!entry.isBuf) allBuffers = false; - entry = entry.next; - count += 1; - } +/***/ }), - buffer.allBuffers = allBuffers; - doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ug-cn.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ug-cn.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_1014873__) { - state.pendingcb++; - state.lastBufferedRequest = null; +//! moment.js locale configuration +//! locale : Uyghur (China) [ug-cn] +//! author: boyaq : https://github.com/boyaq - if (holder.next) { - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - state.corkedRequestsFree = new CorkedRequest(state); - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_1014873__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - state.bufferedRequestCount = 0; - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. + //! moment.js locale configuration - if (state.writing) { - break; - } - } + var ugCn = moment.defineLocale('ug-cn', { + months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( + '_' + ), + monthsShort: + 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( + '_' + ), + weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split( + '_' + ), + weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), + weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى', + LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', + LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', + }, + meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + meridiem === 'يېرىم كېچە' || + meridiem === 'سەھەر' || + meridiem === 'چۈشتىن بۇرۇن' + ) { + return hour; + } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') { + return hour + 12; + } else { + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return 'يېرىم كېچە'; + } else if (hm < 900) { + return 'سەھەر'; + } else if (hm < 1130) { + return 'چۈشتىن بۇرۇن'; + } else if (hm < 1230) { + return 'چۈش'; + } else if (hm < 1800) { + return 'چۈشتىن كېيىن'; + } else { + return 'كەچ'; + } + }, + calendar: { + sameDay: '[بۈگۈن سائەت] LT', + nextDay: '[ئەتە سائەت] LT', + nextWeek: '[كېلەركى] dddd [سائەت] LT', + lastDay: '[تۆنۈگۈن] LT', + lastWeek: '[ئالدىنقى] dddd [سائەت] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s كېيىن', + past: '%s بۇرۇن', + s: 'نەچچە سېكونت', + ss: '%d سېكونت', + m: 'بىر مىنۇت', + mm: '%d مىنۇت', + h: 'بىر سائەت', + hh: '%d سائەت', + d: 'بىر كۈن', + dd: '%d كۈن', + M: 'بىر ئاي', + MM: '%d ئاي', + y: 'بىر يىل', + yy: '%d يىل', + }, - if (entry === null) state.lastBufferedRequest = null; - } + dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '-كۈنى'; + case 'w': + case 'W': + return number + '-ھەپتە'; + default: + return number; + } + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, + }); - state.bufferedRequest = entry; - state.bufferProcessing = false; -} + return ugCn; -Writable.prototype._write = function (chunk, encoding, cb) { - cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); -}; +}))); -Writable.prototype._writev = null; -Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; +/***/ }), - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/uk.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/uk.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_1019183__) { - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks +//! moment.js locale configuration +//! locale : Ukrainian [uk] +//! author : zemlanin : https://github.com/zemlanin +//! Author : Menelion Elensúle : https://github.com/Oire - if (state.corked) { - state.corked = 1; - this.uncork(); - } // ignore unnecessary end() calls. +;(function (global, factory) { + true ? factory(__nested_webpack_require_1019183__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + //! moment.js locale configuration - if (!state.ending) endWritable(this, state, cb); - return this; -}; + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд', + mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', + hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин', + dd: 'день_дні_днів', + MM: 'місяць_місяці_місяців', + yy: 'рік_роки_років', + }; + if (key === 'm') { + return withoutSuffix ? 'хвилина' : 'хвилину'; + } else if (key === 'h') { + return withoutSuffix ? 'година' : 'годину'; + } else { + return number + ' ' + plural(format[key], +number); + } + } + function weekdaysCaseReplace(m, format) { + var weekdays = { + nominative: + 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split( + '_' + ), + accusative: + 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split( + '_' + ), + genitive: + 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split( + '_' + ), + }, + nounCase; -Object.defineProperty(Writable.prototype, 'writableLength', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.length; - } -}); + if (m === true) { + return weekdays['nominative'] + .slice(1, 7) + .concat(weekdays['nominative'].slice(0, 1)); + } + if (!m) { + return weekdays['nominative']; + } -function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; -} + nounCase = /(\[[ВвУу]\]) ?dddd/.test(format) + ? 'accusative' + : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format) + ? 'genitive' + : 'nominative'; + return weekdays[nounCase][m.day()]; + } + function processHoursFunction(str) { + return function () { + return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; + }; + } -function callFinal(stream, state) { - stream._final(function (err) { - state.pendingcb--; + var uk = moment.defineLocale('uk', { + months: { + format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split( + '_' + ), + standalone: + 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split( + '_' + ), + }, + monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split( + '_' + ), + weekdays: weekdaysCaseReplace, + weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY р.', + LLL: 'D MMMM YYYY р., HH:mm', + LLLL: 'dddd, D MMMM YYYY р., HH:mm', + }, + calendar: { + sameDay: processHoursFunction('[Сьогодні '), + nextDay: processHoursFunction('[Завтра '), + lastDay: processHoursFunction('[Вчора '), + nextWeek: processHoursFunction('[У] dddd ['), + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return processHoursFunction('[Минулої] dddd [').call(this); + case 1: + case 2: + case 4: + return processHoursFunction('[Минулого] dddd [').call(this); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: '%s тому', + s: 'декілька секунд', + ss: relativeTimeWithPlural, + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: 'годину', + hh: relativeTimeWithPlural, + d: 'день', + dd: relativeTimeWithPlural, + M: 'місяць', + MM: relativeTimeWithPlural, + y: 'рік', + yy: relativeTimeWithPlural, + }, + // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason + meridiemParse: /ночі|ранку|дня|вечора/, + isPM: function (input) { + return /^(дня|вечора)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночі'; + } else if (hour < 12) { + return 'ранку'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечора'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return number + '-й'; + case 'D': + return number + '-го'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); - if (err) { - errorOrDestroy(stream, err); - } + return uk; - state.prefinished = true; - stream.emit('prefinish'); - finishMaybe(stream, state); - }); -} +}))); -function prefinish(stream, state) { - if (!state.prefinished && !state.finalCalled) { - if (typeof stream._final === 'function' && !state.destroyed) { - state.pendingcb++; - state.finalCalled = true; - process.nextTick(callFinal, stream, state); - } else { - state.prefinished = true; - stream.emit('prefinish'); - } - } -} -function finishMaybe(stream, state) { - var need = needFinish(state); +/***/ }), - if (need) { - prefinish(stream, state); +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/ur.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ur.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_1025656__) { - if (state.pendingcb === 0) { - state.finished = true; - stream.emit('finish'); +//! moment.js locale configuration +//! locale : Urdu [ur] +//! author : Sawood Alam : https://github.com/ibnesayeed +//! author : Zack : https://github.com/ZackVision - if (state.autoDestroy) { - // In case of duplex streams we need a way to detect - // if the readable side is ready for autoDestroy as well - var rState = stream._readableState; +;(function (global, factory) { + true ? factory(__nested_webpack_require_1025656__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (!rState || rState.autoDestroy && rState.endEmitted) { - stream.destroy(); - } - } - } - } + //! moment.js locale configuration - return need; -} + var months = [ + 'جنوری', + 'فروری', + 'مارچ', + 'اپریل', + 'مئی', + 'جون', + 'جولائی', + 'اگست', + 'ستمبر', + 'اکتوبر', + 'نومبر', + 'دسمبر', + ], + days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ']; -function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); + var ur = moment.defineLocale('ur', { + months: months, + monthsShort: months, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd، D MMMM YYYY HH:mm', + }, + meridiemParse: /صبح|شام/, + isPM: function (input) { + return 'شام' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'صبح'; + } + return 'شام'; + }, + calendar: { + sameDay: '[آج بوقت] LT', + nextDay: '[کل بوقت] LT', + nextWeek: 'dddd [بوقت] LT', + lastDay: '[گذشتہ روز بوقت] LT', + lastWeek: '[گذشتہ] dddd [بوقت] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s بعد', + past: '%s قبل', + s: 'چند سیکنڈ', + ss: '%d سیکنڈ', + m: 'ایک منٹ', + mm: '%d منٹ', + h: 'ایک گھنٹہ', + hh: '%d گھنٹے', + d: 'ایک دن', + dd: '%d دن', + M: 'ایک ماہ', + MM: '%d ماہ', + y: 'ایک سال', + yy: '%d سال', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - if (cb) { - if (state.finished) process.nextTick(cb);else stream.once('finish', cb); - } + return ur; - state.ended = true; - stream.writable = false; -} +}))); -function onCorkedFinish(corkReq, state, err) { - var entry = corkReq.entry; - corkReq.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } // reuse the free corkReq. +/***/ }), +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/uz-latn.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/uz-latn.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_1028570__) { - state.corkedRequestsFree.next = corkReq; -} +//! moment.js locale configuration +//! locale : Uzbek Latin [uz-latn] +//! author : Rasulbek Mirzayev : github.com/Rasulbeeek -Object.defineProperty(Writable.prototype, 'destroyed', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - if (this._writableState === undefined) { - return false; - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_1028570__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - return this._writableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._writableState) { - return; - } // backward compatibility, the user is explicitly - // managing destroyed + //! moment.js locale configuration + + var uzLatn = moment.defineLocale('uz-latn', { + months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( + '_' + ), + monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), + weekdays: + 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( + '_' + ), + weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), + weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[Bugun soat] LT [da]', + nextDay: '[Ertaga] LT [da]', + nextWeek: 'dddd [kuni soat] LT [da]', + lastDay: '[Kecha soat] LT [da]', + lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", + sameElse: 'L', + }, + relativeTime: { + future: 'Yaqin %s ichida', + past: 'Bir necha %s oldin', + s: 'soniya', + ss: '%d soniya', + m: 'bir daqiqa', + mm: '%d daqiqa', + h: 'bir soat', + hh: '%d soat', + d: 'bir kun', + dd: '%d kun', + M: 'bir oy', + MM: '%d oy', + y: 'bir yil', + yy: '%d yil', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + return uzLatn; - this._writableState.destroyed = value; - } -}); -Writable.prototype.destroy = destroyImpl.destroy; -Writable.prototype._undestroy = destroyImpl.undestroy; +}))); -Writable.prototype._destroy = function (err, cb) { - cb(err); -}; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/async_iterator.js": -/*!********************************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/async_iterator.js ***! - \********************************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/uz.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/uz.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_1031013__) { -"use strict"; +//! moment.js locale configuration +//! locale : Uzbek [uz] +//! author : Sardor Muminov : https://github.com/muminoff +;(function (global, factory) { + true ? factory(__nested_webpack_require_1031013__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -var _Object$setPrototypeO; + //! moment.js locale configuration -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + var uz = moment.defineLocale('uz', { + months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( + '_' + ), + monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), + weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), + weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[Бугун соат] LT [да]', + nextDay: '[Эртага] LT [да]', + nextWeek: 'dddd [куни соат] LT [да]', + lastDay: '[Кеча соат] LT [да]', + lastWeek: '[Утган] dddd [куни соат] LT [да]', + sameElse: 'L', + }, + relativeTime: { + future: 'Якин %s ичида', + past: 'Бир неча %s олдин', + s: 'фурсат', + ss: '%d фурсат', + m: 'бир дакика', + mm: '%d дакика', + h: 'бир соат', + hh: '%d соат', + d: 'бир кун', + dd: '%d кун', + M: 'бир ой', + MM: '%d ой', + y: 'бир йил', + yy: '%d йил', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 4th is the first week of the year. + }, + }); -var finished = __webpack_require__(/*! ./end-of-stream */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); + return uz; -var kLastResolve = Symbol('lastResolve'); -var kLastReject = Symbol('lastReject'); -var kError = Symbol('error'); -var kEnded = Symbol('ended'); -var kLastPromise = Symbol('lastPromise'); -var kHandlePromise = Symbol('handlePromise'); -var kStream = Symbol('stream'); +}))); -function createIterResult(value, done) { - return { - value: value, - done: done - }; -} -function readAndResolve(iter) { - var resolve = iter[kLastResolve]; +/***/ }), - if (resolve !== null) { - var data = iter[kStream].read(); // we defer if data is null - // we can be expecting either 'end' or - // 'error' +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/vi.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/vi.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_1033368__) { - if (data !== null) { - iter[kLastPromise] = null; - iter[kLastResolve] = null; - iter[kLastReject] = null; - resolve(createIterResult(data, false)); - } - } -} +//! moment.js locale configuration +//! locale : Vietnamese [vi] +//! author : Bang Nguyen : https://github.com/bangnk +//! author : Chien Kira : https://github.com/chienkira -function onReadable(iter) { - // we wait for the next tick, because it might - // emit an error with process.nextTick - process.nextTick(readAndResolve, iter); -} +;(function (global, factory) { + true ? factory(__nested_webpack_require_1033368__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -function wrapForNext(lastPromise, iter) { - return function (resolve, reject) { - lastPromise.then(function () { - if (iter[kEnded]) { - resolve(createIterResult(undefined, true)); - return; - } + //! moment.js locale configuration - iter[kHandlePromise](resolve, reject); - }, reject); - }; -} + var vi = moment.defineLocale('vi', { + months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split( + '_' + ), + monthsShort: + 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split( + '_' + ), + weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysParseExact: true, + meridiemParse: /sa|ch/i, + isPM: function (input) { + return /^ch$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'sa' : 'SA'; + } else { + return isLower ? 'ch' : 'CH'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [năm] YYYY', + LLL: 'D MMMM [năm] YYYY HH:mm', + LLLL: 'dddd, D MMMM [năm] YYYY HH:mm', + l: 'DD/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hôm nay lúc] LT', + nextDay: '[Ngày mai lúc] LT', + nextWeek: 'dddd [tuần tới lúc] LT', + lastDay: '[Hôm qua lúc] LT', + lastWeek: 'dddd [tuần trước lúc] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s tới', + past: '%s trước', + s: 'vài giây', + ss: '%d giây', + m: 'một phút', + mm: '%d phút', + h: 'một giờ', + hh: '%d giờ', + d: 'một ngày', + dd: '%d ngày', + w: 'một tuần', + ww: '%d tuần', + M: 'một tháng', + MM: '%d tháng', + y: 'một năm', + yy: '%d năm', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); -var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}); -var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { - get stream() { - return this[kStream]; - }, + return vi; - next: function next() { - var _this = this; +}))); - // if we have detected an error in the meanwhile - // reject straight away - var error = this[kError]; - if (error !== null) { - return Promise.reject(error); - } +/***/ }), - if (this[kEnded]) { - return Promise.resolve(createIterResult(undefined, true)); - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/x-pseudo.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/x-pseudo.js ***! + \***********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_1036629__) { - if (this[kStream].destroyed) { - // We need to defer via nextTick because if .destroy(err) is - // called, the error will be emitted via nextTick, and - // we cannot guarantee that there is no error lingering around - // waiting to be emitted. - return new Promise(function (resolve, reject) { - process.nextTick(function () { - if (_this[kError]) { - reject(_this[kError]); - } else { - resolve(createIterResult(undefined, true)); - } - }); - }); - } // if we have multiple next() calls - // we will wait for the previous Promise to finish - // this logic is optimized to support for await loops, - // where next() is only called once at a time +//! moment.js locale configuration +//! locale : Pseudo [x-pseudo] +//! author : Andrew Hood : https://github.com/andrewhood125 +;(function (global, factory) { + true ? factory(__nested_webpack_require_1036629__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - var lastPromise = this[kLastPromise]; - var promise; + //! moment.js locale configuration - if (lastPromise) { - promise = new Promise(wrapForNext(lastPromise, this)); - } else { - // fast path needed to support multiple this.push() - // without triggering the next() queue - var data = this[kStream].read(); + var xPseudo = moment.defineLocale('x-pseudo', { + months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split( + '_' + ), + monthsShort: + 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split( + '_' + ), + weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'), + weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[T~ódá~ý át] LT', + nextDay: '[T~ómó~rró~w át] LT', + nextWeek: 'dddd [át] LT', + lastDay: '[Ý~ést~érdá~ý át] LT', + lastWeek: '[L~ást] dddd [át] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'í~ñ %s', + past: '%s á~gó', + s: 'á ~féw ~sécó~ñds', + ss: '%d s~écóñ~ds', + m: 'á ~míñ~úté', + mm: '%d m~íñú~tés', + h: 'á~ñ hó~úr', + hh: '%d h~óúrs', + d: 'á ~dáý', + dd: '%d d~áýs', + M: 'á ~móñ~th', + MM: '%d m~óñt~hs', + y: 'á ~ýéár', + yy: '%d ý~éárs', + }, + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - if (data !== null) { - return Promise.resolve(createIterResult(data, false)); - } + return xPseudo; - promise = new Promise(this[kHandlePromise]); - } +}))); - this[kLastPromise] = promise; - return promise; - } -}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () { - return this; -}), _defineProperty(_Object$setPrototypeO, "return", function _return() { - var _this2 = this; - // destroy(err, cb) is a private API - // we can guarantee we have that here, because we control the - // Readable class this is attached to - return new Promise(function (resolve, reject) { - _this2[kStream].destroy(null, function (err) { - if (err) { - reject(err); - return; - } +/***/ }), - resolve(createIterResult(undefined, true)); - }); - }); -}), _Object$setPrototypeO), AsyncIteratorPrototype); +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/yo.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/yo.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_1039704__) { -var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { - var _Object$create; +//! moment.js locale configuration +//! locale : Yoruba Nigeria [yo] +//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe - var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { - value: stream, - writable: true - }), _defineProperty(_Object$create, kLastResolve, { - value: null, - writable: true - }), _defineProperty(_Object$create, kLastReject, { - value: null, - writable: true - }), _defineProperty(_Object$create, kError, { - value: null, - writable: true - }), _defineProperty(_Object$create, kEnded, { - value: stream._readableState.endEmitted, - writable: true - }), _defineProperty(_Object$create, kHandlePromise, { - value: function value(resolve, reject) { - var data = iterator[kStream].read(); +;(function (global, factory) { + true ? factory(__nested_webpack_require_1039704__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - if (data) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - resolve(createIterResult(data, false)); - } else { - iterator[kLastResolve] = resolve; - iterator[kLastReject] = reject; - } - }, - writable: true - }), _Object$create)); - iterator[kLastPromise] = null; - finished(stream, function (err) { - if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { - var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise - // returned by next() and store the error + //! moment.js locale configuration + + var yo = moment.defineLocale('yo', { + months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split( + '_' + ), + monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), + weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), + weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), + weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Ònì ni] LT', + nextDay: '[Ọ̀la ni] LT', + nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT", + lastDay: '[Àna ni] LT', + lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ní %s', + past: '%s kọjá', + s: 'ìsẹjú aayá die', + ss: 'aayá %d', + m: 'ìsẹjú kan', + mm: 'ìsẹjú %d', + h: 'wákati kan', + hh: 'wákati %d', + d: 'ọjọ́ kan', + dd: 'ọjọ́ %d', + M: 'osù kan', + MM: 'osù %d', + y: 'ọdún kan', + yy: 'ọdún %d', + }, + dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/, + ordinal: 'ọjọ́ %d', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - if (reject !== null) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - reject(err); - } + return yo; - iterator[kError] = err; - return; - } +}))); - var resolve = iterator[kLastResolve]; - if (resolve !== null) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - resolve(createIterResult(undefined, true)); - } +/***/ }), - iterator[kEnded] = true; - }); - stream.on('readable', onReadable.bind(null, iterator)); - return iterator; -}; +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/zh-cn.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/zh-cn.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_1042205__) { -module.exports = createReadableStreamAsyncIterator; +//! moment.js locale configuration +//! locale : Chinese (China) [zh-cn] +//! author : suupic : https://github.com/suupic +//! author : Zeno Zeng : https://github.com/zenozeng +//! author : uu109 : https://github.com/uu109 -/***/ }), +;(function (global, factory) { + true ? factory(__nested_webpack_require_1042205__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/buffer_list.js": -/*!*****************************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/buffer_list.js ***! - \*****************************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + //! moment.js locale configuration -"use strict"; + var zhCn = moment.defineLocale('zh-cn', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日Ah点mm分', + LLLL: 'YYYY年M月D日ddddAh点mm分', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } else { + // '中午' + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天]LT', + nextDay: '[明天]LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[下]dddLT'; + } else { + return '[本]dddLT'; + } + }, + lastDay: '[昨天]LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[上]dddLT'; + } else { + return '[本]dddLT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '周'; + default: + return number; + } + }, + relativeTime: { + future: '%s后', + past: '%s前', + s: '几秒', + ss: '%d 秒', + m: '1 分钟', + mm: '%d 分钟', + h: '1 小时', + hh: '%d 小时', + d: '1 天', + dd: '%d 天', + w: '1 周', + ww: '%d 周', + M: '1 个月', + MM: '%d 个月', + y: '1 年', + yy: '%d 年', + }, + week: { + // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + return zhCn; -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } +}))); -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +/***/ }), -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/zh-hk.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/zh-hk.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_1046578__) { -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } +//! moment.js locale configuration +//! locale : Chinese (Hong Kong) [zh-hk] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris +//! author : Konstantin : https://github.com/skfd +//! author : Anthony : https://github.com/anthonylau -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +;(function (global, factory) { + true ? factory(__nested_webpack_require_1046578__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -var _require = __webpack_require__(/*! buffer */ "buffer"), - Buffer = _require.Buffer; + //! moment.js locale configuration -var _require2 = __webpack_require__(/*! util */ "util"), - inspect = _require2.inspect; + var zhHk = moment.defineLocale('zh-hk', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1200) { + return '上午'; + } else if (hm === 1200) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天]LT', + nextDay: '[明天]LT', + nextWeek: '[下]ddddLT', + lastDay: '[昨天]LT', + lastWeek: '[上]ddddLT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, + }); -var custom = inspect && inspect.custom || 'inspect'; + return zhHk; -function copyBuffer(src, target, offset) { - Buffer.prototype.copy.call(src, target, offset); -} +}))); -module.exports = -/*#__PURE__*/ -function () { - function BufferList() { - _classCallCheck(this, BufferList); - this.head = null; - this.tail = null; - this.length = 0; - } +/***/ }), - _createClass(BufferList, [{ - key: "push", - value: function push(v) { - var entry = { - data: v, - next: null - }; - if (this.length > 0) this.tail.next = entry;else this.head = entry; - this.tail = entry; - ++this.length; - } - }, { - key: "unshift", - value: function unshift(v) { - var entry = { - data: v, - next: this.head - }; - if (this.length === 0) this.tail = entry; - this.head = entry; - ++this.length; - } - }, { - key: "shift", - value: function shift() { - if (this.length === 0) return; - var ret = this.head.data; - if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; - --this.length; - return ret; - } - }, { - key: "clear", - value: function clear() { - this.head = this.tail = null; - this.length = 0; - } - }, { - key: "join", - value: function join(s) { - if (this.length === 0) return ''; - var p = this.head; - var ret = '' + p.data; +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/zh-mo.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/zh-mo.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_1050344__) { - while (p = p.next) { - ret += s + p.data; - } +//! moment.js locale configuration +//! locale : Chinese (Macau) [zh-mo] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris +//! author : Tan Yuanhong : https://github.com/le0tan - return ret; - } - }, { - key: "concat", - value: function concat(n) { - if (this.length === 0) return Buffer.alloc(0); - var ret = Buffer.allocUnsafe(n >>> 0); - var p = this.head; - var i = 0; +;(function (global, factory) { + true ? factory(__nested_webpack_require_1050344__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - while (p) { - copyBuffer(p.data, ret, i); - i += p.data.length; - p = p.next; - } + //! moment.js locale configuration - return ret; - } // Consumes a specified amount of bytes or characters from the buffered data. + var zhMo = moment.defineLocale('zh-mo', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'D/M/YYYY', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天] LT', + nextDay: '[明天] LT', + nextWeek: '[下]dddd LT', + lastDay: '[昨天] LT', + lastWeek: '[上]dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s內', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, + }); - }, { - key: "consume", - value: function consume(n, hasStrings) { - var ret; + return zhMo; - if (n < this.head.data.length) { - // `slice` is the same for buffers and strings. - ret = this.head.data.slice(0, n); - this.head.data = this.head.data.slice(n); - } else if (n === this.head.data.length) { - // First chunk is a perfect match. - ret = this.shift(); - } else { - // Result spans more than one buffer. - ret = hasStrings ? this._getString(n) : this._getBuffer(n); - } +}))); - return ret; - } - }, { - key: "first", - value: function first() { - return this.head.data; - } // Consumes a specified amount of characters from the buffered data. - }, { - key: "_getString", - value: function _getString(n) { - var p = this.head; - var c = 1; - var ret = p.data; - n -= ret.length; +/***/ }), - while (p = p.next) { - var str = p.data; - var nb = n > str.length ? str.length : n; - if (nb === str.length) ret += str;else ret += str.slice(0, n); - n -= nb; +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale/zh-tw.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/zh-tw.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_1054060__) { - if (n === 0) { - if (nb === str.length) { - ++c; - if (p.next) this.head = p.next;else this.head = this.tail = null; - } else { - this.head = p; - p.data = str.slice(nb); - } +//! moment.js locale configuration +//! locale : Chinese (Taiwan) [zh-tw] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris - break; - } +;(function (global, factory) { + true ? factory(__nested_webpack_require_1054060__(/*! ../moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - ++c; - } + //! moment.js locale configuration - this.length -= c; - return ret; - } // Consumes a specified amount of bytes from the buffered data. + var zhTw = moment.defineLocale('zh-tw', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天] LT', + nextDay: '[明天] LT', + nextWeek: '[下]dddd LT', + lastDay: '[昨天] LT', + lastWeek: '[上]dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, + }); - }, { - key: "_getBuffer", - value: function _getBuffer(n) { - var ret = Buffer.allocUnsafe(n); - var p = this.head; - var c = 1; - p.data.copy(ret); - n -= p.data.length; + return zhTw; - while (p = p.next) { - var buf = p.data; - var nb = n > buf.length ? buf.length : n; - buf.copy(ret, ret.length - n, 0, nb); - n -= nb; +}))); - if (n === 0) { - if (nb === buf.length) { - ++c; - if (p.next) this.head = p.next;else this.head = this.tail = null; - } else { - this.head = p; - p.data = buf.slice(nb); - } - break; - } +/***/ }), - ++c; - } +/***/ "./build/cht-core-4-6/api/node_modules/moment/locale sync recursive ^\\.\\/.*$": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/locale/ sync ^\.\/.*$ ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1057733__) => { - this.length -= c; - return ret; - } // Make sure the linked list only shows the minimal necessary information. +var map = { + "./af": "./build/cht-core-4-6/api/node_modules/moment/locale/af.js", + "./af.js": "./build/cht-core-4-6/api/node_modules/moment/locale/af.js", + "./ar": "./build/cht-core-4-6/api/node_modules/moment/locale/ar.js", + "./ar-dz": "./build/cht-core-4-6/api/node_modules/moment/locale/ar-dz.js", + "./ar-dz.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ar-dz.js", + "./ar-kw": "./build/cht-core-4-6/api/node_modules/moment/locale/ar-kw.js", + "./ar-kw.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ar-kw.js", + "./ar-ly": "./build/cht-core-4-6/api/node_modules/moment/locale/ar-ly.js", + "./ar-ly.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ar-ly.js", + "./ar-ma": "./build/cht-core-4-6/api/node_modules/moment/locale/ar-ma.js", + "./ar-ma.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ar-ma.js", + "./ar-sa": "./build/cht-core-4-6/api/node_modules/moment/locale/ar-sa.js", + "./ar-sa.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ar-sa.js", + "./ar-tn": "./build/cht-core-4-6/api/node_modules/moment/locale/ar-tn.js", + "./ar-tn.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ar-tn.js", + "./ar.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ar.js", + "./az": "./build/cht-core-4-6/api/node_modules/moment/locale/az.js", + "./az.js": "./build/cht-core-4-6/api/node_modules/moment/locale/az.js", + "./be": "./build/cht-core-4-6/api/node_modules/moment/locale/be.js", + "./be.js": "./build/cht-core-4-6/api/node_modules/moment/locale/be.js", + "./bg": "./build/cht-core-4-6/api/node_modules/moment/locale/bg.js", + "./bg.js": "./build/cht-core-4-6/api/node_modules/moment/locale/bg.js", + "./bm": "./build/cht-core-4-6/api/node_modules/moment/locale/bm.js", + "./bm.js": "./build/cht-core-4-6/api/node_modules/moment/locale/bm.js", + "./bn": "./build/cht-core-4-6/api/node_modules/moment/locale/bn.js", + "./bn-bd": "./build/cht-core-4-6/api/node_modules/moment/locale/bn-bd.js", + "./bn-bd.js": "./build/cht-core-4-6/api/node_modules/moment/locale/bn-bd.js", + "./bn.js": "./build/cht-core-4-6/api/node_modules/moment/locale/bn.js", + "./bo": "./build/cht-core-4-6/api/node_modules/moment/locale/bo.js", + "./bo.js": "./build/cht-core-4-6/api/node_modules/moment/locale/bo.js", + "./br": "./build/cht-core-4-6/api/node_modules/moment/locale/br.js", + "./br.js": "./build/cht-core-4-6/api/node_modules/moment/locale/br.js", + "./bs": "./build/cht-core-4-6/api/node_modules/moment/locale/bs.js", + "./bs.js": "./build/cht-core-4-6/api/node_modules/moment/locale/bs.js", + "./ca": "./build/cht-core-4-6/api/node_modules/moment/locale/ca.js", + "./ca.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ca.js", + "./cs": "./build/cht-core-4-6/api/node_modules/moment/locale/cs.js", + "./cs.js": "./build/cht-core-4-6/api/node_modules/moment/locale/cs.js", + "./cv": "./build/cht-core-4-6/api/node_modules/moment/locale/cv.js", + "./cv.js": "./build/cht-core-4-6/api/node_modules/moment/locale/cv.js", + "./cy": "./build/cht-core-4-6/api/node_modules/moment/locale/cy.js", + "./cy.js": "./build/cht-core-4-6/api/node_modules/moment/locale/cy.js", + "./da": "./build/cht-core-4-6/api/node_modules/moment/locale/da.js", + "./da.js": "./build/cht-core-4-6/api/node_modules/moment/locale/da.js", + "./de": "./build/cht-core-4-6/api/node_modules/moment/locale/de.js", + "./de-at": "./build/cht-core-4-6/api/node_modules/moment/locale/de-at.js", + "./de-at.js": "./build/cht-core-4-6/api/node_modules/moment/locale/de-at.js", + "./de-ch": "./build/cht-core-4-6/api/node_modules/moment/locale/de-ch.js", + "./de-ch.js": "./build/cht-core-4-6/api/node_modules/moment/locale/de-ch.js", + "./de.js": "./build/cht-core-4-6/api/node_modules/moment/locale/de.js", + "./dv": "./build/cht-core-4-6/api/node_modules/moment/locale/dv.js", + "./dv.js": "./build/cht-core-4-6/api/node_modules/moment/locale/dv.js", + "./el": "./build/cht-core-4-6/api/node_modules/moment/locale/el.js", + "./el.js": "./build/cht-core-4-6/api/node_modules/moment/locale/el.js", + "./en-au": "./build/cht-core-4-6/api/node_modules/moment/locale/en-au.js", + "./en-au.js": "./build/cht-core-4-6/api/node_modules/moment/locale/en-au.js", + "./en-ca": "./build/cht-core-4-6/api/node_modules/moment/locale/en-ca.js", + "./en-ca.js": "./build/cht-core-4-6/api/node_modules/moment/locale/en-ca.js", + "./en-gb": "./build/cht-core-4-6/api/node_modules/moment/locale/en-gb.js", + "./en-gb.js": "./build/cht-core-4-6/api/node_modules/moment/locale/en-gb.js", + "./en-ie": "./build/cht-core-4-6/api/node_modules/moment/locale/en-ie.js", + "./en-ie.js": "./build/cht-core-4-6/api/node_modules/moment/locale/en-ie.js", + "./en-il": "./build/cht-core-4-6/api/node_modules/moment/locale/en-il.js", + "./en-il.js": "./build/cht-core-4-6/api/node_modules/moment/locale/en-il.js", + "./en-in": "./build/cht-core-4-6/api/node_modules/moment/locale/en-in.js", + "./en-in.js": "./build/cht-core-4-6/api/node_modules/moment/locale/en-in.js", + "./en-nz": "./build/cht-core-4-6/api/node_modules/moment/locale/en-nz.js", + "./en-nz.js": "./build/cht-core-4-6/api/node_modules/moment/locale/en-nz.js", + "./en-sg": "./build/cht-core-4-6/api/node_modules/moment/locale/en-sg.js", + "./en-sg.js": "./build/cht-core-4-6/api/node_modules/moment/locale/en-sg.js", + "./eo": "./build/cht-core-4-6/api/node_modules/moment/locale/eo.js", + "./eo.js": "./build/cht-core-4-6/api/node_modules/moment/locale/eo.js", + "./es": "./build/cht-core-4-6/api/node_modules/moment/locale/es.js", + "./es-do": "./build/cht-core-4-6/api/node_modules/moment/locale/es-do.js", + "./es-do.js": "./build/cht-core-4-6/api/node_modules/moment/locale/es-do.js", + "./es-mx": "./build/cht-core-4-6/api/node_modules/moment/locale/es-mx.js", + "./es-mx.js": "./build/cht-core-4-6/api/node_modules/moment/locale/es-mx.js", + "./es-us": "./build/cht-core-4-6/api/node_modules/moment/locale/es-us.js", + "./es-us.js": "./build/cht-core-4-6/api/node_modules/moment/locale/es-us.js", + "./es.js": "./build/cht-core-4-6/api/node_modules/moment/locale/es.js", + "./et": "./build/cht-core-4-6/api/node_modules/moment/locale/et.js", + "./et.js": "./build/cht-core-4-6/api/node_modules/moment/locale/et.js", + "./eu": "./build/cht-core-4-6/api/node_modules/moment/locale/eu.js", + "./eu.js": "./build/cht-core-4-6/api/node_modules/moment/locale/eu.js", + "./fa": "./build/cht-core-4-6/api/node_modules/moment/locale/fa.js", + "./fa.js": "./build/cht-core-4-6/api/node_modules/moment/locale/fa.js", + "./fi": "./build/cht-core-4-6/api/node_modules/moment/locale/fi.js", + "./fi.js": "./build/cht-core-4-6/api/node_modules/moment/locale/fi.js", + "./fil": "./build/cht-core-4-6/api/node_modules/moment/locale/fil.js", + "./fil.js": "./build/cht-core-4-6/api/node_modules/moment/locale/fil.js", + "./fo": "./build/cht-core-4-6/api/node_modules/moment/locale/fo.js", + "./fo.js": "./build/cht-core-4-6/api/node_modules/moment/locale/fo.js", + "./fr": "./build/cht-core-4-6/api/node_modules/moment/locale/fr.js", + "./fr-ca": "./build/cht-core-4-6/api/node_modules/moment/locale/fr-ca.js", + "./fr-ca.js": "./build/cht-core-4-6/api/node_modules/moment/locale/fr-ca.js", + "./fr-ch": "./build/cht-core-4-6/api/node_modules/moment/locale/fr-ch.js", + "./fr-ch.js": "./build/cht-core-4-6/api/node_modules/moment/locale/fr-ch.js", + "./fr.js": "./build/cht-core-4-6/api/node_modules/moment/locale/fr.js", + "./fy": "./build/cht-core-4-6/api/node_modules/moment/locale/fy.js", + "./fy.js": "./build/cht-core-4-6/api/node_modules/moment/locale/fy.js", + "./ga": "./build/cht-core-4-6/api/node_modules/moment/locale/ga.js", + "./ga.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ga.js", + "./gd": "./build/cht-core-4-6/api/node_modules/moment/locale/gd.js", + "./gd.js": "./build/cht-core-4-6/api/node_modules/moment/locale/gd.js", + "./gl": "./build/cht-core-4-6/api/node_modules/moment/locale/gl.js", + "./gl.js": "./build/cht-core-4-6/api/node_modules/moment/locale/gl.js", + "./gom-deva": "./build/cht-core-4-6/api/node_modules/moment/locale/gom-deva.js", + "./gom-deva.js": "./build/cht-core-4-6/api/node_modules/moment/locale/gom-deva.js", + "./gom-latn": "./build/cht-core-4-6/api/node_modules/moment/locale/gom-latn.js", + "./gom-latn.js": "./build/cht-core-4-6/api/node_modules/moment/locale/gom-latn.js", + "./gu": "./build/cht-core-4-6/api/node_modules/moment/locale/gu.js", + "./gu.js": "./build/cht-core-4-6/api/node_modules/moment/locale/gu.js", + "./he": "./build/cht-core-4-6/api/node_modules/moment/locale/he.js", + "./he.js": "./build/cht-core-4-6/api/node_modules/moment/locale/he.js", + "./hi": "./build/cht-core-4-6/api/node_modules/moment/locale/hi.js", + "./hi.js": "./build/cht-core-4-6/api/node_modules/moment/locale/hi.js", + "./hr": "./build/cht-core-4-6/api/node_modules/moment/locale/hr.js", + "./hr.js": "./build/cht-core-4-6/api/node_modules/moment/locale/hr.js", + "./hu": "./build/cht-core-4-6/api/node_modules/moment/locale/hu.js", + "./hu.js": "./build/cht-core-4-6/api/node_modules/moment/locale/hu.js", + "./hy-am": "./build/cht-core-4-6/api/node_modules/moment/locale/hy-am.js", + "./hy-am.js": "./build/cht-core-4-6/api/node_modules/moment/locale/hy-am.js", + "./id": "./build/cht-core-4-6/api/node_modules/moment/locale/id.js", + "./id.js": "./build/cht-core-4-6/api/node_modules/moment/locale/id.js", + "./is": "./build/cht-core-4-6/api/node_modules/moment/locale/is.js", + "./is.js": "./build/cht-core-4-6/api/node_modules/moment/locale/is.js", + "./it": "./build/cht-core-4-6/api/node_modules/moment/locale/it.js", + "./it-ch": "./build/cht-core-4-6/api/node_modules/moment/locale/it-ch.js", + "./it-ch.js": "./build/cht-core-4-6/api/node_modules/moment/locale/it-ch.js", + "./it.js": "./build/cht-core-4-6/api/node_modules/moment/locale/it.js", + "./ja": "./build/cht-core-4-6/api/node_modules/moment/locale/ja.js", + "./ja.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ja.js", + "./jv": "./build/cht-core-4-6/api/node_modules/moment/locale/jv.js", + "./jv.js": "./build/cht-core-4-6/api/node_modules/moment/locale/jv.js", + "./ka": "./build/cht-core-4-6/api/node_modules/moment/locale/ka.js", + "./ka.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ka.js", + "./kk": "./build/cht-core-4-6/api/node_modules/moment/locale/kk.js", + "./kk.js": "./build/cht-core-4-6/api/node_modules/moment/locale/kk.js", + "./km": "./build/cht-core-4-6/api/node_modules/moment/locale/km.js", + "./km.js": "./build/cht-core-4-6/api/node_modules/moment/locale/km.js", + "./kn": "./build/cht-core-4-6/api/node_modules/moment/locale/kn.js", + "./kn.js": "./build/cht-core-4-6/api/node_modules/moment/locale/kn.js", + "./ko": "./build/cht-core-4-6/api/node_modules/moment/locale/ko.js", + "./ko.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ko.js", + "./ku": "./build/cht-core-4-6/api/node_modules/moment/locale/ku.js", + "./ku.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ku.js", + "./ky": "./build/cht-core-4-6/api/node_modules/moment/locale/ky.js", + "./ky.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ky.js", + "./lb": "./build/cht-core-4-6/api/node_modules/moment/locale/lb.js", + "./lb.js": "./build/cht-core-4-6/api/node_modules/moment/locale/lb.js", + "./lo": "./build/cht-core-4-6/api/node_modules/moment/locale/lo.js", + "./lo.js": "./build/cht-core-4-6/api/node_modules/moment/locale/lo.js", + "./lt": "./build/cht-core-4-6/api/node_modules/moment/locale/lt.js", + "./lt.js": "./build/cht-core-4-6/api/node_modules/moment/locale/lt.js", + "./lv": "./build/cht-core-4-6/api/node_modules/moment/locale/lv.js", + "./lv.js": "./build/cht-core-4-6/api/node_modules/moment/locale/lv.js", + "./me": "./build/cht-core-4-6/api/node_modules/moment/locale/me.js", + "./me.js": "./build/cht-core-4-6/api/node_modules/moment/locale/me.js", + "./mi": "./build/cht-core-4-6/api/node_modules/moment/locale/mi.js", + "./mi.js": "./build/cht-core-4-6/api/node_modules/moment/locale/mi.js", + "./mk": "./build/cht-core-4-6/api/node_modules/moment/locale/mk.js", + "./mk.js": "./build/cht-core-4-6/api/node_modules/moment/locale/mk.js", + "./ml": "./build/cht-core-4-6/api/node_modules/moment/locale/ml.js", + "./ml.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ml.js", + "./mn": "./build/cht-core-4-6/api/node_modules/moment/locale/mn.js", + "./mn.js": "./build/cht-core-4-6/api/node_modules/moment/locale/mn.js", + "./mr": "./build/cht-core-4-6/api/node_modules/moment/locale/mr.js", + "./mr.js": "./build/cht-core-4-6/api/node_modules/moment/locale/mr.js", + "./ms": "./build/cht-core-4-6/api/node_modules/moment/locale/ms.js", + "./ms-my": "./build/cht-core-4-6/api/node_modules/moment/locale/ms-my.js", + "./ms-my.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ms-my.js", + "./ms.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ms.js", + "./mt": "./build/cht-core-4-6/api/node_modules/moment/locale/mt.js", + "./mt.js": "./build/cht-core-4-6/api/node_modules/moment/locale/mt.js", + "./my": "./build/cht-core-4-6/api/node_modules/moment/locale/my.js", + "./my.js": "./build/cht-core-4-6/api/node_modules/moment/locale/my.js", + "./nb": "./build/cht-core-4-6/api/node_modules/moment/locale/nb.js", + "./nb.js": "./build/cht-core-4-6/api/node_modules/moment/locale/nb.js", + "./ne": "./build/cht-core-4-6/api/node_modules/moment/locale/ne.js", + "./ne.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ne.js", + "./nl": "./build/cht-core-4-6/api/node_modules/moment/locale/nl.js", + "./nl-be": "./build/cht-core-4-6/api/node_modules/moment/locale/nl-be.js", + "./nl-be.js": "./build/cht-core-4-6/api/node_modules/moment/locale/nl-be.js", + "./nl.js": "./build/cht-core-4-6/api/node_modules/moment/locale/nl.js", + "./nn": "./build/cht-core-4-6/api/node_modules/moment/locale/nn.js", + "./nn.js": "./build/cht-core-4-6/api/node_modules/moment/locale/nn.js", + "./oc-lnc": "./build/cht-core-4-6/api/node_modules/moment/locale/oc-lnc.js", + "./oc-lnc.js": "./build/cht-core-4-6/api/node_modules/moment/locale/oc-lnc.js", + "./pa-in": "./build/cht-core-4-6/api/node_modules/moment/locale/pa-in.js", + "./pa-in.js": "./build/cht-core-4-6/api/node_modules/moment/locale/pa-in.js", + "./pl": "./build/cht-core-4-6/api/node_modules/moment/locale/pl.js", + "./pl.js": "./build/cht-core-4-6/api/node_modules/moment/locale/pl.js", + "./pt": "./build/cht-core-4-6/api/node_modules/moment/locale/pt.js", + "./pt-br": "./build/cht-core-4-6/api/node_modules/moment/locale/pt-br.js", + "./pt-br.js": "./build/cht-core-4-6/api/node_modules/moment/locale/pt-br.js", + "./pt.js": "./build/cht-core-4-6/api/node_modules/moment/locale/pt.js", + "./ro": "./build/cht-core-4-6/api/node_modules/moment/locale/ro.js", + "./ro.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ro.js", + "./ru": "./build/cht-core-4-6/api/node_modules/moment/locale/ru.js", + "./ru.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ru.js", + "./sd": "./build/cht-core-4-6/api/node_modules/moment/locale/sd.js", + "./sd.js": "./build/cht-core-4-6/api/node_modules/moment/locale/sd.js", + "./se": "./build/cht-core-4-6/api/node_modules/moment/locale/se.js", + "./se.js": "./build/cht-core-4-6/api/node_modules/moment/locale/se.js", + "./si": "./build/cht-core-4-6/api/node_modules/moment/locale/si.js", + "./si.js": "./build/cht-core-4-6/api/node_modules/moment/locale/si.js", + "./sk": "./build/cht-core-4-6/api/node_modules/moment/locale/sk.js", + "./sk.js": "./build/cht-core-4-6/api/node_modules/moment/locale/sk.js", + "./sl": "./build/cht-core-4-6/api/node_modules/moment/locale/sl.js", + "./sl.js": "./build/cht-core-4-6/api/node_modules/moment/locale/sl.js", + "./sq": "./build/cht-core-4-6/api/node_modules/moment/locale/sq.js", + "./sq.js": "./build/cht-core-4-6/api/node_modules/moment/locale/sq.js", + "./sr": "./build/cht-core-4-6/api/node_modules/moment/locale/sr.js", + "./sr-cyrl": "./build/cht-core-4-6/api/node_modules/moment/locale/sr-cyrl.js", + "./sr-cyrl.js": "./build/cht-core-4-6/api/node_modules/moment/locale/sr-cyrl.js", + "./sr.js": "./build/cht-core-4-6/api/node_modules/moment/locale/sr.js", + "./ss": "./build/cht-core-4-6/api/node_modules/moment/locale/ss.js", + "./ss.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ss.js", + "./sv": "./build/cht-core-4-6/api/node_modules/moment/locale/sv.js", + "./sv.js": "./build/cht-core-4-6/api/node_modules/moment/locale/sv.js", + "./sw": "./build/cht-core-4-6/api/node_modules/moment/locale/sw.js", + "./sw.js": "./build/cht-core-4-6/api/node_modules/moment/locale/sw.js", + "./ta": "./build/cht-core-4-6/api/node_modules/moment/locale/ta.js", + "./ta.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ta.js", + "./te": "./build/cht-core-4-6/api/node_modules/moment/locale/te.js", + "./te.js": "./build/cht-core-4-6/api/node_modules/moment/locale/te.js", + "./tet": "./build/cht-core-4-6/api/node_modules/moment/locale/tet.js", + "./tet.js": "./build/cht-core-4-6/api/node_modules/moment/locale/tet.js", + "./tg": "./build/cht-core-4-6/api/node_modules/moment/locale/tg.js", + "./tg.js": "./build/cht-core-4-6/api/node_modules/moment/locale/tg.js", + "./th": "./build/cht-core-4-6/api/node_modules/moment/locale/th.js", + "./th.js": "./build/cht-core-4-6/api/node_modules/moment/locale/th.js", + "./tk": "./build/cht-core-4-6/api/node_modules/moment/locale/tk.js", + "./tk.js": "./build/cht-core-4-6/api/node_modules/moment/locale/tk.js", + "./tl-ph": "./build/cht-core-4-6/api/node_modules/moment/locale/tl-ph.js", + "./tl-ph.js": "./build/cht-core-4-6/api/node_modules/moment/locale/tl-ph.js", + "./tlh": "./build/cht-core-4-6/api/node_modules/moment/locale/tlh.js", + "./tlh.js": "./build/cht-core-4-6/api/node_modules/moment/locale/tlh.js", + "./tr": "./build/cht-core-4-6/api/node_modules/moment/locale/tr.js", + "./tr.js": "./build/cht-core-4-6/api/node_modules/moment/locale/tr.js", + "./tzl": "./build/cht-core-4-6/api/node_modules/moment/locale/tzl.js", + "./tzl.js": "./build/cht-core-4-6/api/node_modules/moment/locale/tzl.js", + "./tzm": "./build/cht-core-4-6/api/node_modules/moment/locale/tzm.js", + "./tzm-latn": "./build/cht-core-4-6/api/node_modules/moment/locale/tzm-latn.js", + "./tzm-latn.js": "./build/cht-core-4-6/api/node_modules/moment/locale/tzm-latn.js", + "./tzm.js": "./build/cht-core-4-6/api/node_modules/moment/locale/tzm.js", + "./ug-cn": "./build/cht-core-4-6/api/node_modules/moment/locale/ug-cn.js", + "./ug-cn.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ug-cn.js", + "./uk": "./build/cht-core-4-6/api/node_modules/moment/locale/uk.js", + "./uk.js": "./build/cht-core-4-6/api/node_modules/moment/locale/uk.js", + "./ur": "./build/cht-core-4-6/api/node_modules/moment/locale/ur.js", + "./ur.js": "./build/cht-core-4-6/api/node_modules/moment/locale/ur.js", + "./uz": "./build/cht-core-4-6/api/node_modules/moment/locale/uz.js", + "./uz-latn": "./build/cht-core-4-6/api/node_modules/moment/locale/uz-latn.js", + "./uz-latn.js": "./build/cht-core-4-6/api/node_modules/moment/locale/uz-latn.js", + "./uz.js": "./build/cht-core-4-6/api/node_modules/moment/locale/uz.js", + "./vi": "./build/cht-core-4-6/api/node_modules/moment/locale/vi.js", + "./vi.js": "./build/cht-core-4-6/api/node_modules/moment/locale/vi.js", + "./x-pseudo": "./build/cht-core-4-6/api/node_modules/moment/locale/x-pseudo.js", + "./x-pseudo.js": "./build/cht-core-4-6/api/node_modules/moment/locale/x-pseudo.js", + "./yo": "./build/cht-core-4-6/api/node_modules/moment/locale/yo.js", + "./yo.js": "./build/cht-core-4-6/api/node_modules/moment/locale/yo.js", + "./zh-cn": "./build/cht-core-4-6/api/node_modules/moment/locale/zh-cn.js", + "./zh-cn.js": "./build/cht-core-4-6/api/node_modules/moment/locale/zh-cn.js", + "./zh-hk": "./build/cht-core-4-6/api/node_modules/moment/locale/zh-hk.js", + "./zh-hk.js": "./build/cht-core-4-6/api/node_modules/moment/locale/zh-hk.js", + "./zh-mo": "./build/cht-core-4-6/api/node_modules/moment/locale/zh-mo.js", + "./zh-mo.js": "./build/cht-core-4-6/api/node_modules/moment/locale/zh-mo.js", + "./zh-tw": "./build/cht-core-4-6/api/node_modules/moment/locale/zh-tw.js", + "./zh-tw.js": "./build/cht-core-4-6/api/node_modules/moment/locale/zh-tw.js" +}; - }, { - key: custom, - value: function value(_, options) { - return inspect(this, _objectSpread({}, options, { - // Only inspect one level. - depth: 0, - // It should not recurse. - customInspect: false - })); - } - }]); - return BufferList; -}(); +function webpackContext(req) { + var id = webpackContextResolve(req); + return __nested_webpack_require_1057733__(id); +} +function webpackContextResolve(req) { + if(!__nested_webpack_require_1057733__.o(map, req)) { + var e = new Error("Cannot find module '" + req + "'"); + e.code = 'MODULE_NOT_FOUND'; + throw e; + } + return map[req]; +} +webpackContext.keys = function webpackContextKeys() { + return Object.keys(map); +}; +webpackContext.resolve = webpackContextResolve; +module.exports = webpackContext; +webpackContext.id = "./build/cht-core-4-6/api/node_modules/moment/locale sync recursive ^\\.\\/.*$"; /***/ }), -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/destroy.js": -/*!*************************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/destroy.js ***! - \*************************************************************************************************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/api/node_modules/moment/moment.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/moment/moment.js ***! + \**************************************************************/ +/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_1078559__) { -"use strict"; - // undocumented cb() API, needed for core, not for public API +/* module decorator */ module = __nested_webpack_require_1078559__.nmd(module); +//! moment.js +//! version : 2.29.4 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com -function destroy(err, cb) { - var _this = this; +;(function (global, factory) { + true ? module.exports = factory() : + 0 +}(this, (function () { 'use strict'; - var readableDestroyed = this._readableState && this._readableState.destroyed; - var writableDestroyed = this._writableState && this._writableState.destroyed; + var hookCallback; - if (readableDestroyed || writableDestroyed) { - if (cb) { - cb(err); - } else if (err) { - if (!this._writableState) { - process.nextTick(emitErrorNT, this, err); - } else if (!this._writableState.errorEmitted) { - this._writableState.errorEmitted = true; - process.nextTick(emitErrorNT, this, err); - } + function hooks() { + return hookCallback.apply(null, arguments); } - return this; - } // we set destroyed to true before firing error callbacks in order - // to make it re-entrance safe in case destroy() is called within callbacks - - - if (this._readableState) { - this._readableState.destroyed = true; - } // if this is a duplex stream mark the writable part as destroyed as well + // This is done to register the method called with moment() + // without creating circular dependencies. + function setHookCallback(callback) { + hookCallback = callback; + } + function isArray(input) { + return ( + input instanceof Array || + Object.prototype.toString.call(input) === '[object Array]' + ); + } - if (this._writableState) { - this._writableState.destroyed = true; - } + function isObject(input) { + // IE8 will treat undefined and null as object if it wasn't for + // input != null + return ( + input != null && + Object.prototype.toString.call(input) === '[object Object]' + ); + } - this._destroy(err || null, function (err) { - if (!cb && err) { - if (!_this._writableState) { - process.nextTick(emitErrorAndCloseNT, _this, err); - } else if (!_this._writableState.errorEmitted) { - _this._writableState.errorEmitted = true; - process.nextTick(emitErrorAndCloseNT, _this, err); - } else { - process.nextTick(emitCloseNT, _this); - } - } else if (cb) { - process.nextTick(emitCloseNT, _this); - cb(err); - } else { - process.nextTick(emitCloseNT, _this); + function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); } - }); - return this; -} + function isObjectEmpty(obj) { + if (Object.getOwnPropertyNames) { + return Object.getOwnPropertyNames(obj).length === 0; + } else { + var k; + for (k in obj) { + if (hasOwnProp(obj, k)) { + return false; + } + } + return true; + } + } -function emitErrorAndCloseNT(self, err) { - emitErrorNT(self, err); - emitCloseNT(self); -} + function isUndefined(input) { + return input === void 0; + } -function emitCloseNT(self) { - if (self._writableState && !self._writableState.emitClose) return; - if (self._readableState && !self._readableState.emitClose) return; - self.emit('close'); -} + function isNumber(input) { + return ( + typeof input === 'number' || + Object.prototype.toString.call(input) === '[object Number]' + ); + } -function undestroy() { - if (this._readableState) { - this._readableState.destroyed = false; - this._readableState.reading = false; - this._readableState.ended = false; - this._readableState.endEmitted = false; - } + function isDate(input) { + return ( + input instanceof Date || + Object.prototype.toString.call(input) === '[object Date]' + ); + } - if (this._writableState) { - this._writableState.destroyed = false; - this._writableState.ended = false; - this._writableState.ending = false; - this._writableState.finalCalled = false; - this._writableState.prefinished = false; - this._writableState.finished = false; - this._writableState.errorEmitted = false; - } -} + function map(arr, fn) { + var res = [], + i, + arrLen = arr.length; + for (i = 0; i < arrLen; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } -function emitErrorNT(self, err) { - self.emit('error', err); -} + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } -function errorOrDestroy(stream, err) { - // We have tests that rely on errors being emitted - // in the same tick, so changing this is semver major. - // For now when you opt-in to autoDestroy we allow - // the error to be emitted nextTick. In a future - // semver major update we should change the default to this. - var rState = stream._readableState; - var wState = stream._writableState; - if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err); -} + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } -module.exports = { - destroy: destroy, - undestroy: undestroy, - errorOrDestroy: errorOrDestroy -}; + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } -/***/ }), + return a; + } -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js": -/*!*******************************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***! - \*******************************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + function createUTC(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); + } -"use strict"; -// Ported from https://github.com/mafintosh/end-of-stream with -// permission from the author, Mathias Buus (@mafintosh). + function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty: false, + unusedTokens: [], + unusedInput: [], + overflow: -2, + charsLeftOver: 0, + nullInput: false, + invalidEra: null, + invalidMonth: null, + invalidFormat: false, + userInvalidated: false, + iso: false, + parsedDateParts: [], + era: null, + meridiem: null, + rfc2822: false, + weekdayMismatch: false, + }; + } + function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; + } -var ERR_STREAM_PREMATURE_CLOSE = __webpack_require__(/*! ../../../errors */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/errors.js").codes.ERR_STREAM_PREMATURE_CLOSE; + var some; + if (Array.prototype.some) { + some = Array.prototype.some; + } else { + some = function (fun) { + var t = Object(this), + len = t.length >>> 0, + i; -function once(callback) { - var called = false; - return function () { - if (called) return; - called = true; + for (i = 0; i < len; i++) { + if (i in t && fun.call(this, t[i], i, t)) { + return true; + } + } - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; + return false; + }; } - callback.apply(this, args); - }; -} + function isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m), + parsedParts = some.call(flags.parsedDateParts, function (i) { + return i != null; + }), + isNowValid = + !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidEra && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.weekdayMismatch && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated && + (!flags.meridiem || (flags.meridiem && parsedParts)); -function noop() {} + if (m._strict) { + isNowValid = + isNowValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } -function isRequest(stream) { - return stream.setHeader && typeof stream.abort === 'function'; -} + if (Object.isFrozen == null || !Object.isFrozen(m)) { + m._isValid = isNowValid; + } else { + return isNowValid; + } + } + return m._isValid; + } -function eos(stream, opts, callback) { - if (typeof opts === 'function') return eos(stream, null, opts); - if (!opts) opts = {}; - callback = once(callback || noop); - var readable = opts.readable || opts.readable !== false && stream.readable; - var writable = opts.writable || opts.writable !== false && stream.writable; + function createInvalid(flags) { + var m = createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } else { + getParsingFlags(m).userInvalidated = true; + } - var onlegacyfinish = function onlegacyfinish() { - if (!stream.writable) onfinish(); - }; + return m; + } - var writableEnded = stream._writableState && stream._writableState.finished; + // Plugins that add properties should also add the key here (null value), + // so we can properly clone ourselves. + var momentProperties = (hooks.momentProperties = []), + updateInProgress = false; - var onfinish = function onfinish() { - writable = false; - writableEnded = true; - if (!readable) callback.call(stream); - }; + function copyConfig(to, from) { + var i, + prop, + val, + momentPropertiesLen = momentProperties.length; - var readableEnded = stream._readableState && stream._readableState.endEmitted; + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } - var onend = function onend() { - readable = false; - readableEnded = true; - if (!writable) callback.call(stream); - }; + if (momentPropertiesLen > 0) { + for (i = 0; i < momentPropertiesLen; i++) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } - var onerror = function onerror(err) { - callback.call(stream, err); - }; + return to; + } - var onclose = function onclose() { - var err; + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + if (!this.isValid()) { + this._d = new Date(NaN); + } + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + hooks.updateOffset(this); + updateInProgress = false; + } + } - if (readable && !readableEnded) { - if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); - return callback.call(stream, err); + function isMoment(obj) { + return ( + obj instanceof Moment || (obj != null && obj._isAMomentObject != null) + ); } - if (writable && !writableEnded) { - if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); - return callback.call(stream, err); + function warn(msg) { + if ( + hooks.suppressDeprecationWarnings === false && + typeof console !== 'undefined' && + console.warn + ) { + console.warn('Deprecation warning: ' + msg); + } } - }; - - var onrequest = function onrequest() { - stream.req.on('finish', onfinish); - }; - if (isRequest(stream)) { - stream.on('complete', onfinish); - stream.on('abort', onclose); - if (stream.req) onrequest();else stream.on('request', onrequest); - } else if (writable && !stream._writableState) { - // legacy streams - stream.on('end', onlegacyfinish); - stream.on('close', onlegacyfinish); - } - - stream.on('end', onend); - stream.on('finish', onfinish); - if (opts.error !== false) stream.on('error', onerror); - stream.on('close', onclose); - return function () { - stream.removeListener('complete', onfinish); - stream.removeListener('abort', onclose); - stream.removeListener('request', onrequest); - if (stream.req) stream.req.removeListener('finish', onfinish); - stream.removeListener('end', onlegacyfinish); - stream.removeListener('close', onlegacyfinish); - stream.removeListener('finish', onfinish); - stream.removeListener('end', onend); - stream.removeListener('error', onerror); - stream.removeListener('close', onclose); - }; -} + function deprecate(msg, fn) { + var firstTime = true; -module.exports = eos; + return extend(function () { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(null, msg); + } + if (firstTime) { + var args = [], + arg, + i, + key, + argLen = arguments.length; + for (i = 0; i < argLen; i++) { + arg = ''; + if (typeof arguments[i] === 'object') { + arg += '\n[' + i + '] '; + for (key in arguments[0]) { + if (hasOwnProp(arguments[0], key)) { + arg += key + ': ' + arguments[0][key] + ', '; + } + } + arg = arg.slice(0, -2); // Remove trailing comma and space + } else { + arg = arguments[i]; + } + args.push(arg); + } + warn( + msg + + '\nArguments: ' + + Array.prototype.slice.call(args).join('') + + '\n' + + new Error().stack + ); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } -/***/ }), + var deprecations = {}; -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/from.js": -/*!**********************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/from.js ***! - \**********************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + function deprecateSimple(name, msg) { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(name, msg); + } + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } -"use strict"; + hooks.suppressDeprecationWarnings = false; + hooks.deprecationHandler = null; + function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); + } -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + function set(config) { + var prop, i; + for (i in config) { + if (hasOwnProp(config, i)) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + } + this._config = config; + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. + // TODO: Remove "ordinalParse" fallback in next major release. + this._dayOfMonthOrdinalParseLenient = new RegExp( + (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + + '|' + + /\d{1,2}/.source + ); + } -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + function mergeConfigs(parentConfig, childConfig) { + var res = extend({}, parentConfig), + prop; + for (prop in childConfig) { + if (hasOwnProp(childConfig, prop)) { + if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { + res[prop] = {}; + extend(res[prop], parentConfig[prop]); + extend(res[prop], childConfig[prop]); + } else if (childConfig[prop] != null) { + res[prop] = childConfig[prop]; + } else { + delete res[prop]; + } + } + } + for (prop in parentConfig) { + if ( + hasOwnProp(parentConfig, prop) && + !hasOwnProp(childConfig, prop) && + isObject(parentConfig[prop]) + ) { + // make sure changes to properties don't modify parent config + res[prop] = extend({}, res[prop]); + } + } + return res; + } -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function Locale(config) { + if (config != null) { + this.set(config); + } + } -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + var keys; -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + if (Object.keys) { + keys = Object.keys; + } else { + keys = function (obj) { + var i, + res = []; + for (i in obj) { + if (hasOwnProp(obj, i)) { + res.push(i); + } + } + return res; + }; + } -var ERR_INVALID_ARG_TYPE = __webpack_require__(/*! ../../../errors */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/errors.js").codes.ERR_INVALID_ARG_TYPE; + var defaultCalendar = { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }; -function from(Readable, iterable, opts) { - var iterator; + function calendar(key, mom, now) { + var output = this._calendar[key] || this._calendar['sameElse']; + return isFunction(output) ? output.call(mom, now) : output; + } - if (iterable && typeof iterable.next === 'function') { - iterator = iterable; - } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable); + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return ( + (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + + absNumber + ); + } - var readable = new Readable(_objectSpread({ - objectMode: true - }, opts)); // Reading boolean to protect against _read - // being called before last iteration completion. + var formattingTokens = + /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, + localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, + formatFunctions = {}, + formatTokenFunctions = {}; - var reading = false; + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken(token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal( + func.apply(this, arguments), + token + ); + }; + } + } - readable._read = function () { - if (!reading) { - reading = true; - next(); + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); } - }; - function next() { - return _next2.apply(this, arguments); - } + function makeFormatFunction(format) { + var array = format.match(formattingTokens), + i, + length; - function _next2() { - _next2 = _asyncToGenerator(function* () { - try { - var _ref = yield iterator.next(), - value = _ref.value, - done = _ref.done; + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } - if (done) { - readable.push(null); - } else if (readable.push((yield value))) { - next(); - } else { - reading = false; + return function (mom) { + var output = '', + i; + for (i = 0; i < length; i++) { + output += isFunction(array[i]) + ? array[i].call(mom, format) + : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); } - } catch (err) { - readable.destroy(err); - } - }); - return _next2.apply(this, arguments); - } - return readable; -} + format = expandFormat(format, m.localeData()); + formatFunctions[format] = + formatFunctions[format] || makeFormatFunction(format); -module.exports = from; + return formatFunctions[format](m); + } -/***/ }), + function expandFormat(format, locale) { + var i = 5; -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/pipeline.js": -/*!**************************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/pipeline.js ***! - \**************************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } -"use strict"; -// Ported from https://github.com/mafintosh/pump with -// permission from the author, Mathias Buus (@mafintosh). + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace( + localFormattingTokens, + replaceLongDateFormatTokens + ); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + return format; + } -var eos; + var defaultLongDateFormat = { + LTS: 'h:mm:ss A', + LT: 'h:mm A', + L: 'MM/DD/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }; -function once(callback) { - var called = false; - return function () { - if (called) return; - called = true; - callback.apply(void 0, arguments); - }; -} + function longDateFormat(key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; -var _require$codes = __webpack_require__(/*! ../../../errors */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/errors.js").codes, - ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; + if (format || !formatUpper) { + return format; + } -function noop(err) { - // Rethrow the error if it exists to avoid swallowing it - if (err) throw err; -} + this._longDateFormat[key] = formatUpper + .match(formattingTokens) + .map(function (tok) { + if ( + tok === 'MMMM' || + tok === 'MM' || + tok === 'DD' || + tok === 'dddd' + ) { + return tok.slice(1); + } + return tok; + }) + .join(''); -function isRequest(stream) { - return stream.setHeader && typeof stream.abort === 'function'; -} + return this._longDateFormat[key]; + } -function destroyer(stream, reading, writing, callback) { - callback = once(callback); - var closed = false; - stream.on('close', function () { - closed = true; - }); - if (eos === undefined) eos = __webpack_require__(/*! ./end-of-stream */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); - eos(stream, { - readable: reading, - writable: writing - }, function (err) { - if (err) return callback(err); - closed = true; - callback(); - }); - var destroyed = false; - return function (err) { - if (closed) return; - if (destroyed) return; - destroyed = true; // request.destroy just do .end - .abort is what we want + var defaultInvalidDate = 'Invalid date'; - if (isRequest(stream)) return stream.abort(); - if (typeof stream.destroy === 'function') return stream.destroy(); - callback(err || new ERR_STREAM_DESTROYED('pipe')); - }; -} + function invalidDate() { + return this._invalidDate; + } -function call(fn) { - fn(); -} + var defaultOrdinal = '%d', + defaultDayOfMonthOrdinalParse = /\d{1,2}/; -function pipe(from, to) { - return from.pipe(to); -} + function ordinal(number) { + return this._ordinal.replace('%d', number); + } -function popCallback(streams) { - if (!streams.length) return noop; - if (typeof streams[streams.length - 1] !== 'function') return noop; - return streams.pop(); -} + var defaultRelativeTime = { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + w: 'a week', + ww: '%d weeks', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }; -function pipeline() { - for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) { - streams[_key] = arguments[_key]; - } + function relativeTime(number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return isFunction(output) + ? output(number, withoutSuffix, string, isFuture) + : output.replace(/%d/i, number); + } - var callback = popCallback(streams); - if (Array.isArray(streams[0])) streams = streams[0]; + function pastFuture(diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); + } - if (streams.length < 2) { - throw new ERR_MISSING_ARGS('streams'); - } + var aliases = {}; - var error; - var destroys = streams.map(function (stream, i) { - var reading = i < streams.length - 1; - var writing = i > 0; - return destroyer(stream, reading, writing, function (err) { - if (!error) error = err; - if (err) destroys.forEach(call); - if (reading) return; - destroys.forEach(call); - callback(error); - }); - }); - return streams.reduce(pipe); -} + function addUnitAlias(unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + } -module.exports = pipeline; + function normalizeUnits(units) { + return typeof units === 'string' + ? aliases[units] || aliases[units.toLowerCase()] + : undefined; + } -/***/ }), + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/state.js": -/*!***********************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/state.js ***! - \***********************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } -"use strict"; + return normalizedInput; + } + var priorities = {}; -var ERR_INVALID_OPT_VALUE = __webpack_require__(/*! ../../../errors */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/errors.js").codes.ERR_INVALID_OPT_VALUE; + function addUnitPriority(unit, priority) { + priorities[unit] = priority; + } -function highWaterMarkFrom(options, isDuplex, duplexKey) { - return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; -} + function getPrioritizedUnits(unitsObj) { + var units = [], + u; + for (u in unitsObj) { + if (hasOwnProp(unitsObj, u)) { + units.push({ unit: u, priority: priorities[u] }); + } + } + units.sort(function (a, b) { + return a.priority - b.priority; + }); + return units; + } -function getHighWaterMark(state, options, duplexKey, isDuplex) { - var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } - if (hwm != null) { - if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { - var name = isDuplex ? duplexKey : 'highWaterMark'; - throw new ERR_INVALID_OPT_VALUE(name, hwm); + function absFloor(number) { + if (number < 0) { + // -0 -> 0 + return Math.ceil(number) || 0; + } else { + return Math.floor(number); + } } - return Math.floor(hwm); - } // Default value + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } - return state.objectMode ? 16 : 16 * 1024; -} + return value; + } -module.exports = { - getHighWaterMark: getHighWaterMark -}; + function makeGetSet(unit, keepTime) { + return function (value) { + if (value != null) { + set$1(this, unit, value); + hooks.updateOffset(this, keepTime); + return this; + } else { + return get(this, unit); + } + }; + } -/***/ }), + function get(mom, unit) { + return mom.isValid() + ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() + : NaN; + } -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/stream.js": -/*!************************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/stream.js ***! - \************************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + function set$1(mom, unit, value) { + if (mom.isValid() && !isNaN(value)) { + if ( + unit === 'FullYear' && + isLeapYear(mom.year()) && + mom.month() === 1 && + mom.date() === 29 + ) { + value = toInt(value); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit]( + value, + mom.month(), + daysInMonth(value, mom.month()) + ); + } else { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + } + } -module.exports = __webpack_require__(/*! stream */ "stream"); + // MOMENTS + function stringGet(units) { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](); + } + return this; + } -/***/ }), + function stringSet(units, value) { + if (typeof units === 'object') { + units = normalizeObjectUnits(units); + var prioritized = getPrioritizedUnits(units), + i, + prioritizedLen = prioritized.length; + for (i = 0; i < prioritizedLen; i++) { + this[prioritized[i].unit](units[prioritized[i].unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; + } -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/readable.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/readable.js ***! - \*****************************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { + var match1 = /\d/, // 0 - 9 + match2 = /\d\d/, // 00 - 99 + match3 = /\d{3}/, // 000 - 999 + match4 = /\d{4}/, // 0000 - 9999 + match6 = /[+-]?\d{6}/, // -999999 - 999999 + match1to2 = /\d\d?/, // 0 - 99 + match3to4 = /\d\d\d\d?/, // 999 - 9999 + match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 + match1to3 = /\d{1,3}/, // 0 - 999 + match1to4 = /\d{1,4}/, // 0 - 9999 + match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 + matchUnsigned = /\d+/, // 0 - inf + matchSigned = /[+-]?\d+/, // -inf - inf + matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z + matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z + matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + matchWord = + /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, + regexes; -var Stream = __webpack_require__(/*! stream */ "stream"); -if (process.env.READABLE_STREAM === 'disable' && Stream) { - module.exports = Stream.Readable; - Object.assign(module.exports, Stream); - module.exports.Stream = Stream; -} else { - exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js"); - exports.Stream = Stream || exports; - exports.Readable = exports; - exports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js"); - exports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js"); - exports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js"); - exports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_passthrough.js"); - exports.finished = __webpack_require__(/*! ./lib/internal/streams/end-of-stream.js */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); - exports.pipeline = __webpack_require__(/*! ./lib/internal/streams/pipeline.js */ "./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/pipeline.js"); -} + regexes = {}; + function addRegexToken(token, regex, strictRegex) { + regexes[token] = isFunction(regex) + ? regex + : function (isStrict, localeData) { + return isStrict && strictRegex ? strictRegex : regex; + }; + } -/***/ }), + function getParseRegexForToken(token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } -/***/ "./node_modules/cht-core-4-0/api/node_modules/winston/package.json": -/*!*************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/node_modules/winston/package.json ***! - \*************************************************************************/ -/***/ ((module) => { + return regexes[token](config._strict, config._locale); + } -"use strict"; -module.exports = JSON.parse('{"name":"winston","description":"A logger for just about everything.","version":"3.4.0","author":"Charlie Robbins ","maintainers":["David Hyde "],"repository":{"type":"git","url":"https://github.com/winstonjs/winston.git"},"keywords":["winston","logger","logging","logs","sysadmin","bunyan","pino","loglevel","tools","json","stream"],"dependencies":{"async":"^3.2.3","@dabh/diagnostics":"^2.0.2","is-stream":"^2.0.0","logform":"^2.3.2","one-time":"^1.0.0","readable-stream":"^3.4.0","stack-trace":"0.0.x","triple-beam":"^1.3.0","winston-transport":"^4.4.2"},"devDependencies":{"@babel/cli":"^7.16.7","@babel/core":"^7.16.7","@babel/preset-env":"^7.16.7","@types/node":"^16.11.12","abstract-winston-transport":"^0.5.1","assume":"^2.2.0","colors":"1.4.0","cross-spawn-async":"^2.2.5","eslint-config-populist":"^4.2.0","hock":"^1.4.1","mocha":"8.1.3","nyc":"^15.1.0","rimraf":"^3.0.2","split2":"^4.1.0","std-mocks":"^1.0.1","through2":"^4.0.2","winston-compat":"^0.1.5"},"main":"./lib/winston","browser":"./dist/winston","types":"./index.d.ts","scripts":{"lint":"populist lib/*.js lib/winston/*.js lib/winston/**/*.js","pretest":"npm run lint","test":"nyc --reporter=text --reporter lcov npm run test:mocha","test:mocha":"mocha test/*.test.js test/**/*.test.js --exit","build":"rimraf dist && babel lib -d dist","prepublishOnly":"npm run build"},"engines":{"node":">= 6.4.0"},"license":"MIT"}'); + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return regexEscape( + s + .replace('\\', '') + .replace( + /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, + function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + } + ) + ); + } -/***/ }), + function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } -/***/ "./node_modules/cht-core-4-0/api/src/enketo-transformer/markdown.js": -/*!**************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/src/enketo-transformer/markdown.js ***! - \**************************************************************************/ -/***/ ((module) => { + var tokens = {}; -// identical copy of https://github.com/enketo/enketo-transformer/blob/2.1.5/src/markdown.js -// committed because of https://github.com/medic/cht-core/issues/7771 + function addParseToken(token, callback) { + var i, + func = callback, + tokenLen; + if (typeof token === 'string') { + token = [token]; + } + if (isNumber(callback)) { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + tokenLen = token.length; + for (i = 0; i < tokenLen; i++) { + tokens[token[i]] = func; + } + } -/** - * @module markdown - */ + function addWeekParseToken(token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } -/** - * Transforms XForm label and hint textnode content with a subset of Markdown into HTML - * - * Supported: - * - `_`, `__`, `*`, `**`, `[]()`, `#`, `##`, `###`, `####`, `#####`, - * - span tags and html-encoded span tags, - * - single-level unordered markdown lists and single-level ordered markdown lists - * - newline characters - * - * Also HTML encodes any unsupported HTML tags for safe use inside web-based clients - * - * @static - * @param {string} text - Text content of a textnode. - * @return {string} transformed text content of a textnode. - */ -function markdownToHtml(text) { - // note: in JS $ matches end of line as well as end of string, and ^ both beginning of line and string - const html = text - // html encoding of < because libXMLJs Element.text() converts html entities - .replace(//gm, '>') - // span - .replace( - /<\s?span([^/\n]*)>((?:(?!<\/).)+)<\/\s?span\s?>/gm, - _createSpan - ) - // sup - .replace( - /<\s?sup([^/\n]*)>((?:(?!<\/).)+)<\/\s?sup\s?>/gm, - _createSup - ) - // sub - .replace( - /<\s?sub([^/\n]*)>((?:(?!<\/).)+)<\/\s?sub\s?>/gm, - _createSub - ) - // "\" will be used as escape character for *, _ - .replace(/&/gm, '&') - .replace(/\\\\/gm, '&92;') - .replace(/\\\*/gm, '&42;') - .replace(/\\_/gm, '&95;') - .replace(/\\#/gm, '&35;') - // strong - .replace(/__(.*?)__/gm, '$1') - .replace(/\*\*(.*?)\*\*/gm, '$1') - // emphasis - .replace(/_([^\s][^_\n]*)_/gm, '$1') - .replace(/\*([^\s][^*\n]*)\*/gm, '$1') - // links - .replace( - /\[([^\]]*)\]\(([^)]+)\)/gm, - '$1' - ) - // headers - .replace(/^\s*(#{1,6})\s?([^#][^\n]*)(\n|$)/gm, _createHeader) - // unordered lists - .replace(/^((\*|\+|-) (.*)(\n|$))+/gm, _createUnorderedList) - // ordered lists, which have to be preceded by a newline since numbered labels are common - .replace(/(\n([0-9]+\.) (.*))+$/gm, _createOrderedList) - // newline characters followed by
    tag - .replace(/\n(
      )/gm, '$1') - // reverting escape of special characters - .replace(/&35;/gm, '#') - .replace(/&95;/gm, '_') - .replace(/&92;/gm, '\\') - .replace(/&42;/gm, '*') - .replace(/&/gm, '&') - // paragraphs - .replace(/([^\n]+)\n{2,}/gm, _createParagraph) - // any remaining newline characters - .replace(/([^\n]+)\n/gm, '$1
      '); + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } - return html; -} + var YEAR = 0, + MONTH = 1, + DATE = 2, + HOUR = 3, + MINUTE = 4, + SECOND = 5, + MILLISECOND = 6, + WEEK = 7, + WEEKDAY = 8; -/** - * @param {string} match - The matched substring. - * @param {*} hashtags - Before header text. `#` gives `

      `, `####` gives `

      `. - * @param {string} content - Header text. - * @return {string} HTML string. - */ -function _createHeader(match, hashtags, content) { - const level = hashtags.length; + function mod(n, x) { + return ((n % x) + x) % x; + } - return `${content.replace(/#+$/, '')}`; -} + var indexOf; -/** - * @param {string} match - The matched substring. - * @return {string} HTML string. - */ -function _createUnorderedList(match) { - const items = match.replace(/(\*|\+|-)(.*)\n?/gm, _createItem); + if (Array.prototype.indexOf) { + indexOf = Array.prototype.indexOf; + } else { + indexOf = function (o) { + // I know + var i; + for (i = 0; i < this.length; ++i) { + if (this[i] === o) { + return i; + } + } + return -1; + }; + } - return `
        ${items}
      `; -} + function daysInMonth(year, month) { + if (isNaN(year) || isNaN(month)) { + return NaN; + } + var modMonth = mod(month, 12); + year += (month - modMonth) / 12; + return modMonth === 1 + ? isLeapYear(year) + ? 29 + : 28 + : 31 - ((modMonth % 7) % 2); + } -/** - * @param {string} match - The matched substring. - * @return {string} HTML string. - */ -function _createOrderedList(match) { - const startMatches = match.match(/^\n?(?[0-9]+)\./); - const start = - startMatches && startMatches.groups && startMatches.groups.start !== '1' - ? ` start="${startMatches.groups.start}"` - : ''; - const items = match.replace(/\n?([0-9]+\.)(.*)/gm, _createItem); + // FORMATTING - return `${items}`; -} + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); -/** - * @param {string} match - The matched substring. - * @param {string} bullet - The list item bullet/number. - * @param {string} content - Item text. - * @return {string} HTML string. - */ -function _createItem(match, bullet, content) { - return `
    • ${content.trim()}
    • `; -} + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); -/** - * @param {string} match - The matched substring. - * @param {string} line - The line. - * @return {string} HTML string. - */ -function _createParagraph(match, line) { - const trimmed = line.trim(); - if (/^<\/?(ul|ol|li|h|p|bl)/i.test(trimmed)) { - return line; - } + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); - return `

      ${trimmed}

      `; -} + // ALIASES -/** - * @param {string} match - The matched substring. - * @param {string} attributes - Attributes to be added for `` - * @param {string} content - Span text. - * @return {string} HTML string. - */ -function _createSpan(match, attributes, content) { - const sanitizedAttributes = _sanitizeAttributes(attributes); + addUnitAlias('month', 'M'); - return `${content}`; -} + // PRIORITY -/** - * @param {string} match - The matched substring. - * @param {string} attributes - The attributes. - * @param {string} content - Sup text. - * @return {string} HTML string. - */ -function _createSup(match, attributes, content) { - // ignore attributes completely - return `${content}`; -} + addUnitPriority('month', 8); -/** - * @param {string} match - The matched substring. - * @param {string} attributes - The attributes. - * @param {string} content - Sub text. - * @return {string} HTML string. - */ -function _createSub(match, attributes, content) { - // ignore attributes completely - return `${content}`; -} + // PARSING -/** - * @param {string} attributes - The attributes. - * @return {string} style - */ -function _sanitizeAttributes(attributes) { - const styleMatches = attributes.match(/( style=(["'])[^"']*\2)/); - const style = styleMatches && styleMatches.length ? styleMatches[0] : ''; + addRegexToken('M', match1to2); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); + }); + addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); + }); - return style; -} + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); -module.exports = { - toHtml: markdownToHtml, -}; + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); + // LOCALES -/***/ }), + var defaultLocaleMonths = + 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + defaultLocaleMonthsShort = + 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, + defaultMonthsShortRegex = matchWord, + defaultMonthsRegex = matchWord; -/***/ "./node_modules/cht-core-4-0/api/src/logger.js": -/*!*****************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/src/logger.js ***! - \*****************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + function localeMonths(m, format) { + if (!m) { + return isArray(this._months) + ? this._months + : this._months['standalone']; + } + return isArray(this._months) + ? this._months[m.month()] + : this._months[ + (this._months.isFormat || MONTHS_IN_FORMAT).test(format) + ? 'format' + : 'standalone' + ][m.month()]; + } -const { createLogger, format, transports } = __webpack_require__(/*! winston */ "./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston.js"); -const env = "development" || 0; + function localeMonthsShort(m, format) { + if (!m) { + return isArray(this._monthsShort) + ? this._monthsShort + : this._monthsShort['standalone']; + } + return isArray(this._monthsShort) + ? this._monthsShort[m.month()] + : this._monthsShort[ + MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone' + ][m.month()]; + } -const cleanUpErrorsFromSymbolProperties = (info) => { - if (!info) { - return; - } + function handleStrictParse(monthName, format, strict) { + var i, + ii, + mom, + llc = monthName.toLocaleLowerCase(); + if (!this._monthsParse) { + // this is not used + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + for (i = 0; i < 12; ++i) { + mom = createUTC([2000, i]); + this._shortMonthsParse[i] = this.monthsShort( + mom, + '' + ).toLocaleLowerCase(); + this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); + } + } - // errors can be passed as "Symbol('splat')" properties, when doing: logger.error('message: %o', actualError); - // see https://github.com/winstonjs/winston/blob/2625f60c5c85b8c4926c65e98a591f8b42e0db9a/README.md#streams-objectmode-and-info-objects - Object.getOwnPropertySymbols(info).forEach(property => { - const values = info[property]; - if (Array.isArray(values)) { - values.forEach(value => cleanUpRequestError(value)); + if (strict) { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } } - }); -}; - -const cleanUpRequestError = (error) => { - // These are the error types that we're expecting from request-promise-native - // https://github.com/request/promise-core/blob/v1.1.4/lib/errors.js - const requestErrorConstructors = ['RequestError', 'StatusCodeError', 'TransformError']; - if (error && error.constructor && requestErrorConstructors.includes(error.constructor.name)) { - // these properties could contain sensitive information, like passwords or auth tokens, and are not safe to log - delete error.options; - delete error.request; - delete error.response; - } -}; -const enumerateErrorFormat = format(info => { - cleanUpErrorsFromSymbolProperties(info); - cleanUpRequestError(info); - cleanUpRequestError(info.message); + function localeMonthsParse(monthName, format, strict) { + var i, mom, regex; - if (info.message instanceof Error) { - info.message = Object.assign({ - message: info.message.message, - stack: info.message.stack - }, info.message); - } + if (this._monthsParseExact) { + return handleStrictParse.call(this, monthName, format, strict); + } - if (info instanceof Error) { - return Object.assign({ - message: info.message, - stack: info.stack - }, info); - } + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } - return info; -}); + // TODO: add sorting + // Sorting makes sure if one month (or abbr) is a prefix of another + // see sorting in computeMonthsParse + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp( + '^' + this.months(mom, '').replace('.', '') + '$', + 'i' + ); + this._shortMonthsParse[i] = new RegExp( + '^' + this.monthsShort(mom, '').replace('.', '') + '$', + 'i' + ); + } + if (!strict && !this._monthsParse[i]) { + regex = + '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'MMMM' && + this._longMonthsParse[i].test(monthName) + ) { + return i; + } else if ( + strict && + format === 'MMM' && + this._shortMonthsParse[i].test(monthName) + ) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } + } -const logger = createLogger({ - format: format.combine( - enumerateErrorFormat(), - format.splat(), - format.simple() - ), - transports: [ - new transports.Console({ - // change level if in dev environment versus production - level: env === 'development' ? 'debug' : 'info', - format: format.combine( - // https://github.com/winstonjs/winston/issues/1345 - format(info => { - info.level = info.level.toUpperCase(); - return info; - })(), - format.colorize(), - format.timestamp({ - format: 'YYYY-MM-DD HH:mm:ss', - }), - format.printf(info => `${info.timestamp} ${info.level}: ${info.message} ${info.stack ? info.stack : ''}`) - ), - }), - ], -}); + // MOMENTS -module.exports = logger; + function setMonth(mom, value) { + var dayOfMonth; + if (!mom.isValid()) { + // No op + return mom; + } -/***/ }), + if (typeof value === 'string') { + if (/^\d+$/.test(value)) { + value = toInt(value); + } else { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (!isNumber(value)) { + return mom; + } + } + } -/***/ "./node_modules/cht-core-4-0/api/src/services/generate-xform.js": -/*!**********************************************************************!*\ - !*** ./node_modules/cht-core-4-0/api/src/services/generate-xform.js ***! - \**********************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } -/** - * XForm generation service - * @module generate-xform - */ -const childProcess = __webpack_require__(/*! child_process */ "child_process"); -const htmlParser = __webpack_require__(/*! node-html-parser */ "./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/index.js"); -const logger = __webpack_require__(/*! ../logger */ "./node_modules/cht-core-4-0/api/src/logger.js"); -const markdown = __webpack_require__(/*! ../enketo-transformer/markdown */ "./node_modules/cht-core-4-0/api/src/enketo-transformer/markdown.js"); -const { FORM_STYLESHEET, MODEL_STYLESHEET } = __webpack_require__(/*! ../xsl/xsl-paths */ "./ext/xsl-paths.js"); + function getSetMonth(value) { + if (value != null) { + setMonth(this, value); + hooks.updateOffset(this, true); + return this; + } else { + return get(this, 'Month'); + } + } -const MODEL_ROOT_OPEN = ''; -const ROOT_CLOSE = ''; -const JAVAROSA_SRC = / src="jr:\/\//gi; -const MEDIA_SRC_ATTR = ' data-media-src="'; -const XSLTPROC_CMD = 'xsltproc'; + function getDaysInMonth() { + return daysInMonth(this.year(), this.month()); + } -const processErrorHandler = (xsltproc, err, reject) => { - xsltproc.stdin.end(); - if (err.code === 'EPIPE' // Node v10,v12,v14 - || (err.code === 'ENOENT' && err.syscall === `spawn ${XSLTPROC_CMD}`) // Node v8,v16+ - ) { - const errMsg = `Unable to continue execution, check that '${XSLTPROC_CMD}' command is available.`; - logger.error(errMsg); - return reject(new Error(errMsg)); - } - logger.error(err); - return reject(new Error(`Unknown Error: An error occurred when executing '${XSLTPROC_CMD}' command`)); -}; + function monthsShortRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + if (!hasOwnProp(this, '_monthsShortRegex')) { + this._monthsShortRegex = defaultMonthsShortRegex; + } + return this._monthsShortStrictRegex && isStrict + ? this._monthsShortStrictRegex + : this._monthsShortRegex; + } + } -const transform = (formXml, stylesheet) => { - return new Promise((resolve, reject) => { - const xsltproc = childProcess.spawn(XSLTPROC_CMD, [ stylesheet, '-' ]); - let stdout = ''; - let stderr = ''; - xsltproc.stdout.on('data', data => stdout += data); - xsltproc.stderr.on('data', data => stderr += data); - xsltproc.stdin.setEncoding('utf-8'); - xsltproc.stdin.on('error', err => { - // Errors related with spawned processes and stdin are handled here on Node v10 - return processErrorHandler(xsltproc, err, reject); - }); - try { - xsltproc.stdin.write(formXml); - xsltproc.stdin.end(); - } catch (err) { - // Errors related with spawned processes and stdin are handled here on Node v12 - return processErrorHandler(xsltproc, err, reject); + function monthsRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + if (!hasOwnProp(this, '_monthsRegex')) { + this._monthsRegex = defaultMonthsRegex; + } + return this._monthsStrictRegex && isStrict + ? this._monthsStrictRegex + : this._monthsRegex; + } } - xsltproc.on('close', (code, signal) => { - if (code !== 0 || signal || stderr.length) { - let errorMsg = `Error transforming xml. xsltproc returned code "${code}", and signal "${signal}"`; - if (stderr.length) { - errorMsg += '. xsltproc stderr output:\n' + stderr; + + function computeMonthsParse() { + function cmpLenRev(a, b) { + return b.length - a.length; } - return reject(new Error(errorMsg)); - } - if (!stdout) { - return reject(new Error(`Error transforming xml. xsltproc returned no error but no output.`)); - } - resolve(stdout); - }); - xsltproc.on('error', err => { - // Errors related with spawned processes are handled here on Node v8,v14,v16+ - return processErrorHandler(xsltproc, err, reject); - }); - }); -}; -const convertDynamicUrls = (original) => original.replace( - /]+href="([^"]*---output[^"]*)"[^>]*>(.*?)<\/a>/gm, - '' + - '$2' + - ''); + var shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + shortPieces.push(this.monthsShort(mom, '')); + longPieces.push(this.months(mom, '')); + mixedPieces.push(this.months(mom, '')); + mixedPieces.push(this.monthsShort(mom, '')); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 12; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + } + for (i = 0; i < 24; i++) { + mixedPieces[i] = regexEscape(mixedPieces[i]); + } -const convertEmbeddedHtml = (original) => original - .replace(/<\s*(\/)?\s*([\s\S]*?)\s*>/gm, '<$1$2>') - .replace(/"/g, '"') - .replace(/'/g, '\'') - .replace(/&/g, '&'); + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._monthsShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + } -const replaceNode = (currentNode, newNode) => { - const { parentNode } = currentNode; - const idx = parentNode.childNodes.findIndex((child) => child === currentNode); - parentNode.childNodes = [ - ...parentNode.childNodes.slice(0, idx), - newNode, - ...parentNode.childNodes.slice(idx + 1), - ]; -}; + // FORMATTING -// Based on enketo/enketo-transformer -// https://github.com/enketo/enketo-transformer/blob/377caf14153586b040367f8c2de53c9d794c19d4/src/transformer.js#L430 -const replaceAllMarkdown = (formString) => { - const replacements = {}; - const form = htmlParser.parse(formString).querySelector('form'); + addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? zeroFill(y, 4) : '+' + y; + }); - // First turn all outputs into text so *= 0) { + // preserve leap years using a full 400 year cycle, then reset + date = new Date(y + 400, m, d, h, M, s, ms); + if (isFinite(date.getFullYear())) { + date.setFullYear(y); + } + } else { + date = new Date(y, m, d, h, M, s, ms); + } - //! moment.js locale configuration + return date; + } - var af = moment.defineLocale('af', { - months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), - weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split( - '_' - ), - weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), - weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), - meridiemParse: /vm|nm/i, - isPM: function (input) { - return /^nm$/i.test(input); - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'vm' : 'VM'; - } else { - return isLower ? 'nm' : 'NM'; - } - }, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Vandag om] LT', - nextDay: '[Môre om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[Gister om] LT', - lastWeek: '[Laas] dddd [om] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'oor %s', - past: '%s gelede', - s: "'n paar sekondes", - ss: '%d sekondes', - m: "'n minuut", - mm: '%d minute', - h: "'n uur", - hh: '%d ure', - d: "'n dag", - dd: '%d dae', - M: "'n maand", - MM: '%d maande', - y: "'n jaar", - yy: '%d jaar', - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal: function (number) { - return ( - number + - (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') - ); // Thanks to Joris Röling : https://github.com/jjupiter - }, - week: { - dow: 1, // Maandag is die eerste dag van die week. - doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. - }, - }); + function createUTCDate(y) { + var date, args; + // the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + args = Array.prototype.slice.call(arguments); + // preserve leap years using a full 400 year cycle, then reset + args[0] = y + 400; + date = new Date(Date.UTC.apply(null, args)); + if (isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + } else { + date = new Date(Date.UTC.apply(null, arguments)); + } - return af; + return date; + } -}))); + // start-of-first-week - start-of-year + function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + return -fwdlw + fwd - 1; + } -/***/ }), + // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, + resDayOfYear; -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-dz.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-dz.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } -//! moment.js locale configuration -//! locale : Arabic (Algeria) [ar-dz] -//! author : Amine Roukh: https://github.com/Amine27 -//! author : Abdel Said: https://github.com/abdelsaid -//! author : Ahmed Elkhatib -//! author : forabi https://github.com/forabi -//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem + return { + year: resYear, + dayOfYear: resDayOfYear, + }; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, + resYear; - //! moment.js locale configuration + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } - var pluralForm = function (n) { - return n === 0 - ? 0 - : n === 1 - ? 1 - : n === 2 - ? 2 - : n % 100 >= 3 && n % 100 <= 10 - ? 3 - : n % 100 >= 11 - ? 4 - : 5; - }, - plurals = { - s: [ - 'أقل من ثانية', - 'ثانية واحدة', - ['ثانيتان', 'ثانيتين'], - '%d ثوان', - '%d ثانية', - '%d ثانية', - ], - m: [ - 'أقل من دقيقة', - 'دقيقة واحدة', - ['دقيقتان', 'دقيقتين'], - '%d دقائق', - '%d دقيقة', - '%d دقيقة', - ], - h: [ - 'أقل من ساعة', - 'ساعة واحدة', - ['ساعتان', 'ساعتين'], - '%d ساعات', - '%d ساعة', - '%d ساعة', - ], - d: [ - 'أقل من يوم', - 'يوم واحد', - ['يومان', 'يومين'], - '%d أيام', - '%d يومًا', - '%d يوم', - ], - M: [ - 'أقل من شهر', - 'شهر واحد', - ['شهران', 'شهرين'], - '%d أشهر', - '%d شهرا', - '%d شهر', - ], - y: [ - 'أقل من عام', - 'عام واحد', - ['عامان', 'عامين'], - '%d أعوام', - '%d عامًا', - '%d عام', - ], - }, - pluralize = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm(number), - str = plurals[u][pluralForm(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; - }, - months = [ - 'جانفي', - 'فيفري', - 'مارس', - 'أفريل', - 'ماي', - 'جوان', - 'جويلية', - 'أوت', - 'سبتمبر', - 'أكتوبر', - 'نوفمبر', - 'ديسمبر', - ]; + return { + week: resWeek, + year: resYear, + }; + } - var arDz = moment.defineLocale('ar-dz', { - months: months, - monthsShort: months, - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'D/\u200FM/\u200FYYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ص|م/, - isPM: function (input) { - return 'م' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar: { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'بعد %s', - past: 'منذ %s', - s: pluralize('s'), - ss: pluralize('s'), - m: pluralize('m'), - mm: pluralize('m'), - h: pluralize('h'), - hh: pluralize('h'), - d: pluralize('d'), - dd: pluralize('d'), - M: pluralize('M'), - MM: pluralize('M'), - y: pluralize('y'), - yy: pluralize('y'), - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; + } - return arDz; + // FORMATTING -}))); + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + // ALIASES -/***/ }), + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-kw.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-kw.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + // PRIORITIES -//! moment.js locale configuration -//! locale : Arabic (Kuwait) [ar-kw] -//! author : Nusret Parlak: https://github.com/nusretparlak + addUnitPriority('week', 5); + addUnitPriority('isoWeek', 5); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // PARSING - //! moment.js locale configuration + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); - var arKw = moment.defineLocale('ar-kw', { - months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( - '_' - ), - monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( - '_' - ), - weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'في %s', - past: 'منذ %s', - s: 'ثوان', - ss: '%d ثانية', - m: 'دقيقة', - mm: '%d دقائق', - h: 'ساعة', - hh: '%d ساعات', - d: 'يوم', - dd: '%d أيام', - M: 'شهر', - MM: '%d أشهر', - y: 'سنة', - yy: '%d سنوات', - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); + addWeekParseToken( + ['w', 'ww', 'W', 'WW'], + function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + } + ); - return arKw; + // HELPERS -}))); + // LOCALES + function localeWeek(mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } -/***/ }), + var defaultLocaleWeek = { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }; -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-ly.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-ly.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function localeFirstDayOfWeek() { + return this._week.dow; + } -//! moment.js locale configuration -//! locale : Arabic (Lybia) [ar-ly] -//! author : Ali Hmer: https://github.com/kikoanis + function localeFirstDayOfYear() { + return this._week.doy; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // MOMENTS - //! moment.js locale configuration + function getSetWeek(input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } - var symbolMap = { - 1: '1', - 2: '2', - 3: '3', - 4: '4', - 5: '5', - 6: '6', - 7: '7', - 8: '8', - 9: '9', - 0: '0', - }, - pluralForm = function (n) { - return n === 0 - ? 0 - : n === 1 - ? 1 - : n === 2 - ? 2 - : n % 100 >= 3 && n % 100 <= 10 - ? 3 - : n % 100 >= 11 - ? 4 - : 5; - }, - plurals = { - s: [ - 'أقل من ثانية', - 'ثانية واحدة', - ['ثانيتان', 'ثانيتين'], - '%d ثوان', - '%d ثانية', - '%d ثانية', - ], - m: [ - 'أقل من دقيقة', - 'دقيقة واحدة', - ['دقيقتان', 'دقيقتين'], - '%d دقائق', - '%d دقيقة', - '%d دقيقة', - ], - h: [ - 'أقل من ساعة', - 'ساعة واحدة', - ['ساعتان', 'ساعتين'], - '%d ساعات', - '%d ساعة', - '%d ساعة', - ], - d: [ - 'أقل من يوم', - 'يوم واحد', - ['يومان', 'يومين'], - '%d أيام', - '%d يومًا', - '%d يوم', - ], - M: [ - 'أقل من شهر', - 'شهر واحد', - ['شهران', 'شهرين'], - '%d أشهر', - '%d شهرا', - '%d شهر', - ], - y: [ - 'أقل من عام', - 'عام واحد', - ['عامان', 'عامين'], - '%d أعوام', - '%d عامًا', - '%d عام', - ], - }, - pluralize = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm(number), - str = plurals[u][pluralForm(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; - }, - months = [ - 'يناير', - 'فبراير', - 'مارس', - 'أبريل', - 'مايو', - 'يونيو', - 'يوليو', - 'أغسطس', - 'سبتمبر', - 'أكتوبر', - 'نوفمبر', - 'ديسمبر', - ]; + function getSetISOWeek(input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } - var arLy = moment.defineLocale('ar-ly', { - months: months, - monthsShort: months, - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'D/\u200FM/\u200FYYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ص|م/, - isPM: function (input) { - return 'م' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar: { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'بعد %s', - past: 'منذ %s', - s: pluralize('s'), - ss: pluralize('s'), - m: pluralize('m'), - mm: pluralize('m'), - h: pluralize('h'), - hh: pluralize('h'), - d: pluralize('d'), - dd: pluralize('d'), - M: pluralize('M'), - MM: pluralize('M'), - y: pluralize('y'), - yy: pluralize('y'), - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap[match]; - }) - .replace(/,/g, '،'); - }, - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, + // FORMATTING + + addFormatToken('d', 0, 'do', 'day'); + + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); + + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); + + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); + + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + + // ALIASES + + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); + + // PRIORITY + addUnitPriority('day', 11); + addUnitPriority('weekday', 11); + addUnitPriority('isoWeekday', 11); + + // PARSING + + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', function (isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); + }); + addRegexToken('ddd', function (isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); + }); + addRegexToken('dddd', function (isStrict, locale) { + return locale.weekdaysRegex(isStrict); }); - return arLy; + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); -}))); + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); + // HELPERS -/***/ }), + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-ma.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-ma.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + if (!isNaN(input)) { + return parseInt(input, 10); + } -//! moment.js locale configuration -//! locale : Arabic (Morocco) [ar-ma] -//! author : ElFadili Yassine : https://github.com/ElFadiliY -//! author : Abdel Said : https://github.com/abdelsaid + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + return null; + } - //! moment.js locale configuration + function parseIsoWeekday(input, locale) { + if (typeof input === 'string') { + return locale.weekdaysParse(input) % 7 || 7; + } + return isNaN(input) ? null : input; + } - var arMa = moment.defineLocale('ar-ma', { - months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( - '_' - ), - monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( - '_' - ), - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'في %s', - past: 'منذ %s', - s: 'ثوان', - ss: '%d ثانية', - m: 'دقيقة', - mm: '%d دقائق', - h: 'ساعة', - hh: '%d ساعات', - d: 'يوم', - dd: '%d أيام', - M: 'شهر', - MM: '%d أشهر', - y: 'سنة', - yy: '%d سنوات', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + // LOCALES + function shiftWeekdays(ws, n) { + return ws.slice(n, 7).concat(ws.slice(0, n)); + } - return arMa; + var defaultLocaleWeekdays = + 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + defaultWeekdaysRegex = matchWord, + defaultWeekdaysShortRegex = matchWord, + defaultWeekdaysMinRegex = matchWord; -}))); + function localeWeekdays(m, format) { + var weekdays = isArray(this._weekdays) + ? this._weekdays + : this._weekdays[ + m && m !== true && this._weekdays.isFormat.test(format) + ? 'format' + : 'standalone' + ]; + return m === true + ? shiftWeekdays(weekdays, this._week.dow) + : m + ? weekdays[m.day()] + : weekdays; + } + function localeWeekdaysShort(m) { + return m === true + ? shiftWeekdays(this._weekdaysShort, this._week.dow) + : m + ? this._weekdaysShort[m.day()] + : this._weekdaysShort; + } -/***/ }), + function localeWeekdaysMin(m) { + return m === true + ? shiftWeekdays(this._weekdaysMin, this._week.dow) + : m + ? this._weekdaysMin[m.day()] + : this._weekdaysMin; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-sa.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-sa.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function handleStrictParse$1(weekdayName, format, strict) { + var i, + ii, + mom, + llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; -//! moment.js locale configuration -//! locale : Arabic (Saudi Arabia) [ar-sa] -//! author : Suhail Alkowaileet : https://github.com/xsoh + for (i = 0; i < 7; ++i) { + mom = createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin( + mom, + '' + ).toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort( + mom, + '' + ).toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); + } + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + if (strict) { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } + } - //! moment.js locale configuration + function localeWeekdaysParse(weekdayName, format, strict) { + var i, mom, regex; - var symbolMap = { - 1: '١', - 2: '٢', - 3: '٣', - 4: '٤', - 5: '٥', - 6: '٦', - 7: '٧', - 8: '٨', - 9: '٩', - 0: '٠', - }, - numberMap = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0', - }; + if (this._weekdaysParseExact) { + return handleStrictParse$1.call(this, weekdayName, format, strict); + } - var arSa = moment.defineLocale('ar-sa', { - months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( - '_' - ), - monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( - '_' - ), - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ص|م/, - isPM: function (input) { - return 'م' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = createUTC([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp( + '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._shortWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._minWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + } + if (!this._weekdaysParse[i]) { + regex = + '^' + + this.weekdays(mom, '') + + '|^' + + this.weekdaysShort(mom, '') + + '|^' + + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'dddd' && + this._fullWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'ddd' && + this._shortWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'dd' && + this._minWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + // MOMENTS + + function getSetDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + + function getSetISODayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + + if (input != null) { + var weekday = parseIsoWeekday(input, this.localeData()); + return this.day(this.day() % 7 ? weekday : weekday - 7); + } else { + return this.day() || 7; + } + } + + function weekdaysRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; } else { - return 'م'; + return this._weekdaysRegex; } - }, - calendar: { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'في %s', - past: 'منذ %s', - s: 'ثوان', - ss: '%d ثانية', - m: 'دقيقة', - mm: '%d دقائق', - h: 'ساعة', - hh: '%d ساعات', - d: 'يوم', - dd: '%d أيام', - M: 'شهر', - MM: '%d أشهر', - y: 'سنة', - yy: '%d سنوات', - }, - preparse: function (string) { - return string - .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap[match]; - }) - .replace(/،/g, ','); - }, - postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap[match]; - }) - .replace(/,/g, '،'); - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); + } else { + if (!hasOwnProp(this, '_weekdaysRegex')) { + this._weekdaysRegex = defaultWeekdaysRegex; + } + return this._weekdaysStrictRegex && isStrict + ? this._weekdaysStrictRegex + : this._weekdaysRegex; + } + } + + function weekdaysShortRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysShortRegex')) { + this._weekdaysShortRegex = defaultWeekdaysShortRegex; + } + return this._weekdaysShortStrictRegex && isStrict + ? this._weekdaysShortStrictRegex + : this._weekdaysShortRegex; + } + } + + function weekdaysMinRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysMinRegex')) { + this._weekdaysMinRegex = defaultWeekdaysMinRegex; + } + return this._weekdaysMinStrictRegex && isStrict + ? this._weekdaysMinStrictRegex + : this._weekdaysMinRegex; + } + } + + function computeWeekdaysParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var minPieces = [], + shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom, + minp, + shortp, + longp; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, 1]).day(i); + minp = regexEscape(this.weekdaysMin(mom, '')); + shortp = regexEscape(this.weekdaysShort(mom, '')); + longp = regexEscape(this.weekdays(mom, '')); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + // Sorting makes sure if one weekday (or abbr) is a prefix of another it + // will match the longer piece. + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); - return arSa; + this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; -}))); + this._weekdaysStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._weekdaysShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + this._weekdaysMinStrictRegex = new RegExp( + '^(' + minPieces.join('|') + ')', + 'i' + ); + } + // FORMATTING -/***/ }), + function hFormat() { + return this.hours() % 12 || 12; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-tn.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-tn.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function kFormat() { + return this.hours() || 24; + } -//! moment.js locale configuration -//! locale : Arabic (Tunisia) [ar-tn] -//! author : Nader Toukabri : https://github.com/naderio + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, hFormat); + addFormatToken('k', ['kk', 2], 0, kFormat); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); + }); - //! moment.js locale configuration + addFormatToken('hmmss', 0, 0, function () { + return ( + '' + + hFormat.apply(this) + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); + }); - var arTn = moment.defineLocale('ar-tn', { - months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( - '_' - ), - monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( - '_' - ), - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'في %s', - past: 'منذ %s', - s: 'ثوان', - ss: '%d ثانية', - m: 'دقيقة', - mm: '%d دقائق', - h: 'ساعة', - hh: '%d ساعات', - d: 'يوم', - dd: '%d أيام', - M: 'شهر', - MM: '%d أشهر', - y: 'سنة', - yy: '%d سنوات', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, + addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); }); - return arTn; + addFormatToken('Hmmss', 0, 0, function () { + return ( + '' + + this.hours() + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); + }); -}))); + function meridiem(token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem( + this.hours(), + this.minutes(), + lowercase + ); + }); + } + meridiem('a', true); + meridiem('A', false); -/***/ }), + // ALIASES -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + addUnitAlias('hour', 'h'); -//! moment.js locale configuration -//! locale : Arabic [ar] -//! author : Abdel Said: https://github.com/abdelsaid -//! author : Ahmed Elkhatib -//! author : forabi https://github.com/forabi + // PRIORITY + addUnitPriority('hour', 13); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // PARSING - //! moment.js locale configuration + function matchMeridiem(isStrict, locale) { + return locale._meridiemParse; + } - var symbolMap = { - 1: '١', - 2: '٢', - 3: '٣', - 4: '٤', - 5: '٥', - 6: '٦', - 7: '٧', - 8: '٨', - 9: '٩', - 0: '٠', - }, - numberMap = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0', - }, - pluralForm = function (n) { - return n === 0 - ? 0 - : n === 1 - ? 1 - : n === 2 - ? 2 - : n % 100 >= 3 && n % 100 <= 10 - ? 3 - : n % 100 >= 11 - ? 4 - : 5; - }, - plurals = { - s: [ - 'أقل من ثانية', - 'ثانية واحدة', - ['ثانيتان', 'ثانيتين'], - '%d ثوان', - '%d ثانية', - '%d ثانية', - ], - m: [ - 'أقل من دقيقة', - 'دقيقة واحدة', - ['دقيقتان', 'دقيقتين'], - '%d دقائق', - '%d دقيقة', - '%d دقيقة', - ], - h: [ - 'أقل من ساعة', - 'ساعة واحدة', - ['ساعتان', 'ساعتين'], - '%d ساعات', - '%d ساعة', - '%d ساعة', - ], - d: [ - 'أقل من يوم', - 'يوم واحد', - ['يومان', 'يومين'], - '%d أيام', - '%d يومًا', - '%d يوم', - ], - M: [ - 'أقل من شهر', - 'شهر واحد', - ['شهران', 'شهرين'], - '%d أشهر', - '%d شهرا', - '%d شهر', - ], - y: [ - 'أقل من عام', - 'عام واحد', - ['عامان', 'عامين'], - '%d أعوام', - '%d عامًا', - '%d عام', - ], - }, - pluralize = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm(number), - str = plurals[u][pluralForm(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; - }, - months = [ - 'يناير', - 'فبراير', - 'مارس', - 'أبريل', - 'مايو', - 'يونيو', - 'يوليو', - 'أغسطس', - 'سبتمبر', - 'أكتوبر', - 'نوفمبر', - 'ديسمبر', - ]; + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('k', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + addRegexToken('kk', match1to2, match2); - var ar = moment.defineLocale('ar', { - months: months, - monthsShort: months, - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'D/\u200FM/\u200FYYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ص|م/, - isPM: function (input) { - return 'م' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar: { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'بعد %s', - past: 'منذ %s', - s: pluralize('s'), - ss: pluralize('s'), - m: pluralize('m'), - mm: pluralize('m'), - h: pluralize('h'), - hh: pluralize('h'), - d: pluralize('d'), - dd: pluralize('d'), - M: pluralize('M'), - MM: pluralize('M'), - y: pluralize('y'), - yy: pluralize('y'), - }, - preparse: function (string) { - return string - .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap[match]; - }) - .replace(/،/g, ','); - }, - postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap[match]; - }) - .replace(/,/g, '،'); - }, - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, + addRegexToken('hmm', match3to4); + addRegexToken('hmmss', match5to6); + addRegexToken('Hmm', match3to4); + addRegexToken('Hmmss', match5to6); + + addParseToken(['H', 'HH'], HOUR); + addParseToken(['k', 'kk'], function (input, array, config) { + var kInput = toInt(input); + array[HOUR] = kInput === 24 ? 0 : kInput; + }); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + }); + addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); }); - return ar; + // LOCALES -}))); + function localeIsPM(input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return (input + '').toLowerCase().charAt(0) === 'p'; + } + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, + // Setting the hour should keep the time, because the user explicitly + // specified which hour they want. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + getSetHour = makeGetSet('Hours', true); -/***/ }), + function localeMeridiem(hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/az.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/az.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + var baseConfig = { + calendar: defaultCalendar, + longDateFormat: defaultLongDateFormat, + invalidDate: defaultInvalidDate, + ordinal: defaultOrdinal, + dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, + relativeTime: defaultRelativeTime, -//! moment.js locale configuration -//! locale : Azerbaijani [az] -//! author : topchiyev : https://github.com/topchiyev + months: defaultLocaleMonths, + monthsShort: defaultLocaleMonthsShort, -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + week: defaultLocaleWeek, - //! moment.js locale configuration + weekdays: defaultLocaleWeekdays, + weekdaysMin: defaultLocaleWeekdaysMin, + weekdaysShort: defaultLocaleWeekdaysShort, - var suffixes = { - 1: '-inci', - 5: '-inci', - 8: '-inci', - 70: '-inci', - 80: '-inci', - 2: '-nci', - 7: '-nci', - 20: '-nci', - 50: '-nci', - 3: '-üncü', - 4: '-üncü', - 100: '-üncü', - 6: '-ncı', - 9: '-uncu', - 10: '-uncu', - 30: '-uncu', - 60: '-ıncı', - 90: '-ıncı', + meridiemParse: defaultLocaleMeridiemParse, }; - var az = moment.defineLocale('az', { - months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( - '_' - ), - monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), - weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split( - '_' - ), - weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), - weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[bugün saat] LT', - nextDay: '[sabah saat] LT', - nextWeek: '[gələn həftə] dddd [saat] LT', - lastDay: '[dünən] LT', - lastWeek: '[keçən həftə] dddd [saat] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s sonra', - past: '%s əvvəl', - s: 'bir neçə saniyə', - ss: '%d saniyə', - m: 'bir dəqiqə', - mm: '%d dəqiqə', - h: 'bir saat', - hh: '%d saat', - d: 'bir gün', - dd: '%d gün', - M: 'bir ay', - MM: '%d ay', - y: 'bir il', - yy: '%d il', - }, - meridiemParse: /gecə|səhər|gündüz|axşam/, - isPM: function (input) { - return /^(gündüz|axşam)$/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'gecə'; - } else if (hour < 12) { - return 'səhər'; - } else if (hour < 17) { - return 'gündüz'; - } else { - return 'axşam'; + // internal storage for locale config files + var locales = {}, + localeFamilies = {}, + globalLocale; + + function commonPrefix(arr1, arr2) { + var i, + minl = Math.min(arr1.length, arr2.length); + for (i = 0; i < minl; i += 1) { + if (arr1[i] !== arr2[i]) { + return i; } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, - ordinal: function (number) { - if (number === 0) { - // special case for zero - return number + '-ıncı'; + } + return minl; + } + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, + j, + next, + locale, + split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if ( + next && + next.length >= j && + commonPrefix(split, next) >= j - 1 + ) { + //the next array item is better than a shallower substring of this one + break; + } + j--; } - var a = number % 10, - b = (number % 100) - a, - c = number >= 100 ? 100 : null; - return number + (suffixes[a] || suffixes[b] || suffixes[c]); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); + i++; + } + return globalLocale; + } - return az; + function isLocaleNameSane(name) { + // Prevent names that look like filesystem paths, i.e contain '/' or '\' + return name.match('^[^/\\\\]*$') != null; + } -}))); + function loadLocale(name) { + var oldLocale = null, + aliasedRequire; + // TODO: Find a better way to register and load all the locales in Node + if ( + locales[name] === undefined && + "object" !== 'undefined' && + module && + module.exports && + isLocaleNameSane(name) + ) { + try { + oldLocale = globalLocale._abbr; + aliasedRequire = undefined; + __nested_webpack_require_1078559__("./build/cht-core-4-6/api/node_modules/moment/locale sync recursive ^\\.\\/.*$")("./" + name); + getSetGlobalLocale(oldLocale); + } catch (e) { + // mark as not found to avoid repeating expensive file require call causing high CPU + // when trying to find en-US, en_US, en-us for every format call + locales[name] = null; // null means not found + } + } + return locales[name]; + } + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function getSetGlobalLocale(key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = getLocale(key); + } else { + data = defineLocale(key, values); + } -/***/ }), + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } else { + if (typeof console !== 'undefined' && console.warn) { + //warn user if arguments are passed but the locale could not be set + console.warn( + 'Locale ' + key + ' not found. Did you forget to load it?' + ); + } + } + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/be.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/be.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + return globalLocale._abbr; + } -//! moment.js locale configuration -//! locale : Belarusian [be] -//! author : Dmitry Demidov : https://github.com/demidov91 -//! author: Praleska: http://praleska.pro/ -//! Author : Menelion Elensúle : https://github.com/Oire + function defineLocale(name, config) { + if (config !== null) { + var locale, + parentConfig = baseConfig; + config.abbr = name; + if (locales[name] != null) { + deprecateSimple( + 'defineLocaleOverride', + 'use moment.updateLocale(localeName, config) to change ' + + 'an existing locale. moment.defineLocale(localeName, ' + + 'config) should only be used for creating a new locale ' + + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.' + ); + parentConfig = locales[name]._config; + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + parentConfig = locales[config.parentLocale]._config; + } else { + locale = loadLocale(config.parentLocale); + if (locale != null) { + parentConfig = locale._config; + } else { + if (!localeFamilies[config.parentLocale]) { + localeFamilies[config.parentLocale] = []; + } + localeFamilies[config.parentLocale].push({ + name: name, + config: config, + }); + return null; + } + } + } + locales[name] = new Locale(mergeConfigs(parentConfig, config)); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + if (localeFamilies[name]) { + localeFamilies[name].forEach(function (x) { + defineLocale(x.name, x.config); + }); + } - //! moment.js locale configuration + // backwards compat for now: also set the locale + // make sure we set the locale AFTER all child locales have been + // created, so we won't end up with the child locale set. + getSetGlobalLocale(name); - function plural(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 - ? forms[0] - : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) - ? forms[1] - : forms[2]; - } - function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', - mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін', - hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін', - dd: 'дзень_дні_дзён', - MM: 'месяц_месяцы_месяцаў', - yy: 'год_гады_гадоў', - }; - if (key === 'm') { - return withoutSuffix ? 'хвіліна' : 'хвіліну'; - } else if (key === 'h') { - return withoutSuffix ? 'гадзіна' : 'гадзіну'; + return locales[name]; } else { - return number + ' ' + plural(format[key], +number); + // useful for testing + delete locales[name]; + return null; } } - var be = moment.defineLocale('be', { - months: { - format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split( - '_' - ), - standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split( - '_' - ), - }, - monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split( - '_' - ), - weekdays: { - format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split( - '_' - ), - standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split( - '_' - ), - isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/, - }, - weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), - weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY г.', - LLL: 'D MMMM YYYY г., HH:mm', - LLLL: 'dddd, D MMMM YYYY г., HH:mm', - }, - calendar: { - sameDay: '[Сёння ў] LT', - nextDay: '[Заўтра ў] LT', - lastDay: '[Учора ў] LT', - nextWeek: function () { - return '[У] dddd [ў] LT'; - }, - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 5: - case 6: - return '[У мінулую] dddd [ў] LT'; - case 1: - case 2: - case 4: - return '[У мінулы] dddd [ў] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'праз %s', - past: '%s таму', - s: 'некалькі секунд', - m: relativeTimeWithPlural, - mm: relativeTimeWithPlural, - h: relativeTimeWithPlural, - hh: relativeTimeWithPlural, - d: 'дзень', - dd: relativeTimeWithPlural, - M: 'месяц', - MM: relativeTimeWithPlural, - y: 'год', - yy: relativeTimeWithPlural, - }, - meridiemParse: /ночы|раніцы|дня|вечара/, - isPM: function (input) { - return /^(дня|вечара)$/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'ночы'; - } else if (hour < 12) { - return 'раніцы'; - } else if (hour < 17) { - return 'дня'; + function updateLocale(name, config) { + if (config != null) { + var locale, + tmpLocale, + parentConfig = baseConfig; + + if (locales[name] != null && locales[name].parentLocale != null) { + // Update existing child locale in-place to avoid memory-leaks + locales[name].set(mergeConfigs(locales[name]._config, config)); } else { - return 'вечара'; + // MERGE + tmpLocale = loadLocale(name); + if (tmpLocale != null) { + parentConfig = tmpLocale._config; + } + config = mergeConfigs(parentConfig, config); + if (tmpLocale == null) { + // updateLocale is called for creating a new locale + // Set abbr so it will have a name (getters return + // undefined otherwise). + config.abbr = name; + } + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - case 'w': - case 'W': - return (number % 10 === 2 || number % 10 === 3) && - number % 100 !== 12 && - number % 100 !== 13 - ? number + '-і' - : number + '-ы'; - case 'D': - return number + '-га'; - default: - return number; + + // backwards compat for now: also set the locale + getSetGlobalLocale(name); + } else { + // pass null for config to unupdate, useful for tests + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + if (name === getSetGlobalLocale()) { + getSetGlobalLocale(name); + } + } else if (locales[name] != null) { + delete locales[name]; + } } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); + } + return locales[name]; + } - return be; + // returns locale data + function getLocale(key) { + var locale; -}))); + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + if (!key) { + return globalLocale; + } -/***/ }), + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bg.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bg.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + return chooseLocale(key); + } -//! moment.js locale configuration -//! locale : Bulgarian [bg] -//! author : Krasen Borisov : https://github.com/kraz + function listLocales() { + return keys(locales); + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function checkOverflow(m) { + var overflow, + a = m._a; - //! moment.js locale configuration + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 + ? MONTH + : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) + ? DATE + : a[HOUR] < 0 || + a[HOUR] > 24 || + (a[HOUR] === 24 && + (a[MINUTE] !== 0 || + a[SECOND] !== 0 || + a[MILLISECOND] !== 0)) + ? HOUR + : a[MINUTE] < 0 || a[MINUTE] > 59 + ? MINUTE + : a[SECOND] < 0 || a[SECOND] > 59 + ? SECOND + : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 + ? MILLISECOND + : -1; - var bg = moment.defineLocale('bg', { - months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split( - '_' - ), - monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), - weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split( - '_' - ), - weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'), - weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'D.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY H:mm', - LLLL: 'dddd, D MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[Днес в] LT', - nextDay: '[Утре в] LT', - nextWeek: 'dddd [в] LT', - lastDay: '[Вчера в] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 6: - return '[Миналата] dddd [в] LT'; - case 1: - case 2: - case 4: - case 5: - return '[Миналия] dddd [в] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'след %s', - past: 'преди %s', - s: 'няколко секунди', - ss: '%d секунди', - m: 'минута', - mm: '%d минути', - h: 'час', - hh: '%d часа', - d: 'ден', - dd: '%d дена', - w: 'седмица', - ww: '%d седмици', - M: 'месец', - MM: '%d месеца', - y: 'година', - yy: '%d години', - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, - ordinal: function (number) { - var lastDigit = number % 10, - last2Digits = number % 100; - if (number === 0) { - return number + '-ев'; - } else if (last2Digits === 0) { - return number + '-ен'; - } else if (last2Digits > 10 && last2Digits < 20) { - return number + '-ти'; - } else if (lastDigit === 1) { - return number + '-ви'; - } else if (lastDigit === 2) { - return number + '-ри'; - } else if (lastDigit === 7 || lastDigit === 8) { - return number + '-ми'; - } else { - return number + '-ти'; + if ( + getParsingFlags(m)._overflowDayOfYear && + (overflow < YEAR || overflow > DATE) + ) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - return bg; - -}))); - -/***/ }), + getParsingFlags(m).overflow = overflow; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bm.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bm.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + return m; + } -//! moment.js locale configuration -//! locale : Bambara [bm] -//! author : Estelle Comment : https://github.com/estellecomment + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + var extendedIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + basicIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, + isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/], + ['YYYYMM', /\d{6}/, false], + ['YYYY', /\d{4}/, false], + ], + // iso time formats and regexes + isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/], + ], + aspNetJsonRegex = /^\/?Date\((-?\d+)/i, + // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 + rfc2822 = + /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, + obsOffsets = { + UT: 0, + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60, + }; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // date from iso format + function configFromISO(config) { + var i, + l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, + dateFormat, + timeFormat, + tzFormat, + isoDatesLen = isoDates.length, + isoTimesLen = isoTimes.length; - //! moment.js locale configuration + if (match) { + getParsingFlags(config).iso = true; + for (i = 0, l = isoDatesLen; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimesLen; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } - var bm = moment.defineLocale('bm', { - months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split( - '_' - ), - monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'), - weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), - weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'), - weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'MMMM [tile] D [san] YYYY', - LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', - LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', - }, - calendar: { - sameDay: '[Bi lɛrɛ] LT', - nextDay: '[Sini lɛrɛ] LT', - nextWeek: 'dddd [don lɛrɛ] LT', - lastDay: '[Kunu lɛrɛ] LT', - lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s kɔnɔ', - past: 'a bɛ %s bɔ', - s: 'sanga dama dama', - ss: 'sekondi %d', - m: 'miniti kelen', - mm: 'miniti %d', - h: 'lɛrɛ kelen', - hh: 'lɛrɛ %d', - d: 'tile kelen', - dd: 'tile %d', - M: 'kalo kelen', - MM: 'kalo %d', - y: 'san kelen', - yy: 'san %d', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + function extractFromRFC2822Strings( + yearStr, + monthStr, + dayStr, + hourStr, + minuteStr, + secondStr + ) { + var result = [ + untruncateYear(yearStr), + defaultLocaleMonthsShort.indexOf(monthStr), + parseInt(dayStr, 10), + parseInt(hourStr, 10), + parseInt(minuteStr, 10), + ]; - return bm; + if (secondStr) { + result.push(parseInt(secondStr, 10)); + } -}))); + return result; + } + function untruncateYear(yearStr) { + var year = parseInt(yearStr, 10); + if (year <= 49) { + return 2000 + year; + } else if (year <= 999) { + return 1900 + year; + } + return year; + } -/***/ }), + function preprocessRFC2822(s) { + // Remove comments and folding whitespace and replace multiple-spaces with a single space + return s + .replace(/\([^()]*\)|[\n\t]/g, ' ') + .replace(/(\s\s+)/g, ' ') + .replace(/^\s\s*/, '') + .replace(/\s\s*$/, ''); + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bn-bd.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bn-bd.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function checkWeekday(weekdayStr, parsedInput, config) { + if (weekdayStr) { + // TODO: Replace the vanilla JS Date object with an independent day-of-week check. + var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), + weekdayActual = new Date( + parsedInput[0], + parsedInput[1], + parsedInput[2] + ).getDay(); + if (weekdayProvided !== weekdayActual) { + getParsingFlags(config).weekdayMismatch = true; + config._isValid = false; + return false; + } + } + return true; + } -//! moment.js locale configuration -//! locale : Bengali (Bangladesh) [bn-bd] -//! author : Asraf Hossain Patoary : https://github.com/ashwoolford + function calculateOffset(obsOffset, militaryOffset, numOffset) { + if (obsOffset) { + return obsOffsets[obsOffset]; + } else if (militaryOffset) { + // the only allowed military tz is Z + return 0; + } else { + var hm = parseInt(numOffset, 10), + m = hm % 100, + h = (hm - m) / 100; + return h * 60 + m; + } + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // date and time from ref 2822 format + function configFromRFC2822(config) { + var match = rfc2822.exec(preprocessRFC2822(config._i)), + parsedArray; + if (match) { + parsedArray = extractFromRFC2822Strings( + match[4], + match[3], + match[2], + match[5], + match[6], + match[7] + ); + if (!checkWeekday(match[1], parsedArray, config)) { + return; + } - //! moment.js locale configuration + config._a = parsedArray; + config._tzm = calculateOffset(match[8], match[9], match[10]); - var symbolMap = { - 1: '১', - 2: '২', - 3: '৩', - 4: '৪', - 5: '৫', - 6: '৬', - 7: '৭', - 8: '৮', - 9: '৯', - 0: '০', - }, - numberMap = { - '১': '1', - '২': '2', - '৩': '3', - '৪': '4', - '৫': '5', - '৬': '6', - '৭': '7', - '৮': '8', - '৯': '9', - '০': '0', - }; + config._d = createUTCDate.apply(null, config._a); + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); - var bnBd = moment.defineLocale('bn-bd', { - months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( - '_' - ), - monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( - '_' - ), - weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( - '_' - ), - weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), - weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), - longDateFormat: { - LT: 'A h:mm সময়', - LTS: 'A h:mm:ss সময়', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm সময়', - LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', - }, - calendar: { - sameDay: '[আজ] LT', - nextDay: '[আগামীকাল] LT', - nextWeek: 'dddd, LT', - lastDay: '[গতকাল] LT', - lastWeek: '[গত] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s পরে', - past: '%s আগে', - s: 'কয়েক সেকেন্ড', - ss: '%d সেকেন্ড', - m: 'এক মিনিট', - mm: '%d মিনিট', - h: 'এক ঘন্টা', - hh: '%d ঘন্টা', - d: 'এক দিন', - dd: '%d দিন', - M: 'এক মাস', - MM: '%d মাস', - y: 'এক বছর', - yy: '%d বছর', - }, - preparse: function (string) { - return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, + getParsingFlags(config).rfc2822 = true; + } else { + config._isValid = false; + } + } - meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'রাত') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ভোর') { - return hour; - } else if (meridiem === 'সকাল') { - return hour; - } else if (meridiem === 'দুপুর') { - return hour >= 3 ? hour : hour + 12; - } else if (meridiem === 'বিকাল') { - return hour + 12; - } else if (meridiem === 'সন্ধ্যা') { - return hour + 12; - } - }, + // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'রাত'; - } else if (hour < 6) { - return 'ভোর'; - } else if (hour < 12) { - return 'সকাল'; - } else if (hour < 15) { - return 'দুপুর'; - } else if (hour < 18) { - return 'বিকাল'; - } else if (hour < 20) { - return 'সন্ধ্যা'; - } else { - return 'রাত'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } - return bnBd; + configFromRFC2822(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } -}))); + if (config._strict) { + config._isValid = false; + } else { + // Final attempt, use Input Fallback + hooks.createFromInputFallback(config); + } + } + hooks.createFromInputFallback = deprecate( + 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); -/***/ }), + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bn.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bn.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(hooks.now()); + if (config._useUTC) { + return [ + nowValue.getUTCFullYear(), + nowValue.getUTCMonth(), + nowValue.getUTCDate(), + ]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; + } -//! moment.js locale configuration -//! locale : Bengali [bn] -//! author : Kaushik Gandhi : https://github.com/kaushikgandhi + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray(config) { + var i, + date, + input = [], + currentDate, + expectedWeekday, + yearToUse; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + if (config._d) { + return; + } - //! moment.js locale configuration + currentDate = currentDateArray(config); - var symbolMap = { - 1: '১', - 2: '২', - 3: '৩', - 4: '৪', - 5: '৫', - 6: '৬', - 7: '৭', - 8: '৮', - 9: '৯', - 0: '০', - }, - numberMap = { - '১': '1', - '২': '2', - '৩': '3', - '৪': '4', - '৫': '5', - '৬': '6', - '৭': '7', - '৮': '8', - '৯': '9', - '০': '0', - }; + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } - var bn = moment.defineLocale('bn', { - months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( - '_' - ), - monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( - '_' - ), - weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( - '_' - ), - weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), - weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), - longDateFormat: { - LT: 'A h:mm সময়', - LTS: 'A h:mm:ss সময়', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm সময়', - LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', - }, - calendar: { - sameDay: '[আজ] LT', - nextDay: '[আগামীকাল] LT', - nextWeek: 'dddd, LT', - lastDay: '[গতকাল] LT', - lastWeek: '[গত] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s পরে', - past: '%s আগে', - s: 'কয়েক সেকেন্ড', - ss: '%d সেকেন্ড', - m: 'এক মিনিট', - mm: '%d মিনিট', - h: 'এক ঘন্টা', - hh: '%d ঘন্টা', - d: 'এক দিন', - dd: '%d দিন', - M: 'এক মাস', - MM: '%d মাস', - y: 'এক বছর', - yy: '%d বছর', - }, - preparse: function (string) { - return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ( - (meridiem === 'রাত' && hour >= 4) || - (meridiem === 'দুপুর' && hour < 5) || - meridiem === 'বিকাল' - ) { - return hour + 12; - } else { - return hour; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'রাত'; - } else if (hour < 10) { - return 'সকাল'; - } else if (hour < 17) { - return 'দুপুর'; - } else if (hour < 20) { - return 'বিকাল'; - } else { - return 'রাত'; + //if the day of the year is set, figure out what it is + if (config._dayOfYear != null) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if ( + config._dayOfYear > daysInYear(yearToUse) || + config._dayOfYear === 0 + ) { + getParsingFlags(config)._overflowDayOfYear = true; } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); - return bn; + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } -}))); + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = + config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i]; + } -/***/ }), + // Check for 24:00:00.000 + if ( + config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0 + ) { + config._nextDay = true; + config._a[HOUR] = 0; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bo.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bo.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + config._d = (config._useUTC ? createUTCDate : createDate).apply( + null, + input + ); + expectedWeekday = config._useUTC + ? config._d.getUTCDay() + : config._d.getDay(); -//! moment.js locale configuration -//! locale : Tibetan [bo] -//! author : Thupten N. Chakrishar : https://github.com/vajradog + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + if (config._nextDay) { + config._a[HOUR] = 24; + } - //! moment.js locale configuration + // check for mismatching day of week + if ( + config._w && + typeof config._w.d !== 'undefined' && + config._w.d !== expectedWeekday + ) { + getParsingFlags(config).weekdayMismatch = true; + } + } - var symbolMap = { - 1: '༡', - 2: '༢', - 3: '༣', - 4: '༤', - 5: '༥', - 6: '༦', - 7: '༧', - 8: '༨', - 9: '༩', - 0: '༠', - }, - numberMap = { - '༡': '1', - '༢': '2', - '༣': '3', - '༤': '4', - '༥': '5', - '༦': '6', - '༧': '7', - '༨': '8', - '༩': '9', - '༠': '0', - }; + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; - var bo = moment.defineLocale('bo', { - months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split( - '_' - ), - monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split( - '_' - ), - monthsShortRegex: /^(ཟླ་\d{1,2})/, - monthsParseExact: true, - weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split( - '_' - ), - weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split( - '_' - ), - weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'), - longDateFormat: { - LT: 'A h:mm', - LTS: 'A h:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm', - LLLL: 'dddd, D MMMM YYYY, A h:mm', - }, - calendar: { - sameDay: '[དི་རིང] LT', - nextDay: '[སང་ཉིན] LT', - nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT', - lastDay: '[ཁ་སང] LT', - lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s ལ་', - past: '%s སྔན་ལ', - s: 'ལམ་སང', - ss: '%d སྐར་ཆ།', - m: 'སྐར་མ་གཅིག', - mm: '%d སྐར་མ', - h: 'ཆུ་ཚོད་གཅིག', - hh: '%d ཆུ་ཚོད', - d: 'ཉིན་གཅིག', - dd: '%d ཉིན་', - M: 'ཟླ་བ་གཅིག', - MM: '%d ཟླ་བ', - y: 'ལོ་གཅིག', - yy: '%d ལོ', - }, - preparse: function (string) { - return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ( - (meridiem === 'མཚན་མོ' && hour >= 4) || - (meridiem === 'ཉིན་གུང' && hour < 5) || - meridiem === 'དགོང་དག' - ) { - return hour + 12; - } else { - return hour; + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults( + w.GG, + config._a[YEAR], + weekOfYear(createLocal(), 1, 4).year + ); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'མཚན་མོ'; - } else if (hour < 10) { - return 'ཞོགས་ཀས'; - } else if (hour < 17) { - return 'ཉིན་གུང'; - } else if (hour < 20) { - return 'དགོང་དག'; + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + curWeek = weekOfYear(createLocal(), dow, doy); + + weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); + + // Default to current week. + week = defaults(w.w, curWeek.week); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from beginning of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } } else { - return 'མཚན་མོ'; + // default to beginning of week + weekday = dow; } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + } - return bo; + // constant that refers to the ISO standard + hooks.ISO_8601 = function () {}; -}))); + // constant that refers to the RFC 2822 form + hooks.RFC_2822 = function () {}; + + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === hooks.ISO_8601) { + configFromISO(config); + return; + } + if (config._f === hooks.RFC_2822) { + configFromRFC2822(config); + return; + } + config._a = []; + getParsingFlags(config).empty = true; + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, + parsedInput, + tokens, + token, + skipped, + stringLength = string.length, + totalParsedInputLength = 0, + era, + tokenLen; -/***/ }), + tokens = + expandFormat(config._f, config._locale).match(formattingTokens) || []; + tokenLen = tokens.length; + for (i = 0; i < tokenLen; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || + [])[0]; + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice( + string.indexOf(parsedInput) + parsedInput.length + ); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/br.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/br.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = + stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } -//! moment.js locale configuration -//! locale : Breton [br] -//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou + // clear _12h flag if hour is <= 12 + if ( + config._a[HOUR] <= 12 && + getParsingFlags(config).bigHour === true && + config._a[HOUR] > 0 + ) { + getParsingFlags(config).bigHour = undefined; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + getParsingFlags(config).parsedDateParts = config._a.slice(0); + getParsingFlags(config).meridiem = config._meridiem; + // handle meridiem + config._a[HOUR] = meridiemFixWrap( + config._locale, + config._a[HOUR], + config._meridiem + ); - //! moment.js locale configuration + // handle era + era = getParsingFlags(config).era; + if (era !== null) { + config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); + } - function relativeTimeWithMutation(number, withoutSuffix, key) { - var format = { - mm: 'munutenn', - MM: 'miz', - dd: 'devezh', - }; - return number + ' ' + mutation(format[key], number); + configFromArray(config); + checkOverflow(config); } - function specialMutationForYears(number) { - switch (lastNumber(number)) { - case 1: - case 3: - case 4: - case 5: - case 9: - return number + ' bloaz'; - default: - return number + ' vloaz'; + + function meridiemFixWrap(locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; } - } - function lastNumber(number) { - if (number > 9) { - return lastNumber(number % 10); + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; } - return number; } - function mutation(text, number) { - if (number === 2) { - return softMutation(text); + + // date from string and array of format strings + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + scoreToBeat, + i, + currentScore, + validFormatFound, + bestFormatIsValid = false, + configfLen = config._f.length; + + if (configfLen === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; } - return text; + + for (i = 0; i < configfLen; i++) { + currentScore = 0; + validFormatFound = false; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (isValid(tempConfig)) { + validFormatFound = true; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (!bestFormatIsValid) { + if ( + scoreToBeat == null || + currentScore < scoreToBeat || + validFormatFound + ) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + if (validFormatFound) { + bestFormatIsValid = true; + } + } + } else { + if (currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + } + + extend(config, bestMoment || tempConfig); } - function softMutation(text) { - var mutationTable = { - m: 'v', - b: 'v', - d: 'z', - }; - if (mutationTable[text.charAt(0)] === undefined) { - return text; + + function configFromObject(config) { + if (config._d) { + return; } - return mutationTable[text.charAt(0)] + text.substring(1); + + var i = normalizeObjectUnits(config._i), + dayOrDate = i.day === undefined ? i.date : i.day; + config._a = map( + [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], + function (obj) { + return obj && parseInt(obj, 10); + } + ); + + configFromArray(config); } - var monthsParse = [ - /^gen/i, - /^c[ʼ\']hwe/i, - /^meu/i, - /^ebr/i, - /^mae/i, - /^(mez|eve)/i, - /^gou/i, - /^eos/i, - /^gwe/i, - /^her/i, - /^du/i, - /^ker/i, - ], - monthsRegex = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, - monthsStrictRegex = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, - monthsShortStrictRegex = /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, - fullWeekdaysParse = [ - /^sul/i, - /^lun/i, - /^meurzh/i, - /^merc[ʼ\']her/i, - /^yaou/i, - /^gwener/i, - /^sadorn/i, - ], - shortWeekdaysParse = [ - /^Sul/i, - /^Lun/i, - /^Meu/i, - /^Mer/i, - /^Yao/i, - /^Gwe/i, - /^Sad/i, - ], - minWeekdaysParse = [ - /^Su/i, - /^Lu/i, - /^Me([^r]|$)/i, - /^Mer/i, - /^Ya/i, - /^Gw/i, - /^Sa/i, - ]; + function createFromConfig(config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; + } - var br = moment.defineLocale('br', { - months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( - '_' - ), - monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), - weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'), - weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), - weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), - weekdaysParse: minWeekdaysParse, - fullWeekdaysParse: fullWeekdaysParse, - shortWeekdaysParse: shortWeekdaysParse, - minWeekdaysParse: minWeekdaysParse, + function prepareConfig(config) { + var input = config._i, + format = config._f; - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: monthsStrictRegex, - monthsShortStrictRegex: monthsShortStrictRegex, - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, + config._locale = config._locale || getLocale(config._l); - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [a viz] MMMM YYYY', - LLL: 'D [a viz] MMMM YYYY HH:mm', - LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Hiziv da] LT', - nextDay: '[Warcʼhoazh da] LT', - nextWeek: 'dddd [da] LT', - lastDay: '[Decʼh da] LT', - lastWeek: 'dddd [paset da] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'a-benn %s', - past: '%s ʼzo', - s: 'un nebeud segondennoù', - ss: '%d eilenn', - m: 'ur vunutenn', - mm: relativeTimeWithMutation, - h: 'un eur', - hh: '%d eur', - d: 'un devezh', - dd: relativeTimeWithMutation, - M: 'ur miz', - MM: relativeTimeWithMutation, - y: 'ur bloaz', - yy: specialMutationForYears, - }, - dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, - ordinal: function (number) { - var output = number === 1 ? 'añ' : 'vet'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn - isPM: function (token) { - return token === 'g.m.'; - }, - meridiem: function (hour, minute, isLower) { - return hour < 12 ? 'a.m.' : 'g.m.'; - }, - }); + if (input === null || (format === undefined && input === '')) { + return createInvalid({ nullInput: true }); + } - return br; + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } -}))); + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isDate(input)) { + config._d = input; + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else { + configFromInput(config); + } + if (!isValid(config)) { + config._d = null; + } -/***/ }), + return config; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bs.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bs.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function configFromInput(config) { + var input = config._i; + if (isUndefined(input)) { + config._d = new Date(hooks.now()); + } else if (isDate(input)) { + config._d = new Date(input.valueOf()); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (isObject(input)) { + configFromObject(config); + } else if (isNumber(input)) { + // from milliseconds + config._d = new Date(input); + } else { + hooks.createFromInputFallback(config); + } + } -//! moment.js locale configuration -//! locale : Bosnian [bs] -//! author : Nedim Cholich : https://github.com/frontyard -//! based on (hr) translation by Bojan Marković + function createLocalOrUTC(input, format, locale, strict, isUTC) { + var c = {}; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + if (format === true || format === false) { + strict = format; + format = undefined; + } - //! moment.js locale configuration + if (locale === true || locale === false) { + strict = locale; + locale = undefined; + } - function translate(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'ss': - if (number === 1) { - result += 'sekunda'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sekunde'; - } else { - result += 'sekundi'; - } - return result; - case 'm': - return withoutSuffix ? 'jedna minuta' : 'jedne minute'; - case 'mm': - if (number === 1) { - result += 'minuta'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'minute'; - } else { - result += 'minuta'; - } - return result; - case 'h': - return withoutSuffix ? 'jedan sat' : 'jednog sata'; - case 'hh': - if (number === 1) { - result += 'sat'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sata'; - } else { - result += 'sati'; - } - return result; - case 'dd': - if (number === 1) { - result += 'dan'; - } else { - result += 'dana'; - } - return result; - case 'MM': - if (number === 1) { - result += 'mjesec'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'mjeseca'; + if ( + (isObject(input) && isObjectEmpty(input)) || + (isArray(input) && input.length === 0) + ) { + input = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); + } + + function createLocal(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); + } + + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; } else { - result += 'mjeseci'; + return createInvalid(); } - return result; - case 'yy': - if (number === 1) { - result += 'godina'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'godine'; + } + ), + prototypeMax = deprecate( + 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; } else { - result += 'godina'; + return createInvalid(); } - return result; + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } } + return res; } - var bs = moment.defineLocale('bs', { - months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split( - '_' - ), - monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( - '_' - ), - weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sutra u] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[u] [nedjelju] [u] LT'; - case 3: - return '[u] [srijedu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - }, - lastDay: '[jučer u] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - return '[prošlu] dddd [u] LT'; - case 6: - return '[prošle] [subote] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[prošli] dddd [u] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: 'prije %s', - s: 'par sekundi', - ss: translate, - m: translate, - mm: translate, - h: translate, - hh: translate, - d: 'dan', - dd: translate, - M: 'mjesec', - MM: translate, - y: 'godinu', - yy: translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); + // TODO: Use [].sort instead? + function min() { + var args = [].slice.call(arguments, 0); - return bs; + return pickBy('isBefore', args); + } -}))); + function max() { + var args = [].slice.call(arguments, 0); + return pickBy('isAfter', args); + } -/***/ }), + var now = function () { + return Date.now ? Date.now() : +new Date(); + }; -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ca.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ca.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + var ordering = [ + 'year', + 'quarter', + 'month', + 'week', + 'day', + 'hour', + 'minute', + 'second', + 'millisecond', + ]; -//! moment.js locale configuration -//! locale : Catalan [ca] -//! author : Juan G. Hurtado : https://github.com/juanghurtado + function isDurationValid(m) { + var key, + unitHasDecimal = false, + i, + orderLen = ordering.length; + for (key in m) { + if ( + hasOwnProp(m, key) && + !( + indexOf.call(ordering, key) !== -1 && + (m[key] == null || !isNaN(m[key])) + ) + ) { + return false; + } + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + for (i = 0; i < orderLen; ++i) { + if (m[ordering[i]]) { + if (unitHasDecimal) { + return false; // only allow non-integers for smallest unit + } + if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { + unitHasDecimal = true; + } + } + } - //! moment.js locale configuration + return true; + } - var ca = moment.defineLocale('ca', { - months: { - standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( - '_' - ), - format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split( - '_' - ), - isFormat: /D[oD]?(\s)+MMMM/, - }, - monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( - '_' - ), - weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), - weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM [de] YYYY', - ll: 'D MMM YYYY', - LLL: 'D MMMM [de] YYYY [a les] H:mm', - lll: 'D MMM YYYY, H:mm', - LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', - llll: 'ddd D MMM YYYY, H:mm', - }, - calendar: { - sameDay: function () { - return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; - }, - nextDay: function () { - return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; - }, - nextWeek: function () { - return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; - }, - lastDay: function () { - return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; - }, - lastWeek: function () { - return ( - '[el] dddd [passat a ' + - (this.hours() !== 1 ? 'les' : 'la') + - '] LT' - ); - }, - sameElse: 'L', - }, - relativeTime: { - future: "d'aquí %s", - past: 'fa %s', - s: 'uns segons', - ss: '%d segons', - m: 'un minut', - mm: '%d minuts', - h: 'una hora', - hh: '%d hores', - d: 'un dia', - dd: '%d dies', - M: 'un mes', - MM: '%d mesos', - y: 'un any', - yy: '%d anys', - }, - dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, - ordinal: function (number, period) { - var output = - number === 1 - ? 'r' - : number === 2 - ? 'n' - : number === 3 - ? 'r' - : number === 4 - ? 't' - : 'è'; - if (period === 'w' || period === 'W') { - output = 'a'; - } - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + function isValid$1() { + return this._isValid; + } + + function createInvalid$1() { + return createDuration(NaN); + } + + function Duration(duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || normalizedInput.isoWeek || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + this._isValid = isDurationValid(normalizedInput); + + // representation for dateAddRemove + this._milliseconds = + +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + weeks * 7; + // It is impossible to translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + quarters * 3 + years * 12; - return ca; + this._data = {}; -}))); + this._locale = getLocale(); + this._bubble(); + } -/***/ }), + function isDuration(obj) { + return obj instanceof Duration; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cs.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cs.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function absRound(number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); + } + } -//! moment.js locale configuration -//! locale : Czech [cs] -//! author : petrbela : https://github.com/petrbela + // compare two arrays, return the number of differences + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ( + (dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) + ) { + diffs++; + } + } + return diffs + lengthDiff; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // FORMATTING - //! moment.js locale configuration + function offset(token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(), + sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return ( + sign + + zeroFill(~~(offset / 60), 2) + + separator + + zeroFill(~~offset % 60, 2) + ); + }); + } - var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split( - '_' - ), - monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'), - monthsParse = [ - /^led/i, - /^úno/i, - /^bře/i, - /^dub/i, - /^kvě/i, - /^(čvn|červen$|června)/i, - /^(čvc|červenec|července)/i, - /^srp/i, - /^zář/i, - /^říj/i, - /^lis/i, - /^pro/i, - ], - // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. - // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. - monthsRegex = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i; + offset('Z', ':'); + offset('ZZ', ''); - function plural(n) { - return n > 1 && n < 5 && ~~(n / 10) !== 1; - } - function translate(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': // a few seconds / in a few seconds / a few seconds ago - return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami'; - case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'sekundy' : 'sekund'); - } else { - return result + 'sekundami'; - } - case 'm': // a minute / in a minute / a minute ago - return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; - case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'minuty' : 'minut'); - } else { - return result + 'minutami'; - } - case 'h': // an hour / in an hour / an hour ago - return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; - case 'hh': // 9 hours / in 9 hours / 9 hours ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'hodiny' : 'hodin'); - } else { - return result + 'hodinami'; - } - case 'd': // a day / in a day / a day ago - return withoutSuffix || isFuture ? 'den' : 'dnem'; - case 'dd': // 9 days / in 9 days / 9 days ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'dny' : 'dní'); - } else { - return result + 'dny'; - } - case 'M': // a month / in a month / a month ago - return withoutSuffix || isFuture ? 'měsíc' : 'měsícem'; - case 'MM': // 9 months / in 9 months / 9 months ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'měsíce' : 'měsíců'); - } else { - return result + 'měsíci'; - } - case 'y': // a year / in a year / a year ago - return withoutSuffix || isFuture ? 'rok' : 'rokem'; - case 'yy': // 9 years / in 9 years / 9 years ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'roky' : 'let'); - } else { - return result + 'lety'; - } - } - } + // PARSING - var cs = moment.defineLocale('cs', { - months: months, - monthsShort: monthsShort, - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. - // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. - monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i, - monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i, - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'), - weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'), - weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd D. MMMM YYYY H:mm', - l: 'D. M. YYYY', - }, - calendar: { - sameDay: '[dnes v] LT', - nextDay: '[zítra v] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[v neděli v] LT'; - case 1: - case 2: - return '[v] dddd [v] LT'; - case 3: - return '[ve středu v] LT'; - case 4: - return '[ve čtvrtek v] LT'; - case 5: - return '[v pátek v] LT'; - case 6: - return '[v sobotu v] LT'; - } - }, - lastDay: '[včera v] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[minulou neděli v] LT'; - case 1: - case 2: - return '[minulé] dddd [v] LT'; - case 3: - return '[minulou středu v] LT'; - case 4: - case 5: - return '[minulý] dddd [v] LT'; - case 6: - return '[minulou sobotu v] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: 'před %s', - s: translate, - ss: translate, - m: translate, - mm: translate, - h: translate, - hh: translate, - d: translate, - dd: translate, - M: translate, - MM: translate, - y: translate, - yy: translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, + addRegexToken('Z', matchShortOffset); + addRegexToken('ZZ', matchShortOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); }); - return cs; + // HELPERS -}))); + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; + function offsetFromString(matcher, string) { + var matches = (string || '').match(matcher), + chunk, + parts, + minutes; -/***/ }), + if (matches === null) { + return null; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cv.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cv.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + chunk = matches[matches.length - 1] || []; + parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + minutes = +(parts[1] * 60) + toInt(parts[2]); -//! moment.js locale configuration -//! locale : Chuvash [cv] -//! author : Anatoly Mironov : https://github.com/mirontoli + return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = + (isMoment(input) || isDate(input) + ? input.valueOf() + : createLocal(input).valueOf()) - res.valueOf(); + // Use low-level api, because this fn is low-level api. + res._d.setTime(res._d.valueOf() + diff); + hooks.updateOffset(res, false); + return res; + } else { + return createLocal(input).local(); + } + } - //! moment.js locale configuration + function getDateOffset(m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset()); + } - var cv = moment.defineLocale('cv', { - months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split( - '_' - ), - monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), - weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split( - '_' - ), - weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), - weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD-MM-YYYY', - LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', - LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', - LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', - }, - calendar: { - sameDay: '[Паян] LT [сехетре]', - nextDay: '[Ыран] LT [сехетре]', - lastDay: '[Ӗнер] LT [сехетре]', - nextWeek: '[Ҫитес] dddd LT [сехетре]', - lastWeek: '[Иртнӗ] dddd LT [сехетре]', - sameElse: 'L', - }, - relativeTime: { - future: function (output) { - var affix = /сехет$/i.exec(output) - ? 'рен' - : /ҫул$/i.exec(output) - ? 'тан' - : 'ран'; - return output + affix; - }, - past: '%s каялла', - s: 'пӗр-ик ҫеккунт', - ss: '%d ҫеккунт', - m: 'пӗр минут', - mm: '%d минут', - h: 'пӗр сехет', - hh: '%d сехет', - d: 'пӗр кун', - dd: '%d кун', - M: 'пӗр уйӑх', - MM: '%d уйӑх', - y: 'пӗр ҫул', - yy: '%d ҫул', - }, - dayOfMonthOrdinalParse: /\d{1,2}-мӗш/, - ordinal: '%d-мӗш', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); + // HOOKS - return cv; + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + hooks.updateOffset = function () {}; -}))); + // MOMENTS + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset(input, keepLocalTime, keepMinutes) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + if (input === null) { + return this; + } + } else if (Math.abs(input) < 16 && !keepMinutes) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + addSubtract( + this, + createDuration(input - offset, 'm'), + 1, + false + ); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } + } + function getSetZone(input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } -/***/ }), + this.utcOffset(input, keepLocalTime); -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cy.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cy.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + return this; + } else { + return -this.utcOffset(); + } + } -//! moment.js locale configuration -//! locale : Welsh [cy] -//! author : Robert Allen : https://github.com/robgallen -//! author : https://github.com/ryangreaves + function setOffsetToUTC(keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function setOffsetToLocal(keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; - //! moment.js locale configuration + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; + } - var cy = moment.defineLocale('cy', { - months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( - '_' - ), - monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( - '_' - ), - weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( - '_' - ), - weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), - weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), - weekdaysParseExact: true, - // time formats are the same as en-gb - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Heddiw am] LT', - nextDay: '[Yfory am] LT', - nextWeek: 'dddd [am] LT', - lastDay: '[Ddoe am] LT', - lastWeek: 'dddd [diwethaf am] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'mewn %s', - past: '%s yn ôl', - s: 'ychydig eiliadau', - ss: '%d eiliad', - m: 'munud', - mm: '%d munud', - h: 'awr', - hh: '%d awr', - d: 'diwrnod', - dd: '%d diwrnod', - M: 'mis', - MM: '%d mis', - y: 'blwyddyn', - yy: '%d flynedd', - }, - dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, - // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh - ordinal: function (number) { - var b = number, - output = '', - lookup = [ - '', - 'af', - 'il', - 'ydd', - 'ydd', - 'ed', - 'ed', - 'ed', - 'fed', - 'fed', - 'fed', // 1af to 10fed - 'eg', - 'fed', - 'eg', - 'eg', - 'fed', - 'eg', - 'eg', - 'fed', - 'eg', - 'fed', // 11eg to 20fed - ]; - if (b > 20) { - if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { - output = 'fed'; // not 30ain, 70ain or 90ain - } else { - output = 'ain'; - } - } else if (b > 0) { - output = lookup[b]; + function setOffsetToParsedOffset() { + if (this._tzm != null) { + this.utcOffset(this._tzm, false, true); + } else if (typeof this._i === 'string') { + var tZone = offsetFromString(matchOffset, this._i); + if (tZone != null) { + this.utcOffset(tZone); + } else { + this.utcOffset(0, true); } - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + } + return this; + } - return cy; + function hasAlignedHourOffset(input) { + if (!this.isValid()) { + return false; + } + input = input ? createLocal(input).utcOffset() : 0; -}))); + return (this.utcOffset() - input) % 60 === 0; + } + function isDaylightSavingTime() { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); + } -/***/ }), + function isDaylightSavingTimeShifted() { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/da.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/da.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + var c = {}, + other; -//! moment.js locale configuration -//! locale : Danish [da] -//! author : Ulrik Nielsen : https://github.com/mrbase + copyConfig(c, this); + c = prepareConfig(c); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + if (c._a) { + other = c._isUTC ? createUTC(c._a) : createLocal(c._a); + this._isDSTShifted = + this.isValid() && compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } - //! moment.js locale configuration + return this._isDSTShifted; + } - var da = moment.defineLocale('da', { - months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( - '_' - ), - monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), - weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), - weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'), - weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY HH:mm', - LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', - }, - calendar: { - sameDay: '[i dag kl.] LT', - nextDay: '[i morgen kl.] LT', - nextWeek: 'på dddd [kl.] LT', - lastDay: '[i går kl.] LT', - lastWeek: '[i] dddd[s kl.] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'om %s', - past: '%s siden', - s: 'få sekunder', - ss: '%d sekunder', - m: 'et minut', - mm: '%d minutter', - h: 'en time', - hh: '%d timer', - d: 'en dag', - dd: '%d dage', - M: 'en måned', - MM: '%d måneder', - y: 'et år', - yy: '%d år', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + function isLocal() { + return this.isValid() ? !this._isUTC : false; + } - return da; + function isUtcOffset() { + return this.isValid() ? this._isUTC : false; + } -}))); + function isUtc() { + return this.isValid() ? this._isUTC && this._offset === 0 : false; + } + + // ASP.NET json date format regex + var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + // and further modified to allow for strings containing both week and day + isoRegex = + /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; + function createDuration(input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; -/***/ }), + if (isDuration(input)) { + duration = { + ms: input._milliseconds, + d: input._days, + M: input._months, + }; + } else if (isNumber(input) || !isNaN(+input)) { + duration = {}; + if (key) { + duration[key] = +input; + } else { + duration.milliseconds = +input; + } + } else if ((match = aspNetRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: 0, + d: toInt(match[DATE]) * sign, + h: toInt(match[HOUR]) * sign, + m: toInt(match[MINUTE]) * sign, + s: toInt(match[SECOND]) * sign, + ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match + }; + } else if ((match = isoRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: parseIso(match[2], sign), + M: parseIso(match[3], sign), + w: parseIso(match[4], sign), + d: parseIso(match[5], sign), + h: parseIso(match[6], sign), + m: parseIso(match[7], sign), + s: parseIso(match[8], sign), + }; + } else if (duration == null) { + // checks for null or undefined + duration = {}; + } else if ( + typeof duration === 'object' && + ('from' in duration || 'to' in duration) + ) { + diffRes = momentsDifference( + createLocal(duration.from), + createLocal(duration.to) + ); -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de-at.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de-at.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } -//! moment.js locale configuration -//! locale : German (Austria) [de-at] -//! author : lluchs : https://github.com/lluchs -//! author: Menelion Elensúle: https://github.com/Oire -//! author : Martin Groller : https://github.com/MadMG -//! author : Mikolaj Dadela : https://github.com/mik01aj + ret = new Duration(duration); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } - //! moment.js locale configuration + if (isDuration(input) && hasOwnProp(input, '_isValid')) { + ret._isValid = input._isValid; + } - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - m: ['eine Minute', 'einer Minute'], - h: ['eine Stunde', 'einer Stunde'], - d: ['ein Tag', 'einem Tag'], - dd: [number + ' Tage', number + ' Tagen'], - w: ['eine Woche', 'einer Woche'], - M: ['ein Monat', 'einem Monat'], - MM: [number + ' Monate', number + ' Monaten'], - y: ['ein Jahr', 'einem Jahr'], - yy: [number + ' Jahre', number + ' Jahren'], - }; - return withoutSuffix ? format[key][0] : format[key][1]; + return ret; } - var deAt = moment.defineLocale('de-at', { - months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( - '_' - ), - monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( - '_' - ), - weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), - weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY HH:mm', - LLLL: 'dddd, D. MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]', - }, - relativeTime: { - future: 'in %s', - past: 'vor %s', - s: 'ein paar Sekunden', - ss: '%d Sekunden', - m: processRelativeTime, - mm: '%d Minuten', - h: processRelativeTime, - hh: '%d Stunden', - d: processRelativeTime, - dd: processRelativeTime, - w: processRelativeTime, - ww: '%d Wochen', - M: processRelativeTime, - MM: processRelativeTime, - y: processRelativeTime, - yy: processRelativeTime, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - return deAt; + createDuration.fn = Duration.prototype; + createDuration.invalid = createInvalid$1; -}))); + function parseIso(inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + } + function positiveMomentsDifference(base, other) { + var res = {}; -/***/ }), + res.months = + other.month() - base.month() + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de-ch.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de-ch.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + res.milliseconds = +other - +base.clone().add(res.months, 'M'); -//! moment.js locale configuration -//! locale : German (Switzerland) [de-ch] -//! author : sschueller : https://github.com/sschueller + return res; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return { milliseconds: 0, months: 0 }; + } - //! moment.js locale configuration + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - m: ['eine Minute', 'einer Minute'], - h: ['eine Stunde', 'einer Stunde'], - d: ['ein Tag', 'einem Tag'], - dd: [number + ' Tage', number + ' Tagen'], - w: ['eine Woche', 'einer Woche'], - M: ['ein Monat', 'einem Monat'], - MM: [number + ' Monate', number + ' Monaten'], - y: ['ein Jahr', 'einem Jahr'], - yy: [number + ' Jahre', number + ' Jahren'], - }; - return withoutSuffix ? format[key][0] : format[key][1]; + return res; } - var deCh = moment.defineLocale('de-ch', { - months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( - '_' - ), - monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( - '_' - ), - weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), - weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY HH:mm', - LLLL: 'dddd, D. MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]', - }, - relativeTime: { - future: 'in %s', - past: 'vor %s', - s: 'ein paar Sekunden', - ss: '%d Sekunden', - m: processRelativeTime, - mm: '%d Minuten', - h: processRelativeTime, - hh: '%d Stunden', - d: processRelativeTime, - dd: processRelativeTime, - w: processRelativeTime, - ww: '%d Wochen', - M: processRelativeTime, - MM: processRelativeTime, - y: processRelativeTime, - yy: processRelativeTime, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - return deCh; + // TODO: remove 'name' arg after deprecation is removed + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple( + name, + 'moment().' + + name + + '(period, number) is deprecated. Please use moment().' + + name + + '(number, period). ' + + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' + ); + tmp = val; + val = period; + period = tmp; + } -}))); + dur = createDuration(val, period); + addSubtract(this, dur, direction); + return this; + }; + } + function addSubtract(mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = absRound(duration._days), + months = absRound(duration._months); -/***/ }), + if (!mom.isValid()) { + // No op + return; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + updateOffset = updateOffset == null ? true : updateOffset; -//! moment.js locale configuration -//! locale : German [de] -//! author : lluchs : https://github.com/lluchs -//! author: Menelion Elensúle: https://github.com/Oire -//! author : Mikolaj Dadela : https://github.com/mik01aj + if (months) { + setMonth(mom, get(mom, 'Month') + months * isAdding); + } + if (days) { + set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); + } + if (milliseconds) { + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); + } + if (updateOffset) { + hooks.updateOffset(mom, days || months); + } + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + var add = createAdder(1, 'add'), + subtract = createAdder(-1, 'subtract'); - //! moment.js locale configuration + function isString(input) { + return typeof input === 'string' || input instanceof String; + } - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - m: ['eine Minute', 'einer Minute'], - h: ['eine Stunde', 'einer Stunde'], - d: ['ein Tag', 'einem Tag'], - dd: [number + ' Tage', number + ' Tagen'], - w: ['eine Woche', 'einer Woche'], - M: ['ein Monat', 'einem Monat'], - MM: [number + ' Monate', number + ' Monaten'], - y: ['ein Jahr', 'einem Jahr'], - yy: [number + ' Jahre', number + ' Jahren'], - }; - return withoutSuffix ? format[key][0] : format[key][1]; + // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined + function isMomentInput(input) { + return ( + isMoment(input) || + isDate(input) || + isString(input) || + isNumber(input) || + isNumberOrStringArray(input) || + isMomentInputObject(input) || + input === null || + input === undefined + ); } - var de = moment.defineLocale('de', { - months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( - '_' - ), - monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( - '_' - ), - weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), - weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY HH:mm', - LLLL: 'dddd, D. MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]', - }, - relativeTime: { - future: 'in %s', - past: 'vor %s', - s: 'ein paar Sekunden', - ss: '%d Sekunden', - m: processRelativeTime, - mm: '%d Minuten', - h: processRelativeTime, - hh: '%d Stunden', - d: processRelativeTime, - dd: processRelativeTime, - w: processRelativeTime, - ww: '%d Wochen', - M: processRelativeTime, - MM: processRelativeTime, - y: processRelativeTime, - yy: processRelativeTime, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + function isMomentInputObject(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'years', + 'year', + 'y', + 'months', + 'month', + 'M', + 'days', + 'day', + 'd', + 'dates', + 'date', + 'D', + 'hours', + 'hour', + 'h', + 'minutes', + 'minute', + 'm', + 'seconds', + 'second', + 's', + 'milliseconds', + 'millisecond', + 'ms', + ], + i, + property, + propertyLen = properties.length; - return de; + for (i = 0; i < propertyLen; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } -}))); + return objectTest && propertyTest; + } + function isNumberOrStringArray(input) { + var arrayTest = isArray(input), + dataTypeTest = false; + if (arrayTest) { + dataTypeTest = + input.filter(function (item) { + return !isNumber(item) && isString(input); + }).length === 0; + } + return arrayTest && dataTypeTest; + } -/***/ }), + function isCalendarSpec(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'sameDay', + 'nextDay', + 'lastDay', + 'nextWeek', + 'lastWeek', + 'sameElse', + ], + i, + property; -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/dv.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/dv.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + for (i = 0; i < properties.length; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } -//! moment.js locale configuration -//! locale : Maldivian [dv] -//! author : Jawish Hameed : https://github.com/jawish + return objectTest && propertyTest; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function getCalendarFormat(myMoment, now) { + var diff = myMoment.diff(now, 'days', true); + return diff < -6 + ? 'sameElse' + : diff < -1 + ? 'lastWeek' + : diff < 0 + ? 'lastDay' + : diff < 1 + ? 'sameDay' + : diff < 2 + ? 'nextDay' + : diff < 7 + ? 'nextWeek' + : 'sameElse'; + } - //! moment.js locale configuration + function calendar$1(time, formats) { + // Support for single parameter, formats only overload to the calendar function + if (arguments.length === 1) { + if (!arguments[0]) { + time = undefined; + formats = undefined; + } else if (isMomentInput(arguments[0])) { + time = arguments[0]; + formats = undefined; + } else if (isCalendarSpec(arguments[0])) { + formats = arguments[0]; + time = undefined; + } + } + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + format = hooks.calendarFormat(this, sod) || 'sameElse', + output = + formats && + (isFunction(formats[format]) + ? formats[format].call(this, now) + : formats[format]); - var months = [ - 'ޖެނުއަރީ', - 'ފެބްރުއަރީ', - 'މާރިޗު', - 'އޭޕްރީލު', - 'މޭ', - 'ޖޫން', - 'ޖުލައި', - 'އޯގަސްޓު', - 'ސެޕްޓެމްބަރު', - 'އޮކްޓޯބަރު', - 'ނޮވެމްބަރު', - 'ޑިސެމްބަރު', - ], - weekdays = [ - 'އާދިއްތަ', - 'ހޯމަ', - 'އަންގާރަ', - 'ބުދަ', - 'ބުރާސްފަތި', - 'ހުކުރު', - 'ހޮނިހިރު', - ]; + return this.format( + output || this.localeData().calendar(format, this, createLocal(now)) + ); + } - var dv = moment.defineLocale('dv', { - months: months, - monthsShort: months, - weekdays: weekdays, - weekdaysShort: weekdays, - weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'D/M/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /މކ|މފ/, - isPM: function (input) { - return 'މފ' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'މކ'; - } else { - return 'މފ'; - } - }, - calendar: { - sameDay: '[މިއަދު] LT', - nextDay: '[މާދަމާ] LT', - nextWeek: 'dddd LT', - lastDay: '[އިއްޔެ] LT', - lastWeek: '[ފާއިތުވި] dddd LT', - sameElse: 'L', - }, - relativeTime: { - future: 'ތެރޭގައި %s', - past: 'ކުރިން %s', - s: 'ސިކުންތުކޮޅެއް', - ss: 'd% ސިކުންތު', - m: 'މިނިޓެއް', - mm: 'މިނިޓު %d', - h: 'ގަޑިއިރެއް', - hh: 'ގަޑިއިރު %d', - d: 'ދުވަހެއް', - dd: 'ދުވަސް %d', - M: 'މަހެއް', - MM: 'މަސް %d', - y: 'އަހަރެއް', - yy: 'އަހަރު %d', - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week: { - dow: 7, // Sunday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); + function clone() { + return new Moment(this); + } - return dv; + function isAfter(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() > localInput.valueOf(); + } else { + return localInput.valueOf() < this.clone().startOf(units).valueOf(); + } + } -}))); + function isBefore(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() < localInput.valueOf(); + } else { + return this.clone().endOf(units).valueOf() < localInput.valueOf(); + } + } + function isBetween(from, to, units, inclusivity) { + var localFrom = isMoment(from) ? from : createLocal(from), + localTo = isMoment(to) ? to : createLocal(to); + if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { + return false; + } + inclusivity = inclusivity || '()'; + return ( + (inclusivity[0] === '(' + ? this.isAfter(localFrom, units) + : !this.isBefore(localFrom, units)) && + (inclusivity[1] === ')' + ? this.isBefore(localTo, units) + : !this.isAfter(localTo, units)) + ); + } -/***/ }), + function isSame(input, units) { + var localInput = isMoment(input) ? input : createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() === localInput.valueOf(); + } else { + inputMs = localInput.valueOf(); + return ( + this.clone().startOf(units).valueOf() <= inputMs && + inputMs <= this.clone().endOf(units).valueOf() + ); + } + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/el.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/el.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function isSameOrAfter(input, units) { + return this.isSame(input, units) || this.isAfter(input, units); + } -//! moment.js locale configuration -//! locale : Greek [el] -//! author : Aggelos Karalias : https://github.com/mehiel + function isSameOrBefore(input, units) { + return this.isSame(input, units) || this.isBefore(input, units); + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function diff(input, units, asFloat) { + var that, zoneDelta, output; - //! moment.js locale configuration + if (!this.isValid()) { + return NaN; + } - function isFunction(input) { - return ( - (typeof Function !== 'undefined' && input instanceof Function) || - Object.prototype.toString.call(input) === '[object Function]' - ); - } + that = cloneWithOffset(input, this); - var el = moment.defineLocale('el', { - monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split( - '_' - ), - monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split( - '_' - ), - months: function (momentToFormat, format) { - if (!momentToFormat) { - return this._monthsNominativeEl; - } else if ( - typeof format === 'string' && - /D/.test(format.substring(0, format.indexOf('MMMM'))) - ) { - // if there is a day number before 'MMMM' - return this._monthsGenitiveEl[momentToFormat.month()]; - } else { - return this._monthsNominativeEl[momentToFormat.month()]; - } - }, - monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), - weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split( - '_' - ), - weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), - weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), - meridiem: function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'μμ' : 'ΜΜ'; - } else { - return isLower ? 'πμ' : 'ΠΜ'; - } - }, - isPM: function (input) { - return (input + '').toLowerCase()[0] === 'μ'; - }, - meridiemParse: /[ΠΜ]\.?Μ?\.?/i, - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendarEl: { - sameDay: '[Σήμερα {}] LT', - nextDay: '[Αύριο {}] LT', - nextWeek: 'dddd [{}] LT', - lastDay: '[Χθες {}] LT', - lastWeek: function () { - switch (this.day()) { - case 6: - return '[το προηγούμενο] dddd [{}] LT'; - default: - return '[την προηγούμενη] dddd [{}] LT'; - } - }, - sameElse: 'L', - }, - calendar: function (key, mom) { - var output = this._calendarEl[key], - hours = mom && mom.hours(); - if (isFunction(output)) { - output = output.apply(mom); - } - return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις'); - }, - relativeTime: { - future: 'σε %s', - past: '%s πριν', - s: 'λίγα δευτερόλεπτα', - ss: '%d δευτερόλεπτα', - m: 'ένα λεπτό', - mm: '%d λεπτά', - h: 'μία ώρα', - hh: '%d ώρες', - d: 'μία μέρα', - dd: '%d μέρες', - M: 'ένας μήνας', - MM: '%d μήνες', - y: 'ένας χρόνος', - yy: '%d χρόνια', - }, - dayOfMonthOrdinalParse: /\d{1,2}η/, - ordinal: '%dη', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4st is the first week of the year. - }, - }); + if (!that.isValid()) { + return NaN; + } - return el; + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; -}))); + units = normalizeUnits(units); + + switch (units) { + case 'year': + output = monthDiff(this, that) / 12; + break; + case 'month': + output = monthDiff(this, that); + break; + case 'quarter': + output = monthDiff(this, that) / 3; + break; + case 'second': + output = (this - that) / 1e3; + break; // 1000 + case 'minute': + output = (this - that) / 6e4; + break; // 1000 * 60 + case 'hour': + output = (this - that) / 36e5; + break; // 1000 * 60 * 60 + case 'day': + output = (this - that - zoneDelta) / 864e5; + break; // 1000 * 60 * 60 * 24, negate dst + case 'week': + output = (this - that - zoneDelta) / 6048e5; + break; // 1000 * 60 * 60 * 24 * 7, negate dst + default: + output = this - that; + } + return asFloat ? output : absFloor(output); + } -/***/ }), + function monthDiff(a, b) { + if (a.date() < b.date()) { + // end-of-month calculations work correct when the start month has more + // days than the end month. + return -monthDiff(b, a); + } + // difference in months + var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, + adjust; -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-au.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-au.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } -//! moment.js locale configuration -//! locale : English (Australia) [en-au] -//! author : Jared Morse : https://github.com/jarcoal + //check for negative zero, return zero if negative zero + return -(wholeMonthDiff + adjust) || 0; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; - //! moment.js locale configuration + function toString() { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } - var enAu = moment.defineLocale('en-au', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + function toISOString(keepOffset) { + if (!this.isValid()) { + return null; + } + var utc = keepOffset !== true, + m = utc ? this.clone().utc() : this; + if (m.year() < 0 || m.year() > 9999) { + return formatMoment( + m, + utc + ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' + : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); + } + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + if (utc) { + return this.toDate().toISOString(); + } else { + return new Date(this.valueOf() + this.utcOffset() * 60 * 1000) + .toISOString() + .replace('Z', formatMoment(m, 'Z')); + } + } + return formatMoment( + m, + utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); + } - return enAu; + /** + * Return a human readable representation of a moment that can + * also be evaluated to get a new moment which is the same + * + * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects + */ + function inspect() { + if (!this.isValid()) { + return 'moment.invalid(/* ' + this._i + ' */)'; + } + var func = 'moment', + zone = '', + prefix, + year, + datetime, + suffix; + if (!this.isLocal()) { + func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; + zone = 'Z'; + } + prefix = '[' + func + '("]'; + year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; + datetime = '-MM-DD[T]HH:mm:ss.SSS'; + suffix = zone + '[")]'; -}))); + return this.format(prefix + year + datetime + suffix); + } + function format(inputString) { + if (!inputString) { + inputString = this.isUtc() + ? hooks.defaultFormatUtc + : hooks.defaultFormat; + } + var output = formatMoment(this, inputString); + return this.localeData().postformat(output); + } -/***/ }), + function from(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ to: this, from: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-ca.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-ca.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function fromNow(withoutSuffix) { + return this.from(createLocal(), withoutSuffix); + } -//! moment.js locale configuration -//! locale : English (Canada) [en-ca] -//! author : Jonathan Abourbih : https://github.com/jonbca + function to(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ from: this, to: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function toNow(withoutSuffix) { + return this.to(createLocal(), withoutSuffix); + } - //! moment.js locale configuration + // If passed a locale key, it will set the locale for this + // instance. Otherwise, it will return the locale configuration + // variables for this instance. + function locale(key) { + var newLocaleData; - var enCa = moment.defineLocale('en-ca', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'YYYY-MM-DD', - LL: 'MMMM D, YYYY', - LLL: 'MMMM D, YYYY h:mm A', - LLLL: 'dddd, MMMM D, YYYY h:mm A', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - }); + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } - return enCa; + var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } + ); -}))); + function localeData() { + return this._locale; + } + var MS_PER_SECOND = 1000, + MS_PER_MINUTE = 60 * MS_PER_SECOND, + MS_PER_HOUR = 60 * MS_PER_MINUTE, + MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; -/***/ }), + // actual modulo - handles negative numbers (for dates before 1970): + function mod$1(dividend, divisor) { + return ((dividend % divisor) + divisor) % divisor; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-gb.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-gb.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function localStartOfDate(y, m, d) { + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return new Date(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return new Date(y, m, d).valueOf(); + } + } -//! moment.js locale configuration -//! locale : English (United Kingdom) [en-gb] -//! author : Chris Gedrim : https://github.com/chrisgedrim + function utcStartOfDate(y, m, d) { + // Date.UTC remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return Date.UTC(y, m, d); + } + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function startOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } - //! moment.js locale configuration + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; - var enGb = moment.defineLocale('en-gb', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + switch (units) { + case 'year': + time = startOfDate(this.year(), 0, 1); + break; + case 'quarter': + time = startOfDate( + this.year(), + this.month() - (this.month() % 3), + 1 + ); + break; + case 'month': + time = startOfDate(this.year(), this.month(), 1); + break; + case 'week': + time = startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + ); + break; + case 'isoWeek': + time = startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + ); + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date()); + break; + case 'hour': + time = this._d.valueOf(); + time -= mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ); + break; + case 'minute': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_MINUTE); + break; + case 'second': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_SECOND); + break; + } - return enGb; + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } -}))); + function endOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; -/***/ }), + switch (units) { + case 'year': + time = startOfDate(this.year() + 1, 0, 1) - 1; + break; + case 'quarter': + time = + startOfDate( + this.year(), + this.month() - (this.month() % 3) + 3, + 1 + ) - 1; + break; + case 'month': + time = startOfDate(this.year(), this.month() + 1, 1) - 1; + break; + case 'week': + time = + startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + 7 + ) - 1; + break; + case 'isoWeek': + time = + startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + 7 + ) - 1; + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; + break; + case 'hour': + time = this._d.valueOf(); + time += + MS_PER_HOUR - + mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ) - + 1; + break; + case 'minute': + time = this._d.valueOf(); + time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; + break; + case 'second': + time = this._d.valueOf(); + time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; + break; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-ie.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-ie.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } -//! moment.js locale configuration -//! locale : English (Ireland) [en-ie] -//! author : Chris Cartlidge : https://github.com/chriscartlidge + function valueOf() { + return this._d.valueOf() - (this._offset || 0) * 60000; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function unix() { + return Math.floor(this.valueOf() / 1000); + } - //! moment.js locale configuration + function toDate() { + return new Date(this.valueOf()); + } - var enIe = moment.defineLocale('en-ie', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + function toArray() { + var m = this; + return [ + m.year(), + m.month(), + m.date(), + m.hour(), + m.minute(), + m.second(), + m.millisecond(), + ]; + } + + function toObject() { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds(), + }; + } - return enIe; + function toJSON() { + // new Date(NaN).toJSON() === null + return this.isValid() ? this.toISOString() : null; + } -}))); + function isValid$2() { + return isValid(this); + } + function parsingFlags() { + return extend({}, getParsingFlags(this)); + } -/***/ }), + function invalidAt() { + return getParsingFlags(this).overflow; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-il.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-il.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict, + }; + } -//! moment.js locale configuration -//! locale : English (Israel) [en-il] -//! author : Chris Gedrim : https://github.com/chrisgedrim + addFormatToken('N', 0, 0, 'eraAbbr'); + addFormatToken('NN', 0, 0, 'eraAbbr'); + addFormatToken('NNN', 0, 0, 'eraAbbr'); + addFormatToken('NNNN', 0, 0, 'eraName'); + addFormatToken('NNNNN', 0, 0, 'eraNarrow'); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + addFormatToken('y', ['y', 1], 'yo', 'eraYear'); + addFormatToken('y', ['yy', 2], 0, 'eraYear'); + addFormatToken('y', ['yyy', 3], 0, 'eraYear'); + addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); - //! moment.js locale configuration + addRegexToken('N', matchEraAbbr); + addRegexToken('NN', matchEraAbbr); + addRegexToken('NNN', matchEraAbbr); + addRegexToken('NNNN', matchEraName); + addRegexToken('NNNNN', matchEraNarrow); - var enIl = moment.defineLocale('en-il', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - }); + addParseToken( + ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], + function (input, array, config, token) { + var era = config._locale.erasParse(input, token, config._strict); + if (era) { + getParsingFlags(config).era = era; + } else { + getParsingFlags(config).invalidEra = input; + } + } + ); - return enIl; + addRegexToken('y', matchUnsigned); + addRegexToken('yy', matchUnsigned); + addRegexToken('yyy', matchUnsigned); + addRegexToken('yyyy', matchUnsigned); + addRegexToken('yo', matchEraYearOrdinal); -}))); + addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); + addParseToken(['yo'], function (input, array, config, token) { + var match; + if (config._locale._eraYearOrdinalRegex) { + match = input.match(config._locale._eraYearOrdinalRegex); + } + if (config._locale.eraYearOrdinalParse) { + array[YEAR] = config._locale.eraYearOrdinalParse(input, match); + } else { + array[YEAR] = parseInt(input, 10); + } + }); -/***/ }), + function localeEras(m, format) { + var i, + l, + date, + eras = this._eras || getLocale('en')._eras; + for (i = 0, l = eras.length; i < l; ++i) { + switch (typeof eras[i].since) { + case 'string': + // truncate time + date = hooks(eras[i].since).startOf('day'); + eras[i].since = date.valueOf(); + break; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-in.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-in.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + switch (typeof eras[i].until) { + case 'undefined': + eras[i].until = +Infinity; + break; + case 'string': + // truncate time + date = hooks(eras[i].until).startOf('day').valueOf(); + eras[i].until = date.valueOf(); + break; + } + } + return eras; + } -//! moment.js locale configuration -//! locale : English (India) [en-in] -//! author : Jatin Agrawal : https://github.com/jatinag22 + function localeErasParse(eraName, format, strict) { + var i, + l, + eras = this.eras(), + name, + abbr, + narrow; + eraName = eraName.toUpperCase(); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + for (i = 0, l = eras.length; i < l; ++i) { + name = eras[i].name.toUpperCase(); + abbr = eras[i].abbr.toUpperCase(); + narrow = eras[i].narrow.toUpperCase(); - //! moment.js locale configuration + if (strict) { + switch (format) { + case 'N': + case 'NN': + case 'NNN': + if (abbr === eraName) { + return eras[i]; + } + break; - var enIn = moment.defineLocale('en-in', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 1st is the first week of the year. - }, - }); + case 'NNNN': + if (name === eraName) { + return eras[i]; + } + break; - return enIn; + case 'NNNNN': + if (narrow === eraName) { + return eras[i]; + } + break; + } + } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { + return eras[i]; + } + } + } -}))); + function localeErasConvertYear(era, year) { + var dir = era.since <= era.until ? +1 : -1; + if (year === undefined) { + return hooks(era.since).year(); + } else { + return hooks(era.since).year() + (year - era.offset) * dir; + } + } + function getEraName() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); -/***/ }), + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].name; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].name; + } + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-nz.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-nz.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + return ''; + } -//! moment.js locale configuration -//! locale : English (New Zealand) [en-nz] -//! author : Luke McGregor : https://github.com/lukemcgregor + function getEraNarrow() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].narrow; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].narrow; + } + } - //! moment.js locale configuration + return ''; + } - var enNz = moment.defineLocale('en-nz', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + function getEraAbbr() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); - return enNz; + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].abbr; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].abbr; + } + } -}))); + return ''; + } + function getEraYear() { + var i, + l, + dir, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + dir = eras[i].since <= eras[i].until ? +1 : -1; -/***/ }), + // truncate time + val = this.clone().startOf('day').valueOf(); -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-sg.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-sg.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + if ( + (eras[i].since <= val && val <= eras[i].until) || + (eras[i].until <= val && val <= eras[i].since) + ) { + return ( + (this.year() - hooks(eras[i].since).year()) * dir + + eras[i].offset + ); + } + } -//! moment.js locale configuration -//! locale : English (Singapore) [en-sg] -//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension + return this.year(); + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function erasNameRegex(isStrict) { + if (!hasOwnProp(this, '_erasNameRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNameRegex : this._erasRegex; + } - //! moment.js locale configuration + function erasAbbrRegex(isStrict) { + if (!hasOwnProp(this, '_erasAbbrRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasAbbrRegex : this._erasRegex; + } - var enSg = moment.defineLocale('en-sg', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + function erasNarrowRegex(isStrict) { + if (!hasOwnProp(this, '_erasNarrowRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNarrowRegex : this._erasRegex; + } + + function matchEraAbbr(isStrict, locale) { + return locale.erasAbbrRegex(isStrict); + } - return enSg; + function matchEraName(isStrict, locale) { + return locale.erasNameRegex(isStrict); + } -}))); + function matchEraNarrow(isStrict, locale) { + return locale.erasNarrowRegex(isStrict); + } + function matchEraYearOrdinal(isStrict, locale) { + return locale._eraYearOrdinalRegex || matchUnsigned; + } -/***/ }), + function computeErasParse() { + var abbrPieces = [], + namePieces = [], + narrowPieces = [], + mixedPieces = [], + i, + l, + eras = this.eras(); -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/eo.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/eo.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + for (i = 0, l = eras.length; i < l; ++i) { + namePieces.push(regexEscape(eras[i].name)); + abbrPieces.push(regexEscape(eras[i].abbr)); + narrowPieces.push(regexEscape(eras[i].narrow)); -//! moment.js locale configuration -//! locale : Esperanto [eo] -//! author : Colin Dean : https://github.com/colindean -//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia -//! comment : miestasmia corrected the translation by colindean -//! comment : Vivakvo corrected the translation by colindean and miestasmia + mixedPieces.push(regexEscape(eras[i].name)); + mixedPieces.push(regexEscape(eras[i].abbr)); + mixedPieces.push(regexEscape(eras[i].narrow)); + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); + this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); + this._erasNarrowRegex = new RegExp( + '^(' + narrowPieces.join('|') + ')', + 'i' + ); + } - //! moment.js locale configuration + // FORMATTING - var eo = moment.defineLocale('eo', { - months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split( - '_' - ), - monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'), - weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'), - weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'), - weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: '[la] D[-an de] MMMM, YYYY', - LLL: '[la] D[-an de] MMMM, YYYY HH:mm', - LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', - llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', - }, - meridiemParse: /[ap]\.t\.m/i, - isPM: function (input) { - return input.charAt(0).toLowerCase() === 'p'; - }, - meridiem: function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'p.t.m.' : 'P.T.M.'; - } else { - return isLower ? 'a.t.m.' : 'A.T.M.'; - } - }, - calendar: { - sameDay: '[Hodiaŭ je] LT', - nextDay: '[Morgaŭ je] LT', - nextWeek: 'dddd[n je] LT', - lastDay: '[Hieraŭ je] LT', - lastWeek: '[pasintan] dddd[n je] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'post %s', - past: 'antaŭ %s', - s: 'kelkaj sekundoj', - ss: '%d sekundoj', - m: 'unu minuto', - mm: '%d minutoj', - h: 'unu horo', - hh: '%d horoj', - d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo - dd: '%d tagoj', - M: 'unu monato', - MM: '%d monatoj', - y: 'unu jaro', - yy: '%d jaroj', - }, - dayOfMonthOrdinalParse: /\d{1,2}a/, - ordinal: '%da', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; }); - return eo; - -}))); + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); + function addWeekYearFormatToken(token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } -/***/ }), + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-do.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-do.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + // ALIASES -//! moment.js locale configuration -//! locale : Spanish (Dominican Republic) [es-do] + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // PRIORITY - //! moment.js locale configuration + addUnitPriority('weekYear', 1); + addUnitPriority('isoWeekYear', 1); - var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( - '_' - ), - monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), - monthsParse = [ - /^ene/i, - /^feb/i, - /^mar/i, - /^abr/i, - /^may/i, - /^jun/i, - /^jul/i, - /^ago/i, - /^sep/i, - /^oct/i, - /^nov/i, - /^dic/i, - ], - monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + // PARSING - var esDo = moment.defineLocale('es-do', { - months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortDot; - } else if (/-MMM-/.test(format)) { - return monthsShort[m.month()]; - } else { - return monthsShortDot[m.month()]; - } - }, - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY h:mm A', - LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', - }, - calendar: { - sameDay: function () { - return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextDay: function () { - return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextWeek: function () { - return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastDay: function () { - return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastWeek: function () { - return ( - '[el] dddd [pasado a la' + - (this.hours() !== 1 ? 's' : '') + - '] LT' - ); - }, - sameElse: 'L', - }, - relativeTime: { - future: 'en %s', - past: 'hace %s', - s: 'unos segundos', - ss: '%d segundos', - m: 'un minuto', - mm: '%d minutos', - h: 'una hora', - hh: '%d horas', - d: 'un día', - dd: '%d días', - w: 'una semana', - ww: '%d semanas', - M: 'un mes', - MM: '%d meses', - y: 'un año', - yy: '%d años', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); - return esDo; + addWeekParseToken( + ['gggg', 'ggggg', 'GGGG', 'GGGGG'], + function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + } + ); -}))); + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = hooks.parseTwoDigitYear(input); + }); + // MOMENTS -/***/ }), + function getSetWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy + ); + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-mx.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-mx.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function getSetISOWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.isoWeek(), + this.isoWeekday(), + 1, + 4 + ); + } -//! moment.js locale configuration -//! locale : Spanish (Mexico) [es-mx] -//! author : JC Franco : https://github.com/jcfranco + function getISOWeeksInYear() { + return weeksInYear(this.year(), 1, 4); + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function getISOWeeksInISOWeekYear() { + return weeksInYear(this.isoWeekYear(), 1, 4); + } - //! moment.js locale configuration + function getWeeksInYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } - var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( - '_' - ), - monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), - monthsParse = [ - /^ene/i, - /^feb/i, - /^mar/i, - /^abr/i, - /^may/i, - /^jun/i, - /^jul/i, - /^ago/i, - /^sep/i, - /^oct/i, - /^nov/i, - /^dic/i, - ], - monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + function getWeeksInWeekYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); + } - var esMx = moment.defineLocale('es-mx', { - months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortDot; - } else if (/-MMM-/.test(format)) { - return monthsShort[m.month()]; - } else { - return monthsShortDot[m.month()]; + function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; } - }, - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY H:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', - }, - calendar: { - sameDay: function () { - return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextDay: function () { - return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextWeek: function () { - return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastDay: function () { - return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastWeek: function () { - return ( - '[el] dddd [pasado a la' + - (this.hours() !== 1 ? 's' : '') + - '] LT' - ); - }, - sameElse: 'L', - }, - relativeTime: { - future: 'en %s', - past: 'hace %s', - s: 'unos segundos', - ss: '%d segundos', - m: 'un minuto', - mm: '%d minutos', - h: 'una hora', - hh: '%d horas', - d: 'un día', - dd: '%d días', - w: 'una semana', - ww: '%d semanas', - M: 'un mes', - MM: '%d meses', - y: 'un año', - yy: '%d años', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 0, // Sunday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - invalidDate: 'Fecha inválida', - }); - - return esMx; - -}))); - - -/***/ }), + return setWeekAll.call(this, input, week, weekday, dow, doy); + } + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-us.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-us.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); -//! moment.js locale configuration -//! locale : Spanish (United States) [es-us] -//! author : bustta : https://github.com/bustta -//! author : chrisrodz : https://github.com/chrisrodz + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // FORMATTING - //! moment.js locale configuration + addFormatToken('Q', 0, 'Qo', 'quarter'); - var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( - '_' - ), - monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), - monthsParse = [ - /^ene/i, - /^feb/i, - /^mar/i, - /^abr/i, - /^may/i, - /^jun/i, - /^jul/i, - /^ago/i, - /^sep/i, - /^oct/i, - /^nov/i, - /^dic/i, - ], - monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + // ALIASES - var esUs = moment.defineLocale('es-us', { - months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortDot; - } else if (/-MMM-/.test(format)) { - return monthsShort[m.month()]; - } else { - return monthsShortDot[m.month()]; - } - }, - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'MM/DD/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY h:mm A', - LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', - }, - calendar: { - sameDay: function () { - return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextDay: function () { - return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextWeek: function () { - return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastDay: function () { - return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastWeek: function () { - return ( - '[el] dddd [pasado a la' + - (this.hours() !== 1 ? 's' : '') + - '] LT' - ); - }, - sameElse: 'L', - }, - relativeTime: { - future: 'en %s', - past: 'hace %s', - s: 'unos segundos', - ss: '%d segundos', - m: 'un minuto', - mm: '%d minutos', - h: 'una hora', - hh: '%d horas', - d: 'un día', - dd: '%d días', - w: 'una semana', - ww: '%d semanas', - M: 'un mes', - MM: '%d meses', - y: 'un año', - yy: '%d años', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, + addUnitAlias('quarter', 'Q'); + + // PRIORITY + + addUnitPriority('quarter', 7); + + // PARSING + + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; }); - return esUs; + // MOMENTS -}))); + function getSetQuarter(input) { + return input == null + ? Math.ceil((this.month() + 1) / 3) + : this.month((input - 1) * 3 + (this.month() % 3)); + } + // FORMATTING -/***/ }), + addFormatToken('D', ['DD', 2], 'Do', 'date'); -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + // ALIASES -//! moment.js locale configuration -//! locale : Spanish [es] -//! author : Julio Napurí : https://github.com/julionc + addUnitAlias('date', 'D'); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // PRIORITY + addUnitPriority('date', 9); - //! moment.js locale configuration + // PARSING - var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( - '_' - ), - monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), - monthsParse = [ - /^ene/i, - /^feb/i, - /^mar/i, - /^abr/i, - /^may/i, - /^jun/i, - /^jul/i, - /^ago/i, - /^sep/i, - /^oct/i, - /^nov/i, - /^dic/i, - ], - monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + // TODO: Remove "ordinalParse" fallback in next major release. + return isStrict + ? locale._dayOfMonthOrdinalParse || locale._ordinalParse + : locale._dayOfMonthOrdinalParseLenient; + }); - var es = moment.defineLocale('es', { - months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortDot; - } else if (/-MMM-/.test(format)) { - return monthsShort[m.month()]; - } else { - return monthsShortDot[m.month()]; - } - }, - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY H:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', - }, - calendar: { - sameDay: function () { - return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextDay: function () { - return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextWeek: function () { - return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastDay: function () { - return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastWeek: function () { - return ( - '[el] dddd [pasado a la' + - (this.hours() !== 1 ? 's' : '') + - '] LT' - ); - }, - sameElse: 'L', - }, - relativeTime: { - future: 'en %s', - past: 'hace %s', - s: 'unos segundos', - ss: '%d segundos', - m: 'un minuto', - mm: '%d minutos', - h: 'una hora', - hh: '%d horas', - d: 'un día', - dd: '%d días', - w: 'una semana', - ww: '%d semanas', - M: 'un mes', - MM: '%d meses', - y: 'un año', - yy: '%d años', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - invalidDate: 'Fecha inválida', + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0]); }); - return es; + // MOMENTS -}))); + var getSetDayOfMonth = makeGetSet('Date', true); + // FORMATTING -/***/ }), + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/et.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/et.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + // ALIASES -//! moment.js locale configuration -//! locale : Estonian [et] -//! author : Henry Kehlmann : https://github.com/madhenry -//! improvements : Illimar Tambek : https://github.com/ragulka + addUnitAlias('dayOfYear', 'DDD'); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // PRIORITY + addUnitPriority('dayOfYear', 4); - //! moment.js locale configuration + // PARSING - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'], - ss: [number + 'sekundi', number + 'sekundit'], - m: ['ühe minuti', 'üks minut'], - mm: [number + ' minuti', number + ' minutit'], - h: ['ühe tunni', 'tund aega', 'üks tund'], - hh: [number + ' tunni', number + ' tundi'], - d: ['ühe päeva', 'üks päev'], - M: ['kuu aja', 'kuu aega', 'üks kuu'], - MM: [number + ' kuu', number + ' kuud'], - y: ['ühe aasta', 'aasta', 'üks aasta'], - yy: [number + ' aasta', number + ' aastat'], - }; - if (withoutSuffix) { - return format[key][2] ? format[key][2] : format[key][1]; - } - return isFuture ? format[key][0] : format[key][1]; + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + // MOMENTS + + function getSetDayOfYear(input) { + var dayOfYear = + Math.round( + (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5 + ) + 1; + return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); } - var et = moment.defineLocale('et', { - months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( - '_' - ), - monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split( - '_' - ), - weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split( - '_' - ), - weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), - weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[Täna,] LT', - nextDay: '[Homme,] LT', - nextWeek: '[Järgmine] dddd LT', - lastDay: '[Eile,] LT', - lastWeek: '[Eelmine] dddd LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s pärast', - past: '%s tagasi', - s: processRelativeTime, - ss: processRelativeTime, - m: processRelativeTime, - mm: processRelativeTime, - h: processRelativeTime, - hh: processRelativeTime, - d: processRelativeTime, - dd: '%d päeva', - M: processRelativeTime, - MM: processRelativeTime, - y: processRelativeTime, - yy: processRelativeTime, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + // FORMATTING - return et; + addFormatToken('m', ['mm', 2], 0, 'minute'); -}))); + // ALIASES + addUnitAlias('minute', 'm'); -/***/ }), + // PRIORITY -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/eu.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/eu.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + addUnitPriority('minute', 14); -//! moment.js locale configuration -//! locale : Basque [eu] -//! author : Eneko Illarramendi : https://github.com/eillarra + // PARSING -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + addRegexToken('m', match1to2); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); - //! moment.js locale configuration + // MOMENTS - var eu = moment.defineLocale('eu', { - months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( - '_' - ), - monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( - '_' - ), - weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), - weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'YYYY[ko] MMMM[ren] D[a]', - LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', - LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', - l: 'YYYY-M-D', - ll: 'YYYY[ko] MMM D[a]', - lll: 'YYYY[ko] MMM D[a] HH:mm', - llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', - }, - calendar: { - sameDay: '[gaur] LT[etan]', - nextDay: '[bihar] LT[etan]', - nextWeek: 'dddd LT[etan]', - lastDay: '[atzo] LT[etan]', - lastWeek: '[aurreko] dddd LT[etan]', - sameElse: 'L', - }, - relativeTime: { - future: '%s barru', - past: 'duela %s', - s: 'segundo batzuk', - ss: '%d segundo', - m: 'minutu bat', - mm: '%d minutu', - h: 'ordu bat', - hh: '%d ordu', - d: 'egun bat', - dd: '%d egun', - M: 'hilabete bat', - MM: '%d hilabete', - y: 'urte bat', - yy: '%d urte', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, + var getSetMinute = makeGetSet('Minutes', false); + + // FORMATTING + + addFormatToken('s', ['ss', 2], 0, 'second'); + + // ALIASES + + addUnitAlias('second', 's'); + + // PRIORITY + + addUnitPriority('second', 15); + + // PARSING + + addRegexToken('s', match1to2); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); + + // MOMENTS + + var getSetSecond = makeGetSet('Seconds', false); + + // FORMATTING + + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); }); - return eu; + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); -}))); + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); + // ALIASES -/***/ }), + addUnitAlias('millisecond', 'ms'); + + // PRIORITY + + addUnitPriority('millisecond', 16); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token, getSetMillisecond; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + } + + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } + + getSetMillisecond = makeGetSet('Milliseconds', false); + + // FORMATTING + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr() { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName() { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var proto = Moment.prototype; -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fa.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fa.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + proto.add = add; + proto.calendar = calendar$1; + proto.clone = clone; + proto.diff = diff; + proto.endOf = endOf; + proto.format = format; + proto.from = from; + proto.fromNow = fromNow; + proto.to = to; + proto.toNow = toNow; + proto.get = stringGet; + proto.invalidAt = invalidAt; + proto.isAfter = isAfter; + proto.isBefore = isBefore; + proto.isBetween = isBetween; + proto.isSame = isSame; + proto.isSameOrAfter = isSameOrAfter; + proto.isSameOrBefore = isSameOrBefore; + proto.isValid = isValid$2; + proto.lang = lang; + proto.locale = locale; + proto.localeData = localeData; + proto.max = prototypeMax; + proto.min = prototypeMin; + proto.parsingFlags = parsingFlags; + proto.set = stringSet; + proto.startOf = startOf; + proto.subtract = subtract; + proto.toArray = toArray; + proto.toObject = toObject; + proto.toDate = toDate; + proto.toISOString = toISOString; + proto.inspect = inspect; + if (typeof Symbol !== 'undefined' && Symbol.for != null) { + proto[Symbol.for('nodejs.util.inspect.custom')] = function () { + return 'Moment<' + this.format() + '>'; + }; + } + proto.toJSON = toJSON; + proto.toString = toString; + proto.unix = unix; + proto.valueOf = valueOf; + proto.creationData = creationData; + proto.eraName = getEraName; + proto.eraNarrow = getEraNarrow; + proto.eraAbbr = getEraAbbr; + proto.eraYear = getEraYear; + proto.year = getSetYear; + proto.isLeapYear = getIsLeapYear; + proto.weekYear = getSetWeekYear; + proto.isoWeekYear = getSetISOWeekYear; + proto.quarter = proto.quarters = getSetQuarter; + proto.month = getSetMonth; + proto.daysInMonth = getDaysInMonth; + proto.week = proto.weeks = getSetWeek; + proto.isoWeek = proto.isoWeeks = getSetISOWeek; + proto.weeksInYear = getWeeksInYear; + proto.weeksInWeekYear = getWeeksInWeekYear; + proto.isoWeeksInYear = getISOWeeksInYear; + proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; + proto.date = getSetDayOfMonth; + proto.day = proto.days = getSetDayOfWeek; + proto.weekday = getSetLocaleDayOfWeek; + proto.isoWeekday = getSetISODayOfWeek; + proto.dayOfYear = getSetDayOfYear; + proto.hour = proto.hours = getSetHour; + proto.minute = proto.minutes = getSetMinute; + proto.second = proto.seconds = getSetSecond; + proto.millisecond = proto.milliseconds = getSetMillisecond; + proto.utcOffset = getSetOffset; + proto.utc = setOffsetToUTC; + proto.local = setOffsetToLocal; + proto.parseZone = setOffsetToParsedOffset; + proto.hasAlignedHourOffset = hasAlignedHourOffset; + proto.isDST = isDaylightSavingTime; + proto.isLocal = isLocal; + proto.isUtcOffset = isUtcOffset; + proto.isUtc = isUtc; + proto.isUTC = isUtc; + proto.zoneAbbr = getZoneAbbr; + proto.zoneName = getZoneName; + proto.dates = deprecate( + 'dates accessor is deprecated. Use date instead.', + getSetDayOfMonth + ); + proto.months = deprecate( + 'months accessor is deprecated. Use month instead', + getSetMonth + ); + proto.years = deprecate( + 'years accessor is deprecated. Use year instead', + getSetYear + ); + proto.zone = deprecate( + 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', + getSetZone + ); + proto.isDSTShifted = deprecate( + 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', + isDaylightSavingTimeShifted + ); -//! moment.js locale configuration -//! locale : Persian [fa] -//! author : Ebrahim Byagowi : https://github.com/ebraminio + function createUnix(input) { + return createLocal(input * 1000); + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function createInZone() { + return createLocal.apply(null, arguments).parseZone(); + } - //! moment.js locale configuration + function preParsePostFormat(string) { + return string; + } - var symbolMap = { - 1: '۱', - 2: '۲', - 3: '۳', - 4: '۴', - 5: '۵', - 6: '۶', - 7: '۷', - 8: '۸', - 9: '۹', - 0: '۰', - }, - numberMap = { - '۱': '1', - '۲': '2', - '۳': '3', - '۴': '4', - '۵': '5', - '۶': '6', - '۷': '7', - '۸': '8', - '۹': '9', - '۰': '0', - }; + var proto$1 = Locale.prototype; - var fa = moment.defineLocale('fa', { - months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( - '_' - ), - monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( - '_' - ), - weekdays: 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( - '_' - ), - weekdaysShort: 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( - '_' - ), - weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - meridiemParse: /قبل از ظهر|بعد از ظهر/, - isPM: function (input) { - return /بعد از ظهر/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'قبل از ظهر'; - } else { - return 'بعد از ظهر'; - } - }, - calendar: { - sameDay: '[امروز ساعت] LT', - nextDay: '[فردا ساعت] LT', - nextWeek: 'dddd [ساعت] LT', - lastDay: '[دیروز ساعت] LT', - lastWeek: 'dddd [پیش] [ساعت] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'در %s', - past: '%s پیش', - s: 'چند ثانیه', - ss: '%d ثانیه', - m: 'یک دقیقه', - mm: '%d دقیقه', - h: 'یک ساعت', - hh: '%d ساعت', - d: 'یک روز', - dd: '%d روز', - M: 'یک ماه', - MM: '%d ماه', - y: 'یک سال', - yy: '%d سال', - }, - preparse: function (string) { - return string - .replace(/[۰-۹]/g, function (match) { - return numberMap[match]; - }) - .replace(/،/g, ','); - }, - postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap[match]; - }) - .replace(/,/g, '،'); - }, - dayOfMonthOrdinalParse: /\d{1,2}م/, - ordinal: '%dم', - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); + proto$1.calendar = calendar; + proto$1.longDateFormat = longDateFormat; + proto$1.invalidDate = invalidDate; + proto$1.ordinal = ordinal; + proto$1.preparse = preParsePostFormat; + proto$1.postformat = preParsePostFormat; + proto$1.relativeTime = relativeTime; + proto$1.pastFuture = pastFuture; + proto$1.set = set; + proto$1.eras = localeEras; + proto$1.erasParse = localeErasParse; + proto$1.erasConvertYear = localeErasConvertYear; + proto$1.erasAbbrRegex = erasAbbrRegex; + proto$1.erasNameRegex = erasNameRegex; + proto$1.erasNarrowRegex = erasNarrowRegex; - return fa; + proto$1.months = localeMonths; + proto$1.monthsShort = localeMonthsShort; + proto$1.monthsParse = localeMonthsParse; + proto$1.monthsRegex = monthsRegex; + proto$1.monthsShortRegex = monthsShortRegex; + proto$1.week = localeWeek; + proto$1.firstDayOfYear = localeFirstDayOfYear; + proto$1.firstDayOfWeek = localeFirstDayOfWeek; -}))); + proto$1.weekdays = localeWeekdays; + proto$1.weekdaysMin = localeWeekdaysMin; + proto$1.weekdaysShort = localeWeekdaysShort; + proto$1.weekdaysParse = localeWeekdaysParse; + proto$1.weekdaysRegex = weekdaysRegex; + proto$1.weekdaysShortRegex = weekdaysShortRegex; + proto$1.weekdaysMinRegex = weekdaysMinRegex; -/***/ }), + proto$1.isPM = localeIsPM; + proto$1.meridiem = localeMeridiem; -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fi.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fi.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function get$1(format, index, field, setter) { + var locale = getLocale(), + utc = createUTC().set(setter, index); + return locale[field](utc, format); + } -//! moment.js locale configuration -//! locale : Finnish [fi] -//! author : Tarmo Aidantausta : https://github.com/bleadof + function listMonthsImpl(format, index, field) { + if (isNumber(format)) { + index = format; + format = undefined; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + format = format || ''; - //! moment.js locale configuration + if (index != null) { + return get$1(format, index, field, 'month'); + } - var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split( - ' ' - ), - numbersFuture = [ - 'nolla', - 'yhden', - 'kahden', - 'kolmen', - 'neljän', - 'viiden', - 'kuuden', - numbersPast[7], - numbersPast[8], - numbersPast[9], - ]; - function translate(number, withoutSuffix, key, isFuture) { - var result = ''; - switch (key) { - case 's': - return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; - case 'ss': - result = isFuture ? 'sekunnin' : 'sekuntia'; - break; - case 'm': - return isFuture ? 'minuutin' : 'minuutti'; - case 'mm': - result = isFuture ? 'minuutin' : 'minuuttia'; - break; - case 'h': - return isFuture ? 'tunnin' : 'tunti'; - case 'hh': - result = isFuture ? 'tunnin' : 'tuntia'; - break; - case 'd': - return isFuture ? 'päivän' : 'päivä'; - case 'dd': - result = isFuture ? 'päivän' : 'päivää'; - break; - case 'M': - return isFuture ? 'kuukauden' : 'kuukausi'; - case 'MM': - result = isFuture ? 'kuukauden' : 'kuukautta'; - break; - case 'y': - return isFuture ? 'vuoden' : 'vuosi'; - case 'yy': - result = isFuture ? 'vuoden' : 'vuotta'; - break; + var i, + out = []; + for (i = 0; i < 12; i++) { + out[i] = get$1(format, i, field, 'month'); } - result = verbalNumber(number, isFuture) + ' ' + result; - return result; - } - function verbalNumber(number, isFuture) { - return number < 10 - ? isFuture - ? numbersFuture[number] - : numbersPast[number] - : number; + return out; } - var fi = moment.defineLocale('fi', { - months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( - '_' - ), - monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split( - '_' - ), - weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( - '_' - ), - weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), - weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD.MM.YYYY', - LL: 'Do MMMM[ta] YYYY', - LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm', - LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', - l: 'D.M.YYYY', - ll: 'Do MMM YYYY', - lll: 'Do MMM YYYY, [klo] HH.mm', - llll: 'ddd, Do MMM YYYY, [klo] HH.mm', - }, - calendar: { - sameDay: '[tänään] [klo] LT', - nextDay: '[huomenna] [klo] LT', - nextWeek: 'dddd [klo] LT', - lastDay: '[eilen] [klo] LT', - lastWeek: '[viime] dddd[na] [klo] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s päästä', - past: '%s sitten', - s: translate, - ss: translate, - m: translate, - mm: translate, - h: translate, - hh: translate, - d: translate, - dd: translate, - M: translate, - MM: translate, - y: translate, - yy: translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - return fi; - -}))); - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fil.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fil.js ***! - \***************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -//! moment.js locale configuration -//! locale : Filipino [fil] -//! author : Dan Hagman : https://github.com/hagmandan -//! author : Matthew Co : https://github.com/matthewdeeco + // () + // (5) + // (fmt, 5) + // (fmt) + // (true) + // (true, 5) + // (true, fmt, 5) + // (true, fmt) + function listWeekdaysImpl(localeSorted, format, index, field) { + if (typeof localeSorted === 'boolean') { + if (isNumber(format)) { + index = format; + format = undefined; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + format = format || ''; + } else { + format = localeSorted; + index = format; + localeSorted = false; - //! moment.js locale configuration + if (isNumber(format)) { + index = format; + format = undefined; + } - var fil = moment.defineLocale('fil', { - months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( - '_' - ), - monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), - weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( - '_' - ), - weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), - weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'MM/D/YYYY', - LL: 'MMMM D, YYYY', - LLL: 'MMMM D, YYYY HH:mm', - LLLL: 'dddd, MMMM DD, YYYY HH:mm', - }, - calendar: { - sameDay: 'LT [ngayong araw]', - nextDay: '[Bukas ng] LT', - nextWeek: 'LT [sa susunod na] dddd', - lastDay: 'LT [kahapon]', - lastWeek: 'LT [noong nakaraang] dddd', - sameElse: 'L', - }, - relativeTime: { - future: 'sa loob ng %s', - past: '%s ang nakalipas', - s: 'ilang segundo', - ss: '%d segundo', - m: 'isang minuto', - mm: '%d minuto', - h: 'isang oras', - hh: '%d oras', - d: 'isang araw', - dd: '%d araw', - M: 'isang buwan', - MM: '%d buwan', - y: 'isang taon', - yy: '%d taon', - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal: function (number) { - return number; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + format = format || ''; + } - return fil; + var locale = getLocale(), + shift = localeSorted ? locale._week.dow : 0, + i, + out = []; -}))); + if (index != null) { + return get$1(format, (index + shift) % 7, field, 'day'); + } + for (i = 0; i < 7; i++) { + out[i] = get$1(format, (i + shift) % 7, field, 'day'); + } + return out; + } -/***/ }), + function listMonths(format, index) { + return listMonthsImpl(format, index, 'months'); + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fo.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fo.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function listMonthsShort(format, index) { + return listMonthsImpl(format, index, 'monthsShort'); + } -//! moment.js locale configuration -//! locale : Faroese [fo] -//! author : Ragnar Johannesen : https://github.com/ragnar123 -//! author : Kristian Sakarisson : https://github.com/sakarisson + function listWeekdays(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function listWeekdaysShort(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); + } - //! moment.js locale configuration + function listWeekdaysMin(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); + } - var fo = moment.defineLocale('fo', { - months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split( - '_' - ), - monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), - weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split( - '_' - ), - weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'), - weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D. MMMM, YYYY HH:mm', - }, - calendar: { - sameDay: '[Í dag kl.] LT', - nextDay: '[Í morgin kl.] LT', - nextWeek: 'dddd [kl.] LT', - lastDay: '[Í gjár kl.] LT', - lastWeek: '[síðstu] dddd [kl] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'um %s', - past: '%s síðani', - s: 'fá sekund', - ss: '%d sekundir', - m: 'ein minuttur', - mm: '%d minuttir', - h: 'ein tími', - hh: '%d tímar', - d: 'ein dagur', - dd: '%d dagar', - M: 'ein mánaður', - MM: '%d mánaðir', - y: 'eitt ár', - yy: '%d ár', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + getSetGlobalLocale('en', { + eras: [ + { + since: '0001-01-01', + until: +Infinity, + offset: 1, + name: 'Anno Domini', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: 'Before Christ', + narrow: 'BC', + abbr: 'BC', + }, + ], + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + toInt((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; }, }); - return fo; - -}))); - + // Side effect imports -/***/ }), + hooks.lang = deprecate( + 'moment.lang is deprecated. Use moment.locale instead.', + getSetGlobalLocale + ); + hooks.langData = deprecate( + 'moment.langData is deprecated. Use moment.localeData instead.', + getLocale + ); -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr-ca.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr-ca.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + var mathAbs = Math.abs; -//! moment.js locale configuration -//! locale : French (Canada) [fr-ca] -//! author : Jonathan Abourbih : https://github.com/jonbca + function abs() { + var data = this._data; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); - //! moment.js locale configuration + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); - var frCa = moment.defineLocale('fr-ca', { - months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( - '_' - ), - monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), - weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), - weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Aujourd’hui à] LT', - nextDay: '[Demain à] LT', - nextWeek: 'dddd [à] LT', - lastDay: '[Hier à] LT', - lastWeek: 'dddd [dernier à] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dans %s', - past: 'il y a %s', - s: 'quelques secondes', - ss: '%d secondes', - m: 'une minute', - mm: '%d minutes', - h: 'une heure', - hh: '%d heures', - d: 'un jour', - dd: '%d jours', - M: 'un mois', - MM: '%d mois', - y: 'un an', - yy: '%d ans', - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal: function (number, period) { - switch (period) { - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'D': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); + return this; + } - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - }, - }); + function addSubtract$1(duration, input, value, direction) { + var other = createDuration(input, value); - return frCa; + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; -}))); + return duration._bubble(); + } + // supports only 2.0-style add(1, 's') or add(duration) + function add$1(input, value) { + return addSubtract$1(this, input, value, 1); + } -/***/ }), + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function subtract$1(input, value) { + return addSubtract$1(this, input, value, -1); + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr-ch.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr-ch.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function absCeil(number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } -//! moment.js locale configuration -//! locale : French (Switzerland) [fr-ch] -//! author : Gaspard Bucher : https://github.com/gaspard + function bubble() { + var milliseconds = this._milliseconds, + days = this._days, + months = this._months, + data = this._data, + seconds, + minutes, + hours, + years, + monthsFromDays; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if ( + !( + (milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0) + ) + ) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } - //! moment.js locale configuration + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; - var frCh = moment.defineLocale('fr-ch', { - months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( - '_' - ), - monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), - weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), - weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Aujourd’hui à] LT', - nextDay: '[Demain à] LT', - nextWeek: 'dddd [à] LT', - lastDay: '[Hier à] LT', - lastWeek: 'dddd [dernier à] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dans %s', - past: 'il y a %s', - s: 'quelques secondes', - ss: '%d secondes', - m: 'une minute', - mm: '%d minutes', - h: 'une heure', - hh: '%d heures', - d: 'un jour', - dd: '%d jours', - M: 'un mois', - MM: '%d mois', - y: 'un an', - yy: '%d ans', - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal: function (number, period) { - switch (period) { - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'D': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; - return frCh; + hours = absFloor(minutes / 60); + data.hours = hours % 24; -}))); + days += absFloor(hours / 24); + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); -/***/ }), + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + data.days = days; + data.months = months; + data.years = years; -//! moment.js locale configuration -//! locale : French [fr] -//! author : John Fischer : https://github.com/jfroffice + return this; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function daysToMonths(days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return (days * 4800) / 146097; + } - //! moment.js locale configuration + function monthsToDays(months) { + // the reverse of daysToMonths + return (months * 146097) / 4800; + } - var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, - monthsShortStrictRegex = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i, - monthsRegex = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, - monthsParse = [ - /^janv/i, - /^févr/i, - /^mars/i, - /^avr/i, - /^mai/i, - /^juin/i, - /^juil/i, - /^août/i, - /^sept/i, - /^oct/i, - /^nov/i, - /^déc/i, - ]; + function as(units) { + if (!this.isValid()) { + return NaN; + } + var days, + months, + milliseconds = this._milliseconds; - var fr = moment.defineLocale('fr', { - months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( - '_' - ), - monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( - '_' - ), - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: monthsStrictRegex, - monthsShortStrictRegex: monthsShortStrictRegex, - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), - weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), - weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Aujourd’hui à] LT', - nextDay: '[Demain à] LT', - nextWeek: 'dddd [à] LT', - lastDay: '[Hier à] LT', - lastWeek: 'dddd [dernier à] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dans %s', - past: 'il y a %s', - s: 'quelques secondes', - ss: '%d secondes', - m: 'une minute', - mm: '%d minutes', - h: 'une heure', - hh: '%d heures', - d: 'un jour', - dd: '%d jours', - w: 'une semaine', - ww: '%d semaines', - M: 'un mois', - MM: '%d mois', - y: 'un an', - yy: '%d ans', - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|)/, - ordinal: function (number, period) { - switch (period) { - // TODO: Return 'e' when day of month > 1. Move this case inside - // block for masculine words below. - // See https://github.com/moment/moment/issues/3375 - case 'D': - return number + (number === 1 ? 'er' : ''); + units = normalizeUnits(units); - // Words with masculine grammatical gender: mois, trimestre, jour + if (units === 'month' || units === 'quarter' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + switch (units) { + case 'month': + return months; + case 'quarter': + return months / 3; + case 'year': + return months / 12; + } + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week': + return days / 7 + milliseconds / 6048e5; + case 'day': + return days + milliseconds / 864e5; + case 'hour': + return days * 24 + milliseconds / 36e5; + case 'minute': + return days * 1440 + milliseconds / 6e4; + case 'second': + return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': + return Math.floor(days * 864e5) + milliseconds; default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); + throw new Error('Unknown unit ' + units); } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - return fr; + } + } -}))); + // TODO: Use this.as('ms')? + function valueOf$1() { + if (!this.isValid()) { + return NaN; + } + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } + function makeAs(alias) { + return function () { + return this.as(alias); + }; + } -/***/ }), + var asMilliseconds = makeAs('ms'), + asSeconds = makeAs('s'), + asMinutes = makeAs('m'), + asHours = makeAs('h'), + asDays = makeAs('d'), + asWeeks = makeAs('w'), + asMonths = makeAs('M'), + asQuarters = makeAs('Q'), + asYears = makeAs('y'); -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fy.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fy.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function clone$1() { + return createDuration(this); + } -//! moment.js locale configuration -//! locale : Frisian [fy] -//! author : Robin van der Vliet : https://github.com/robin0van0der0v + function get$2(units) { + units = normalizeUnits(units); + return this.isValid() ? this[units + 's']() : NaN; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function makeGetter(name) { + return function () { + return this.isValid() ? this._data[name] : NaN; + }; + } - //! moment.js locale configuration + var milliseconds = makeGetter('milliseconds'), + seconds = makeGetter('seconds'), + minutes = makeGetter('minutes'), + hours = makeGetter('hours'), + days = makeGetter('days'), + months = makeGetter('months'), + years = makeGetter('years'); - var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split( - '_' - ), - monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split( - '_' - ); + function weeks() { + return absFloor(this.days() / 7); + } - var fy = moment.defineLocale('fy', { - months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortWithDots; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots[m.month()]; - } else { - return monthsShortWithDots[m.month()]; - } - }, - monthsParseExact: true, - weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( - '_' - ), - weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), - weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD-MM-YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[hjoed om] LT', - nextDay: '[moarn om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[juster om] LT', - lastWeek: '[ôfrûne] dddd [om] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'oer %s', - past: '%s lyn', - s: 'in pear sekonden', - ss: '%d sekonden', - m: 'ien minút', - mm: '%d minuten', - h: 'ien oere', - hh: '%d oeren', - d: 'ien dei', - dd: '%d dagen', - M: 'ien moanne', - MM: '%d moannen', - y: 'ien jier', - yy: '%d jierren', - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal: function (number) { - return ( - number + - (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') - ); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + var round = Math.round, + thresholds = { + ss: 44, // a few seconds to seconds + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month/week + w: null, // weeks to month + M: 11, // months to year + }; - return fy; + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } -}))); + function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) { + var duration = createDuration(posNegDuration).abs(), + seconds = round(duration.as('s')), + minutes = round(duration.as('m')), + hours = round(duration.as('h')), + days = round(duration.as('d')), + months = round(duration.as('M')), + weeks = round(duration.as('w')), + years = round(duration.as('y')), + a = + (seconds <= thresholds.ss && ['s', seconds]) || + (seconds < thresholds.s && ['ss', seconds]) || + (minutes <= 1 && ['m']) || + (minutes < thresholds.m && ['mm', minutes]) || + (hours <= 1 && ['h']) || + (hours < thresholds.h && ['hh', hours]) || + (days <= 1 && ['d']) || + (days < thresholds.d && ['dd', days]); + if (thresholds.w != null) { + a = + a || + (weeks <= 1 && ['w']) || + (weeks < thresholds.w && ['ww', weeks]); + } + a = a || + (months <= 1 && ['M']) || + (months < thresholds.M && ['MM', months]) || + (years <= 1 && ['y']) || ['yy', years]; -/***/ }), + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ga.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ga.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + // This function allows you to set the rounding function for relative time strings + function getSetRelativeTimeRounding(roundingFunction) { + if (roundingFunction === undefined) { + return round; + } + if (typeof roundingFunction === 'function') { + round = roundingFunction; + return true; + } + return false; + } -//! moment.js locale configuration -//! locale : Irish or Irish Gaelic [ga] -//! author : André Silva : https://github.com/askpt + // This function allows you to set a threshold for relative time strings + function getSetRelativeTimeThreshold(threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + if (threshold === 's') { + thresholds.ss = limit - 1; + } + return true; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function humanize(argWithSuffix, argThresholds) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } - //! moment.js locale configuration + var withSuffix = false, + th = thresholds, + locale, + output; - var months = [ - 'Eanáir', - 'Feabhra', - 'Márta', - 'Aibreán', - 'Bealtaine', - 'Meitheamh', - 'Iúil', - 'Lúnasa', - 'Meán Fómhair', - 'Deireadh Fómhair', - 'Samhain', - 'Nollaig', - ], - monthsShort = [ - 'Ean', - 'Feabh', - 'Márt', - 'Aib', - 'Beal', - 'Meith', - 'Iúil', - 'Lún', - 'M.F.', - 'D.F.', - 'Samh', - 'Noll', - ], - weekdays = [ - 'Dé Domhnaigh', - 'Dé Luain', - 'Dé Máirt', - 'Dé Céadaoin', - 'Déardaoin', - 'Dé hAoine', - 'Dé Sathairn', - ], - weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'], - weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa']; + if (typeof argWithSuffix === 'object') { + argThresholds = argWithSuffix; + argWithSuffix = false; + } + if (typeof argWithSuffix === 'boolean') { + withSuffix = argWithSuffix; + } + if (typeof argThresholds === 'object') { + th = Object.assign({}, thresholds, argThresholds); + if (argThresholds.s != null && argThresholds.ss == null) { + th.ss = argThresholds.s - 1; + } + } - var ga = moment.defineLocale('ga', { - months: months, - monthsShort: monthsShort, - monthsParseExact: true, - weekdays: weekdays, - weekdaysShort: weekdaysShort, - weekdaysMin: weekdaysMin, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Inniu ag] LT', - nextDay: '[Amárach ag] LT', - nextWeek: 'dddd [ag] LT', - lastDay: '[Inné ag] LT', - lastWeek: 'dddd [seo caite] [ag] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'i %s', - past: '%s ó shin', - s: 'cúpla soicind', - ss: '%d soicind', - m: 'nóiméad', - mm: '%d nóiméad', - h: 'uair an chloig', - hh: '%d uair an chloig', - d: 'lá', - dd: '%d lá', - M: 'mí', - MM: '%d míonna', - y: 'bliain', - yy: '%d bliain', - }, - dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, - ordinal: function (number) { - var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + locale = this.localeData(); + output = relativeTime$1(this, !withSuffix, th, locale); - return ga; + if (withSuffix) { + output = locale.pastFuture(+this, output); + } -}))); + return locale.postformat(output); + } + var abs$1 = Math.abs; -/***/ }), + function sign(x) { + return (x > 0) - (x < 0) || +x; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gd.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gd.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function toISOString$1() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + if (!this.isValid()) { + return this.localeData().invalidDate(); + } -//! moment.js locale configuration -//! locale : Scottish Gaelic [gd] -//! author : Jon Ashdown : https://github.com/jonashdown + var seconds = abs$1(this._milliseconds) / 1000, + days = abs$1(this._days), + months = abs$1(this._months), + minutes, + hours, + years, + s, + total = this.asSeconds(), + totalSign, + ymSign, + daysSign, + hmsSign; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } - //! moment.js locale configuration + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; - var months = [ - 'Am Faoilleach', - 'An Gearran', - 'Am Màrt', - 'An Giblean', - 'An Cèitean', - 'An t-Ògmhios', - 'An t-Iuchar', - 'An Lùnastal', - 'An t-Sultain', - 'An Dàmhair', - 'An t-Samhain', - 'An Dùbhlachd', - ], - monthsShort = [ - 'Faoi', - 'Gear', - 'Màrt', - 'Gibl', - 'Cèit', - 'Ògmh', - 'Iuch', - 'Lùn', - 'Sult', - 'Dàmh', - 'Samh', - 'Dùbh', - ], - weekdays = [ - 'Didòmhnaich', - 'Diluain', - 'Dimàirt', - 'Diciadain', - 'Diardaoin', - 'Dihaoine', - 'Disathairne', - ], - weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], - weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa']; + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; - var gd = moment.defineLocale('gd', { - months: months, - monthsShort: monthsShort, - monthsParseExact: true, - weekdays: weekdays, - weekdaysShort: weekdaysShort, - weekdaysMin: weekdaysMin, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[An-diugh aig] LT', - nextDay: '[A-màireach aig] LT', - nextWeek: 'dddd [aig] LT', - lastDay: '[An-dè aig] LT', - lastWeek: 'dddd [seo chaidh] [aig] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'ann an %s', - past: 'bho chionn %s', - s: 'beagan diogan', - ss: '%d diogan', - m: 'mionaid', - mm: '%d mionaidean', - h: 'uair', - hh: '%d uairean', - d: 'latha', - dd: '%d latha', - M: 'mìos', - MM: '%d mìosan', - y: 'bliadhna', - yy: '%d bliadhna', - }, - dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, - ordinal: function (number) { - var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; - return gd; + totalSign = total < 0 ? '-' : ''; + ymSign = sign(this._months) !== sign(total) ? '-' : ''; + daysSign = sign(this._days) !== sign(total) ? '-' : ''; + hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; -}))); + return ( + totalSign + + 'P' + + (years ? ymSign + years + 'Y' : '') + + (months ? ymSign + months + 'M' : '') + + (days ? daysSign + days + 'D' : '') + + (hours || minutes || seconds ? 'T' : '') + + (hours ? hmsSign + hours + 'H' : '') + + (minutes ? hmsSign + minutes + 'M' : '') + + (seconds ? hmsSign + s + 'S' : '') + ); + } + var proto$2 = Duration.prototype; -/***/ }), + proto$2.isValid = isValid$1; + proto$2.abs = abs; + proto$2.add = add$1; + proto$2.subtract = subtract$1; + proto$2.as = as; + proto$2.asMilliseconds = asMilliseconds; + proto$2.asSeconds = asSeconds; + proto$2.asMinutes = asMinutes; + proto$2.asHours = asHours; + proto$2.asDays = asDays; + proto$2.asWeeks = asWeeks; + proto$2.asMonths = asMonths; + proto$2.asQuarters = asQuarters; + proto$2.asYears = asYears; + proto$2.valueOf = valueOf$1; + proto$2._bubble = bubble; + proto$2.clone = clone$1; + proto$2.get = get$2; + proto$2.milliseconds = milliseconds; + proto$2.seconds = seconds; + proto$2.minutes = minutes; + proto$2.hours = hours; + proto$2.days = days; + proto$2.weeks = weeks; + proto$2.months = months; + proto$2.years = years; + proto$2.humanize = humanize; + proto$2.toISOString = toISOString$1; + proto$2.toString = toISOString$1; + proto$2.toJSON = toISOString$1; + proto$2.locale = locale; + proto$2.localeData = localeData; -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gl.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gl.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + proto$2.toIsoString = deprecate( + 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', + toISOString$1 + ); + proto$2.lang = lang; -//! moment.js locale configuration -//! locale : Galician [gl] -//! author : Juan G. Hurtado : https://github.com/juanghurtado + // FORMATTING -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); - //! moment.js locale configuration + // PARSING - var gl = moment.defineLocale('gl', { - months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split( - '_' - ), - monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY H:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', - }, - calendar: { - sameDay: function () { - return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; - }, - nextDay: function () { - return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; - }, - nextWeek: function () { - return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'; - }, - lastDay: function () { - return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT'; - }, - lastWeek: function () { - return ( - '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT' - ); - }, - sameElse: 'L', - }, - relativeTime: { - future: function (str) { - if (str.indexOf('un') === 0) { - return 'n' + str; - } - return 'en ' + str; - }, - past: 'hai %s', - s: 'uns segundos', - ss: '%d segundos', - m: 'un minuto', - mm: '%d minutos', - h: 'unha hora', - hh: '%d horas', - d: 'un día', - dd: '%d días', - M: 'un mes', - MM: '%d meses', - y: 'un ano', - yy: '%d anos', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); }); - return gl; + //! moment.js + + hooks.version = '2.29.4'; + + setHookCallback(createLocal); + + hooks.fn = proto; + hooks.min = min; + hooks.max = max; + hooks.now = now; + hooks.utc = createUTC; + hooks.unix = createUnix; + hooks.months = listMonths; + hooks.isDate = isDate; + hooks.locale = getSetGlobalLocale; + hooks.invalid = createInvalid; + hooks.duration = createDuration; + hooks.isMoment = isMoment; + hooks.weekdays = listWeekdays; + hooks.parseZone = createInZone; + hooks.localeData = getLocale; + hooks.isDuration = isDuration; + hooks.monthsShort = listMonthsShort; + hooks.weekdaysMin = listWeekdaysMin; + hooks.defineLocale = defineLocale; + hooks.updateLocale = updateLocale; + hooks.locales = listLocales; + hooks.weekdaysShort = listWeekdaysShort; + hooks.normalizeUnits = normalizeUnits; + hooks.relativeTimeRounding = getSetRelativeTimeRounding; + hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; + hooks.calendarFormat = getCalendarFormat; + hooks.prototype = proto; + + // currently HTML5 input type only supports 24-hour formats + hooks.HTML5_FMT = { + DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // + DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // + DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // + DATE: 'YYYY-MM-DD', // + TIME: 'HH:mm', // + TIME_SECONDS: 'HH:mm:ss', // + TIME_MS: 'HH:mm:ss.SSS', // + WEEK: 'GGGG-[W]WW', // + MONTH: 'YYYY-MM', // + }; + + return hooks; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gom-deva.js": -/*!********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gom-deva.js ***! - \********************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/morgan/index.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/morgan/index.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1253500__) => { -//! moment.js locale configuration -//! locale : Konkani Devanagari script [gom-deva] -//! author : The Discoverer : https://github.com/WikiDiscoverer +"use strict"; +/*! + * morgan + * Copyright(c) 2010 Sencha Inc. + * Copyright(c) 2011 TJ Holowaychuk + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - //! moment.js locale configuration - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'], - ss: [number + ' सॅकंडांनी', number + ' सॅकंड'], - m: ['एका मिणटान', 'एक मिनूट'], - mm: [number + ' मिणटांनी', number + ' मिणटां'], - h: ['एका वरान', 'एक वर'], - hh: [number + ' वरांनी', number + ' वरां'], - d: ['एका दिसान', 'एक दीस'], - dd: [number + ' दिसांनी', number + ' दीस'], - M: ['एका म्हयन्यान', 'एक म्हयनो'], - MM: [number + ' म्हयन्यानी', number + ' म्हयने'], - y: ['एका वर्सान', 'एक वर्स'], - yy: [number + ' वर्सांनी', number + ' वर्सां'], - }; - return isFuture ? format[key][0] : format[key][1]; - } +/** + * Module exports. + * @public + */ - var gomDeva = moment.defineLocale('gom-deva', { - months: { - standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( - '_' - ), - format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split( - '_' - ), - isFormat: /MMMM(\s)+D[oD]?/, - }, - monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'), - weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'), - weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'A h:mm [वाजतां]', - LTS: 'A h:mm:ss [वाजतां]', - L: 'DD-MM-YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY A h:mm [वाजतां]', - LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]', - llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]', - }, - calendar: { - sameDay: '[आयज] LT', - nextDay: '[फाल्यां] LT', - nextWeek: '[फुडलो] dddd[,] LT', - lastDay: '[काल] LT', - lastWeek: '[फाटलो] dddd[,] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s', - past: '%s आदीं', - s: processRelativeTime, - ss: processRelativeTime, - m: processRelativeTime, - mm: processRelativeTime, - h: processRelativeTime, - hh: processRelativeTime, - d: processRelativeTime, - dd: processRelativeTime, - M: processRelativeTime, - MM: processRelativeTime, - y: processRelativeTime, - yy: processRelativeTime, - }, - dayOfMonthOrdinalParse: /\d{1,2}(वेर)/, - ordinal: function (number, period) { - switch (period) { - // the ordinal 'वेर' only applies to day of the month - case 'D': - return number + 'वेर'; - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - case 'w': - case 'W': - return number; - } - }, - week: { - dow: 0, // Sunday is the first day of the week - doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) - }, - meridiemParse: /राती|सकाळीं|दनपारां|सांजे/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'राती') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'सकाळीं') { - return hour; - } else if (meridiem === 'दनपारां') { - return hour > 12 ? hour : hour + 12; - } else if (meridiem === 'सांजे') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'राती'; - } else if (hour < 12) { - return 'सकाळीं'; - } else if (hour < 16) { - return 'दनपारां'; - } else if (hour < 20) { - return 'सांजे'; - } else { - return 'राती'; - } - }, - }); +module.exports = morgan +module.exports.compile = compile +module.exports.format = format +module.exports.token = token - return gomDeva; +/** + * Module dependencies. + * @private + */ -}))); +var auth = __nested_webpack_require_1253500__(/*! basic-auth */ "./build/cht-core-4-6/api/node_modules/basic-auth/index.js") +var debug = __nested_webpack_require_1253500__(/*! debug */ "./build/cht-core-4-6/api/node_modules/debug/src/index.js")('morgan') +var deprecate = __nested_webpack_require_1253500__(/*! depd */ "./build/cht-core-4-6/api/node_modules/depd/index.js")('morgan') +var onFinished = __nested_webpack_require_1253500__(/*! on-finished */ "./build/cht-core-4-6/api/node_modules/on-finished/index.js") +var onHeaders = __nested_webpack_require_1253500__(/*! on-headers */ "./build/cht-core-4-6/api/node_modules/on-headers/index.js") +/** + * Array of CLF month names. + * @private + */ -/***/ }), +var CLF_MONTH = [ + 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' +] -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gom-latn.js": -/*!********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gom-latn.js ***! - \********************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/** + * Default log buffer duration. + * @private + */ -//! moment.js locale configuration -//! locale : Konkani Latin script [gom-latn] -//! author : The Discoverer : https://github.com/WikiDiscoverer +var DEFAULT_BUFFER_DURATION = 1000 -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +/** + * Create a logger middleware. + * + * @public + * @param {String|Function} format + * @param {Object} [options] + * @return {Function} middleware + */ - //! moment.js locale configuration +function morgan (format, options) { + var fmt = format + var opts = options || {} - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - s: ['thoddea sekondamni', 'thodde sekond'], - ss: [number + ' sekondamni', number + ' sekond'], - m: ['eka mintan', 'ek minut'], - mm: [number + ' mintamni', number + ' mintam'], - h: ['eka voran', 'ek vor'], - hh: [number + ' voramni', number + ' voram'], - d: ['eka disan', 'ek dis'], - dd: [number + ' disamni', number + ' dis'], - M: ['eka mhoinean', 'ek mhoino'], - MM: [number + ' mhoineamni', number + ' mhoine'], - y: ['eka vorsan', 'ek voros'], - yy: [number + ' vorsamni', number + ' vorsam'], - }; - return isFuture ? format[key][0] : format[key][1]; - } + if (format && typeof format === 'object') { + opts = format + fmt = opts.format || 'default' - var gomLatn = moment.defineLocale('gom-latn', { - months: { - standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( - '_' - ), - format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( - '_' - ), - isFormat: /MMMM(\s)+D[oD]?/, - }, - monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split( - '_' - ), - monthsParseExact: true, - weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), - weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), - weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'A h:mm [vazta]', - LTS: 'A h:mm:ss [vazta]', - L: 'DD-MM-YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY A h:mm [vazta]', - LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', - llll: 'ddd, D MMM YYYY, A h:mm [vazta]', - }, - calendar: { - sameDay: '[Aiz] LT', - nextDay: '[Faleam] LT', - nextWeek: '[Fuddlo] dddd[,] LT', - lastDay: '[Kal] LT', - lastWeek: '[Fattlo] dddd[,] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s', - past: '%s adim', - s: processRelativeTime, - ss: processRelativeTime, - m: processRelativeTime, - mm: processRelativeTime, - h: processRelativeTime, - hh: processRelativeTime, - d: processRelativeTime, - dd: processRelativeTime, - M: processRelativeTime, - MM: processRelativeTime, - y: processRelativeTime, - yy: processRelativeTime, - }, - dayOfMonthOrdinalParse: /\d{1,2}(er)/, - ordinal: function (number, period) { - switch (period) { - // the ordinal 'er' only applies to day of the month - case 'D': - return number + 'er'; - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - case 'w': - case 'W': - return number; - } - }, - week: { - dow: 0, // Sunday is the first day of the week - doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) - }, - meridiemParse: /rati|sokallim|donparam|sanje/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'rati') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'sokallim') { - return hour; - } else if (meridiem === 'donparam') { - return hour > 12 ? hour : hour + 12; - } else if (meridiem === 'sanje') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'rati'; - } else if (hour < 12) { - return 'sokallim'; - } else if (hour < 16) { - return 'donparam'; - } else if (hour < 20) { - return 'sanje'; - } else { - return 'rati'; - } - }, - }); + // smart deprecation message + deprecate('morgan(options): use morgan(' + (typeof fmt === 'string' ? JSON.stringify(fmt) : 'format') + ', options) instead') + } - return gomLatn; + if (fmt === undefined) { + deprecate('undefined format: specify a format') + } -}))); + // output on request instead of response + var immediate = opts.immediate + // check if log entry should be skipped + var skip = opts.skip || false -/***/ }), + // format function + var formatLine = typeof fmt !== 'function' + ? getFormatFunction(fmt) + : fmt -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gu.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gu.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + // stream + var buffer = opts.buffer + var stream = opts.stream || process.stdout -//! moment.js locale configuration -//! locale : Gujarati [gu] -//! author : Kaushik Thanki : https://github.com/Kaushik1987 + // buffering support + if (buffer) { + deprecate('buffer option') -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // flush interval + var interval = typeof buffer !== 'number' + ? DEFAULT_BUFFER_DURATION + : buffer - //! moment.js locale configuration + // swap the stream + stream = createBufferStream(stream, interval) + } - var symbolMap = { - 1: '૧', - 2: '૨', - 3: '૩', - 4: '૪', - 5: '૫', - 6: '૬', - 7: '૭', - 8: '૮', - 9: '૯', - 0: '૦', - }, - numberMap = { - '૧': '1', - '૨': '2', - '૩': '3', - '૪': '4', - '૫': '5', - '૬': '6', - '૭': '7', - '૮': '8', - '૯': '9', - '૦': '0', - }; + return function logger (req, res, next) { + // request data + req._startAt = undefined + req._startTime = undefined + req._remoteAddress = getip(req) - var gu = moment.defineLocale('gu', { - months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split( - '_' - ), - monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split( - '_' - ), - weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'), - weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'), - longDateFormat: { - LT: 'A h:mm વાગ્યે', - LTS: 'A h:mm:ss વાગ્યે', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm વાગ્યે', - LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે', - }, - calendar: { - sameDay: '[આજ] LT', - nextDay: '[કાલે] LT', - nextWeek: 'dddd, LT', - lastDay: '[ગઇકાલે] LT', - lastWeek: '[પાછલા] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s મા', - past: '%s પહેલા', - s: 'અમુક પળો', - ss: '%d સેકંડ', - m: 'એક મિનિટ', - mm: '%d મિનિટ', - h: 'એક કલાક', - hh: '%d કલાક', - d: 'એક દિવસ', - dd: '%d દિવસ', - M: 'એક મહિનો', - MM: '%d મહિનો', - y: 'એક વર્ષ', - yy: '%d વર્ષ', - }, - preparse: function (string) { - return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - // Gujarati notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. - meridiemParse: /રાત|બપોર|સવાર|સાંજ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'રાત') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'સવાર') { - return hour; - } else if (meridiem === 'બપોર') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'સાંજ') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'રાત'; - } else if (hour < 10) { - return 'સવાર'; - } else if (hour < 17) { - return 'બપોર'; - } else if (hour < 20) { - return 'સાંજ'; - } else { - return 'રાત'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); + // response data + res._startAt = undefined + res._startTime = undefined - return gu; + // record request start + recordStartTime.call(req) -}))); + function logRequest () { + if (skip !== false && skip(req, res)) { + debug('skip request') + return + } + var line = formatLine(morgan, req, res) -/***/ }), + if (line == null) { + debug('skip line') + return + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/he.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/he.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + debug('log request') + stream.write(line + '\n') + }; -//! moment.js locale configuration -//! locale : Hebrew [he] -//! author : Tomer Cohen : https://github.com/tomer -//! author : Moshe Simantov : https://github.com/DevelopmentIL -//! author : Tal Ater : https://github.com/TalAter + if (immediate) { + // immediate log + logRequest() + } else { + // record response start + onHeaders(res, recordStartTime) -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // log when response finished + onFinished(res, logRequest) + } - //! moment.js locale configuration + next() + } +} - var he = moment.defineLocale('he', { - months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split( - '_' - ), - monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split( - '_' - ), - weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), - weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), - weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [ב]MMMM YYYY', - LLL: 'D [ב]MMMM YYYY HH:mm', - LLLL: 'dddd, D [ב]MMMM YYYY HH:mm', - l: 'D/M/YYYY', - ll: 'D MMM YYYY', - lll: 'D MMM YYYY HH:mm', - llll: 'ddd, D MMM YYYY HH:mm', - }, - calendar: { - sameDay: '[היום ב־]LT', - nextDay: '[מחר ב־]LT', - nextWeek: 'dddd [בשעה] LT', - lastDay: '[אתמול ב־]LT', - lastWeek: '[ביום] dddd [האחרון בשעה] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'בעוד %s', - past: 'לפני %s', - s: 'מספר שניות', - ss: '%d שניות', - m: 'דקה', - mm: '%d דקות', - h: 'שעה', - hh: function (number) { - if (number === 2) { - return 'שעתיים'; - } - return number + ' שעות'; - }, - d: 'יום', - dd: function (number) { - if (number === 2) { - return 'יומיים'; - } - return number + ' ימים'; - }, - M: 'חודש', - MM: function (number) { - if (number === 2) { - return 'חודשיים'; - } - return number + ' חודשים'; - }, - y: 'שנה', - yy: function (number) { - if (number === 2) { - return 'שנתיים'; - } else if (number % 10 === 0 && number !== 10) { - return number + ' שנה'; - } - return number + ' שנים'; - }, - }, - meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, - isPM: function (input) { - return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 5) { - return 'לפנות בוקר'; - } else if (hour < 10) { - return 'בבוקר'; - } else if (hour < 12) { - return isLower ? 'לפנה"צ' : 'לפני הצהריים'; - } else if (hour < 18) { - return isLower ? 'אחה"צ' : 'אחרי הצהריים'; - } else { - return 'בערב'; - } - }, - }); +/** + * Apache combined log format. + */ + +morgan.format('combined', ':remote-addr - :remote-user [:date[clf]] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer" ":user-agent"') + +/** + * Apache common log format. + */ + +morgan.format('common', ':remote-addr - :remote-user [:date[clf]] ":method :url HTTP/:http-version" :status :res[content-length]') + +/** + * Default format. + */ - return he; +morgan.format('default', ':remote-addr - :remote-user [:date] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer" ":user-agent"') +deprecate.property(morgan, 'default', 'default format: use combined format') -}))); +/** + * Short format. + */ +morgan.format('short', ':remote-addr :remote-user :method :url HTTP/:http-version :status :res[content-length] - :response-time ms') -/***/ }), +/** + * Tiny format. + */ -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hi.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hi.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +morgan.format('tiny', ':method :url :status :res[content-length] - :response-time ms') -//! moment.js locale configuration -//! locale : Hindi [hi] -//! author : Mayank Singhal : https://github.com/mayanksinghal +/** + * dev (colored) + */ -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +morgan.format('dev', function developmentFormatLine (tokens, req, res) { + // get the status code if response written + var status = headersSent(res) + ? res.statusCode + : undefined - //! moment.js locale configuration + // get status color + var color = status >= 500 ? 31 // red + : status >= 400 ? 33 // yellow + : status >= 300 ? 36 // cyan + : status >= 200 ? 32 // green + : 0 // no color - var symbolMap = { - 1: '१', - 2: '२', - 3: '३', - 4: '४', - 5: '५', - 6: '६', - 7: '७', - 8: '८', - 9: '९', - 0: '०', - }, - numberMap = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0', - }, - monthsParse = [ - /^जन/i, - /^फ़र|फर/i, - /^मार्च/i, - /^अप्रै/i, - /^मई/i, - /^जून/i, - /^जुल/i, - /^अग/i, - /^सितं|सित/i, - /^अक्टू/i, - /^नव|नवं/i, - /^दिसं|दिस/i, - ], - shortMonthsParse = [ - /^जन/i, - /^फ़र/i, - /^मार्च/i, - /^अप्रै/i, - /^मई/i, - /^जून/i, - /^जुल/i, - /^अग/i, - /^सित/i, - /^अक्टू/i, - /^नव/i, - /^दिस/i, - ]; + // get colored function + var fn = developmentFormatLine[color] - var hi = moment.defineLocale('hi', { - months: { - format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split( - '_' - ), - standalone: 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split( - '_' - ), - }, - monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split( - '_' - ), - weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), - weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), - weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), - longDateFormat: { - LT: 'A h:mm बजे', - LTS: 'A h:mm:ss बजे', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm बजे', - LLLL: 'dddd, D MMMM YYYY, A h:mm बजे', - }, + if (!fn) { + // compile + fn = developmentFormatLine[color] = compile('\x1b[0m:method :url \x1b[' + + color + 'm:status\x1b[0m :response-time ms - :res[content-length]\x1b[0m') + } - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: shortMonthsParse, + return fn(tokens, req, res) +}) - monthsRegex: /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, +/** + * request url + */ - monthsShortRegex: /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, +morgan.token('url', function getUrlToken (req) { + return req.originalUrl || req.url +}) - monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i, +/** + * request method + */ - monthsShortStrictRegex: /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i, +morgan.token('method', function getMethodToken (req) { + return req.method +}) - calendar: { - sameDay: '[आज] LT', - nextDay: '[कल] LT', - nextWeek: 'dddd, LT', - lastDay: '[कल] LT', - lastWeek: '[पिछले] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s में', - past: '%s पहले', - s: 'कुछ ही क्षण', - ss: '%d सेकंड', - m: 'एक मिनट', - mm: '%d मिनट', - h: 'एक घंटा', - hh: '%d घंटे', - d: 'एक दिन', - dd: '%d दिन', - M: 'एक महीने', - MM: '%d महीने', - y: 'एक वर्ष', - yy: '%d वर्ष', - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - // Hindi notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. - meridiemParse: /रात|सुबह|दोपहर|शाम/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'रात') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'सुबह') { - return hour; - } else if (meridiem === 'दोपहर') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'शाम') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'रात'; - } else if (hour < 10) { - return 'सुबह'; - } else if (hour < 17) { - return 'दोपहर'; - } else if (hour < 20) { - return 'शाम'; - } else { - return 'रात'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); +/** + * response time in milliseconds + */ - return hi; +morgan.token('response-time', function getResponseTimeToken (req, res, digits) { + if (!req._startAt || !res._startAt) { + // missing request and/or response start time + return + } -}))); + // calculate diff + var ms = (res._startAt[0] - req._startAt[0]) * 1e3 + + (res._startAt[1] - req._startAt[1]) * 1e-6 + // return truncated value + return ms.toFixed(digits === undefined ? 3 : digits) +}) -/***/ }), +/** + * total time in milliseconds + */ -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hr.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hr.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +morgan.token('total-time', function getTotalTimeToken (req, res, digits) { + if (!req._startAt || !res._startAt) { + // missing request and/or response start time + return + } -//! moment.js locale configuration -//! locale : Croatian [hr] -//! author : Bojan Marković : https://github.com/bmarkovic + // time elapsed from request start + var elapsed = process.hrtime(req._startAt) -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // cover to milliseconds + var ms = (elapsed[0] * 1e3) + (elapsed[1] * 1e-6) - //! moment.js locale configuration + // return truncated value + return ms.toFixed(digits === undefined ? 3 : digits) +}) - function translate(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'ss': - if (number === 1) { - result += 'sekunda'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sekunde'; - } else { - result += 'sekundi'; - } - return result; - case 'm': - return withoutSuffix ? 'jedna minuta' : 'jedne minute'; - case 'mm': - if (number === 1) { - result += 'minuta'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'minute'; - } else { - result += 'minuta'; - } - return result; - case 'h': - return withoutSuffix ? 'jedan sat' : 'jednog sata'; - case 'hh': - if (number === 1) { - result += 'sat'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sata'; - } else { - result += 'sati'; - } - return result; - case 'dd': - if (number === 1) { - result += 'dan'; - } else { - result += 'dana'; - } - return result; - case 'MM': - if (number === 1) { - result += 'mjesec'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'mjeseca'; - } else { - result += 'mjeseci'; - } - return result; - case 'yy': - if (number === 1) { - result += 'godina'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'godine'; - } else { - result += 'godina'; - } - return result; - } - } +/** + * current date + */ - var hr = moment.defineLocale('hr', { - months: { - format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( - '_' - ), - standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( - '_' - ), - }, - monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( - '_' - ), - weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'Do MMMM YYYY', - LLL: 'Do MMMM YYYY H:mm', - LLLL: 'dddd, Do MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sutra u] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[u] [nedjelju] [u] LT'; - case 3: - return '[u] [srijedu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - }, - lastDay: '[jučer u] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[prošlu] [nedjelju] [u] LT'; - case 3: - return '[prošlu] [srijedu] [u] LT'; - case 6: - return '[prošle] [subote] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[prošli] dddd [u] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: 'prije %s', - s: 'par sekundi', - ss: translate, - m: translate, - mm: translate, - h: translate, - hh: translate, - d: 'dan', - dd: translate, - M: 'mjesec', - MM: translate, - y: 'godinu', - yy: translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); +morgan.token('date', function getDateToken (req, res, format) { + var date = new Date() - return hr; + switch (format || 'web') { + case 'clf': + return clfdate(date) + case 'iso': + return date.toISOString() + case 'web': + return date.toUTCString() + } +}) -}))); +/** + * response status code + */ +morgan.token('status', function getStatusToken (req, res) { + return headersSent(res) + ? String(res.statusCode) + : undefined +}) -/***/ }), +/** + * normalized referrer + */ -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hu.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hu.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +morgan.token('referrer', function getReferrerToken (req) { + return req.headers.referer || req.headers.referrer +}) -//! moment.js locale configuration -//! locale : Hungarian [hu] -//! author : Adam Brunner : https://github.com/adambrunner -//! author : Peter Viszt : https://github.com/passatgt +/** + * remote address + */ -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +morgan.token('remote-addr', getip) - //! moment.js locale configuration +/** + * remote user + */ - var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split( - ' ' - ); - function translate(number, withoutSuffix, key, isFuture) { - var num = number; - switch (key) { - case 's': - return isFuture || withoutSuffix - ? 'néhány másodperc' - : 'néhány másodperce'; - case 'ss': - return num + (isFuture || withoutSuffix) - ? ' másodperc' - : ' másodperce'; - case 'm': - return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); - case 'mm': - return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); - case 'h': - return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); - case 'hh': - return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); - case 'd': - return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); - case 'dd': - return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); - case 'M': - return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); - case 'MM': - return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); - case 'y': - return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); - case 'yy': - return num + (isFuture || withoutSuffix ? ' év' : ' éve'); - } - return ''; +morgan.token('remote-user', function getRemoteUserToken (req) { + // parse basic credentials + var credentials = auth(req) + + // return username + return credentials + ? credentials.name + : undefined +}) + +/** + * HTTP version + */ + +morgan.token('http-version', function getHttpVersionToken (req) { + return req.httpVersionMajor + '.' + req.httpVersionMinor +}) + +/** + * UA string + */ + +morgan.token('user-agent', function getUserAgentToken (req) { + return req.headers['user-agent'] +}) + +/** + * request header + */ + +morgan.token('req', function getRequestToken (req, res, field) { + // get header + var header = req.headers[field.toLowerCase()] + + return Array.isArray(header) + ? header.join(', ') + : header +}) + +/** + * response header + */ + +morgan.token('res', function getResponseHeader (req, res, field) { + if (!headersSent(res)) { + return undefined + } + + // get header + var header = res.getHeader(field) + + return Array.isArray(header) + ? header.join(', ') + : header +}) + +/** + * Format a Date in the common log format. + * + * @private + * @param {Date} dateTime + * @return {string} + */ + +function clfdate (dateTime) { + var date = dateTime.getUTCDate() + var hour = dateTime.getUTCHours() + var mins = dateTime.getUTCMinutes() + var secs = dateTime.getUTCSeconds() + var year = dateTime.getUTCFullYear() + + var month = CLF_MONTH[dateTime.getUTCMonth()] + + return pad2(date) + '/' + month + '/' + year + + ':' + pad2(hour) + ':' + pad2(mins) + ':' + pad2(secs) + + ' +0000' +} + +/** + * Compile a format string into a function. + * + * @param {string} format + * @return {function} + * @public + */ + +function compile (format) { + if (typeof format !== 'string') { + throw new TypeError('argument format must be a string') + } + + var fmt = String(JSON.stringify(format)) + var js = ' "use strict"\n return ' + fmt.replace(/:([-\w]{2,})(?:\[([^\]]+)\])?/g, function (_, name, arg) { + var tokenArguments = 'req, res' + var tokenFunction = 'tokens[' + String(JSON.stringify(name)) + ']' + + if (arg !== undefined) { + tokenArguments += ', ' + String(JSON.stringify(arg)) } - function week(isFuture) { - return ( - (isFuture ? '' : '[múlt] ') + - '[' + - weekEndings[this.day()] + - '] LT[-kor]' - ); + + return '" +\n (' + tokenFunction + '(' + tokenArguments + ') || "-") + "' + }) + + // eslint-disable-next-line no-new-func + return new Function('tokens, req, res', js) +} + +/** + * Create a basic buffering stream. + * + * @param {object} stream + * @param {number} interval + * @public + */ + +function createBufferStream (stream, interval) { + var buf = [] + var timer = null + + // flush function + function flush () { + timer = null + stream.write(buf.join('')) + buf.length = 0 + } + + // write function + function write (str) { + if (timer === null) { + timer = setTimeout(flush, interval) } - var hu = moment.defineLocale('hu', { - months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split( - '_' - ), - monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'), - weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), - weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'YYYY.MM.DD.', - LL: 'YYYY. MMMM D.', - LLL: 'YYYY. MMMM D. H:mm', - LLLL: 'YYYY. MMMM D., dddd H:mm', - }, - meridiemParse: /de|du/i, - isPM: function (input) { - return input.charAt(1).toLowerCase() === 'u'; - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 12) { - return isLower === true ? 'de' : 'DE'; - } else { - return isLower === true ? 'du' : 'DU'; - } - }, - calendar: { - sameDay: '[ma] LT[-kor]', - nextDay: '[holnap] LT[-kor]', - nextWeek: function () { - return week.call(this, true); - }, - lastDay: '[tegnap] LT[-kor]', - lastWeek: function () { - return week.call(this, false); - }, - sameElse: 'L', - }, - relativeTime: { - future: '%s múlva', - past: '%s', - s: translate, - ss: translate, - m: translate, - mm: translate, - h: translate, - hh: translate, - d: translate, - dd: translate, - M: translate, - MM: translate, - y: translate, - yy: translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + buf.push(str) + } + + // return a minimal "stream" + return { write: write } +} + +/** + * Define a format with the given name. + * + * @param {string} name + * @param {string|function} fmt + * @public + */ - return hu; +function format (name, fmt) { + morgan[name] = fmt + return this +} -}))); +/** + * Lookup and compile a named format function. + * + * @param {string} name + * @return {function} + * @public + */ +function getFormatFunction (name) { + // lookup format + var fmt = morgan[name] || name || morgan.default -/***/ }), + // return compiled format + return typeof fmt !== 'function' + ? compile(fmt) + : fmt +} -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hy-am.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hy-am.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/** + * Get request IP address. + * + * @private + * @param {IncomingMessage} req + * @return {string} + */ -//! moment.js locale configuration -//! locale : Armenian [hy-am] -//! author : Armendarabyan : https://github.com/armendarabyan +function getip (req) { + return req.ip || + req._remoteAddress || + (req.connection && req.connection.remoteAddress) || + undefined +} -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +/** + * Determine if the response headers have been sent. + * + * @param {object} res + * @returns {boolean} + * @private + */ - //! moment.js locale configuration +function headersSent (res) { + // istanbul ignore next: node.js 0.8 support + return typeof res.headersSent !== 'boolean' + ? Boolean(res._header) + : res.headersSent +} - var hyAm = moment.defineLocale('hy-am', { - months: { - format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split( - '_' - ), - standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split( - '_' - ), - }, - monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), - weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split( - '_' - ), - weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), - weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY թ.', - LLL: 'D MMMM YYYY թ., HH:mm', - LLLL: 'dddd, D MMMM YYYY թ., HH:mm', - }, - calendar: { - sameDay: '[այսօր] LT', - nextDay: '[վաղը] LT', - lastDay: '[երեկ] LT', - nextWeek: function () { - return 'dddd [օրը ժամը] LT'; - }, - lastWeek: function () { - return '[անցած] dddd [օրը ժամը] LT'; - }, - sameElse: 'L', - }, - relativeTime: { - future: '%s հետո', - past: '%s առաջ', - s: 'մի քանի վայրկյան', - ss: '%d վայրկյան', - m: 'րոպե', - mm: '%d րոպե', - h: 'ժամ', - hh: '%d ժամ', - d: 'օր', - dd: '%d օր', - M: 'ամիս', - MM: '%d ամիս', - y: 'տարի', - yy: '%d տարի', - }, - meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, - isPM: function (input) { - return /^(ցերեկվա|երեկոյան)$/.test(input); - }, - meridiem: function (hour) { - if (hour < 4) { - return 'գիշերվա'; - } else if (hour < 12) { - return 'առավոտվա'; - } else if (hour < 17) { - return 'ցերեկվա'; - } else { - return 'երեկոյան'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, - ordinal: function (number, period) { - switch (period) { - case 'DDD': - case 'w': - case 'W': - case 'DDDo': - if (number === 1) { - return number + '-ին'; - } - return number + '-րդ'; - default: - return number; - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); +/** + * Pad number to two digits. + * + * @private + * @param {number} num + * @return {string} + */ - return hyAm; +function pad2 (num) { + var str = String(num) -}))); + // istanbul ignore next: num is current datetime + return (str.length === 1 ? '0' : '') + str +} + +/** + * Record the start time. + * @private + */ + +function recordStartTime () { + this._startAt = process.hrtime() + this._startTime = new Date() +} + +/** + * Define a token function with the given name, + * and callback fn(req, res). + * + * @param {string} name + * @param {function} fn + * @public + */ + +function token (name, fn) { + morgan[name] = fn + return this +} /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/id.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/id.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/ms/index.js": +/*!*********************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/ms/index.js ***! + \*********************************************************/ +/***/ ((module) => { -//! moment.js locale configuration -//! locale : Indonesian [id] -//! author : Mohammad Satrio Utomo : https://github.com/tyok -//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan +/** + * Helpers. + */ -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var y = d * 365.25; - //! moment.js locale configuration +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ - var id = moment.defineLocale('id', { - months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), - weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), - weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), - weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [pukul] HH.mm', - LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', - }, - meridiemParse: /pagi|siang|sore|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'siang') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'sore' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'siang'; - } else if (hours < 19) { - return 'sore'; - } else { - return 'malam'; - } - }, - calendar: { - sameDay: '[Hari ini pukul] LT', - nextDay: '[Besok pukul] LT', - nextWeek: 'dddd [pukul] LT', - lastDay: '[Kemarin pukul] LT', - lastWeek: 'dddd [lalu pukul] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dalam %s', - past: '%s yang lalu', - s: 'beberapa detik', - ss: '%d detik', - m: 'semenit', - mm: '%d menit', - h: 'sejam', - hh: '%d jam', - d: 'sehari', - dd: '%d hari', - M: 'sebulan', - MM: '%d bulan', - y: 'setahun', - yy: '%d tahun', - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); +module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isNaN(val) === false) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; - return id; +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ -}))); +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } +} + +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtShort(ms) { + if (ms >= d) { + return Math.round(ms / d) + 'd'; + } + if (ms >= h) { + return Math.round(ms / h) + 'h'; + } + if (ms >= m) { + return Math.round(ms / m) + 'm'; + } + if (ms >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} + +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtLong(ms) { + return plural(ms, d, 'day') || + plural(ms, h, 'hour') || + plural(ms, m, 'minute') || + plural(ms, s, 'second') || + ms + ' ms'; +} + +/** + * Pluralization helper. + */ + +function plural(ms, n, name) { + if (ms < n) { + return; + } + if (ms < n * 1.5) { + return Math.floor(ms / n) + ' ' + name; + } + return Math.ceil(ms / n) + ' ' + name + 's'; +} /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/is.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/is.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/back.js": +/*!*******************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/back.js ***! + \*******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __nested_webpack_require_1268121__) => { -//! moment.js locale configuration -//! locale : Icelandic [is] -//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik +"use strict"; +__nested_webpack_require_1268121__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_1268121__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ arr_back) +/* harmony export */ }); +function arr_back(arr) { + return arr[arr.length - 1]; +} -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - //! moment.js locale configuration +/***/ }), - function plural(n) { - if (n % 100 === 11) { - return true; - } else if (n % 10 === 1) { - return false; +/***/ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/index.js": +/*!********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/index.js ***! + \********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __nested_webpack_require_1268827__) => { + +"use strict"; +__nested_webpack_require_1268827__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_1268827__.d(__webpack_exports__, { +/* harmony export */ "CommentNode": () => (/* reexport safe */ _nodes_comment__WEBPACK_IMPORTED_MODULE_0__.default), +/* harmony export */ "HTMLElement": () => (/* reexport safe */ _nodes_html__WEBPACK_IMPORTED_MODULE_1__.default), +/* harmony export */ "parse": () => (/* reexport safe */ _nodes_html__WEBPACK_IMPORTED_MODULE_1__.parse), +/* harmony export */ "default": () => (/* reexport safe */ _nodes_html__WEBPACK_IMPORTED_MODULE_1__.parse), +/* harmony export */ "valid": () => (/* reexport safe */ _valid__WEBPACK_IMPORTED_MODULE_2__.default), +/* harmony export */ "Node": () => (/* reexport safe */ _nodes_node__WEBPACK_IMPORTED_MODULE_3__.default), +/* harmony export */ "TextNode": () => (/* reexport safe */ _nodes_text__WEBPACK_IMPORTED_MODULE_4__.default), +/* harmony export */ "NodeType": () => (/* reexport safe */ _nodes_type__WEBPACK_IMPORTED_MODULE_5__.default) +/* harmony export */ }); +/* harmony import */ var _nodes_comment__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_1268827__(/*! ./nodes/comment */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/comment.js"); +/* harmony import */ var _nodes_html__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_1268827__(/*! ./parse */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/html.js"); +/* harmony import */ var _valid__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_1268827__(/*! ./valid */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/valid.js"); +/* harmony import */ var _nodes_node__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_1268827__(/*! ./nodes/node */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/node.js"); +/* harmony import */ var _nodes_text__WEBPACK_IMPORTED_MODULE_4__ = __nested_webpack_require_1268827__(/*! ./nodes/text */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/text.js"); +/* harmony import */ var _nodes_type__WEBPACK_IMPORTED_MODULE_5__ = __nested_webpack_require_1268827__(/*! ./nodes/type */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/type.js"); + + + + + + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/matcher.js": +/*!**********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/matcher.js ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __nested_webpack_require_1271445__) => { + +"use strict"; +__nested_webpack_require_1271445__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_1271445__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nodes_type__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_1271445__(/*! ./nodes/type */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/type.js"); + +function isTag(node) { + return node && node.nodeType === _nodes_type__WEBPACK_IMPORTED_MODULE_0__.default.ELEMENT_NODE; +} +function getAttributeValue(elem, name) { + return isTag(elem) ? elem.getAttribute(name) : undefined; +} +function getName(elem) { + return ((elem && elem.rawTagName) || '').toLowerCase(); +} +function getChildren(node) { + return node && node.childNodes; +} +function getParent(node) { + return node ? node.parentNode : null; +} +function getText(node) { + return node.text; +} +function removeSubsets(nodes) { + let idx = nodes.length; + let node; + let ancestor; + let replace; + // Check if each node (or one of its ancestors) is already contained in the + // array. + while (--idx > -1) { + node = ancestor = nodes[idx]; + // Temporarily remove the node under consideration + nodes[idx] = null; + replace = true; + while (ancestor) { + if (nodes.indexOf(ancestor) > -1) { + replace = false; + nodes.splice(idx, 1); + break; + } + ancestor = getParent(ancestor); + } + // If the node has been found to be unique, re-insert it. + if (replace) { + nodes[idx] = node; } - return true; } - function translate(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': - return withoutSuffix || isFuture - ? 'nokkrar sekúndur' - : 'nokkrum sekúndum'; - case 'ss': - if (plural(number)) { - return ( - result + - (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum') - ); - } - return result + 'sekúnda'; - case 'm': - return withoutSuffix ? 'mínúta' : 'mínútu'; - case 'mm': - if (plural(number)) { - return ( - result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum') - ); - } else if (withoutSuffix) { - return result + 'mínúta'; - } - return result + 'mínútu'; - case 'hh': - if (plural(number)) { - return ( - result + - (withoutSuffix || isFuture - ? 'klukkustundir' - : 'klukkustundum') - ); - } - return result + 'klukkustund'; - case 'd': - if (withoutSuffix) { - return 'dagur'; - } - return isFuture ? 'dag' : 'degi'; - case 'dd': - if (plural(number)) { - if (withoutSuffix) { - return result + 'dagar'; - } - return result + (isFuture ? 'daga' : 'dögum'); - } else if (withoutSuffix) { - return result + 'dagur'; - } - return result + (isFuture ? 'dag' : 'degi'); - case 'M': - if (withoutSuffix) { - return 'mánuður'; - } - return isFuture ? 'mánuð' : 'mánuði'; - case 'MM': - if (plural(number)) { - if (withoutSuffix) { - return result + 'mánuðir'; - } - return result + (isFuture ? 'mánuði' : 'mánuðum'); - } else if (withoutSuffix) { - return result + 'mánuður'; - } - return result + (isFuture ? 'mánuð' : 'mánuði'); - case 'y': - return withoutSuffix || isFuture ? 'ár' : 'ári'; - case 'yy': - if (plural(number)) { - return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); - } - return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); + return nodes; +} +function existsOne(test, elems) { + return elems.some((elem) => { + return isTag(elem) ? test(elem) || existsOne(test, getChildren(elem)) : false; + }); +} +function getSiblings(node) { + const parent = getParent(node); + return parent && getChildren(parent); +} +function hasAttrib(elem, name) { + return getAttributeValue(elem, name) !== undefined; +} +function findOne(test, elems) { + let elem = null; + for (let i = 0, l = elems.length; i < l && !elem; i++) { + const el = elems[i]; + if (test(el)) { + elem = el; + } + else { + const childs = getChildren(el); + if (childs && childs.length > 0) { + elem = findOne(test, childs); + } } } + return elem; +} +function findAll(test, nodes) { + let result = []; + for (let i = 0, j = nodes.length; i < j; i++) { + if (!isTag(nodes[i])) + continue; + if (test(nodes[i])) + result.push(nodes[i]); + const childs = getChildren(nodes[i]); + if (childs) + result = result.concat(findAll(test, childs)); + } + return result; +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + isTag, + getAttributeValue, + getName, + getChildren, + getParent, + getText, + removeSubsets, + existsOne, + getSiblings, + hasAttrib, + findOne, + findAll +}); - var is = moment.defineLocale('is', { - months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split( - '_' - ), - monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'), - weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split( - '_' - ), - weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'), - weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY [kl.] H:mm', - LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', - }, - calendar: { - sameDay: '[í dag kl.] LT', - nextDay: '[á morgun kl.] LT', - nextWeek: 'dddd [kl.] LT', - lastDay: '[í gær kl.] LT', - lastWeek: '[síðasta] dddd [kl.] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'eftir %s', - past: 'fyrir %s síðan', - s: translate, - ss: translate, - m: translate, - mm: translate, - h: 'klukkustund', - hh: translate, - d: translate, - dd: translate, - M: translate, - MM: translate, - y: translate, - yy: translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - return is; -}))); +/***/ }), +/***/ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/comment.js": +/*!****************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/comment.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __nested_webpack_require_1274984__) => { -/***/ }), +"use strict"; +__nested_webpack_require_1274984__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_1274984__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ CommentNode) +/* harmony export */ }); +/* harmony import */ var _node__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_1274984__(/*! ./node */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/node.js"); +/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_1274984__(/*! ./type */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/type.js"); -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/it-ch.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/it-ch.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { -//! moment.js locale configuration -//! locale : Italian (Switzerland) [it-ch] -//! author : xfh : https://github.com/xfh +class CommentNode extends _node__WEBPACK_IMPORTED_MODULE_0__.default { + constructor(rawText, parentNode) { + super(parentNode); + this.rawText = rawText; + /** + * Node Type declaration. + * @type {Number} + */ + this.nodeType = _type__WEBPACK_IMPORTED_MODULE_1__.default.COMMENT_NODE; + } + /** + * Get unescaped text value of current node and its children. + * @return {string} text content + */ + get text() { + return this.rawText; + } + toString() { + return ``; + } +} -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - //! moment.js locale configuration +/***/ }), - var itCh = moment.defineLocale('it-ch', { - months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( - '_' - ), - monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), - weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( - '_' - ), - weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), - weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Oggi alle] LT', - nextDay: '[Domani alle] LT', - nextWeek: 'dddd [alle] LT', - lastDay: '[Ieri alle] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[la scorsa] dddd [alle] LT'; - default: - return '[lo scorso] dddd [alle] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: function (s) { - return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; - }, - past: '%s fa', - s: 'alcuni secondi', - ss: '%d secondi', - m: 'un minuto', - mm: '%d minuti', - h: "un'ora", - hh: '%d ore', - d: 'un giorno', - dd: '%d giorni', - M: 'un mese', - MM: '%d mesi', - y: 'un anno', - yy: '%d anni', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); +/***/ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/html.js": +/*!*************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/html.js ***! + \*************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __nested_webpack_require_1276589__) => { - return itCh; +"use strict"; +__nested_webpack_require_1276589__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_1276589__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ HTMLElement), +/* harmony export */ "base_parse": () => (/* binding */ base_parse), +/* harmony export */ "parse": () => (/* binding */ parse) +/* harmony export */ }); +/* harmony import */ var he__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_1276589__(/*! he */ "./build/cht-core-4-6/api/node_modules/he/he.js"); +/* harmony import */ var he__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nested_webpack_require_1276589__.n(he__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var css_select__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_1276589__(/*! css-select */ "./build/cht-core-4-6/api/node_modules/css-select/lib/index.js"); +/* harmony import */ var css_select__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nested_webpack_require_1276589__.n(css_select__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_1276589__(/*! ./node */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/node.js"); +/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_1276589__(/*! ./type */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/type.js"); +/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_4__ = __nested_webpack_require_1276589__(/*! ./text */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/text.js"); +/* harmony import */ var _matcher__WEBPACK_IMPORTED_MODULE_5__ = __nested_webpack_require_1276589__(/*! ../matcher */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/matcher.js"); +/* harmony import */ var _back__WEBPACK_IMPORTED_MODULE_6__ = __nested_webpack_require_1276589__(/*! ../back */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/back.js"); +/* harmony import */ var _comment__WEBPACK_IMPORTED_MODULE_7__ = __nested_webpack_require_1276589__(/*! ./comment */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/comment.js"); -}))); -/***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/it.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/it.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { -//! moment.js locale configuration -//! locale : Italian [it] -//! author : Lorenzo : https://github.com/aliem -//! author: Mattia Larentis: https://github.com/nostalgiaz -//! author: Marco : https://github.com/Manfre98 -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - //! moment.js locale configuration - var it = moment.defineLocale('it', { - months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( - '_' - ), - monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), - weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( - '_' - ), - weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), - weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: function () { - return ( - '[Oggi a' + - (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + - ']LT' - ); - }, - nextDay: function () { - return ( - '[Domani a' + - (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + - ']LT' - ); - }, - nextWeek: function () { - return ( - 'dddd [a' + - (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + - ']LT' - ); - }, - lastDay: function () { - return ( - '[Ieri a' + - (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + - ']LT' - ); - }, - lastWeek: function () { - switch (this.day()) { - case 0: - return ( - '[La scorsa] dddd [a' + - (this.hours() > 1 - ? 'lle ' - : this.hours() === 0 - ? ' ' - : "ll'") + - ']LT' - ); - default: - return ( - '[Lo scorso] dddd [a' + - (this.hours() > 1 - ? 'lle ' - : this.hours() === 0 - ? ' ' - : "ll'") + - ']LT' - ); +// const { decode } = he; +function decode(val) { + // clone string + return JSON.parse(JSON.stringify(he__WEBPACK_IMPORTED_MODULE_0___default().decode(val))); +} +// https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements +const kBlockElements = new Set(); +kBlockElements.add('address'); +kBlockElements.add('ADDRESS'); +kBlockElements.add('article'); +kBlockElements.add('ARTICLE'); +kBlockElements.add('aside'); +kBlockElements.add('ASIDE'); +kBlockElements.add('blockquote'); +kBlockElements.add('BLOCKQUOTE'); +kBlockElements.add('br'); +kBlockElements.add('BR'); +kBlockElements.add('details'); +kBlockElements.add('DETAILS'); +kBlockElements.add('dialog'); +kBlockElements.add('DIALOG'); +kBlockElements.add('dd'); +kBlockElements.add('DD'); +kBlockElements.add('div'); +kBlockElements.add('DIV'); +kBlockElements.add('dl'); +kBlockElements.add('DL'); +kBlockElements.add('dt'); +kBlockElements.add('DT'); +kBlockElements.add('fieldset'); +kBlockElements.add('FIELDSET'); +kBlockElements.add('figcaption'); +kBlockElements.add('FIGCAPTION'); +kBlockElements.add('figure'); +kBlockElements.add('FIGURE'); +kBlockElements.add('footer'); +kBlockElements.add('FOOTER'); +kBlockElements.add('form'); +kBlockElements.add('FORM'); +kBlockElements.add('h1'); +kBlockElements.add('H1'); +kBlockElements.add('h2'); +kBlockElements.add('H2'); +kBlockElements.add('h3'); +kBlockElements.add('H3'); +kBlockElements.add('h4'); +kBlockElements.add('H4'); +kBlockElements.add('h5'); +kBlockElements.add('H5'); +kBlockElements.add('h6'); +kBlockElements.add('H6'); +kBlockElements.add('header'); +kBlockElements.add('HEADER'); +kBlockElements.add('hgroup'); +kBlockElements.add('HGROUP'); +kBlockElements.add('hr'); +kBlockElements.add('HR'); +kBlockElements.add('li'); +kBlockElements.add('LI'); +kBlockElements.add('main'); +kBlockElements.add('MAIN'); +kBlockElements.add('nav'); +kBlockElements.add('NAV'); +kBlockElements.add('ol'); +kBlockElements.add('OL'); +kBlockElements.add('p'); +kBlockElements.add('P'); +kBlockElements.add('pre'); +kBlockElements.add('PRE'); +kBlockElements.add('section'); +kBlockElements.add('SECTION'); +kBlockElements.add('table'); +kBlockElements.add('TABLE'); +kBlockElements.add('td'); +kBlockElements.add('TD'); +kBlockElements.add('tr'); +kBlockElements.add('TR'); +kBlockElements.add('ul'); +kBlockElements.add('UL'); +class DOMTokenList { + constructor(valuesInit = [], afterUpdate = (() => null)) { + this._set = new Set(valuesInit); + this._afterUpdate = afterUpdate; + } + _validate(c) { + if (/\s/.test(c)) { + throw new Error(`DOMException in DOMTokenList.add: The token '${c}' contains HTML space characters, which are not valid in tokens.`); + } + } + add(c) { + this._validate(c); + this._set.add(c); + this._afterUpdate(this); // eslint-disable-line @typescript-eslint/no-unsafe-call + } + replace(c1, c2) { + this._validate(c2); + this._set.delete(c1); + this._set.add(c2); + this._afterUpdate(this); // eslint-disable-line @typescript-eslint/no-unsafe-call + } + remove(c) { + this._set.delete(c) && + this._afterUpdate(this); // eslint-disable-line @typescript-eslint/no-unsafe-call + } + toggle(c) { + this._validate(c); + if (this._set.has(c)) + this._set.delete(c); + else + this._set.add(c); + this._afterUpdate(this); // eslint-disable-line @typescript-eslint/no-unsafe-call + } + contains(c) { + return this._set.has(c); + } + get length() { + return this._set.size; + } + values() { + return this._set.values(); + } + get value() { + return Array.from(this._set.values()); + } + toString() { + return Array.from(this._set.values()).join(' '); + } +} +/** + * HTMLElement, which contains a set of children. + * + * Note: this is a minimalist implementation, no complete tree + * structure provided (no parentNode, nextSibling, + * previousSibling etc). + * @class HTMLElement + * @extends {Node} + */ +class HTMLElement extends _node__WEBPACK_IMPORTED_MODULE_2__.default { + /** + * Creates an instance of HTMLElement. + * @param keyAttrs id and class attribute + * @param [rawAttrs] attributes in string + * + * @memberof HTMLElement + */ + constructor(tagName, keyAttrs, rawAttrs = '', parentNode) { + super(parentNode); + this.rawAttrs = rawAttrs; + /** + * Node Type declaration. + */ + this.nodeType = _type__WEBPACK_IMPORTED_MODULE_3__.default.ELEMENT_NODE; + this.rawTagName = tagName; + this.rawAttrs = rawAttrs || ''; + this.id = keyAttrs.id || ''; + this.childNodes = []; + this.classList = new DOMTokenList(keyAttrs.class ? keyAttrs.class.split(/\s+/) : [], (classList) => (this.setAttribute('class', classList.toString()) // eslint-disable-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call + )); + if (keyAttrs.id) { + if (!rawAttrs) { + this.rawAttrs = `id="${keyAttrs.id}"`; + } + } + if (keyAttrs.class) { + if (!rawAttrs) { + const cls = `class="${this.classList.toString()}"`; + if (this.rawAttrs) { + this.rawAttrs += ` ${cls}`; + } + else { + this.rawAttrs = cls; + } + } + } + } + /** + * Quote attribute values + * @param attr attribute value + * @returns {string} quoted value + */ + quoteAttribute(attr) { + if (attr === null) { + return "null"; + } + return JSON.stringify(attr.replace(/"/g, '"')); + } + /** + * Remove current element + */ + remove() { + if (this.parentNode) { + const children = this.parentNode.childNodes; + this.parentNode.childNodes = children.filter((child) => { + return this !== child; + }); + } + } + /** + * Remove Child element from childNodes array + * @param {HTMLElement} node node to remove + */ + removeChild(node) { + this.childNodes = this.childNodes.filter((child) => { + return (child !== node); + }); + } + /** + * Exchanges given child with new child + * @param {HTMLElement} oldNode node to exchange + * @param {HTMLElement} newNode new node + */ + exchangeChild(oldNode, newNode) { + const children = this.childNodes; + this.childNodes = children.map((child) => { + if (child === oldNode) { + return newNode; + } + return child; + }); + } + get tagName() { + return this.rawTagName ? this.rawTagName.toUpperCase() : this.rawTagName; + } + get localName() { + return this.rawTagName.toLowerCase(); + } + /** + * Get escpaed (as-it) text value of current node and its children. + * @return {string} text content + */ + get rawText() { + return this.childNodes.reduce((pre, cur) => { + return (pre += cur.rawText); + }, ''); + } + get textContent() { + return this.rawText; + } + set textContent(val) { + const content = [new _text__WEBPACK_IMPORTED_MODULE_4__.default(val, this)]; + this.childNodes = content; + } + /** + * Get unescaped text value of current node and its children. + * @return {string} text content + */ + get text() { + return decode(this.rawText); + } + /** + * Get structured Text (with '\n' etc.) + * @return {string} structured text + */ + get structuredText() { + let currentBlock = []; + const blocks = [currentBlock]; + function dfs(node) { + if (node.nodeType === _type__WEBPACK_IMPORTED_MODULE_3__.default.ELEMENT_NODE) { + if (kBlockElements.has(node.rawTagName)) { + if (currentBlock.length > 0) { + blocks.push(currentBlock = []); + } + node.childNodes.forEach(dfs); + if (currentBlock.length > 0) { + blocks.push(currentBlock = []); + } + } + else { + node.childNodes.forEach(dfs); } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'tra %s', - past: '%s fa', - s: 'alcuni secondi', - ss: '%d secondi', - m: 'un minuto', - mm: '%d minuti', - h: "un'ora", - hh: '%d ore', - d: 'un giorno', - dd: '%d giorni', - w: 'una settimana', - ww: '%d settimane', - M: 'un mese', - MM: '%d mesi', - y: 'un anno', - yy: '%d anni', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - return it; - -}))); - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ja.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ja.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -//! moment.js locale configuration -//! locale : Japanese [ja] -//! author : LI Long : https://github.com/baryon - -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - - //! moment.js locale configuration - - var ja = moment.defineLocale('ja', { - eras: [ - { - since: '2019-05-01', - offset: 1, - name: '令和', - narrow: '㋿', - abbr: 'R', - }, - { - since: '1989-01-08', - until: '2019-04-30', - offset: 1, - name: '平成', - narrow: '㍻', - abbr: 'H', - }, - { - since: '1926-12-25', - until: '1989-01-07', - offset: 1, - name: '昭和', - narrow: '㍼', - abbr: 'S', - }, - { - since: '1912-07-30', - until: '1926-12-24', - offset: 1, - name: '大正', - narrow: '㍽', - abbr: 'T', - }, - { - since: '1873-01-01', - until: '1912-07-29', - offset: 6, - name: '明治', - narrow: '㍾', - abbr: 'M', - }, - { - since: '0001-01-01', - until: '1873-12-31', - offset: 1, - name: '西暦', - narrow: 'AD', - abbr: 'AD', - }, - { - since: '0000-12-31', - until: -Infinity, - offset: 1, - name: '紀元前', - narrow: 'BC', - abbr: 'BC', - }, - ], - eraYearOrdinalRegex: /(元|\d+)年/, - eraYearOrdinalParse: function (input, match) { - return match[1] === '元' ? 1 : parseInt(match[1] || input, 10); - }, - months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( - '_' - ), - weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'), - weekdaysShort: '日_月_火_水_木_金_土'.split('_'), - weekdaysMin: '日_月_火_水_木_金_土'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日 HH:mm', - LLLL: 'YYYY年M月D日 dddd HH:mm', - l: 'YYYY/MM/DD', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日(ddd) HH:mm', - }, - meridiemParse: /午前|午後/i, - isPM: function (input) { - return input === '午後'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return '午前'; - } else { - return '午後'; } - }, - calendar: { - sameDay: '[今日] LT', - nextDay: '[明日] LT', - nextWeek: function (now) { - if (now.week() !== this.week()) { - return '[来週]dddd LT'; - } else { - return 'dddd LT'; + else if (node.nodeType === _type__WEBPACK_IMPORTED_MODULE_3__.default.TEXT_NODE) { + if (node.isWhitespace) { + // Whitespace node, postponed output + currentBlock.prependWhitespace = true; } - }, - lastDay: '[昨日] LT', - lastWeek: function (now) { - if (this.week() !== now.week()) { - return '[先週]dddd LT'; - } else { - return 'dddd LT'; + else { + let text = node.trimmedText; + if (currentBlock.prependWhitespace) { + text = ` ${text}`; + currentBlock.prependWhitespace = false; + } + currentBlock.push(text); } - }, - sameElse: 'L', - }, - dayOfMonthOrdinalParse: /\d{1,2}日/, - ordinal: function (number, period) { - switch (period) { - case 'y': - return number === 1 ? '元年' : number + '年'; - case 'd': - case 'D': - case 'DDD': - return number + '日'; - default: - return number; } - }, - relativeTime: { - future: '%s後', - past: '%s前', - s: '数秒', - ss: '%d秒', - m: '1分', - mm: '%d分', - h: '1時間', - hh: '%d時間', - d: '1日', - dd: '%d日', - M: '1ヶ月', - MM: '%dヶ月', - y: '1年', - yy: '%d年', - }, - }); - - return ja; - -}))); - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/jv.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/jv.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -//! moment.js locale configuration -//! locale : Javanese [jv] -//! author : Rony Lantip : https://github.com/lantip -//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa - -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - - //! moment.js locale configuration - - var jv = moment.defineLocale('jv', { - months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), - weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), - weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), - weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [pukul] HH.mm', - LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', - }, - meridiemParse: /enjing|siyang|sonten|ndalu/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; + } + dfs(this); + return blocks.map((block) => { + // Normalize each line's whitespace + return block.join('').replace(/\s{2,}/g, ' '); + }) + .join('\n').replace(/\s+$/, ''); // trimRight; + } + toString() { + const tag = this.rawTagName; + if (tag) { + // const void_tags = new Set('area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr'.split('|')); + // const is_void = void_tags.has(tag); + const is_void = /^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/i.test(tag); + const attrs = this.rawAttrs ? ` ${this.rawAttrs}` : ''; + if (is_void) { + return `<${tag}${attrs}>`; + } + return `<${tag}${attrs}>${this.innerHTML}`; + } + return this.innerHTML; + } + get innerHTML() { + return this.childNodes.map((child) => { + return child.toString(); + }).join(''); + } + set innerHTML(content) { + //const r = parse(content, global.options); // TODO global.options ? + const r = parse(content); + this.childNodes = r.childNodes.length ? r.childNodes : [new _text__WEBPACK_IMPORTED_MODULE_4__.default(content, this)]; + } + set_content(content, options = {}) { + if (content instanceof _node__WEBPACK_IMPORTED_MODULE_2__.default) { + content = [content]; + } + else if (typeof content == 'string') { + const r = parse(content, options); + content = r.childNodes.length ? r.childNodes : [new _text__WEBPACK_IMPORTED_MODULE_4__.default(content, this)]; + } + this.childNodes = content; + } + replaceWith(...nodes) { + const content = nodes.map((node) => { + if (node instanceof _node__WEBPACK_IMPORTED_MODULE_2__.default) { + return [node]; + } + else if (typeof node == 'string') { + // const r = parse(content, global.options); // TODO global.options ? + const r = parse(node); + return r.childNodes.length ? r.childNodes : [new _text__WEBPACK_IMPORTED_MODULE_4__.default(node, this)]; + } + return []; + }).flat(); + const idx = this.parentNode.childNodes.findIndex((child) => { + return child === this; + }); + this.parentNode.childNodes = [ + ...this.parentNode.childNodes.slice(0, idx), + ...content, + ...this.parentNode.childNodes.slice(idx + 1), + ]; + } + get outerHTML() { + return this.toString(); + } + /** + * Trim element from right (in block) after seeing pattern in a TextNode. + * @param {RegExp} pattern pattern to find + * @return {HTMLElement} reference to current node + */ + trimRight(pattern) { + for (let i = 0; i < this.childNodes.length; i++) { + const childNode = this.childNodes[i]; + if (childNode.nodeType === _type__WEBPACK_IMPORTED_MODULE_3__.default.ELEMENT_NODE) { + childNode.trimRight(pattern); + } + else { + const index = childNode.rawText.search(pattern); + if (index > -1) { + childNode.rawText = childNode.rawText.substr(0, index); + // trim all following nodes. + this.childNodes.length = i + 1; + } + } + } + return this; + } + /** + * Get DOM structure + * @return {string} strucutre + */ + get structure() { + const res = []; + let indention = 0; + function write(str) { + res.push(' '.repeat(indention) + str); + } + function dfs(node) { + const idStr = node.id ? (`#${node.id}`) : ''; + const classStr = node.classList.length ? (`.${node.classList.value.join('.')}`) : ''; // eslint-disable-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-call + write(`${node.rawTagName}${idStr}${classStr}`); + indention++; + node.childNodes.forEach((childNode) => { + if (childNode.nodeType === _type__WEBPACK_IMPORTED_MODULE_3__.default.ELEMENT_NODE) { + dfs(childNode); + } + else if (childNode.nodeType === _type__WEBPACK_IMPORTED_MODULE_3__.default.TEXT_NODE) { + if (!childNode.isWhitespace) { + write('#text'); + } + } + }); + indention--; + } + dfs(this); + return res.join('\n'); + } + /** + * Remove whitespaces in this sub tree. + * @return {HTMLElement} pointer to this + */ + removeWhitespace() { + let o = 0; + this.childNodes.forEach((node) => { + if (node.nodeType === _type__WEBPACK_IMPORTED_MODULE_3__.default.TEXT_NODE) { + if (node.isWhitespace) { + return; + } + node.rawText = node.trimmedText; + } + else if (node.nodeType === _type__WEBPACK_IMPORTED_MODULE_3__.default.ELEMENT_NODE) { + node.removeWhitespace(); + } + this.childNodes[o++] = node; + }); + this.childNodes.length = o; + return this; + } + /** + * Query CSS selector to find matching nodes. + * @param {string} selector Simplified CSS selector + * @return {HTMLElement[]} matching elements + */ + querySelectorAll(selector) { + return (0,css_select__WEBPACK_IMPORTED_MODULE_1__.selectAll)(selector, this, { + xmlMode: true, + adapter: _matcher__WEBPACK_IMPORTED_MODULE_5__.default + }); + // let matcher: Matcher; + // if (selector instanceof Matcher) { + // matcher = selector; + // matcher.reset(); + // } else { + // if (selector.includes(',')) { + // const selectors = selector.split(','); + // return Array.from(selectors.reduce((pre, cur) => { + // const result = this.querySelectorAll(cur.trim()); + // return result.reduce((p, c) => { + // return p.add(c); + // }, pre); + // }, new Set())); + // } + // matcher = new Matcher(selector); + // } + // interface IStack { + // 0: Node; // node + // 1: number; // children + // 2: boolean; // found flag + // } + // const stack = [] as IStack[]; + // return this.childNodes.reduce((res, cur) => { + // stack.push([cur, 0, false]); + // while (stack.length) { + // const state = arr_back(stack); // get last element + // const el = state[0]; + // if (state[1] === 0) { + // // Seen for first time. + // if (el.nodeType !== NodeType.ELEMENT_NODE) { + // stack.pop(); + // continue; + // } + // const html_el = el as HTMLElement; + // state[2] = matcher.advance(html_el); + // if (state[2]) { + // if (matcher.matched) { + // res.push(html_el); + // res.push(...(html_el.querySelectorAll(selector))); + // // no need to go further. + // matcher.rewind(); + // stack.pop(); + // continue; + // } + // } + // } + // if (state[1] < el.childNodes.length) { + // stack.push([el.childNodes[state[1]++], 0, false]); + // } else { + // if (state[2]) { + // matcher.rewind(); + // } + // stack.pop(); + // } + // } + // return res; + // }, [] as HTMLElement[]); + } + /** + * Query CSS Selector to find matching node. + * @param {string} selector Simplified CSS selector + * @return {HTMLElement} matching node + */ + querySelector(selector) { + return (0,css_select__WEBPACK_IMPORTED_MODULE_1__.selectOne)(selector, this, { + xmlMode: true, + adapter: _matcher__WEBPACK_IMPORTED_MODULE_5__.default + }); + // let matcher: Matcher; + // if (selector instanceof Matcher) { + // matcher = selector; + // matcher.reset(); + // } else { + // matcher = new Matcher(selector); + // } + // const stack = [] as { 0: Node; 1: 0 | 1; 2: boolean }[]; + // for (const node of this.childNodes) { + // stack.push([node, 0, false]); + // while (stack.length) { + // const state = arr_back(stack); + // const el = state[0]; + // if (state[1] === 0) { + // // Seen for first time. + // if (el.nodeType !== NodeType.ELEMENT_NODE) { + // stack.pop(); + // continue; + // } + // state[2] = matcher.advance(el as HTMLElement); + // if (state[2]) { + // if (matcher.matched) { + // return el as HTMLElement; + // } + // } + // } + // if (state[1] < el.childNodes.length) { + // stack.push([el.childNodes[state[1]++], 0, false]); + // } else { + // if (state[2]) { + // matcher.rewind(); + // } + // stack.pop(); + // } + // } + // } + // return null; + } + /** + * traverses the Element and its parents (heading toward the document root) until it finds a node that matches the provided selector string. Will return itself or the matching ancestor. If no such element exists, it returns null. + * @param selector a DOMString containing a selector list + */ + closest(selector) { + const mapChild = new Map(); + let el = this; + let old = null; + function findOne(test, elems) { + let elem = null; + for (let i = 0, l = elems.length; i < l && !elem; i++) { + const el = elems[i]; + if (test(el)) { + elem = el; + } + else { + const child = mapChild.get(el); + if (child) { + elem = findOne(test, [child]); + } + } } - if (meridiem === 'enjing') { - return hour; - } else if (meridiem === 'siyang') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'sonten' || meridiem === 'ndalu') { - return hour + 12; + return elem; + } + while (el) { + mapChild.set(el, old); + old = el; + el = el.parentNode; + } + el = this; + while (el) { + const e = (0,css_select__WEBPACK_IMPORTED_MODULE_1__.selectOne)(selector, el, { + xmlMode: true, + adapter: { + ..._matcher__WEBPACK_IMPORTED_MODULE_5__.default, + getChildren(node) { + const child = mapChild.get(node); + return child && [child]; + }, + getSiblings(node) { + return [node]; + }, + findOne, + findAll() { + return []; + } + } + }); + if (e) { + return e; } - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 11) { - return 'enjing'; - } else if (hours < 15) { - return 'siyang'; - } else if (hours < 19) { - return 'sonten'; - } else { - return 'ndalu'; + el = el.parentNode; + } + return null; + } + /** + * Append a child node to childNodes + * @param {Node} node node to append + * @return {Node} node appended + */ + appendChild(node) { + // node.parentNode = this; + this.childNodes.push(node); + node.parentNode = this; + return node; + } + /** + * Get first child node + * @return {Node} first child node + */ + get firstChild() { + return this.childNodes[0]; + } + /** + * Get last child node + * @return {Node} last child node + */ + get lastChild() { + return (0,_back__WEBPACK_IMPORTED_MODULE_6__.default)(this.childNodes); + } + /** + * Get attributes + * @access private + * @return {Object} parsed and unescaped attributes + */ + get attrs() { + if (this._attrs) { + return this._attrs; + } + this._attrs = {}; + const attrs = this.rawAttributes; + for (const key in attrs) { + const val = attrs[key] || ''; + this._attrs[key.toLowerCase()] = decode(val); + } + return this._attrs; + } + get attributes() { + const ret_attrs = {}; + const attrs = this.rawAttributes; + for (const key in attrs) { + const val = attrs[key] || ''; + ret_attrs[key] = decode(val); + } + return ret_attrs; + } + /** + * Get escaped (as-it) attributes + * @return {Object} parsed attributes + */ + get rawAttributes() { + if (this._rawAttrs) { + return this._rawAttrs; + } + const attrs = {}; + if (this.rawAttrs) { + const re = /\b([a-z][a-z0-9-_:]*)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|(\S+)))?/ig; + let match; + while ((match = re.exec(this.rawAttrs))) { + attrs[match[1]] = match[2] || match[3] || match[4] || null; } - }, - calendar: { - sameDay: '[Dinten puniko pukul] LT', - nextDay: '[Mbenjang pukul] LT', - nextWeek: 'dddd [pukul] LT', - lastDay: '[Kala wingi pukul] LT', - lastWeek: 'dddd [kepengker pukul] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'wonten ing %s', - past: '%s ingkang kepengker', - s: 'sawetawis detik', - ss: '%d detik', - m: 'setunggal menit', - mm: '%d menit', - h: 'setunggal jam', - hh: '%d jam', - d: 'sedinten', - dd: '%d dinten', - M: 'sewulan', - MM: '%d wulan', - y: 'setaun', - yy: '%d taun', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - return jv; - -}))); - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ka.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ka.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -//! moment.js locale configuration -//! locale : Georgian [ka] -//! author : Irakli Janiashvili : https://github.com/IrakliJani - -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - - //! moment.js locale configuration - - var ka = moment.defineLocale('ka', { - months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split( - '_' - ), - monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), - weekdays: { - standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split( - '_' - ), - format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split( - '_' - ), - isFormat: /(წინა|შემდეგ)/, - }, - weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), - weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[დღეს] LT[-ზე]', - nextDay: '[ხვალ] LT[-ზე]', - lastDay: '[გუშინ] LT[-ზე]', - nextWeek: '[შემდეგ] dddd LT[-ზე]', - lastWeek: '[წინა] dddd LT-ზე', - sameElse: 'L', - }, - relativeTime: { - future: function (s) { - return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function ( - $0, - $1, - $2 - ) { - return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში'; - }); - }, - past: function (s) { - if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) { - return s.replace(/(ი|ე)$/, 'ის წინ'); - } - if (/წელი/.test(s)) { - return s.replace(/წელი$/, 'წლის წინ'); - } - return s; - }, - s: 'რამდენიმე წამი', - ss: '%d წამი', - m: 'წუთი', - mm: '%d წუთი', - h: 'საათი', - hh: '%d საათი', - d: 'დღე', - dd: '%d დღე', - M: 'თვე', - MM: '%d თვე', - y: 'წელი', - yy: '%d წელი', - }, - dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, - ordinal: function (number) { - if (number === 0) { - return number; + } + this._rawAttrs = attrs; + return attrs; + } + removeAttribute(key) { + const attrs = this.rawAttributes; + delete attrs[key]; + // Update this.attribute + if (this._attrs) { + delete this._attrs[key]; + } + // Update rawString + this.rawAttrs = Object.keys(attrs).map((name) => { + const val = JSON.stringify(attrs[name]); + if (val === undefined || val === 'null') { + return name; } - if (number === 1) { - return number + '-ლი'; + return `${name}=${val}`; + }).join(' '); + // Update this.id + if (key === 'id') { + this.id = ''; + } + } + hasAttribute(key) { + return key.toLowerCase() in this.attrs; + } + /** + * Get an attribute + * @return {string} value of the attribute + */ + getAttribute(key) { + return this.attrs[key.toLowerCase()]; + } + /** + * Set an attribute value to the HTMLElement + * @param {string} key The attribute name + * @param {string} value The value to set, or null / undefined to remove an attribute + */ + setAttribute(key, value) { + if (arguments.length < 2) { + throw new Error('Failed to execute \'setAttribute\' on \'Element\''); + } + const k2 = key.toLowerCase(); + const attrs = this.rawAttributes; + for (const k in attrs) { + if (k.toLowerCase() === k2) { + key = k; + break; } - if ( - number < 20 || - (number <= 100 && number % 20 === 0) || - number % 100 === 0 - ) { - return 'მე-' + number; + } + attrs[key] = String(value); + // update this.attrs + if (this._attrs) { + this._attrs[k2] = decode(attrs[key]); + } + // Update rawString + this.rawAttrs = Object.keys(attrs).map((name) => { + const val = this.quoteAttribute(attrs[name]); + if (val === 'null' || val === '""') { + return name; } - return number + '-ე'; - }, - week: { - dow: 1, - doy: 7, - }, - }); - - return ka; - -}))); - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/kk.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/kk.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -//! moment.js locale configuration -//! locale : Kazakh [kk] -//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan - -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - - //! moment.js locale configuration - - var suffixes = { - 0: '-ші', - 1: '-ші', - 2: '-ші', - 3: '-ші', - 4: '-ші', - 5: '-ші', - 6: '-шы', - 7: '-ші', - 8: '-ші', - 9: '-шы', - 10: '-шы', - 20: '-шы', - 30: '-шы', - 40: '-шы', - 50: '-ші', - 60: '-шы', - 70: '-ші', - 80: '-ші', - 90: '-шы', - 100: '-ші', - }; - - var kk = moment.defineLocale('kk', { - months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split( - '_' - ), - monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), - weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split( - '_' - ), - weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), - weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Бүгін сағат] LT', - nextDay: '[Ертең сағат] LT', - nextWeek: 'dddd [сағат] LT', - lastDay: '[Кеше сағат] LT', - lastWeek: '[Өткен аптаның] dddd [сағат] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s ішінде', - past: '%s бұрын', - s: 'бірнеше секунд', - ss: '%d секунд', - m: 'бір минут', - mm: '%d минут', - h: 'бір сағат', - hh: '%d сағат', - d: 'бір күн', - dd: '%d күн', - M: 'бір ай', - MM: '%d ай', - y: 'бір жыл', - yy: '%d жыл', - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/, - ordinal: function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes[number] || suffixes[a] || suffixes[b]); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - return kk; - -}))); - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/km.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/km.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -//! moment.js locale configuration -//! locale : Cambodian [km] -//! author : Kruy Vanna : https://github.com/kruyvanna - -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - - //! moment.js locale configuration - - var symbolMap = { - 1: '១', - 2: '២', - 3: '៣', - 4: '៤', - 5: '៥', - 6: '៦', - 7: '៧', - 8: '៨', - 9: '៩', - 0: '០', - }, - numberMap = { - '១': '1', - '២': '2', - '៣': '3', - '៤': '4', - '៥': '5', - '៦': '6', - '៧': '7', - '៨': '8', - '៩': '9', - '០': '0', - }; - - var km = moment.defineLocale('km', { - months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( - '_' - ), - monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( - '_' - ), - weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), - weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), - weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - meridiemParse: /ព្រឹក|ល្ងាច/, - isPM: function (input) { - return input === 'ល្ងាច'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ព្រឹក'; - } else { - return 'ល្ងាច'; + return `${name}=${val}`; + }).join(' '); + // Update this.id + if (key === 'id') { + this.id = value; + } + } + /** + * Replace all the attributes of the HTMLElement by the provided attributes + * @param {Attributes} attributes the new attribute set + */ + setAttributes(attributes) { + // Invalidate current this.attributes + if (this._attrs) { + delete this._attrs; + } + // Invalidate current this.rawAttributes + if (this._rawAttrs) { + delete this._rawAttrs; + } + // Update rawString + this.rawAttrs = Object.keys(attributes).map((name) => { + const val = attributes[name]; + if (val === 'null' || val === '""') { + return name; } - }, - calendar: { - sameDay: '[ថ្ងៃនេះ ម៉ោង] LT', - nextDay: '[ស្អែក ម៉ោង] LT', - nextWeek: 'dddd [ម៉ោង] LT', - lastDay: '[ម្សិលមិញ ម៉ោង] LT', - lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%sទៀត', - past: '%sមុន', - s: 'ប៉ុន្មានវិនាទី', - ss: '%d វិនាទី', - m: 'មួយនាទី', - mm: '%d នាទី', - h: 'មួយម៉ោង', - hh: '%d ម៉ោង', - d: 'មួយថ្ងៃ', - dd: '%d ថ្ងៃ', - M: 'មួយខែ', - MM: '%d ខែ', - y: 'មួយឆ្នាំ', - yy: '%d ឆ្នាំ', - }, - dayOfMonthOrdinalParse: /ទី\d{1,2}/, - ordinal: 'ទី%d', - preparse: function (string) { - return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) { - return numberMap[match]; + return `${name}=${this.quoteAttribute(String(val))}`; + }).join(' '); + } + insertAdjacentHTML(where, html) { + if (arguments.length < 2) { + throw new Error('2 arguments required'); + } + const p = parse(html); + if (where === 'afterend') { + const idx = this.parentNode.childNodes.findIndex((child) => { + return child === this; }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; + this.parentNode.childNodes.splice(idx + 1, 0, ...p.childNodes); + p.childNodes.forEach((n) => { + if (n instanceof HTMLElement) { + n.parentNode = this.parentNode; + } }); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - - return km; - -}))); - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/kn.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/kn.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -//! moment.js locale configuration -//! locale : Kannada [kn] -//! author : Rajeev Naik : https://github.com/rajeevnaikte - -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - - //! moment.js locale configuration - - var symbolMap = { - 1: '೧', - 2: '೨', - 3: '೩', - 4: '೪', - 5: '೫', - 6: '೬', - 7: '೭', - 8: '೮', - 9: '೯', - 0: '೦', - }, - numberMap = { - '೧': '1', - '೨': '2', - '೩': '3', - '೪': '4', - '೫': '5', - '೬': '6', - '೭': '7', - '೮': '8', - '೯': '9', - '೦': '0', - }; - - var kn = moment.defineLocale('kn', { - months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split( - '_' - ), - monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split( - '_' - ), - weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'), - weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'), - longDateFormat: { - LT: 'A h:mm', - LTS: 'A h:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm', - LLLL: 'dddd, D MMMM YYYY, A h:mm', - }, - calendar: { - sameDay: '[ಇಂದು] LT', - nextDay: '[ನಾಳೆ] LT', - nextWeek: 'dddd, LT', - lastDay: '[ನಿನ್ನೆ] LT', - lastWeek: '[ಕೊನೆಯ] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s ನಂತರ', - past: '%s ಹಿಂದೆ', - s: 'ಕೆಲವು ಕ್ಷಣಗಳು', - ss: '%d ಸೆಕೆಂಡುಗಳು', - m: 'ಒಂದು ನಿಮಿಷ', - mm: '%d ನಿಮಿಷ', - h: 'ಒಂದು ಗಂಟೆ', - hh: '%d ಗಂಟೆ', - d: 'ಒಂದು ದಿನ', - dd: '%d ದಿನ', - M: 'ಒಂದು ತಿಂಗಳು', - MM: '%d ತಿಂಗಳು', - y: 'ಒಂದು ವರ್ಷ', - yy: '%d ವರ್ಷ', - }, - preparse: function (string) { - return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) { - return numberMap[match]; + } + else if (where === 'afterbegin') { + this.childNodes.unshift(...p.childNodes); + } + else if (where === 'beforeend') { + p.childNodes.forEach((n) => { + this.appendChild(n); }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; + } + else if (where === 'beforebegin') { + const idx = this.parentNode.childNodes.findIndex((child) => { + return child === this; }); - }, - meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ರಾತ್ರಿ') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') { - return hour; - } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'ಸಂಜೆ') { - return hour + 12; + this.parentNode.childNodes.splice(idx, 0, ...p.childNodes); + p.childNodes.forEach((n) => { + if (n instanceof HTMLElement) { + n.parentNode = this.parentNode; + } + }); + } + else { + throw new Error(`The value provided ('${where}') is not one of 'beforebegin', 'afterbegin', 'beforeend', or 'afterend'`); + } + // if (!where || html === undefined || html === null) { + // return; + // } + } + get nextSibling() { + if (this.parentNode) { + const children = this.parentNode.childNodes; + let i = 0; + while (i < children.length) { + const child = children[i++]; + if (this === child) { + return children[i] || null; + } } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'ರಾತ್ರಿ'; - } else if (hour < 10) { - return 'ಬೆಳಿಗ್ಗೆ'; - } else if (hour < 17) { - return 'ಮಧ್ಯಾಹ್ನ'; - } else if (hour < 20) { - return 'ಸಂಜೆ'; - } else { - return 'ರಾತ್ರಿ'; + return null; + } + } + get nextElementSibling() { + if (this.parentNode) { + const children = this.parentNode.childNodes; + let i = 0; + let find = false; + while (i < children.length) { + const child = children[i++]; + if (find) { + if (child instanceof HTMLElement) { + return child || null; + } + } + else if (this === child) { + find = true; + } } - }, - dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/, - ordinal: function (number) { - return number + 'ನೇ'; - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, + return null; + } + } + get classNames() { + return this.classList.toString(); + } +} +// https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name +const kMarkupPattern = /)-->|<(\/?)([a-z][-.:0-9_a-z]*)\s*([^>]*?)(\/?)>/ig; +// <(?[^\s]*)(.*)>(.*)> +// <([a-z][-.:0-9_a-z]*)\s*\/> +// <(area|base|br|col|hr|img|input|link|meta|source)\s*(.*)\/?> +// <(area|base|br|col|hr|img|input|link|meta|source)\s*(.*)\/?>|<(?[^\s]*)(.*)>(.*)> +const kAttributePattern = /(^|\s)(id|class)\s*=\s*("([^"]*)"|'([^']*)'|(\S+))/ig; +const kSelfClosingElements = { + area: true, + AREA: true, + base: true, + BASE: true, + br: true, + BR: true, + col: true, + COL: true, + hr: true, + HR: true, + img: true, + IMG: true, + input: true, + INPUT: true, + link: true, + LINK: true, + meta: true, + META: true, + source: true, + SOURCE: true, + embed: true, + EMBED: true, + param: true, + PARAM: true, + track: true, + TRACK: true, + wbr: true, + WBR: true +}; +const kElementsClosedByOpening = { + li: { li: true, LI: true }, + LI: { li: true, LI: true }, + p: { p: true, div: true, P: true, DIV: true }, + P: { p: true, div: true, P: true, DIV: true }, + b: { div: true, DIV: true }, + B: { div: true, DIV: true }, + td: { td: true, th: true, TD: true, TH: true }, + TD: { td: true, th: true, TD: true, TH: true }, + th: { td: true, th: true, TD: true, TH: true }, + TH: { td: true, th: true, TD: true, TH: true }, + h1: { h1: true, H1: true }, + H1: { h1: true, H1: true }, + h2: { h2: true, H2: true }, + H2: { h2: true, H2: true }, + h3: { h3: true, H3: true }, + H3: { h3: true, H3: true }, + h4: { h4: true, H4: true }, + H4: { h4: true, H4: true }, + h5: { h5: true, H5: true }, + H5: { h5: true, H5: true }, + h6: { h6: true, H6: true }, + H6: { h6: true, H6: true } +}; +const kElementsClosedByClosing = { + li: { ul: true, ol: true, UL: true, OL: true }, + LI: { ul: true, ol: true, UL: true, OL: true }, + a: { div: true, DIV: true }, + A: { div: true, DIV: true }, + b: { div: true, DIV: true }, + B: { div: true, DIV: true }, + i: { div: true, DIV: true }, + I: { div: true, DIV: true }, + p: { div: true, DIV: true }, + P: { div: true, DIV: true }, + td: { tr: true, table: true, TR: true, TABLE: true }, + TD: { tr: true, table: true, TR: true, TABLE: true }, + th: { tr: true, table: true, TR: true, TABLE: true }, + TH: { tr: true, table: true, TR: true, TABLE: true } +}; +const frameflag = 'documentfragmentcontainer'; +/** + * Parses HTML and returns a root element + * Parse a chuck of HTML source. + * @param {string} data html + * @return {HTMLElement} root element + */ +function base_parse(data, options = { lowerCaseTagName: false, comment: false }) { + const elements = options.blockTextElements || { + script: true, + noscript: true, + style: true, + pre: true + }; + const element_names = Object.keys(elements); + const kBlockTextElements = element_names.map((it) => { + return new RegExp(it, 'i'); }); - - return kn; - -}))); - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ko.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ko.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -//! moment.js locale configuration -//! locale : Korean [ko] -//! author : Kyungwook, Park : https://github.com/kyungw00k -//! author : Jeeeyul Lee - -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - - //! moment.js locale configuration - - var ko = moment.defineLocale('ko', { - months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), - monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split( - '_' - ), - weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'), - weekdaysShort: '일_월_화_수_목_금_토'.split('_'), - weekdaysMin: '일_월_화_수_목_금_토'.split('_'), - longDateFormat: { - LT: 'A h:mm', - LTS: 'A h:mm:ss', - L: 'YYYY.MM.DD.', - LL: 'YYYY년 MMMM D일', - LLL: 'YYYY년 MMMM D일 A h:mm', - LLLL: 'YYYY년 MMMM D일 dddd A h:mm', - l: 'YYYY.MM.DD.', - ll: 'YYYY년 MMMM D일', - lll: 'YYYY년 MMMM D일 A h:mm', - llll: 'YYYY년 MMMM D일 dddd A h:mm', - }, - calendar: { - sameDay: '오늘 LT', - nextDay: '내일 LT', - nextWeek: 'dddd LT', - lastDay: '어제 LT', - lastWeek: '지난주 dddd LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s 후', - past: '%s 전', - s: '몇 초', - ss: '%d초', - m: '1분', - mm: '%d분', - h: '한 시간', - hh: '%d시간', - d: '하루', - dd: '%d일', - M: '한 달', - MM: '%d달', - y: '일 년', - yy: '%d년', - }, - dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '일'; - case 'M': - return number + '월'; - case 'w': - case 'W': - return number + '주'; - default: - return number; + const kIgnoreElements = element_names.filter((it) => { + return elements[it]; + }).map((it) => { + return new RegExp(it, 'i'); + }); + function element_should_be_ignore(tag) { + return kIgnoreElements.some((it) => { + return it.test(tag); + }); + } + function is_block_text_element(tag) { + return kBlockTextElements.some((it) => { + return it.test(tag); + }); + } + const root = new HTMLElement(null, {}, '', null); + let currentParent = root; + const stack = [root]; + let lastTextPos = -1; + let match; + // https://github.com/taoqf/node-html-parser/issues/38 + data = `<${frameflag}>${data}`; + while ((match = kMarkupPattern.exec(data))) { + if (lastTextPos > -1) { + if (lastTextPos + match[0].length < kMarkupPattern.lastIndex) { + // if has content + const text = data.substring(lastTextPos, kMarkupPattern.lastIndex - match[0].length); + currentParent.appendChild(new _text__WEBPACK_IMPORTED_MODULE_4__.default(text, currentParent)); + } + } + lastTextPos = kMarkupPattern.lastIndex; + if (match[2] === frameflag) { + continue; + } + if (match[0][1] === '!') { + // this is a comment + if (options.comment) { + // Only keep what is in between + const text = data.substring(lastTextPos - 3, lastTextPos - match[0].length + 4); + currentParent.appendChild(new _comment__WEBPACK_IMPORTED_MODULE_7__.default(text, currentParent)); + } + continue; + } + if (options.lowerCaseTagName) { + match[2] = match[2].toLowerCase(); + } + if (!match[1]) { + // not or ... + const closeMarkup = ``; + const index = (() => { + if (options.lowerCaseTagName) { + return data.toLocaleLowerCase().indexOf(closeMarkup, kMarkupPattern.lastIndex); + } + return data.indexOf(closeMarkup, kMarkupPattern.lastIndex); + })(); + if (element_should_be_ignore(match[2])) { + let text; + if (index === -1) { + // there is no matching ending for the text element. + text = data.substr(kMarkupPattern.lastIndex); + } + else { + text = data.substring(kMarkupPattern.lastIndex, index); + } + if (text.length > 0) { + currentParent.appendChild(new _text__WEBPACK_IMPORTED_MODULE_4__.default(text, currentParent)); + } + } + if (index === -1) { + lastTextPos = kMarkupPattern.lastIndex = data.length + 1; + } + else { + lastTextPos = kMarkupPattern.lastIndex = index + closeMarkup.length; + match[1] = 'true'; + } } - }, - meridiemParse: /오전|오후/, - isPM: function (token) { - return token === '오후'; - }, - meridiem: function (hour, minute, isUpper) { - return hour < 12 ? '오전' : '오후'; - }, - }); - - return ko; - -}))); - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ku.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ku.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -//! moment.js locale configuration -//! locale : Kurdish [ku] -//! author : Shahram Mebashar : https://github.com/ShahramMebashar - -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - - //! moment.js locale configuration - - var symbolMap = { - 1: '١', - 2: '٢', - 3: '٣', - 4: '٤', - 5: '٥', - 6: '٦', - 7: '٧', - 8: '٨', - 9: '٩', - 0: '٠', - }, - numberMap = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0', - }, - months = [ - 'کانونی دووەم', - 'شوبات', - 'ئازار', - 'نیسان', - 'ئایار', - 'حوزەیران', - 'تەمموز', - 'ئاب', - 'ئەیلوول', - 'تشرینی یەكەم', - 'تشرینی دووەم', - 'كانونی یەکەم', - ]; - - var ku = moment.defineLocale('ku', { - months: months, - monthsShort: months, - weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split( - '_' - ), - weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split( - '_' - ), - weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - meridiemParse: /ئێواره‌|به‌یانی/, - isPM: function (input) { - return /ئێواره‌/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'به‌یانی'; - } else { - return 'ئێواره‌'; + } + if (match[1] || match[4] || kSelfClosingElements[match[2]]) { + // or
      etc. + while (true) { + if (currentParent.rawTagName === match[2]) { + stack.pop(); + currentParent = (0,_back__WEBPACK_IMPORTED_MODULE_6__.default)(stack); + break; + } + else { + const tagName = currentParent.tagName; + // Trying to close current tag, and move on + if (kElementsClosedByClosing[tagName]) { + if (kElementsClosedByClosing[tagName][match[2]]) { + stack.pop(); + currentParent = (0,_back__WEBPACK_IMPORTED_MODULE_6__.default)(stack); + continue; + } + } + // Use aggressive strategy to handle unmatching markups. + break; + } } - }, - calendar: { - sameDay: '[ئه‌مرۆ كاتژمێر] LT', - nextDay: '[به‌یانی كاتژمێر] LT', - nextWeek: 'dddd [كاتژمێر] LT', - lastDay: '[دوێنێ كاتژمێر] LT', - lastWeek: 'dddd [كاتژمێر] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'له‌ %s', - past: '%s', - s: 'چه‌ند چركه‌یه‌ك', - ss: 'چركه‌ %d', - m: 'یه‌ك خوله‌ك', - mm: '%d خوله‌ك', - h: 'یه‌ك كاتژمێر', - hh: '%d كاتژمێر', - d: 'یه‌ك ڕۆژ', - dd: '%d ڕۆژ', - M: 'یه‌ك مانگ', - MM: '%d مانگ', - y: 'یه‌ك ساڵ', - yy: '%d ساڵ', - }, - preparse: function (string) { - return string - .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap[match]; - }) - .replace(/،/g, ','); - }, - postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap[match]; - }) - .replace(/,/g, '،'); - }, - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); - - return ku; - -}))); + } + } + return stack; +} +/** + * Parses HTML and returns a root element + * Parse a chuck of HTML source. + */ +function parse(data, options = { lowerCaseTagName: false, comment: false }) { + const stack = base_parse(data, options); + const [root] = stack; + while (stack.length > 1) { + // Handle each error elements. + const last = stack.pop(); + const oneBefore = (0,_back__WEBPACK_IMPORTED_MODULE_6__.default)(stack); + if (last.parentNode && last.parentNode.parentNode) { + if (last.parentNode === oneBefore && last.tagName === oneBefore.tagName) { + // Pair error case

      handle : Fixes to

      + oneBefore.removeChild(last); + last.childNodes.forEach((child) => { + oneBefore.parentNode.appendChild(child); + }); + stack.pop(); + } + else { + // Single error

      handle: Just removes

      + oneBefore.removeChild(last); + last.childNodes.forEach((child) => { + oneBefore.appendChild(child); + }); + } + } + else { + // If it's final element just skip. + } + } + // response.childNodes.forEach((node) => { + // if (node instanceof HTMLElement) { + // node.parentNode = null; + // } + // }); + return root; +} /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ky.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ky.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -//! moment.js locale configuration -//! locale : Kyrgyz [ky] -//! author : Chyngyz Arystan uulu : https://github.com/chyngyz - -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - - //! moment.js locale configuration - - var suffixes = { - 0: '-чү', - 1: '-чи', - 2: '-чи', - 3: '-чү', - 4: '-чү', - 5: '-чи', - 6: '-чы', - 7: '-чи', - 8: '-чи', - 9: '-чу', - 10: '-чу', - 20: '-чы', - 30: '-чу', - 40: '-чы', - 50: '-чү', - 60: '-чы', - 70: '-чи', - 80: '-чи', - 90: '-чу', - 100: '-чү', - }; - - var ky = moment.defineLocale('ky', { - months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( - '_' - ), - monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split( - '_' - ), - weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split( - '_' - ), - weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'), - weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Бүгүн саат] LT', - nextDay: '[Эртең саат] LT', - nextWeek: 'dddd [саат] LT', - lastDay: '[Кечээ саат] LT', - lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s ичинде', - past: '%s мурун', - s: 'бирнече секунд', - ss: '%d секунд', - m: 'бир мүнөт', - mm: '%d мүнөт', - h: 'бир саат', - hh: '%d саат', - d: 'бир күн', - dd: '%d күн', - M: 'бир ай', - MM: '%d ай', - y: 'бир жыл', - yy: '%d жыл', - }, - dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/, - ordinal: function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes[number] || suffixes[a] || suffixes[b]); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - return ky; +/***/ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/node.js": +/*!*************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/node.js ***! + \*************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __nested_webpack_require_1316132__) => { -}))); +"use strict"; +__nested_webpack_require_1316132__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_1316132__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ Node) +/* harmony export */ }); +/** + * Node Class as base class for TextNode and HTMLElement. + */ +class Node { + constructor(parentNode = null) { + this.parentNode = parentNode; + this.childNodes = []; + } + get innerText() { + return this.rawText; + } + get textContent() { + return this.rawText; + } + set textContent(val) { + this.rawText = val; + } +} /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lb.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lb.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -//! moment.js locale configuration -//! locale : Luxembourgish [lb] -//! author : mweimerskirch : https://github.com/mweimerskirch -//! author : David Raison : https://github.com/kwisatz +/***/ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/text.js": +/*!*************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/text.js ***! + \*************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __nested_webpack_require_1317164__) => { -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +"use strict"; +__nested_webpack_require_1317164__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_1317164__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ TextNode) +/* harmony export */ }); +/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_1317164__(/*! ./type */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/type.js"); +/* harmony import */ var _node__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_1317164__(/*! ./node */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/node.js"); - //! moment.js locale configuration - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - m: ['eng Minutt', 'enger Minutt'], - h: ['eng Stonn', 'enger Stonn'], - d: ['een Dag', 'engem Dag'], - M: ['ee Mount', 'engem Mount'], - y: ['ee Joer', 'engem Joer'], - }; - return withoutSuffix ? format[key][0] : format[key][1]; - } - function processFutureTime(string) { - var number = string.substr(0, string.indexOf(' ')); - if (eifelerRegelAppliesToNumber(number)) { - return 'a ' + string; - } - return 'an ' + string; - } - function processPastTime(string) { - var number = string.substr(0, string.indexOf(' ')); - if (eifelerRegelAppliesToNumber(number)) { - return 'viru ' + string; - } - return 'virun ' + string; +/** + * TextNode to contain a text element in DOM tree. + * @param {string} value [description] + */ +class TextNode extends _node__WEBPACK_IMPORTED_MODULE_0__.default { + constructor(rawText, parentNode) { + super(parentNode); + this.rawText = rawText; + /** + * Node Type declaration. + * @type {Number} + */ + this.nodeType = _type__WEBPACK_IMPORTED_MODULE_1__.default.TEXT_NODE; } /** - * Returns true if the word before the given number loses the '-n' ending. - * e.g. 'an 10 Deeg' but 'a 5 Deeg' - * - * @param number {integer} - * @returns {boolean} + * Returns text with all whitespace trimmed except single leading/trailing non-breaking space */ - function eifelerRegelAppliesToNumber(number) { - number = parseInt(number, 10); - if (isNaN(number)) { - return false; - } - if (number < 0) { - // Negative Number --> always true - return true; - } else if (number < 10) { - // Only 1 digit - if (4 <= number && number <= 7) { - return true; - } - return false; - } else if (number < 100) { - // 2 digits - var lastDigit = number % 10, - firstDigit = number / 10; - if (lastDigit === 0) { - return eifelerRegelAppliesToNumber(firstDigit); - } - return eifelerRegelAppliesToNumber(lastDigit); - } else if (number < 10000) { - // 3 or 4 digits --> recursively check first digit - while (number >= 10) { - number = number / 10; + get trimmedText() { + if (this._trimmedText !== undefined) + return this._trimmedText; + const text = this.rawText; + let i = 0; + let startPos; + let endPos; + while (i >= 0 && i < text.length) { + if (/\S/.test(text[i])) { + if (startPos === undefined) { + startPos = i; + i = text.length; + } + else { + endPos = i; + i = void 0; + } } - return eifelerRegelAppliesToNumber(number); - } else { - // Anything larger than 4 digits: recursively check first n-3 digits - number = number / 1000; - return eifelerRegelAppliesToNumber(number); + if (startPos === undefined) + i++; + else + i--; } - } - - var lb = moment.defineLocale('lb', { - months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( - '_' - ), - monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split( - '_' - ), - weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), - weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm [Auer]', - LTS: 'H:mm:ss [Auer]', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm [Auer]', - LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', - }, - calendar: { - sameDay: '[Haut um] LT', - sameElse: 'L', - nextDay: '[Muer um] LT', - nextWeek: 'dddd [um] LT', - lastDay: '[Gëschter um] LT', - lastWeek: function () { - // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule - switch (this.day()) { - case 2: - case 4: - return '[Leschten] dddd [um] LT'; - default: - return '[Leschte] dddd [um] LT'; - } - }, - }, - relativeTime: { - future: processFutureTime, - past: processPastTime, - s: 'e puer Sekonnen', - ss: '%d Sekonnen', - m: processRelativeTime, - mm: '%d Minutten', - h: processRelativeTime, - hh: '%d Stonnen', - d: processRelativeTime, - dd: '%d Deeg', - M: processRelativeTime, - MM: '%d Méint', - y: processRelativeTime, - yy: '%d Joer', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + if (startPos === undefined) + startPos = 0; + if (endPos === undefined) + endPos = text.length - 1; + const hasLeadingSpace = startPos > 0 && /[^\S\r\n]/.test(text[startPos - 1]); + const hasTrailingSpace = endPos < (text.length - 1) && /[^\S\r\n]/.test(text[endPos + 1]); + this._trimmedText = (hasLeadingSpace ? ' ' : '') + text.slice(startPos, endPos + 1) + (hasTrailingSpace ? ' ' : ''); + return this._trimmedText; + } + /** + * Get unescaped text value of current node and its children. + * @return {string} text content + */ + get text() { + return this.rawText; + } + /** + * Detect if the node contains only white space. + * @return {bool} + */ + get isWhitespace() { + return /^(\s| )*$/.test(this.rawText); + } + toString() { + return this.text; + } +} - return lb; -}))); +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/type.js": +/*!*************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/type.js ***! + \*************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __nested_webpack_require_1320263__) => { + +"use strict"; +__nested_webpack_require_1320263__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_1320263__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +var NodeType; +(function (NodeType) { + NodeType[NodeType["ELEMENT_NODE"] = 1] = "ELEMENT_NODE"; + NodeType[NodeType["TEXT_NODE"] = 3] = "TEXT_NODE"; + NodeType[NodeType["COMMENT_NODE"] = 8] = "COMMENT_NODE"; +})(NodeType || (NodeType = {})); +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NodeType); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lo.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lo.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/valid.js": +/*!********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/valid.js ***! + \********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __nested_webpack_require_1321237__) => { -//! moment.js locale configuration -//! locale : Lao [lo] -//! author : Ryan Hart : https://github.com/ryanhart2 +"use strict"; +__nested_webpack_require_1321237__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_1321237__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ valid) +/* harmony export */ }); +/* harmony import */ var _nodes_html__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_1321237__(/*! ./nodes/html */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/html.js"); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +/** + * Parses HTML and returns a root element + * Parse a chuck of HTML source. + */ +function valid(data, options = { lowerCaseTagName: false, comment: false }) { + const stack = (0,_nodes_html__WEBPACK_IMPORTED_MODULE_0__.base_parse)(data, options); + return Boolean(stack.length === 1); +} - //! moment.js locale configuration - var lo = moment.defineLocale('lo', { - months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( - '_' - ), - monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( - '_' - ), - weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), - weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), - weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'ວັນdddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, - isPM: function (input) { - return input === 'ຕອນແລງ'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ຕອນເຊົ້າ'; - } else { - return 'ຕອນແລງ'; - } - }, - calendar: { - sameDay: '[ມື້ນີ້ເວລາ] LT', - nextDay: '[ມື້ອື່ນເວລາ] LT', - nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT', - lastDay: '[ມື້ວານນີ້ເວລາ] LT', - lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'ອີກ %s', - past: '%sຜ່ານມາ', - s: 'ບໍ່ເທົ່າໃດວິນາທີ', - ss: '%d ວິນາທີ', - m: '1 ນາທີ', - mm: '%d ນາທີ', - h: '1 ຊົ່ວໂມງ', - hh: '%d ຊົ່ວໂມງ', - d: '1 ມື້', - dd: '%d ມື້', - M: '1 ເດືອນ', - MM: '%d ເດືອນ', - y: '1 ປີ', - yy: '%d ປີ', - }, - dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/, - ordinal: function (number) { - return 'ທີ່' + number; - }, - }); +/***/ }), - return lo; +/***/ "./build/cht-core-4-6/api/node_modules/nth-check/lib/compile.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/nth-check/lib/compile.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1322321__) { -}))); +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.generate = exports.compile = void 0; +var boolbase_1 = __importDefault(__nested_webpack_require_1322321__(/*! boolbase */ "./build/cht-core-4-6/api/node_modules/boolbase/index.js")); +/** + * Returns a function that checks if an elements index matches the given rule + * highly optimized to return the fastest solution. + * + * @param parsed A tuple [a, b], as returned by `parse`. + * @returns A highly optimized function that returns whether an index matches the nth-check. + * @example + * + * ```js + * const check = nthCheck.compile([2, 3]); + * + * check(0); // `false` + * check(1); // `false` + * check(2); // `true` + * check(3); // `false` + * check(4); // `true` + * check(5); // `false` + * check(6); // `true` + * ``` + */ +function compile(parsed) { + var a = parsed[0]; + // Subtract 1 from `b`, to convert from one- to zero-indexed. + var b = parsed[1] - 1; + /* + * When `b <= 0`, `a * n` won't be lead to any matches for `a < 0`. + * Besides, the specification states that no elements are + * matched when `a` and `b` are 0. + * + * `b < 0` here as we subtracted 1 from `b` above. + */ + if (b < 0 && a <= 0) + return boolbase_1.default.falseFunc; + // When `a` is in the range -1..1, it matches any element (so only `b` is checked). + if (a === -1) + return function (index) { return index <= b; }; + if (a === 0) + return function (index) { return index === b; }; + // When `b <= 0` and `a === 1`, they match any element. + if (a === 1) + return b < 0 ? boolbase_1.default.trueFunc : function (index) { return index >= b; }; + /* + * Otherwise, modulo can be used to check if there is a match. + * + * Modulo doesn't care about the sign, so let's use `a`s absolute value. + */ + var absA = Math.abs(a); + // Get `b mod a`, + a if this is negative. + var bMod = ((b % absA) + absA) % absA; + return a > 1 + ? function (index) { return index >= b && index % absA === bMod; } + : function (index) { return index <= b && index % absA === bMod; }; +} +exports.compile = compile; +/** + * Returns a function that produces a monotonously increasing sequence of indices. + * + * If the sequence has an end, the returned function will return `null` after + * the last index in the sequence. + * + * @param parsed A tuple [a, b], as returned by `parse`. + * @returns A function that produces a sequence of indices. + * @example Always increasing (2n+3) + * + * ```js + * const gen = nthCheck.generate([2, 3]) + * + * gen() // `1` + * gen() // `3` + * gen() // `5` + * gen() // `8` + * gen() // `11` + * ``` + * + * @example With end value (-2n+10) + * + * ```js + * + * const gen = nthCheck.generate([-2, 5]); + * + * gen() // 0 + * gen() // 2 + * gen() // 4 + * gen() // null + * ``` + */ +function generate(parsed) { + var a = parsed[0]; + // Subtract 1 from `b`, to convert from one- to zero-indexed. + var b = parsed[1] - 1; + var n = 0; + // Make sure to always return an increasing sequence + if (a < 0) { + var aPos_1 = -a; + // Get `b mod a` + var minValue_1 = ((b % aPos_1) + aPos_1) % aPos_1; + return function () { + var val = minValue_1 + aPos_1 * n++; + return val > b ? null : val; + }; + } + if (a === 0) + return b < 0 + ? // There are no result — always return `null` + function () { return null; } + : // Return `b` exactly once + function () { return (n++ === 0 ? b : null); }; + if (b < 0) { + b += a * Math.ceil(-b / a); + } + return function () { return a * n++ + b; }; +} +exports.generate = generate; +//# sourceMappingURL=compile.js.map /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lt.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lt.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/nth-check/lib/index.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/nth-check/lib/index.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_1326580__) => { -//! moment.js locale configuration -//! locale : Lithuanian [lt] -//! author : Mindaugas Mozūras : https://github.com/mmozuras +"use strict"; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.sequence = exports.generate = exports.compile = exports.parse = void 0; +var parse_js_1 = __nested_webpack_require_1326580__(/*! ./parse.js */ "./build/cht-core-4-6/api/node_modules/nth-check/lib/parse.js"); +Object.defineProperty(exports, "parse", ({ enumerable: true, get: function () { return parse_js_1.parse; } })); +var compile_js_1 = __nested_webpack_require_1326580__(/*! ./compile.js */ "./build/cht-core-4-6/api/node_modules/nth-check/lib/compile.js"); +Object.defineProperty(exports, "compile", ({ enumerable: true, get: function () { return compile_js_1.compile; } })); +Object.defineProperty(exports, "generate", ({ enumerable: true, get: function () { return compile_js_1.generate; } })); +/** + * Parses and compiles a formula to a highly optimized function. + * Combination of {@link parse} and {@link compile}. + * + * If the formula doesn't match any elements, + * it returns [`boolbase`](https://github.com/fb55/boolbase)'s `falseFunc`. + * Otherwise, a function accepting an _index_ is returned, which returns + * whether or not the passed _index_ matches the formula. + * + * Note: The nth-rule starts counting at `1`, the returned function at `0`. + * + * @param formula The formula to compile. + * @example + * const check = nthCheck("2n+3"); + * + * check(0); // `false` + * check(1); // `false` + * check(2); // `true` + * check(3); // `false` + * check(4); // `true` + * check(5); // `false` + * check(6); // `true` + */ +function nthCheck(formula) { + return (0, compile_js_1.compile)((0, parse_js_1.parse)(formula)); +} +exports.default = nthCheck; +/** + * Parses and compiles a formula to a generator that produces a sequence of indices. + * Combination of {@link parse} and {@link generate}. + * + * @param formula The formula to compile. + * @returns A function that produces a sequence of indices. + * @example Always increasing + * + * ```js + * const gen = nthCheck.sequence('2n+3') + * + * gen() // `1` + * gen() // `3` + * gen() // `5` + * gen() // `8` + * gen() // `11` + * ``` + * + * @example With end value + * + * ```js + * + * const gen = nthCheck.sequence('-2n+5'); + * + * gen() // 0 + * gen() // 2 + * gen() // 4 + * gen() // null + * ``` + */ +function sequence(formula) { + return (0, compile_js_1.generate)((0, parse_js_1.parse)(formula)); +} +exports.sequence = sequence; +//# sourceMappingURL=index.js.map - //! moment.js locale configuration +/***/ }), - var units = { - ss: 'sekundė_sekundžių_sekundes', - m: 'minutė_minutės_minutę', - mm: 'minutės_minučių_minutes', - h: 'valanda_valandos_valandą', - hh: 'valandos_valandų_valandas', - d: 'diena_dienos_dieną', - dd: 'dienos_dienų_dienas', - M: 'mėnuo_mėnesio_mėnesį', - MM: 'mėnesiai_mėnesių_mėnesius', - y: 'metai_metų_metus', - yy: 'metai_metų_metus', - }; - function translateSeconds(number, withoutSuffix, key, isFuture) { - if (withoutSuffix) { - return 'kelios sekundės'; - } else { - return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; +/***/ "./build/cht-core-4-6/api/node_modules/nth-check/lib/parse.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/nth-check/lib/parse.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +// Following http://www.w3.org/TR/css3-selectors/#nth-child-pseudo +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.parse = void 0; +// Whitespace as per https://www.w3.org/TR/selectors-3/#lex is " \t\r\n\f" +var whitespace = new Set([9, 10, 12, 13, 32]); +var ZERO = "0".charCodeAt(0); +var NINE = "9".charCodeAt(0); +/** + * Parses an expression. + * + * @throws An `Error` if parsing fails. + * @returns An array containing the integer step size and the integer offset of the nth rule. + * @example nthCheck.parse("2n+3"); // returns [2, 3] + */ +function parse(formula) { + formula = formula.trim().toLowerCase(); + if (formula === "even") { + return [2, 0]; + } + else if (formula === "odd") { + return [2, 1]; + } + // Parse [ ['-'|'+']? INTEGER? {N} [ S* ['-'|'+'] S* INTEGER ]? + var idx = 0; + var a = 0; + var sign = readSign(); + var number = readNumber(); + if (idx < formula.length && formula.charAt(idx) === "n") { + idx++; + a = sign * (number !== null && number !== void 0 ? number : 1); + skipWhitespace(); + if (idx < formula.length) { + sign = readSign(); + skipWhitespace(); + number = readNumber(); + } + else { + sign = number = 0; } } - function translateSingular(number, withoutSuffix, key, isFuture) { - return withoutSuffix - ? forms(key)[0] - : isFuture - ? forms(key)[1] - : forms(key)[2]; + // Throw if there is anything else + if (number === null || idx < formula.length) { + throw new Error("n-th rule couldn't be parsed ('".concat(formula, "')")); } - function special(number) { - return number % 10 === 0 || (number > 10 && number < 20); + return [a, sign * number]; + function readSign() { + if (formula.charAt(idx) === "-") { + idx++; + return -1; + } + if (formula.charAt(idx) === "+") { + idx++; + } + return 1; } - function forms(key) { - return units[key].split('_'); + function readNumber() { + var start = idx; + var value = 0; + while (idx < formula.length && + formula.charCodeAt(idx) >= ZERO && + formula.charCodeAt(idx) <= NINE) { + value = value * 10 + (formula.charCodeAt(idx) - ZERO); + idx++; + } + // Return `null` if we didn't read anything. + return idx === start ? null : value; } - function translate(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - if (number === 1) { - return ( - result + translateSingular(number, withoutSuffix, key[0], isFuture) - ); - } else if (withoutSuffix) { - return result + (special(number) ? forms(key)[1] : forms(key)[0]); - } else { - if (isFuture) { - return result + forms(key)[1]; - } else { - return result + (special(number) ? forms(key)[1] : forms(key)[2]); - } + function skipWhitespace() { + while (idx < formula.length && + whitespace.has(formula.charCodeAt(idx))) { + idx++; } } - var lt = moment.defineLocale('lt', { - months: { - format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split( - '_' - ), - standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split( - '_' - ), - isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, - }, - monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), - weekdays: { - format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split( - '_' - ), - standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split( - '_' - ), - isFormat: /dddd HH:mm/, - }, - weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), - weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'YYYY [m.] MMMM D [d.]', - LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', - LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', - l: 'YYYY-MM-DD', - ll: 'YYYY [m.] MMMM D [d.]', - lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', - llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', - }, - calendar: { - sameDay: '[Šiandien] LT', - nextDay: '[Rytoj] LT', - nextWeek: 'dddd LT', - lastDay: '[Vakar] LT', - lastWeek: '[Praėjusį] dddd LT', - sameElse: 'L', - }, - relativeTime: { - future: 'po %s', - past: 'prieš %s', - s: translateSeconds, - ss: translate, - m: translateSingular, - mm: translate, - h: translateSingular, - hh: translate, - d: translateSingular, - dd: translate, - M: translateSingular, - MM: translate, - y: translateSingular, - yy: translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}-oji/, - ordinal: function (number) { - return number + '-oji'; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); +} +exports.parse = parse; +//# sourceMappingURL=parse.js.map + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/on-finished/index.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/on-finished/index.js ***! + \******************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1332049__) => { + +"use strict"; +/*! + * on-finished + * Copyright(c) 2013 Jonathan Ong + * Copyright(c) 2014 Douglas Christopher Wilson + * MIT Licensed + */ - return lt; -}))); +/** + * Module exports. + * @public + */ -/***/ }), +module.exports = onFinished +module.exports.isFinished = isFinished -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lv.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lv.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/** + * Module dependencies. + * @private + */ -//! moment.js locale configuration -//! locale : Latvian [lv] -//! author : Kristaps Karlsons : https://github.com/skakri -//! author : Jānis Elmeris : https://github.com/JanisE +var first = __nested_webpack_require_1332049__(/*! ee-first */ "./build/cht-core-4-6/api/node_modules/ee-first/index.js") -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +/** + * Variables. + * @private + */ - //! moment.js locale configuration +/* istanbul ignore next */ +var defer = typeof setImmediate === 'function' + ? setImmediate + : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) } - var units = { - ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'), - m: 'minūtes_minūtēm_minūte_minūtes'.split('_'), - mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'), - h: 'stundas_stundām_stunda_stundas'.split('_'), - hh: 'stundas_stundām_stunda_stundas'.split('_'), - d: 'dienas_dienām_diena_dienas'.split('_'), - dd: 'dienas_dienām_diena_dienas'.split('_'), - M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), - MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), - y: 'gada_gadiem_gads_gadi'.split('_'), - yy: 'gada_gadiem_gads_gadi'.split('_'), - }; - /** - * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. - */ - function format(forms, number, withoutSuffix) { - if (withoutSuffix) { - // E.g. "21 minūte", "3 minūtes". - return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; - } else { - // E.g. "21 minūtes" as in "pēc 21 minūtes". - // E.g. "3 minūtēm" as in "pēc 3 minūtēm". - return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; - } - } - function relativeTimeWithPlural(number, withoutSuffix, key) { - return number + ' ' + format(units[key], number, withoutSuffix); - } - function relativeTimeWithSingular(number, withoutSuffix, key) { - return format(units[key], number, withoutSuffix); - } - function relativeSeconds(number, withoutSuffix) { - return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm'; +/** + * Invoke callback when the response has finished, useful for + * cleaning up resources afterwards. + * + * @param {object} msg + * @param {function} listener + * @return {object} + * @public + */ + +function onFinished(msg, listener) { + if (isFinished(msg) !== false) { + defer(listener, null, msg) + return msg + } + + // attach the listener to the message + attachListener(msg, listener) + + return msg +} + +/** + * Determine if message is already finished. + * + * @param {object} msg + * @return {boolean} + * @public + */ + +function isFinished(msg) { + var socket = msg.socket + + if (typeof msg.finished === 'boolean') { + // OutgoingMessage + return Boolean(msg.finished || (socket && !socket.writable)) + } + + if (typeof msg.complete === 'boolean') { + // IncomingMessage + return Boolean(msg.upgrade || !socket || !socket.readable || (msg.complete && !msg.readable)) + } + + // don't know + return undefined +} + +/** + * Attach a finished listener to the message. + * + * @param {object} msg + * @param {function} callback + * @private + */ + +function attachFinishedListener(msg, callback) { + var eeMsg + var eeSocket + var finished = false + + function onFinish(error) { + eeMsg.cancel() + eeSocket.cancel() + + finished = true + callback(error) + } + + // finished on first message event + eeMsg = eeSocket = first([[msg, 'end', 'finish']], onFinish) + + function onSocket(socket) { + // remove listener + msg.removeListener('socket', onSocket) + + if (finished) return + if (eeMsg !== eeSocket) return + + // finished on first socket event + eeSocket = first([[socket, 'error', 'close']], onFinish) + } + + if (msg.socket) { + // socket already assigned + onSocket(msg.socket) + return + } + + // wait for socket to be assigned + msg.on('socket', onSocket) + + if (msg.socket === undefined) { + // node.js 0.8 patch + patchAssignSocket(msg, onSocket) + } +} + +/** + * Attach the listener to the message. + * + * @param {object} msg + * @return {function} + * @private + */ + +function attachListener(msg, listener) { + var attached = msg.__onFinished + + // create a private single listener with queue + if (!attached || !attached.queue) { + attached = msg.__onFinished = createListener(msg) + attachFinishedListener(msg, attached) + } + + attached.queue.push(listener) +} + +/** + * Create listener on message. + * + * @param {object} msg + * @return {function} + * @private + */ + +function createListener(msg) { + function listener(err) { + if (msg.__onFinished === listener) msg.__onFinished = null + if (!listener.queue) return + + var queue = listener.queue + listener.queue = null + + for (var i = 0; i < queue.length; i++) { + queue[i](err, msg) } + } - var lv = moment.defineLocale('lv', { - months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split( - '_' - ), - monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'), - weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split( - '_' - ), - weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), - weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY.', - LL: 'YYYY. [gada] D. MMMM', - LLL: 'YYYY. [gada] D. MMMM, HH:mm', - LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', - }, - calendar: { - sameDay: '[Šodien pulksten] LT', - nextDay: '[Rīt pulksten] LT', - nextWeek: 'dddd [pulksten] LT', - lastDay: '[Vakar pulksten] LT', - lastWeek: '[Pagājušā] dddd [pulksten] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'pēc %s', - past: 'pirms %s', - s: relativeSeconds, - ss: relativeTimeWithPlural, - m: relativeTimeWithSingular, - mm: relativeTimeWithPlural, - h: relativeTimeWithSingular, - hh: relativeTimeWithPlural, - d: relativeTimeWithSingular, - dd: relativeTimeWithPlural, - M: relativeTimeWithSingular, - MM: relativeTimeWithPlural, - y: relativeTimeWithSingular, - yy: relativeTimeWithPlural, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + listener.queue = [] - return lv; + return listener +} -}))); +/** + * Patch ServerResponse.prototype.assignSocket for node.js 0.8. + * + * @param {ServerResponse} res + * @param {function} callback + * @private + */ + +function patchAssignSocket(res, callback) { + var assignSocket = res.assignSocket + + if (typeof assignSocket !== 'function') return + + // res.on('socket', callback) is broken in 0.8 + res.assignSocket = function _assignSocket(socket) { + assignSocket.call(this, socket) + callback(socket) + } +} /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/me.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/me.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/on-headers/index.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/on-headers/index.js ***! + \*****************************************************************/ +/***/ ((module) => { -//! moment.js locale configuration -//! locale : Montenegrin [me] -//! author : Miodrag Nikač : https://github.com/miodragnikac +"use strict"; +/*! + * on-headers + * Copyright(c) 2014 Douglas Christopher Wilson + * MIT Licensed + */ -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - //! moment.js locale configuration - var translator = { - words: { - //Different grammatical cases - ss: ['sekund', 'sekunda', 'sekundi'], - m: ['jedan minut', 'jednog minuta'], - mm: ['minut', 'minuta', 'minuta'], - h: ['jedan sat', 'jednog sata'], - hh: ['sat', 'sata', 'sati'], - dd: ['dan', 'dana', 'dana'], - MM: ['mjesec', 'mjeseca', 'mjeseci'], - yy: ['godina', 'godine', 'godina'], - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 - ? wordKey[0] - : number >= 2 && number <= 4 - ? wordKey[1] - : wordKey[2]; - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return ( - number + - ' ' + - translator.correctGrammaticalCase(number, wordKey) - ); - } - }, - }; +/** + * Module exports. + * @public + */ - var me = moment.defineLocale('me', { - months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( - '_' - ), - monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( - '_' - ), - weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sjutra u] LT', +module.exports = onHeaders - nextWeek: function () { - switch (this.day()) { - case 0: - return '[u] [nedjelju] [u] LT'; - case 3: - return '[u] [srijedu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - }, - lastDay: '[juče u] LT', - lastWeek: function () { - var lastWeekDays = [ - '[prošle] [nedjelje] [u] LT', - '[prošlog] [ponedjeljka] [u] LT', - '[prošlog] [utorka] [u] LT', - '[prošle] [srijede] [u] LT', - '[prošlog] [četvrtka] [u] LT', - '[prošlog] [petka] [u] LT', - '[prošle] [subote] [u] LT', - ]; - return lastWeekDays[this.day()]; - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: 'prije %s', - s: 'nekoliko sekundi', - ss: translator.translate, - m: translator.translate, - mm: translator.translate, - h: translator.translate, - hh: translator.translate, - d: 'dan', - dd: translator.translate, - M: 'mjesec', - MM: translator.translate, - y: 'godinu', - yy: translator.translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); +/** + * Create a replacement writeHead method. + * + * @param {function} prevWriteHead + * @param {function} listener + * @private + */ - return me; +function createWriteHead (prevWriteHead, listener) { + var fired = false -}))); + // return function with core name and argument list + return function writeHead (statusCode) { + // set headers from arguments + var args = setWriteHeadHeaders.apply(this, arguments) + // fire listener + if (!fired) { + fired = true + listener.call(this) -/***/ }), + // pass-along an updated status code + if (typeof args[0] === 'number' && this.statusCode !== args[0]) { + args[0] = this.statusCode + args.length = 1 + } + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mi.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mi.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + return prevWriteHead.apply(this, args) + } +} -//! moment.js locale configuration -//! locale : Maori [mi] -//! author : John Corrigan : https://github.com/johnideal +/** + * Execute a listener when a response is about to write headers. + * + * @param {object} res + * @return {function} listener + * @public + */ -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +function onHeaders (res, listener) { + if (!res) { + throw new TypeError('argument res is required') + } - //! moment.js locale configuration + if (typeof listener !== 'function') { + throw new TypeError('argument listener must be a function') + } - var mi = moment.defineLocale('mi', { - months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split( - '_' - ), - monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( - '_' - ), - monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, - weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'), - weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), - weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [i] HH:mm', - LLLL: 'dddd, D MMMM YYYY [i] HH:mm', - }, - calendar: { - sameDay: '[i teie mahana, i] LT', - nextDay: '[apopo i] LT', - nextWeek: 'dddd [i] LT', - lastDay: '[inanahi i] LT', - lastWeek: 'dddd [whakamutunga i] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'i roto i %s', - past: '%s i mua', - s: 'te hēkona ruarua', - ss: '%d hēkona', - m: 'he meneti', - mm: '%d meneti', - h: 'te haora', - hh: '%d haora', - d: 'he ra', - dd: '%d ra', - M: 'he marama', - MM: '%d marama', - y: 'he tau', - yy: '%d tau', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + res.writeHead = createWriteHead(res.writeHead, listener) +} - return mi; +/** + * Set headers contained in array on the response object. + * + * @param {object} res + * @param {array} headers + * @private + */ -}))); +function setHeadersFromArray (res, headers) { + for (var i = 0; i < headers.length; i++) { + res.setHeader(headers[i][0], headers[i][1]) + } +} + +/** + * Set headers contained in object on the response object. + * + * @param {object} res + * @param {object} headers + * @private + */ + +function setHeadersFromObject (res, headers) { + var keys = Object.keys(headers) + for (var i = 0; i < keys.length; i++) { + var k = keys[i] + if (k) res.setHeader(k, headers[k]) + } +} + +/** + * Set headers and other properties on the response object. + * + * @param {number} statusCode + * @private + */ + +function setWriteHeadHeaders (statusCode) { + var length = arguments.length + var headerIndex = length > 1 && typeof arguments[1] === 'string' + ? 2 + : 1 + + var headers = length >= headerIndex + 1 + ? arguments[headerIndex] + : undefined + + this.statusCode = statusCode + + if (Array.isArray(headers)) { + // handle array case + setHeadersFromArray(this, headers) + } else if (headers) { + // handle object case + setHeadersFromObject(this, headers) + } + + // copy leading arguments + var args = new Array(Math.min(length, headerIndex)) + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i] + } + + return args +} /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mk.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mk.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/one-time/index.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/one-time/index.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1339145__) => { -//! moment.js locale configuration -//! locale : Macedonian [mk] -//! author : Borislav Mickov : https://github.com/B0k0 -//! author : Sashko Todorov : https://github.com/bkyceh +"use strict"; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - //! moment.js locale configuration +var name = __nested_webpack_require_1339145__(/*! fn.name */ "./build/cht-core-4-6/api/node_modules/fn.name/index.js"); - var mk = moment.defineLocale('mk', { - months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split( - '_' - ), - monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), - weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split( - '_' - ), - weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'), - weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'D.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY H:mm', - LLLL: 'dddd, D MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[Денес во] LT', - nextDay: '[Утре во] LT', - nextWeek: '[Во] dddd [во] LT', - lastDay: '[Вчера во] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 6: - return '[Изминатата] dddd [во] LT'; - case 1: - case 2: - case 4: - case 5: - return '[Изминатиот] dddd [во] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'за %s', - past: 'пред %s', - s: 'неколку секунди', - ss: '%d секунди', - m: 'една минута', - mm: '%d минути', - h: 'еден час', - hh: '%d часа', - d: 'еден ден', - dd: '%d дена', - M: 'еден месец', - MM: '%d месеци', - y: 'една година', - yy: '%d години', - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, - ordinal: function (number) { - var lastDigit = number % 10, - last2Digits = number % 100; - if (number === 0) { - return number + '-ев'; - } else if (last2Digits === 0) { - return number + '-ен'; - } else if (last2Digits > 10 && last2Digits < 20) { - return number + '-ти'; - } else if (lastDigit === 1) { - return number + '-ви'; - } else if (lastDigit === 2) { - return number + '-ри'; - } else if (lastDigit === 7 || lastDigit === 8) { - return number + '-ми'; - } else { - return number + '-ти'; - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); +/** + * Wrap callbacks to prevent double execution. + * + * @param {Function} fn Function that should only be called once. + * @returns {Function} A wrapped callback which prevents multiple executions. + * @public + */ +module.exports = function one(fn) { + var called = 0 + , value; + + /** + * The function that prevents double execution. + * + * @private + */ + function onetime() { + if (called) return value; - return mk; + called = 1; + value = fn.apply(this, arguments); + fn = null; -}))); + return value; + } + + // + // To make debugging more easy we want to use the name of the supplied + // function. So when you look at the functions that are assigned to event + // listeners you don't see a load of `onetime` functions but actually the + // names of the functions that this module will call. + // + // NOTE: We cannot override the `name` property, as that is `readOnly` + // property, so displayName will have to do. + // + onetime.displayName = name(fn); + return onetime; +}; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ml.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ml.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -//! moment.js locale configuration -//! locale : Malayalam [ml] -//! author : Floyd Pink : https://github.com/floydpink +/***/ "./build/cht-core-4-6/api/node_modules/safe-buffer/index.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/safe-buffer/index.js ***! + \******************************************************************/ +/***/ ((module, exports, __nested_webpack_require_1340595__) => { -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +/* eslint-disable node/no-deprecated-api */ +var buffer = __nested_webpack_require_1340595__(/*! buffer */ "buffer") +var Buffer = buffer.Buffer - //! moment.js locale configuration +// alternative to using Object.keys for old browsers +function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key] + } +} +if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer +} else { + // Copy properties from require('buffer') + copyProps(buffer, exports) + exports.Buffer = SafeBuffer +} - var ml = moment.defineLocale('ml', { - months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split( - '_' - ), - monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split( - '_' - ), - weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), - weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), - longDateFormat: { - LT: 'A h:mm -നു', - LTS: 'A h:mm:ss -നു', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm -നു', - LLLL: 'dddd, D MMMM YYYY, A h:mm -നു', - }, - calendar: { - sameDay: '[ഇന്ന്] LT', - nextDay: '[നാളെ] LT', - nextWeek: 'dddd, LT', - lastDay: '[ഇന്നലെ] LT', - lastWeek: '[കഴിഞ്ഞ] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s കഴിഞ്ഞ്', - past: '%s മുൻപ്', - s: 'അൽപ നിമിഷങ്ങൾ', - ss: '%d സെക്കൻഡ്', - m: 'ഒരു മിനിറ്റ്', - mm: '%d മിനിറ്റ്', - h: 'ഒരു മണിക്കൂർ', - hh: '%d മണിക്കൂർ', - d: 'ഒരു ദിവസം', - dd: '%d ദിവസം', - M: 'ഒരു മാസം', - MM: '%d മാസം', - y: 'ഒരു വർഷം', - yy: '%d വർഷം', - }, - meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ( - (meridiem === 'രാത്രി' && hour >= 4) || - meridiem === 'ഉച്ച കഴിഞ്ഞ്' || - meridiem === 'വൈകുന്നേരം' - ) { - return hour + 12; - } else { - return hour; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'രാത്രി'; - } else if (hour < 12) { - return 'രാവിലെ'; - } else if (hour < 17) { - return 'ഉച്ച കഴിഞ്ഞ്'; - } else if (hour < 20) { - return 'വൈകുന്നേരം'; - } else { - return 'രാത്രി'; - } - }, - }); +function SafeBuffer (arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) +} - return ml; +// Copy static methods from Buffer +copyProps(Buffer, SafeBuffer) -}))); +SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) +} +SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + } else { + buf.fill(0) + } + return buf +} -/***/ }), +SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) +} -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mn.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mn.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) +} -//! moment.js locale configuration -//! locale : Mongolian [mn] -//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7 -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +/***/ }), - //! moment.js locale configuration +/***/ "./build/cht-core-4-6/api/node_modules/safe-stable-stringify/index.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/safe-stable-stringify/index.js ***! + \****************************************************************************/ +/***/ ((module, exports) => { - function translate(number, withoutSuffix, key, isFuture) { - switch (key) { - case 's': - return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын'; - case 'ss': - return number + (withoutSuffix ? ' секунд' : ' секундын'); - case 'm': - case 'mm': - return number + (withoutSuffix ? ' минут' : ' минутын'); - case 'h': - case 'hh': - return number + (withoutSuffix ? ' цаг' : ' цагийн'); - case 'd': - case 'dd': - return number + (withoutSuffix ? ' өдөр' : ' өдрийн'); - case 'M': - case 'MM': - return number + (withoutSuffix ? ' сар' : ' сарын'); - case 'y': - case 'yy': - return number + (withoutSuffix ? ' жил' : ' жилийн'); - default: - return number; - } - } +"use strict"; - var mn = moment.defineLocale('mn', { - months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split( - '_' - ), - monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'), - weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'), - weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'YYYY оны MMMMын D', - LLL: 'YYYY оны MMMMын D HH:mm', - LLLL: 'dddd, YYYY оны MMMMын D HH:mm', - }, - meridiemParse: /ҮӨ|ҮХ/i, - isPM: function (input) { - return input === 'ҮХ'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ҮӨ'; - } else { - return 'ҮХ'; - } - }, - calendar: { - sameDay: '[Өнөөдөр] LT', - nextDay: '[Маргааш] LT', - nextWeek: '[Ирэх] dddd LT', - lastDay: '[Өчигдөр] LT', - lastWeek: '[Өнгөрсөн] dddd LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s дараа', - past: '%s өмнө', - s: translate, - ss: translate, - m: translate, - mm: translate, - h: translate, - hh: translate, - d: translate, - dd: translate, - M: translate, - MM: translate, - y: translate, - yy: translate, - }, - dayOfMonthOrdinalParse: /\d{1,2} өдөр/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + ' өдөр'; - default: - return number; - } - }, - }); - return mn; +const { hasOwnProperty } = Object.prototype -}))); +const stringify = configure() +// @ts-expect-error +stringify.configure = configure +// @ts-expect-error +stringify.stringify = stringify -/***/ }), +// @ts-expect-error +stringify.default = stringify -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mr.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mr.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +// @ts-expect-error used for named export +exports.stringify = stringify +// @ts-expect-error used for named export +exports.configure = configure -//! moment.js locale configuration -//! locale : Marathi [mr] -//! author : Harshad Kale : https://github.com/kalehv -//! author : Vivek Athalye : https://github.com/vnathalye +module.exports = stringify -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +// eslint-disable-next-line no-control-regex +const strEscapeSequencesRegExp = /[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/ +const strEscapeSequencesReplacer = new RegExp(strEscapeSequencesRegExp, 'g') - //! moment.js locale configuration +// Escaped special characters. Use empty strings to fill up unused entries. +const meta = [ + '\\u0000', '\\u0001', '\\u0002', '\\u0003', '\\u0004', + '\\u0005', '\\u0006', '\\u0007', '\\b', '\\t', + '\\n', '\\u000b', '\\f', '\\r', '\\u000e', + '\\u000f', '\\u0010', '\\u0011', '\\u0012', '\\u0013', + '\\u0014', '\\u0015', '\\u0016', '\\u0017', '\\u0018', + '\\u0019', '\\u001a', '\\u001b', '\\u001c', '\\u001d', + '\\u001e', '\\u001f', '', '', '\\"', + '', '', '', '', '', '', '', '', '', '', + '', '', '', '', '', '', '', '', '', '', + '', '', '', '', '', '', '', '', '', '', + '', '', '', '', '', '', '', '', '', '', + '', '', '', '', '', '', '', '', '', '', + '', '', '', '', '', '', '', '\\\\' +] - var symbolMap = { - 1: '१', - 2: '२', - 3: '३', - 4: '४', - 5: '५', - 6: '६', - 7: '७', - 8: '८', - 9: '९', - 0: '०', - }, - numberMap = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0', - }; +function escapeFn (str) { + if (str.length === 2) { + const charCode = str.charCodeAt(1) + return `${str[0]}\\u${charCode.toString(16)}` + } + const charCode = str.charCodeAt(0) + return meta.length > charCode + ? meta[charCode] + : `\\u${charCode.toString(16)}` +} - function relativeTimeMr(number, withoutSuffix, string, isFuture) { - var output = ''; - if (withoutSuffix) { - switch (string) { - case 's': - output = 'काही सेकंद'; - break; - case 'ss': - output = '%d सेकंद'; - break; - case 'm': - output = 'एक मिनिट'; - break; - case 'mm': - output = '%d मिनिटे'; - break; - case 'h': - output = 'एक तास'; - break; - case 'hh': - output = '%d तास'; - break; - case 'd': - output = 'एक दिवस'; - break; - case 'dd': - output = '%d दिवस'; - break; - case 'M': - output = 'एक महिना'; - break; - case 'MM': - output = '%d महिने'; - break; - case 'y': - output = 'एक वर्ष'; - break; - case 'yy': - output = '%d वर्षे'; - break; - } - } else { - switch (string) { - case 's': - output = 'काही सेकंदां'; - break; - case 'ss': - output = '%d सेकंदां'; - break; - case 'm': - output = 'एका मिनिटा'; - break; - case 'mm': - output = '%d मिनिटां'; - break; - case 'h': - output = 'एका तासा'; - break; - case 'hh': - output = '%d तासां'; - break; - case 'd': - output = 'एका दिवसा'; - break; - case 'dd': - output = '%d दिवसां'; - break; - case 'M': - output = 'एका महिन्या'; - break; - case 'MM': - output = '%d महिन्यां'; - break; - case 'y': - output = 'एका वर्षा'; - break; - case 'yy': - output = '%d वर्षां'; - break; - } +// Escape C0 control characters, double quotes, the backslash and every code +// unit with a numeric value in the inclusive range 0xD800 to 0xDFFF. +function strEscape (str) { + // Some magic numbers that worked out fine while benchmarking with v8 8.0 + if (str.length < 5000 && !strEscapeSequencesRegExp.test(str)) { + return str + } + if (str.length > 100) { + return str.replace(strEscapeSequencesReplacer, escapeFn) + } + let result = '' + let last = 0 + for (let i = 0; i < str.length; i++) { + const point = str.charCodeAt(i) + if (point === 34 || point === 92 || point < 32) { + result += `${str.slice(last, i)}${meta[point]}` + last = i + 1 + } else if (point >= 0xd800 && point <= 0xdfff) { + if (point <= 0xdbff && i + 1 < str.length) { + const nextPoint = str.charCodeAt(i + 1) + if (nextPoint >= 0xdc00 && nextPoint <= 0xdfff) { + i++ + continue } - return output.replace(/%d/i, number); + } + result += `${str.slice(last, i)}\\u${point.toString(16)}` + last = i + 1 } + } + result += str.slice(last) + return result +} - var mr = moment.defineLocale('mr', { - months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( - '_' - ), - monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), - weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), - weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), - longDateFormat: { - LT: 'A h:mm वाजता', - LTS: 'A h:mm:ss वाजता', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm वाजता', - LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता', - }, - calendar: { - sameDay: '[आज] LT', - nextDay: '[उद्या] LT', - nextWeek: 'dddd, LT', - lastDay: '[काल] LT', - lastWeek: '[मागील] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%sमध्ये', - past: '%sपूर्वी', - s: relativeTimeMr, - ss: relativeTimeMr, - m: relativeTimeMr, - mm: relativeTimeMr, - h: relativeTimeMr, - hh: relativeTimeMr, - d: relativeTimeMr, - dd: relativeTimeMr, - M: relativeTimeMr, - MM: relativeTimeMr, - y: relativeTimeMr, - yy: relativeTimeMr, - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'पहाटे' || meridiem === 'सकाळी') { - return hour; - } else if ( - meridiem === 'दुपारी' || - meridiem === 'सायंकाळी' || - meridiem === 'रात्री' - ) { - return hour >= 12 ? hour : hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour >= 0 && hour < 6) { - return 'पहाटे'; - } else if (hour < 12) { - return 'सकाळी'; - } else if (hour < 17) { - return 'दुपारी'; - } else if (hour < 20) { - return 'सायंकाळी'; - } else { - return 'रात्री'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); +function insertSort (array) { + // Insertion sort is very efficient for small input sizes but it has a bad + // worst case complexity. Thus, use native array sort for bigger values. + if (array.length > 2e2) { + return array.sort() + } + for (let i = 1; i < array.length; i++) { + const currentValue = array[i] + let position = i + while (position !== 0 && array[position - 1] > currentValue) { + array[position] = array[position - 1] + position-- + } + array[position] = currentValue + } + return array +} + +const typedArrayPrototypeGetSymbolToStringTag = + Object.getOwnPropertyDescriptor( + Object.getPrototypeOf( + Object.getPrototypeOf( + new Int8Array() + ) + ), + Symbol.toStringTag + ).get + +function isTypedArrayWithEntries (value) { + return typedArrayPrototypeGetSymbolToStringTag.call(value) !== undefined && value.length !== 0 +} + +function stringifyTypedArray (array, separator, maximumBreadth) { + if (array.length < maximumBreadth) { + maximumBreadth = array.length + } + const whitespace = separator === ',' ? '' : ' ' + let res = `"0":${whitespace}${array[0]}` + for (let i = 1; i < maximumBreadth; i++) { + res += `${separator}"${i}":${whitespace}${array[i]}` + } + return res +} - return mr; +function getCircularValueOption (options) { + if (hasOwnProperty.call(options, 'circularValue')) { + const circularValue = options.circularValue + if (typeof circularValue === 'string') { + return `"${circularValue}"` + } + if (circularValue == null) { + return circularValue + } + if (circularValue === Error || circularValue === TypeError) { + return { + toString () { + throw new TypeError('Converting circular structure to JSON') + } + } + } + throw new TypeError('The "circularValue" argument must be of type string or the value null or undefined') + } + return '"[Circular]"' +} -}))); +function getBooleanOption (options, key) { + let value + if (hasOwnProperty.call(options, key)) { + value = options[key] + if (typeof value !== 'boolean') { + throw new TypeError(`The "${key}" argument must be of type boolean`) + } + } + return value === undefined ? true : value +} +function getPositiveIntegerOption (options, key) { + let value + if (hasOwnProperty.call(options, key)) { + value = options[key] + if (typeof value !== 'number') { + throw new TypeError(`The "${key}" argument must be of type number`) + } + if (!Number.isInteger(value)) { + throw new TypeError(`The "${key}" argument must be an integer`) + } + if (value < 1) { + throw new RangeError(`The "${key}" argument must be >= 1`) + } + } + return value === undefined ? Infinity : value +} -/***/ }), +function getItemCount (number) { + if (number === 1) { + return '1 item' + } + return `${number} items` +} -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ms-my.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ms-my.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +function getUniqueReplacerSet (replacerArray) { + const replacerSet = new Set() + for (const value of replacerArray) { + if (typeof value === 'string' || typeof value === 'number') { + replacerSet.add(String(value)) + } + } + return replacerSet +} -//! moment.js locale configuration -//! locale : Malay [ms-my] -//! note : DEPRECATED, the correct one is [ms] -//! author : Weldan Jamili : https://github.com/weldan +function getStrictOption (options) { + if (hasOwnProperty.call(options, 'strict')) { + const value = options.strict + if (typeof value !== 'boolean') { + throw new TypeError('The "strict" argument must be of type boolean') + } + if (value) { + return (value) => { + let message = `Object can not safely be stringified. Received type ${typeof value}` + if (typeof value !== 'function') message += ` (${value.toString()})` + throw new Error(message) + } + } + } +} -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +function configure (options) { + options = { ...options } + const fail = getStrictOption(options) + if (fail) { + if (options.bigint === undefined) { + options.bigint = false + } + if (!('circularValue' in options)) { + options.circularValue = Error + } + } + const circularValue = getCircularValueOption(options) + const bigint = getBooleanOption(options, 'bigint') + const deterministic = getBooleanOption(options, 'deterministic') + const maximumDepth = getPositiveIntegerOption(options, 'maximumDepth') + const maximumBreadth = getPositiveIntegerOption(options, 'maximumBreadth') - //! moment.js locale configuration + function stringifyFnReplacer (key, parent, stack, replacer, spacer, indentation) { + let value = parent[key] - var msMy = moment.defineLocale('ms-my', { - months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), - weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), - weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), - weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [pukul] HH.mm', - LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', - }, - meridiemParse: /pagi|tengahari|petang|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'tengahari') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'petang' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'tengahari'; - } else if (hours < 19) { - return 'petang'; - } else { - return 'malam'; - } - }, - calendar: { - sameDay: '[Hari ini pukul] LT', - nextDay: '[Esok pukul] LT', - nextWeek: 'dddd [pukul] LT', - lastDay: '[Kelmarin pukul] LT', - lastWeek: 'dddd [lepas pukul] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dalam %s', - past: '%s yang lepas', - s: 'beberapa saat', - ss: '%d saat', - m: 'seminit', - mm: '%d minit', - h: 'sejam', - hh: '%d jam', - d: 'sehari', - dd: '%d hari', - M: 'sebulan', - MM: '%d bulan', - y: 'setahun', - yy: '%d tahun', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); + if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') { + value = value.toJSON(key) + } + value = replacer.call(parent, key, value) - return msMy; + switch (typeof value) { + case 'string': + return `"${strEscape(value)}"` + case 'object': { + if (value === null) { + return 'null' + } + if (stack.indexOf(value) !== -1) { + return circularValue + } -}))); + let res = '' + let join = ',' + const originalIndentation = indentation + if (Array.isArray(value)) { + if (value.length === 0) { + return '[]' + } + if (maximumDepth < stack.length + 1) { + return '"[Array]"' + } + stack.push(value) + if (spacer !== '') { + indentation += spacer + res += `\n${indentation}` + join = `,\n${indentation}` + } + const maximumValuesToStringify = Math.min(value.length, maximumBreadth) + let i = 0 + for (; i < maximumValuesToStringify - 1; i++) { + const tmp = stringifyFnReplacer(i, value, stack, replacer, spacer, indentation) + res += tmp !== undefined ? tmp : 'null' + res += join + } + const tmp = stringifyFnReplacer(i, value, stack, replacer, spacer, indentation) + res += tmp !== undefined ? tmp : 'null' + if (value.length - 1 > maximumBreadth) { + const removedKeys = value.length - maximumBreadth - 1 + res += `${join}"... ${getItemCount(removedKeys)} not stringified"` + } + if (spacer !== '') { + res += `\n${originalIndentation}` + } + stack.pop() + return `[${res}]` + } + + let keys = Object.keys(value) + const keyLength = keys.length + if (keyLength === 0) { + return '{}' + } + if (maximumDepth < stack.length + 1) { + return '"[Object]"' + } + let whitespace = '' + let separator = '' + if (spacer !== '') { + indentation += spacer + join = `,\n${indentation}` + whitespace = ' ' + } + let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth) + if (isTypedArrayWithEntries(value)) { + res += stringifyTypedArray(value, join, maximumBreadth) + keys = keys.slice(value.length) + maximumPropertiesToStringify -= value.length + separator = join + } + if (deterministic) { + keys = insertSort(keys) + } + stack.push(value) + for (let i = 0; i < maximumPropertiesToStringify; i++) { + const key = keys[i] + const tmp = stringifyFnReplacer(key, value, stack, replacer, spacer, indentation) + if (tmp !== undefined) { + res += `${separator}"${strEscape(key)}":${whitespace}${tmp}` + separator = join + } + } + if (keyLength > maximumBreadth) { + const removedKeys = keyLength - maximumBreadth + res += `${separator}"...":${whitespace}"${getItemCount(removedKeys)} not stringified"` + separator = join + } + if (spacer !== '' && separator.length > 1) { + res = `\n${indentation}${res}\n${originalIndentation}` + } + stack.pop() + return `{${res}}` + } + case 'number': + return isFinite(value) ? String(value) : fail ? fail(value) : 'null' + case 'boolean': + return value === true ? 'true' : 'false' + case 'undefined': + return undefined + case 'bigint': + if (bigint) { + return String(value) + } + // fallthrough + default: + return fail ? fail(value) : undefined + } + } -/***/ }), + function stringifyArrayReplacer (key, value, stack, replacer, spacer, indentation) { + if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') { + value = value.toJSON(key) + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ms.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ms.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + switch (typeof value) { + case 'string': + return `"${strEscape(value)}"` + case 'object': { + if (value === null) { + return 'null' + } + if (stack.indexOf(value) !== -1) { + return circularValue + } -//! moment.js locale configuration -//! locale : Malay [ms] -//! author : Weldan Jamili : https://github.com/weldan + const originalIndentation = indentation + let res = '' + let join = ',' -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + if (Array.isArray(value)) { + if (value.length === 0) { + return '[]' + } + if (maximumDepth < stack.length + 1) { + return '"[Array]"' + } + stack.push(value) + if (spacer !== '') { + indentation += spacer + res += `\n${indentation}` + join = `,\n${indentation}` + } + const maximumValuesToStringify = Math.min(value.length, maximumBreadth) + let i = 0 + for (; i < maximumValuesToStringify - 1; i++) { + const tmp = stringifyArrayReplacer(i, value[i], stack, replacer, spacer, indentation) + res += tmp !== undefined ? tmp : 'null' + res += join + } + const tmp = stringifyArrayReplacer(i, value[i], stack, replacer, spacer, indentation) + res += tmp !== undefined ? tmp : 'null' + if (value.length - 1 > maximumBreadth) { + const removedKeys = value.length - maximumBreadth - 1 + res += `${join}"... ${getItemCount(removedKeys)} not stringified"` + } + if (spacer !== '') { + res += `\n${originalIndentation}` + } + stack.pop() + return `[${res}]` + } + if (replacer.size === 0) { + return '{}' + } + stack.push(value) + let whitespace = '' + if (spacer !== '') { + indentation += spacer + join = `,\n${indentation}` + whitespace = ' ' + } + let separator = '' + for (const key of replacer) { + const tmp = stringifyArrayReplacer(key, value[key], stack, replacer, spacer, indentation) + if (tmp !== undefined) { + res += `${separator}"${strEscape(key)}":${whitespace}${tmp}` + separator = join + } + } + if (spacer !== '' && separator.length > 1) { + res = `\n${indentation}${res}\n${originalIndentation}` + } + stack.pop() + return `{${res}}` + } + case 'number': + return isFinite(value) ? String(value) : fail ? fail(value) : 'null' + case 'boolean': + return value === true ? 'true' : 'false' + case 'undefined': + return undefined + case 'bigint': + if (bigint) { + return String(value) + } + // fallthrough + default: + return fail ? fail(value) : undefined + } + } - //! moment.js locale configuration + function stringifyIndent (key, value, stack, spacer, indentation) { + switch (typeof value) { + case 'string': + return `"${strEscape(value)}"` + case 'object': { + if (value === null) { + return 'null' + } + if (typeof value.toJSON === 'function') { + value = value.toJSON(key) + // Prevent calling `toJSON` again. + if (typeof value !== 'object') { + return stringifyIndent(key, value, stack, spacer, indentation) + } + if (value === null) { + return 'null' + } + } + if (stack.indexOf(value) !== -1) { + return circularValue + } + const originalIndentation = indentation - var ms = moment.defineLocale('ms', { - months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), - weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), - weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), - weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [pukul] HH.mm', - LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', - }, - meridiemParse: /pagi|tengahari|petang|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'tengahari') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'petang' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'tengahari'; - } else if (hours < 19) { - return 'petang'; - } else { - return 'malam'; - } - }, - calendar: { - sameDay: '[Hari ini pukul] LT', - nextDay: '[Esok pukul] LT', - nextWeek: 'dddd [pukul] LT', - lastDay: '[Kelmarin pukul] LT', - lastWeek: 'dddd [lepas pukul] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dalam %s', - past: '%s yang lepas', - s: 'beberapa saat', - ss: '%d saat', - m: 'seminit', - mm: '%d minit', - h: 'sejam', - hh: '%d jam', - d: 'sehari', - dd: '%d hari', - M: 'sebulan', - MM: '%d bulan', - y: 'setahun', - yy: '%d tahun', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); + if (Array.isArray(value)) { + if (value.length === 0) { + return '[]' + } + if (maximumDepth < stack.length + 1) { + return '"[Array]"' + } + stack.push(value) + indentation += spacer + let res = `\n${indentation}` + const join = `,\n${indentation}` + const maximumValuesToStringify = Math.min(value.length, maximumBreadth) + let i = 0 + for (; i < maximumValuesToStringify - 1; i++) { + const tmp = stringifyIndent(i, value[i], stack, spacer, indentation) + res += tmp !== undefined ? tmp : 'null' + res += join + } + const tmp = stringifyIndent(i, value[i], stack, spacer, indentation) + res += tmp !== undefined ? tmp : 'null' + if (value.length - 1 > maximumBreadth) { + const removedKeys = value.length - maximumBreadth - 1 + res += `${join}"... ${getItemCount(removedKeys)} not stringified"` + } + res += `\n${originalIndentation}` + stack.pop() + return `[${res}]` + } + + let keys = Object.keys(value) + const keyLength = keys.length + if (keyLength === 0) { + return '{}' + } + if (maximumDepth < stack.length + 1) { + return '"[Object]"' + } + indentation += spacer + const join = `,\n${indentation}` + let res = '' + let separator = '' + let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth) + if (isTypedArrayWithEntries(value)) { + res += stringifyTypedArray(value, join, maximumBreadth) + keys = keys.slice(value.length) + maximumPropertiesToStringify -= value.length + separator = join + } + if (deterministic) { + keys = insertSort(keys) + } + stack.push(value) + for (let i = 0; i < maximumPropertiesToStringify; i++) { + const key = keys[i] + const tmp = stringifyIndent(key, value[key], stack, spacer, indentation) + if (tmp !== undefined) { + res += `${separator}"${strEscape(key)}": ${tmp}` + separator = join + } + } + if (keyLength > maximumBreadth) { + const removedKeys = keyLength - maximumBreadth + res += `${separator}"...": "${getItemCount(removedKeys)} not stringified"` + separator = join + } + if (separator !== '') { + res = `\n${indentation}${res}\n${originalIndentation}` + } + stack.pop() + return `{${res}}` + } + case 'number': + return isFinite(value) ? String(value) : fail ? fail(value) : 'null' + case 'boolean': + return value === true ? 'true' : 'false' + case 'undefined': + return undefined + case 'bigint': + if (bigint) { + return String(value) + } + // fallthrough + default: + return fail ? fail(value) : undefined + } + } - return ms; + function stringifySimple (key, value, stack) { + switch (typeof value) { + case 'string': + return `"${strEscape(value)}"` + case 'object': { + if (value === null) { + return 'null' + } + if (typeof value.toJSON === 'function') { + value = value.toJSON(key) + // Prevent calling `toJSON` again + if (typeof value !== 'object') { + return stringifySimple(key, value, stack) + } + if (value === null) { + return 'null' + } + } + if (stack.indexOf(value) !== -1) { + return circularValue + } -}))); + let res = '' + + if (Array.isArray(value)) { + if (value.length === 0) { + return '[]' + } + if (maximumDepth < stack.length + 1) { + return '"[Array]"' + } + stack.push(value) + const maximumValuesToStringify = Math.min(value.length, maximumBreadth) + let i = 0 + for (; i < maximumValuesToStringify - 1; i++) { + const tmp = stringifySimple(i, value[i], stack) + res += tmp !== undefined ? tmp : 'null' + res += ',' + } + const tmp = stringifySimple(i, value[i], stack) + res += tmp !== undefined ? tmp : 'null' + if (value.length - 1 > maximumBreadth) { + const removedKeys = value.length - maximumBreadth - 1 + res += `,"... ${getItemCount(removedKeys)} not stringified"` + } + stack.pop() + return `[${res}]` + } + + let keys = Object.keys(value) + const keyLength = keys.length + if (keyLength === 0) { + return '{}' + } + if (maximumDepth < stack.length + 1) { + return '"[Object]"' + } + let separator = '' + let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth) + if (isTypedArrayWithEntries(value)) { + res += stringifyTypedArray(value, ',', maximumBreadth) + keys = keys.slice(value.length) + maximumPropertiesToStringify -= value.length + separator = ',' + } + if (deterministic) { + keys = insertSort(keys) + } + stack.push(value) + for (let i = 0; i < maximumPropertiesToStringify; i++) { + const key = keys[i] + const tmp = stringifySimple(key, value[key], stack) + if (tmp !== undefined) { + res += `${separator}"${strEscape(key)}":${tmp}` + separator = ',' + } + } + if (keyLength > maximumBreadth) { + const removedKeys = keyLength - maximumBreadth + res += `${separator}"...":"${getItemCount(removedKeys)} not stringified"` + } + stack.pop() + return `{${res}}` + } + case 'number': + return isFinite(value) ? String(value) : fail ? fail(value) : 'null' + case 'boolean': + return value === true ? 'true' : 'false' + case 'undefined': + return undefined + case 'bigint': + if (bigint) { + return String(value) + } + // fallthrough + default: + return fail ? fail(value) : undefined + } + } + + function stringify (value, replacer, space) { + if (arguments.length > 1) { + let spacer = '' + if (typeof space === 'number') { + spacer = ' '.repeat(Math.min(space, 10)) + } else if (typeof space === 'string') { + spacer = space.slice(0, 10) + } + if (replacer != null) { + if (typeof replacer === 'function') { + return stringifyFnReplacer('', { '': value }, [], replacer, spacer, '') + } + if (Array.isArray(replacer)) { + return stringifyArrayReplacer('', value, [], getUniqueReplacerSet(replacer), spacer, '') + } + } + if (spacer.length !== 0) { + return stringifyIndent('', value, [], spacer, '') + } + } + return stringifySimple('', value, []) + } + + return stringify +} /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mt.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mt.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/simple-swizzle/index.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/simple-swizzle/index.js ***! + \*********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1364255__) => { -//! moment.js locale configuration -//! locale : Maltese (Malta) [mt] -//! author : Alessandro Maruccia : https://github.com/alesma +"use strict"; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - //! moment.js locale configuration +var isArrayish = __nested_webpack_require_1364255__(/*! is-arrayish */ "./build/cht-core-4-6/api/node_modules/is-arrayish/index.js"); - var mt = moment.defineLocale('mt', { - months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split( - '_' - ), - monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'), - weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split( - '_' - ), - weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'), - weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Illum fil-]LT', - nextDay: '[Għada fil-]LT', - nextWeek: 'dddd [fil-]LT', - lastDay: '[Il-bieraħ fil-]LT', - lastWeek: 'dddd [li għadda] [fil-]LT', - sameElse: 'L', - }, - relativeTime: { - future: 'f’ %s', - past: '%s ilu', - s: 'ftit sekondi', - ss: '%d sekondi', - m: 'minuta', - mm: '%d minuti', - h: 'siegħa', - hh: '%d siegħat', - d: 'ġurnata', - dd: '%d ġranet', - M: 'xahar', - MM: '%d xhur', - y: 'sena', - yy: '%d sni', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); +var concat = Array.prototype.concat; +var slice = Array.prototype.slice; - return mt; +var swizzle = module.exports = function swizzle(args) { + var results = []; -}))); + for (var i = 0, len = args.length; i < len; i++) { + var arg = args[i]; + + if (isArrayish(arg)) { + // http://jsperf.com/javascript-array-concat-vs-push/98 + results = concat.call(results, slice.call(arg)); + } else { + results.push(arg); + } + } + + return results; +}; + +swizzle.wrap = function (fn) { + return function () { + return fn(swizzle(arguments)); + }; +}; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/my.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/my.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/stack-trace/lib/stack-trace.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/stack-trace/lib/stack-trace.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { -//! moment.js locale configuration -//! locale : Burmese [my] -//! author : Squar team, mysquar.com -//! author : David Rossellat : https://github.com/gholadr -//! author : Tin Aung Lin : https://github.com/thanyawzinmin +exports.get = function(belowFn) { + var oldLimit = Error.stackTraceLimit; + Error.stackTraceLimit = Infinity; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + var dummyObject = {}; - //! moment.js locale configuration + var v8Handler = Error.prepareStackTrace; + Error.prepareStackTrace = function(dummyObject, v8StackTrace) { + return v8StackTrace; + }; + Error.captureStackTrace(dummyObject, belowFn || exports.get); - var symbolMap = { - 1: '၁', - 2: '၂', - 3: '၃', - 4: '၄', - 5: '၅', - 6: '၆', - 7: '၇', - 8: '၈', - 9: '၉', - 0: '၀', - }, - numberMap = { - '၁': '1', - '၂': '2', - '၃': '3', - '၄': '4', - '၅': '5', - '၆': '6', - '၇': '7', - '၈': '8', - '၉': '9', - '၀': '0', - }; + var v8StackTrace = dummyObject.stack; + Error.prepareStackTrace = v8Handler; + Error.stackTraceLimit = oldLimit; - var my = moment.defineLocale('my', { - months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split( - '_' - ), - monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), - weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split( - '_' - ), - weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), - weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + return v8StackTrace; +}; - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[ယနေ.] LT [မှာ]', - nextDay: '[မနက်ဖြန်] LT [မှာ]', - nextWeek: 'dddd LT [မှာ]', - lastDay: '[မနေ.က] LT [မှာ]', - lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]', - sameElse: 'L', - }, - relativeTime: { - future: 'လာမည့် %s မှာ', - past: 'လွန်ခဲ့သော %s က', - s: 'စက္ကန်.အနည်းငယ်', - ss: '%d စက္ကန့်', - m: 'တစ်မိနစ်', - mm: '%d မိနစ်', - h: 'တစ်နာရီ', - hh: '%d နာရီ', - d: 'တစ်ရက်', - dd: '%d ရက်', - M: 'တစ်လ', - MM: '%d လ', - y: 'တစ်နှစ်', - yy: '%d နှစ်', - }, - preparse: function (string) { - return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); +exports.parse = function(err) { + if (!err.stack) { + return []; + } - return my; + var self = this; + var lines = err.stack.split('\n').slice(1); -}))); + return lines + .map(function(line) { + if (line.match(/^\s*[-]{4,}$/)) { + return self._createParsedCallSite({ + fileName: line, + lineNumber: null, + functionName: null, + typeName: null, + methodName: null, + columnNumber: null, + 'native': null, + }); + } + var lineMatch = line.match(/at (?:(.+)\s+\()?(?:(.+?):(\d+)(?::(\d+))?|([^)]+))\)?/); + if (!lineMatch) { + return; + } -/***/ }), + var object = null; + var method = null; + var functionName = null; + var typeName = null; + var methodName = null; + var isNative = (lineMatch[5] === 'native'); -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nb.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nb.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + if (lineMatch[1]) { + functionName = lineMatch[1]; + var methodStart = functionName.lastIndexOf('.'); + if (functionName[methodStart-1] == '.') + methodStart--; + if (methodStart > 0) { + object = functionName.substr(0, methodStart); + method = functionName.substr(methodStart + 1); + var objectEnd = object.indexOf('.Module'); + if (objectEnd > 0) { + functionName = functionName.substr(objectEnd + 1); + object = object.substr(0, objectEnd); + } + } + typeName = null; + } -//! moment.js locale configuration -//! locale : Norwegian Bokmål [nb] -//! authors : Espen Hovlandsdal : https://github.com/rexxars -//! Sigurd Gartmann : https://github.com/sigurdga -//! Stephen Ramthun : https://github.com/stephenramthun + if (method) { + typeName = object; + methodName = method; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + if (method === '') { + methodName = null; + functionName = null; + } - //! moment.js locale configuration + var properties = { + fileName: lineMatch[2] || null, + lineNumber: parseInt(lineMatch[3], 10) || null, + functionName: functionName, + typeName: typeName, + methodName: methodName, + columnNumber: parseInt(lineMatch[4], 10) || null, + 'native': isNative, + }; - var nb = moment.defineLocale('nb', { - months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( - '_' - ), - monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), - weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'), - weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY [kl.] HH:mm', - LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', - }, - calendar: { - sameDay: '[i dag kl.] LT', - nextDay: '[i morgen kl.] LT', - nextWeek: 'dddd [kl.] LT', - lastDay: '[i går kl.] LT', - lastWeek: '[forrige] dddd [kl.] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'om %s', - past: '%s siden', - s: 'noen sekunder', - ss: '%d sekunder', - m: 'ett minutt', - mm: '%d minutter', - h: 'en time', - hh: '%d timer', - d: 'en dag', - dd: '%d dager', - w: 'en uke', - ww: '%d uker', - M: 'en måned', - MM: '%d måneder', - y: 'ett år', - yy: '%d år', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, + return self._createParsedCallSite(properties); + }) + .filter(function(callSite) { + return !!callSite; }); +}; - return nb; +function CallSite(properties) { + for (var property in properties) { + this[property] = properties[property]; + } +} -}))); +var strProperties = [ + 'this', + 'typeName', + 'functionName', + 'methodName', + 'fileName', + 'lineNumber', + 'columnNumber', + 'function', + 'evalOrigin' +]; +var boolProperties = [ + 'topLevel', + 'eval', + 'native', + 'constructor' +]; +strProperties.forEach(function (property) { + CallSite.prototype[property] = null; + CallSite.prototype['get' + property[0].toUpperCase() + property.substr(1)] = function () { + return this[property]; + } +}); +boolProperties.forEach(function (property) { + CallSite.prototype[property] = false; + CallSite.prototype['is' + property[0].toUpperCase() + property.substr(1)] = function () { + return this[property]; + } +}); + +exports._createParsedCallSite = function(properties) { + return new CallSite(properties); +}; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ne.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ne.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/string_decoder/lib/string_decoder.js": +/*!**********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/string_decoder/lib/string_decoder.js ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_1369103__) => { -//! moment.js locale configuration -//! locale : Nepalese [ne] -//! author : suvash : https://github.com/suvash +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - //! moment.js locale configuration - var symbolMap = { - 1: '१', - 2: '२', - 3: '३', - 4: '४', - 5: '५', - 6: '६', - 7: '७', - 8: '८', - 9: '९', - 0: '०', - }, - numberMap = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0', - }; +/**/ - var ne = moment.defineLocale('ne', { - months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split( - '_' - ), - monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split( - '_' - ), - weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), - weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'Aको h:mm बजे', - LTS: 'Aको h:mm:ss बजे', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, Aको h:mm बजे', - LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे', - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /राति|बिहान|दिउँसो|साँझ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'राति') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'बिहान') { - return hour; - } else if (meridiem === 'दिउँसो') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'साँझ') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 3) { - return 'राति'; - } else if (hour < 12) { - return 'बिहान'; - } else if (hour < 16) { - return 'दिउँसो'; - } else if (hour < 20) { - return 'साँझ'; - } else { - return 'राति'; - } - }, - calendar: { - sameDay: '[आज] LT', - nextDay: '[भोलि] LT', - nextWeek: '[आउँदो] dddd[,] LT', - lastDay: '[हिजो] LT', - lastWeek: '[गएको] dddd[,] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%sमा', - past: '%s अगाडि', - s: 'केही क्षण', - ss: '%d सेकेण्ड', - m: 'एक मिनेट', - mm: '%d मिनेट', - h: 'एक घण्टा', - hh: '%d घण्टा', - d: 'एक दिन', - dd: '%d दिन', - M: 'एक महिना', - MM: '%d महिना', - y: 'एक बर्ष', - yy: '%d बर्ष', - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); +var Buffer = __nested_webpack_require_1369103__(/*! safe-buffer */ "./build/cht-core-4-6/api/node_modules/safe-buffer/index.js").Buffer; +/**/ - return ne; +var isEncoding = Buffer.isEncoding || function (encoding) { + encoding = '' + encoding; + switch (encoding && encoding.toLowerCase()) { + case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw': + return true; + default: + return false; + } +}; -}))); +function _normalizeEncoding(enc) { + if (!enc) return 'utf8'; + var retried; + while (true) { + switch (enc) { + case 'utf8': + case 'utf-8': + return 'utf8'; + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return 'utf16le'; + case 'latin1': + case 'binary': + return 'latin1'; + case 'base64': + case 'ascii': + case 'hex': + return enc; + default: + if (retried) return; // undefined + enc = ('' + enc).toLowerCase(); + retried = true; + } + } +}; +// Do not cache `Buffer.isEncoding` when checking encoding names as some +// modules monkey-patch it to support additional encodings +function normalizeEncoding(enc) { + var nenc = _normalizeEncoding(enc); + if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc); + return nenc || enc; +} -/***/ }), +// StringDecoder provides an interface for efficiently splitting a series of +// buffers into a series of JS strings without breaking apart multi-byte +// characters. +exports.StringDecoder = StringDecoder; +function StringDecoder(encoding) { + this.encoding = normalizeEncoding(encoding); + var nb; + switch (this.encoding) { + case 'utf16le': + this.text = utf16Text; + this.end = utf16End; + nb = 4; + break; + case 'utf8': + this.fillLast = utf8FillLast; + nb = 4; + break; + case 'base64': + this.text = base64Text; + this.end = base64End; + nb = 3; + break; + default: + this.write = simpleWrite; + this.end = simpleEnd; + return; + } + this.lastNeed = 0; + this.lastTotal = 0; + this.lastChar = Buffer.allocUnsafe(nb); +} + +StringDecoder.prototype.write = function (buf) { + if (buf.length === 0) return ''; + var r; + var i; + if (this.lastNeed) { + r = this.fillLast(buf); + if (r === undefined) return ''; + i = this.lastNeed; + this.lastNeed = 0; + } else { + i = 0; + } + if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); + return r || ''; +}; -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nl-be.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nl-be.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +StringDecoder.prototype.end = utf8End; -//! moment.js locale configuration -//! locale : Dutch (Belgium) [nl-be] -//! author : Joris Röling : https://github.com/jorisroling -//! author : Jacob Middag : https://github.com/middagj +// Returns only complete characters in a Buffer +StringDecoder.prototype.text = utf8Text; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer +StringDecoder.prototype.fillLast = function (buf) { + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); + this.lastNeed -= buf.length; +}; + +// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a +// continuation byte. If an invalid byte is detected, -2 is returned. +function utf8CheckByte(byte) { + if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4; + return byte >> 6 === 0x02 ? -1 : -2; +} + +// Checks at most 3 bytes at the end of a Buffer in order to detect an +// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4) +// needed to complete the UTF-8 character (if applicable) are returned. +function utf8CheckIncomplete(self, buf, i) { + var j = buf.length - 1; + if (j < i) return 0; + var nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 1; + return nb; + } + if (--j < i || nb === -2) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 2; + return nb; + } + if (--j < i || nb === -2) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) { + if (nb === 2) nb = 0;else self.lastNeed = nb - 3; + } + return nb; + } + return 0; +} + +// Validates as many continuation bytes for a multi-byte UTF-8 character as +// needed or are available. If we see a non-continuation byte where we expect +// one, we "replace" the validated continuation bytes we've seen so far with +// a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding +// behavior. The continuation byte check is included three times in the case +// where all of the continuation bytes for a character exist in the same buffer. +// It is also done this way as a slight performance increase instead of using a +// loop. +function utf8CheckExtraBytes(self, buf, p) { + if ((buf[0] & 0xC0) !== 0x80) { + self.lastNeed = 0; + return '\ufffd'; + } + if (self.lastNeed > 1 && buf.length > 1) { + if ((buf[1] & 0xC0) !== 0x80) { + self.lastNeed = 1; + return '\ufffd'; + } + if (self.lastNeed > 2 && buf.length > 2) { + if ((buf[2] & 0xC0) !== 0x80) { + self.lastNeed = 2; + return '\ufffd'; + } + } + } +} + +// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer. +function utf8FillLast(buf) { + var p = this.lastTotal - this.lastNeed; + var r = utf8CheckExtraBytes(this, buf, p); + if (r !== undefined) return r; + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, p, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, p, 0, buf.length); + this.lastNeed -= buf.length; +} + +// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a +// partial character, the character's bytes are buffered until the required +// number of bytes are available. +function utf8Text(buf, i) { + var total = utf8CheckIncomplete(this, buf, i); + if (!this.lastNeed) return buf.toString('utf8', i); + this.lastTotal = total; + var end = buf.length - (total - this.lastNeed); + buf.copy(this.lastChar, 0, end); + return buf.toString('utf8', i, end); +} + +// For UTF-8, a replacement character is added when ending on a partial +// character. +function utf8End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) return r + '\ufffd'; + return r; +} - //! moment.js locale configuration +// UTF-16LE typically needs two bytes per character, but even if we have an even +// number of bytes available, we need to check if we end on a leading/high +// surrogate. In that case, we need to wait for the next two bytes in order to +// decode the last character properly. +function utf16Text(buf, i) { + if ((buf.length - i) % 2 === 0) { + var r = buf.toString('utf16le', i); + if (r) { + var c = r.charCodeAt(r.length - 1); + if (c >= 0xD800 && c <= 0xDBFF) { + this.lastNeed = 2; + this.lastTotal = 4; + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + return r.slice(0, -1); + } + } + return r; + } + this.lastNeed = 1; + this.lastTotal = 2; + this.lastChar[0] = buf[buf.length - 1]; + return buf.toString('utf16le', i, buf.length - 1); +} - var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split( - '_' - ), - monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split( - '_' - ), - monthsParse = [ - /^jan/i, - /^feb/i, - /^maart|mrt.?$/i, - /^apr/i, - /^mei$/i, - /^jun[i.]?$/i, - /^jul[i.]?$/i, - /^aug/i, - /^sep/i, - /^okt/i, - /^nov/i, - /^dec/i, - ], - monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; +// For UTF-16LE we do not explicitly append special replacement characters if we +// end on a partial character, we simply let v8 handle that. +function utf16End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) { + var end = this.lastTotal - this.lastNeed; + return r + this.lastChar.toString('utf16le', 0, end); + } + return r; +} - var nlBe = moment.defineLocale('nl-be', { - months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortWithDots; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots[m.month()]; - } else { - return monthsShortWithDots[m.month()]; - } - }, +function base64Text(buf, i) { + var n = (buf.length - i) % 3; + if (n === 0) return buf.toString('base64', i); + this.lastNeed = 3 - n; + this.lastTotal = 3; + if (n === 1) { + this.lastChar[0] = buf[buf.length - 1]; + } else { + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + } + return buf.toString('base64', i, buf.length - n); +} - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, - monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, +function base64End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed); + return r; +} - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, +// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex) +function simpleWrite(buf) { + return buf.toString(this.encoding); +} - weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split( - '_' - ), - weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), - weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[vandaag om] LT', - nextDay: '[morgen om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[gisteren om] LT', - lastWeek: '[afgelopen] dddd [om] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'over %s', - past: '%s geleden', - s: 'een paar seconden', - ss: '%d seconden', - m: 'één minuut', - mm: '%d minuten', - h: 'één uur', - hh: '%d uur', - d: 'één dag', - dd: '%d dagen', - M: 'één maand', - MM: '%d maanden', - y: 'één jaar', - yy: '%d jaar', - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal: function (number) { - return ( - number + - (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') - ); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); +function simpleEnd(buf) { + return buf && buf.length ? this.write(buf) : ''; +} - return nlBe; +/***/ }), -}))); +/***/ "./build/cht-core-4-6/api/node_modules/text-hex/index.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/text-hex/index.js ***! + \***************************************************************/ +/***/ ((module) => { +"use strict"; -/***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nl.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nl.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/*** + * Convert string to hex color. + * + * @param {String} str Text to hash and convert to hex. + * @returns {String} + * @api public + */ +module.exports = function hex(str) { + for ( + var i = 0, hash = 0; + i < str.length; + hash = str.charCodeAt(i++) + ((hash << 5) - hash) + ); -//! moment.js locale configuration -//! locale : Dutch [nl] -//! author : Joris Röling : https://github.com/jorisroling -//! author : Jacob Middag : https://github.com/middagj + var color = Math.floor( + Math.abs( + (Math.sin(hash) * 10000) % 1 * 16777216 + ) + ).toString(16); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + return '#' + Array(6 - color.length + 1).join('0') + color; +}; - //! moment.js locale configuration - var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split( - '_' - ), - monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split( - '_' - ), - monthsParse = [ - /^jan/i, - /^feb/i, - /^maart|mrt.?$/i, - /^apr/i, - /^mei$/i, - /^jun[i.]?$/i, - /^jul[i.]?$/i, - /^aug/i, - /^sep/i, - /^okt/i, - /^nov/i, - /^dec/i, - ], - monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; +/***/ }), - var nl = moment.defineLocale('nl', { - months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortWithDots; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots[m.month()]; - } else { - return monthsShortWithDots[m.month()]; - } - }, +/***/ "./build/cht-core-4-6/api/node_modules/triple-beam/config/cli.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/triple-beam/config/cli.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, - monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, +"use strict"; +/** + * cli.js: Config that conform to commonly used CLI logging levels. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split( - '_' - ), - weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), - weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD-MM-YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[vandaag om] LT', - nextDay: '[morgen om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[gisteren om] LT', - lastWeek: '[afgelopen] dddd [om] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'over %s', - past: '%s geleden', - s: 'een paar seconden', - ss: '%d seconden', - m: 'één minuut', - mm: '%d minuten', - h: 'één uur', - hh: '%d uur', - d: 'één dag', - dd: '%d dagen', - w: 'één week', - ww: '%d weken', - M: 'één maand', - MM: '%d maanden', - y: 'één jaar', - yy: '%d jaar', - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal: function (number) { - return ( - number + - (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') - ); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - return nl; +/** + * Default levels for the CLI configuration. + * @type {Object} + */ +exports.levels = { + error: 0, + warn: 1, + help: 2, + data: 3, + info: 4, + debug: 5, + prompt: 6, + verbose: 7, + input: 8, + silly: 9 +}; -}))); +/** + * Default colors for the CLI configuration. + * @type {Object} + */ +exports.colors = { + error: 'red', + warn: 'yellow', + help: 'cyan', + data: 'grey', + info: 'green', + debug: 'blue', + prompt: 'grey', + verbose: 'cyan', + input: 'grey', + silly: 'magenta' +}; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nn.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nn.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/triple-beam/config/index.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/triple-beam/config/index.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_1380805__) => { -//! moment.js locale configuration -//! locale : Nynorsk [nn] -//! authors : https://github.com/mechuwind -//! Stephen Ramthun : https://github.com/stephenramthun +"use strict"; +/** + * index.js: Default settings for all levels that winston knows about. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - //! moment.js locale configuration - var nn = moment.defineLocale('nn', { - months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( - '_' - ), - monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), - weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'), - weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY [kl.] H:mm', - LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', - }, - calendar: { - sameDay: '[I dag klokka] LT', - nextDay: '[I morgon klokka] LT', - nextWeek: 'dddd [klokka] LT', - lastDay: '[I går klokka] LT', - lastWeek: '[Føregåande] dddd [klokka] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'om %s', - past: '%s sidan', - s: 'nokre sekund', - ss: '%d sekund', - m: 'eit minutt', - mm: '%d minutt', - h: 'ein time', - hh: '%d timar', - d: 'ein dag', - dd: '%d dagar', - w: 'ei veke', - ww: '%d veker', - M: 'ein månad', - MM: '%d månader', - y: 'eit år', - yy: '%d år', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); +/** + * Export config set for the CLI. + * @type {Object} + */ +Object.defineProperty(exports, "cli", ({ + value: __nested_webpack_require_1380805__(/*! ./cli */ "./build/cht-core-4-6/api/node_modules/triple-beam/config/cli.js") +})); - return nn; +/** + * Export config set for npm. + * @type {Object} + */ +Object.defineProperty(exports, "npm", ({ + value: __nested_webpack_require_1380805__(/*! ./npm */ "./build/cht-core-4-6/api/node_modules/triple-beam/config/npm.js") +})); -}))); +/** + * Export config set for the syslog. + * @type {Object} + */ +Object.defineProperty(exports, "syslog", ({ + value: __nested_webpack_require_1380805__(/*! ./syslog */ "./build/cht-core-4-6/api/node_modules/triple-beam/config/syslog.js") +})); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/oc-lnc.js": -/*!******************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/oc-lnc.js ***! - \******************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -//! moment.js locale configuration -//! locale : Occitan, lengadocian dialecte [oc-lnc] -//! author : Quentin PAGÈS : https://github.com/Quenty31 +/***/ "./build/cht-core-4-6/api/node_modules/triple-beam/config/npm.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/triple-beam/config/npm.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +"use strict"; +/** + * npm.js: Config that conform to npm logging levels. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ - //! moment.js locale configuration - var ocLnc = moment.defineLocale('oc-lnc', { - months: { - standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split( - '_' - ), - format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split( - '_' - ), - isFormat: /D[oD]?(\s)+MMMM/, - }, - monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split( - '_' - ), - weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), - weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM [de] YYYY', - ll: 'D MMM YYYY', - LLL: 'D MMMM [de] YYYY [a] H:mm', - lll: 'D MMM YYYY, H:mm', - LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', - llll: 'ddd D MMM YYYY, H:mm', - }, - calendar: { - sameDay: '[uèi a] LT', - nextDay: '[deman a] LT', - nextWeek: 'dddd [a] LT', - lastDay: '[ièr a] LT', - lastWeek: 'dddd [passat a] LT', - sameElse: 'L', - }, - relativeTime: { - future: "d'aquí %s", - past: 'fa %s', - s: 'unas segondas', - ss: '%d segondas', - m: 'una minuta', - mm: '%d minutas', - h: 'una ora', - hh: '%d oras', - d: 'un jorn', - dd: '%d jorns', - M: 'un mes', - MM: '%d meses', - y: 'un an', - yy: '%d ans', - }, - dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, - ordinal: function (number, period) { - var output = - number === 1 - ? 'r' - : number === 2 - ? 'n' - : number === 3 - ? 'r' - : number === 4 - ? 't' - : 'è'; - if (period === 'w' || period === 'W') { - output = 'a'; - } - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, - }, - }); - return ocLnc; +/** + * Default levels for the npm configuration. + * @type {Object} + */ +exports.levels = { + error: 0, + warn: 1, + info: 2, + http: 3, + verbose: 4, + debug: 5, + silly: 6 +}; -}))); +/** + * Default levels for the npm configuration. + * @type {Object} + */ +exports.colors = { + error: 'red', + warn: 'yellow', + info: 'green', + http: 'green', + verbose: 'cyan', + debug: 'blue', + silly: 'magenta' +}; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pa-in.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pa-in.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/triple-beam/config/syslog.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/triple-beam/config/syslog.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { -//! moment.js locale configuration -//! locale : Punjabi (India) [pa-in] -//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit +"use strict"; +/** + * syslog.js: Config that conform to syslog logging levels. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - //! moment.js locale configuration - var symbolMap = { - 1: '੧', - 2: '੨', - 3: '੩', - 4: '੪', - 5: '੫', - 6: '੬', - 7: '੭', - 8: '੮', - 9: '੯', - 0: '੦', - }, - numberMap = { - '੧': '1', - '੨': '2', - '੩': '3', - '੪': '4', - '੫': '5', - '੬': '6', - '੭': '7', - '੮': '8', - '੯': '9', - '੦': '0', - }; +/** + * Default levels for the syslog configuration. + * @type {Object} + */ +exports.levels = { + emerg: 0, + alert: 1, + crit: 2, + error: 3, + warning: 4, + notice: 5, + info: 6, + debug: 7 +}; - var paIn = moment.defineLocale('pa-in', { - // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. - months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( - '_' - ), - monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( - '_' - ), - weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split( - '_' - ), - weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), - weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), - longDateFormat: { - LT: 'A h:mm ਵਜੇ', - LTS: 'A h:mm:ss ਵਜੇ', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm ਵਜੇ', - LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ', - }, - calendar: { - sameDay: '[ਅਜ] LT', - nextDay: '[ਕਲ] LT', - nextWeek: '[ਅਗਲਾ] dddd, LT', - lastDay: '[ਕਲ] LT', - lastWeek: '[ਪਿਛਲੇ] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s ਵਿੱਚ', - past: '%s ਪਿਛਲੇ', - s: 'ਕੁਝ ਸਕਿੰਟ', - ss: '%d ਸਕਿੰਟ', - m: 'ਇਕ ਮਿੰਟ', - mm: '%d ਮਿੰਟ', - h: 'ਇੱਕ ਘੰਟਾ', - hh: '%d ਘੰਟੇ', - d: 'ਇੱਕ ਦਿਨ', - dd: '%d ਦਿਨ', - M: 'ਇੱਕ ਮਹੀਨਾ', - MM: '%d ਮਹੀਨੇ', - y: 'ਇੱਕ ਸਾਲ', - yy: '%d ਸਾਲ', - }, - preparse: function (string) { - return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - // Punjabi notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. - meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ਰਾਤ') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ਸਵੇਰ') { - return hour; - } else if (meridiem === 'ਦੁਪਹਿਰ') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'ਸ਼ਾਮ') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'ਰਾਤ'; - } else if (hour < 10) { - return 'ਸਵੇਰ'; - } else if (hour < 17) { - return 'ਦੁਪਹਿਰ'; - } else if (hour < 20) { - return 'ਸ਼ਾਮ'; - } else { - return 'ਰਾਤ'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); +/** + * Default levels for the syslog configuration. + * @type {Object} + */ +exports.colors = { + emerg: 'red', + alert: 'yellow', + crit: 'red', + error: 'red', + warning: 'red', + notice: 'yellow', + info: 'green', + debug: 'blue' +}; - return paIn; -}))); +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/triple-beam/index.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/triple-beam/index.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_1383781__) => { + +"use strict"; + + +/** + * A shareable symbol constant that can be used + * as a non-enumerable / semi-hidden level identifier + * to allow the readable level property to be mutable for + * operations like colorization + * + * @type {Symbol} + */ +Object.defineProperty(exports, "LEVEL", ({ + value: Symbol.for('level') +})); + +/** + * A shareable symbol constant that can be used + * as a non-enumerable / semi-hidden message identifier + * to allow the final message property to not have + * side effects on another. + * + * @type {Symbol} + */ +Object.defineProperty(exports, "MESSAGE", ({ + value: Symbol.for('message') +})); + +/** + * A shareable symbol constant that can be used + * as a non-enumerable / semi-hidden message identifier + * to allow the extracted splat property be hidden + * + * @type {Symbol} + */ +Object.defineProperty(exports, "SPLAT", ({ + value: Symbol.for('splat') +})); + +/** + * A shareable object constant that can be used + * as a standard configuration for winston@3. + * + * @type {Object} + */ +Object.defineProperty(exports, "configs", ({ + value: __nested_webpack_require_1383781__(/*! ./config */ "./build/cht-core-4-6/api/node_modules/triple-beam/config/index.js") +})); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pl.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pl.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/util-deprecate/node.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/util-deprecate/node.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1385313__) => { -//! moment.js locale configuration -//! locale : Polish [pl] -//! author : Rafal Hirsz : https://github.com/evoL -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +/** + * For Node.js, simply re-export the core `util.deprecate` function. + */ - //! moment.js locale configuration +module.exports = __nested_webpack_require_1385313__(/*! util */ "util").deprecate; - var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split( - '_' - ), - monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split( - '_' - ), - monthsParse = [ - /^sty/i, - /^lut/i, - /^mar/i, - /^kwi/i, - /^maj/i, - /^cze/i, - /^lip/i, - /^sie/i, - /^wrz/i, - /^paź/i, - /^lis/i, - /^gru/i, - ]; - function plural(n) { - return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; - } - function translate(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'ss': - return result + (plural(number) ? 'sekundy' : 'sekund'); - case 'm': - return withoutSuffix ? 'minuta' : 'minutę'; - case 'mm': - return result + (plural(number) ? 'minuty' : 'minut'); - case 'h': - return withoutSuffix ? 'godzina' : 'godzinę'; - case 'hh': - return result + (plural(number) ? 'godziny' : 'godzin'); - case 'ww': - return result + (plural(number) ? 'tygodnie' : 'tygodni'); - case 'MM': - return result + (plural(number) ? 'miesiące' : 'miesięcy'); - case 'yy': - return result + (plural(number) ? 'lata' : 'lat'); - } - } - var pl = moment.defineLocale('pl', { - months: function (momentToFormat, format) { - if (!momentToFormat) { - return monthsNominative; - } else if (/D MMMM/.test(format)) { - return monthsSubjective[momentToFormat.month()]; - } else { - return monthsNominative[momentToFormat.month()]; - } - }, - monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split( - '_' - ), - weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'), - weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Dziś o] LT', - nextDay: '[Jutro o] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[W niedzielę o] LT'; +/***/ }), - case 2: - return '[We wtorek o] LT'; +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/index.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/index.js ***! + \************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1385849__) => { - case 3: - return '[W środę o] LT'; +"use strict"; - case 6: - return '[W sobotę o] LT'; - default: - return '[W] dddd [o] LT'; - } - }, - lastDay: '[Wczoraj o] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[W zeszłą niedzielę o] LT'; - case 3: - return '[W zeszłą środę o] LT'; - case 6: - return '[W zeszłą sobotę o] LT'; - default: - return '[W zeszły] dddd [o] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: '%s temu', - s: 'kilka sekund', - ss: translate, - m: translate, - mm: translate, - h: translate, - hh: translate, - d: '1 dzień', - dd: '%d dni', - w: 'tydzień', - ww: translate, - M: 'miesiąc', - MM: translate, - y: 'rok', - yy: translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); +const util = __nested_webpack_require_1385849__(/*! util */ "util"); +const Writable = __nested_webpack_require_1385849__(/*! readable-stream/lib/_stream_writable.js */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js"); +const { LEVEL } = __nested_webpack_require_1385849__(/*! triple-beam */ "./build/cht-core-4-6/api/node_modules/triple-beam/index.js"); - return pl; +/** + * Constructor function for the TransportStream. This is the base prototype + * that all `winston >= 3` transports should inherit from. + * @param {Object} options - Options for this TransportStream instance + * @param {String} options.level - Highest level according to RFC5424. + * @param {Boolean} options.handleExceptions - If true, info with + * { exception: true } will be written. + * @param {Function} options.log - Custom log function for simple Transport + * creation + * @param {Function} options.close - Called on "unpipe" from parent. + */ +const TransportStream = module.exports = function TransportStream(options = {}) { + Writable.call(this, { objectMode: true, highWaterMark: options.highWaterMark }); -}))); + this.format = options.format; + this.level = options.level; + this.handleExceptions = options.handleExceptions; + this.handleRejections = options.handleRejections; + this.silent = options.silent; + if (options.log) this.log = options.log; + if (options.logv) this.logv = options.logv; + if (options.close) this.close = options.close; -/***/ }), + // Get the levels from the source we are piped from. + this.once('pipe', logger => { + // Remark (indexzero): this bookkeeping can only support multiple + // Logger parents with the same `levels`. This comes into play in + // the `winston.Container` code in which `container.add` takes + // a fully realized set of options with pre-constructed TransportStreams. + this.levels = logger.levels; + this.parent = logger; + }); -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pt-br.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pt-br.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + // If and/or when the transport is removed from this instance + this.once('unpipe', src => { + // Remark (indexzero): this bookkeeping can only support multiple + // Logger parents with the same `levels`. This comes into play in + // the `winston.Container` code in which `container.add` takes + // a fully realized set of options with pre-constructed TransportStreams. + if (src === this.parent) { + this.parent = null; + if (this.close) { + this.close(); + } + } + }); +}; -//! moment.js locale configuration -//! locale : Portuguese (Brazil) [pt-br] -//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira +/* + * Inherit from Writeable using Node.js built-ins + */ +util.inherits(TransportStream, Writable); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +/** + * Writes the info object to our transport instance. + * @param {mixed} info - TODO: add param description. + * @param {mixed} enc - TODO: add param description. + * @param {function} callback - TODO: add param description. + * @returns {undefined} + * @private + */ +TransportStream.prototype._write = function _write(info, enc, callback) { + if (this.silent || (info.exception === true && !this.handleExceptions)) { + return callback(null); + } - //! moment.js locale configuration + // Remark: This has to be handled in the base transport now because we + // cannot conditionally write to our pipe targets as stream. We always + // prefer any explicit level set on the Transport itself falling back to + // any level set on the parent. + const level = this.level || (this.parent && this.parent.level); - var ptBr = moment.defineLocale('pt-br', { - months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( - '_' - ), - monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), - weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split( - '_' - ), - weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'), - weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY [às] HH:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm', - }, - calendar: { - sameDay: '[Hoje às] LT', - nextDay: '[Amanhã às] LT', - nextWeek: 'dddd [às] LT', - lastDay: '[Ontem às] LT', - lastWeek: function () { - return this.day() === 0 || this.day() === 6 - ? '[Último] dddd [às] LT' // Saturday + Sunday - : '[Última] dddd [às] LT'; // Monday - Friday - }, - sameElse: 'L', - }, - relativeTime: { - future: 'em %s', - past: 'há %s', - s: 'poucos segundos', - ss: '%d segundos', - m: 'um minuto', - mm: '%d minutos', - h: 'uma hora', - hh: '%d horas', - d: 'um dia', - dd: '%d dias', - M: 'um mês', - MM: '%d meses', - y: 'um ano', - yy: '%d anos', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - invalidDate: 'Data inválida', - }); + if (!level || this.levels[level] >= this.levels[info[LEVEL]]) { + if (info && !this.format) { + return this.log(info, callback); + } + + let errState; + let transformed; + + // We trap(and re-throw) any errors generated by the user-provided format, but also + // guarantee that the streams callback is invoked so that we can continue flowing. + try { + transformed = this.format.transform(Object.assign({}, info), this.format.options); + } catch (err) { + errState = err; + } + + if (errState || !transformed) { + // eslint-disable-next-line callback-return + callback(); + if (errState) throw errState; + return; + } - return ptBr; + return this.log(transformed, callback); + } + this._writableState.sync = false; + return callback(null); +}; -}))); +/** + * Writes the batch of info objects (i.e. "object chunks") to our transport + * instance after performing any necessary filtering. + * @param {mixed} chunks - TODO: add params description. + * @param {function} callback - TODO: add params description. + * @returns {mixed} - TODO: add returns description. + * @private + */ +TransportStream.prototype._writev = function _writev(chunks, callback) { + if (this.logv) { + const infos = chunks.filter(this._accept, this); + if (!infos.length) { + return callback(null); + } + // Remark (indexzero): from a performance perspective if Transport + // implementers do choose to implement logv should we make it their + // responsibility to invoke their format? + return this.logv(infos, callback); + } -/***/ }), + for (let i = 0; i < chunks.length; i++) { + if (!this._accept(chunks[i])) continue; -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pt.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pt.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + if (chunks[i].chunk && !this.format) { + this.log(chunks[i].chunk, chunks[i].callback); + continue; + } -//! moment.js locale configuration -//! locale : Portuguese [pt] -//! author : Jefferson : https://github.com/jalex79 + let errState; + let transformed; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // We trap(and re-throw) any errors generated by the user-provided format, but also + // guarantee that the streams callback is invoked so that we can continue flowing. + try { + transformed = this.format.transform( + Object.assign({}, chunks[i].chunk), + this.format.options + ); + } catch (err) { + errState = err; + } - //! moment.js locale configuration + if (errState || !transformed) { + // eslint-disable-next-line callback-return + chunks[i].callback(); + if (errState) { + // eslint-disable-next-line callback-return + callback(null); + throw errState; + } + } else { + this.log(transformed, chunks[i].callback); + } + } - var pt = moment.defineLocale('pt', { - months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( - '_' - ), - monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), - weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split( - '_' - ), - weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), - weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY HH:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', - }, - calendar: { - sameDay: '[Hoje às] LT', - nextDay: '[Amanhã às] LT', - nextWeek: 'dddd [às] LT', - lastDay: '[Ontem às] LT', - lastWeek: function () { - return this.day() === 0 || this.day() === 6 - ? '[Último] dddd [às] LT' // Saturday + Sunday - : '[Última] dddd [às] LT'; // Monday - Friday - }, - sameElse: 'L', - }, - relativeTime: { - future: 'em %s', - past: 'há %s', - s: 'segundos', - ss: '%d segundos', - m: 'um minuto', - mm: '%d minutos', - h: 'uma hora', - hh: '%d horas', - d: 'um dia', - dd: '%d dias', - w: 'uma semana', - ww: '%d semanas', - M: 'um mês', - MM: '%d meses', - y: 'um ano', - yy: '%d anos', - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + return callback(null); +}; - return pt; +/** + * Predicate function that returns true if the specfied `info` on the + * WriteReq, `write`, should be passed down into the derived + * TransportStream's I/O via `.log(info, callback)`. + * @param {WriteReq} write - winston@3 Node.js WriteReq for the `info` object + * representing the log message. + * @returns {Boolean} - Value indicating if the `write` should be accepted & + * logged. + */ +TransportStream.prototype._accept = function _accept(write) { + const info = write.chunk; + if (this.silent) { + return false; + } -}))); + // We always prefer any explicit level set on the Transport itself + // falling back to any level set on the parent. + const level = this.level || (this.parent && this.parent.level); + // Immediately check the average case: log level filtering. + if ( + info.exception === true || + !level || + this.levels[level] >= this.levels[info[LEVEL]] + ) { + // Ensure the info object is valid based on `{ exception }`: + // 1. { handleExceptions: true }: all `info` objects are valid + // 2. { exception: false }: accepted by all transports. + if (this.handleExceptions || info.exception !== true) { + return true; + } + } -/***/ }), + return false; +}; -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ro.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ro.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/** + * _nop is short for "No operation" + * @returns {Boolean} Intentionally false. + */ +TransportStream.prototype._nop = function _nop() { + // eslint-disable-next-line no-undefined + return void undefined; +}; -//! moment.js locale configuration -//! locale : Romanian [ro] -//! author : Vlad Gurdiga : https://github.com/gurdiga -//! author : Valentin Agachi : https://github.com/avaly -//! author : Emanuel Cepoi : https://github.com/cepem -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +// Expose legacy stream +module.exports.LegacyTransportStream = __nested_webpack_require_1385849__(/*! ./legacy */ "./build/cht-core-4-6/api/node_modules/winston-transport/legacy.js"); - //! moment.js locale configuration - function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - ss: 'secunde', - mm: 'minute', - hh: 'ore', - dd: 'zile', - ww: 'săptămâni', - MM: 'luni', - yy: 'ani', - }, - separator = ' '; - if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { - separator = ' de '; - } - return number + separator + format[key]; - } +/***/ }), - var ro = moment.defineLocale('ro', { - months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( - '_' - ), - monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'), - weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), - weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY H:mm', - LLLL: 'dddd, D MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[azi la] LT', - nextDay: '[mâine la] LT', - nextWeek: 'dddd [la] LT', - lastDay: '[ieri la] LT', - lastWeek: '[fosta] dddd [la] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'peste %s', - past: '%s în urmă', - s: 'câteva secunde', - ss: relativeTimeWithPlural, - m: 'un minut', - mm: relativeTimeWithPlural, - h: 'o oră', - hh: relativeTimeWithPlural, - d: 'o zi', - dd: relativeTimeWithPlural, - w: 'o săptămână', - ww: relativeTimeWithPlural, - M: 'o lună', - MM: relativeTimeWithPlural, - y: 'un an', - yy: relativeTimeWithPlural, - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/legacy.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/legacy.js ***! + \*************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1393554__) => { - return ro; +"use strict"; -}))); +const util = __nested_webpack_require_1393554__(/*! util */ "util"); +const { LEVEL } = __nested_webpack_require_1393554__(/*! triple-beam */ "./build/cht-core-4-6/api/node_modules/triple-beam/index.js"); +const TransportStream = __nested_webpack_require_1393554__(/*! ./ */ "./build/cht-core-4-6/api/node_modules/winston-transport/index.js"); -/***/ }), +/** + * Constructor function for the LegacyTransportStream. This is an internal + * wrapper `winston >= 3` uses to wrap older transports implementing + * log(level, message, meta). + * @param {Object} options - Options for this TransportStream instance. + * @param {Transpot} options.transport - winston@2 or older Transport to wrap. + */ -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ru.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ru.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +const LegacyTransportStream = module.exports = function LegacyTransportStream(options = {}) { + TransportStream.call(this, options); + if (!options.transport || typeof options.transport.log !== 'function') { + throw new Error('Invalid transport, must be an object with a log method.'); + } -//! moment.js locale configuration -//! locale : Russian [ru] -//! author : Viktorminator : https://github.com/Viktorminator -//! author : Menelion Elensúle : https://github.com/Oire -//! author : Коренберг Марк : https://github.com/socketpair + this.transport = options.transport; + this.level = this.level || options.transport.level; + this.handleExceptions = this.handleExceptions || options.transport.handleExceptions; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // Display our deprecation notice. + this._deprecated(); - //! moment.js locale configuration + // Properly bubble up errors from the transport to the + // LegacyTransportStream instance, but only once no matter how many times + // this transport is shared. + function transportError(err) { + this.emit('error', err, this.transport); + } - function plural(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 - ? forms[0] - : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) - ? forms[1] - : forms[2]; - } - function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', - mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', - hh: 'час_часа_часов', - dd: 'день_дня_дней', - ww: 'неделя_недели_недель', - MM: 'месяц_месяца_месяцев', - yy: 'год_года_лет', - }; - if (key === 'm') { - return withoutSuffix ? 'минута' : 'минуту'; - } else { - return number + ' ' + plural(format[key], +number); - } - } - var monthsParse = [ - /^янв/i, - /^фев/i, - /^мар/i, - /^апр/i, - /^ма[йя]/i, - /^июн/i, - /^июл/i, - /^авг/i, - /^сен/i, - /^окт/i, - /^ноя/i, - /^дек/i, - ]; + if (!this.transport.__winstonError) { + this.transport.__winstonError = transportError.bind(this); + this.transport.on('error', this.transport.__winstonError); + } +}; - // http://new.gramota.ru/spravka/rules/139-prop : § 103 - // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 - // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 - var ru = moment.defineLocale('ru', { - months: { - format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split( - '_' - ), - standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( - '_' - ), - }, - monthsShort: { - // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку? - format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split( - '_' - ), - standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split( - '_' - ), - }, - weekdays: { - standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split( - '_' - ), - format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split( - '_' - ), - isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/, - }, - weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), - weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, +/* + * Inherit from TransportStream using Node.js built-ins + */ +util.inherits(LegacyTransportStream, TransportStream); - // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки - monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, +/** + * Writes the info object to our transport instance. + * @param {mixed} info - TODO: add param description. + * @param {mixed} enc - TODO: add param description. + * @param {function} callback - TODO: add param description. + * @returns {undefined} + * @private + */ +LegacyTransportStream.prototype._write = function _write(info, enc, callback) { + if (this.silent || (info.exception === true && !this.handleExceptions)) { + return callback(null); + } - // копия предыдущего - monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, + // Remark: This has to be handled in the base transport now because we + // cannot conditionally write to our pipe targets as stream. + if (!this.level || this.levels[this.level] >= this.levels[info[LEVEL]]) { + this.transport.log(info[LEVEL], info.message, info, this._nop); + } - // полные названия с падежами - monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, + callback(null); +}; - // Выражение, которое соответствует только сокращённым формам - monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY г.', - LLL: 'D MMMM YYYY г., H:mm', - LLLL: 'dddd, D MMMM YYYY г., H:mm', - }, - calendar: { - sameDay: '[Сегодня, в] LT', - nextDay: '[Завтра, в] LT', - lastDay: '[Вчера, в] LT', - nextWeek: function (now) { - if (now.week() !== this.week()) { - switch (this.day()) { - case 0: - return '[В следующее] dddd, [в] LT'; - case 1: - case 2: - case 4: - return '[В следующий] dddd, [в] LT'; - case 3: - case 5: - case 6: - return '[В следующую] dddd, [в] LT'; - } - } else { - if (this.day() === 2) { - return '[Во] dddd, [в] LT'; - } else { - return '[В] dddd, [в] LT'; - } - } - }, - lastWeek: function (now) { - if (now.week() !== this.week()) { - switch (this.day()) { - case 0: - return '[В прошлое] dddd, [в] LT'; - case 1: - case 2: - case 4: - return '[В прошлый] dddd, [в] LT'; - case 3: - case 5: - case 6: - return '[В прошлую] dddd, [в] LT'; - } - } else { - if (this.day() === 2) { - return '[Во] dddd, [в] LT'; - } else { - return '[В] dddd, [в] LT'; - } - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'через %s', - past: '%s назад', - s: 'несколько секунд', - ss: relativeTimeWithPlural, - m: relativeTimeWithPlural, - mm: relativeTimeWithPlural, - h: 'час', - hh: relativeTimeWithPlural, - d: 'день', - dd: relativeTimeWithPlural, - w: 'неделя', - ww: relativeTimeWithPlural, - M: 'месяц', - MM: relativeTimeWithPlural, - y: 'год', - yy: relativeTimeWithPlural, - }, - meridiemParse: /ночи|утра|дня|вечера/i, - isPM: function (input) { - return /^(дня|вечера)$/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'ночи'; - } else if (hour < 12) { - return 'утра'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечера'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - return number + '-й'; - case 'D': - return number + '-го'; - case 'w': - case 'W': - return number + '-я'; - default: - return number; - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); +/** + * Writes the batch of info objects (i.e. "object chunks") to our transport + * instance after performing any necessary filtering. + * @param {mixed} chunks - TODO: add params description. + * @param {function} callback - TODO: add params description. + * @returns {mixed} - TODO: add returns description. + * @private + */ +LegacyTransportStream.prototype._writev = function _writev(chunks, callback) { + for (let i = 0; i < chunks.length; i++) { + if (this._accept(chunks[i])) { + this.transport.log( + chunks[i].chunk[LEVEL], + chunks[i].chunk.message, + chunks[i].chunk, + this._nop + ); + chunks[i].callback(); + } + } - return ru; + return callback(null); +}; -}))); +/** + * Displays a deprecation notice. Defined as a function so it can be + * overriden in tests. + * @returns {undefined} + */ +LegacyTransportStream.prototype._deprecated = function _deprecated() { + // eslint-disable-next-line no-console + console.error([ + `${this.transport.name} is a legacy winston transport. Consider upgrading: `, + '- Upgrade docs: https://github.com/winstonjs/winston/blob/master/UPGRADE-3.0.md' + ].join('\n')); +}; + +/** + * Clean up error handling state on the legacy transport associated + * with this instance. + * @returns {undefined} + */ +LegacyTransportStream.prototype.close = function close() { + if (this.transport.close) { + this.transport.close(); + } + + if (this.transport.__winstonError) { + this.transport.removeListener('error', this.transport.__winstonError); + this.transport.__winstonError = null; + } +}; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sd.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sd.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js": +/*!******************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js ***! + \******************************************************************************************************/ +/***/ ((module) => { -//! moment.js locale configuration -//! locale : Sindhi [sd] -//! author : Narain Sagar : https://github.com/narainsagar +"use strict"; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - //! moment.js locale configuration +const codes = {}; - var months = [ - 'جنوري', - 'فيبروري', - 'مارچ', - 'اپريل', - 'مئي', - 'جون', - 'جولاءِ', - 'آگسٽ', - 'سيپٽمبر', - 'آڪٽوبر', - 'نومبر', - 'ڊسمبر', - ], - days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر']; +function createErrorType(code, message, Base) { + if (!Base) { + Base = Error + } - var sd = moment.defineLocale('sd', { - months: months, - monthsShort: months, - weekdays: days, - weekdaysShort: days, - weekdaysMin: days, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd، D MMMM YYYY HH:mm', - }, - meridiemParse: /صبح|شام/, - isPM: function (input) { - return 'شام' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'صبح'; - } - return 'شام'; - }, - calendar: { - sameDay: '[اڄ] LT', - nextDay: '[سڀاڻي] LT', - nextWeek: 'dddd [اڳين هفتي تي] LT', - lastDay: '[ڪالهه] LT', - lastWeek: '[گزريل هفتي] dddd [تي] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s پوء', - past: '%s اڳ', - s: 'چند سيڪنڊ', - ss: '%d سيڪنڊ', - m: 'هڪ منٽ', - mm: '%d منٽ', - h: 'هڪ ڪلاڪ', - hh: '%d ڪلاڪ', - d: 'هڪ ڏينهن', - dd: '%d ڏينهن', - M: 'هڪ مهينو', - MM: '%d مهينا', - y: 'هڪ سال', - yy: '%d سال', - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + function getMessage (arg1, arg2, arg3) { + if (typeof message === 'string') { + return message + } else { + return message(arg1, arg2, arg3) + } + } - return sd; + class NodeError extends Base { + constructor (arg1, arg2, arg3) { + super(getMessage(arg1, arg2, arg3)); + } + } -}))); + NodeError.prototype.name = Base.name; + NodeError.prototype.code = code; + + codes[code] = NodeError; +} + +// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js +function oneOf(expected, thing) { + if (Array.isArray(expected)) { + const len = expected.length; + expected = expected.map((i) => String(i)); + if (len > 2) { + return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` + + expected[len - 1]; + } else if (len === 2) { + return `one of ${thing} ${expected[0]} or ${expected[1]}`; + } else { + return `of ${thing} ${expected[0]}`; + } + } else { + return `of ${thing} ${String(expected)}`; + } +} + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith +function startsWith(str, search, pos) { + return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; +} + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith +function endsWith(str, search, this_len) { + if (this_len === undefined || this_len > str.length) { + this_len = str.length; + } + return str.substring(this_len - search.length, this_len) === search; +} + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes +function includes(str, search, start) { + if (typeof start !== 'number') { + start = 0; + } + + if (start + search.length > str.length) { + return false; + } else { + return str.indexOf(search, start) !== -1; + } +} + +createErrorType('ERR_INVALID_OPT_VALUE', function (name, value) { + return 'The value "' + value + '" is invalid for option "' + name + '"' +}, TypeError); +createErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) { + // determiner: 'must be' or 'must not be' + let determiner; + if (typeof expected === 'string' && startsWith(expected, 'not ')) { + determiner = 'must not be'; + expected = expected.replace(/^not /, ''); + } else { + determiner = 'must be'; + } + + let msg; + if (endsWith(name, ' argument')) { + // For cases like 'first argument' + msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`; + } else { + const type = includes(name, '.') ? 'property' : 'argument'; + msg = `The "${name}" ${type} ${determiner} ${oneOf(expected, 'type')}`; + } + + msg += `. Received type ${typeof actual}`; + return msg; +}, TypeError); +createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF'); +createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) { + return 'The ' + name + ' method is not implemented' +}); +createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close'); +createErrorType('ERR_STREAM_DESTROYED', function (name) { + return 'Cannot call ' + name + ' after a stream was destroyed'; +}); +createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times'); +createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable'); +createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end'); +createErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError); +createErrorType('ERR_UNKNOWN_ENCODING', function (arg) { + return 'Unknown encoding: ' + arg +}, TypeError); +createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event'); + +module.exports.codes = codes; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/se.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/se.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js": +/*!******************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js ***! + \******************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1402312__) => { -//! moment.js locale configuration -//! locale : Northern Sami [se] -//! authors : Bård Rolstad Henriksen : https://github.com/karamell +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +// a duplex stream is just a stream that is both readable and writable. +// Since JS doesn't have multiple prototypal inheritance, this class +// prototypally inherits from Readable, and then parasitically from +// Writable. - //! moment.js locale configuration - var se = moment.defineLocale('se', { - months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split( - '_' - ), - monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split( - '_' - ), - weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split( - '_' - ), - weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), - weekdaysMin: 's_v_m_g_d_b_L'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'MMMM D. [b.] YYYY', - LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', - LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', - }, - calendar: { - sameDay: '[otne ti] LT', - nextDay: '[ihttin ti] LT', - nextWeek: 'dddd [ti] LT', - lastDay: '[ikte ti] LT', - lastWeek: '[ovddit] dddd [ti] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s geažes', - past: 'maŋit %s', - s: 'moadde sekunddat', - ss: '%d sekunddat', - m: 'okta minuhta', - mm: '%d minuhtat', - h: 'okta diimmu', - hh: '%d diimmut', - d: 'okta beaivi', - dd: '%d beaivvit', - M: 'okta mánnu', - MM: '%d mánut', - y: 'okta jahki', - yy: '%d jagit', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - return se; +/**/ +var objectKeys = Object.keys || function (obj) { + var keys = []; + for (var key in obj) keys.push(key); + return keys; +}; +/**/ -}))); +module.exports = Duplex; +var Readable = __nested_webpack_require_1402312__(/*! ./_stream_readable */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_readable.js"); +var Writable = __nested_webpack_require_1402312__(/*! ./_stream_writable */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js"); +__nested_webpack_require_1402312__(/*! inherits */ "./build/cht-core-4-6/api/node_modules/inherits/inherits.js")(Duplex, Readable); +{ + // Allow the keys array to be GC'ed. + var keys = objectKeys(Writable.prototype); + for (var v = 0; v < keys.length; v++) { + var method = keys[v]; + if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; + } +} +function Duplex(options) { + if (!(this instanceof Duplex)) return new Duplex(options); + Readable.call(this, options); + Writable.call(this, options); + this.allowHalfOpen = true; + if (options) { + if (options.readable === false) this.readable = false; + if (options.writable === false) this.writable = false; + if (options.allowHalfOpen === false) { + this.allowHalfOpen = false; + this.once('end', onend); + } + } +} +Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; + } +}); +Object.defineProperty(Duplex.prototype, 'writableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); + } +}); +Object.defineProperty(Duplex.prototype, 'writableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.length; + } +}); + +// the no-half-open enforcer +function onend() { + // If the writable side ended, then we're ok. + if (this._writableState.ended) return; + + // no more data can be written. + // But allow more writes to happen in this tick. + process.nextTick(onEndNT, this); +} +function onEndNT(self) { + self.end(); +} +Object.defineProperty(Duplex.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === undefined || this._writableState === undefined) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (this._readableState === undefined || this._writableState === undefined) { + return; + } + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } +}); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/si.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/si.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_readable.js": +/*!********************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_readable.js ***! + \********************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1407593__) => { -//! moment.js locale configuration -//! locale : Sinhalese [si] -//! author : Sampath Sitinamaluwa : https://github.com/sampathsris +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - //! moment.js locale configuration - /*jshint -W100*/ - var si = moment.defineLocale('si', { - months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split( - '_' - ), - monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split( - '_' - ), - weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split( - '_' - ), - weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), - weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'a h:mm', - LTS: 'a h:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY MMMM D', - LLL: 'YYYY MMMM D, a h:mm', - LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss', - }, - calendar: { - sameDay: '[අද] LT[ට]', - nextDay: '[හෙට] LT[ට]', - nextWeek: 'dddd LT[ට]', - lastDay: '[ඊයේ] LT[ට]', - lastWeek: '[පසුගිය] dddd LT[ට]', - sameElse: 'L', - }, - relativeTime: { - future: '%sකින්', - past: '%sකට පෙර', - s: 'තත්පර කිහිපය', - ss: 'තත්පර %d', - m: 'මිනිත්තුව', - mm: 'මිනිත්තු %d', - h: 'පැය', - hh: 'පැය %d', - d: 'දිනය', - dd: 'දින %d', - M: 'මාසය', - MM: 'මාස %d', - y: 'වසර', - yy: 'වසර %d', - }, - dayOfMonthOrdinalParse: /\d{1,2} වැනි/, - ordinal: function (number) { - return number + ' වැනි'; - }, - meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, - isPM: function (input) { - return input === 'ප.ව.' || input === 'පස් වරු'; - }, - meridiem: function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'ප.ව.' : 'පස් වරු'; - } else { - return isLower ? 'පෙ.ව.' : 'පෙර වරු'; - } - }, - }); +module.exports = Readable; + +/**/ +var Duplex; +/**/ + +Readable.ReadableState = ReadableState; + +/**/ +var EE = __nested_webpack_require_1407593__(/*! events */ "events").EventEmitter; +var EElistenerCount = function EElistenerCount(emitter, type) { + return emitter.listeners(type).length; +}; +/**/ + +/**/ +var Stream = __nested_webpack_require_1407593__(/*! ./internal/streams/stream */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/stream.js"); +/**/ - return si; +var Buffer = __nested_webpack_require_1407593__(/*! buffer */ "buffer").Buffer; +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} -}))); +/**/ +var debugUtil = __nested_webpack_require_1407593__(/*! util */ "util"); +var debug; +if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog('stream'); +} else { + debug = function debug() {}; +} +/**/ +var BufferList = __nested_webpack_require_1407593__(/*! ./internal/streams/buffer_list */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/buffer_list.js"); +var destroyImpl = __nested_webpack_require_1407593__(/*! ./internal/streams/destroy */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/destroy.js"); +var _require = __nested_webpack_require_1407593__(/*! ./internal/streams/state */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/state.js"), + getHighWaterMark = _require.getHighWaterMark; +var _require$codes = __nested_webpack_require_1407593__(/*! ../errors */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js").codes, + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; + +// Lazy loaded to improve the startup performance. +var StringDecoder; +var createReadableStreamAsyncIterator; +var from; +__nested_webpack_require_1407593__(/*! inherits */ "./build/cht-core-4-6/api/node_modules/inherits/inherits.js")(Readable, Stream); +var errorOrDestroy = destroyImpl.errorOrDestroy; +var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; +function prependListener(emitter, event, fn) { + // Sadly this is not cacheable as some libraries bundle their own + // event emitter implementation with them. + if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); -/***/ }), + // This is a hack to make sure that our error handler is attached before any + // userland ones. NEVER DO THIS. This is here only because this code needs + // to continue to work with older versions of Node.js that do not include + // the prependListener() method. The goal is to eventually remove this hack. + if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; +} +function ReadableState(options, stream, isDuplex) { + Duplex = Duplex || __nested_webpack_require_1407593__(/*! ./_stream_duplex */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js"); + options = options || {}; -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sk.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sk.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream. + // These options can be provided separately as readableXXX and writableXXX. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; -//! moment.js locale configuration -//! locale : Slovak [sk] -//! author : Martin Minka : https://github.com/k2s -//! based on work of petrbela : https://github.com/petrbela + // object stream flag. Used to make read(n) ignore n and to + // make all the buffer merging and length checks go away + this.objectMode = !!options.objectMode; + if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // the point at which it stops calling _read() to fill the buffer + // Note: 0 is a valid value, means "don't call _read preemptively ever" + this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); - //! moment.js locale configuration + // A linked list is used to store data chunks instead of an array because the + // linked list can remove elements from the beginning faster than + // array.shift() + this.buffer = new BufferList(); + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; - var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split( - '_' - ), - monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); - function plural(n) { - return n > 1 && n < 5; - } - function translate(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': // a few seconds / in a few seconds / a few seconds ago - return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami'; - case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'sekundy' : 'sekúnd'); - } else { - return result + 'sekundami'; - } - case 'm': // a minute / in a minute / a minute ago - return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou'; - case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'minúty' : 'minút'); - } else { - return result + 'minútami'; - } - case 'h': // an hour / in an hour / an hour ago - return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; - case 'hh': // 9 hours / in 9 hours / 9 hours ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'hodiny' : 'hodín'); - } else { - return result + 'hodinami'; - } - case 'd': // a day / in a day / a day ago - return withoutSuffix || isFuture ? 'deň' : 'dňom'; - case 'dd': // 9 days / in 9 days / 9 days ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'dni' : 'dní'); - } else { - return result + 'dňami'; - } - case 'M': // a month / in a month / a month ago - return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; - case 'MM': // 9 months / in 9 months / 9 months ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'mesiace' : 'mesiacov'); - } else { - return result + 'mesiacmi'; - } - case 'y': // a year / in a year / a year ago - return withoutSuffix || isFuture ? 'rok' : 'rokom'; - case 'yy': // 9 years / in 9 years / 9 years ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'roky' : 'rokov'); - } else { - return result + 'rokmi'; - } - } - } + // a flag to be able to tell if the event 'readable'/'data' is emitted + // immediately, or on a later tick. We set this to true at first, because + // any actions that shouldn't happen until "later" should generally also + // not happen before the first read call. + this.sync = true; - var sk = moment.defineLocale('sk', { - months: months, - monthsShort: monthsShort, - weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'), - weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'), - weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'), - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd D. MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[dnes o] LT', - nextDay: '[zajtra o] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[v nedeľu o] LT'; - case 1: - case 2: - return '[v] dddd [o] LT'; - case 3: - return '[v stredu o] LT'; - case 4: - return '[vo štvrtok o] LT'; - case 5: - return '[v piatok o] LT'; - case 6: - return '[v sobotu o] LT'; - } - }, - lastDay: '[včera o] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[minulú nedeľu o] LT'; - case 1: - case 2: - return '[minulý] dddd [o] LT'; - case 3: - return '[minulú stredu o] LT'; - case 4: - case 5: - return '[minulý] dddd [o] LT'; - case 6: - return '[minulú sobotu o] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: 'pred %s', - s: translate, - ss: translate, - m: translate, - mm: translate, - h: translate, - hh: translate, - d: translate, - dd: translate, - M: translate, - MM: translate, - y: translate, - yy: translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + // whenever we return null, then we set a flag to say + // that we're awaiting a 'readable' event emission. + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; + this.paused = true; - return sk; + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; -}))); + // Should .destroy() be called after 'end' (and potentially 'finish') + this.autoDestroy = !!options.autoDestroy; + // has it been destroyed + this.destroyed = false; -/***/ }), + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sl.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sl.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + // the number of writers that are awaiting a drain event in .pipe()s + this.awaitDrain = 0; -//! moment.js locale configuration -//! locale : Slovenian [sl] -//! author : Robert Sedovšek : https://github.com/sedovsek + // if true, a maybeReadMore has been scheduled + this.readingMore = false; + this.decoder = null; + this.encoding = null; + if (options.encoding) { + if (!StringDecoder) StringDecoder = __nested_webpack_require_1407593__(/*! string_decoder/ */ "./build/cht-core-4-6/api/node_modules/string_decoder/lib/string_decoder.js").StringDecoder; + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } +} +function Readable(options) { + Duplex = Duplex || __nested_webpack_require_1407593__(/*! ./_stream_duplex */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js"); + if (!(this instanceof Readable)) return new Readable(options); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // Checking for a Stream.Duplex instance is faster here instead of inside + // the ReadableState constructor, at least with V8 6.5 + var isDuplex = this instanceof Duplex; + this._readableState = new ReadableState(options, this, isDuplex); - //! moment.js locale configuration + // legacy + this.readable = true; + if (options) { + if (typeof options.read === 'function') this._read = options.read; + if (typeof options.destroy === 'function') this._destroy = options.destroy; + } + Stream.call(this); +} +Object.defineProperty(Readable.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === undefined) { + return false; + } + return this._readableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._readableState) { + return; + } - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': - return withoutSuffix || isFuture - ? 'nekaj sekund' - : 'nekaj sekundami'; - case 'ss': - if (number === 1) { - result += withoutSuffix ? 'sekundo' : 'sekundi'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; - } else { - result += 'sekund'; - } - return result; - case 'm': - return withoutSuffix ? 'ena minuta' : 'eno minuto'; - case 'mm': - if (number === 1) { - result += withoutSuffix ? 'minuta' : 'minuto'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'minute' : 'minutami'; - } else { - result += withoutSuffix || isFuture ? 'minut' : 'minutami'; - } - return result; - case 'h': - return withoutSuffix ? 'ena ura' : 'eno uro'; - case 'hh': - if (number === 1) { - result += withoutSuffix ? 'ura' : 'uro'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'uri' : 'urama'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'ure' : 'urami'; - } else { - result += withoutSuffix || isFuture ? 'ur' : 'urami'; - } - return result; - case 'd': - return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; - case 'dd': - if (number === 1) { - result += withoutSuffix || isFuture ? 'dan' : 'dnem'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; - } else { - result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; - } - return result; - case 'M': - return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; - case 'MM': - if (number === 1) { - result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; - } else { - result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; - } - return result; - case 'y': - return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; - case 'yy': - if (number === 1) { - result += withoutSuffix || isFuture ? 'leto' : 'letom'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'leti' : 'letoma'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'leta' : 'leti'; - } else { - result += withoutSuffix || isFuture ? 'let' : 'leti'; - } - return result; + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + } +}); +Readable.prototype.destroy = destroyImpl.destroy; +Readable.prototype._undestroy = destroyImpl.undestroy; +Readable.prototype._destroy = function (err, cb) { + cb(err); +}; + +// Manually shove something into the read() buffer. +// This returns true if the highWaterMark has not been hit yet, +// similar to how Writable.write() returns true if you should +// write() some more. +Readable.prototype.push = function (chunk, encoding) { + var state = this._readableState; + var skipChunkCheck; + if (!state.objectMode) { + if (typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer.from(chunk, encoding); + encoding = ''; + } + skipChunkCheck = true; + } + } else { + skipChunkCheck = true; + } + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); +}; + +// Unshift should *always* be something directly out of read() +Readable.prototype.unshift = function (chunk) { + return readableAddChunk(this, chunk, null, true, false); +}; +function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { + debug('readableAddChunk', chunk); + var state = stream._readableState; + if (chunk === null) { + state.reading = false; + onEofChunk(stream, state); + } else { + var er; + if (!skipChunkCheck) er = chunkInvalid(state, chunk); + if (er) { + errorOrDestroy(stream, er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (addToFront) { + if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true); + } else if (state.ended) { + errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); + } else if (state.destroyed) { + return false; + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); + } else { + addChunk(stream, state, chunk, false); } + } + } else if (!addToFront) { + state.reading = false; + maybeReadMore(stream, state); } + } - var sl = moment.defineLocale('sl', { - months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( - '_' - ), - monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'), - weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'), - weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD. MM. YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[danes ob] LT', - nextDay: '[jutri ob] LT', + // We can push more data if we are below the highWaterMark. + // Also, if we have no data yet, we can stand some more bytes. + // This is to work around cases where hwm=0, such as the repl. + return !state.ended && (state.length < state.highWaterMark || state.length === 0); +} +function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + state.awaitDrain = 0; + stream.emit('data', chunk); + } else { + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); + if (state.needReadable) emitReadable(stream); + } + maybeReadMore(stream, state); +} +function chunkInvalid(state, chunk) { + var er; + if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk); + } + return er; +} +Readable.prototype.isPaused = function () { + return this._readableState.flowing === false; +}; - nextWeek: function () { - switch (this.day()) { - case 0: - return '[v] [nedeljo] [ob] LT'; - case 3: - return '[v] [sredo] [ob] LT'; - case 6: - return '[v] [soboto] [ob] LT'; - case 1: - case 2: - case 4: - case 5: - return '[v] dddd [ob] LT'; - } - }, - lastDay: '[včeraj ob] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[prejšnjo] [nedeljo] [ob] LT'; - case 3: - return '[prejšnjo] [sredo] [ob] LT'; - case 6: - return '[prejšnjo] [soboto] [ob] LT'; - case 1: - case 2: - case 4: - case 5: - return '[prejšnji] dddd [ob] LT'; - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'čez %s', - past: 'pred %s', - s: processRelativeTime, - ss: processRelativeTime, - m: processRelativeTime, - mm: processRelativeTime, - h: processRelativeTime, - hh: processRelativeTime, - d: processRelativeTime, - dd: processRelativeTime, - M: processRelativeTime, - MM: processRelativeTime, - y: processRelativeTime, - yy: processRelativeTime, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); +// backwards compatibility. +Readable.prototype.setEncoding = function (enc) { + if (!StringDecoder) StringDecoder = __nested_webpack_require_1407593__(/*! string_decoder/ */ "./build/cht-core-4-6/api/node_modules/string_decoder/lib/string_decoder.js").StringDecoder; + var decoder = new StringDecoder(enc); + this._readableState.decoder = decoder; + // If setEncoding(null), decoder.encoding equals utf8 + this._readableState.encoding = this._readableState.decoder.encoding; + + // Iterate over current buffer to convert already stored Buffers: + var p = this._readableState.buffer.head; + var content = ''; + while (p !== null) { + content += decoder.write(p.data); + p = p.next; + } + this._readableState.buffer.clear(); + if (content !== '') this._readableState.buffer.push(content); + this._readableState.length = content.length; + return this; +}; - return sl; +// Don't raise the hwm > 1GB +var MAX_HWM = 0x40000000; +function computeNewHighWaterMark(n) { + if (n >= MAX_HWM) { + // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE. + n = MAX_HWM; + } else { + // Get the next highest power of 2 to prevent increasing hwm excessively in + // tiny amounts + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; + } + return n; +} -}))); +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function howMuchToRead(n, state) { + if (n <= 0 || state.length === 0 && state.ended) return 0; + if (state.objectMode) return 1; + if (n !== n) { + // Only flow one buffer at a time + if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; + } + // If we're asking for more than the current hwm, then raise the hwm. + if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); + if (n <= state.length) return n; + // Don't have enough + if (!state.ended) { + state.needReadable = true; + return 0; + } + return state.length; +} +// you can override either this method, or the async _read(n) below. +Readable.prototype.read = function (n) { + debug('read', n); + n = parseInt(n, 10); + var state = this._readableState; + var nOrig = n; + if (n !== 0) state.emittedReadable = false; -/***/ }), + // if we're doing read(0) to trigger a readable event, but we + // already have a bunch of data in the buffer, then just trigger + // the 'readable' event and move on. + if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { + debug('read: emitReadable', state.length, state.ended); + if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); + return null; + } + n = howMuchToRead(n, state); -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sq.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sq.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + // if we've ended, and we're now clear, then finish it up. + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this); + return null; + } -//! moment.js locale configuration -//! locale : Albanian [sq] -//! author : Flakërim Ismani : https://github.com/flakerimi -//! author : Menelion Elensúle : https://github.com/Oire -//! author : Oerd Cukalla : https://github.com/oerd + // All the actual chunk generation logic needs to be + // *below* the call to _read. The reason is that in certain + // synthetic stream cases, such as passthrough streams, _read + // may be a completely synchronous operation which may change + // the state of the read buffer, providing enough data when + // before there was *not* enough. + // + // So, the steps are: + // 1. Figure out what the state of things will be after we do + // a read from the buffer. + // + // 2. If that resulting state will trigger a _read, then call _read. + // Note that this may be asynchronous, or synchronous. Yes, it is + // deeply ugly to write APIs this way, but that still doesn't mean + // that the Readable class should behave improperly, as streams are + // designed to be sync/async agnostic. + // Take note if the _read call is sync or async (ie, if the read call + // has returned yet), so that we know whether or not it's safe to emit + // 'readable' etc. + // + // 3. Actually pull the requested chunks out of the buffer and return. -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // if we need a readable event, then we need to do some reading. + var doRead = state.needReadable; + debug('need readable', doRead); - //! moment.js locale configuration + // if we currently have less than the highWaterMark, then also read some + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + debug('length less than watermark', doRead); + } - var sq = moment.defineLocale('sq', { - months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split( - '_' - ), - monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), - weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split( - '_' - ), - weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), - weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'), - weekdaysParseExact: true, - meridiemParse: /PD|MD/, - isPM: function (input) { - return input.charAt(0) === 'M'; - }, - meridiem: function (hours, minutes, isLower) { - return hours < 12 ? 'PD' : 'MD'; - }, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Sot në] LT', - nextDay: '[Nesër në] LT', - nextWeek: 'dddd [në] LT', - lastDay: '[Dje në] LT', - lastWeek: 'dddd [e kaluar në] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'në %s', - past: '%s më parë', - s: 'disa sekonda', - ss: '%d sekonda', - m: 'një minutë', - mm: '%d minuta', - h: 'një orë', - hh: '%d orë', - d: 'një ditë', - dd: '%d ditë', - M: 'një muaj', - MM: '%d muaj', - y: 'një vit', - yy: '%d vite', - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. + if (state.ended || state.reading) { + doRead = false; + debug('reading or ended', doRead); + } else if (doRead) { + debug('do read'); + state.reading = true; + state.sync = true; + // if the length is currently zero, then we *need* a readable event. + if (state.length === 0) state.needReadable = true; + // call internal read method + this._read(state.highWaterMark); + state.sync = false; + // If _read pushed data synchronously, then `reading` will be false, + // and we need to re-evaluate how much data we can return to the user. + if (!state.reading) n = howMuchToRead(nOrig, state); + } + var ret; + if (n > 0) ret = fromList(n, state);else ret = null; + if (ret === null) { + state.needReadable = state.length <= state.highWaterMark; + n = 0; + } else { + state.length -= n; + state.awaitDrain = 0; + } + if (state.length === 0) { + // If we have nothing in the buffer, then we want to know + // as soon as we *do* get something into the buffer. + if (!state.ended) state.needReadable = true; - return sq; + // If we tried to read() past the EOF, then emit end on the next tick. + if (nOrig !== n && state.ended) endReadable(this); + } + if (ret !== null) this.emit('data', ret); + return ret; +}; +function onEofChunk(stream, state) { + debug('onEofChunk'); + if (state.ended) return; + if (state.decoder) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + if (state.sync) { + // if we are sync, wait until next tick to emit the data. + // Otherwise we risk emitting data in the flow() + // the readable code triggers during a read() call + emitReadable(stream); + } else { + // emit 'readable' now to make sure it gets picked up. + state.needReadable = false; + if (!state.emittedReadable) { + state.emittedReadable = true; + emitReadable_(stream); + } + } +} -}))); +// Don't emit readable right away in sync mode, because this can trigger +// another read() call => stack overflow. This way, it might trigger +// a nextTick recursion warning, but that's not so bad. +function emitReadable(stream) { + var state = stream._readableState; + debug('emitReadable', state.needReadable, state.emittedReadable); + state.needReadable = false; + if (!state.emittedReadable) { + debug('emitReadable', state.flowing); + state.emittedReadable = true; + process.nextTick(emitReadable_, stream); + } +} +function emitReadable_(stream) { + var state = stream._readableState; + debug('emitReadable_', state.destroyed, state.length, state.ended); + if (!state.destroyed && (state.length || state.ended)) { + stream.emit('readable'); + state.emittedReadable = false; + } + // The stream needs another readable event if + // 1. It is not flowing, as the flow mechanism will take + // care of it. + // 2. It is not ended. + // 3. It is below the highWaterMark, so we can schedule + // another readable later. + state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; + flow(stream); +} -/***/ }), +// at this point, the user has presumably seen the 'readable' event, +// and called read() to consume some data. that may have triggered +// in turn another _read(n) call, in which case reading = true if +// it's in progress. +// However, if we're not ended, or reading, and the length < hwm, +// then go ahead and try to read some more preemptively. +function maybeReadMore(stream, state) { + if (!state.readingMore) { + state.readingMore = true; + process.nextTick(maybeReadMore_, stream, state); + } +} +function maybeReadMore_(stream, state) { + // Attempt to read more data if we should. + // + // The conditions for reading more data are (one of): + // - Not enough data buffered (state.length < state.highWaterMark). The loop + // is responsible for filling the buffer with enough data if such data + // is available. If highWaterMark is 0 and we are not in the flowing mode + // we should _not_ attempt to buffer any extra data. We'll get more data + // when the stream consumer calls read() instead. + // - No data in the buffer, and the stream is in flowing mode. In this mode + // the loop below is responsible for ensuring read() is called. Failing to + // call read here would abort the flow and there's no other mechanism for + // continuing the flow if the stream consumer has just subscribed to the + // 'data' event. + // + // In addition to the above conditions to keep reading data, the following + // conditions prevent the data from being read: + // - The stream has ended (state.ended). + // - There is already a pending 'read' operation (state.reading). This is a + // case where the the stream has called the implementation defined _read() + // method, but they are processing the call asynchronously and have _not_ + // called push() with new data. In this case we skip performing more + // read()s. The execution ends in this method again after the _read() ends + // up calling push() with more data. + while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) { + var len = state.length; + debug('maybeReadMore read 0'); + stream.read(0); + if (len === state.length) + // didn't get any data, stop spinning. + break; + } + state.readingMore = false; +} -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sr-cyrl.js": -/*!*******************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sr-cyrl.js ***! - \*******************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +// abstract method. to be overridden in specific implementation classes. +// call cb(er, data) where data is <= n in length. +// for virtual (non-string, non-buffer) streams, "length" is somewhat +// arbitrary, and perhaps not very meaningful. +Readable.prototype._read = function (n) { + errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')); +}; +Readable.prototype.pipe = function (dest, pipeOpts) { + var src = this; + var state = this._readableState; + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; + case 1: + state.pipes = [state.pipes, dest]; + break; + default: + state.pipes.push(dest); + break; + } + state.pipesCount += 1; + debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); + var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; + var endFn = doEnd ? onend : unpipe; + if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn); + dest.on('unpipe', onunpipe); + function onunpipe(readable, unpipeInfo) { + debug('onunpipe'); + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } + } + } + function onend() { + debug('onend'); + dest.end(); + } -//! moment.js locale configuration -//! locale : Serbian Cyrillic [sr-cyrl] -//! author : Milan Janačković : https://github.com/milan-j -//! author : Stefan Crnjaković : https://github.com/crnjakovic + // when the dest drains, it reduces the awaitDrain counter + // on the source. This would be more elegant with a .once() + // handler in flow(), but adding and removing repeatedly is + // too slow. + var ondrain = pipeOnDrain(src); + dest.on('drain', ondrain); + var cleanedUp = false; + function cleanup() { + debug('cleanup'); + // cleanup event handlers once the pipe is broken + dest.removeListener('close', onclose); + dest.removeListener('finish', onfinish); + dest.removeListener('drain', ondrain); + dest.removeListener('error', onerror); + dest.removeListener('unpipe', onunpipe); + src.removeListener('end', onend); + src.removeListener('end', unpipe); + src.removeListener('data', ondata); + cleanedUp = true; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // if the reader is waiting for a drain event from this + // specific writer, then it would cause it to never start + // flowing again. + // So, if this is awaiting a drain, then we just call it now. + // If we don't know, then assume that we are waiting for one. + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); + } + src.on('data', ondata); + function ondata(chunk) { + debug('ondata'); + var ret = dest.write(chunk); + debug('dest.write', ret); + if (ret === false) { + // If the user unpiped during `dest.write()`, it is possible + // to get stuck in a permanently paused state if that write + // also returned false. + // => Check whether `dest` is still a piping destination. + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { + debug('false write response, pause', state.awaitDrain); + state.awaitDrain++; + } + src.pause(); + } + } - //! moment.js locale configuration + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. + function onerror(er) { + debug('onerror', er); + unpipe(); + dest.removeListener('error', onerror); + if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er); + } - var translator = { - words: { - //Different grammatical cases - ss: ['секунда', 'секунде', 'секунди'], - m: ['један минут', 'једне минуте'], - mm: ['минут', 'минуте', 'минута'], - h: ['један сат', 'једног сата'], - hh: ['сат', 'сата', 'сати'], - dd: ['дан', 'дана', 'дана'], - MM: ['месец', 'месеца', 'месеци'], - yy: ['година', 'године', 'година'], - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 - ? wordKey[0] - : number >= 2 && number <= 4 - ? wordKey[1] - : wordKey[2]; - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return ( - number + - ' ' + - translator.correctGrammaticalCase(number, wordKey) - ); - } - }, - }; + // Make sure our error handler is attached before userland ones. + prependListener(dest, 'error', onerror); - var srCyrl = moment.defineLocale('sr-cyrl', { - months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split( - '_' - ), - monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), - weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), - weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'D. M. YYYY.', - LL: 'D. MMMM YYYY.', - LLL: 'D. MMMM YYYY. H:mm', - LLLL: 'dddd, D. MMMM YYYY. H:mm', - }, - calendar: { - sameDay: '[данас у] LT', - nextDay: '[сутра у] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[у] [недељу] [у] LT'; - case 3: - return '[у] [среду] [у] LT'; - case 6: - return '[у] [суботу] [у] LT'; - case 1: - case 2: - case 4: - case 5: - return '[у] dddd [у] LT'; - } - }, - lastDay: '[јуче у] LT', - lastWeek: function () { - var lastWeekDays = [ - '[прошле] [недеље] [у] LT', - '[прошлог] [понедељка] [у] LT', - '[прошлог] [уторка] [у] LT', - '[прошле] [среде] [у] LT', - '[прошлог] [четвртка] [у] LT', - '[прошлог] [петка] [у] LT', - '[прошле] [суботе] [у] LT', - ]; - return lastWeekDays[this.day()]; - }, - sameElse: 'L', - }, - relativeTime: { - future: 'за %s', - past: 'пре %s', - s: 'неколико секунди', - ss: translator.translate, - m: translator.translate, - mm: translator.translate, - h: translator.translate, - hh: translator.translate, - d: 'дан', - dd: translator.translate, - M: 'месец', - MM: translator.translate, - y: 'годину', - yy: translator.translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 1st is the first week of the year. - }, + // Both close and finish should trigger unpipe, but only once. + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } + dest.once('close', onclose); + function onfinish() { + debug('onfinish'); + dest.removeListener('close', onclose); + unpipe(); + } + dest.once('finish', onfinish); + function unpipe() { + debug('unpipe'); + src.unpipe(dest); + } + + // tell the dest that it's being piped to + dest.emit('pipe', src); + + // start the flow if it hasn't been started already. + if (!state.flowing) { + debug('pipe resume'); + src.resume(); + } + return dest; +}; +function pipeOnDrain(src) { + return function pipeOnDrainFunctionResult() { + var state = src._readableState; + debug('pipeOnDrain', state.awaitDrain); + if (state.awaitDrain) state.awaitDrain--; + if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { + state.flowing = true; + flow(src); + } + }; +} +Readable.prototype.unpipe = function (dest) { + var state = this._readableState; + var unpipeInfo = { + hasUnpiped: false + }; + + // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) return this; + + // just one destination. most common case. + if (state.pipesCount === 1) { + // passed in one, but it's not the right one. + if (dest && dest !== state.pipes) return this; + if (!dest) dest = state.pipes; + + // got a match. + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) dest.emit('unpipe', this, unpipeInfo); + return this; + } + + // slow case. multiple pipe destinations. + + if (!dest) { + // remove all. + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, { + hasUnpiped: false }); + return this; + } - return srCyrl; + // try to find the right one. + var index = indexOf(state.pipes, dest); + if (index === -1) return this; + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) state.pipes = state.pipes[0]; + dest.emit('unpipe', this, unpipeInfo); + return this; +}; -}))); +// set up data events if they are asked for +// Ensure readable listeners eventually get something +Readable.prototype.on = function (ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + var state = this._readableState; + if (ev === 'data') { + // update readableListening so that resume() may be a no-op + // a few lines down. This is needed to support once('readable'). + state.readableListening = this.listenerCount('readable') > 0; + // Try start flowing on next tick if stream isn't explicitly paused + if (state.flowing !== false) this.resume(); + } else if (ev === 'readable') { + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.flowing = false; + state.emittedReadable = false; + debug('on readable', state.length, state.reading); + if (state.length) { + emitReadable(this); + } else if (!state.reading) { + process.nextTick(nReadingNextTick, this); + } + } + } + return res; +}; +Readable.prototype.addListener = Readable.prototype.on; +Readable.prototype.removeListener = function (ev, fn) { + var res = Stream.prototype.removeListener.call(this, ev, fn); + if (ev === 'readable') { + // We need to check if there is someone still listening to + // readable and reset the state. However this needs to happen + // after readable has been emitted but before I/O (nextTick) to + // support once('readable', fn) cycles. This means that calling + // resume within the same tick will have no + // effect. + process.nextTick(updateReadableListening, this); + } + return res; +}; +Readable.prototype.removeAllListeners = function (ev) { + var res = Stream.prototype.removeAllListeners.apply(this, arguments); + if (ev === 'readable' || ev === undefined) { + // We need to check if there is someone still listening to + // readable and reset the state. However this needs to happen + // after readable has been emitted but before I/O (nextTick) to + // support once('readable', fn) cycles. This means that calling + // resume within the same tick will have no + // effect. + process.nextTick(updateReadableListening, this); + } + return res; +}; +function updateReadableListening(self) { + var state = self._readableState; + state.readableListening = self.listenerCount('readable') > 0; + if (state.resumeScheduled && !state.paused) { + // flowing needs to be set to true now, otherwise + // the upcoming resume will not flow. + state.flowing = true; -/***/ }), + // crude way to check if we should resume + } else if (self.listenerCount('data') > 0) { + self.resume(); + } +} +function nReadingNextTick(self) { + debug('readable nexttick read 0'); + self.read(0); +} -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sr.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sr.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. +Readable.prototype.resume = function () { + var state = this._readableState; + if (!state.flowing) { + debug('resume'); + // we flow only if there is no one listening + // for readable, but we still have to call + // resume() + state.flowing = !state.readableListening; + resume(this, state); + } + state.paused = false; + return this; +}; +function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + process.nextTick(resume_, stream, state); + } +} +function resume_(stream, state) { + debug('resume', state.reading); + if (!state.reading) { + stream.read(0); + } + state.resumeScheduled = false; + stream.emit('resume'); + flow(stream); + if (state.flowing && !state.reading) stream.read(0); +} +Readable.prototype.pause = function () { + debug('call pause flowing=%j', this._readableState.flowing); + if (this._readableState.flowing !== false) { + debug('pause'); + this._readableState.flowing = false; + this.emit('pause'); + } + this._readableState.paused = true; + return this; +}; +function flow(stream) { + var state = stream._readableState; + debug('flow', state.flowing); + while (state.flowing && stream.read() !== null); +} -//! moment.js locale configuration -//! locale : Serbian [sr] -//! author : Milan Janačković : https://github.com/milan-j -//! author : Stefan Crnjaković : https://github.com/crnjakovic +// wrap an old-style stream as the async data source. +// This is *not* part of the readable stream interface. +// It is an ugly unfortunate mess of history. +Readable.prototype.wrap = function (stream) { + var _this = this; + var state = this._readableState; + var paused = false; + stream.on('end', function () { + debug('wrapped end'); + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) _this.push(chunk); + } + _this.push(null); + }); + stream.on('data', function (chunk) { + debug('wrapped data'); + if (state.decoder) chunk = state.decoder.write(chunk); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // don't skip over falsy values in objectMode + if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; + var ret = _this.push(chunk); + if (!ret) { + paused = true; + stream.pause(); + } + }); - //! moment.js locale configuration + // proxy all the other methods. + // important when wrapping filters and duplexes. + for (var i in stream) { + if (this[i] === undefined && typeof stream[i] === 'function') { + this[i] = function methodWrap(method) { + return function methodWrapReturnFunction() { + return stream[method].apply(stream, arguments); + }; + }(i); + } + } - var translator = { - words: { - //Different grammatical cases - ss: ['sekunda', 'sekunde', 'sekundi'], - m: ['jedan minut', 'jedne minute'], - mm: ['minut', 'minute', 'minuta'], - h: ['jedan sat', 'jednog sata'], - hh: ['sat', 'sata', 'sati'], - dd: ['dan', 'dana', 'dana'], - MM: ['mesec', 'meseca', 'meseci'], - yy: ['godina', 'godine', 'godina'], - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 - ? wordKey[0] - : number >= 2 && number <= 4 - ? wordKey[1] - : wordKey[2]; - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return ( - number + - ' ' + - translator.correctGrammaticalCase(number, wordKey) - ); - } - }, - }; + // proxy certain important events. + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); + } - var sr = moment.defineLocale('sr', { - months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( - '_' - ), - monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split( - '_' - ), - weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'D. M. YYYY.', - LL: 'D. MMMM YYYY.', - LLL: 'D. MMMM YYYY. H:mm', - LLLL: 'dddd, D. MMMM YYYY. H:mm', - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sutra u] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[u] [nedelju] [u] LT'; - case 3: - return '[u] [sredu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - }, - lastDay: '[juče u] LT', - lastWeek: function () { - var lastWeekDays = [ - '[prošle] [nedelje] [u] LT', - '[prošlog] [ponedeljka] [u] LT', - '[prošlog] [utorka] [u] LT', - '[prošle] [srede] [u] LT', - '[prošlog] [četvrtka] [u] LT', - '[prošlog] [petka] [u] LT', - '[prošle] [subote] [u] LT', - ]; - return lastWeekDays[this.day()]; - }, - sameElse: 'L', - }, - relativeTime: { - future: 'za %s', - past: 'pre %s', - s: 'nekoliko sekundi', - ss: translator.translate, - m: translator.translate, - mm: translator.translate, - h: translator.translate, - hh: translator.translate, - d: 'dan', - dd: translator.translate, - M: 'mesec', - MM: translator.translate, - y: 'godinu', - yy: translator.translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); + // when we try to consume some more bytes, simply unpause the + // underlying stream. + this._read = function (n) { + debug('wrapped _read', n); + if (paused) { + paused = false; + stream.resume(); + } + }; + return this; +}; +if (typeof Symbol === 'function') { + Readable.prototype[Symbol.asyncIterator] = function () { + if (createReadableStreamAsyncIterator === undefined) { + createReadableStreamAsyncIterator = __nested_webpack_require_1407593__(/*! ./internal/streams/async_iterator */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/async_iterator.js"); + } + return createReadableStreamAsyncIterator(this); + }; +} +Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.highWaterMark; + } +}); +Object.defineProperty(Readable.prototype, 'readableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState && this._readableState.buffer; + } +}); +Object.defineProperty(Readable.prototype, 'readableFlowing', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.flowing; + }, + set: function set(state) { + if (this._readableState) { + this._readableState.flowing = state; + } + } +}); - return sr; +// exposed for testing purposes only. +Readable._fromList = fromList; +Object.defineProperty(Readable.prototype, 'readableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.length; + } +}); -}))); +// Pluck off n bytes from an array of buffers. +// Length is the combined lengths of all the buffers in the list. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromList(n, state) { + // nothing buffered + if (state.length === 0) return null; + var ret; + if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { + // read it all, truncate the list + if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + // read part of list + ret = state.buffer.consume(n, state.decoder); + } + return ret; +} +function endReadable(stream) { + var state = stream._readableState; + debug('endReadable', state.endEmitted); + if (!state.endEmitted) { + state.ended = true; + process.nextTick(endReadableNT, state, stream); + } +} +function endReadableNT(state, stream) { + debug('endReadableNT', state.endEmitted, state.length); + // Check that we didn't get one last unshift. + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); + if (state.autoDestroy) { + // In case of duplex streams we need a way to detect + // if the writable side is ready for autoDestroy as well + var wState = stream._writableState; + if (!wState || wState.autoDestroy && wState.finished) { + stream.destroy(); + } + } + } +} +if (typeof Symbol === 'function') { + Readable.from = function (iterable, opts) { + if (from === undefined) { + from = __nested_webpack_require_1407593__(/*! ./internal/streams/from */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/from.js"); + } + return from(Readable, iterable, opts); + }; +} +function indexOf(xs, x) { + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) return i; + } + return -1; +} /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ss.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ss.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js": +/*!********************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js ***! + \********************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1445711__) => { -//! moment.js locale configuration -//! locale : siSwati [ss] -//! author : Nicolai Davies : https://github.com/nicolaidavies +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +// A bit simpler than readable streams. +// Implement an async ._write(chunk, encoding, cb), and it'll handle all +// the drain event emission and buffering. - //! moment.js locale configuration - var ss = moment.defineLocale('ss', { - months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( - '_' - ), - monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), - weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( - '_' - ), - weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), - weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendar: { - sameDay: '[Namuhla nga] LT', - nextDay: '[Kusasa nga] LT', - nextWeek: 'dddd [nga] LT', - lastDay: '[Itolo nga] LT', - lastWeek: 'dddd [leliphelile] [nga] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'nga %s', - past: 'wenteka nga %s', - s: 'emizuzwana lomcane', - ss: '%d mzuzwana', - m: 'umzuzu', - mm: '%d emizuzu', - h: 'lihora', - hh: '%d emahora', - d: 'lilanga', - dd: '%d emalanga', - M: 'inyanga', - MM: '%d tinyanga', - y: 'umnyaka', - yy: '%d iminyaka', - }, - meridiemParse: /ekuseni|emini|entsambama|ebusuku/, - meridiem: function (hours, minutes, isLower) { - if (hours < 11) { - return 'ekuseni'; - } else if (hours < 15) { - return 'emini'; - } else if (hours < 19) { - return 'entsambama'; - } else { - return 'ebusuku'; - } - }, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ekuseni') { - return hour; - } else if (meridiem === 'emini') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { - if (hour === 0) { - return 0; - } - return hour + 12; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal: '%d', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); - return ss; +module.exports = Writable; + +/* */ +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; + this.next = null; +} + +// It seems a linked list but it is not +// there will be only 2 of these for each stream +function CorkedRequest(state) { + var _this = this; + this.next = null; + this.entry = null; + this.finish = function () { + onCorkedFinish(_this, state); + }; +} +/* */ -}))); +/**/ +var Duplex; +/**/ +Writable.WritableState = WritableState; -/***/ }), +/**/ +var internalUtil = { + deprecate: __nested_webpack_require_1445711__(/*! util-deprecate */ "./build/cht-core-4-6/api/node_modules/util-deprecate/node.js") +}; +/**/ -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sv.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sv.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/**/ +var Stream = __nested_webpack_require_1445711__(/*! ./internal/streams/stream */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/stream.js"); +/**/ -//! moment.js locale configuration -//! locale : Swedish [sv] -//! author : Jens Alm : https://github.com/ulmus +var Buffer = __nested_webpack_require_1445711__(/*! buffer */ "buffer").Buffer; +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} +var destroyImpl = __nested_webpack_require_1445711__(/*! ./internal/streams/destroy */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/destroy.js"); +var _require = __nested_webpack_require_1445711__(/*! ./internal/streams/state */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/state.js"), + getHighWaterMark = _require.getHighWaterMark; +var _require$codes = __nested_webpack_require_1445711__(/*! ../errors */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js").codes, + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, + ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, + ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, + ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; +var errorOrDestroy = destroyImpl.errorOrDestroy; +__nested_webpack_require_1445711__(/*! inherits */ "./build/cht-core-4-6/api/node_modules/inherits/inherits.js")(Writable, Stream); +function nop() {} +function WritableState(options, stream, isDuplex) { + Duplex = Duplex || __nested_webpack_require_1445711__(/*! ./_stream_duplex */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js"); + options = options || {}; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream, + // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; - //! moment.js locale configuration + // object stream flag to indicate whether or not this stream + // contains buffers or objects. + this.objectMode = !!options.objectMode; + if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; - var sv = moment.defineLocale('sv', { - months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( - '_' - ), - monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), - weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), - weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'), - weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [kl.] HH:mm', - LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', - lll: 'D MMM YYYY HH:mm', - llll: 'ddd D MMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Idag] LT', - nextDay: '[Imorgon] LT', - lastDay: '[Igår] LT', - nextWeek: '[På] dddd LT', - lastWeek: '[I] dddd[s] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'om %s', - past: 'för %s sedan', - s: 'några sekunder', - ss: '%d sekunder', - m: 'en minut', - mm: '%d minuter', - h: 'en timme', - hh: '%d timmar', - d: 'en dag', - dd: '%d dagar', - M: 'en månad', - MM: '%d månader', - y: 'ett år', - yy: '%d år', - }, - dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? ':e' - : b === 1 - ? ':a' - : b === 2 - ? ':a' - : b === 3 - ? ':e' - : ':e'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + // the point at which write() starts returning false + // Note: 0 is a valid value, means that we always return false if + // the entire buffer is not flushed immediately on write() + this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); - return sv; + // if _final has been called + this.finalCalled = false; -}))); + // drain event flag. + this.needDrain = false; + // at the start of calling end() + this.ending = false; + // when end() has been called, and returned + this.ended = false; + // when 'finish' is emitted + this.finished = false; + // has it been destroyed + this.destroyed = false; -/***/ }), + // should we decode strings into buffers before passing to _write? + // this is here so that some node-core streams can optimize string + // handling at a lower level. + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sw.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sw.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; -//! moment.js locale configuration -//! locale : Swahili [sw] -//! author : Fahad Kassim : https://github.com/fadsel + // not an actual buffer we keep track of, but a measurement + // of how much we're waiting to get pushed to some underlying + // socket or file. + this.length = 0; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // a flag to see when we're in the middle of a write. + this.writing = false; - //! moment.js locale configuration + // when true all writes will be buffered until .uncork() call + this.corked = 0; - var sw = moment.defineLocale('sw', { - months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), - weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( - '_' - ), - weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), - weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'hh:mm A', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[leo saa] LT', - nextDay: '[kesho saa] LT', - nextWeek: '[wiki ijayo] dddd [saat] LT', - lastDay: '[jana] LT', - lastWeek: '[wiki iliyopita] dddd [saat] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s baadaye', - past: 'tokea %s', - s: 'hivi punde', - ss: 'sekunde %d', - m: 'dakika moja', - mm: 'dakika %d', - h: 'saa limoja', - hh: 'masaa %d', - d: 'siku moja', - dd: 'siku %d', - M: 'mwezi mmoja', - MM: 'miezi %d', - y: 'mwaka mmoja', - yy: 'miaka %d', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); + // a flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, because any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. + this.sync = true; - return sw; + // a flag to know if we're processing previously buffered items, which + // may call the _write() callback in the same tick, so that we don't + // end up in an overlapped onwrite situation. + this.bufferProcessing = false; -}))); + // the callback that's passed to _write(chunk,cb) + this.onwrite = function (er) { + onwrite(stream, er); + }; + // the callback that the user supplies to write(chunk,encoding,cb) + this.writecb = null; -/***/ }), + // the amount that is being written when _write is called. + this.writelen = 0; + this.bufferedRequest = null; + this.lastBufferedRequest = null; -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ta.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ta.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + // number of pending user-supplied write callbacks + // this must be 0 before 'finish' can be emitted + this.pendingcb = 0; -//! moment.js locale configuration -//! locale : Tamil [ta] -//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 + // emit prefinish if the only thing we're waiting for is _write cbs + // This is relevant for synchronous Transform streams + this.prefinished = false; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // True if the error was already emitted and should not be thrown again + this.errorEmitted = false; - //! moment.js locale configuration + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; - var symbolMap = { - 1: '௧', - 2: '௨', - 3: '௩', - 4: '௪', - 5: '௫', - 6: '௬', - 7: '௭', - 8: '௮', - 9: '௯', - 0: '௦', - }, - numberMap = { - '௧': '1', - '௨': '2', - '௩': '3', - '௪': '4', - '௫': '5', - '௬': '6', - '௭': '7', - '௮': '8', - '௯': '9', - '௦': '0', - }; + // Should .destroy() be called after 'finish' (and potentially 'end') + this.autoDestroy = !!options.autoDestroy; - var ta = moment.defineLocale('ta', { - months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( - '_' - ), - monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( - '_' - ), - weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split( - '_' - ), - weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split( - '_' - ), - weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, HH:mm', - LLLL: 'dddd, D MMMM YYYY, HH:mm', - }, - calendar: { - sameDay: '[இன்று] LT', - nextDay: '[நாளை] LT', - nextWeek: 'dddd, LT', - lastDay: '[நேற்று] LT', - lastWeek: '[கடந்த வாரம்] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s இல்', - past: '%s முன்', - s: 'ஒரு சில விநாடிகள்', - ss: '%d விநாடிகள்', - m: 'ஒரு நிமிடம்', - mm: '%d நிமிடங்கள்', - h: 'ஒரு மணி நேரம்', - hh: '%d மணி நேரம்', - d: 'ஒரு நாள்', - dd: '%d நாட்கள்', - M: 'ஒரு மாதம்', - MM: '%d மாதங்கள்', - y: 'ஒரு வருடம்', - yy: '%d ஆண்டுகள்', - }, - dayOfMonthOrdinalParse: /\d{1,2}வது/, - ordinal: function (number) { - return number + 'வது'; - }, - preparse: function (string) { - return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - // refer http://ta.wikipedia.org/s/1er1 - meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, - meridiem: function (hour, minute, isLower) { - if (hour < 2) { - return ' யாமம்'; - } else if (hour < 6) { - return ' வைகறை'; // வைகறை - } else if (hour < 10) { - return ' காலை'; // காலை - } else if (hour < 14) { - return ' நண்பகல்'; // நண்பகல் - } else if (hour < 18) { - return ' எற்பாடு'; // எற்பாடு - } else if (hour < 22) { - return ' மாலை'; // மாலை - } else { - return ' யாமம்'; - } - }, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'யாமம்') { - return hour < 2 ? hour : hour + 12; - } else if (meridiem === 'வைகறை' || meridiem === 'காலை') { - return hour; - } else if (meridiem === 'நண்பகல்') { - return hour >= 10 ? hour : hour + 12; - } else { - return hour + 12; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, + // count buffered requests + this.bufferedRequestCount = 0; + + // allocate the first CorkedRequest, there is always + // one allocated and free to use, and we maintain at most two + this.corkedRequestsFree = new CorkedRequest(this); +} +WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest; + var out = []; + while (current) { + out.push(current); + current = current.next; + } + return out; +}; +(function () { + try { + Object.defineProperty(WritableState.prototype, 'buffer', { + get: internalUtil.deprecate(function writableStateBufferGetter() { + return this.getBuffer(); + }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') }); + } catch (_) {} +})(); - return ta; +// Test _writableState for inheritance to account for Duplex streams, +// whose prototype chain only points to Readable. +var realHasInstance; +if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { + realHasInstance = Function.prototype[Symbol.hasInstance]; + Object.defineProperty(Writable, Symbol.hasInstance, { + value: function value(object) { + if (realHasInstance.call(this, object)) return true; + if (this !== Writable) return false; + return object && object._writableState instanceof WritableState; + } + }); +} else { + realHasInstance = function realHasInstance(object) { + return object instanceof this; + }; +} +function Writable(options) { + Duplex = Duplex || __nested_webpack_require_1445711__(/*! ./_stream_duplex */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js"); -}))); + // Writable ctor is applied to Duplexes, too. + // `realHasInstance` is necessary because using plain `instanceof` + // would return false, as no `_writableState` property is attached. + // Trying to use the custom `instanceof` for Writable here will also break the + // Node.js LazyTransform implementation, which has a non-trivial getter for + // `_writableState` that would lead to infinite recursion. -/***/ }), + // Checking for a Stream.Duplex instance is faster here instead of inside + // the WritableState constructor, at least with V8 6.5 + var isDuplex = this instanceof Duplex; + if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); + this._writableState = new WritableState(options, this, isDuplex); + + // legacy. + this.writable = true; + if (options) { + if (typeof options.write === 'function') this._write = options.write; + if (typeof options.writev === 'function') this._writev = options.writev; + if (typeof options.destroy === 'function') this._destroy = options.destroy; + if (typeof options.final === 'function') this._final = options.final; + } + Stream.call(this); +} + +// Otherwise people can pipe Writable streams, which is just wrong. +Writable.prototype.pipe = function () { + errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); +}; +function writeAfterEnd(stream, cb) { + var er = new ERR_STREAM_WRITE_AFTER_END(); + // TODO: defer error events consistently everywhere, not just the cb + errorOrDestroy(stream, er); + process.nextTick(cb, er); +} + +// Checks that a user-supplied chunk is valid, especially for the particular +// mode the stream is in. Currently this means that `null` is never accepted +// and undefined/non-string values are only allowed in object mode. +function validChunk(stream, state, chunk, cb) { + var er; + if (chunk === null) { + er = new ERR_STREAM_NULL_VALUES(); + } else if (typeof chunk !== 'string' && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); + } + if (er) { + errorOrDestroy(stream, er); + process.nextTick(cb, er); + return false; + } + return true; +} +Writable.prototype.write = function (chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + var isBuf = !state.objectMode && _isUint8Array(chunk); + if (isBuf && !Buffer.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; + if (typeof cb !== 'function') cb = nop; + if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++; + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + } + return ret; +}; +Writable.prototype.cork = function () { + this._writableState.corked++; +}; +Writable.prototype.uncork = function () { + var state = this._writableState; + if (state.corked) { + state.corked--; + if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); + } +}; +Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + // node::ParseEncoding() requires lower case. + if (typeof encoding === 'string') encoding = encoding.toLowerCase(); + if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding); + this._writableState.defaultEncoding = encoding; + return this; +}; +Object.defineProperty(Writable.prototype, 'writableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); + } +}); +function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { + chunk = Buffer.from(chunk, encoding); + } + return chunk; +} +Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; + } +}); -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/te.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/te.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +// if we're already writing something, then just put this +// in the queue, and wait our turn. Otherwise, call _write +// If we return false, then we need a drain event, so set that flag. +function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = 'buffer'; + chunk = newChunk; + } + } + var len = state.objectMode ? 1 : chunk.length; + state.length += len; + var ret = state.length < state.highWaterMark; + // we must ensure that previous needDrain will not be reset to false. + if (!ret) state.needDrain = true; + if (state.writing || state.corked) { + var last = state.lastBufferedRequest; + state.lastBufferedRequest = { + chunk: chunk, + encoding: encoding, + isBuf: isBuf, + callback: cb, + next: null + }; + if (last) { + last.next = state.lastBufferedRequest; + } else { + state.bufferedRequest = state.lastBufferedRequest; + } + state.bufferedRequestCount += 1; + } else { + doWrite(stream, state, false, len, chunk, encoding, cb); + } + return ret; +} +function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); + state.sync = false; +} +function onwriteError(stream, state, sync, er, cb) { + --state.pendingcb; + if (sync) { + // defer the callback if we are being called synchronously + // to avoid piling up things on the stack + process.nextTick(cb, er); + // this can emit finish, and it will always happen + // after error + process.nextTick(finishMaybe, stream, state); + stream._writableState.errorEmitted = true; + errorOrDestroy(stream, er); + } else { + // the caller expect this to happen before if + // it is async + cb(er); + stream._writableState.errorEmitted = true; + errorOrDestroy(stream, er); + // this can emit finish, but finish must + // always follow error + finishMaybe(stream, state); + } +} +function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; +} +function onwrite(stream, er) { + var state = stream._writableState; + var sync = state.sync; + var cb = state.writecb; + if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK(); + onwriteStateUpdate(state); + if (er) onwriteError(stream, state, sync, er, cb);else { + // Check if we're actually ready to finish, but don't emit yet + var finished = needFinish(state) || stream.destroyed; + if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { + clearBuffer(stream, state); + } + if (sync) { + process.nextTick(afterWrite, stream, state, finished, cb); + } else { + afterWrite(stream, state, finished, cb); + } + } +} +function afterWrite(stream, state, finished, cb) { + if (!finished) onwriteDrain(stream, state); + state.pendingcb--; + cb(); + finishMaybe(stream, state); +} -//! moment.js locale configuration -//! locale : Telugu [te] -//! author : Krishna Chaitanya Thota : https://github.com/kcthota +// Must force callback to be called on nextTick, so that we don't +// emit 'drain' before the write() consumer gets the 'false' return +// value, and has a chance to attach a 'drain' listener. +function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream.emit('drain'); + } +} -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +// if there's something in the buffer waiting, then process it +function clearBuffer(stream, state) { + state.bufferProcessing = true; + var entry = state.bufferedRequest; + if (stream._writev && entry && entry.next) { + // Fast case, write everything using _writev() + var l = state.bufferedRequestCount; + var buffer = new Array(l); + var holder = state.corkedRequestsFree; + holder.entry = entry; + var count = 0; + var allBuffers = true; + while (entry) { + buffer[count] = entry; + if (!entry.isBuf) allBuffers = false; + entry = entry.next; + count += 1; + } + buffer.allBuffers = allBuffers; + doWrite(stream, state, true, state.length, buffer, '', holder.finish); - //! moment.js locale configuration + // doWrite is almost always async, defer these to save a bit of time + // as the hot path ends with doWrite + state.pendingcb++; + state.lastBufferedRequest = null; + if (holder.next) { + state.corkedRequestsFree = holder.next; + holder.next = null; + } else { + state.corkedRequestsFree = new CorkedRequest(state); + } + state.bufferedRequestCount = 0; + } else { + // Slow case, write chunks one-by-one + while (entry) { + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + doWrite(stream, state, false, len, chunk, encoding, cb); + entry = entry.next; + state.bufferedRequestCount--; + // if we didn't call the onwrite immediately, then + // it means that we need to wait until it does. + // also, that means that the chunk and cb are currently + // being processed, so move the buffer counter past them. + if (state.writing) { + break; + } + } + if (entry === null) state.lastBufferedRequest = null; + } + state.bufferedRequest = entry; + state.bufferProcessing = false; +} +Writable.prototype._write = function (chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); +}; +Writable.prototype._writev = null; +Writable.prototype.end = function (chunk, encoding, cb) { + var state = this._writableState; + if (typeof chunk === 'function') { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - var te = moment.defineLocale('te', { - months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split( - '_' - ), - monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split( - '_' - ), - weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), - weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), - longDateFormat: { - LT: 'A h:mm', - LTS: 'A h:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm', - LLLL: 'dddd, D MMMM YYYY, A h:mm', - }, - calendar: { - sameDay: '[నేడు] LT', - nextDay: '[రేపు] LT', - nextWeek: 'dddd, LT', - lastDay: '[నిన్న] LT', - lastWeek: '[గత] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s లో', - past: '%s క్రితం', - s: 'కొన్ని క్షణాలు', - ss: '%d సెకన్లు', - m: 'ఒక నిమిషం', - mm: '%d నిమిషాలు', - h: 'ఒక గంట', - hh: '%d గంటలు', - d: 'ఒక రోజు', - dd: '%d రోజులు', - M: 'ఒక నెల', - MM: '%d నెలలు', - y: 'ఒక సంవత్సరం', - yy: '%d సంవత్సరాలు', - }, - dayOfMonthOrdinalParse: /\d{1,2}వ/, - ordinal: '%dవ', - meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'రాత్రి') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ఉదయం') { - return hour; - } else if (meridiem === 'మధ్యాహ్నం') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'సాయంత్రం') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'రాత్రి'; - } else if (hour < 10) { - return 'ఉదయం'; - } else if (hour < 17) { - return 'మధ్యాహ్నం'; - } else if (hour < 20) { - return 'సాయంత్రం'; - } else { - return 'రాత్రి'; - } - }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, - }); + // .end() fully uncorks + if (state.corked) { + state.corked = 1; + this.uncork(); + } - return te; + // ignore unnecessary end() calls. + if (!state.ending) endWritable(this, state, cb); + return this; +}; +Object.defineProperty(Writable.prototype, 'writableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.length; + } +}); +function needFinish(state) { + return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; +} +function callFinal(stream, state) { + stream._final(function (err) { + state.pendingcb--; + if (err) { + errorOrDestroy(stream, err); + } + state.prefinished = true; + stream.emit('prefinish'); + finishMaybe(stream, state); + }); +} +function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === 'function' && !state.destroyed) { + state.pendingcb++; + state.finalCalled = true; + process.nextTick(callFinal, stream, state); + } else { + state.prefinished = true; + stream.emit('prefinish'); + } + } +} +function finishMaybe(stream, state) { + var need = needFinish(state); + if (need) { + prefinish(stream, state); + if (state.pendingcb === 0) { + state.finished = true; + stream.emit('finish'); + if (state.autoDestroy) { + // In case of duplex streams we need a way to detect + // if the readable side is ready for autoDestroy as well + var rState = stream._readableState; + if (!rState || rState.autoDestroy && rState.endEmitted) { + stream.destroy(); + } + } + } + } + return need; +} +function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) process.nextTick(cb);else stream.once('finish', cb); + } + state.ended = true; + stream.writable = false; +} +function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } -}))); + // reuse the free corkReq. + state.corkedRequestsFree.next = corkReq; +} +Object.defineProperty(Writable.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._writableState === undefined) { + return false; + } + return this._writableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._writableState) { + return; + } + // backward compatibility, the user is explicitly + // managing destroyed + this._writableState.destroyed = value; + } +}); +Writable.prototype.destroy = destroyImpl.destroy; +Writable.prototype._undestroy = destroyImpl.undestroy; +Writable.prototype._destroy = function (err, cb) { + cb(err); +}; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tet.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tet.js ***! - \***************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/async_iterator.js": +/*!***********************************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/async_iterator.js ***! + \***********************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1469199__) => { -//! moment.js locale configuration -//! locale : Tetun Dili (East Timor) [tet] -//! author : Joshua Brooks : https://github.com/joshbrooks -//! author : Onorio De J. Afonso : https://github.com/marobo -//! author : Sonia Simoes : https://github.com/soniasimoes +"use strict"; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - //! moment.js locale configuration +var _Object$setPrototypeO; +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +var finished = __nested_webpack_require_1469199__(/*! ./end-of-stream */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); +var kLastResolve = Symbol('lastResolve'); +var kLastReject = Symbol('lastReject'); +var kError = Symbol('error'); +var kEnded = Symbol('ended'); +var kLastPromise = Symbol('lastPromise'); +var kHandlePromise = Symbol('handlePromise'); +var kStream = Symbol('stream'); +function createIterResult(value, done) { + return { + value: value, + done: done + }; +} +function readAndResolve(iter) { + var resolve = iter[kLastResolve]; + if (resolve !== null) { + var data = iter[kStream].read(); + // we defer if data is null + // we can be expecting either 'end' or + // 'error' + if (data !== null) { + iter[kLastPromise] = null; + iter[kLastResolve] = null; + iter[kLastReject] = null; + resolve(createIterResult(data, false)); + } + } +} +function onReadable(iter) { + // we wait for the next tick, because it might + // emit an error with process.nextTick + process.nextTick(readAndResolve, iter); +} +function wrapForNext(lastPromise, iter) { + return function (resolve, reject) { + lastPromise.then(function () { + if (iter[kEnded]) { + resolve(createIterResult(undefined, true)); + return; + } + iter[kHandlePromise](resolve, reject); + }, reject); + }; +} +var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}); +var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { + get stream() { + return this[kStream]; + }, + next: function next() { + var _this = this; + // if we have detected an error in the meanwhile + // reject straight away + var error = this[kError]; + if (error !== null) { + return Promise.reject(error); + } + if (this[kEnded]) { + return Promise.resolve(createIterResult(undefined, true)); + } + if (this[kStream].destroyed) { + // We need to defer via nextTick because if .destroy(err) is + // called, the error will be emitted via nextTick, and + // we cannot guarantee that there is no error lingering around + // waiting to be emitted. + return new Promise(function (resolve, reject) { + process.nextTick(function () { + if (_this[kError]) { + reject(_this[kError]); + } else { + resolve(createIterResult(undefined, true)); + } + }); + }); + } - var tet = moment.defineLocale('tet', { - months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( - '_' - ), - monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), - weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), - weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), - weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Ohin iha] LT', - nextDay: '[Aban iha] LT', - nextWeek: 'dddd [iha] LT', - lastDay: '[Horiseik iha] LT', - lastWeek: 'dddd [semana kotuk] [iha] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'iha %s', - past: '%s liuba', - s: 'segundu balun', - ss: 'segundu %d', - m: 'minutu ida', - mm: 'minutu %d', - h: 'oras ida', - hh: 'oras %d', - d: 'loron ida', - dd: 'loron %d', - M: 'fulan ida', - MM: 'fulan %d', - y: 'tinan ida', - yy: 'tinan %d', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, + // if we have multiple next() calls + // we will wait for the previous Promise to finish + // this logic is optimized to support for await loops, + // where next() is only called once at a time + var lastPromise = this[kLastPromise]; + var promise; + if (lastPromise) { + promise = new Promise(wrapForNext(lastPromise, this)); + } else { + // fast path needed to support multiple this.push() + // without triggering the next() queue + var data = this[kStream].read(); + if (data !== null) { + return Promise.resolve(createIterResult(data, false)); + } + promise = new Promise(this[kHandlePromise]); + } + this[kLastPromise] = promise; + return promise; + } +}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () { + return this; +}), _defineProperty(_Object$setPrototypeO, "return", function _return() { + var _this2 = this; + // destroy(err, cb) is a private API + // we can guarantee we have that here, because we control the + // Readable class this is attached to + return new Promise(function (resolve, reject) { + _this2[kStream].destroy(null, function (err) { + if (err) { + reject(err); + return; + } + resolve(createIterResult(undefined, true)); }); + }); +}), _Object$setPrototypeO), AsyncIteratorPrototype); +var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { + var _Object$create; + var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { + value: stream, + writable: true + }), _defineProperty(_Object$create, kLastResolve, { + value: null, + writable: true + }), _defineProperty(_Object$create, kLastReject, { + value: null, + writable: true + }), _defineProperty(_Object$create, kError, { + value: null, + writable: true + }), _defineProperty(_Object$create, kEnded, { + value: stream._readableState.endEmitted, + writable: true + }), _defineProperty(_Object$create, kHandlePromise, { + value: function value(resolve, reject) { + var data = iterator[kStream].read(); + if (data) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(data, false)); + } else { + iterator[kLastResolve] = resolve; + iterator[kLastReject] = reject; + } + }, + writable: true + }), _Object$create)); + iterator[kLastPromise] = null; + finished(stream, function (err) { + if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { + var reject = iterator[kLastReject]; + // reject if we are waiting for data in the Promise + // returned by next() and store the error + if (reject !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + reject(err); + } + iterator[kError] = err; + return; + } + var resolve = iterator[kLastResolve]; + if (resolve !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(undefined, true)); + } + iterator[kEnded] = true; + }); + stream.on('readable', onReadable.bind(null, iterator)); + return iterator; +}; +module.exports = createReadableStreamAsyncIterator; - return tet; +/***/ }), -}))); +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/buffer_list.js": +/*!********************************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/buffer_list.js ***! + \********************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1476423__) => { +"use strict"; -/***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tg.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tg.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +var _require = __nested_webpack_require_1476423__(/*! buffer */ "buffer"), + Buffer = _require.Buffer; +var _require2 = __nested_webpack_require_1476423__(/*! util */ "util"), + inspect = _require2.inspect; +var custom = inspect && inspect.custom || 'inspect'; +function copyBuffer(src, target, offset) { + Buffer.prototype.copy.call(src, target, offset); +} +module.exports = /*#__PURE__*/function () { + function BufferList() { + _classCallCheck(this, BufferList); + this.head = null; + this.tail = null; + this.length = 0; + } + _createClass(BufferList, [{ + key: "push", + value: function push(v) { + var entry = { + data: v, + next: null + }; + if (this.length > 0) this.tail.next = entry;else this.head = entry; + this.tail = entry; + ++this.length; + } + }, { + key: "unshift", + value: function unshift(v) { + var entry = { + data: v, + next: this.head + }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + } + }, { + key: "shift", + value: function shift() { + if (this.length === 0) return; + var ret = this.head.data; + if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; + --this.length; + return ret; + } + }, { + key: "clear", + value: function clear() { + this.head = this.tail = null; + this.length = 0; + } + }, { + key: "join", + value: function join(s) { + if (this.length === 0) return ''; + var p = this.head; + var ret = '' + p.data; + while (p = p.next) ret += s + p.data; + return ret; + } + }, { + key: "concat", + value: function concat(n) { + if (this.length === 0) return Buffer.alloc(0); + var ret = Buffer.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; + while (p) { + copyBuffer(p.data, ret, i); + i += p.data.length; + p = p.next; + } + return ret; + } -//! moment.js locale configuration -//! locale : Tajik [tg] -//! author : Orif N. Jr. : https://github.com/orif-jr + // Consumes a specified amount of bytes or characters from the buffered data. + }, { + key: "consume", + value: function consume(n, hasStrings) { + var ret; + if (n < this.head.data.length) { + // `slice` is the same for buffers and strings. + ret = this.head.data.slice(0, n); + this.head.data = this.head.data.slice(n); + } else if (n === this.head.data.length) { + // First chunk is a perfect match. + ret = this.shift(); + } else { + // Result spans more than one buffer. + ret = hasStrings ? this._getString(n) : this._getBuffer(n); + } + return ret; + } + }, { + key: "first", + value: function first() { + return this.head.data; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // Consumes a specified amount of characters from the buffered data. + }, { + key: "_getString", + value: function _getString(n) { + var p = this.head; + var c = 1; + var ret = p.data; + n -= ret.length; + while (p = p.next) { + var str = p.data; + var nb = n > str.length ? str.length : n; + if (nb === str.length) ret += str;else ret += str.slice(0, n); + n -= nb; + if (n === 0) { + if (nb === str.length) { + ++c; + if (p.next) this.head = p.next;else this.head = this.tail = null; + } else { + this.head = p; + p.data = str.slice(nb); + } + break; + } + ++c; + } + this.length -= c; + return ret; + } - //! moment.js locale configuration + // Consumes a specified amount of bytes from the buffered data. + }, { + key: "_getBuffer", + value: function _getBuffer(n) { + var ret = Buffer.allocUnsafe(n); + var p = this.head; + var c = 1; + p.data.copy(ret); + n -= p.data.length; + while (p = p.next) { + var buf = p.data; + var nb = n > buf.length ? buf.length : n; + buf.copy(ret, ret.length - n, 0, nb); + n -= nb; + if (n === 0) { + if (nb === buf.length) { + ++c; + if (p.next) this.head = p.next;else this.head = this.tail = null; + } else { + this.head = p; + p.data = buf.slice(nb); + } + break; + } + ++c; + } + this.length -= c; + return ret; + } - var suffixes = { - 0: '-ум', - 1: '-ум', - 2: '-юм', - 3: '-юм', - 4: '-ум', - 5: '-ум', - 6: '-ум', - 7: '-ум', - 8: '-ум', - 9: '-ум', - 10: '-ум', - 12: '-ум', - 13: '-ум', - 20: '-ум', - 30: '-юм', - 40: '-ум', - 50: '-ум', - 60: '-ум', - 70: '-ум', - 80: '-ум', - 90: '-ум', - 100: '-ум', - }; + // Make sure the linked list only shows the minimal necessary information. + }, { + key: custom, + value: function value(_, options) { + return inspect(this, _objectSpread(_objectSpread({}, options), {}, { + // Only inspect one level. + depth: 0, + // It should not recurse. + customInspect: false + })); + } + }]); + return BufferList; +}(); - var tg = moment.defineLocale('tg', { - months: { - format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split( - '_' - ), - standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( - '_' - ), - }, - monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), - weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split( - '_' - ), - weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'), - weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Имрӯз соати] LT', - nextDay: '[Фардо соати] LT', - lastDay: '[Дирӯз соати] LT', - nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT', - lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'баъди %s', - past: '%s пеш', - s: 'якчанд сония', - m: 'як дақиқа', - mm: '%d дақиқа', - h: 'як соат', - hh: '%d соат', - d: 'як рӯз', - dd: '%d рӯз', - M: 'як моҳ', - MM: '%d моҳ', - y: 'як сол', - yy: '%d сол', - }, - meridiemParse: /шаб|субҳ|рӯз|бегоҳ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'шаб') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'субҳ') { - return hour; - } else if (meridiem === 'рӯз') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'бегоҳ') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'шаб'; - } else if (hour < 11) { - return 'субҳ'; - } else if (hour < 16) { - return 'рӯз'; - } else if (hour < 19) { - return 'бегоҳ'; - } else { - return 'шаб'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/, - ordinal: function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes[number] || suffixes[a] || suffixes[b]); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 1th is the first week of the year. - }, - }); +/***/ }), - return tg; +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/destroy.js": +/*!****************************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/destroy.js ***! + \****************************************************************************************************************************/ +/***/ ((module) => { -}))); +"use strict"; -/***/ }), +// undocumented cb() API, needed for core, not for public API +function destroy(err, cb) { + var _this = this; + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err) { + if (!this._writableState) { + process.nextTick(emitErrorNT, this, err); + } else if (!this._writableState.errorEmitted) { + this._writableState.errorEmitted = true; + process.nextTick(emitErrorNT, this, err); + } + } + return this; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/th.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/th.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks -//! moment.js locale configuration -//! locale : Thai [th] -//! author : Kridsada Thanabulpong : https://github.com/sirn + if (this._readableState) { + this._readableState.destroyed = true; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // if this is a duplex stream mark the writable part as destroyed as well + if (this._writableState) { + this._writableState.destroyed = true; + } + this._destroy(err || null, function (err) { + if (!cb && err) { + if (!_this._writableState) { + process.nextTick(emitErrorAndCloseNT, _this, err); + } else if (!_this._writableState.errorEmitted) { + _this._writableState.errorEmitted = true; + process.nextTick(emitErrorAndCloseNT, _this, err); + } else { + process.nextTick(emitCloseNT, _this); + } + } else if (cb) { + process.nextTick(emitCloseNT, _this); + cb(err); + } else { + process.nextTick(emitCloseNT, _this); + } + }); + return this; +} +function emitErrorAndCloseNT(self, err) { + emitErrorNT(self, err); + emitCloseNT(self); +} +function emitCloseNT(self) { + if (self._writableState && !self._writableState.emitClose) return; + if (self._readableState && !self._readableState.emitClose) return; + self.emit('close'); +} +function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finalCalled = false; + this._writableState.prefinished = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; + } +} +function emitErrorNT(self, err) { + self.emit('error', err); +} +function errorOrDestroy(stream, err) { + // We have tests that rely on errors being emitted + // in the same tick, so changing this is semver major. + // For now when you opt-in to autoDestroy we allow + // the error to be emitted nextTick. In a future + // semver major update we should change the default to this. - //! moment.js locale configuration + var rState = stream._readableState; + var wState = stream._writableState; + if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err); +} +module.exports = { + destroy: destroy, + undestroy: undestroy, + errorOrDestroy: errorOrDestroy +}; - var th = moment.defineLocale('th', { - months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split( - '_' - ), - monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), - weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference - weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY เวลา H:mm', - LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm', - }, - meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, - isPM: function (input) { - return input === 'หลังเที่ยง'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ก่อนเที่ยง'; - } else { - return 'หลังเที่ยง'; - } - }, - calendar: { - sameDay: '[วันนี้ เวลา] LT', - nextDay: '[พรุ่งนี้ เวลา] LT', - nextWeek: 'dddd[หน้า เวลา] LT', - lastDay: '[เมื่อวานนี้ เวลา] LT', - lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'อีก %s', - past: '%sที่แล้ว', - s: 'ไม่กี่วินาที', - ss: '%d วินาที', - m: '1 นาที', - mm: '%d นาที', - h: '1 ชั่วโมง', - hh: '%d ชั่วโมง', - d: '1 วัน', - dd: '%d วัน', - w: '1 สัปดาห์', - ww: '%d สัปดาห์', - M: '1 เดือน', - MM: '%d เดือน', - y: '1 ปี', - yy: '%d ปี', - }, - }); +/***/ }), - return th; +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/end-of-stream.js": +/*!**********************************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***! + \**********************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1487660__) => { + +"use strict"; +// Ported from https://github.com/mafintosh/end-of-stream with +// permission from the author, Mathias Buus (@mafintosh). -}))); +var ERR_STREAM_PREMATURE_CLOSE = __nested_webpack_require_1487660__(/*! ../../../errors */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js").codes.ERR_STREAM_PREMATURE_CLOSE; +function once(callback) { + var called = false; + return function () { + if (called) return; + called = true; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + callback.apply(this, args); + }; +} +function noop() {} +function isRequest(stream) { + return stream.setHeader && typeof stream.abort === 'function'; +} +function eos(stream, opts, callback) { + if (typeof opts === 'function') return eos(stream, null, opts); + if (!opts) opts = {}; + callback = once(callback || noop); + var readable = opts.readable || opts.readable !== false && stream.readable; + var writable = opts.writable || opts.writable !== false && stream.writable; + var onlegacyfinish = function onlegacyfinish() { + if (!stream.writable) onfinish(); + }; + var writableEnded = stream._writableState && stream._writableState.finished; + var onfinish = function onfinish() { + writable = false; + writableEnded = true; + if (!readable) callback.call(stream); + }; + var readableEnded = stream._readableState && stream._readableState.endEmitted; + var onend = function onend() { + readable = false; + readableEnded = true; + if (!writable) callback.call(stream); + }; + var onerror = function onerror(err) { + callback.call(stream, err); + }; + var onclose = function onclose() { + var err; + if (readable && !readableEnded) { + if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream, err); + } + if (writable && !writableEnded) { + if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream, err); + } + }; + var onrequest = function onrequest() { + stream.req.on('finish', onfinish); + }; + if (isRequest(stream)) { + stream.on('complete', onfinish); + stream.on('abort', onclose); + if (stream.req) onrequest();else stream.on('request', onrequest); + } else if (writable && !stream._writableState) { + // legacy streams + stream.on('end', onlegacyfinish); + stream.on('close', onlegacyfinish); + } + stream.on('end', onend); + stream.on('finish', onfinish); + if (opts.error !== false) stream.on('error', onerror); + stream.on('close', onclose); + return function () { + stream.removeListener('complete', onfinish); + stream.removeListener('abort', onclose); + stream.removeListener('request', onrequest); + if (stream.req) stream.req.removeListener('finish', onfinish); + stream.removeListener('end', onlegacyfinish); + stream.removeListener('close', onlegacyfinish); + stream.removeListener('finish', onfinish); + stream.removeListener('end', onend); + stream.removeListener('error', onerror); + stream.removeListener('close', onclose); + }; +} +module.exports = eos; + /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tk.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tk.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -//! moment.js locale configuration -//! locale : Turkmen [tk] -//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy - -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/from.js": +/*!*************************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/from.js ***! + \*************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1491444__) => { - //! moment.js locale configuration +"use strict"; - var suffixes = { - 1: "'inji", - 5: "'inji", - 8: "'inji", - 70: "'inji", - 80: "'inji", - 2: "'nji", - 7: "'nji", - 20: "'nji", - 50: "'nji", - 3: "'ünji", - 4: "'ünji", - 100: "'ünji", - 6: "'njy", - 9: "'unjy", - 10: "'unjy", - 30: "'unjy", - 60: "'ynjy", - 90: "'ynjy", - }; - var tk = moment.defineLocale('tk', { - months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split( - '_' - ), - monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'), - weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split( - '_' - ), - weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'), - weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[bugün sagat] LT', - nextDay: '[ertir sagat] LT', - nextWeek: '[indiki] dddd [sagat] LT', - lastDay: '[düýn] LT', - lastWeek: '[geçen] dddd [sagat] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s soň', - past: '%s öň', - s: 'birnäçe sekunt', - m: 'bir minut', - mm: '%d minut', - h: 'bir sagat', - hh: '%d sagat', - d: 'bir gün', - dd: '%d gün', - M: 'bir aý', - MM: '%d aý', - y: 'bir ýyl', - yy: '%d ýyl', - }, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'Do': - case 'DD': - return number; - default: - if (number === 0) { - // special case for zero - return number + "'unjy"; - } - var a = number % 10, - b = (number % 100) - a, - c = number >= 100 ? 100 : null; - return number + (suffixes[a] || suffixes[b] || suffixes[c]); - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +var ERR_INVALID_ARG_TYPE = __nested_webpack_require_1491444__(/*! ../../../errors */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js").codes.ERR_INVALID_ARG_TYPE; +function from(Readable, iterable, opts) { + var iterator; + if (iterable && typeof iterable.next === 'function') { + iterator = iterable; + } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable); + var readable = new Readable(_objectSpread({ + objectMode: true + }, opts)); + // Reading boolean to protect against _read + // being called before last iteration completion. + var reading = false; + readable._read = function () { + if (!reading) { + reading = true; + next(); + } + }; + function next() { + return _next2.apply(this, arguments); + } + function _next2() { + _next2 = _asyncToGenerator(function* () { + try { + var _yield$iterator$next = yield iterator.next(), + value = _yield$iterator$next.value, + done = _yield$iterator$next.done; + if (done) { + readable.push(null); + } else if (readable.push(yield value)) { + next(); + } else { + reading = false; + } + } catch (err) { + readable.destroy(err); + } }); - - return tk; - -}))); + return _next2.apply(this, arguments); + } + return readable; +} +module.exports = from; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tl-ph.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tl-ph.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/state.js": +/*!**************************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/state.js ***! + \**************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1495816__) => { -//! moment.js locale configuration -//! locale : Tagalog (Philippines) [tl-ph] -//! author : Dan Hagman : https://github.com/hagmandan +"use strict"; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - //! moment.js locale configuration +var ERR_INVALID_OPT_VALUE = __nested_webpack_require_1495816__(/*! ../../../errors */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js").codes.ERR_INVALID_OPT_VALUE; +function highWaterMarkFrom(options, isDuplex, duplexKey) { + return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; +} +function getHighWaterMark(state, options, duplexKey, isDuplex) { + var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); + if (hwm != null) { + if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { + var name = isDuplex ? duplexKey : 'highWaterMark'; + throw new ERR_INVALID_OPT_VALUE(name, hwm); + } + return Math.floor(hwm); + } - var tlPh = moment.defineLocale('tl-ph', { - months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( - '_' - ), - monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), - weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( - '_' - ), - weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), - weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'MM/D/YYYY', - LL: 'MMMM D, YYYY', - LLL: 'MMMM D, YYYY HH:mm', - LLLL: 'dddd, MMMM DD, YYYY HH:mm', - }, - calendar: { - sameDay: 'LT [ngayong araw]', - nextDay: '[Bukas ng] LT', - nextWeek: 'LT [sa susunod na] dddd', - lastDay: 'LT [kahapon]', - lastWeek: 'LT [noong nakaraang] dddd', - sameElse: 'L', - }, - relativeTime: { - future: 'sa loob ng %s', - past: '%s ang nakalipas', - s: 'ilang segundo', - ss: '%d segundo', - m: 'isang minuto', - mm: '%d minuto', - h: 'isang oras', - hh: '%d oras', - d: 'isang araw', - dd: '%d araw', - M: 'isang buwan', - MM: '%d buwan', - y: 'isang taon', - yy: '%d taon', - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal: function (number) { - return number; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + // Default value + return state.objectMode ? 16 : 16 * 1024; +} +module.exports = { + getHighWaterMark: getHighWaterMark +}; - return tlPh; +/***/ }), -}))); +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/stream.js": +/*!***************************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/stream.js ***! + \***************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1497269__) => { + +module.exports = __nested_webpack_require_1497269__(/*! stream */ "stream"); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tlh.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tlh.js ***! - \***************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_1497704__) => { -//! moment.js locale configuration -//! locale : Klingon [tlh] -//! author : Dominika Kruk : https://github.com/amaranthrose +"use strict"; +/** + * winston.js: Top-level include defining Winston. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - //! moment.js locale configuration - var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); +const logform = __nested_webpack_require_1497704__(/*! logform */ "./build/cht-core-4-6/api/node_modules/logform/index.js"); +const { warn } = __nested_webpack_require_1497704__(/*! ./winston/common */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/common.js"); - function translateFuture(output) { - var time = output; - time = - output.indexOf('jaj') !== -1 - ? time.slice(0, -3) + 'leS' - : output.indexOf('jar') !== -1 - ? time.slice(0, -3) + 'waQ' - : output.indexOf('DIS') !== -1 - ? time.slice(0, -3) + 'nem' - : time + ' pIq'; - return time; - } +/** + * Expose version. Use `require` method for `webpack` support. + * @type {string} + */ +exports.version = __nested_webpack_require_1497704__(/*! ../package.json */ "./build/cht-core-4-6/api/node_modules/winston/package.json").version; +/** + * Include transports defined by default by winston + * @type {Array} + */ +exports.transports = __nested_webpack_require_1497704__(/*! ./winston/transports */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/index.js"); +/** + * Expose utility methods + * @type {Object} + */ +exports.config = __nested_webpack_require_1497704__(/*! ./winston/config */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/config/index.js"); +/** + * Hoist format-related functionality from logform. + * @type {Object} + */ +exports.addColors = logform.levels; +/** + * Hoist format-related functionality from logform. + * @type {Object} + */ +exports.format = logform.format; +/** + * Expose core Logging-related prototypes. + * @type {function} + */ +exports.createLogger = __nested_webpack_require_1497704__(/*! ./winston/create-logger */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/create-logger.js"); +/** + * Expose core Logging-related prototypes. + * @type {function} + */ +exports.Logger = __nested_webpack_require_1497704__(/*! ./winston/logger */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/logger.js"); +/** + * Expose core Logging-related prototypes. + * @type {Object} + */ +exports.ExceptionHandler = __nested_webpack_require_1497704__(/*! ./winston/exception-handler */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-handler.js"); +/** + * Expose core Logging-related prototypes. + * @type {Object} + */ +exports.RejectionHandler = __nested_webpack_require_1497704__(/*! ./winston/rejection-handler */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/rejection-handler.js"); +/** + * Expose core Logging-related prototypes. + * @type {Container} + */ +exports.Container = __nested_webpack_require_1497704__(/*! ./winston/container */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/container.js"); +/** + * Expose core Logging-related prototypes. + * @type {Object} + */ +exports.Transport = __nested_webpack_require_1497704__(/*! winston-transport */ "./build/cht-core-4-6/api/node_modules/winston-transport/index.js"); +/** + * We create and expose a default `Container` to `winston.loggers` so that the + * programmer may manage multiple `winston.Logger` instances without any + * additional overhead. + * @example + * // some-file1.js + * const logger = require('winston').loggers.get('something'); + * + * // some-file2.js + * const logger = require('winston').loggers.get('something'); + */ +exports.loggers = new exports.Container(); - function translatePast(output) { - var time = output; - time = - output.indexOf('jaj') !== -1 - ? time.slice(0, -3) + 'Hu’' - : output.indexOf('jar') !== -1 - ? time.slice(0, -3) + 'wen' - : output.indexOf('DIS') !== -1 - ? time.slice(0, -3) + 'ben' - : time + ' ret'; - return time; - } +/** + * We create and expose a 'defaultLogger' so that the programmer may do the + * following without the need to create an instance of winston.Logger directly: + * @example + * const winston = require('winston'); + * winston.log('info', 'some message'); + * winston.error('some error'); + */ +const defaultLogger = exports.createLogger(); - function translate(number, withoutSuffix, string, isFuture) { - var numberNoun = numberAsNoun(number); - switch (string) { - case 'ss': - return numberNoun + ' lup'; - case 'mm': - return numberNoun + ' tup'; - case 'hh': - return numberNoun + ' rep'; - case 'dd': - return numberNoun + ' jaj'; - case 'MM': - return numberNoun + ' jar'; - case 'yy': - return numberNoun + ' DIS'; - } - } +// Pass through the target methods onto `winston. +Object.keys(exports.config.npm.levels) + .concat([ + 'log', + 'query', + 'stream', + 'add', + 'remove', + 'clear', + 'profile', + 'startTimer', + 'handleExceptions', + 'unhandleExceptions', + 'handleRejections', + 'unhandleRejections', + 'configure', + 'child' + ]) + .forEach( + method => (exports[method] = (...args) => defaultLogger[method](...args)) + ); - function numberAsNoun(number) { - var hundred = Math.floor((number % 1000) / 100), - ten = Math.floor((number % 100) / 10), - one = number % 10, - word = ''; - if (hundred > 0) { - word += numbersNouns[hundred] + 'vatlh'; - } - if (ten > 0) { - word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; - } - if (one > 0) { - word += (word !== '' ? ' ' : '') + numbersNouns[one]; - } - return word === '' ? 'pagh' : word; - } +/** + * Define getter / setter for the default logger level which need to be exposed + * by winston. + * @type {string} + */ +Object.defineProperty(exports, "level", ({ + get() { + return defaultLogger.level; + }, + set(val) { + defaultLogger.level = val; + } +})); - var tlh = moment.defineLocale('tlh', { - months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split( - '_' - ), - monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( - '_' - ), - weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( - '_' - ), - weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( - '_' - ), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[DaHjaj] LT', - nextDay: '[wa’leS] LT', - nextWeek: 'LLL', - lastDay: '[wa’Hu’] LT', - lastWeek: 'LLL', - sameElse: 'L', - }, - relativeTime: { - future: translateFuture, - past: translatePast, - s: 'puS lup', - ss: translate, - m: 'wa’ tup', - mm: translate, - h: 'wa’ rep', - hh: translate, - d: 'wa’ jaj', - dd: translate, - M: 'wa’ jar', - MM: translate, - y: 'wa’ DIS', - yy: translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); +/** + * Define getter for `exceptions` which replaces `handleExceptions` and + * `unhandleExceptions`. + * @type {Object} + */ +Object.defineProperty(exports, "exceptions", ({ + get() { + return defaultLogger.exceptions; + } +})); + +/** + * Define getters / setters for appropriate properties of the default logger + * which need to be exposed by winston. + * @type {Logger} + */ +['exitOnError'].forEach(prop => { + Object.defineProperty(exports, prop, { + get() { + return defaultLogger[prop]; + }, + set(val) { + defaultLogger[prop] = val; + } + }); +}); - return tlh; +/** + * The default transports and exceptionHandlers for the default winston logger. + * @type {Object} + */ +Object.defineProperty(exports, "default", ({ + get() { + return { + exceptionHandlers: defaultLogger.exceptionHandlers, + rejectionHandlers: defaultLogger.rejectionHandlers, + transports: defaultLogger.transports + }; + } +})); + +// Have friendlier breakage notices for properties that were exposed by default +// on winston < 3.0. +warn.deprecated(exports, 'setLevels'); +warn.forFunctions(exports, 'useFormat', ['cli']); +warn.forProperties(exports, 'useFormat', ['padLevels', 'stripColors']); +warn.forFunctions(exports, 'deprecated', [ + 'addRewriter', + 'addFilter', + 'clone', + 'extend' +]); +warn.forProperties(exports, 'deprecated', ['emitErrs', 'levelLength']); -}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tr.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tr.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/common.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/common.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_1503461__) => { -//! moment.js locale configuration -//! locale : Turkish [tr] -//! authors : Erhan Gundogan : https://github.com/erhangundogan, -//! Burak Yiğit Kaya: https://github.com/BYK +"use strict"; +/** + * common.js: Internal helper and utility functions for winston. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - //! moment.js locale configuration - var suffixes = { - 1: "'inci", - 5: "'inci", - 8: "'inci", - 70: "'inci", - 80: "'inci", - 2: "'nci", - 7: "'nci", - 20: "'nci", - 50: "'nci", - 3: "'üncü", - 4: "'üncü", - 100: "'üncü", - 6: "'ncı", - 9: "'uncu", - 10: "'uncu", - 30: "'uncu", - 60: "'ıncı", - 90: "'ıncı", - }; +const { format } = __nested_webpack_require_1503461__(/*! util */ "util"); - var tr = moment.defineLocale('tr', { - months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split( - '_' - ), - monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'), - weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split( - '_' - ), - weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'), - weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'), - meridiem: function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'öö' : 'ÖÖ'; - } else { - return isLower ? 'ös' : 'ÖS'; - } - }, - meridiemParse: /öö|ÖÖ|ös|ÖS/, - isPM: function (input) { - return input === 'ös' || input === 'ÖS'; - }, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[bugün saat] LT', - nextDay: '[yarın saat] LT', - nextWeek: '[gelecek] dddd [saat] LT', - lastDay: '[dün] LT', - lastWeek: '[geçen] dddd [saat] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s sonra', - past: '%s önce', - s: 'birkaç saniye', - ss: '%d saniye', - m: 'bir dakika', - mm: '%d dakika', - h: 'bir saat', - hh: '%d saat', - d: 'bir gün', - dd: '%d gün', - w: 'bir hafta', - ww: '%d hafta', - M: 'bir ay', - MM: '%d ay', - y: 'bir yıl', - yy: '%d yıl', - }, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'Do': - case 'DD': - return number; - default: - if (number === 0) { - // special case for zero - return number + "'ıncı"; - } - var a = number % 10, - b = (number % 100) - a, - c = number >= 100 ? 100 : null; - return number + (suffixes[a] || suffixes[b] || suffixes[c]); - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, +/** + * Set of simple deprecation notices and a way to expose them for a set of + * properties. + * @type {Object} + * @private + */ +exports.warn = { + deprecated(prop) { + return () => { + throw new Error(format('{ %s } was removed in winston@3.0.0.', prop)); + }; + }, + useFormat(prop) { + return () => { + throw new Error([ + format('{ %s } was removed in winston@3.0.0.', prop), + 'Use a custom winston.format = winston.format(function) instead.' + ].join('\n')); + }; + }, + forFunctions(obj, type, props) { + props.forEach(prop => { + obj[prop] = exports.warn[type](prop); }); - - return tr; - -}))); + }, + forProperties(obj, type, props) { + props.forEach(prop => { + const notice = exports.warn[type](prop); + Object.defineProperty(obj, prop, { + get: notice, + set: notice + }); + }); + } +}; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzl.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzl.js ***! - \***************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/config/index.js": +/*!*********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/config/index.js ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_1504927__) => { -//! moment.js locale configuration -//! locale : Talossan [tzl] -//! author : Robin van der Vliet : https://github.com/robin0van0der0v -//! author : Iustì Canun +"use strict"; +/** + * index.js: Default settings for all levels that winston knows about. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - //! moment.js locale configuration - // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. - // This is currently too difficult (maybe even impossible) to add. - var tzl = moment.defineLocale('tzl', { - months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split( - '_' - ), - monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), - weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), - weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), - weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM [dallas] YYYY', - LLL: 'D. MMMM [dallas] YYYY HH.mm', - LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', - }, - meridiemParse: /d\'o|d\'a/i, - isPM: function (input) { - return "d'o" === input.toLowerCase(); - }, - meridiem: function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? "d'o" : "D'O"; - } else { - return isLower ? "d'a" : "D'A"; - } - }, - calendar: { - sameDay: '[oxhi à] LT', - nextDay: '[demà à] LT', - nextWeek: 'dddd [à] LT', - lastDay: '[ieiri à] LT', - lastWeek: '[sür el] dddd [lasteu à] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'osprei %s', - past: 'ja%s', - s: processRelativeTime, - ss: processRelativeTime, - m: processRelativeTime, - mm: processRelativeTime, - h: processRelativeTime, - hh: processRelativeTime, - d: processRelativeTime, - dd: processRelativeTime, - M: processRelativeTime, - MM: processRelativeTime, - y: processRelativeTime, - yy: processRelativeTime, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); +const logform = __nested_webpack_require_1504927__(/*! logform */ "./build/cht-core-4-6/api/node_modules/logform/index.js"); +const { configs } = __nested_webpack_require_1504927__(/*! triple-beam */ "./build/cht-core-4-6/api/node_modules/triple-beam/index.js"); - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - s: ['viensas secunds', "'iensas secunds"], - ss: [number + ' secunds', '' + number + ' secunds'], - m: ["'n míut", "'iens míut"], - mm: [number + ' míuts', '' + number + ' míuts'], - h: ["'n þora", "'iensa þora"], - hh: [number + ' þoras', '' + number + ' þoras'], - d: ["'n ziua", "'iensa ziua"], - dd: [number + ' ziuas', '' + number + ' ziuas'], - M: ["'n mes", "'iens mes"], - MM: [number + ' mesen', '' + number + ' mesen'], - y: ["'n ar", "'iens ar"], - yy: [number + ' ars', '' + number + ' ars'], - }; - return isFuture - ? format[key][0] - : withoutSuffix - ? format[key][0] - : format[key][1]; - } +/** + * Export config set for the CLI. + * @type {Object} + */ +exports.cli = logform.levels(configs.cli); - return tzl; +/** + * Export config set for npm. + * @type {Object} + */ +exports.npm = logform.levels(configs.npm); -}))); +/** + * Export config set for the syslog. + * @type {Object} + */ +exports.syslog = logform.levels(configs.syslog); + +/** + * Hoist addColors from logform where it was refactored into in winston@3. + * @type {Object} + */ +exports.addColors = logform.levels; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzm-latn.js": -/*!********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzm-latn.js ***! - \********************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/container.js": +/*!******************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/container.js ***! + \******************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1506169__) => { -//! moment.js locale configuration -//! locale : Central Atlas Tamazight Latin [tzm-latn] -//! author : Abdel Said : https://github.com/abdelsaid +"use strict"; +/** + * container.js: Inversion of control container for winston logger instances. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - //! moment.js locale configuration - var tzmLatn = moment.defineLocale('tzm-latn', { - months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( - '_' - ), - monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( - '_' - ), - weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), - weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), - weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[asdkh g] LT', - nextDay: '[aska g] LT', - nextWeek: 'dddd [g] LT', - lastDay: '[assant g] LT', - lastWeek: 'dddd [g] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dadkh s yan %s', - past: 'yan %s', - s: 'imik', - ss: '%d imik', - m: 'minuḍ', - mm: '%d minuḍ', - h: 'saɛa', - hh: '%d tassaɛin', - d: 'ass', - dd: '%d ossan', - M: 'ayowr', - MM: '%d iyyirn', - y: 'asgas', - yy: '%d isgasn', - }, - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); +const createLogger = __nested_webpack_require_1506169__(/*! ./create-logger */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/create-logger.js"); - return tzmLatn; +/** + * Inversion of control container for winston logger instances. + * @type {Container} + */ +module.exports = class Container { + /** + * Constructor function for the Container object responsible for managing a + * set of `winston.Logger` instances based on string ids. + * @param {!Object} [options={}] - Default pass-thru options for Loggers. + */ + constructor(options = {}) { + this.loggers = new Map(); + this.options = options; + } -}))); + /** + * Retrieves a `winston.Logger` instance for the specified `id`. If an + * instance does not exist, one is created. + * @param {!string} id - The id of the Logger to get. + * @param {?Object} [options] - Options for the Logger instance. + * @returns {Logger} - A configured Logger instance with a specified id. + */ + add(id, options) { + if (!this.loggers.has(id)) { + // Remark: Simple shallow clone for configuration options in case we pass + // in instantiated protoypal objects + options = Object.assign({}, options || this.options); + const existing = options.transports || this.options.transports; + // Remark: Make sure if we have an array of transports we slice it to + // make copies of those references. + if (existing) { + options.transports = Array.isArray(existing) ? existing.slice() : [existing]; + } else { + options.transports = []; + } -/***/ }), + const logger = createLogger(options); + logger.on('close', () => this._delete(id)); + this.loggers.set(id, logger); + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzm.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzm.js ***! - \***************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + return this.loggers.get(id); + } -//! moment.js locale configuration -//! locale : Central Atlas Tamazight [tzm] -//! author : Abdel Said : https://github.com/abdelsaid + /** + * Retreives a `winston.Logger` instance for the specified `id`. If + * an instance does not exist, one is created. + * @param {!string} id - The id of the Logger to get. + * @param {?Object} [options] - Options for the Logger instance. + * @returns {Logger} - A configured Logger instance with a specified id. + */ + get(id, options) { + return this.add(id, options); + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + /** + * Check if the container has a logger with the id. + * @param {?string} id - The id of the Logger instance to find. + * @returns {boolean} - Boolean value indicating if this instance has a + * logger with the specified `id`. + */ + has(id) { + return !!this.loggers.has(id); + } - //! moment.js locale configuration + /** + * Closes a `Logger` instance with the specified `id` if it exists. + * If no `id` is supplied then all Loggers are closed. + * @param {?string} id - The id of the Logger instance to close. + * @returns {undefined} + */ + close(id) { + if (id) { + return this._removeLogger(id); + } - var tzm = moment.defineLocale('tzm', { - months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( - '_' - ), - monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( - '_' - ), - weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[ⴰⵙⴷⵅ ⴴ] LT', - nextDay: '[ⴰⵙⴽⴰ ⴴ] LT', - nextWeek: 'dddd [ⴴ] LT', - lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT', - lastWeek: 'dddd [ⴴ] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s', - past: 'ⵢⴰⵏ %s', - s: 'ⵉⵎⵉⴽ', - ss: '%d ⵉⵎⵉⴽ', - m: 'ⵎⵉⵏⵓⴺ', - mm: '%d ⵎⵉⵏⵓⴺ', - h: 'ⵙⴰⵄⴰ', - hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ', - d: 'ⴰⵙⵙ', - dd: '%d oⵙⵙⴰⵏ', - M: 'ⴰⵢoⵓⵔ', - MM: '%d ⵉⵢⵢⵉⵔⵏ', - y: 'ⴰⵙⴳⴰⵙ', - yy: '%d ⵉⵙⴳⴰⵙⵏ', - }, - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); + this.loggers.forEach((val, key) => this._removeLogger(key)); + } + + /** + * Remove a logger based on the id. + * @param {!string} id - The id of the logger to remove. + * @returns {undefined} + * @private + */ + _removeLogger(id) { + if (!this.loggers.has(id)) { + return; + } - return tzm; + const logger = this.loggers.get(id); + logger.close(); + this._delete(id); + } -}))); + /** + * Deletes a `Logger` instance with the specified `id`. + * @param {!string} id - The id of the Logger instance to delete from + * container. + * @returns {undefined} + * @private + */ + _delete(id) { + this.loggers.delete(id); + } +}; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ug-cn.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ug-cn.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -//! moment.js locale configuration -//! locale : Uyghur (China) [ug-cn] -//! author: boyaq : https://github.com/boyaq +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/create-logger.js": +/*!**********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/create-logger.js ***! + \**********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1510054__) => { -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +"use strict"; +/** + * create-logger.js: Logger factory for winston logger instances. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ - //! moment.js locale configuration - var ugCn = moment.defineLocale('ug-cn', { - months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( - '_' - ), - monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( - '_' - ), - weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split( - '_' - ), - weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), - weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى', - LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', - LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', - }, - meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ( - meridiem === 'يېرىم كېچە' || - meridiem === 'سەھەر' || - meridiem === 'چۈشتىن بۇرۇن' - ) { - return hour; - } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') { - return hour + 12; - } else { - return hour >= 11 ? hour : hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return 'يېرىم كېچە'; - } else if (hm < 900) { - return 'سەھەر'; - } else if (hm < 1130) { - return 'چۈشتىن بۇرۇن'; - } else if (hm < 1230) { - return 'چۈش'; - } else if (hm < 1800) { - return 'چۈشتىن كېيىن'; - } else { - return 'كەچ'; - } - }, - calendar: { - sameDay: '[بۈگۈن سائەت] LT', - nextDay: '[ئەتە سائەت] LT', - nextWeek: '[كېلەركى] dddd [سائەت] LT', - lastDay: '[تۆنۈگۈن] LT', - lastWeek: '[ئالدىنقى] dddd [سائەت] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s كېيىن', - past: '%s بۇرۇن', - s: 'نەچچە سېكونت', - ss: '%d سېكونت', - m: 'بىر مىنۇت', - mm: '%d مىنۇت', - h: 'بىر سائەت', - hh: '%d سائەت', - d: 'بىر كۈن', - dd: '%d كۈن', - M: 'بىر ئاي', - MM: '%d ئاي', - y: 'بىر يىل', - yy: '%d يىل', - }, - dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '-كۈنى'; - case 'w': - case 'W': - return number + '-ھەپتە'; - default: - return number; - } - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week: { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 1st is the first week of the year. - }, - }); +const { LEVEL } = __nested_webpack_require_1510054__(/*! triple-beam */ "./build/cht-core-4-6/api/node_modules/triple-beam/index.js"); +const config = __nested_webpack_require_1510054__(/*! ./config */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/config/index.js"); +const Logger = __nested_webpack_require_1510054__(/*! ./logger */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/logger.js"); +const debug = __nested_webpack_require_1510054__(/*! @dabh/diagnostics */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/index.js")('winston:create-logger'); - return ugCn; +function isLevelEnabledFunctionName(level) { + return 'is' + level.charAt(0).toUpperCase() + level.slice(1) + 'Enabled'; +} -}))); +/** + * Create a new instance of a winston Logger. Creates a new + * prototype for each instance. + * @param {!Object} opts - Options for the created logger. + * @returns {Logger} - A newly created logger instance. + */ +module.exports = function (opts = {}) { + // + // Default levels: npm + // + opts.levels = opts.levels || config.npm.levels; + /** + * DerivedLogger to attach the logs level methods. + * @type {DerivedLogger} + * @extends {Logger} + */ + class DerivedLogger extends Logger { + /** + * Create a new class derived logger for which the levels can be attached to + * the prototype of. This is a V8 optimization that is well know to increase + * performance of prototype functions. + * @param {!Object} options - Options for the created logger. + */ + constructor(options) { + super(options); + } + } -/***/ }), + const logger = new DerivedLogger(opts); -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uk.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uk.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + // + // Create the log level methods for the derived logger. + // + Object.keys(opts.levels).forEach(function (level) { + debug('Define prototype method for "%s"', level); + if (level === 'log') { + // eslint-disable-next-line no-console + console.warn('Level "log" not defined: conflicts with the method "log". Use a different level name.'); + return; + } -//! moment.js locale configuration -//! locale : Ukrainian [uk] -//! author : zemlanin : https://github.com/zemlanin -//! Author : Menelion Elensúle : https://github.com/Oire + // + // Define prototype methods for each log level e.g.: + // logger.log('info', msg) implies these methods are defined: + // - logger.info(msg) + // - logger.isInfoEnabled() + // + // Remark: to support logger.child this **MUST** be a function + // so it'll always be called on the instance instead of a fixed + // place in the prototype chain. + // + DerivedLogger.prototype[level] = function (...args) { + // Prefer any instance scope, but default to "root" logger + const self = this || logger; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // Optimize the hot-path which is the single object. + if (args.length === 1) { + const [msg] = args; + const info = msg && msg.message && msg || { message: msg }; + info.level = info[LEVEL] = level; + self._addDefaultMeta(info); + self.write(info); + return (this || logger); + } - //! moment.js locale configuration + // When provided nothing assume the empty string + if (args.length === 0) { + self.log(level, ''); + return self; + } - function plural(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 - ? forms[0] - : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) - ? forms[1] - : forms[2]; - } - function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд', - mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', - hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин', - dd: 'день_дні_днів', - MM: 'місяць_місяці_місяців', - yy: 'рік_роки_років', - }; - if (key === 'm') { - return withoutSuffix ? 'хвилина' : 'хвилину'; - } else if (key === 'h') { - return withoutSuffix ? 'година' : 'годину'; - } else { - return number + ' ' + plural(format[key], +number); - } - } - function weekdaysCaseReplace(m, format) { - var weekdays = { - nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split( - '_' - ), - accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split( - '_' - ), - genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split( - '_' - ), - }, - nounCase; + // Otherwise build argument list which could potentially conform to + // either: + // . v3 API: log(obj) + // 2. v1/v2 API: log(level, msg, ... [string interpolate], [{metadata}], [callback]) + return self.log(level, ...args); + }; - if (m === true) { - return weekdays['nominative'] - .slice(1, 7) - .concat(weekdays['nominative'].slice(0, 1)); - } - if (!m) { - return weekdays['nominative']; - } + DerivedLogger.prototype[isLevelEnabledFunctionName(level)] = function () { + return (this || logger).isLevelEnabled(level); + }; + }); - nounCase = /(\[[ВвУу]\]) ?dddd/.test(format) - ? 'accusative' - : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format) - ? 'genitive' - : 'nominative'; - return weekdays[nounCase][m.day()]; - } - function processHoursFunction(str) { - return function () { - return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; - }; - } + return logger; +}; - var uk = moment.defineLocale('uk', { - months: { - format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split( - '_' - ), - standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split( - '_' - ), - }, - monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split( - '_' - ), - weekdays: weekdaysCaseReplace, - weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY р.', - LLL: 'D MMMM YYYY р., HH:mm', - LLLL: 'dddd, D MMMM YYYY р., HH:mm', - }, - calendar: { - sameDay: processHoursFunction('[Сьогодні '), - nextDay: processHoursFunction('[Завтра '), - lastDay: processHoursFunction('[Вчора '), - nextWeek: processHoursFunction('[У] dddd ['), - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 5: - case 6: - return processHoursFunction('[Минулої] dddd [').call(this); - case 1: - case 2: - case 4: - return processHoursFunction('[Минулого] dddd [').call(this); - } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'за %s', - past: '%s тому', - s: 'декілька секунд', - ss: relativeTimeWithPlural, - m: relativeTimeWithPlural, - mm: relativeTimeWithPlural, - h: 'годину', - hh: relativeTimeWithPlural, - d: 'день', - dd: relativeTimeWithPlural, - M: 'місяць', - MM: relativeTimeWithPlural, - y: 'рік', - yy: relativeTimeWithPlural, - }, - // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason - meridiemParse: /ночі|ранку|дня|вечора/, - isPM: function (input) { - return /^(дня|вечора)$/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'ночі'; - } else if (hour < 12) { - return 'ранку'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечора'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - case 'w': - case 'W': - return number + '-й'; - case 'D': - return number + '-го'; - default: - return number; - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - return uk; +/***/ }), -}))); +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-handler.js": +/*!**************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-handler.js ***! + \**************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1513987__) => { +"use strict"; +/** + * exception-handler.js: Object for handling uncaughtException events. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ -/***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ur.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ur.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { -//! moment.js locale configuration -//! locale : Urdu [ur] -//! author : Sawood Alam : https://github.com/ibnesayeed -//! author : Zack : https://github.com/ZackVision +const os = __nested_webpack_require_1513987__(/*! os */ "os"); +const asyncForEach = __nested_webpack_require_1513987__(/*! async/forEach */ "./build/cht-core-4-6/api/node_modules/async/forEach.js"); +const debug = __nested_webpack_require_1513987__(/*! @dabh/diagnostics */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/index.js")('winston:exception'); +const once = __nested_webpack_require_1513987__(/*! one-time */ "./build/cht-core-4-6/api/node_modules/one-time/index.js"); +const stackTrace = __nested_webpack_require_1513987__(/*! stack-trace */ "./build/cht-core-4-6/api/node_modules/stack-trace/lib/stack-trace.js"); +const ExceptionStream = __nested_webpack_require_1513987__(/*! ./exception-stream */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-stream.js"); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +/** + * Object for handling uncaughtException events. + * @type {ExceptionHandler} + */ +module.exports = class ExceptionHandler { + /** + * TODO: add contructor description + * @param {!Logger} logger - TODO: add param description + */ + constructor(logger) { + if (!logger) { + throw new Error('Logger is required to handle exceptions'); + } - //! moment.js locale configuration + this.logger = logger; + this.handlers = new Map(); + } - var months = [ - 'جنوری', - 'فروری', - 'مارچ', - 'اپریل', - 'مئی', - 'جون', - 'جولائی', - 'اگست', - 'ستمبر', - 'اکتوبر', - 'نومبر', - 'دسمبر', - ], - days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ']; + /** + * Handles `uncaughtException` events for the current process by adding any + * handlers passed in. + * @returns {undefined} + */ + handle(...args) { + args.forEach(arg => { + if (Array.isArray(arg)) { + return arg.forEach(handler => this._addHandler(handler)); + } - var ur = moment.defineLocale('ur', { - months: months, - monthsShort: months, - weekdays: days, - weekdaysShort: days, - weekdaysMin: days, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd، D MMMM YYYY HH:mm', - }, - meridiemParse: /صبح|شام/, - isPM: function (input) { - return 'شام' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'صبح'; - } - return 'شام'; - }, - calendar: { - sameDay: '[آج بوقت] LT', - nextDay: '[کل بوقت] LT', - nextWeek: 'dddd [بوقت] LT', - lastDay: '[گذشتہ روز بوقت] LT', - lastWeek: '[گذشتہ] dddd [بوقت] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s بعد', - past: '%s قبل', - s: 'چند سیکنڈ', - ss: '%d سیکنڈ', - m: 'ایک منٹ', - mm: '%d منٹ', - h: 'ایک گھنٹہ', - hh: '%d گھنٹے', - d: 'ایک دن', - dd: '%d دن', - M: 'ایک ماہ', - MM: '%d ماہ', - y: 'ایک سال', - yy: '%d سال', - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, + this._addHandler(arg); }); - return ur; + if (!this.catcher) { + this.catcher = this._uncaughtException.bind(this); + process.on('uncaughtException', this.catcher); + } + } + + /** + * Removes any handlers to `uncaughtException` events for the current + * process. This does not modify the state of the `this.handlers` set. + * @returns {undefined} + */ + unhandle() { + if (this.catcher) { + process.removeListener('uncaughtException', this.catcher); + this.catcher = false; + + Array.from(this.handlers.values()) + .forEach(wrapper => this.logger.unpipe(wrapper)); + } + } -}))); + /** + * TODO: add method description + * @param {Error} err - Error to get information about. + * @returns {mixed} - TODO: add return description. + */ + getAllInfo(err) { + let message = null; + if (err) { + message = typeof err === 'string' ? err : err.message; + } + return { + error: err, + // TODO (indexzero): how do we configure this? + level: 'error', + message: [ + `uncaughtException: ${(message || '(no error message)')}`, + err && err.stack || ' No stack trace' + ].join('\n'), + stack: err && err.stack, + exception: true, + date: new Date().toString(), + process: this.getProcessInfo(), + os: this.getOsInfo(), + trace: this.getTrace(err) + }; + } -/***/ }), + /** + * Gets all relevant process information for the currently running process. + * @returns {mixed} - TODO: add return description. + */ + getProcessInfo() { + return { + pid: process.pid, + uid: process.getuid ? process.getuid() : null, + gid: process.getgid ? process.getgid() : null, + cwd: process.cwd(), + execPath: process.execPath, + version: process.version, + argv: process.argv, + memoryUsage: process.memoryUsage() + }; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uz-latn.js": -/*!*******************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uz-latn.js ***! - \*******************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + /** + * Gets all relevant OS information for the currently running process. + * @returns {mixed} - TODO: add return description. + */ + getOsInfo() { + return { + loadavg: os.loadavg(), + uptime: os.uptime() + }; + } -//! moment.js locale configuration -//! locale : Uzbek Latin [uz-latn] -//! author : Rasulbek Mirzayev : github.com/Rasulbeeek + /** + * Gets a stack trace for the specified error. + * @param {mixed} err - TODO: add param description. + * @returns {mixed} - TODO: add return description. + */ + getTrace(err) { + const trace = err ? stackTrace.parse(err) : stackTrace.get(); + return trace.map(site => { + return { + column: site.getColumnNumber(), + file: site.getFileName(), + function: site.getFunctionName(), + line: site.getLineNumber(), + method: site.getMethodName(), + native: site.isNative() + }; + }); + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + /** + * Helper method to add a transport as an exception handler. + * @param {Transport} handler - The transport to add as an exception handler. + * @returns {void} + */ + _addHandler(handler) { + if (!this.handlers.has(handler)) { + handler.handleExceptions = true; + const wrapper = new ExceptionStream(handler); + this.handlers.set(handler, wrapper); + this.logger.pipe(wrapper); + } + } - //! moment.js locale configuration + /** + * Logs all relevant information around the `err` and exits the current + * process. + * @param {Error} err - Error to handle + * @returns {mixed} - TODO: add return description. + * @private + */ + _uncaughtException(err) { + const info = this.getAllInfo(err); + const handlers = this._getExceptionHandlers(); + // Calculate if we should exit on this error + let doExit = typeof this.logger.exitOnError === 'function' + ? this.logger.exitOnError(err) + : this.logger.exitOnError; + let timeout; - var uzLatn = moment.defineLocale('uz-latn', { - months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( - '_' - ), - monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), - weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( - '_' - ), - weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), - weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'D MMMM YYYY, dddd HH:mm', - }, - calendar: { - sameDay: '[Bugun soat] LT [da]', - nextDay: '[Ertaga] LT [da]', - nextWeek: 'dddd [kuni soat] LT [da]', - lastDay: '[Kecha soat] LT [da]', - lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", - sameElse: 'L', - }, - relativeTime: { - future: 'Yaqin %s ichida', - past: 'Bir necha %s oldin', - s: 'soniya', - ss: '%d soniya', - m: 'bir daqiqa', - mm: '%d daqiqa', - h: 'bir soat', - hh: '%d soat', - d: 'bir kun', - dd: '%d kun', - M: 'bir oy', - MM: '%d oy', - y: 'bir yil', - yy: '%d yil', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); + if (!handlers.length && doExit) { + // eslint-disable-next-line no-console + console.warn('winston: exitOnError cannot be true with no exception handlers.'); + // eslint-disable-next-line no-console + console.warn('winston: not exiting process.'); + doExit = false; + } - return uzLatn; + function gracefulExit() { + debug('doExit', doExit); + debug('process._exiting', process._exiting); -}))); + if (doExit && !process._exiting) { + // Remark: Currently ignoring any exceptions from transports when + // catching uncaught exceptions. + if (timeout) { + clearTimeout(timeout); + } + // eslint-disable-next-line no-process-exit + process.exit(1); + } + } + if (!handlers || handlers.length === 0) { + return process.nextTick(gracefulExit); + } -/***/ }), + // Log to all transports attempting to listen for when they are completed. + asyncForEach(handlers, (handler, next) => { + const done = once(next); + const transport = handler.transport || handler; -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uz.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uz.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + // Debug wrapping so that we can inspect what's going on under the covers. + function onDone(event) { + return () => { + debug(event); + done(); + }; + } -//! moment.js locale configuration -//! locale : Uzbek [uz] -//! author : Sardor Muminov : https://github.com/muminoff + transport._ending = true; + transport.once('finish', onDone('finished')); + transport.once('error', onDone('error')); + }, () => doExit && gracefulExit()); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + this.logger.log(info); - //! moment.js locale configuration + // If exitOnError is true, then only allow the logging of exceptions to + // take up to `3000ms`. + if (doExit) { + timeout = setTimeout(gracefulExit, 3000); + } + } - var uz = moment.defineLocale('uz', { - months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( - '_' - ), - monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), - weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), - weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), - weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'D MMMM YYYY, dddd HH:mm', - }, - calendar: { - sameDay: '[Бугун соат] LT [да]', - nextDay: '[Эртага] LT [да]', - nextWeek: 'dddd [куни соат] LT [да]', - lastDay: '[Кеча соат] LT [да]', - lastWeek: '[Утган] dddd [куни соат] LT [да]', - sameElse: 'L', - }, - relativeTime: { - future: 'Якин %s ичида', - past: 'Бир неча %s олдин', - s: 'фурсат', - ss: '%d фурсат', - m: 'бир дакика', - mm: '%d дакика', - h: 'бир соат', - hh: '%d соат', - d: 'бир кун', - dd: '%d кун', - M: 'бир ой', - MM: '%d ой', - y: 'бир йил', - yy: '%d йил', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 4th is the first week of the year. - }, + /** + * Returns the list of transports and exceptionHandlers for this instance. + * @returns {Array} - List of transports and exceptionHandlers for this + * instance. + * @private + */ + _getExceptionHandlers() { + // Remark (indexzero): since `logger.transports` returns all of the pipes + // from the _readableState of the stream we actually get the join of the + // explicit handlers and the implicit transports with + // `handleExceptions: true` + return this.logger.transports.filter(wrap => { + const transport = wrap.transport || wrap; + return transport.handleExceptions; }); + } +}; - return uz; -}))); +/***/ }), +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-stream.js": +/*!*************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-stream.js ***! + \*************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1521783__) => { -/***/ }), +"use strict"; +/** + * exception-stream.js: TODO: add file header handler. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/vi.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/vi.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { -//! moment.js locale configuration -//! locale : Vietnamese [vi] -//! author : Bang Nguyen : https://github.com/bangnk -//! author : Chien Kira : https://github.com/chienkira -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; +const { Writable } = __nested_webpack_require_1521783__(/*! readable-stream */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js"); - //! moment.js locale configuration +/** + * TODO: add class description. + * @type {ExceptionStream} + * @extends {Writable} + */ +module.exports = class ExceptionStream extends Writable { + /** + * Constructor function for the ExceptionStream responsible for wrapping a + * TransportStream; only allowing writes of `info` objects with + * `info.exception` set to true. + * @param {!TransportStream} transport - Stream to filter to exceptions + */ + constructor(transport) { + super({ objectMode: true }); - var vi = moment.defineLocale('vi', { - months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split( - '_' - ), - monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split( - '_' - ), - weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), - weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), - weekdaysParseExact: true, - meridiemParse: /sa|ch/i, - isPM: function (input) { - return /^ch$/i.test(input); - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'sa' : 'SA'; - } else { - return isLower ? 'ch' : 'CH'; - } - }, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM [năm] YYYY', - LLL: 'D MMMM [năm] YYYY HH:mm', - LLLL: 'dddd, D MMMM [năm] YYYY HH:mm', - l: 'DD/M/YYYY', - ll: 'D MMM YYYY', - lll: 'D MMM YYYY HH:mm', - llll: 'ddd, D MMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Hôm nay lúc] LT', - nextDay: '[Ngày mai lúc] LT', - nextWeek: 'dddd [tuần tới lúc] LT', - lastDay: '[Hôm qua lúc] LT', - lastWeek: 'dddd [tuần trước lúc] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s tới', - past: '%s trước', - s: 'vài giây', - ss: '%d giây', - m: 'một phút', - mm: '%d phút', - h: 'một giờ', - hh: '%d giờ', - d: 'một ngày', - dd: '%d ngày', - w: 'một tuần', - ww: '%d tuần', - M: 'một tháng', - MM: '%d tháng', - y: 'một năm', - yy: '%d năm', - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal: function (number) { - return number; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + if (!transport) { + throw new Error('ExceptionStream requires a TransportStream instance.'); + } - return vi; + // Remark (indexzero): we set `handleExceptions` here because it's the + // predicate checked in ExceptionHandler.prototype.__getExceptionHandlers + this.handleExceptions = true; + this.transport = transport; + } -}))); + /** + * Writes the info object to our transport instance if (and only if) the + * `exception` property is set on the info. + * @param {mixed} info - TODO: add param description. + * @param {mixed} enc - TODO: add param description. + * @param {mixed} callback - TODO: add param description. + * @returns {mixed} - TODO: add return description. + * @private + */ + _write(info, enc, callback) { + if (info.exception) { + return this.transport.log(info, callback); + } + + callback(); + return true; + } +}; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/x-pseudo.js": -/*!********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/x-pseudo.js ***! - \********************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/logger.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/logger.js ***! + \***************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1523797__) => { -//! moment.js locale configuration -//! locale : Pseudo [x-pseudo] -//! author : Andrew Hood : https://github.com/andrewhood125 +"use strict"; +/** + * logger.js: TODO: add file header description. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - //! moment.js locale configuration - var xPseudo = moment.defineLocale('x-pseudo', { - months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split( - '_' - ), - monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split( - '_' - ), - weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'), - weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[T~ódá~ý át] LT', - nextDay: '[T~ómó~rró~w át] LT', - nextWeek: 'dddd [át] LT', - lastDay: '[Ý~ést~érdá~ý át] LT', - lastWeek: '[L~ást] dddd [át] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'í~ñ %s', - past: '%s á~gó', - s: 'á ~féw ~sécó~ñds', - ss: '%d s~écóñ~ds', - m: 'á ~míñ~úté', - mm: '%d m~íñú~tés', - h: 'á~ñ hó~úr', - hh: '%d h~óúrs', - d: 'á ~dáý', - dd: '%d d~áýs', - M: 'á ~móñ~th', - MM: '%d m~óñt~hs', - y: 'á ~ýéár', - yy: '%d ý~éárs', - }, - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); +const { Stream, Transform } = __nested_webpack_require_1523797__(/*! readable-stream */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js"); +const asyncForEach = __nested_webpack_require_1523797__(/*! async/forEach */ "./build/cht-core-4-6/api/node_modules/async/forEach.js"); +const { LEVEL, SPLAT } = __nested_webpack_require_1523797__(/*! triple-beam */ "./build/cht-core-4-6/api/node_modules/triple-beam/index.js"); +const isStream = __nested_webpack_require_1523797__(/*! is-stream */ "./build/cht-core-4-6/api/node_modules/is-stream/index.js"); +const ExceptionHandler = __nested_webpack_require_1523797__(/*! ./exception-handler */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-handler.js"); +const RejectionHandler = __nested_webpack_require_1523797__(/*! ./rejection-handler */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/rejection-handler.js"); +const LegacyTransportStream = __nested_webpack_require_1523797__(/*! winston-transport/legacy */ "./build/cht-core-4-6/api/node_modules/winston-transport/legacy.js"); +const Profiler = __nested_webpack_require_1523797__(/*! ./profiler */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/profiler.js"); +const { warn } = __nested_webpack_require_1523797__(/*! ./common */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/common.js"); +const config = __nested_webpack_require_1523797__(/*! ./config */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/config/index.js"); - return xPseudo; +/** + * Captures the number of format (i.e. %s strings) in a given string. + * Based on `util.format`, see Node.js source: + * https://github.com/nodejs/node/blob/b1c8f15c5f169e021f7c46eb7b219de95fe97603/lib/util.js#L201-L230 + * @type {RegExp} + */ +const formatRegExp = /%[scdjifoO%]/g; -}))); +/** + * TODO: add class description. + * @type {Logger} + * @extends {Transform} + */ +class Logger extends Transform { + /** + * Constructor function for the Logger object responsible for persisting log + * messages and metadata to one or more transports. + * @param {!Object} options - foo + */ + constructor(options) { + super({ objectMode: true }); + this.configure(options); + } + child(defaultRequestMetadata) { + const logger = this; + return Object.create(logger, { + write: { + value: function (info) { + const infoClone = Object.assign( + {}, + defaultRequestMetadata, + info + ); -/***/ }), + // Object.assign doesn't copy inherited Error + // properties so we have to do that explicitly + // + // Remark (indexzero): we should remove this + // since the errors format will handle this case. + // + if (info instanceof Error) { + infoClone.stack = info.stack; + infoClone.message = info.message; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/yo.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/yo.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + logger.write(infoClone); + } + } + }); + } -//! moment.js locale configuration -//! locale : Yoruba Nigeria [yo] -//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe + /** + * This will wholesale reconfigure this instance by: + * 1. Resetting all transports. Older transports will be removed implicitly. + * 2. Set all other options including levels, colors, rewriters, filters, + * exceptionHandlers, etc. + * @param {!Object} options - TODO: add param description. + * @returns {undefined} + */ + configure({ + silent, + format, + defaultMeta, + levels, + level = 'info', + exitOnError = true, + transports, + colors, + emitErrs, + formatters, + padLevels, + rewriters, + stripColors, + exceptionHandlers, + rejectionHandlers + } = {}) { + // Reset transports if we already have them + if (this.transports.length) { + this.clear(); + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + this.silent = silent; + this.format = format || this.format || __nested_webpack_require_1523797__(/*! logform/json */ "./build/cht-core-4-6/api/node_modules/logform/json.js")(); - //! moment.js locale configuration + this.defaultMeta = defaultMeta || null; + // Hoist other options onto this instance. + this.levels = levels || this.levels || config.npm.levels; + this.level = level; + if (this.exceptions) { + this.exceptions.unhandle(); + } + if (this.rejections) { + this.rejections.unhandle(); + } + this.exceptions = new ExceptionHandler(this); + this.rejections = new RejectionHandler(this); + this.profilers = {}; + this.exitOnError = exitOnError; - var yo = moment.defineLocale('yo', { - months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split( - '_' - ), - monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), - weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), - weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), - weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendar: { - sameDay: '[Ònì ni] LT', - nextDay: '[Ọ̀la ni] LT', - nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT", - lastDay: '[Àna ni] LT', - lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'ní %s', - past: '%s kọjá', - s: 'ìsẹjú aayá die', - ss: 'aayá %d', - m: 'ìsẹjú kan', - mm: 'ìsẹjú %d', - h: 'wákati kan', - hh: 'wákati %d', - d: 'ọjọ́ kan', - dd: 'ọjọ́ %d', - M: 'osù kan', - MM: 'osù %d', - y: 'ọdún kan', - yy: 'ọdún %d', - }, - dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/, - ordinal: 'ọjọ́ %d', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + // Add all transports we have been provided. + if (transports) { + transports = Array.isArray(transports) ? transports : [transports]; + transports.forEach(transport => this.add(transport)); + } - return yo; + if ( + colors || + emitErrs || + formatters || + padLevels || + rewriters || + stripColors + ) { + throw new Error( + [ + '{ colors, emitErrs, formatters, padLevels, rewriters, stripColors } were removed in winston@3.0.0.', + 'Use a custom winston.format(function) instead.', + 'See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md' + ].join('\n') + ); + } -}))); + if (exceptionHandlers) { + this.exceptions.handle(exceptionHandlers); + } + if (rejectionHandlers) { + this.rejections.handle(rejectionHandlers); + } + } + isLevelEnabled(level) { + const givenLevelValue = getLevelValue(this.levels, level); + if (givenLevelValue === null) { + return false; + } -/***/ }), + const configuredLevelValue = getLevelValue(this.levels, this.level); + if (configuredLevelValue === null) { + return false; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-cn.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-cn.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + if (!this.transports || this.transports.length === 0) { + return configuredLevelValue >= givenLevelValue; + } -//! moment.js locale configuration -//! locale : Chinese (China) [zh-cn] -//! author : suupic : https://github.com/suupic -//! author : Zeno Zeng : https://github.com/zenozeng -//! author : uu109 : https://github.com/uu109 + const index = this.transports.findIndex(transport => { + let transportLevelValue = getLevelValue(this.levels, transport.level); + if (transportLevelValue === null) { + transportLevelValue = configuredLevelValue; + } + return transportLevelValue >= givenLevelValue; + }); + return index !== -1; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + /* eslint-disable valid-jsdoc */ + /** + * Ensure backwards compatibility with a `log` method + * @param {mixed} level - Level the log message is written at. + * @param {mixed} msg - TODO: add param description. + * @param {mixed} meta - TODO: add param description. + * @returns {Logger} - TODO: add return description. + * + * @example + * // Supports the existing API: + * logger.log('info', 'Hello world', { custom: true }); + * logger.log('info', new Error('Yo, it\'s on fire')); + * + * // Requires winston.format.splat() + * logger.log('info', '%s %d%%', 'A string', 50, { thisIsMeta: true }); + * + * // And the new API with a single JSON literal: + * logger.log({ level: 'info', message: 'Hello world', custom: true }); + * logger.log({ level: 'info', message: new Error('Yo, it\'s on fire') }); + * + * // Also requires winston.format.splat() + * logger.log({ + * level: 'info', + * message: '%s %d%%', + * [SPLAT]: ['A string', 50], + * meta: { thisIsMeta: true } + * }); + * + */ + /* eslint-enable valid-jsdoc */ + log(level, msg, ...splat) { + // eslint-disable-line max-params + // Optimize for the hotpath of logging JSON literals + if (arguments.length === 1) { + // Yo dawg, I heard you like levels ... seriously ... + // In this context the LHS `level` here is actually the `info` so read + // this as: info[LEVEL] = info.level; + level[LEVEL] = level.level; + this._addDefaultMeta(level); + this.write(level); + return this; + } - //! moment.js locale configuration + // Slightly less hotpath, but worth optimizing for. + if (arguments.length === 2) { + if (msg && typeof msg === 'object') { + msg[LEVEL] = msg.level = level; + this._addDefaultMeta(msg); + this.write(msg); + return this; + } - var zhCn = moment.defineLocale('zh-cn', { - months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( - '_' - ), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( - '_' - ), - weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'), - weekdaysMin: '日_一_二_三_四_五_六'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日Ah点mm分', - LLLL: 'YYYY年M月D日ddddAh点mm分', - l: 'YYYY/M/D', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日dddd HH:mm', - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } else { - // '中午' - return hour >= 11 ? hour : hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar: { - sameDay: '[今天]LT', - nextDay: '[明天]LT', - nextWeek: function (now) { - if (now.week() !== this.week()) { - return '[下]dddLT'; - } else { - return '[本]dddLT'; - } - }, - lastDay: '[昨天]LT', - lastWeek: function (now) { - if (this.week() !== now.week()) { - return '[上]dddLT'; - } else { - return '[本]dddLT'; - } - }, - sameElse: 'L', - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '周'; - default: - return number; - } - }, - relativeTime: { - future: '%s后', - past: '%s前', - s: '几秒', - ss: '%d 秒', - m: '1 分钟', - mm: '%d 分钟', - h: '1 小时', - hh: '%d 小时', - d: '1 天', - dd: '%d 天', - w: '1 周', - ww: '%d 周', - M: '1 个月', - MM: '%d 个月', - y: '1 年', - yy: '%d 年', - }, - week: { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + msg = { [LEVEL]: level, level, message: msg }; + this._addDefaultMeta(msg); + this.write(msg); + return this; + } - return zhCn; + const [meta] = splat; + if (typeof meta === 'object' && meta !== null) { + // Extract tokens, if none available default to empty array to + // ensure consistancy in expected results + const tokens = msg && msg.match && msg.match(formatRegExp); -}))); + if (!tokens) { + const info = Object.assign({}, this.defaultMeta, meta, { + [LEVEL]: level, + [SPLAT]: splat, + level, + message: msg + }); + if (meta.message) info.message = `${info.message} ${meta.message}`; + if (meta.stack) info.stack = meta.stack; -/***/ }), + this.write(info); + return this; + } + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-hk.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-hk.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + this.write(Object.assign({}, this.defaultMeta, { + [LEVEL]: level, + [SPLAT]: splat, + level, + message: msg + })); -//! moment.js locale configuration -//! locale : Chinese (Hong Kong) [zh-hk] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris -//! author : Konstantin : https://github.com/skfd -//! author : Anthony : https://github.com/anthonylau + return this; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + /** + * Pushes data so that it can be picked up by all of our pipe targets. + * @param {mixed} info - TODO: add param description. + * @param {mixed} enc - TODO: add param description. + * @param {mixed} callback - Continues stream processing. + * @returns {undefined} + * @private + */ + _transform(info, enc, callback) { + if (this.silent) { + return callback(); + } - //! moment.js locale configuration + // [LEVEL] is only soft guaranteed to be set here since we are a proper + // stream. It is likely that `info` came in through `.log(info)` or + // `.info(info)`. If it is not defined, however, define it. + // This LEVEL symbol is provided by `triple-beam` and also used in: + // - logform + // - winston-transport + // - abstract-winston-transport + if (!info[LEVEL]) { + info[LEVEL] = info.level; + } - var zhHk = moment.defineLocale('zh-hk', { - months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( - '_' - ), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( - '_' - ), - weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), - weekdaysMin: '日_一_二_三_四_五_六'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日 HH:mm', - LLLL: 'YYYY年M月D日dddd HH:mm', - l: 'YYYY/M/D', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日dddd HH:mm', - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1200) { - return '上午'; - } else if (hm === 1200) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar: { - sameDay: '[今天]LT', - nextDay: '[明天]LT', - nextWeek: '[下]ddddLT', - lastDay: '[昨天]LT', - lastWeek: '[上]ddddLT', - sameElse: 'L', - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '週'; - default: - return number; - } - }, - relativeTime: { - future: '%s後', - past: '%s前', - s: '幾秒', - ss: '%d 秒', - m: '1 分鐘', - mm: '%d 分鐘', - h: '1 小時', - hh: '%d 小時', - d: '1 天', - dd: '%d 天', - M: '1 個月', - MM: '%d 個月', - y: '1 年', - yy: '%d 年', - }, - }); + // Remark: really not sure what to do here, but this has been reported as + // very confusing by pre winston@2.0.0 users as quite confusing when using + // custom levels. + if (!this.levels[info[LEVEL]] && this.levels[info[LEVEL]] !== 0) { + // eslint-disable-next-line no-console + console.error('[winston] Unknown logger level: %s', info[LEVEL]); + } - return zhHk; + // Remark: not sure if we should simply error here. + if (!this._readableState.pipes) { + // eslint-disable-next-line no-console + console.error( + '[winston] Attempt to write logs with no transports, which can increase memory usage: %j', + info + ); + } -}))); + // Here we write to the `format` pipe-chain, which on `readable` above will + // push the formatted `info` Object onto the buffer for this instance. We trap + // (and re-throw) any errors generated by the user-provided format, but also + // guarantee that the streams callback is invoked so that we can continue flowing. + try { + this.push(this.format.transform(info, this.format.options)); + } finally { + this._writableState.sync = false; + // eslint-disable-next-line callback-return + callback(); + } + } + /** + * Delays the 'finish' event until all transport pipe targets have + * also emitted 'finish' or are already finished. + * @param {mixed} callback - Continues stream processing. + */ + _final(callback) { + const transports = this.transports.slice(); + asyncForEach( + transports, + (transport, next) => { + if (!transport || transport.finished) return setImmediate(next); + transport.once('finish', next); + transport.end(); + }, + callback + ); + } -/***/ }), + /** + * Adds the transport to this logger instance by piping to it. + * @param {mixed} transport - TODO: add param description. + * @returns {Logger} - TODO: add return description. + */ + add(transport) { + // Support backwards compatibility with all existing `winston < 3.x.x` + // transports which meet one of two criteria: + // 1. They inherit from winston.Transport in < 3.x.x which is NOT a stream. + // 2. They expose a log method which has a length greater than 2 (i.e. more then + // just `log(info, callback)`. + const target = + !isStream(transport) || transport.log.length > 2 + ? new LegacyTransportStream({ transport }) + : transport; -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-mo.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-mo.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + if (!target._writableState || !target._writableState.objectMode) { + throw new Error( + 'Transports must WritableStreams in objectMode. Set { objectMode: true }.' + ); + } -//! moment.js locale configuration -//! locale : Chinese (Macau) [zh-mo] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris -//! author : Tan Yuanhong : https://github.com/le0tan + // Listen for the `error` event and the `warn` event on the new Transport. + this._onEvent('error', target); + this._onEvent('warn', target); + this.pipe(target); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + if (transport.handleExceptions) { + this.exceptions.handle(); + } - //! moment.js locale configuration + if (transport.handleRejections) { + this.rejections.handle(); + } - var zhMo = moment.defineLocale('zh-mo', { - months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( - '_' - ), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( - '_' - ), - weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), - weekdaysMin: '日_一_二_三_四_五_六'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日 HH:mm', - LLLL: 'YYYY年M月D日dddd HH:mm', - l: 'D/M/YYYY', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日dddd HH:mm', - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar: { - sameDay: '[今天] LT', - nextDay: '[明天] LT', - nextWeek: '[下]dddd LT', - lastDay: '[昨天] LT', - lastWeek: '[上]dddd LT', - sameElse: 'L', - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '週'; - default: - return number; - } - }, - relativeTime: { - future: '%s內', - past: '%s前', - s: '幾秒', - ss: '%d 秒', - m: '1 分鐘', - mm: '%d 分鐘', - h: '1 小時', - hh: '%d 小時', - d: '1 天', - dd: '%d 天', - M: '1 個月', - MM: '%d 個月', - y: '1 年', - yy: '%d 年', - }, - }); + return this; + } - return zhMo; + /** + * Removes the transport from this logger instance by unpiping from it. + * @param {mixed} transport - TODO: add param description. + * @returns {Logger} - TODO: add return description. + */ + remove(transport) { + if (!transport) return this; + let target = transport; + if (!isStream(transport) || transport.log.length > 2) { + target = this.transports.filter( + match => match.transport === transport + )[0]; + } -}))); + if (target) { + this.unpipe(target); + } + return this; + } + /** + * Removes all transports from this logger instance. + * @returns {Logger} - TODO: add return description. + */ + clear() { + this.unpipe(); + return this; + } -/***/ }), + /** + * Cleans up resources (streams, event listeners) for all transports + * associated with this instance (if necessary). + * @returns {Logger} - TODO: add return description. + */ + close() { + this.exceptions.unhandle(); + this.rejections.unhandle(); + this.clear(); + this.emit('close'); + return this; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-tw.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-tw.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + /** + * Sets the `target` levels specified on this instance. + * @param {Object} Target levels to use on this instance. + */ + setLevels() { + warn.deprecated('setLevels'); + } -//! moment.js locale configuration -//! locale : Chinese (Taiwan) [zh-tw] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris + /** + * Queries the all transports for this instance with the specified `options`. + * This will aggregate each transport's results into one object containing + * a property per transport. + * @param {Object} options - Query options for this instance. + * @param {function} callback - Continuation to respond to when complete. + */ + query(options, callback) { + if (typeof options === 'function') { + callback = options; + options = {}; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + options = options || {}; + const results = {}; + const queryObject = Object.assign({}, options.query || {}); - //! moment.js locale configuration + // Helper function to query a single transport + function queryTransport(transport, next) { + if (options.query && typeof transport.formatQuery === 'function') { + options.query = transport.formatQuery(queryObject); + } - var zhTw = moment.defineLocale('zh-tw', { - months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( - '_' - ), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( - '_' - ), - weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), - weekdaysMin: '日_一_二_三_四_五_六'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日 HH:mm', - LLLL: 'YYYY年M月D日dddd HH:mm', - l: 'YYYY/M/D', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日dddd HH:mm', - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar: { - sameDay: '[今天] LT', - nextDay: '[明天] LT', - nextWeek: '[下]dddd LT', - lastDay: '[昨天] LT', - lastWeek: '[上]dddd LT', - sameElse: 'L', - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '週'; - default: - return number; - } - }, - relativeTime: { - future: '%s後', - past: '%s前', - s: '幾秒', - ss: '%d 秒', - m: '1 分鐘', - mm: '%d 分鐘', - h: '1 小時', - hh: '%d 小時', - d: '1 天', - dd: '%d 天', - M: '1 個月', - MM: '%d 個月', - y: '1 年', - yy: '%d 年', - }, - }); + transport.query(options, (err, res) => { + if (err) { + return next(err); + } - return zhTw; + if (typeof transport.formatResults === 'function') { + res = transport.formatResults(res, options.format); + } -}))); + next(null, res); + }); + } + // Helper function to accumulate the results from `queryTransport` into + // the `results`. + function addResults(transport, next) { + queryTransport(transport, (err, result) => { + // queryTransport could potentially invoke the callback multiple times + // since Transport code can be unpredictable. + if (next) { + result = err || result; + if (result) { + results[transport.name] = result; + } -/***/ }), + // eslint-disable-next-line callback-return + next(); + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale sync recursive ^\\.\\/.*$": -/*!***********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ sync ^\.\/.*$ ***! - \***********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + next = null; + }); + } -var map = { - "./af": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/af.js", - "./af.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/af.js", - "./ar": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar.js", - "./ar-dz": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-dz.js", - "./ar-dz.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-dz.js", - "./ar-kw": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-kw.js", - "./ar-kw.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-kw.js", - "./ar-ly": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-ly.js", - "./ar-ly.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-ly.js", - "./ar-ma": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-ma.js", - "./ar-ma.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-ma.js", - "./ar-sa": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-sa.js", - "./ar-sa.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-sa.js", - "./ar-tn": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-tn.js", - "./ar-tn.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-tn.js", - "./ar.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar.js", - "./az": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/az.js", - "./az.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/az.js", - "./be": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/be.js", - "./be.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/be.js", - "./bg": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bg.js", - "./bg.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bg.js", - "./bm": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bm.js", - "./bm.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bm.js", - "./bn": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bn.js", - "./bn-bd": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bn-bd.js", - "./bn-bd.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bn-bd.js", - "./bn.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bn.js", - "./bo": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bo.js", - "./bo.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bo.js", - "./br": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/br.js", - "./br.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/br.js", - "./bs": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bs.js", - "./bs.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bs.js", - "./ca": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ca.js", - "./ca.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ca.js", - "./cs": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cs.js", - "./cs.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cs.js", - "./cv": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cv.js", - "./cv.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cv.js", - "./cy": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cy.js", - "./cy.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cy.js", - "./da": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/da.js", - "./da.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/da.js", - "./de": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de.js", - "./de-at": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de-at.js", - "./de-at.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de-at.js", - "./de-ch": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de-ch.js", - "./de-ch.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de-ch.js", - "./de.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de.js", - "./dv": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/dv.js", - "./dv.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/dv.js", - "./el": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/el.js", - "./el.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/el.js", - "./en-au": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-au.js", - "./en-au.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-au.js", - "./en-ca": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-ca.js", - "./en-ca.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-ca.js", - "./en-gb": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-gb.js", - "./en-gb.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-gb.js", - "./en-ie": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-ie.js", - "./en-ie.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-ie.js", - "./en-il": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-il.js", - "./en-il.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-il.js", - "./en-in": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-in.js", - "./en-in.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-in.js", - "./en-nz": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-nz.js", - "./en-nz.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-nz.js", - "./en-sg": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-sg.js", - "./en-sg.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-sg.js", - "./eo": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/eo.js", - "./eo.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/eo.js", - "./es": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es.js", - "./es-do": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-do.js", - "./es-do.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-do.js", - "./es-mx": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-mx.js", - "./es-mx.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-mx.js", - "./es-us": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-us.js", - "./es-us.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-us.js", - "./es.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es.js", - "./et": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/et.js", - "./et.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/et.js", - "./eu": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/eu.js", - "./eu.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/eu.js", - "./fa": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fa.js", - "./fa.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fa.js", - "./fi": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fi.js", - "./fi.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fi.js", - "./fil": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fil.js", - "./fil.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fil.js", - "./fo": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fo.js", - "./fo.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fo.js", - "./fr": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr.js", - "./fr-ca": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr-ca.js", - "./fr-ca.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr-ca.js", - "./fr-ch": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr-ch.js", - "./fr-ch.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr-ch.js", - "./fr.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr.js", - "./fy": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fy.js", - "./fy.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fy.js", - "./ga": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ga.js", - "./ga.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ga.js", - "./gd": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gd.js", - "./gd.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gd.js", - "./gl": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gl.js", - "./gl.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gl.js", - "./gom-deva": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gom-deva.js", - "./gom-deva.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gom-deva.js", - "./gom-latn": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gom-latn.js", - "./gom-latn.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gom-latn.js", - "./gu": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gu.js", - "./gu.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gu.js", - "./he": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/he.js", - "./he.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/he.js", - "./hi": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hi.js", - "./hi.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hi.js", - "./hr": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hr.js", - "./hr.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hr.js", - "./hu": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hu.js", - "./hu.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hu.js", - "./hy-am": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hy-am.js", - "./hy-am.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hy-am.js", - "./id": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/id.js", - "./id.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/id.js", - "./is": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/is.js", - "./is.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/is.js", - "./it": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/it.js", - "./it-ch": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/it-ch.js", - "./it-ch.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/it-ch.js", - "./it.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/it.js", - "./ja": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ja.js", - "./ja.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ja.js", - "./jv": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/jv.js", - "./jv.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/jv.js", - "./ka": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ka.js", - "./ka.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ka.js", - "./kk": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/kk.js", - "./kk.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/kk.js", - "./km": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/km.js", - "./km.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/km.js", - "./kn": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/kn.js", - "./kn.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/kn.js", - "./ko": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ko.js", - "./ko.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ko.js", - "./ku": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ku.js", - "./ku.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ku.js", - "./ky": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ky.js", - "./ky.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ky.js", - "./lb": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lb.js", - "./lb.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lb.js", - "./lo": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lo.js", - "./lo.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lo.js", - "./lt": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lt.js", - "./lt.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lt.js", - "./lv": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lv.js", - "./lv.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lv.js", - "./me": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/me.js", - "./me.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/me.js", - "./mi": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mi.js", - "./mi.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mi.js", - "./mk": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mk.js", - "./mk.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mk.js", - "./ml": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ml.js", - "./ml.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ml.js", - "./mn": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mn.js", - "./mn.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mn.js", - "./mr": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mr.js", - "./mr.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mr.js", - "./ms": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ms.js", - "./ms-my": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ms-my.js", - "./ms-my.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ms-my.js", - "./ms.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ms.js", - "./mt": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mt.js", - "./mt.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mt.js", - "./my": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/my.js", - "./my.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/my.js", - "./nb": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nb.js", - "./nb.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nb.js", - "./ne": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ne.js", - "./ne.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ne.js", - "./nl": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nl.js", - "./nl-be": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nl-be.js", - "./nl-be.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nl-be.js", - "./nl.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nl.js", - "./nn": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nn.js", - "./nn.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nn.js", - "./oc-lnc": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/oc-lnc.js", - "./oc-lnc.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/oc-lnc.js", - "./pa-in": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pa-in.js", - "./pa-in.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pa-in.js", - "./pl": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pl.js", - "./pl.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pl.js", - "./pt": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pt.js", - "./pt-br": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pt-br.js", - "./pt-br.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pt-br.js", - "./pt.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pt.js", - "./ro": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ro.js", - "./ro.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ro.js", - "./ru": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ru.js", - "./ru.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ru.js", - "./sd": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sd.js", - "./sd.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sd.js", - "./se": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/se.js", - "./se.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/se.js", - "./si": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/si.js", - "./si.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/si.js", - "./sk": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sk.js", - "./sk.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sk.js", - "./sl": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sl.js", - "./sl.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sl.js", - "./sq": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sq.js", - "./sq.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sq.js", - "./sr": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sr.js", - "./sr-cyrl": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sr-cyrl.js", - "./sr-cyrl.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sr-cyrl.js", - "./sr.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sr.js", - "./ss": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ss.js", - "./ss.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ss.js", - "./sv": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sv.js", - "./sv.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sv.js", - "./sw": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sw.js", - "./sw.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sw.js", - "./ta": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ta.js", - "./ta.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ta.js", - "./te": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/te.js", - "./te.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/te.js", - "./tet": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tet.js", - "./tet.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tet.js", - "./tg": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tg.js", - "./tg.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tg.js", - "./th": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/th.js", - "./th.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/th.js", - "./tk": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tk.js", - "./tk.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tk.js", - "./tl-ph": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tl-ph.js", - "./tl-ph.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tl-ph.js", - "./tlh": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tlh.js", - "./tlh.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tlh.js", - "./tr": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tr.js", - "./tr.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tr.js", - "./tzl": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzl.js", - "./tzl.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzl.js", - "./tzm": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzm.js", - "./tzm-latn": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzm-latn.js", - "./tzm-latn.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzm-latn.js", - "./tzm.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzm.js", - "./ug-cn": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ug-cn.js", - "./ug-cn.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ug-cn.js", - "./uk": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uk.js", - "./uk.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uk.js", - "./ur": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ur.js", - "./ur.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ur.js", - "./uz": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uz.js", - "./uz-latn": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uz-latn.js", - "./uz-latn.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uz-latn.js", - "./uz.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uz.js", - "./vi": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/vi.js", - "./vi.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/vi.js", - "./x-pseudo": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/x-pseudo.js", - "./x-pseudo.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/x-pseudo.js", - "./yo": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/yo.js", - "./yo.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/yo.js", - "./zh-cn": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-cn.js", - "./zh-cn.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-cn.js", - "./zh-hk": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-hk.js", - "./zh-hk.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-hk.js", - "./zh-mo": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-mo.js", - "./zh-mo.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-mo.js", - "./zh-tw": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-tw.js", - "./zh-tw.js": "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-tw.js" -}; + // Iterate over the transports in parallel setting the appropriate key in + // the `results`. + asyncForEach( + this.transports.filter(transport => !!transport.query), + addResults, + () => callback(null, results) + ); + } + /** + * Returns a log stream for all transports. Options object is optional. + * @param{Object} options={} - Stream options for this instance. + * @returns {Stream} - TODO: add return description. + */ + stream(options = {}) { + const out = new Stream(); + const streams = []; -function webpackContext(req) { - var id = webpackContextResolve(req); - return __webpack_require__(id); -} -function webpackContextResolve(req) { - if(!__webpack_require__.o(map, req)) { - var e = new Error("Cannot find module '" + req + "'"); - e.code = 'MODULE_NOT_FOUND'; - throw e; - } - return map[req]; -} -webpackContext.keys = function webpackContextKeys() { - return Object.keys(map); -}; -webpackContext.resolve = webpackContextResolve; -module.exports = webpackContext; -webpackContext.id = "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale sync recursive ^\\.\\/.*$"; + out._streams = streams; + out.destroy = () => { + let i = streams.length; + while (i--) { + streams[i].destroy(); + } + }; -/***/ }), + // Create a list of all transports for this instance. + this.transports + .filter(transport => !!transport.stream) + .forEach(transport => { + const str = transport.stream(options); + if (!str) { + return; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js ***! - \***********************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + streams.push(str); -/* module decorator */ module = __webpack_require__.nmd(module); -//! moment.js -//! version : 2.29.1 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com + str.on('log', log => { + log.transport = log.transport || []; + log.transport.push(transport.name); + out.emit('log', log); + }); -;(function (global, factory) { - true ? module.exports = factory() : - 0 -}(this, (function () { 'use strict'; + str.on('error', err => { + err.transport = err.transport || []; + err.transport.push(transport.name); + out.emit('error', err); + }); + }); - var hookCallback; + return out; + } + + /** + * Returns an object corresponding to a specific timing. When done is called + * the timer will finish and log the duration. e.g.: + * @returns {Profile} - TODO: add return description. + * @example + * const timer = winston.startTimer() + * setTimeout(() => { + * timer.done({ + * message: 'Logging message' + * }); + * }, 1000); + */ + startTimer() { + return new Profiler(this); + } + + /** + * Tracks the time inbetween subsequent calls to this method with the same + * `id` parameter. The second call to this method will log the difference in + * milliseconds along with the message. + * @param {string} id Unique id of the profiler + * @returns {Logger} - TODO: add return description. + */ + profile(id, ...args) { + const time = Date.now(); + if (this.profilers[id]) { + const timeEnd = this.profilers[id]; + delete this.profilers[id]; + + // Attempt to be kind to users if they are still using older APIs. + if (typeof args[args.length - 2] === 'function') { + // eslint-disable-next-line no-console + console.warn( + 'Callback function no longer supported as of winston@3.0.0' + ); + args.pop(); + } + + // Set the duration property of the metadata + const info = typeof args[args.length - 1] === 'object' ? args.pop() : {}; + info.level = info.level || 'info'; + info.durationMs = time - timeEnd; + info.message = info.message || id; + return this.write(info); + } + + this.profilers[id] = time; + return this; + } + + /** + * Backwards compatibility to `exceptions.handle` in winston < 3.0.0. + * @returns {undefined} + * @deprecated + */ + handleExceptions(...args) { + // eslint-disable-next-line no-console + console.warn( + 'Deprecated: .handleExceptions() will be removed in winston@4. Use .exceptions.handle()' + ); + this.exceptions.handle(...args); + } + + /** + * Backwards compatibility to `exceptions.handle` in winston < 3.0.0. + * @returns {undefined} + * @deprecated + */ + unhandleExceptions(...args) { + // eslint-disable-next-line no-console + console.warn( + 'Deprecated: .unhandleExceptions() will be removed in winston@4. Use .exceptions.unhandle()' + ); + this.exceptions.unhandle(...args); + } - function hooks() { - return hookCallback.apply(null, arguments); - } + /** + * Throw a more meaningful deprecation notice + * @throws {Error} - TODO: add throws description. + */ + cli() { + throw new Error( + [ + 'Logger.cli() was removed in winston@3.0.0', + 'Use a custom winston.formats.cli() instead.', + 'See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md' + ].join('\n') + ); + } - // This is done to register the method called with moment() - // without creating circular dependencies. - function setHookCallback(callback) { - hookCallback = callback; + /** + * Bubbles the `event` that occured on the specified `transport` up + * from this instance. + * @param {string} event - The event that occured + * @param {Object} transport - Transport on which the event occured + * @private + */ + _onEvent(event, transport) { + function transportEvent(err) { + // https://github.com/winstonjs/winston/issues/1364 + if (event === 'error' && !this.transports.includes(transport)) { + this.add(transport); + } + this.emit(event, err, transport); } - function isArray(input) { - return ( - input instanceof Array || - Object.prototype.toString.call(input) === '[object Array]' - ); + if (!transport['__winston' + event]) { + transport['__winston' + event] = transportEvent.bind(this); + transport.on(event, transport['__winston' + event]); } + } - function isObject(input) { - // IE8 will treat undefined and null as object if it wasn't for - // input != null - return ( - input != null && - Object.prototype.toString.call(input) === '[object Object]' - ); + _addDefaultMeta(msg) { + if (this.defaultMeta) { + Object.assign(msg, this.defaultMeta); } + } +} - function hasOwnProp(a, b) { - return Object.prototype.hasOwnProperty.call(a, b); - } +function getLevelValue(levels, level) { + const value = levels[level]; + if (!value && value !== 0) { + return null; + } + return value; +} - function isObjectEmpty(obj) { - if (Object.getOwnPropertyNames) { - return Object.getOwnPropertyNames(obj).length === 0; - } else { - var k; - for (k in obj) { - if (hasOwnProp(obj, k)) { - return false; - } - } - return true; - } - } +/** + * Represents the current readableState pipe targets for this Logger instance. + * @type {Array|Object} + */ +Object.defineProperty(Logger.prototype, 'transports', { + configurable: false, + enumerable: true, + get() { + const { pipes } = this._readableState; + return !Array.isArray(pipes) ? [pipes].filter(Boolean) : pipes; + } +}); - function isUndefined(input) { - return input === void 0; - } +module.exports = Logger; - function isNumber(input) { - return ( - typeof input === 'number' || - Object.prototype.toString.call(input) === '[object Number]' - ); - } - function isDate(input) { - return ( - input instanceof Date || - Object.prototype.toString.call(input) === '[object Date]' - ); - } +/***/ }), - function map(arr, fn) { - var res = [], - i; - for (i = 0; i < arr.length; ++i) { - res.push(fn(arr[i], i)); - } - return res; - } +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/profiler.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/profiler.js ***! + \*****************************************************************************/ +/***/ ((module) => { - function extend(a, b) { - for (var i in b) { - if (hasOwnProp(b, i)) { - a[i] = b[i]; - } - } +"use strict"; +/** + * profiler.js: TODO: add file header description. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ - if (hasOwnProp(b, 'toString')) { - a.toString = b.toString; - } - if (hasOwnProp(b, 'valueOf')) { - a.valueOf = b.valueOf; - } - return a; +/** + * TODO: add class description. + * @type {Profiler} + * @private + */ +module.exports = class Profiler { + /** + * Constructor function for the Profiler instance used by + * `Logger.prototype.startTimer`. When done is called the timer will finish + * and log the duration. + * @param {!Logger} logger - TODO: add param description. + * @private + */ + constructor(logger) { + if (!logger) { + throw new Error('Logger is required for profiling.'); } - function createUTC(input, format, locale, strict) { - return createLocalOrUTC(input, format, locale, strict, true).utc(); - } + this.logger = logger; + this.start = Date.now(); + } - function defaultParsingFlags() { - // We need to deep clone this object. - return { - empty: false, - unusedTokens: [], - unusedInput: [], - overflow: -2, - charsLeftOver: 0, - nullInput: false, - invalidEra: null, - invalidMonth: null, - invalidFormat: false, - userInvalidated: false, - iso: false, - parsedDateParts: [], - era: null, - meridiem: null, - rfc2822: false, - weekdayMismatch: false, - }; + /** + * Ends the current timer (i.e. Profiler) instance and logs the `msg` along + * with the duration since creation. + * @returns {mixed} - TODO: add return description. + * @private + */ + done(...args) { + if (typeof args[args.length - 1] === 'function') { + // eslint-disable-next-line no-console + console.warn('Callback function no longer supported as of winston@3.0.0'); + args.pop(); } - function getParsingFlags(m) { - if (m._pf == null) { - m._pf = defaultParsingFlags(); - } - return m._pf; - } + const info = typeof args[args.length - 1] === 'object' ? args.pop() : {}; + info.level = info.level || 'info'; + info.durationMs = (Date.now()) - this.start; - var some; - if (Array.prototype.some) { - some = Array.prototype.some; - } else { - some = function (fun) { - var t = Object(this), - len = t.length >>> 0, - i; + return this.logger.write(info); + } +}; - for (i = 0; i < len; i++) { - if (i in t && fun.call(this, t[i], i, t)) { - return true; - } - } - return false; - }; - } +/***/ }), - function isValid(m) { - if (m._isValid == null) { - var flags = getParsingFlags(m), - parsedParts = some.call(flags.parsedDateParts, function (i) { - return i != null; - }), - isNowValid = - !isNaN(m._d.getTime()) && - flags.overflow < 0 && - !flags.empty && - !flags.invalidEra && - !flags.invalidMonth && - !flags.invalidWeekday && - !flags.weekdayMismatch && - !flags.nullInput && - !flags.invalidFormat && - !flags.userInvalidated && - (!flags.meridiem || (flags.meridiem && parsedParts)); +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/rejection-handler.js": +/*!**************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/rejection-handler.js ***! + \**************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1546457__) => { - if (m._strict) { - isNowValid = - isNowValid && - flags.charsLeftOver === 0 && - flags.unusedTokens.length === 0 && - flags.bigHour === undefined; - } +"use strict"; +/** + * exception-handler.js: Object for handling uncaughtException events. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ - if (Object.isFrozen == null || !Object.isFrozen(m)) { - m._isValid = isNowValid; - } else { - return isNowValid; - } - } - return m._isValid; - } - function createInvalid(flags) { - var m = createUTC(NaN); - if (flags != null) { - extend(getParsingFlags(m), flags); - } else { - getParsingFlags(m).userInvalidated = true; - } - return m; - } +const os = __nested_webpack_require_1546457__(/*! os */ "os"); +const asyncForEach = __nested_webpack_require_1546457__(/*! async/forEach */ "./build/cht-core-4-6/api/node_modules/async/forEach.js"); +const debug = __nested_webpack_require_1546457__(/*! @dabh/diagnostics */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/index.js")('winston:rejection'); +const once = __nested_webpack_require_1546457__(/*! one-time */ "./build/cht-core-4-6/api/node_modules/one-time/index.js"); +const stackTrace = __nested_webpack_require_1546457__(/*! stack-trace */ "./build/cht-core-4-6/api/node_modules/stack-trace/lib/stack-trace.js"); +const ExceptionStream = __nested_webpack_require_1546457__(/*! ./exception-stream */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-stream.js"); - // Plugins that add properties should also add the key here (null value), - // so we can properly clone ourselves. - var momentProperties = (hooks.momentProperties = []), - updateInProgress = false; +/** + * Object for handling unhandledRejection events. + * @type {RejectionHandler} + */ +module.exports = class RejectionHandler { + /** + * TODO: add contructor description + * @param {!Logger} logger - TODO: add param description + */ + constructor(logger) { + if (!logger) { + throw new Error('Logger is required to handle rejections'); + } - function copyConfig(to, from) { - var i, prop, val; + this.logger = logger; + this.handlers = new Map(); + } - if (!isUndefined(from._isAMomentObject)) { - to._isAMomentObject = from._isAMomentObject; - } - if (!isUndefined(from._i)) { - to._i = from._i; - } - if (!isUndefined(from._f)) { - to._f = from._f; - } - if (!isUndefined(from._l)) { - to._l = from._l; - } - if (!isUndefined(from._strict)) { - to._strict = from._strict; - } - if (!isUndefined(from._tzm)) { - to._tzm = from._tzm; - } - if (!isUndefined(from._isUTC)) { - to._isUTC = from._isUTC; - } - if (!isUndefined(from._offset)) { - to._offset = from._offset; - } - if (!isUndefined(from._pf)) { - to._pf = getParsingFlags(from); - } - if (!isUndefined(from._locale)) { - to._locale = from._locale; - } + /** + * Handles `unhandledRejection` events for the current process by adding any + * handlers passed in. + * @returns {undefined} + */ + handle(...args) { + args.forEach(arg => { + if (Array.isArray(arg)) { + return arg.forEach(handler => this._addHandler(handler)); + } - if (momentProperties.length > 0) { - for (i = 0; i < momentProperties.length; i++) { - prop = momentProperties[i]; - val = from[prop]; - if (!isUndefined(val)) { - to[prop] = val; - } - } - } + this._addHandler(arg); + }); - return to; + if (!this.catcher) { + this.catcher = this._unhandledRejection.bind(this); + process.on('unhandledRejection', this.catcher); } + } - // Moment prototype object - function Moment(config) { - copyConfig(this, config); - this._d = new Date(config._d != null ? config._d.getTime() : NaN); - if (!this.isValid()) { - this._d = new Date(NaN); - } - // Prevent infinite loop in case updateOffset creates new moment - // objects. - if (updateInProgress === false) { - updateInProgress = true; - hooks.updateOffset(this); - updateInProgress = false; - } - } + /** + * Removes any handlers to `unhandledRejection` events for the current + * process. This does not modify the state of the `this.handlers` set. + * @returns {undefined} + */ + unhandle() { + if (this.catcher) { + process.removeListener('unhandledRejection', this.catcher); + this.catcher = false; - function isMoment(obj) { - return ( - obj instanceof Moment || (obj != null && obj._isAMomentObject != null) - ); + Array.from(this.handlers.values()).forEach(wrapper => + this.logger.unpipe(wrapper) + ); } + } - function warn(msg) { - if ( - hooks.suppressDeprecationWarnings === false && - typeof console !== 'undefined' && - console.warn - ) { - console.warn('Deprecation warning: ' + msg); - } + /** + * TODO: add method description + * @param {Error} err - Error to get information about. + * @returns {mixed} - TODO: add return description. + */ + getAllInfo(err) { + let message = null; + if (err) { + message = typeof err === 'string' ? err : err.message; } - function deprecate(msg, fn) { - var firstTime = true; + return { + error: err, + // TODO (indexzero): how do we configure this? + level: 'error', + message: [ + `unhandledRejection: ${message || '(no error message)'}`, + err && err.stack || ' No stack trace' + ].join('\n'), + stack: err && err.stack, + exception: true, + date: new Date().toString(), + process: this.getProcessInfo(), + os: this.getOsInfo(), + trace: this.getTrace(err) + }; + } - return extend(function () { - if (hooks.deprecationHandler != null) { - hooks.deprecationHandler(null, msg); - } - if (firstTime) { - var args = [], - arg, - i, - key; - for (i = 0; i < arguments.length; i++) { - arg = ''; - if (typeof arguments[i] === 'object') { - arg += '\n[' + i + '] '; - for (key in arguments[0]) { - if (hasOwnProp(arguments[0], key)) { - arg += key + ': ' + arguments[0][key] + ', '; - } - } - arg = arg.slice(0, -2); // Remove trailing comma and space - } else { - arg = arguments[i]; - } - args.push(arg); - } - warn( - msg + - '\nArguments: ' + - Array.prototype.slice.call(args).join('') + - '\n' + - new Error().stack - ); - firstTime = false; - } - return fn.apply(this, arguments); - }, fn); + /** + * Gets all relevant process information for the currently running process. + * @returns {mixed} - TODO: add return description. + */ + getProcessInfo() { + return { + pid: process.pid, + uid: process.getuid ? process.getuid() : null, + gid: process.getgid ? process.getgid() : null, + cwd: process.cwd(), + execPath: process.execPath, + version: process.version, + argv: process.argv, + memoryUsage: process.memoryUsage() + }; + } + + /** + * Gets all relevant OS information for the currently running process. + * @returns {mixed} - TODO: add return description. + */ + getOsInfo() { + return { + loadavg: os.loadavg(), + uptime: os.uptime() + }; + } + + /** + * Gets a stack trace for the specified error. + * @param {mixed} err - TODO: add param description. + * @returns {mixed} - TODO: add return description. + */ + getTrace(err) { + const trace = err ? stackTrace.parse(err) : stackTrace.get(); + return trace.map(site => { + return { + column: site.getColumnNumber(), + file: site.getFileName(), + function: site.getFunctionName(), + line: site.getLineNumber(), + method: site.getMethodName(), + native: site.isNative() + }; + }); + } + + /** + * Helper method to add a transport as an exception handler. + * @param {Transport} handler - The transport to add as an exception handler. + * @returns {void} + */ + _addHandler(handler) { + if (!this.handlers.has(handler)) { + handler.handleRejections = true; + const wrapper = new ExceptionStream(handler); + this.handlers.set(handler, wrapper); + this.logger.pipe(wrapper); } + } - var deprecations = {}; + /** + * Logs all relevant information around the `err` and exits the current + * process. + * @param {Error} err - Error to handle + * @returns {mixed} - TODO: add return description. + * @private + */ + _unhandledRejection(err) { + const info = this.getAllInfo(err); + const handlers = this._getRejectionHandlers(); + // Calculate if we should exit on this error + let doExit = + typeof this.logger.exitOnError === 'function' + ? this.logger.exitOnError(err) + : this.logger.exitOnError; + let timeout; - function deprecateSimple(name, msg) { - if (hooks.deprecationHandler != null) { - hooks.deprecationHandler(name, msg); - } - if (!deprecations[name]) { - warn(msg); - deprecations[name] = true; - } + if (!handlers.length && doExit) { + // eslint-disable-next-line no-console + console.warn('winston: exitOnError cannot be true with no rejection handlers.'); + // eslint-disable-next-line no-console + console.warn('winston: not exiting process.'); + doExit = false; } - hooks.suppressDeprecationWarnings = false; - hooks.deprecationHandler = null; - - function isFunction(input) { - return ( - (typeof Function !== 'undefined' && input instanceof Function) || - Object.prototype.toString.call(input) === '[object Function]' - ); - } + function gracefulExit() { + debug('doExit', doExit); + debug('process._exiting', process._exiting); - function set(config) { - var prop, i; - for (i in config) { - if (hasOwnProp(config, i)) { - prop = config[i]; - if (isFunction(prop)) { - this[i] = prop; - } else { - this['_' + i] = prop; - } - } + if (doExit && !process._exiting) { + // Remark: Currently ignoring any rejections from transports when + // catching unhandled rejections. + if (timeout) { + clearTimeout(timeout); } - this._config = config; - // Lenient ordinal parsing accepts just a number in addition to - // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. - // TODO: Remove "ordinalParse" fallback in next major release. - this._dayOfMonthOrdinalParseLenient = new RegExp( - (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + - '|' + - /\d{1,2}/.source - ); + // eslint-disable-next-line no-process-exit + process.exit(1); + } } - function mergeConfigs(parentConfig, childConfig) { - var res = extend({}, parentConfig), - prop; - for (prop in childConfig) { - if (hasOwnProp(childConfig, prop)) { - if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { - res[prop] = {}; - extend(res[prop], parentConfig[prop]); - extend(res[prop], childConfig[prop]); - } else if (childConfig[prop] != null) { - res[prop] = childConfig[prop]; - } else { - delete res[prop]; - } - } - } - for (prop in parentConfig) { - if ( - hasOwnProp(parentConfig, prop) && - !hasOwnProp(childConfig, prop) && - isObject(parentConfig[prop]) - ) { - // make sure changes to properties don't modify parent config - res[prop] = extend({}, res[prop]); - } - } - return res; + if (!handlers || handlers.length === 0) { + return process.nextTick(gracefulExit); } - function Locale(config) { - if (config != null) { - this.set(config); + // Log to all transports attempting to listen for when they are completed. + asyncForEach( + handlers, + (handler, next) => { + const done = once(next); + const transport = handler.transport || handler; + + // Debug wrapping so that we can inspect what's going on under the covers. + function onDone(event) { + return () => { + debug(event); + done(); + }; } - } - var keys; + transport._ending = true; + transport.once('finish', onDone('finished')); + transport.once('error', onDone('error')); + }, + () => doExit && gracefulExit() + ); - if (Object.keys) { - keys = Object.keys; - } else { - keys = function (obj) { - var i, - res = []; - for (i in obj) { - if (hasOwnProp(obj, i)) { - res.push(i); - } - } - return res; - }; + this.logger.log(info); + + // If exitOnError is true, then only allow the logging of exceptions to + // take up to `3000ms`. + if (doExit) { + timeout = setTimeout(gracefulExit, 3000); } + } - var defaultCalendar = { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }; + /** + * Returns the list of transports and exceptionHandlers for this instance. + * @returns {Array} - List of transports and exceptionHandlers for this + * instance. + * @private + */ + _getRejectionHandlers() { + // Remark (indexzero): since `logger.transports` returns all of the pipes + // from the _readableState of the stream we actually get the join of the + // explicit handlers and the implicit transports with + // `handleRejections: true` + return this.logger.transports.filter(wrap => { + const transport = wrap.transport || wrap; + return transport.handleRejections; + }); + } +}; - function calendar(key, mom, now) { - var output = this._calendar[key] || this._calendar['sameElse']; - return isFunction(output) ? output.call(mom, now) : output; - } - function zeroFill(number, targetLength, forceSign) { - var absNumber = '' + Math.abs(number), - zerosToFill = targetLength - absNumber.length, - sign = number >= 0; - return ( - (sign ? (forceSign ? '+' : '') : '-') + - Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + - absNumber - ); +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/tail-file.js": +/*!******************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/tail-file.js ***! + \******************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1554298__) => { + +"use strict"; +/** + * tail-file.js: TODO: add file header description. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +const fs = __nested_webpack_require_1554298__(/*! fs */ "fs"); +const { StringDecoder } = __nested_webpack_require_1554298__(/*! string_decoder */ "string_decoder"); +const { Stream } = __nested_webpack_require_1554298__(/*! readable-stream */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js"); + +/** + * Simple no-op function. + * @returns {undefined} + */ +function noop() {} + +/** + * TODO: add function description. + * @param {Object} options - Options for tail. + * @param {function} iter - Iterator function to execute on every line. +* `tail -f` a file. Options must include file. + * @returns {mixed} - TODO: add return description. + */ +module.exports = (options, iter) => { + const buffer = Buffer.alloc(64 * 1024); + const decode = new StringDecoder('utf8'); + const stream = new Stream(); + let buff = ''; + let pos = 0; + let row = 0; + + if (options.start === -1) { + delete options.start; + } + + stream.readable = true; + stream.destroy = () => { + stream.destroyed = true; + stream.emit('end'); + stream.emit('close'); + }; + + fs.open(options.file, 'a+', '0644', (err, fd) => { + if (err) { + if (!iter) { + stream.emit('error', err); + } else { + iter(err); + } + stream.destroy(); + return; } - var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, - localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, - formatFunctions = {}, - formatTokenFunctions = {}; + (function read() { + if (stream.destroyed) { + fs.close(fd, noop); + return; + } - // token: 'M' - // padded: ['MM', 2] - // ordinal: 'Mo' - // callback: function () { this.month() + 1 } - function addFormatToken(token, padded, ordinal, callback) { - var func = callback; - if (typeof callback === 'string') { - func = function () { - return this[callback](); - }; - } - if (token) { - formatTokenFunctions[token] = func; - } - if (padded) { - formatTokenFunctions[padded[0]] = function () { - return zeroFill(func.apply(this, arguments), padded[1], padded[2]); - }; + return fs.read(fd, buffer, 0, buffer.length, pos, (error, bytes) => { + if (error) { + if (!iter) { + stream.emit('error', error); + } else { + iter(error); + } + stream.destroy(); + return; } - if (ordinal) { - formatTokenFunctions[ordinal] = function () { - return this.localeData().ordinal( - func.apply(this, arguments), - token - ); - }; + + if (!bytes) { + if (buff) { + // eslint-disable-next-line eqeqeq + if (options.start == null || row > options.start) { + if (!iter) { + stream.emit('line', buff); + } else { + iter(null, buff); + } + } + row++; + buff = ''; + } + return setTimeout(read, 1000); } - } - function removeFormattingTokens(input) { - if (input.match(/\[[\s\S]/)) { - return input.replace(/^\[|\]$/g, ''); + let data = decode.write(buffer.slice(0, bytes)); + if (!iter) { + stream.emit('data', data); } - return input.replace(/\\/g, ''); - } - function makeFormatFunction(format) { - var array = format.match(formattingTokens), - i, - length; + data = (buff + data).split(/\n+/); - for (i = 0, length = array.length; i < length; i++) { - if (formatTokenFunctions[array[i]]) { - array[i] = formatTokenFunctions[array[i]]; + const l = data.length - 1; + let i = 0; + + for (; i < l; i++) { + // eslint-disable-next-line eqeqeq + if (options.start == null || row > options.start) { + if (!iter) { + stream.emit('line', data[i]); } else { - array[i] = removeFormattingTokens(array[i]); + iter(null, data[i]); } + } + row++; } - return function (mom) { - var output = '', - i; - for (i = 0; i < length; i++) { - output += isFunction(array[i]) - ? array[i].call(mom, format) - : array[i]; - } - return output; - }; - } + buff = data[l]; + pos += bytes; + return read(); + }); + }()); + }); - // format date using native date object - function formatMoment(m, format) { - if (!m.isValid()) { - return m.localeData().invalidDate(); - } + if (!iter) { + return stream; + } - format = expandFormat(format, m.localeData()); - formatFunctions[format] = - formatFunctions[format] || makeFormatFunction(format); + return stream.destroy; +}; - return formatFunctions[format](m); - } - function expandFormat(format, locale) { - var i = 5; +/***/ }), - function replaceLongDateFormatTokens(input) { - return locale.longDateFormat(input) || input; - } +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/console.js": +/*!***************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/console.js ***! + \***************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1557610__) => { - localFormattingTokens.lastIndex = 0; - while (i >= 0 && localFormattingTokens.test(format)) { - format = format.replace( - localFormattingTokens, - replaceLongDateFormatTokens - ); - localFormattingTokens.lastIndex = 0; - i -= 1; - } +"use strict"; +/* eslint-disable no-console */ +/* + * console.js: Transport for outputting to the console. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ - return format; + + +const os = __nested_webpack_require_1557610__(/*! os */ "os"); +const { LEVEL, MESSAGE } = __nested_webpack_require_1557610__(/*! triple-beam */ "./build/cht-core-4-6/api/node_modules/triple-beam/index.js"); +const TransportStream = __nested_webpack_require_1557610__(/*! winston-transport */ "./build/cht-core-4-6/api/node_modules/winston-transport/index.js"); + +/** + * Transport for outputting to the console. + * @type {Console} + * @extends {TransportStream} + */ +module.exports = class Console extends TransportStream { + /** + * Constructor function for the Console transport object responsible for + * persisting log messages and metadata to a terminal or TTY. + * @param {!Object} [options={}] - Options for this instance. + */ + constructor(options = {}) { + super(options); + + // Expose the name of this Transport on the prototype + this.name = options.name || 'console'; + this.stderrLevels = this._stringArrayToSet(options.stderrLevels); + this.consoleWarnLevels = this._stringArrayToSet(options.consoleWarnLevels); + this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL; + + this.setMaxListeners(30); + } + + /** + * Core logging method exposed to Winston. + * @param {Object} info - TODO: add param description. + * @param {Function} callback - TODO: add param description. + * @returns {undefined} + */ + log(info, callback) { + setImmediate(() => this.emit('logged', info)); + + // Remark: what if there is no raw...? + if (this.stderrLevels[info[LEVEL]]) { + if (console._stderr) { + // Node.js maps `process.stderr` to `console._stderr`. + console._stderr.write(`${info[MESSAGE]}${this.eol}`); + } else { + // console.error adds a newline + console.error(info[MESSAGE]); + } + + if (callback) { + callback(); // eslint-disable-line callback-return + } + return; + } else if (this.consoleWarnLevels[info[LEVEL]]) { + if (console._stderr) { + // Node.js maps `process.stderr` to `console._stderr`. + // in Node.js console.warn is an alias for console.error + console._stderr.write(`${info[MESSAGE]}${this.eol}`); + } else { + // console.warn adds a newline + console.warn(info[MESSAGE]); + } + + if (callback) { + callback(); // eslint-disable-line callback-return + } + return; } - var defaultLongDateFormat = { - LTS: 'h:mm:ss A', - LT: 'h:mm A', - L: 'MM/DD/YYYY', - LL: 'MMMM D, YYYY', - LLL: 'MMMM D, YYYY h:mm A', - LLLL: 'dddd, MMMM D, YYYY h:mm A', - }; + if (console._stdout) { + // Node.js maps `process.stdout` to `console._stdout`. + console._stdout.write(`${info[MESSAGE]}${this.eol}`); + } else { + // console.log adds a newline. + console.log(info[MESSAGE]); + } - function longDateFormat(key) { - var format = this._longDateFormat[key], - formatUpper = this._longDateFormat[key.toUpperCase()]; + if (callback) { + callback(); // eslint-disable-line callback-return + } + } - if (format || !formatUpper) { - return format; - } + /** + * Returns a Set-like object with strArray's elements as keys (each with the + * value true). + * @param {Array} strArray - Array of Set-elements as strings. + * @param {?string} [errMsg] - Custom error message thrown on invalid input. + * @returns {Object} - TODO: add return description. + * @private + */ + _stringArrayToSet(strArray, errMsg) { + if (!strArray) + return {}; - this._longDateFormat[key] = formatUpper - .match(formattingTokens) - .map(function (tok) { - if ( - tok === 'MMMM' || - tok === 'MM' || - tok === 'DD' || - tok === 'dddd' - ) { - return tok.slice(1); - } - return tok; - }) - .join(''); + errMsg = errMsg || 'Cannot make set from type other than Array of string elements'; + + if (!Array.isArray(strArray)) { + throw new Error(errMsg); + } + + return strArray.reduce((set, el) => { + if (typeof el !== 'string') { + throw new Error(errMsg); + } + set[el] = true; + + return set; + }, {}); + } +}; - return this._longDateFormat[key]; - } - var defaultInvalidDate = 'Invalid date'; +/***/ }), - function invalidDate() { - return this._invalidDate; - } +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/file.js": +/*!************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/file.js ***! + \************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1561580__) => { - var defaultOrdinal = '%d', - defaultDayOfMonthOrdinalParse = /\d{1,2}/; +"use strict"; +/* eslint-disable complexity,max-statements */ +/** + * file.js: Transport for outputting to a local log file. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ - function ordinal(number) { - return this._ordinal.replace('%d', number); - } - var defaultRelativeTime = { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - w: 'a week', - ww: '%d weeks', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }; - function relativeTime(number, withoutSuffix, string, isFuture) { - var output = this._relativeTime[string]; - return isFunction(output) - ? output(number, withoutSuffix, string, isFuture) - : output.replace(/%d/i, number); - } +const fs = __nested_webpack_require_1561580__(/*! fs */ "fs"); +const path = __nested_webpack_require_1561580__(/*! path */ "path"); +const asyncSeries = __nested_webpack_require_1561580__(/*! async/series */ "./build/cht-core-4-6/api/node_modules/async/series.js"); +const zlib = __nested_webpack_require_1561580__(/*! zlib */ "zlib"); +const { MESSAGE } = __nested_webpack_require_1561580__(/*! triple-beam */ "./build/cht-core-4-6/api/node_modules/triple-beam/index.js"); +const { Stream, PassThrough } = __nested_webpack_require_1561580__(/*! readable-stream */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js"); +const TransportStream = __nested_webpack_require_1561580__(/*! winston-transport */ "./build/cht-core-4-6/api/node_modules/winston-transport/index.js"); +const debug = __nested_webpack_require_1561580__(/*! @dabh/diagnostics */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/index.js")('winston:file'); +const os = __nested_webpack_require_1561580__(/*! os */ "os"); +const tailFile = __nested_webpack_require_1561580__(/*! ../tail-file */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/tail-file.js"); - function pastFuture(diff, output) { - var format = this._relativeTime[diff > 0 ? 'future' : 'past']; - return isFunction(format) ? format(output) : format.replace(/%s/i, output); - } +/** + * Transport for outputting to a local log file. + * @type {File} + * @extends {TransportStream} + */ +module.exports = class File extends TransportStream { + /** + * Constructor function for the File transport object responsible for + * persisting log messages and metadata to one or more files. + * @param {Object} options - Options for this instance. + */ + constructor(options = {}) { + super(options); - var aliases = {}; + // Expose the name of this Transport on the prototype. + this.name = options.name || 'file'; - function addUnitAlias(unit, shorthand) { - var lowerCase = unit.toLowerCase(); - aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + // Helper function which throws an `Error` in the event that any of the + // rest of the arguments is present in `options`. + function throwIf(target, ...args) { + args.slice(1).forEach(name => { + if (options[name]) { + throw new Error(`Cannot set ${name} and ${target} together`); + } + }); } - function normalizeUnits(units) { - return typeof units === 'string' - ? aliases[units] || aliases[units.toLowerCase()] - : undefined; - } + // Setup the base stream that always gets piped to to handle buffering. + this._stream = new PassThrough(); + this._stream.setMaxListeners(30); - function normalizeObjectUnits(inputObject) { - var normalizedInput = {}, - normalizedProp, - prop; + // Bind this context for listener methods. + this._onError = this._onError.bind(this); - for (prop in inputObject) { - if (hasOwnProp(inputObject, prop)) { - normalizedProp = normalizeUnits(prop); - if (normalizedProp) { - normalizedInput[normalizedProp] = inputObject[prop]; - } - } - } + if (options.filename || options.dirname) { + throwIf('filename or dirname', 'stream'); + this._basename = this.filename = options.filename + ? path.basename(options.filename) + : 'winston.log'; - return normalizedInput; + this.dirname = options.dirname || path.dirname(options.filename); + this.options = options.options || { flags: 'a' }; + } else if (options.stream) { + // eslint-disable-next-line no-console + console.warn('options.stream will be removed in winston@4. Use winston.transports.Stream'); + throwIf('stream', 'filename', 'maxsize'); + this._dest = this._stream.pipe(this._setupStream(options.stream)); + this.dirname = path.dirname(this._dest.path); + // We need to listen for drain events when write() returns false. This + // can make node mad at times. + } else { + throw new Error('Cannot log to file without filename or stream.'); } - var priorities = {}; + this.maxsize = options.maxsize || null; + this.rotationFormat = options.rotationFormat || false; + this.zippedArchive = options.zippedArchive || false; + this.maxFiles = options.maxFiles || null; + this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL; + this.tailable = options.tailable || false; + this.lazy = options.lazy || false; - function addUnitPriority(unit, priority) { - priorities[unit] = priority; - } + // Internal state variables representing the number of files this instance + // has created and the current size (in bytes) of the current logfile. + this._size = 0; + this._pendingSize = 0; + this._created = 0; + this._drain = false; + this._opening = false; + this._ending = false; + this._fileExist = false; - function getPrioritizedUnits(unitsObj) { - var units = [], - u; - for (u in unitsObj) { - if (hasOwnProp(unitsObj, u)) { - units.push({ unit: u, priority: priorities[u] }); - } - } - units.sort(function (a, b) { - return a.priority - b.priority; + if (this.dirname) this._createLogDirIfNotExist(this.dirname); + if (!this.lazy) this.open(); + } + + finishIfEnding() { + if (this._ending) { + if (this._opening) { + this.once('open', () => { + this._stream.once('finish', () => this.emit('finish')); + setImmediate(() => this._stream.end()); }); - return units; + } else { + this._stream.once('finish', () => this.emit('finish')); + setImmediate(() => this._stream.end()); + } } + } - function isLeapYear(year) { - return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + /** + * Core logging method exposed to Winston. Metadata is optional. + * @param {Object} info - TODO: add param description. + * @param {Function} callback - TODO: add param description. + * @returns {undefined} + */ + log(info, callback = () => { }) { + // Remark: (jcrugzz) What is necessary about this callback(null, true) now + // when thinking about 3.x? Should silent be handled in the base + // TransportStream _write method? + if (this.silent) { + callback(); + return true; } - function absFloor(number) { - if (number < 0) { - // -0 -> 0 - return Math.ceil(number) || 0; - } else { - return Math.floor(number); + + // Output stream buffer is full and has asked us to wait for the drain event + if (this._drain) { + this._stream.once('drain', () => { + this._drain = false; + this.log(info, callback); + }); + return; + } + if (this._rotate) { + this._stream.once('rotate', () => { + this._rotate = false; + this.log(info, callback); + }); + return; + } + if (this.lazy) { + if (!this._fileExist) { + if (!this._opening) { + this.open(); } + this.once('open', () => { + this._fileExist = true; + this.log(info, callback); + return; + }); + return; + } + if (this._needsNewFile(this._pendingSize)) { + this._dest.once('close', () => { + if (!this._opening) { + this.open(); + } + this.once('open', () => { + this.log(info, callback); + return; + }); + return; + }); + return; + } } - function toInt(argumentForCoercion) { - var coercedNumber = +argumentForCoercion, - value = 0; + // Grab the raw string and append the expected EOL. + const output = `${info[MESSAGE]}${this.eol}`; + const bytes = Buffer.byteLength(output); - if (coercedNumber !== 0 && isFinite(coercedNumber)) { - value = absFloor(coercedNumber); - } + // After we have written to the PassThrough check to see if we need + // to rotate to the next file. + // + // Remark: This gets called too early and does not depict when data + // has been actually flushed to disk. + function logged() { + this._size += bytes; + this._pendingSize -= bytes; - return value; - } + debug('logged %s %s', this._size, output); + this.emit('logged', info); - function makeGetSet(unit, keepTime) { - return function (value) { - if (value != null) { - set$1(this, unit, value); - hooks.updateOffset(this, keepTime); - return this; - } else { - return get(this, unit); - } - }; - } + // Do not attempt to rotate files while rotating + if (this._rotate) { + return; + } - function get(mom, unit) { - return mom.isValid() - ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() - : NaN; - } + // Do not attempt to rotate files while opening + if (this._opening) { + return; + } - function set$1(mom, unit, value) { - if (mom.isValid() && !isNaN(value)) { - if ( - unit === 'FullYear' && - isLeapYear(mom.year()) && - mom.month() === 1 && - mom.date() === 29 - ) { - value = toInt(value); - mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit]( - value, - mom.month(), - daysInMonth(value, mom.month()) - ); - } else { - mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); - } - } - } + // Check to see if we need to end the stream and create a new one. + if (!this._needsNewFile()) { + return; + } + if (this.lazy) { + this._endStream(() => {this.emit('fileclosed')}); + return; + } - // MOMENTS + // End the current stream, ensure it flushes and create a new one. + // This could potentially be optimized to not run a stat call but its + // the safest way since we are supporting `maxFiles`. + this._rotate = true; + this._endStream(() => this._rotateFile()); + } - function stringGet(units) { - units = normalizeUnits(units); - if (isFunction(this[units])) { - return this[units](); - } - return this; + // Keep track of the pending bytes being written while files are opening + // in order to properly rotate the PassThrough this._stream when the file + // eventually does open. + this._pendingSize += bytes; + if (this._opening + && !this.rotatedWhileOpening + && this._needsNewFile(this._size + this._pendingSize)) { + this.rotatedWhileOpening = true; } - function stringSet(units, value) { - if (typeof units === 'object') { - units = normalizeObjectUnits(units); - var prioritized = getPrioritizedUnits(units), - i; - for (i = 0; i < prioritized.length; i++) { - this[prioritized[i].unit](units[prioritized[i].unit]); - } - } else { - units = normalizeUnits(units); - if (isFunction(this[units])) { - return this[units](value); - } - } - return this; + const written = this._stream.write(output, logged.bind(this)); + if (!written) { + this._drain = true; + this._stream.once('drain', () => { + this._drain = false; + callback(); + }); + } else { + callback(); // eslint-disable-line callback-return } - var match1 = /\d/, // 0 - 9 - match2 = /\d\d/, // 00 - 99 - match3 = /\d{3}/, // 000 - 999 - match4 = /\d{4}/, // 0000 - 9999 - match6 = /[+-]?\d{6}/, // -999999 - 999999 - match1to2 = /\d\d?/, // 0 - 99 - match3to4 = /\d\d\d\d?/, // 999 - 9999 - match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 - match1to3 = /\d{1,3}/, // 0 - 999 - match1to4 = /\d{1,4}/, // 0 - 9999 - match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 - matchUnsigned = /\d+/, // 0 - inf - matchSigned = /[+-]?\d+/, // -inf - inf - matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z - matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z - matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 - // any word (or two) characters or numbers including two/three word month in arabic. - // includes scottish gaelic two word and hyphenated months - matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, - regexes; + debug('written', written, this._drain); - regexes = {}; + this.finishIfEnding(); - function addRegexToken(token, regex, strictRegex) { - regexes[token] = isFunction(regex) - ? regex - : function (isStrict, localeData) { - return isStrict && strictRegex ? strictRegex : regex; - }; + return written; + } + + /** + * Query the transport. Options object is optional. + * @param {Object} options - Loggly-like query options for this instance. + * @param {function} callback - Continuation to respond to when complete. + * TODO: Refactor me. + */ + query(options, callback) { + if (typeof options === 'function') { + callback = options; + options = {}; } - function getParseRegexForToken(token, config) { - if (!hasOwnProp(regexes, token)) { - return new RegExp(unescapeFormat(token)); - } + options = normalizeQuery(options); + const file = path.join(this.dirname, this.filename); + let buff = ''; + let results = []; + let row = 0; - return regexes[token](config._strict, config._locale); - } + const stream = fs.createReadStream(file, { + encoding: 'utf8' + }); - // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript - function unescapeFormat(s) { - return regexEscape( - s - .replace('\\', '') - .replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function ( - matched, - p1, - p2, - p3, - p4 - ) { - return p1 || p2 || p3 || p4; - }) - ); - } + stream.on('error', err => { + if (stream.readable) { + stream.destroy(); + } + if (!callback) { + return; + } - function regexEscape(s) { - return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); - } + return err.code !== 'ENOENT' ? callback(err) : callback(null, results); + }); - var tokens = {}; + stream.on('data', data => { + data = (buff + data).split(/\n+/); + const l = data.length - 1; + let i = 0; - function addParseToken(token, callback) { - var i, - func = callback; - if (typeof token === 'string') { - token = [token]; + for (; i < l; i++) { + if (!options.start || row >= options.start) { + add(data[i]); } - if (isNumber(callback)) { - func = function (input, array) { - array[callback] = toInt(input); - }; + row++; + } + + buff = data[l]; + }); + + stream.on('close', () => { + if (buff) { + add(buff, true); + } + if (options.order === 'desc') { + results = results.reverse(); + } + + // eslint-disable-next-line callback-return + if (callback) callback(null, results); + }); + + function add(buff, attempt) { + try { + const log = JSON.parse(buff); + if (check(log)) { + push(log); } - for (i = 0; i < token.length; i++) { - tokens[token[i]] = func; + } catch (e) { + if (!attempt) { + stream.emit('error', e); } + } } - function addWeekParseToken(token, callback) { - addParseToken(token, function (input, array, config, token) { - config._w = config._w || {}; - callback(input, config._w, config, token); - }); - } - - function addTimeToArrayFromToken(token, input, config) { - if (input != null && hasOwnProp(tokens, token)) { - tokens[token](input, config._a, config, token); + function push(log) { + if ( + options.rows && + results.length >= options.rows && + options.order !== 'desc' + ) { + if (stream.readable) { + stream.destroy(); } - } + return; + } - var YEAR = 0, - MONTH = 1, - DATE = 2, - HOUR = 3, - MINUTE = 4, - SECOND = 5, - MILLISECOND = 6, - WEEK = 7, - WEEKDAY = 8; + if (options.fields) { + log = options.fields.reduce((obj, key) => { + obj[key] = log[key]; + return obj; + }, {}); + } - function mod(n, x) { - return ((n % x) + x) % x; + if (options.order === 'desc') { + if (results.length >= options.rows) { + results.shift(); + } + } + results.push(log); } - var indexOf; + function check(log) { + if (!log) { + return; + } - if (Array.prototype.indexOf) { - indexOf = Array.prototype.indexOf; - } else { - indexOf = function (o) { - // I know - var i; - for (i = 0; i < this.length; ++i) { - if (this[i] === o) { - return i; - } - } - return -1; - }; - } + if (typeof log !== 'object') { + return; + } + + const time = new Date(log.timestamp); + if ( + (options.from && time < options.from) || + (options.until && time > options.until) || + (options.level && options.level !== log.level) + ) { + return; + } - function daysInMonth(year, month) { - if (isNaN(year) || isNaN(month)) { - return NaN; - } - var modMonth = mod(month, 12); - year += (month - modMonth) / 12; - return modMonth === 1 - ? isLeapYear(year) - ? 29 - : 28 - : 31 - ((modMonth % 7) % 2); + return true; } - // FORMATTING + function normalizeQuery(options) { + options = options || {}; - addFormatToken('M', ['MM', 2], 'Mo', function () { - return this.month() + 1; - }); + // limit + options.rows = options.rows || options.limit || 10; - addFormatToken('MMM', 0, 0, function (format) { - return this.localeData().monthsShort(this, format); - }); + // starting row offset + options.start = options.start || 0; - addFormatToken('MMMM', 0, 0, function (format) { - return this.localeData().months(this, format); - }); + // now + options.until = options.until || new Date(); + if (typeof options.until !== 'object') { + options.until = new Date(options.until); + } - // ALIASES + // now - 24 + options.from = options.from || (options.until - (24 * 60 * 60 * 1000)); + if (typeof options.from !== 'object') { + options.from = new Date(options.from); + } - addUnitAlias('month', 'M'); + // 'asc' or 'desc' + options.order = options.order || 'desc'; - // PRIORITY + return options; + } + } - addUnitPriority('month', 8); + /** + * Returns a log stream for this transport. Options object is optional. + * @param {Object} options - Stream options for this instance. + * @returns {Stream} - TODO: add return description. + * TODO: Refactor me. + */ + stream(options = {}) { + const file = path.join(this.dirname, this.filename); + const stream = new Stream(); + const tail = { + file, + start: options.start + }; - // PARSING + stream.destroy = tailFile(tail, (err, line) => { + if (err) { + return stream.emit('error', err); + } - addRegexToken('M', match1to2); - addRegexToken('MM', match1to2, match2); - addRegexToken('MMM', function (isStrict, locale) { - return locale.monthsShortRegex(isStrict); - }); - addRegexToken('MMMM', function (isStrict, locale) { - return locale.monthsRegex(isStrict); + try { + stream.emit('data', line); + line = JSON.parse(line); + stream.emit('log', line); + } catch (e) { + stream.emit('error', e); + } }); - addParseToken(['M', 'MM'], function (input, array) { - array[MONTH] = toInt(input) - 1; - }); + return stream; + } - addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { - var month = config._locale.monthsParse(input, token, config._strict); - // if we didn't find a month name, mark the date as invalid. - if (month != null) { - array[MONTH] = month; + /** + * Checks to see the filesize of. + * @returns {undefined} + */ + open() { + // If we do not have a filename then we were passed a stream and + // don't need to keep track of size. + if (!this.filename) return; + if (this._opening) return; + + this._opening = true; + + // Stat the target file to get the size and create the stream. + this.stat((err, size) => { + if (err) { + return this.emit('error', err); + } + debug('stat done: %s { size: %s }', this.filename, size); + this._size = size; + this._dest = this._createStream(this._stream); + this._opening = false; + this.once('open', () => { + if (this._stream.eventNames().includes('rotate')) { + this._stream.emit('rotate'); } else { - getParsingFlags(config).invalidMonth = input; + this._rotate = false; } + }); }); + } - // LOCALES + /** + * Stat the file and assess information in order to create the proper stream. + * @param {function} callback - TODO: add param description. + * @returns {undefined} + */ + stat(callback) { + const target = this._getFile(); + const fullpath = path.join(this.dirname, target); - var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split( - '_' - ), - MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, - defaultMonthsShortRegex = matchWord, - defaultMonthsRegex = matchWord; + fs.stat(fullpath, (err, stat) => { + if (err && err.code === 'ENOENT') { + debug('ENOENT ok', fullpath); + // Update internally tracked filename with the new target name. + this.filename = target; + return callback(null, 0); + } - function localeMonths(m, format) { - if (!m) { - return isArray(this._months) - ? this._months - : this._months['standalone']; - } - return isArray(this._months) - ? this._months[m.month()] - : this._months[ - (this._months.isFormat || MONTHS_IN_FORMAT).test(format) - ? 'format' - : 'standalone' - ][m.month()]; - } + if (err) { + debug(`err ${err.code} ${fullpath}`); + return callback(err); + } - function localeMonthsShort(m, format) { - if (!m) { - return isArray(this._monthsShort) - ? this._monthsShort - : this._monthsShort['standalone']; - } - return isArray(this._monthsShort) - ? this._monthsShort[m.month()] - : this._monthsShort[ - MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone' - ][m.month()]; - } + if (!stat || this._needsNewFile(stat.size)) { + // If `stats.size` is greater than the `maxsize` for this + // instance then try again. + return this._incFile(() => this.stat(callback)); + } - function handleStrictParse(monthName, format, strict) { - var i, - ii, - mom, - llc = monthName.toLocaleLowerCase(); - if (!this._monthsParse) { - // this is not used - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - for (i = 0; i < 12; ++i) { - mom = createUTC([2000, i]); - this._shortMonthsParse[i] = this.monthsShort( - mom, - '' - ).toLocaleLowerCase(); - this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); - } - } + // Once we have figured out what the filename is, set it + // and return the size. + this.filename = target; + callback(null, stat.size); + }); + } - if (strict) { - if (format === 'MMM') { - ii = indexOf.call(this._shortMonthsParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._longMonthsParse, llc); - return ii !== -1 ? ii : null; - } - } else { - if (format === 'MMM') { - ii = indexOf.call(this._shortMonthsParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._longMonthsParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._longMonthsParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._shortMonthsParse, llc); - return ii !== -1 ? ii : null; - } - } + /** + * Closes the stream associated with this instance. + * @param {function} cb - TODO: add param description. + * @returns {undefined} + */ + close(cb) { + if (!this._stream) { + return; } - function localeMonthsParse(monthName, format, strict) { - var i, mom, regex; - - if (this._monthsParseExact) { - return handleStrictParse.call(this, monthName, format, strict); - } + this._stream.end(() => { + if (cb) { + cb(); // eslint-disable-line callback-return + } + this.emit('flush'); + this.emit('closed'); + }); + } - if (!this._monthsParse) { - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - } + /** + * TODO: add method description. + * @param {number} size - TODO: add param description. + * @returns {undefined} + */ + _needsNewFile(size) { + size = size || this._size; + return this.maxsize && size >= this.maxsize; + } - // TODO: add sorting - // Sorting makes sure if one month (or abbr) is a prefix of another - // see sorting in computeMonthsParse - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, i]); - if (strict && !this._longMonthsParse[i]) { - this._longMonthsParse[i] = new RegExp( - '^' + this.months(mom, '').replace('.', '') + '$', - 'i' - ); - this._shortMonthsParse[i] = new RegExp( - '^' + this.monthsShort(mom, '').replace('.', '') + '$', - 'i' - ); - } - if (!strict && !this._monthsParse[i]) { - regex = - '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); - this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if ( - strict && - format === 'MMMM' && - this._longMonthsParse[i].test(monthName) - ) { - return i; - } else if ( - strict && - format === 'MMM' && - this._shortMonthsParse[i].test(monthName) - ) { - return i; - } else if (!strict && this._monthsParse[i].test(monthName)) { - return i; - } - } - } + /** + * TODO: add method description. + * @param {Error} err - TODO: add param description. + * @returns {undefined} + */ + _onError(err) { + this.emit('error', err); + } - // MOMENTS + /** + * TODO: add method description. + * @param {Stream} stream - TODO: add param description. + * @returns {mixed} - TODO: add return description. + */ + _setupStream(stream) { + stream.on('error', this._onError); - function setMonth(mom, value) { - var dayOfMonth; + return stream; + } - if (!mom.isValid()) { - // No op - return mom; - } + /** + * TODO: add method description. + * @param {Stream} stream - TODO: add param description. + * @returns {mixed} - TODO: add return description. + */ + _cleanupStream(stream) { + stream.removeListener('error', this._onError); + stream.destroy(); + return stream; + } - if (typeof value === 'string') { - if (/^\d+$/.test(value)) { - value = toInt(value); - } else { - value = mom.localeData().monthsParse(value); - // TODO: Another silent failure? - if (!isNumber(value)) { - return mom; - } - } - } + /** + * TODO: add method description. + */ + _rotateFile() { + this._incFile(() => this.open()); + } - dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); - mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); - return mom; + /** + * Unpipe from the stream that has been marked as full and end it so it + * flushes to disk. + * + * @param {function} callback - Callback for when the current file has closed. + * @private + */ + _endStream(callback = () => { }) { + if (this._dest) { + this._stream.unpipe(this._dest); + this._dest.end(() => { + this._cleanupStream(this._dest); + callback(); + }); + } else { + callback(); // eslint-disable-line callback-return } + } - function getSetMonth(value) { - if (value != null) { - setMonth(this, value); - hooks.updateOffset(this, true); - return this; - } else { - return get(this, 'Month'); - } - } + /** + * Returns the WritableStream for the active file on this instance. If we + * should gzip the file then a zlib stream is returned. + * + * @param {ReadableStream} source –PassThrough to pipe to the file when open. + * @returns {WritableStream} Stream that writes to disk for the active file. + */ + _createStream(source) { + const fullpath = path.join(this.dirname, this.filename); - function getDaysInMonth() { - return daysInMonth(this.year(), this.month()); - } + debug('create stream start', fullpath, this.options); + const dest = fs.createWriteStream(fullpath, this.options) + // TODO: What should we do with errors here? + .on('error', err => debug(err)) + .on('close', () => debug('close', dest.path, dest.bytesWritten)) + .on('open', () => { + debug('file open ok', fullpath); + this.emit('open', fullpath); + source.pipe(dest); - function monthsShortRegex(isStrict) { - if (this._monthsParseExact) { - if (!hasOwnProp(this, '_monthsRegex')) { - computeMonthsParse.call(this); - } - if (isStrict) { - return this._monthsShortStrictRegex; - } else { - return this._monthsShortRegex; - } - } else { - if (!hasOwnProp(this, '_monthsShortRegex')) { - this._monthsShortRegex = defaultMonthsShortRegex; - } - return this._monthsShortStrictRegex && isStrict - ? this._monthsShortStrictRegex - : this._monthsShortRegex; + // If rotation occured during the open operation then we immediately + // start writing to a new PassThrough, begin opening the next file + // and cleanup the previous source and dest once the source has drained. + if (this.rotatedWhileOpening) { + this._stream = new PassThrough(); + this._stream.setMaxListeners(30); + this._rotateFile(); + this.rotatedWhileOpening = false; + this._cleanupStream(dest); + source.end(); } - } + }); - function monthsRegex(isStrict) { - if (this._monthsParseExact) { - if (!hasOwnProp(this, '_monthsRegex')) { - computeMonthsParse.call(this); - } - if (isStrict) { - return this._monthsStrictRegex; - } else { - return this._monthsRegex; - } - } else { - if (!hasOwnProp(this, '_monthsRegex')) { - this._monthsRegex = defaultMonthsRegex; - } - return this._monthsStrictRegex && isStrict - ? this._monthsStrictRegex - : this._monthsRegex; - } + debug('create stream ok', fullpath); + if (this.zippedArchive) { + const gzip = zlib.createGzip(); + gzip.pipe(dest); + return gzip; } - function computeMonthsParse() { - function cmpLenRev(a, b) { - return b.length - a.length; - } + return dest; + } - var shortPieces = [], - longPieces = [], - mixedPieces = [], - i, - mom; - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, i]); - shortPieces.push(this.monthsShort(mom, '')); - longPieces.push(this.months(mom, '')); - mixedPieces.push(this.months(mom, '')); - mixedPieces.push(this.monthsShort(mom, '')); - } - // Sorting makes sure if one month (or abbr) is a prefix of another it - // will match the longer piece. - shortPieces.sort(cmpLenRev); - longPieces.sort(cmpLenRev); - mixedPieces.sort(cmpLenRev); - for (i = 0; i < 12; i++) { - shortPieces[i] = regexEscape(shortPieces[i]); - longPieces[i] = regexEscape(longPieces[i]); - } - for (i = 0; i < 24; i++) { - mixedPieces[i] = regexEscape(mixedPieces[i]); - } + /** + * TODO: add method description. + * @param {function} callback - TODO: add param description. + * @returns {undefined} + */ + _incFile(callback) { + debug('_incFile', this.filename); + const ext = path.extname(this._basename); + const basename = path.basename(this._basename, ext); - this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._monthsShortRegex = this._monthsRegex; - this._monthsStrictRegex = new RegExp( - '^(' + longPieces.join('|') + ')', - 'i' - ); - this._monthsShortStrictRegex = new RegExp( - '^(' + shortPieces.join('|') + ')', - 'i' - ); + if (!this.tailable) { + this._created += 1; + this._checkMaxFilesIncrementing(ext, basename, callback); + } else { + this._checkMaxFilesTailable(ext, basename, callback); } + } - // FORMATTING + /** + * Gets the next filename to use for this instance in the case that log + * filesizes are being capped. + * @returns {string} - TODO: add return description. + * @private + */ + _getFile() { + const ext = path.extname(this._basename); + const basename = path.basename(this._basename, ext); + const isRotation = this.rotationFormat + ? this.rotationFormat() + : this._created; - addFormatToken('Y', 0, 0, function () { - var y = this.year(); - return y <= 9999 ? zeroFill(y, 4) : '+' + y; - }); + // Caveat emptor (indexzero): rotationFormat() was broken by design When + // combined with max files because the set of files to unlink is never + // stored. + const target = !this.tailable && this._created + ? `${basename}${isRotation}${ext}` + : `${basename}${ext}`; - addFormatToken(0, ['YY', 2], 0, function () { - return this.year() % 100; - }); + return this.zippedArchive && !this.tailable + ? `${target}.gz` + : target; + } - addFormatToken(0, ['YYYY', 4], 0, 'year'); - addFormatToken(0, ['YYYYY', 5], 0, 'year'); - addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + /** + * Increment the number of files created or checked by this instance. + * @param {mixed} ext - TODO: add param description. + * @param {mixed} basename - TODO: add param description. + * @param {mixed} callback - TODO: add param description. + * @returns {undefined} + * @private + */ + _checkMaxFilesIncrementing(ext, basename, callback) { + // Check for maxFiles option and delete file. + if (!this.maxFiles || this._created < this.maxFiles) { + return setImmediate(callback); + } - // ALIASES + const oldest = this._created - this.maxFiles; + const isOldest = oldest !== 0 ? oldest : ''; + const isZipped = this.zippedArchive ? '.gz' : ''; + const filePath = `${basename}${isOldest}${ext}${isZipped}`; + const target = path.join(this.dirname, filePath); - addUnitAlias('year', 'y'); + fs.unlink(target, callback); + } - // PRIORITIES + /** + * Roll files forward based on integer, up to maxFiles. e.g. if base if + * file.log and it becomes oversized, roll to file1.log, and allow file.log + * to be re-used. If file is oversized again, roll file1.log to file2.log, + * roll file.log to file1.log, and so on. + * @param {mixed} ext - TODO: add param description. + * @param {mixed} basename - TODO: add param description. + * @param {mixed} callback - TODO: add param description. + * @returns {undefined} + * @private + */ + _checkMaxFilesTailable(ext, basename, callback) { + const tasks = []; + if (!this.maxFiles) { + return; + } - addUnitPriority('year', 1); + // const isZipped = this.zippedArchive ? '.gz' : ''; + const isZipped = this.zippedArchive ? '.gz' : ''; + for (let x = this.maxFiles - 1; x > 1; x--) { + tasks.push(function (i, cb) { + let fileName = `${basename}${(i - 1)}${ext}${isZipped}`; + const tmppath = path.join(this.dirname, fileName); - // PARSING + fs.exists(tmppath, exists => { + if (!exists) { + return cb(null); + } - addRegexToken('Y', matchSigned); - addRegexToken('YY', match1to2, match2); - addRegexToken('YYYY', match1to4, match4); - addRegexToken('YYYYY', match1to6, match6); - addRegexToken('YYYYYY', match1to6, match6); + fileName = `${basename}${i}${ext}${isZipped}`; + fs.rename(tmppath, path.join(this.dirname, fileName), cb); + }); + }.bind(this, x)); + } - addParseToken(['YYYYY', 'YYYYYY'], YEAR); - addParseToken('YYYY', function (input, array) { - array[YEAR] = - input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); - }); - addParseToken('YY', function (input, array) { - array[YEAR] = hooks.parseTwoDigitYear(input); - }); - addParseToken('Y', function (input, array) { - array[YEAR] = parseInt(input, 10); + asyncSeries(tasks, () => { + fs.rename( + path.join(this.dirname, `${basename}${ext}`), + path.join(this.dirname, `${basename}1${ext}${isZipped}`), + callback + ); }); + } - // HELPERS - - function daysInYear(year) { - return isLeapYear(year) ? 366 : 365; + _createLogDirIfNotExist(dirPath) { + /* eslint-disable no-sync */ + if (!fs.existsSync(dirPath)) { + fs.mkdirSync(dirPath, { recursive: true }); } + /* eslint-enable no-sync */ + } +}; - // HOOKS - - hooks.parseTwoDigitYear = function (input) { - return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); - }; - // MOMENTS +/***/ }), - var getSetYear = makeGetSet('FullYear', true); +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/http.js": +/*!************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/http.js ***! + \************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1583053__) => { - function getIsLeapYear() { - return isLeapYear(this.year()); - } +"use strict"; +/** + * http.js: Transport for outputting to a json-rpcserver. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ - function createDate(y, m, d, h, M, s, ms) { - // can't just apply() to create a date: - // https://stackoverflow.com/q/181348 - var date; - // the date constructor remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0) { - // preserve leap years using a full 400 year cycle, then reset - date = new Date(y + 400, m, d, h, M, s, ms); - if (isFinite(date.getFullYear())) { - date.setFullYear(y); - } - } else { - date = new Date(y, m, d, h, M, s, ms); - } - return date; - } - function createUTCDate(y) { - var date, args; - // the Date.UTC function remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0) { - args = Array.prototype.slice.call(arguments); - // preserve leap years using a full 400 year cycle, then reset - args[0] = y + 400; - date = new Date(Date.UTC.apply(null, args)); - if (isFinite(date.getUTCFullYear())) { - date.setUTCFullYear(y); - } - } else { - date = new Date(Date.UTC.apply(null, arguments)); - } +const http = __nested_webpack_require_1583053__(/*! http */ "http"); +const https = __nested_webpack_require_1583053__(/*! https */ "https"); +const { Stream } = __nested_webpack_require_1583053__(/*! readable-stream */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js"); +const TransportStream = __nested_webpack_require_1583053__(/*! winston-transport */ "./build/cht-core-4-6/api/node_modules/winston-transport/index.js"); +const jsonStringify = __nested_webpack_require_1583053__(/*! safe-stable-stringify */ "./build/cht-core-4-6/api/node_modules/safe-stable-stringify/index.js"); - return date; - } +/** + * Transport for outputting to a json-rpc server. + * @type {Stream} + * @extends {TransportStream} + */ +module.exports = class Http extends TransportStream { + /** + * Constructor function for the Http transport object responsible for + * persisting log messages and metadata to a terminal or TTY. + * @param {!Object} [options={}] - Options for this instance. + */ + // eslint-disable-next-line max-statements + constructor(options = {}) { + super(options); - // start-of-first-week - start-of-year - function firstWeekOffset(year, dow, doy) { - var // first-week day -- which january is always in the first week (4 for iso, 1 for other) - fwd = 7 + dow - doy, - // first-week day local weekday -- which local weekday is fwd - fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + this.options = options; + this.name = options.name || 'http'; + this.ssl = !!options.ssl; + this.host = options.host || 'localhost'; + this.port = options.port; + this.auth = options.auth; + this.path = options.path || ''; + this.agent = options.agent; + this.headers = options.headers || {}; + this.headers['content-type'] = 'application/json'; + this.batch = options.batch || false; + this.batchInterval = options.batchInterval || 5000; + this.batchCount = options.batchCount || 10; + this.batchOptions = []; + this.batchTimeoutID = -1; + this.batchCallback = {}; - return -fwdlw + fwd - 1; + if (!this.port) { + this.port = this.ssl ? 443 : 80; } + } - // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday - function dayOfYearFromWeeks(year, week, weekday, dow, doy) { - var localWeekday = (7 + weekday - dow) % 7, - weekOffset = firstWeekOffset(year, dow, doy), - dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, - resYear, - resDayOfYear; + /** + * Core logging method exposed to Winston. + * @param {Object} info - TODO: add param description. + * @param {function} callback - TODO: add param description. + * @returns {undefined} + */ + log(info, callback) { + this._request(info, null, null, (err, res) => { + if (res && res.statusCode !== 200) { + err = new Error(`Invalid HTTP Status Code: ${res.statusCode}`); + } - if (dayOfYear <= 0) { - resYear = year - 1; - resDayOfYear = daysInYear(resYear) + dayOfYear; - } else if (dayOfYear > daysInYear(year)) { - resYear = year + 1; - resDayOfYear = dayOfYear - daysInYear(year); - } else { - resYear = year; - resDayOfYear = dayOfYear; - } + if (err) { + this.emit('warn', err); + } else { + this.emit('logged', info); + } + }); - return { - year: resYear, - dayOfYear: resDayOfYear, - }; + // Remark: (jcrugzz) Fire and forget here so requests dont cause buffering + // and block more requests from happening? + if (callback) { + setImmediate(callback); } + } - function weekOfYear(mom, dow, doy) { - var weekOffset = firstWeekOffset(mom.year(), dow, doy), - week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, - resWeek, - resYear; + /** + * Query the transport. Options object is optional. + * @param {Object} options - Loggly-like query options for this instance. + * @param {function} callback - Continuation to respond to when complete. + * @returns {undefined} + */ + query(options, callback) { + if (typeof options === 'function') { + callback = options; + options = {}; + } - if (week < 1) { - resYear = mom.year() - 1; - resWeek = week + weeksInYear(resYear, dow, doy); - } else if (week > weeksInYear(mom.year(), dow, doy)) { - resWeek = week - weeksInYear(mom.year(), dow, doy); - resYear = mom.year() + 1; - } else { - resYear = mom.year(); - resWeek = week; - } + options = { + method: 'query', + params: this.normalizeQuery(options) + }; - return { - week: resWeek, - year: resYear, - }; - } + const auth = options.params.auth || null; + delete options.params.auth; - function weeksInYear(year, dow, doy) { - var weekOffset = firstWeekOffset(year, dow, doy), - weekOffsetNext = firstWeekOffset(year + 1, dow, doy); - return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; - } + const path = options.params.path || null; + delete options.params.path; - // FORMATTING + this._request(options, auth, path, (err, res, body) => { + if (res && res.statusCode !== 200) { + err = new Error(`Invalid HTTP Status Code: ${res.statusCode}`); + } - addFormatToken('w', ['ww', 2], 'wo', 'week'); - addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + if (err) { + return callback(err); + } - // ALIASES + if (typeof body === 'string') { + try { + body = JSON.parse(body); + } catch (e) { + return callback(e); + } + } - addUnitAlias('week', 'w'); - addUnitAlias('isoWeek', 'W'); + callback(null, body); + }); + } - // PRIORITIES + /** + * Returns a log stream for this transport. Options object is optional. + * @param {Object} options - Stream options for this instance. + * @returns {Stream} - TODO: add return description + */ + stream(options = {}) { + const stream = new Stream(); + options = { + method: 'stream', + params: options + }; - addUnitPriority('week', 5); - addUnitPriority('isoWeek', 5); + const path = options.params.path || null; + delete options.params.path; - // PARSING + const auth = options.params.auth || null; + delete options.params.auth; - addRegexToken('w', match1to2); - addRegexToken('ww', match1to2, match2); - addRegexToken('W', match1to2); - addRegexToken('WW', match1to2, match2); + let buff = ''; + const req = this._request(options, auth, path); - addWeekParseToken(['w', 'ww', 'W', 'WW'], function ( - input, - week, - config, - token - ) { - week[token.substr(0, 1)] = toInt(input); - }); + stream.destroy = () => req.destroy(); + req.on('data', data => { + data = (buff + data).split(/\n+/); + const l = data.length - 1; - // HELPERS + let i = 0; + for (; i < l; i++) { + try { + stream.emit('log', JSON.parse(data[i])); + } catch (e) { + stream.emit('error', e); + } + } - // LOCALES + buff = data[l]; + }); + req.on('error', err => stream.emit('error', err)); - function localeWeek(mom) { - return weekOfYear(mom, this._week.dow, this._week.doy).week; - } + return stream; + } - var defaultLocaleWeek = { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }; + /** + * Make a request to a winstond server or any http server which can + * handle json-rpc. + * @param {function} options - Options to sent the request. + * @param {Object?} auth - authentication options + * @param {string} path - request path + * @param {function} callback - Continuation to respond to when complete. + */ + _request(options, auth, path, callback) { + options = options || {}; - function localeFirstDayOfWeek() { - return this._week.dow; - } + auth = auth || this.auth; + path = path || this.path || ''; - function localeFirstDayOfYear() { - return this._week.doy; + if (this.batch) { + this._doBatch(options, callback, auth, path); + } else { + this._doRequest(options, callback, auth, path); } + } - // MOMENTS + /** + * Send or memorize the options according to batch configuration + * @param {function} options - Options to sent the request. + * @param {function} callback - Continuation to respond to when complete. + * @param {Object?} auth - authentication options + * @param {string} path - request path + */ + _doBatch(options, callback, auth, path) { + this.batchOptions.push(options); + if (this.batchOptions.length === 1) { + // First message stored, it's time to start the timeout! + const me = this; + this.batchCallback = callback; + this.batchTimeoutID = setTimeout(function () { + // timeout is reached, send all messages to endpoint + me.batchTimeoutID = -1; + me._doBatchRequest(me.batchCallback, auth, path); + }, this.batchInterval); + } + if (this.batchOptions.length === this.batchCount) { + // max batch count is reached, send all messages to endpoint + this._doBatchRequest(this.batchCallback, auth, path); + } + } - function getSetWeek(input) { - var week = this.localeData().week(this); - return input == null ? week : this.add((input - week) * 7, 'd'); + /** + * Initiate a request with the memorized batch options, stop the batch timeout + * @param {function} callback - Continuation to respond to when complete. + * @param {Object?} auth - authentication options + * @param {string} path - request path + */ + _doBatchRequest(callback, auth, path) { + if (this.batchTimeoutID > 0) { + clearTimeout(this.batchTimeoutID); + this.batchTimeoutID = -1; } + const batchOptionsCopy = this.batchOptions.slice(); + this.batchOptions = []; + this._doRequest(batchOptionsCopy, callback, auth, path); + } - function getSetISOWeek(input) { - var week = weekOfYear(this, 1, 4).week; - return input == null ? week : this.add((input - week) * 7, 'd'); + /** + * Make a request to a winstond server or any http server which can + * handle json-rpc. + * @param {function} options - Options to sent the request. + * @param {function} callback - Continuation to respond to when complete. + * @param {Object?} auth - authentication options + * @param {string} path - request path + */ + _doRequest(options, callback, auth, path) { + // Prepare options for outgoing HTTP request + const headers = Object.assign({}, this.headers); + if (auth && auth.bearer) { + headers.Authorization = `Bearer ${auth.bearer}`; } + const req = (this.ssl ? https : http).request({ + ...this.options, + method: 'POST', + host: this.host, + port: this.port, + path: `/${path.replace(/^\//, '')}`, + headers: headers, + auth: (auth && auth.username && auth.password) ? (`${auth.username}:${auth.password}`) : '', + agent: this.agent + }); - // FORMATTING + req.on('error', callback); + req.on('response', res => ( + res.on('end', () => callback(null, res)).resume() + )); + req.end(Buffer.from(jsonStringify(options, this.options.replacer), 'utf8')); + } +}; - addFormatToken('d', 0, 'do', 'day'); - addFormatToken('dd', 0, 0, function (format) { - return this.localeData().weekdaysMin(this, format); - }); +/***/ }), - addFormatToken('ddd', 0, 0, function (format) { - return this.localeData().weekdaysShort(this, format); - }); +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/index.js": +/*!*************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/index.js ***! + \*************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_1591395__) => { - addFormatToken('dddd', 0, 0, function (format) { - return this.localeData().weekdays(this, format); - }); +"use strict"; +/** + * transports.js: Set of all transports Winston knows about. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ - addFormatToken('e', 0, 0, 'weekday'); - addFormatToken('E', 0, 0, 'isoWeekday'); - // ALIASES - addUnitAlias('day', 'd'); - addUnitAlias('weekday', 'e'); - addUnitAlias('isoWeekday', 'E'); +/** + * TODO: add property description. + * @type {Console} + */ +Object.defineProperty(exports, "Console", ({ + configurable: true, + enumerable: true, + get() { + return __nested_webpack_require_1591395__(/*! ./console */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/console.js"); + } +})); - // PRIORITY - addUnitPriority('day', 11); - addUnitPriority('weekday', 11); - addUnitPriority('isoWeekday', 11); +/** + * TODO: add property description. + * @type {File} + */ +Object.defineProperty(exports, "File", ({ + configurable: true, + enumerable: true, + get() { + return __nested_webpack_require_1591395__(/*! ./file */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/file.js"); + } +})); - // PARSING +/** + * TODO: add property description. + * @type {Http} + */ +Object.defineProperty(exports, "Http", ({ + configurable: true, + enumerable: true, + get() { + return __nested_webpack_require_1591395__(/*! ./http */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/http.js"); + } +})); - addRegexToken('d', match1to2); - addRegexToken('e', match1to2); - addRegexToken('E', match1to2); - addRegexToken('dd', function (isStrict, locale) { - return locale.weekdaysMinRegex(isStrict); - }); - addRegexToken('ddd', function (isStrict, locale) { - return locale.weekdaysShortRegex(isStrict); - }); - addRegexToken('dddd', function (isStrict, locale) { - return locale.weekdaysRegex(isStrict); - }); +/** + * TODO: add property description. + * @type {Stream} + */ +Object.defineProperty(exports, "Stream", ({ + configurable: true, + enumerable: true, + get() { + return __nested_webpack_require_1591395__(/*! ./stream */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/stream.js"); + } +})); - addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { - var weekday = config._locale.weekdaysParse(input, token, config._strict); - // if we didn't get a weekday name, mark the date as invalid - if (weekday != null) { - week.d = weekday; - } else { - getParsingFlags(config).invalidWeekday = input; - } - }); - addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { - week[token] = toInt(input); - }); +/***/ }), - // HELPERS +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/stream.js": +/*!**************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/stream.js ***! + \**************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1593147__) => { - function parseWeekday(input, locale) { - if (typeof input !== 'string') { - return input; - } +"use strict"; +/** + * stream.js: Transport for outputting to any arbitrary stream. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ - if (!isNaN(input)) { - return parseInt(input, 10); - } - input = locale.weekdaysParse(input); - if (typeof input === 'number') { - return input; - } - return null; - } +const isStream = __nested_webpack_require_1593147__(/*! is-stream */ "./build/cht-core-4-6/api/node_modules/is-stream/index.js"); +const { MESSAGE } = __nested_webpack_require_1593147__(/*! triple-beam */ "./build/cht-core-4-6/api/node_modules/triple-beam/index.js"); +const os = __nested_webpack_require_1593147__(/*! os */ "os"); +const TransportStream = __nested_webpack_require_1593147__(/*! winston-transport */ "./build/cht-core-4-6/api/node_modules/winston-transport/index.js"); - function parseIsoWeekday(input, locale) { - if (typeof input === 'string') { - return locale.weekdaysParse(input) % 7 || 7; - } - return isNaN(input) ? null : input; - } +/** + * Transport for outputting to any arbitrary stream. + * @type {Stream} + * @extends {TransportStream} + */ +module.exports = class Stream extends TransportStream { + /** + * Constructor function for the Console transport object responsible for + * persisting log messages and metadata to a terminal or TTY. + * @param {!Object} [options={}] - Options for this instance. + */ + constructor(options = {}) { + super(options); - // LOCALES - function shiftWeekdays(ws, n) { - return ws.slice(n, 7).concat(ws.slice(0, n)); + if (!options.stream || !isStream(options.stream)) { + throw new Error('options.stream is required.'); } - var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - defaultWeekdaysRegex = matchWord, - defaultWeekdaysShortRegex = matchWord, - defaultWeekdaysMinRegex = matchWord; + // We need to listen for drain events when write() returns false. This can + // make node mad at times. + this._stream = options.stream; + this._stream.setMaxListeners(Infinity); + this.isObjectMode = options.stream._writableState.objectMode; + this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL; + } - function localeWeekdays(m, format) { - var weekdays = isArray(this._weekdays) - ? this._weekdays - : this._weekdays[ - m && m !== true && this._weekdays.isFormat.test(format) - ? 'format' - : 'standalone' - ]; - return m === true - ? shiftWeekdays(weekdays, this._week.dow) - : m - ? weekdays[m.day()] - : weekdays; + /** + * Core logging method exposed to Winston. + * @param {Object} info - TODO: add param description. + * @param {Function} callback - TODO: add param description. + * @returns {undefined} + */ + log(info, callback) { + setImmediate(() => this.emit('logged', info)); + if (this.isObjectMode) { + this._stream.write(info); + if (callback) { + callback(); // eslint-disable-line callback-return + } + return; } - function localeWeekdaysShort(m) { - return m === true - ? shiftWeekdays(this._weekdaysShort, this._week.dow) - : m - ? this._weekdaysShort[m.day()] - : this._weekdaysShort; + this._stream.write(`${info[MESSAGE]}${this.eol}`); + if (callback) { + callback(); // eslint-disable-line callback-return } + return; + } +}; - function localeWeekdaysMin(m) { - return m === true - ? shiftWeekdays(this._weekdaysMin, this._week.dow) - : m - ? this._weekdaysMin[m.day()] - : this._weekdaysMin; - } - function handleStrictParse$1(weekdayName, format, strict) { - var i, - ii, - mom, - llc = weekdayName.toLocaleLowerCase(); - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._shortWeekdaysParse = []; - this._minWeekdaysParse = []; +/***/ }), - for (i = 0; i < 7; ++i) { - mom = createUTC([2000, 1]).day(i); - this._minWeekdaysParse[i] = this.weekdaysMin( - mom, - '' - ).toLocaleLowerCase(); - this._shortWeekdaysParse[i] = this.weekdaysShort( - mom, - '' - ).toLocaleLowerCase(); - this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); - } - } +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js": +/*!********************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js ***! + \********************************************************************************************/ +/***/ ((module) => { - if (strict) { - if (format === 'dddd') { - ii = indexOf.call(this._weekdaysParse, llc); - return ii !== -1 ? ii : null; - } else if (format === 'ddd') { - ii = indexOf.call(this._shortWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } - } else { - if (format === 'dddd') { - ii = indexOf.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._shortWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else if (format === 'ddd') { - ii = indexOf.call(this._shortWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._minWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._shortWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } - } - } +"use strict"; - function localeWeekdaysParse(weekdayName, format, strict) { - var i, mom, regex; - if (this._weekdaysParseExact) { - return handleStrictParse$1.call(this, weekdayName, format, strict); - } +const codes = {}; - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._minWeekdaysParse = []; - this._shortWeekdaysParse = []; - this._fullWeekdaysParse = []; - } +function createErrorType(code, message, Base) { + if (!Base) { + Base = Error + } - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already + function getMessage (arg1, arg2, arg3) { + if (typeof message === 'string') { + return message + } else { + return message(arg1, arg2, arg3) + } + } - mom = createUTC([2000, 1]).day(i); - if (strict && !this._fullWeekdaysParse[i]) { - this._fullWeekdaysParse[i] = new RegExp( - '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', - 'i' - ); - this._shortWeekdaysParse[i] = new RegExp( - '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', - 'i' - ); - this._minWeekdaysParse[i] = new RegExp( - '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', - 'i' - ); - } - if (!this._weekdaysParse[i]) { - regex = - '^' + - this.weekdays(mom, '') + - '|^' + - this.weekdaysShort(mom, '') + - '|^' + - this.weekdaysMin(mom, ''); - this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if ( - strict && - format === 'dddd' && - this._fullWeekdaysParse[i].test(weekdayName) - ) { - return i; - } else if ( - strict && - format === 'ddd' && - this._shortWeekdaysParse[i].test(weekdayName) - ) { - return i; - } else if ( - strict && - format === 'dd' && - this._minWeekdaysParse[i].test(weekdayName) - ) { - return i; - } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { - return i; - } - } + class NodeError extends Base { + constructor (arg1, arg2, arg3) { + super(getMessage(arg1, arg2, arg3)); } + } - // MOMENTS + NodeError.prototype.name = Base.name; + NodeError.prototype.code = code; - function getSetDayOfWeek(input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); - if (input != null) { - input = parseWeekday(input, this.localeData()); - return this.add(input - day, 'd'); - } else { - return day; - } - } + codes[code] = NodeError; +} - function getSetLocaleDayOfWeek(input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; - return input == null ? weekday : this.add(input - weekday, 'd'); +// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js +function oneOf(expected, thing) { + if (Array.isArray(expected)) { + const len = expected.length; + expected = expected.map((i) => String(i)); + if (len > 2) { + return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` + + expected[len - 1]; + } else if (len === 2) { + return `one of ${thing} ${expected[0]} or ${expected[1]}`; + } else { + return `of ${thing} ${expected[0]}`; } + } else { + return `of ${thing} ${String(expected)}`; + } +} - function getSetISODayOfWeek(input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith +function startsWith(str, search, pos) { + return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; +} - // behaves the same as moment#day except - // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) - // as a setter, sunday should belong to the previous week. +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith +function endsWith(str, search, this_len) { + if (this_len === undefined || this_len > str.length) { + this_len = str.length; + } + return str.substring(this_len - search.length, this_len) === search; +} - if (input != null) { - var weekday = parseIsoWeekday(input, this.localeData()); - return this.day(this.day() % 7 ? weekday : weekday - 7); - } else { - return this.day() || 7; - } - } +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes +function includes(str, search, start) { + if (typeof start !== 'number') { + start = 0; + } - function weekdaysRegex(isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysStrictRegex; - } else { - return this._weekdaysRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysRegex')) { - this._weekdaysRegex = defaultWeekdaysRegex; - } - return this._weekdaysStrictRegex && isStrict - ? this._weekdaysStrictRegex - : this._weekdaysRegex; - } - } + if (start + search.length > str.length) { + return false; + } else { + return str.indexOf(search, start) !== -1; + } +} - function weekdaysShortRegex(isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysShortStrictRegex; - } else { - return this._weekdaysShortRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysShortRegex')) { - this._weekdaysShortRegex = defaultWeekdaysShortRegex; - } - return this._weekdaysShortStrictRegex && isStrict - ? this._weekdaysShortStrictRegex - : this._weekdaysShortRegex; - } - } +createErrorType('ERR_INVALID_OPT_VALUE', function (name, value) { + return 'The value "' + value + '" is invalid for option "' + name + '"' +}, TypeError); +createErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) { + // determiner: 'must be' or 'must not be' + let determiner; + if (typeof expected === 'string' && startsWith(expected, 'not ')) { + determiner = 'must not be'; + expected = expected.replace(/^not /, ''); + } else { + determiner = 'must be'; + } - function weekdaysMinRegex(isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysMinStrictRegex; - } else { - return this._weekdaysMinRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysMinRegex')) { - this._weekdaysMinRegex = defaultWeekdaysMinRegex; - } - return this._weekdaysMinStrictRegex && isStrict - ? this._weekdaysMinStrictRegex - : this._weekdaysMinRegex; - } - } + let msg; + if (endsWith(name, ' argument')) { + // For cases like 'first argument' + msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`; + } else { + const type = includes(name, '.') ? 'property' : 'argument'; + msg = `The "${name}" ${type} ${determiner} ${oneOf(expected, 'type')}`; + } - function computeWeekdaysParse() { - function cmpLenRev(a, b) { - return b.length - a.length; - } + msg += `. Received type ${typeof actual}`; + return msg; +}, TypeError); +createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF'); +createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) { + return 'The ' + name + ' method is not implemented' +}); +createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close'); +createErrorType('ERR_STREAM_DESTROYED', function (name) { + return 'Cannot call ' + name + ' after a stream was destroyed'; +}); +createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times'); +createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable'); +createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end'); +createErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError); +createErrorType('ERR_UNKNOWN_ENCODING', function (arg) { + return 'Unknown encoding: ' + arg +}, TypeError); +createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event'); - var minPieces = [], - shortPieces = [], - longPieces = [], - mixedPieces = [], - i, - mom, - minp, - shortp, - longp; - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, 1]).day(i); - minp = regexEscape(this.weekdaysMin(mom, '')); - shortp = regexEscape(this.weekdaysShort(mom, '')); - longp = regexEscape(this.weekdays(mom, '')); - minPieces.push(minp); - shortPieces.push(shortp); - longPieces.push(longp); - mixedPieces.push(minp); - mixedPieces.push(shortp); - mixedPieces.push(longp); - } - // Sorting makes sure if one weekday (or abbr) is a prefix of another it - // will match the longer piece. - minPieces.sort(cmpLenRev); - shortPieces.sort(cmpLenRev); - longPieces.sort(cmpLenRev); - mixedPieces.sort(cmpLenRev); +module.exports.codes = codes; - this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._weekdaysShortRegex = this._weekdaysRegex; - this._weekdaysMinRegex = this._weekdaysRegex; - this._weekdaysStrictRegex = new RegExp( - '^(' + longPieces.join('|') + ')', - 'i' - ); - this._weekdaysShortStrictRegex = new RegExp( - '^(' + shortPieces.join('|') + ')', - 'i' - ); - this._weekdaysMinStrictRegex = new RegExp( - '^(' + minPieces.join('|') + ')', - 'i' - ); - } +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js": +/*!********************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js ***! + \********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1599848__) => { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// a duplex stream is just a stream that is both readable and writable. +// Since JS doesn't have multiple prototypal inheritance, this class +// prototypally inherits from Readable, and then parasitically from +// Writable. + - // FORMATTING - function hFormat() { - return this.hours() % 12 || 12; - } +/**/ +var objectKeys = Object.keys || function (obj) { + var keys = []; + for (var key in obj) keys.push(key); + return keys; +}; +/**/ - function kFormat() { - return this.hours() || 24; +module.exports = Duplex; +var Readable = __nested_webpack_require_1599848__(/*! ./_stream_readable */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js"); +var Writable = __nested_webpack_require_1599848__(/*! ./_stream_writable */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js"); +__nested_webpack_require_1599848__(/*! inherits */ "./build/cht-core-4-6/api/node_modules/inherits/inherits.js")(Duplex, Readable); +{ + // Allow the keys array to be GC'ed. + var keys = objectKeys(Writable.prototype); + for (var v = 0; v < keys.length; v++) { + var method = keys[v]; + if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; + } +} +function Duplex(options) { + if (!(this instanceof Duplex)) return new Duplex(options); + Readable.call(this, options); + Writable.call(this, options); + this.allowHalfOpen = true; + if (options) { + if (options.readable === false) this.readable = false; + if (options.writable === false) this.writable = false; + if (options.allowHalfOpen === false) { + this.allowHalfOpen = false; + this.once('end', onend); } + } +} +Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; + } +}); +Object.defineProperty(Duplex.prototype, 'writableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); + } +}); +Object.defineProperty(Duplex.prototype, 'writableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.length; + } +}); - addFormatToken('H', ['HH', 2], 0, 'hour'); - addFormatToken('h', ['hh', 2], 0, hFormat); - addFormatToken('k', ['kk', 2], 0, kFormat); +// the no-half-open enforcer +function onend() { + // If the writable side ended, then we're ok. + if (this._writableState.ended) return; - addFormatToken('hmm', 0, 0, function () { - return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); - }); + // no more data can be written. + // But allow more writes to happen in this tick. + process.nextTick(onEndNT, this); +} +function onEndNT(self) { + self.end(); +} +Object.defineProperty(Duplex.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === undefined || this._writableState === undefined) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (this._readableState === undefined || this._writableState === undefined) { + return; + } - addFormatToken('hmmss', 0, 0, function () { - return ( - '' + - hFormat.apply(this) + - zeroFill(this.minutes(), 2) + - zeroFill(this.seconds(), 2) - ); - }); + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } +}); - addFormatToken('Hmm', 0, 0, function () { - return '' + this.hours() + zeroFill(this.minutes(), 2); - }); +/***/ }), - addFormatToken('Hmmss', 0, 0, function () { - return ( - '' + - this.hours() + - zeroFill(this.minutes(), 2) + - zeroFill(this.seconds(), 2) - ); - }); +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_passthrough.js": +/*!*************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_passthrough.js ***! + \*************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1605081__) => { - function meridiem(token, lowercase) { - addFormatToken(token, 0, 0, function () { - return this.localeData().meridiem( - this.hours(), - this.minutes(), - lowercase - ); - }); - } +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. - meridiem('a', true); - meridiem('A', false); +// a passthrough stream. +// basically just the most minimal sort of Transform stream. +// Every written chunk gets output as-is. - // ALIASES - addUnitAlias('hour', 'h'); - // PRIORITY - addUnitPriority('hour', 13); +module.exports = PassThrough; +var Transform = __nested_webpack_require_1605081__(/*! ./_stream_transform */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js"); +__nested_webpack_require_1605081__(/*! inherits */ "./build/cht-core-4-6/api/node_modules/inherits/inherits.js")(PassThrough, Transform); +function PassThrough(options) { + if (!(this instanceof PassThrough)) return new PassThrough(options); + Transform.call(this, options); +} +PassThrough.prototype._transform = function (chunk, encoding, cb) { + cb(null, chunk); +}; - // PARSING +/***/ }), - function matchMeridiem(isStrict, locale) { - return locale._meridiemParse; - } +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js": +/*!**********************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js ***! + \**********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1607432__) => { - addRegexToken('a', matchMeridiem); - addRegexToken('A', matchMeridiem); - addRegexToken('H', match1to2); - addRegexToken('h', match1to2); - addRegexToken('k', match1to2); - addRegexToken('HH', match1to2, match2); - addRegexToken('hh', match1to2, match2); - addRegexToken('kk', match1to2, match2); +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. - addRegexToken('hmm', match3to4); - addRegexToken('hmmss', match5to6); - addRegexToken('Hmm', match3to4); - addRegexToken('Hmmss', match5to6); - addParseToken(['H', 'HH'], HOUR); - addParseToken(['k', 'kk'], function (input, array, config) { - var kInput = toInt(input); - array[HOUR] = kInput === 24 ? 0 : kInput; - }); - addParseToken(['a', 'A'], function (input, array, config) { - config._isPm = config._locale.isPM(input); - config._meridiem = input; - }); - addParseToken(['h', 'hh'], function (input, array, config) { - array[HOUR] = toInt(input); - getParsingFlags(config).bigHour = true; - }); - addParseToken('hmm', function (input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); - getParsingFlags(config).bigHour = true; - }); - addParseToken('hmmss', function (input, array, config) { - var pos1 = input.length - 4, - pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); - getParsingFlags(config).bigHour = true; - }); - addParseToken('Hmm', function (input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); - }); - addParseToken('Hmmss', function (input, array, config) { - var pos1 = input.length - 4, - pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); - }); - // LOCALES +module.exports = Readable; - function localeIsPM(input) { - // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays - // Using charAt should be more compatible. - return (input + '').toLowerCase().charAt(0) === 'p'; - } +/**/ +var Duplex; +/**/ - var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, - // Setting the hour should keep the time, because the user explicitly - // specified which hour they want. So trying to maintain the same hour (in - // a new timezone) makes sense. Adding/subtracting hours does not follow - // this rule. - getSetHour = makeGetSet('Hours', true); +Readable.ReadableState = ReadableState; - function localeMeridiem(hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'pm' : 'PM'; - } else { - return isLower ? 'am' : 'AM'; - } - } +/**/ +var EE = __nested_webpack_require_1607432__(/*! events */ "events").EventEmitter; +var EElistenerCount = function EElistenerCount(emitter, type) { + return emitter.listeners(type).length; +}; +/**/ - var baseConfig = { - calendar: defaultCalendar, - longDateFormat: defaultLongDateFormat, - invalidDate: defaultInvalidDate, - ordinal: defaultOrdinal, - dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, - relativeTime: defaultRelativeTime, +/**/ +var Stream = __nested_webpack_require_1607432__(/*! ./internal/streams/stream */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/stream.js"); +/**/ - months: defaultLocaleMonths, - monthsShort: defaultLocaleMonthsShort, +var Buffer = __nested_webpack_require_1607432__(/*! buffer */ "buffer").Buffer; +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} - week: defaultLocaleWeek, +/**/ +var debugUtil = __nested_webpack_require_1607432__(/*! util */ "util"); +var debug; +if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog('stream'); +} else { + debug = function debug() {}; +} +/**/ - weekdays: defaultLocaleWeekdays, - weekdaysMin: defaultLocaleWeekdaysMin, - weekdaysShort: defaultLocaleWeekdaysShort, +var BufferList = __nested_webpack_require_1607432__(/*! ./internal/streams/buffer_list */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/buffer_list.js"); +var destroyImpl = __nested_webpack_require_1607432__(/*! ./internal/streams/destroy */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/destroy.js"); +var _require = __nested_webpack_require_1607432__(/*! ./internal/streams/state */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/state.js"), + getHighWaterMark = _require.getHighWaterMark; +var _require$codes = __nested_webpack_require_1607432__(/*! ../errors */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js").codes, + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; + +// Lazy loaded to improve the startup performance. +var StringDecoder; +var createReadableStreamAsyncIterator; +var from; +__nested_webpack_require_1607432__(/*! inherits */ "./build/cht-core-4-6/api/node_modules/inherits/inherits.js")(Readable, Stream); +var errorOrDestroy = destroyImpl.errorOrDestroy; +var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; +function prependListener(emitter, event, fn) { + // Sadly this is not cacheable as some libraries bundle their own + // event emitter implementation with them. + if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); - meridiemParse: defaultLocaleMeridiemParse, - }; + // This is a hack to make sure that our error handler is attached before any + // userland ones. NEVER DO THIS. This is here only because this code needs + // to continue to work with older versions of Node.js that do not include + // the prependListener() method. The goal is to eventually remove this hack. + if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; +} +function ReadableState(options, stream, isDuplex) { + Duplex = Duplex || __nested_webpack_require_1607432__(/*! ./_stream_duplex */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js"); + options = options || {}; - // internal storage for locale config files - var locales = {}, - localeFamilies = {}, - globalLocale; + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream. + // These options can be provided separately as readableXXX and writableXXX. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; - function commonPrefix(arr1, arr2) { - var i, - minl = Math.min(arr1.length, arr2.length); - for (i = 0; i < minl; i += 1) { - if (arr1[i] !== arr2[i]) { - return i; - } - } - return minl; - } + // object stream flag. Used to make read(n) ignore n and to + // make all the buffer merging and length checks go away + this.objectMode = !!options.objectMode; + if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; - function normalizeLocale(key) { - return key ? key.toLowerCase().replace('_', '-') : key; - } + // the point at which it stops calling _read() to fill the buffer + // Note: 0 is a valid value, means "don't call _read preemptively ever" + this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); - // pick the locale from the array - // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each - // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root - function chooseLocale(names) { - var i = 0, - j, - next, - locale, - split; + // A linked list is used to store data chunks instead of an array because the + // linked list can remove elements from the beginning faster than + // array.shift() + this.buffer = new BufferList(); + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; - while (i < names.length) { - split = normalizeLocale(names[i]).split('-'); - j = split.length; - next = normalizeLocale(names[i + 1]); - next = next ? next.split('-') : null; - while (j > 0) { - locale = loadLocale(split.slice(0, j).join('-')); - if (locale) { - return locale; - } - if ( - next && - next.length >= j && - commonPrefix(split, next) >= j - 1 - ) { - //the next array item is better than a shallower substring of this one - break; - } - j--; - } - i++; - } - return globalLocale; - } + // a flag to be able to tell if the event 'readable'/'data' is emitted + // immediately, or on a later tick. We set this to true at first, because + // any actions that shouldn't happen until "later" should generally also + // not happen before the first read call. + this.sync = true; - function loadLocale(name) { - var oldLocale = null, - aliasedRequire; - // TODO: Find a better way to register and load all the locales in Node - if ( - locales[name] === undefined && - "object" !== 'undefined' && - module && - module.exports - ) { - try { - oldLocale = globalLocale._abbr; - aliasedRequire = undefined; - __webpack_require__("./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale sync recursive ^\\.\\/.*$")("./" + name); - getSetGlobalLocale(oldLocale); - } catch (e) { - // mark as not found to avoid repeating expensive file require call causing high CPU - // when trying to find en-US, en_US, en-us for every format call - locales[name] = null; // null means not found - } - } - return locales[name]; - } + // whenever we return null, then we set a flag to say + // that we're awaiting a 'readable' event emission. + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; + this.paused = true; - // This function will load locale and then set the global locale. If - // no arguments are passed in, it will simply return the current global - // locale key. - function getSetGlobalLocale(key, values) { - var data; - if (key) { - if (isUndefined(values)) { - data = getLocale(key); - } else { - data = defineLocale(key, values); - } + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; - if (data) { - // moment.duration._locale = moment._locale = data; - globalLocale = data; - } else { - if (typeof console !== 'undefined' && console.warn) { - //warn user if arguments are passed but the locale could not be set - console.warn( - 'Locale ' + key + ' not found. Did you forget to load it?' - ); - } - } - } + // Should .destroy() be called after 'end' (and potentially 'finish') + this.autoDestroy = !!options.autoDestroy; - return globalLocale._abbr; - } + // has it been destroyed + this.destroyed = false; - function defineLocale(name, config) { - if (config !== null) { - var locale, - parentConfig = baseConfig; - config.abbr = name; - if (locales[name] != null) { - deprecateSimple( - 'defineLocaleOverride', - 'use moment.updateLocale(localeName, config) to change ' + - 'an existing locale. moment.defineLocale(localeName, ' + - 'config) should only be used for creating a new locale ' + - 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.' - ); - parentConfig = locales[name]._config; - } else if (config.parentLocale != null) { - if (locales[config.parentLocale] != null) { - parentConfig = locales[config.parentLocale]._config; - } else { - locale = loadLocale(config.parentLocale); - if (locale != null) { - parentConfig = locale._config; - } else { - if (!localeFamilies[config.parentLocale]) { - localeFamilies[config.parentLocale] = []; - } - localeFamilies[config.parentLocale].push({ - name: name, - config: config, - }); - return null; - } - } - } - locales[name] = new Locale(mergeConfigs(parentConfig, config)); + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; - if (localeFamilies[name]) { - localeFamilies[name].forEach(function (x) { - defineLocale(x.name, x.config); - }); - } + // the number of writers that are awaiting a drain event in .pipe()s + this.awaitDrain = 0; - // backwards compat for now: also set the locale - // make sure we set the locale AFTER all child locales have been - // created, so we won't end up with the child locale set. - getSetGlobalLocale(name); + // if true, a maybeReadMore has been scheduled + this.readingMore = false; + this.decoder = null; + this.encoding = null; + if (options.encoding) { + if (!StringDecoder) StringDecoder = __nested_webpack_require_1607432__(/*! string_decoder/ */ "./build/cht-core-4-6/api/node_modules/string_decoder/lib/string_decoder.js").StringDecoder; + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } +} +function Readable(options) { + Duplex = Duplex || __nested_webpack_require_1607432__(/*! ./_stream_duplex */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js"); + if (!(this instanceof Readable)) return new Readable(options); - return locales[name]; - } else { - // useful for testing - delete locales[name]; - return null; - } + // Checking for a Stream.Duplex instance is faster here instead of inside + // the ReadableState constructor, at least with V8 6.5 + var isDuplex = this instanceof Duplex; + this._readableState = new ReadableState(options, this, isDuplex); + + // legacy + this.readable = true; + if (options) { + if (typeof options.read === 'function') this._read = options.read; + if (typeof options.destroy === 'function') this._destroy = options.destroy; + } + Stream.call(this); +} +Object.defineProperty(Readable.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === undefined) { + return false; + } + return this._readableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._readableState) { + return; } - function updateLocale(name, config) { - if (config != null) { - var locale, - tmpLocale, - parentConfig = baseConfig; + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + } +}); +Readable.prototype.destroy = destroyImpl.destroy; +Readable.prototype._undestroy = destroyImpl.undestroy; +Readable.prototype._destroy = function (err, cb) { + cb(err); +}; - if (locales[name] != null && locales[name].parentLocale != null) { - // Update existing child locale in-place to avoid memory-leaks - locales[name].set(mergeConfigs(locales[name]._config, config)); - } else { - // MERGE - tmpLocale = loadLocale(name); - if (tmpLocale != null) { - parentConfig = tmpLocale._config; - } - config = mergeConfigs(parentConfig, config); - if (tmpLocale == null) { - // updateLocale is called for creating a new locale - // Set abbr so it will have a name (getters return - // undefined otherwise). - config.abbr = name; - } - locale = new Locale(config); - locale.parentLocale = locales[name]; - locales[name] = locale; - } +// Manually shove something into the read() buffer. +// This returns true if the highWaterMark has not been hit yet, +// similar to how Writable.write() returns true if you should +// write() some more. +Readable.prototype.push = function (chunk, encoding) { + var state = this._readableState; + var skipChunkCheck; + if (!state.objectMode) { + if (typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer.from(chunk, encoding); + encoding = ''; + } + skipChunkCheck = true; + } + } else { + skipChunkCheck = true; + } + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); +}; - // backwards compat for now: also set the locale - getSetGlobalLocale(name); +// Unshift should *always* be something directly out of read() +Readable.prototype.unshift = function (chunk) { + return readableAddChunk(this, chunk, null, true, false); +}; +function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { + debug('readableAddChunk', chunk); + var state = stream._readableState; + if (chunk === null) { + state.reading = false; + onEofChunk(stream, state); + } else { + var er; + if (!skipChunkCheck) er = chunkInvalid(state, chunk); + if (er) { + errorOrDestroy(stream, er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (addToFront) { + if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true); + } else if (state.ended) { + errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); + } else if (state.destroyed) { + return false; + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); } else { - // pass null for config to unupdate, useful for tests - if (locales[name] != null) { - if (locales[name].parentLocale != null) { - locales[name] = locales[name].parentLocale; - if (name === getSetGlobalLocale()) { - getSetGlobalLocale(name); - } - } else if (locales[name] != null) { - delete locales[name]; - } - } + addChunk(stream, state, chunk, false); } - return locales[name]; + } + } else if (!addToFront) { + state.reading = false; + maybeReadMore(stream, state); } + } - // returns locale data - function getLocale(key) { - var locale; - - if (key && key._locale && key._locale._abbr) { - key = key._locale._abbr; - } - - if (!key) { - return globalLocale; - } + // We can push more data if we are below the highWaterMark. + // Also, if we have no data yet, we can stand some more bytes. + // This is to work around cases where hwm=0, such as the repl. + return !state.ended && (state.length < state.highWaterMark || state.length === 0); +} +function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + state.awaitDrain = 0; + stream.emit('data', chunk); + } else { + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); + if (state.needReadable) emitReadable(stream); + } + maybeReadMore(stream, state); +} +function chunkInvalid(state, chunk) { + var er; + if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk); + } + return er; +} +Readable.prototype.isPaused = function () { + return this._readableState.flowing === false; +}; - if (!isArray(key)) { - //short-circuit everything else - locale = loadLocale(key); - if (locale) { - return locale; - } - key = [key]; - } +// backwards compatibility. +Readable.prototype.setEncoding = function (enc) { + if (!StringDecoder) StringDecoder = __nested_webpack_require_1607432__(/*! string_decoder/ */ "./build/cht-core-4-6/api/node_modules/string_decoder/lib/string_decoder.js").StringDecoder; + var decoder = new StringDecoder(enc); + this._readableState.decoder = decoder; + // If setEncoding(null), decoder.encoding equals utf8 + this._readableState.encoding = this._readableState.decoder.encoding; - return chooseLocale(key); - } + // Iterate over current buffer to convert already stored Buffers: + var p = this._readableState.buffer.head; + var content = ''; + while (p !== null) { + content += decoder.write(p.data); + p = p.next; + } + this._readableState.buffer.clear(); + if (content !== '') this._readableState.buffer.push(content); + this._readableState.length = content.length; + return this; +}; - function listLocales() { - return keys(locales); - } +// Don't raise the hwm > 1GB +var MAX_HWM = 0x40000000; +function computeNewHighWaterMark(n) { + if (n >= MAX_HWM) { + // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE. + n = MAX_HWM; + } else { + // Get the next highest power of 2 to prevent increasing hwm excessively in + // tiny amounts + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; + } + return n; +} - function checkOverflow(m) { - var overflow, - a = m._a; +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function howMuchToRead(n, state) { + if (n <= 0 || state.length === 0 && state.ended) return 0; + if (state.objectMode) return 1; + if (n !== n) { + // Only flow one buffer at a time + if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; + } + // If we're asking for more than the current hwm, then raise the hwm. + if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); + if (n <= state.length) return n; + // Don't have enough + if (!state.ended) { + state.needReadable = true; + return 0; + } + return state.length; +} - if (a && getParsingFlags(m).overflow === -2) { - overflow = - a[MONTH] < 0 || a[MONTH] > 11 - ? MONTH - : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) - ? DATE - : a[HOUR] < 0 || - a[HOUR] > 24 || - (a[HOUR] === 24 && - (a[MINUTE] !== 0 || - a[SECOND] !== 0 || - a[MILLISECOND] !== 0)) - ? HOUR - : a[MINUTE] < 0 || a[MINUTE] > 59 - ? MINUTE - : a[SECOND] < 0 || a[SECOND] > 59 - ? SECOND - : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 - ? MILLISECOND - : -1; +// you can override either this method, or the async _read(n) below. +Readable.prototype.read = function (n) { + debug('read', n); + n = parseInt(n, 10); + var state = this._readableState; + var nOrig = n; + if (n !== 0) state.emittedReadable = false; - if ( - getParsingFlags(m)._overflowDayOfYear && - (overflow < YEAR || overflow > DATE) - ) { - overflow = DATE; - } - if (getParsingFlags(m)._overflowWeeks && overflow === -1) { - overflow = WEEK; - } - if (getParsingFlags(m)._overflowWeekday && overflow === -1) { - overflow = WEEKDAY; - } + // if we're doing read(0) to trigger a readable event, but we + // already have a bunch of data in the buffer, then just trigger + // the 'readable' event and move on. + if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { + debug('read: emitReadable', state.length, state.ended); + if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); + return null; + } + n = howMuchToRead(n, state); - getParsingFlags(m).overflow = overflow; - } + // if we've ended, and we're now clear, then finish it up. + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this); + return null; + } - return m; - } + // All the actual chunk generation logic needs to be + // *below* the call to _read. The reason is that in certain + // synthetic stream cases, such as passthrough streams, _read + // may be a completely synchronous operation which may change + // the state of the read buffer, providing enough data when + // before there was *not* enough. + // + // So, the steps are: + // 1. Figure out what the state of things will be after we do + // a read from the buffer. + // + // 2. If that resulting state will trigger a _read, then call _read. + // Note that this may be asynchronous, or synchronous. Yes, it is + // deeply ugly to write APIs this way, but that still doesn't mean + // that the Readable class should behave improperly, as streams are + // designed to be sync/async agnostic. + // Take note if the _read call is sync or async (ie, if the read call + // has returned yet), so that we know whether or not it's safe to emit + // 'readable' etc. + // + // 3. Actually pull the requested chunks out of the buffer and return. - // iso 8601 regex - // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) - var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, - basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, - tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, - isoDates = [ - ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], - ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], - ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], - ['GGGG-[W]WW', /\d{4}-W\d\d/, false], - ['YYYY-DDD', /\d{4}-\d{3}/], - ['YYYY-MM', /\d{4}-\d\d/, false], - ['YYYYYYMMDD', /[+-]\d{10}/], - ['YYYYMMDD', /\d{8}/], - ['GGGG[W]WWE', /\d{4}W\d{3}/], - ['GGGG[W]WW', /\d{4}W\d{2}/, false], - ['YYYYDDD', /\d{7}/], - ['YYYYMM', /\d{6}/, false], - ['YYYY', /\d{4}/, false], - ], - // iso time formats and regexes - isoTimes = [ - ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], - ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], - ['HH:mm:ss', /\d\d:\d\d:\d\d/], - ['HH:mm', /\d\d:\d\d/], - ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], - ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], - ['HHmmss', /\d\d\d\d\d\d/], - ['HHmm', /\d\d\d\d/], - ['HH', /\d\d/], - ], - aspNetJsonRegex = /^\/?Date\((-?\d+)/i, - // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 - rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, - obsOffsets = { - UT: 0, - GMT: 0, - EDT: -4 * 60, - EST: -5 * 60, - CDT: -5 * 60, - CST: -6 * 60, - MDT: -6 * 60, - MST: -7 * 60, - PDT: -7 * 60, - PST: -8 * 60, - }; + // if we need a readable event, then we need to do some reading. + var doRead = state.needReadable; + debug('need readable', doRead); - // date from iso format - function configFromISO(config) { - var i, - l, - string = config._i, - match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), - allowTime, - dateFormat, - timeFormat, - tzFormat; + // if we currently have less than the highWaterMark, then also read some + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + debug('length less than watermark', doRead); + } - if (match) { - getParsingFlags(config).iso = true; + // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. + if (state.ended || state.reading) { + doRead = false; + debug('reading or ended', doRead); + } else if (doRead) { + debug('do read'); + state.reading = true; + state.sync = true; + // if the length is currently zero, then we *need* a readable event. + if (state.length === 0) state.needReadable = true; + // call internal read method + this._read(state.highWaterMark); + state.sync = false; + // If _read pushed data synchronously, then `reading` will be false, + // and we need to re-evaluate how much data we can return to the user. + if (!state.reading) n = howMuchToRead(nOrig, state); + } + var ret; + if (n > 0) ret = fromList(n, state);else ret = null; + if (ret === null) { + state.needReadable = state.length <= state.highWaterMark; + n = 0; + } else { + state.length -= n; + state.awaitDrain = 0; + } + if (state.length === 0) { + // If we have nothing in the buffer, then we want to know + // as soon as we *do* get something into the buffer. + if (!state.ended) state.needReadable = true; - for (i = 0, l = isoDates.length; i < l; i++) { - if (isoDates[i][1].exec(match[1])) { - dateFormat = isoDates[i][0]; - allowTime = isoDates[i][2] !== false; - break; - } - } - if (dateFormat == null) { - config._isValid = false; - return; - } - if (match[3]) { - for (i = 0, l = isoTimes.length; i < l; i++) { - if (isoTimes[i][1].exec(match[3])) { - // match[2] should be 'T' or space - timeFormat = (match[2] || ' ') + isoTimes[i][0]; - break; - } - } - if (timeFormat == null) { - config._isValid = false; - return; - } - } - if (!allowTime && timeFormat != null) { - config._isValid = false; - return; - } - if (match[4]) { - if (tzRegex.exec(match[4])) { - tzFormat = 'Z'; - } else { - config._isValid = false; - return; - } - } - config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); - configFromStringAndFormat(config); - } else { - config._isValid = false; - } + // If we tried to read() past the EOF, then emit end on the next tick. + if (nOrig !== n && state.ended) endReadable(this); + } + if (ret !== null) this.emit('data', ret); + return ret; +}; +function onEofChunk(stream, state) { + debug('onEofChunk'); + if (state.ended) return; + if (state.decoder) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + if (state.sync) { + // if we are sync, wait until next tick to emit the data. + // Otherwise we risk emitting data in the flow() + // the readable code triggers during a read() call + emitReadable(stream); + } else { + // emit 'readable' now to make sure it gets picked up. + state.needReadable = false; + if (!state.emittedReadable) { + state.emittedReadable = true; + emitReadable_(stream); } + } +} - function extractFromRFC2822Strings( - yearStr, - monthStr, - dayStr, - hourStr, - minuteStr, - secondStr - ) { - var result = [ - untruncateYear(yearStr), - defaultLocaleMonthsShort.indexOf(monthStr), - parseInt(dayStr, 10), - parseInt(hourStr, 10), - parseInt(minuteStr, 10), - ]; +// Don't emit readable right away in sync mode, because this can trigger +// another read() call => stack overflow. This way, it might trigger +// a nextTick recursion warning, but that's not so bad. +function emitReadable(stream) { + var state = stream._readableState; + debug('emitReadable', state.needReadable, state.emittedReadable); + state.needReadable = false; + if (!state.emittedReadable) { + debug('emitReadable', state.flowing); + state.emittedReadable = true; + process.nextTick(emitReadable_, stream); + } +} +function emitReadable_(stream) { + var state = stream._readableState; + debug('emitReadable_', state.destroyed, state.length, state.ended); + if (!state.destroyed && (state.length || state.ended)) { + stream.emit('readable'); + state.emittedReadable = false; + } - if (secondStr) { - result.push(parseInt(secondStr, 10)); - } + // The stream needs another readable event if + // 1. It is not flowing, as the flow mechanism will take + // care of it. + // 2. It is not ended. + // 3. It is below the highWaterMark, so we can schedule + // another readable later. + state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; + flow(stream); +} - return result; - } +// at this point, the user has presumably seen the 'readable' event, +// and called read() to consume some data. that may have triggered +// in turn another _read(n) call, in which case reading = true if +// it's in progress. +// However, if we're not ended, or reading, and the length < hwm, +// then go ahead and try to read some more preemptively. +function maybeReadMore(stream, state) { + if (!state.readingMore) { + state.readingMore = true; + process.nextTick(maybeReadMore_, stream, state); + } +} +function maybeReadMore_(stream, state) { + // Attempt to read more data if we should. + // + // The conditions for reading more data are (one of): + // - Not enough data buffered (state.length < state.highWaterMark). The loop + // is responsible for filling the buffer with enough data if such data + // is available. If highWaterMark is 0 and we are not in the flowing mode + // we should _not_ attempt to buffer any extra data. We'll get more data + // when the stream consumer calls read() instead. + // - No data in the buffer, and the stream is in flowing mode. In this mode + // the loop below is responsible for ensuring read() is called. Failing to + // call read here would abort the flow and there's no other mechanism for + // continuing the flow if the stream consumer has just subscribed to the + // 'data' event. + // + // In addition to the above conditions to keep reading data, the following + // conditions prevent the data from being read: + // - The stream has ended (state.ended). + // - There is already a pending 'read' operation (state.reading). This is a + // case where the the stream has called the implementation defined _read() + // method, but they are processing the call asynchronously and have _not_ + // called push() with new data. In this case we skip performing more + // read()s. The execution ends in this method again after the _read() ends + // up calling push() with more data. + while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) { + var len = state.length; + debug('maybeReadMore read 0'); + stream.read(0); + if (len === state.length) + // didn't get any data, stop spinning. + break; + } + state.readingMore = false; +} - function untruncateYear(yearStr) { - var year = parseInt(yearStr, 10); - if (year <= 49) { - return 2000 + year; - } else if (year <= 999) { - return 1900 + year; - } - return year; +// abstract method. to be overridden in specific implementation classes. +// call cb(er, data) where data is <= n in length. +// for virtual (non-string, non-buffer) streams, "length" is somewhat +// arbitrary, and perhaps not very meaningful. +Readable.prototype._read = function (n) { + errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')); +}; +Readable.prototype.pipe = function (dest, pipeOpts) { + var src = this; + var state = this._readableState; + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; + case 1: + state.pipes = [state.pipes, dest]; + break; + default: + state.pipes.push(dest); + break; + } + state.pipesCount += 1; + debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); + var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; + var endFn = doEnd ? onend : unpipe; + if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn); + dest.on('unpipe', onunpipe); + function onunpipe(readable, unpipeInfo) { + debug('onunpipe'); + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } } + } + function onend() { + debug('onend'); + dest.end(); + } - function preprocessRFC2822(s) { - // Remove comments and folding whitespace and replace multiple-spaces with a single space - return s - .replace(/\([^)]*\)|[\n\t]/g, ' ') - .replace(/(\s\s+)/g, ' ') - .replace(/^\s\s*/, '') - .replace(/\s\s*$/, ''); - } + // when the dest drains, it reduces the awaitDrain counter + // on the source. This would be more elegant with a .once() + // handler in flow(), but adding and removing repeatedly is + // too slow. + var ondrain = pipeOnDrain(src); + dest.on('drain', ondrain); + var cleanedUp = false; + function cleanup() { + debug('cleanup'); + // cleanup event handlers once the pipe is broken + dest.removeListener('close', onclose); + dest.removeListener('finish', onfinish); + dest.removeListener('drain', ondrain); + dest.removeListener('error', onerror); + dest.removeListener('unpipe', onunpipe); + src.removeListener('end', onend); + src.removeListener('end', unpipe); + src.removeListener('data', ondata); + cleanedUp = true; - function checkWeekday(weekdayStr, parsedInput, config) { - if (weekdayStr) { - // TODO: Replace the vanilla JS Date object with an independent day-of-week check. - var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), - weekdayActual = new Date( - parsedInput[0], - parsedInput[1], - parsedInput[2] - ).getDay(); - if (weekdayProvided !== weekdayActual) { - getParsingFlags(config).weekdayMismatch = true; - config._isValid = false; - return false; - } - } - return true; + // if the reader is waiting for a drain event from this + // specific writer, then it would cause it to never start + // flowing again. + // So, if this is awaiting a drain, then we just call it now. + // If we don't know, then assume that we are waiting for one. + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); + } + src.on('data', ondata); + function ondata(chunk) { + debug('ondata'); + var ret = dest.write(chunk); + debug('dest.write', ret); + if (ret === false) { + // If the user unpiped during `dest.write()`, it is possible + // to get stuck in a permanently paused state if that write + // also returned false. + // => Check whether `dest` is still a piping destination. + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { + debug('false write response, pause', state.awaitDrain); + state.awaitDrain++; + } + src.pause(); } + } - function calculateOffset(obsOffset, militaryOffset, numOffset) { - if (obsOffset) { - return obsOffsets[obsOffset]; - } else if (militaryOffset) { - // the only allowed military tz is Z - return 0; - } else { - var hm = parseInt(numOffset, 10), - m = hm % 100, - h = (hm - m) / 100; - return h * 60 + m; - } - } + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. + function onerror(er) { + debug('onerror', er); + unpipe(); + dest.removeListener('error', onerror); + if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er); + } - // date and time from ref 2822 format - function configFromRFC2822(config) { - var match = rfc2822.exec(preprocessRFC2822(config._i)), - parsedArray; - if (match) { - parsedArray = extractFromRFC2822Strings( - match[4], - match[3], - match[2], - match[5], - match[6], - match[7] - ); - if (!checkWeekday(match[1], parsedArray, config)) { - return; - } + // Make sure our error handler is attached before userland ones. + prependListener(dest, 'error', onerror); - config._a = parsedArray; - config._tzm = calculateOffset(match[8], match[9], match[10]); + // Both close and finish should trigger unpipe, but only once. + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } + dest.once('close', onclose); + function onfinish() { + debug('onfinish'); + dest.removeListener('close', onclose); + unpipe(); + } + dest.once('finish', onfinish); + function unpipe() { + debug('unpipe'); + src.unpipe(dest); + } - config._d = createUTCDate.apply(null, config._a); - config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + // tell the dest that it's being piped to + dest.emit('pipe', src); - getParsingFlags(config).rfc2822 = true; - } else { - config._isValid = false; - } + // start the flow if it hasn't been started already. + if (!state.flowing) { + debug('pipe resume'); + src.resume(); + } + return dest; +}; +function pipeOnDrain(src) { + return function pipeOnDrainFunctionResult() { + var state = src._readableState; + debug('pipeOnDrain', state.awaitDrain); + if (state.awaitDrain) state.awaitDrain--; + if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { + state.flowing = true; + flow(src); } + }; +} +Readable.prototype.unpipe = function (dest) { + var state = this._readableState; + var unpipeInfo = { + hasUnpiped: false + }; - // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict - function configFromString(config) { - var matched = aspNetJsonRegex.exec(config._i); - if (matched !== null) { - config._d = new Date(+matched[1]); - return; - } - - configFromISO(config); - if (config._isValid === false) { - delete config._isValid; - } else { - return; - } - - configFromRFC2822(config); - if (config._isValid === false) { - delete config._isValid; - } else { - return; - } - - if (config._strict) { - config._isValid = false; - } else { - // Final attempt, use Input Fallback - hooks.createFromInputFallback(config); - } - } + // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) return this; - hooks.createFromInputFallback = deprecate( - 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + - 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + - 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', - function (config) { - config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); - } - ); + // just one destination. most common case. + if (state.pipesCount === 1) { + // passed in one, but it's not the right one. + if (dest && dest !== state.pipes) return this; + if (!dest) dest = state.pipes; - // Pick the first defined of two or three arguments. - function defaults(a, b, c) { - if (a != null) { - return a; - } - if (b != null) { - return b; - } - return c; - } + // got a match. + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) dest.emit('unpipe', this, unpipeInfo); + return this; + } - function currentDateArray(config) { - // hooks is actually the exported moment object - var nowValue = new Date(hooks.now()); - if (config._useUTC) { - return [ - nowValue.getUTCFullYear(), - nowValue.getUTCMonth(), - nowValue.getUTCDate(), - ]; - } - return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; - } + // slow case. multiple pipe destinations. - // convert an array to a date. - // the array should mirror the parameters below - // note: all values past the year are optional and will default to the lowest possible value. - // [year, month, day , hour, minute, second, millisecond] - function configFromArray(config) { - var i, - date, - input = [], - currentDate, - expectedWeekday, - yearToUse; + if (!dest) { + // remove all. + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, { + hasUnpiped: false + }); + return this; + } - if (config._d) { - return; - } + // try to find the right one. + var index = indexOf(state.pipes, dest); + if (index === -1) return this; + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) state.pipes = state.pipes[0]; + dest.emit('unpipe', this, unpipeInfo); + return this; +}; - currentDate = currentDateArray(config); +// set up data events if they are asked for +// Ensure readable listeners eventually get something +Readable.prototype.on = function (ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + var state = this._readableState; + if (ev === 'data') { + // update readableListening so that resume() may be a no-op + // a few lines down. This is needed to support once('readable'). + state.readableListening = this.listenerCount('readable') > 0; - //compute day of the year from weeks and weekdays - if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { - dayOfYearFromWeekInfo(config); - } + // Try start flowing on next tick if stream isn't explicitly paused + if (state.flowing !== false) this.resume(); + } else if (ev === 'readable') { + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.flowing = false; + state.emittedReadable = false; + debug('on readable', state.length, state.reading); + if (state.length) { + emitReadable(this); + } else if (!state.reading) { + process.nextTick(nReadingNextTick, this); + } + } + } + return res; +}; +Readable.prototype.addListener = Readable.prototype.on; +Readable.prototype.removeListener = function (ev, fn) { + var res = Stream.prototype.removeListener.call(this, ev, fn); + if (ev === 'readable') { + // We need to check if there is someone still listening to + // readable and reset the state. However this needs to happen + // after readable has been emitted but before I/O (nextTick) to + // support once('readable', fn) cycles. This means that calling + // resume within the same tick will have no + // effect. + process.nextTick(updateReadableListening, this); + } + return res; +}; +Readable.prototype.removeAllListeners = function (ev) { + var res = Stream.prototype.removeAllListeners.apply(this, arguments); + if (ev === 'readable' || ev === undefined) { + // We need to check if there is someone still listening to + // readable and reset the state. However this needs to happen + // after readable has been emitted but before I/O (nextTick) to + // support once('readable', fn) cycles. This means that calling + // resume within the same tick will have no + // effect. + process.nextTick(updateReadableListening, this); + } + return res; +}; +function updateReadableListening(self) { + var state = self._readableState; + state.readableListening = self.listenerCount('readable') > 0; + if (state.resumeScheduled && !state.paused) { + // flowing needs to be set to true now, otherwise + // the upcoming resume will not flow. + state.flowing = true; - //if the day of the year is set, figure out what it is - if (config._dayOfYear != null) { - yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + // crude way to check if we should resume + } else if (self.listenerCount('data') > 0) { + self.resume(); + } +} +function nReadingNextTick(self) { + debug('readable nexttick read 0'); + self.read(0); +} - if ( - config._dayOfYear > daysInYear(yearToUse) || - config._dayOfYear === 0 - ) { - getParsingFlags(config)._overflowDayOfYear = true; - } +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. +Readable.prototype.resume = function () { + var state = this._readableState; + if (!state.flowing) { + debug('resume'); + // we flow only if there is no one listening + // for readable, but we still have to call + // resume() + state.flowing = !state.readableListening; + resume(this, state); + } + state.paused = false; + return this; +}; +function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + process.nextTick(resume_, stream, state); + } +} +function resume_(stream, state) { + debug('resume', state.reading); + if (!state.reading) { + stream.read(0); + } + state.resumeScheduled = false; + stream.emit('resume'); + flow(stream); + if (state.flowing && !state.reading) stream.read(0); +} +Readable.prototype.pause = function () { + debug('call pause flowing=%j', this._readableState.flowing); + if (this._readableState.flowing !== false) { + debug('pause'); + this._readableState.flowing = false; + this.emit('pause'); + } + this._readableState.paused = true; + return this; +}; +function flow(stream) { + var state = stream._readableState; + debug('flow', state.flowing); + while (state.flowing && stream.read() !== null); +} - date = createUTCDate(yearToUse, 0, config._dayOfYear); - config._a[MONTH] = date.getUTCMonth(); - config._a[DATE] = date.getUTCDate(); - } +// wrap an old-style stream as the async data source. +// This is *not* part of the readable stream interface. +// It is an ugly unfortunate mess of history. +Readable.prototype.wrap = function (stream) { + var _this = this; + var state = this._readableState; + var paused = false; + stream.on('end', function () { + debug('wrapped end'); + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) _this.push(chunk); + } + _this.push(null); + }); + stream.on('data', function (chunk) { + debug('wrapped data'); + if (state.decoder) chunk = state.decoder.write(chunk); - // Default to current date. - // * if no year, month, day of month are given, default to today - // * if day of month is given, default month and year - // * if month is given, default only year - // * if year is given, don't default anything - for (i = 0; i < 3 && config._a[i] == null; ++i) { - config._a[i] = input[i] = currentDate[i]; - } + // don't skip over falsy values in objectMode + if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; + var ret = _this.push(chunk); + if (!ret) { + paused = true; + stream.pause(); + } + }); - // Zero out whatever was not defaulted, including time - for (; i < 7; i++) { - config._a[i] = input[i] = - config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i]; - } + // proxy all the other methods. + // important when wrapping filters and duplexes. + for (var i in stream) { + if (this[i] === undefined && typeof stream[i] === 'function') { + this[i] = function methodWrap(method) { + return function methodWrapReturnFunction() { + return stream[method].apply(stream, arguments); + }; + }(i); + } + } - // Check for 24:00:00.000 - if ( - config._a[HOUR] === 24 && - config._a[MINUTE] === 0 && - config._a[SECOND] === 0 && - config._a[MILLISECOND] === 0 - ) { - config._nextDay = true; - config._a[HOUR] = 0; - } + // proxy certain important events. + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); + } - config._d = (config._useUTC ? createUTCDate : createDate).apply( - null, - input - ); - expectedWeekday = config._useUTC - ? config._d.getUTCDay() - : config._d.getDay(); + // when we try to consume some more bytes, simply unpause the + // underlying stream. + this._read = function (n) { + debug('wrapped _read', n); + if (paused) { + paused = false; + stream.resume(); + } + }; + return this; +}; +if (typeof Symbol === 'function') { + Readable.prototype[Symbol.asyncIterator] = function () { + if (createReadableStreamAsyncIterator === undefined) { + createReadableStreamAsyncIterator = __nested_webpack_require_1607432__(/*! ./internal/streams/async_iterator */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/async_iterator.js"); + } + return createReadableStreamAsyncIterator(this); + }; +} +Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.highWaterMark; + } +}); +Object.defineProperty(Readable.prototype, 'readableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState && this._readableState.buffer; + } +}); +Object.defineProperty(Readable.prototype, 'readableFlowing', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.flowing; + }, + set: function set(state) { + if (this._readableState) { + this._readableState.flowing = state; + } + } +}); - // Apply timezone offset from input. The actual utcOffset can be changed - // with parseZone. - if (config._tzm != null) { - config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); - } +// exposed for testing purposes only. +Readable._fromList = fromList; +Object.defineProperty(Readable.prototype, 'readableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.length; + } +}); - if (config._nextDay) { - config._a[HOUR] = 24; - } +// Pluck off n bytes from an array of buffers. +// Length is the combined lengths of all the buffers in the list. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromList(n, state) { + // nothing buffered + if (state.length === 0) return null; + var ret; + if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { + // read it all, truncate the list + if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + // read part of list + ret = state.buffer.consume(n, state.decoder); + } + return ret; +} +function endReadable(stream) { + var state = stream._readableState; + debug('endReadable', state.endEmitted); + if (!state.endEmitted) { + state.ended = true; + process.nextTick(endReadableNT, state, stream); + } +} +function endReadableNT(state, stream) { + debug('endReadableNT', state.endEmitted, state.length); - // check for mismatching day of week - if ( - config._w && - typeof config._w.d !== 'undefined' && - config._w.d !== expectedWeekday - ) { - getParsingFlags(config).weekdayMismatch = true; - } + // Check that we didn't get one last unshift. + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); + if (state.autoDestroy) { + // In case of duplex streams we need a way to detect + // if the writable side is ready for autoDestroy as well + var wState = stream._writableState; + if (!wState || wState.autoDestroy && wState.finished) { + stream.destroy(); + } + } + } +} +if (typeof Symbol === 'function') { + Readable.from = function (iterable, opts) { + if (from === undefined) { + from = __nested_webpack_require_1607432__(/*! ./internal/streams/from */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/from.js"); } + return from(Readable, iterable, opts); + }; +} +function indexOf(xs, x) { + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) return i; + } + return -1; +} - function dayOfYearFromWeekInfo(config) { - var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; +/***/ }), - w = config._w; - if (w.GG != null || w.W != null || w.E != null) { - dow = 1; - doy = 4; +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js": +/*!***********************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js ***! + \***********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1645424__) => { - // TODO: We need to take the current isoWeekYear, but that depends on - // how we interpret now (local, utc, fixed offset). So create - // a now version of current config (take local/utc/offset flags, and - // create now). - weekYear = defaults( - w.GG, - config._a[YEAR], - weekOfYear(createLocal(), 1, 4).year - ); - week = defaults(w.W, 1); - weekday = defaults(w.E, 1); - if (weekday < 1 || weekday > 7) { - weekdayOverflow = true; - } - } else { - dow = config._locale._week.dow; - doy = config._locale._week.doy; +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. - curWeek = weekOfYear(createLocal(), dow, doy); +// a transform stream is a readable/writable stream where you do +// something with the data. Sometimes it's called a "filter", +// but that's not a great name for it, since that implies a thing where +// some bits pass through, and others are simply ignored. (That would +// be a valid example of a transform, of course.) +// +// While the output is causally related to the input, it's not a +// necessarily symmetric or synchronous transformation. For example, +// a zlib stream might take multiple plain-text writes(), and then +// emit a single compressed chunk some time in the future. +// +// Here's how this works: +// +// The Transform stream has all the aspects of the readable and writable +// stream classes. When you write(chunk), that calls _write(chunk,cb) +// internally, and returns false if there's a lot of pending writes +// buffered up. When you call read(), that calls _read(n) until +// there's enough pending readable data buffered up. +// +// In a transform stream, the written data is placed in a buffer. When +// _read(n) is called, it transforms the queued up data, calling the +// buffered _write cb's as it consumes chunks. If consuming a single +// written chunk would result in multiple output chunks, then the first +// outputted bit calls the readcb, and subsequent chunks just go into +// the read buffer, and will cause it to emit 'readable' if necessary. +// +// This way, back-pressure is actually determined by the reading side, +// since _read has to be called to start processing a new chunk. However, +// a pathological inflate type of transform can cause excessive buffering +// here. For example, imagine a stream where every byte of input is +// interpreted as an integer from 0-255, and then results in that many +// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in +// 1kb of data being output. In this case, you could write a very small +// amount of input, and end up with a very large amount of output. In +// such a pathological inflating mechanism, there'd be no way to tell +// the system to stop doing the transform. A single 4MB write could +// cause the system to run out of memory. +// +// However, even in such a pathological case, only a single written chunk +// would be consumed, and then the rest would wait (un-transformed) until +// the results of the previous transformed chunk were consumed. - weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); - // Default to current week. - week = defaults(w.w, curWeek.week); - if (w.d != null) { - // weekday -- low day numbers are considered next week - weekday = w.d; - if (weekday < 0 || weekday > 6) { - weekdayOverflow = true; - } - } else if (w.e != null) { - // local weekday -- counting starts from beginning of week - weekday = w.e + dow; - if (w.e < 0 || w.e > 6) { - weekdayOverflow = true; - } - } else { - // default to beginning of week - weekday = dow; - } - } - if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { - getParsingFlags(config)._overflowWeeks = true; - } else if (weekdayOverflow != null) { - getParsingFlags(config)._overflowWeekday = true; - } else { - temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); - config._a[YEAR] = temp.year; - config._dayOfYear = temp.dayOfYear; - } - } +module.exports = Transform; +var _require$codes = __nested_webpack_require_1645424__(/*! ../errors */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js").codes, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, + ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; +var Duplex = __nested_webpack_require_1645424__(/*! ./_stream_duplex */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js"); +__nested_webpack_require_1645424__(/*! inherits */ "./build/cht-core-4-6/api/node_modules/inherits/inherits.js")(Transform, Duplex); +function afterTransform(er, data) { + var ts = this._transformState; + ts.transforming = false; + var cb = ts.writecb; + if (cb === null) { + return this.emit('error', new ERR_MULTIPLE_CALLBACK()); + } + ts.writechunk = null; + ts.writecb = null; + if (data != null) + // single equals check for both `null` and `undefined` + this.push(data); + cb(er); + var rs = this._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + this._read(rs.highWaterMark); + } +} +function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options); + Duplex.call(this, options); + this._transformState = { + afterTransform: afterTransform.bind(this), + needTransform: false, + transforming: false, + writecb: null, + writechunk: null, + writeencoding: null + }; - // constant that refers to the ISO standard - hooks.ISO_8601 = function () {}; + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; - // constant that refers to the RFC 2822 form - hooks.RFC_2822 = function () {}; + // we have implemented the _read method, and done the other things + // that Readable wants before the first _read call, so unset the + // sync guard flag. + this._readableState.sync = false; + if (options) { + if (typeof options.transform === 'function') this._transform = options.transform; + if (typeof options.flush === 'function') this._flush = options.flush; + } - // date from string and format string - function configFromStringAndFormat(config) { - // TODO: Move this to another part of the creation flow to prevent circular deps - if (config._f === hooks.ISO_8601) { - configFromISO(config); - return; - } - if (config._f === hooks.RFC_2822) { - configFromRFC2822(config); - return; - } - config._a = []; - getParsingFlags(config).empty = true; + // When the writable side finishes, then flush out anything remaining. + this.on('prefinish', prefinish); +} +function prefinish() { + var _this = this; + if (typeof this._flush === 'function' && !this._readableState.destroyed) { + this._flush(function (er, data) { + done(_this, er, data); + }); + } else { + done(this, null, null); + } +} +Transform.prototype.push = function (chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); +}; - // This array is used to make a Date, either with `new Date` or `Date.UTC` - var string = '' + config._i, - i, - parsedInput, - tokens, - token, - skipped, - stringLength = string.length, - totalParsedInputLength = 0, - era; +// This is the part where you do stuff! +// override this function in implementation classes. +// 'chunk' is an input chunk. +// +// Call `push(newChunk)` to pass along transformed output +// to the readable side. You may call 'push' zero or more times. +// +// Call `cb(err)` when you are done with this chunk. If you pass +// an error, then that'll put the hurt on the whole operation. If you +// never call cb(), then you'll never get another chunk. +Transform.prototype._transform = function (chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')); +}; +Transform.prototype._write = function (chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); + } +}; - tokens = - expandFormat(config._f, config._locale).match(formattingTokens) || []; +// Doesn't matter what the args are here. +// _transform does all the work. +// That we got here means that the readable side wants more data. +Transform.prototype._read = function (n) { + var ts = this._transformState; + if (ts.writechunk !== null && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + // mark that we need a transform, so that any data that comes in + // will get processed, now that we've asked for it. + ts.needTransform = true; + } +}; +Transform.prototype._destroy = function (err, cb) { + Duplex.prototype._destroy.call(this, err, function (err2) { + cb(err2); + }); +}; +function done(stream, er, data) { + if (er) return stream.emit('error', er); + if (data != null) + // single equals check for both `null` and `undefined` + stream.push(data); - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - parsedInput = (string.match(getParseRegexForToken(token, config)) || - [])[0]; - if (parsedInput) { - skipped = string.substr(0, string.indexOf(parsedInput)); - if (skipped.length > 0) { - getParsingFlags(config).unusedInput.push(skipped); - } - string = string.slice( - string.indexOf(parsedInput) + parsedInput.length - ); - totalParsedInputLength += parsedInput.length; - } - // don't parse if it's not a known token - if (formatTokenFunctions[token]) { - if (parsedInput) { - getParsingFlags(config).empty = false; - } else { - getParsingFlags(config).unusedTokens.push(token); - } - addTimeToArrayFromToken(token, parsedInput, config); - } else if (config._strict && !parsedInput) { - getParsingFlags(config).unusedTokens.push(token); - } - } + // TODO(BridgeAR): Write a test for these two error cases + // if there's nothing in the write buffer, then that means + // that nothing more will ever be provided + if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0(); + if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); + return stream.push(null); +} - // add remaining unparsed input length to the string - getParsingFlags(config).charsLeftOver = - stringLength - totalParsedInputLength; - if (string.length > 0) { - getParsingFlags(config).unusedInput.push(string); - } +/***/ }), - // clear _12h flag if hour is <= 12 - if ( - config._a[HOUR] <= 12 && - getParsingFlags(config).bigHour === true && - config._a[HOUR] > 0 - ) { - getParsingFlags(config).bigHour = undefined; - } +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js": +/*!**********************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js ***! + \**********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1654184__) => { - getParsingFlags(config).parsedDateParts = config._a.slice(0); - getParsingFlags(config).meridiem = config._meridiem; - // handle meridiem - config._a[HOUR] = meridiemFixWrap( - config._locale, - config._a[HOUR], - config._meridiem - ); +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. - // handle era - era = getParsingFlags(config).era; - if (era !== null) { - config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); - } +// A bit simpler than readable streams. +// Implement an async ._write(chunk, encoding, cb), and it'll handle all +// the drain event emission and buffering. - configFromArray(config); - checkOverflow(config); - } - function meridiemFixWrap(locale, hour, meridiem) { - var isPm; - if (meridiem == null) { - // nothing to do - return hour; - } - if (locale.meridiemHour != null) { - return locale.meridiemHour(hour, meridiem); - } else if (locale.isPM != null) { - // Fallback - isPm = locale.isPM(meridiem); - if (isPm && hour < 12) { - hour += 12; - } - if (!isPm && hour === 12) { - hour = 0; - } - return hour; - } else { - // this is not supposed to happen - return hour; - } - } +module.exports = Writable; - // date from string and array of format strings - function configFromStringAndArray(config) { - var tempConfig, - bestMoment, - scoreToBeat, - i, - currentScore, - validFormatFound, - bestFormatIsValid = false; +/* */ +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; + this.next = null; +} - if (config._f.length === 0) { - getParsingFlags(config).invalidFormat = true; - config._d = new Date(NaN); - return; - } +// It seems a linked list but it is not +// there will be only 2 of these for each stream +function CorkedRequest(state) { + var _this = this; + this.next = null; + this.entry = null; + this.finish = function () { + onCorkedFinish(_this, state); + }; +} +/* */ - for (i = 0; i < config._f.length; i++) { - currentScore = 0; - validFormatFound = false; - tempConfig = copyConfig({}, config); - if (config._useUTC != null) { - tempConfig._useUTC = config._useUTC; - } - tempConfig._f = config._f[i]; - configFromStringAndFormat(tempConfig); +/**/ +var Duplex; +/**/ - if (isValid(tempConfig)) { - validFormatFound = true; - } +Writable.WritableState = WritableState; + +/**/ +var internalUtil = { + deprecate: __nested_webpack_require_1654184__(/*! util-deprecate */ "./build/cht-core-4-6/api/node_modules/util-deprecate/node.js") +}; +/**/ - // if there is any input that was not parsed add a penalty for that format - currentScore += getParsingFlags(tempConfig).charsLeftOver; +/**/ +var Stream = __nested_webpack_require_1654184__(/*! ./internal/streams/stream */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/stream.js"); +/**/ - //or tokens - currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; +var Buffer = __nested_webpack_require_1654184__(/*! buffer */ "buffer").Buffer; +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} +var destroyImpl = __nested_webpack_require_1654184__(/*! ./internal/streams/destroy */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/destroy.js"); +var _require = __nested_webpack_require_1654184__(/*! ./internal/streams/state */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/state.js"), + getHighWaterMark = _require.getHighWaterMark; +var _require$codes = __nested_webpack_require_1654184__(/*! ../errors */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js").codes, + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, + ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, + ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, + ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; +var errorOrDestroy = destroyImpl.errorOrDestroy; +__nested_webpack_require_1654184__(/*! inherits */ "./build/cht-core-4-6/api/node_modules/inherits/inherits.js")(Writable, Stream); +function nop() {} +function WritableState(options, stream, isDuplex) { + Duplex = Duplex || __nested_webpack_require_1654184__(/*! ./_stream_duplex */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js"); + options = options || {}; - getParsingFlags(tempConfig).score = currentScore; + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream, + // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; - if (!bestFormatIsValid) { - if ( - scoreToBeat == null || - currentScore < scoreToBeat || - validFormatFound - ) { - scoreToBeat = currentScore; - bestMoment = tempConfig; - if (validFormatFound) { - bestFormatIsValid = true; - } - } - } else { - if (currentScore < scoreToBeat) { - scoreToBeat = currentScore; - bestMoment = tempConfig; - } - } - } + // object stream flag to indicate whether or not this stream + // contains buffers or objects. + this.objectMode = !!options.objectMode; + if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; - extend(config, bestMoment || tempConfig); - } + // the point at which write() starts returning false + // Note: 0 is a valid value, means that we always return false if + // the entire buffer is not flushed immediately on write() + this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); - function configFromObject(config) { - if (config._d) { - return; - } + // if _final has been called + this.finalCalled = false; - var i = normalizeObjectUnits(config._i), - dayOrDate = i.day === undefined ? i.date : i.day; - config._a = map( - [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], - function (obj) { - return obj && parseInt(obj, 10); - } - ); + // drain event flag. + this.needDrain = false; + // at the start of calling end() + this.ending = false; + // when end() has been called, and returned + this.ended = false; + // when 'finish' is emitted + this.finished = false; - configFromArray(config); - } + // has it been destroyed + this.destroyed = false; - function createFromConfig(config) { - var res = new Moment(checkOverflow(prepareConfig(config))); - if (res._nextDay) { - // Adding is smart enough around DST - res.add(1, 'd'); - res._nextDay = undefined; - } + // should we decode strings into buffers before passing to _write? + // this is here so that some node-core streams can optimize string + // handling at a lower level. + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; - return res; - } + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; - function prepareConfig(config) { - var input = config._i, - format = config._f; + // not an actual buffer we keep track of, but a measurement + // of how much we're waiting to get pushed to some underlying + // socket or file. + this.length = 0; - config._locale = config._locale || getLocale(config._l); + // a flag to see when we're in the middle of a write. + this.writing = false; - if (input === null || (format === undefined && input === '')) { - return createInvalid({ nullInput: true }); - } + // when true all writes will be buffered until .uncork() call + this.corked = 0; - if (typeof input === 'string') { - config._i = input = config._locale.preparse(input); - } + // a flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, because any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. + this.sync = true; - if (isMoment(input)) { - return new Moment(checkOverflow(input)); - } else if (isDate(input)) { - config._d = input; - } else if (isArray(format)) { - configFromStringAndArray(config); - } else if (format) { - configFromStringAndFormat(config); - } else { - configFromInput(config); - } + // a flag to know if we're processing previously buffered items, which + // may call the _write() callback in the same tick, so that we don't + // end up in an overlapped onwrite situation. + this.bufferProcessing = false; - if (!isValid(config)) { - config._d = null; - } + // the callback that's passed to _write(chunk,cb) + this.onwrite = function (er) { + onwrite(stream, er); + }; - return config; - } + // the callback that the user supplies to write(chunk,encoding,cb) + this.writecb = null; - function configFromInput(config) { - var input = config._i; - if (isUndefined(input)) { - config._d = new Date(hooks.now()); - } else if (isDate(input)) { - config._d = new Date(input.valueOf()); - } else if (typeof input === 'string') { - configFromString(config); - } else if (isArray(input)) { - config._a = map(input.slice(0), function (obj) { - return parseInt(obj, 10); - }); - configFromArray(config); - } else if (isObject(input)) { - configFromObject(config); - } else if (isNumber(input)) { - // from milliseconds - config._d = new Date(input); - } else { - hooks.createFromInputFallback(config); - } - } + // the amount that is being written when _write is called. + this.writelen = 0; + this.bufferedRequest = null; + this.lastBufferedRequest = null; - function createLocalOrUTC(input, format, locale, strict, isUTC) { - var c = {}; + // number of pending user-supplied write callbacks + // this must be 0 before 'finish' can be emitted + this.pendingcb = 0; - if (format === true || format === false) { - strict = format; - format = undefined; - } + // emit prefinish if the only thing we're waiting for is _write cbs + // This is relevant for synchronous Transform streams + this.prefinished = false; - if (locale === true || locale === false) { - strict = locale; - locale = undefined; - } + // True if the error was already emitted and should not be thrown again + this.errorEmitted = false; - if ( - (isObject(input) && isObjectEmpty(input)) || - (isArray(input) && input.length === 0) - ) { - input = undefined; - } - // object construction must be done this way. - // https://github.com/moment/moment/issues/1423 - c._isAMomentObject = true; - c._useUTC = c._isUTC = isUTC; - c._l = locale; - c._i = input; - c._f = format; - c._strict = strict; + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; - return createFromConfig(c); - } + // Should .destroy() be called after 'finish' (and potentially 'end') + this.autoDestroy = !!options.autoDestroy; - function createLocal(input, format, locale, strict) { - return createLocalOrUTC(input, format, locale, strict, false); - } + // count buffered requests + this.bufferedRequestCount = 0; - var prototypeMin = deprecate( - 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', - function () { - var other = createLocal.apply(null, arguments); - if (this.isValid() && other.isValid()) { - return other < this ? this : other; - } else { - return createInvalid(); - } - } - ), - prototypeMax = deprecate( - 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', - function () { - var other = createLocal.apply(null, arguments); - if (this.isValid() && other.isValid()) { - return other > this ? this : other; - } else { - return createInvalid(); - } - } - ); + // allocate the first CorkedRequest, there is always + // one allocated and free to use, and we maintain at most two + this.corkedRequestsFree = new CorkedRequest(this); +} +WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest; + var out = []; + while (current) { + out.push(current); + current = current.next; + } + return out; +}; +(function () { + try { + Object.defineProperty(WritableState.prototype, 'buffer', { + get: internalUtil.deprecate(function writableStateBufferGetter() { + return this.getBuffer(); + }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') + }); + } catch (_) {} +})(); - // Pick a moment m from moments so that m[fn](other) is true for all - // other. This relies on the function fn to be transitive. - // - // moments should either be an array of moment objects or an array, whose - // first element is an array of moment objects. - function pickBy(fn, moments) { - var res, i; - if (moments.length === 1 && isArray(moments[0])) { - moments = moments[0]; - } - if (!moments.length) { - return createLocal(); - } - res = moments[0]; - for (i = 1; i < moments.length; ++i) { - if (!moments[i].isValid() || moments[i][fn](res)) { - res = moments[i]; - } - } - return res; +// Test _writableState for inheritance to account for Duplex streams, +// whose prototype chain only points to Readable. +var realHasInstance; +if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { + realHasInstance = Function.prototype[Symbol.hasInstance]; + Object.defineProperty(Writable, Symbol.hasInstance, { + value: function value(object) { + if (realHasInstance.call(this, object)) return true; + if (this !== Writable) return false; + return object && object._writableState instanceof WritableState; } + }); +} else { + realHasInstance = function realHasInstance(object) { + return object instanceof this; + }; +} +function Writable(options) { + Duplex = Duplex || __nested_webpack_require_1654184__(/*! ./_stream_duplex */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js"); - // TODO: Use [].sort instead? - function min() { - var args = [].slice.call(arguments, 0); + // Writable ctor is applied to Duplexes, too. + // `realHasInstance` is necessary because using plain `instanceof` + // would return false, as no `_writableState` property is attached. - return pickBy('isBefore', args); - } + // Trying to use the custom `instanceof` for Writable here will also break the + // Node.js LazyTransform implementation, which has a non-trivial getter for + // `_writableState` that would lead to infinite recursion. - function max() { - var args = [].slice.call(arguments, 0); + // Checking for a Stream.Duplex instance is faster here instead of inside + // the WritableState constructor, at least with V8 6.5 + var isDuplex = this instanceof Duplex; + if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); + this._writableState = new WritableState(options, this, isDuplex); - return pickBy('isAfter', args); - } + // legacy. + this.writable = true; + if (options) { + if (typeof options.write === 'function') this._write = options.write; + if (typeof options.writev === 'function') this._writev = options.writev; + if (typeof options.destroy === 'function') this._destroy = options.destroy; + if (typeof options.final === 'function') this._final = options.final; + } + Stream.call(this); +} - var now = function () { - return Date.now ? Date.now() : +new Date(); - }; +// Otherwise people can pipe Writable streams, which is just wrong. +Writable.prototype.pipe = function () { + errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); +}; +function writeAfterEnd(stream, cb) { + var er = new ERR_STREAM_WRITE_AFTER_END(); + // TODO: defer error events consistently everywhere, not just the cb + errorOrDestroy(stream, er); + process.nextTick(cb, er); +} - var ordering = [ - 'year', - 'quarter', - 'month', - 'week', - 'day', - 'hour', - 'minute', - 'second', - 'millisecond', - ]; +// Checks that a user-supplied chunk is valid, especially for the particular +// mode the stream is in. Currently this means that `null` is never accepted +// and undefined/non-string values are only allowed in object mode. +function validChunk(stream, state, chunk, cb) { + var er; + if (chunk === null) { + er = new ERR_STREAM_NULL_VALUES(); + } else if (typeof chunk !== 'string' && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); + } + if (er) { + errorOrDestroy(stream, er); + process.nextTick(cb, er); + return false; + } + return true; +} +Writable.prototype.write = function (chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + var isBuf = !state.objectMode && _isUint8Array(chunk); + if (isBuf && !Buffer.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; + if (typeof cb !== 'function') cb = nop; + if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++; + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + } + return ret; +}; +Writable.prototype.cork = function () { + this._writableState.corked++; +}; +Writable.prototype.uncork = function () { + var state = this._writableState; + if (state.corked) { + state.corked--; + if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); + } +}; +Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + // node::ParseEncoding() requires lower case. + if (typeof encoding === 'string') encoding = encoding.toLowerCase(); + if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding); + this._writableState.defaultEncoding = encoding; + return this; +}; +Object.defineProperty(Writable.prototype, 'writableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); + } +}); +function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { + chunk = Buffer.from(chunk, encoding); + } + return chunk; +} +Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; + } +}); - function isDurationValid(m) { - var key, - unitHasDecimal = false, - i; - for (key in m) { - if ( - hasOwnProp(m, key) && - !( - indexOf.call(ordering, key) !== -1 && - (m[key] == null || !isNaN(m[key])) - ) - ) { - return false; - } - } +// if we're already writing something, then just put this +// in the queue, and wait our turn. Otherwise, call _write +// If we return false, then we need a drain event, so set that flag. +function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = 'buffer'; + chunk = newChunk; + } + } + var len = state.objectMode ? 1 : chunk.length; + state.length += len; + var ret = state.length < state.highWaterMark; + // we must ensure that previous needDrain will not be reset to false. + if (!ret) state.needDrain = true; + if (state.writing || state.corked) { + var last = state.lastBufferedRequest; + state.lastBufferedRequest = { + chunk: chunk, + encoding: encoding, + isBuf: isBuf, + callback: cb, + next: null + }; + if (last) { + last.next = state.lastBufferedRequest; + } else { + state.bufferedRequest = state.lastBufferedRequest; + } + state.bufferedRequestCount += 1; + } else { + doWrite(stream, state, false, len, chunk, encoding, cb); + } + return ret; +} +function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); + state.sync = false; +} +function onwriteError(stream, state, sync, er, cb) { + --state.pendingcb; + if (sync) { + // defer the callback if we are being called synchronously + // to avoid piling up things on the stack + process.nextTick(cb, er); + // this can emit finish, and it will always happen + // after error + process.nextTick(finishMaybe, stream, state); + stream._writableState.errorEmitted = true; + errorOrDestroy(stream, er); + } else { + // the caller expect this to happen before if + // it is async + cb(er); + stream._writableState.errorEmitted = true; + errorOrDestroy(stream, er); + // this can emit finish, but finish must + // always follow error + finishMaybe(stream, state); + } +} +function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; +} +function onwrite(stream, er) { + var state = stream._writableState; + var sync = state.sync; + var cb = state.writecb; + if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK(); + onwriteStateUpdate(state); + if (er) onwriteError(stream, state, sync, er, cb);else { + // Check if we're actually ready to finish, but don't emit yet + var finished = needFinish(state) || stream.destroyed; + if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { + clearBuffer(stream, state); + } + if (sync) { + process.nextTick(afterWrite, stream, state, finished, cb); + } else { + afterWrite(stream, state, finished, cb); + } + } +} +function afterWrite(stream, state, finished, cb) { + if (!finished) onwriteDrain(stream, state); + state.pendingcb--; + cb(); + finishMaybe(stream, state); +} - for (i = 0; i < ordering.length; ++i) { - if (m[ordering[i]]) { - if (unitHasDecimal) { - return false; // only allow non-integers for smallest unit - } - if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { - unitHasDecimal = true; - } - } - } +// Must force callback to be called on nextTick, so that we don't +// emit 'drain' before the write() consumer gets the 'false' return +// value, and has a chance to attach a 'drain' listener. +function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream.emit('drain'); + } +} - return true; +// if there's something in the buffer waiting, then process it +function clearBuffer(stream, state) { + state.bufferProcessing = true; + var entry = state.bufferedRequest; + if (stream._writev && entry && entry.next) { + // Fast case, write everything using _writev() + var l = state.bufferedRequestCount; + var buffer = new Array(l); + var holder = state.corkedRequestsFree; + holder.entry = entry; + var count = 0; + var allBuffers = true; + while (entry) { + buffer[count] = entry; + if (!entry.isBuf) allBuffers = false; + entry = entry.next; + count += 1; } + buffer.allBuffers = allBuffers; + doWrite(stream, state, true, state.length, buffer, '', holder.finish); - function isValid$1() { - return this._isValid; + // doWrite is almost always async, defer these to save a bit of time + // as the hot path ends with doWrite + state.pendingcb++; + state.lastBufferedRequest = null; + if (holder.next) { + state.corkedRequestsFree = holder.next; + holder.next = null; + } else { + state.corkedRequestsFree = new CorkedRequest(state); } - - function createInvalid$1() { - return createDuration(NaN); + state.bufferedRequestCount = 0; + } else { + // Slow case, write chunks one-by-one + while (entry) { + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + doWrite(stream, state, false, len, chunk, encoding, cb); + entry = entry.next; + state.bufferedRequestCount--; + // if we didn't call the onwrite immediately, then + // it means that we need to wait until it does. + // also, that means that the chunk and cb are currently + // being processed, so move the buffer counter past them. + if (state.writing) { + break; + } } + if (entry === null) state.lastBufferedRequest = null; + } + state.bufferedRequest = entry; + state.bufferProcessing = false; +} +Writable.prototype._write = function (chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); +}; +Writable.prototype._writev = null; +Writable.prototype.end = function (chunk, encoding, cb) { + var state = this._writableState; + if (typeof chunk === 'function') { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - function Duration(duration) { - var normalizedInput = normalizeObjectUnits(duration), - years = normalizedInput.year || 0, - quarters = normalizedInput.quarter || 0, - months = normalizedInput.month || 0, - weeks = normalizedInput.week || normalizedInput.isoWeek || 0, - days = normalizedInput.day || 0, - hours = normalizedInput.hour || 0, - minutes = normalizedInput.minute || 0, - seconds = normalizedInput.second || 0, - milliseconds = normalizedInput.millisecond || 0; - - this._isValid = isDurationValid(normalizedInput); - - // representation for dateAddRemove - this._milliseconds = - +milliseconds + - seconds * 1e3 + // 1000 - minutes * 6e4 + // 1000 * 60 - hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 - // Because of dateAddRemove treats 24 hours as different from a - // day when working around DST, we need to store them separately - this._days = +days + weeks * 7; - // It is impossible to translate months into days without knowing - // which months you are are talking about, so we have to store - // it separately. - this._months = +months + quarters * 3 + years * 12; - - this._data = {}; - - this._locale = getLocale(); + // .end() fully uncorks + if (state.corked) { + state.corked = 1; + this.uncork(); + } - this._bubble(); + // ignore unnecessary end() calls. + if (!state.ending) endWritable(this, state, cb); + return this; +}; +Object.defineProperty(Writable.prototype, 'writableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.length; + } +}); +function needFinish(state) { + return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; +} +function callFinal(stream, state) { + stream._final(function (err) { + state.pendingcb--; + if (err) { + errorOrDestroy(stream, err); } - - function isDuration(obj) { - return obj instanceof Duration; + state.prefinished = true; + stream.emit('prefinish'); + finishMaybe(stream, state); + }); +} +function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === 'function' && !state.destroyed) { + state.pendingcb++; + state.finalCalled = true; + process.nextTick(callFinal, stream, state); + } else { + state.prefinished = true; + stream.emit('prefinish'); } - - function absRound(number) { - if (number < 0) { - return Math.round(-1 * number) * -1; - } else { - return Math.round(number); + } +} +function finishMaybe(stream, state) { + var need = needFinish(state); + if (need) { + prefinish(stream, state); + if (state.pendingcb === 0) { + state.finished = true; + stream.emit('finish'); + if (state.autoDestroy) { + // In case of duplex streams we need a way to detect + // if the readable side is ready for autoDestroy as well + var rState = stream._readableState; + if (!rState || rState.autoDestroy && rState.endEmitted) { + stream.destroy(); } + } } + } + return need; +} +function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) process.nextTick(cb);else stream.once('finish', cb); + } + state.ended = true; + stream.writable = false; +} +function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } - // compare two arrays, return the number of differences - function compareArrays(array1, array2, dontConvert) { - var len = Math.min(array1.length, array2.length), - lengthDiff = Math.abs(array1.length - array2.length), - diffs = 0, - i; - for (i = 0; i < len; i++) { - if ( - (dontConvert && array1[i] !== array2[i]) || - (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) - ) { - diffs++; - } - } - return diffs + lengthDiff; + // reuse the free corkReq. + state.corkedRequestsFree.next = corkReq; +} +Object.defineProperty(Writable.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._writableState === undefined) { + return false; } - - // FORMATTING - - function offset(token, separator) { - addFormatToken(token, 0, 0, function () { - var offset = this.utcOffset(), - sign = '+'; - if (offset < 0) { - offset = -offset; - sign = '-'; - } - return ( - sign + - zeroFill(~~(offset / 60), 2) + - separator + - zeroFill(~~offset % 60, 2) - ); - }); + return this._writableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._writableState) { + return; } - offset('Z', ':'); - offset('ZZ', ''); - - // PARSING - - addRegexToken('Z', matchShortOffset); - addRegexToken('ZZ', matchShortOffset); - addParseToken(['Z', 'ZZ'], function (input, array, config) { - config._useUTC = true; - config._tzm = offsetFromString(matchShortOffset, input); - }); - - // HELPERS + // backward compatibility, the user is explicitly + // managing destroyed + this._writableState.destroyed = value; + } +}); +Writable.prototype.destroy = destroyImpl.destroy; +Writable.prototype._undestroy = destroyImpl.undestroy; +Writable.prototype._destroy = function (err, cb) { + cb(err); +}; - // timezone chunker - // '+10:00' > ['10', '00'] - // '-1530' > ['-15', '30'] - var chunkOffset = /([\+\-]|\d\d)/gi; +/***/ }), - function offsetFromString(matcher, string) { - var matches = (string || '').match(matcher), - chunk, - parts, - minutes; +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/async_iterator.js": +/*!*************************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/async_iterator.js ***! + \*************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1677572__) => { - if (matches === null) { - return null; - } +"use strict"; - chunk = matches[matches.length - 1] || []; - parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; - minutes = +(parts[1] * 60) + toInt(parts[2]); - return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; +var _Object$setPrototypeO; +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +var finished = __nested_webpack_require_1677572__(/*! ./end-of-stream */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); +var kLastResolve = Symbol('lastResolve'); +var kLastReject = Symbol('lastReject'); +var kError = Symbol('error'); +var kEnded = Symbol('ended'); +var kLastPromise = Symbol('lastPromise'); +var kHandlePromise = Symbol('handlePromise'); +var kStream = Symbol('stream'); +function createIterResult(value, done) { + return { + value: value, + done: done + }; +} +function readAndResolve(iter) { + var resolve = iter[kLastResolve]; + if (resolve !== null) { + var data = iter[kStream].read(); + // we defer if data is null + // we can be expecting either 'end' or + // 'error' + if (data !== null) { + iter[kLastPromise] = null; + iter[kLastResolve] = null; + iter[kLastReject] = null; + resolve(createIterResult(data, false)); } - - // Return a moment from input, that is local/utc/zone equivalent to model. - function cloneWithOffset(input, model) { - var res, diff; - if (model._isUTC) { - res = model.clone(); - diff = - (isMoment(input) || isDate(input) - ? input.valueOf() - : createLocal(input).valueOf()) - res.valueOf(); - // Use low-level api, because this fn is low-level api. - res._d.setTime(res._d.valueOf() + diff); - hooks.updateOffset(res, false); - return res; - } else { - return createLocal(input).local(); - } + } +} +function onReadable(iter) { + // we wait for the next tick, because it might + // emit an error with process.nextTick + process.nextTick(readAndResolve, iter); +} +function wrapForNext(lastPromise, iter) { + return function (resolve, reject) { + lastPromise.then(function () { + if (iter[kEnded]) { + resolve(createIterResult(undefined, true)); + return; + } + iter[kHandlePromise](resolve, reject); + }, reject); + }; +} +var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}); +var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { + get stream() { + return this[kStream]; + }, + next: function next() { + var _this = this; + // if we have detected an error in the meanwhile + // reject straight away + var error = this[kError]; + if (error !== null) { + return Promise.reject(error); } - - function getDateOffset(m) { - // On Firefox.24 Date#getTimezoneOffset returns a floating point. - // https://github.com/moment/moment/pull/1871 - return -Math.round(m._d.getTimezoneOffset()); + if (this[kEnded]) { + return Promise.resolve(createIterResult(undefined, true)); + } + if (this[kStream].destroyed) { + // We need to defer via nextTick because if .destroy(err) is + // called, the error will be emitted via nextTick, and + // we cannot guarantee that there is no error lingering around + // waiting to be emitted. + return new Promise(function (resolve, reject) { + process.nextTick(function () { + if (_this[kError]) { + reject(_this[kError]); + } else { + resolve(createIterResult(undefined, true)); + } + }); + }); } - // HOOKS - - // This function will be called whenever a moment is mutated. - // It is intended to keep the offset in sync with the timezone. - hooks.updateOffset = function () {}; + // if we have multiple next() calls + // we will wait for the previous Promise to finish + // this logic is optimized to support for await loops, + // where next() is only called once at a time + var lastPromise = this[kLastPromise]; + var promise; + if (lastPromise) { + promise = new Promise(wrapForNext(lastPromise, this)); + } else { + // fast path needed to support multiple this.push() + // without triggering the next() queue + var data = this[kStream].read(); + if (data !== null) { + return Promise.resolve(createIterResult(data, false)); + } + promise = new Promise(this[kHandlePromise]); + } + this[kLastPromise] = promise; + return promise; + } +}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () { + return this; +}), _defineProperty(_Object$setPrototypeO, "return", function _return() { + var _this2 = this; + // destroy(err, cb) is a private API + // we can guarantee we have that here, because we control the + // Readable class this is attached to + return new Promise(function (resolve, reject) { + _this2[kStream].destroy(null, function (err) { + if (err) { + reject(err); + return; + } + resolve(createIterResult(undefined, true)); + }); + }); +}), _Object$setPrototypeO), AsyncIteratorPrototype); +var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { + var _Object$create; + var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { + value: stream, + writable: true + }), _defineProperty(_Object$create, kLastResolve, { + value: null, + writable: true + }), _defineProperty(_Object$create, kLastReject, { + value: null, + writable: true + }), _defineProperty(_Object$create, kError, { + value: null, + writable: true + }), _defineProperty(_Object$create, kEnded, { + value: stream._readableState.endEmitted, + writable: true + }), _defineProperty(_Object$create, kHandlePromise, { + value: function value(resolve, reject) { + var data = iterator[kStream].read(); + if (data) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(data, false)); + } else { + iterator[kLastResolve] = resolve; + iterator[kLastReject] = reject; + } + }, + writable: true + }), _Object$create)); + iterator[kLastPromise] = null; + finished(stream, function (err) { + if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { + var reject = iterator[kLastReject]; + // reject if we are waiting for data in the Promise + // returned by next() and store the error + if (reject !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + reject(err); + } + iterator[kError] = err; + return; + } + var resolve = iterator[kLastResolve]; + if (resolve !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(undefined, true)); + } + iterator[kEnded] = true; + }); + stream.on('readable', onReadable.bind(null, iterator)); + return iterator; +}; +module.exports = createReadableStreamAsyncIterator; - // MOMENTS +/***/ }), - // keepLocalTime = true means only change the timezone, without - // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> - // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset - // +0200, so we adjust the time as needed, to be valid. - // - // Keeping the time actually adds/subtracts (one hour) - // from the actual represented time. That is why we call updateOffset - // a second time. In case it wants us to change the offset again - // _changeInProgress == true case, then we have to adjust, because - // there is no such time in the given timezone. - function getSetOffset(input, keepLocalTime, keepMinutes) { - var offset = this._offset || 0, - localAdjust; - if (!this.isValid()) { - return input != null ? this : NaN; - } - if (input != null) { - if (typeof input === 'string') { - input = offsetFromString(matchShortOffset, input); - if (input === null) { - return this; - } - } else if (Math.abs(input) < 16 && !keepMinutes) { - input = input * 60; - } - if (!this._isUTC && keepLocalTime) { - localAdjust = getDateOffset(this); - } - this._offset = input; - this._isUTC = true; - if (localAdjust != null) { - this.add(localAdjust, 'm'); - } - if (offset !== input) { - if (!keepLocalTime || this._changeInProgress) { - addSubtract( - this, - createDuration(input - offset, 'm'), - 1, - false - ); - } else if (!this._changeInProgress) { - this._changeInProgress = true; - hooks.updateOffset(this, true); - this._changeInProgress = null; - } - } - return this; - } else { - return this._isUTC ? offset : getDateOffset(this); - } - } +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/buffer_list.js": +/*!**********************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/buffer_list.js ***! + \**********************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1684746__) => { - function getSetZone(input, keepLocalTime) { - if (input != null) { - if (typeof input !== 'string') { - input = -input; - } +"use strict"; - this.utcOffset(input, keepLocalTime); - return this; - } else { - return -this.utcOffset(); - } +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +var _require = __nested_webpack_require_1684746__(/*! buffer */ "buffer"), + Buffer = _require.Buffer; +var _require2 = __nested_webpack_require_1684746__(/*! util */ "util"), + inspect = _require2.inspect; +var custom = inspect && inspect.custom || 'inspect'; +function copyBuffer(src, target, offset) { + Buffer.prototype.copy.call(src, target, offset); +} +module.exports = /*#__PURE__*/function () { + function BufferList() { + _classCallCheck(this, BufferList); + this.head = null; + this.tail = null; + this.length = 0; + } + _createClass(BufferList, [{ + key: "push", + value: function push(v) { + var entry = { + data: v, + next: null + }; + if (this.length > 0) this.tail.next = entry;else this.head = entry; + this.tail = entry; + ++this.length; } - - function setOffsetToUTC(keepLocalTime) { - return this.utcOffset(0, keepLocalTime); + }, { + key: "unshift", + value: function unshift(v) { + var entry = { + data: v, + next: this.head + }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + } + }, { + key: "shift", + value: function shift() { + if (this.length === 0) return; + var ret = this.head.data; + if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; + --this.length; + return ret; + } + }, { + key: "clear", + value: function clear() { + this.head = this.tail = null; + this.length = 0; + } + }, { + key: "join", + value: function join(s) { + if (this.length === 0) return ''; + var p = this.head; + var ret = '' + p.data; + while (p = p.next) ret += s + p.data; + return ret; + } + }, { + key: "concat", + value: function concat(n) { + if (this.length === 0) return Buffer.alloc(0); + var ret = Buffer.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; + while (p) { + copyBuffer(p.data, ret, i); + i += p.data.length; + p = p.next; + } + return ret; } - function setOffsetToLocal(keepLocalTime) { - if (this._isUTC) { - this.utcOffset(0, keepLocalTime); - this._isUTC = false; - - if (keepLocalTime) { - this.subtract(getDateOffset(this), 'm'); - } - } - return this; + // Consumes a specified amount of bytes or characters from the buffered data. + }, { + key: "consume", + value: function consume(n, hasStrings) { + var ret; + if (n < this.head.data.length) { + // `slice` is the same for buffers and strings. + ret = this.head.data.slice(0, n); + this.head.data = this.head.data.slice(n); + } else if (n === this.head.data.length) { + // First chunk is a perfect match. + ret = this.shift(); + } else { + // Result spans more than one buffer. + ret = hasStrings ? this._getString(n) : this._getBuffer(n); + } + return ret; + } + }, { + key: "first", + value: function first() { + return this.head.data; } - function setOffsetToParsedOffset() { - if (this._tzm != null) { - this.utcOffset(this._tzm, false, true); - } else if (typeof this._i === 'string') { - var tZone = offsetFromString(matchOffset, this._i); - if (tZone != null) { - this.utcOffset(tZone); - } else { - this.utcOffset(0, true); - } + // Consumes a specified amount of characters from the buffered data. + }, { + key: "_getString", + value: function _getString(n) { + var p = this.head; + var c = 1; + var ret = p.data; + n -= ret.length; + while (p = p.next) { + var str = p.data; + var nb = n > str.length ? str.length : n; + if (nb === str.length) ret += str;else ret += str.slice(0, n); + n -= nb; + if (n === 0) { + if (nb === str.length) { + ++c; + if (p.next) this.head = p.next;else this.head = this.tail = null; + } else { + this.head = p; + p.data = str.slice(nb); + } + break; } - return this; + ++c; + } + this.length -= c; + return ret; } - function hasAlignedHourOffset(input) { - if (!this.isValid()) { - return false; + // Consumes a specified amount of bytes from the buffered data. + }, { + key: "_getBuffer", + value: function _getBuffer(n) { + var ret = Buffer.allocUnsafe(n); + var p = this.head; + var c = 1; + p.data.copy(ret); + n -= p.data.length; + while (p = p.next) { + var buf = p.data; + var nb = n > buf.length ? buf.length : n; + buf.copy(ret, ret.length - n, 0, nb); + n -= nb; + if (n === 0) { + if (nb === buf.length) { + ++c; + if (p.next) this.head = p.next;else this.head = this.tail = null; + } else { + this.head = p; + p.data = buf.slice(nb); + } + break; } - input = input ? createLocal(input).utcOffset() : 0; - - return (this.utcOffset() - input) % 60 === 0; + ++c; + } + this.length -= c; + return ret; } - function isDaylightSavingTime() { - return ( - this.utcOffset() > this.clone().month(0).utcOffset() || - this.utcOffset() > this.clone().month(5).utcOffset() - ); + // Make sure the linked list only shows the minimal necessary information. + }, { + key: custom, + value: function value(_, options) { + return inspect(this, _objectSpread(_objectSpread({}, options), {}, { + // Only inspect one level. + depth: 0, + // It should not recurse. + customInspect: false + })); } + }]); + return BufferList; +}(); - function isDaylightSavingTimeShifted() { - if (!isUndefined(this._isDSTShifted)) { - return this._isDSTShifted; - } +/***/ }), - var c = {}, - other; +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/destroy.js": +/*!******************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/destroy.js ***! + \******************************************************************************************************************/ +/***/ ((module) => { - copyConfig(c, this); - c = prepareConfig(c); +"use strict"; - if (c._a) { - other = c._isUTC ? createUTC(c._a) : createLocal(c._a); - this._isDSTShifted = - this.isValid() && compareArrays(c._a, other.toArray()) > 0; - } else { - this._isDSTShifted = false; - } - return this._isDSTShifted; +// undocumented cb() API, needed for core, not for public API +function destroy(err, cb) { + var _this = this; + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err) { + if (!this._writableState) { + process.nextTick(emitErrorNT, this, err); + } else if (!this._writableState.errorEmitted) { + this._writableState.errorEmitted = true; + process.nextTick(emitErrorNT, this, err); + } } + return this; + } - function isLocal() { - return this.isValid() ? !this._isUTC : false; - } + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks - function isUtcOffset() { - return this.isValid() ? this._isUTC : false; - } + if (this._readableState) { + this._readableState.destroyed = true; + } - function isUtc() { - return this.isValid() ? this._isUTC && this._offset === 0 : false; + // if this is a duplex stream mark the writable part as destroyed as well + if (this._writableState) { + this._writableState.destroyed = true; + } + this._destroy(err || null, function (err) { + if (!cb && err) { + if (!_this._writableState) { + process.nextTick(emitErrorAndCloseNT, _this, err); + } else if (!_this._writableState.errorEmitted) { + _this._writableState.errorEmitted = true; + process.nextTick(emitErrorAndCloseNT, _this, err); + } else { + process.nextTick(emitCloseNT, _this); + } + } else if (cb) { + process.nextTick(emitCloseNT, _this); + cb(err); + } else { + process.nextTick(emitCloseNT, _this); } + }); + return this; +} +function emitErrorAndCloseNT(self, err) { + emitErrorNT(self, err); + emitCloseNT(self); +} +function emitCloseNT(self) { + if (self._writableState && !self._writableState.emitClose) return; + if (self._readableState && !self._readableState.emitClose) return; + self.emit('close'); +} +function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finalCalled = false; + this._writableState.prefinished = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; + } +} +function emitErrorNT(self, err) { + self.emit('error', err); +} +function errorOrDestroy(stream, err) { + // We have tests that rely on errors being emitted + // in the same tick, so changing this is semver major. + // For now when you opt-in to autoDestroy we allow + // the error to be emitted nextTick. In a future + // semver major update we should change the default to this. - // ASP.NET json date format regex - var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, - // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html - // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere - // and further modified to allow for strings containing both week and day - isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; - - function createDuration(input, key) { - var duration = input, - // matching against regexp is expensive, do it on demand - match = null, - sign, - ret, - diffRes; + var rState = stream._readableState; + var wState = stream._writableState; + if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err); +} +module.exports = { + destroy: destroy, + undestroy: undestroy, + errorOrDestroy: errorOrDestroy +}; - if (isDuration(input)) { - duration = { - ms: input._milliseconds, - d: input._days, - M: input._months, - }; - } else if (isNumber(input) || !isNaN(+input)) { - duration = {}; - if (key) { - duration[key] = +input; - } else { - duration.milliseconds = +input; - } - } else if ((match = aspNetRegex.exec(input))) { - sign = match[1] === '-' ? -1 : 1; - duration = { - y: 0, - d: toInt(match[DATE]) * sign, - h: toInt(match[HOUR]) * sign, - m: toInt(match[MINUTE]) * sign, - s: toInt(match[SECOND]) * sign, - ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match - }; - } else if ((match = isoRegex.exec(input))) { - sign = match[1] === '-' ? -1 : 1; - duration = { - y: parseIso(match[2], sign), - M: parseIso(match[3], sign), - w: parseIso(match[4], sign), - d: parseIso(match[5], sign), - h: parseIso(match[6], sign), - m: parseIso(match[7], sign), - s: parseIso(match[8], sign), - }; - } else if (duration == null) { - // checks for null or undefined - duration = {}; - } else if ( - typeof duration === 'object' && - ('from' in duration || 'to' in duration) - ) { - diffRes = momentsDifference( - createLocal(duration.from), - createLocal(duration.to) - ); +/***/ }), - duration = {}; - duration.ms = diffRes.milliseconds; - duration.M = diffRes.months; - } +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js": +/*!************************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***! + \************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1695903__) => { - ret = new Duration(duration); +"use strict"; +// Ported from https://github.com/mafintosh/end-of-stream with +// permission from the author, Mathias Buus (@mafintosh). - if (isDuration(input) && hasOwnProp(input, '_locale')) { - ret._locale = input._locale; - } - if (isDuration(input) && hasOwnProp(input, '_isValid')) { - ret._isValid = input._isValid; - } - return ret; +var ERR_STREAM_PREMATURE_CLOSE = __nested_webpack_require_1695903__(/*! ../../../errors */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js").codes.ERR_STREAM_PREMATURE_CLOSE; +function once(callback) { + var called = false; + return function () { + if (called) return; + called = true; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + callback.apply(this, args); + }; +} +function noop() {} +function isRequest(stream) { + return stream.setHeader && typeof stream.abort === 'function'; +} +function eos(stream, opts, callback) { + if (typeof opts === 'function') return eos(stream, null, opts); + if (!opts) opts = {}; + callback = once(callback || noop); + var readable = opts.readable || opts.readable !== false && stream.readable; + var writable = opts.writable || opts.writable !== false && stream.writable; + var onlegacyfinish = function onlegacyfinish() { + if (!stream.writable) onfinish(); + }; + var writableEnded = stream._writableState && stream._writableState.finished; + var onfinish = function onfinish() { + writable = false; + writableEnded = true; + if (!readable) callback.call(stream); + }; + var readableEnded = stream._readableState && stream._readableState.endEmitted; + var onend = function onend() { + readable = false; + readableEnded = true; + if (!writable) callback.call(stream); + }; + var onerror = function onerror(err) { + callback.call(stream, err); + }; + var onclose = function onclose() { + var err; + if (readable && !readableEnded) { + if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream, err); + } + if (writable && !writableEnded) { + if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream, err); } + }; + var onrequest = function onrequest() { + stream.req.on('finish', onfinish); + }; + if (isRequest(stream)) { + stream.on('complete', onfinish); + stream.on('abort', onclose); + if (stream.req) onrequest();else stream.on('request', onrequest); + } else if (writable && !stream._writableState) { + // legacy streams + stream.on('end', onlegacyfinish); + stream.on('close', onlegacyfinish); + } + stream.on('end', onend); + stream.on('finish', onfinish); + if (opts.error !== false) stream.on('error', onerror); + stream.on('close', onclose); + return function () { + stream.removeListener('complete', onfinish); + stream.removeListener('abort', onclose); + stream.removeListener('request', onrequest); + if (stream.req) stream.req.removeListener('finish', onfinish); + stream.removeListener('end', onlegacyfinish); + stream.removeListener('close', onlegacyfinish); + stream.removeListener('finish', onfinish); + stream.removeListener('end', onend); + stream.removeListener('error', onerror); + stream.removeListener('close', onclose); + }; +} +module.exports = eos; - createDuration.fn = Duration.prototype; - createDuration.invalid = createInvalid$1; +/***/ }), - function parseIso(inp, sign) { - // We'd normally use ~~inp for this, but unfortunately it also - // converts floats to ints. - // inp may be undefined, so careful calling replace on it. - var res = inp && parseFloat(inp.replace(',', '.')); - // apply sign while we're at it - return (isNaN(res) ? 0 : res) * sign; +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/from.js": +/*!***************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/from.js ***! + \***************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1699637__) => { + +"use strict"; + + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +var ERR_INVALID_ARG_TYPE = __nested_webpack_require_1699637__(/*! ../../../errors */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js").codes.ERR_INVALID_ARG_TYPE; +function from(Readable, iterable, opts) { + var iterator; + if (iterable && typeof iterable.next === 'function') { + iterator = iterable; + } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable); + var readable = new Readable(_objectSpread({ + objectMode: true + }, opts)); + // Reading boolean to protect against _read + // being called before last iteration completion. + var reading = false; + readable._read = function () { + if (!reading) { + reading = true; + next(); } + }; + function next() { + return _next2.apply(this, arguments); + } + function _next2() { + _next2 = _asyncToGenerator(function* () { + try { + var _yield$iterator$next = yield iterator.next(), + value = _yield$iterator$next.value, + done = _yield$iterator$next.done; + if (done) { + readable.push(null); + } else if (readable.push(yield value)) { + next(); + } else { + reading = false; + } + } catch (err) { + readable.destroy(err); + } + }); + return _next2.apply(this, arguments); + } + return readable; +} +module.exports = from; - function positiveMomentsDifference(base, other) { - var res = {}; - res.months = - other.month() - base.month() + (other.year() - base.year()) * 12; - if (base.clone().add(res.months, 'M').isAfter(other)) { - --res.months; - } +/***/ }), - res.milliseconds = +other - +base.clone().add(res.months, 'M'); +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/pipeline.js": +/*!*******************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/pipeline.js ***! + \*******************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1703971__) => { - return res; - } +"use strict"; +// Ported from https://github.com/mafintosh/pump with +// permission from the author, Mathias Buus (@mafintosh). - function momentsDifference(base, other) { - var res; - if (!(base.isValid() && other.isValid())) { - return { milliseconds: 0, months: 0 }; - } - other = cloneWithOffset(other, base); - if (base.isBefore(other)) { - res = positiveMomentsDifference(base, other); - } else { - res = positiveMomentsDifference(other, base); - res.milliseconds = -res.milliseconds; - res.months = -res.months; - } - return res; - } +var eos; +function once(callback) { + var called = false; + return function () { + if (called) return; + called = true; + callback.apply(void 0, arguments); + }; +} +var _require$codes = __nested_webpack_require_1703971__(/*! ../../../errors */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js").codes, + ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; +function noop(err) { + // Rethrow the error if it exists to avoid swallowing it + if (err) throw err; +} +function isRequest(stream) { + return stream.setHeader && typeof stream.abort === 'function'; +} +function destroyer(stream, reading, writing, callback) { + callback = once(callback); + var closed = false; + stream.on('close', function () { + closed = true; + }); + if (eos === undefined) eos = __nested_webpack_require_1703971__(/*! ./end-of-stream */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); + eos(stream, { + readable: reading, + writable: writing + }, function (err) { + if (err) return callback(err); + closed = true; + callback(); + }); + var destroyed = false; + return function (err) { + if (closed) return; + if (destroyed) return; + destroyed = true; - // TODO: remove 'name' arg after deprecation is removed - function createAdder(direction, name) { - return function (val, period) { - var dur, tmp; - //invert the arguments, but complain about it - if (period !== null && !isNaN(+period)) { - deprecateSimple( - name, - 'moment().' + - name + - '(period, number) is deprecated. Please use moment().' + - name + - '(number, period). ' + - 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' - ); - tmp = val; - val = period; - period = tmp; - } + // request.destroy just do .end - .abort is what we want + if (isRequest(stream)) return stream.abort(); + if (typeof stream.destroy === 'function') return stream.destroy(); + callback(err || new ERR_STREAM_DESTROYED('pipe')); + }; +} +function call(fn) { + fn(); +} +function pipe(from, to) { + return from.pipe(to); +} +function popCallback(streams) { + if (!streams.length) return noop; + if (typeof streams[streams.length - 1] !== 'function') return noop; + return streams.pop(); +} +function pipeline() { + for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) { + streams[_key] = arguments[_key]; + } + var callback = popCallback(streams); + if (Array.isArray(streams[0])) streams = streams[0]; + if (streams.length < 2) { + throw new ERR_MISSING_ARGS('streams'); + } + var error; + var destroys = streams.map(function (stream, i) { + var reading = i < streams.length - 1; + var writing = i > 0; + return destroyer(stream, reading, writing, function (err) { + if (!error) error = err; + if (err) destroys.forEach(call); + if (reading) return; + destroys.forEach(call); + callback(error); + }); + }); + return streams.reduce(pipe); +} +module.exports = pipeline; - dur = createDuration(val, period); - addSubtract(this, dur, direction); - return this; - }; - } +/***/ }), - function addSubtract(mom, duration, isAdding, updateOffset) { - var milliseconds = duration._milliseconds, - days = absRound(duration._days), - months = absRound(duration._months); +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/state.js": +/*!****************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/state.js ***! + \****************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1707173__) => { - if (!mom.isValid()) { - // No op - return; - } +"use strict"; - updateOffset = updateOffset == null ? true : updateOffset; - if (months) { - setMonth(mom, get(mom, 'Month') + months * isAdding); - } - if (days) { - set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); - } - if (milliseconds) { - mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); - } - if (updateOffset) { - hooks.updateOffset(mom, days || months); - } +var ERR_INVALID_OPT_VALUE = __nested_webpack_require_1707173__(/*! ../../../errors */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js").codes.ERR_INVALID_OPT_VALUE; +function highWaterMarkFrom(options, isDuplex, duplexKey) { + return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; +} +function getHighWaterMark(state, options, duplexKey, isDuplex) { + var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); + if (hwm != null) { + if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { + var name = isDuplex ? duplexKey : 'highWaterMark'; + throw new ERR_INVALID_OPT_VALUE(name, hwm); } + return Math.floor(hwm); + } - var add = createAdder(1, 'add'), - subtract = createAdder(-1, 'subtract'); + // Default value + return state.objectMode ? 16 : 16 * 1024; +} +module.exports = { + getHighWaterMark: getHighWaterMark +}; - function isString(input) { - return typeof input === 'string' || input instanceof String; - } +/***/ }), - // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined - function isMomentInput(input) { - return ( - isMoment(input) || - isDate(input) || - isString(input) || - isNumber(input) || - isNumberOrStringArray(input) || - isMomentInputObject(input) || - input === null || - input === undefined - ); - } +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/stream.js": +/*!*****************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/stream.js ***! + \*****************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1708576__) => { - function isMomentInputObject(input) { - var objectTest = isObject(input) && !isObjectEmpty(input), - propertyTest = false, - properties = [ - 'years', - 'year', - 'y', - 'months', - 'month', - 'M', - 'days', - 'day', - 'd', - 'dates', - 'date', - 'D', - 'hours', - 'hour', - 'h', - 'minutes', - 'minute', - 'm', - 'seconds', - 'second', - 's', - 'milliseconds', - 'millisecond', - 'ms', - ], - i, - property; +module.exports = __nested_webpack_require_1708576__(/*! stream */ "stream"); - for (i = 0; i < properties.length; i += 1) { - property = properties[i]; - propertyTest = propertyTest || hasOwnProp(input, property); - } - return objectTest && propertyTest; - } +/***/ }), - function isNumberOrStringArray(input) { - var arrayTest = isArray(input), - dataTypeTest = false; - if (arrayTest) { - dataTypeTest = - input.filter(function (item) { - return !isNumber(item) && isString(input); - }).length === 0; - } - return arrayTest && dataTypeTest; - } +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js": +/*!**********************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js ***! + \**********************************************************************************************/ +/***/ ((module, exports, __nested_webpack_require_1709098__) => { - function isCalendarSpec(input) { - var objectTest = isObject(input) && !isObjectEmpty(input), - propertyTest = false, - properties = [ - 'sameDay', - 'nextDay', - 'lastDay', - 'nextWeek', - 'lastWeek', - 'sameElse', - ], - i, - property; +var Stream = __nested_webpack_require_1709098__(/*! stream */ "stream"); +if (process.env.READABLE_STREAM === 'disable' && Stream) { + module.exports = Stream.Readable; + Object.assign(module.exports, Stream); + module.exports.Stream = Stream; +} else { + exports = module.exports = __nested_webpack_require_1709098__(/*! ./lib/_stream_readable.js */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js"); + exports.Stream = Stream || exports; + exports.Readable = exports; + exports.Writable = __nested_webpack_require_1709098__(/*! ./lib/_stream_writable.js */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js"); + exports.Duplex = __nested_webpack_require_1709098__(/*! ./lib/_stream_duplex.js */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js"); + exports.Transform = __nested_webpack_require_1709098__(/*! ./lib/_stream_transform.js */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js"); + exports.PassThrough = __nested_webpack_require_1709098__(/*! ./lib/_stream_passthrough.js */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_passthrough.js"); + exports.finished = __nested_webpack_require_1709098__(/*! ./lib/internal/streams/end-of-stream.js */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); + exports.pipeline = __nested_webpack_require_1709098__(/*! ./lib/internal/streams/pipeline.js */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/pipeline.js"); +} - for (i = 0; i < properties.length; i += 1) { - property = properties[i]; - propertyTest = propertyTest || hasOwnProp(input, property); - } - return objectTest && propertyTest; - } +/***/ }), - function getCalendarFormat(myMoment, now) { - var diff = myMoment.diff(now, 'days', true); - return diff < -6 - ? 'sameElse' - : diff < -1 - ? 'lastWeek' - : diff < 0 - ? 'lastDay' - : diff < 1 - ? 'sameDay' - : diff < 2 - ? 'nextDay' - : diff < 7 - ? 'nextWeek' - : 'sameElse'; - } +/***/ "./build/cht-core-4-6/api/node_modules/winston/package.json": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/package.json ***! + \******************************************************************/ +/***/ ((module) => { - function calendar$1(time, formats) { - // Support for single parameter, formats only overload to the calendar function - if (arguments.length === 1) { - if (!arguments[0]) { - time = undefined; - formats = undefined; - } else if (isMomentInput(arguments[0])) { - time = arguments[0]; - formats = undefined; - } else if (isCalendarSpec(arguments[0])) { - formats = arguments[0]; - time = undefined; - } - } - // We want to compare the start of today, vs this. - // Getting start-of-today depends on whether we're local/utc/offset or not. - var now = time || createLocal(), - sod = cloneWithOffset(now, this).startOf('day'), - format = hooks.calendarFormat(this, sod) || 'sameElse', - output = - formats && - (isFunction(formats[format]) - ? formats[format].call(this, now) - : formats[format]); +"use strict"; +module.exports = JSON.parse('{"name":"winston","description":"A logger for just about everything.","version":"3.10.0","author":"Charlie Robbins ","maintainers":["David Hyde "],"repository":{"type":"git","url":"https://github.com/winstonjs/winston.git"},"keywords":["winston","logger","logging","logs","sysadmin","bunyan","pino","loglevel","tools","json","stream"],"dependencies":{"@dabh/diagnostics":"^2.0.2","@colors/colors":"1.5.0","async":"^3.2.3","is-stream":"^2.0.0","logform":"^2.4.0","one-time":"^1.0.0","readable-stream":"^3.4.0","safe-stable-stringify":"^2.3.1","stack-trace":"0.0.x","triple-beam":"^1.3.0","winston-transport":"^4.5.0"},"devDependencies":{"@babel/cli":"^7.17.0","@babel/core":"^7.17.2","@babel/preset-env":"^7.16.7","@dabh/eslint-config-populist":"^5.0.0","@types/node":"^20.3.1","abstract-winston-transport":"^0.5.1","assume":"^2.2.0","cross-spawn-async":"^2.2.5","eslint":"^8.9.0","hock":"^1.4.1","mocha":"8.1.3","nyc":"^15.1.0","rimraf":"^3.0.2","split2":"^4.1.0","std-mocks":"^1.0.1","through2":"^4.0.2","winston-compat":"^0.1.5"},"main":"./lib/winston.js","browser":"./dist/winston","types":"./index.d.ts","scripts":{"lint":"eslint lib/*.js lib/winston/*.js lib/winston/**/*.js --resolve-plugins-relative-to ./node_modules/@dabh/eslint-config-populist","test":"mocha","test:coverage":"nyc npm run test:unit","test:unit":"mocha test/unit","test:integration":"mocha test/integration","build":"rimraf dist && babel lib -d dist","prepublishOnly":"npm run build"},"engines":{"node":">= 12.0.0"},"license":"MIT"}'); - return this.format( - output || this.localeData().calendar(format, this, createLocal(now)) - ); - } +/***/ }), - function clone() { - return new Moment(this); - } +/***/ "./build/cht-core-4-6/api/src/enketo-transformer/markdown.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/api/src/enketo-transformer/markdown.js ***! + \*******************************************************************/ +/***/ ((module) => { - function isAfter(input, units) { - var localInput = isMoment(input) ? input : createLocal(input); - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(units) || 'millisecond'; - if (units === 'millisecond') { - return this.valueOf() > localInput.valueOf(); - } else { - return localInput.valueOf() < this.clone().startOf(units).valueOf(); - } - } +// identical copy of https://github.com/enketo/enketo-transformer/blob/2.1.5/src/markdown.js +// committed because of https://github.com/medic/cht-core/issues/7771 - function isBefore(input, units) { - var localInput = isMoment(input) ? input : createLocal(input); - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(units) || 'millisecond'; - if (units === 'millisecond') { - return this.valueOf() < localInput.valueOf(); - } else { - return this.clone().endOf(units).valueOf() < localInput.valueOf(); - } - } +/** + * @module markdown + */ - function isBetween(from, to, units, inclusivity) { - var localFrom = isMoment(from) ? from : createLocal(from), - localTo = isMoment(to) ? to : createLocal(to); - if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { - return false; - } - inclusivity = inclusivity || '()'; - return ( - (inclusivity[0] === '(' - ? this.isAfter(localFrom, units) - : !this.isBefore(localFrom, units)) && - (inclusivity[1] === ')' - ? this.isBefore(localTo, units) - : !this.isAfter(localTo, units)) - ); - } +/** + * Transforms XForm label and hint textnode content with a subset of Markdown into HTML + * + * Supported: + * - `_`, `__`, `*`, `**`, `[]()`, `#`, `##`, `###`, `####`, `#####`, + * - span tags and html-encoded span tags, + * - single-level unordered markdown lists and single-level ordered markdown lists + * - newline characters + * + * Also HTML encodes any unsupported HTML tags for safe use inside web-based clients + * + * @static + * @param {string} text - Text content of a textnode. + * @return {string} transformed text content of a textnode. + */ +function markdownToHtml(text) { + // note: in JS $ matches end of line as well as end of string, and ^ both beginning of line and string + const html = text + // html encoding of < because libXMLJs Element.text() converts html entities + .replace(//gm, '>') + // span + .replace( + /<\s?span([^/\n]*)>((?:(?!<\/).)+)<\/\s?span\s?>/gm, + _createSpan + ) + // sup + .replace( + /<\s?sup([^/\n]*)>((?:(?!<\/).)+)<\/\s?sup\s?>/gm, + _createSup + ) + // sub + .replace( + /<\s?sub([^/\n]*)>((?:(?!<\/).)+)<\/\s?sub\s?>/gm, + _createSub + ) + // "\" will be used as escape character for *, _ + .replace(/&/gm, '&') + .replace(/\\\\/gm, '&92;') + .replace(/\\\*/gm, '&42;') + .replace(/\\_/gm, '&95;') + .replace(/\\#/gm, '&35;') + // strong + .replace(/__(.*?)__/gm, '$1') + .replace(/\*\*(.*?)\*\*/gm, '$1') + // emphasis + .replace(/_([^\s][^_\n]*)_/gm, '$1') + .replace(/\*([^\s][^*\n]*)\*/gm, '$1') + // links + .replace( + /\[([^\]]*)\]\(([^)]+)\)/gm, + '$1' + ) + // headers + .replace(/^\s*(#{1,6})\s?([^#][^\n]*)(\n|$)/gm, _createHeader) + // unordered lists + .replace(/^((\*|\+|-) (.*)(\n|$))+/gm, _createUnorderedList) + // ordered lists, which have to be preceded by a newline since numbered labels are common + .replace(/(\n([0-9]+\.) (.*))+$/gm, _createOrderedList) + // newline characters followed by
        tag + .replace(/\n(
          )/gm, '$1') + // reverting escape of special characters + .replace(/&35;/gm, '#') + .replace(/&95;/gm, '_') + .replace(/&92;/gm, '\\') + .replace(/&42;/gm, '*') + .replace(/&/gm, '&') + // paragraphs + .replace(/([^\n]+)\n{2,}/gm, _createParagraph) + // any remaining newline characters + .replace(/([^\n]+)\n/gm, '$1
          '); - function isSame(input, units) { - var localInput = isMoment(input) ? input : createLocal(input), - inputMs; - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(units) || 'millisecond'; - if (units === 'millisecond') { - return this.valueOf() === localInput.valueOf(); - } else { - inputMs = localInput.valueOf(); - return ( - this.clone().startOf(units).valueOf() <= inputMs && - inputMs <= this.clone().endOf(units).valueOf() - ); - } - } + return html; +} - function isSameOrAfter(input, units) { - return this.isSame(input, units) || this.isAfter(input, units); - } +/** + * @param {string} match - The matched substring. + * @param {*} hashtags - Before header text. `#` gives `

          `, `####` gives `

          `. + * @param {string} content - Header text. + * @return {string} HTML string. + */ +function _createHeader(match, hashtags, content) { + const level = hashtags.length; - function isSameOrBefore(input, units) { - return this.isSame(input, units) || this.isBefore(input, units); - } + return `${content.replace(/#+$/, '')}`; +} - function diff(input, units, asFloat) { - var that, zoneDelta, output; +/** + * @param {string} match - The matched substring. + * @return {string} HTML string. + */ +function _createUnorderedList(match) { + const items = match.replace(/(\*|\+|-)(.*)\n?/gm, _createItem); - if (!this.isValid()) { - return NaN; - } + return `
            ${items}
          `; +} + +/** + * @param {string} match - The matched substring. + * @return {string} HTML string. + */ +function _createOrderedList(match) { + const startMatches = match.match(/^\n?(?[0-9]+)\./); + const start = + startMatches && startMatches.groups && startMatches.groups.start !== '1' + ? ` start="${startMatches.groups.start}"` + : ''; + const items = match.replace(/\n?([0-9]+\.)(.*)/gm, _createItem); + + return `${items}`; +} + +/** + * @param {string} match - The matched substring. + * @param {string} bullet - The list item bullet/number. + * @param {string} content - Item text. + * @return {string} HTML string. + */ +function _createItem(match, bullet, content) { + return `
        • ${content.trim()}
        • `; +} - that = cloneWithOffset(input, this); +/** + * @param {string} match - The matched substring. + * @param {string} line - The line. + * @return {string} HTML string. + */ +function _createParagraph(match, line) { + const trimmed = line.trim(); + if (/^<\/?(ul|ol|li|h|p|bl)/i.test(trimmed)) { + return line; + } - if (!that.isValid()) { - return NaN; - } + return `

          ${trimmed}

          `; +} - zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; +/** + * @param {string} match - The matched substring. + * @param {string} attributes - Attributes to be added for `` + * @param {string} content - Span text. + * @return {string} HTML string. + */ +function _createSpan(match, attributes, content) { + const sanitizedAttributes = _sanitizeAttributes(attributes); - units = normalizeUnits(units); + return `${content}`; +} - switch (units) { - case 'year': - output = monthDiff(this, that) / 12; - break; - case 'month': - output = monthDiff(this, that); - break; - case 'quarter': - output = monthDiff(this, that) / 3; - break; - case 'second': - output = (this - that) / 1e3; - break; // 1000 - case 'minute': - output = (this - that) / 6e4; - break; // 1000 * 60 - case 'hour': - output = (this - that) / 36e5; - break; // 1000 * 60 * 60 - case 'day': - output = (this - that - zoneDelta) / 864e5; - break; // 1000 * 60 * 60 * 24, negate dst - case 'week': - output = (this - that - zoneDelta) / 6048e5; - break; // 1000 * 60 * 60 * 24 * 7, negate dst - default: - output = this - that; - } +/** + * @param {string} match - The matched substring. + * @param {string} attributes - The attributes. + * @param {string} content - Sup text. + * @return {string} HTML string. + */ +function _createSup(match, attributes, content) { + // ignore attributes completely + return `${content}`; +} - return asFloat ? output : absFloor(output); - } +/** + * @param {string} match - The matched substring. + * @param {string} attributes - The attributes. + * @param {string} content - Sub text. + * @return {string} HTML string. + */ +function _createSub(match, attributes, content) { + // ignore attributes completely + return `${content}`; +} - function monthDiff(a, b) { - if (a.date() < b.date()) { - // end-of-month calculations work correct when the start month has more - // days than the end month. - return -monthDiff(b, a); - } - // difference in months - var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), - // b is in (anchor - 1 month, anchor + 1 month) - anchor = a.clone().add(wholeMonthDiff, 'months'), - anchor2, - adjust; +/** + * @param {string} attributes - The attributes. + * @return {string} style + */ +function _sanitizeAttributes(attributes) { + const styleMatches = attributes.match(/( style=(["'])[^"']*\2)/); + const style = styleMatches && styleMatches.length ? styleMatches[0] : ''; - if (b - anchor < 0) { - anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor - anchor2); - } else { - anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor2 - anchor); - } + return style; +} - //check for negative zero, return zero if negative zero - return -(wholeMonthDiff + adjust) || 0; - } +module.exports = { + toHtml: markdownToHtml, +}; - hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; - hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; - function toString() { - return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); - } +/***/ }), - function toISOString(keepOffset) { - if (!this.isValid()) { - return null; - } - var utc = keepOffset !== true, - m = utc ? this.clone().utc() : this; - if (m.year() < 0 || m.year() > 9999) { - return formatMoment( - m, - utc - ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' - : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ' - ); - } - if (isFunction(Date.prototype.toISOString)) { - // native implementation is ~50x faster, use it when we can - if (utc) { - return this.toDate().toISOString(); - } else { - return new Date(this.valueOf() + this.utcOffset() * 60 * 1000) - .toISOString() - .replace('Z', formatMoment(m, 'Z')); - } - } - return formatMoment( - m, - utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ' - ); - } +/***/ "./build/cht-core-4-6/api/src/logger.js": +/*!**********************************************!*\ + !*** ./build/cht-core-4-6/api/src/logger.js ***! + \**********************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1719002__) => { - /** - * Return a human readable representation of a moment that can - * also be evaluated to get a new moment which is the same - * - * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects - */ - function inspect() { - if (!this.isValid()) { - return 'moment.invalid(/* ' + this._i + ' */)'; - } - var func = 'moment', - zone = '', - prefix, - year, - datetime, - suffix; - if (!this.isLocal()) { - func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; - zone = 'Z'; - } - prefix = '[' + func + '("]'; - year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; - datetime = '-MM-DD[T]HH:mm:ss.SSS'; - suffix = zone + '[")]'; +const { createLogger, format, transports } = __nested_webpack_require_1719002__(/*! winston */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston.js"); +const env = "development" || 0; +const morgan = __nested_webpack_require_1719002__(/*! morgan */ "./build/cht-core-4-6/api/node_modules/morgan/index.js"); +const moment = __nested_webpack_require_1719002__(/*! moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js"); +const DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ss.SSS'; +morgan.token('date', () => moment().format(DATE_FORMAT)); - return this.format(prefix + year + datetime + suffix); - } - function format(inputString) { - if (!inputString) { - inputString = this.isUtc() - ? hooks.defaultFormatUtc - : hooks.defaultFormat; - } - var output = formatMoment(this, inputString); - return this.localeData().postformat(output); - } +const cleanUpErrorsFromSymbolProperties = (info) => { + if (!info) { + return; + } - function from(time, withoutSuffix) { - if ( - this.isValid() && - ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) - ) { - return createDuration({ to: this, from: time }) - .locale(this.locale()) - .humanize(!withoutSuffix); - } else { - return this.localeData().invalidDate(); - } + // errors can be passed as "Symbol('splat')" properties, when doing: logger.error('message: %o', actualError); + // see https://github.com/winstonjs/winston/blob/2625f60c5c85b8c4926c65e98a591f8b42e0db9a/README.md#streams-objectmode-and-info-objects + Object.getOwnPropertySymbols(info).forEach(property => { + const values = info[property]; + if (Array.isArray(values)) { + values.forEach(value => cleanUpRequestError(value)); } + }); +}; - function fromNow(withoutSuffix) { - return this.from(createLocal(), withoutSuffix); - } +const cleanUpRequestError = (error) => { + // These are the error types that we're expecting from request-promise-native + // https://github.com/request/promise-core/blob/v1.1.4/lib/errors.js + const requestErrorConstructors = ['RequestError', 'StatusCodeError', 'TransformError']; + if (error && error.constructor && requestErrorConstructors.includes(error.constructor.name)) { + // these properties could contain sensitive information, like passwords or auth tokens, and are not safe to log + delete error.options; + delete error.request; + delete error.response; + } +}; - function to(time, withoutSuffix) { - if ( - this.isValid() && - ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) - ) { - return createDuration({ from: this, to: time }) - .locale(this.locale()) - .humanize(!withoutSuffix); - } else { - return this.localeData().invalidDate(); - } - } +const enumerateErrorFormat = format(info => { + cleanUpErrorsFromSymbolProperties(info); + cleanUpRequestError(info); + cleanUpRequestError(info.message); - function toNow(withoutSuffix) { - return this.to(createLocal(), withoutSuffix); - } + if (info.message instanceof Error) { + info.message = Object.assign({ + message: info.message.message, + stack: info.message.stack + }, info.message); + } - // If passed a locale key, it will set the locale for this - // instance. Otherwise, it will return the locale configuration - // variables for this instance. - function locale(key) { - var newLocaleData; + if (info instanceof Error) { + return Object.assign({ + message: info.message, + stack: info.stack + }, info); + } - if (key === undefined) { - return this._locale._abbr; - } else { - newLocaleData = getLocale(key); - if (newLocaleData != null) { - this._locale = newLocaleData; - } - return this; - } - } + return info; +}); - var lang = deprecate( - 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', - function (key) { - if (key === undefined) { - return this.localeData(); - } else { - return this.locale(key); - } - } - ); +const logger = createLogger({ + format: format.combine( + enumerateErrorFormat(), + format.splat(), + format.simple() + ), + transports: [ + new transports.Console({ + // change level if in dev environment versus production + level: env === 'development' ? 'debug' : 'info', + format: format.combine( + // https://github.com/winstonjs/winston/issues/1345 + format(info => { + info.level = info.level.toUpperCase(); + return info; + })(), + format.timestamp({ format: DATE_FORMAT }), + format.printf(info => `${info.timestamp} ${info.level}: ${info.message} ${info.stack ? info.stack : ''}`) + ), + }), + ], +}); - function localeData() { - return this._locale; - } +module.exports = logger; - var MS_PER_SECOND = 1000, - MS_PER_MINUTE = 60 * MS_PER_SECOND, - MS_PER_HOUR = 60 * MS_PER_MINUTE, - MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; - // actual modulo - handles negative numbers (for dates before 1970): - function mod$1(dividend, divisor) { - return ((dividend % divisor) + divisor) % divisor; - } +/***/ }), - function localStartOfDate(y, m, d) { - // the date constructor remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0) { - // preserve leap years using a full 400 year cycle, then reset - return new Date(y + 400, m, d) - MS_PER_400_YEARS; - } else { - return new Date(y, m, d).valueOf(); - } - } +/***/ "./build/cht-core-4-6/api/src/services/generate-xform.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/api/src/services/generate-xform.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1722160__) => { - function utcStartOfDate(y, m, d) { - // Date.UTC remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0) { - // preserve leap years using a full 400 year cycle, then reset - return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; - } else { - return Date.UTC(y, m, d); - } - } +/** + * XForm generation service + * @module generate-xform + */ +const childProcess = __nested_webpack_require_1722160__(/*! child_process */ "child_process"); +const path = __nested_webpack_require_1722160__(/*! path */ "path"); +const htmlParser = __nested_webpack_require_1722160__(/*! node-html-parser */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/index.js"); +const logger = __nested_webpack_require_1722160__(/*! ../logger */ "./build/cht-core-4-6/api/src/logger.js"); +// const db = require('../db'); +// const formsService = require('./forms'); +const markdown = __nested_webpack_require_1722160__(/*! ../enketo-transformer/markdown */ "./build/cht-core-4-6/api/src/enketo-transformer/markdown.js"); - function startOf(units) { - var time, startOfDate; - units = normalizeUnits(units); - if (units === undefined || units === 'millisecond' || !this.isValid()) { - return this; - } +const MODEL_ROOT_OPEN = ''; +const ROOT_CLOSE = ''; +const JAVAROSA_SRC = / src="jr:\/\//gi; +const MEDIA_SRC_ATTR = ' data-media-src="'; - startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; +// const FORM_STYLESHEET = path.join(__dirname, '../xsl/openrosa2html5form.xsl'); +// const MODEL_STYLESHEET = path.join(__dirname, '../enketo-transformer/xsl/openrosa2xmlmodel.xsl'); +const { FORM_STYLESHEET, MODEL_STYLESHEET } = __nested_webpack_require_1722160__(/*! ../xsl/xsl-paths */ "./cht-bundles/cht-core-4-6/xsl-paths.js"); +const XSLTPROC_CMD = 'xsltproc'; - switch (units) { - case 'year': - time = startOfDate(this.year(), 0, 1); - break; - case 'quarter': - time = startOfDate( - this.year(), - this.month() - (this.month() % 3), - 1 - ); - break; - case 'month': - time = startOfDate(this.year(), this.month(), 1); - break; - case 'week': - time = startOfDate( - this.year(), - this.month(), - this.date() - this.weekday() - ); - break; - case 'isoWeek': - time = startOfDate( - this.year(), - this.month(), - this.date() - (this.isoWeekday() - 1) - ); - break; - case 'day': - case 'date': - time = startOfDate(this.year(), this.month(), this.date()); - break; - case 'hour': - time = this._d.valueOf(); - time -= mod$1( - time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), - MS_PER_HOUR - ); - break; - case 'minute': - time = this._d.valueOf(); - time -= mod$1(time, MS_PER_MINUTE); - break; - case 'second': - time = this._d.valueOf(); - time -= mod$1(time, MS_PER_SECOND); - break; - } +const processErrorHandler = (xsltproc, err, reject) => { + xsltproc.stdin.end(); + if (err.code === 'EPIPE' // Node v10,v12,v14 + || (err.code === 'ENOENT' && err.syscall === `spawn ${XSLTPROC_CMD}`) // Node v8,v16+ + ) { + const errMsg = `Unable to continue execution, check that '${XSLTPROC_CMD}' command is available.`; + logger.error(errMsg); + return reject(new Error(errMsg)); + } + logger.error(err); + return reject(new Error(`Unknown Error: An error occurred when executing '${XSLTPROC_CMD}' command`)); +}; - this._d.setTime(time); - hooks.updateOffset(this, true); - return this; +const transform = (formXml, stylesheet) => { + return new Promise((resolve, reject) => { + const xsltproc = childProcess.spawn(XSLTPROC_CMD, [ stylesheet, '-' ]); + let stdout = ''; + let stderr = ''; + xsltproc.stdout.on('data', data => stdout += data); + xsltproc.stderr.on('data', data => stderr += data); + xsltproc.stdin.setEncoding('utf-8'); + xsltproc.stdin.on('error', err => { + // Errors related with spawned processes and stdin are handled here on Node v10 + return processErrorHandler(xsltproc, err, reject); + }); + try { + xsltproc.stdin.write(formXml); + xsltproc.stdin.end(); + } catch (err) { + // Errors related with spawned processes and stdin are handled here on Node v12 + return processErrorHandler(xsltproc, err, reject); } - - function endOf(units) { - var time, startOfDate; - units = normalizeUnits(units); - if (units === undefined || units === 'millisecond' || !this.isValid()) { - return this; - } - - startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; - - switch (units) { - case 'year': - time = startOfDate(this.year() + 1, 0, 1) - 1; - break; - case 'quarter': - time = - startOfDate( - this.year(), - this.month() - (this.month() % 3) + 3, - 1 - ) - 1; - break; - case 'month': - time = startOfDate(this.year(), this.month() + 1, 1) - 1; - break; - case 'week': - time = - startOfDate( - this.year(), - this.month(), - this.date() - this.weekday() + 7 - ) - 1; - break; - case 'isoWeek': - time = - startOfDate( - this.year(), - this.month(), - this.date() - (this.isoWeekday() - 1) + 7 - ) - 1; - break; - case 'day': - case 'date': - time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; - break; - case 'hour': - time = this._d.valueOf(); - time += - MS_PER_HOUR - - mod$1( - time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), - MS_PER_HOUR - ) - - 1; - break; - case 'minute': - time = this._d.valueOf(); - time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; - break; - case 'second': - time = this._d.valueOf(); - time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; - break; + xsltproc.on('close', (code, signal) => { + if (code !== 0 || signal || stderr.length) { + let errorMsg = `Error transforming xml. xsltproc returned code "${code}", and signal "${signal}"`; + if (stderr.length) { + errorMsg += '. xsltproc stderr output:\n' + stderr; } + return reject(new Error(errorMsg)); + } + if (!stdout) { + return reject(new Error(`Error transforming xml. xsltproc returned no error but no output.`)); + } + resolve(stdout); + }); + xsltproc.on('error', err => { + // Errors related with spawned processes are handled here on Node v8,v14,v16+ + return processErrorHandler(xsltproc, err, reject); + }); + }); +}; - this._d.setTime(time); - hooks.updateOffset(this, true); - return this; - } +const convertDynamicUrls = (original) => original.replace( + /]+href="([^"]*---output[^"]*)"[^>]*>(.*?)<\/a>/gm, + '' + + '$2' + + '' +); - function valueOf() { - return this._d.valueOf() - (this._offset || 0) * 60000; - } +const convertEmbeddedHtml = (original) => original + .replace(/<\s*(\/)?\s*([\s\S]*?)\s*>/gm, '<$1$2>') + .replace(/"/g, '"') + .replace(/'/g, '\'') + .replace(/&/g, '&'); - function unix() { - return Math.floor(this.valueOf() / 1000); - } +const replaceNode = (currentNode, newNode) => { + const { parentNode } = currentNode; + const idx = parentNode.childNodes.findIndex((child) => child === currentNode); + parentNode.childNodes = [ + ...parentNode.childNodes.slice(0, idx), + newNode, + ...parentNode.childNodes.slice(idx + 1), + ]; +}; - function toDate() { - return new Date(this.valueOf()); - } +// Based on enketo/enketo-transformer +// https://github.com/enketo/enketo-transformer/blob/377caf14153586b040367f8c2de53c9d794c19d4/src/transformer.js#L430 +const replaceAllMarkdown = (formString) => { + const replacements = {}; + const form = htmlParser.parse(formString).querySelector('form'); - function toArray() { - var m = this; - return [ - m.year(), - m.month(), - m.date(), - m.hour(), - m.minute(), - m.second(), - m.millisecond(), - ]; - } + // First turn all outputs into text so * { + results.push(result); + return results; }); + }); +}; - addRegexToken('y', matchUnsigned); - addRegexToken('yy', matchUnsigned); - addRegexToken('yyy', matchUnsigned); - addRegexToken('yyyy', matchUnsigned); - addRegexToken('yo', matchEraYearOrdinal); +// Returns array of docs that need saving. +const updateAllAttachments = docs => { + // spawn the child processes in series so we don't smash the server + return docs.reduce(updateAttachments, Promise.resolve([])).then(results => { + return docs.filter((doc, i) => { + return results[i] && updateAttachmentsIfRequired(doc, results[i]); + }); + }); +}; - addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); - addParseToken(['yo'], function (input, array, config, token) { - var match; - if (config._locale._eraYearOrdinalRegex) { - match = input.match(config._locale._eraYearOrdinalRegex); - } +module.exports = { - if (config._locale.eraYearOrdinalParse) { - array[YEAR] = config._locale.eraYearOrdinalParse(input, match); - } else { - array[YEAR] = parseInt(input, 10); + /** + * Updates the model and form attachments of the given form if necessary. + * @param {string} docId - The db id of the doc defining the form. + */ + update: docId => { + return db.medic.get(docId, { attachments: true, binary: true }) + .then(doc => updateAllAttachments([ doc ])) + .then(docs => { + const doc = docs.length && docs[0]; + if (doc) { + logger.info(`Updating form with ID "${docId}"`); + return db.medic.put(doc); + } + logger.info(`Form with ID "${docId}" does not need to be updated.`); + }); + }, + + /** + * Updates the model and form attachments for all forms if necessary. + */ + updateAll: () => { + return formsService + .getFormDocs() + .then(docs => { + if (!docs.length) { + return []; + } + return updateAllAttachments(docs); + }) + .then(toSave => { + logger.info(`Updating ${toSave.length} enketo form${toSave.length === 1 ? '' : 's'}`); + if (!toSave.length) { + return; } - }); + return db.saveDocs(db.medic, toSave).then(results => { + const failures = results.filter(result => !result.ok); + if (failures.length) { + logger.error('Bulk save failed with: %o', failures); + throw new Error('Failed to save updated xforms to the database'); + } + }); + }); - function localeEras(m, format) { - var i, - l, - date, - eras = this._eras || getLocale('en')._eras; - for (i = 0, l = eras.length; i < l; ++i) { - switch (typeof eras[i].since) { - case 'string': - // truncate time - date = hooks(eras[i].since).startOf('day'); - eras[i].since = date.valueOf(); - break; - } + }, - switch (typeof eras[i].until) { - case 'undefined': - eras[i].until = +Infinity; - break; - case 'string': - // truncate time - date = hooks(eras[i].until).startOf('day').valueOf(); - eras[i].until = date.valueOf(); - break; - } - } - return eras; - } + /** + * @param formXml The XML form string + * @returns a promise with the XML form transformed following + * the stylesheet rules defined (XSL transformations) + */ + generate - function localeErasParse(eraName, format, strict) { - var i, - l, - eras = this.eras(), - name, - abbr, - narrow; - eraName = eraName.toUpperCase(); +}; - for (i = 0, l = eras.length; i < l; ++i) { - name = eras[i].name.toUpperCase(); - abbr = eras[i].abbr.toUpperCase(); - narrow = eras[i].narrow.toUpperCase(); - if (strict) { - switch (format) { - case 'N': - case 'NN': - case 'NNN': - if (abbr === eraName) { - return eras[i]; - } - break; +/***/ }), - case 'NNNN': - if (name === eraName) { - return eras[i]; - } - break; +/***/ "./build/cht-core-4-6/node_modules/arguments-extended/index.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/arguments-extended/index.js ***! + \*********************************************************************/ +/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_1732499__) { - case 'NNNNN': - if (narrow === eraName) { - return eras[i]; - } - break; - } - } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { - return eras[i]; - } - } - } +(function () { + "use strict"; - function localeErasConvertYear(era, year) { - var dir = era.since <= era.until ? +1 : -1; - if (year === undefined) { - return hooks(era.since).year(); - } else { - return hooks(era.since).year() + (year - era.offset) * dir; - } - } + function defineArgumentsExtended(extended, is) { - function getEraName() { - var i, - l, - val, - eras = this.localeData().eras(); - for (i = 0, l = eras.length; i < l; ++i) { - // truncate time - val = this.clone().startOf('day').valueOf(); + var pSlice = Array.prototype.slice, + isArguments = is.isArguments; - if (eras[i].since <= val && val <= eras[i].until) { - return eras[i].name; - } - if (eras[i].until <= val && val <= eras[i].since) { - return eras[i].name; + function argsToArray(args, slice) { + var i = -1, j = 0, l = args.length, ret = []; + slice = slice || 0; + i += slice; + while (++i < l) { + ret[j++] = args[i]; } + return ret; } - return ''; + + return extended + .define(isArguments, { + toArray: argsToArray + }) + .expose({ + argsToArray: argsToArray + }); } - function getEraNarrow() { - var i, - l, - val, - eras = this.localeData().eras(); - for (i = 0, l = eras.length; i < l; ++i) { - // truncate time - val = this.clone().startOf('day').valueOf(); + if (true) { + if ( true && module.exports) { + module.exports = defineArgumentsExtended(__nested_webpack_require_1732499__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js"), __nested_webpack_require_1732499__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js")); - if (eras[i].since <= val && val <= eras[i].until) { - return eras[i].narrow; - } - if (eras[i].until <= val && val <= eras[i].since) { - return eras[i].narrow; - } } + } else {} - return ''; - } +}).call(this); - function getEraAbbr() { - var i, - l, - val, - eras = this.localeData().eras(); - for (i = 0, l = eras.length; i < l; ++i) { - // truncate time - val = this.clone().startOf('day').valueOf(); - if (eras[i].since <= val && val <= eras[i].until) { - return eras[i].abbr; - } - if (eras[i].until <= val && val <= eras[i].since) { - return eras[i].abbr; - } - } - return ''; - } +/***/ }), - function getEraYear() { - var i, - l, - dir, - val, - eras = this.localeData().eras(); - for (i = 0, l = eras.length; i < l; ++i) { - dir = eras[i].since <= eras[i].until ? +1 : -1; +/***/ "./build/cht-core-4-6/node_modules/array-extended/index.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/array-extended/index.js ***! + \*****************************************************************/ +/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_1733852__) { - // truncate time - val = this.clone().startOf('day').valueOf(); +(function () { + "use strict"; + /*global define*/ - if ( - (eras[i].since <= val && val <= eras[i].until) || - (eras[i].until <= val && val <= eras[i].since) - ) { - return ( - (this.year() - hooks(eras[i].since).year()) * dir + - eras[i].offset - ); - } - } + function defineArray(extended, is, args) { - return this.year(); - } + var isString = is.isString, + isArray = Array.isArray || is.isArray, + isDate = is.isDate, + floor = Math.floor, + abs = Math.abs, + mathMax = Math.max, + mathMin = Math.min, + arrayProto = Array.prototype, + arrayIndexOf = arrayProto.indexOf, + arrayForEach = arrayProto.forEach, + arrayMap = arrayProto.map, + arrayReduce = arrayProto.reduce, + arrayReduceRight = arrayProto.reduceRight, + arrayFilter = arrayProto.filter, + arrayEvery = arrayProto.every, + arraySome = arrayProto.some, + argsToArray = args.argsToArray; - function erasNameRegex(isStrict) { - if (!hasOwnProp(this, '_erasNameRegex')) { - computeErasParse.call(this); - } - return isStrict ? this._erasNameRegex : this._erasRegex; - } - function erasAbbrRegex(isStrict) { - if (!hasOwnProp(this, '_erasAbbrRegex')) { - computeErasParse.call(this); + function cross(num, cros) { + return reduceRight(cros, function (a, b) { + if (!isArray(b)) { + b = [b]; + } + b.unshift(num); + a.unshift(b); + return a; + }, []); } - return isStrict ? this._erasAbbrRegex : this._erasRegex; - } - function erasNarrowRegex(isStrict) { - if (!hasOwnProp(this, '_erasNarrowRegex')) { - computeErasParse.call(this); + function permute(num, cross, length) { + var ret = []; + for (var i = 0; i < cross.length; i++) { + ret.push([num].concat(rotate(cross, i)).slice(0, length)); + } + return ret; } - return isStrict ? this._erasNarrowRegex : this._erasRegex; - } - - function matchEraAbbr(isStrict, locale) { - return locale.erasAbbrRegex(isStrict); - } - function matchEraName(isStrict, locale) { - return locale.erasNameRegex(isStrict); - } - function matchEraNarrow(isStrict, locale) { - return locale.erasNarrowRegex(isStrict); - } + function intersection(a, b) { + var ret = [], aOne, i = -1, l; + l = a.length; + while (++i < l) { + aOne = a[i]; + if (indexOf(b, aOne) !== -1) { + ret.push(aOne); + } + } + return ret; + } - function matchEraYearOrdinal(isStrict, locale) { - return locale._eraYearOrdinalRegex || matchUnsigned; - } - function computeErasParse() { - var abbrPieces = [], - namePieces = [], - narrowPieces = [], - mixedPieces = [], - i, - l, - eras = this.eras(); + var _sort = (function () { - for (i = 0, l = eras.length; i < l; ++i) { - namePieces.push(regexEscape(eras[i].name)); - abbrPieces.push(regexEscape(eras[i].abbr)); - narrowPieces.push(regexEscape(eras[i].narrow)); + var isAll = function (arr, test) { + return every(arr, test); + }; - mixedPieces.push(regexEscape(eras[i].name)); - mixedPieces.push(regexEscape(eras[i].abbr)); - mixedPieces.push(regexEscape(eras[i].narrow)); - } + var defaultCmp = function (a, b) { + return a - b; + }; - this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); - this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); - this._erasNarrowRegex = new RegExp( - '^(' + narrowPieces.join('|') + ')', - 'i' - ); - } + var dateSort = function (a, b) { + return a.getTime() - b.getTime(); + }; - // FORMATTING + return function _sort(arr, property) { + var ret = []; + if (isArray(arr)) { + ret = arr.slice(); + if (property) { + if (typeof property === "function") { + ret.sort(property); + } else { + ret.sort(function (a, b) { + var aProp = a[property], bProp = b[property]; + if (isString(aProp) && isString(bProp)) { + return aProp > bProp ? 1 : aProp < bProp ? -1 : 0; + } else if (isDate(aProp) && isDate(bProp)) { + return aProp.getTime() - bProp.getTime(); + } else { + return aProp - bProp; + } + }); + } + } else { + if (isAll(ret, isString)) { + ret.sort(); + } else if (isAll(ret, isDate)) { + ret.sort(dateSort); + } else { + ret.sort(defaultCmp); + } + } + } + return ret; + }; - addFormatToken(0, ['gg', 2], 0, function () { - return this.weekYear() % 100; - }); + })(); - addFormatToken(0, ['GG', 2], 0, function () { - return this.isoWeekYear() % 100; - }); + function indexOf(arr, searchElement, from) { + var index = (from || 0) - 1, + length = arr.length; + while (++index < length) { + if (arr[index] === searchElement) { + return index; + } + } + return -1; + } - function addWeekYearFormatToken(token, getter) { - addFormatToken(0, [token, token.length], 0, getter); - } + function lastIndexOf(arr, searchElement, from) { + if (!isArray(arr)) { + throw new TypeError(); + } - addWeekYearFormatToken('gggg', 'weekYear'); - addWeekYearFormatToken('ggggg', 'weekYear'); - addWeekYearFormatToken('GGGG', 'isoWeekYear'); - addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + var t = Object(arr); + var len = t.length >>> 0; + if (len === 0) { + return -1; + } - // ALIASES + var n = len; + if (arguments.length > 2) { + n = Number(arguments[2]); + if (n !== n) { + n = 0; + } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) { + n = (n > 0 || -1) * floor(abs(n)); + } + } - addUnitAlias('weekYear', 'gg'); - addUnitAlias('isoWeekYear', 'GG'); + var k = n >= 0 ? mathMin(n, len - 1) : len - abs(n); - // PRIORITY + for (; k >= 0; k--) { + if (k in t && t[k] === searchElement) { + return k; + } + } + return -1; + } - addUnitPriority('weekYear', 1); - addUnitPriority('isoWeekYear', 1); + function filter(arr, iterator, scope) { + if (arr && arrayFilter && arrayFilter === arr.filter) { + return arr.filter(iterator, scope); + } + if (!isArray(arr) || typeof iterator !== "function") { + throw new TypeError(); + } - // PARSING + var t = Object(arr); + var len = t.length >>> 0; + var res = []; + for (var i = 0; i < len; i++) { + if (i in t) { + var val = t[i]; // in case fun mutates this + if (iterator.call(scope, val, i, t)) { + res.push(val); + } + } + } + return res; + } - addRegexToken('G', matchSigned); - addRegexToken('g', matchSigned); - addRegexToken('GG', match1to2, match2); - addRegexToken('gg', match1to2, match2); - addRegexToken('GGGG', match1to4, match4); - addRegexToken('gggg', match1to4, match4); - addRegexToken('GGGGG', match1to6, match6); - addRegexToken('ggggg', match1to6, match6); + function forEach(arr, iterator, scope) { + if (!isArray(arr) || typeof iterator !== "function") { + throw new TypeError(); + } + if (arr && arrayForEach && arrayForEach === arr.forEach) { + arr.forEach(iterator, scope); + return arr; + } + for (var i = 0, len = arr.length; i < len; ++i) { + iterator.call(scope || arr, arr[i], i, arr); + } - addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function ( - input, - week, - config, - token - ) { - week[token.substr(0, 2)] = toInt(input); - }); + return arr; + } - addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { - week[token] = hooks.parseTwoDigitYear(input); - }); + function every(arr, iterator, scope) { + if (arr && arrayEvery && arrayEvery === arr.every) { + return arr.every(iterator, scope); + } + if (!isArray(arr) || typeof iterator !== "function") { + throw new TypeError(); + } + var t = Object(arr); + var len = t.length >>> 0; + for (var i = 0; i < len; i++) { + if (i in t && !iterator.call(scope, t[i], i, t)) { + return false; + } + } + return true; + } - // MOMENTS + function some(arr, iterator, scope) { + if (arr && arraySome && arraySome === arr.some) { + return arr.some(iterator, scope); + } + if (!isArray(arr) || typeof iterator !== "function") { + throw new TypeError(); + } + var t = Object(arr); + var len = t.length >>> 0; + for (var i = 0; i < len; i++) { + if (i in t && iterator.call(scope, t[i], i, t)) { + return true; + } + } + return false; + } - function getSetWeekYear(input) { - return getSetWeekYearHelper.call( - this, - input, - this.week(), - this.weekday(), - this.localeData()._week.dow, - this.localeData()._week.doy - ); - } + function map(arr, iterator, scope) { + if (arr && arrayMap && arrayMap === arr.map) { + return arr.map(iterator, scope); + } + if (!isArray(arr) || typeof iterator !== "function") { + throw new TypeError(); + } - function getSetISOWeekYear(input) { - return getSetWeekYearHelper.call( - this, - input, - this.isoWeek(), - this.isoWeekday(), - 1, - 4 - ); - } + var t = Object(arr); + var len = t.length >>> 0; + var res = []; + for (var i = 0; i < len; i++) { + if (i in t) { + res.push(iterator.call(scope, t[i], i, t)); + } + } + return res; + } - function getISOWeeksInYear() { - return weeksInYear(this.year(), 1, 4); - } + function reduce(arr, accumulator, curr) { + var initial = arguments.length > 2; + if (arr && arrayReduce && arrayReduce === arr.reduce) { + return initial ? arr.reduce(accumulator, curr) : arr.reduce(accumulator); + } + if (!isArray(arr) || typeof accumulator !== "function") { + throw new TypeError(); + } + var i = 0, l = arr.length >> 0; + if (arguments.length < 3) { + if (l === 0) { + throw new TypeError("Array length is 0 and no second argument"); + } + curr = arr[0]; + i = 1; // start accumulating at the second element + } else { + curr = arguments[2]; + } + while (i < l) { + if (i in arr) { + curr = accumulator.call(undefined, curr, arr[i], i, arr); + } + ++i; + } + return curr; + } - function getISOWeeksInISOWeekYear() { - return weeksInYear(this.isoWeekYear(), 1, 4); - } + function reduceRight(arr, accumulator, curr) { + var initial = arguments.length > 2; + if (arr && arrayReduceRight && arrayReduceRight === arr.reduceRight) { + return initial ? arr.reduceRight(accumulator, curr) : arr.reduceRight(accumulator); + } + if (!isArray(arr) || typeof accumulator !== "function") { + throw new TypeError(); + } - function getWeeksInYear() { - var weekInfo = this.localeData()._week; - return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); - } + var t = Object(arr); + var len = t.length >>> 0; - function getWeeksInWeekYear() { - var weekInfo = this.localeData()._week; - return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); - } + // no value to return if no initial value, empty array + if (len === 0 && arguments.length === 2) { + throw new TypeError(); + } - function getSetWeekYearHelper(input, week, weekday, dow, doy) { - var weeksTarget; - if (input == null) { - return weekOfYear(this, dow, doy).year; - } else { - weeksTarget = weeksInYear(input, dow, doy); - if (week > weeksTarget) { - week = weeksTarget; + var k = len - 1; + if (arguments.length >= 3) { + curr = arguments[2]; + } else { + do { + if (k in arr) { + curr = arr[k--]; + break; + } + } + while (true); } - return setWeekAll.call(this, input, week, weekday, dow, doy); + while (k >= 0) { + if (k in t) { + curr = accumulator.call(undefined, curr, t[k], k, t); + } + k--; + } + return curr; } - } - function setWeekAll(weekYear, week, weekday, dow, doy) { - var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), - date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); - - this.year(date.getUTCFullYear()); - this.month(date.getUTCMonth()); - this.date(date.getUTCDate()); - return this; - } - - // FORMATTING - - addFormatToken('Q', 0, 'Qo', 'quarter'); - // ALIASES + function toArray(o) { + var ret = []; + if (o !== null) { + var args = argsToArray(arguments); + if (args.length === 1) { + if (isArray(o)) { + ret = o; + } else if (is.isHash(o)) { + for (var i in o) { + if (o.hasOwnProperty(i)) { + ret.push([i, o[i]]); + } + } + } else { + ret.push(o); + } + } else { + forEach(args, function (a) { + ret = ret.concat(toArray(a)); + }); + } + } + return ret; + } - addUnitAlias('quarter', 'Q'); + function sum(array) { + array = array || []; + if (array.length) { + return reduce(array, function (a, b) { + return a + b; + }); + } else { + return 0; + } + } - // PRIORITY + function avg(arr) { + arr = arr || []; + if (arr.length) { + var total = sum(arr); + if (is.isNumber(total)) { + return total / arr.length; + } else { + throw new Error("Cannot average an array of non numbers."); + } + } else { + return 0; + } + } - addUnitPriority('quarter', 7); + function sort(arr, cmp) { + return _sort(arr, cmp); + } - // PARSING + function min(arr, cmp) { + return _sort(arr, cmp)[0]; + } - addRegexToken('Q', match1); - addParseToken('Q', function (input, array) { - array[MONTH] = (toInt(input) - 1) * 3; - }); + function max(arr, cmp) { + return _sort(arr, cmp)[arr.length - 1]; + } - // MOMENTS + function difference(arr1) { + var ret = arr1, args = flatten(argsToArray(arguments, 1)); + if (isArray(arr1)) { + ret = filter(arr1, function (a) { + return indexOf(args, a) === -1; + }); + } + return ret; + } - function getSetQuarter(input) { - return input == null - ? Math.ceil((this.month() + 1) / 3) - : this.month((input - 1) * 3 + (this.month() % 3)); - } + function removeDuplicates(arr) { + var ret = [], i = -1, l, retLength = 0; + if (arr) { + l = arr.length; + while (++i < l) { + var item = arr[i]; + if (indexOf(ret, item) === -1) { + ret[retLength++] = item; + } + } + } + return ret; + } - // FORMATTING - addFormatToken('D', ['DD', 2], 'Do', 'date'); + function unique(arr) { + return removeDuplicates(arr); + } - // ALIASES - addUnitAlias('date', 'D'); + function rotate(arr, numberOfTimes) { + var ret = arr.slice(); + if (typeof numberOfTimes !== "number") { + numberOfTimes = 1; + } + if (numberOfTimes && isArray(arr)) { + if (numberOfTimes > 0) { + ret.push(ret.shift()); + numberOfTimes--; + } else { + ret.unshift(ret.pop()); + numberOfTimes++; + } + return rotate(ret, numberOfTimes); + } else { + return ret; + } + } - // PRIORITY - addUnitPriority('date', 9); + function permutations(arr, length) { + var ret = []; + if (isArray(arr)) { + var copy = arr.slice(0); + if (typeof length !== "number") { + length = arr.length; + } + if (!length) { + ret = [ + [] + ]; + } else if (length <= arr.length) { + ret = reduce(arr, function (a, b, i) { + var ret; + if (length > 1) { + ret = permute(b, rotate(copy, i).slice(1), length); + } else { + ret = [ + [b] + ]; + } + return a.concat(ret); + }, []); + } + } + return ret; + } - // PARSING + function zip() { + var ret = []; + var arrs = argsToArray(arguments); + if (arrs.length > 1) { + var arr1 = arrs.shift(); + if (isArray(arr1)) { + ret = reduce(arr1, function (a, b, i) { + var curr = [b]; + for (var j = 0; j < arrs.length; j++) { + var currArr = arrs[j]; + if (isArray(currArr) && !is.isUndefined(currArr[i])) { + curr.push(currArr[i]); + } else { + curr.push(null); + } + } + a.push(curr); + return a; + }, []); + } + } + return ret; + } - addRegexToken('D', match1to2); - addRegexToken('DD', match1to2, match2); - addRegexToken('Do', function (isStrict, locale) { - // TODO: Remove "ordinalParse" fallback in next major release. - return isStrict - ? locale._dayOfMonthOrdinalParse || locale._ordinalParse - : locale._dayOfMonthOrdinalParseLenient; - }); + function transpose(arr) { + var ret = []; + if (isArray(arr) && arr.length) { + var last; + forEach(arr, function (a) { + if (isArray(a) && (!last || a.length === last.length)) { + forEach(a, function (b, i) { + if (!ret[i]) { + ret[i] = []; + } + ret[i].push(b); + }); + last = a; + } + }); + } + return ret; + } - addParseToken(['D', 'DD'], DATE); - addParseToken('Do', function (input, array) { - array[DATE] = toInt(input.match(match1to2)[0]); - }); + function valuesAt(arr, indexes) { + var ret = []; + indexes = argsToArray(arguments); + arr = indexes.shift(); + if (isArray(arr) && indexes.length) { + for (var i = 0, l = indexes.length; i < l; i++) { + ret.push(arr[indexes[i]] || null); + } + } + return ret; + } - // MOMENTS + function union() { + var ret = []; + var arrs = argsToArray(arguments); + if (arrs.length > 1) { + for (var i = 0, l = arrs.length; i < l; i++) { + ret = ret.concat(arrs[i]); + } + ret = removeDuplicates(ret); + } + return ret; + } - var getSetDayOfMonth = makeGetSet('Date', true); + function intersect() { + var collect = [], sets, i = -1 , l; + if (arguments.length > 1) { + //assume we are intersections all the lists in the array + sets = argsToArray(arguments); + } else { + sets = arguments[0]; + } + if (isArray(sets)) { + collect = sets[0]; + i = 0; + l = sets.length; + while (++i < l) { + collect = intersection(collect, sets[i]); + } + } + return removeDuplicates(collect); + } - // FORMATTING + function powerSet(arr) { + var ret = []; + if (isArray(arr) && arr.length) { + ret = reduce(arr, function (a, b) { + var ret = map(a, function (c) { + return c.concat(b); + }); + return a.concat(ret); + }, [ + [] + ]); + } + return ret; + } - addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + function cartesian(a, b) { + var ret = []; + if (isArray(a) && isArray(b) && a.length && b.length) { + ret = cross(a[0], b).concat(cartesian(a.slice(1), b)); + } + return ret; + } - // ALIASES + function compact(arr) { + var ret = []; + if (isArray(arr) && arr.length) { + ret = filter(arr, function (item) { + return !is.isUndefinedOrNull(item); + }); + } + return ret; + } - addUnitAlias('dayOfYear', 'DDD'); + function multiply(arr, times) { + times = is.isNumber(times) ? times : 1; + if (!times) { + //make sure times is greater than zero if it is zero then dont multiply it + times = 1; + } + arr = toArray(arr || []); + var ret = [], i = 0; + while (++i <= times) { + ret = ret.concat(arr); + } + return ret; + } - // PRIORITY - addUnitPriority('dayOfYear', 4); + function flatten(arr) { + var set; + var args = argsToArray(arguments); + if (args.length > 1) { + //assume we are intersections all the lists in the array + set = args; + } else { + set = toArray(arr); + } + return reduce(set, function (a, b) { + return a.concat(b); + }, []); + } - // PARSING + function pluck(arr, prop) { + prop = prop.split("."); + var result = arr.slice(0); + forEach(prop, function (prop) { + var exec = prop.match(/(\w+)\(\)$/); + result = map(result, function (item) { + return exec ? item[exec[1]]() : item[prop]; + }); + }); + return result; + } - addRegexToken('DDD', match1to3); - addRegexToken('DDDD', match3); - addParseToken(['DDD', 'DDDD'], function (input, array, config) { - config._dayOfYear = toInt(input); - }); + function invoke(arr, func, args) { + args = argsToArray(arguments, 2); + return map(arr, function (item) { + var exec = isString(func) ? item[func] : func; + return exec.apply(item, args); + }); + } - // HELPERS - // MOMENTS + var array = { + toArray: toArray, + sum: sum, + avg: avg, + sort: sort, + min: min, + max: max, + difference: difference, + removeDuplicates: removeDuplicates, + unique: unique, + rotate: rotate, + permutations: permutations, + zip: zip, + transpose: transpose, + valuesAt: valuesAt, + union: union, + intersect: intersect, + powerSet: powerSet, + cartesian: cartesian, + compact: compact, + multiply: multiply, + flatten: flatten, + pluck: pluck, + invoke: invoke, + forEach: forEach, + map: map, + filter: filter, + reduce: reduce, + reduceRight: reduceRight, + some: some, + every: every, + indexOf: indexOf, + lastIndexOf: lastIndexOf + }; - function getSetDayOfYear(input) { - var dayOfYear = - Math.round( - (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5 - ) + 1; - return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); + return extended.define(isArray, array).expose(array); } - // FORMATTING + if (true) { + if ( true && module.exports) { + module.exports = defineArray(__nested_webpack_require_1733852__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js"), __nested_webpack_require_1733852__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js"), __nested_webpack_require_1733852__(/*! arguments-extended */ "./build/cht-core-4-6/node_modules/arguments-extended/index.js")); + } + } else {} - addFormatToken('m', ['mm', 2], 0, 'minute'); +}).call(this); - // ALIASES - addUnitAlias('minute', 'm'); - // PRIORITY - addUnitPriority('minute', 14); - // PARSING - addRegexToken('m', match1to2); - addRegexToken('mm', match1to2, match2); - addParseToken(['m', 'mm'], MINUTE); - // MOMENTS - var getSetMinute = makeGetSet('Minutes', false); +/***/ }), - // FORMATTING +/***/ "./build/cht-core-4-6/node_modules/charenc/charenc.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/charenc/charenc.js ***! + \************************************************************/ +/***/ ((module) => { - addFormatToken('s', ['ss', 2], 0, 'second'); +var charenc = { + // UTF-8 encoding + utf8: { + // Convert a string to a byte array + stringToBytes: function(str) { + return charenc.bin.stringToBytes(unescape(encodeURIComponent(str))); + }, - // ALIASES + // Convert a byte array to a string + bytesToString: function(bytes) { + return decodeURIComponent(escape(charenc.bin.bytesToString(bytes))); + } + }, - addUnitAlias('second', 's'); + // Binary encoding + bin: { + // Convert a string to a byte array + stringToBytes: function(str) { + for (var bytes = [], i = 0; i < str.length; i++) + bytes.push(str.charCodeAt(i) & 0xFF); + return bytes; + }, - // PRIORITY + // Convert a byte array to a string + bytesToString: function(bytes) { + for (var str = [], i = 0; i < bytes.length; i++) + str.push(String.fromCharCode(bytes[i])); + return str.join(''); + } + } +}; - addUnitPriority('second', 15); +module.exports = charenc; - // PARSING - addRegexToken('s', match1to2); - addRegexToken('ss', match1to2, match2); - addParseToken(['s', 'ss'], SECOND); +/***/ }), - // MOMENTS +/***/ "./build/cht-core-4-6/node_modules/cht-nootils/src/nootils.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/cht-nootils/src/nootils.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1756129__) => { - var getSetSecond = makeGetSet('Seconds', false); +const _ = __nested_webpack_require_1756129__(/*! underscore */ "./build/cht-core-4-6/node_modules/underscore/modules/index-all.js"); - // FORMATTING +const NO_LMP_DATE_MODIFIER = 4; - addFormatToken('S', 0, 0, function () { - return ~~(this.millisecond() / 100); - }); +module.exports = function(settings) { + const taskSchedules = settings && settings.tasks && settings.tasks.schedules; + const lib = { + /** + * @function + * In legacy versions, partner code is required to only emit tasks which are ready to be displayed to the user. Utils.isTimely is the mechanism used for this. + * With the rules-engine improvements in webapp 3.8, this responsibility shifts. Partner code should emit all tasks and the webapp's rules-engine decides what to display. + * To this end - Utils.isTimely becomes a pass-through in nootils@4.x + * @returns True + */ + isTimely: () => true, - addFormatToken(0, ['SS', 2], 0, function () { - return ~~(this.millisecond() / 10); - }); + addDate: function(date, days) { + let result; + if (date) { + result = new Date(date.getTime()); + } else { + result = lib.now(); + } + result.setDate(result.getDate() + days); + result.setHours(0, 0, 0, 0); + return result; + }, - addFormatToken(0, ['SSS', 3], 0, 'millisecond'); - addFormatToken(0, ['SSSS', 4], 0, function () { - return this.millisecond() * 10; - }); - addFormatToken(0, ['SSSSS', 5], 0, function () { - return this.millisecond() * 100; - }); - addFormatToken(0, ['SSSSSS', 6], 0, function () { - return this.millisecond() * 1000; - }); - addFormatToken(0, ['SSSSSSS', 7], 0, function () { - return this.millisecond() * 10000; - }); - addFormatToken(0, ['SSSSSSSS', 8], 0, function () { - return this.millisecond() * 100000; - }); - addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { - return this.millisecond() * 1000000; - }); + getLmpDate: function(doc) { + const weeks = doc.fields.last_menstrual_period || NO_LMP_DATE_MODIFIER; + return lib.addDate(new Date(doc.reported_date), weeks * -7); + }, - // ALIASES + // TODO getSchedule() can be removed when tasks.json support is dropped + getSchedule: function(name) { + return _.findWhere(taskSchedules, { name: name }); + }, - addUnitAlias('millisecond', 'ms'); + getMostRecentTimestamp: function(reports, form, fields) { + const report = lib.getMostRecentReport(reports, form, fields); + return report && report.reported_date; + }, - // PRIORITY + getMostRecentReport: function(reports, forms, fields) { + if (!Array.isArray(forms)) { + forms = [forms]; + } + let result = null; + reports.forEach(function(report) { + if (forms.includes(report.form) && + !report.deleted && + (!result || (report.reported_date > result.reported_date)) && + (!fields || (report.fields && lib.fieldsMatch(report, fields)))) { + result = report; + } + }); + return result; + }, - addUnitPriority('millisecond', 16); + isFormSubmittedInWindow: function(reports, form, start, end, count) { + let result = false; + reports.forEach(function(report) { + if (!result && report.form === form) { + if (report.reported_date >= start && report.reported_date <= end) { + if (!count || + (count && report.fields && report.fields.follow_up_count > count)) { + result = true; + } + } + } + }); + return result; + }, - // PARSING + isFirstReportNewer: function(firstReport, secondReport) { + if (firstReport && firstReport.reported_date) { + if (secondReport && secondReport.reported_date) { + return firstReport.reported_date > secondReport.reported_date; + } + return true; + } + return null; + }, - addRegexToken('S', match1to3, match1); - addRegexToken('SS', match1to3, match2); - addRegexToken('SSS', match1to3, match3); + isDateValid: function(date) { + return !isNaN(date.getTime()); + }, - var token, getSetMillisecond; - for (token = 'SSSS'; token.length <= 9; token += 'S') { - addRegexToken(token, matchUnsigned); - } + /** + * @function + * @name getField + * + * Gets the value of specified field path. + * @param {Object} report - The report object. + * @param {string} field - Period separated json path assuming report.fields as + * the root node e.g 'dob' (equivalent to report.fields.dob) + * or 'screening.test_result' equivalent to report.fields.screening.test_result + */ + getField: function(report, field) { + return _.propertyOf(report.fields)(field.split('.')); + }, - function parseMs(input, array) { - array[MILLISECOND] = toInt(('0.' + input) * 1000); - } + fieldsMatch: function(report, fieldValues) { + return Object.keys(fieldValues).every(function(field) { + return lib.getField(report, field) === fieldValues[field]; + }); + }, - for (token = 'S'; token.length <= 9; token += 'S') { - addParseToken(token, parseMs); - } + MS_IN_DAY: 24*60*60*1000, // 1 day in ms - getSetMillisecond = makeGetSet('Milliseconds', false); + now: function() { return new Date(); }, + }; - // FORMATTING + return lib; +}; - addFormatToken('z', 0, 0, 'zoneAbbr'); - addFormatToken('zz', 0, 0, 'zoneName'); - // MOMENTS +/***/ }), - function getZoneAbbr() { - return this._isUTC ? 'UTC' : ''; - } +/***/ "./build/cht-core-4-6/node_modules/crypt/crypt.js": +/*!********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/crypt/crypt.js ***! + \********************************************************/ +/***/ ((module) => { - function getZoneName() { - return this._isUTC ? 'Coordinated Universal Time' : ''; - } +(function() { + var base64map + = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', - var proto = Moment.prototype; + crypt = { + // Bit-wise rotation left + rotl: function(n, b) { + return (n << b) | (n >>> (32 - b)); + }, - proto.add = add; - proto.calendar = calendar$1; - proto.clone = clone; - proto.diff = diff; - proto.endOf = endOf; - proto.format = format; - proto.from = from; - proto.fromNow = fromNow; - proto.to = to; - proto.toNow = toNow; - proto.get = stringGet; - proto.invalidAt = invalidAt; - proto.isAfter = isAfter; - proto.isBefore = isBefore; - proto.isBetween = isBetween; - proto.isSame = isSame; - proto.isSameOrAfter = isSameOrAfter; - proto.isSameOrBefore = isSameOrBefore; - proto.isValid = isValid$2; - proto.lang = lang; - proto.locale = locale; - proto.localeData = localeData; - proto.max = prototypeMax; - proto.min = prototypeMin; - proto.parsingFlags = parsingFlags; - proto.set = stringSet; - proto.startOf = startOf; - proto.subtract = subtract; - proto.toArray = toArray; - proto.toObject = toObject; - proto.toDate = toDate; - proto.toISOString = toISOString; - proto.inspect = inspect; - if (typeof Symbol !== 'undefined' && Symbol.for != null) { - proto[Symbol.for('nodejs.util.inspect.custom')] = function () { - return 'Moment<' + this.format() + '>'; - }; - } - proto.toJSON = toJSON; - proto.toString = toString; - proto.unix = unix; - proto.valueOf = valueOf; - proto.creationData = creationData; - proto.eraName = getEraName; - proto.eraNarrow = getEraNarrow; - proto.eraAbbr = getEraAbbr; - proto.eraYear = getEraYear; - proto.year = getSetYear; - proto.isLeapYear = getIsLeapYear; - proto.weekYear = getSetWeekYear; - proto.isoWeekYear = getSetISOWeekYear; - proto.quarter = proto.quarters = getSetQuarter; - proto.month = getSetMonth; - proto.daysInMonth = getDaysInMonth; - proto.week = proto.weeks = getSetWeek; - proto.isoWeek = proto.isoWeeks = getSetISOWeek; - proto.weeksInYear = getWeeksInYear; - proto.weeksInWeekYear = getWeeksInWeekYear; - proto.isoWeeksInYear = getISOWeeksInYear; - proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; - proto.date = getSetDayOfMonth; - proto.day = proto.days = getSetDayOfWeek; - proto.weekday = getSetLocaleDayOfWeek; - proto.isoWeekday = getSetISODayOfWeek; - proto.dayOfYear = getSetDayOfYear; - proto.hour = proto.hours = getSetHour; - proto.minute = proto.minutes = getSetMinute; - proto.second = proto.seconds = getSetSecond; - proto.millisecond = proto.milliseconds = getSetMillisecond; - proto.utcOffset = getSetOffset; - proto.utc = setOffsetToUTC; - proto.local = setOffsetToLocal; - proto.parseZone = setOffsetToParsedOffset; - proto.hasAlignedHourOffset = hasAlignedHourOffset; - proto.isDST = isDaylightSavingTime; - proto.isLocal = isLocal; - proto.isUtcOffset = isUtcOffset; - proto.isUtc = isUtc; - proto.isUTC = isUtc; - proto.zoneAbbr = getZoneAbbr; - proto.zoneName = getZoneName; - proto.dates = deprecate( - 'dates accessor is deprecated. Use date instead.', - getSetDayOfMonth - ); - proto.months = deprecate( - 'months accessor is deprecated. Use month instead', - getSetMonth - ); - proto.years = deprecate( - 'years accessor is deprecated. Use year instead', - getSetYear - ); - proto.zone = deprecate( - 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', - getSetZone - ); - proto.isDSTShifted = deprecate( - 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', - isDaylightSavingTimeShifted - ); + // Bit-wise rotation right + rotr: function(n, b) { + return (n << (32 - b)) | (n >>> b); + }, - function createUnix(input) { - return createLocal(input * 1000); - } + // Swap big-endian to little-endian and vice versa + endian: function(n) { + // If number given, swap endian + if (n.constructor == Number) { + return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00; + } - function createInZone() { - return createLocal.apply(null, arguments).parseZone(); - } + // Else, assume array and swap all items + for (var i = 0; i < n.length; i++) + n[i] = crypt.endian(n[i]); + return n; + }, - function preParsePostFormat(string) { - return string; - } + // Generate an array of any length of random bytes + randomBytes: function(n) { + for (var bytes = []; n > 0; n--) + bytes.push(Math.floor(Math.random() * 256)); + return bytes; + }, - var proto$1 = Locale.prototype; + // Convert a byte array to big-endian 32-bit words + bytesToWords: function(bytes) { + for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8) + words[b >>> 5] |= bytes[i] << (24 - b % 32); + return words; + }, - proto$1.calendar = calendar; - proto$1.longDateFormat = longDateFormat; - proto$1.invalidDate = invalidDate; - proto$1.ordinal = ordinal; - proto$1.preparse = preParsePostFormat; - proto$1.postformat = preParsePostFormat; - proto$1.relativeTime = relativeTime; - proto$1.pastFuture = pastFuture; - proto$1.set = set; - proto$1.eras = localeEras; - proto$1.erasParse = localeErasParse; - proto$1.erasConvertYear = localeErasConvertYear; - proto$1.erasAbbrRegex = erasAbbrRegex; - proto$1.erasNameRegex = erasNameRegex; - proto$1.erasNarrowRegex = erasNarrowRegex; + // Convert big-endian 32-bit words to a byte array + wordsToBytes: function(words) { + for (var bytes = [], b = 0; b < words.length * 32; b += 8) + bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF); + return bytes; + }, - proto$1.months = localeMonths; - proto$1.monthsShort = localeMonthsShort; - proto$1.monthsParse = localeMonthsParse; - proto$1.monthsRegex = monthsRegex; - proto$1.monthsShortRegex = monthsShortRegex; - proto$1.week = localeWeek; - proto$1.firstDayOfYear = localeFirstDayOfYear; - proto$1.firstDayOfWeek = localeFirstDayOfWeek; + // Convert a byte array to a hex string + bytesToHex: function(bytes) { + for (var hex = [], i = 0; i < bytes.length; i++) { + hex.push((bytes[i] >>> 4).toString(16)); + hex.push((bytes[i] & 0xF).toString(16)); + } + return hex.join(''); + }, - proto$1.weekdays = localeWeekdays; - proto$1.weekdaysMin = localeWeekdaysMin; - proto$1.weekdaysShort = localeWeekdaysShort; - proto$1.weekdaysParse = localeWeekdaysParse; + // Convert a hex string to a byte array + hexToBytes: function(hex) { + for (var bytes = [], c = 0; c < hex.length; c += 2) + bytes.push(parseInt(hex.substr(c, 2), 16)); + return bytes; + }, - proto$1.weekdaysRegex = weekdaysRegex; - proto$1.weekdaysShortRegex = weekdaysShortRegex; - proto$1.weekdaysMinRegex = weekdaysMinRegex; + // Convert a byte array to a base-64 string + bytesToBase64: function(bytes) { + for (var base64 = [], i = 0; i < bytes.length; i += 3) { + var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]; + for (var j = 0; j < 4; j++) + if (i * 8 + j * 6 <= bytes.length * 8) + base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F)); + else + base64.push('='); + } + return base64.join(''); + }, - proto$1.isPM = localeIsPM; - proto$1.meridiem = localeMeridiem; + // Convert a base-64 string to a byte array + base64ToBytes: function(base64) { + // Remove non-base-64 characters + base64 = base64.replace(/[^A-Z0-9+\/]/ig, ''); - function get$1(format, index, field, setter) { - var locale = getLocale(), - utc = createUTC().set(setter, index); - return locale[field](utc, format); + for (var bytes = [], i = 0, imod4 = 0; i < base64.length; + imod4 = ++i % 4) { + if (imod4 == 0) continue; + bytes.push(((base64map.indexOf(base64.charAt(i - 1)) + & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2)) + | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2))); + } + return bytes; } + }; - function listMonthsImpl(format, index, field) { - if (isNumber(format)) { - index = format; - format = undefined; - } + module.exports = crypt; +})(); - format = format || ''; - if (index != null) { - return get$1(format, index, field, 'month'); - } +/***/ }), - var i, - out = []; - for (i = 0; i < 12; i++) { - out[i] = get$1(format, i, field, 'month'); - } - return out; - } +/***/ "./build/cht-core-4-6/node_modules/date-extended/index.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/date-extended/index.js ***! + \****************************************************************/ +/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_1763526__) { - // () - // (5) - // (fmt, 5) - // (fmt) - // (true) - // (true, 5) - // (true, fmt, 5) - // (true, fmt) - function listWeekdaysImpl(localeSorted, format, index, field) { - if (typeof localeSorted === 'boolean') { - if (isNumber(format)) { - index = format; - format = undefined; - } +(function () { + "use strict"; - format = format || ''; - } else { - format = localeSorted; - index = format; - localeSorted = false; + function defineDate(extended, is, array) { - if (isNumber(format)) { - index = format; - format = undefined; + function _pad(string, length, ch, end) { + string = "" + string; //check for numbers + ch = ch || " "; + var strLen = string.length; + while (strLen < length) { + if (end) { + string += ch; + } else { + string = ch + string; + } + strLen++; } - - format = format || ''; + return string; } - var locale = getLocale(), - shift = localeSorted ? locale._week.dow : 0, - i, - out = []; - - if (index != null) { - return get$1(format, (index + shift) % 7, field, 'day'); + function _truncate(string, length, end) { + var ret = string; + if (is.isString(ret)) { + if (string.length > length) { + if (end) { + var l = string.length; + ret = string.substring(l - length, l); + } else { + ret = string.substring(0, length); + } + } + } else { + ret = _truncate("" + ret, length); + } + return ret; } - for (i = 0; i < 7; i++) { - out[i] = get$1(format, (i + shift) % 7, field, 'day'); + function every(arr, iterator, scope) { + if (!is.isArray(arr) || typeof iterator !== "function") { + throw new TypeError(); + } + var t = Object(arr); + var len = t.length >>> 0; + for (var i = 0; i < len; i++) { + if (i in t && !iterator.call(scope, t[i], i, t)) { + return false; + } + } + return true; } - return out; - } - - function listMonths(format, index) { - return listMonthsImpl(format, index, 'months'); - } - - function listMonthsShort(format, index) { - return listMonthsImpl(format, index, 'monthsShort'); - } - function listWeekdays(localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); - } - function listWeekdaysShort(localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); - } + var transforms = (function () { + var floor = Math.floor, round = Math.round; - function listWeekdaysMin(localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); - } + var addMap = { + day: function addDay(date, amount) { + return [amount, "Date", false]; + }, + weekday: function addWeekday(date, amount) { + // Divide the increment time span into weekspans plus leftover days + // e.g., 8 days is one 5-day weekspan / and two leftover days + // Can't have zero leftover days, so numbers divisible by 5 get + // a days value of 5, and the remaining days make up the number of weeks + var days, weeks, mod = amount % 5, strt = date.getDay(), adj = 0; + if (!mod) { + days = (amount > 0) ? 5 : -5; + weeks = (amount > 0) ? ((amount - 5) / 5) : ((amount + 5) / 5); + } else { + days = mod; + weeks = parseInt(amount / 5, 10); + } + if (strt === 6 && amount > 0) { + adj = 1; + } else if (strt === 0 && amount < 0) { + // Orig date is Sun / negative increment + // Jump back over Sat + adj = -1; + } + // Get weekday val for the new date + var trgt = strt + days; + // New date is on Sat or Sun + if (trgt === 0 || trgt === 6) { + adj = (amount > 0) ? 2 : -2; + } + // Increment by number of weeks plus leftover days plus + // weekend adjustments + return [(7 * weeks) + days + adj, "Date", false]; + }, + year: function addYear(date, amount) { + return [amount, "FullYear", true]; + }, + week: function addWeek(date, amount) { + return [amount * 7, "Date", false]; + }, + quarter: function addYear(date, amount) { + return [amount * 3, "Month", true]; + }, + month: function addYear(date, amount) { + return [amount, "Month", true]; + } + }; - getSetGlobalLocale('en', { - eras: [ - { - since: '0001-01-01', - until: +Infinity, - offset: 1, - name: 'Anno Domini', - narrow: 'AD', - abbr: 'AD', - }, - { - since: '0000-12-31', - until: -Infinity, - offset: 1, - name: 'Before Christ', - narrow: 'BC', - abbr: 'BC', - }, - ], - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal: function (number) { - var b = number % 10, - output = - toInt((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - }); + function addTransform(interval, date, amount) { + interval = interval.replace(/s$/, ""); + if (addMap.hasOwnProperty(interval)) { + return addMap[interval](date, amount); + } + return [amount, "UTC" + interval.charAt(0).toUpperCase() + interval.substring(1) + "s", false]; + } - // Side effect imports - hooks.lang = deprecate( - 'moment.lang is deprecated. Use moment.locale instead.', - getSetGlobalLocale - ); - hooks.langData = deprecate( - 'moment.langData is deprecated. Use moment.localeData instead.', - getLocale - ); + var differenceMap = { + "quarter": function quarterDifference(date1, date2, utc) { + var yearDiff = date2.getFullYear() - date1.getFullYear(); + var m1 = date1[utc ? "getUTCMonth" : "getMonth"](); + var m2 = date2[utc ? "getUTCMonth" : "getMonth"](); + // Figure out which quarter the months are in + var q1 = floor(m1 / 3) + 1; + var q2 = floor(m2 / 3) + 1; + // Add quarters for any year difference between the dates + q2 += (yearDiff * 4); + return q2 - q1; + }, - var mathAbs = Math.abs; + "weekday": function weekdayDifference(date1, date2, utc) { + var days = differenceTransform("day", date1, date2, utc), weeks; + var mod = days % 7; + // Even number of weeks + if (mod === 0) { + days = differenceTransform("week", date1, date2, utc) * 5; + } else { + // Weeks plus spare change (< 7 days) + var adj = 0, aDay = date1[utc ? "getUTCDay" : "getDay"](), bDay = date2[utc ? "getUTCDay" : "getDay"](); + weeks = parseInt(days / 7, 10); + // Mark the date advanced by the number of + // round weeks (may be zero) + var dtMark = new Date(+date1); + dtMark.setDate(dtMark[utc ? "getUTCDate" : "getDate"]() + (weeks * 7)); + var dayMark = dtMark[utc ? "getUTCDay" : "getDay"](); - function abs() { - var data = this._data; + // Spare change days -- 6 or less + if (days > 0) { + if (aDay === 6 || bDay === 6) { + adj = -1; + } else if (aDay === 0) { + adj = 0; + } else if (bDay === 0 || (dayMark + mod) > 5) { + adj = -2; + } + } else if (days < 0) { + if (aDay === 6) { + adj = 0; + } else if (aDay === 0 || bDay === 0) { + adj = 1; + } else if (bDay === 6 || (dayMark + mod) < 0) { + adj = 2; + } + } + days += adj; + days -= (weeks * 2); + } + return days; + }, + year: function (date1, date2) { + return date2.getFullYear() - date1.getFullYear(); + }, + month: function (date1, date2, utc) { + var m1 = date1[utc ? "getUTCMonth" : "getMonth"](); + var m2 = date2[utc ? "getUTCMonth" : "getMonth"](); + return (m2 - m1) + ((date2.getFullYear() - date1.getFullYear()) * 12); + }, + week: function (date1, date2, utc) { + return round(differenceTransform("day", date1, date2, utc) / 7); + }, + day: function (date1, date2) { + return 1.1574074074074074e-8 * (date2.getTime() - date1.getTime()); + }, + hour: function (date1, date2) { + return 2.7777777777777776e-7 * (date2.getTime() - date1.getTime()); + }, + minute: function (date1, date2) { + return 0.000016666666666666667 * (date2.getTime() - date1.getTime()); + }, + second: function (date1, date2) { + return 0.001 * (date2.getTime() - date1.getTime()); + }, + millisecond: function (date1, date2) { + return date2.getTime() - date1.getTime(); + } + }; - this._milliseconds = mathAbs(this._milliseconds); - this._days = mathAbs(this._days); - this._months = mathAbs(this._months); - data.milliseconds = mathAbs(data.milliseconds); - data.seconds = mathAbs(data.seconds); - data.minutes = mathAbs(data.minutes); - data.hours = mathAbs(data.hours); - data.months = mathAbs(data.months); - data.years = mathAbs(data.years); + function differenceTransform(interval, date1, date2, utc) { + interval = interval.replace(/s$/, ""); + return round(differenceMap[interval](date1, date2, utc)); + } - return this; - } - function addSubtract$1(duration, input, value, direction) { - var other = createDuration(input, value); + return { + addTransform: addTransform, + differenceTransform: differenceTransform + }; + }()), + addTransform = transforms.addTransform, + differenceTransform = transforms.differenceTransform; - duration._milliseconds += direction * other._milliseconds; - duration._days += direction * other._days; - duration._months += direction * other._months; - return duration._bubble(); - } + /** + * @ignore + * Based on DOJO Date Implementation + * + * Dojo is available under *either* the terms of the modified BSD license *or* the + * Academic Free License version 2.1. As a recipient of Dojo, you may choose which + * license to receive this code under (except as noted in per-module LICENSE + * files). Some modules may not be the copyright of the Dojo Foundation. These + * modules contain explicit declarations of copyright in both the LICENSE files in + * the directories in which they reside and in the code itself. No external + * contributions are allowed under licenses which are fundamentally incompatible + * with the AFL or BSD licenses that Dojo is distributed under. + * + */ - // supports only 2.0-style add(1, 's') or add(duration) - function add$1(input, value) { - return addSubtract$1(this, input, value, 1); - } + var floor = Math.floor, round = Math.round, min = Math.min, pow = Math.pow, ceil = Math.ceil, abs = Math.abs; + var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; + var monthAbbr = ["Jan.", "Feb.", "Mar.", "Apr.", "May.", "Jun.", "Jul.", "Aug.", "Sep.", "Oct.", "Nov.", "Dec."]; + var dayNames = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; + var dayAbbr = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; + var eraNames = ["Before Christ", "Anno Domini"]; + var eraAbbr = ["BC", "AD"]; - // supports only 2.0-style subtract(1, 's') or subtract(duration) - function subtract$1(input, value) { - return addSubtract$1(this, input, value, -1); - } - function absCeil(number) { - if (number < 0) { - return Math.floor(number); - } else { - return Math.ceil(number); + function getDayOfYear(/*Date*/dateObject, utc) { + // summary: gets the day of the year as represented by dateObject + return date.difference(new Date(dateObject.getFullYear(), 0, 1, dateObject.getHours()), dateObject, null, utc) + 1; // Number } - } - - function bubble() { - var milliseconds = this._milliseconds, - days = this._days, - months = this._months, - data = this._data, - seconds, - minutes, - hours, - years, - monthsFromDays; - // if we have a mix of positive and negative values, bubble down first - // check: https://github.com/moment/moment/issues/2166 - if ( - !( - (milliseconds >= 0 && days >= 0 && months >= 0) || - (milliseconds <= 0 && days <= 0 && months <= 0) - ) - ) { - milliseconds += absCeil(monthsToDays(months) + days) * 864e5; - days = 0; - months = 0; - } + function getWeekOfYear(/*Date*/dateObject, /*Number*/firstDayOfWeek, utc) { + firstDayOfWeek = firstDayOfWeek || 0; + var fullYear = dateObject[utc ? "getUTCFullYear" : "getFullYear"](); + var firstDayOfYear = new Date(fullYear, 0, 1).getDay(), + adj = (firstDayOfYear - firstDayOfWeek + 7) % 7, + week = floor((getDayOfYear(dateObject) + adj - 1) / 7); - // The following code bubbles up values, see the tests for - // examples of what that means. - data.milliseconds = milliseconds % 1000; + // if year starts on the specified day, start counting weeks at 1 + if (firstDayOfYear === firstDayOfWeek) { + week++; + } - seconds = absFloor(milliseconds / 1000); - data.seconds = seconds % 60; + return week; // Number + } - minutes = absFloor(seconds / 60); - data.minutes = minutes % 60; + function getTimezoneName(/*Date*/dateObject) { + var str = dateObject.toString(); + var tz = ''; + var pos = str.indexOf('('); + if (pos > -1) { + tz = str.substring(++pos, str.indexOf(')')); + } + return tz; // String + } - hours = absFloor(minutes / 60); - data.hours = hours % 24; - days += absFloor(hours / 24); + function buildDateEXP(pattern, tokens) { + return pattern.replace(/([a-z])\1*/ig,function (match) { + // Build a simple regexp. Avoid captures, which would ruin the tokens list + var s, + c = match.charAt(0), + l = match.length, + p2 = '0?', + p3 = '0{0,2}'; + if (c === 'y') { + s = '\\d{2,4}'; + } else if (c === "M") { + s = (l > 2) ? '\\S+?' : '1[0-2]|' + p2 + '[1-9]'; + } else if (c === "D") { + s = '[12][0-9][0-9]|3[0-5][0-9]|36[0-6]|' + p3 + '[1-9][0-9]|' + p2 + '[1-9]'; + } else if (c === "d") { + s = '3[01]|[12]\\d|' + p2 + '[1-9]'; + } else if (c === "w") { + s = '[1-4][0-9]|5[0-3]|' + p2 + '[1-9]'; + } else if (c === "E") { + s = '\\S+'; + } else if (c === "h") { + s = '1[0-2]|' + p2 + '[1-9]'; + } else if (c === "K") { + s = '1[01]|' + p2 + '\\d'; + } else if (c === "H") { + s = '1\\d|2[0-3]|' + p2 + '\\d'; + } else if (c === "k") { + s = '1\\d|2[0-4]|' + p2 + '[1-9]'; + } else if (c === "m" || c === "s") { + s = '[0-5]\\d'; + } else if (c === "S") { + s = '\\d{' + l + '}'; + } else if (c === "a") { + var am = 'AM', pm = 'PM'; + s = am + '|' + pm; + if (am !== am.toLowerCase()) { + s += '|' + am.toLowerCase(); + } + if (pm !== pm.toLowerCase()) { + s += '|' + pm.toLowerCase(); + } + s = s.replace(/\./g, "\\."); + } else if (c === 'v' || c === 'z' || c === 'Z' || c === 'G' || c === 'q' || c === 'Q') { + s = ".*"; + } else { + s = c === " " ? "\\s*" : c + "*"; + } + if (tokens) { + tokens.push(match); + } - // convert days to months - monthsFromDays = absFloor(daysToMonths(days)); - months += monthsFromDays; - days -= absCeil(monthsToDays(monthsFromDays)); + return "(" + s + ")"; // add capture + }).replace(/[\xa0 ]/g, "[\\s\\xa0]"); // normalize whitespace. Need explicit handling of \xa0 for IE. + } - // 12 months -> 1 year - years = absFloor(months / 12); - months %= 12; - data.days = days; - data.months = months; - data.years = years; + /** + * @namespace Utilities for Dates + */ + var date = { - return this; - } + /**@lends date*/ - function daysToMonths(days) { - // 400 years have 146097 days (taking into account leap year rules) - // 400 years have 12 months === 4800 - return (days * 4800) / 146097; - } + /** + * Returns the number of days in the month of a date + * + * @example + * + * dateExtender.getDaysInMonth(new Date(2006, 1, 1)); //28 + * dateExtender.getDaysInMonth(new Date(2004, 1, 1)); //29 + * dateExtender.getDaysInMonth(new Date(2006, 2, 1)); //31 + * dateExtender.getDaysInMonth(new Date(2006, 3, 1)); //30 + * dateExtender.getDaysInMonth(new Date(2006, 4, 1)); //31 + * dateExtender.getDaysInMonth(new Date(2006, 5, 1)); //30 + * dateExtender.getDaysInMonth(new Date(2006, 6, 1)); //31 + * @param {Date} dateObject the date containing the month + * @return {Number} the number of days in the month + */ + getDaysInMonth: function (/*Date*/dateObject) { + // summary: + // Returns the number of days in the month used by dateObject + var month = dateObject.getMonth(); + var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + if (month === 1 && date.isLeapYear(dateObject)) { + return 29; + } // Number + return days[month]; // Number + }, - function monthsToDays(months) { - // the reverse of daysToMonths - return (months * 146097) / 4800; - } + /** + * Determines if a date is a leap year + * + * @example + * + * dateExtender.isLeapYear(new Date(1600, 0, 1)); //true + * dateExtender.isLeapYear(new Date(2004, 0, 1)); //true + * dateExtender.isLeapYear(new Date(2000, 0, 1)); //true + * dateExtender.isLeapYear(new Date(2006, 0, 1)); //false + * dateExtender.isLeapYear(new Date(1900, 0, 1)); //false + * dateExtender.isLeapYear(new Date(1800, 0, 1)); //false + * dateExtender.isLeapYear(new Date(1700, 0, 1)); //false + * + * @param {Date} dateObject + * @returns {Boolean} true if it is a leap year false otherwise + */ + isLeapYear: function (/*Date*/dateObject, utc) { + var year = dateObject[utc ? "getUTCFullYear" : "getFullYear"](); + return (year % 400 === 0) || (year % 4 === 0 && year % 100 !== 0); - function as(units) { - if (!this.isValid()) { - return NaN; - } - var days, - months, - milliseconds = this._milliseconds; + }, - units = normalizeUnits(units); + /** + * Determines if a date is on a weekend + * + * @example + * + * var thursday = new Date(2006, 8, 21); + * var saturday = new Date(2006, 8, 23); + * var sunday = new Date(2006, 8, 24); + * var monday = new Date(2006, 8, 25); + * dateExtender.isWeekend(thursday)); //false + * dateExtender.isWeekend(saturday); //true + * dateExtender.isWeekend(sunday); //true + * dateExtender.isWeekend(monday)); //false + * + * @param {Date} dateObject the date to test + * + * @returns {Boolean} true if the date is a weekend + */ + isWeekend: function (/*Date?*/dateObject, utc) { + // summary: + // Determines if the date falls on a weekend, according to local custom. + var day = (dateObject || new Date())[utc ? "getUTCDay" : "getDay"](); + return day === 0 || day === 6; + }, - if (units === 'month' || units === 'quarter' || units === 'year') { - days = this._days + milliseconds / 864e5; - months = this._months + daysToMonths(days); - switch (units) { - case 'month': - return months; - case 'quarter': - return months / 3; - case 'year': - return months / 12; - } - } else { - // handle milliseconds separately because of floating point math errors (issue #1867) - days = this._days + Math.round(monthsToDays(this._months)); - switch (units) { - case 'week': - return days / 7 + milliseconds / 6048e5; - case 'day': - return days + milliseconds / 864e5; - case 'hour': - return days * 24 + milliseconds / 36e5; - case 'minute': - return days * 1440 + milliseconds / 6e4; - case 'second': - return days * 86400 + milliseconds / 1000; - // Math.floor prevents floating point math errors here - case 'millisecond': - return Math.floor(days * 864e5) + milliseconds; - default: - throw new Error('Unknown unit ' + units); - } - } - } + /** + * Get the timezone of a date + * + * @example + * //just setting the strLocal to simulate the toString() of a date + * dt.str = 'Sun Sep 17 2006 22:25:51 GMT-0500 (CDT)'; + * //just setting the strLocal to simulate the locale + * dt.strLocale = 'Sun 17 Sep 2006 10:25:51 PM CDT'; + * dateExtender.getTimezoneName(dt); //'CDT' + * dt.str = 'Sun Sep 17 2006 22:57:18 GMT-0500 (CDT)'; + * dt.strLocale = 'Sun Sep 17 22:57:18 2006'; + * dateExtender.getTimezoneName(dt); //'CDT' + * @param dateObject the date to get the timezone from + * + * @returns {String} the timezone of the date + */ + getTimezoneName: getTimezoneName, - // TODO: Use this.as('ms')? - function valueOf$1() { - if (!this.isValid()) { - return NaN; - } - return ( - this._milliseconds + - this._days * 864e5 + - (this._months % 12) * 2592e6 + - toInt(this._months / 12) * 31536e6 - ); - } + /** + * Compares two dates + * + * @example + * + * var d1 = new Date(); + * d1.setHours(0); + * dateExtender.compare(d1, d1); // 0 + * + * var d1 = new Date(); + * d1.setHours(0); + * var d2 = new Date(); + * d2.setFullYear(2005); + * d2.setHours(12); + * dateExtender.compare(d1, d2, "date"); // 1 + * dateExtender.compare(d1, d2, "datetime"); // 1 + * + * var d1 = new Date(); + * d1.setHours(0); + * var d2 = new Date(); + * d2.setFullYear(2005); + * d2.setHours(12); + * dateExtender.compare(d2, d1, "date"); // -1 + * dateExtender.compare(d1, d2, "time"); //-1 + * + * @param {Date|String} date1 the date to comapare + * @param {Date|String} [date2=new Date()] the date to compare date1 againse + * @param {"date"|"time"|"datetime"} portion compares the portion specified + * + * @returns -1 if date1 is < date2 0 if date1 === date2 1 if date1 > date2 + */ + compare: function (/*Date*/date1, /*Date*/date2, /*String*/portion) { + date1 = new Date(+date1); + date2 = new Date(+(date2 || new Date())); - function makeAs(alias) { - return function () { - return this.as(alias); - }; - } + if (portion === "date") { + // Ignore times and compare dates. + date1.setHours(0, 0, 0, 0); + date2.setHours(0, 0, 0, 0); + } else if (portion === "time") { + // Ignore dates and compare times. + date1.setFullYear(0, 0, 0); + date2.setFullYear(0, 0, 0); + } + return date1 > date2 ? 1 : date1 < date2 ? -1 : 0; + }, - var asMilliseconds = makeAs('ms'), - asSeconds = makeAs('s'), - asMinutes = makeAs('m'), - asHours = makeAs('h'), - asDays = makeAs('d'), - asWeeks = makeAs('w'), - asMonths = makeAs('M'), - asQuarters = makeAs('Q'), - asYears = makeAs('y'); - function clone$1() { - return createDuration(this); - } + /** + * Adds a specified interval and amount to a date + * + * @example + * var dtA = new Date(2005, 11, 27); + * dateExtender.add(dtA, "year", 1); //new Date(2006, 11, 27); + * dateExtender.add(dtA, "years", 1); //new Date(2006, 11, 27); + * + * dtA = new Date(2000, 0, 1); + * dateExtender.add(dtA, "quarter", 1); //new Date(2000, 3, 1); + * dateExtender.add(dtA, "quarters", 1); //new Date(2000, 3, 1); + * + * dtA = new Date(2000, 0, 1); + * dateExtender.add(dtA, "month", 1); //new Date(2000, 1, 1); + * dateExtender.add(dtA, "months", 1); //new Date(2000, 1, 1); + * + * dtA = new Date(2000, 0, 31); + * dateExtender.add(dtA, "month", 1); //new Date(2000, 1, 29); + * dateExtender.add(dtA, "months", 1); //new Date(2000, 1, 29); + * + * dtA = new Date(2000, 0, 1); + * dateExtender.add(dtA, "week", 1); //new Date(2000, 0, 8); + * dateExtender.add(dtA, "weeks", 1); //new Date(2000, 0, 8); + * + * dtA = new Date(2000, 0, 1); + * dateExtender.add(dtA, "day", 1); //new Date(2000, 0, 2); + * + * dtA = new Date(2000, 0, 1); + * dateExtender.add(dtA, "weekday", 1); //new Date(2000, 0, 3); + * + * dtA = new Date(2000, 0, 1, 11); + * dateExtender.add(dtA, "hour", 1); //new Date(2000, 0, 1, 12); + * + * dtA = new Date(2000, 11, 31, 23, 59); + * dateExtender.add(dtA, "minute", 1); //new Date(2001, 0, 1, 0, 0); + * + * dtA = new Date(2000, 11, 31, 23, 59, 59); + * dateExtender.add(dtA, "second", 1); //new Date(2001, 0, 1, 0, 0, 0); + * + * dtA = new Date(2000, 11, 31, 23, 59, 59, 999); + * dateExtender.add(dtA, "millisecond", 1); //new Date(2001, 0, 1, 0, 0, 0, 0); + * + * @param {Date} date + * @param {String} interval the interval to add + *
            + *
          • day | days
          • + *
          • weekday | weekdays
          • + *
          • year | years
          • + *
          • week | weeks
          • + *
          • quarter | quarters
          • + *
          • months | months
          • + *
          • hour | hours
          • + *
          • minute | minutes
          • + *
          • second | seconds
          • + *
          • millisecond | milliseconds
          • + *
          + * @param {Number} [amount=0] the amount to add + */ + add: function (/*Date*/date, /*String*/interval, /*int*/amount) { + var res = addTransform(interval, date, amount || 0); + amount = res[0]; + var property = res[1]; + var sum = new Date(+date); + var fixOvershoot = res[2]; + if (property) { + sum["set" + property](sum["get" + property]() + amount); + } - function get$2(units) { - units = normalizeUnits(units); - return this.isValid() ? this[units + 's']() : NaN; - } + if (fixOvershoot && (sum.getDate() < date.getDate())) { + sum.setDate(0); + } - function makeGetter(name) { - return function () { - return this.isValid() ? this._data[name] : NaN; - }; - } + return sum; // Date + }, - var milliseconds = makeGetter('milliseconds'), - seconds = makeGetter('seconds'), - minutes = makeGetter('minutes'), - hours = makeGetter('hours'), - days = makeGetter('days'), - months = makeGetter('months'), - years = makeGetter('years'); + /** + * Finds the difference between two dates based on the specified interval + * + * @example + * + * var dtA, dtB; + * + * dtA = new Date(2005, 11, 27); + * dtB = new Date(2006, 11, 27); + * dateExtender.difference(dtA, dtB, "year"); //1 + * + * dtA = new Date(2000, 1, 29); + * dtB = new Date(2001, 2, 1); + * dateExtender.difference(dtA, dtB, "quarter"); //4 + * dateExtender.difference(dtA, dtB, "month"); //13 + * + * dtA = new Date(2000, 1, 1); + * dtB = new Date(2000, 1, 8); + * dateExtender.difference(dtA, dtB, "week"); //1 + * + * dtA = new Date(2000, 1, 29); + * dtB = new Date(2000, 2, 1); + * dateExtender.difference(dtA, dtB, "day"); //1 + * + * dtA = new Date(2006, 7, 3); + * dtB = new Date(2006, 7, 11); + * dateExtender.difference(dtA, dtB, "weekday"); //6 + * + * dtA = new Date(2000, 11, 31, 23); + * dtB = new Date(2001, 0, 1, 0); + * dateExtender.difference(dtA, dtB, "hour"); //1 + * + * dtA = new Date(2000, 11, 31, 23, 59); + * dtB = new Date(2001, 0, 1, 0, 0); + * dateExtender.difference(dtA, dtB, "minute"); //1 + * + * dtA = new Date(2000, 11, 31, 23, 59, 59); + * dtB = new Date(2001, 0, 1, 0, 0, 0); + * dateExtender.difference(dtA, dtB, "second"); //1 + * + * dtA = new Date(2000, 11, 31, 23, 59, 59, 999); + * dtB = new Date(2001, 0, 1, 0, 0, 0, 0); + * dateExtender.difference(dtA, dtB, "millisecond"); //1 + * + * + * @param {Date} date1 + * @param {Date} [date2 = new Date()] + * @param {String} [interval = "day"] the intercal to find the difference of. + *
            + *
          • day | days
          • + *
          • weekday | weekdays
          • + *
          • year | years
          • + *
          • week | weeks
          • + *
          • quarter | quarters
          • + *
          • months | months
          • + *
          • hour | hours
          • + *
          • minute | minutes
          • + *
          • second | seconds
          • + *
          • millisecond | milliseconds
          • + *
          + */ + difference: function (/*Date*/date1, /*Date?*/date2, /*String*/interval, utc) { + date2 = date2 || new Date(); + interval = interval || "day"; + return differenceTransform(interval, date1, date2, utc); + }, - function weeks() { - return absFloor(this.days() / 7); - } + /** + * Formats a date to the specidifed format string + * + * @example + * + * var date = new Date(2006, 7, 11, 0, 55, 12, 345); + * dateExtender.format(date, "EEEE, MMMM dd, yyyy"); //"Friday, August 11, 2006" + * dateExtender.format(date, "M/dd/yy"); //"8/11/06" + * dateExtender.format(date, "E"); //"6" + * dateExtender.format(date, "h:m a"); //"12:55 AM" + * dateExtender.format(date, 'h:m:s'); //"12:55:12" + * dateExtender.format(date, 'h:m:s.SS'); //"12:55:12.35" + * dateExtender.format(date, 'k:m:s.SS'); //"24:55:12.35" + * dateExtender.format(date, 'H:m:s.SS'); //"0:55:12.35" + * dateExtender.format(date, "ddMMyyyy"); //"11082006" + * + * @param date the date to format + * @param {String} format the format of the date composed of the following options + *
            + *
          • G Era designator Text AD
          • + *
          • y Year Year 1996; 96
          • + *
          • M Month in year Month July; Jul; 07
          • + *
          • w Week in year Number 27
          • + *
          • W Week in month Number 2
          • + *
          • D Day in year Number 189
          • + *
          • d Day in month Number 10
          • + *
          • E Day in week Text Tuesday; Tue
          • + *
          • a Am/pm marker Text PM
          • + *
          • H Hour in day (0-23) Number 0
          • + *
          • k Hour in day (1-24) Number 24
          • + *
          • K Hour in am/pm (0-11) Number 0
          • + *
          • h Hour in am/pm (1-12) Number 12
          • + *
          • m Minute in hour Number 30
          • + *
          • s Second in minute Number 55
          • + *
          • S Millisecond Number 978
          • + *
          • z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
          • + *
          • Z Time zone RFC 822 time zone -0800
          • + *
          + */ + format: function (date, format, utc) { + utc = utc || false; + var fullYear, month, day, d, hour, minute, second, millisecond; + if (utc) { + fullYear = date.getUTCFullYear(); + month = date.getUTCMonth(); + day = date.getUTCDay(); + d = date.getUTCDate(); + hour = date.getUTCHours(); + minute = date.getUTCMinutes(); + second = date.getUTCSeconds(); + millisecond = date.getUTCMilliseconds(); + } else { + fullYear = date.getFullYear(); + month = date.getMonth(); + d = date.getDate(); + day = date.getDay(); + hour = date.getHours(); + minute = date.getMinutes(); + second = date.getSeconds(); + millisecond = date.getMilliseconds(); + } + return format.replace(/([A-Za-z])\1*/g, function (match) { + var s, pad, + c = match.charAt(0), + l = match.length; + if (c === 'd') { + s = "" + d; + pad = true; + } else if (c === "H" && !s) { + s = "" + hour; + pad = true; + } else if (c === 'm' && !s) { + s = "" + minute; + pad = true; + } else if (c === 's') { + if (!s) { + s = "" + second; + } + pad = true; + } else if (c === "G") { + s = ((l < 4) ? eraAbbr : eraNames)[fullYear < 0 ? 0 : 1]; + } else if (c === "y") { + s = fullYear; + if (l > 1) { + if (l === 2) { + s = _truncate("" + s, 2, true); + } else { + pad = true; + } + } + } else if (c.toUpperCase() === "Q") { + s = ceil((month + 1) / 3); + pad = true; + } else if (c === "M") { + if (l < 3) { + s = month + 1; + pad = true; + } else { + s = (l === 3 ? monthAbbr : monthNames)[month]; + } + } else if (c === "w") { + s = getWeekOfYear(date, 0, utc); + pad = true; + } else if (c === "D") { + s = getDayOfYear(date, utc); + pad = true; + } else if (c === "E") { + if (l < 3) { + s = day + 1; + pad = true; + } else { + s = (l === -3 ? dayAbbr : dayNames)[day]; + } + } else if (c === 'a') { + s = (hour < 12) ? 'AM' : 'PM'; + } else if (c === "h") { + s = (hour % 12) || 12; + pad = true; + } else if (c === "K") { + s = (hour % 12); + pad = true; + } else if (c === "k") { + s = hour || 24; + pad = true; + } else if (c === "S") { + s = round(millisecond * pow(10, l - 3)); + pad = true; + } else if (c === "z" || c === "v" || c === "Z") { + s = getTimezoneName(date); + if ((c === "z" || c === "v") && !s) { + l = 4; + } + if (!s || c === "Z") { + var offset = date.getTimezoneOffset(); + var tz = [ + (offset >= 0 ? "-" : "+"), + _pad(floor(abs(offset) / 60), 2, "0"), + _pad(abs(offset) % 60, 2, "0") + ]; + if (l === 4) { + tz.splice(0, 0, "GMT"); + tz.splice(3, 0, ":"); + } + s = tz.join(""); + } + } else { + s = match; + } + if (pad) { + s = _pad(s, l, '0'); + } + return s; + }); + } - var round = Math.round, - thresholds = { - ss: 44, // a few seconds to seconds - s: 45, // seconds to minute - m: 45, // minutes to hour - h: 22, // hours to day - d: 26, // days to month/week - w: null, // weeks to month - M: 11, // months to year }; - // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize - function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { - return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); - } - - function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) { - var duration = createDuration(posNegDuration).abs(), - seconds = round(duration.as('s')), - minutes = round(duration.as('m')), - hours = round(duration.as('h')), - days = round(duration.as('d')), - months = round(duration.as('M')), - weeks = round(duration.as('w')), - years = round(duration.as('y')), - a = - (seconds <= thresholds.ss && ['s', seconds]) || - (seconds < thresholds.s && ['ss', seconds]) || - (minutes <= 1 && ['m']) || - (minutes < thresholds.m && ['mm', minutes]) || - (hours <= 1 && ['h']) || - (hours < thresholds.h && ['hh', hours]) || - (days <= 1 && ['d']) || - (days < thresholds.d && ['dd', days]); - - if (thresholds.w != null) { - a = - a || - (weeks <= 1 && ['w']) || - (weeks < thresholds.w && ['ww', weeks]); - } - a = a || - (months <= 1 && ['M']) || - (months < thresholds.M && ['MM', months]) || - (years <= 1 && ['y']) || ['yy', years]; - - a[2] = withoutSuffix; - a[3] = +posNegDuration > 0; - a[4] = locale; - return substituteTimeAgo.apply(null, a); - } - - // This function allows you to set the rounding function for relative time strings - function getSetRelativeTimeRounding(roundingFunction) { - if (roundingFunction === undefined) { - return round; - } - if (typeof roundingFunction === 'function') { - round = roundingFunction; - return true; - } - return false; - } + var numberDate = {}; - // This function allows you to set a threshold for relative time strings - function getSetRelativeTimeThreshold(threshold, limit) { - if (thresholds[threshold] === undefined) { - return false; - } - if (limit === undefined) { - return thresholds[threshold]; - } - thresholds[threshold] = limit; - if (threshold === 's') { - thresholds.ss = limit - 1; + function addInterval(interval) { + numberDate[interval + "sFromNow"] = function (val) { + return date.add(new Date(), interval, val); + }; + numberDate[interval + "sAgo"] = function (val) { + return date.add(new Date(), interval, -val); + }; } - return true; - } - function humanize(argWithSuffix, argThresholds) { - if (!this.isValid()) { - return this.localeData().invalidDate(); + var intervals = ["year", "month", "day", "hour", "minute", "second"]; + for (var i = 0, l = intervals.length; i < l; i++) { + addInterval(intervals[i]); } - var withSuffix = false, - th = thresholds, - locale, - output; + var stringDate = { - if (typeof argWithSuffix === 'object') { - argThresholds = argWithSuffix; - argWithSuffix = false; - } - if (typeof argWithSuffix === 'boolean') { - withSuffix = argWithSuffix; - } - if (typeof argThresholds === 'object') { - th = Object.assign({}, thresholds, argThresholds); - if (argThresholds.s != null && argThresholds.ss == null) { - th.ss = argThresholds.s - 1; + parseDate: function (dateStr, format) { + if (!format) { + throw new Error('format required when calling dateExtender.parse'); + } + var tokens = [], regexp = buildDateEXP(format, tokens), + re = new RegExp("^" + regexp + "$", "i"), + match = re.exec(dateStr); + if (!match) { + return null; + } // null + var result = [1970, 0, 1, 0, 0, 0, 0], // will get converted to a Date at the end + amPm = "", + valid = every(match, function (v, i) { + if (i) { + var token = tokens[i - 1]; + var l = token.length, type = token.charAt(0); + if (type === 'y') { + if (v < 100) { + v = parseInt(v, 10); + //choose century to apply, according to a sliding window + //of 80 years before and 20 years after present year + var year = '' + new Date().getFullYear(), + century = year.substring(0, 2) * 100, + cutoff = min(year.substring(2, 4) + 20, 99); + result[0] = (v < cutoff) ? century + v : century - 100 + v; + } else { + result[0] = v; + } + } else if (type === "M") { + if (l > 2) { + var months = monthNames, j, k; + if (l === 3) { + months = monthAbbr; + } + //Tolerate abbreviating period in month part + //Case-insensitive comparison + v = v.replace(".", "").toLowerCase(); + var contains = false; + for (j = 0, k = months.length; j < k && !contains; j++) { + var s = months[j].replace(".", "").toLocaleLowerCase(); + if (s === v) { + v = j; + contains = true; + } + } + if (!contains) { + return false; + } + } else { + v--; + } + result[1] = v; + } else if (type === "E" || type === "e") { + var days = dayNames; + if (l === 3) { + days = dayAbbr; + } + //Case-insensitive comparison + v = v.toLowerCase(); + days = array.map(days, function (d) { + return d.toLowerCase(); + }); + var d = array.indexOf(days, v); + if (d === -1) { + v = parseInt(v, 10); + if (isNaN(v) || v > days.length) { + return false; + } + } else { + v = d; + } + } else if (type === 'D' || type === "d") { + if (type === "D") { + result[1] = 0; + } + result[2] = v; + } else if (type === "a") { + var am = "am"; + var pm = "pm"; + var period = /\./g; + v = v.replace(period, '').toLowerCase(); + // we might not have seen the hours field yet, so store the state and apply hour change later + amPm = (v === pm) ? 'p' : (v === am) ? 'a' : ''; + } else if (type === "k" || type === "h" || type === "H" || type === "K") { + if (type === "k" && (+v) === 24) { + v = 0; + } + result[3] = v; + } else if (type === "m") { + result[4] = v; + } else if (type === "s") { + result[5] = v; + } else if (type === "S") { + result[6] = v; + } + } + return true; + }); + if (valid) { + var hours = +result[3]; + //account for am/pm + if (amPm === 'p' && hours < 12) { + result[3] = hours + 12; //e.g., 3pm -> 15 + } else if (amPm === 'a' && hours === 12) { + result[3] = 0; //12am -> 0 + } + var dateObject = new Date(result[0], result[1], result[2], result[3], result[4], result[5], result[6]); // Date + var dateToken = (array.indexOf(tokens, 'd') !== -1), + monthToken = (array.indexOf(tokens, 'M') !== -1), + month = result[1], + day = result[2], + dateMonth = dateObject.getMonth(), + dateDay = dateObject.getDate(); + if ((monthToken && dateMonth > month) || (dateToken && dateDay > day)) { + return null; + } + return dateObject; // Date + } else { + return null; + } } - } + }; - locale = this.localeData(); - output = relativeTime$1(this, !withSuffix, th, locale); - if (withSuffix) { - output = locale.pastFuture(+this, output); + var ret = extended.define(is.isDate, date).define(is.isString, stringDate).define(is.isNumber, numberDate); + for (i in date) { + if (date.hasOwnProperty(i)) { + ret[i] = date[i]; + } } - return locale.postformat(output); - } - - var abs$1 = Math.abs; - - function sign(x) { - return (x > 0) - (x < 0) || +x; - } - - function toISOString$1() { - // for ISO strings we do not use the normal bubbling rules: - // * milliseconds bubble up until they become hours - // * days do not bubble at all - // * months bubble up until they become years - // This is because there is no context-free conversion between hours and days - // (think of clock changes) - // and also not between days and months (28-31 days per month) - if (!this.isValid()) { - return this.localeData().invalidDate(); + for (i in stringDate) { + if (stringDate.hasOwnProperty(i)) { + ret[i] = stringDate[i]; + } } - - var seconds = abs$1(this._milliseconds) / 1000, - days = abs$1(this._days), - months = abs$1(this._months), - minutes, - hours, - years, - s, - total = this.asSeconds(), - totalSign, - ymSign, - daysSign, - hmsSign; - - if (!total) { - // this is the same as C#'s (Noda) and python (isodate)... - // but not other JS (goog.date) - return 'P0D'; + for (i in numberDate) { + if (numberDate.hasOwnProperty(i)) { + ret[i] = numberDate[i]; + } } - - // 3600 seconds -> 60 minutes -> 1 hour - minutes = absFloor(seconds / 60); - hours = absFloor(minutes / 60); - seconds %= 60; - minutes %= 60; - - // 12 months -> 1 year - years = absFloor(months / 12); - months %= 12; - - // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js - s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; - - totalSign = total < 0 ? '-' : ''; - ymSign = sign(this._months) !== sign(total) ? '-' : ''; - daysSign = sign(this._days) !== sign(total) ? '-' : ''; - hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; - - return ( - totalSign + - 'P' + - (years ? ymSign + years + 'Y' : '') + - (months ? ymSign + months + 'M' : '') + - (days ? daysSign + days + 'D' : '') + - (hours || minutes || seconds ? 'T' : '') + - (hours ? hmsSign + hours + 'H' : '') + - (minutes ? hmsSign + minutes + 'M' : '') + - (seconds ? hmsSign + s + 'S' : '') - ); + return ret; } - var proto$2 = Duration.prototype; - - proto$2.isValid = isValid$1; - proto$2.abs = abs; - proto$2.add = add$1; - proto$2.subtract = subtract$1; - proto$2.as = as; - proto$2.asMilliseconds = asMilliseconds; - proto$2.asSeconds = asSeconds; - proto$2.asMinutes = asMinutes; - proto$2.asHours = asHours; - proto$2.asDays = asDays; - proto$2.asWeeks = asWeeks; - proto$2.asMonths = asMonths; - proto$2.asQuarters = asQuarters; - proto$2.asYears = asYears; - proto$2.valueOf = valueOf$1; - proto$2._bubble = bubble; - proto$2.clone = clone$1; - proto$2.get = get$2; - proto$2.milliseconds = milliseconds; - proto$2.seconds = seconds; - proto$2.minutes = minutes; - proto$2.hours = hours; - proto$2.days = days; - proto$2.weeks = weeks; - proto$2.months = months; - proto$2.years = years; - proto$2.humanize = humanize; - proto$2.toISOString = toISOString$1; - proto$2.toString = toISOString$1; - proto$2.toJSON = toISOString$1; - proto$2.locale = locale; - proto$2.localeData = localeData; - - proto$2.toIsoString = deprecate( - 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', - toISOString$1 - ); - proto$2.lang = lang; - - // FORMATTING - - addFormatToken('X', 0, 0, 'unix'); - addFormatToken('x', 0, 0, 'valueOf'); - - // PARSING - - addRegexToken('x', matchSigned); - addRegexToken('X', matchTimestamp); - addParseToken('X', function (input, array, config) { - config._d = new Date(parseFloat(input) * 1000); - }); - addParseToken('x', function (input, array, config) { - config._d = new Date(toInt(input)); - }); - - //! moment.js - - hooks.version = '2.29.1'; - - setHookCallback(createLocal); - - hooks.fn = proto; - hooks.min = min; - hooks.max = max; - hooks.now = now; - hooks.utc = createUTC; - hooks.unix = createUnix; - hooks.months = listMonths; - hooks.isDate = isDate; - hooks.locale = getSetGlobalLocale; - hooks.invalid = createInvalid; - hooks.duration = createDuration; - hooks.isMoment = isMoment; - hooks.weekdays = listWeekdays; - hooks.parseZone = createInZone; - hooks.localeData = getLocale; - hooks.isDuration = isDuration; - hooks.monthsShort = listMonthsShort; - hooks.weekdaysMin = listWeekdaysMin; - hooks.defineLocale = defineLocale; - hooks.updateLocale = updateLocale; - hooks.locales = listLocales; - hooks.weekdaysShort = listWeekdaysShort; - hooks.normalizeUnits = normalizeUnits; - hooks.relativeTimeRounding = getSetRelativeTimeRounding; - hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; - hooks.calendarFormat = getCalendarFormat; - hooks.prototype = proto; - - // currently HTML5 input type only supports 24-hour formats - hooks.HTML5_FMT = { - DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // - DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // - DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // - DATE: 'YYYY-MM-DD', // - TIME: 'HH:mm', // - TIME_SECONDS: 'HH:mm:ss', // - TIME_MS: 'HH:mm:ss.SSS', // - WEEK: 'GGGG-[W]WW', // - MONTH: 'YYYY-MM', // - }; - - return hooks; - -}))); - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/src/index.js": -/*!******************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/calendar-interval/src/index.js ***! - \******************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -const moment = __webpack_require__(/*! moment */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js"); - -const normalizeStartDate = (intervalStartDate) => { - intervalStartDate = parseInt(intervalStartDate); - - if (isNaN(intervalStartDate) || intervalStartDate <= 0 || intervalStartDate > 31) { - intervalStartDate = 1; - } + if (true) { + if ( true && module.exports) { + module.exports = defineDate(__nested_webpack_require_1763526__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js"), __nested_webpack_require_1763526__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js"), __nested_webpack_require_1763526__(/*! array-extended */ "./build/cht-core-4-6/node_modules/array-extended/index.js")); - return intervalStartDate; -}; + } + } else {} -const getMinimumStartDate = (intervalStartDate, relativeDate) => { - return moment - .min( - relativeDate.clone().subtract(1, 'month').date(intervalStartDate).startOf('day'), - relativeDate.clone().startOf('month') - ) - .valueOf(); -}; +}).call(this); -const getMinimumEndDate = (intervalStartDate, nextMonth, relativeDate) => { - return moment - .min( - relativeDate.clone().add(nextMonth ? 1 : 0, 'month').date(intervalStartDate - 1).endOf('day'), - relativeDate.clone().add(nextMonth ? 1 : 0, 'month').endOf('month') - ) - .valueOf(); -}; -const getInterval = (intervalStartDate, referenceDate = moment()) => { - intervalStartDate = normalizeStartDate(intervalStartDate); - if (intervalStartDate === 1) { - return { - start: referenceDate.startOf('month').valueOf(), - end: referenceDate.endOf('month').valueOf() - }; - } - if (intervalStartDate <= referenceDate.date()) { - return { - start: referenceDate.date(intervalStartDate).startOf('day').valueOf(), - end: getMinimumEndDate(intervalStartDate, true, referenceDate) - }; - } - return { - start: getMinimumStartDate(intervalStartDate, referenceDate), - end: getMinimumEndDate(intervalStartDate, false, referenceDate) - }; -}; -module.exports = { - // Returns the timestamps of the start and end of the current calendar interval - // @param {Number} [intervalStartDate=1] - day of month when interval starts (1 - 31) - // - // if `intervalStartDate` exceeds month's day count, the start/end of following/current month is returned - // f.e. `intervalStartDate` === 31 would generate next intervals : - // [12-31 -> 01-30], [01-31 -> 02-[28|29]], [03-01 -> 03-30], [03-31 -> 04-30], [05-01 -> 05-30], [05-31 - 06-30] - getCurrent: (intervalStartDate) => getInterval(intervalStartDate), - /** - * Returns the timestamps of the start and end of the a calendar interval that contains a reference date - * @param {Number} [intervalStartDate=1] - day of month when interval starts (1 - 31) - * @param {Number} timestamp - the reference date the interval should include - * @returns { start: number, end: number } - timestamps that define the calendar interval - */ - getInterval: (intervalStartDate, timestamp) => getInterval(intervalStartDate, moment(timestamp)), -}; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/cht-script-api/src/auth.js": -/*!**************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/cht-script-api/src/auth.js ***! - \**************************************************************************/ +/***/ "./build/cht-core-4-6/node_modules/declare.js/declare.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/declare.js/declare.js ***! + \***************************************************************/ /***/ ((module) => { -/** - * CHT Script API - Auth module - * Provides tools related to Authentication. - */ +(function () { -const ADMIN_ROLE = '_admin'; -const NATIONAL_ADMIN_ROLE = 'national_admin'; // Deprecated: kept for backwards compatibility: #4525 -const DISALLOWED_PERMISSION_PREFIX = '!'; + /** + * @projectName declare + * @github http://github.com/doug-martin/declare.js + * @header + * + * Declare is a library designed to allow writing object oriented code the same way in both the browser and node.js. + * + * ##Installation + * + * `npm install declare.js` + * + * Or [download the source](https://raw.github.com/doug-martin/declare.js/master/declare.js) ([minified](https://raw.github.com/doug-martin/declare.js/master/declare-min.js)) + * + * ###Requirejs + * + * To use with requirejs place the `declare` source in the root scripts directory + * + * ``` + * + * define(["declare"], function(declare){ + * return declare({ + * instance : { + * hello : function(){ + * return "world"; + * } + * } + * }); + * }); + * + * ``` + * + * + * ##Usage + * + * declare.js provides + * + * Class methods + * + * * `as(module | object, name)` : exports the object to module or the object with the name + * * `mixin(mixin)` : mixes in an object but does not inherit directly from the object. **Note** this does not return a new class but changes the original class. + * * `extend(proto)` : extend a class with the given properties. A shortcut to `declare(Super, {})`; + * + * Instance methods + * + * * `_super(arguments)`: calls the super of the current method, you can pass in either the argments object or an array with arguments you want passed to super + * * `_getSuper()`: returns a this methods direct super. + * * `_static` : use to reference class properties and methods. + * * `get(prop)` : gets a property invoking the getter if it exists otherwise it just returns the named property on the object. + * * `set(prop, val)` : sets a property invoking the setter if it exists otherwise it just sets the named property on the object. + * + * + * ###Declaring a new Class + * + * Creating a new class with declare is easy! + * + * ``` + * + * var Mammal = declare({ + * //define your instance methods and properties + * instance : { + * + * //will be called whenever a new instance is created + * constructor: function(options) { + * options = options || {}; + * this._super(arguments); + * this._type = options.type || "mammal"; + * }, + * + * speak : function() { + * return "A mammal of type " + this._type + " sounds like"; + * }, + * + * //Define your getters + * getters : { + * + * //can be accessed by using the get method. (mammal.get("type")) + * type : function() { + * return this._type; + * } + * }, + * + * //Define your setters + * setters : { + * + * //can be accessed by using the set method. (mammal.set("type", "mammalType")) + * type : function(t) { + * this._type = t; + * } + * } + * }, + * + * //Define your static methods + * static : { + * + * //Mammal.soundOff(); //"Im a mammal!!" + * soundOff : function() { + * return "Im a mammal!!"; + * } + * } + * }); + * + * + * ``` + * + * You can use Mammal just like you would any other class. + * + * ``` + * Mammal.soundOff("Im a mammal!!"); + * + * var myMammal = new Mammal({type : "mymammal"}); + * myMammal.speak(); // "A mammal of type mymammal sounds like" + * myMammal.get("type"); //"mymammal" + * myMammal.set("type", "mammal"); + * myMammal.get("type"); //"mammal" + * + * + * ``` + * + * ###Extending a class + * + * If you want to just extend a single class use the .extend method. + * + * ``` + * + * var Wolf = Mammal.extend({ + * + * //define your instance method + * instance: { + * + * //You can override super constructors just be sure to call `_super` + * constructor: function(options) { + * options = options || {}; + * this._super(arguments); //call our super constructor. + * this._sound = "growl"; + * this._color = options.color || "grey"; + * }, + * + * //override Mammals `speak` method by appending our own data to it. + * speak : function() { + * return this._super(arguments) + " a " + this._sound; + * }, + * + * //add new getters for sound and color + * getters : { + * + * //new Wolf().get("type") + * //notice color is read only as we did not define a setter + * color : function() { + * return this._color; + * }, + * + * //new Wolf().get("sound") + * sound : function() { + * return this._sound; + * } + * }, + * + * setters : { + * + * //new Wolf().set("sound", "howl") + * sound : function(s) { + * this._sound = s; + * } + * } + * + * }, + * + * static : { + * + * //You can override super static methods also! And you can still use _super + * soundOff : function() { + * //You can even call super in your statics!!! + * //should return "I'm a mammal!! that growls" + * return this._super(arguments) + " that growls"; + * } + * } + * }); + * + * Wolf.soundOff(); //Im a mammal!! that growls + * + * var myWolf = new Wolf(); + * myWolf instanceof Mammal //true + * myWolf instanceof Wolf //true + * + * ``` + * + * You can also extend a class by using the declare method and just pass in the super class. + * + * ``` + * //Typical hierarchical inheritance + * // Mammal->Wolf->Dog + * var Dog = declare(Wolf, { + * instance: { + * constructor: function(options) { + * options = options || {}; + * this._super(arguments); + * //override Wolfs initialization of sound to woof. + * this._sound = "woof"; + * + * }, + * + * speak : function() { + * //Should return "A mammal of type mammal sounds like a growl thats domesticated" + * return this._super(arguments) + " thats domesticated"; + * } + * }, + * + * static : { + * soundOff : function() { + * //should return "I'm a mammal!! that growls but now barks" + * return this._super(arguments) + " but now barks"; + * } + * } + * }); + * + * Dog.soundOff(); //Im a mammal!! that growls but now barks + * + * var myDog = new Dog(); + * myDog instanceof Mammal //true + * myDog instanceof Wolf //true + * myDog instanceof Dog //true + * + * + * //Notice you still get the extend method. + * + * // Mammal->Wolf->Dog->Breed + * var Breed = Dog.extend({ + * instance: { + * + * //initialize outside of constructor + * _pitch : "high", + * + * constructor: function(options) { + * options = options || {}; + * this._super(arguments); + * this.breed = options.breed || "lab"; + * }, + * + * speak : function() { + * //Should return "A mammal of type mammal sounds like a + * //growl thats domesticated with a high pitch!" + * return this._super(arguments) + " with a " + this._pitch + " pitch!"; + * }, + * + * getters : { + * pitch : function() { + * return this._pitch; + * } + * } + * }, + * + * static : { + * soundOff : function() { + * //should return "I'M A MAMMAL!! THAT GROWLS BUT NOW BARKS!" + * return this._super(arguments).toUpperCase() + "!"; + * } + * } + * }); + * + * + * Breed.soundOff()//"IM A MAMMAL!! THAT GROWLS BUT NOW BARKS!" + * + * var myBreed = new Breed({color : "gold", type : "lab"}), + * myBreed instanceof Dog //true + * myBreed instanceof Wolf //true + * myBreed instanceof Mammal //true + * myBreed.speak() //"A mammal of type lab sounds like a woof thats domesticated with a high pitch!" + * myBreed.get("type") //"lab" + * myBreed.get("color") //"gold" + * myBreed.get("sound")" //"woof" + * ``` + * + * ###Multiple Inheritance / Mixins + * + * declare also allows the use of multiple super classes. + * This is useful if you have generic classes that provide functionality but shouldnt be used on their own. + * + * Lets declare a mixin that allows us to watch for property changes. + * + * ``` + * //Notice that we set up the functions outside of declare because we can reuse them + * + * function _set(prop, val) { + * //get the old value + * var oldVal = this.get(prop); + * //call super to actually set the property + * var ret = this._super(arguments); + * //call our handlers + * this.__callHandlers(prop, oldVal, val); + * return ret; + * } + * + * function _callHandlers(prop, oldVal, newVal) { + * //get our handlers for the property + * var handlers = this.__watchers[prop], l; + * //if the handlers exist and their length does not equal 0 then we call loop through them + * if (handlers && (l = handlers.length) !== 0) { + * for (var i = 0; i < l; i++) { + * //call the handler + * handlers[i].call(null, prop, oldVal, newVal); + * } + * } + * } + * + * + * //the watch function + * function _watch(prop, handler) { + * if ("function" !== typeof handler) { + * //if its not a function then its an invalid handler + * throw new TypeError("Invalid handler."); + * } + * if (!this.__watchers[prop]) { + * //create the watchers if it doesnt exist + * this.__watchers[prop] = [handler]; + * } else { + * //otherwise just add it to the handlers array + * this.__watchers[prop].push(handler); + * } + * } + * + * function _unwatch(prop, handler) { + * if ("function" !== typeof handler) { + * throw new TypeError("Invalid handler."); + * } + * var handlers = this.__watchers[prop], index; + * if (handlers && (index = handlers.indexOf(handler)) !== -1) { + * //remove the handler if it is found + * handlers.splice(index, 1); + * } + * } + * + * declare({ + * instance:{ + * constructor:function () { + * this._super(arguments); + * //set up our watchers + * this.__watchers = {}; + * }, + * + * //override the default set function so we can watch values + * "set":_set, + * //set up our callhandlers function + * __callHandlers:_callHandlers, + * //add the watch function + * watch:_watch, + * //add the unwatch function + * unwatch:_unwatch + * }, + * + * "static":{ + * + * init:function () { + * this._super(arguments); + * this.__watchers = {}; + * }, + * //override the default set function so we can watch values + * "set":_set, + * //set our callHandlers function + * __callHandlers:_callHandlers, + * //add the watch + * watch:_watch, + * //add the unwatch function + * unwatch:_unwatch + * } + * }) + * + * ``` + * + * Now lets use the mixin + * + * ``` + * var WatchDog = declare([Dog, WatchMixin]); + * + * var watchDog = new WatchDog(); + * //create our handler + * function watch(id, oldVal, newVal) { + * console.log("watchdog's %s was %s, now %s", id, oldVal, newVal); + * } + * + * //watch for property changes + * watchDog.watch("type", watch); + * watchDog.watch("color", watch); + * watchDog.watch("sound", watch); + * + * //now set the properties each handler will be called + * watchDog.set("type", "newDog"); + * watchDog.set("color", "newColor"); + * watchDog.set("sound", "newSound"); + * + * + * //unwatch the property changes + * watchDog.unwatch("type", watch); + * watchDog.unwatch("color", watch); + * watchDog.unwatch("sound", watch); + * + * //no handlers will be called this time + * watchDog.set("type", "newDog"); + * watchDog.set("color", "newColor"); + * watchDog.set("sound", "newSound"); + * + * + * ``` + * + * ###Accessing static methods and properties witin an instance. + * + * To access static properties on an instance use the `_static` property which is a reference to your constructor. + * + * For example if your in your constructor and you want to have configurable default values. + * + * ``` + * consturctor : function constructor(opts){ + * this.opts = opts || {}; + * this._type = opts.type || this._static.DEFAULT_TYPE; + * } + * ``` + * + * + * + * ###Creating a new instance of within an instance. + * + * Often times you want to create a new instance of an object within an instance. If your subclassed however you cannot return a new instance of the parent class as it will not be the right sub class. `declare` provides a way around this by setting the `_static` property on each isntance of the class. + * + * Lets add a reproduce method `Mammal` + * + * ``` + * reproduce : function(options){ + * return new this._static(options); + * } + * ``` + * + * Now in each subclass you can call reproduce and get the proper type. + * + * ``` + * var myDog = new Dog(); + * var myDogsChild = myDog.reproduce(); + * + * myDogsChild instanceof Dog; //true + * ``` + * + * ###Using the `as` + * + * `declare` also provides an `as` method which allows you to add your class to an object or if your using node.js you can pass in `module` and the class will be exported as the module. + * + * ``` + * var animals = {}; + * + * Mammal.as(animals, "Dog"); + * Wolf.as(animals, "Wolf"); + * Dog.as(animals, "Dog"); + * Breed.as(animals, "Breed"); + * + * var myDog = new animals.Dog(); + * + * ``` + * + * Or in node + * + * ``` + * Mammal.as(exports, "Dog"); + * Wolf.as(exports, "Wolf"); + * Dog.as(exports, "Dog"); + * Breed.as(exports, "Breed"); + * + * ``` + * + * To export a class as the `module` in node + * + * ``` + * Mammal.as(module); + * ``` + * + * + */ + function createDeclared() { + var arraySlice = Array.prototype.slice, classCounter = 0, Base, forceNew = new Function(); + + var SUPER_REGEXP = /(super)/g; + + function argsToArray(args, slice) { + slice = slice || 0; + return arraySlice.call(args, slice); + } -const isAdmin = (userRoles) => { - if (!Array.isArray(userRoles)) { - return false; - } + function isArray(obj) { + return Object.prototype.toString.call(obj) === "[object Array]"; + } - return [ADMIN_ROLE, NATIONAL_ADMIN_ROLE].some(role => userRoles.includes(role)); -}; + function isObject(obj) { + var undef; + return obj !== null && obj !== undef && typeof obj === "object"; + } -const groupPermissions = (permissions) => { - const groups = { allowed: [], disallowed: [] }; + function isHash(obj) { + var ret = isObject(obj); + return ret && obj.constructor === Object; + } - permissions.forEach(permission => { - if (permission.indexOf(DISALLOWED_PERMISSION_PREFIX) === 0) { - // Removing the DISALLOWED_PERMISSION_PREFIX and keeping the permission name. - groups.disallowed.push(permission.substring(1)); - } else { - groups.allowed.push(permission); - } - }); + var isArguments = function _isArguments(object) { + return Object.prototype.toString.call(object) === '[object Arguments]'; + }; - return groups; -}; + if (!isArguments(arguments)) { + isArguments = function _isArguments(obj) { + return !!(obj && obj.hasOwnProperty("callee")); + }; + } -const debug = (reason, permissions, roles) => { - // eslint-disable-next-line no-console - ; -}; + function indexOf(arr, item) { + if (arr && arr.length) { + for (var i = 0, l = arr.length; i < l; i++) { + if (arr[i] === item) { + return i; + } + } + } + return -1; + } -const checkUserHasPermissions = (permissions, userRoles, chtPermissionsSettings, expectedToHave) => { - return permissions.every(permission => { - const roles = chtPermissionsSettings[permission]; + function merge(target, source, exclude) { + var name, s; + for (name in source) { + if (source.hasOwnProperty(name) && indexOf(exclude, name) === -1) { + s = source[name]; + if (!(name in target) || (target[name] !== s)) { + target[name] = s; + } + } + } + return target; + } - if (!roles) { - return !expectedToHave; - } + function callSuper(args, a) { + var meta = this.__meta, + supers = meta.supers, + l = supers.length, superMeta = meta.superMeta, pos = superMeta.pos; + if (l > pos) { + args = !args ? [] : (!isArguments(args) && !isArray(args)) ? [args] : args; + var name = superMeta.name, f = superMeta.f, m; + do { + m = supers[pos][name]; + if ("function" === typeof m && (m = m._f || m) !== f) { + superMeta.pos = 1 + pos; + return m.apply(this, args); + } + } while (l > ++pos); + } - return expectedToHave === userRoles.some(role => roles.includes(role)); - }); -}; + return null; + } -const verifyParameters = (permissions, userRoles, chtPermissionsSettings) => { - if (!Array.isArray(permissions) || !permissions.length) { - debug('Permissions to verify are not provided or have invalid type'); - return false; - } + function getSuper() { + var meta = this.__meta, + supers = meta.supers, + l = supers.length, superMeta = meta.superMeta, pos = superMeta.pos; + if (l > pos) { + var name = superMeta.name, f = superMeta.f, m; + do { + m = supers[pos][name]; + if ("function" === typeof m && (m = m._f || m) !== f) { + superMeta.pos = 1 + pos; + return m.bind(this); + } + } while (l > ++pos); + } + return null; + } - if (!Array.isArray(userRoles)) { - debug('User roles are not provided or have invalid type'); - return false; - } + function getter(name) { + var getters = this.__getters__; + if (getters.hasOwnProperty(name)) { + return getters[name].apply(this); + } else { + return this[name]; + } + } - if (!chtPermissionsSettings || !Object.keys(chtPermissionsSettings).length) { - debug('CHT-Core\'s configured permissions are not provided'); - return false; - } + function setter(name, val) { + var setters = this.__setters__; + if (isHash(name)) { + for (var i in name) { + var prop = name[i]; + if (setters.hasOwnProperty(i)) { + setters[name].call(this, prop); + } else { + this[i] = prop; + } + } + } else { + if (setters.hasOwnProperty(name)) { + return setters[name].apply(this, argsToArray(arguments, 1)); + } else { + return this[name] = val; + } + } + } - return true; -}; -/** - * Verify if the user's role has the permission(s). - * @param permissions {string | string[]} Permission(s) to verify - * @param userRoles {string[]} Array of user roles. - * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings. - * @return {boolean} - */ -const hasPermissions = (permissions, userRoles, chtPermissionsSettings) => { - if (permissions && typeof permissions === 'string') { - permissions = [ permissions ]; - } + function defaultFunction() { + var meta = this.__meta || {}, + supers = meta.supers, + l = supers.length, superMeta = meta.superMeta, pos = superMeta.pos; + if (l > pos) { + var name = superMeta.name, f = superMeta.f, m; + do { + m = supers[pos][name]; + if ("function" === typeof m && (m = m._f || m) !== f) { + superMeta.pos = 1 + pos; + return m.apply(this, arguments); + } + } while (l > ++pos); + } + return null; + } - if (!verifyParameters(permissions, userRoles, chtPermissionsSettings)) { - return false; - } - const { allowed, disallowed } = groupPermissions(permissions); + function functionWrapper(f, name) { + if (f.toString().match(SUPER_REGEXP)) { + var wrapper = function wrapper() { + var ret, meta = this.__meta || {}; + var orig = meta.superMeta; + meta.superMeta = {f: f, pos: 0, name: name}; + switch (arguments.length) { + case 0: + ret = f.call(this); + break; + case 1: + ret = f.call(this, arguments[0]); + break; + case 2: + ret = f.call(this, arguments[0], arguments[1]); + break; - if (isAdmin(userRoles)) { - if (disallowed.length) { - debug('Disallowed permission(s) found for admin', permissions, userRoles); - return false; - } - // Admin has the permissions automatically. - return true; - } + case 3: + ret = f.call(this, arguments[0], arguments[1], arguments[2]); + break; + default: + ret = f.apply(this, arguments); + } + meta.superMeta = orig; + return ret; + }; + wrapper._f = f; + return wrapper; + } else { + f._f = f; + return f; + } + } - const hasDisallowed = !checkUserHasPermissions(disallowed, userRoles, chtPermissionsSettings, false); - const hasAllowed = checkUserHasPermissions(allowed, userRoles, chtPermissionsSettings, true); + function defineMixinProps(child, proto) { - if (hasDisallowed) { - debug('Found disallowed permission(s)', permissions, userRoles); - return false; - } + var operations = proto.setters || {}, __setters = child.__setters__, __getters = child.__getters__; + for (var i in operations) { + if (!__setters.hasOwnProperty(i)) { //make sure that the setter isnt already there + __setters[i] = operations[i]; + } + } + operations = proto.getters || {}; + for (i in operations) { + if (!__getters.hasOwnProperty(i)) { //make sure that the setter isnt already there + __getters[i] = operations[i]; + } + } + for (var j in proto) { + if (j !== "getters" && j !== "setters") { + var p = proto[j]; + if ("function" === typeof p) { + if (!child.hasOwnProperty(j)) { + child[j] = functionWrapper(defaultFunction, j); + } + } else { + child[j] = p; + } + } + } + } - if (!hasAllowed) { - debug('Missing permission(s)', permissions, userRoles); - return false; - } + function mixin() { + var args = argsToArray(arguments), l = args.length; + var child = this.prototype; + var childMeta = child.__meta, thisMeta = this.__meta, bases = child.__meta.bases, staticBases = bases.slice(), + staticSupers = thisMeta.supers || [], supers = childMeta.supers || []; + for (var i = 0; i < l; i++) { + var m = args[i], mProto = m.prototype; + var protoMeta = mProto.__meta, meta = m.__meta; + !protoMeta && (protoMeta = (mProto.__meta = {proto: mProto || {}})); + !meta && (meta = (m.__meta = {proto: m.__proto__ || {}})); + defineMixinProps(child, protoMeta.proto || {}); + defineMixinProps(this, meta.proto || {}); + //copy the bases for static, - return true; -}; + mixinSupers(m.prototype, supers, bases); + mixinSupers(m, staticSupers, staticBases); + } + return this; + } -/** - * Verify if the user's role has all the permissions of any of the provided groups. - * @param permissionsGroupList {string[][]} Array of groups of permissions due to the complexity of permission grouping - * @param userRoles {string[]} Array of user roles. - * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings. - * @return {boolean} - */ -const hasAnyPermission = (permissionsGroupList, userRoles, chtPermissionsSettings) => { - if (!verifyParameters(permissionsGroupList, userRoles, chtPermissionsSettings)) { - return false; - } + function mixinSupers(sup, arr, bases) { + var meta = sup.__meta; + !meta && (meta = (sup.__meta = {})); + var unique = sup.__meta.unique; + !unique && (meta.unique = "declare" + ++classCounter); + //check it we already have this super mixed into our prototype chain + //if true then we have already looped their supers! + if (indexOf(bases, unique) === -1) { + //add their id to our bases + bases.push(unique); + var supers = sup.__meta.supers || [], i = supers.length - 1 || 0; + while (i >= 0) { + mixinSupers(supers[i--], arr, bases); + } + arr.unshift(sup); + } + } - const validGroup = permissionsGroupList.every(permissions => Array.isArray(permissions)); - if (!validGroup) { - debug('Permission groups to verify are invalid'); - return false; - } + function defineProps(child, proto) { + var operations = proto.setters, + __setters = child.__setters__, + __getters = child.__getters__; + if (operations) { + for (var i in operations) { + __setters[i] = operations[i]; + } + } + operations = proto.getters || {}; + if (operations) { + for (i in operations) { + __getters[i] = operations[i]; + } + } + for (i in proto) { + if (i != "getters" && i != "setters") { + var f = proto[i]; + if ("function" === typeof f) { + var meta = f.__meta || {}; + if (!meta.isConstructor) { + child[i] = functionWrapper(f, i); + } else { + child[i] = f; + } + } else { + child[i] = f; + } + } + } - const allowedGroupList = []; - const disallowedGroupList = []; - permissionsGroupList.forEach(permissions => { - const { allowed, disallowed } = groupPermissions(permissions); - allowedGroupList.push(allowed); - disallowedGroupList.push(disallowed); - }); + } - if (isAdmin(userRoles)) { - if (disallowedGroupList.every(permissions => permissions.length)) { - debug('Disallowed permission(s) found for admin', permissionsGroupList, userRoles); - return false; - } - // Admin has the permissions automatically. - return true; - } + function _export(obj, name) { + if (obj && name) { + obj[name] = this; + } else { + obj.exports = obj = this; + } + return this; + } - const hasAnyPermissionGroup = permissionsGroupList.some((permissions, i) => { - const hasAnyAllowed = checkUserHasPermissions(allowedGroupList[i], userRoles, chtPermissionsSettings, true); - const hasAnyDisallowed = !checkUserHasPermissions(disallowedGroupList[i], userRoles, chtPermissionsSettings, false); - // Checking the 'permission group' is valid. - return hasAnyAllowed && !hasAnyDisallowed; - }); + function extend(proto) { + return declare(this, proto); + } - if (!hasAnyPermissionGroup) { - debug('No matching permissions', permissionsGroupList, userRoles); - return false; - } + function getNew(ctor) { + // create object with correct prototype using a do-nothing + // constructor + forceNew.prototype = ctor.prototype; + var t = new forceNew(); + forceNew.prototype = null; // clean up + return t; + } - return true; -}; -module.exports = { - hasPermissions, - hasAnyPermission -}; + function __declare(child, sup, proto) { + var childProto = {}, supers = []; + var unique = "declare" + ++classCounter, bases = [], staticBases = []; + var instanceSupers = [], staticSupers = []; + var meta = { + supers: instanceSupers, + unique: unique, + bases: bases, + superMeta: { + f: null, + pos: 0, + name: null + } + }; + var childMeta = { + supers: staticSupers, + unique: unique, + bases: staticBases, + isConstructor: true, + superMeta: { + f: null, + pos: 0, + name: null + } + }; + if (isHash(sup) && !proto) { + proto = sup; + sup = Base; + } -/***/ }), + if ("function" === typeof sup || isArray(sup)) { + supers = isArray(sup) ? sup : [sup]; + sup = supers.shift(); + child.__meta = childMeta; + childProto = getNew(sup); + childProto.__meta = meta; + childProto.__getters__ = merge({}, childProto.__getters__ || {}); + childProto.__setters__ = merge({}, childProto.__setters__ || {}); + child.__getters__ = merge({}, child.__getters__ || {}); + child.__setters__ = merge({}, child.__setters__ || {}); + mixinSupers(sup.prototype, instanceSupers, bases); + mixinSupers(sup, staticSupers, staticBases); + } else { + child.__meta = childMeta; + childProto.__meta = meta; + childProto.__getters__ = childProto.__getters__ || {}; + childProto.__setters__ = childProto.__setters__ || {}; + child.__getters__ = child.__getters__ || {}; + child.__setters__ = child.__setters__ || {}; + } + child.prototype = childProto; + if (proto) { + var instance = meta.proto = proto.instance || {}; + var stat = childMeta.proto = proto.static || {}; + stat.init = stat.init || defaultFunction; + defineProps(childProto, instance); + defineProps(child, stat); + if (!instance.hasOwnProperty("constructor")) { + childProto.constructor = instance.constructor = functionWrapper(defaultFunction, "constructor"); + } else { + childProto.constructor = functionWrapper(instance.constructor, "constructor"); + } + } else { + meta.proto = {}; + childMeta.proto = {}; + child.init = functionWrapper(defaultFunction, "init"); + childProto.constructor = functionWrapper(defaultFunction, "constructor"); + } + if (supers.length) { + mixin.apply(child, supers); + } + if (sup) { + //do this so we mixin our super methods directly but do not ov + merge(child, merge(merge({}, sup), child)); + } + childProto._super = child._super = callSuper; + childProto._getSuper = child._getSuper = getSuper; + childProto._static = child; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/cht-script-api/src/index.js": -/*!***************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/cht-script-api/src/index.js ***! - \***************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + function declare(sup, proto) { + function declared() { + switch (arguments.length) { + case 0: + this.constructor.call(this); + break; + case 1: + this.constructor.call(this, arguments[0]); + break; + case 2: + this.constructor.call(this, arguments[0], arguments[1]); + break; + case 3: + this.constructor.call(this, arguments[0], arguments[1], arguments[2]); + break; + default: + this.constructor.apply(this, arguments); + } + } -/** - * CHT Script API - Index - * Builds and exports a versioned API from feature modules. - * Whenever possible keep this file clean by defining new features in modules. - */ -const auth = __webpack_require__(/*! ./auth */ "./node_modules/cht-core-4-0/shared-libs/cht-script-api/src/auth.js"); + __declare(declared, sup, proto); + return declared.init() || declared; + } -/** - * Verify if the user's role has the permission(s). - * @param permissions {string | string[]} Permission(s) to verify - * @param userRoles {string[]} Array of user roles. - * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings. - * @return {boolean} - */ -const hasPermissions = (permissions, userRoles, chtPermissionsSettings) => { - return auth.hasPermissions(permissions, userRoles, chtPermissionsSettings); -}; + function singleton(sup, proto) { + var retInstance; + + function declaredSingleton() { + if (!retInstance) { + this.constructor.apply(this, arguments); + retInstance = this; + } + return retInstance; + } -/** - * Verify if the user's role has all the permissions of any of the provided groups. - * @param permissionsGroupList {string[][]} Array of groups of permissions due to the complexity of permission grouping - * @param userRoles {string[]} Array of user roles. - * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings. - * @return {boolean} - */ -const hasAnyPermission = (permissionsGroupList, userRoles, chtPermissionsSettings) => { - return auth.hasAnyPermission(permissionsGroupList, userRoles, chtPermissionsSettings); -}; + __declare(declaredSingleton, sup, proto); + return declaredSingleton.init() || declaredSingleton; + } -module.exports = { - v1: { - hasPermissions, - hasAnyPermission - } -}; + Base = declare({ + instance: { + "get": getter, + "set": setter + }, + "static": { + "get": getter, + "set": setter, + mixin: mixin, + extend: extend, + as: _export + } + }); -/***/ }), + declare.singleton = singleton; + return declare; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/contact-types-utils/src/index.js": -/*!********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/contact-types-utils/src/index.js ***! - \********************************************************************************/ -/***/ ((module) => { + if (true) { + if ( true && module.exports) { + module.exports = createDeclared(); + } + } else {} +}()); -const HARDCODED_PERSON_TYPE = 'person'; -const HARDCODED_TYPES = [ - 'district_hospital', - 'health_center', - 'clinic', - 'person' -]; -const getContactTypes = config => { - return config && Array.isArray(config.contact_types) && config.contact_types || []; -}; -const getTypeId = (doc) => { - if (!doc) { - return; - } - return doc.type === 'contact' ? doc.contact_type : doc.type; -}; -const getTypeById = (config, typeId) => { - const contactTypes = getContactTypes(config); - return contactTypes.find(type => type.id === typeId); -}; -const isPersonType = (type) => { - return type && (type.person || type.id === HARDCODED_PERSON_TYPE); -}; +/***/ }), -const isPlaceType = (type) => { - return type && !type.person && type.id !== HARDCODED_PERSON_TYPE; -}; +/***/ "./build/cht-core-4-6/node_modules/declare.js/index.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/declare.js/index.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1837683__) => { -const hasParents = (type) => !!(type && type.parents && type.parents.length); +module.exports = __nested_webpack_require_1837683__(/*! ./declare.js */ "./build/cht-core-4-6/node_modules/declare.js/declare.js"); -const isParentOf = (parentType, childType) => { - if (!parentType || !childType) { - return false; - } +/***/ }), - const parentTypeId = typeof parentType === 'string' ? parentType : parentType.id; - return !!(childType && childType.parents && childType.parents.includes(parentTypeId)); -}; +/***/ "./build/cht-core-4-6/node_modules/extended/index.js": +/*!***********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/extended/index.js ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_1838144__) { -// A leaf place type is a contact type that does not have any child place types, but can have child person types -const getLeafPlaceTypes = (config) => { - const types = getContactTypes(config); - const placeTypes = types.filter(type => !type.person); - return placeTypes.filter(type => { - return placeTypes.every(inner => !inner.parents || !inner.parents.includes(type.id)); - }); -}; +(function () { + "use strict"; + /*global extender is, dateExtended*/ -const getContactType = (config, contact) => { - const typeId = getTypeId(contact); - return typeId && getTypeById(config, typeId); -}; + function defineExtended(extender) { -// returns true if contact's type exists and is a person type OR if contact's type is the hardcoded person type -const isPerson = (config, contact) => { - const typeId = getTypeId(contact); - const type = getTypeById(config, typeId) || { id: typeId }; - return isPersonType(type); -}; -const isPlace = (config, contact) => { - const type = getContactType(config, contact); - return isPlaceType(type); -}; + var merge = (function merger() { + function _merge(target, source) { + var name, s; + for (name in source) { + if (source.hasOwnProperty(name)) { + s = source[name]; + if (!(name in target) || (target[name] !== s)) { + target[name] = s; + } + } + } + return target; + } -const isHardcodedType = type => HARDCODED_TYPES.includes(type); + return function merge(obj) { + if (!obj) { + obj = {}; + } + for (var i = 1, l = arguments.length; i < l; i++) { + _merge(obj, arguments[i]); + } + return obj; // Object + }; + }()); -const isOrphan = (type) => !type.parents || !type.parents.length; -/** - * Returns an array of child types for the given type id. - * If parent is falsey, returns the types with no parent. - */ -const getChildren = (config, parentType) => { - const types = getContactTypes(config); - return types.filter(type => (!parentType && isOrphan(type)) || isParentOf(parentType, type)); -}; + function getExtended() { -const getPlaceTypes = (config) => getContactTypes(config).filter(isPlaceType); -const getPersonTypes = (config) => getContactTypes(config).filter(isPersonType); + var loaded = {}; -module.exports = { - getTypeId, - getTypeById, - isPersonType, - isPlaceType, - hasParents, - isParentOf, - getLeafPlaceTypes, - getContactType, - isPerson, - isPlace, - isHardcodedType, - HARDCODED_TYPES, - getContactTypes, - getChildren, - getPlaceTypes, - getPersonTypes, -}; + //getInitial instance; + var extended = extender.define(); + extended.expose({ + register: function register(alias, extendWith) { + if (!extendWith) { + extendWith = alias; + alias = null; + } + var type = typeof extendWith; + if (alias) { + extended[alias] = extendWith; + } else if (extendWith && type === "function") { + extended.extend(extendWith); + } else if (type === "object") { + extended.expose(extendWith); + } else { + throw new TypeError("extended.register must be called with an extender function"); + } + return extended; + }, -/***/ }), + define: function () { + return extender.define.apply(extender, arguments); + } + }); -/***/ "./node_modules/cht-core-4-0/shared-libs/lineage/src/hydration.js": -/*!************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/lineage/src/hydration.js ***! - \************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + return extended; + } -const _ = __webpack_require__(/*! lodash/core */ "./node_modules/lodash/core.js"); -_.uniq = __webpack_require__(/*! lodash/uniq */ "./node_modules/lodash/uniq.js"); -const utils = __webpack_require__(/*! ./utils */ "./node_modules/cht-core-4-0/shared-libs/lineage/src/utils.js"); + function extended() { + return getExtended(); + } -const deepCopy = obj => JSON.parse(JSON.stringify(obj)); + extended.define = function define() { + return extender.define.apply(extender, arguments); + }; -const selfAndParents = function(self) { - const parents = []; - let current = self; - while (current) { - if (parents.includes(current)) { - return parents; + return extended; } - parents.push(current); - current = current.parent; - } - return parents; -}; + if (true) { + if ( true && module.exports) { + module.exports = defineExtended(__nested_webpack_require_1838144__(/*! extender */ "./build/cht-core-4-6/node_modules/extender/index.js")); -const extractParentIds = current => selfAndParents(current) - .map(parent => parent._id) - .filter(id => id); + } + } else {} -const getContactById = (contacts, id) => id && contacts.find(contact => contact && contact._id === id); +}).call(this); -const getContactIds = (contacts) => { - const ids = []; - contacts.forEach(doc => { - if (!doc) { - return; - } - const id = utils.getId(doc.contact); - id && ids.push(id); - if (!utils.validLinkedDocs(doc)) { - return; - } - Object.keys(doc.linked_docs).forEach(key => { - const id = utils.getId(doc.linked_docs[key]); - id && ids.push(id); - }); - }); - return _.uniq(ids); -}; -module.exports = function(Promise, DB) { - const fillParentsInDocs = function(doc, lineage) { - if (!doc || !lineage.length) { - return doc; - } - // Parent hierarchy starts at the contact for data_records - let currentParent; - if (utils.isReport(doc)) { - currentParent = doc.contact = lineage.shift() || doc.contact; - } else { - // It's a contact - currentParent = doc; - } - const parentIds = extractParentIds(currentParent.parent); - lineage.forEach(function(l, i) { - currentParent.parent = l ? deepCopy(l) : { _id: parentIds[i] }; - currentParent = currentParent.parent; - }); - return doc; - }; +/***/ }), - const fillContactsInDocs = function(docs, contacts) { - if (!contacts || !contacts.length) { - return; - } +/***/ "./build/cht-core-4-6/node_modules/extender/extender.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/extender/extender.js ***! + \**************************************************************/ +/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_1841029__) { + +(function () { + /*jshint strict:false*/ + + + /** + * + * @projectName extender + * @github http://github.com/doug-martin/extender + * @header + * [![build status](https://secure.travis-ci.org/doug-martin/extender.png)](http://travis-ci.org/doug-martin/extender) + * # Extender + * + * `extender` is a library that helps in making chainable APIs, by creating a function that accepts different values and returns an object decorated with functions based on the type. + * + * ## Why Is Extender Different? + * + * Extender is different than normal chaining because is does more than return `this`. It decorates your values in a type safe manner. + * + * For example if you return an array from a string based method then the returned value will be decorated with array methods and not the string methods. This allow you as the developer to focus on your API and not worrying about how to properly build and connect your API. + * + * + * ## Installation + * + * ``` + * npm install extender + * ``` + * + * Or [download the source](https://raw.github.com/doug-martin/extender/master/extender.js) ([minified](https://raw.github.com/doug-martin/extender/master/extender-min.js)) + * + * **Note** `extender` depends on [`declare.js`](http://doug-martin.github.com/declare.js/). + * + * ### Requirejs + * + * To use with requirejs place the `extend` source in the root scripts directory + * + * ```javascript + * + * define(["extender"], function(extender){ + * }); + * + * ``` + * + * + * ## Usage + * + * **`extender.define(tester, decorations)`** + * + * To create your own extender call the `extender.define` function. + * + * This function accepts an optional tester which is used to determine a value should be decorated with the specified `decorations` + * + * ```javascript + * function isString(obj) { + * return !isUndefinedOrNull(obj) && (typeof obj === "string" || obj instanceof String); + * } + * + * + * var myExtender = extender.define(isString, { + * multiply: function (str, times) { + * var ret = str; + * for (var i = 1; i < times; i++) { + * ret += str; + * } + * return ret; + * }, + * toArray: function (str, delim) { + * delim = delim || ""; + * return str.split(delim); + * } + * }); + * + * myExtender("hello").multiply(2).value(); //hellohello + * + * ``` + * + * If you do not specify a tester function and just pass in an object of `functions` then all values passed in will be decorated with methods. + * + * ```javascript + * + * function isUndefined(obj) { + * var undef; + * return obj === undef; + * } + * + * function isUndefinedOrNull(obj) { + * var undef; + * return obj === undef || obj === null; + * } + * + * function isArray(obj) { + * return Object.prototype.toString.call(obj) === "[object Array]"; + * } + * + * function isBoolean(obj) { + * var undef, type = typeof obj; + * return !isUndefinedOrNull(obj) && type === "boolean" || type === "Boolean"; + * } + * + * function isString(obj) { + * return !isUndefinedOrNull(obj) && (typeof obj === "string" || obj instanceof String); + * } + * + * var myExtender = extender.define({ + * isUndefined : isUndefined, + * isUndefinedOrNull : isUndefinedOrNull, + * isArray : isArray, + * isBoolean : isBoolean, + * isString : isString + * }); + * + * ``` + * + * To use + * + * ``` + * var undef; + * myExtender("hello").isUndefined().value(); //false + * myExtender(undef).isUndefined().value(); //true + * ``` + * + * You can also chain extenders so that they accept multiple types and decorates accordingly. + * + * ```javascript + * myExtender + * .define(isArray, { + * pluck: function (arr, m) { + * var ret = []; + * for (var i = 0, l = arr.length; i < l; i++) { + * ret.push(arr[i][m]); + * } + * return ret; + * } + * }) + * .define(isBoolean, { + * invert: function (val) { + * return !val; + * } + * }); + * + * myExtender([{a: "a"},{a: "b"},{a: "c"}]).pluck("a").value(); //["a", "b", "c"] + * myExtender("I love javascript!").toArray(/\s+/).pluck("0"); //["I", "l", "j"] + * + * ``` + * + * Notice that we reuse the same extender as defined above. + * + * **Return Values** + * + * When creating an extender if you return a value from one of the decoration functions then that value will also be decorated. If you do not return any values then the extender will be returned. + * + * **Default decoration methods** + * + * By default every value passed into an extender is decorated with the following methods. + * + * * `value` : The value this extender represents. + * * `eq(otherValue)` : Tests strict equality of the currently represented value to the `otherValue` + * * `neq(oterValue)` : Tests strict inequality of the currently represented value. + * * `print` : logs the current value to the console. + * + * **Extender initialization** + * + * When creating an extender you can also specify a constructor which will be invoked with the current value. + * + * ```javascript + * myExtender.define(isString, { + * constructor : function(val){ + * //set our value to the string trimmed + * this._value = val.trimRight().trimLeft(); + * } + * }); + * ``` + * + * **`noWrap`** + * + * `extender` also allows you to specify methods that should not have the value wrapped providing a cleaner exit function other than `value()`. + * + * For example suppose you have an API that allows you to build a validator, rather than forcing the user to invoke the `value` method you could add a method called `validator` which makes more syntactic sense. + * + * ``` + * + * var myValidator = extender.define({ + * //chainable validation methods + * //... + * //end chainable validation methods + * + * noWrap : { + * validator : function(){ + * //return your validator + * } + * } + * }); + * + * myValidator().isNotNull().isEmailAddress().validator(); //now you dont need to call .value() + * + * + * ``` + * **`extender.extend(extendr)`** + * + * You may also compose extenders through the use of `extender.extend(extender)`, which will return an entirely new extender that is the composition of extenders. + * + * Suppose you have the following two extenders. + * + * ```javascript + * var myExtender = extender + * .define({ + * isFunction: is.function, + * isNumber: is.number, + * isString: is.string, + * isDate: is.date, + * isArray: is.array, + * isBoolean: is.boolean, + * isUndefined: is.undefined, + * isDefined: is.defined, + * isUndefinedOrNull: is.undefinedOrNull, + * isNull: is.null, + * isArguments: is.arguments, + * isInstanceOf: is.instanceOf, + * isRegExp: is.regExp + * }); + * var myExtender2 = extender.define(is.array, { + * pluck: function (arr, m) { + * var ret = []; + * for (var i = 0, l = arr.length; i < l; i++) { + * ret.push(arr[i][m]); + * } + * return ret; + * }, + * + * noWrap: { + * pluckPlain: function (arr, m) { + * var ret = []; + * for (var i = 0, l = arr.length; i < l; i++) { + * ret.push(arr[i][m]); + * } + * return ret; + * } + * } + * }); + * + * + * ``` + * + * And you do not want to alter either of them but instead what to create a third that is the union of the two. + * + * + * ```javascript + * var composed = extender.extend(myExtender).extend(myExtender2); + * ``` + * So now you can use the new extender with the joined functionality if `myExtender` and `myExtender2`. + * + * ```javascript + * var extended = composed([ + * {a: "a"}, + * {a: "b"}, + * {a: "c"} + * ]); + * extended.isArray().value(); //true + * extended.pluck("a").value(); // ["a", "b", "c"]); + * + * ``` + * + * **Note** `myExtender` and `myExtender2` will **NOT** be altered. + * + * **`extender.expose(methods)`** + * + * The `expose` method allows you to add methods to your extender that are not wrapped or automatically chained by exposing them on the extender directly. + * + * ``` + * var isMethods = { + * isFunction: is.function, + * isNumber: is.number, + * isString: is.string, + * isDate: is.date, + * isArray: is.array, + * isBoolean: is.boolean, + * isUndefined: is.undefined, + * isDefined: is.defined, + * isUndefinedOrNull: is.undefinedOrNull, + * isNull: is.null, + * isArguments: is.arguments, + * isInstanceOf: is.instanceOf, + * isRegExp: is.regExp + * }; + * + * var myExtender = extender.define(isMethods).expose(isMethods); + * + * myExtender.isArray([]); //true + * myExtender([]).isArray([]).value(); //true + * + * ``` + * + * + * **Using `instanceof`** + * + * When using extenders you can test if a value is an `instanceof` of an extender by using the instanceof operator. + * + * ```javascript + * var str = myExtender("hello"); + * + * str instanceof myExtender; //true + * ``` + * + * ## Examples + * + * To see more examples click [here](https://github.com/doug-martin/extender/tree/master/examples) + */ + function defineExtender(declare) { - docs.forEach(function(doc) { - if (!doc) { - return; - } - const id = utils.getId(doc.contact); - const contactDoc = getContactById(contacts, id); - if (contactDoc) { - doc.contact = deepCopy(contactDoc); - } - if (!utils.validLinkedDocs(doc)) { - return; - } + var slice = Array.prototype.slice, undef; - Object.keys(doc.linked_docs).forEach(key => { - const id = utils.getId(doc.linked_docs[key]); - const contactDoc = getContactById(contacts, id); - if (contactDoc) { - doc.linked_docs[key] = deepCopy(contactDoc); + function indexOf(arr, item) { + if (arr && arr.length) { + for (var i = 0, l = arr.length; i < l; i++) { + if (arr[i] === item) { + return i; + } + } + } + return -1; } - }); - }); - }; - - const fetchContacts = function(lineage) { - const contactIds = getContactIds(lineage); - - // Only fetch docs that are new to us - const lineageContacts = []; - const contactsToFetch = []; - contactIds.forEach(function(id) { - const contact = getContactById(lineage, id); - if (contact) { - lineageContacts.push(deepCopy(contact)); - } else { - contactsToFetch.push(id); - } - }); - - return fetchDocs(contactsToFetch) - .then(function(fetchedContacts) { - return lineageContacts.concat(fetchedContacts); - }); - }; - - const mergeLineagesIntoDoc = function(lineage, contacts, patientLineage, placeLineage) { - const doc = lineage.shift(); - fillParentsInDocs(doc, lineage); - - if (patientLineage && patientLineage.length) { - const patientDoc = patientLineage.shift(); - fillParentsInDocs(patientDoc, patientLineage); - doc.patient = patientDoc; - } - - if (placeLineage && placeLineage.length) { - const placeDoc = placeLineage.shift(); - fillParentsInDocs(placeDoc, placeLineage); - doc.place = placeDoc; - } - - return doc; - }; - - /* - * @returns {Object} subjectMaps - * @returns {Map} subjectMaps.patientUuids - map with [k, v] pairs of [recordUuid, patientUuid] - * @returns {Map} subjectMaps.placeUuids - map with [k, v] pairs of [recordUuid, placeUuid] - */ - const fetchSubjectsUuids = (records) => { - const shortcodes = []; - const recordToPlaceUuidMap = new Map(); - const recordToPatientUuidMap = new Map(); - - records.forEach(record => { - if (!utils.isReport(record)) { - return; - } - - const patientId = utils.getPatientId(record); - const placeId = utils.getPlaceId(record); - recordToPatientUuidMap.set(record._id, patientId); - recordToPlaceUuidMap.set(record._id, placeId); - - shortcodes.push(patientId, placeId); - }); - - if (!shortcodes.some(shortcode => shortcode)) { - return Promise.resolve({ patientUuids: recordToPatientUuidMap, placeUuids: recordToPlaceUuidMap }); - } - return contactUuidByShortcode(shortcodes).then(shortcodeToUuidMap => { - records.forEach(record => { - const patientShortcode = recordToPatientUuidMap.get(record._id); - recordToPatientUuidMap.set(record._id, shortcodeToUuidMap.get(patientShortcode)); - - const placeShortcode = recordToPlaceUuidMap.get(record._id); - recordToPlaceUuidMap.set(record._id, shortcodeToUuidMap.get(placeShortcode)); - }); - - return { patientUuids: recordToPatientUuidMap, placeUuids: recordToPlaceUuidMap }; - }); - }; - - /* - * @returns {Object} lineages - * @returns {Array} lineages.patientLineage - * @returns {Array} lineages.placeLineage - */ - const fetchSubjectLineage = (record) => { - if (!utils.isReport(record)) { - return Promise.resolve({ patientLineage: [], placeLineage: [] }); - } - - const patientId = utils.getPatientId(record); - const placeId = utils.getPlaceId(record); + function isArray(obj) { + return Object.prototype.toString.call(obj) === "[object Array]"; + } - if (!patientId && !placeId) { - return Promise.resolve({ patientLineage: [], placeLineage: [] }); - } + var merge = (function merger() { + function _merge(target, source, exclude) { + var name, s; + for (name in source) { + if (source.hasOwnProperty(name) && indexOf(exclude, name) === -1) { + s = source[name]; + if (!(name in target) || (target[name] !== s)) { + target[name] = s; + } + } + } + return target; + } - return contactUuidByShortcode([patientId, placeId]).then((shortcodeToUuidMap) => { - const patientUuid = shortcodeToUuidMap.get(patientId); - const placeUuid = shortcodeToUuidMap.get(placeId); + return function merge(obj) { + if (!obj) { + obj = {}; + } + var l = arguments.length; + var exclude = arguments[arguments.length - 1]; + if (isArray(exclude)) { + l--; + } else { + exclude = []; + } + for (var i = 1; i < l; i++) { + _merge(obj, arguments[i], exclude); + } + return obj; // Object + }; + }()); - return fetchLineageByIds([patientUuid, placeUuid]).then((lineages) => { - const patientLineage = lineages.find(lineage => lineage[0]._id === patientUuid) || []; - const placeLineage = lineages.find(lineage => lineage[0]._id === placeUuid) || []; - return { patientLineage, placeLineage }; - }); - }); - }; + function extender(supers) { + supers = supers || []; + var Base = declare({ + instance: { + constructor: function (value) { + this._value = value; + }, - /* - * @returns {Map} map with [k, v] pairs of [shortcode, uuid] - */ - const contactUuidByShortcode = function(shortcodes) { - const keys = shortcodes - .filter(shortcode => shortcode) - .map(shortcode => [ 'shortcode', shortcode ]); + value: function () { + return this._value; + }, - return DB.query('medic-client/contacts_by_reference', { keys }) - .then(function(results) { - const findIdWithKey = key => { - const matchingRow = results.rows.find(row => row.key[1] === key); - return matchingRow && matchingRow.id; - }; + eq: function eq(val) { + return this["__extender__"](this._value === val); + }, - return new Map(shortcodes.map(shortcode => ([ shortcode, findIdWithKey(shortcode) || shortcode, ]))); - }); - }; + neq: function neq(other) { + return this["__extender__"](this._value !== other); + }, + print: function () { + console.log(this._value); + return this; + } + } + }), defined = []; - const fetchLineageById = function(id) { - const options = { - startkey: [id], - endkey: [id, {}], - include_docs: true - }; - return DB.query('medic-client/docs_by_id_lineage', options) - .then(function(result) { - return result.rows.map(function(row) { - return row.doc; - }); - }); - }; + function addMethod(proto, name, func) { + if ("function" !== typeof func) { + throw new TypeError("when extending type you must provide a function"); + } + var extendedMethod; + if (name === "constructor") { + extendedMethod = function () { + this._super(arguments); + func.apply(this, arguments); + }; + } else { + extendedMethod = function extendedMethod() { + var args = slice.call(arguments); + args.unshift(this._value); + var ret = func.apply(this, args); + return ret !== undef ? this["__extender__"](ret) : this; + }; + } + proto[name] = extendedMethod; + } - const fetchLineageByIds = function(ids) { - return fetchDocs(ids).then(function(docs) { - return hydrateDocs(docs).then(function(hydratedDocs) { - // Returning a list of docs just like fetchLineageById - const docsList = []; - hydratedDocs.forEach(function(hdoc) { - const docLineage = selfAndParents(hdoc); - docsList.push(docLineage); - }); - return docsList; - }); - }); - }; + function addNoWrapMethod(proto, name, func) { + if ("function" !== typeof func) { + throw new TypeError("when extending type you must provide a function"); + } + var extendedMethod; + if (name === "constructor") { + extendedMethod = function () { + this._super(arguments); + func.apply(this, arguments); + }; + } else { + extendedMethod = function extendedMethod() { + var args = slice.call(arguments); + args.unshift(this._value); + return func.apply(this, args); + }; + } + proto[name] = extendedMethod; + } - const fetchDoc = function(id) { - return DB.get(id) - .catch(function(err) { - if (err.status === 404) { - err.statusCode = 404; - } - throw err; - }); - }; + function decorateProto(proto, decoration, nowrap) { + for (var i in decoration) { + if (decoration.hasOwnProperty(i)) { + if (i !== "getters" && i !== "setters") { + if (i === "noWrap") { + decorateProto(proto, decoration[i], true); + } else if (nowrap) { + addNoWrapMethod(proto, i, decoration[i]); + } else { + addMethod(proto, i, decoration[i]); + } + } else { + proto[i] = decoration[i]; + } + } + } + } - const fetchHydratedDoc = function(id, options = {}, callback = undefined) { - let lineage; - let patientLineage; - let placeLineage; - if (typeof options === 'function') { - callback = options; - options = {}; - } + function _extender(obj) { + var ret = obj, i, l; + if (!(obj instanceof Base)) { + var OurBase = Base; + for (i = 0, l = defined.length; i < l; i++) { + var definer = defined[i]; + if (definer[0](obj)) { + OurBase = OurBase.extend({instance: definer[1]}); + } + } + ret = new OurBase(obj); + ret["__extender__"] = _extender; + } + return ret; + } - _.defaults(options, { - throwWhenMissingLineage: false, - }); + function always() { + return true; + } - return fetchLineageById(id) - .then(function(result) { - lineage = result; + function define(tester, decorate) { + if (arguments.length) { + if (typeof tester === "object") { + decorate = tester; + tester = always; + } + decorate = decorate || {}; + var proto = {}; + decorateProto(proto, decorate); + //handle browsers like which skip over the constructor while looping + if (!proto.hasOwnProperty("constructor")) { + if (decorate.hasOwnProperty("constructor")) { + addMethod(proto, "constructor", decorate.constructor); + } else { + proto.constructor = function () { + this._super(arguments); + }; + } + } + defined.push([tester, proto]); + } + return _extender; + } - if (lineage.length === 0) { - if (options.throwWhenMissingLineage) { - const err = new Error(`Document not found: ${id}`); - err.code = 404; - throw err; - } else { - // Not a doc that has lineage, just do a normal fetch. - return fetchDoc(id); - } - } + function extend(supr) { + if (supr && supr.hasOwnProperty("__defined__")) { + _extender["__defined__"] = defined = defined.concat(supr["__defined__"]); + } + merge(_extender, supr, ["define", "extend", "expose", "__defined__"]); + return _extender; + } - return fetchSubjectLineage(lineage[0]) - .then((lineages = {}) => { - patientLineage = lineages.patientLineage; - placeLineage = lineages.placeLineage; + _extender.define = define; + _extender.extend = extend; + _extender.expose = function expose() { + var methods; + for (var i = 0, l = arguments.length; i < l; i++) { + methods = arguments[i]; + if (typeof methods === "object") { + merge(_extender, methods, ["define", "extend", "expose", "__defined__"]); + } + } + return _extender; + }; + _extender["__defined__"] = defined; - return fetchContacts(lineage.concat(patientLineage, placeLineage)); - }) - .then(function(contacts) { - fillContactsInDocs(lineage, contacts); - fillContactsInDocs(patientLineage, contacts); - fillContactsInDocs(placeLineage, contacts); - return mergeLineagesIntoDoc(lineage, contacts, patientLineage, placeLineage); - }); - }) - .then(function(result) { - if (callback) { - callback(null, result); - } - return result; - }) - .catch(function(err) { - if (callback) { - callback(err); - } else { - throw err; - } - }); - }; - // for data_records, include the first-level contact. - const collectParentIds = function(docs) { - const ids = []; - docs.forEach(function(doc) { - let parent = doc.parent; - if (utils.isReport(doc)) { - const contactId = utils.getId(doc.contact); - if (!contactId) { - return; + return _extender; } - ids.push(contactId); - parent = doc.contact; - } - - ids.push(...extractParentIds(parent)); - }); - return _.uniq(ids); - }; - - // for data_records, doesn't include the first-level contact (it counts as a parent). - const collectLeafContactIds = function(partiallyHydratedDocs) { - const ids = []; - partiallyHydratedDocs.forEach(function(doc) { - const startLineageFrom = utils.isReport(doc) ? doc.contact : doc; - ids.push(...getContactIds(selfAndParents(startLineageFrom))); - }); - - return _.uniq(ids); - }; - const fetchDocs = function(ids) { - if (!ids || !ids.length) { - return Promise.resolve([]); - } - const keys = _.uniq(ids.filter(id => id)); - if (keys.length === 0) { - return Promise.resolve([]); - } + return { + define: function () { + return extender().define.apply(extender, arguments); + }, - return DB.allDocs({ keys, include_docs: true }) - .then(function(results) { - return results.rows - .map(function(row) { - return row.doc; - }) - .filter(function(doc) { - return !!doc; - }); - }); - }; + extend: function (supr) { + return extender().define().extend(supr); + } + }; - const hydrateDocs = function(docs) { - if (!docs.length) { - return Promise.resolve([]); } - const hydratedDocs = deepCopy(docs); // a copy of the original docs which we will incrementally hydrate and return - const knownDocs = [...hydratedDocs]; // an array of all documents which we have fetched + if (true) { + if ( true && module.exports) { + module.exports = defineExtender(__nested_webpack_require_1841029__(/*! declare.js */ "./build/cht-core-4-6/node_modules/declare.js/index.js")); - let patientUuids; // a map of [k, v] pairs with [hydratedDocUuid, patientUuid] - let placeUuids; // a map of [k, v] pairs with [hydratedDocUuid, placeUuid] + } + } else {} - return fetchSubjectsUuids(hydratedDocs) - .then((subjectMaps) => { - placeUuids = subjectMaps.placeUuids; - patientUuids = subjectMaps.patientUuids; +}).call(this); - return fetchDocs([...placeUuids.values(), ...patientUuids.values()]); - }) - .then(subjects => { - knownDocs.push(...subjects); +/***/ }), - const firstRoundIdsToFetch = _.uniq([ - ...collectParentIds(hydratedDocs), - ...collectLeafContactIds(hydratedDocs), +/***/ "./build/cht-core-4-6/node_modules/extender/index.js": +/*!***********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/extender/index.js ***! + \***********************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1859562__) => { - ...collectParentIds(subjects), - ...collectLeafContactIds(subjects), - ]); +module.exports = __nested_webpack_require_1859562__(/*! ./extender.js */ "./build/cht-core-4-6/node_modules/extender/extender.js"); - return fetchDocs(firstRoundIdsToFetch); - }) - .then(function(firstRoundFetched) { - knownDocs.push(...firstRoundFetched); - const secondRoundIdsToFetch = collectLeafContactIds(firstRoundFetched) - .filter(id => !knownDocs.some(doc => doc._id === id)); - return fetchDocs(secondRoundIdsToFetch); - }) - .then(function(secondRoundFetched) { - knownDocs.push(...secondRoundFetched); +/***/ }), - fillContactsInDocs(knownDocs, knownDocs); - hydratedDocs.forEach((doc) => { - const reconstructLineage = (docWithLineage, parents) => { - const parentIds = extractParentIds(docWithLineage); - return parentIds.map(id => { - // how can we use hashmaps? - return getContactById(parents, id); - }); - }; +/***/ "./build/cht-core-4-6/node_modules/function-extended/index.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/function-extended/index.js ***! + \********************************************************************/ +/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_1860059__) { - const isReport = utils.isReport(doc); - const findParentsFor = isReport ? doc.contact : doc; - const lineage = reconstructLineage(findParentsFor, knownDocs); +(function () { + "use strict"; - if (isReport) { - lineage.unshift(doc); - } + function defineFunction(extended, is, args) { - const patientDoc = getContactById(knownDocs, patientUuids.get(doc._id)); - const patientLineage = reconstructLineage(patientDoc, knownDocs); + var isArray = is.isArray, + isObject = is.isObject, + isString = is.isString, + isFunction = is.isFunction, + argsToArray = args.argsToArray; - const placeDoc = getContactById(knownDocs, placeUuids.get(doc._id)); - const placeLineage = reconstructLineage(placeDoc, knownDocs); + function spreadArgs(f, args, scope) { + var ret; + switch ((args || []).length) { + case 0: + ret = f.call(scope); + break; + case 1: + ret = f.call(scope, args[0]); + break; + case 2: + ret = f.call(scope, args[0], args[1]); + break; + case 3: + ret = f.call(scope, args[0], args[1], args[2]); + break; + default: + ret = f.apply(scope, args); + } + return ret; + } - mergeLineagesIntoDoc(lineage, knownDocs, patientLineage, placeLineage); - }); + function hitch(scope, method, args) { + args = argsToArray(arguments, 2); + if ((isString(method) && !(method in scope))) { + throw new Error(method + " property not defined in scope"); + } else if (!isString(method) && !isFunction(method)) { + throw new Error(method + " is not a function"); + } + if (isString(method)) { + return function () { + var func = scope[method]; + if (isFunction(func)) { + return spreadArgs(func, args.concat(argsToArray(arguments)), scope); + } else { + return func; + } + }; + } else { + if (args.length) { + return function () { + return spreadArgs(method, args.concat(argsToArray(arguments)), scope); + }; + } else { - return hydratedDocs; - }); - }; + return function () { + return spreadArgs(method, arguments, scope); + }; + } + } + } - const fetchHydratedDocs = docIds => { - if (!Array.isArray(docIds)) { - return Promise.reject(new Error('Invalid parameter: "docIds" must be an array')); - } - if (!docIds.length) { - return Promise.resolve([]); - } + function applyFirst(method, args) { + args = argsToArray(arguments, 1); + if (!isString(method) && !isFunction(method)) { + throw new Error(method + " must be the name of a property or function to execute"); + } + if (isString(method)) { + return function () { + var scopeArgs = argsToArray(arguments), scope = scopeArgs.shift(); + var func = scope[method]; + if (isFunction(func)) { + scopeArgs = args.concat(scopeArgs); + return spreadArgs(func, scopeArgs, scope); + } else { + return func; + } + }; + } else { + return function () { + var scopeArgs = argsToArray(arguments), scope = scopeArgs.shift(); + scopeArgs = args.concat(scopeArgs); + return spreadArgs(method, scopeArgs, scope); + }; + } + } - if (docIds.length === 1) { - return fetchHydratedDoc(docIds[0]) - .then(doc => [doc]) - .catch(err => { - if (err.status === 404) { - return []; - } - throw err; - }); - } + function hitchIgnore(scope, method, args) { + args = argsToArray(arguments, 2); + if ((isString(method) && !(method in scope))) { + throw new Error(method + " property not defined in scope"); + } else if (!isString(method) && !isFunction(method)) { + throw new Error(method + " is not a function"); + } + if (isString(method)) { + return function () { + var func = scope[method]; + if (isFunction(func)) { + return spreadArgs(func, args, scope); + } else { + return func; + } + }; + } else { + return function () { + return spreadArgs(method, args, scope); + }; + } + } - return DB - .allDocs({ keys: docIds, include_docs: true }) - .then(result => { - const docs = result.rows.map(row => row.doc).filter(doc => doc); - return hydrateDocs(docs); - }); - }; - return { - /** - * Given a doc id get a doc and all parents, contact (and parents) and patient (and parents) and place (and parents) - * @param {String} id The id of the doc to fetch and hydrate - * @param {Object} [options] Options for the behavior of the hydration - * @param {Boolean} [options.throwWhenMissingLineage=false] When true, throw if the doc has nothing to hydrate. - * When false, does a best effort to return the document regardless of content. - * @returns {Promise} A promise to return the hydrated doc. - */ - fetchHydratedDoc: (id, options, callback) => fetchHydratedDoc(id, options, callback), + function hitchAll(scope) { + var funcs = argsToArray(arguments, 1); + if (!isObject(scope) && !isFunction(scope)) { + throw new TypeError("scope must be an object"); + } + if (funcs.length === 1 && isArray(funcs[0])) { + funcs = funcs[0]; + } + if (!funcs.length) { + funcs = []; + for (var k in scope) { + if (scope.hasOwnProperty(k) && isFunction(scope[k])) { + funcs.push(k); + } + } + } + for (var i = 0, l = funcs.length; i < l; i++) { + scope[funcs[i]] = hitch(scope, scope[funcs[i]]); + } + return scope; + } - /** - * Given an array of ids, returns hydrated versions of every requested doc (using hydrateDocs or fetchHydratedDoc) - * If a doc is not found, it's simply excluded from the results list - * @param {Object[]} docs The array of docs to hydrate - * @returns {Promise} A promise to return the hydrated docs - */ - fetchHydratedDocs: docIds => fetchHydratedDocs(docIds), - /** - * Given an array of docs bind the parents, contact (and parents) and patient (and parents) and place (and parents) - * @param {Object[]} docs The array of docs to hydrate - * @returns {Promise} - */ - hydrateDocs: docs => hydrateDocs(docs), + function partial(method, args) { + args = argsToArray(arguments, 1); + if (!isString(method) && !isFunction(method)) { + throw new Error(method + " must be the name of a property or function to execute"); + } + if (isString(method)) { + return function () { + var func = this[method]; + if (isFunction(func)) { + var scopeArgs = args.concat(argsToArray(arguments)); + return spreadArgs(func, scopeArgs, this); + } else { + return func; + } + }; + } else { + return function () { + var scopeArgs = args.concat(argsToArray(arguments)); + return spreadArgs(method, scopeArgs, this); + }; + } + } - fetchLineageById, - fetchLineageByIds, - fillContactsInDocs, - fillParentsInDocs, - fetchContacts, - }; -}; + function curryFunc(f, execute) { + return function () { + var args = argsToArray(arguments); + return execute ? spreadArgs(f, arguments, this) : function () { + return spreadArgs(f, args.concat(argsToArray(arguments)), this); + }; + }; + } -/***/ }), + function curry(depth, cb, scope) { + var f; + if (scope) { + f = hitch(scope, cb); + } else { + f = cb; + } + if (depth) { + var len = depth - 1; + for (var i = len; i >= 0; i--) { + f = curryFunc(f, i === len); + } + } + return f; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/lineage/src/index.js": -/*!********************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/lineage/src/index.js ***! - \********************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + return extended + .define(isObject, { + bind: hitch, + bindAll: hitchAll, + bindIgnore: hitchIgnore, + curry: function (scope, depth, fn) { + return curry(depth, fn, scope); + } + }) + .define(isFunction, { + bind: function (fn, obj) { + return spreadArgs(hitch, [obj, fn].concat(argsToArray(arguments, 2)), this); + }, + bindIgnore: function (fn, obj) { + return spreadArgs(hitchIgnore, [obj, fn].concat(argsToArray(arguments, 2)), this); + }, + partial: partial, + applyFirst: applyFirst, + curry: function (fn, num, scope) { + return curry(num, fn, scope); + }, + noWrap: { + f: function () { + return this.value(); + } + } + }) + .define(isString, { + bind: function (str, scope) { + return hitch(scope, str); + }, + bindIgnore: function (str, scope) { + return hitchIgnore(scope, str); + }, + partial: partial, + applyFirst: applyFirst, + curry: function (fn, depth, scope) { + return curry(depth, fn, scope); + } + }) + .expose({ + bind: hitch, + bindAll: hitchAll, + bindIgnore: hitchIgnore, + partial: partial, + applyFirst: applyFirst, + curry: curry + }); -/** - * @module lineage - */ -module.exports = (Promise, DB) => Object.assign( - {}, - __webpack_require__(/*! ./hydration */ "./node_modules/cht-core-4-0/shared-libs/lineage/src/hydration.js")(Promise, DB), - __webpack_require__(/*! ./minify */ "./node_modules/cht-core-4-0/shared-libs/lineage/src/minify.js") -); + } + if (true) { + if ( true && module.exports) { + module.exports = defineFunction(__nested_webpack_require_1860059__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js"), __nested_webpack_require_1860059__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js"), __nested_webpack_require_1860059__(/*! arguments-extended */ "./build/cht-core-4-6/node_modules/arguments-extended/index.js")); -/***/ }), + } + } else {} -/***/ "./node_modules/cht-core-4-0/shared-libs/lineage/src/minify.js": -/*!*********************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/lineage/src/minify.js ***! - \*********************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +}).call(this); -const utils = __webpack_require__(/*! ./utils */ "./node_modules/cht-core-4-0/shared-libs/lineage/src/utils.js"); -const RECURSION_LIMIT = 50; -// Minifies things you would attach to another doc: -// doc.parent = minify(doc.parent) -// Not: -// minify(doc) -const minifyLineage = (parent) => { - if (!parent || !parent._id) { - return parent; - } - const docId = parent._id; - const result = { _id: parent._id }; - let minified = result; - for (let guard = RECURSION_LIMIT; parent.parent && parent.parent._id; --guard) { - if (guard === 0) { - throw Error(`Could not minify ${docId}, possible parent recursion.`); - } - minified.parent = { _id: parent.parent._id }; - minified = minified.parent; - parent = parent.parent; - } - return result; -}; -/** - * Remove all hyrdrated items and leave just the ids - * @param {Object} doc The doc to minify - */ -const minify = (doc) => { - if (!doc) { - return; - } - if (doc.parent) { - doc.parent = minifyLineage(doc.parent); - } - if (doc.contact && doc.contact._id) { - const miniContact = { _id: doc.contact._id }; - if (doc.contact.parent) { - miniContact.parent = minifyLineage(doc.contact.parent); - } - doc.contact = miniContact; - } - if (doc.type === 'data_record') { - delete doc.patient; - delete doc.place; - } - if (utils.validLinkedDocs(doc)) { - Object.keys(doc.linked_docs).forEach(key => { - doc.linked_docs[key] = utils.getId(doc.linked_docs[key]); - }); - } -}; -module.exports = { - minify, - minifyLineage, -}; +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/ht/index.js": +/*!*****************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/ht/index.js ***! + \*****************************************************/ +/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_1868970__) { -/***/ }), +(function () { + "use strict"; -/***/ "./node_modules/cht-core-4-0/shared-libs/lineage/src/utils.js": -/*!********************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/lineage/src/utils.js ***! - \********************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + function defineHt(_) { -const contactTypeUtils = __webpack_require__(/*! @medic/contact-types-utils */ "./node_modules/cht-core-4-0/shared-libs/contact-types-utils/src/index.js"); -const _ = __webpack_require__(/*! lodash/core */ "./node_modules/lodash/core.js"); -const isContact = doc => { - if (!doc) { - return; - } + var hashFunction = function (key) { + if (typeof key === "string") { + return key; + } else if (typeof key === "object") { + return key.hashCode ? key.hashCode() : "" + key; + } else { + return "" + key; + } + }; - return doc.type === 'contact' || contactTypeUtils.HARDCODED_TYPES.includes(doc.type); -}; + var Bucket = _.declare({ -const getId = (item) => item && (typeof item === 'string' ? item : item._id); + instance: { -// don't process linked docs for non-contact types -// linked_docs property should be a key-value object -const validLinkedDocs = doc => { - return isContact(doc) && _.isObject(doc.linked_docs) && !_.isArray(doc.linked_docs); -}; + constructor: function () { + this.__entries = []; + this.__keys = []; + this.__values = []; + }, -const isReport = (doc) => doc.type === 'data_record'; -const getPatientId = (doc) => (doc.fields && (doc.fields.patient_id || doc.fields.patient_uuid)) || doc.patient_id; -const getPlaceId = (doc) => (doc.fields && doc.fields.place_id) || doc.place_id; + pushValue: function (key, value) { + this.__keys.push(key); + this.__values.push(value); + this.__entries.push({key: key, value: value}); + return value; + }, + + remove: function (key) { + var ret = null, map = this.__entries, val, keys = this.__keys, vals = this.__values; + var i = map.length - 1; + for (; i >= 0; i--) { + if (!!(val = map[i]) && val.key === key) { + map.splice(i, 1); + keys.splice(i, 1); + vals.splice(i, 1); + return val.value; + } + } + return ret; + }, + "set": function (key, value) { + var ret = null, map = this.__entries, vals = this.__values; + var i = map.length - 1; + for (; i >= 0; i--) { + var val = map[i]; + if (val && key === val.key) { + vals[i] = value; + val.value = value; + ret = value; + break; + } + } + if (!ret) { + map.push({key: key, value: value}); + } + return ret; + }, -module.exports = { - getId, - validLinkedDocs, - isReport, - getPatientId, - getPlaceId, -}; + find: function (key) { + var ret = null, map = this.__entries, val; + var i = map.length - 1; + for (; i >= 0; i--) { + val = map[i]; + if (val && key === val.key) { + ret = val.value; + break; + } + } + return ret; + }, + getEntrySet: function () { + return this.__entries; + }, -/***/ }), + getKeys: function () { + return this.__keys; + }, -/***/ "./node_modules/cht-core-4-0/shared-libs/registration-utils/src/index.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/registration-utils/src/index.js ***! - \*******************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + getValues: function (arr) { + return this.__values; + } + } + }); -const uniq = __webpack_require__(/*! lodash/uniq */ "./node_modules/lodash/uniq.js"); + return _.declare({ -const formCodeMatches = (conf, form) => { - return (new RegExp('^[^a-z]*' + conf + '[^a-z]*$', 'i')).test(form); -}; + instance: { -// Returns whether `doc` is a valid registration against a configuration -// This is done by checks roughly similar to the `registration` transition filter function -// Serves as a replacement for checking for `transitions` metadata within the doc itself -exports.isValidRegistration = (doc, settings) => { - if (!doc || - (doc.errors && doc.errors.length) || - !settings || - !settings.registrations || - doc.type !== 'data_record' || - !doc.form) { - return false; - } + constructor: function () { + this.__map = {}; + }, - // Registration transition should be configured for this form - const registrationConfiguration = settings.registrations.find((conf) => { - return conf && - conf.form && - formCodeMatches(conf.form, doc.form); - }); - if (!registrationConfiguration) { - return false; - } + entrySet: function () { + var ret = [], map = this.__map; + for (var i in map) { + if (map.hasOwnProperty(i)) { + ret = ret.concat(map[i].getEntrySet()); + } + } + return ret; + }, - if (doc.content_type === 'xml') { - return true; - } + put: function (key, value) { + var hash = hashFunction(key); + var bucket = null; + if (!(bucket = this.__map[hash])) { + bucket = (this.__map[hash] = new Bucket()); + } + bucket.pushValue(key, value); + return value; + }, - // SMS forms need to be configured - const form = settings.forms && settings.forms[doc.form]; - if (!form) { - return false; - } + remove: function (key) { + var hash = hashFunction(key), ret = null; + var bucket = this.__map[hash]; + if (bucket) { + ret = bucket.remove(key); + } + return ret; + }, - // Require a known submitter or the form to be public. - return Boolean(form.public_form || doc.contact); -}; + "get": function (key) { + var hash = hashFunction(key), ret = null, bucket; + if (!!(bucket = this.__map[hash])) { + ret = bucket.find(key); + } + return ret; + }, -exports._formCodeMatches = formCodeMatches; + "set": function (key, value) { + var hash = hashFunction(key), ret = null, bucket = null, map = this.__map; + if (!!(bucket = map[hash])) { + ret = bucket.set(key, value); + } else { + ret = (map[hash] = new Bucket()).pushValue(key, value); + } + return ret; + }, -const CONTACT_SUBJECT_PROPERTIES = ['_id', 'patient_id', 'place_id']; -const REPORT_SUBJECT_PROPERTIES = ['patient_id', 'patient_uuid', 'place_id', 'place_uuid']; + contains: function (key) { + var hash = hashFunction(key), ret = false, bucket = null; + if (!!(bucket = this.__map[hash])) { + ret = !!(bucket.find(key)); + } + return ret; + }, -exports.getSubjectIds = (doc) => { - const subjectIds = []; + concat: function (hashTable) { + if (hashTable instanceof this._static) { + var ret = new this._static(); + var otherEntrySet = hashTable.entrySet().concat(this.entrySet()); + for (var i = otherEntrySet.length - 1; i >= 0; i--) { + var e = otherEntrySet[i]; + ret.put(e.key, e.value); + } + return ret; + } else { + throw new TypeError("When joining hashtables the joining arg must be a HashTable"); + } + }, - if (!doc) { - return subjectIds; - } + filter: function (cb, scope) { + var es = this.entrySet(), ret = new this._static(); + es = _.filter(es, cb, scope); + for (var i = es.length - 1; i >= 0; i--) { + var e = es[i]; + ret.put(e.key, e.value); + } + return ret; + }, - if (doc.type === 'data_record') { - REPORT_SUBJECT_PROPERTIES.forEach(prop => { - if (doc[prop]) { - subjectIds.push(doc[prop]); - } - if (doc.fields && doc.fields[prop]) { - subjectIds.push(doc.fields[prop]); - } - }); - } else { - CONTACT_SUBJECT_PROPERTIES.forEach(prop => { - if (doc[prop]) { - subjectIds.push(doc[prop]); - } - }); - } + forEach: function (cb, scope) { + var es = this.entrySet(); + _.forEach(es, cb, scope); + }, - return uniq(subjectIds); -}; + every: function (cb, scope) { + var es = this.entrySet(); + return _.every(es, cb, scope); + }, -exports.getSubjectId = report => { - if (!report) { - return false; - } - for (const prop of REPORT_SUBJECT_PROPERTIES) { - if (report[prop]) { - return report[prop]; - } - if (report.fields && report.fields[prop]) { - return report.fields[prop]; - } - } -}; + map: function (cb, scope) { + var es = this.entrySet(); + return _.map(es, cb, scope); + }, + some: function (cb, scope) { + var es = this.entrySet(); + return _.some(es, cb, scope); + }, -/***/ }), + reduce: function (cb, scope) { + var es = this.entrySet(); + return _.reduce(es, cb, scope); + }, -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/arguments-extended/index.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/arguments-extended/index.js ***! - \*****************************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + reduceRight: function (cb, scope) { + var es = this.entrySet(); + return _.reduceRight(es, cb, scope); + }, -(function () { - "use strict"; + clear: function () { + this.__map = {}; + }, - function defineArgumentsExtended(extended, is) { + keys: function () { + var ret = [], map = this.__map; + for (var i in map) { + //if (map.hasOwnProperty(i)) { + ret = ret.concat(map[i].getKeys()); + //} + } + return ret; + }, - var pSlice = Array.prototype.slice, - isArguments = is.isArguments; + values: function () { + var ret = [], map = this.__map; + for (var i in map) { + //if (map.hasOwnProperty(i)) { + ret = ret.concat(map[i].getValues()); + //} + } + return ret; + }, - function argsToArray(args, slice) { - var i = -1, j = 0, l = args.length, ret = []; - slice = slice || 0; - i += slice; - while (++i < l) { - ret[j++] = args[i]; + isEmpty: function () { + return this.keys().length === 0; + } } - return ret; - } + + }); - return extended - .define(isArguments, { - toArray: argsToArray - }) - .expose({ - argsToArray: argsToArray - }); } if (true) { - if ( true && module.exports) { - module.exports = defineArgumentsExtended(__webpack_require__(/*! extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extended/index.js"), __webpack_require__(/*! is-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/is-extended/index.js")); + if ( true && module.exports) { + module.exports = defineHt(__nested_webpack_require_1868970__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js")().register("declare", __nested_webpack_require_1868970__(/*! declare.js */ "./build/cht-core-4-6/node_modules/declare.js/index.js")).register(__nested_webpack_require_1868970__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js")).register(__nested_webpack_require_1868970__(/*! array-extended */ "./build/cht-core-4-6/node_modules/array-extended/index.js"))); } } else {} @@ -47622,8591 +52911,9231 @@ exports.getSubjectId = report => { -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/array-extended/index.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/array-extended/index.js ***! - \*************************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -(function () { - "use strict"; - /*global define*/ - - function defineArray(extended, is, args) { - - var isString = is.isString, - isArray = Array.isArray || is.isArray, - isDate = is.isDate, - floor = Math.floor, - abs = Math.abs, - mathMax = Math.max, - mathMin = Math.min, - arrayProto = Array.prototype, - arrayIndexOf = arrayProto.indexOf, - arrayForEach = arrayProto.forEach, - arrayMap = arrayProto.map, - arrayReduce = arrayProto.reduce, - arrayReduceRight = arrayProto.reduceRight, - arrayFilter = arrayProto.filter, - arrayEvery = arrayProto.every, - arraySome = arrayProto.some, - argsToArray = args.argsToArray; - function cross(num, cros) { - return reduceRight(cros, function (a, b) { - if (!isArray(b)) { - b = [b]; - } - b.unshift(num); - a.unshift(b); - return a; - }, []); - } - function permute(num, cross, length) { - var ret = []; - for (var i = 0; i < cross.length; i++) { - ret.push([num].concat(rotate(cross, i)).slice(0, length)); - } - return ret; - } - function intersection(a, b) { - var ret = [], aOne, i = -1, l; - l = a.length; - while (++i < l) { - aOne = a[i]; - if (indexOf(b, aOne) !== -1) { - ret.push(aOne); - } - } - return ret; - } +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/is-buffer/index.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/is-buffer/index.js ***! + \************************************************************/ +/***/ ((module) => { - var _sort = (function () { +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ - var isAll = function (arr, test) { - return every(arr, test); - }; +// The _isBuffer check is for Safari 5-7 support, because it's missing +// Object.prototype.constructor. Remove this eventually +module.exports = function (obj) { + return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) +} - var defaultCmp = function (a, b) { - return a - b; - }; +function isBuffer (obj) { + return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) +} - var dateSort = function (a, b) { - return a.getTime() - b.getTime(); - }; +// For Node v0.10 support. Remove this eventually. +function isSlowBuffer (obj) { + return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) +} - return function _sort(arr, property) { - var ret = []; - if (isArray(arr)) { - ret = arr.slice(); - if (property) { - if (typeof property === "function") { - ret.sort(property); - } else { - ret.sort(function (a, b) { - var aProp = a[property], bProp = b[property]; - if (isString(aProp) && isString(bProp)) { - return aProp > bProp ? 1 : aProp < bProp ? -1 : 0; - } else if (isDate(aProp) && isDate(bProp)) { - return aProp.getTime() - bProp.getTime(); - } else { - return aProp - bProp; - } - }); - } - } else { - if (isAll(ret, isString)) { - ret.sort(); - } else if (isAll(ret, isDate)) { - ret.sort(dateSort); - } else { - ret.sort(defaultCmp); - } - } - } - return ret; - }; - })(); +/***/ }), - function indexOf(arr, searchElement, from) { - var index = (from || 0) - 1, - length = arr.length; - while (++index < length) { - if (arr[index] === searchElement) { - return index; - } - } - return -1; - } +/***/ "./build/cht-core-4-6/node_modules/is-extended/index.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/is-extended/index.js ***! + \**************************************************************/ +/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_1879052__) { - function lastIndexOf(arr, searchElement, from) { - if (!isArray(arr)) { - throw new TypeError(); - } +(function () { + "use strict"; - var t = Object(arr); - var len = t.length >>> 0; - if (len === 0) { - return -1; - } + function defineIsa(extended) { - var n = len; - if (arguments.length > 2) { - n = Number(arguments[2]); - if (n !== n) { - n = 0; - } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) { - n = (n > 0 || -1) * floor(abs(n)); - } - } + var pSlice = Array.prototype.slice; - var k = n >= 0 ? mathMin(n, len - 1) : len - abs(n); + var hasOwn = Object.prototype.hasOwnProperty; + var toStr = Object.prototype.toString; - for (; k >= 0; k--) { - if (k in t && t[k] === searchElement) { - return k; - } + function argsToArray(args, slice) { + var i = -1, j = 0, l = args.length, ret = []; + slice = slice || 0; + i += slice; + while (++i < l) { + ret[j++] = args[i]; } - return -1; + return ret; } - function filter(arr, iterator, scope) { - if (arr && arrayFilter && arrayFilter === arr.filter) { - return arr.filter(iterator, scope); - } - if (!isArray(arr) || typeof iterator !== "function") { - throw new TypeError(); - } - - var t = Object(arr); - var len = t.length >>> 0; - var res = []; - for (var i = 0; i < len; i++) { - if (i in t) { - var val = t[i]; // in case fun mutates this - if (iterator.call(scope, val, i, t)) { - res.push(val); - } + function keys(obj) { + var ret = []; + for (var i in obj) { + if (hasOwn.call(obj, i)) { + ret.push(i); } } - return res; + return ret; } - function forEach(arr, iterator, scope) { - if (!isArray(arr) || typeof iterator !== "function") { - throw new TypeError(); - } - if (arr && arrayForEach && arrayForEach === arr.forEach) { - arr.forEach(iterator, scope); - return arr; - } - for (var i = 0, len = arr.length; i < len; ++i) { - iterator.call(scope || arr, arr[i], i, arr); - } - - return arr; - } + //taken from node js assert.js + //https://github.com/joyent/node/blob/master/lib/assert.js + function deepEqual(actual, expected) { + // 7.1. All identical values are equivalent, as determined by ===. + if (actual === expected) { + return true; - function every(arr, iterator, scope) { - if (arr && arrayEvery && arrayEvery === arr.every) { - return arr.every(iterator, scope); - } - if (!isArray(arr) || typeof iterator !== "function") { - throw new TypeError(); - } - var t = Object(arr); - var len = t.length >>> 0; - for (var i = 0; i < len; i++) { - if (i in t && !iterator.call(scope, t[i], i, t)) { + } else if (typeof Buffer !== "undefined" && Buffer.isBuffer(actual) && Buffer.isBuffer(expected)) { + if (actual.length !== expected.length) { return false; } - } - return true; - } - - function some(arr, iterator, scope) { - if (arr && arraySome && arraySome === arr.some) { - return arr.some(iterator, scope); - } - if (!isArray(arr) || typeof iterator !== "function") { - throw new TypeError(); - } - var t = Object(arr); - var len = t.length >>> 0; - for (var i = 0; i < len; i++) { - if (i in t && iterator.call(scope, t[i], i, t)) { - return true; + for (var i = 0; i < actual.length; i++) { + if (actual[i] !== expected[i]) { + return false; + } } - } - return false; - } + return true; - function map(arr, iterator, scope) { - if (arr && arrayMap && arrayMap === arr.map) { - return arr.map(iterator, scope); - } - if (!isArray(arr) || typeof iterator !== "function") { - throw new TypeError(); - } + // 7.2. If the expected value is a Date object, the actual value is + // equivalent if it is also a Date object that refers to the same time. + } else if (isDate(actual) && isDate(expected)) { + return actual.getTime() === expected.getTime(); + + // 7.3 If the expected value is a RegExp object, the actual value is + // equivalent if it is also a RegExp object with the same source and + // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`). + } else if (isRegExp(actual) && isRegExp(expected)) { + return actual.source === expected.source && + actual.global === expected.global && + actual.multiline === expected.multiline && + actual.lastIndex === expected.lastIndex && + actual.ignoreCase === expected.ignoreCase; + + // 7.4. Other pairs that do not both pass typeof value == 'object', + // equivalence is determined by ==. + } else if (isString(actual) && isString(expected) && actual !== expected) { + return false; + } else if (typeof actual !== 'object' && typeof expected !== 'object') { + return actual === expected; - var t = Object(arr); - var len = t.length >>> 0; - var res = []; - for (var i = 0; i < len; i++) { - if (i in t) { - res.push(iterator.call(scope, t[i], i, t)); - } + // 7.5 For all other Object pairs, including Array objects, equivalence is + // determined by having the same number of owned properties (as verified + // with Object.prototype.hasOwnProperty.call), the same set of keys + // (although not necessarily the same order), equivalent values for every + // corresponding key, and an identical 'prototype' property. Note: this + // accounts for both named and indexed properties on Arrays. + } else { + return objEquiv(actual, expected); } - return res; } - function reduce(arr, accumulator, curr) { - var initial = arguments.length > 2; - if (arr && arrayReduce && arrayReduce === arr.reduce) { - return initial ? arr.reduce(accumulator, curr) : arr.reduce(accumulator); + + function objEquiv(a, b) { + var key; + if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) { + return false; } - if (!isArray(arr) || typeof accumulator !== "function") { - throw new TypeError(); + // an identical 'prototype' property. + if (a.prototype !== b.prototype) { + return false; } - var i = 0, l = arr.length >> 0; - if (arguments.length < 3) { - if (l === 0) { - throw new TypeError("Array length is 0 and no second argument"); + //~~~I've managed to break Object.keys through screwy arguments passing. + // Converting to array solves the problem. + if (isArguments(a)) { + if (!isArguments(b)) { + return false; } - curr = arr[0]; - i = 1; // start accumulating at the second element - } else { - curr = arguments[2]; + a = pSlice.call(a); + b = pSlice.call(b); + return deepEqual(a, b); } - while (i < l) { - if (i in arr) { - curr = accumulator.call(undefined, curr, arr[i], i, arr); + try { + var ka = keys(a), + kb = keys(b), + i; + // having the same number of owned properties (keys incorporates + // hasOwnProperty) + if (ka.length !== kb.length) { + return false; } - ++i; - } - return curr; - } - - function reduceRight(arr, accumulator, curr) { - var initial = arguments.length > 2; - if (arr && arrayReduceRight && arrayReduceRight === arr.reduceRight) { - return initial ? arr.reduceRight(accumulator, curr) : arr.reduceRight(accumulator); - } - if (!isArray(arr) || typeof accumulator !== "function") { - throw new TypeError(); - } - - var t = Object(arr); - var len = t.length >>> 0; - - // no value to return if no initial value, empty array - if (len === 0 && arguments.length === 2) { - throw new TypeError(); - } - - var k = len - 1; - if (arguments.length >= 3) { - curr = arguments[2]; - } else { - do { - if (k in arr) { - curr = arr[k--]; - break; + //the same set of keys (although not necessarily the same order), + ka.sort(); + kb.sort(); + //~~~cheap key test + for (i = ka.length - 1; i >= 0; i--) { + if (ka[i] !== kb[i]) { + return false; } } - while (true); - } - while (k >= 0) { - if (k in t) { - curr = accumulator.call(undefined, curr, t[k], k, t); + //equivalent values for every corresponding key, and + //~~~possibly expensive deep test + for (i = ka.length - 1; i >= 0; i--) { + key = ka[i]; + if (!deepEqual(a[key], b[key])) { + return false; + } } - k--; + } catch (e) {//happens when one is a string literal and the other isn't + return false; } - return curr; + return true; } - function toArray(o) { - var ret = []; - if (o !== null) { - var args = argsToArray(arguments); - if (args.length === 1) { - if (isArray(o)) { - ret = o; - } else if (is.isHash(o)) { - for (var i in o) { - if (o.hasOwnProperty(i)) { - ret.push([i, o[i]]); - } - } - } else { - ret.push(o); - } - } else { - forEach(args, function (a) { - ret = ret.concat(toArray(a)); - }); - } - } - return ret; + var isFunction = function (obj) { + return toStr.call(obj) === '[object Function]'; + }; + + //ie hack + if ("undefined" !== typeof window && !isFunction(window.alert)) { + (function (alert) { + isFunction = function (obj) { + return toStr.call(obj) === '[object Function]' || obj === alert; + }; + }(window.alert)); } - function sum(array) { - array = array || []; - if (array.length) { - return reduce(array, function (a, b) { - return a + b; - }); - } else { - return 0; - } + function isObject(obj) { + var undef; + return obj !== null && typeof obj === "object"; } - function avg(arr) { - arr = arr || []; - if (arr.length) { - var total = sum(arr); - if (is.isNumber(total)) { - return total / arr.length; - } else { - throw new Error("Cannot average an array of non numbers."); - } - } else { - return 0; + function isHash(obj) { + var ret = isObject(obj); + return ret && obj.constructor === Object && !obj.nodeType && !obj.setInterval; + } + + function isEmpty(object) { + if (isArguments(object)) { + return object.length === 0; + } else if (isObject(object)) { + return keys(object).length === 0; + } else if (isString(object) || isArray(object)) { + return object.length === 0; } + return true; } - function sort(arr, cmp) { - return _sort(arr, cmp); + function isBoolean(obj) { + return obj === true || obj === false || toStr.call(obj) === "[object Boolean]"; } - function min(arr, cmp) { - return _sort(arr, cmp)[0]; + function isUndefined(obj) { + return typeof obj === 'undefined'; } - function max(arr, cmp) { - return _sort(arr, cmp)[arr.length - 1]; + function isDefined(obj) { + return !isUndefined(obj); } - function difference(arr1) { - var ret = arr1, args = flatten(argsToArray(arguments, 1)); - if (isArray(arr1)) { - ret = filter(arr1, function (a) { - return indexOf(args, a) === -1; - }); - } - return ret; + function isUndefinedOrNull(obj) { + return isUndefined(obj) || isNull(obj); } - function removeDuplicates(arr) { - var ret = [], i = -1, l, retLength = 0; - if (arr) { - l = arr.length; - while (++i < l) { - var item = arr[i]; - if (indexOf(ret, item) === -1) { - ret[retLength++] = item; - } - } - } - return ret; + function isNull(obj) { + return obj === null; } - function unique(arr) { - return removeDuplicates(arr); + var isArguments = function _isArguments(object) { + return toStr.call(object) === '[object Arguments]'; + }; + + if (!isArguments(arguments)) { + isArguments = function _isArguments(obj) { + return !!(obj && hasOwn.call(obj, "callee")); + }; } - function rotate(arr, numberOfTimes) { - var ret = arr.slice(); - if (typeof numberOfTimes !== "number") { - numberOfTimes = 1; - } - if (numberOfTimes && isArray(arr)) { - if (numberOfTimes > 0) { - ret.push(ret.shift()); - numberOfTimes--; - } else { - ret.unshift(ret.pop()); - numberOfTimes++; - } - return rotate(ret, numberOfTimes); + function isInstanceOf(obj, clazz) { + if (isFunction(clazz)) { + return obj instanceof clazz; } else { - return ret; + return false; } } - function permutations(arr, length) { - var ret = []; - if (isArray(arr)) { - var copy = arr.slice(0); - if (typeof length !== "number") { - length = arr.length; - } - if (!length) { - ret = [ - [] - ]; - } else if (length <= arr.length) { - ret = reduce(arr, function (a, b, i) { - var ret; - if (length > 1) { - ret = permute(b, rotate(copy, i).slice(1), length); - } else { - ret = [ - [b] - ]; - } - return a.concat(ret); - }, []); - } - } - return ret; + function isRegExp(obj) { + return toStr.call(obj) === '[object RegExp]'; } - function zip() { - var ret = []; - var arrs = argsToArray(arguments); - if (arrs.length > 1) { - var arr1 = arrs.shift(); - if (isArray(arr1)) { - ret = reduce(arr1, function (a, b, i) { - var curr = [b]; - for (var j = 0; j < arrs.length; j++) { - var currArr = arrs[j]; - if (isArray(currArr) && !is.isUndefined(currArr[i])) { - curr.push(currArr[i]); - } else { - curr.push(null); - } - } - a.push(curr); - return a; - }, []); - } - } - return ret; - } + var isArray = Array.isArray || function isArray(obj) { + return toStr.call(obj) === "[object Array]"; + }; - function transpose(arr) { - var ret = []; - if (isArray(arr) && arr.length) { - var last; - forEach(arr, function (a) { - if (isArray(a) && (!last || a.length === last.length)) { - forEach(a, function (b, i) { - if (!ret[i]) { - ret[i] = []; - } - ret[i].push(b); - }); - last = a; - } - }); - } - return ret; + function isDate(obj) { + return toStr.call(obj) === '[object Date]'; } - function valuesAt(arr, indexes) { - var ret = []; - indexes = argsToArray(arguments); - arr = indexes.shift(); - if (isArray(arr) && indexes.length) { - for (var i = 0, l = indexes.length; i < l; i++) { - ret.push(arr[indexes[i]] || null); - } - } - return ret; + function isString(obj) { + return toStr.call(obj) === '[object String]'; } - function union() { - var ret = []; - var arrs = argsToArray(arguments); - if (arrs.length > 1) { - for (var i = 0, l = arrs.length; i < l; i++) { - ret = ret.concat(arrs[i]); - } - ret = removeDuplicates(ret); - } - return ret; + function isNumber(obj) { + return toStr.call(obj) === '[object Number]'; } - function intersect() { - var collect = [], sets, i = -1 , l; - if (arguments.length > 1) { - //assume we are intersections all the lists in the array - sets = argsToArray(arguments); - } else { - sets = arguments[0]; - } - if (isArray(sets)) { - collect = sets[0]; - i = 0; - l = sets.length; - while (++i < l) { - collect = intersection(collect, sets[i]); - } - } - return removeDuplicates(collect); + function isTrue(obj) { + return obj === true; } - function powerSet(arr) { - var ret = []; - if (isArray(arr) && arr.length) { - ret = reduce(arr, function (a, b) { - var ret = map(a, function (c) { - return c.concat(b); - }); - return a.concat(ret); - }, [ - [] - ]); - } - return ret; + function isFalse(obj) { + return obj === false; } - function cartesian(a, b) { - var ret = []; - if (isArray(a) && isArray(b) && a.length && b.length) { - ret = cross(a[0], b).concat(cartesian(a.slice(1), b)); - } - return ret; + function isNotNull(obj) { + return !isNull(obj); } - function compact(arr) { - var ret = []; - if (isArray(arr) && arr.length) { - ret = filter(arr, function (item) { - return !is.isUndefinedOrNull(item); - }); - } - return ret; + function isEq(obj, obj2) { + /*jshint eqeqeq:false*/ + return obj == obj2; } - function multiply(arr, times) { - times = is.isNumber(times) ? times : 1; - if (!times) { - //make sure times is greater than zero if it is zero then dont multiply it - times = 1; - } - arr = toArray(arr || []); - var ret = [], i = 0; - while (++i <= times) { - ret = ret.concat(arr); - } - return ret; + function isNeq(obj, obj2) { + /*jshint eqeqeq:false*/ + return obj != obj2; } - function flatten(arr) { - var set; - var args = argsToArray(arguments); - if (args.length > 1) { - //assume we are intersections all the lists in the array - set = args; - } else { - set = toArray(arr); - } - return reduce(set, function (a, b) { - return a.concat(b); - }, []); + function isSeq(obj, obj2) { + return obj === obj2; } - function pluck(arr, prop) { - prop = prop.split("."); - var result = arr.slice(0); - forEach(prop, function (prop) { - var exec = prop.match(/(\w+)\(\)$/); - result = map(result, function (item) { - return exec ? item[exec[1]]() : item[prop]; - }); - }); - return result; + function isSneq(obj, obj2) { + return obj !== obj2; } - function invoke(arr, func, args) { - args = argsToArray(arguments, 2); - return map(arr, function (item) { - var exec = isString(func) ? item[func] : func; - return exec.apply(item, args); - }); + function isIn(obj, arr) { + if ((isArray(arr) && Array.prototype.indexOf) || isString(arr)) { + return arr.indexOf(obj) > -1; + } else if (isArray(arr)) { + for (var i = 0, l = arr.length; i < l; i++) { + if (isEq(obj, arr[i])) { + return true; + } + } + } + return false; } - - var array = { - toArray: toArray, - sum: sum, - avg: avg, - sort: sort, - min: min, - max: max, - difference: difference, - removeDuplicates: removeDuplicates, - unique: unique, - rotate: rotate, - permutations: permutations, - zip: zip, - transpose: transpose, - valuesAt: valuesAt, - union: union, - intersect: intersect, - powerSet: powerSet, - cartesian: cartesian, - compact: compact, - multiply: multiply, - flatten: flatten, - pluck: pluck, - invoke: invoke, - forEach: forEach, - map: map, - filter: filter, - reduce: reduce, - reduceRight: reduceRight, - some: some, - every: every, - indexOf: indexOf, - lastIndexOf: lastIndexOf - }; - - return extended.define(isArray, array).expose(array); - } - - if (true) { - if ( true && module.exports) { - module.exports = defineArray(__webpack_require__(/*! extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extended/index.js"), __webpack_require__(/*! is-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/is-extended/index.js"), __webpack_require__(/*! arguments-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/arguments-extended/index.js")); + function isNotIn(obj, arr) { + return !isIn(obj, arr); } - } else {} - -}).call(this); - - - - + function isLt(obj, obj2) { + return obj < obj2; + } + function isLte(obj, obj2) { + return obj <= obj2; + } + function isGt(obj, obj2) { + return obj > obj2; + } -/***/ }), + function isGte(obj, obj2) { + return obj >= obj2; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/charenc/charenc.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/charenc/charenc.js ***! - \********************************************************************************************/ -/***/ ((module) => { + function isLike(obj, reg) { + if (isString(reg)) { + return ("" + obj).match(reg) !== null; + } else if (isRegExp(reg)) { + return reg.test(obj); + } + return false; + } -var charenc = { - // UTF-8 encoding - utf8: { - // Convert a string to a byte array - stringToBytes: function(str) { - return charenc.bin.stringToBytes(unescape(encodeURIComponent(str))); - }, + function isNotLike(obj, reg) { + return !isLike(obj, reg); + } - // Convert a byte array to a string - bytesToString: function(bytes) { - return decodeURIComponent(escape(charenc.bin.bytesToString(bytes))); - } - }, + function contains(arr, obj) { + return isIn(obj, arr); + } - // Binary encoding - bin: { - // Convert a string to a byte array - stringToBytes: function(str) { - for (var bytes = [], i = 0; i < str.length; i++) - bytes.push(str.charCodeAt(i) & 0xFF); - return bytes; - }, + function notContains(arr, obj) { + return !isIn(obj, arr); + } - // Convert a byte array to a string - bytesToString: function(bytes) { - for (var str = [], i = 0; i < bytes.length; i++) - str.push(String.fromCharCode(bytes[i])); - return str.join(''); - } - } -}; + function containsAt(arr, obj, index) { + if (isArray(arr) && arr.length > index) { + return isEq(arr[index], obj); + } + return false; + } -module.exports = charenc; + function notContainsAt(arr, obj, index) { + if (isArray(arr)) { + return !isEq(arr[index], obj); + } + return false; + } + function has(obj, prop) { + return hasOwn.call(obj, prop); + } -/***/ }), + function notHas(obj, prop) { + return !has(obj, prop); + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/cht-nootils/src/nootils.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/cht-nootils/src/nootils.js ***! - \****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + function length(obj, l) { + if (has(obj, "length")) { + return obj.length === l; + } + return false; + } -const _ = __webpack_require__(/*! underscore */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/underscore/underscore-node.cjs"); + function notLength(obj, l) { + if (has(obj, "length")) { + return obj.length !== l; + } + return false; + } -const NO_LMP_DATE_MODIFIER = 4; + var isa = { + isFunction: isFunction, + isObject: isObject, + isEmpty: isEmpty, + isHash: isHash, + isNumber: isNumber, + isString: isString, + isDate: isDate, + isArray: isArray, + isBoolean: isBoolean, + isUndefined: isUndefined, + isDefined: isDefined, + isUndefinedOrNull: isUndefinedOrNull, + isNull: isNull, + isArguments: isArguments, + instanceOf: isInstanceOf, + isRegExp: isRegExp, + deepEqual: deepEqual, + isTrue: isTrue, + isFalse: isFalse, + isNotNull: isNotNull, + isEq: isEq, + isNeq: isNeq, + isSeq: isSeq, + isSneq: isSneq, + isIn: isIn, + isNotIn: isNotIn, + isLt: isLt, + isLte: isLte, + isGt: isGt, + isGte: isGte, + isLike: isLike, + isNotLike: isNotLike, + contains: contains, + notContains: notContains, + has: has, + notHas: notHas, + isLength: length, + isNotLength: notLength, + containsAt: containsAt, + notContainsAt: notContainsAt + }; -module.exports = function(settings) { - const taskSchedules = settings && settings.tasks && settings.tasks.schedules; - const lib = { - /** - * @function - * In legacy versions, partner code is required to only emit tasks which are ready to be displayed to the user. Utils.isTimely is the mechanism used for this. - * With the rules-engine improvements in webapp 3.8, this responsibility shifts. Partner code should emit all tasks and the webapp's rules-engine decides what to display. - * To this end - Utils.isTimely becomes a pass-through in nootils@4.x - * @returns True - */ - isTimely: () => true, + var tester = { + constructor: function () { + this._testers = []; + }, - addDate: function(date, days) { - let result; - if (date) { - result = new Date(date.getTime()); - } else { - result = lib.now(); - } - result.setDate(result.getDate() + days); - result.setHours(0, 0, 0, 0); - return result; - }, + noWrap: { + tester: function () { + var testers = this._testers; + return function tester(value) { + var isa = false; + for (var i = 0, l = testers.length; i < l && !isa; i++) { + isa = testers[i](value); + } + return isa; + }; + } + } + }; - getLmpDate: function(doc) { - const weeks = doc.fields.last_menstrual_period || NO_LMP_DATE_MODIFIER; - return lib.addDate(new Date(doc.reported_date), weeks * -7); - }, + var switcher = { + constructor: function () { + this._cases = []; + this.__default = null; + }, - // TODO getSchedule() can be removed when tasks.json support is dropped - getSchedule: function(name) { - return _.findWhere(taskSchedules, { name: name }); - }, + def: function (val, fn) { + this.__default = fn; + }, - getMostRecentTimestamp: function(reports, form, fields) { - const report = lib.getMostRecentReport(reports, form, fields); - return report && report.reported_date; - }, + noWrap: { + switcher: function () { + var testers = this._cases, __default = this.__default; + return function tester() { + var handled = false, args = argsToArray(arguments), caseRet; + for (var i = 0, l = testers.length; i < l && !handled; i++) { + caseRet = testers[i](args); + if (caseRet.length > 1) { + if (caseRet[1] || caseRet[0]) { + return caseRet[1]; + } + } + } + if (!handled && __default) { + return __default.apply(this, args); + } + }; + } + } + }; - getMostRecentReport: function(reports, forms, fields) { - if (!Array.isArray(forms)) { - forms = [forms]; - } - let result = null; - reports.forEach(function(report) { - if (forms.includes(report.form) && - !report.deleted && - (!result || (report.reported_date > result.reported_date)) && - (!fields || (report.fields && lib.fieldsMatch(report, fields)))) { - result = report; + function addToTester(func) { + tester[func] = function isaTester() { + this._testers.push(isa[func]); + }; } - }); - return result; - }, - isFormSubmittedInWindow: function(reports, form, start, end, count) { - let result = false; - reports.forEach(function(report) { - if (!result && report.form === form) { - if (report.reported_date >= start && report.reported_date <= end) { - if (!count || - (count && report.fields && report.fields.follow_up_count > count)) { - result = true; - } - } + function addToSwitcher(func) { + switcher[func] = function isaTester() { + var args = argsToArray(arguments, 1), isFunc = isa[func], handler, doBreak = true; + if (args.length <= isFunc.length - 1) { + throw new TypeError("A handler must be defined when calling using switch"); + } else { + handler = args.pop(); + if (isBoolean(handler)) { + doBreak = handler; + handler = args.pop(); + } + } + if (!isFunction(handler)) { + throw new TypeError("handler must be defined"); + } + this._cases.push(function (testArgs) { + if (isFunc.apply(isa, testArgs.concat(args))) { + return [doBreak, handler.apply(this, testArgs)]; + } + return [false]; + }); + }; } - }); - return result; - }, - isFirstReportNewer: function(firstReport, secondReport) { - if (firstReport && firstReport.reported_date) { - if (secondReport && secondReport.reported_date) { - return firstReport.reported_date > secondReport.reported_date; + for (var i in isa) { + if (hasOwn.call(isa, i)) { + addToSwitcher(i); + addToTester(i); + } } - return true; - } - return null; - }, - isDateValid: function(date) { - return !isNaN(date.getTime()); - }, + var is = extended.define(isa).expose(isa); + is.tester = extended.define(tester); + is.switcher = extended.define(switcher); + return is; - /** - * @function - * @name getField - * - * Gets the value of specified field path. - * @param {Object} report - The report object. - * @param {string} field - Period separated json path assuming report.fields as - * the root node e.g 'dob' (equivalent to report.fields.dob) - * or 'screening.test_result' equivalent to report.fields.screening.test_result - */ - getField: function(report, field) { - return _.propertyOf(report.fields)(field.split('.')); - }, + } - fieldsMatch: function(report, fieldValues) { - return Object.keys(fieldValues).every(function(field) { - return lib.getField(report, field) === fieldValues[field]; - }); - }, + if (true) { + if ( true && module.exports) { + module.exports = defineIsa(__nested_webpack_require_1879052__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js")); - MS_IN_DAY: 24*60*60*1000, // 1 day in ms + } + } else {} - now: function() { return new Date(); }, - }; +}).call(this); - return lib; -}; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/crypt/crypt.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/crypt/crypt.js ***! - \****************************************************************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/node_modules/leafy/index.js": +/*!********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/leafy/index.js ***! + \********************************************************/ +/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_1894849__) { -(function() { - var base64map - = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', +(function () { + "use strict"; - crypt = { - // Bit-wise rotation left - rotl: function(n, b) { - return (n << b) | (n >>> (32 - b)); - }, + function defineLeafy(_) { - // Bit-wise rotation right - rotr: function(n, b) { - return (n << (32 - b)) | (n >>> b); - }, + function compare(a, b) { + var ret = 0; + if (a > b) { + return 1; + } else if (a < b) { + return -1; + } else if (!b) { + return 1; + } + return ret; + } - // Swap big-endian to little-endian and vice versa - endian: function(n) { - // If number given, swap endian - if (n.constructor == Number) { - return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00; - } + var multiply = _.multiply; - // Else, assume array and swap all items - for (var i = 0; i < n.length; i++) - n[i] = crypt.endian(n[i]); - return n; - }, + var Tree = _.declare({ - // Generate an array of any length of random bytes - randomBytes: function(n) { - for (var bytes = []; n > 0; n--) - bytes.push(Math.floor(Math.random() * 256)); - return bytes; - }, + instance: { - // Convert a byte array to big-endian 32-bit words - bytesToWords: function(bytes) { - for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8) - words[b >>> 5] |= bytes[i] << (24 - b % 32); - return words; - }, + /** + * Prints a node + * @param node node to print + * @param level the current level the node is at, Used for formatting + */ + __printNode: function (node, level) { + //console.log(level); + var str = []; + if (_.isUndefinedOrNull(node)) { + str.push(multiply('\t', level)); + str.push("~"); + console.log(str.join("")); + } else { + this.__printNode(node.right, level + 1); + str.push(multiply('\t', level)); + str.push(node.data + "\n"); + console.log(str.join("")); + this.__printNode(node.left, level + 1); + } + }, - // Convert big-endian 32-bit words to a byte array - wordsToBytes: function(words) { - for (var bytes = [], b = 0; b < words.length * 32; b += 8) - bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF); - return bytes; - }, + constructor: function (options) { + options = options || {}; + this.compare = options.compare || compare; + this.__root = null; + }, - // Convert a byte array to a hex string - bytesToHex: function(bytes) { - for (var hex = [], i = 0; i < bytes.length; i++) { - hex.push((bytes[i] >>> 4).toString(16)); - hex.push((bytes[i] & 0xF).toString(16)); - } - return hex.join(''); - }, + insert: function () { + throw new Error("Not Implemented"); + }, - // Convert a hex string to a byte array - hexToBytes: function(hex) { - for (var bytes = [], c = 0; c < hex.length; c += 2) - bytes.push(parseInt(hex.substr(c, 2), 16)); - return bytes; - }, + remove: function () { + throw new Error("Not Implemented"); + }, - // Convert a byte array to a base-64 string - bytesToBase64: function(bytes) { - for (var base64 = [], i = 0; i < bytes.length; i += 3) { - var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]; - for (var j = 0; j < 4; j++) - if (i * 8 + j * 6 <= bytes.length * 8) - base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F)); - else - base64.push('='); - } - return base64.join(''); - }, + clear: function () { + this.__root = null; + }, - // Convert a base-64 string to a byte array - base64ToBytes: function(base64) { - // Remove non-base-64 characters - base64 = base64.replace(/[^A-Z0-9+\/]/ig, ''); + isEmpty: function () { + return !(this.__root); + }, - for (var bytes = [], i = 0, imod4 = 0; i < base64.length; - imod4 = ++i % 4) { - if (imod4 == 0) continue; - bytes.push(((base64map.indexOf(base64.charAt(i - 1)) - & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2)) - | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2))); - } - return bytes; - } - }; + traverseWithCondition: function (node, order, callback) { + var cont = true; + if (node) { + order = order || Tree.PRE_ORDER; + if (order === Tree.PRE_ORDER) { + cont = callback(node.data); + if (cont) { + cont = this.traverseWithCondition(node.left, order, callback); + if (cont) { + cont = this.traverseWithCondition(node.right, order, callback); + } + + } + } else if (order === Tree.IN_ORDER) { + cont = this.traverseWithCondition(node.left, order, callback); + if (cont) { + cont = callback(node.data); + if (cont) { + cont = this.traverseWithCondition(node.right, order, callback); + } + } + } else if (order === Tree.POST_ORDER) { + cont = this.traverseWithCondition(node.left, order, callback); + if (cont) { + if (cont) { + cont = this.traverseWithCondition(node.right, order, callback); + } + if (cont) { + cont = callback(node.data); + } + } + } else if (order === Tree.REVERSE_ORDER) { + cont = this.traverseWithCondition(node.right, order, callback); + if (cont) { + cont = callback(node.data); + if (cont) { + cont = this.traverseWithCondition(node.left, order, callback); + } + } + } + } + return cont; + }, + + traverse: function (node, order, callback) { + if (node) { + order = order || Tree.PRE_ORDER; + if (order === Tree.PRE_ORDER) { + callback(node.data); + this.traverse(node.left, order, callback); + this.traverse(node.right, order, callback); + } else if (order === Tree.IN_ORDER) { + this.traverse(node.left, order, callback); + callback(node.data); + this.traverse(node.right, order, callback); + } else if (order === Tree.POST_ORDER) { + this.traverse(node.left, order, callback); + this.traverse(node.right, order, callback); + callback(node.data); + } else if (order === Tree.REVERSE_ORDER) { + this.traverse(node.right, order, callback); + callback(node.data); + this.traverse(node.left, order, callback); - module.exports = crypt; -})(); + } + } + }, + forEach: function (cb, scope, order) { + if (typeof cb !== "function") { + throw new TypeError(); + } + order = order || Tree.IN_ORDER; + scope = scope || this; + this.traverse(this.__root, order, function (node) { + cb.call(scope, node, this); + }); + }, -/***/ }), + map: function (cb, scope, order) { + if (typeof cb !== "function") { + throw new TypeError(); + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/date-extended/index.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/date-extended/index.js ***! - \************************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + order = order || Tree.IN_ORDER; + scope = scope || this; + var ret = new this._static(); + this.traverse(this.__root, order, function (node) { + ret.insert(cb.call(scope, node, this)); + }); + return ret; + }, -(function () { - "use strict"; + filter: function (cb, scope, order) { + if (typeof cb !== "function") { + throw new TypeError(); + } - function defineDate(extended, is, array) { + order = order || Tree.IN_ORDER; + scope = scope || this; + var ret = new this._static(); + this.traverse(this.__root, order, function (node) { + if (cb.call(scope, node, this)) { + ret.insert(node); + } + }); + return ret; + }, - function _pad(string, length, ch, end) { - string = "" + string; //check for numbers - ch = ch || " "; - var strLen = string.length; - while (strLen < length) { - if (end) { - string += ch; - } else { - string = ch + string; - } - strLen++; - } - return string; - } + reduce: function (fun, accumulator, order) { + var arr = this.toArray(order); + var args = [arr, fun]; + if (!_.isUndefinedOrNull(accumulator)) { + args.push(accumulator); + } + return _.reduce.apply(_, args); + }, - function _truncate(string, length, end) { - var ret = string; - if (is.isString(ret)) { - if (string.length > length) { - if (end) { - var l = string.length; - ret = string.substring(l - length, l); - } else { - ret = string.substring(0, length); + reduceRight: function (fun, accumulator, order) { + var arr = this.toArray(order); + var args = [arr, fun]; + if (!_.isUndefinedOrNull(accumulator)) { + args.push(accumulator); } - } - } else { - ret = _truncate("" + ret, length); - } - return ret; - } + return _.reduceRight.apply(_, args); + }, - function every(arr, iterator, scope) { - if (!is.isArray(arr) || typeof iterator !== "function") { - throw new TypeError(); - } - var t = Object(arr); - var len = t.length >>> 0; - for (var i = 0; i < len; i++) { - if (i in t && !iterator.call(scope, t[i], i, t)) { - return false; - } - } - return true; - } + every: function (cb, scope, order) { + if (typeof cb !== "function") { + throw new TypeError(); + } + order = order || Tree.IN_ORDER; + scope = scope || this; + var ret = false; + this.traverseWithCondition(this.__root, order, function (node) { + ret = cb.call(scope, node, this); + return ret; + }); + return ret; + }, + some: function (cb, scope, order) { + if (typeof cb !== "function") { + throw new TypeError(); + } - var transforms = (function () { - var floor = Math.floor, round = Math.round; + order = order || Tree.IN_ORDER; + scope = scope || this; + var ret; + this.traverseWithCondition(this.__root, order, function (node) { + ret = cb.call(scope, node, this); + return !ret; + }); + return ret; + }, - var addMap = { - day: function addDay(date, amount) { - return [amount, "Date", false]; - }, - weekday: function addWeekday(date, amount) { - // Divide the increment time span into weekspans plus leftover days - // e.g., 8 days is one 5-day weekspan / and two leftover days - // Can't have zero leftover days, so numbers divisible by 5 get - // a days value of 5, and the remaining days make up the number of weeks - var days, weeks, mod = amount % 5, strt = date.getDay(), adj = 0; - if (!mod) { - days = (amount > 0) ? 5 : -5; - weeks = (amount > 0) ? ((amount - 5) / 5) : ((amount + 5) / 5); + toArray: function (order) { + order = order || Tree.IN_ORDER; + var arr = []; + this.traverse(this.__root, order, function (node) { + arr.push(node); + }); + return arr; + }, + + contains: function (value) { + var ret = false; + var root = this.__root; + while (root !== null) { + var cmp = this.compare(value, root.data); + if (cmp) { + root = root[(cmp === -1) ? "left" : "right"]; } else { - days = mod; - weeks = parseInt(amount / 5, 10); - } - if (strt === 6 && amount > 0) { - adj = 1; - } else if (strt === 0 && amount < 0) { - // Orig date is Sun / negative increment - // Jump back over Sat - adj = -1; - } - // Get weekday val for the new date - var trgt = strt + days; - // New date is on Sat or Sun - if (trgt === 0 || trgt === 6) { - adj = (amount > 0) ? 2 : -2; + ret = true; + root = null; } - // Increment by number of weeks plus leftover days plus - // weekend adjustments - return [(7 * weeks) + days + adj, "Date", false]; - }, - year: function addYear(date, amount) { - return [amount, "FullYear", true]; - }, - week: function addWeek(date, amount) { - return [amount * 7, "Date", false]; - }, - quarter: function addYear(date, amount) { - return [amount * 3, "Month", true]; - }, - month: function addYear(date, amount) { - return [amount, "Month", true]; } - }; + return ret; + }, - function addTransform(interval, date, amount) { - interval = interval.replace(/s$/, ""); - if (addMap.hasOwnProperty(interval)) { - return addMap[interval](date, amount); + find: function (value) { + var ret; + var root = this.__root; + while (root) { + var cmp = this.compare(value, root.data); + if (cmp) { + root = root[(cmp === -1) ? "left" : "right"]; + } else { + ret = root.data; + break; + } } - return [amount, "UTC" + interval.charAt(0).toUpperCase() + interval.substring(1) + "s", false]; - } - - - var differenceMap = { - "quarter": function quarterDifference(date1, date2, utc) { - var yearDiff = date2.getFullYear() - date1.getFullYear(); - var m1 = date1[utc ? "getUTCMonth" : "getMonth"](); - var m2 = date2[utc ? "getUTCMonth" : "getMonth"](); - // Figure out which quarter the months are in - var q1 = floor(m1 / 3) + 1; - var q2 = floor(m2 / 3) + 1; - // Add quarters for any year difference between the dates - q2 += (yearDiff * 4); - return q2 - q1; - }, + return ret; + }, - "weekday": function weekdayDifference(date1, date2, utc) { - var days = differenceTransform("day", date1, date2, utc), weeks; - var mod = days % 7; - // Even number of weeks - if (mod === 0) { - days = differenceTransform("week", date1, date2, utc) * 5; + findLessThan: function (value, exclusive) { + //find a better way!!!! + var ret = [], compare = this.compare; + this.traverseWithCondition(this.__root, Tree.IN_ORDER, function (v) { + var cmp = compare(value, v); + if ((!exclusive && cmp === 0) || cmp === 1) { + ret.push(v); + return true; } else { - // Weeks plus spare change (< 7 days) - var adj = 0, aDay = date1[utc ? "getUTCDay" : "getDay"](), bDay = date2[utc ? "getUTCDay" : "getDay"](); - weeks = parseInt(days / 7, 10); - // Mark the date advanced by the number of - // round weeks (may be zero) - var dtMark = new Date(+date1); - dtMark.setDate(dtMark[utc ? "getUTCDate" : "getDate"]() + (weeks * 7)); - var dayMark = dtMark[utc ? "getUTCDay" : "getDay"](); - - // Spare change days -- 6 or less - if (days > 0) { - if (aDay === 6 || bDay === 6) { - adj = -1; - } else if (aDay === 0) { - adj = 0; - } else if (bDay === 0 || (dayMark + mod) > 5) { - adj = -2; - } - } else if (days < 0) { - if (aDay === 6) { - adj = 0; - } else if (aDay === 0 || bDay === 0) { - adj = 1; - } else if (bDay === 6 || (dayMark + mod) < 0) { - adj = 2; - } - } - days += adj; - days -= (weeks * 2); + return false; } - return days; - }, - year: function (date1, date2) { - return date2.getFullYear() - date1.getFullYear(); - }, - month: function (date1, date2, utc) { - var m1 = date1[utc ? "getUTCMonth" : "getMonth"](); - var m2 = date2[utc ? "getUTCMonth" : "getMonth"](); - return (m2 - m1) + ((date2.getFullYear() - date1.getFullYear()) * 12); - }, - week: function (date1, date2, utc) { - return round(differenceTransform("day", date1, date2, utc) / 7); - }, - day: function (date1, date2) { - return 1.1574074074074074e-8 * (date2.getTime() - date1.getTime()); - }, - hour: function (date1, date2) { - return 2.7777777777777776e-7 * (date2.getTime() - date1.getTime()); - }, - minute: function (date1, date2) { - return 0.000016666666666666667 * (date2.getTime() - date1.getTime()); - }, - second: function (date1, date2) { - return 0.001 * (date2.getTime() - date1.getTime()); - }, - millisecond: function (date1, date2) { - return date2.getTime() - date1.getTime(); - } - }; + }); + return ret; + }, + findGreaterThan: function (value, exclusive) { + //find a better way!!!! + var ret = [], compare = this.compare; + this.traverse(this.__root, Tree.REVERSE_ORDER, function (v) { + var cmp = compare(value, v); + if ((!exclusive && cmp === 0) || cmp === -1) { + ret.push(v); + return true; + } else { + return false; + } + }); + return ret; + }, - function differenceTransform(interval, date1, date2, utc) { - interval = interval.replace(/s$/, ""); - return round(differenceMap[interval](date1, date2, utc)); + print: function () { + this.__printNode(this.__root, 0); } + }, + + "static": { + PRE_ORDER: "pre_order", + IN_ORDER: "in_order", + POST_ORDER: "post_order", + REVERSE_ORDER: "reverse_order" + } + }); + var AVLTree = (function () { + var abs = Math.abs; + + var makeNode = function (data) { return { - addTransform: addTransform, - differenceTransform: differenceTransform + data: data, + balance: 0, + left: null, + right: null }; - }()), - addTransform = transforms.addTransform, - differenceTransform = transforms.differenceTransform; + }; + var rotateSingle = function (root, dir, otherDir) { + var save = root[otherDir]; + root[otherDir] = save[dir]; + save[dir] = root; + return save; + }; - /** - * @ignore - * Based on DOJO Date Implementation - * - * Dojo is available under *either* the terms of the modified BSD license *or* the - * Academic Free License version 2.1. As a recipient of Dojo, you may choose which - * license to receive this code under (except as noted in per-module LICENSE - * files). Some modules may not be the copyright of the Dojo Foundation. These - * modules contain explicit declarations of copyright in both the LICENSE files in - * the directories in which they reside and in the code itself. No external - * contributions are allowed under licenses which are fundamentally incompatible - * with the AFL or BSD licenses that Dojo is distributed under. - * - */ - var floor = Math.floor, round = Math.round, min = Math.min, pow = Math.pow, ceil = Math.ceil, abs = Math.abs; - var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; - var monthAbbr = ["Jan.", "Feb.", "Mar.", "Apr.", "May.", "Jun.", "Jul.", "Aug.", "Sep.", "Oct.", "Nov.", "Dec."]; - var dayNames = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; - var dayAbbr = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; - var eraNames = ["Before Christ", "Anno Domini"]; - var eraAbbr = ["BC", "AD"]; + var rotateDouble = function (root, dir, otherDir) { + root[otherDir] = rotateSingle(root[otherDir], otherDir, dir); + return rotateSingle(root, dir, otherDir); + }; + var adjustBalance = function (root, dir, bal) { + var otherDir = dir === "left" ? "right" : "left"; + var n = root[dir], nn = n[otherDir]; + if (nn.balance === 0) { + root.balance = n.balance = 0; + } else if (nn.balance === bal) { + root.balance = -bal; + n.balance = 0; + } else { /* nn.balance == -bal */ + root.balance = 0; + n.balance = bal; + } + nn.balance = 0; + }; - function getDayOfYear(/*Date*/dateObject, utc) { - // summary: gets the day of the year as represented by dateObject - return date.difference(new Date(dateObject.getFullYear(), 0, 1, dateObject.getHours()), dateObject, null, utc) + 1; // Number - } + var insertAdjustBalance = function (root, dir) { + var otherDir = dir === "left" ? "right" : "left"; - function getWeekOfYear(/*Date*/dateObject, /*Number*/firstDayOfWeek, utc) { - firstDayOfWeek = firstDayOfWeek || 0; - var fullYear = dateObject[utc ? "getUTCFullYear" : "getFullYear"](); - var firstDayOfYear = new Date(fullYear, 0, 1).getDay(), - adj = (firstDayOfYear - firstDayOfWeek + 7) % 7, - week = floor((getDayOfYear(dateObject) + adj - 1) / 7); + var n = root[dir]; + var bal = dir === "right" ? -1 : +1; - // if year starts on the specified day, start counting weeks at 1 - if (firstDayOfYear === firstDayOfWeek) { - week++; - } + if (n.balance === bal) { + root.balance = n.balance = 0; + root = rotateSingle(root, otherDir, dir); + } else { + adjustBalance(root, dir, bal); + root = rotateDouble(root, otherDir, dir); + } - return week; // Number - } + return root; - function getTimezoneName(/*Date*/dateObject) { - var str = dateObject.toString(); - var tz = ''; - var pos = str.indexOf('('); - if (pos > -1) { - tz = str.substring(++pos, str.indexOf(')')); - } - return tz; // String - } + }; + var removeAdjustBalance = function (root, dir, done) { + var otherDir = dir === "left" ? "right" : "left"; + var n = root[otherDir]; + var bal = dir === "right" ? -1 : 1; + if (n.balance === -bal) { + root.balance = n.balance = 0; + root = rotateSingle(root, dir, otherDir); + } else if (n.balance === bal) { + adjustBalance(root, otherDir, -bal); + root = rotateDouble(root, dir, otherDir); + } else { /* n.balance == 0 */ + root.balance = -bal; + n.balance = bal; + root = rotateSingle(root, dir, otherDir); + done.done = true; + } + return root; + }; - function buildDateEXP(pattern, tokens) { - return pattern.replace(/([a-z])\1*/ig,function (match) { - // Build a simple regexp. Avoid captures, which would ruin the tokens list - var s, - c = match.charAt(0), - l = match.length, - p2 = '0?', - p3 = '0{0,2}'; - if (c === 'y') { - s = '\\d{2,4}'; - } else if (c === "M") { - s = (l > 2) ? '\\S+?' : '1[0-2]|' + p2 + '[1-9]'; - } else if (c === "D") { - s = '[12][0-9][0-9]|3[0-5][0-9]|36[0-6]|' + p3 + '[1-9][0-9]|' + p2 + '[1-9]'; - } else if (c === "d") { - s = '3[01]|[12]\\d|' + p2 + '[1-9]'; - } else if (c === "w") { - s = '[1-4][0-9]|5[0-3]|' + p2 + '[1-9]'; - } else if (c === "E") { - s = '\\S+'; - } else if (c === "h") { - s = '1[0-2]|' + p2 + '[1-9]'; - } else if (c === "K") { - s = '1[01]|' + p2 + '\\d'; - } else if (c === "H") { - s = '1\\d|2[0-3]|' + p2 + '\\d'; - } else if (c === "k") { - s = '1\\d|2[0-4]|' + p2 + '[1-9]'; - } else if (c === "m" || c === "s") { - s = '[0-5]\\d'; - } else if (c === "S") { - s = '\\d{' + l + '}'; - } else if (c === "a") { - var am = 'AM', pm = 'PM'; - s = am + '|' + pm; - if (am !== am.toLowerCase()) { - s += '|' + am.toLowerCase(); + function insert(tree, data, cmp) { + /* Empty tree case */ + var root = tree.__root; + if (root === null || root === undefined) { + tree.__root = makeNode(data); + } else { + var it = root, upd = [], up = [], top = 0, dir; + while (true) { + dir = upd[top] = cmp(data, it.data) === -1 ? "left" : "right"; + up[top++] = it; + if (!it[dir]) { + it[dir] = makeNode(data); + break; + } + it = it[dir]; } - if (pm !== pm.toLowerCase()) { - s += '|' + pm.toLowerCase(); + if (!it[dir]) { + return null; + } + while (--top >= 0) { + up[top].balance += upd[top] === "right" ? -1 : 1; + if (up[top].balance === 0) { + break; + } else if (abs(up[top].balance) > 1) { + up[top] = insertAdjustBalance(up[top], upd[top]); + if (top !== 0) { + up[top - 1][upd[top - 1]] = up[top]; + } else { + tree.__root = up[0]; + } + break; + } } - s = s.replace(/\./g, "\\."); - } else if (c === 'v' || c === 'z' || c === 'Z' || c === 'G' || c === 'q' || c === 'Q') { - s = ".*"; - } else { - s = c === " " ? "\\s*" : c + "*"; } - if (tokens) { - tokens.push(match); + } + + function remove(tree, data, cmp) { + var root = tree.__root; + if (root !== null && root !== undefined) { + var it = root, top = 0, up = [], upd = [], done = {done: false}, dir, compare; + while (true) { + if (!it) { + return; + } else if ((compare = cmp(data, it.data)) === 0) { + break; + } + dir = upd[top] = compare === -1 ? "left" : "right"; + up[top++] = it; + it = it[dir]; + } + var l = it.left, r = it.right; + if (!l || !r) { + dir = !l ? "right" : "left"; + if (top !== 0) { + up[top - 1][upd[top - 1]] = it[dir]; + } else { + tree.__root = it[dir]; + } + } else { + var heir = l; + upd[top] = "left"; + up[top++] = it; + while (heir.right) { + upd[top] = "right"; + up[top++] = heir; + heir = heir.right; + } + it.data = heir.data; + up[top - 1][up[top - 1] === it ? "left" : "right"] = heir.left; + } + while (--top >= 0 && !done.done) { + up[top].balance += upd[top] === "left" ? -1 : +1; + if (abs(up[top].balance) === 1) { + break; + } else if (abs(up[top].balance) > 1) { + up[top] = removeAdjustBalance(up[top], upd[top], done); + if (top !== 0) { + up[top - 1][upd[top - 1]] = up[top]; + } else { + tree.__root = up[0]; + } + } + } } + } - return "(" + s + ")"; // add capture - }).replace(/[\xa0 ]/g, "[\\s\\xa0]"); // normalize whitespace. Need explicit handling of \xa0 for IE. - } + return Tree.extend({ + instance: { - /** - * @namespace Utilities for Dates - */ - var date = { + insert: function (data) { + insert(this, data, this.compare); + }, - /**@lends date*/ - /** - * Returns the number of days in the month of a date - * - * @example - * - * dateExtender.getDaysInMonth(new Date(2006, 1, 1)); //28 - * dateExtender.getDaysInMonth(new Date(2004, 1, 1)); //29 - * dateExtender.getDaysInMonth(new Date(2006, 2, 1)); //31 - * dateExtender.getDaysInMonth(new Date(2006, 3, 1)); //30 - * dateExtender.getDaysInMonth(new Date(2006, 4, 1)); //31 - * dateExtender.getDaysInMonth(new Date(2006, 5, 1)); //30 - * dateExtender.getDaysInMonth(new Date(2006, 6, 1)); //31 - * @param {Date} dateObject the date containing the month - * @return {Number} the number of days in the month - */ - getDaysInMonth: function (/*Date*/dateObject) { - // summary: - // Returns the number of days in the month used by dateObject - var month = dateObject.getMonth(); - var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; - if (month === 1 && date.isLeapYear(dateObject)) { - return 29; - } // Number - return days[month]; // Number - }, + remove: function (data) { + remove(this, data, this.compare); + }, - /** - * Determines if a date is a leap year - * - * @example - * - * dateExtender.isLeapYear(new Date(1600, 0, 1)); //true - * dateExtender.isLeapYear(new Date(2004, 0, 1)); //true - * dateExtender.isLeapYear(new Date(2000, 0, 1)); //true - * dateExtender.isLeapYear(new Date(2006, 0, 1)); //false - * dateExtender.isLeapYear(new Date(1900, 0, 1)); //false - * dateExtender.isLeapYear(new Date(1800, 0, 1)); //false - * dateExtender.isLeapYear(new Date(1700, 0, 1)); //false - * - * @param {Date} dateObject - * @returns {Boolean} true if it is a leap year false otherwise - */ - isLeapYear: function (/*Date*/dateObject, utc) { - var year = dateObject[utc ? "getUTCFullYear" : "getFullYear"](); - return (year % 400 === 0) || (year % 4 === 0 && year % 100 !== 0); + __printNode: function (node, level) { + var str = []; + if (!node) { + str.push(multiply('\t', level)); + str.push("~"); + console.log(str.join("")); + } else { + this.__printNode(node.right, level + 1); + str.push(multiply('\t', level)); + str.push(node.data + ":" + node.balance + "\n"); + console.log(str.join("")); + this.__printNode(node.left, level + 1); + } + } - }, + } + }); + }()); - /** - * Determines if a date is on a weekend - * - * @example - * - * var thursday = new Date(2006, 8, 21); - * var saturday = new Date(2006, 8, 23); - * var sunday = new Date(2006, 8, 24); - * var monday = new Date(2006, 8, 25); - * dateExtender.isWeekend(thursday)); //false - * dateExtender.isWeekend(saturday); //true - * dateExtender.isWeekend(sunday); //true - * dateExtender.isWeekend(monday)); //false - * - * @param {Date} dateObject the date to test - * - * @returns {Boolean} true if the date is a weekend - */ - isWeekend: function (/*Date?*/dateObject, utc) { - // summary: - // Determines if the date falls on a weekend, according to local custom. - var day = (dateObject || new Date())[utc ? "getUTCDay" : "getDay"](); - return day === 0 || day === 6; - }, + var AnderssonTree = (function () { - /** - * Get the timezone of a date - * - * @example - * //just setting the strLocal to simulate the toString() of a date - * dt.str = 'Sun Sep 17 2006 22:25:51 GMT-0500 (CDT)'; - * //just setting the strLocal to simulate the locale - * dt.strLocale = 'Sun 17 Sep 2006 10:25:51 PM CDT'; - * dateExtender.getTimezoneName(dt); //'CDT' - * dt.str = 'Sun Sep 17 2006 22:57:18 GMT-0500 (CDT)'; - * dt.strLocale = 'Sun Sep 17 22:57:18 2006'; - * dateExtender.getTimezoneName(dt); //'CDT' - * @param dateObject the date to get the timezone from - * - * @returns {String} the timezone of the date - */ - getTimezoneName: getTimezoneName, + var nil = {level: 0, data: null}; - /** - * Compares two dates - * - * @example - * - * var d1 = new Date(); - * d1.setHours(0); - * dateExtender.compare(d1, d1); // 0 - * - * var d1 = new Date(); - * d1.setHours(0); - * var d2 = new Date(); - * d2.setFullYear(2005); - * d2.setHours(12); - * dateExtender.compare(d1, d2, "date"); // 1 - * dateExtender.compare(d1, d2, "datetime"); // 1 - * - * var d1 = new Date(); - * d1.setHours(0); - * var d2 = new Date(); - * d2.setFullYear(2005); - * d2.setHours(12); - * dateExtender.compare(d2, d1, "date"); // -1 - * dateExtender.compare(d1, d2, "time"); //-1 - * - * @param {Date|String} date1 the date to comapare - * @param {Date|String} [date2=new Date()] the date to compare date1 againse - * @param {"date"|"time"|"datetime"} portion compares the portion specified - * - * @returns -1 if date1 is < date2 0 if date1 === date2 1 if date1 > date2 - */ - compare: function (/*Date*/date1, /*Date*/date2, /*String*/portion) { - date1 = new Date(+date1); - date2 = new Date(+(date2 || new Date())); + function makeNode(data, level) { + return { + data: data, + level: level, + left: nil, + right: nil + }; + } - if (portion === "date") { - // Ignore times and compare dates. - date1.setHours(0, 0, 0, 0); - date2.setHours(0, 0, 0, 0); - } else if (portion === "time") { - // Ignore dates and compare times. - date1.setFullYear(0, 0, 0); - date2.setFullYear(0, 0, 0); + function skew(root) { + if (root.level !== 0 && root.left.level === root.level) { + var save = root.left; + root.left = save.right; + save.right = root; + root = save; } - return date1 > date2 ? 1 : date1 < date2 ? -1 : 0; - }, - + return root; + } - /** - * Adds a specified interval and amount to a date - * - * @example - * var dtA = new Date(2005, 11, 27); - * dateExtender.add(dtA, "year", 1); //new Date(2006, 11, 27); - * dateExtender.add(dtA, "years", 1); //new Date(2006, 11, 27); - * - * dtA = new Date(2000, 0, 1); - * dateExtender.add(dtA, "quarter", 1); //new Date(2000, 3, 1); - * dateExtender.add(dtA, "quarters", 1); //new Date(2000, 3, 1); - * - * dtA = new Date(2000, 0, 1); - * dateExtender.add(dtA, "month", 1); //new Date(2000, 1, 1); - * dateExtender.add(dtA, "months", 1); //new Date(2000, 1, 1); - * - * dtA = new Date(2000, 0, 31); - * dateExtender.add(dtA, "month", 1); //new Date(2000, 1, 29); - * dateExtender.add(dtA, "months", 1); //new Date(2000, 1, 29); - * - * dtA = new Date(2000, 0, 1); - * dateExtender.add(dtA, "week", 1); //new Date(2000, 0, 8); - * dateExtender.add(dtA, "weeks", 1); //new Date(2000, 0, 8); - * - * dtA = new Date(2000, 0, 1); - * dateExtender.add(dtA, "day", 1); //new Date(2000, 0, 2); - * - * dtA = new Date(2000, 0, 1); - * dateExtender.add(dtA, "weekday", 1); //new Date(2000, 0, 3); - * - * dtA = new Date(2000, 0, 1, 11); - * dateExtender.add(dtA, "hour", 1); //new Date(2000, 0, 1, 12); - * - * dtA = new Date(2000, 11, 31, 23, 59); - * dateExtender.add(dtA, "minute", 1); //new Date(2001, 0, 1, 0, 0); - * - * dtA = new Date(2000, 11, 31, 23, 59, 59); - * dateExtender.add(dtA, "second", 1); //new Date(2001, 0, 1, 0, 0, 0); - * - * dtA = new Date(2000, 11, 31, 23, 59, 59, 999); - * dateExtender.add(dtA, "millisecond", 1); //new Date(2001, 0, 1, 0, 0, 0, 0); - * - * @param {Date} date - * @param {String} interval the interval to add - *
            - *
          • day | days
          • - *
          • weekday | weekdays
          • - *
          • year | years
          • - *
          • week | weeks
          • - *
          • quarter | quarters
          • - *
          • months | months
          • - *
          • hour | hours
          • - *
          • minute | minutes
          • - *
          • second | seconds
          • - *
          • millisecond | milliseconds
          • - *
          - * @param {Number} [amount=0] the amount to add - */ - add: function (/*Date*/date, /*String*/interval, /*int*/amount) { - var res = addTransform(interval, date, amount || 0); - amount = res[0]; - var property = res[1]; - var sum = new Date(+date); - var fixOvershoot = res[2]; - if (property) { - sum["set" + property](sum["get" + property]() + amount); + function split(root) { + if (root.level !== 0 && root.right.right.level === root.level) { + var save = root.right; + root.right = save.left; + save.left = root; + root = save; + root.level++; } + return root; + } - if (fixOvershoot && (sum.getDate() < date.getDate())) { - sum.setDate(0); + function insert(root, data, compare) { + if (root === nil) { + root = makeNode(data, 1); + } + else { + var dir = compare(data, root.data) === -1 ? "left" : "right"; + root[dir] = insert(root[dir], data, compare); + root = skew(root); + root = split(root); } + return root; + } - return sum; // Date - }, + var remove = function (root, data, compare) { + var rLeft, rRight; + if (root !== nil) { + var cmp = compare(data, root.data); + if (cmp === 0) { + rLeft = root.left, rRight = root.right; + if (rLeft !== nil && rRight !== nil) { + var heir = rLeft; + while (heir.right !== nil) { + heir = heir.right; + } + root.data = heir.data; + root.left = remove(rLeft, heir.data, compare); + } else { + root = root[rLeft === nil ? "right" : "left"]; + } + } else { + var dir = cmp === -1 ? "left" : "right"; + root[dir] = remove(root[dir], data, compare); + } + } + if (root !== nil) { + var rLevel = root.level; + var rLeftLevel = root.left.level, rRightLevel = root.right.level; + if (rLeftLevel < rLevel - 1 || rRightLevel < rLevel - 1) { + if (rRightLevel > --root.level) { + root.right.level = root.level; + } + root = skew(root); + root = split(root); + } + } + return root; + }; - /** - * Finds the difference between two dates based on the specified interval - * - * @example - * - * var dtA, dtB; - * - * dtA = new Date(2005, 11, 27); - * dtB = new Date(2006, 11, 27); - * dateExtender.difference(dtA, dtB, "year"); //1 - * - * dtA = new Date(2000, 1, 29); - * dtB = new Date(2001, 2, 1); - * dateExtender.difference(dtA, dtB, "quarter"); //4 - * dateExtender.difference(dtA, dtB, "month"); //13 - * - * dtA = new Date(2000, 1, 1); - * dtB = new Date(2000, 1, 8); - * dateExtender.difference(dtA, dtB, "week"); //1 - * - * dtA = new Date(2000, 1, 29); - * dtB = new Date(2000, 2, 1); - * dateExtender.difference(dtA, dtB, "day"); //1 - * - * dtA = new Date(2006, 7, 3); - * dtB = new Date(2006, 7, 11); - * dateExtender.difference(dtA, dtB, "weekday"); //6 - * - * dtA = new Date(2000, 11, 31, 23); - * dtB = new Date(2001, 0, 1, 0); - * dateExtender.difference(dtA, dtB, "hour"); //1 - * - * dtA = new Date(2000, 11, 31, 23, 59); - * dtB = new Date(2001, 0, 1, 0, 0); - * dateExtender.difference(dtA, dtB, "minute"); //1 - * - * dtA = new Date(2000, 11, 31, 23, 59, 59); - * dtB = new Date(2001, 0, 1, 0, 0, 0); - * dateExtender.difference(dtA, dtB, "second"); //1 - * - * dtA = new Date(2000, 11, 31, 23, 59, 59, 999); - * dtB = new Date(2001, 0, 1, 0, 0, 0, 0); - * dateExtender.difference(dtA, dtB, "millisecond"); //1 - * - * - * @param {Date} date1 - * @param {Date} [date2 = new Date()] - * @param {String} [interval = "day"] the intercal to find the difference of. - *
            - *
          • day | days
          • - *
          • weekday | weekdays
          • - *
          • year | years
          • - *
          • week | weeks
          • - *
          • quarter | quarters
          • - *
          • months | months
          • - *
          • hour | hours
          • - *
          • minute | minutes
          • - *
          • second | seconds
          • - *
          • millisecond | milliseconds
          • - *
          - */ - difference: function (/*Date*/date1, /*Date?*/date2, /*String*/interval, utc) { - date2 = date2 || new Date(); - interval = interval || "day"; - return differenceTransform(interval, date1, date2, utc); - }, + return Tree.extend({ - /** - * Formats a date to the specidifed format string - * - * @example - * - * var date = new Date(2006, 7, 11, 0, 55, 12, 345); - * dateExtender.format(date, "EEEE, MMMM dd, yyyy"); //"Friday, August 11, 2006" - * dateExtender.format(date, "M/dd/yy"); //"8/11/06" - * dateExtender.format(date, "E"); //"6" - * dateExtender.format(date, "h:m a"); //"12:55 AM" - * dateExtender.format(date, 'h:m:s'); //"12:55:12" - * dateExtender.format(date, 'h:m:s.SS'); //"12:55:12.35" - * dateExtender.format(date, 'k:m:s.SS'); //"24:55:12.35" - * dateExtender.format(date, 'H:m:s.SS'); //"0:55:12.35" - * dateExtender.format(date, "ddMMyyyy"); //"11082006" - * - * @param date the date to format - * @param {String} format the format of the date composed of the following options - *
            - *
          • G Era designator Text AD
          • - *
          • y Year Year 1996; 96
          • - *
          • M Month in year Month July; Jul; 07
          • - *
          • w Week in year Number 27
          • - *
          • W Week in month Number 2
          • - *
          • D Day in year Number 189
          • - *
          • d Day in month Number 10
          • - *
          • E Day in week Text Tuesday; Tue
          • - *
          • a Am/pm marker Text PM
          • - *
          • H Hour in day (0-23) Number 0
          • - *
          • k Hour in day (1-24) Number 24
          • - *
          • K Hour in am/pm (0-11) Number 0
          • - *
          • h Hour in am/pm (1-12) Number 12
          • - *
          • m Minute in hour Number 30
          • - *
          • s Second in minute Number 55
          • - *
          • S Millisecond Number 978
          • - *
          • z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
          • - *
          • Z Time zone RFC 822 time zone -0800
          • - *
          - */ - format: function (date, format, utc) { - utc = utc || false; - var fullYear, month, day, d, hour, minute, second, millisecond; - if (utc) { - fullYear = date.getUTCFullYear(); - month = date.getUTCMonth(); - day = date.getUTCDay(); - d = date.getUTCDate(); - hour = date.getUTCHours(); - minute = date.getUTCMinutes(); - second = date.getUTCSeconds(); - millisecond = date.getUTCMilliseconds(); - } else { - fullYear = date.getFullYear(); - month = date.getMonth(); - d = date.getDate(); - day = date.getDay(); - hour = date.getHours(); - minute = date.getMinutes(); - second = date.getSeconds(); - millisecond = date.getMilliseconds(); - } - return format.replace(/([A-Za-z])\1*/g, function (match) { - var s, pad, - c = match.charAt(0), - l = match.length; - if (c === 'd') { - s = "" + d; - pad = true; - } else if (c === "H" && !s) { - s = "" + hour; - pad = true; - } else if (c === 'm' && !s) { - s = "" + minute; - pad = true; - } else if (c === 's') { - if (!s) { - s = "" + second; + instance: { + + isEmpty: function () { + return this.__root === nil || this._super(arguments); + }, + + insert: function (data) { + if (!this.__root) { + this.__root = nil; } - pad = true; - } else if (c === "G") { - s = ((l < 4) ? eraAbbr : eraNames)[fullYear < 0 ? 0 : 1]; - } else if (c === "y") { - s = fullYear; - if (l > 1) { - if (l === 2) { - s = _truncate("" + s, 2, true); - } else { - pad = true; - } + this.__root = insert(this.__root, data, this.compare); + }, + + remove: function (data) { + this.__root = remove(this.__root, data, this.compare); + }, + + + traverseWithCondition: function (node) { + var cont = true; + if (node !== nil) { + return this._super(arguments); } - } else if (c.toUpperCase() === "Q") { - s = ceil((month + 1) / 3); - pad = true; - } else if (c === "M") { - if (l < 3) { - s = month + 1; - pad = true; - } else { - s = (l === 3 ? monthAbbr : monthNames)[month]; + return cont; + }, + + + traverse: function (node) { + if (node !== nil) { + this._super(arguments); } - } else if (c === "w") { - s = getWeekOfYear(date, 0, utc); - pad = true; - } else if (c === "D") { - s = getDayOfYear(date, utc); - pad = true; - } else if (c === "E") { - if (l < 3) { - s = day + 1; - pad = true; - } else { - s = (l === -3 ? dayAbbr : dayNames)[day]; + }, + + contains: function () { + if (this.__root !== nil) { + return this._super(arguments); } - } else if (c === 'a') { - s = (hour < 12) ? 'AM' : 'PM'; - } else if (c === "h") { - s = (hour % 12) || 12; - pad = true; - } else if (c === "K") { - s = (hour % 12); - pad = true; - } else if (c === "k") { - s = hour || 24; - pad = true; - } else if (c === "S") { - s = round(millisecond * pow(10, l - 3)); - pad = true; - } else if (c === "z" || c === "v" || c === "Z") { - s = getTimezoneName(date); - if ((c === "z" || c === "v") && !s) { - l = 4; + return false; + }, + + __printNode: function (node, level) { + var str = []; + if (!node || !node.data) { + str.push(multiply('\t', level)); + str.push("~"); + console.log(str.join("")); + } else { + this.__printNode(node.right, level + 1); + str.push(multiply('\t', level)); + str.push(node.data + ":" + node.level + "\n"); + console.log(str.join("")); + this.__printNode(node.left, level + 1); } - if (!s || c === "Z") { - var offset = date.getTimezoneOffset(); - var tz = [ - (offset >= 0 ? "-" : "+"), - _pad(floor(abs(offset) / 60), 2, "0"), - _pad(abs(offset) % 60, 2, "0") - ]; - if (l === 4) { - tz.splice(0, 0, "GMT"); - tz.splice(3, 0, ":"); + } + + } + + }); + }()); + + var BinaryTree = Tree.extend({ + instance: { + insert: function (data) { + if (!this.__root) { + this.__root = { + data: data, + parent: null, + left: null, + right: null + }; + return this.__root; + } + var compare = this.compare; + var root = this.__root; + while (root !== null) { + var cmp = compare(data, root.data); + if (cmp) { + var leaf = (cmp === -1) ? "left" : "right"; + var next = root[leaf]; + if (!next) { + return (root[leaf] = {data: data, parent: root, left: null, right: null}); + } else { + root = next; } - s = tz.join(""); + } else { + return; } - } else { - s = match; } - if (pad) { - s = _pad(s, l, '0'); + }, + + remove: function (data) { + if (this.__root !== null) { + var head = {right: this.__root}, it = head; + var p, f = null; + var dir = "right"; + while (it[dir] !== null) { + p = it; + it = it[dir]; + var cmp = this.compare(data, it.data); + if (!cmp) { + f = it; + } + dir = (cmp === -1 ? "left" : "right"); + } + if (f !== null) { + f.data = it.data; + p[p.right === it ? "right" : "left"] = it[it.left === null ? "right" : "left"]; + } + this.__root = head.right; } - return s; - }); - } - }; + } + } + }); - var numberDate = {}; + var RedBlackTree = (function () { + var RED = "RED", BLACK = "BLACK"; - function addInterval(interval) { - numberDate[interval + "sFromNow"] = function (val) { - return date.add(new Date(), interval, val); + var isRed = function (node) { + return node !== null && node.red; }; - numberDate[interval + "sAgo"] = function (val) { - return date.add(new Date(), interval, -val); + + var makeNode = function (data) { + return { + data: data, + red: true, + left: null, + right: null + }; }; - } - var intervals = ["year", "month", "day", "hour", "minute", "second"]; - for (var i = 0, l = intervals.length; i < l; i++) { - addInterval(intervals[i]); - } + var insert = function (root, data, compare) { + if (!root) { + return makeNode(data); - var stringDate = { + } else { + var cmp = compare(data, root.data); + if (cmp) { + var dir = cmp === -1 ? "left" : "right"; + var otherDir = dir === "left" ? "right" : "left"; + root[dir] = insert(root[dir], data, compare); + var node = root[dir]; - parseDate: function (dateStr, format) { - if (!format) { - throw new Error('format required when calling dateExtender.parse'); - } - var tokens = [], regexp = buildDateEXP(format, tokens), - re = new RegExp("^" + regexp + "$", "i"), - match = re.exec(dateStr); - if (!match) { - return null; - } // null - var result = [1970, 0, 1, 0, 0, 0, 0], // will get converted to a Date at the end - amPm = "", - valid = every(match, function (v, i) { - if (i) { - var token = tokens[i - 1]; - var l = token.length, type = token.charAt(0); - if (type === 'y') { - if (v < 100) { - v = parseInt(v, 10); - //choose century to apply, according to a sliding window - //of 80 years before and 20 years after present year - var year = '' + new Date().getFullYear(), - century = year.substring(0, 2) * 100, - cutoff = min(year.substring(2, 4) + 20, 99); - result[0] = (v < cutoff) ? century + v : century - 100 + v; - } else { - result[0] = v; - } - } else if (type === "M") { - if (l > 2) { - var months = monthNames, j, k; - if (l === 3) { - months = monthAbbr; - } - //Tolerate abbreviating period in month part - //Case-insensitive comparison - v = v.replace(".", "").toLowerCase(); - var contains = false; - for (j = 0, k = months.length; j < k && !contains; j++) { - var s = months[j].replace(".", "").toLocaleLowerCase(); - if (s === v) { - v = j; - contains = true; - } - } - if (!contains) { - return false; - } - } else { - v--; - } - result[1] = v; - } else if (type === "E" || type === "e") { - var days = dayNames; - if (l === 3) { - days = dayAbbr; - } - //Case-insensitive comparison - v = v.toLowerCase(); - days = array.map(days, function (d) { - return d.toLowerCase(); - }); - var d = array.indexOf(days, v); - if (d === -1) { - v = parseInt(v, 10); - if (isNaN(v) || v > days.length) { - return false; - } - } else { - v = d; - } - } else if (type === 'D' || type === "d") { - if (type === "D") { - result[1] = 0; - } - result[2] = v; - } else if (type === "a") { - var am = "am"; - var pm = "pm"; - var period = /\./g; - v = v.replace(period, '').toLowerCase(); - // we might not have seen the hours field yet, so store the state and apply hour change later - amPm = (v === pm) ? 'p' : (v === am) ? 'a' : ''; - } else if (type === "k" || type === "h" || type === "H" || type === "K") { - if (type === "k" && (+v) === 24) { - v = 0; + if (isRed(node)) { + + var sibling = root[otherDir]; + if (isRed(sibling)) { + /* Case 1 */ + root.red = true; + node.red = false; + sibling.red = false; + } else { + + if (isRed(node[dir])) { + + root = rotateSingle(root, otherDir); + } else if (isRed(node[otherDir])) { + + root = rotateDouble(root, otherDir); } - result[3] = v; - } else if (type === "m") { - result[4] = v; - } else if (type === "s") { - result[5] = v; - } else if (type === "S") { - result[6] = v; } + } - return true; - }); - if (valid) { - var hours = +result[3]; - //account for am/pm - if (amPm === 'p' && hours < 12) { - result[3] = hours + 12; //e.g., 3pm -> 15 - } else if (amPm === 'a' && hours === 12) { - result[3] = 0; //12am -> 0 - } - var dateObject = new Date(result[0], result[1], result[2], result[3], result[4], result[5], result[6]); // Date - var dateToken = (array.indexOf(tokens, 'd') !== -1), - monthToken = (array.indexOf(tokens, 'M') !== -1), - month = result[1], - day = result[2], - dateMonth = dateObject.getMonth(), - dateDay = dateObject.getDate(); - if ((monthToken && dateMonth > month) || (dateToken && dateDay > day)) { - return null; } - return dateObject; // Date + } + return root; + }; + + var rotateSingle = function (root, dir) { + var otherDir = dir === "left" ? "right" : "left"; + var save = root[otherDir]; + root[otherDir] = save[dir]; + save[dir] = root; + root.red = true; + save.red = false; + return save; + }; + + var rotateDouble = function (root, dir) { + var otherDir = dir === "left" ? "right" : "left"; + root[otherDir] = rotateSingle(root[otherDir], otherDir); + return rotateSingle(root, dir); + }; + + + var remove = function (root, data, done, compare) { + if (!root) { + done.done = true; } else { - return null; + var dir; + if (compare(data, root.data) === 0) { + if (!root.left || !root.right) { + var save = root[!root.left ? "right" : "left"]; + /* Case 0 */ + if (isRed(root)) { + done.done = true; + } else if (isRed(save)) { + save.red = false; + done.done = true; + } + return save; + } + else { + var heir = root.right, p; + while (heir.left !== null) { + p = heir; + heir = heir.left; + } + if (p) { + p.left = null; + } + root.data = heir.data; + data = heir.data; + } + } + dir = compare(data, root.data) === -1 ? "left" : "right"; + root[dir] = remove(root[dir], data, done, compare); + if (!done.done) { + root = removeBalance(root, dir, done); + } } - } + return root; + }; + + var removeBalance = function (root, dir, done) { + var notDir = dir === "left" ? "right" : "left"; + var p = root, s = p[notDir]; + if (isRed(s)) { + root = rotateSingle(root, dir); + s = p[notDir]; + } + if (s !== null) { + if (!isRed(s.left) && !isRed(s.right)) { + if (isRed(p)) { + done.done = true; + } + p.red = 0; + s.red = 1; + } else { + var save = p.red, newRoot = ( root === p ); + p = (isRed(s[notDir]) ? rotateSingle : rotateDouble)(p, dir); + p.red = save; + p.left.red = p.right.red = 0; + if (newRoot) { + root = p; + } else { + root[dir] = p; + } + done.done = true; + } + } + return root; + }; + + return Tree.extend({ + instance: { + insert: function (data) { + this.__root = insert(this.__root, data, this.compare); + this.__root.red = false; + }, + + remove: function (data) { + var done = {done: false}; + var root = remove(this.__root, data, done, this.compare); + if (root !== null) { + root.red = 0; + } + this.__root = root; + return data; + }, + + + __printNode: function (node, level) { + var str = []; + if (!node) { + str.push(multiply('\t', level)); + str.push("~"); + console.log(str.join("")); + } else { + this.__printNode(node.right, level + 1); + str.push(multiply('\t', level)); + str.push((node.red ? RED : BLACK) + ":" + node.data + "\n"); + console.log(str.join("")); + this.__printNode(node.left, level + 1); + } + } + + } + }); + + }()); + + + return { + Tree: Tree, + AVLTree: AVLTree, + AnderssonTree: AnderssonTree, + BinaryTree: BinaryTree, + RedBlackTree: RedBlackTree, + IN_ORDER: Tree.IN_ORDER, + PRE_ORDER: Tree.PRE_ORDER, + POST_ORDER: Tree.POST_ORDER, + REVERSE_ORDER: Tree.REVERSE_ORDER + }; + } + if (true) { + if ( true && module.exports) { + module.exports = defineLeafy(__nested_webpack_require_1894849__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js")() + .register("declare", __nested_webpack_require_1894849__(/*! declare.js */ "./build/cht-core-4-6/node_modules/declare.js/index.js")) + .register(__nested_webpack_require_1894849__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js")) + .register(__nested_webpack_require_1894849__(/*! array-extended */ "./build/cht-core-4-6/node_modules/array-extended/index.js")) + .register(__nested_webpack_require_1894849__(/*! string-extended */ "./build/cht-core-4-6/node_modules/string-extended/index.js")) + ); - var ret = extended.define(is.isDate, date).define(is.isString, stringDate).define(is.isNumber, numberDate); - for (i in date) { - if (date.hasOwnProperty(i)) { - ret[i] = date[i]; - } } + } else {} - for (i in stringDate) { - if (stringDate.hasOwnProperty(i)) { - ret[i] = stringDate[i]; - } - } - for (i in numberDate) { - if (numberDate.hasOwnProperty(i)) { - ret[i] = numberDate[i]; - } - } - return ret; - } +}).call(this); + + + + + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_DataView.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_DataView.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1929643__) => { + +var getNative = __nested_webpack_require_1929643__(/*! ./_getNative */ "./build/cht-core-4-6/node_modules/lodash/_getNative.js"), + root = __nested_webpack_require_1929643__(/*! ./_root */ "./build/cht-core-4-6/node_modules/lodash/_root.js"); - if (true) { - if ( true && module.exports) { - module.exports = defineDate(__webpack_require__(/*! extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extended/index.js"), __webpack_require__(/*! is-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/is-extended/index.js"), __webpack_require__(/*! array-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/array-extended/index.js")); +/* Built-in method references that are verified to be native. */ +var DataView = getNative(root, 'DataView'); - } - } else {} +module.exports = DataView; -}).call(this); +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_Hash.js": +/*!*********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_Hash.js ***! + \*********************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1930325__) => { +var hashClear = __nested_webpack_require_1930325__(/*! ./_hashClear */ "./build/cht-core-4-6/node_modules/lodash/_hashClear.js"), + hashDelete = __nested_webpack_require_1930325__(/*! ./_hashDelete */ "./build/cht-core-4-6/node_modules/lodash/_hashDelete.js"), + hashGet = __nested_webpack_require_1930325__(/*! ./_hashGet */ "./build/cht-core-4-6/node_modules/lodash/_hashGet.js"), + hashHas = __nested_webpack_require_1930325__(/*! ./_hashHas */ "./build/cht-core-4-6/node_modules/lodash/_hashHas.js"), + hashSet = __nested_webpack_require_1930325__(/*! ./_hashSet */ "./build/cht-core-4-6/node_modules/lodash/_hashSet.js"); +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} +// Add methods to `Hash`. +Hash.prototype.clear = hashClear; +Hash.prototype['delete'] = hashDelete; +Hash.prototype.get = hashGet; +Hash.prototype.has = hashHas; +Hash.prototype.set = hashSet; +module.exports = Hash; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/declare.js/declare.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/declare.js/declare.js ***! - \***********************************************************************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_ListCache.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_ListCache.js ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1931786__) => { -(function () { +var listCacheClear = __nested_webpack_require_1931786__(/*! ./_listCacheClear */ "./build/cht-core-4-6/node_modules/lodash/_listCacheClear.js"), + listCacheDelete = __nested_webpack_require_1931786__(/*! ./_listCacheDelete */ "./build/cht-core-4-6/node_modules/lodash/_listCacheDelete.js"), + listCacheGet = __nested_webpack_require_1931786__(/*! ./_listCacheGet */ "./build/cht-core-4-6/node_modules/lodash/_listCacheGet.js"), + listCacheHas = __nested_webpack_require_1931786__(/*! ./_listCacheHas */ "./build/cht-core-4-6/node_modules/lodash/_listCacheHas.js"), + listCacheSet = __nested_webpack_require_1931786__(/*! ./_listCacheSet */ "./build/cht-core-4-6/node_modules/lodash/_listCacheSet.js"); - /** - * @projectName declare - * @github http://github.com/doug-martin/declare.js - * @header - * - * Declare is a library designed to allow writing object oriented code the same way in both the browser and node.js. - * - * ##Installation - * - * `npm install declare.js` - * - * Or [download the source](https://raw.github.com/doug-martin/declare.js/master/declare.js) ([minified](https://raw.github.com/doug-martin/declare.js/master/declare-min.js)) - * - * ###Requirejs - * - * To use with requirejs place the `declare` source in the root scripts directory - * - * ``` - * - * define(["declare"], function(declare){ - * return declare({ - * instance : { - * hello : function(){ - * return "world"; - * } - * } - * }); - * }); - * - * ``` - * - * - * ##Usage - * - * declare.js provides - * - * Class methods - * - * * `as(module | object, name)` : exports the object to module or the object with the name - * * `mixin(mixin)` : mixes in an object but does not inherit directly from the object. **Note** this does not return a new class but changes the original class. - * * `extend(proto)` : extend a class with the given properties. A shortcut to `declare(Super, {})`; - * - * Instance methods - * - * * `_super(arguments)`: calls the super of the current method, you can pass in either the argments object or an array with arguments you want passed to super - * * `_getSuper()`: returns a this methods direct super. - * * `_static` : use to reference class properties and methods. - * * `get(prop)` : gets a property invoking the getter if it exists otherwise it just returns the named property on the object. - * * `set(prop, val)` : sets a property invoking the setter if it exists otherwise it just sets the named property on the object. - * - * - * ###Declaring a new Class - * - * Creating a new class with declare is easy! - * - * ``` - * - * var Mammal = declare({ - * //define your instance methods and properties - * instance : { - * - * //will be called whenever a new instance is created - * constructor: function(options) { - * options = options || {}; - * this._super(arguments); - * this._type = options.type || "mammal"; - * }, - * - * speak : function() { - * return "A mammal of type " + this._type + " sounds like"; - * }, - * - * //Define your getters - * getters : { - * - * //can be accessed by using the get method. (mammal.get("type")) - * type : function() { - * return this._type; - * } - * }, - * - * //Define your setters - * setters : { - * - * //can be accessed by using the set method. (mammal.set("type", "mammalType")) - * type : function(t) { - * this._type = t; - * } - * } - * }, - * - * //Define your static methods - * static : { - * - * //Mammal.soundOff(); //"Im a mammal!!" - * soundOff : function() { - * return "Im a mammal!!"; - * } - * } - * }); - * - * - * ``` - * - * You can use Mammal just like you would any other class. - * - * ``` - * Mammal.soundOff("Im a mammal!!"); - * - * var myMammal = new Mammal({type : "mymammal"}); - * myMammal.speak(); // "A mammal of type mymammal sounds like" - * myMammal.get("type"); //"mymammal" - * myMammal.set("type", "mammal"); - * myMammal.get("type"); //"mammal" - * - * - * ``` - * - * ###Extending a class - * - * If you want to just extend a single class use the .extend method. - * - * ``` - * - * var Wolf = Mammal.extend({ - * - * //define your instance method - * instance: { - * - * //You can override super constructors just be sure to call `_super` - * constructor: function(options) { - * options = options || {}; - * this._super(arguments); //call our super constructor. - * this._sound = "growl"; - * this._color = options.color || "grey"; - * }, - * - * //override Mammals `speak` method by appending our own data to it. - * speak : function() { - * return this._super(arguments) + " a " + this._sound; - * }, - * - * //add new getters for sound and color - * getters : { - * - * //new Wolf().get("type") - * //notice color is read only as we did not define a setter - * color : function() { - * return this._color; - * }, - * - * //new Wolf().get("sound") - * sound : function() { - * return this._sound; - * } - * }, - * - * setters : { - * - * //new Wolf().set("sound", "howl") - * sound : function(s) { - * this._sound = s; - * } - * } - * - * }, - * - * static : { - * - * //You can override super static methods also! And you can still use _super - * soundOff : function() { - * //You can even call super in your statics!!! - * //should return "I'm a mammal!! that growls" - * return this._super(arguments) + " that growls"; - * } - * } - * }); - * - * Wolf.soundOff(); //Im a mammal!! that growls - * - * var myWolf = new Wolf(); - * myWolf instanceof Mammal //true - * myWolf instanceof Wolf //true - * - * ``` - * - * You can also extend a class by using the declare method and just pass in the super class. - * - * ``` - * //Typical hierarchical inheritance - * // Mammal->Wolf->Dog - * var Dog = declare(Wolf, { - * instance: { - * constructor: function(options) { - * options = options || {}; - * this._super(arguments); - * //override Wolfs initialization of sound to woof. - * this._sound = "woof"; - * - * }, - * - * speak : function() { - * //Should return "A mammal of type mammal sounds like a growl thats domesticated" - * return this._super(arguments) + " thats domesticated"; - * } - * }, - * - * static : { - * soundOff : function() { - * //should return "I'm a mammal!! that growls but now barks" - * return this._super(arguments) + " but now barks"; - * } - * } - * }); - * - * Dog.soundOff(); //Im a mammal!! that growls but now barks - * - * var myDog = new Dog(); - * myDog instanceof Mammal //true - * myDog instanceof Wolf //true - * myDog instanceof Dog //true - * - * - * //Notice you still get the extend method. - * - * // Mammal->Wolf->Dog->Breed - * var Breed = Dog.extend({ - * instance: { - * - * //initialize outside of constructor - * _pitch : "high", - * - * constructor: function(options) { - * options = options || {}; - * this._super(arguments); - * this.breed = options.breed || "lab"; - * }, - * - * speak : function() { - * //Should return "A mammal of type mammal sounds like a - * //growl thats domesticated with a high pitch!" - * return this._super(arguments) + " with a " + this._pitch + " pitch!"; - * }, - * - * getters : { - * pitch : function() { - * return this._pitch; - * } - * } - * }, - * - * static : { - * soundOff : function() { - * //should return "I'M A MAMMAL!! THAT GROWLS BUT NOW BARKS!" - * return this._super(arguments).toUpperCase() + "!"; - * } - * } - * }); - * - * - * Breed.soundOff()//"IM A MAMMAL!! THAT GROWLS BUT NOW BARKS!" - * - * var myBreed = new Breed({color : "gold", type : "lab"}), - * myBreed instanceof Dog //true - * myBreed instanceof Wolf //true - * myBreed instanceof Mammal //true - * myBreed.speak() //"A mammal of type lab sounds like a woof thats domesticated with a high pitch!" - * myBreed.get("type") //"lab" - * myBreed.get("color") //"gold" - * myBreed.get("sound")" //"woof" - * ``` - * - * ###Multiple Inheritance / Mixins - * - * declare also allows the use of multiple super classes. - * This is useful if you have generic classes that provide functionality but shouldnt be used on their own. - * - * Lets declare a mixin that allows us to watch for property changes. - * - * ``` - * //Notice that we set up the functions outside of declare because we can reuse them - * - * function _set(prop, val) { - * //get the old value - * var oldVal = this.get(prop); - * //call super to actually set the property - * var ret = this._super(arguments); - * //call our handlers - * this.__callHandlers(prop, oldVal, val); - * return ret; - * } - * - * function _callHandlers(prop, oldVal, newVal) { - * //get our handlers for the property - * var handlers = this.__watchers[prop], l; - * //if the handlers exist and their length does not equal 0 then we call loop through them - * if (handlers && (l = handlers.length) !== 0) { - * for (var i = 0; i < l; i++) { - * //call the handler - * handlers[i].call(null, prop, oldVal, newVal); - * } - * } - * } - * - * - * //the watch function - * function _watch(prop, handler) { - * if ("function" !== typeof handler) { - * //if its not a function then its an invalid handler - * throw new TypeError("Invalid handler."); - * } - * if (!this.__watchers[prop]) { - * //create the watchers if it doesnt exist - * this.__watchers[prop] = [handler]; - * } else { - * //otherwise just add it to the handlers array - * this.__watchers[prop].push(handler); - * } - * } - * - * function _unwatch(prop, handler) { - * if ("function" !== typeof handler) { - * throw new TypeError("Invalid handler."); - * } - * var handlers = this.__watchers[prop], index; - * if (handlers && (index = handlers.indexOf(handler)) !== -1) { - * //remove the handler if it is found - * handlers.splice(index, 1); - * } - * } - * - * declare({ - * instance:{ - * constructor:function () { - * this._super(arguments); - * //set up our watchers - * this.__watchers = {}; - * }, - * - * //override the default set function so we can watch values - * "set":_set, - * //set up our callhandlers function - * __callHandlers:_callHandlers, - * //add the watch function - * watch:_watch, - * //add the unwatch function - * unwatch:_unwatch - * }, - * - * "static":{ - * - * init:function () { - * this._super(arguments); - * this.__watchers = {}; - * }, - * //override the default set function so we can watch values - * "set":_set, - * //set our callHandlers function - * __callHandlers:_callHandlers, - * //add the watch - * watch:_watch, - * //add the unwatch function - * unwatch:_unwatch - * } - * }) - * - * ``` - * - * Now lets use the mixin - * - * ``` - * var WatchDog = declare([Dog, WatchMixin]); - * - * var watchDog = new WatchDog(); - * //create our handler - * function watch(id, oldVal, newVal) { - * console.log("watchdog's %s was %s, now %s", id, oldVal, newVal); - * } - * - * //watch for property changes - * watchDog.watch("type", watch); - * watchDog.watch("color", watch); - * watchDog.watch("sound", watch); - * - * //now set the properties each handler will be called - * watchDog.set("type", "newDog"); - * watchDog.set("color", "newColor"); - * watchDog.set("sound", "newSound"); - * - * - * //unwatch the property changes - * watchDog.unwatch("type", watch); - * watchDog.unwatch("color", watch); - * watchDog.unwatch("sound", watch); - * - * //no handlers will be called this time - * watchDog.set("type", "newDog"); - * watchDog.set("color", "newColor"); - * watchDog.set("sound", "newSound"); - * - * - * ``` - * - * ###Accessing static methods and properties witin an instance. - * - * To access static properties on an instance use the `_static` property which is a reference to your constructor. - * - * For example if your in your constructor and you want to have configurable default values. - * - * ``` - * consturctor : function constructor(opts){ - * this.opts = opts || {}; - * this._type = opts.type || this._static.DEFAULT_TYPE; - * } - * ``` - * - * - * - * ###Creating a new instance of within an instance. - * - * Often times you want to create a new instance of an object within an instance. If your subclassed however you cannot return a new instance of the parent class as it will not be the right sub class. `declare` provides a way around this by setting the `_static` property on each isntance of the class. - * - * Lets add a reproduce method `Mammal` - * - * ``` - * reproduce : function(options){ - * return new this._static(options); - * } - * ``` - * - * Now in each subclass you can call reproduce and get the proper type. - * - * ``` - * var myDog = new Dog(); - * var myDogsChild = myDog.reproduce(); - * - * myDogsChild instanceof Dog; //true - * ``` - * - * ###Using the `as` - * - * `declare` also provides an `as` method which allows you to add your class to an object or if your using node.js you can pass in `module` and the class will be exported as the module. - * - * ``` - * var animals = {}; - * - * Mammal.as(animals, "Dog"); - * Wolf.as(animals, "Wolf"); - * Dog.as(animals, "Dog"); - * Breed.as(animals, "Breed"); - * - * var myDog = new animals.Dog(); - * - * ``` - * - * Or in node - * - * ``` - * Mammal.as(exports, "Dog"); - * Wolf.as(exports, "Wolf"); - * Dog.as(exports, "Dog"); - * Breed.as(exports, "Breed"); - * - * ``` - * - * To export a class as the `module` in node - * - * ``` - * Mammal.as(module); - * ``` - * - * - */ - function createDeclared() { - var arraySlice = Array.prototype.slice, classCounter = 0, Base, forceNew = new Function(); +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; - var SUPER_REGEXP = /(super)/g; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} - function argsToArray(args, slice) { - slice = slice || 0; - return arraySlice.call(args, slice); - } +// Add methods to `ListCache`. +ListCache.prototype.clear = listCacheClear; +ListCache.prototype['delete'] = listCacheDelete; +ListCache.prototype.get = listCacheGet; +ListCache.prototype.has = listCacheHas; +ListCache.prototype.set = listCacheSet; - function isArray(obj) { - return Object.prototype.toString.call(obj) === "[object Array]"; - } +module.exports = ListCache; - function isObject(obj) { - var undef; - return obj !== null && obj !== undef && typeof obj === "object"; - } - function isHash(obj) { - var ret = isObject(obj); - return ret && obj.constructor === Object; - } +/***/ }), - var isArguments = function _isArguments(object) { - return Object.prototype.toString.call(object) === '[object Arguments]'; - }; +/***/ "./build/cht-core-4-6/node_modules/lodash/_Map.js": +/*!********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_Map.js ***! + \********************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1933370__) => { - if (!isArguments(arguments)) { - isArguments = function _isArguments(obj) { - return !!(obj && obj.hasOwnProperty("callee")); - }; - } +var getNative = __nested_webpack_require_1933370__(/*! ./_getNative */ "./build/cht-core-4-6/node_modules/lodash/_getNative.js"), + root = __nested_webpack_require_1933370__(/*! ./_root */ "./build/cht-core-4-6/node_modules/lodash/_root.js"); - function indexOf(arr, item) { - if (arr && arr.length) { - for (var i = 0, l = arr.length; i < l; i++) { - if (arr[i] === item) { - return i; - } - } - } - return -1; - } +/* Built-in method references that are verified to be native. */ +var Map = getNative(root, 'Map'); - function merge(target, source, exclude) { - var name, s; - for (name in source) { - if (source.hasOwnProperty(name) && indexOf(exclude, name) === -1) { - s = source[name]; - if (!(name in target) || (target[name] !== s)) { - target[name] = s; - } - } - } - return target; - } +module.exports = Map; - function callSuper(args, a) { - var meta = this.__meta, - supers = meta.supers, - l = supers.length, superMeta = meta.superMeta, pos = superMeta.pos; - if (l > pos) { - args = !args ? [] : (!isArguments(args) && !isArray(args)) ? [args] : args; - var name = superMeta.name, f = superMeta.f, m; - do { - m = supers[pos][name]; - if ("function" === typeof m && (m = m._f || m) !== f) { - superMeta.pos = 1 + pos; - return m.apply(this, args); - } - } while (l > ++pos); - } - return null; - } +/***/ }), - function getSuper() { - var meta = this.__meta, - supers = meta.supers, - l = supers.length, superMeta = meta.superMeta, pos = superMeta.pos; - if (l > pos) { - var name = superMeta.name, f = superMeta.f, m; - do { - m = supers[pos][name]; - if ("function" === typeof m && (m = m._f || m) !== f) { - superMeta.pos = 1 + pos; - return m.bind(this); - } - } while (l > ++pos); - } - return null; - } +/***/ "./build/cht-core-4-6/node_modules/lodash/_MapCache.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_MapCache.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1934053__) => { - function getter(name) { - var getters = this.__getters__; - if (getters.hasOwnProperty(name)) { - return getters[name].apply(this); - } else { - return this[name]; - } - } +var mapCacheClear = __nested_webpack_require_1934053__(/*! ./_mapCacheClear */ "./build/cht-core-4-6/node_modules/lodash/_mapCacheClear.js"), + mapCacheDelete = __nested_webpack_require_1934053__(/*! ./_mapCacheDelete */ "./build/cht-core-4-6/node_modules/lodash/_mapCacheDelete.js"), + mapCacheGet = __nested_webpack_require_1934053__(/*! ./_mapCacheGet */ "./build/cht-core-4-6/node_modules/lodash/_mapCacheGet.js"), + mapCacheHas = __nested_webpack_require_1934053__(/*! ./_mapCacheHas */ "./build/cht-core-4-6/node_modules/lodash/_mapCacheHas.js"), + mapCacheSet = __nested_webpack_require_1934053__(/*! ./_mapCacheSet */ "./build/cht-core-4-6/node_modules/lodash/_mapCacheSet.js"); - function setter(name, val) { - var setters = this.__setters__; - if (isHash(name)) { - for (var i in name) { - var prop = name[i]; - if (setters.hasOwnProperty(i)) { - setters[name].call(this, prop); - } else { - this[i] = prop; - } - } - } else { - if (setters.hasOwnProperty(name)) { - return setters[name].apply(this, argsToArray(arguments, 1)); - } else { - return this[name] = val; - } - } - } +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} - function defaultFunction() { - var meta = this.__meta || {}, - supers = meta.supers, - l = supers.length, superMeta = meta.superMeta, pos = superMeta.pos; - if (l > pos) { - var name = superMeta.name, f = superMeta.f, m; - do { - m = supers[pos][name]; - if ("function" === typeof m && (m = m._f || m) !== f) { - superMeta.pos = 1 + pos; - return m.apply(this, arguments); - } - } while (l > ++pos); - } - return null; - } +// Add methods to `MapCache`. +MapCache.prototype.clear = mapCacheClear; +MapCache.prototype['delete'] = mapCacheDelete; +MapCache.prototype.get = mapCacheGet; +MapCache.prototype.has = mapCacheHas; +MapCache.prototype.set = mapCacheSet; +module.exports = MapCache; - function functionWrapper(f, name) { - if (f.toString().match(SUPER_REGEXP)) { - var wrapper = function wrapper() { - var ret, meta = this.__meta || {}; - var orig = meta.superMeta; - meta.superMeta = {f: f, pos: 0, name: name}; - switch (arguments.length) { - case 0: - ret = f.call(this); - break; - case 1: - ret = f.call(this, arguments[0]); - break; - case 2: - ret = f.call(this, arguments[0], arguments[1]); - break; - case 3: - ret = f.call(this, arguments[0], arguments[1], arguments[2]); - break; - default: - ret = f.apply(this, arguments); - } - meta.superMeta = orig; - return ret; - }; - wrapper._f = f; - return wrapper; - } else { - f._f = f; - return f; - } - } +/***/ }), - function defineMixinProps(child, proto) { +/***/ "./build/cht-core-4-6/node_modules/lodash/_Promise.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_Promise.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1935648__) => { - var operations = proto.setters || {}, __setters = child.__setters__, __getters = child.__getters__; - for (var i in operations) { - if (!__setters.hasOwnProperty(i)) { //make sure that the setter isnt already there - __setters[i] = operations[i]; - } - } - operations = proto.getters || {}; - for (i in operations) { - if (!__getters.hasOwnProperty(i)) { //make sure that the setter isnt already there - __getters[i] = operations[i]; - } - } - for (var j in proto) { - if (j !== "getters" && j !== "setters") { - var p = proto[j]; - if ("function" === typeof p) { - if (!child.hasOwnProperty(j)) { - child[j] = functionWrapper(defaultFunction, j); - } - } else { - child[j] = p; - } - } - } - } +var getNative = __nested_webpack_require_1935648__(/*! ./_getNative */ "./build/cht-core-4-6/node_modules/lodash/_getNative.js"), + root = __nested_webpack_require_1935648__(/*! ./_root */ "./build/cht-core-4-6/node_modules/lodash/_root.js"); - function mixin() { - var args = argsToArray(arguments), l = args.length; - var child = this.prototype; - var childMeta = child.__meta, thisMeta = this.__meta, bases = child.__meta.bases, staticBases = bases.slice(), - staticSupers = thisMeta.supers || [], supers = childMeta.supers || []; - for (var i = 0; i < l; i++) { - var m = args[i], mProto = m.prototype; - var protoMeta = mProto.__meta, meta = m.__meta; - !protoMeta && (protoMeta = (mProto.__meta = {proto: mProto || {}})); - !meta && (meta = (m.__meta = {proto: m.__proto__ || {}})); - defineMixinProps(child, protoMeta.proto || {}); - defineMixinProps(this, meta.proto || {}); - //copy the bases for static, +/* Built-in method references that are verified to be native. */ +var Promise = getNative(root, 'Promise'); - mixinSupers(m.prototype, supers, bases); - mixinSupers(m, staticSupers, staticBases); - } - return this; - } +module.exports = Promise; - function mixinSupers(sup, arr, bases) { - var meta = sup.__meta; - !meta && (meta = (sup.__meta = {})); - var unique = sup.__meta.unique; - !unique && (meta.unique = "declare" + ++classCounter); - //check it we already have this super mixed into our prototype chain - //if true then we have already looped their supers! - if (indexOf(bases, unique) === -1) { - //add their id to our bases - bases.push(unique); - var supers = sup.__meta.supers || [], i = supers.length - 1 || 0; - while (i >= 0) { - mixinSupers(supers[i--], arr, bases); - } - arr.unshift(sup); - } - } - function defineProps(child, proto) { - var operations = proto.setters, - __setters = child.__setters__, - __getters = child.__getters__; - if (operations) { - for (var i in operations) { - __setters[i] = operations[i]; - } - } - operations = proto.getters || {}; - if (operations) { - for (i in operations) { - __getters[i] = operations[i]; - } - } - for (i in proto) { - if (i != "getters" && i != "setters") { - var f = proto[i]; - if ("function" === typeof f) { - var meta = f.__meta || {}; - if (!meta.isConstructor) { - child[i] = functionWrapper(f, i); - } else { - child[i] = f; - } - } else { - child[i] = f; - } - } - } +/***/ }), - } +/***/ "./build/cht-core-4-6/node_modules/lodash/_Set.js": +/*!********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_Set.js ***! + \********************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1936323__) => { - function _export(obj, name) { - if (obj && name) { - obj[name] = this; - } else { - obj.exports = obj = this; - } - return this; - } +var getNative = __nested_webpack_require_1936323__(/*! ./_getNative */ "./build/cht-core-4-6/node_modules/lodash/_getNative.js"), + root = __nested_webpack_require_1936323__(/*! ./_root */ "./build/cht-core-4-6/node_modules/lodash/_root.js"); - function extend(proto) { - return declare(this, proto); - } +/* Built-in method references that are verified to be native. */ +var Set = getNative(root, 'Set'); - function getNew(ctor) { - // create object with correct prototype using a do-nothing - // constructor - forceNew.prototype = ctor.prototype; - var t = new forceNew(); - forceNew.prototype = null; // clean up - return t; - } +module.exports = Set; - function __declare(child, sup, proto) { - var childProto = {}, supers = []; - var unique = "declare" + ++classCounter, bases = [], staticBases = []; - var instanceSupers = [], staticSupers = []; - var meta = { - supers: instanceSupers, - unique: unique, - bases: bases, - superMeta: { - f: null, - pos: 0, - name: null - } - }; - var childMeta = { - supers: staticSupers, - unique: unique, - bases: staticBases, - isConstructor: true, - superMeta: { - f: null, - pos: 0, - name: null - } - }; +/***/ }), - if (isHash(sup) && !proto) { - proto = sup; - sup = Base; - } +/***/ "./build/cht-core-4-6/node_modules/lodash/_SetCache.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_SetCache.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1937006__) => { - if ("function" === typeof sup || isArray(sup)) { - supers = isArray(sup) ? sup : [sup]; - sup = supers.shift(); - child.__meta = childMeta; - childProto = getNew(sup); - childProto.__meta = meta; - childProto.__getters__ = merge({}, childProto.__getters__ || {}); - childProto.__setters__ = merge({}, childProto.__setters__ || {}); - child.__getters__ = merge({}, child.__getters__ || {}); - child.__setters__ = merge({}, child.__setters__ || {}); - mixinSupers(sup.prototype, instanceSupers, bases); - mixinSupers(sup, staticSupers, staticBases); - } else { - child.__meta = childMeta; - childProto.__meta = meta; - childProto.__getters__ = childProto.__getters__ || {}; - childProto.__setters__ = childProto.__setters__ || {}; - child.__getters__ = child.__getters__ || {}; - child.__setters__ = child.__setters__ || {}; - } - child.prototype = childProto; - if (proto) { - var instance = meta.proto = proto.instance || {}; - var stat = childMeta.proto = proto.static || {}; - stat.init = stat.init || defaultFunction; - defineProps(childProto, instance); - defineProps(child, stat); - if (!instance.hasOwnProperty("constructor")) { - childProto.constructor = instance.constructor = functionWrapper(defaultFunction, "constructor"); - } else { - childProto.constructor = functionWrapper(instance.constructor, "constructor"); - } - } else { - meta.proto = {}; - childMeta.proto = {}; - child.init = functionWrapper(defaultFunction, "init"); - childProto.constructor = functionWrapper(defaultFunction, "constructor"); - } - if (supers.length) { - mixin.apply(child, supers); - } - if (sup) { - //do this so we mixin our super methods directly but do not ov - merge(child, merge(merge({}, sup), child)); - } - childProto._super = child._super = callSuper; - childProto._getSuper = child._getSuper = getSuper; - childProto._static = child; - } +var MapCache = __nested_webpack_require_1937006__(/*! ./_MapCache */ "./build/cht-core-4-6/node_modules/lodash/_MapCache.js"), + setCacheAdd = __nested_webpack_require_1937006__(/*! ./_setCacheAdd */ "./build/cht-core-4-6/node_modules/lodash/_setCacheAdd.js"), + setCacheHas = __nested_webpack_require_1937006__(/*! ./_setCacheHas */ "./build/cht-core-4-6/node_modules/lodash/_setCacheHas.js"); - function declare(sup, proto) { - function declared() { - switch (arguments.length) { - case 0: - this.constructor.call(this); - break; - case 1: - this.constructor.call(this, arguments[0]); - break; - case 2: - this.constructor.call(this, arguments[0], arguments[1]); - break; - case 3: - this.constructor.call(this, arguments[0], arguments[1], arguments[2]); - break; - default: - this.constructor.apply(this, arguments); - } - } +/** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ +function SetCache(values) { + var index = -1, + length = values == null ? 0 : values.length; - __declare(declared, sup, proto); - return declared.init() || declared; - } + this.__data__ = new MapCache; + while (++index < length) { + this.add(values[index]); + } +} - function singleton(sup, proto) { - var retInstance; +// Add methods to `SetCache`. +SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; +SetCache.prototype.has = setCacheHas; - function declaredSingleton() { - if (!retInstance) { - this.constructor.apply(this, arguments); - retInstance = this; - } - return retInstance; - } +module.exports = SetCache; - __declare(declaredSingleton, sup, proto); - return declaredSingleton.init() || declaredSingleton; - } - Base = declare({ - instance: { - "get": getter, - "set": setter - }, +/***/ }), - "static": { - "get": getter, - "set": setter, - mixin: mixin, - extend: extend, - as: _export - } - }); +/***/ "./build/cht-core-4-6/node_modules/lodash/_Stack.js": +/*!**********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_Stack.js ***! + \**********************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1938196__) => { - declare.singleton = singleton; - return declare; - } +var ListCache = __nested_webpack_require_1938196__(/*! ./_ListCache */ "./build/cht-core-4-6/node_modules/lodash/_ListCache.js"), + stackClear = __nested_webpack_require_1938196__(/*! ./_stackClear */ "./build/cht-core-4-6/node_modules/lodash/_stackClear.js"), + stackDelete = __nested_webpack_require_1938196__(/*! ./_stackDelete */ "./build/cht-core-4-6/node_modules/lodash/_stackDelete.js"), + stackGet = __nested_webpack_require_1938196__(/*! ./_stackGet */ "./build/cht-core-4-6/node_modules/lodash/_stackGet.js"), + stackHas = __nested_webpack_require_1938196__(/*! ./_stackHas */ "./build/cht-core-4-6/node_modules/lodash/_stackHas.js"), + stackSet = __nested_webpack_require_1938196__(/*! ./_stackSet */ "./build/cht-core-4-6/node_modules/lodash/_stackSet.js"); - if (true) { - if ( true && module.exports) { - module.exports = createDeclared(); - } - } else {} -}()); +/** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; +} + +// Add methods to `Stack`. +Stack.prototype.clear = stackClear; +Stack.prototype['delete'] = stackDelete; +Stack.prototype.get = stackGet; +Stack.prototype.has = stackHas; +Stack.prototype.set = stackSet; + +module.exports = Stack; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_Symbol.js": +/*!***********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_Symbol.js ***! + \***********************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1939711__) => { + +var root = __nested_webpack_require_1939711__(/*! ./_root */ "./build/cht-core-4-6/node_modules/lodash/_root.js"); + +/** Built-in value references. */ +var Symbol = root.Symbol; + +module.exports = Symbol; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_Uint8Array.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_Uint8Array.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1940251__) => { +var root = __nested_webpack_require_1940251__(/*! ./_root */ "./build/cht-core-4-6/node_modules/lodash/_root.js"); +/** Built-in value references. */ +var Uint8Array = root.Uint8Array; +module.exports = Uint8Array; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/declare.js/index.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/declare.js/index.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_WeakMap.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_WeakMap.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1940791__) => { + +var getNative = __nested_webpack_require_1940791__(/*! ./_getNative */ "./build/cht-core-4-6/node_modules/lodash/_getNative.js"), + root = __nested_webpack_require_1940791__(/*! ./_root */ "./build/cht-core-4-6/node_modules/lodash/_root.js"); + +/* Built-in method references that are verified to be native. */ +var WeakMap = getNative(root, 'WeakMap'); + +module.exports = WeakMap; -module.exports = __webpack_require__(/*! ./declare.js */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/declare.js/declare.js"); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extended/index.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extended/index.js ***! - \*******************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/lodash/_arrayFilter.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_arrayFilter.js ***! + \****************************************************************/ +/***/ ((module) => { -(function () { - "use strict"; - /*global extender is, dateExtended*/ +/** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ +function arrayFilter(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; - function defineExtended(extender) { + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; +} +module.exports = arrayFilter; - var merge = (function merger() { - function _merge(target, source) { - var name, s; - for (name in source) { - if (source.hasOwnProperty(name)) { - s = source[name]; - if (!(name in target) || (target[name] !== s)) { - target[name] = s; - } - } - } - return target; - } - return function merge(obj) { - if (!obj) { - obj = {}; - } - for (var i = 1, l = arguments.length; i < l; i++) { - _merge(obj, arguments[i]); - } - return obj; // Object - }; - }()); +/***/ }), - function getExtended() { +/***/ "./build/cht-core-4-6/node_modules/lodash/_arrayIncludes.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_arrayIncludes.js ***! + \******************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1942448__) => { - var loaded = {}; +var baseIndexOf = __nested_webpack_require_1942448__(/*! ./_baseIndexOf */ "./build/cht-core-4-6/node_modules/lodash/_baseIndexOf.js"); +/** + * A specialized version of `_.includes` for arrays without support for + * specifying an index to search from. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ +function arrayIncludes(array, value) { + var length = array == null ? 0 : array.length; + return !!length && baseIndexOf(array, value, 0) > -1; +} - //getInitial instance; - var extended = extender.define(); - extended.expose({ - register: function register(alias, extendWith) { - if (!extendWith) { - extendWith = alias; - alias = null; - } - var type = typeof extendWith; - if (alias) { - extended[alias] = extendWith; - } else if (extendWith && type === "function") { - extended.extend(extendWith); - } else if (type === "object") { - extended.expose(extendWith); - } else { - throw new TypeError("extended.register must be called with an extender function"); - } - return extended; - }, +module.exports = arrayIncludes; - define: function () { - return extender.define.apply(extender, arguments); - } - }); - return extended; - } +/***/ }), - function extended() { - return getExtended(); - } +/***/ "./build/cht-core-4-6/node_modules/lodash/_arrayIncludesWith.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_arrayIncludesWith.js ***! + \**********************************************************************/ +/***/ ((module) => { - extended.define = function define() { - return extender.define.apply(extender, arguments); - }; +/** + * This function is like `arrayIncludes` except that it accepts a comparator. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @param {Function} comparator The comparator invoked per element. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ +function arrayIncludesWith(array, value, comparator) { + var index = -1, + length = array == null ? 0 : array.length; - return extended; + while (++index < length) { + if (comparator(value, array[index])) { + return true; } + } + return false; +} - if (true) { - if ( true && module.exports) { - module.exports = defineExtended(__webpack_require__(/*! extender */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extender/index.js")); +module.exports = arrayIncludesWith; - } - } else {} -}).call(this); +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_arrayLikeKeys.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_arrayLikeKeys.js ***! + \******************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1944364__) => { +var baseTimes = __nested_webpack_require_1944364__(/*! ./_baseTimes */ "./build/cht-core-4-6/node_modules/lodash/_baseTimes.js"), + isArguments = __nested_webpack_require_1944364__(/*! ./isArguments */ "./build/cht-core-4-6/node_modules/lodash/isArguments.js"), + isArray = __nested_webpack_require_1944364__(/*! ./isArray */ "./build/cht-core-4-6/node_modules/lodash/isArray.js"), + isBuffer = __nested_webpack_require_1944364__(/*! ./isBuffer */ "./build/cht-core-4-6/node_modules/lodash/isBuffer.js"), + isIndex = __nested_webpack_require_1944364__(/*! ./_isIndex */ "./build/cht-core-4-6/node_modules/lodash/_isIndex.js"), + isTypedArray = __nested_webpack_require_1944364__(/*! ./isTypedArray */ "./build/cht-core-4-6/node_modules/lodash/isTypedArray.js"); +/** Used for built-in method references. */ +var objectProto = Object.prototype; +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; +/** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ +function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), + isArg = !isArr && isArguments(value), + isBuff = !isArr && !isArg && isBuffer(value), + isType = !isArr && !isArg && !isBuff && isTypedArray(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? baseTimes(value.length, String) : [], + length = result.length; + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + isIndex(key, length) + ))) { + result.push(key); + } + } + return result; +} +module.exports = arrayLikeKeys; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extender/extender.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extender/extender.js ***! - \**********************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -(function () { - /*jshint strict:false*/ +/***/ "./build/cht-core-4-6/node_modules/lodash/_arrayMap.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_arrayMap.js ***! + \*************************************************************/ +/***/ ((module) => { +/** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function arrayMap(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length, + result = Array(length); - /** - * - * @projectName extender - * @github http://github.com/doug-martin/extender - * @header - * [![build status](https://secure.travis-ci.org/doug-martin/extender.png)](http://travis-ci.org/doug-martin/extender) - * # Extender - * - * `extender` is a library that helps in making chainable APIs, by creating a function that accepts different values and returns an object decorated with functions based on the type. - * - * ## Why Is Extender Different? - * - * Extender is different than normal chaining because is does more than return `this`. It decorates your values in a type safe manner. - * - * For example if you return an array from a string based method then the returned value will be decorated with array methods and not the string methods. This allow you as the developer to focus on your API and not worrying about how to properly build and connect your API. - * - * - * ## Installation - * - * ``` - * npm install extender - * ``` - * - * Or [download the source](https://raw.github.com/doug-martin/extender/master/extender.js) ([minified](https://raw.github.com/doug-martin/extender/master/extender-min.js)) - * - * **Note** `extender` depends on [`declare.js`](http://doug-martin.github.com/declare.js/). - * - * ### Requirejs - * - * To use with requirejs place the `extend` source in the root scripts directory - * - * ```javascript - * - * define(["extender"], function(extender){ - * }); - * - * ``` - * - * - * ## Usage - * - * **`extender.define(tester, decorations)`** - * - * To create your own extender call the `extender.define` function. - * - * This function accepts an optional tester which is used to determine a value should be decorated with the specified `decorations` - * - * ```javascript - * function isString(obj) { - * return !isUndefinedOrNull(obj) && (typeof obj === "string" || obj instanceof String); - * } - * - * - * var myExtender = extender.define(isString, { - * multiply: function (str, times) { - * var ret = str; - * for (var i = 1; i < times; i++) { - * ret += str; - * } - * return ret; - * }, - * toArray: function (str, delim) { - * delim = delim || ""; - * return str.split(delim); - * } - * }); - * - * myExtender("hello").multiply(2).value(); //hellohello - * - * ``` - * - * If you do not specify a tester function and just pass in an object of `functions` then all values passed in will be decorated with methods. - * - * ```javascript - * - * function isUndefined(obj) { - * var undef; - * return obj === undef; - * } - * - * function isUndefinedOrNull(obj) { - * var undef; - * return obj === undef || obj === null; - * } - * - * function isArray(obj) { - * return Object.prototype.toString.call(obj) === "[object Array]"; - * } - * - * function isBoolean(obj) { - * var undef, type = typeof obj; - * return !isUndefinedOrNull(obj) && type === "boolean" || type === "Boolean"; - * } - * - * function isString(obj) { - * return !isUndefinedOrNull(obj) && (typeof obj === "string" || obj instanceof String); - * } - * - * var myExtender = extender.define({ - * isUndefined : isUndefined, - * isUndefinedOrNull : isUndefinedOrNull, - * isArray : isArray, - * isBoolean : isBoolean, - * isString : isString - * }); - * - * ``` - * - * To use - * - * ``` - * var undef; - * myExtender("hello").isUndefined().value(); //false - * myExtender(undef).isUndefined().value(); //true - * ``` - * - * You can also chain extenders so that they accept multiple types and decorates accordingly. - * - * ```javascript - * myExtender - * .define(isArray, { - * pluck: function (arr, m) { - * var ret = []; - * for (var i = 0, l = arr.length; i < l; i++) { - * ret.push(arr[i][m]); - * } - * return ret; - * } - * }) - * .define(isBoolean, { - * invert: function (val) { - * return !val; - * } - * }); - * - * myExtender([{a: "a"},{a: "b"},{a: "c"}]).pluck("a").value(); //["a", "b", "c"] - * myExtender("I love javascript!").toArray(/\s+/).pluck("0"); //["I", "l", "j"] - * - * ``` - * - * Notice that we reuse the same extender as defined above. - * - * **Return Values** - * - * When creating an extender if you return a value from one of the decoration functions then that value will also be decorated. If you do not return any values then the extender will be returned. - * - * **Default decoration methods** - * - * By default every value passed into an extender is decorated with the following methods. - * - * * `value` : The value this extender represents. - * * `eq(otherValue)` : Tests strict equality of the currently represented value to the `otherValue` - * * `neq(oterValue)` : Tests strict inequality of the currently represented value. - * * `print` : logs the current value to the console. - * - * **Extender initialization** - * - * When creating an extender you can also specify a constructor which will be invoked with the current value. - * - * ```javascript - * myExtender.define(isString, { - * constructor : function(val){ - * //set our value to the string trimmed - * this._value = val.trimRight().trimLeft(); - * } - * }); - * ``` - * - * **`noWrap`** - * - * `extender` also allows you to specify methods that should not have the value wrapped providing a cleaner exit function other than `value()`. - * - * For example suppose you have an API that allows you to build a validator, rather than forcing the user to invoke the `value` method you could add a method called `validator` which makes more syntactic sense. - * - * ``` - * - * var myValidator = extender.define({ - * //chainable validation methods - * //... - * //end chainable validation methods - * - * noWrap : { - * validator : function(){ - * //return your validator - * } - * } - * }); - * - * myValidator().isNotNull().isEmailAddress().validator(); //now you dont need to call .value() - * - * - * ``` - * **`extender.extend(extendr)`** - * - * You may also compose extenders through the use of `extender.extend(extender)`, which will return an entirely new extender that is the composition of extenders. - * - * Suppose you have the following two extenders. - * - * ```javascript - * var myExtender = extender - * .define({ - * isFunction: is.function, - * isNumber: is.number, - * isString: is.string, - * isDate: is.date, - * isArray: is.array, - * isBoolean: is.boolean, - * isUndefined: is.undefined, - * isDefined: is.defined, - * isUndefinedOrNull: is.undefinedOrNull, - * isNull: is.null, - * isArguments: is.arguments, - * isInstanceOf: is.instanceOf, - * isRegExp: is.regExp - * }); - * var myExtender2 = extender.define(is.array, { - * pluck: function (arr, m) { - * var ret = []; - * for (var i = 0, l = arr.length; i < l; i++) { - * ret.push(arr[i][m]); - * } - * return ret; - * }, - * - * noWrap: { - * pluckPlain: function (arr, m) { - * var ret = []; - * for (var i = 0, l = arr.length; i < l; i++) { - * ret.push(arr[i][m]); - * } - * return ret; - * } - * } - * }); - * - * - * ``` - * - * And you do not want to alter either of them but instead what to create a third that is the union of the two. - * - * - * ```javascript - * var composed = extender.extend(myExtender).extend(myExtender2); - * ``` - * So now you can use the new extender with the joined functionality if `myExtender` and `myExtender2`. - * - * ```javascript - * var extended = composed([ - * {a: "a"}, - * {a: "b"}, - * {a: "c"} - * ]); - * extended.isArray().value(); //true - * extended.pluck("a").value(); // ["a", "b", "c"]); - * - * ``` - * - * **Note** `myExtender` and `myExtender2` will **NOT** be altered. - * - * **`extender.expose(methods)`** - * - * The `expose` method allows you to add methods to your extender that are not wrapped or automatically chained by exposing them on the extender directly. - * - * ``` - * var isMethods = { - * isFunction: is.function, - * isNumber: is.number, - * isString: is.string, - * isDate: is.date, - * isArray: is.array, - * isBoolean: is.boolean, - * isUndefined: is.undefined, - * isDefined: is.defined, - * isUndefinedOrNull: is.undefinedOrNull, - * isNull: is.null, - * isArguments: is.arguments, - * isInstanceOf: is.instanceOf, - * isRegExp: is.regExp - * }; - * - * var myExtender = extender.define(isMethods).expose(isMethods); - * - * myExtender.isArray([]); //true - * myExtender([]).isArray([]).value(); //true - * - * ``` - * - * - * **Using `instanceof`** - * - * When using extenders you can test if a value is an `instanceof` of an extender by using the instanceof operator. - * - * ```javascript - * var str = myExtender("hello"); - * - * str instanceof myExtender; //true - * ``` - * - * ## Examples - * - * To see more examples click [here](https://github.com/doug-martin/extender/tree/master/examples) - */ - function defineExtender(declare) { + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; +} +module.exports = arrayMap; - var slice = Array.prototype.slice, undef; - function indexOf(arr, item) { - if (arr && arr.length) { - for (var i = 0, l = arr.length; i < l; i++) { - if (arr[i] === item) { - return i; - } - } - } - return -1; - } +/***/ }), - function isArray(obj) { - return Object.prototype.toString.call(obj) === "[object Array]"; - } +/***/ "./build/cht-core-4-6/node_modules/lodash/_arrayPush.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_arrayPush.js ***! + \**************************************************************/ +/***/ ((module) => { - var merge = (function merger() { - function _merge(target, source, exclude) { - var name, s; - for (name in source) { - if (source.hasOwnProperty(name) && indexOf(exclude, name) === -1) { - s = source[name]; - if (!(name in target) || (target[name] !== s)) { - target[name] = s; - } - } - } - return target; - } +/** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ +function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; - return function merge(obj) { - if (!obj) { - obj = {}; - } - var l = arguments.length; - var exclude = arguments[arguments.length - 1]; - if (isArray(exclude)) { - l--; - } else { - exclude = []; - } - for (var i = 1; i < l; i++) { - _merge(obj, arguments[i], exclude); - } - return obj; // Object - }; - }()); + while (++index < length) { + array[offset + index] = values[index]; + } + return array; +} +module.exports = arrayPush; - function extender(supers) { - supers = supers || []; - var Base = declare({ - instance: { - constructor: function (value) { - this._value = value; - }, - value: function () { - return this._value; - }, +/***/ }), - eq: function eq(val) { - return this["__extender__"](this._value === val); - }, +/***/ "./build/cht-core-4-6/node_modules/lodash/_arraySome.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_arraySome.js ***! + \**************************************************************/ +/***/ ((module) => { - neq: function neq(other) { - return this["__extender__"](this._value !== other); - }, - print: function () { - console.log(this._value); - return this; - } - } - }), defined = []; +/** + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function arraySome(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; - function addMethod(proto, name, func) { - if ("function" !== typeof func) { - throw new TypeError("when extending type you must provide a function"); - } - var extendedMethod; - if (name === "constructor") { - extendedMethod = function () { - this._super(arguments); - func.apply(this, arguments); - }; - } else { - extendedMethod = function extendedMethod() { - var args = slice.call(arguments); - args.unshift(this._value); - var ret = func.apply(this, args); - return ret !== undef ? this["__extender__"](ret) : this; - }; - } - proto[name] = extendedMethod; - } + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; +} - function addNoWrapMethod(proto, name, func) { - if ("function" !== typeof func) { - throw new TypeError("when extending type you must provide a function"); - } - var extendedMethod; - if (name === "constructor") { - extendedMethod = function () { - this._super(arguments); - func.apply(this, arguments); - }; - } else { - extendedMethod = function extendedMethod() { - var args = slice.call(arguments); - args.unshift(this._value); - return func.apply(this, args); - }; - } - proto[name] = extendedMethod; - } +module.exports = arraySome; - function decorateProto(proto, decoration, nowrap) { - for (var i in decoration) { - if (decoration.hasOwnProperty(i)) { - if (i !== "getters" && i !== "setters") { - if (i === "noWrap") { - decorateProto(proto, decoration[i], true); - } else if (nowrap) { - addNoWrapMethod(proto, i, decoration[i]); - } else { - addMethod(proto, i, decoration[i]); - } - } else { - proto[i] = decoration[i]; - } - } - } - } - function _extender(obj) { - var ret = obj, i, l; - if (!(obj instanceof Base)) { - var OurBase = Base; - for (i = 0, l = defined.length; i < l; i++) { - var definer = defined[i]; - if (definer[0](obj)) { - OurBase = OurBase.extend({instance: definer[1]}); - } - } - ret = new OurBase(obj); - ret["__extender__"] = _extender; - } - return ret; - } +/***/ }), - function always() { - return true; - } +/***/ "./build/cht-core-4-6/node_modules/lodash/_assocIndexOf.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_assocIndexOf.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1949432__) => { - function define(tester, decorate) { - if (arguments.length) { - if (typeof tester === "object") { - decorate = tester; - tester = always; - } - decorate = decorate || {}; - var proto = {}; - decorateProto(proto, decorate); - //handle browsers like which skip over the constructor while looping - if (!proto.hasOwnProperty("constructor")) { - if (decorate.hasOwnProperty("constructor")) { - addMethod(proto, "constructor", decorate.constructor); - } else { - proto.constructor = function () { - this._super(arguments); - }; - } - } - defined.push([tester, proto]); - } - return _extender; - } +var eq = __nested_webpack_require_1949432__(/*! ./eq */ "./build/cht-core-4-6/node_modules/lodash/eq.js"); - function extend(supr) { - if (supr && supr.hasOwnProperty("__defined__")) { - _extender["__defined__"] = defined = defined.concat(supr["__defined__"]); - } - merge(_extender, supr, ["define", "extend", "expose", "__defined__"]); - return _extender; - } +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; +} - _extender.define = define; - _extender.extend = extend; - _extender.expose = function expose() { - var methods; - for (var i = 0, l = arguments.length; i < l; i++) { - methods = arguments[i]; - if (typeof methods === "object") { - merge(_extender, methods, ["define", "extend", "expose", "__defined__"]); - } - } - return _extender; - }; - _extender["__defined__"] = defined; +module.exports = assocIndexOf; - return _extender; - } +/***/ }), - return { - define: function () { - return extender().define.apply(extender, arguments); - }, +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseFindIndex.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseFindIndex.js ***! + \******************************************************************/ +/***/ ((module) => { - extend: function (supr) { - return extender().define().extend(supr); - } - }; +/** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 1 : -1); + while ((fromRight ? index-- : ++index < length)) { + if (predicate(array[index], index, array)) { + return index; } + } + return -1; +} - if (true) { - if ( true && module.exports) { - module.exports = defineExtender(__webpack_require__(/*! declare.js */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/declare.js/index.js")); +module.exports = baseFindIndex; - } - } else {} -}).call(this); +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseGet.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseGet.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1951410__) => { + +var castPath = __nested_webpack_require_1951410__(/*! ./_castPath */ "./build/cht-core-4-6/node_modules/lodash/_castPath.js"), + toKey = __nested_webpack_require_1951410__(/*! ./_toKey */ "./build/cht-core-4-6/node_modules/lodash/_toKey.js"); + +/** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ +function baseGet(object, path) { + path = castPath(path, object); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; +} + +module.exports = baseGet; + /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extender/index.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extender/index.js ***! - \*******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseGetAllKeys.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseGetAllKeys.js ***! + \*******************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1952538__) => { + +var arrayPush = __nested_webpack_require_1952538__(/*! ./_arrayPush */ "./build/cht-core-4-6/node_modules/lodash/_arrayPush.js"), + isArray = __nested_webpack_require_1952538__(/*! ./isArray */ "./build/cht-core-4-6/node_modules/lodash/isArray.js"); + +/** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ +function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); +} + +module.exports = baseGetAllKeys; -module.exports = __webpack_require__(/*! ./extender.js */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extender/extender.js"); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/function-extended/index.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/function-extended/index.js ***! - \****************************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1953775__) => { -(function () { - "use strict"; +var Symbol = __nested_webpack_require_1953775__(/*! ./_Symbol */ "./build/cht-core-4-6/node_modules/lodash/_Symbol.js"), + getRawTag = __nested_webpack_require_1953775__(/*! ./_getRawTag */ "./build/cht-core-4-6/node_modules/lodash/_getRawTag.js"), + objectToString = __nested_webpack_require_1953775__(/*! ./_objectToString */ "./build/cht-core-4-6/node_modules/lodash/_objectToString.js"); - function defineFunction(extended, is, args) { +/** `Object#toString` result references. */ +var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; - var isArray = is.isArray, - isObject = is.isObject, - isString = is.isString, - isFunction = is.isFunction, - argsToArray = args.argsToArray; +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; - function spreadArgs(f, args, scope) { - var ret; - switch ((args || []).length) { - case 0: - ret = f.call(scope); - break; - case 1: - ret = f.call(scope, args[0]); - break; - case 2: - ret = f.call(scope, args[0], args[1]); - break; - case 3: - ret = f.call(scope, args[0], args[1], args[2]); - break; - default: - ret = f.apply(scope, args); - } - return ret; - } +/** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString(value); +} - function hitch(scope, method, args) { - args = argsToArray(arguments, 2); - if ((isString(method) && !(method in scope))) { - throw new Error(method + " property not defined in scope"); - } else if (!isString(method) && !isFunction(method)) { - throw new Error(method + " is not a function"); - } - if (isString(method)) { - return function () { - var func = scope[method]; - if (isFunction(func)) { - return spreadArgs(func, args.concat(argsToArray(arguments)), scope); - } else { - return func; - } - }; - } else { - if (args.length) { - return function () { - return spreadArgs(method, args.concat(argsToArray(arguments)), scope); - }; - } else { +module.exports = baseGetTag; - return function () { - return spreadArgs(method, arguments, scope); - }; - } - } - } +/***/ }), - function applyFirst(method, args) { - args = argsToArray(arguments, 1); - if (!isString(method) && !isFunction(method)) { - throw new Error(method + " must be the name of a property or function to execute"); - } - if (isString(method)) { - return function () { - var scopeArgs = argsToArray(arguments), scope = scopeArgs.shift(); - var func = scope[method]; - if (isFunction(func)) { - scopeArgs = args.concat(scopeArgs); - return spreadArgs(func, scopeArgs, scope); - } else { - return func; - } - }; - } else { - return function () { - var scopeArgs = argsToArray(arguments), scope = scopeArgs.shift(); - scopeArgs = args.concat(scopeArgs); - return spreadArgs(method, scopeArgs, scope); - }; - } - } +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseHasIn.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseHasIn.js ***! + \**************************************************************/ +/***/ ((module) => { + +/** + * The base implementation of `_.hasIn` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ +function baseHasIn(object, key) { + return object != null && key in Object(object); +} + +module.exports = baseHasIn; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseIndexOf.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseIndexOf.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1955824__) => { + +var baseFindIndex = __nested_webpack_require_1955824__(/*! ./_baseFindIndex */ "./build/cht-core-4-6/node_modules/lodash/_baseFindIndex.js"), + baseIsNaN = __nested_webpack_require_1955824__(/*! ./_baseIsNaN */ "./build/cht-core-4-6/node_modules/lodash/_baseIsNaN.js"), + strictIndexOf = __nested_webpack_require_1955824__(/*! ./_strictIndexOf */ "./build/cht-core-4-6/node_modules/lodash/_strictIndexOf.js"); + +/** + * The base implementation of `_.indexOf` without `fromIndex` bounds checks. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function baseIndexOf(array, value, fromIndex) { + return value === value + ? strictIndexOf(array, value, fromIndex) + : baseFindIndex(array, baseIsNaN, fromIndex); +} + +module.exports = baseIndexOf; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseIsArguments.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsArguments.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1957086__) => { + +var baseGetTag = __nested_webpack_require_1957086__(/*! ./_baseGetTag */ "./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js"), + isObjectLike = __nested_webpack_require_1957086__(/*! ./isObjectLike */ "./build/cht-core-4-6/node_modules/lodash/isObjectLike.js"); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]'; + +/** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ +function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; +} + +module.exports = baseIsArguments; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseIsEqual.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsEqual.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1958082__) => { + +var baseIsEqualDeep = __nested_webpack_require_1958082__(/*! ./_baseIsEqualDeep */ "./build/cht-core-4-6/node_modules/lodash/_baseIsEqualDeep.js"), + isObjectLike = __nested_webpack_require_1958082__(/*! ./isObjectLike */ "./build/cht-core-4-6/node_modules/lodash/isObjectLike.js"); + +/** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ +function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); +} +module.exports = baseIsEqual; - function hitchIgnore(scope, method, args) { - args = argsToArray(arguments, 2); - if ((isString(method) && !(method in scope))) { - throw new Error(method + " property not defined in scope"); - } else if (!isString(method) && !isFunction(method)) { - throw new Error(method + " is not a function"); - } - if (isString(method)) { - return function () { - var func = scope[method]; - if (isFunction(func)) { - return spreadArgs(func, args, scope); - } else { - return func; - } - }; - } else { - return function () { - return spreadArgs(method, args, scope); - }; - } - } +/***/ }), - function hitchAll(scope) { - var funcs = argsToArray(arguments, 1); - if (!isObject(scope) && !isFunction(scope)) { - throw new TypeError("scope must be an object"); - } - if (funcs.length === 1 && isArray(funcs[0])) { - funcs = funcs[0]; - } - if (!funcs.length) { - funcs = []; - for (var k in scope) { - if (scope.hasOwnProperty(k) && isFunction(scope[k])) { - funcs.push(k); - } - } - } - for (var i = 0, l = funcs.length; i < l; i++) { - scope[funcs[i]] = hitch(scope, scope[funcs[i]]); - } - return scope; - } +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseIsEqualDeep.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsEqualDeep.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1959630__) => { +var Stack = __nested_webpack_require_1959630__(/*! ./_Stack */ "./build/cht-core-4-6/node_modules/lodash/_Stack.js"), + equalArrays = __nested_webpack_require_1959630__(/*! ./_equalArrays */ "./build/cht-core-4-6/node_modules/lodash/_equalArrays.js"), + equalByTag = __nested_webpack_require_1959630__(/*! ./_equalByTag */ "./build/cht-core-4-6/node_modules/lodash/_equalByTag.js"), + equalObjects = __nested_webpack_require_1959630__(/*! ./_equalObjects */ "./build/cht-core-4-6/node_modules/lodash/_equalObjects.js"), + getTag = __nested_webpack_require_1959630__(/*! ./_getTag */ "./build/cht-core-4-6/node_modules/lodash/_getTag.js"), + isArray = __nested_webpack_require_1959630__(/*! ./isArray */ "./build/cht-core-4-6/node_modules/lodash/isArray.js"), + isBuffer = __nested_webpack_require_1959630__(/*! ./isBuffer */ "./build/cht-core-4-6/node_modules/lodash/isBuffer.js"), + isTypedArray = __nested_webpack_require_1959630__(/*! ./isTypedArray */ "./build/cht-core-4-6/node_modules/lodash/isTypedArray.js"); - function partial(method, args) { - args = argsToArray(arguments, 1); - if (!isString(method) && !isFunction(method)) { - throw new Error(method + " must be the name of a property or function to execute"); - } - if (isString(method)) { - return function () { - var func = this[method]; - if (isFunction(func)) { - var scopeArgs = args.concat(argsToArray(arguments)); - return spreadArgs(func, scopeArgs, this); - } else { - return func; - } - }; - } else { - return function () { - var scopeArgs = args.concat(argsToArray(arguments)); - return spreadArgs(method, scopeArgs, this); - }; - } - } +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1; - function curryFunc(f, execute) { - return function () { - var args = argsToArray(arguments); - return execute ? spreadArgs(f, arguments, this) : function () { - return spreadArgs(f, args.concat(argsToArray(arguments)), this); - }; - }; - } +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + objectTag = '[object Object]'; +/** Used for built-in method references. */ +var objectProto = Object.prototype; - function curry(depth, cb, scope) { - var f; - if (scope) { - f = hitch(scope, cb); - } else { - f = cb; - } - if (depth) { - var len = depth - 1; - for (var i = len; i >= 0; i--) { - f = curryFunc(f, i === len); - } - } - return f; - } +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; - return extended - .define(isObject, { - bind: hitch, - bindAll: hitchAll, - bindIgnore: hitchIgnore, - curry: function (scope, depth, fn) { - return curry(depth, fn, scope); - } - }) - .define(isFunction, { - bind: function (fn, obj) { - return spreadArgs(hitch, [obj, fn].concat(argsToArray(arguments, 2)), this); - }, - bindIgnore: function (fn, obj) { - return spreadArgs(hitchIgnore, [obj, fn].concat(argsToArray(arguments, 2)), this); - }, - partial: partial, - applyFirst: applyFirst, - curry: function (fn, num, scope) { - return curry(num, fn, scope); - }, - noWrap: { - f: function () { - return this.value(); - } - } - }) - .define(isString, { - bind: function (str, scope) { - return hitch(scope, str); - }, - bindIgnore: function (str, scope) { - return hitchIgnore(scope, str); - }, - partial: partial, - applyFirst: applyFirst, - curry: function (fn, depth, scope) { - return curry(depth, fn, scope); - } - }) - .expose({ - bind: hitch, - bindAll: hitchAll, - bindIgnore: hitchIgnore, - partial: partial, - applyFirst: applyFirst, - curry: curry - }); +/** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = objIsArr ? arrayTag : getTag(object), + othTag = othIsArr ? arrayTag : getTag(other); + + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) { + return false; } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack); + return (objIsArr || isTypedArray(object)) + ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); - if (true) { - if ( true && module.exports) { - module.exports = defineFunction(__webpack_require__(/*! extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extended/index.js"), __webpack_require__(/*! is-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/is-extended/index.js"), __webpack_require__(/*! arguments-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/arguments-extended/index.js")); + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; - } - } else {} + stack || (stack = new Stack); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); +} -}).call(this); +module.exports = baseIsEqualDeep; +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseIsMatch.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsMatch.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1963585__) => { +var Stack = __nested_webpack_require_1963585__(/*! ./_Stack */ "./build/cht-core-4-6/node_modules/lodash/_Stack.js"), + baseIsEqual = __nested_webpack_require_1963585__(/*! ./_baseIsEqual */ "./build/cht-core-4-6/node_modules/lodash/_baseIsEqual.js"); +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; +/** + * The base implementation of `_.isMatch` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Array} matchData The property names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ +function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; + if (object == null) { + return !length; + } + object = Object(object); + while (index--) { + var data = matchData[index]; + if ((noCustomizer && data[2]) + ? data[1] !== object[data[0]] + : !(data[0] in object) + ) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; + } + } else { + var stack = new Stack; + if (customizer) { + var result = customizer(objValue, srcValue, key, object, source, stack); + } + if (!(result === undefined + ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) + : result + )) { + return false; + } + } + } + return true; +} -/***/ }), +module.exports = baseIsMatch; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/ht/index.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/ht/index.js ***! - \*************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { -(function () { - "use strict"; +/***/ }), - function defineHt(_) { +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseIsNaN.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsNaN.js ***! + \**************************************************************/ +/***/ ((module) => { +/** + * The base implementation of `_.isNaN` without support for number objects. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + */ +function baseIsNaN(value) { + return value !== value; +} - var hashFunction = function (key) { - if (typeof key === "string") { - return key; - } else if (typeof key === "object") { - return key.hashCode ? key.hashCode() : "" + key; - } else { - return "" + key; - } - }; +module.exports = baseIsNaN; - var Bucket = _.declare({ - instance: { +/***/ }), - constructor: function () { - this.__entries = []; - this.__keys = []; - this.__values = []; - }, +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseIsNative.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsNative.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1966455__) => { - pushValue: function (key, value) { - this.__keys.push(key); - this.__values.push(value); - this.__entries.push({key: key, value: value}); - return value; - }, +var isFunction = __nested_webpack_require_1966455__(/*! ./isFunction */ "./build/cht-core-4-6/node_modules/lodash/isFunction.js"), + isMasked = __nested_webpack_require_1966455__(/*! ./_isMasked */ "./build/cht-core-4-6/node_modules/lodash/_isMasked.js"), + isObject = __nested_webpack_require_1966455__(/*! ./isObject */ "./build/cht-core-4-6/node_modules/lodash/isObject.js"), + toSource = __nested_webpack_require_1966455__(/*! ./_toSource */ "./build/cht-core-4-6/node_modules/lodash/_toSource.js"); - remove: function (key) { - var ret = null, map = this.__entries, val, keys = this.__keys, vals = this.__values; - var i = map.length - 1; - for (; i >= 0; i--) { - if (!!(val = map[i]) && val.key === key) { - map.splice(i, 1); - keys.splice(i, 1); - vals.splice(i, 1); - return val.value; - } - } - return ret; - }, +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; - "set": function (key, value) { - var ret = null, map = this.__entries, vals = this.__values; - var i = map.length - 1; - for (; i >= 0; i--) { - var val = map[i]; - if (val && key === val.key) { - vals[i] = value; - val.value = value; - ret = value; - break; - } - } - if (!ret) { - map.push({key: key, value: value}); - } - return ret; - }, +/** Used to detect host constructors (Safari). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; - find: function (key) { - var ret = null, map = this.__entries, val; - var i = map.length - 1; - for (; i >= 0; i--) { - val = map[i]; - if (val && key === val.key) { - ret = val.value; - break; - } - } - return ret; - }, +/** Used for built-in method references. */ +var funcProto = Function.prototype, + objectProto = Object.prototype; - getEntrySet: function () { - return this.__entries; - }, +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; - getKeys: function () { - return this.__keys; - }, +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; - getValues: function (arr) { - return this.__values; - } - } - }); +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); - return _.declare({ +/** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ +function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); +} - instance: { +module.exports = baseIsNative; - constructor: function () { - this.__map = {}; - }, - entrySet: function () { - var ret = [], map = this.__map; - for (var i in map) { - if (map.hasOwnProperty(i)) { - ret = ret.concat(map[i].getEntrySet()); - } - } - return ret; - }, +/***/ }), - put: function (key, value) { - var hash = hashFunction(key); - var bucket = null; - if (!(bucket = this.__map[hash])) { - bucket = (this.__map[hash] = new Bucket()); - } - bucket.pushValue(key, value); - return value; - }, +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseIsTypedArray.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsTypedArray.js ***! + \*********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1968541__) => { - remove: function (key) { - var hash = hashFunction(key), ret = null; - var bucket = this.__map[hash]; - if (bucket) { - ret = bucket.remove(key); - } - return ret; - }, +var baseGetTag = __nested_webpack_require_1968541__(/*! ./_baseGetTag */ "./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js"), + isLength = __nested_webpack_require_1968541__(/*! ./isLength */ "./build/cht-core-4-6/node_modules/lodash/isLength.js"), + isObjectLike = __nested_webpack_require_1968541__(/*! ./isObjectLike */ "./build/cht-core-4-6/node_modules/lodash/isObjectLike.js"); - "get": function (key) { - var hash = hashFunction(key), ret = null, bucket; - if (!!(bucket = this.__map[hash])) { - ret = bucket.find(key); - } - return ret; - }, +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; - "set": function (key, value) { - var hash = hashFunction(key), ret = null, bucket = null, map = this.__map; - if (!!(bucket = map[hash])) { - ret = bucket.set(key, value); - } else { - ret = (map[hash] = new Bucket()).pushValue(key, value); - } - return ret; - }, +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; - contains: function (key) { - var hash = hashFunction(key), ret = false, bucket = null; - if (!!(bucket = this.__map[hash])) { - ret = !!(bucket.find(key)); - } - return ret; - }, +/** Used to identify `toStringTag` values of typed arrays. */ +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = +typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = +typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = +typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = +typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag] = typedArrayTags[arrayTag] = +typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = +typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = +typedArrayTags[errorTag] = typedArrayTags[funcTag] = +typedArrayTags[mapTag] = typedArrayTags[numberTag] = +typedArrayTags[objectTag] = typedArrayTags[regexpTag] = +typedArrayTags[setTag] = typedArrayTags[stringTag] = +typedArrayTags[weakMapTag] = false; - concat: function (hashTable) { - if (hashTable instanceof this._static) { - var ret = new this._static(); - var otherEntrySet = hashTable.entrySet().concat(this.entrySet()); - for (var i = otherEntrySet.length - 1; i >= 0; i--) { - var e = otherEntrySet[i]; - ret.put(e.key, e.value); - } - return ret; - } else { - throw new TypeError("When joining hashtables the joining arg must be a HashTable"); - } - }, +/** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ +function baseIsTypedArray(value) { + return isObjectLike(value) && + isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; +} - filter: function (cb, scope) { - var es = this.entrySet(), ret = new this._static(); - es = _.filter(es, cb, scope); - for (var i = es.length - 1; i >= 0; i--) { - var e = es[i]; - ret.put(e.key, e.value); - } - return ret; - }, +module.exports = baseIsTypedArray; - forEach: function (cb, scope) { - var es = this.entrySet(); - _.forEach(es, cb, scope); - }, - every: function (cb, scope) { - var es = this.entrySet(); - return _.every(es, cb, scope); - }, +/***/ }), - map: function (cb, scope) { - var es = this.entrySet(); - return _.map(es, cb, scope); - }, +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseIteratee.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseIteratee.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1971347__) => { - some: function (cb, scope) { - var es = this.entrySet(); - return _.some(es, cb, scope); - }, +var baseMatches = __nested_webpack_require_1971347__(/*! ./_baseMatches */ "./build/cht-core-4-6/node_modules/lodash/_baseMatches.js"), + baseMatchesProperty = __nested_webpack_require_1971347__(/*! ./_baseMatchesProperty */ "./build/cht-core-4-6/node_modules/lodash/_baseMatchesProperty.js"), + identity = __nested_webpack_require_1971347__(/*! ./identity */ "./build/cht-core-4-6/node_modules/lodash/identity.js"), + isArray = __nested_webpack_require_1971347__(/*! ./isArray */ "./build/cht-core-4-6/node_modules/lodash/isArray.js"), + property = __nested_webpack_require_1971347__(/*! ./property */ "./build/cht-core-4-6/node_modules/lodash/property.js"); - reduce: function (cb, scope) { - var es = this.entrySet(); - return _.reduce(es, cb, scope); - }, +/** + * The base implementation of `_.iteratee`. + * + * @private + * @param {*} [value=_.identity] The value to convert to an iteratee. + * @returns {Function} Returns the iteratee. + */ +function baseIteratee(value) { + // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. + // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. + if (typeof value == 'function') { + return value; + } + if (value == null) { + return identity; + } + if (typeof value == 'object') { + return isArray(value) + ? baseMatchesProperty(value[0], value[1]) + : baseMatches(value); + } + return property(value); +} - reduceRight: function (cb, scope) { - var es = this.entrySet(); - return _.reduceRight(es, cb, scope); - }, +module.exports = baseIteratee; - clear: function () { - this.__map = {}; - }, - keys: function () { - var ret = [], map = this.__map; - for (var i in map) { - //if (map.hasOwnProperty(i)) { - ret = ret.concat(map[i].getKeys()); - //} - } - return ret; - }, +/***/ }), - values: function () { - var ret = [], map = this.__map; - for (var i in map) { - //if (map.hasOwnProperty(i)) { - ret = ret.concat(map[i].getValues()); - //} - } - return ret; - }, +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseKeys.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseKeys.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1972962__) => { - isEmpty: function () { - return this.keys().length === 0; - } - } +var isPrototype = __nested_webpack_require_1972962__(/*! ./_isPrototype */ "./build/cht-core-4-6/node_modules/lodash/_isPrototype.js"), + nativeKeys = __nested_webpack_require_1972962__(/*! ./_nativeKeys */ "./build/cht-core-4-6/node_modules/lodash/_nativeKeys.js"); - }); +/** Used for built-in method references. */ +var objectProto = Object.prototype; +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; +/** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty.call(object, key) && key != 'constructor') { + result.push(key); } + } + return result; +} - if (true) { - if ( true && module.exports) { - module.exports = defineHt(__webpack_require__(/*! extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extended/index.js")().register("declare", __webpack_require__(/*! declare.js */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/declare.js/index.js")).register(__webpack_require__(/*! is-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/is-extended/index.js")).register(__webpack_require__(/*! array-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/array-extended/index.js"))); +module.exports = baseKeys; - } - } else {} -}).call(this); +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseMatches.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseMatches.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1974246__) => { +var baseIsMatch = __nested_webpack_require_1974246__(/*! ./_baseIsMatch */ "./build/cht-core-4-6/node_modules/lodash/_baseIsMatch.js"), + getMatchData = __nested_webpack_require_1974246__(/*! ./_getMatchData */ "./build/cht-core-4-6/node_modules/lodash/_getMatchData.js"), + matchesStrictComparable = __nested_webpack_require_1974246__(/*! ./_matchesStrictComparable */ "./build/cht-core-4-6/node_modules/lodash/_matchesStrictComparable.js"); +/** + * The base implementation of `_.matches` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + */ +function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + return matchesStrictComparable(matchData[0][0], matchData[0][1]); + } + return function(object) { + return object === source || baseIsMatch(object, source, matchData); + }; +} +module.exports = baseMatches; +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseMatchesProperty.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseMatchesProperty.js ***! + \************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1975586__) => { -/***/ }), +var baseIsEqual = __nested_webpack_require_1975586__(/*! ./_baseIsEqual */ "./build/cht-core-4-6/node_modules/lodash/_baseIsEqual.js"), + get = __nested_webpack_require_1975586__(/*! ./get */ "./build/cht-core-4-6/node_modules/lodash/get.js"), + hasIn = __nested_webpack_require_1975586__(/*! ./hasIn */ "./build/cht-core-4-6/node_modules/lodash/hasIn.js"), + isKey = __nested_webpack_require_1975586__(/*! ./_isKey */ "./build/cht-core-4-6/node_modules/lodash/_isKey.js"), + isStrictComparable = __nested_webpack_require_1975586__(/*! ./_isStrictComparable */ "./build/cht-core-4-6/node_modules/lodash/_isStrictComparable.js"), + matchesStrictComparable = __nested_webpack_require_1975586__(/*! ./_matchesStrictComparable */ "./build/cht-core-4-6/node_modules/lodash/_matchesStrictComparable.js"), + toKey = __nested_webpack_require_1975586__(/*! ./_toKey */ "./build/cht-core-4-6/node_modules/lodash/_toKey.js"); -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/is-buffer/index.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/is-buffer/index.js ***! - \********************************************************************************************/ -/***/ ((module) => { +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; -/*! - * Determine if an object is a Buffer +/** + * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. * - * @author Feross Aboukhadijeh - * @license MIT + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. */ - -// The _isBuffer check is for Safari 5-7 support, because it's missing -// Object.prototype.constructor. Remove this eventually -module.exports = function (obj) { - return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) +function baseMatchesProperty(path, srcValue) { + if (isKey(path) && isStrictComparable(srcValue)) { + return matchesStrictComparable(toKey(path), srcValue); + } + return function(object) { + var objValue = get(object, path); + return (objValue === undefined && objValue === srcValue) + ? hasIn(object, path) + : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; } -function isBuffer (obj) { - return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) -} +module.exports = baseMatchesProperty; -// For Node v0.10 support. Remove this eventually. -function isSlowBuffer (obj) { - return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseProperty.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseProperty.js ***! + \*****************************************************************/ +/***/ ((module) => { + +/** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. + */ +function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; } +module.exports = baseProperty; + /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/is-extended/index.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/is-extended/index.js ***! - \**********************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -(function () { - "use strict"; +/***/ "./build/cht-core-4-6/node_modules/lodash/_basePropertyDeep.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_basePropertyDeep.js ***! + \*********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1978289__) => { - function defineIsa(extended) { +var baseGet = __nested_webpack_require_1978289__(/*! ./_baseGet */ "./build/cht-core-4-6/node_modules/lodash/_baseGet.js"); - var pSlice = Array.prototype.slice; +/** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + */ +function basePropertyDeep(path) { + return function(object) { + return baseGet(object, path); + }; +} - var hasOwn = Object.prototype.hasOwnProperty; - var toStr = Object.prototype.toString; +module.exports = basePropertyDeep; - function argsToArray(args, slice) { - var i = -1, j = 0, l = args.length, ret = []; - slice = slice || 0; - i += slice; - while (++i < l) { - ret[j++] = args[i]; - } - return ret; - } - function keys(obj) { - var ret = []; - for (var i in obj) { - if (hasOwn.call(obj, i)) { - ret.push(i); - } - } - return ret; - } +/***/ }), - //taken from node js assert.js - //https://github.com/joyent/node/blob/master/lib/assert.js - function deepEqual(actual, expected) { - // 7.1. All identical values are equivalent, as determined by ===. - if (actual === expected) { - return true; +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseTimes.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseTimes.js ***! + \**************************************************************/ +/***/ ((module) => { - } else if (typeof Buffer !== "undefined" && Buffer.isBuffer(actual) && Buffer.isBuffer(expected)) { - if (actual.length !== expected.length) { - return false; - } - for (var i = 0; i < actual.length; i++) { - if (actual[i] !== expected[i]) { - return false; - } - } - return true; +/** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ +function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); - // 7.2. If the expected value is a Date object, the actual value is - // equivalent if it is also a Date object that refers to the same time. - } else if (isDate(actual) && isDate(expected)) { - return actual.getTime() === expected.getTime(); + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} - // 7.3 If the expected value is a RegExp object, the actual value is - // equivalent if it is also a RegExp object with the same source and - // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`). - } else if (isRegExp(actual) && isRegExp(expected)) { - return actual.source === expected.source && - actual.global === expected.global && - actual.multiline === expected.multiline && - actual.lastIndex === expected.lastIndex && - actual.ignoreCase === expected.ignoreCase; +module.exports = baseTimes; - // 7.4. Other pairs that do not both pass typeof value == 'object', - // equivalence is determined by ==. - } else if (isString(actual) && isString(expected) && actual !== expected) { - return false; - } else if (typeof actual !== 'object' && typeof expected !== 'object') { - return actual === expected; - // 7.5 For all other Object pairs, including Array objects, equivalence is - // determined by having the same number of owned properties (as verified - // with Object.prototype.hasOwnProperty.call), the same set of keys - // (although not necessarily the same order), equivalent values for every - // corresponding key, and an identical 'prototype' property. Note: this - // accounts for both named and indexed properties on Arrays. - } else { - return objEquiv(actual, expected); - } - } +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseToString.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseToString.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1979919__) => { - function objEquiv(a, b) { - var key; - if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) { - return false; - } - // an identical 'prototype' property. - if (a.prototype !== b.prototype) { - return false; - } - //~~~I've managed to break Object.keys through screwy arguments passing. - // Converting to array solves the problem. - if (isArguments(a)) { - if (!isArguments(b)) { - return false; - } - a = pSlice.call(a); - b = pSlice.call(b); - return deepEqual(a, b); - } - try { - var ka = keys(a), - kb = keys(b), - i; - // having the same number of owned properties (keys incorporates - // hasOwnProperty) - if (ka.length !== kb.length) { - return false; - } - //the same set of keys (although not necessarily the same order), - ka.sort(); - kb.sort(); - //~~~cheap key test - for (i = ka.length - 1; i >= 0; i--) { - if (ka[i] !== kb[i]) { - return false; - } - } - //equivalent values for every corresponding key, and - //~~~possibly expensive deep test - for (i = ka.length - 1; i >= 0; i--) { - key = ka[i]; - if (!deepEqual(a[key], b[key])) { - return false; - } - } - } catch (e) {//happens when one is a string literal and the other isn't - return false; - } - return true; - } +var Symbol = __nested_webpack_require_1979919__(/*! ./_Symbol */ "./build/cht-core-4-6/node_modules/lodash/_Symbol.js"), + arrayMap = __nested_webpack_require_1979919__(/*! ./_arrayMap */ "./build/cht-core-4-6/node_modules/lodash/_arrayMap.js"), + isArray = __nested_webpack_require_1979919__(/*! ./isArray */ "./build/cht-core-4-6/node_modules/lodash/isArray.js"), + isSymbol = __nested_webpack_require_1979919__(/*! ./isSymbol */ "./build/cht-core-4-6/node_modules/lodash/isSymbol.js"); +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; - var isFunction = function (obj) { - return toStr.call(obj) === '[object Function]'; - }; +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; - //ie hack - if ("undefined" !== typeof window && !isFunction(window.alert)) { - (function (alert) { - isFunction = function (obj) { - return toStr.call(obj) === '[object Function]' || obj === alert; - }; - }(window.alert)); - } +/** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ +function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray(value)) { + // Recursively convert values (susceptible to call stack limits). + return arrayMap(value, baseToString) + ''; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} - function isObject(obj) { - var undef; - return obj !== null && typeof obj === "object"; - } +module.exports = baseToString; - function isHash(obj) { - var ret = isObject(obj); - return ret && obj.constructor === Object && !obj.nodeType && !obj.setInterval; - } - function isEmpty(object) { - if (isArguments(object)) { - return object.length === 0; - } else if (isObject(object)) { - return keys(object).length === 0; - } else if (isString(object) || isArray(object)) { - return object.length === 0; - } - return true; - } +/***/ }), - function isBoolean(obj) { - return obj === true || obj === false || toStr.call(obj) === "[object Boolean]"; - } +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseUnary.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseUnary.js ***! + \**************************************************************/ +/***/ ((module) => { - function isUndefined(obj) { - return typeof obj === 'undefined'; - } +/** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ +function baseUnary(func) { + return function(value) { + return func(value); + }; +} - function isDefined(obj) { - return !isUndefined(obj); - } +module.exports = baseUnary; - function isUndefinedOrNull(obj) { - return isUndefined(obj) || isNull(obj); - } - function isNull(obj) { - return obj === null; - } +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseUniq.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseUniq.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1982339__) => { - var isArguments = function _isArguments(object) { - return toStr.call(object) === '[object Arguments]'; - }; +var SetCache = __nested_webpack_require_1982339__(/*! ./_SetCache */ "./build/cht-core-4-6/node_modules/lodash/_SetCache.js"), + arrayIncludes = __nested_webpack_require_1982339__(/*! ./_arrayIncludes */ "./build/cht-core-4-6/node_modules/lodash/_arrayIncludes.js"), + arrayIncludesWith = __nested_webpack_require_1982339__(/*! ./_arrayIncludesWith */ "./build/cht-core-4-6/node_modules/lodash/_arrayIncludesWith.js"), + cacheHas = __nested_webpack_require_1982339__(/*! ./_cacheHas */ "./build/cht-core-4-6/node_modules/lodash/_cacheHas.js"), + createSet = __nested_webpack_require_1982339__(/*! ./_createSet */ "./build/cht-core-4-6/node_modules/lodash/_createSet.js"), + setToArray = __nested_webpack_require_1982339__(/*! ./_setToArray */ "./build/cht-core-4-6/node_modules/lodash/_setToArray.js"); - if (!isArguments(arguments)) { - isArguments = function _isArguments(obj) { - return !!(obj && hasOwn.call(obj, "callee")); - }; - } +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; +/** + * The base implementation of `_.uniqBy` without support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new duplicate free array. + */ +function baseUniq(array, iteratee, comparator) { + var index = -1, + includes = arrayIncludes, + length = array.length, + isCommon = true, + result = [], + seen = result; - function isInstanceOf(obj, clazz) { - if (isFunction(clazz)) { - return obj instanceof clazz; - } else { - return false; - } - } + if (comparator) { + isCommon = false; + includes = arrayIncludesWith; + } + else if (length >= LARGE_ARRAY_SIZE) { + var set = iteratee ? null : createSet(array); + if (set) { + return setToArray(set); + } + isCommon = false; + includes = cacheHas; + seen = new SetCache; + } + else { + seen = iteratee ? [] : result; + } + outer: + while (++index < length) { + var value = array[index], + computed = iteratee ? iteratee(value) : value; - function isRegExp(obj) { - return toStr.call(obj) === '[object RegExp]'; + value = (comparator || value !== 0) ? value : 0; + if (isCommon && computed === computed) { + var seenIndex = seen.length; + while (seenIndex--) { + if (seen[seenIndex] === computed) { + continue outer; } + } + if (iteratee) { + seen.push(computed); + } + result.push(value); + } + else if (!includes(seen, computed, comparator)) { + if (seen !== result) { + seen.push(computed); + } + result.push(value); + } + } + return result; +} - var isArray = Array.isArray || function isArray(obj) { - return toStr.call(obj) === "[object Array]"; - }; - - function isDate(obj) { - return toStr.call(obj) === '[object Date]'; - } +module.exports = baseUniq; - function isString(obj) { - return toStr.call(obj) === '[object String]'; - } - function isNumber(obj) { - return toStr.call(obj) === '[object Number]'; - } +/***/ }), - function isTrue(obj) { - return obj === true; - } +/***/ "./build/cht-core-4-6/node_modules/lodash/_cacheHas.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_cacheHas.js ***! + \*************************************************************/ +/***/ ((module) => { - function isFalse(obj) { - return obj === false; - } +/** + * Checks if a `cache` value for `key` exists. + * + * @private + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function cacheHas(cache, key) { + return cache.has(key); +} - function isNotNull(obj) { - return !isNull(obj); - } +module.exports = cacheHas; - function isEq(obj, obj2) { - /*jshint eqeqeq:false*/ - return obj == obj2; - } - function isNeq(obj, obj2) { - /*jshint eqeqeq:false*/ - return obj != obj2; - } +/***/ }), - function isSeq(obj, obj2) { - return obj === obj2; - } +/***/ "./build/cht-core-4-6/node_modules/lodash/_castPath.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_castPath.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1985683__) => { - function isSneq(obj, obj2) { - return obj !== obj2; - } +var isArray = __nested_webpack_require_1985683__(/*! ./isArray */ "./build/cht-core-4-6/node_modules/lodash/isArray.js"), + isKey = __nested_webpack_require_1985683__(/*! ./_isKey */ "./build/cht-core-4-6/node_modules/lodash/_isKey.js"), + stringToPath = __nested_webpack_require_1985683__(/*! ./_stringToPath */ "./build/cht-core-4-6/node_modules/lodash/_stringToPath.js"), + toString = __nested_webpack_require_1985683__(/*! ./toString */ "./build/cht-core-4-6/node_modules/lodash/toString.js"); - function isIn(obj, arr) { - if ((isArray(arr) && Array.prototype.indexOf) || isString(arr)) { - return arr.indexOf(obj) > -1; - } else if (isArray(arr)) { - for (var i = 0, l = arr.length; i < l; i++) { - if (isEq(obj, arr[i])) { - return true; - } - } - } - return false; - } +/** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. + */ +function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString(value)); +} - function isNotIn(obj, arr) { - return !isIn(obj, arr); - } +module.exports = castPath; - function isLt(obj, obj2) { - return obj < obj2; - } - function isLte(obj, obj2) { - return obj <= obj2; - } +/***/ }), - function isGt(obj, obj2) { - return obj > obj2; - } +/***/ "./build/cht-core-4-6/node_modules/lodash/_coreJsData.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_coreJsData.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1986895__) => { - function isGte(obj, obj2) { - return obj >= obj2; - } +var root = __nested_webpack_require_1986895__(/*! ./_root */ "./build/cht-core-4-6/node_modules/lodash/_root.js"); - function isLike(obj, reg) { - if (isString(reg)) { - return ("" + obj).match(reg) !== null; - } else if (isRegExp(reg)) { - return reg.test(obj); - } - return false; - } +/** Used to detect overreaching core-js shims. */ +var coreJsData = root['__core-js_shared__']; - function isNotLike(obj, reg) { - return !isLike(obj, reg); - } +module.exports = coreJsData; - function contains(arr, obj) { - return isIn(obj, arr); - } - function notContains(arr, obj) { - return !isIn(obj, arr); - } +/***/ }), - function containsAt(arr, obj, index) { - if (isArray(arr) && arr.length > index) { - return isEq(arr[index], obj); - } - return false; - } +/***/ "./build/cht-core-4-6/node_modules/lodash/_createSet.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_createSet.js ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1987470__) => { - function notContainsAt(arr, obj, index) { - if (isArray(arr)) { - return !isEq(arr[index], obj); - } - return false; - } +var Set = __nested_webpack_require_1987470__(/*! ./_Set */ "./build/cht-core-4-6/node_modules/lodash/_Set.js"), + noop = __nested_webpack_require_1987470__(/*! ./noop */ "./build/cht-core-4-6/node_modules/lodash/noop.js"), + setToArray = __nested_webpack_require_1987470__(/*! ./_setToArray */ "./build/cht-core-4-6/node_modules/lodash/_setToArray.js"); - function has(obj, prop) { - return hasOwn.call(obj, prop); - } +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; - function notHas(obj, prop) { - return !has(obj, prop); - } +/** + * Creates a set object of `values`. + * + * @private + * @param {Array} values The values to add to the set. + * @returns {Object} Returns the new set. + */ +var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) { + return new Set(values); +}; - function length(obj, l) { - if (has(obj, "length")) { - return obj.length === l; - } - return false; - } +module.exports = createSet; - function notLength(obj, l) { - if (has(obj, "length")) { - return obj.length !== l; - } - return false; - } - var isa = { - isFunction: isFunction, - isObject: isObject, - isEmpty: isEmpty, - isHash: isHash, - isNumber: isNumber, - isString: isString, - isDate: isDate, - isArray: isArray, - isBoolean: isBoolean, - isUndefined: isUndefined, - isDefined: isDefined, - isUndefinedOrNull: isUndefinedOrNull, - isNull: isNull, - isArguments: isArguments, - instanceOf: isInstanceOf, - isRegExp: isRegExp, - deepEqual: deepEqual, - isTrue: isTrue, - isFalse: isFalse, - isNotNull: isNotNull, - isEq: isEq, - isNeq: isNeq, - isSeq: isSeq, - isSneq: isSneq, - isIn: isIn, - isNotIn: isNotIn, - isLt: isLt, - isLte: isLte, - isGt: isGt, - isGte: isGte, - isLike: isLike, - isNotLike: isNotLike, - contains: contains, - notContains: notContains, - has: has, - notHas: notHas, - isLength: length, - isNotLength: notLength, - containsAt: containsAt, - notContainsAt: notContainsAt - }; +/***/ }), - var tester = { - constructor: function () { - this._testers = []; - }, +/***/ "./build/cht-core-4-6/node_modules/lodash/_equalArrays.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_equalArrays.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1988539__) => { - noWrap: { - tester: function () { - var testers = this._testers; - return function tester(value) { - var isa = false; - for (var i = 0, l = testers.length; i < l && !isa; i++) { - isa = testers[i](value); - } - return isa; - }; - } - } - }; +var SetCache = __nested_webpack_require_1988539__(/*! ./_SetCache */ "./build/cht-core-4-6/node_modules/lodash/_SetCache.js"), + arraySome = __nested_webpack_require_1988539__(/*! ./_arraySome */ "./build/cht-core-4-6/node_modules/lodash/_arraySome.js"), + cacheHas = __nested_webpack_require_1988539__(/*! ./_cacheHas */ "./build/cht-core-4-6/node_modules/lodash/_cacheHas.js"); - var switcher = { - constructor: function () { - this._cases = []; - this.__default = null; - }, +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; - def: function (val, fn) { - this.__default = fn; - }, +/** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ +function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + arrLength = array.length, + othLength = other.length; - noWrap: { - switcher: function () { - var testers = this._cases, __default = this.__default; - return function tester() { - var handled = false, args = argsToArray(arguments), caseRet; - for (var i = 0, l = testers.length; i < l && !handled; i++) { - caseRet = testers[i](args); - if (caseRet.length > 1) { - if (caseRet[1] || caseRet[0]) { - return caseRet[1]; - } - } - } - if (!handled && __default) { - return __default.apply(this, args); - } - }; - } - } - }; + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + // Check that cyclic values are equal. + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } + var index = -1, + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; - function addToTester(func) { - tester[func] = function isaTester() { - this._testers.push(isa[func]); - }; - } + stack.set(array, other); + stack.set(other, array); - function addToSwitcher(func) { - switcher[func] = function isaTester() { - var args = argsToArray(arguments, 1), isFunc = isa[func], handler, doBreak = true; - if (args.length <= isFunc.length - 1) { - throw new TypeError("A handler must be defined when calling using switch"); - } else { - handler = args.pop(); - if (isBoolean(handler)) { - doBreak = handler; - handler = args.pop(); - } - } - if (!isFunction(handler)) { - throw new TypeError("handler must be defined"); - } - this._cases.push(function (testArgs) { - if (isFunc.apply(isa, testArgs.concat(args))) { - return [doBreak, handler.apply(this, testArgs)]; - } - return [false]; - }); - }; - } + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; - for (var i in isa) { - if (hasOwn.call(isa, i)) { - addToSwitcher(i); - addToTester(i); + if (customizer) { + var compared = isPartial + ? customizer(othValue, arrValue, index, other, array, stack) + : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined) { + if (compared) { + continue; + } + result = false; + break; + } + // Recursively compare arrays (susceptible to call stack limits). + if (seen) { + if (!arraySome(other, function(othValue, othIndex) { + if (!cacheHas(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); } - } - - var is = extended.define(isa).expose(isa); - is.tester = extended.define(tester); - is.switcher = extended.define(switcher); - return is; - + })) { + result = false; + break; + } + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { + result = false; + break; } + } + stack['delete'](array); + stack['delete'](other); + return result; +} - if (true) { - if ( true && module.exports) { - module.exports = defineIsa(__webpack_require__(/*! extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extended/index.js")); - - } - } else {} +module.exports = equalArrays; -}).call(this); +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/lodash/_equalByTag.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_equalByTag.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1991774__) => { -/***/ }), +var Symbol = __nested_webpack_require_1991774__(/*! ./_Symbol */ "./build/cht-core-4-6/node_modules/lodash/_Symbol.js"), + Uint8Array = __nested_webpack_require_1991774__(/*! ./_Uint8Array */ "./build/cht-core-4-6/node_modules/lodash/_Uint8Array.js"), + eq = __nested_webpack_require_1991774__(/*! ./eq */ "./build/cht-core-4-6/node_modules/lodash/eq.js"), + equalArrays = __nested_webpack_require_1991774__(/*! ./_equalArrays */ "./build/cht-core-4-6/node_modules/lodash/_equalArrays.js"), + mapToArray = __nested_webpack_require_1991774__(/*! ./_mapToArray */ "./build/cht-core-4-6/node_modules/lodash/_mapToArray.js"), + setToArray = __nested_webpack_require_1991774__(/*! ./_setToArray */ "./build/cht-core-4-6/node_modules/lodash/_setToArray.js"); -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/leafy/index.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/leafy/index.js ***! - \****************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; -(function () { - "use strict"; +/** `Object#toString` result references. */ +var boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + mapTag = '[object Map]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]'; - function defineLeafy(_) { +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]'; - function compare(a, b) { - var ret = 0; - if (a > b) { - return 1; - } else if (a < b) { - return -1; - } else if (!b) { - return 1; - } - return ret; - } +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; - var multiply = _.multiply; +/** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if ((object.byteLength != other.byteLength) || + (object.byteOffset != other.byteOffset)) { + return false; + } + object = object.buffer; + other = other.buffer; - var Tree = _.declare({ + case arrayBufferTag: + if ((object.byteLength != other.byteLength) || + !equalFunc(new Uint8Array(object), new Uint8Array(other))) { + return false; + } + return true; - instance: { + case boolTag: + case dateTag: + case numberTag: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq(+object, +other); - /** - * Prints a node - * @param node node to print - * @param level the current level the node is at, Used for formatting - */ - __printNode: function (node, level) { - //console.log(level); - var str = []; - if (_.isUndefinedOrNull(node)) { - str.push(multiply('\t', level)); - str.push("~"); - console.log(str.join("")); - } else { - this.__printNode(node.right, level + 1); - str.push(multiply('\t', level)); - str.push(node.data + "\n"); - console.log(str.join("")); - this.__printNode(node.left, level + 1); - } - }, + case errorTag: + return object.name == other.name && object.message == other.message; - constructor: function (options) { - options = options || {}; - this.compare = options.compare || compare; - this.__root = null; - }, + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == (other + ''); - insert: function () { - throw new Error("Not Implemented"); - }, + case mapTag: + var convert = mapToArray; - remove: function () { - throw new Error("Not Implemented"); - }, + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG; + convert || (convert = setToArray); - clear: function () { - this.__root = null; - }, + if (object.size != other.size && !isPartial) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; - isEmpty: function () { - return !(this.__root); - }, + // Recursively compare objects (susceptible to call stack limits). + stack.set(object, other); + var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack['delete'](object); + return result; - traverseWithCondition: function (node, order, callback) { - var cont = true; - if (node) { - order = order || Tree.PRE_ORDER; - if (order === Tree.PRE_ORDER) { - cont = callback(node.data); - if (cont) { - cont = this.traverseWithCondition(node.left, order, callback); - if (cont) { - cont = this.traverseWithCondition(node.right, order, callback); - } + case symbolTag: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; +} - } - } else if (order === Tree.IN_ORDER) { - cont = this.traverseWithCondition(node.left, order, callback); - if (cont) { - cont = callback(node.data); - if (cont) { - cont = this.traverseWithCondition(node.right, order, callback); - } - } - } else if (order === Tree.POST_ORDER) { - cont = this.traverseWithCondition(node.left, order, callback); - if (cont) { - if (cont) { - cont = this.traverseWithCondition(node.right, order, callback); - } - if (cont) { - cont = callback(node.data); - } - } - } else if (order === Tree.REVERSE_ORDER) { - cont = this.traverseWithCondition(node.right, order, callback); - if (cont) { - cont = callback(node.data); - if (cont) { - cont = this.traverseWithCondition(node.left, order, callback); - } - } - } - } - return cont; - }, +module.exports = equalByTag; - traverse: function (node, order, callback) { - if (node) { - order = order || Tree.PRE_ORDER; - if (order === Tree.PRE_ORDER) { - callback(node.data); - this.traverse(node.left, order, callback); - this.traverse(node.right, order, callback); - } else if (order === Tree.IN_ORDER) { - this.traverse(node.left, order, callback); - callback(node.data); - this.traverse(node.right, order, callback); - } else if (order === Tree.POST_ORDER) { - this.traverse(node.left, order, callback); - this.traverse(node.right, order, callback); - callback(node.data); - } else if (order === Tree.REVERSE_ORDER) { - this.traverse(node.right, order, callback); - callback(node.data); - this.traverse(node.left, order, callback); - } - } - }, +/***/ }), - forEach: function (cb, scope, order) { - if (typeof cb !== "function") { - throw new TypeError(); - } - order = order || Tree.IN_ORDER; - scope = scope || this; - this.traverse(this.__root, order, function (node) { - cb.call(scope, node, this); - }); - }, +/***/ "./build/cht-core-4-6/node_modules/lodash/_equalObjects.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_equalObjects.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1996319__) => { - map: function (cb, scope, order) { - if (typeof cb !== "function") { - throw new TypeError(); - } +var getAllKeys = __nested_webpack_require_1996319__(/*! ./_getAllKeys */ "./build/cht-core-4-6/node_modules/lodash/_getAllKeys.js"); - order = order || Tree.IN_ORDER; - scope = scope || this; - var ret = new this._static(); - this.traverse(this.__root, order, function (node) { - ret.insert(cb.call(scope, node, this)); - }); - return ret; - }, +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1; - filter: function (cb, scope, order) { - if (typeof cb !== "function") { - throw new TypeError(); - } +/** Used for built-in method references. */ +var objectProto = Object.prototype; - order = order || Tree.IN_ORDER; - scope = scope || this; - var ret = new this._static(); - this.traverse(this.__root, order, function (node) { - if (cb.call(scope, node, this)) { - ret.insert(node); - } - }); - return ret; - }, +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; - reduce: function (fun, accumulator, order) { - var arr = this.toArray(order); - var args = [arr, fun]; - if (!_.isUndefinedOrNull(accumulator)) { - args.push(accumulator); - } - return _.reduce.apply(_, args); - }, +/** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + objProps = getAllKeys(object), + objLength = objProps.length, + othProps = getAllKeys(other), + othLength = othProps.length; - reduceRight: function (fun, accumulator, order) { - var arr = this.toArray(order); - var args = [arr, fun]; - if (!_.isUndefinedOrNull(accumulator)) { - args.push(accumulator); - } - return _.reduceRight.apply(_, args); - }, + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + // Check that cyclic values are equal. + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result = true; + stack.set(object, other); + stack.set(other, object); - every: function (cb, scope, order) { - if (typeof cb !== "function") { - throw new TypeError(); - } - order = order || Tree.IN_ORDER; - scope = scope || this; - var ret = false; - this.traverseWithCondition(this.__root, order, function (node) { - ret = cb.call(scope, node, this); - return ret; - }); - return ret; - }, + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; - some: function (cb, scope, order) { - if (typeof cb !== "function") { - throw new TypeError(); - } + if (customizer) { + var compared = isPartial + ? customizer(othValue, objValue, key, other, object, stack) + : customizer(objValue, othValue, key, object, other, stack); + } + // Recursively compare objects (susceptible to call stack limits). + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared + )) { + result = false; + break; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; - order = order || Tree.IN_ORDER; - scope = scope || this; - var ret; - this.traverseWithCondition(this.__root, order, function (node) { - ret = cb.call(scope, node, this); - return !ret; - }); - return ret; - }, + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; + } + } + stack['delete'](object); + stack['delete'](other); + return result; +} - toArray: function (order) { - order = order || Tree.IN_ORDER; - var arr = []; - this.traverse(this.__root, order, function (node) { - arr.push(node); - }); - return arr; - }, +module.exports = equalObjects; - contains: function (value) { - var ret = false; - var root = this.__root; - while (root !== null) { - var cmp = this.compare(value, root.data); - if (cmp) { - root = root[(cmp === -1) ? "left" : "right"]; - } else { - ret = true; - root = null; - } - } - return ret; - }, - find: function (value) { - var ret; - var root = this.__root; - while (root) { - var cmp = this.compare(value, root.data); - if (cmp) { - root = root[(cmp === -1) ? "left" : "right"]; - } else { - ret = root.data; - break; - } - } - return ret; - }, +/***/ }), - findLessThan: function (value, exclusive) { - //find a better way!!!! - var ret = [], compare = this.compare; - this.traverseWithCondition(this.__root, Tree.IN_ORDER, function (v) { - var cmp = compare(value, v); - if ((!exclusive && cmp === 0) || cmp === 1) { - ret.push(v); - return true; - } else { - return false; - } - }); - return ret; - }, +/***/ "./build/cht-core-4-6/node_modules/lodash/_freeGlobal.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_freeGlobal.js ***! + \***************************************************************/ +/***/ ((module) => { - findGreaterThan: function (value, exclusive) { - //find a better way!!!! - var ret = [], compare = this.compare; - this.traverse(this.__root, Tree.REVERSE_ORDER, function (v) { - var cmp = compare(value, v); - if ((!exclusive && cmp === 0) || cmp === -1) { - ret.push(v); - return true; - } else { - return false; - } - }); - return ret; - }, +/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; - print: function () { - this.__printNode(this.__root, 0); - } - }, +module.exports = freeGlobal; - "static": { - PRE_ORDER: "pre_order", - IN_ORDER: "in_order", - POST_ORDER: "post_order", - REVERSE_ORDER: "reverse_order" - } - }); - var AVLTree = (function () { - var abs = Math.abs; +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/lodash/_getAllKeys.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_getAllKeys.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2000197__) => { - var makeNode = function (data) { - return { - data: data, - balance: 0, - left: null, - right: null - }; - }; +var baseGetAllKeys = __nested_webpack_require_2000197__(/*! ./_baseGetAllKeys */ "./build/cht-core-4-6/node_modules/lodash/_baseGetAllKeys.js"), + getSymbols = __nested_webpack_require_2000197__(/*! ./_getSymbols */ "./build/cht-core-4-6/node_modules/lodash/_getSymbols.js"), + keys = __nested_webpack_require_2000197__(/*! ./keys */ "./build/cht-core-4-6/node_modules/lodash/keys.js"); - var rotateSingle = function (root, dir, otherDir) { - var save = root[otherDir]; - root[otherDir] = save[dir]; - save[dir] = root; - return save; - }; +/** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ +function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); +} +module.exports = getAllKeys; - var rotateDouble = function (root, dir, otherDir) { - root[otherDir] = rotateSingle(root[otherDir], otherDir, dir); - return rotateSingle(root, dir, otherDir); - }; - var adjustBalance = function (root, dir, bal) { - var otherDir = dir === "left" ? "right" : "left"; - var n = root[dir], nn = n[otherDir]; - if (nn.balance === 0) { - root.balance = n.balance = 0; - } else if (nn.balance === bal) { - root.balance = -bal; - n.balance = 0; - } else { /* nn.balance == -bal */ - root.balance = 0; - n.balance = bal; - } - nn.balance = 0; - }; +/***/ }), - var insertAdjustBalance = function (root, dir) { - var otherDir = dir === "left" ? "right" : "left"; +/***/ "./build/cht-core-4-6/node_modules/lodash/_getMapData.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_getMapData.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2001227__) => { - var n = root[dir]; - var bal = dir === "right" ? -1 : +1; +var isKeyable = __nested_webpack_require_2001227__(/*! ./_isKeyable */ "./build/cht-core-4-6/node_modules/lodash/_isKeyable.js"); - if (n.balance === bal) { - root.balance = n.balance = 0; - root = rotateSingle(root, otherDir, dir); - } else { - adjustBalance(root, dir, bal); - root = rotateDouble(root, otherDir, dir); - } +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ +function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; +} - return root; +module.exports = getMapData; - }; - var removeAdjustBalance = function (root, dir, done) { - var otherDir = dir === "left" ? "right" : "left"; - var n = root[otherDir]; - var bal = dir === "right" ? -1 : 1; - if (n.balance === -bal) { - root.balance = n.balance = 0; - root = rotateSingle(root, dir, otherDir); - } else if (n.balance === bal) { - adjustBalance(root, otherDir, -bal); - root = rotateDouble(root, dir, otherDir); - } else { /* n.balance == 0 */ - root.balance = -bal; - n.balance = bal; - root = rotateSingle(root, dir, otherDir); - done.done = true; - } - return root; - }; +/***/ }), - function insert(tree, data, cmp) { - /* Empty tree case */ - var root = tree.__root; - if (root === null || root === undefined) { - tree.__root = makeNode(data); - } else { - var it = root, upd = [], up = [], top = 0, dir; - while (true) { - dir = upd[top] = cmp(data, it.data) === -1 ? "left" : "right"; - up[top++] = it; - if (!it[dir]) { - it[dir] = makeNode(data); - break; - } - it = it[dir]; - } - if (!it[dir]) { - return null; - } - while (--top >= 0) { - up[top].balance += upd[top] === "right" ? -1 : 1; - if (up[top].balance === 0) { - break; - } else if (abs(up[top].balance) > 1) { - up[top] = insertAdjustBalance(up[top], upd[top]); - if (top !== 0) { - up[top - 1][upd[top - 1]] = up[top]; - } else { - tree.__root = up[0]; - } - break; - } - } - } - } +/***/ "./build/cht-core-4-6/node_modules/lodash/_getMatchData.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_getMatchData.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2002062__) => { - function remove(tree, data, cmp) { - var root = tree.__root; - if (root !== null && root !== undefined) { - var it = root, top = 0, up = [], upd = [], done = {done: false}, dir, compare; - while (true) { - if (!it) { - return; - } else if ((compare = cmp(data, it.data)) === 0) { - break; - } - dir = upd[top] = compare === -1 ? "left" : "right"; - up[top++] = it; - it = it[dir]; - } - var l = it.left, r = it.right; - if (!l || !r) { - dir = !l ? "right" : "left"; - if (top !== 0) { - up[top - 1][upd[top - 1]] = it[dir]; - } else { - tree.__root = it[dir]; - } - } else { - var heir = l; - upd[top] = "left"; - up[top++] = it; - while (heir.right) { - upd[top] = "right"; - up[top++] = heir; - heir = heir.right; - } - it.data = heir.data; - up[top - 1][up[top - 1] === it ? "left" : "right"] = heir.left; - } - while (--top >= 0 && !done.done) { - up[top].balance += upd[top] === "left" ? -1 : +1; - if (abs(up[top].balance) === 1) { - break; - } else if (abs(up[top].balance) > 1) { - up[top] = removeAdjustBalance(up[top], upd[top], done); - if (top !== 0) { - up[top - 1][upd[top - 1]] = up[top]; - } else { - tree.__root = up[0]; - } - } - } - } - } +var isStrictComparable = __nested_webpack_require_2002062__(/*! ./_isStrictComparable */ "./build/cht-core-4-6/node_modules/lodash/_isStrictComparable.js"), + keys = __nested_webpack_require_2002062__(/*! ./keys */ "./build/cht-core-4-6/node_modules/lodash/keys.js"); + +/** + * Gets the property names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ +function getMatchData(object) { + var result = keys(object), + length = result.length; + while (length--) { + var key = result[length], + value = object[key]; - return Tree.extend({ - instance: { + result[length] = [key, value, isStrictComparable(value)]; + } + return result; +} - insert: function (data) { - insert(this, data, this.compare); - }, +module.exports = getMatchData; - remove: function (data) { - remove(this, data, this.compare); - }, +/***/ }), - __printNode: function (node, level) { - var str = []; - if (!node) { - str.push(multiply('\t', level)); - str.push("~"); - console.log(str.join("")); - } else { - this.__printNode(node.right, level + 1); - str.push(multiply('\t', level)); - str.push(node.data + ":" + node.balance + "\n"); - console.log(str.join("")); - this.__printNode(node.left, level + 1); - } - } +/***/ "./build/cht-core-4-6/node_modules/lodash/_getNative.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_getNative.js ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2003135__) => { - } - }); - }()); +var baseIsNative = __nested_webpack_require_2003135__(/*! ./_baseIsNative */ "./build/cht-core-4-6/node_modules/lodash/_baseIsNative.js"), + getValue = __nested_webpack_require_2003135__(/*! ./_getValue */ "./build/cht-core-4-6/node_modules/lodash/_getValue.js"); - var AnderssonTree = (function () { +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; +} - var nil = {level: 0, data: null}; +module.exports = getNative; - function makeNode(data, level) { - return { - data: data, - level: level, - left: nil, - right: nil - }; - } - function skew(root) { - if (root.level !== 0 && root.left.level === root.level) { - var save = root.left; - root.left = save.right; - save.right = root; - root = save; - } - return root; - } +/***/ }), - function split(root) { - if (root.level !== 0 && root.right.right.level === root.level) { - var save = root.right; - root.right = save.left; - save.left = root; - root = save; - root.level++; - } - return root; - } +/***/ "./build/cht-core-4-6/node_modules/lodash/_getRawTag.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_getRawTag.js ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2004117__) => { - function insert(root, data, compare) { - if (root === nil) { - root = makeNode(data, 1); - } - else { - var dir = compare(data, root.data) === -1 ? "left" : "right"; - root[dir] = insert(root[dir], data, compare); - root = skew(root); - root = split(root); - } - return root; - } +var Symbol = __nested_webpack_require_2004117__(/*! ./_Symbol */ "./build/cht-core-4-6/node_modules/lodash/_Symbol.js"); - var remove = function (root, data, compare) { - var rLeft, rRight; - if (root !== nil) { - var cmp = compare(data, root.data); - if (cmp === 0) { - rLeft = root.left, rRight = root.right; - if (rLeft !== nil && rRight !== nil) { - var heir = rLeft; - while (heir.right !== nil) { - heir = heir.right; - } - root.data = heir.data; - root.left = remove(rLeft, heir.data, compare); - } else { - root = root[rLeft === nil ? "right" : "left"]; - } - } else { - var dir = cmp === -1 ? "left" : "right"; - root[dir] = remove(root[dir], data, compare); - } - } - if (root !== nil) { - var rLevel = root.level; - var rLeftLevel = root.left.level, rRightLevel = root.right.level; - if (rLeftLevel < rLevel - 1 || rRightLevel < rLevel - 1) { - if (rRightLevel > --root.level) { - root.right.level = root.level; - } - root = skew(root); - root = split(root); - } - } - return root; - }; +/** Used for built-in method references. */ +var objectProto = Object.prototype; - return Tree.extend({ +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; - instance: { +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; - isEmpty: function () { - return this.__root === nil || this._super(arguments); - }, +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; - insert: function (data) { - if (!this.__root) { - this.__root = nil; - } - this.__root = insert(this.__root, data, this.compare); - }, +/** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ +function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), + tag = value[symToStringTag]; - remove: function (data) { - this.__root = remove(this.__root, data, this.compare); - }, + try { + value[symToStringTag] = undefined; + var unmasked = true; + } catch (e) {} + var result = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result; +} - traverseWithCondition: function (node) { - var cont = true; - if (node !== nil) { - return this._super(arguments); - } - return cont; - }, +module.exports = getRawTag; - traverse: function (node) { - if (node !== nil) { - this._super(arguments); - } - }, +/***/ }), - contains: function () { - if (this.__root !== nil) { - return this._super(arguments); - } - return false; - }, +/***/ "./build/cht-core-4-6/node_modules/lodash/_getSymbols.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_getSymbols.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2005680__) => { - __printNode: function (node, level) { - var str = []; - if (!node || !node.data) { - str.push(multiply('\t', level)); - str.push("~"); - console.log(str.join("")); - } else { - this.__printNode(node.right, level + 1); - str.push(multiply('\t', level)); - str.push(node.data + ":" + node.level + "\n"); - console.log(str.join("")); - this.__printNode(node.left, level + 1); - } - } +var arrayFilter = __nested_webpack_require_2005680__(/*! ./_arrayFilter */ "./build/cht-core-4-6/node_modules/lodash/_arrayFilter.js"), + stubArray = __nested_webpack_require_2005680__(/*! ./stubArray */ "./build/cht-core-4-6/node_modules/lodash/stubArray.js"); - } +/** Used for built-in method references. */ +var objectProto = Object.prototype; - }); - }()); +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; - var BinaryTree = Tree.extend({ - instance: { - insert: function (data) { - if (!this.__root) { - this.__root = { - data: data, - parent: null, - left: null, - right: null - }; - return this.__root; - } - var compare = this.compare; - var root = this.__root; - while (root !== null) { - var cmp = compare(data, root.data); - if (cmp) { - var leaf = (cmp === -1) ? "left" : "right"; - var next = root[leaf]; - if (!next) { - return (root[leaf] = {data: data, parent: root, left: null, right: null}); - } else { - root = next; - } - } else { - return; - } - } - }, +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeGetSymbols = Object.getOwnPropertySymbols; - remove: function (data) { - if (this.__root !== null) { - var head = {right: this.__root}, it = head; - var p, f = null; - var dir = "right"; - while (it[dir] !== null) { - p = it; - it = it[dir]; - var cmp = this.compare(data, it.data); - if (!cmp) { - f = it; - } - dir = (cmp === -1 ? "left" : "right"); - } - if (f !== null) { - f.data = it.data; - p[p.right === it ? "right" : "left"] = it[it.left === null ? "right" : "left"]; - } - this.__root = head.right; - } +/** + * Creates an array of the own enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ +var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); +}; - } - } - }); +module.exports = getSymbols; - var RedBlackTree = (function () { - var RED = "RED", BLACK = "BLACK"; - var isRed = function (node) { - return node !== null && node.red; - }; +/***/ }), - var makeNode = function (data) { - return { - data: data, - red: true, - left: null, - right: null - }; - }; +/***/ "./build/cht-core-4-6/node_modules/lodash/_getTag.js": +/*!***********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_getTag.js ***! + \***********************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2007052__) => { - var insert = function (root, data, compare) { - if (!root) { - return makeNode(data); +var DataView = __nested_webpack_require_2007052__(/*! ./_DataView */ "./build/cht-core-4-6/node_modules/lodash/_DataView.js"), + Map = __nested_webpack_require_2007052__(/*! ./_Map */ "./build/cht-core-4-6/node_modules/lodash/_Map.js"), + Promise = __nested_webpack_require_2007052__(/*! ./_Promise */ "./build/cht-core-4-6/node_modules/lodash/_Promise.js"), + Set = __nested_webpack_require_2007052__(/*! ./_Set */ "./build/cht-core-4-6/node_modules/lodash/_Set.js"), + WeakMap = __nested_webpack_require_2007052__(/*! ./_WeakMap */ "./build/cht-core-4-6/node_modules/lodash/_WeakMap.js"), + baseGetTag = __nested_webpack_require_2007052__(/*! ./_baseGetTag */ "./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js"), + toSource = __nested_webpack_require_2007052__(/*! ./_toSource */ "./build/cht-core-4-6/node_modules/lodash/_toSource.js"); - } else { - var cmp = compare(data, root.data); - if (cmp) { - var dir = cmp === -1 ? "left" : "right"; - var otherDir = dir === "left" ? "right" : "left"; - root[dir] = insert(root[dir], data, compare); - var node = root[dir]; +/** `Object#toString` result references. */ +var mapTag = '[object Map]', + objectTag = '[object Object]', + promiseTag = '[object Promise]', + setTag = '[object Set]', + weakMapTag = '[object WeakMap]'; - if (isRed(node)) { +var dataViewTag = '[object DataView]'; - var sibling = root[otherDir]; - if (isRed(sibling)) { - /* Case 1 */ - root.red = true; - node.red = false; - sibling.red = false; - } else { +/** Used to detect maps, sets, and weakmaps. */ +var dataViewCtorString = toSource(DataView), + mapCtorString = toSource(Map), + promiseCtorString = toSource(Promise), + setCtorString = toSource(Set), + weakMapCtorString = toSource(WeakMap); - if (isRed(node[dir])) { +/** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +var getTag = baseGetTag; - root = rotateSingle(root, otherDir); - } else if (isRed(node[otherDir])) { +// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. +if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || + (Map && getTag(new Map) != mapTag) || + (Promise && getTag(Promise.resolve()) != promiseTag) || + (Set && getTag(new Set) != setTag) || + (WeakMap && getTag(new WeakMap) != weakMapTag)) { + getTag = function(value) { + var result = baseGetTag(value), + Ctor = result == objectTag ? value.constructor : undefined, + ctorString = Ctor ? toSource(Ctor) : ''; - root = rotateDouble(root, otherDir); - } - } + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: return dataViewTag; + case mapCtorString: return mapTag; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag; + case weakMapCtorString: return weakMapTag; + } + } + return result; + }; +} - } - } - } - return root; - }; +module.exports = getTag; - var rotateSingle = function (root, dir) { - var otherDir = dir === "left" ? "right" : "left"; - var save = root[otherDir]; - root[otherDir] = save[dir]; - save[dir] = root; - root.red = true; - save.red = false; - return save; - }; - var rotateDouble = function (root, dir) { - var otherDir = dir === "left" ? "right" : "left"; - root[otherDir] = rotateSingle(root[otherDir], otherDir); - return rotateSingle(root, dir); - }; +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/lodash/_getValue.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_getValue.js ***! + \*************************************************************/ +/***/ ((module) => { - var remove = function (root, data, done, compare) { - if (!root) { - done.done = true; - } else { - var dir; - if (compare(data, root.data) === 0) { - if (!root.left || !root.right) { - var save = root[!root.left ? "right" : "left"]; - /* Case 0 */ - if (isRed(root)) { - done.done = true; - } else if (isRed(save)) { - save.red = false; - done.done = true; - } - return save; - } - else { - var heir = root.right, p; - while (heir.left !== null) { - p = heir; - heir = heir.left; - } - if (p) { - p.left = null; - } - root.data = heir.data; - data = heir.data; - } - } - dir = compare(data, root.data) === -1 ? "left" : "right"; - root[dir] = remove(root[dir], data, done, compare); - if (!done.done) { - root = removeBalance(root, dir, done); - } - } - return root; - }; +/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function getValue(object, key) { + return object == null ? undefined : object[key]; +} - var removeBalance = function (root, dir, done) { - var notDir = dir === "left" ? "right" : "left"; - var p = root, s = p[notDir]; - if (isRed(s)) { - root = rotateSingle(root, dir); - s = p[notDir]; - } - if (s !== null) { - if (!isRed(s.left) && !isRed(s.right)) { - if (isRed(p)) { - done.done = true; - } - p.red = 0; - s.red = 1; - } else { - var save = p.red, newRoot = ( root === p ); - p = (isRed(s[notDir]) ? rotateSingle : rotateDouble)(p, dir); - p.red = save; - p.left.red = p.right.red = 0; - if (newRoot) { - root = p; - } else { - root[dir] = p; - } - done.done = true; - } - } - return root; - }; +module.exports = getValue; - return Tree.extend({ - instance: { - insert: function (data) { - this.__root = insert(this.__root, data, this.compare); - this.__root.red = false; - }, - remove: function (data) { - var done = {done: false}; - var root = remove(this.__root, data, done, this.compare); - if (root !== null) { - root.red = 0; - } - this.__root = root; - return data; - }, +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_hasPath.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_hasPath.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2010355__) => { + +var castPath = __nested_webpack_require_2010355__(/*! ./_castPath */ "./build/cht-core-4-6/node_modules/lodash/_castPath.js"), + isArguments = __nested_webpack_require_2010355__(/*! ./isArguments */ "./build/cht-core-4-6/node_modules/lodash/isArguments.js"), + isArray = __nested_webpack_require_2010355__(/*! ./isArray */ "./build/cht-core-4-6/node_modules/lodash/isArray.js"), + isIndex = __nested_webpack_require_2010355__(/*! ./_isIndex */ "./build/cht-core-4-6/node_modules/lodash/_isIndex.js"), + isLength = __nested_webpack_require_2010355__(/*! ./isLength */ "./build/cht-core-4-6/node_modules/lodash/isLength.js"), + toKey = __nested_webpack_require_2010355__(/*! ./_toKey */ "./build/cht-core-4-6/node_modules/lodash/_toKey.js"); + +/** + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + */ +function hasPath(object, path, hasFunc) { + path = castPath(path, object); + + var index = -1, + length = path.length, + result = false; + + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result || ++index != length) { + return result; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && + (isArray(object) || isArguments(object)); +} + +module.exports = hasPath; - __printNode: function (node, level) { - var str = []; - if (!node) { - str.push(multiply('\t', level)); - str.push("~"); - console.log(str.join("")); - } else { - this.__printNode(node.right, level + 1); - str.push(multiply('\t', level)); - str.push((node.red ? RED : BLACK) + ":" + node.data + "\n"); - console.log(str.join("")); - this.__printNode(node.left, level + 1); - } - } +/***/ }), - } - }); +/***/ "./build/cht-core-4-6/node_modules/lodash/_hashClear.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_hashClear.js ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2012222__) => { - }()); +var nativeCreate = __nested_webpack_require_2012222__(/*! ./_nativeCreate */ "./build/cht-core-4-6/node_modules/lodash/_nativeCreate.js"); +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ +function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; +} - return { - Tree: Tree, - AVLTree: AVLTree, - AnderssonTree: AnderssonTree, - BinaryTree: BinaryTree, - RedBlackTree: RedBlackTree, - IN_ORDER: Tree.IN_ORDER, - PRE_ORDER: Tree.PRE_ORDER, - POST_ORDER: Tree.POST_ORDER, - REVERSE_ORDER: Tree.REVERSE_ORDER +module.exports = hashClear; - }; - } - if (true) { - if ( true && module.exports) { - module.exports = defineLeafy(__webpack_require__(/*! extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extended/index.js")() - .register("declare", __webpack_require__(/*! declare.js */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/declare.js/index.js")) - .register(__webpack_require__(/*! is-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/is-extended/index.js")) - .register(__webpack_require__(/*! array-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/array-extended/index.js")) - .register(__webpack_require__(/*! string-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/string-extended/index.js")) - ); +/***/ }), - } - } else {} +/***/ "./build/cht-core-4-6/node_modules/lodash/_hashDelete.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_hashDelete.js ***! + \***************************************************************/ +/***/ ((module) => { -}).call(this); +/** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; +} +module.exports = hashDelete; +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/lodash/_hashGet.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_hashGet.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2013672__) => { +var nativeCreate = __nested_webpack_require_2013672__(/*! ./_nativeCreate */ "./build/cht-core-4-6/node_modules/lodash/_nativeCreate.js"); +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; +/** Used for built-in method references. */ +var objectProto = Object.prototype; -/***/ }), +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_DataView.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_DataView.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; +} -var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getNative.js"), - root = __webpack_require__(/*! ./_root */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_root.js"); +module.exports = hashGet; -/* Built-in method references that are verified to be native. */ -var DataView = getNative(root, 'DataView'); -module.exports = DataView; +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/lodash/_hashHas.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_hashHas.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2014862__) => { -/***/ }), +var nativeCreate = __nested_webpack_require_2014862__(/*! ./_nativeCreate */ "./build/cht-core-4-6/node_modules/lodash/_nativeCreate.js"); -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Hash.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Hash.js ***! - \*****************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/** Used for built-in method references. */ +var objectProto = Object.prototype; -var hashClear = __webpack_require__(/*! ./_hashClear */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashClear.js"), - hashDelete = __webpack_require__(/*! ./_hashDelete */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashDelete.js"), - hashGet = __webpack_require__(/*! ./_hashGet */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashGet.js"), - hashHas = __webpack_require__(/*! ./_hashHas */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashHas.js"), - hashSet = __webpack_require__(/*! ./_hashSet */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashSet.js"); +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; /** - * Creates a hash object. + * Checks if a hash value for `key` exists. * * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ -function Hash(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } +function hashHas(key) { + var data = this.__data__; + return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); } -// Add methods to `Hash`. -Hash.prototype.clear = hashClear; -Hash.prototype['delete'] = hashDelete; -Hash.prototype.get = hashGet; -Hash.prototype.has = hashHas; -Hash.prototype.set = hashSet; - -module.exports = Hash; +module.exports = hashHas; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_ListCache.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_ListCache.js ***! - \**********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_hashSet.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_hashSet.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2015906__) => { -var listCacheClear = __webpack_require__(/*! ./_listCacheClear */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheClear.js"), - listCacheDelete = __webpack_require__(/*! ./_listCacheDelete */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheDelete.js"), - listCacheGet = __webpack_require__(/*! ./_listCacheGet */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheGet.js"), - listCacheHas = __webpack_require__(/*! ./_listCacheHas */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheHas.js"), - listCacheSet = __webpack_require__(/*! ./_listCacheSet */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheSet.js"); +var nativeCreate = __nested_webpack_require_2015906__(/*! ./_nativeCreate */ "./build/cht-core-4-6/node_modules/lodash/_nativeCreate.js"); + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; /** - * Creates an list cache object. + * Sets the hash `key` to `value`. * * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. */ -function ListCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } +function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; } -// Add methods to `ListCache`. -ListCache.prototype.clear = listCacheClear; -ListCache.prototype['delete'] = listCacheDelete; -ListCache.prototype.get = listCacheGet; -ListCache.prototype.has = listCacheHas; -ListCache.prototype.set = listCacheSet; - -module.exports = ListCache; +module.exports = hashSet; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Map.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Map.js ***! - \****************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_isIndex.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_isIndex.js ***! + \************************************************************/ +/***/ ((module) => { -var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getNative.js"), - root = __webpack_require__(/*! ./_root */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_root.js"); +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; -/* Built-in method references that are verified to be native. */ -var Map = getNative(root, 'Map'); +/** Used to detect unsigned integer values. */ +var reIsUint = /^(?:0|[1-9]\d*)$/; -module.exports = Map; +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); +} + +module.exports = isIndex; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_MapCache.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_MapCache.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_isKey.js": +/*!**********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_isKey.js ***! + \**********************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2017967__) => { -var mapCacheClear = __webpack_require__(/*! ./_mapCacheClear */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheClear.js"), - mapCacheDelete = __webpack_require__(/*! ./_mapCacheDelete */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheDelete.js"), - mapCacheGet = __webpack_require__(/*! ./_mapCacheGet */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheGet.js"), - mapCacheHas = __webpack_require__(/*! ./_mapCacheHas */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheHas.js"), - mapCacheSet = __webpack_require__(/*! ./_mapCacheSet */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheSet.js"); +var isArray = __nested_webpack_require_2017967__(/*! ./isArray */ "./build/cht-core-4-6/node_modules/lodash/isArray.js"), + isSymbol = __nested_webpack_require_2017967__(/*! ./isSymbol */ "./build/cht-core-4-6/node_modules/lodash/isSymbol.js"); + +/** Used to match property names within property paths. */ +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; /** - * Creates a map cache object to store key-value pairs. + * Checks if `value` is a property name and not a property path. * * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. */ -function MapCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); +function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); } -// Add methods to `MapCache`. -MapCache.prototype.clear = mapCacheClear; -MapCache.prototype['delete'] = mapCacheDelete; -MapCache.prototype.get = mapCacheGet; -MapCache.prototype.has = mapCacheHas; -MapCache.prototype.set = mapCacheSet; - -module.exports = MapCache; +module.exports = isKey; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Promise.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Promise.js ***! - \********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getNative.js"), - root = __webpack_require__(/*! ./_root */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_root.js"); +/***/ "./build/cht-core-4-6/node_modules/lodash/_isKeyable.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_isKeyable.js ***! + \**************************************************************/ +/***/ ((module) => { -/* Built-in method references that are verified to be native. */ -var Promise = getNative(root, 'Promise'); +/** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ +function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); +} -module.exports = Promise; +module.exports = isKeyable; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Set.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Set.js ***! - \****************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_isMasked.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_isMasked.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2020067__) => { -var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getNative.js"), - root = __webpack_require__(/*! ./_root */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_root.js"); +var coreJsData = __nested_webpack_require_2020067__(/*! ./_coreJsData */ "./build/cht-core-4-6/node_modules/lodash/_coreJsData.js"); -/* Built-in method references that are verified to be native. */ -var Set = getNative(root, 'Set'); +/** Used to detect methods masquerading as native. */ +var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; +}()); -module.exports = Set; +/** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ +function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); +} + +module.exports = isMasked; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_SetCache.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_SetCache.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_isPrototype.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_isPrototype.js ***! + \****************************************************************/ +/***/ ((module) => { -var MapCache = __webpack_require__(/*! ./_MapCache */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_MapCache.js"), - setCacheAdd = __webpack_require__(/*! ./_setCacheAdd */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_setCacheAdd.js"), - setCacheHas = __webpack_require__(/*! ./_setCacheHas */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_setCacheHas.js"); +/** Used for built-in method references. */ +var objectProto = Object.prototype; /** - * - * Creates an array cache object to store unique values. + * Checks if `value` is likely a prototype object. * * @private - * @constructor - * @param {Array} [values] The values to cache. + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. */ -function SetCache(values) { - var index = -1, - length = values == null ? 0 : values.length; +function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; - this.__data__ = new MapCache; - while (++index < length) { - this.add(values[index]); - } + return value === proto; } -// Add methods to `SetCache`. -SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; -SetCache.prototype.has = setCacheHas; - -module.exports = SetCache; +module.exports = isPrototype; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Stack.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Stack.js ***! - \******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_isStrictComparable.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_isStrictComparable.js ***! + \***********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2021881__) => { -var ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_ListCache.js"), - stackClear = __webpack_require__(/*! ./_stackClear */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackClear.js"), - stackDelete = __webpack_require__(/*! ./_stackDelete */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackDelete.js"), - stackGet = __webpack_require__(/*! ./_stackGet */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackGet.js"), - stackHas = __webpack_require__(/*! ./_stackHas */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackHas.js"), - stackSet = __webpack_require__(/*! ./_stackSet */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackSet.js"); +var isObject = __nested_webpack_require_2021881__(/*! ./isObject */ "./build/cht-core-4-6/node_modules/lodash/isObject.js"); /** - * Creates a stack cache object to store key-value pairs. + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. * * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. */ -function Stack(entries) { - var data = this.__data__ = new ListCache(entries); - this.size = data.size; +function isStrictComparable(value) { + return value === value && !isObject(value); } -// Add methods to `Stack`. -Stack.prototype.clear = stackClear; -Stack.prototype['delete'] = stackDelete; -Stack.prototype.get = stackGet; -Stack.prototype.has = stackHas; -Stack.prototype.set = stackSet; +module.exports = isStrictComparable; -module.exports = Stack; + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_listCacheClear.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_listCacheClear.js ***! + \*******************************************************************/ +/***/ ((module) => { + +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ +function listCacheClear() { + this.__data__ = []; + this.size = 0; +} + +module.exports = listCacheClear; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Symbol.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Symbol.js ***! - \*******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_listCacheDelete.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_listCacheDelete.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2023280__) => { + +var assocIndexOf = __nested_webpack_require_2023280__(/*! ./_assocIndexOf */ "./build/cht-core-4-6/node_modules/lodash/_assocIndexOf.js"); -var root = __webpack_require__(/*! ./_root */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_root.js"); +/** Used for built-in method references. */ +var arrayProto = Array.prototype; /** Built-in value references. */ -var Symbol = root.Symbol; +var splice = arrayProto.splice; -module.exports = Symbol; +/** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; +} + +module.exports = listCacheDelete; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Uint8Array.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Uint8Array.js ***! - \***********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_listCacheGet.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_listCacheGet.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2024493__) => { -var root = __webpack_require__(/*! ./_root */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_root.js"); +var assocIndexOf = __nested_webpack_require_2024493__(/*! ./_assocIndexOf */ "./build/cht-core-4-6/node_modules/lodash/_assocIndexOf.js"); -/** Built-in value references. */ -var Uint8Array = root.Uint8Array; +/** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); -module.exports = Uint8Array; + return index < 0 ? undefined : data[index][1]; +} + +module.exports = listCacheGet; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_WeakMap.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_WeakMap.js ***! - \********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_listCacheHas.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_listCacheHas.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2025351__) => { -var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getNative.js"), - root = __webpack_require__(/*! ./_root */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_root.js"); +var assocIndexOf = __nested_webpack_require_2025351__(/*! ./_assocIndexOf */ "./build/cht-core-4-6/node_modules/lodash/_assocIndexOf.js"); -/* Built-in method references that are verified to be native. */ -var WeakMap = getNative(root, 'WeakMap'); +/** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; +} -module.exports = WeakMap; +module.exports = listCacheHas; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayFilter.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayFilter.js ***! - \************************************************************************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_listCacheSet.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_listCacheSet.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2026192__) => { + +var assocIndexOf = __nested_webpack_require_2026192__(/*! ./_assocIndexOf */ "./build/cht-core-4-6/node_modules/lodash/_assocIndexOf.js"); /** - * A specialized version of `_.filter` for arrays without support for - * iteratee shorthands. + * Sets the list cache `key` to `value`. * * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. */ -function arrayFilter(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length, - resIndex = 0, - result = []; +function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result[resIndex++] = value; - } + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; } - return result; + return this; } -module.exports = arrayFilter; +module.exports = listCacheSet; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_mapCacheClear.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_mapCacheClear.js ***! + \******************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2027187__) => { + +var Hash = __nested_webpack_require_2027187__(/*! ./_Hash */ "./build/cht-core-4-6/node_modules/lodash/_Hash.js"), + ListCache = __nested_webpack_require_2027187__(/*! ./_ListCache */ "./build/cht-core-4-6/node_modules/lodash/_ListCache.js"), + Map = __nested_webpack_require_2027187__(/*! ./_Map */ "./build/cht-core-4-6/node_modules/lodash/_Map.js"); + +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ +function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; +} + +module.exports = mapCacheClear; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayIncludes.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayIncludes.js ***! - \**************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_mapCacheDelete.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_mapCacheDelete.js ***! + \*******************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2028160__) => { -var baseIndexOf = __webpack_require__(/*! ./_baseIndexOf */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIndexOf.js"); +var getMapData = __nested_webpack_require_2028160__(/*! ./_getMapData */ "./build/cht-core-4-6/node_modules/lodash/_getMapData.js"); /** - * A specialized version of `_.includes` for arrays without support for - * specifying an index to search from. + * Removes `key` and its value from the map. * * @private - * @param {Array} [array] The array to inspect. - * @param {*} target The value to search for. - * @returns {boolean} Returns `true` if `target` is found, else `false`. + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ -function arrayIncludes(array, value) { - var length = array == null ? 0 : array.length; - return !!length && baseIndexOf(array, value, 0) > -1; +function mapCacheDelete(key) { + var result = getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; } -module.exports = arrayIncludes; +module.exports = mapCacheDelete; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayIncludesWith.js": -/*!******************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayIncludesWith.js ***! - \******************************************************************************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_mapCacheGet.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_mapCacheGet.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2029042__) => { + +var getMapData = __nested_webpack_require_2029042__(/*! ./_getMapData */ "./build/cht-core-4-6/node_modules/lodash/_getMapData.js"); /** - * This function is like `arrayIncludes` except that it accepts a comparator. + * Gets the map value for `key`. * * @private - * @param {Array} [array] The array to inspect. - * @param {*} target The value to search for. - * @param {Function} comparator The comparator invoked per element. - * @returns {boolean} Returns `true` if `target` is found, else `false`. + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. */ -function arrayIncludesWith(array, value, comparator) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (comparator(value, array[index])) { - return true; - } - } - return false; +function mapCacheGet(key) { + return getMapData(this, key).get(key); } -module.exports = arrayIncludesWith; +module.exports = mapCacheGet; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayLikeKeys.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayLikeKeys.js ***! - \**************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var baseTimes = __webpack_require__(/*! ./_baseTimes */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseTimes.js"), - isArguments = __webpack_require__(/*! ./isArguments */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArguments.js"), - isArray = __webpack_require__(/*! ./isArray */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArray.js"), - isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isBuffer.js"), - isIndex = __webpack_require__(/*! ./_isIndex */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isIndex.js"), - isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isTypedArray.js"); - -/** Used for built-in method references. */ -var objectProto = Object.prototype; +/***/ "./build/cht-core-4-6/node_modules/lodash/_mapCacheHas.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_mapCacheHas.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2029804__) => { -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; +var getMapData = __nested_webpack_require_2029804__(/*! ./_getMapData */ "./build/cht-core-4-6/node_modules/lodash/_getMapData.js"); /** - * Creates an array of the enumerable property names of the array-like `value`. + * Checks if a map value for `key` exists. * * @private - * @param {*} value The value to query. - * @param {boolean} inherited Specify returning inherited property names. - * @returns {Array} Returns the array of property names. + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ -function arrayLikeKeys(value, inherited) { - var isArr = isArray(value), - isArg = !isArr && isArguments(value), - isBuff = !isArr && !isArg && isBuffer(value), - isType = !isArr && !isArg && !isBuff && isTypedArray(value), - skipIndexes = isArr || isArg || isBuff || isType, - result = skipIndexes ? baseTimes(value.length, String) : [], - length = result.length; - - for (var key in value) { - if ((inherited || hasOwnProperty.call(value, key)) && - !(skipIndexes && ( - // Safari 9 has enumerable `arguments.length` in strict mode. - key == 'length' || - // Node.js 0.10 has enumerable non-index properties on buffers. - (isBuff && (key == 'offset' || key == 'parent')) || - // PhantomJS 2 has enumerable non-index properties on typed arrays. - (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || - // Skip index properties. - isIndex(key, length) - ))) { - result.push(key); - } - } - return result; +function mapCacheHas(key) { + return getMapData(this, key).has(key); } -module.exports = arrayLikeKeys; +module.exports = mapCacheHas; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayMap.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayMap.js ***! - \*********************************************************************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_mapCacheSet.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_mapCacheSet.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2030618__) => { + +var getMapData = __nested_webpack_require_2030618__(/*! ./_getMapData */ "./build/cht-core-4-6/node_modules/lodash/_getMapData.js"); /** - * A specialized version of `_.map` for arrays without support for iteratee - * shorthands. + * Sets the map `key` to `value`. * * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. */ -function arrayMap(array, iteratee) { - var index = -1, - length = array == null ? 0 : array.length, - result = Array(length); +function mapCacheSet(key, value) { + var data = getMapData(this, key), + size = data.size; - while (++index < length) { - result[index] = iteratee(array[index], index, array); - } - return result; + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; } -module.exports = arrayMap; +module.exports = mapCacheSet; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayPush.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayPush.js ***! - \**********************************************************************************************/ +/***/ "./build/cht-core-4-6/node_modules/lodash/_mapToArray.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_mapToArray.js ***! + \***************************************************************/ /***/ ((module) => { /** - * Appends the elements of `values` to `array`. + * Converts `map` to its key-value pairs. * * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to append. - * @returns {Array} Returns `array`. + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. */ -function arrayPush(array, values) { +function mapToArray(map) { var index = -1, - length = values.length, - offset = array.length; + result = Array(map.size); - while (++index < length) { - array[offset + index] = values[index]; - } - return array; + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; } -module.exports = arrayPush; +module.exports = mapToArray; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arraySome.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arraySome.js ***! - \**********************************************************************************************/ +/***/ "./build/cht-core-4-6/node_modules/lodash/_matchesStrictComparable.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_matchesStrictComparable.js ***! + \****************************************************************************/ /***/ ((module) => { /** - * A specialized version of `_.some` for arrays without support for iteratee - * shorthands. + * A specialized version of `matchesProperty` for source values suitable + * for strict equality comparisons, i.e. `===`. * * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. + * @param {string} key The key of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. */ -function arraySome(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (predicate(array[index], index, array)) { - return true; +function matchesStrictComparable(key, srcValue) { + return function(object) { + if (object == null) { + return false; } - } - return false; + return object[key] === srcValue && + (srcValue !== undefined || (key in Object(object))); + }; } -module.exports = arraySome; +module.exports = matchesStrictComparable; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_assocIndexOf.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_assocIndexOf.js ***! - \*************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_memoizeCapped.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_memoizeCapped.js ***! + \******************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2033148__) => { + +var memoize = __nested_webpack_require_2033148__(/*! ./memoize */ "./build/cht-core-4-6/node_modules/lodash/memoize.js"); -var eq = __webpack_require__(/*! ./eq */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/eq.js"); +/** Used as the maximum memoize cache size. */ +var MAX_MEMOIZE_SIZE = 500; /** - * Gets the index at which the `key` is found in `array` of key-value pairs. + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. * * @private - * @param {Array} array The array to inspect. - * @param {*} key The key to search for. - * @returns {number} Returns the index of the matched value, else `-1`. + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. */ -function assocIndexOf(array, key) { - var length = array.length; - while (length--) { - if (eq(array[length][0], key)) { - return length; +function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); } - } - return -1; + return key; + }); + + var cache = result.cache; + return result; } -module.exports = assocIndexOf; +module.exports = memoizeCapped; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseFindIndex.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseFindIndex.js ***! - \**************************************************************************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_nativeCreate.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_nativeCreate.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2034213__) => { -/** - * The base implementation of `_.findIndex` and `_.findLastIndex` without - * support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} predicate The function invoked per iteration. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function baseFindIndex(array, predicate, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 1 : -1); +var getNative = __nested_webpack_require_2034213__(/*! ./_getNative */ "./build/cht-core-4-6/node_modules/lodash/_getNative.js"); - while ((fromRight ? index-- : ++index < length)) { - if (predicate(array[index], index, array)) { - return index; - } - } - return -1; -} +/* Built-in method references that are verified to be native. */ +var nativeCreate = getNative(Object, 'create'); -module.exports = baseFindIndex; +module.exports = nativeCreate; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseGet.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseGet.js ***! - \********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_nativeKeys.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_nativeKeys.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2034827__) => { -var castPath = __webpack_require__(/*! ./_castPath */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_castPath.js"), - toKey = __webpack_require__(/*! ./_toKey */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_toKey.js"); +var overArg = __nested_webpack_require_2034827__(/*! ./_overArg */ "./build/cht-core-4-6/node_modules/lodash/_overArg.js"); -/** - * The base implementation of `_.get` without support for default values. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @returns {*} Returns the resolved value. - */ -function baseGet(object, path) { - path = castPath(path, object); +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeKeys = overArg(Object.keys, Object); - var index = 0, - length = path.length; +module.exports = nativeKeys; - while (object != null && index < length) { - object = object[toKey(path[index++])]; - } - return (index && index == length) ? object : undefined; -} -module.exports = baseGet; +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/lodash/_nodeUtil.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_nodeUtil.js ***! + \*************************************************************/ +/***/ ((module, exports, __nested_webpack_require_2035431__) => { -/***/ }), +/* module decorator */ module = __nested_webpack_require_2035431__.nmd(module); +var freeGlobal = __nested_webpack_require_2035431__(/*! ./_freeGlobal */ "./build/cht-core-4-6/node_modules/lodash/_freeGlobal.js"); -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseGetAllKeys.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseGetAllKeys.js ***! - \***************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/** Detect free variable `exports`. */ +var freeExports = true && exports && !exports.nodeType && exports; -var arrayPush = __webpack_require__(/*! ./_arrayPush */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayPush.js"), - isArray = __webpack_require__(/*! ./isArray */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArray.js"); +/** Detect free variable `module`. */ +var freeModule = freeExports && "object" == 'object' && module && !module.nodeType && module; -/** - * The base implementation of `getAllKeys` and `getAllKeysIn` which uses - * `keysFunc` and `symbolsFunc` to get the enumerable property names and - * symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Function} keysFunc The function to get the keys of `object`. - * @param {Function} symbolsFunc The function to get the symbols of `object`. - * @returns {Array} Returns the array of property names and symbols. - */ -function baseGetAllKeys(object, keysFunc, symbolsFunc) { - var result = keysFunc(object); - return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); -} +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; -module.exports = baseGetAllKeys; +/** Detect free variable `process` from Node.js. */ +var freeProcess = moduleExports && freeGlobal.process; +/** Used to access faster Node.js helpers. */ +var nodeUtil = (function() { + try { + // Use `util.types` for Node.js 10+. + var types = freeModule && freeModule.require && freeModule.require('util').types; -/***/ }), + if (types) { + return types; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseGetTag.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseGetTag.js ***! - \***********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + // Legacy `process.binding('util')` for Node.js < 10. + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} +}()); -var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Symbol.js"), - getRawTag = __webpack_require__(/*! ./_getRawTag */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getRawTag.js"), - objectToString = __webpack_require__(/*! ./_objectToString */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_objectToString.js"); +module.exports = nodeUtil; -/** `Object#toString` result references. */ -var nullTag = '[object Null]', - undefinedTag = '[object Undefined]'; -/** Built-in value references. */ -var symToStringTag = Symbol ? Symbol.toStringTag : undefined; +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_objectToString.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_objectToString.js ***! + \*******************************************************************/ +/***/ ((module) => { + +/** Used for built-in method references. */ +var objectProto = Object.prototype; /** - * The base implementation of `getTag` without fallbacks for buggy environments. + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** + * Converts `value` to a string using `Object.prototype.toString`. * * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. */ -function baseGetTag(value) { - if (value == null) { - return value === undefined ? undefinedTag : nullTag; - } - return (symToStringTag && symToStringTag in Object(value)) - ? getRawTag(value) - : objectToString(value); +function objectToString(value) { + return nativeObjectToString.call(value); } -module.exports = baseGetTag; +module.exports = objectToString; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseHasIn.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseHasIn.js ***! - \**********************************************************************************************/ +/***/ "./build/cht-core-4-6/node_modules/lodash/_overArg.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_overArg.js ***! + \************************************************************/ /***/ ((module) => { /** - * The base implementation of `_.hasIn` without support for deep paths. + * Creates a unary function that invokes `func` with its argument transformed. * * @private - * @param {Object} [object] The object to query. - * @param {Array|string} key The key to check. - * @returns {boolean} Returns `true` if `key` exists, else `false`. + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. */ -function baseHasIn(object, key) { - return object != null && key in Object(object); +function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; } -module.exports = baseHasIn; +module.exports = overArg; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIndexOf.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIndexOf.js ***! - \************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_root.js": +/*!*********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_root.js ***! + \*********************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2038432__) => { -var baseFindIndex = __webpack_require__(/*! ./_baseFindIndex */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseFindIndex.js"), - baseIsNaN = __webpack_require__(/*! ./_baseIsNaN */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsNaN.js"), - strictIndexOf = __webpack_require__(/*! ./_strictIndexOf */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_strictIndexOf.js"); +var freeGlobal = __nested_webpack_require_2038432__(/*! ./_freeGlobal */ "./build/cht-core-4-6/node_modules/lodash/_freeGlobal.js"); -/** - * The base implementation of `_.indexOf` without `fromIndex` bounds checks. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function baseIndexOf(array, value, fromIndex) { - return value === value - ? strictIndexOf(array, value, fromIndex) - : baseFindIndex(array, baseIsNaN, fromIndex); -} +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; -module.exports = baseIndexOf; +/** Used as a reference to the global object. */ +var root = freeGlobal || freeSelf || Function('return this')(); +module.exports = root; -/***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsArguments.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsArguments.js ***! - \****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ }), -var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseGetTag.js"), - isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isObjectLike.js"); +/***/ "./build/cht-core-4-6/node_modules/lodash/_setCacheAdd.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_setCacheAdd.js ***! + \****************************************************************/ +/***/ ((module) => { -/** `Object#toString` result references. */ -var argsTag = '[object Arguments]'; +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; /** - * The base implementation of `_.isArguments`. + * Adds `value` to the array cache. * * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. */ -function baseIsArguments(value) { - return isObjectLike(value) && baseGetTag(value) == argsTag; +function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; } -module.exports = baseIsArguments; +module.exports = setCacheAdd; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsEqual.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsEqual.js ***! - \************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var baseIsEqualDeep = __webpack_require__(/*! ./_baseIsEqualDeep */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsEqualDeep.js"), - isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isObjectLike.js"); +/***/ "./build/cht-core-4-6/node_modules/lodash/_setCacheHas.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_setCacheHas.js ***! + \****************************************************************/ +/***/ ((module) => { /** - * The base implementation of `_.isEqual` which supports partial comparisons - * and tracks traversed objects. + * Checks if `value` is in the array cache. * * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {boolean} bitmask The bitmask flags. - * 1 - Unordered comparison - * 2 - Partial comparison - * @param {Function} [customizer] The function to customize comparisons. - * @param {Object} [stack] Tracks traversed `value` and `other` objects. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. */ -function baseIsEqual(value, other, bitmask, customizer, stack) { - if (value === other) { - return true; - } - if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { - return value !== value && other !== other; - } - return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); +function setCacheHas(value) { + return this.__data__.has(value); } -module.exports = baseIsEqual; +module.exports = setCacheHas; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsEqualDeep.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsEqualDeep.js ***! - \****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var Stack = __webpack_require__(/*! ./_Stack */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Stack.js"), - equalArrays = __webpack_require__(/*! ./_equalArrays */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_equalArrays.js"), - equalByTag = __webpack_require__(/*! ./_equalByTag */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_equalByTag.js"), - equalObjects = __webpack_require__(/*! ./_equalObjects */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_equalObjects.js"), - getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getTag.js"), - isArray = __webpack_require__(/*! ./isArray */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArray.js"), - isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isBuffer.js"), - isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isTypedArray.js"); - -/** Used to compose bitmasks for value comparisons. */ -var COMPARE_PARTIAL_FLAG = 1; - -/** `Object#toString` result references. */ -var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - objectTag = '[object Object]'; - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; +/***/ "./build/cht-core-4-6/node_modules/lodash/_setToArray.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_setToArray.js ***! + \***************************************************************/ +/***/ ((module) => { /** - * A specialized version of `baseIsEqual` for arrays and objects which performs - * deep comparisons and tracks traversed objects enabling objects with circular - * references to be compared. + * Converts `set` to an array of its values. * * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} [stack] Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ -function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { - var objIsArr = isArray(object), - othIsArr = isArray(other), - objTag = objIsArr ? arrayTag : getTag(object), - othTag = othIsArr ? arrayTag : getTag(other); - - objTag = objTag == argsTag ? objectTag : objTag; - othTag = othTag == argsTag ? objectTag : othTag; - - var objIsObj = objTag == objectTag, - othIsObj = othTag == objectTag, - isSameTag = objTag == othTag; - - if (isSameTag && isBuffer(object)) { - if (!isBuffer(other)) { - return false; - } - objIsArr = true; - objIsObj = false; - } - if (isSameTag && !objIsObj) { - stack || (stack = new Stack); - return (objIsArr || isTypedArray(object)) - ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) - : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); - } - if (!(bitmask & COMPARE_PARTIAL_FLAG)) { - var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), - othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); - - if (objIsWrapped || othIsWrapped) { - var objUnwrapped = objIsWrapped ? object.value() : object, - othUnwrapped = othIsWrapped ? other.value() : other; - - stack || (stack = new Stack); - return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); - } - } - if (!isSameTag) { - return false; - } - stack || (stack = new Stack); - return equalObjects(object, other, bitmask, customizer, equalFunc, stack); + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ +function setToArray(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = value; + }); + return result; } -module.exports = baseIsEqualDeep; +module.exports = setToArray; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsMatch.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsMatch.js ***! - \************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var Stack = __webpack_require__(/*! ./_Stack */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Stack.js"), - baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsEqual.js"); +/***/ "./build/cht-core-4-6/node_modules/lodash/_stackClear.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_stackClear.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2041171__) => { -/** Used to compose bitmasks for value comparisons. */ -var COMPARE_PARTIAL_FLAG = 1, - COMPARE_UNORDERED_FLAG = 2; +var ListCache = __nested_webpack_require_2041171__(/*! ./_ListCache */ "./build/cht-core-4-6/node_modules/lodash/_ListCache.js"); /** - * The base implementation of `_.isMatch` without support for iteratee shorthands. + * Removes all key-value entries from the stack. * * @private - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @param {Array} matchData The property names, values, and compare flags to match. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. + * @name clear + * @memberOf Stack */ -function baseIsMatch(object, source, matchData, customizer) { - var index = matchData.length, - length = index, - noCustomizer = !customizer; - - if (object == null) { - return !length; - } - object = Object(object); - while (index--) { - var data = matchData[index]; - if ((noCustomizer && data[2]) - ? data[1] !== object[data[0]] - : !(data[0] in object) - ) { - return false; - } - } - while (++index < length) { - data = matchData[index]; - var key = data[0], - objValue = object[key], - srcValue = data[1]; - - if (noCustomizer && data[2]) { - if (objValue === undefined && !(key in object)) { - return false; - } - } else { - var stack = new Stack; - if (customizer) { - var result = customizer(objValue, srcValue, key, object, source, stack); - } - if (!(result === undefined - ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) - : result - )) { - return false; - } - } - } - return true; +function stackClear() { + this.__data__ = new ListCache; + this.size = 0; } -module.exports = baseIsMatch; +module.exports = stackClear; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsNaN.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsNaN.js ***! - \**********************************************************************************************/ +/***/ "./build/cht-core-4-6/node_modules/lodash/_stackDelete.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_stackDelete.js ***! + \****************************************************************/ /***/ ((module) => { /** - * The base implementation of `_.isNaN` without support for number objects. + * Removes `key` and its value from the stack. * * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ -function baseIsNaN(value) { - return value !== value; +function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); + + this.size = data.size; + return result; } -module.exports = baseIsNaN; +module.exports = stackDelete; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsNative.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsNative.js ***! - \*************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var isFunction = __webpack_require__(/*! ./isFunction */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isFunction.js"), - isMasked = __webpack_require__(/*! ./_isMasked */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isMasked.js"), - isObject = __webpack_require__(/*! ./isObject */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isObject.js"), - toSource = __webpack_require__(/*! ./_toSource */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_toSource.js"); +/***/ "./build/cht-core-4-6/node_modules/lodash/_stackGet.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_stackGet.js ***! + \*************************************************************/ +/***/ ((module) => { /** - * Used to match `RegExp` - * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. */ -var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; - -/** Used to detect host constructors (Safari). */ -var reIsHostCtor = /^\[object .+?Constructor\]$/; +function stackGet(key) { + return this.__data__.get(key); +} -/** Used for built-in method references. */ -var funcProto = Function.prototype, - objectProto = Object.prototype; +module.exports = stackGet; -/** Used to resolve the decompiled source of functions. */ -var funcToString = funcProto.toString; -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; +/***/ }), -/** Used to detect if a method is native. */ -var reIsNative = RegExp('^' + - funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' -); +/***/ "./build/cht-core-4-6/node_modules/lodash/_stackHas.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_stackHas.js ***! + \*************************************************************/ +/***/ ((module) => { /** - * The base implementation of `_.isNative` without bad shim checks. + * Checks if a stack value for `key` exists. * * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ -function baseIsNative(value) { - if (!isObject(value) || isMasked(value)) { - return false; - } - var pattern = isFunction(value) ? reIsNative : reIsHostCtor; - return pattern.test(toSource(value)); +function stackHas(key) { + return this.__data__.has(key); } -module.exports = baseIsNative; +module.exports = stackHas; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsTypedArray.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsTypedArray.js ***! - \*****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseGetTag.js"), - isLength = __webpack_require__(/*! ./isLength */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isLength.js"), - isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isObjectLike.js"); - -/** `Object#toString` result references. */ -var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - boolTag = '[object Boolean]', - dateTag = '[object Date]', - errorTag = '[object Error]', - funcTag = '[object Function]', - mapTag = '[object Map]', - numberTag = '[object Number]', - objectTag = '[object Object]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - weakMapTag = '[object WeakMap]'; +/***/ "./build/cht-core-4-6/node_modules/lodash/_stackSet.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_stackSet.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2043749__) => { -var arrayBufferTag = '[object ArrayBuffer]', - dataViewTag = '[object DataView]', - float32Tag = '[object Float32Array]', - float64Tag = '[object Float64Array]', - int8Tag = '[object Int8Array]', - int16Tag = '[object Int16Array]', - int32Tag = '[object Int32Array]', - uint8Tag = '[object Uint8Array]', - uint8ClampedTag = '[object Uint8ClampedArray]', - uint16Tag = '[object Uint16Array]', - uint32Tag = '[object Uint32Array]'; +var ListCache = __nested_webpack_require_2043749__(/*! ./_ListCache */ "./build/cht-core-4-6/node_modules/lodash/_ListCache.js"), + Map = __nested_webpack_require_2043749__(/*! ./_Map */ "./build/cht-core-4-6/node_modules/lodash/_Map.js"), + MapCache = __nested_webpack_require_2043749__(/*! ./_MapCache */ "./build/cht-core-4-6/node_modules/lodash/_MapCache.js"); -/** Used to identify `toStringTag` values of typed arrays. */ -var typedArrayTags = {}; -typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = -typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = -typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = -typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = -typedArrayTags[uint32Tag] = true; -typedArrayTags[argsTag] = typedArrayTags[arrayTag] = -typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = -typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = -typedArrayTags[errorTag] = typedArrayTags[funcTag] = -typedArrayTags[mapTag] = typedArrayTags[numberTag] = -typedArrayTags[objectTag] = typedArrayTags[regexpTag] = -typedArrayTags[setTag] = typedArrayTags[stringTag] = -typedArrayTags[weakMapTag] = false; +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; /** - * The base implementation of `_.isTypedArray` without Node.js optimizations. + * Sets the stack `key` to `value`. * * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. */ -function baseIsTypedArray(value) { - return isObjectLike(value) && - isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; +function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; } -module.exports = baseIsTypedArray; +module.exports = stackSet; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIteratee.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIteratee.js ***! - \*************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var baseMatches = __webpack_require__(/*! ./_baseMatches */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseMatches.js"), - baseMatchesProperty = __webpack_require__(/*! ./_baseMatchesProperty */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseMatchesProperty.js"), - identity = __webpack_require__(/*! ./identity */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/identity.js"), - isArray = __webpack_require__(/*! ./isArray */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArray.js"), - property = __webpack_require__(/*! ./property */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/property.js"); +/***/ "./build/cht-core-4-6/node_modules/lodash/_strictIndexOf.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_strictIndexOf.js ***! + \******************************************************************/ +/***/ ((module) => { /** - * The base implementation of `_.iteratee`. + * A specialized version of `_.indexOf` which performs strict equality + * comparisons of values, i.e. `===`. * * @private - * @param {*} [value=_.identity] The value to convert to an iteratee. - * @returns {Function} Returns the iteratee. + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. */ -function baseIteratee(value) { - // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. - // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. - if (typeof value == 'function') { - return value; - } - if (value == null) { - return identity; - } - if (typeof value == 'object') { - return isArray(value) - ? baseMatchesProperty(value[0], value[1]) - : baseMatches(value); +function strictIndexOf(array, value, fromIndex) { + var index = fromIndex - 1, + length = array.length; + + while (++index < length) { + if (array[index] === value) { + return index; + } } - return property(value); + return -1; } -module.exports = baseIteratee; +module.exports = strictIndexOf; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseKeys.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseKeys.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_stringToPath.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_stringToPath.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2046096__) => { -var isPrototype = __webpack_require__(/*! ./_isPrototype */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isPrototype.js"), - nativeKeys = __webpack_require__(/*! ./_nativeKeys */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_nativeKeys.js"); +var memoizeCapped = __nested_webpack_require_2046096__(/*! ./_memoizeCapped */ "./build/cht-core-4-6/node_modules/lodash/_memoizeCapped.js"); -/** Used for built-in method references. */ -var objectProto = Object.prototype; +/** Used to match property names within property paths. */ +var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; +/** Used to match backslashes in property paths. */ +var reEscapeChar = /\\(\\)?/g; /** - * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * Converts `string` to a property path array. * * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. */ -function baseKeys(object) { - if (!isPrototype(object)) { - return nativeKeys(object); - } +var stringToPath = memoizeCapped(function(string) { var result = []; - for (var key in Object(object)) { - if (hasOwnProperty.call(object, key) && key != 'constructor') { - result.push(key); - } + if (string.charCodeAt(0) === 46 /* . */) { + result.push(''); } + string.replace(rePropName, function(match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); + }); return result; -} +}); -module.exports = baseKeys; +module.exports = stringToPath; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseMatches.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseMatches.js ***! - \************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_toKey.js": +/*!**********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_toKey.js ***! + \**********************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2047347__) => { -var baseIsMatch = __webpack_require__(/*! ./_baseIsMatch */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsMatch.js"), - getMatchData = __webpack_require__(/*! ./_getMatchData */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getMatchData.js"), - matchesStrictComparable = __webpack_require__(/*! ./_matchesStrictComparable */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_matchesStrictComparable.js"); +var isSymbol = __nested_webpack_require_2047347__(/*! ./isSymbol */ "./build/cht-core-4-6/node_modules/lodash/isSymbol.js"); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; /** - * The base implementation of `_.matches` which doesn't clone `source`. + * Converts `value` to a string key if it's not a string or symbol. * * @private - * @param {Object} source The object of property values to match. - * @returns {Function} Returns the new spec function. + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. */ -function baseMatches(source) { - var matchData = getMatchData(source); - if (matchData.length == 1 && matchData[0][2]) { - return matchesStrictComparable(matchData[0][0], matchData[0][1]); +function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; } - return function(object) { - return object === source || baseIsMatch(object, source, matchData); - }; + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; } -module.exports = baseMatches; +module.exports = toKey; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseMatchesProperty.js": -/*!********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseMatchesProperty.js ***! - \********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/_toSource.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_toSource.js ***! + \*************************************************************/ +/***/ ((module) => { -var baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsEqual.js"), - get = __webpack_require__(/*! ./get */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/get.js"), - hasIn = __webpack_require__(/*! ./hasIn */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/hasIn.js"), - isKey = __webpack_require__(/*! ./_isKey */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isKey.js"), - isStrictComparable = __webpack_require__(/*! ./_isStrictComparable */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isStrictComparable.js"), - matchesStrictComparable = __webpack_require__(/*! ./_matchesStrictComparable */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_matchesStrictComparable.js"), - toKey = __webpack_require__(/*! ./_toKey */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_toKey.js"); +/** Used for built-in method references. */ +var funcProto = Function.prototype; -/** Used to compose bitmasks for value comparisons. */ -var COMPARE_PARTIAL_FLAG = 1, - COMPARE_UNORDERED_FLAG = 2; +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; /** - * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. + * Converts `func` to its source code. * * @private - * @param {string} path The path of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. */ -function baseMatchesProperty(path, srcValue) { - if (isKey(path) && isStrictComparable(srcValue)) { - return matchesStrictComparable(toKey(path), srcValue); +function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} } - return function(object) { - var objValue = get(object, path); - return (objValue === undefined && objValue === srcValue) - ? hasIn(object, path) - : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); - }; + return ''; } -module.exports = baseMatchesProperty; +module.exports = toSource; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseProperty.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseProperty.js ***! - \*************************************************************************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/core.js": +/*!********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/core.js ***! + \********************************************************/ +/***/ (function(module, exports, __nested_webpack_require_2049112__) { -/** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new accessor function. +/* module decorator */ module = __nested_webpack_require_2049112__.nmd(module); +var __WEBPACK_AMD_DEFINE_RESULT__;/** + * @license + * Lodash (Custom Build) + * Build: `lodash core -o ./dist/lodash.core.js` + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors */ -function baseProperty(key) { - return function(object) { - return object == null ? undefined : object[key]; - }; -} +;(function() { -module.exports = baseProperty; + /** Used as a safe reference for `undefined` in pre-ES5 environments. */ + var undefined; + /** Used as the semantic version number. */ + var VERSION = '4.17.21'; -/***/ }), + /** Error message constants. */ + var FUNC_ERROR_TEXT = 'Expected a function'; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_basePropertyDeep.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_basePropertyDeep.js ***! - \*****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; -var baseGet = __webpack_require__(/*! ./_baseGet */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseGet.js"); + /** Used to compose bitmasks for function metadata. */ + var WRAP_BIND_FLAG = 1, + WRAP_PARTIAL_FLAG = 32; -/** - * A specialized version of `baseProperty` which supports deep paths. - * - * @private - * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new accessor function. - */ -function basePropertyDeep(path) { - return function(object) { - return baseGet(object, path); - }; -} + /** Used as references for various `Number` constants. */ + var INFINITY = 1 / 0, + MAX_SAFE_INTEGER = 9007199254740991; -module.exports = basePropertyDeep; + /** `Object#toString` result references. */ + var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + asyncTag = '[object AsyncFunction]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + numberTag = '[object Number]', + objectTag = '[object Object]', + proxyTag = '[object Proxy]', + regexpTag = '[object RegExp]', + stringTag = '[object String]'; + /** Used to match HTML entities and HTML characters. */ + var reUnescapedHtml = /[&<>"']/g, + reHasUnescapedHtml = RegExp(reUnescapedHtml.source); -/***/ }), + /** Used to detect unsigned integer values. */ + var reIsUint = /^(?:0|[1-9]\d*)$/; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseTimes.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseTimes.js ***! - \**********************************************************************************************/ -/***/ ((module) => { + /** Used to map characters to HTML entities. */ + var htmlEscapes = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''' + }; -/** - * The base implementation of `_.times` without support for iteratee shorthands - * or max array length checks. - * - * @private - * @param {number} n The number of times to invoke `iteratee`. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the array of results. - */ -function baseTimes(n, iteratee) { - var index = -1, - result = Array(n); + /** Detect free variable `global` from Node.js. */ + var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; - while (++index < n) { - result[index] = iteratee(index); - } - return result; -} + /** Detect free variable `self`. */ + var freeSelf = typeof self == 'object' && self && self.Object === Object && self; -module.exports = baseTimes; + /** Used as a reference to the global object. */ + var root = freeGlobal || freeSelf || Function('return this')(); + /** Detect free variable `exports`. */ + var freeExports = true && exports && !exports.nodeType && exports; -/***/ }), + /** Detect free variable `module`. */ + var freeModule = freeExports && "object" == 'object' && module && !module.nodeType && module; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseToString.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseToString.js ***! - \*************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + /*--------------------------------------------------------------------------*/ -var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Symbol.js"), - arrayMap = __webpack_require__(/*! ./_arrayMap */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayMap.js"), - isArray = __webpack_require__(/*! ./isArray */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArray.js"), - isSymbol = __webpack_require__(/*! ./isSymbol */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isSymbol.js"); + /** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ + function arrayPush(array, values) { + array.push.apply(array, values); + return array; + } -/** Used as references for various `Number` constants. */ -var INFINITY = 1 / 0; + /** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 1 : -1); -/** Used to convert symbols to primitives and strings. */ -var symbolProto = Symbol ? Symbol.prototype : undefined, - symbolToString = symbolProto ? symbolProto.toString : undefined; + while ((fromRight ? index-- : ++index < length)) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; + } -/** - * The base implementation of `_.toString` which doesn't convert nullish - * values to empty strings. - * - * @private - * @param {*} value The value to process. - * @returns {string} Returns the string. - */ -function baseToString(value) { - // Exit early for strings to avoid a performance hit in some environments. - if (typeof value == 'string') { - return value; + /** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. + */ + function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; } - if (isArray(value)) { - // Recursively convert values (susceptible to call stack limits). - return arrayMap(value, baseToString) + ''; + + /** + * The base implementation of `_.propertyOf` without support for deep paths. + * + * @private + * @param {Object} object The object to query. + * @returns {Function} Returns the new accessor function. + */ + function basePropertyOf(object) { + return function(key) { + return object == null ? undefined : object[key]; + }; } - if (isSymbol(value)) { - return symbolToString ? symbolToString.call(value) : ''; + + /** + * The base implementation of `_.reduce` and `_.reduceRight`, without support + * for iteratee shorthands, which iterates over `collection` using `eachFunc`. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} accumulator The initial value. + * @param {boolean} initAccum Specify using the first or last element of + * `collection` as the initial value. + * @param {Function} eachFunc The function to iterate over `collection`. + * @returns {*} Returns the accumulated value. + */ + function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { + eachFunc(collection, function(value, index, collection) { + accumulator = initAccum + ? (initAccum = false, value) + : iteratee(accumulator, value, index, collection); + }); + return accumulator; } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; -} -module.exports = baseToString; + /** + * The base implementation of `_.values` and `_.valuesIn` which creates an + * array of `object` property values corresponding to the property names + * of `props`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} props The property names to get values for. + * @returns {Object} Returns the array of property values. + */ + function baseValues(object, props) { + return baseMap(props, function(key) { + return object[key]; + }); + } + /** + * Used by `_.escape` to convert characters to HTML entities. + * + * @private + * @param {string} chr The matched character to escape. + * @returns {string} Returns the escaped character. + */ + var escapeHtmlChar = basePropertyOf(htmlEscapes); -/***/ }), + /** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseUnary.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseUnary.js ***! - \**********************************************************************************************/ -/***/ ((module) => { + /*--------------------------------------------------------------------------*/ -/** - * The base implementation of `_.unary` without support for storing metadata. - * - * @private - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. - */ -function baseUnary(func) { - return function(value) { - return func(value); - }; -} + /** Used for built-in method references. */ + var arrayProto = Array.prototype, + objectProto = Object.prototype; -module.exports = baseUnary; + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + /** Used to generate unique IDs. */ + var idCounter = 0; -/***/ }), + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString = objectProto.toString; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseUniq.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseUniq.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + /** Used to restore the original `_` reference in `_.noConflict`. */ + var oldDash = root._; -var SetCache = __webpack_require__(/*! ./_SetCache */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_SetCache.js"), - arrayIncludes = __webpack_require__(/*! ./_arrayIncludes */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayIncludes.js"), - arrayIncludesWith = __webpack_require__(/*! ./_arrayIncludesWith */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayIncludesWith.js"), - cacheHas = __webpack_require__(/*! ./_cacheHas */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_cacheHas.js"), - createSet = __webpack_require__(/*! ./_createSet */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_createSet.js"), - setToArray = __webpack_require__(/*! ./_setToArray */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_setToArray.js"); + /** Built-in value references. */ + var objectCreate = Object.create, + propertyIsEnumerable = objectProto.propertyIsEnumerable; -/** Used as the size to enable large array optimizations. */ -var LARGE_ARRAY_SIZE = 200; + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeIsFinite = root.isFinite, + nativeKeys = overArg(Object.keys, Object), + nativeMax = Math.max; -/** - * The base implementation of `_.uniqBy` without support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new duplicate free array. - */ -function baseUniq(array, iteratee, comparator) { - var index = -1, - includes = arrayIncludes, - length = array.length, - isCommon = true, - result = [], - seen = result; + /*------------------------------------------------------------------------*/ - if (comparator) { - isCommon = false; - includes = arrayIncludesWith; - } - else if (length >= LARGE_ARRAY_SIZE) { - var set = iteratee ? null : createSet(array); - if (set) { - return setToArray(set); - } - isCommon = false; - includes = cacheHas; - seen = new SetCache; - } - else { - seen = iteratee ? [] : result; + /** + * Creates a `lodash` object which wraps `value` to enable implicit method + * chain sequences. Methods that operate on and return arrays, collections, + * and functions can be chained together. Methods that retrieve a single value + * or may return a primitive value will automatically end the chain sequence + * and return the unwrapped value. Otherwise, the value must be unwrapped + * with `_#value`. + * + * Explicit chain sequences, which must be unwrapped with `_#value`, may be + * enabled using `_.chain`. + * + * The execution of chained methods is lazy, that is, it's deferred until + * `_#value` is implicitly or explicitly called. + * + * Lazy evaluation allows several methods to support shortcut fusion. + * Shortcut fusion is an optimization to merge iteratee calls; this avoids + * the creation of intermediate arrays and can greatly reduce the number of + * iteratee executions. Sections of a chain sequence qualify for shortcut + * fusion if the section is applied to an array and iteratees accept only + * one argument. The heuristic for whether a section qualifies for shortcut + * fusion is subject to change. + * + * Chaining is supported in custom builds as long as the `_#value` method is + * directly or indirectly included in the build. + * + * In addition to lodash methods, wrappers have `Array` and `String` methods. + * + * The wrapper `Array` methods are: + * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` + * + * The wrapper `String` methods are: + * `replace` and `split` + * + * The wrapper methods that support shortcut fusion are: + * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, + * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, + * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` + * + * The chainable wrapper methods are: + * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, + * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, + * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, + * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, + * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, + * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, + * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, + * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, + * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, + * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, + * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, + * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, + * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, + * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, + * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, + * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, + * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, + * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, + * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, + * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, + * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, + * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, + * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, + * `zipObject`, `zipObjectDeep`, and `zipWith` + * + * The wrapper methods that are **not** chainable by default are: + * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, + * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, + * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, + * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, + * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, + * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, + * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, + * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, + * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, + * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, + * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, + * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, + * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, + * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, + * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, + * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, + * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, + * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, + * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, + * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, + * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, + * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, + * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, + * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, + * `upperFirst`, `value`, and `words` + * + * @name _ + * @constructor + * @category Seq + * @param {*} value The value to wrap in a `lodash` instance. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * function square(n) { + * return n * n; + * } + * + * var wrapped = _([1, 2, 3]); + * + * // Returns an unwrapped value. + * wrapped.reduce(_.add); + * // => 6 + * + * // Returns a wrapped value. + * var squares = wrapped.map(square); + * + * _.isArray(squares); + * // => false + * + * _.isArray(squares.value()); + * // => true + */ + function lodash(value) { + return value instanceof LodashWrapper + ? value + : new LodashWrapper(value); } - outer: - while (++index < length) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - value = (comparator || value !== 0) ? value : 0; - if (isCommon && computed === computed) { - var seenIndex = seen.length; - while (seenIndex--) { - if (seen[seenIndex] === computed) { - continue outer; - } - } - if (iteratee) { - seen.push(computed); + /** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ + var baseCreate = (function() { + function object() {} + return function(proto) { + if (!isObject(proto)) { + return {}; } - result.push(value); - } - else if (!includes(seen, computed, comparator)) { - if (seen !== result) { - seen.push(computed); + if (objectCreate) { + return objectCreate(proto); } - result.push(value); - } - } - return result; -} + object.prototype = proto; + var result = new object; + object.prototype = undefined; + return result; + }; + }()); -module.exports = baseUniq; + /** + * The base constructor for creating `lodash` wrapper objects. + * + * @private + * @param {*} value The value to wrap. + * @param {boolean} [chainAll] Enable explicit method chain sequences. + */ + function LodashWrapper(value, chainAll) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__chain__ = !!chainAll; + } + LodashWrapper.prototype = baseCreate(lodash.prototype); + LodashWrapper.prototype.constructor = LodashWrapper; -/***/ }), + /*------------------------------------------------------------------------*/ -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_cacheHas.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_cacheHas.js ***! - \*********************************************************************************************/ -/***/ ((module) => { + /** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } + } -/** - * Checks if a `cache` value for `key` exists. - * - * @private - * @param {Object} cache The cache to query. - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function cacheHas(cache, key) { - return cache.has(key); -} + /** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function baseAssignValue(object, key, value) { + object[key] = value; + } -module.exports = cacheHas; + /** + * The base implementation of `_.delay` and `_.defer` which accepts `args` + * to provide to `func`. + * + * @private + * @param {Function} func The function to delay. + * @param {number} wait The number of milliseconds to delay invocation. + * @param {Array} args The arguments to provide to `func`. + * @returns {number|Object} Returns the timer id or timeout object. + */ + function baseDelay(func, wait, args) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + return setTimeout(function() { func.apply(undefined, args); }, wait); + } + /** + * The base implementation of `_.forEach` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + */ + var baseEach = createBaseEach(baseForOwn); -/***/ }), + /** + * The base implementation of `_.every` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false` + */ + function baseEvery(collection, predicate) { + var result = true; + baseEach(collection, function(value, index, collection) { + result = !!predicate(value, index, collection); + return result; + }); + return result; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_castPath.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_castPath.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + /** + * The base implementation of methods like `_.max` and `_.min` which accepts a + * `comparator` to determine the extremum value. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The iteratee invoked per iteration. + * @param {Function} comparator The comparator used to compare values. + * @returns {*} Returns the extremum value. + */ + function baseExtremum(array, iteratee, comparator) { + var index = -1, + length = array.length; -var isArray = __webpack_require__(/*! ./isArray */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArray.js"), - isKey = __webpack_require__(/*! ./_isKey */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isKey.js"), - stringToPath = __webpack_require__(/*! ./_stringToPath */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stringToPath.js"), - toString = __webpack_require__(/*! ./toString */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/toString.js"); + while (++index < length) { + var value = array[index], + current = iteratee(value); -/** - * Casts `value` to a path array if it's not one. - * - * @private - * @param {*} value The value to inspect. - * @param {Object} [object] The object to query keys on. - * @returns {Array} Returns the cast property path array. - */ -function castPath(value, object) { - if (isArray(value)) { - return value; + if (current != null && (computed === undefined + ? (current === current && !false) + : comparator(current, computed) + )) { + var computed = current, + result = value; + } + } + return result; } - return isKey(value, object) ? [value] : stringToPath(toString(value)); -} - -module.exports = castPath; + /** + * The base implementation of `_.filter` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ + function baseFilter(collection, predicate) { + var result = []; + baseEach(collection, function(value, index, collection) { + if (predicate(value, index, collection)) { + result.push(value); + } + }); + return result; + } -/***/ }), + /** + * The base implementation of `_.flatten` with support for restricting flattening. + * + * @private + * @param {Array} array The array to flatten. + * @param {number} depth The maximum recursion depth. + * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. + * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. + * @param {Array} [result=[]] The initial result value. + * @returns {Array} Returns the new flattened array. + */ + function baseFlatten(array, depth, predicate, isStrict, result) { + var index = -1, + length = array.length; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_coreJsData.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_coreJsData.js ***! - \***********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + predicate || (predicate = isFlattenable); + result || (result = []); -var root = __webpack_require__(/*! ./_root */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_root.js"); + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) { + if (depth > 1) { + // Recursively flatten arrays (susceptible to call stack limits). + baseFlatten(value, depth - 1, predicate, isStrict, result); + } else { + arrayPush(result, value); + } + } else if (!isStrict) { + result[result.length] = value; + } + } + return result; + } -/** Used to detect overreaching core-js shims. */ -var coreJsData = root['__core-js_shared__']; + /** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ + var baseFor = createBaseFor(); -module.exports = coreJsData; + /** + * The base implementation of `_.forOwn` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ + function baseForOwn(object, iteratee) { + return object && baseFor(object, iteratee, keys); + } + /** + * The base implementation of `_.functions` which creates an array of + * `object` function property names filtered from `props`. + * + * @private + * @param {Object} object The object to inspect. + * @param {Array} props The property names to filter. + * @returns {Array} Returns the function names. + */ + function baseFunctions(object, props) { + return baseFilter(props, function(key) { + return isFunction(object[key]); + }); + } -/***/ }), + /** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + function baseGetTag(value) { + return objectToString(value); + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_createSet.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_createSet.js ***! - \**********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + /** + * The base implementation of `_.gt` which doesn't coerce arguments. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is greater than `other`, + * else `false`. + */ + function baseGt(value, other) { + return value > other; + } -var Set = __webpack_require__(/*! ./_Set */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Set.js"), - noop = __webpack_require__(/*! ./noop */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/noop.js"), - setToArray = __webpack_require__(/*! ./_setToArray */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_setToArray.js"); + /** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ + var baseIsArguments = noop; -/** Used as references for various `Number` constants. */ -var INFINITY = 1 / 0; + /** + * The base implementation of `_.isDate` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a date object, else `false`. + */ + function baseIsDate(value) { + return isObjectLike(value) && baseGetTag(value) == dateTag; + } -/** - * Creates a set object of `values`. - * - * @private - * @param {Array} values The values to add to the set. - * @returns {Object} Returns the new set. - */ -var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) { - return new Set(values); -}; + /** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ + function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); + } -module.exports = createSet; + /** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = objIsArr ? arrayTag : baseGetTag(object), + othTag = othIsArr ? arrayTag : baseGetTag(other); + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; -/***/ }), + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_equalArrays.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_equalArrays.js ***! - \************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + stack || (stack = []); + var objStack = find(stack, function(entry) { + return entry[0] == object; + }); + var othStack = find(stack, function(entry) { + return entry[0] == other; + }); + if (objStack && othStack) { + return objStack[1] == other; + } + stack.push([object, other]); + stack.push([other, object]); + if (isSameTag && !objIsObj) { + var result = (objIsArr) + ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + stack.pop(); + return result; + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); -var SetCache = __webpack_require__(/*! ./_SetCache */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_SetCache.js"), - arraySome = __webpack_require__(/*! ./_arraySome */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arraySome.js"), - cacheHas = __webpack_require__(/*! ./_cacheHas */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_cacheHas.js"); + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; -/** Used to compose bitmasks for value comparisons. */ -var COMPARE_PARTIAL_FLAG = 1, - COMPARE_UNORDERED_FLAG = 2; + var result = equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + stack.pop(); + return result; + } + } + if (!isSameTag) { + return false; + } + var result = equalObjects(object, other, bitmask, customizer, equalFunc, stack); + stack.pop(); + return result; + } -/** - * A specialized version of `baseIsEqualDeep` for arrays with support for - * partial deep comparisons. - * - * @private - * @param {Array} array The array to compare. - * @param {Array} other The other array to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `array` and `other` objects. - * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. - */ -function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - arrLength = array.length, - othLength = other.length; + /** + * The base implementation of `_.isRegExp` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. + */ + function baseIsRegExp(value) { + return isObjectLike(value) && baseGetTag(value) == regexpTag; + } - if (arrLength != othLength && !(isPartial && othLength > arrLength)) { - return false; + /** + * The base implementation of `_.iteratee`. + * + * @private + * @param {*} [value=_.identity] The value to convert to an iteratee. + * @returns {Function} Returns the iteratee. + */ + function baseIteratee(func) { + if (typeof func == 'function') { + return func; + } + if (func == null) { + return identity; + } + return (typeof func == 'object' ? baseMatches : baseProperty)(func); } - // Assume cyclic values are equal. - var stacked = stack.get(array); - if (stacked && stack.get(other)) { - return stacked == other; + + /** + * The base implementation of `_.lt` which doesn't coerce arguments. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is less than `other`, + * else `false`. + */ + function baseLt(value, other) { + return value < other; } - var index = -1, - result = true, - seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; - stack.set(array, other); - stack.set(other, array); + /** + * The base implementation of `_.map` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function baseMap(collection, iteratee) { + var index = -1, + result = isArrayLike(collection) ? Array(collection.length) : []; - // Ignore non-index properties. - while (++index < arrLength) { - var arrValue = array[index], - othValue = other[index]; + baseEach(collection, function(value, key, collection) { + result[++index] = iteratee(value, key, collection); + }); + return result; + } - if (customizer) { - var compared = isPartial - ? customizer(othValue, arrValue, index, other, array, stack) - : customizer(arrValue, othValue, index, array, other, stack); - } - if (compared !== undefined) { - if (compared) { - continue; + /** + * The base implementation of `_.matches` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + */ + function baseMatches(source) { + var props = nativeKeys(source); + return function(object) { + var length = props.length; + if (object == null) { + return !length; } - result = false; - break; - } - // Recursively compare arrays (susceptible to call stack limits). - if (seen) { - if (!arraySome(other, function(othValue, othIndex) { - if (!cacheHas(seen, othIndex) && - (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - return seen.push(othIndex); - } - })) { - result = false; - break; + object = Object(object); + while (length--) { + var key = props[length]; + if (!(key in object && + baseIsEqual(source[key], object[key], COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG) + )) { + return false; + } } - } else if (!( - arrValue === othValue || - equalFunc(arrValue, othValue, bitmask, customizer, stack) - )) { - result = false; - break; - } + return true; + }; } - stack['delete'](array); - stack['delete'](other); - return result; -} -module.exports = equalArrays; + /** + * The base implementation of `_.pick` without support for individual + * property identifiers. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @returns {Object} Returns the new object. + */ + function basePick(object, props) { + object = Object(object); + return reduce(props, function(result, key) { + if (key in object) { + result[key] = object[key]; + } + return result; + }, {}); + } + /** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ + function baseRest(func, start) { + return setToString(overRest(func, start, identity), func + ''); + } -/***/ }), + /** + * The base implementation of `_.slice` without an iteratee call guard. + * + * @private + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ + function baseSlice(array, start, end) { + var index = -1, + length = array.length; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_equalByTag.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_equalByTag.js ***! - \***********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = end > length ? length : end; + if (end < 0) { + end += length; + } + length = start > end ? 0 : ((end - start) >>> 0); + start >>>= 0; -var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Symbol.js"), - Uint8Array = __webpack_require__(/*! ./_Uint8Array */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Uint8Array.js"), - eq = __webpack_require__(/*! ./eq */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/eq.js"), - equalArrays = __webpack_require__(/*! ./_equalArrays */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_equalArrays.js"), - mapToArray = __webpack_require__(/*! ./_mapToArray */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapToArray.js"), - setToArray = __webpack_require__(/*! ./_setToArray */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_setToArray.js"); + var result = Array(length); + while (++index < length) { + result[index] = array[index + start]; + } + return result; + } -/** Used to compose bitmasks for value comparisons. */ -var COMPARE_PARTIAL_FLAG = 1, - COMPARE_UNORDERED_FLAG = 2; + /** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ + function copyArray(source) { + return baseSlice(source, 0, source.length); + } -/** `Object#toString` result references. */ -var boolTag = '[object Boolean]', - dateTag = '[object Date]', - errorTag = '[object Error]', - mapTag = '[object Map]', - numberTag = '[object Number]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - symbolTag = '[object Symbol]'; + /** + * The base implementation of `_.some` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ + function baseSome(collection, predicate) { + var result; -var arrayBufferTag = '[object ArrayBuffer]', - dataViewTag = '[object DataView]'; + baseEach(collection, function(value, index, collection) { + result = predicate(value, index, collection); + return !result; + }); + return !!result; + } -/** Used to convert symbols to primitives and strings. */ -var symbolProto = Symbol ? Symbol.prototype : undefined, - symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; + /** + * The base implementation of `wrapperValue` which returns the result of + * performing a sequence of actions on the unwrapped `value`, where each + * successive action is supplied the return value of the previous. + * + * @private + * @param {*} value The unwrapped value. + * @param {Array} actions Actions to perform to resolve the unwrapped value. + * @returns {*} Returns the resolved value. + */ + function baseWrapperValue(value, actions) { + var result = value; + return reduce(actions, function(result, action) { + return action.func.apply(action.thisArg, arrayPush([result], action.args)); + }, result); + } -/** - * A specialized version of `baseIsEqualDeep` for comparing objects of - * the same `toStringTag`. - * - * **Note:** This function only supports comparing values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {string} tag The `toStringTag` of the objects to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ -function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { - switch (tag) { - case dataViewTag: - if ((object.byteLength != other.byteLength) || - (object.byteOffset != other.byteOffset)) { - return false; - } - object = object.buffer; - other = other.buffer; + /** + * Compares values to sort them in ascending order. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {number} Returns the sort order indicator for `value`. + */ + function compareAscending(value, other) { + if (value !== other) { + var valIsDefined = value !== undefined, + valIsNull = value === null, + valIsReflexive = value === value, + valIsSymbol = false; - case arrayBufferTag: - if ((object.byteLength != other.byteLength) || - !equalFunc(new Uint8Array(object), new Uint8Array(other))) { - return false; - } - return true; + var othIsDefined = other !== undefined, + othIsNull = other === null, + othIsReflexive = other === other, + othIsSymbol = false; - case boolTag: - case dateTag: - case numberTag: - // Coerce booleans to `1` or `0` and dates to milliseconds. - // Invalid dates are coerced to `NaN`. - return eq(+object, +other); + if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) || + (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) || + (valIsNull && othIsDefined && othIsReflexive) || + (!valIsDefined && othIsReflexive) || + !valIsReflexive) { + return 1; + } + if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) || + (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) || + (othIsNull && valIsDefined && valIsReflexive) || + (!othIsDefined && valIsReflexive) || + !othIsReflexive) { + return -1; + } + } + return 0; + } - case errorTag: - return object.name == other.name && object.message == other.message; + /** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ + function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); - case regexpTag: - case stringTag: - // Coerce regexes to strings and treat strings, primitives and objects, - // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring - // for more details. - return object == (other + ''); + var index = -1, + length = props.length; - case mapTag: - var convert = mapToArray; + while (++index < length) { + var key = props[index]; - case setTag: - var isPartial = bitmask & COMPARE_PARTIAL_FLAG; - convert || (convert = setToArray); + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : undefined; - if (object.size != other.size && !isPartial) { - return false; + if (newValue === undefined) { + newValue = source[key]; } - // Assume cyclic values are equal. - var stacked = stack.get(object); - if (stacked) { - return stacked == other; + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); } - bitmask |= COMPARE_UNORDERED_FLAG; + } + return object; + } - // Recursively compare objects (susceptible to call stack limits). - stack.set(object, other); - var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); - stack['delete'](object); - return result; + /** + * Creates a function like `_.assign`. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ + function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, + length = sources.length, + customizer = length > 1 ? sources[length - 1] : undefined; - case symbolTag: - if (symbolValueOf) { - return symbolValueOf.call(object) == symbolValueOf.call(other); + customizer = (assigner.length > 3 && typeof customizer == 'function') + ? (length--, customizer) + : undefined; + + object = Object(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } } + return object; + }); } - return false; -} -module.exports = equalByTag; + /** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + if (collection == null) { + return collection; + } + if (!isArrayLike(collection)) { + return eachFunc(collection, iteratee); + } + var length = collection.length, + index = fromRight ? length : -1, + iterable = Object(collection); + while ((fromRight ? index-- : ++index < length)) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; + } -/***/ }), + /** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, + iterable = Object(object), + props = keysFunc(object), + length = props.length; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_equalObjects.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_equalObjects.js ***! - \*************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; + } -var getAllKeys = __webpack_require__(/*! ./_getAllKeys */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getAllKeys.js"); + /** + * Creates a function that produces an instance of `Ctor` regardless of + * whether it was invoked as part of a `new` expression or by `call` or `apply`. + * + * @private + * @param {Function} Ctor The constructor to wrap. + * @returns {Function} Returns the new wrapped function. + */ + function createCtor(Ctor) { + return function() { + // Use a `switch` statement to work with class constructors. See + // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist + // for more details. + var args = arguments; + var thisBinding = baseCreate(Ctor.prototype), + result = Ctor.apply(thisBinding, args); -/** Used to compose bitmasks for value comparisons. */ -var COMPARE_PARTIAL_FLAG = 1; + // Mimic the constructor's `return` behavior. + // See https://es5.github.io/#x13.2.2 for more details. + return isObject(result) ? result : thisBinding; + }; + } -/** Used for built-in method references. */ -var objectProto = Object.prototype; + /** + * Creates a `_.find` or `_.findLast` function. + * + * @private + * @param {Function} findIndexFunc The function to find the collection index. + * @returns {Function} Returns the new find function. + */ + function createFind(findIndexFunc) { + return function(collection, predicate, fromIndex) { + var iterable = Object(collection); + if (!isArrayLike(collection)) { + var iteratee = baseIteratee(predicate, 3); + collection = keys(collection); + predicate = function(key) { return iteratee(iterable[key], key, iterable); }; + } + var index = findIndexFunc(collection, predicate, fromIndex); + return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; + }; + } -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; + /** + * Creates a function that wraps `func` to invoke it with the `this` binding + * of `thisArg` and `partials` prepended to the arguments it receives. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} partials The arguments to prepend to those provided to + * the new function. + * @returns {Function} Returns the new wrapped function. + */ + function createPartial(func, bitmask, thisArg, partials) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + var isBind = bitmask & WRAP_BIND_FLAG, + Ctor = createCtor(func); -/** - * A specialized version of `baseIsEqualDeep` for objects with support for - * partial deep comparisons. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ -function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - objProps = getAllKeys(object), - objLength = objProps.length, - othProps = getAllKeys(other), - othLength = othProps.length; + function wrapper() { + var argsIndex = -1, + argsLength = arguments.length, + leftIndex = -1, + leftLength = partials.length, + args = Array(leftLength + argsLength), + fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; - if (objLength != othLength && !isPartial) { - return false; - } - var index = objLength; - while (index--) { - var key = objProps[index]; - if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { - return false; + while (++leftIndex < leftLength) { + args[leftIndex] = partials[leftIndex]; + } + while (argsLength--) { + args[leftIndex++] = arguments[++argsIndex]; + } + return fn.apply(isBind ? thisArg : this, args); } + return wrapper; } - // Assume cyclic values are equal. - var stacked = stack.get(object); - if (stacked && stack.get(other)) { - return stacked == other; - } - var result = true; - stack.set(object, other); - stack.set(other, object); - var skipCtor = isPartial; - while (++index < objLength) { - key = objProps[index]; - var objValue = object[key], - othValue = other[key]; + /** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ + function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + arrLength = array.length, + othLength = other.length; - if (customizer) { - var compared = isPartial - ? customizer(othValue, objValue, key, other, object, stack) - : customizer(objValue, othValue, key, object, other, stack); + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; } - // Recursively compare objects (susceptible to call stack limits). - if (!(compared === undefined - ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) - : compared - )) { - result = false; - break; + // Check that cyclic values are equal. + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; } - skipCtor || (skipCtor = key == 'constructor'); - } - if (result && !skipCtor) { - var objCtor = object.constructor, - othCtor = other.constructor; + var index = -1, + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG) ? [] : undefined; - // Non `Object` object instances with different constructors are not equal. - if (objCtor != othCtor && - ('constructor' in object && 'constructor' in other) && - !(typeof objCtor == 'function' && objCtor instanceof objCtor && - typeof othCtor == 'function' && othCtor instanceof othCtor)) { - result = false; + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + var compared; + if (compared !== undefined) { + if (compared) { + continue; + } + result = false; + break; + } + // Recursively compare arrays (susceptible to call stack limits). + if (seen) { + if (!baseSome(other, function(othValue, othIndex) { + if (!indexOf(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { + result = false; + break; + } } + return result; } - stack['delete'](object); - stack['delete'](other); - return result; -} - -module.exports = equalObjects; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_freeGlobal.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_freeGlobal.js ***! - \***********************************************************************************************/ -/***/ ((module) => { - -/** Detect free variable `global` from Node.js. */ -var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; - -module.exports = freeGlobal; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getAllKeys.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getAllKeys.js ***! - \***********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var baseGetAllKeys = __webpack_require__(/*! ./_baseGetAllKeys */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseGetAllKeys.js"), - getSymbols = __webpack_require__(/*! ./_getSymbols */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getSymbols.js"), - keys = __webpack_require__(/*! ./keys */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/keys.js"); - -/** - * Creates an array of own enumerable property names and symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. - */ -function getAllKeys(object) { - return baseGetAllKeys(object, keys, getSymbols); -} - -module.exports = getAllKeys; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getMapData.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getMapData.js ***! - \***********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var isKeyable = __webpack_require__(/*! ./_isKeyable */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isKeyable.js"); - -/** - * Gets the data for `map`. - * - * @private - * @param {Object} map The map to query. - * @param {string} key The reference key. - * @returns {*} Returns the map data. - */ -function getMapData(map, key) { - var data = map.__data__; - return isKeyable(key) - ? data[typeof key == 'string' ? 'string' : 'hash'] - : data.map; -} - -module.exports = getMapData; + /** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { -/***/ }), + case boolTag: + case dateTag: + case numberTag: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq(+object, +other); -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getMatchData.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getMatchData.js ***! - \*************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + case errorTag: + return object.name == other.name && object.message == other.message; -var isStrictComparable = __webpack_require__(/*! ./_isStrictComparable */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isStrictComparable.js"), - keys = __webpack_require__(/*! ./keys */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/keys.js"); + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == (other + ''); -/** - * Gets the property names, values, and compare flags of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the match data of `object`. - */ -function getMatchData(object) { - var result = keys(object), - length = result.length; + } + return false; + } - while (length--) { - var key = result[length], - value = object[key]; + /** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + objProps = keys(object), + objLength = objProps.length, + othProps = keys(other), + othLength = othProps.length; - result[length] = [key, value, isStrictComparable(value)]; - } - return result; -} + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + // Check that cyclic values are equal. + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result = true; -module.exports = getMatchData; + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; + var compared; + // Recursively compare objects (susceptible to call stack limits). + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared + )) { + result = false; + break; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; -/***/ }), + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; + } + } + return result; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getNative.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getNative.js ***! - \**********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + /** + * A specialized version of `baseRest` which flattens the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ + function flatRest(func) { + return setToString(overRest(func, undefined, flatten), func + ''); + } -var baseIsNative = __webpack_require__(/*! ./_baseIsNative */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsNative.js"), - getValue = __webpack_require__(/*! ./_getValue */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getValue.js"); + /** + * Checks if `value` is a flattenable `arguments` object or array. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. + */ + function isFlattenable(value) { + return isArray(value) || isArguments(value); + } -/** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ -function getNative(object, key) { - var value = getValue(object, key); - return baseIsNative(value) ? value : undefined; -} + /** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ + function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; -module.exports = getNative; + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); + } + /** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ + function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { + return eq(object[index], value); + } + return false; + } -/***/ }), + /** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function nativeKeysIn(object) { + var result = []; + if (object != null) { + for (var key in Object(object)) { + result.push(key); + } + } + return result; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getRawTag.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getRawTag.js ***! - \**********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + /** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ + function objectToString(value) { + return nativeObjectToString.call(value); + } -var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Symbol.js"); + /** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ + function overRest(func, start, transform) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); -/** Used for built-in method references. */ -var objectProto = Object.prototype; + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform(array); + return func.apply(this, otherArgs); + }; + } -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; + /** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + var setToString = identity; -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ -var nativeObjectToString = objectProto.toString; + /*------------------------------------------------------------------------*/ -/** Built-in value references. */ -var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + /** + * Creates an array with all falsey values removed. The values `false`, `null`, + * `0`, `""`, `undefined`, and `NaN` are falsey. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to compact. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.compact([0, 1, false, 2, '', 3]); + * // => [1, 2, 3] + */ + function compact(array) { + return baseFilter(array, Boolean); + } -/** - * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the raw `toStringTag`. - */ -function getRawTag(value) { - var isOwn = hasOwnProperty.call(value, symToStringTag), - tag = value[symToStringTag]; + /** + * Creates a new array concatenating `array` with any additional arrays + * and/or values. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to concatenate. + * @param {...*} [values] The values to concatenate. + * @returns {Array} Returns the new concatenated array. + * @example + * + * var array = [1]; + * var other = _.concat(array, 2, [3], [[4]]); + * + * console.log(other); + * // => [1, 2, 3, [4]] + * + * console.log(array); + * // => [1] + */ + function concat() { + var length = arguments.length; + if (!length) { + return []; + } + var args = Array(length - 1), + array = arguments[0], + index = length; - try { - value[symToStringTag] = undefined; - var unmasked = true; - } catch (e) {} + while (index--) { + args[index - 1] = arguments[index]; + } + return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); + } - var result = nativeObjectToString.call(value); - if (unmasked) { - if (isOwn) { - value[symToStringTag] = tag; - } else { - delete value[symToStringTag]; + /** + * This method is like `_.find` except that it returns the index of the first + * element `predicate` returns truthy for instead of the element itself. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.findIndex(users, function(o) { return o.user == 'barney'; }); + * // => 0 + * + * // The `_.matches` iteratee shorthand. + * _.findIndex(users, { 'user': 'fred', 'active': false }); + * // => 1 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findIndex(users, ['active', false]); + * // => 0 + * + * // The `_.property` iteratee shorthand. + * _.findIndex(users, 'active'); + * // => 2 + */ + function findIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseFindIndex(array, baseIteratee(predicate, 3), index); } - return result; -} -module.exports = getRawTag; + /** + * Flattens `array` a single level deep. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flatten([1, [2, [3, [4]], 5]]); + * // => [1, 2, [3, [4]], 5] + */ + function flatten(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, 1) : []; + } + /** + * Recursively flattens `array`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flattenDeep([1, [2, [3, [4]], 5]]); + * // => [1, 2, 3, 4, 5] + */ + function flattenDeep(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, INFINITY) : []; + } -/***/ }), + /** + * Gets the first element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias first + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the first element of `array`. + * @example + * + * _.head([1, 2, 3]); + * // => 1 + * + * _.head([]); + * // => undefined + */ + function head(array) { + return (array && array.length) ? array[0] : undefined; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getSymbols.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getSymbols.js ***! - \***********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + /** + * Gets the index at which the first occurrence of `value` is found in `array` + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. If `fromIndex` is negative, it's used as the + * offset from the end of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.indexOf([1, 2, 1, 2], 2); + * // => 1 + * + * // Search from the `fromIndex`. + * _.indexOf([1, 2, 1, 2], 2, 2); + * // => 3 + */ + function indexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (typeof fromIndex == 'number') { + fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : fromIndex; + } else { + fromIndex = 0; + } + var index = (fromIndex || 0) - 1, + isReflexive = value === value; -var arrayFilter = __webpack_require__(/*! ./_arrayFilter */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayFilter.js"), - stubArray = __webpack_require__(/*! ./stubArray */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/stubArray.js"); + while (++index < length) { + var other = array[index]; + if ((isReflexive ? other === value : other !== other)) { + return index; + } + } + return -1; + } -/** Used for built-in method references. */ -var objectProto = Object.prototype; + /** + * Gets the last element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the last element of `array`. + * @example + * + * _.last([1, 2, 3]); + * // => 3 + */ + function last(array) { + var length = array == null ? 0 : array.length; + return length ? array[length - 1] : undefined; + } -/** Built-in value references. */ -var propertyIsEnumerable = objectProto.propertyIsEnumerable; + /** + * Creates a slice of `array` from `start` up to, but not including, `end`. + * + * **Note:** This method is used instead of + * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are + * returned. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ + function slice(array, start, end) { + var length = array == null ? 0 : array.length; + start = start == null ? 0 : +start; + end = end === undefined ? length : +end; + return length ? baseSlice(array, start, end) : []; + } -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeGetSymbols = Object.getOwnPropertySymbols; + /*------------------------------------------------------------------------*/ -/** - * Creates an array of the own enumerable symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. - */ -var getSymbols = !nativeGetSymbols ? stubArray : function(object) { - if (object == null) { - return []; + /** + * Creates a `lodash` wrapper instance that wraps `value` with explicit method + * chain sequences enabled. The result of such sequences must be unwrapped + * with `_#value`. + * + * @static + * @memberOf _ + * @since 1.3.0 + * @category Seq + * @param {*} value The value to wrap. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 }, + * { 'user': 'pebbles', 'age': 1 } + * ]; + * + * var youngest = _ + * .chain(users) + * .sortBy('age') + * .map(function(o) { + * return o.user + ' is ' + o.age; + * }) + * .head() + * .value(); + * // => 'pebbles is 1' + */ + function chain(value) { + var result = lodash(value); + result.__chain__ = true; + return result; + } + + /** + * This method invokes `interceptor` and returns `value`. The interceptor + * is invoked with one argument; (value). The purpose of this method is to + * "tap into" a method chain sequence in order to modify intermediate results. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Seq + * @param {*} value The value to provide to `interceptor`. + * @param {Function} interceptor The function to invoke. + * @returns {*} Returns `value`. + * @example + * + * _([1, 2, 3]) + * .tap(function(array) { + * // Mutate input array. + * array.pop(); + * }) + * .reverse() + * .value(); + * // => [2, 1] + */ + function tap(value, interceptor) { + interceptor(value); + return value; } - object = Object(object); - return arrayFilter(nativeGetSymbols(object), function(symbol) { - return propertyIsEnumerable.call(object, symbol); - }); -}; -module.exports = getSymbols; + /** + * This method is like `_.tap` except that it returns the result of `interceptor`. + * The purpose of this method is to "pass thru" values replacing intermediate + * results in a method chain sequence. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Seq + * @param {*} value The value to provide to `interceptor`. + * @param {Function} interceptor The function to invoke. + * @returns {*} Returns the result of `interceptor`. + * @example + * + * _(' abc ') + * .chain() + * .trim() + * .thru(function(value) { + * return [value]; + * }) + * .value(); + * // => ['abc'] + */ + function thru(value, interceptor) { + return interceptor(value); + } + /** + * Creates a `lodash` wrapper instance with explicit method chain sequences enabled. + * + * @name chain + * @memberOf _ + * @since 0.1.0 + * @category Seq + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 } + * ]; + * + * // A sequence without explicit chaining. + * _(users).head(); + * // => { 'user': 'barney', 'age': 36 } + * + * // A sequence with explicit chaining. + * _(users) + * .chain() + * .head() + * .pick('user') + * .value(); + * // => { 'user': 'barney' } + */ + function wrapperChain() { + return chain(this); + } -/***/ }), + /** + * Executes the chain sequence to resolve the unwrapped value. + * + * @name value + * @memberOf _ + * @since 0.1.0 + * @alias toJSON, valueOf + * @category Seq + * @returns {*} Returns the resolved unwrapped value. + * @example + * + * _([1, 2, 3]).value(); + * // => [1, 2, 3] + */ + function wrapperValue() { + return baseWrapperValue(this.__wrapped__, this.__actions__); + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getTag.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getTag.js ***! - \*******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + /*------------------------------------------------------------------------*/ -var DataView = __webpack_require__(/*! ./_DataView */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_DataView.js"), - Map = __webpack_require__(/*! ./_Map */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Map.js"), - Promise = __webpack_require__(/*! ./_Promise */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Promise.js"), - Set = __webpack_require__(/*! ./_Set */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Set.js"), - WeakMap = __webpack_require__(/*! ./_WeakMap */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_WeakMap.js"), - baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseGetTag.js"), - toSource = __webpack_require__(/*! ./_toSource */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_toSource.js"); + /** + * Checks if `predicate` returns truthy for **all** elements of `collection`. + * Iteration is stopped once `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index|key, collection). + * + * **Note:** This method returns `true` for + * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because + * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of + * elements of empty collections. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. + * @example + * + * _.every([true, 1, null, 'yes'], Boolean); + * // => false + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.every(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // The `_.matchesProperty` iteratee shorthand. + * _.every(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.every(users, 'active'); + * // => false + */ + function every(collection, predicate, guard) { + predicate = guard ? undefined : predicate; + return baseEvery(collection, baseIteratee(predicate)); + } -/** `Object#toString` result references. */ -var mapTag = '[object Map]', - objectTag = '[object Object]', - promiseTag = '[object Promise]', - setTag = '[object Set]', - weakMapTag = '[object WeakMap]'; + /** + * Iterates over elements of `collection`, returning an array of all elements + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * **Note:** Unlike `_.remove`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + * @see _.reject + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * _.filter(users, function(o) { return !o.active; }); + * // => objects for ['fred'] + * + * // The `_.matches` iteratee shorthand. + * _.filter(users, { 'age': 36, 'active': true }); + * // => objects for ['barney'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.filter(users, ['active', false]); + * // => objects for ['fred'] + * + * // The `_.property` iteratee shorthand. + * _.filter(users, 'active'); + * // => objects for ['barney'] + * + * // Combining several predicates using `_.overEvery` or `_.overSome`. + * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]])); + * // => objects for ['fred', 'barney'] + */ + function filter(collection, predicate) { + return baseFilter(collection, baseIteratee(predicate)); + } -var dataViewTag = '[object DataView]'; + /** + * Iterates over elements of `collection`, returning the first element + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false }, + * { 'user': 'pebbles', 'age': 1, 'active': true } + * ]; + * + * _.find(users, function(o) { return o.age < 40; }); + * // => object for 'barney' + * + * // The `_.matches` iteratee shorthand. + * _.find(users, { 'age': 1, 'active': true }); + * // => object for 'pebbles' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.find(users, ['active', false]); + * // => object for 'fred' + * + * // The `_.property` iteratee shorthand. + * _.find(users, 'active'); + * // => object for 'barney' + */ + var find = createFind(findIndex); -/** Used to detect maps, sets, and weakmaps. */ -var dataViewCtorString = toSource(DataView), - mapCtorString = toSource(Map), - promiseCtorString = toSource(Promise), - setCtorString = toSource(Set), - weakMapCtorString = toSource(WeakMap); + /** + * Iterates over elements of `collection` and invokes `iteratee` for each element. + * The iteratee is invoked with three arguments: (value, index|key, collection). + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * **Note:** As with other "Collections" methods, objects with a "length" + * property are iterated like arrays. To avoid this behavior use `_.forIn` + * or `_.forOwn` for object iteration. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias each + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + * @see _.forEachRight + * @example + * + * _.forEach([1, 2], function(value) { + * console.log(value); + * }); + * // => Logs `1` then `2`. + * + * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a' then 'b' (iteration order is not guaranteed). + */ + function forEach(collection, iteratee) { + return baseEach(collection, baseIteratee(iteratee)); + } -/** - * Gets the `toStringTag` of `value`. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ -var getTag = baseGetTag; + /** + * Creates an array of values by running each element in `collection` thru + * `iteratee`. The iteratee is invoked with three arguments: + * (value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. + * + * The guarded methods are: + * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, + * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, + * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, + * `template`, `trim`, `trimEnd`, `trimStart`, and `words` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + * @example + * + * function square(n) { + * return n * n; + * } + * + * _.map([4, 8], square); + * // => [16, 64] + * + * _.map({ 'a': 4, 'b': 8 }, square); + * // => [16, 64] (iteration order is not guaranteed) + * + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; + * + * // The `_.property` iteratee shorthand. + * _.map(users, 'user'); + * // => ['barney', 'fred'] + */ + function map(collection, iteratee) { + return baseMap(collection, baseIteratee(iteratee)); + } -// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. -if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || - (Map && getTag(new Map) != mapTag) || - (Promise && getTag(Promise.resolve()) != promiseTag) || - (Set && getTag(new Set) != setTag) || - (WeakMap && getTag(new WeakMap) != weakMapTag)) { - getTag = function(value) { - var result = baseGetTag(value), - Ctor = result == objectTag ? value.constructor : undefined, - ctorString = Ctor ? toSource(Ctor) : ''; + /** + * Reduces `collection` to a value which is the accumulated result of running + * each element in `collection` thru `iteratee`, where each successive + * invocation is supplied the return value of the previous. If `accumulator` + * is not given, the first element of `collection` is used as the initial + * value. The iteratee is invoked with four arguments: + * (accumulator, value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.reduce`, `_.reduceRight`, and `_.transform`. + * + * The guarded methods are: + * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, + * and `sortBy` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @returns {*} Returns the accumulated value. + * @see _.reduceRight + * @example + * + * _.reduce([1, 2], function(sum, n) { + * return sum + n; + * }, 0); + * // => 3 + * + * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { + * (result[value] || (result[value] = [])).push(key); + * return result; + * }, {}); + * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) + */ + function reduce(collection, iteratee, accumulator) { + return baseReduce(collection, baseIteratee(iteratee), accumulator, arguments.length < 3, baseEach); + } - if (ctorString) { - switch (ctorString) { - case dataViewCtorString: return dataViewTag; - case mapCtorString: return mapTag; - case promiseCtorString: return promiseTag; - case setCtorString: return setTag; - case weakMapCtorString: return weakMapTag; - } + /** + * Gets the size of `collection` by returning its length for array-like + * values or the number of own enumerable string keyed properties for objects. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object|string} collection The collection to inspect. + * @returns {number} Returns the collection size. + * @example + * + * _.size([1, 2, 3]); + * // => 3 + * + * _.size({ 'a': 1, 'b': 2 }); + * // => 2 + * + * _.size('pebbles'); + * // => 7 + */ + function size(collection) { + if (collection == null) { + return 0; } - return result; - }; -} - -module.exports = getTag; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getValue.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getValue.js ***! - \*********************************************************************************************/ -/***/ ((module) => { - -/** - * Gets the value at `key` of `object`. - * - * @private - * @param {Object} [object] The object to query. - * @param {string} key The key of the property to get. - * @returns {*} Returns the property value. - */ -function getValue(object, key) { - return object == null ? undefined : object[key]; -} - -module.exports = getValue; - - -/***/ }), + collection = isArrayLike(collection) ? collection : nativeKeys(collection); + return collection.length; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hasPath.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hasPath.js ***! - \********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + /** + * Checks if `predicate` returns truthy for **any** element of `collection`. + * Iteration is stopped once `predicate` returns truthy. The predicate is + * invoked with three arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + * @example + * + * _.some([null, 0, 'yes', false], Boolean); + * // => true + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.some(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // The `_.matchesProperty` iteratee shorthand. + * _.some(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.some(users, 'active'); + * // => true + */ + function some(collection, predicate, guard) { + predicate = guard ? undefined : predicate; + return baseSome(collection, baseIteratee(predicate)); + } -var castPath = __webpack_require__(/*! ./_castPath */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_castPath.js"), - isArguments = __webpack_require__(/*! ./isArguments */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArguments.js"), - isArray = __webpack_require__(/*! ./isArray */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArray.js"), - isIndex = __webpack_require__(/*! ./_isIndex */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isIndex.js"), - isLength = __webpack_require__(/*! ./isLength */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isLength.js"), - toKey = __webpack_require__(/*! ./_toKey */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_toKey.js"); + /** + * Creates an array of elements, sorted in ascending order by the results of + * running each element in a collection thru each iteratee. This method + * performs a stable sort, that is, it preserves the original sort order of + * equal elements. The iteratees are invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {...(Function|Function[])} [iteratees=[_.identity]] + * The iteratees to sort by. + * @returns {Array} Returns the new sorted array. + * @example + * + * var users = [ + * { 'user': 'fred', 'age': 48 }, + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 30 }, + * { 'user': 'barney', 'age': 34 } + * ]; + * + * _.sortBy(users, [function(o) { return o.user; }]); + * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]] + * + * _.sortBy(users, ['user', 'age']); + * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]] + */ + function sortBy(collection, iteratee) { + var index = 0; + iteratee = baseIteratee(iteratee); -/** - * Checks if `path` exists on `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @param {Function} hasFunc The function to check properties. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - */ -function hasPath(object, path, hasFunc) { - path = castPath(path, object); + return baseMap(baseMap(collection, function(value, key, collection) { + return { 'value': value, 'index': index++, 'criteria': iteratee(value, key, collection) }; + }).sort(function(object, other) { + return compareAscending(object.criteria, other.criteria) || (object.index - other.index); + }), baseProperty('value')); + } - var index = -1, - length = path.length, - result = false; + /*------------------------------------------------------------------------*/ - while (++index < length) { - var key = toKey(path[index]); - if (!(result = object != null && hasFunc(object, key))) { - break; + /** + * Creates a function that invokes `func`, with the `this` binding and arguments + * of the created function, while it's called less than `n` times. Subsequent + * calls to the created function return the result of the last `func` invocation. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {number} n The number of calls at which `func` is no longer invoked. + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * jQuery(element).on('click', _.before(5, addContactToList)); + * // => Allows adding up to 4 contacts to the list. + */ + function before(n, func) { + var result; + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); } - object = object[key]; - } - if (result || ++index != length) { - return result; + n = toInteger(n); + return function() { + if (--n > 0) { + result = func.apply(this, arguments); + } + if (n <= 1) { + func = undefined; + } + return result; + }; } - length = object == null ? 0 : object.length; - return !!length && isLength(length) && isIndex(key, length) && - (isArray(object) || isArguments(object)); -} - -module.exports = hasPath; - - -/***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashClear.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashClear.js ***! - \**********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_nativeCreate.js"); - -/** - * Removes all key-value entries from the hash. - * - * @private - * @name clear - * @memberOf Hash - */ -function hashClear() { - this.__data__ = nativeCreate ? nativeCreate(null) : {}; - this.size = 0; -} + /** + * Creates a function that invokes `func` with the `this` binding of `thisArg` + * and `partials` prepended to the arguments it receives. + * + * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, + * may be used as a placeholder for partially applied arguments. + * + * **Note:** Unlike native `Function#bind`, this method doesn't set the "length" + * property of bound functions. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to bind. + * @param {*} thisArg The `this` binding of `func`. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new bound function. + * @example + * + * function greet(greeting, punctuation) { + * return greeting + ' ' + this.user + punctuation; + * } + * + * var object = { 'user': 'fred' }; + * + * var bound = _.bind(greet, object, 'hi'); + * bound('!'); + * // => 'hi fred!' + * + * // Bound with placeholders. + * var bound = _.bind(greet, object, _, '!'); + * bound('hi'); + * // => 'hi fred!' + */ + var bind = baseRest(function(func, thisArg, partials) { + return createPartial(func, WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG, thisArg, partials); + }); -module.exports = hashClear; + /** + * Defers invoking the `func` until the current call stack has cleared. Any + * additional arguments are provided to `func` when it's invoked. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to defer. + * @param {...*} [args] The arguments to invoke `func` with. + * @returns {number} Returns the timer id. + * @example + * + * _.defer(function(text) { + * console.log(text); + * }, 'deferred'); + * // => Logs 'deferred' after one millisecond. + */ + var defer = baseRest(function(func, args) { + return baseDelay(func, 1, args); + }); + /** + * Invokes `func` after `wait` milliseconds. Any additional arguments are + * provided to `func` when it's invoked. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to delay. + * @param {number} wait The number of milliseconds to delay invocation. + * @param {...*} [args] The arguments to invoke `func` with. + * @returns {number} Returns the timer id. + * @example + * + * _.delay(function(text) { + * console.log(text); + * }, 1000, 'later'); + * // => Logs 'later' after one second. + */ + var delay = baseRest(function(func, wait, args) { + return baseDelay(func, toNumber(wait) || 0, args); + }); -/***/ }), + /** + * Creates a function that negates the result of the predicate `func`. The + * `func` predicate is invoked with the `this` binding and arguments of the + * created function. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} predicate The predicate to negate. + * @returns {Function} Returns the new negated function. + * @example + * + * function isEven(n) { + * return n % 2 == 0; + * } + * + * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); + * // => [1, 3, 5] + */ + function negate(predicate) { + if (typeof predicate != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + return function() { + var args = arguments; + return !predicate.apply(this, args); + }; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashDelete.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashDelete.js ***! - \***********************************************************************************************/ -/***/ ((module) => { + /** + * Creates a function that is restricted to invoking `func` once. Repeat calls + * to the function return the value of the first invocation. The `func` is + * invoked with the `this` binding and arguments of the created function. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * var initialize = _.once(createApplication); + * initialize(); + * initialize(); + * // => `createApplication` is invoked once + */ + function once(func) { + return before(2, func); + } -/** - * Removes `key` and its value from the hash. - * - * @private - * @name delete - * @memberOf Hash - * @param {Object} hash The hash to modify. - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function hashDelete(key) { - var result = this.has(key) && delete this.__data__[key]; - this.size -= result ? 1 : 0; - return result; -} + /*------------------------------------------------------------------------*/ -module.exports = hashDelete; + /** + * Creates a shallow clone of `value`. + * + * **Note:** This method is loosely based on the + * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm) + * and supports cloning arrays, array buffers, booleans, date objects, maps, + * numbers, `Object` objects, regexes, sets, strings, symbols, and typed + * arrays. The own enumerable properties of `arguments` objects are cloned + * as plain objects. An empty object is returned for uncloneable values such + * as error objects, functions, DOM nodes, and WeakMaps. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to clone. + * @returns {*} Returns the cloned value. + * @see _.cloneDeep + * @example + * + * var objects = [{ 'a': 1 }, { 'b': 2 }]; + * + * var shallow = _.clone(objects); + * console.log(shallow[0] === objects[0]); + * // => true + */ + function clone(value) { + if (!isObject(value)) { + return value; + } + return isArray(value) ? copyArray(value) : copyObject(value, nativeKeys(value)); + } + /** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ + function eq(value, other) { + return value === other || (value !== value && other !== other); + } -/***/ }), + /** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ + var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); + }; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashGet.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashGet.js ***! - \********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + /** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ + var isArray = Array.isArray; -var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_nativeCreate.js"); + /** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ + function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); + } -/** Used to stand-in for `undefined` hash values. */ -var HASH_UNDEFINED = '__lodash_hash_undefined__'; + /** + * Checks if `value` is classified as a boolean primitive or object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a boolean, else `false`. + * @example + * + * _.isBoolean(false); + * // => true + * + * _.isBoolean(null); + * // => false + */ + function isBoolean(value) { + return value === true || value === false || + (isObjectLike(value) && baseGetTag(value) == boolTag); + } -/** Used for built-in method references. */ -var objectProto = Object.prototype; + /** + * Checks if `value` is classified as a `Date` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a date object, else `false`. + * @example + * + * _.isDate(new Date); + * // => true + * + * _.isDate('Mon April 23 2012'); + * // => false + */ + var isDate = baseIsDate; -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; + /** + * Checks if `value` is an empty object, collection, map, or set. + * + * Objects are considered empty if they have no own enumerable string keyed + * properties. + * + * Array-like values such as `arguments` objects, arrays, buffers, strings, or + * jQuery-like collections are considered empty if they have a `length` of `0`. + * Similarly, maps and sets are considered empty if they have a `size` of `0`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is empty, else `false`. + * @example + * + * _.isEmpty(null); + * // => true + * + * _.isEmpty(true); + * // => true + * + * _.isEmpty(1); + * // => true + * + * _.isEmpty([1, 2, 3]); + * // => false + * + * _.isEmpty({ 'a': 1 }); + * // => false + */ + function isEmpty(value) { + if (isArrayLike(value) && + (isArray(value) || isString(value) || + isFunction(value.splice) || isArguments(value))) { + return !value.length; + } + return !nativeKeys(value).length; + } -/** - * Gets the hash value for `key`. - * - * @private - * @name get - * @memberOf Hash - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function hashGet(key) { - var data = this.__data__; - if (nativeCreate) { - var result = data[key]; - return result === HASH_UNDEFINED ? undefined : result; + /** + * Performs a deep comparison between two values to determine if they are + * equivalent. + * + * **Note:** This method supports comparing arrays, array buffers, booleans, + * date objects, error objects, maps, numbers, `Object` objects, regexes, + * sets, strings, symbols, and typed arrays. `Object` objects are compared + * by their own, not inherited, enumerable properties. Functions and DOM + * nodes are compared by strict equality, i.e. `===`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.isEqual(object, other); + * // => true + * + * object === other; + * // => false + */ + function isEqual(value, other) { + return baseIsEqual(value, other); } - return hasOwnProperty.call(data, key) ? data[key] : undefined; -} - -module.exports = hashGet; - - -/***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashHas.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashHas.js ***! - \********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + /** + * Checks if `value` is a finite primitive number. + * + * **Note:** This method is based on + * [`Number.isFinite`](https://mdn.io/Number/isFinite). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. + * @example + * + * _.isFinite(3); + * // => true + * + * _.isFinite(Number.MIN_VALUE); + * // => true + * + * _.isFinite(Infinity); + * // => false + * + * _.isFinite('3'); + * // => false + */ + function isFinite(value) { + return typeof value == 'number' && nativeIsFinite(value); + } -var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_nativeCreate.js"); + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + if (!isObject(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; + } -/** Used for built-in method references. */ -var objectProto = Object.prototype; + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ + function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; + /** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ + function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); + } -/** - * Checks if a hash value for `key` exists. - * - * @private - * @name has - * @memberOf Hash - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function hashHas(key) { - var data = this.__data__; - return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); -} + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return value != null && typeof value == 'object'; + } -module.exports = hashHas; + /** + * Checks if `value` is `NaN`. + * + * **Note:** This method is based on + * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as + * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for + * `undefined` and other non-number values. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + * @example + * + * _.isNaN(NaN); + * // => true + * + * _.isNaN(new Number(NaN)); + * // => true + * + * isNaN(undefined); + * // => true + * + * _.isNaN(undefined); + * // => false + */ + function isNaN(value) { + // An `NaN` primitive is the only value that is not equal to itself. + // Perform the `toStringTag` check first to avoid errors with some + // ActiveX objects in IE. + return isNumber(value) && value != +value; + } + /** + * Checks if `value` is `null`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `null`, else `false`. + * @example + * + * _.isNull(null); + * // => true + * + * _.isNull(void 0); + * // => false + */ + function isNull(value) { + return value === null; + } -/***/ }), + /** + * Checks if `value` is classified as a `Number` primitive or object. + * + * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are + * classified as numbers, use the `_.isFinite` method. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a number, else `false`. + * @example + * + * _.isNumber(3); + * // => true + * + * _.isNumber(Number.MIN_VALUE); + * // => true + * + * _.isNumber(Infinity); + * // => true + * + * _.isNumber('3'); + * // => false + */ + function isNumber(value) { + return typeof value == 'number' || + (isObjectLike(value) && baseGetTag(value) == numberTag); + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashSet.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashSet.js ***! - \********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + /** + * Checks if `value` is classified as a `RegExp` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. + * @example + * + * _.isRegExp(/abc/); + * // => true + * + * _.isRegExp('/abc/'); + * // => false + */ + var isRegExp = baseIsRegExp; -var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_nativeCreate.js"); + /** + * Checks if `value` is classified as a `String` primitive or object. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a string, else `false`. + * @example + * + * _.isString('abc'); + * // => true + * + * _.isString(1); + * // => false + */ + function isString(value) { + return typeof value == 'string' || + (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); + } -/** Used to stand-in for `undefined` hash values. */ -var HASH_UNDEFINED = '__lodash_hash_undefined__'; + /** + * Checks if `value` is `undefined`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. + * @example + * + * _.isUndefined(void 0); + * // => true + * + * _.isUndefined(null); + * // => false + */ + function isUndefined(value) { + return value === undefined; + } -/** - * Sets the hash `key` to `value`. - * - * @private - * @name set - * @memberOf Hash - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the hash instance. - */ -function hashSet(key, value) { - var data = this.__data__; - this.size += this.has(key) ? 0 : 1; - data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; - return this; -} + /** + * Converts `value` to an array. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to convert. + * @returns {Array} Returns the converted array. + * @example + * + * _.toArray({ 'a': 1, 'b': 2 }); + * // => [1, 2] + * + * _.toArray('abc'); + * // => ['a', 'b', 'c'] + * + * _.toArray(1); + * // => [] + * + * _.toArray(null); + * // => [] + */ + function toArray(value) { + if (!isArrayLike(value)) { + return values(value); + } + return value.length ? copyArray(value) : []; + } -module.exports = hashSet; + /** + * Converts `value` to an integer. + * + * **Note:** This method is loosely based on + * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toInteger(3.2); + * // => 3 + * + * _.toInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toInteger(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toInteger('3.2'); + * // => 3 + */ + var toInteger = Number; + /** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ + var toNumber = Number; -/***/ }), + /** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ + function toString(value) { + if (typeof value == 'string') { + return value; + } + return value == null ? '' : (value + ''); + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isIndex.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isIndex.js ***! - \********************************************************************************************/ -/***/ ((module) => { + /*------------------------------------------------------------------------*/ -/** Used as references for various `Number` constants. */ -var MAX_SAFE_INTEGER = 9007199254740991; + /** + * Assigns own enumerable string keyed properties of source objects to the + * destination object. Source objects are applied from left to right. + * Subsequent sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object` and is loosely based on + * [`Object.assign`](https://mdn.io/Object/assign). + * + * @static + * @memberOf _ + * @since 0.10.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.assignIn + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * function Bar() { + * this.c = 3; + * } + * + * Foo.prototype.b = 2; + * Bar.prototype.d = 4; + * + * _.assign({ 'a': 0 }, new Foo, new Bar); + * // => { 'a': 1, 'c': 3 } + */ + var assign = createAssigner(function(object, source) { + copyObject(source, nativeKeys(source), object); + }); -/** Used to detect unsigned integer values. */ -var reIsUint = /^(?:0|[1-9]\d*)$/; + /** + * This method is like `_.assign` except that it iterates over own and + * inherited source properties. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias extend + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.assign + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * function Bar() { + * this.c = 3; + * } + * + * Foo.prototype.b = 2; + * Bar.prototype.d = 4; + * + * _.assignIn({ 'a': 0 }, new Foo, new Bar); + * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } + */ + var assignIn = createAssigner(function(object, source) { + copyObject(source, nativeKeysIn(source), object); + }); -/** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ -function isIndex(value, length) { - var type = typeof value; - length = length == null ? MAX_SAFE_INTEGER : length; + /** + * Creates an object that inherits from the `prototype` object. If a + * `properties` object is given, its own enumerable string keyed properties + * are assigned to the created object. + * + * @static + * @memberOf _ + * @since 2.3.0 + * @category Object + * @param {Object} prototype The object to inherit from. + * @param {Object} [properties] The properties to assign to the object. + * @returns {Object} Returns the new object. + * @example + * + * function Shape() { + * this.x = 0; + * this.y = 0; + * } + * + * function Circle() { + * Shape.call(this); + * } + * + * Circle.prototype = _.create(Shape.prototype, { + * 'constructor': Circle + * }); + * + * var circle = new Circle; + * circle instanceof Circle; + * // => true + * + * circle instanceof Shape; + * // => true + */ + function create(prototype, properties) { + var result = baseCreate(prototype); + return properties == null ? result : assign(result, properties); + } - return !!length && - (type == 'number' || - (type != 'symbol' && reIsUint.test(value))) && - (value > -1 && value % 1 == 0 && value < length); -} + /** + * Assigns own and inherited enumerable string keyed properties of source + * objects to the destination object for all destination properties that + * resolve to `undefined`. Source objects are applied from left to right. + * Once a property is set, additional values of the same property are ignored. + * + * **Note:** This method mutates `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.defaultsDeep + * @example + * + * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */ + var defaults = baseRest(function(object, sources) { + object = Object(object); -module.exports = isIndex; + var index = -1; + var length = sources.length; + var guard = length > 2 ? sources[2] : undefined; + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + length = 1; + } -/***/ }), + while (++index < length) { + var source = sources[index]; + var props = keysIn(source); + var propsIndex = -1; + var propsLength = props.length; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isKey.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isKey.js ***! - \******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + while (++propsIndex < propsLength) { + var key = props[propsIndex]; + var value = object[key]; -var isArray = __webpack_require__(/*! ./isArray */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArray.js"), - isSymbol = __webpack_require__(/*! ./isSymbol */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isSymbol.js"); + if (value === undefined || + (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) { + object[key] = source[key]; + } + } + } -/** Used to match property names within property paths. */ -var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, - reIsPlainProp = /^\w*$/; + return object; + }); -/** - * Checks if `value` is a property name and not a property path. - * - * @private - * @param {*} value The value to check. - * @param {Object} [object] The object to query keys on. - * @returns {boolean} Returns `true` if `value` is a property name, else `false`. - */ -function isKey(value, object) { - if (isArray(value)) { - return false; - } - var type = typeof value; - if (type == 'number' || type == 'symbol' || type == 'boolean' || - value == null || isSymbol(value)) { - return true; + /** + * Checks if `path` is a direct property of `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = { 'a': { 'b': 2 } }; + * var other = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.has(object, 'a'); + * // => true + * + * _.has(object, 'a.b'); + * // => true + * + * _.has(object, ['a', 'b']); + * // => true + * + * _.has(other, 'a'); + * // => false + */ + function has(object, path) { + return object != null && hasOwnProperty.call(object, path); } - return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || - (object != null && value in Object(object)); -} - -module.exports = isKey; + /** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ + var keys = nativeKeys; -/***/ }), + /** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ + var keysIn = nativeKeysIn; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isKeyable.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isKeyable.js ***! - \**********************************************************************************************/ -/***/ ((module) => { + /** + * Creates an object composed of the picked `object` properties. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pick(object, ['a', 'c']); + * // => { 'a': 1, 'c': 3 } + */ + var pick = flatRest(function(object, paths) { + return object == null ? {} : basePick(object, paths); + }); -/** - * Checks if `value` is suitable for use as unique object key. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is suitable, else `false`. - */ -function isKeyable(value) { - var type = typeof value; - return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') - ? (value !== '__proto__') - : (value === null); -} + /** + * This method is like `_.get` except that if the resolved value is a + * function it's invoked with the `this` binding of its parent object and + * its result is returned. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to resolve. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] }; + * + * _.result(object, 'a[0].b.c1'); + * // => 3 + * + * _.result(object, 'a[0].b.c2'); + * // => 4 + * + * _.result(object, 'a[0].b.c3', 'default'); + * // => 'default' + * + * _.result(object, 'a[0].b.c3', _.constant('default')); + * // => 'default' + */ + function result(object, path, defaultValue) { + var value = object == null ? undefined : object[path]; + if (value === undefined) { + value = defaultValue; + } + return isFunction(value) ? value.call(object) : value; + } -module.exports = isKeyable; + /** + * Creates an array of the own enumerable string keyed property values of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property values. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.values(new Foo); + * // => [1, 2] (iteration order is not guaranteed) + * + * _.values('hi'); + * // => ['h', 'i'] + */ + function values(object) { + return object == null ? [] : baseValues(object, keys(object)); + } + /*------------------------------------------------------------------------*/ -/***/ }), + /** + * Converts the characters "&", "<", ">", '"', and "'" in `string` to their + * corresponding HTML entities. + * + * **Note:** No other characters are escaped. To escape additional + * characters use a third-party library like [_he_](https://mths.be/he). + * + * Though the ">" character is escaped for symmetry, characters like + * ">" and "/" don't need escaping in HTML and have no special meaning + * unless they're part of a tag or unquoted attribute value. See + * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) + * (under "semi-related fun fact") for more details. + * + * When working with HTML you should always + * [quote attribute values](http://wonko.com/post/html-escaping) to reduce + * XSS vectors. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category String + * @param {string} [string=''] The string to escape. + * @returns {string} Returns the escaped string. + * @example + * + * _.escape('fred, barney, & pebbles'); + * // => 'fred, barney, & pebbles' + */ + function escape(string) { + string = toString(string); + return (string && reHasUnescapedHtml.test(string)) + ? string.replace(reUnescapedHtml, escapeHtmlChar) + : string; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isMasked.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isMasked.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + /*------------------------------------------------------------------------*/ -var coreJsData = __webpack_require__(/*! ./_coreJsData */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_coreJsData.js"); + /** + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true + */ + function identity(value) { + return value; + } -/** Used to detect methods masquerading as native. */ -var maskSrcKey = (function() { - var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); - return uid ? ('Symbol(src)_1.' + uid) : ''; -}()); + /** + * Creates a function that invokes `func` with the arguments of the created + * function. If `func` is a property name, the created function returns the + * property value for a given element. If `func` is an array or object, the + * created function returns `true` for elements that contain the equivalent + * source properties, otherwise it returns `false`. + * + * @static + * @since 4.0.0 + * @memberOf _ + * @category Util + * @param {*} [func=_.identity] The value to convert to a callback. + * @returns {Function} Returns the callback. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true })); + * // => [{ 'user': 'barney', 'age': 36, 'active': true }] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.filter(users, _.iteratee(['user', 'fred'])); + * // => [{ 'user': 'fred', 'age': 40 }] + * + * // The `_.property` iteratee shorthand. + * _.map(users, _.iteratee('user')); + * // => ['barney', 'fred'] + * + * // Create custom iteratee shorthands. + * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) { + * return !_.isRegExp(func) ? iteratee(func) : function(string) { + * return func.test(string); + * }; + * }); + * + * _.filter(['abc', 'def'], /ef/); + * // => ['def'] + */ + var iteratee = baseIteratee; -/** - * Checks if `func` has its source masked. - * - * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` is masked, else `false`. - */ -function isMasked(func) { - return !!maskSrcKey && (maskSrcKey in func); -} + /** + * Creates a function that performs a partial deep comparison between a given + * object and `source`, returning `true` if the given object has equivalent + * property values, else `false`. + * + * **Note:** The created function is equivalent to `_.isMatch` with `source` + * partially applied. + * + * Partial comparisons will match empty array and empty object `source` + * values against any array or object value, respectively. See `_.isEqual` + * for a list of supported value comparisons. + * + * **Note:** Multiple values can be checked by combining several matchers + * using `_.overSome` + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Util + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + * @example + * + * var objects = [ + * { 'a': 1, 'b': 2, 'c': 3 }, + * { 'a': 4, 'b': 5, 'c': 6 } + * ]; + * + * _.filter(objects, _.matches({ 'a': 4, 'c': 6 })); + * // => [{ 'a': 4, 'b': 5, 'c': 6 }] + * + * // Checking for several possible values + * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })])); + * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }] + */ + function matches(source) { + return baseMatches(assign({}, source)); + } -module.exports = isMasked; + /** + * Adds all own enumerable string keyed function properties of a source + * object to the destination object. If `object` is a function, then methods + * are added to its prototype as well. + * + * **Note:** Use `_.runInContext` to create a pristine `lodash` function to + * avoid conflicts caused by modifying the original. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {Function|Object} [object=lodash] The destination object. + * @param {Object} source The object of functions to add. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.chain=true] Specify whether mixins are chainable. + * @returns {Function|Object} Returns `object`. + * @example + * + * function vowels(string) { + * return _.filter(string, function(v) { + * return /[aeiou]/i.test(v); + * }); + * } + * + * _.mixin({ 'vowels': vowels }); + * _.vowels('fred'); + * // => ['e'] + * + * _('fred').vowels().value(); + * // => ['e'] + * + * _.mixin({ 'vowels': vowels }, { 'chain': false }); + * _('fred').vowels(); + * // => ['e'] + */ + function mixin(object, source, options) { + var props = keys(source), + methodNames = baseFunctions(source, props); + if (options == null && + !(isObject(source) && (methodNames.length || !props.length))) { + options = source; + source = object; + object = this; + methodNames = baseFunctions(source, keys(source)); + } + var chain = !(isObject(options) && 'chain' in options) || !!options.chain, + isFunc = isFunction(object); -/***/ }), + baseEach(methodNames, function(methodName) { + var func = source[methodName]; + object[methodName] = func; + if (isFunc) { + object.prototype[methodName] = function() { + var chainAll = this.__chain__; + if (chain || chainAll) { + var result = object(this.__wrapped__), + actions = result.__actions__ = copyArray(this.__actions__); -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isPrototype.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isPrototype.js ***! - \************************************************************************************************/ -/***/ ((module) => { + actions.push({ 'func': func, 'args': arguments, 'thisArg': object }); + result.__chain__ = chainAll; + return result; + } + return func.apply(object, arrayPush([this.value()], arguments)); + }; + } + }); -/** Used for built-in method references. */ -var objectProto = Object.prototype; + return object; + } -/** - * Checks if `value` is likely a prototype object. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. - */ -function isPrototype(value) { - var Ctor = value && value.constructor, - proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; + /** + * Reverts the `_` variable to its previous value and returns a reference to + * the `lodash` function. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @returns {Function} Returns the `lodash` function. + * @example + * + * var lodash = _.noConflict(); + */ + function noConflict() { + if (root._ === this) { + root._ = oldDash; + } + return this; + } - return value === proto; -} + /** + * This method returns `undefined`. + * + * @static + * @memberOf _ + * @since 2.3.0 + * @category Util + * @example + * + * _.times(2, _.noop); + * // => [undefined, undefined] + */ + function noop() { + // No operation performed. + } -module.exports = isPrototype; + /** + * Generates a unique ID. If `prefix` is given, the ID is appended to it. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {string} [prefix=''] The value to prefix the ID with. + * @returns {string} Returns the unique ID. + * @example + * + * _.uniqueId('contact_'); + * // => 'contact_104' + * + * _.uniqueId(); + * // => '105' + */ + function uniqueId(prefix) { + var id = ++idCounter; + return toString(prefix) + id; + } + /*------------------------------------------------------------------------*/ -/***/ }), + /** + * Computes the maximum value of `array`. If `array` is empty or falsey, + * `undefined` is returned. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Math + * @param {Array} array The array to iterate over. + * @returns {*} Returns the maximum value. + * @example + * + * _.max([4, 2, 8, 6]); + * // => 8 + * + * _.max([]); + * // => undefined + */ + function max(array) { + return (array && array.length) + ? baseExtremum(array, identity, baseGt) + : undefined; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isStrictComparable.js": -/*!*******************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isStrictComparable.js ***! - \*******************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + /** + * Computes the minimum value of `array`. If `array` is empty or falsey, + * `undefined` is returned. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Math + * @param {Array} array The array to iterate over. + * @returns {*} Returns the minimum value. + * @example + * + * _.min([4, 2, 8, 6]); + * // => 2 + * + * _.min([]); + * // => undefined + */ + function min(array) { + return (array && array.length) + ? baseExtremum(array, identity, baseLt) + : undefined; + } -var isObject = __webpack_require__(/*! ./isObject */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isObject.js"); + /*------------------------------------------------------------------------*/ -/** - * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` if suitable for strict - * equality comparisons, else `false`. - */ -function isStrictComparable(value) { - return value === value && !isObject(value); -} + // Add methods that return wrapped values in chain sequences. + lodash.assignIn = assignIn; + lodash.before = before; + lodash.bind = bind; + lodash.chain = chain; + lodash.compact = compact; + lodash.concat = concat; + lodash.create = create; + lodash.defaults = defaults; + lodash.defer = defer; + lodash.delay = delay; + lodash.filter = filter; + lodash.flatten = flatten; + lodash.flattenDeep = flattenDeep; + lodash.iteratee = iteratee; + lodash.keys = keys; + lodash.map = map; + lodash.matches = matches; + lodash.mixin = mixin; + lodash.negate = negate; + lodash.once = once; + lodash.pick = pick; + lodash.slice = slice; + lodash.sortBy = sortBy; + lodash.tap = tap; + lodash.thru = thru; + lodash.toArray = toArray; + lodash.values = values; -module.exports = isStrictComparable; + // Add aliases. + lodash.extend = assignIn; + // Add methods to `lodash.prototype`. + mixin(lodash, lodash); -/***/ }), + /*------------------------------------------------------------------------*/ -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheClear.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheClear.js ***! - \***************************************************************************************************/ -/***/ ((module) => { + // Add methods that return unwrapped values in chain sequences. + lodash.clone = clone; + lodash.escape = escape; + lodash.every = every; + lodash.find = find; + lodash.forEach = forEach; + lodash.has = has; + lodash.head = head; + lodash.identity = identity; + lodash.indexOf = indexOf; + lodash.isArguments = isArguments; + lodash.isArray = isArray; + lodash.isBoolean = isBoolean; + lodash.isDate = isDate; + lodash.isEmpty = isEmpty; + lodash.isEqual = isEqual; + lodash.isFinite = isFinite; + lodash.isFunction = isFunction; + lodash.isNaN = isNaN; + lodash.isNull = isNull; + lodash.isNumber = isNumber; + lodash.isObject = isObject; + lodash.isRegExp = isRegExp; + lodash.isString = isString; + lodash.isUndefined = isUndefined; + lodash.last = last; + lodash.max = max; + lodash.min = min; + lodash.noConflict = noConflict; + lodash.noop = noop; + lodash.reduce = reduce; + lodash.result = result; + lodash.size = size; + lodash.some = some; + lodash.uniqueId = uniqueId; -/** - * Removes all key-value entries from the list cache. - * - * @private - * @name clear - * @memberOf ListCache - */ -function listCacheClear() { - this.__data__ = []; - this.size = 0; -} + // Add aliases. + lodash.each = forEach; + lodash.first = head; -module.exports = listCacheClear; + mixin(lodash, (function() { + var source = {}; + baseForOwn(lodash, function(func, methodName) { + if (!hasOwnProperty.call(lodash.prototype, methodName)) { + source[methodName] = func; + } + }); + return source; + }()), { 'chain': false }); + /*------------------------------------------------------------------------*/ -/***/ }), + /** + * The semantic version number. + * + * @static + * @memberOf _ + * @type {string} + */ + lodash.VERSION = VERSION; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheDelete.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheDelete.js ***! - \****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + // Add `Array` methods to `lodash.prototype`. + baseEach(['pop', 'join', 'replace', 'reverse', 'split', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) { + var func = (/^(?:replace|split)$/.test(methodName) ? String.prototype : arrayProto)[methodName], + chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru', + retUnwrapped = /^(?:pop|join|replace|shift)$/.test(methodName); -var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_assocIndexOf.js"); + lodash.prototype[methodName] = function() { + var args = arguments; + if (retUnwrapped && !this.__chain__) { + var value = this.value(); + return func.apply(isArray(value) ? value : [], args); + } + return this[chainName](function(value) { + return func.apply(isArray(value) ? value : [], args); + }); + }; + }); -/** Used for built-in method references. */ -var arrayProto = Array.prototype; + // Add chain sequence methods to the `lodash` wrapper. + lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue; -/** Built-in value references. */ -var splice = arrayProto.splice; + /*--------------------------------------------------------------------------*/ -/** - * Removes `key` and its value from the list cache. - * - * @private - * @name delete - * @memberOf ListCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function listCacheDelete(key) { - var data = this.__data__, - index = assocIndexOf(data, key); + // Some AMD build optimizers, like r.js, check for condition patterns like: + if (true) { + // Expose Lodash on the global object to prevent errors when Lodash is + // loaded by a script tag in the presence of an AMD loader. + // See http://requirejs.org/docs/errors.html#mismatch for more details. + // Use `_.noConflict` to remove Lodash from the global object. + root._ = lodash; - if (index < 0) { - return false; - } - var lastIndex = data.length - 1; - if (index == lastIndex) { - data.pop(); - } else { - splice.call(data, index, 1); + // Define as an anonymous module so, through path mapping, it can be + // referenced as the "underscore" module. + !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { + return lodash; + }).call(exports, __nested_webpack_require_2049112__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } - --this.size; - return true; -} - -module.exports = listCacheDelete; + // Check for `exports` after `define` in case a build optimizer adds it. + else {} +}.call(this)); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheGet.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheGet.js ***! - \*************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_assocIndexOf.js"); +/***/ "./build/cht-core-4-6/node_modules/lodash/eq.js": +/*!******************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/eq.js ***! + \******************************************************/ +/***/ ((module) => { /** - * Gets the list cache value for `key`. + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. * - * @private - * @name get - * @memberOf ListCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function listCacheGet(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - - return index < 0 ? undefined : data[index][1]; -} - -module.exports = listCacheGet; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheHas.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheHas.js ***! - \*************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_assocIndexOf.js"); - -/** - * Checks if a list cache value for `key` exists. + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example * - * @private - * @name has - * @memberOf ListCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function listCacheHas(key) { - return assocIndexOf(this.__data__, key) > -1; -} - -module.exports = listCacheHas; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheSet.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheSet.js ***! - \*************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_assocIndexOf.js"); - -/** - * Sets the list cache `key` to `value`. + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; * - * @private - * @name set - * @memberOf ListCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the list cache instance. - */ -function listCacheSet(key, value) { - var data = this.__data__, - index = assocIndexOf(data, key); - - if (index < 0) { - ++this.size; - data.push([key, value]); - } else { - data[index][1] = value; - } - return this; -} - -module.exports = listCacheSet; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheClear.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheClear.js ***! - \**************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var Hash = __webpack_require__(/*! ./_Hash */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Hash.js"), - ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_ListCache.js"), - Map = __webpack_require__(/*! ./_Map */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Map.js"); - -/** - * Removes all key-value entries from the map. + * _.eq(object, object); + * // => true * - * @private - * @name clear - * @memberOf MapCache - */ -function mapCacheClear() { - this.size = 0; - this.__data__ = { - 'hash': new Hash, - 'map': new (Map || ListCache), - 'string': new Hash - }; -} - -module.exports = mapCacheClear; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheDelete.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheDelete.js ***! - \***************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getMapData.js"); - -/** - * Removes `key` and its value from the map. + * _.eq(object, other); + * // => false * - * @private - * @name delete - * @memberOf MapCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function mapCacheDelete(key) { - var result = getMapData(this, key)['delete'](key); - this.size -= result ? 1 : 0; - return result; -} - -module.exports = mapCacheDelete; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheGet.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheGet.js ***! - \************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getMapData.js"); - -/** - * Gets the map value for `key`. + * _.eq('a', 'a'); + * // => true * - * @private - * @name get - * @memberOf MapCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function mapCacheGet(key) { - return getMapData(this, key).get(key); -} - -module.exports = mapCacheGet; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheHas.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheHas.js ***! - \************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getMapData.js"); - -/** - * Checks if a map value for `key` exists. + * _.eq('a', Object('a')); + * // => false * - * @private - * @name has - * @memberOf MapCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + * _.eq(NaN, NaN); + * // => true */ -function mapCacheHas(key) { - return getMapData(this, key).has(key); +function eq(value, other) { + return value === other || (value !== value && other !== other); } -module.exports = mapCacheHas; +module.exports = eq; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheSet.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheSet.js ***! - \************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/get.js": +/*!*******************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/get.js ***! + \*******************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2166413__) => { -var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getMapData.js"); +var baseGet = __nested_webpack_require_2166413__(/*! ./_baseGet */ "./build/cht-core-4-6/node_modules/lodash/_baseGet.js"); /** - * Sets the map `key` to `value`. + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. * - * @private - * @name set - * @memberOf MapCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the map cache instance. + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' */ -function mapCacheSet(key, value) { - var data = getMapData(this, key), - size = data.size; - - data.set(key, value); - this.size += data.size == size ? 0 : 1; - return this; +function get(object, path, defaultValue) { + var result = object == null ? undefined : baseGet(object, path); + return result === undefined ? defaultValue : result; } -module.exports = mapCacheSet; +module.exports = get; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapToArray.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapToArray.js ***! - \***********************************************************************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/hasIn.js": +/*!*********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/hasIn.js ***! + \*********************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2167698__) => { + +var baseHasIn = __nested_webpack_require_2167698__(/*! ./_baseHasIn */ "./build/cht-core-4-6/node_modules/lodash/_baseHasIn.js"), + hasPath = __nested_webpack_require_2167698__(/*! ./_hasPath */ "./build/cht-core-4-6/node_modules/lodash/_hasPath.js"); /** - * Converts `map` to its key-value pairs. + * Checks if `path` is a direct or inherited property of `object`. * - * @private - * @param {Object} map The map to convert. - * @returns {Array} Returns the key-value pairs. + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.hasIn(object, 'a'); + * // => true + * + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false */ -function mapToArray(map) { - var index = -1, - result = Array(map.size); - - map.forEach(function(value, key) { - result[++index] = [key, value]; - }); - return result; +function hasIn(object, path) { + return object != null && hasPath(object, path, baseHasIn); } -module.exports = mapToArray; +module.exports = hasIn; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_matchesStrictComparable.js": -/*!************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_matchesStrictComparable.js ***! - \************************************************************************************************************/ +/***/ "./build/cht-core-4-6/node_modules/lodash/identity.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/identity.js ***! + \************************************************************/ /***/ ((module) => { /** - * A specialized version of `matchesProperty` for source values suitable - * for strict equality comparisons, i.e. `===`. + * This method returns the first argument it receives. * - * @private - * @param {string} key The key of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true */ -function matchesStrictComparable(key, srcValue) { - return function(object) { - if (object == null) { - return false; - } - return object[key] === srcValue && - (srcValue !== undefined || (key in Object(object))); - }; +function identity(value) { + return value; } -module.exports = matchesStrictComparable; +module.exports = identity; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_memoizeCapped.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_memoizeCapped.js ***! - \**************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/isArguments.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isArguments.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2169614__) => { -var memoize = __webpack_require__(/*! ./memoize */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/memoize.js"); +var baseIsArguments = __nested_webpack_require_2169614__(/*! ./_baseIsArguments */ "./build/cht-core-4-6/node_modules/lodash/_baseIsArguments.js"), + isObjectLike = __nested_webpack_require_2169614__(/*! ./isObjectLike */ "./build/cht-core-4-6/node_modules/lodash/isObjectLike.js"); -/** Used as the maximum memoize cache size. */ -var MAX_MEMOIZE_SIZE = 500; +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; /** - * A specialized version of `_.memoize` which clears the memoized function's - * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * Checks if `value` is likely an `arguments` object. * - * @private - * @param {Function} func The function to have its output memoized. - * @returns {Function} Returns the new memoized function. + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false */ -function memoizeCapped(func) { - var result = memoize(func, function(key) { - if (cache.size === MAX_MEMOIZE_SIZE) { - cache.clear(); - } - return key; - }); - - var cache = result.cache; - return result; -} +var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); +}; -module.exports = memoizeCapped; +module.exports = isArguments; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_nativeCreate.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_nativeCreate.js ***! - \*************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getNative.js"); +/***/ "./build/cht-core-4-6/node_modules/lodash/isArray.js": +/*!***********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isArray.js ***! + \***********************************************************/ +/***/ ((module) => { -/* Built-in method references that are verified to be native. */ -var nativeCreate = getNative(Object, 'create'); +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ +var isArray = Array.isArray; -module.exports = nativeCreate; +module.exports = isArray; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_nativeKeys.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_nativeKeys.js ***! - \***********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/isArrayLike.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isArrayLike.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2171927__) => { -var overArg = __webpack_require__(/*! ./_overArg */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_overArg.js"); +var isFunction = __nested_webpack_require_2171927__(/*! ./isFunction */ "./build/cht-core-4-6/node_modules/lodash/isFunction.js"), + isLength = __nested_webpack_require_2171927__(/*! ./isLength */ "./build/cht-core-4-6/node_modules/lodash/isLength.js"); -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeKeys = overArg(Object.keys, Object); +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ +function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); +} -module.exports = nativeKeys; +module.exports = isArrayLike; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_nodeUtil.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_nodeUtil.js ***! - \*********************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/isBuffer.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isBuffer.js ***! + \************************************************************/ +/***/ ((module, exports, __nested_webpack_require_2173227__) => { -/* module decorator */ module = __webpack_require__.nmd(module); -var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_freeGlobal.js"); +/* module decorator */ module = __nested_webpack_require_2173227__.nmd(module); +var root = __nested_webpack_require_2173227__(/*! ./_root */ "./build/cht-core-4-6/node_modules/lodash/_root.js"), + stubFalse = __nested_webpack_require_2173227__(/*! ./stubFalse */ "./build/cht-core-4-6/node_modules/lodash/stubFalse.js"); /** Detect free variable `exports`. */ -var freeExports = true && exports && !exports.nodeType && exports; +var freeExports = true && exports && !exports.nodeType && exports; /** Detect free variable `module`. */ var freeModule = freeExports && "object" == 'object' && module && !module.nodeType && module; @@ -56214,2348 +62143,3186 @@ var freeModule = freeExports && "object" == 'object' && module && !module.nodeTy /** Detect the popular CommonJS extension `module.exports`. */ var moduleExports = freeModule && freeModule.exports === freeExports; -/** Detect free variable `process` from Node.js. */ -var freeProcess = moduleExports && freeGlobal.process; - -/** Used to access faster Node.js helpers. */ -var nodeUtil = (function() { - try { - // Use `util.types` for Node.js 10+. - var types = freeModule && freeModule.require && freeModule.require('util').types; - - if (types) { - return types; - } - - // Legacy `process.binding('util')` for Node.js < 10. - return freeProcess && freeProcess.binding && freeProcess.binding('util'); - } catch (e) {} -}()); - -module.exports = nodeUtil; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_objectToString.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_objectToString.js ***! - \***************************************************************************************************/ -/***/ ((module) => { - -/** Used for built-in method references. */ -var objectProto = Object.prototype; +/** Built-in value references. */ +var Buffer = moduleExports ? root.Buffer : undefined; -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ -var nativeObjectToString = objectProto.toString; +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; /** - * Converts `value` to a string using `Object.prototype.toString`. + * Checks if `value` is a buffer. * - * @private - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false */ -function objectToString(value) { - return nativeObjectToString.call(value); -} +var isBuffer = nativeIsBuffer || stubFalse; -module.exports = objectToString; +module.exports = isBuffer; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_overArg.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_overArg.js ***! - \********************************************************************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/isFunction.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isFunction.js ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2174871__) => { + +var baseGetTag = __nested_webpack_require_2174871__(/*! ./_baseGetTag */ "./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js"), + isObject = __nested_webpack_require_2174871__(/*! ./isObject */ "./build/cht-core-4-6/node_modules/lodash/isObject.js"); + +/** `Object#toString` result references. */ +var asyncTag = '[object AsyncFunction]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + proxyTag = '[object Proxy]'; /** - * Creates a unary function that invokes `func` with its argument transformed. + * Checks if `value` is classified as a `Function` object. * - * @private - * @param {Function} func The function to wrap. - * @param {Function} transform The argument transform. - * @returns {Function} Returns the new function. + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false */ -function overArg(func, transform) { - return function(arg) { - return func(transform(arg)); - }; +function isFunction(value) { + if (!isObject(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; } -module.exports = overArg; - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_root.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_root.js ***! - \*****************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_freeGlobal.js"); - -/** Detect free variable `self`. */ -var freeSelf = typeof self == 'object' && self && self.Object === Object && self; - -/** Used as a reference to the global object. */ -var root = freeGlobal || freeSelf || Function('return this')(); - -module.exports = root; +module.exports = isFunction; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_setCacheAdd.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_setCacheAdd.js ***! - \************************************************************************************************/ +/***/ "./build/cht-core-4-6/node_modules/lodash/isLength.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isLength.js ***! + \************************************************************/ /***/ ((module) => { -/** Used to stand-in for `undefined` hash values. */ -var HASH_UNDEFINED = '__lodash_hash_undefined__'; +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; /** - * Adds `value` to the array cache. + * Checks if `value` is a valid array-like length. * - * @private - * @name add - * @memberOf SetCache - * @alias push - * @param {*} value The value to cache. - * @returns {Object} Returns the cache instance. + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false */ -function setCacheAdd(value) { - this.__data__.set(value, HASH_UNDEFINED); - return this; +function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; } -module.exports = setCacheAdd; +module.exports = isLength; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_setCacheHas.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_setCacheHas.js ***! - \************************************************************************************************/ +/***/ "./build/cht-core-4-6/node_modules/lodash/isObject.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isObject.js ***! + \************************************************************/ /***/ ((module) => { /** - * Checks if `value` is in the array cache. + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * - * @private - * @name has - * @memberOf SetCache - * @param {*} value The value to search for. - * @returns {number} Returns `true` if `value` is found, else `false`. + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false */ -function setCacheHas(value) { - return this.__data__.has(value); +function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); } -module.exports = setCacheHas; +module.exports = isObject; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_setToArray.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_setToArray.js ***! - \***********************************************************************************************/ +/***/ "./build/cht-core-4-6/node_modules/lodash/isObjectLike.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isObjectLike.js ***! + \****************************************************************/ /***/ ((module) => { /** - * Converts `set` to an array of its values. + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the values. + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false */ -function setToArray(set) { - var index = -1, - result = Array(set.size); - - set.forEach(function(value) { - result[++index] = value; - }); - return result; +function isObjectLike(value) { + return value != null && typeof value == 'object'; } -module.exports = setToArray; +module.exports = isObjectLike; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackClear.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackClear.js ***! - \***********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_ListCache.js"); - -/** - * Removes all key-value entries from the stack. - * - * @private - * @name clear - * @memberOf Stack - */ -function stackClear() { - this.__data__ = new ListCache; - this.size = 0; -} - -module.exports = stackClear; - +/***/ "./build/cht-core-4-6/node_modules/lodash/isSymbol.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isSymbol.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2179399__) => { -/***/ }), +var baseGetTag = __nested_webpack_require_2179399__(/*! ./_baseGetTag */ "./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js"), + isObjectLike = __nested_webpack_require_2179399__(/*! ./isObjectLike */ "./build/cht-core-4-6/node_modules/lodash/isObjectLike.js"); -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackDelete.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackDelete.js ***! - \************************************************************************************************/ -/***/ ((module) => { +/** `Object#toString` result references. */ +var symbolTag = '[object Symbol]'; /** - * Removes `key` and its value from the stack. + * Checks if `value` is classified as a `Symbol` primitive or object. * - * @private - * @name delete - * @memberOf Stack - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false */ -function stackDelete(key) { - var data = this.__data__, - result = data['delete'](key); - - this.size = data.size; - return result; +function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && baseGetTag(value) == symbolTag); } -module.exports = stackDelete; +module.exports = isSymbol; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackGet.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackGet.js ***! - \*********************************************************************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/isTypedArray.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isTypedArray.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2180589__) => { + +var baseIsTypedArray = __nested_webpack_require_2180589__(/*! ./_baseIsTypedArray */ "./build/cht-core-4-6/node_modules/lodash/_baseIsTypedArray.js"), + baseUnary = __nested_webpack_require_2180589__(/*! ./_baseUnary */ "./build/cht-core-4-6/node_modules/lodash/_baseUnary.js"), + nodeUtil = __nested_webpack_require_2180589__(/*! ./_nodeUtil */ "./build/cht-core-4-6/node_modules/lodash/_nodeUtil.js"); + +/* Node.js helper references. */ +var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; /** - * Gets the stack value for `key`. + * Checks if `value` is classified as a typed array. * - * @private - * @name get - * @memberOf Stack - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false */ -function stackGet(key) { - return this.__data__.get(key); -} +var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; -module.exports = stackGet; +module.exports = isTypedArray; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackHas.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackHas.js ***! - \*********************************************************************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/keys.js": +/*!********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/keys.js ***! + \********************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2181837__) => { + +var arrayLikeKeys = __nested_webpack_require_2181837__(/*! ./_arrayLikeKeys */ "./build/cht-core-4-6/node_modules/lodash/_arrayLikeKeys.js"), + baseKeys = __nested_webpack_require_2181837__(/*! ./_baseKeys */ "./build/cht-core-4-6/node_modules/lodash/_baseKeys.js"), + isArrayLike = __nested_webpack_require_2181837__(/*! ./isArrayLike */ "./build/cht-core-4-6/node_modules/lodash/isArrayLike.js"); /** - * Checks if a stack value for `key` exists. + * Creates an array of the own enumerable property names of `object`. * - * @private - * @name has - * @memberOf Stack - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] */ -function stackHas(key) { - return this.__data__.has(key); +function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); } -module.exports = stackHas; +module.exports = keys; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackSet.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackSet.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/memoize.js": +/*!***********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/memoize.js ***! + \***********************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2183284__) => { -var ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_ListCache.js"), - Map = __webpack_require__(/*! ./_Map */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Map.js"), - MapCache = __webpack_require__(/*! ./_MapCache */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_MapCache.js"); +var MapCache = __nested_webpack_require_2183284__(/*! ./_MapCache */ "./build/cht-core-4-6/node_modules/lodash/_MapCache.js"); -/** Used as the size to enable large array optimizations. */ -var LARGE_ARRAY_SIZE = 200; +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; /** - * Sets the stack `key` to `value`. + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. * - * @private - * @name set - * @memberOf Stack - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the stack cache instance. + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; */ -function stackSet(key, value) { - var data = this.__data__; - if (data instanceof ListCache) { - var pairs = data.__data__; - if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { - pairs.push([key, value]); - this.size = ++data.size; - return this; - } - data = this.__data__ = new MapCache(pairs); +function memoize(func, resolver) { + if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); } - data.set(key, value); - this.size = data.size; - return this; + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || MapCache); + return memoized; } -module.exports = stackSet; +// Expose `MapCache`. +memoize.Cache = MapCache; + +module.exports = memoize; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_strictIndexOf.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_strictIndexOf.js ***! - \**************************************************************************************************/ +/***/ "./build/cht-core-4-6/node_modules/lodash/noop.js": +/*!********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/noop.js ***! + \********************************************************/ /***/ ((module) => { /** - * A specialized version of `_.indexOf` which performs strict equality - * comparisons of values, i.e. `===`. + * This method returns `undefined`. * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. + * @static + * @memberOf _ + * @since 2.3.0 + * @category Util + * @example + * + * _.times(2, _.noop); + * // => [undefined, undefined] */ -function strictIndexOf(array, value, fromIndex) { - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; +function noop() { + // No operation performed. } -module.exports = strictIndexOf; +module.exports = noop; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stringToPath.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stringToPath.js ***! - \*************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var memoizeCapped = __webpack_require__(/*! ./_memoizeCapped */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_memoizeCapped.js"); +/***/ "./build/cht-core-4-6/node_modules/lodash/property.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/property.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2186450__) => { -/** Used to match property names within property paths. */ -var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; - -/** Used to match backslashes in property paths. */ -var reEscapeChar = /\\(\\)?/g; +var baseProperty = __nested_webpack_require_2186450__(/*! ./_baseProperty */ "./build/cht-core-4-6/node_modules/lodash/_baseProperty.js"), + basePropertyDeep = __nested_webpack_require_2186450__(/*! ./_basePropertyDeep */ "./build/cht-core-4-6/node_modules/lodash/_basePropertyDeep.js"), + isKey = __nested_webpack_require_2186450__(/*! ./_isKey */ "./build/cht-core-4-6/node_modules/lodash/_isKey.js"), + toKey = __nested_webpack_require_2186450__(/*! ./_toKey */ "./build/cht-core-4-6/node_modules/lodash/_toKey.js"); /** - * Converts `string` to a property path array. + * Creates a function that returns the value at `path` of a given object. * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the property path array. + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + * @example + * + * var objects = [ + * { 'a': { 'b': 2 } }, + * { 'a': { 'b': 1 } } + * ]; + * + * _.map(objects, _.property('a.b')); + * // => [2, 1] + * + * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); + * // => [1, 2] */ -var stringToPath = memoizeCapped(function(string) { - var result = []; - if (string.charCodeAt(0) === 46 /* . */) { - result.push(''); - } - string.replace(rePropName, function(match, number, quote, subString) { - result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); - }); - return result; -}); +function property(path) { + return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); +} -module.exports = stringToPath; +module.exports = property; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_toKey.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_toKey.js ***! - \******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var isSymbol = __webpack_require__(/*! ./isSymbol */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isSymbol.js"); - -/** Used as references for various `Number` constants. */ -var INFINITY = 1 / 0; +/***/ "./build/cht-core-4-6/node_modules/lodash/stubArray.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/stubArray.js ***! + \*************************************************************/ +/***/ ((module) => { /** - * Converts `value` to a string key if it's not a string or symbol. + * This method returns a new empty array. * - * @private - * @param {*} value The value to inspect. - * @returns {string|symbol} Returns the key. + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {Array} Returns the new empty array. + * @example + * + * var arrays = _.times(2, _.stubArray); + * + * console.log(arrays); + * // => [[], []] + * + * console.log(arrays[0] === arrays[1]); + * // => false */ -function toKey(value) { - if (typeof value == 'string' || isSymbol(value)) { - return value; - } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +function stubArray() { + return []; } -module.exports = toKey; +module.exports = stubArray; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_toSource.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_toSource.js ***! - \*********************************************************************************************/ +/***/ "./build/cht-core-4-6/node_modules/lodash/stubFalse.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/stubFalse.js ***! + \*************************************************************/ /***/ ((module) => { -/** Used for built-in method references. */ -var funcProto = Function.prototype; - -/** Used to resolve the decompiled source of functions. */ -var funcToString = funcProto.toString; - /** - * Converts `func` to its source code. + * This method returns `false`. * - * @private - * @param {Function} func The function to convert. - * @returns {string} Returns the source code. + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] */ -function toSource(func) { - if (func != null) { - try { - return funcToString.call(func); - } catch (e) {} - try { - return (func + ''); - } catch (e) {} - } - return ''; +function stubFalse() { + return false; } -module.exports = toSource; +module.exports = stubFalse; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/eq.js": -/*!**************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/eq.js ***! - \**************************************************************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/toString.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/toString.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2189148__) => { + +var baseToString = __nested_webpack_require_2189148__(/*! ./_baseToString */ "./build/cht-core-4-6/node_modules/lodash/_baseToString.js"); /** - * Performs a - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * comparison between two values to determine if they are equivalent. + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. * * @static * @memberOf _ * @since 4.0.0 * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. * @example * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.eq(object, object); - * // => true - * - * _.eq(object, other); - * // => false - * - * _.eq('a', 'a'); - * // => true + * _.toString(null); + * // => '' * - * _.eq('a', Object('a')); - * // => false + * _.toString(-0); + * // => '-0' * - * _.eq(NaN, NaN); - * // => true + * _.toString([1, 2, 3]); + * // => '1,2,3' */ -function eq(value, other) { - return value === other || (value !== value && other !== other); +function toString(value) { + return value == null ? '' : baseToString(value); } -module.exports = eq; +module.exports = toString; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/get.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/get.js ***! - \***************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/lodash/uniq.js": +/*!********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/uniq.js ***! + \********************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2190130__) => { -var baseGet = __webpack_require__(/*! ./_baseGet */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseGet.js"); +var baseUniq = __nested_webpack_require_2190130__(/*! ./_baseUniq */ "./build/cht-core-4-6/node_modules/lodash/_baseUniq.js"); /** - * Gets the value at `path` of `object`. If the resolved value is - * `undefined`, the `defaultValue` is returned in its place. + * Creates a duplicate-free version of an array, using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons, in which only the first occurrence of each element + * is kept. The order of result values is determined by the order they occur + * in the array. * * @static * @memberOf _ - * @since 3.7.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @param {*} [defaultValue] The value returned for `undefined` resolved values. - * @returns {*} Returns the resolved value. + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @returns {Array} Returns the new duplicate free array. * @example * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * _.uniq([2, 1, 2]); + * // => [2, 1] + */ +function uniq(array) { + return (array && array.length) ? baseUniq(array) : []; +} + +module.exports = uniq; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/uniqBy.js": +/*!**********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/uniqBy.js ***! + \**********************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2191224__) => { + +var baseIteratee = __nested_webpack_require_2191224__(/*! ./_baseIteratee */ "./build/cht-core-4-6/node_modules/lodash/_baseIteratee.js"), + baseUniq = __nested_webpack_require_2191224__(/*! ./_baseUniq */ "./build/cht-core-4-6/node_modules/lodash/_baseUniq.js"); + +/** + * This method is like `_.uniq` except that it accepts `iteratee` which is + * invoked for each element in `array` to generate the criterion by which + * uniqueness is computed. The order of result values is determined by the + * order they occur in the array. The iteratee is invoked with one argument: + * (value). * - * _.get(object, 'a[0].b.c'); - * // => 3 + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new duplicate free array. + * @example * - * _.get(object, ['a', '0', 'b', 'c']); - * // => 3 + * _.uniqBy([2.1, 1.2, 2.3], Math.floor); + * // => [2.1, 1.2] * - * _.get(object, 'a.b.c', 'default'); - * // => 'default' + * // The `_.property` iteratee shorthand. + * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 1 }, { 'x': 2 }] */ -function get(object, path, defaultValue) { - var result = object == null ? undefined : baseGet(object, path); - return result === undefined ? defaultValue : result; +function uniqBy(array, iteratee) { + return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : []; } -module.exports = get; +module.exports = uniqBy; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/md5/md5.js": +/*!****************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/md5/md5.js ***! + \****************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2192696__) => { + +(function(){ + var crypt = __nested_webpack_require_2192696__(/*! crypt */ "./build/cht-core-4-6/node_modules/crypt/crypt.js"), + utf8 = __nested_webpack_require_2192696__(/*! charenc */ "./build/cht-core-4-6/node_modules/charenc/charenc.js").utf8, + isBuffer = __nested_webpack_require_2192696__(/*! is-buffer */ "./build/cht-core-4-6/node_modules/is-buffer/index.js"), + bin = __nested_webpack_require_2192696__(/*! charenc */ "./build/cht-core-4-6/node_modules/charenc/charenc.js").bin, + + // The core + md5 = function (message, options) { + // Convert to byte array + if (message.constructor == String) + if (options && options.encoding === 'binary') + message = bin.stringToBytes(message); + else + message = utf8.stringToBytes(message); + else if (isBuffer(message)) + message = Array.prototype.slice.call(message, 0); + else if (!Array.isArray(message) && message.constructor !== Uint8Array) + message = message.toString(); + // else, assume byte array already + + var m = crypt.bytesToWords(message), + l = message.length * 8, + a = 1732584193, + b = -271733879, + c = -1732584194, + d = 271733878; + + // Swap endian + for (var i = 0; i < m.length; i++) { + m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF | + ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00; + } + + // Padding + m[l >>> 5] |= 0x80 << (l % 32); + m[(((l + 64) >>> 9) << 4) + 14] = l; + + // Method shortcuts + var FF = md5._ff, + GG = md5._gg, + HH = md5._hh, + II = md5._ii; + + for (var i = 0; i < m.length; i += 16) { + + var aa = a, + bb = b, + cc = c, + dd = d; + + a = FF(a, b, c, d, m[i+ 0], 7, -680876936); + d = FF(d, a, b, c, m[i+ 1], 12, -389564586); + c = FF(c, d, a, b, m[i+ 2], 17, 606105819); + b = FF(b, c, d, a, m[i+ 3], 22, -1044525330); + a = FF(a, b, c, d, m[i+ 4], 7, -176418897); + d = FF(d, a, b, c, m[i+ 5], 12, 1200080426); + c = FF(c, d, a, b, m[i+ 6], 17, -1473231341); + b = FF(b, c, d, a, m[i+ 7], 22, -45705983); + a = FF(a, b, c, d, m[i+ 8], 7, 1770035416); + d = FF(d, a, b, c, m[i+ 9], 12, -1958414417); + c = FF(c, d, a, b, m[i+10], 17, -42063); + b = FF(b, c, d, a, m[i+11], 22, -1990404162); + a = FF(a, b, c, d, m[i+12], 7, 1804603682); + d = FF(d, a, b, c, m[i+13], 12, -40341101); + c = FF(c, d, a, b, m[i+14], 17, -1502002290); + b = FF(b, c, d, a, m[i+15], 22, 1236535329); + + a = GG(a, b, c, d, m[i+ 1], 5, -165796510); + d = GG(d, a, b, c, m[i+ 6], 9, -1069501632); + c = GG(c, d, a, b, m[i+11], 14, 643717713); + b = GG(b, c, d, a, m[i+ 0], 20, -373897302); + a = GG(a, b, c, d, m[i+ 5], 5, -701558691); + d = GG(d, a, b, c, m[i+10], 9, 38016083); + c = GG(c, d, a, b, m[i+15], 14, -660478335); + b = GG(b, c, d, a, m[i+ 4], 20, -405537848); + a = GG(a, b, c, d, m[i+ 9], 5, 568446438); + d = GG(d, a, b, c, m[i+14], 9, -1019803690); + c = GG(c, d, a, b, m[i+ 3], 14, -187363961); + b = GG(b, c, d, a, m[i+ 8], 20, 1163531501); + a = GG(a, b, c, d, m[i+13], 5, -1444681467); + d = GG(d, a, b, c, m[i+ 2], 9, -51403784); + c = GG(c, d, a, b, m[i+ 7], 14, 1735328473); + b = GG(b, c, d, a, m[i+12], 20, -1926607734); + + a = HH(a, b, c, d, m[i+ 5], 4, -378558); + d = HH(d, a, b, c, m[i+ 8], 11, -2022574463); + c = HH(c, d, a, b, m[i+11], 16, 1839030562); + b = HH(b, c, d, a, m[i+14], 23, -35309556); + a = HH(a, b, c, d, m[i+ 1], 4, -1530992060); + d = HH(d, a, b, c, m[i+ 4], 11, 1272893353); + c = HH(c, d, a, b, m[i+ 7], 16, -155497632); + b = HH(b, c, d, a, m[i+10], 23, -1094730640); + a = HH(a, b, c, d, m[i+13], 4, 681279174); + d = HH(d, a, b, c, m[i+ 0], 11, -358537222); + c = HH(c, d, a, b, m[i+ 3], 16, -722521979); + b = HH(b, c, d, a, m[i+ 6], 23, 76029189); + a = HH(a, b, c, d, m[i+ 9], 4, -640364487); + d = HH(d, a, b, c, m[i+12], 11, -421815835); + c = HH(c, d, a, b, m[i+15], 16, 530742520); + b = HH(b, c, d, a, m[i+ 2], 23, -995338651); + + a = II(a, b, c, d, m[i+ 0], 6, -198630844); + d = II(d, a, b, c, m[i+ 7], 10, 1126891415); + c = II(c, d, a, b, m[i+14], 15, -1416354905); + b = II(b, c, d, a, m[i+ 5], 21, -57434055); + a = II(a, b, c, d, m[i+12], 6, 1700485571); + d = II(d, a, b, c, m[i+ 3], 10, -1894986606); + c = II(c, d, a, b, m[i+10], 15, -1051523); + b = II(b, c, d, a, m[i+ 1], 21, -2054922799); + a = II(a, b, c, d, m[i+ 8], 6, 1873313359); + d = II(d, a, b, c, m[i+15], 10, -30611744); + c = II(c, d, a, b, m[i+ 6], 15, -1560198380); + b = II(b, c, d, a, m[i+13], 21, 1309151649); + a = II(a, b, c, d, m[i+ 4], 6, -145523070); + d = II(d, a, b, c, m[i+11], 10, -1120210379); + c = II(c, d, a, b, m[i+ 2], 15, 718787259); + b = II(b, c, d, a, m[i+ 9], 21, -343485551); + + a = (a + aa) >>> 0; + b = (b + bb) >>> 0; + c = (c + cc) >>> 0; + d = (d + dd) >>> 0; + } + + return crypt.endian([a, b, c, d]); + }; + + // Auxiliary functions + md5._ff = function (a, b, c, d, x, s, t) { + var n = a + (b & c | ~b & d) + (x >>> 0) + t; + return ((n << s) | (n >>> (32 - s))) + b; + }; + md5._gg = function (a, b, c, d, x, s, t) { + var n = a + (b & d | c & ~d) + (x >>> 0) + t; + return ((n << s) | (n >>> (32 - s))) + b; + }; + md5._hh = function (a, b, c, d, x, s, t) { + var n = a + (b ^ c ^ d) + (x >>> 0) + t; + return ((n << s) | (n >>> (32 - s))) + b; + }; + md5._ii = function (a, b, c, d, x, s, t) { + var n = a + (c ^ (b | ~d)) + (x >>> 0) + t; + return ((n << s) | (n >>> (32 - s))) + b; + }; + + // Package private blocksize + md5._blocksize = 16; + md5._digestsize = 16; + + module.exports = function (message, options) { + if (message === undefined || message === null) + throw new Error('Illegal argument ' + message); + + var digestbytes = crypt.wordsToBytes(md5(message, options)); + return options && options.asBytes ? digestbytes : + options && options.asString ? bin.bytesToString(digestbytes) : + crypt.bytesToHex(digestbytes); + }; + +})(); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/hasIn.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/hasIn.js ***! - \*****************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var baseHasIn = __webpack_require__(/*! ./_baseHasIn */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseHasIn.js"), - hasPath = __webpack_require__(/*! ./_hasPath */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hasPath.js"); - -/** - * Checks if `path` is a direct or inherited property of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - * @example - * - * var object = _.create({ 'a': _.create({ 'b': 2 }) }); - * - * _.hasIn(object, 'a'); - * // => true - * - * _.hasIn(object, 'a.b'); - * // => true - * - * _.hasIn(object, ['a', 'b']); - * // => true - * - * _.hasIn(object, 'b'); - * // => false - */ -function hasIn(object, path) { - return object != null && hasPath(object, path, baseHasIn); -} +/***/ "./build/cht-core-4-6/node_modules/moment/locale/af.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/af.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2199384__) { -module.exports = hasIn; +//! moment.js locale configuration +//! locale : Afrikaans [af] +//! author : Werner Mollentze : https://github.com/wernerm +;(function (global, factory) { + true ? factory(__nested_webpack_require_2199384__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -/***/ }), + //! moment.js locale configuration -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/identity.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/identity.js ***! - \********************************************************************************************/ -/***/ ((module) => { + var af = moment.defineLocale('af', { + months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split( + '_' + ), + weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), + weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), + meridiemParse: /vm|nm/i, + isPM: function (input) { + return /^nm$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'vm' : 'VM'; + } else { + return isLower ? 'nm' : 'NM'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Vandag om] LT', + nextDay: '[Môre om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[Gister om] LT', + lastWeek: '[Laas] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oor %s', + past: '%s gelede', + s: "'n paar sekondes", + ss: '%d sekondes', + m: "'n minuut", + mm: '%d minute', + h: "'n uur", + hh: '%d ure', + d: "'n dag", + dd: '%d dae', + M: "'n maand", + MM: '%d maande', + y: "'n jaar", + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); // Thanks to Joris Röling : https://github.com/jjupiter + }, + week: { + dow: 1, // Maandag is die eerste dag van die week. + doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. + }, + }); -/** - * This method returns the first argument it receives. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Util - * @param {*} value Any value. - * @returns {*} Returns `value`. - * @example - * - * var object = { 'a': 1 }; - * - * console.log(_.identity(object) === object); - * // => true - */ -function identity(value) { - return value; -} + return af; -module.exports = identity; +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArguments.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArguments.js ***! - \***********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var baseIsArguments = __webpack_require__(/*! ./_baseIsArguments */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsArguments.js"), - isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isObjectLike.js"); +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ar-dz.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ar-dz.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2202387__) { -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; - -/** Built-in value references. */ -var propertyIsEnumerable = objectProto.propertyIsEnumerable; - -/** - * Checks if `value` is likely an `arguments` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - * else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ -var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { - return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && - !propertyIsEnumerable.call(value, 'callee'); -}; +//! moment.js locale configuration +//! locale : Arabic (Algeria) [ar-dz] +//! author : Amine Roukh: https://github.com/Amine27 +//! author : Abdel Said: https://github.com/abdelsaid +//! author : Ahmed Elkhatib +//! author : forabi https://github.com/forabi +//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem -module.exports = isArguments; +;(function (global, factory) { + true ? factory(__nested_webpack_require_2202387__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + //! moment.js locale configuration -/***/ }), + var pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + 'جانفي', + 'فيفري', + 'مارس', + 'أفريل', + 'ماي', + 'جوان', + 'جويلية', + 'أوت', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArray.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArray.js ***! - \*******************************************************************************************/ -/***/ ((module) => { + var arDz = moment.defineLocale('ar-dz', { + months: months, + monthsShort: months, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); -/** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(document.body.children); - * // => false - * - * _.isArray('abc'); - * // => false - * - * _.isArray(_.noop); - * // => false - */ -var isArray = Array.isArray; + return arDz; -module.exports = isArray; +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArrayLike.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArrayLike.js ***! - \***********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var isFunction = __webpack_require__(/*! ./isFunction */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isFunction.js"), - isLength = __webpack_require__(/*! ./isLength */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isLength.js"); - -/** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ -function isArrayLike(value) { - return value != null && isLength(value.length) && !isFunction(value); -} - -module.exports = isArrayLike; - - -/***/ }), +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ar-kw.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ar-kw.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2207554__) { -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isBuffer.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isBuffer.js ***! - \********************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { +//! moment.js locale configuration +//! locale : Arabic (Kuwait) [ar-kw] +//! author : Nusret Parlak: https://github.com/nusretparlak -/* module decorator */ module = __webpack_require__.nmd(module); -var root = __webpack_require__(/*! ./_root */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_root.js"), - stubFalse = __webpack_require__(/*! ./stubFalse */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/stubFalse.js"); +;(function (global, factory) { + true ? factory(__nested_webpack_require_2207554__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -/** Detect free variable `exports`. */ -var freeExports = true && exports && !exports.nodeType && exports; + //! moment.js locale configuration -/** Detect free variable `module`. */ -var freeModule = freeExports && "object" == 'object' && module && !module.nodeType && module; + var arKw = moment.defineLocale('ar-kw', { + months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); -/** Detect the popular CommonJS extension `module.exports`. */ -var moduleExports = freeModule && freeModule.exports === freeExports; + return arKw; -/** Built-in value references. */ -var Buffer = moduleExports ? root.Buffer : undefined; +}))); -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; -/** - * Checks if `value` is a buffer. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. - * @example - * - * _.isBuffer(new Buffer(2)); - * // => true - * - * _.isBuffer(new Uint8Array(2)); - * // => false - */ -var isBuffer = nativeIsBuffer || stubFalse; +/***/ }), -module.exports = isBuffer; +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ar-ly.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ar-ly.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2209974__) { +//! moment.js locale configuration +//! locale : Arabic (Libya) [ar-ly] +//! author : Ali Hmer: https://github.com/kikoanis -/***/ }), +;(function (global, factory) { + true ? factory(__nested_webpack_require_2209974__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isFunction.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isFunction.js ***! - \**********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + //! moment.js locale configuration -var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseGetTag.js"), - isObject = __webpack_require__(/*! ./isObject */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isObject.js"); + var symbolMap = { + 1: '1', + 2: '2', + 3: '3', + 4: '4', + 5: '5', + 6: '6', + 7: '7', + 8: '8', + 9: '9', + 0: '0', + }, + pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; -/** `Object#toString` result references. */ -var asyncTag = '[object AsyncFunction]', - funcTag = '[object Function]', - genTag = '[object GeneratorFunction]', - proxyTag = '[object Proxy]'; + var arLy = moment.defineLocale('ar-ly', { + months: months, + monthsShort: months, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a function, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - if (!isObject(value)) { - return false; - } - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 9 which returns 'object' for typed arrays and other constructors. - var tag = baseGetTag(value); - return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; -} + return arLy; -module.exports = isFunction; +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isLength.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isLength.js ***! - \********************************************************************************************/ -/***/ ((module) => { - -/** Used as references for various `Number` constants. */ -var MAX_SAFE_INTEGER = 9007199254740991; - -/** - * Checks if `value` is a valid array-like length. - * - * **Note:** This method is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ -function isLength(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; -} +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ar-ma.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ar-ma.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2215411__) { -module.exports = isLength; +//! moment.js locale configuration +//! locale : Arabic (Morocco) [ar-ma] +//! author : ElFadili Yassine : https://github.com/ElFadiliY +//! author : Abdel Said : https://github.com/abdelsaid +;(function (global, factory) { + true ? factory(__nested_webpack_require_2215411__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -/***/ }), + //! moment.js locale configuration -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isObject.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isObject.js ***! - \********************************************************************************************/ -/***/ ((module) => { + var arMa = moment.defineLocale('ar-ma', { + months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); -/** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return value != null && (type == 'object' || type == 'function'); -} + return arMa; -module.exports = isObject; +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isObjectLike.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isObjectLike.js ***! - \************************************************************************************************/ -/***/ ((module) => { - -/** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ -function isObjectLike(value) { - return value != null && typeof value == 'object'; -} - -module.exports = isObjectLike; +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ar-sa.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ar-sa.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2217886__) { +//! moment.js locale configuration +//! locale : Arabic (Saudi Arabia) [ar-sa] +//! author : Suhail Alkowaileet : https://github.com/xsoh -/***/ }), +;(function (global, factory) { + true ? factory(__nested_webpack_require_2217886__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isSymbol.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isSymbol.js ***! - \********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + //! moment.js locale configuration -var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseGetTag.js"), - isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isObjectLike.js"); + var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }; -/** `Object#toString` result references. */ -var symbolTag = '[object Symbol]'; + var arSa = moment.defineLocale('ar-sa', { + months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); -/** - * Checks if `value` is classified as a `Symbol` primitive or object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. - * @example - * - * _.isSymbol(Symbol.iterator); - * // => true - * - * _.isSymbol('abc'); - * // => false - */ -function isSymbol(value) { - return typeof value == 'symbol' || - (isObjectLike(value) && baseGetTag(value) == symbolTag); -} + return arSa; -module.exports = isSymbol; +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isTypedArray.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isTypedArray.js ***! - \************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var baseIsTypedArray = __webpack_require__(/*! ./_baseIsTypedArray */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsTypedArray.js"), - baseUnary = __webpack_require__(/*! ./_baseUnary */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseUnary.js"), - nodeUtil = __webpack_require__(/*! ./_nodeUtil */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_nodeUtil.js"); - -/* Node.js helper references. */ -var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; - -/** - * Checks if `value` is classified as a typed array. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - * @example - * - * _.isTypedArray(new Uint8Array); - * // => true - * - * _.isTypedArray([]); - * // => false - */ -var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; - -module.exports = isTypedArray; +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ar-tn.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ar-tn.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2221563__) { +//! moment.js locale configuration +//! locale : Arabic (Tunisia) [ar-tn] +//! author : Nader Toukabri : https://github.com/naderio -/***/ }), +;(function (global, factory) { + true ? factory(__nested_webpack_require_2221563__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/keys.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/keys.js ***! - \****************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + //! moment.js locale configuration -var arrayLikeKeys = __webpack_require__(/*! ./_arrayLikeKeys */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayLikeKeys.js"), - baseKeys = __webpack_require__(/*! ./_baseKeys */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseKeys.js"), - isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArrayLike.js"); + var arTn = moment.defineLocale('ar-tn', { + months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + monthsShort: + 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); -/** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * for more details. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ -function keys(object) { - return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); -} + return arTn; -module.exports = keys; +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/memoize.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/memoize.js ***! - \*******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var MapCache = __webpack_require__(/*! ./_MapCache */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_MapCache.js"); - -/** Error message constants. */ -var FUNC_ERROR_TEXT = 'Expected a function'; - -/** - * Creates a function that memoizes the result of `func`. If `resolver` is - * provided, it determines the cache key for storing the result based on the - * arguments provided to the memoized function. By default, the first argument - * provided to the memoized function is used as the map cache key. The `func` - * is invoked with the `this` binding of the memoized function. - * - * **Note:** The cache is exposed as the `cache` property on the memoized - * function. Its creation may be customized by replacing the `_.memoize.Cache` - * constructor with one whose instances implement the - * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) - * method interface of `clear`, `delete`, `get`, `has`, and `set`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to have its output memoized. - * @param {Function} [resolver] The function to resolve the cache key. - * @returns {Function} Returns the new memoized function. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * var other = { 'c': 3, 'd': 4 }; - * - * var values = _.memoize(_.values); - * values(object); - * // => [1, 2] - * - * values(other); - * // => [3, 4] - * - * object.a = 2; - * values(object); - * // => [1, 2] - * - * // Modify the result cache. - * values.cache.set(object, ['a', 'b']); - * values(object); - * // => ['a', 'b'] - * - * // Replace `_.memoize.Cache`. - * _.memoize.Cache = WeakMap; - */ -function memoize(func, resolver) { - if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { - throw new TypeError(FUNC_ERROR_TEXT); - } - var memoized = function() { - var args = arguments, - key = resolver ? resolver.apply(this, args) : args[0], - cache = memoized.cache; - - if (cache.has(key)) { - return cache.get(key); - } - var result = func.apply(this, args); - memoized.cache = cache.set(key, result) || cache; - return result; - }; - memoized.cache = new (memoize.Cache || MapCache); - return memoized; -} +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ar.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ar.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2223971__) { -// Expose `MapCache`. -memoize.Cache = MapCache; +//! moment.js locale configuration +//! locale : Arabic [ar] +//! author : Abdel Said: https://github.com/abdelsaid +//! author : Ahmed Elkhatib +//! author : forabi https://github.com/forabi -module.exports = memoize; +;(function (global, factory) { + true ? factory(__nested_webpack_require_2223971__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + //! moment.js locale configuration -/***/ }), + var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }, + pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/noop.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/noop.js ***! - \****************************************************************************************/ -/***/ ((module) => { + var ar = moment.defineLocale('ar', { + months: months, + monthsShort: months, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); -/** - * This method returns `undefined`. - * - * @static - * @memberOf _ - * @since 2.3.0 - * @category Util - * @example - * - * _.times(2, _.noop); - * // => [undefined, undefined] - */ -function noop() { - // No operation performed. -} + return ar; -module.exports = noop; +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/property.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/property.js ***! - \********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var baseProperty = __webpack_require__(/*! ./_baseProperty */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseProperty.js"), - basePropertyDeep = __webpack_require__(/*! ./_basePropertyDeep */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_basePropertyDeep.js"), - isKey = __webpack_require__(/*! ./_isKey */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isKey.js"), - toKey = __webpack_require__(/*! ./_toKey */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_toKey.js"); +/***/ "./build/cht-core-4-6/node_modules/moment/locale/az.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/az.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2229850__) { -/** - * Creates a function that returns the value at `path` of a given object. - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Util - * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new accessor function. - * @example - * - * var objects = [ - * { 'a': { 'b': 2 } }, - * { 'a': { 'b': 1 } } - * ]; - * - * _.map(objects, _.property('a.b')); - * // => [2, 1] - * - * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); - * // => [1, 2] - */ -function property(path) { - return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); -} +//! moment.js locale configuration +//! locale : Azerbaijani [az] +//! author : topchiyev : https://github.com/topchiyev -module.exports = property; +;(function (global, factory) { + true ? factory(__nested_webpack_require_2229850__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + //! moment.js locale configuration -/***/ }), + var suffixes = { + 1: '-inci', + 5: '-inci', + 8: '-inci', + 70: '-inci', + 80: '-inci', + 2: '-nci', + 7: '-nci', + 20: '-nci', + 50: '-nci', + 3: '-üncü', + 4: '-üncü', + 100: '-üncü', + 6: '-ncı', + 9: '-uncu', + 10: '-uncu', + 30: '-uncu', + 60: '-ıncı', + 90: '-ıncı', + }; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/stubArray.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/stubArray.js ***! - \*********************************************************************************************/ -/***/ ((module) => { + var az = moment.defineLocale('az', { + months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( + '_' + ), + monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), + weekdays: + 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split( + '_' + ), + weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), + weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün saat] LT', + nextDay: '[sabah saat] LT', + nextWeek: '[gələn həftə] dddd [saat] LT', + lastDay: '[dünən] LT', + lastWeek: '[keçən həftə] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s əvvəl', + s: 'bir neçə saniyə', + ss: '%d saniyə', + m: 'bir dəqiqə', + mm: '%d dəqiqə', + h: 'bir saat', + hh: '%d saat', + d: 'bir gün', + dd: '%d gün', + M: 'bir ay', + MM: '%d ay', + y: 'bir il', + yy: '%d il', + }, + meridiemParse: /gecə|səhər|gündüz|axşam/, + isPM: function (input) { + return /^(gündüz|axşam)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'gecə'; + } else if (hour < 12) { + return 'səhər'; + } else if (hour < 17) { + return 'gündüz'; + } else { + return 'axşam'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, + ordinal: function (number) { + if (number === 0) { + // special case for zero + return number + '-ıncı'; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); -/** - * This method returns a new empty array. - * - * @static - * @memberOf _ - * @since 4.13.0 - * @category Util - * @returns {Array} Returns the new empty array. - * @example - * - * var arrays = _.times(2, _.stubArray); - * - * console.log(arrays); - * // => [[], []] - * - * console.log(arrays[0] === arrays[1]); - * // => false - */ -function stubArray() { - return []; -} + return az; -module.exports = stubArray; +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/stubFalse.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/stubFalse.js ***! - \*********************************************************************************************/ -/***/ ((module) => { - -/** - * This method returns `false`. - * - * @static - * @memberOf _ - * @since 4.13.0 - * @category Util - * @returns {boolean} Returns `false`. - * @example - * - * _.times(2, _.stubFalse); - * // => [false, false] - */ -function stubFalse() { - return false; -} +/***/ "./build/cht-core-4-6/node_modules/moment/locale/be.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/be.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2233570__) { -module.exports = stubFalse; +//! moment.js locale configuration +//! locale : Belarusian [be] +//! author : Dmitry Demidov : https://github.com/demidov91 +//! author: Praleska: http://praleska.pro/ +//! Author : Menelion Elensúle : https://github.com/Oire +;(function (global, factory) { + true ? factory(__nested_webpack_require_2233570__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -/***/ }), + //! moment.js locale configuration -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/toString.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/toString.js ***! - \********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', + mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін', + hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін', + dd: 'дзень_дні_дзён', + MM: 'месяц_месяцы_месяцаў', + yy: 'год_гады_гадоў', + }; + if (key === 'm') { + return withoutSuffix ? 'хвіліна' : 'хвіліну'; + } else if (key === 'h') { + return withoutSuffix ? 'гадзіна' : 'гадзіну'; + } else { + return number + ' ' + plural(format[key], +number); + } + } -var baseToString = __webpack_require__(/*! ./_baseToString */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseToString.js"); + var be = moment.defineLocale('be', { + months: { + format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split( + '_' + ), + standalone: + 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split( + '_' + ), + }, + monthsShort: + 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'), + weekdays: { + format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split( + '_' + ), + standalone: + 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split( + '_' + ), + isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/, + }, + weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY г.', + LLL: 'D MMMM YYYY г., HH:mm', + LLLL: 'dddd, D MMMM YYYY г., HH:mm', + }, + calendar: { + sameDay: '[Сёння ў] LT', + nextDay: '[Заўтра ў] LT', + lastDay: '[Учора ў] LT', + nextWeek: function () { + return '[У] dddd [ў] LT'; + }, + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return '[У мінулую] dddd [ў] LT'; + case 1: + case 2: + case 4: + return '[У мінулы] dddd [ў] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'праз %s', + past: '%s таму', + s: 'некалькі секунд', + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: relativeTimeWithPlural, + hh: relativeTimeWithPlural, + d: 'дзень', + dd: relativeTimeWithPlural, + M: 'месяц', + MM: relativeTimeWithPlural, + y: 'год', + yy: relativeTimeWithPlural, + }, + meridiemParse: /ночы|раніцы|дня|вечара/, + isPM: function (input) { + return /^(дня|вечара)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночы'; + } else if (hour < 12) { + return 'раніцы'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечара'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return (number % 10 === 2 || number % 10 === 3) && + number % 100 !== 12 && + number % 100 !== 13 + ? number + '-і' + : number + '-ы'; + case 'D': + return number + '-га'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); -/** - * Converts `value` to a string. An empty string is returned for `null` - * and `undefined` values. The sign of `-0` is preserved. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - * @example - * - * _.toString(null); - * // => '' - * - * _.toString(-0); - * // => '-0' - * - * _.toString([1, 2, 3]); - * // => '1,2,3' - */ -function toString(value) { - return value == null ? '' : baseToString(value); -} + return be; -module.exports = toString; +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/uniqBy.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/uniqBy.js ***! - \******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIteratee.js"), - baseUniq = __webpack_require__(/*! ./_baseUniq */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseUniq.js"); - -/** - * This method is like `_.uniq` except that it accepts `iteratee` which is - * invoked for each element in `array` to generate the criterion by which - * uniqueness is computed. The order of result values is determined by the - * order they occur in the array. The iteratee is invoked with one argument: - * (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.uniqBy([2.1, 1.2, 2.3], Math.floor); - * // => [2.1, 1.2] - * - * // The `_.property` iteratee shorthand. - * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }, { 'x': 2 }] - */ -function uniqBy(array, iteratee) { - return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : []; -} - -module.exports = uniqBy; +/***/ "./build/cht-core-4-6/node_modules/moment/locale/bg.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/bg.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2239153__) { +//! moment.js locale configuration +//! locale : Bulgarian [bg] +//! author : Krasen Borisov : https://github.com/kraz -/***/ }), +;(function (global, factory) { + true ? factory(__nested_webpack_require_2239153__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/md5/md5.js": -/*!************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/md5/md5.js ***! - \************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + //! moment.js locale configuration -(function(){ - var crypt = __webpack_require__(/*! crypt */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/crypt/crypt.js"), - utf8 = __webpack_require__(/*! charenc */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/charenc/charenc.js").utf8, - isBuffer = __webpack_require__(/*! is-buffer */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/is-buffer/index.js"), - bin = __webpack_require__(/*! charenc */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/charenc/charenc.js").bin, - - // The core - md5 = function (message, options) { - // Convert to byte array - if (message.constructor == String) - if (options && options.encoding === 'binary') - message = bin.stringToBytes(message); - else - message = utf8.stringToBytes(message); - else if (isBuffer(message)) - message = Array.prototype.slice.call(message, 0); - else if (!Array.isArray(message) && message.constructor !== Uint8Array) - message = message.toString(); - // else, assume byte array already - - var m = crypt.bytesToWords(message), - l = message.length * 8, - a = 1732584193, - b = -271733879, - c = -1732584194, - d = 271733878; - - // Swap endian - for (var i = 0; i < m.length; i++) { - m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF | - ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00; - } - - // Padding - m[l >>> 5] |= 0x80 << (l % 32); - m[(((l + 64) >>> 9) << 4) + 14] = l; - - // Method shortcuts - var FF = md5._ff, - GG = md5._gg, - HH = md5._hh, - II = md5._ii; - - for (var i = 0; i < m.length; i += 16) { - - var aa = a, - bb = b, - cc = c, - dd = d; - - a = FF(a, b, c, d, m[i+ 0], 7, -680876936); - d = FF(d, a, b, c, m[i+ 1], 12, -389564586); - c = FF(c, d, a, b, m[i+ 2], 17, 606105819); - b = FF(b, c, d, a, m[i+ 3], 22, -1044525330); - a = FF(a, b, c, d, m[i+ 4], 7, -176418897); - d = FF(d, a, b, c, m[i+ 5], 12, 1200080426); - c = FF(c, d, a, b, m[i+ 6], 17, -1473231341); - b = FF(b, c, d, a, m[i+ 7], 22, -45705983); - a = FF(a, b, c, d, m[i+ 8], 7, 1770035416); - d = FF(d, a, b, c, m[i+ 9], 12, -1958414417); - c = FF(c, d, a, b, m[i+10], 17, -42063); - b = FF(b, c, d, a, m[i+11], 22, -1990404162); - a = FF(a, b, c, d, m[i+12], 7, 1804603682); - d = FF(d, a, b, c, m[i+13], 12, -40341101); - c = FF(c, d, a, b, m[i+14], 17, -1502002290); - b = FF(b, c, d, a, m[i+15], 22, 1236535329); - - a = GG(a, b, c, d, m[i+ 1], 5, -165796510); - d = GG(d, a, b, c, m[i+ 6], 9, -1069501632); - c = GG(c, d, a, b, m[i+11], 14, 643717713); - b = GG(b, c, d, a, m[i+ 0], 20, -373897302); - a = GG(a, b, c, d, m[i+ 5], 5, -701558691); - d = GG(d, a, b, c, m[i+10], 9, 38016083); - c = GG(c, d, a, b, m[i+15], 14, -660478335); - b = GG(b, c, d, a, m[i+ 4], 20, -405537848); - a = GG(a, b, c, d, m[i+ 9], 5, 568446438); - d = GG(d, a, b, c, m[i+14], 9, -1019803690); - c = GG(c, d, a, b, m[i+ 3], 14, -187363961); - b = GG(b, c, d, a, m[i+ 8], 20, 1163531501); - a = GG(a, b, c, d, m[i+13], 5, -1444681467); - d = GG(d, a, b, c, m[i+ 2], 9, -51403784); - c = GG(c, d, a, b, m[i+ 7], 14, 1735328473); - b = GG(b, c, d, a, m[i+12], 20, -1926607734); - - a = HH(a, b, c, d, m[i+ 5], 4, -378558); - d = HH(d, a, b, c, m[i+ 8], 11, -2022574463); - c = HH(c, d, a, b, m[i+11], 16, 1839030562); - b = HH(b, c, d, a, m[i+14], 23, -35309556); - a = HH(a, b, c, d, m[i+ 1], 4, -1530992060); - d = HH(d, a, b, c, m[i+ 4], 11, 1272893353); - c = HH(c, d, a, b, m[i+ 7], 16, -155497632); - b = HH(b, c, d, a, m[i+10], 23, -1094730640); - a = HH(a, b, c, d, m[i+13], 4, 681279174); - d = HH(d, a, b, c, m[i+ 0], 11, -358537222); - c = HH(c, d, a, b, m[i+ 3], 16, -722521979); - b = HH(b, c, d, a, m[i+ 6], 23, 76029189); - a = HH(a, b, c, d, m[i+ 9], 4, -640364487); - d = HH(d, a, b, c, m[i+12], 11, -421815835); - c = HH(c, d, a, b, m[i+15], 16, 530742520); - b = HH(b, c, d, a, m[i+ 2], 23, -995338651); - - a = II(a, b, c, d, m[i+ 0], 6, -198630844); - d = II(d, a, b, c, m[i+ 7], 10, 1126891415); - c = II(c, d, a, b, m[i+14], 15, -1416354905); - b = II(b, c, d, a, m[i+ 5], 21, -57434055); - a = II(a, b, c, d, m[i+12], 6, 1700485571); - d = II(d, a, b, c, m[i+ 3], 10, -1894986606); - c = II(c, d, a, b, m[i+10], 15, -1051523); - b = II(b, c, d, a, m[i+ 1], 21, -2054922799); - a = II(a, b, c, d, m[i+ 8], 6, 1873313359); - d = II(d, a, b, c, m[i+15], 10, -30611744); - c = II(c, d, a, b, m[i+ 6], 15, -1560198380); - b = II(b, c, d, a, m[i+13], 21, 1309151649); - a = II(a, b, c, d, m[i+ 4], 6, -145523070); - d = II(d, a, b, c, m[i+11], 10, -1120210379); - c = II(c, d, a, b, m[i+ 2], 15, 718787259); - b = II(b, c, d, a, m[i+ 9], 21, -343485551); - - a = (a + aa) >>> 0; - b = (b + bb) >>> 0; - c = (c + cc) >>> 0; - d = (d + dd) >>> 0; - } - - return crypt.endian([a, b, c, d]); - }; - - // Auxiliary functions - md5._ff = function (a, b, c, d, x, s, t) { - var n = a + (b & c | ~b & d) + (x >>> 0) + t; - return ((n << s) | (n >>> (32 - s))) + b; - }; - md5._gg = function (a, b, c, d, x, s, t) { - var n = a + (b & d | c & ~d) + (x >>> 0) + t; - return ((n << s) | (n >>> (32 - s))) + b; - }; - md5._hh = function (a, b, c, d, x, s, t) { - var n = a + (b ^ c ^ d) + (x >>> 0) + t; - return ((n << s) | (n >>> (32 - s))) + b; - }; - md5._ii = function (a, b, c, d, x, s, t) { - var n = a + (c ^ (b | ~d)) + (x >>> 0) + t; - return ((n << s) | (n >>> (32 - s))) + b; - }; - - // Package private blocksize - md5._blocksize = 16; - md5._digestsize = 16; - - module.exports = function (message, options) { - if (message === undefined || message === null) - throw new Error('Illegal argument ' + message); - - var digestbytes = crypt.wordsToBytes(md5(message, options)); - return options && options.asBytes ? digestbytes : - options && options.asString ? bin.bytesToString(digestbytes) : - crypt.bytesToHex(digestbytes); - }; - -})(); + var bg = moment.defineLocale('bg', { + months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split( + '_' + ), + monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), + weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split( + '_' + ), + weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'), + weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Днес в] LT', + nextDay: '[Утре в] LT', + nextWeek: 'dddd [в] LT', + lastDay: '[Вчера в] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[Миналата] dddd [в] LT'; + case 1: + case 2: + case 4: + case 5: + return '[Миналия] dddd [в] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'след %s', + past: 'преди %s', + s: 'няколко секунди', + ss: '%d секунди', + m: 'минута', + mm: '%d минути', + h: 'час', + hh: '%d часа', + d: 'ден', + dd: '%d дена', + w: 'седмица', + ww: '%d седмици', + M: 'месец', + MM: '%d месеца', + y: 'година', + yy: '%d години', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return bg; + +}))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/af.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/af.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/bm.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/bm.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2242674__) { //! moment.js locale configuration -//! locale : Afrikaans [af] -//! author : Werner Mollentze : https://github.com/wernerm +//! locale : Bambara [bm] +//! author : Estelle Comment : https://github.com/estellecomment ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2242674__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var af = moment.defineLocale('af', { - months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), - weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split( + var bm = moment.defineLocale('bm', { + months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split( '_' ), - weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), - weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), - meridiemParse: /vm|nm/i, - isPM: function (input) { - return /^nm$/i.test(input); - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'vm' : 'VM'; - } else { - return isLower ? 'nm' : 'NM'; - } - }, + monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'), + weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), + weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'), + weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', + LL: 'MMMM [tile] D [san] YYYY', + LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', + LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', }, calendar: { - sameDay: '[Vandag om] LT', - nextDay: '[Môre om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[Gister om] LT', - lastWeek: '[Laas] dddd [om] LT', + sameDay: '[Bi lɛrɛ] LT', + nextDay: '[Sini lɛrɛ] LT', + nextWeek: 'dddd [don lɛrɛ] LT', + lastDay: '[Kunu lɛrɛ] LT', + lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT', sameElse: 'L', }, relativeTime: { - future: 'oor %s', - past: '%s gelede', - s: "'n paar sekondes", - ss: '%d sekondes', - m: "'n minuut", - mm: '%d minute', - h: "'n uur", - hh: '%d ure', - d: "'n dag", - dd: '%d dae', - M: "'n maand", - MM: '%d maande', - y: "'n jaar", - yy: '%d jaar', - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal: function (number) { - return ( - number + - (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') - ); // Thanks to Joris Röling : https://github.com/jjupiter + future: '%s kɔnɔ', + past: 'a bɛ %s bɔ', + s: 'sanga dama dama', + ss: 'sekondi %d', + m: 'miniti kelen', + mm: 'miniti %d', + h: 'lɛrɛ kelen', + hh: 'lɛrɛ %d', + d: 'tile kelen', + dd: 'tile %d', + M: 'kalo kelen', + MM: 'kalo %d', + y: 'san kelen', + yy: 'san %d', }, week: { - dow: 1, // Maandag is die eerste dag van die week. - doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return af; + return bm; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-dz.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-dz.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/bn-bd.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/bn-bd.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2245124__) { //! moment.js locale configuration -//! locale : Arabic (Algeria) [ar-dz] -//! author : Amine Roukh: https://github.com/Amine27 -//! author : Abdel Said: https://github.com/abdelsaid -//! author : Ahmed Elkhatib -//! author : forabi https://github.com/forabi -//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem +//! locale : Bengali (Bangladesh) [bn-bd] +//! author : Asraf Hossain Patoary : https://github.com/ashwoolford ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2245124__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var pluralForm = function (n) { - return n === 0 - ? 0 - : n === 1 - ? 1 - : n === 2 - ? 2 - : n % 100 >= 3 && n % 100 <= 10 - ? 3 - : n % 100 >= 11 - ? 4 - : 5; - }, - plurals = { - s: [ - 'أقل من ثانية', - 'ثانية واحدة', - ['ثانيتان', 'ثانيتين'], - '%d ثوان', - '%d ثانية', - '%d ثانية', - ], - m: [ - 'أقل من دقيقة', - 'دقيقة واحدة', - ['دقيقتان', 'دقيقتين'], - '%d دقائق', - '%d دقيقة', - '%d دقيقة', - ], - h: [ - 'أقل من ساعة', - 'ساعة واحدة', - ['ساعتان', 'ساعتين'], - '%d ساعات', - '%d ساعة', - '%d ساعة', - ], - d: [ - 'أقل من يوم', - 'يوم واحد', - ['يومان', 'يومين'], - '%d أيام', - '%d يومًا', - '%d يوم', - ], - M: [ - 'أقل من شهر', - 'شهر واحد', - ['شهران', 'شهرين'], - '%d أشهر', - '%d شهرا', - '%d شهر', - ], - y: [ - 'أقل من عام', - 'عام واحد', - ['عامان', 'عامين'], - '%d أعوام', - '%d عامًا', - '%d عام', - ], - }, - pluralize = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm(number), - str = plurals[u][pluralForm(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; + var symbolMap = { + 1: '১', + 2: '২', + 3: '৩', + 4: '৪', + 5: '৫', + 6: '৬', + 7: '৭', + 8: '৮', + 9: '৯', + 0: '০', }, - months = [ - 'جانفي', - 'فيفري', - 'مارس', - 'أفريل', - 'ماي', - 'جوان', - 'جويلية', - 'أوت', - 'سبتمبر', - 'أكتوبر', - 'نوفمبر', - 'ديسمبر', - ]; + numberMap = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0', + }; - var arDz = moment.defineLocale('ar-dz', { - months: months, - monthsShort: months, - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, + var bnBd = moment.defineLocale('bn-bd', { + months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( + '_' + ), + monthsShort: + 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( + '_' + ), + weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( + '_' + ), + weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), + weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'D/\u200FM/\u200FYYYY', + LT: 'A h:mm সময়', + LTS: 'A h:mm:ss সময়', + L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ص|م/, - isPM: function (input) { - return 'م' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } + LLL: 'D MMMM YYYY, A h:mm সময়', + LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', }, calendar: { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', + sameDay: '[আজ] LT', + nextDay: '[আগামীকাল] LT', + nextWeek: 'dddd, LT', + lastDay: '[গতকাল] LT', + lastWeek: '[গত] dddd, LT', sameElse: 'L', }, relativeTime: { - future: 'بعد %s', - past: 'منذ %s', - s: pluralize('s'), - ss: pluralize('s'), - m: pluralize('m'), - mm: pluralize('m'), - h: pluralize('h'), - hh: pluralize('h'), - d: pluralize('d'), - dd: pluralize('d'), - M: pluralize('M'), - MM: pluralize('M'), - y: pluralize('y'), - yy: pluralize('y'), + future: '%s পরে', + past: '%s আগে', + s: 'কয়েক সেকেন্ড', + ss: '%d সেকেন্ড', + m: 'এক মিনিট', + mm: '%d মিনিট', + h: 'এক ঘন্টা', + hh: '%d ঘন্টা', + d: 'এক দিন', + dd: '%d দিন', + M: 'এক মাস', + MM: '%d মাস', + y: 'এক বছর', + yy: '%d বছর', + }, + preparse: function (string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return numberMap[match]; + }); }, postformat: function (string) { - return string.replace(/,/g, '،'); + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + + meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'রাত') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ভোর') { + return hour; + } else if (meridiem === 'সকাল') { + return hour; + } else if (meridiem === 'দুপুর') { + return hour >= 3 ? hour : hour + 12; + } else if (meridiem === 'বিকাল') { + return hour + 12; + } else if (meridiem === 'সন্ধ্যা') { + return hour + 12; + } + }, + + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'রাত'; + } else if (hour < 6) { + return 'ভোর'; + } else if (hour < 12) { + return 'সকাল'; + } else if (hour < 15) { + return 'দুপুর'; + } else if (hour < 18) { + return 'বিকাল'; + } else if (hour < 20) { + return 'সন্ধ্যা'; + } else { + return 'রাত'; + } }, week: { dow: 0, // Sunday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + doy: 6, // The week that contains Jan 6th is the first week of the year. }, }); - return arDz; + return bnBd; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-kw.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-kw.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/bn.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/bn.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2249635__) { //! moment.js locale configuration -//! locale : Arabic (Kuwait) [ar-kw] -//! author : Nusret Parlak: https://github.com/nusretparlak +//! locale : Bengali [bn] +//! author : Kaushik Gandhi : https://github.com/kaushikgandhi ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2249635__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var arKw = moment.defineLocale('ar-kw', { - months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + var symbolMap = { + 1: '১', + 2: '২', + 3: '৩', + 4: '৪', + 5: '৫', + 6: '৬', + 7: '৭', + 8: '৮', + 9: '৯', + 0: '০', + }, + numberMap = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0', + }; + + var bn = moment.defineLocale('bn', { + months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( '_' ), - monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + monthsShort: + 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( + '_' + ), + weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( '_' ), - weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, + weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), + weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', + LT: 'A h:mm সময়', + LTS: 'A h:mm:ss সময়', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', + LLL: 'D MMMM YYYY, A h:mm সময়', + LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', }, calendar: { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', + sameDay: '[আজ] LT', + nextDay: '[আগামীকাল] LT', + nextWeek: 'dddd, LT', + lastDay: '[গতকাল] LT', + lastWeek: '[গত] dddd, LT', sameElse: 'L', }, relativeTime: { - future: 'في %s', - past: 'منذ %s', - s: 'ثوان', - ss: '%d ثانية', - m: 'دقيقة', - mm: '%d دقائق', - h: 'ساعة', - hh: '%d ساعات', - d: 'يوم', - dd: '%d أيام', - M: 'شهر', - MM: '%d أشهر', - y: 'سنة', - yy: '%d سنوات', + future: '%s পরে', + past: '%s আগে', + s: 'কয়েক সেকেন্ড', + ss: '%d সেকেন্ড', + m: 'এক মিনিট', + mm: '%d মিনিট', + h: 'এক ঘন্টা', + hh: '%d ঘন্টা', + d: 'এক দিন', + dd: '%d দিন', + M: 'এক মাস', + MM: '%d মাস', + y: 'এক বছর', + yy: '%d বছর', + }, + preparse: function (string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'রাত' && hour >= 4) || + (meridiem === 'দুপুর' && hour < 5) || + meridiem === 'বিকাল' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'রাত'; + } else if (hour < 10) { + return 'সকাল'; + } else if (hour < 17) { + return 'দুপুর'; + } else if (hour < 20) { + return 'বিকাল'; + } else { + return 'রাত'; + } }, week: { dow: 0, // Sunday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. + doy: 6, // The week that contains Jan 6th is the first week of the year. }, }); - return arKw; + return bn; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-ly.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-ly.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/bo.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/bo.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2253727__) { //! moment.js locale configuration -//! locale : Arabic (Lybia) [ar-ly] -//! author : Ali Hmer: https://github.com/kikoanis +//! locale : Tibetan [bo] +//! author : Thupten N. Chakrishar : https://github.com/vajradog ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2253727__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { - 1: '1', - 2: '2', - 3: '3', - 4: '4', - 5: '5', - 6: '6', - 7: '7', - 8: '8', - 9: '9', - 0: '0', - }, - pluralForm = function (n) { - return n === 0 - ? 0 - : n === 1 - ? 1 - : n === 2 - ? 2 - : n % 100 >= 3 && n % 100 <= 10 - ? 3 - : n % 100 >= 11 - ? 4 - : 5; - }, - plurals = { - s: [ - 'أقل من ثانية', - 'ثانية واحدة', - ['ثانيتان', 'ثانيتين'], - '%d ثوان', - '%d ثانية', - '%d ثانية', - ], - m: [ - 'أقل من دقيقة', - 'دقيقة واحدة', - ['دقيقتان', 'دقيقتين'], - '%d دقائق', - '%d دقيقة', - '%d دقيقة', - ], - h: [ - 'أقل من ساعة', - 'ساعة واحدة', - ['ساعتان', 'ساعتين'], - '%d ساعات', - '%d ساعة', - '%d ساعة', - ], - d: [ - 'أقل من يوم', - 'يوم واحد', - ['يومان', 'يومين'], - '%d أيام', - '%d يومًا', - '%d يوم', - ], - M: [ - 'أقل من شهر', - 'شهر واحد', - ['شهران', 'شهرين'], - '%d أشهر', - '%d شهرا', - '%d شهر', - ], - y: [ - 'أقل من عام', - 'عام واحد', - ['عامان', 'عامين'], - '%d أعوام', - '%d عامًا', - '%d عام', - ], - }, - pluralize = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm(number), - str = plurals[u][pluralForm(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; + 1: '༡', + 2: '༢', + 3: '༣', + 4: '༤', + 5: '༥', + 6: '༦', + 7: '༧', + 8: '༨', + 9: '༩', + 0: '༠', }, - months = [ - 'يناير', - 'فبراير', - 'مارس', - 'أبريل', - 'مايو', - 'يونيو', - 'يوليو', - 'أغسطس', - 'سبتمبر', - 'أكتوبر', - 'نوفمبر', - 'ديسمبر', - ]; + numberMap = { + '༡': '1', + '༢': '2', + '༣': '3', + '༤': '4', + '༥': '5', + '༦': '6', + '༧': '7', + '༨': '8', + '༩': '9', + '༠': '0', + }; - var arLy = moment.defineLocale('ar-ly', { - months: months, - monthsShort: months, - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, + var bo = moment.defineLocale('bo', { + months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split( + '_' + ), + monthsShort: + 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split( + '_' + ), + monthsShortRegex: /^(ཟླ་\d{1,2})/, + monthsParseExact: true, + weekdays: + 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split( + '_' + ), + weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split( + '_' + ), + weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'), longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'D/\u200FM/\u200FYYYY', + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ص|م/, - isPM: function (input) { - return 'م' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', }, calendar: { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', + sameDay: '[དི་རིང] LT', + nextDay: '[སང་ཉིན] LT', + nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT', + lastDay: '[ཁ་སང] LT', + lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT', sameElse: 'L', }, relativeTime: { - future: 'بعد %s', - past: 'منذ %s', - s: pluralize('s'), - ss: pluralize('s'), - m: pluralize('m'), - mm: pluralize('m'), - h: pluralize('h'), - hh: pluralize('h'), - d: pluralize('d'), - dd: pluralize('d'), - M: pluralize('M'), - MM: pluralize('M'), - y: pluralize('y'), - yy: pluralize('y'), + future: '%s ལ་', + past: '%s སྔན་ལ', + s: 'ལམ་སང', + ss: '%d སྐར་ཆ།', + m: 'སྐར་མ་གཅིག', + mm: '%d སྐར་མ', + h: 'ཆུ་ཚོད་གཅིག', + hh: '%d ཆུ་ཚོད', + d: 'ཉིན་གཅིག', + dd: '%d ཉིན་', + M: 'ཟླ་བ་གཅིག', + MM: '%d ཟླ་བ', + y: 'ལོ་གཅིག', + yy: '%d ལོ', }, preparse: function (string) { - return string.replace(/،/g, ','); + return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { + return numberMap[match]; + }); }, postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap[match]; - }) - .replace(/,/g, '،'); + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'མཚན་མོ' && hour >= 4) || + (meridiem === 'ཉིན་གུང' && hour < 5) || + meridiem === 'དགོང་དག' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'མཚན་མོ'; + } else if (hour < 10) { + return 'ཞོགས་ཀས'; + } else if (hour < 17) { + return 'ཉིན་གུང'; + } else if (hour < 20) { + return 'དགོང་དག'; + } else { + return 'མཚན་མོ'; + } }, week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. }, }); - return arLy; + return bo; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-ma.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-ma.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/br.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/br.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2258072__) { //! moment.js locale configuration -//! locale : Arabic (Morocco) [ar-ma] -//! author : ElFadili Yassine : https://github.com/ElFadiliY -//! author : Abdel Said : https://github.com/abdelsaid +//! locale : Breton [br] +//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2258072__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var arMa = moment.defineLocale('ar-ma', { - months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( - '_' - ), - monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + function relativeTimeWithMutation(number, withoutSuffix, key) { + var format = { + mm: 'munutenn', + MM: 'miz', + dd: 'devezh', + }; + return number + ' ' + mutation(format[key], number); + } + function specialMutationForYears(number) { + switch (lastNumber(number)) { + case 1: + case 3: + case 4: + case 5: + case 9: + return number + ' bloaz'; + default: + return number + ' vloaz'; + } + } + function lastNumber(number) { + if (number > 9) { + return lastNumber(number % 10); + } + return number; + } + function mutation(text, number) { + if (number === 2) { + return softMutation(text); + } + return text; + } + function softMutation(text) { + var mutationTable = { + m: 'v', + b: 'v', + d: 'z', + }; + if (mutationTable[text.charAt(0)] === undefined) { + return text; + } + return mutationTable[text.charAt(0)] + text.substring(1); + } + + var monthsParse = [ + /^gen/i, + /^c[ʼ\']hwe/i, + /^meu/i, + /^ebr/i, + /^mae/i, + /^(mez|eve)/i, + /^gou/i, + /^eos/i, + /^gwe/i, + /^her/i, + /^du/i, + /^ker/i, + ], + monthsRegex = + /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + monthsStrictRegex = + /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, + monthsShortStrictRegex = + /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + fullWeekdaysParse = [ + /^sul/i, + /^lun/i, + /^meurzh/i, + /^merc[ʼ\']her/i, + /^yaou/i, + /^gwener/i, + /^sadorn/i, + ], + shortWeekdaysParse = [ + /^Sul/i, + /^Lun/i, + /^Meu/i, + /^Mer/i, + /^Yao/i, + /^Gwe/i, + /^Sad/i, + ], + minWeekdaysParse = [ + /^Su/i, + /^Lu/i, + /^Me([^r]|$)/i, + /^Mer/i, + /^Ya/i, + /^Gw/i, + /^Sa/i, + ]; + + var br = moment.defineLocale('br', { + months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( '_' ), - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, + monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), + weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'), + weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), + weekdaysParse: minWeekdaysParse, + fullWeekdaysParse: fullWeekdaysParse, + shortWeekdaysParse: shortWeekdaysParse, + minWeekdaysParse: minWeekdaysParse, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', + LL: 'D [a viz] MMMM YYYY', + LLL: 'D [a viz] MMMM YYYY HH:mm', + LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', }, calendar: { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', + sameDay: '[Hiziv da] LT', + nextDay: '[Warcʼhoazh da] LT', + nextWeek: 'dddd [da] LT', + lastDay: '[Decʼh da] LT', + lastWeek: 'dddd [paset da] LT', sameElse: 'L', }, relativeTime: { - future: 'في %s', - past: 'منذ %s', - s: 'ثوان', - ss: '%d ثانية', - m: 'دقيقة', - mm: '%d دقائق', - h: 'ساعة', - hh: '%d ساعات', - d: 'يوم', - dd: '%d أيام', - M: 'شهر', - MM: '%d أشهر', - y: 'سنة', - yy: '%d سنوات', + future: 'a-benn %s', + past: '%s ʼzo', + s: 'un nebeud segondennoù', + ss: '%d eilenn', + m: 'ur vunutenn', + mm: relativeTimeWithMutation, + h: 'un eur', + hh: '%d eur', + d: 'un devezh', + dd: relativeTimeWithMutation, + M: 'ur miz', + MM: relativeTimeWithMutation, + y: 'ur bloaz', + yy: specialMutationForYears, + }, + dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, + ordinal: function (number) { + var output = number === 1 ? 'añ' : 'vet'; + return number + output; }, week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, + meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn + isPM: function (token) { + return token === 'g.m.'; + }, + meridiem: function (hour, minute, isLower) { + return hour < 12 ? 'a.m.' : 'g.m.'; + }, }); - return arMa; + return br; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-sa.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-sa.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/bs.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/bs.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2263817__) { //! moment.js locale configuration -//! locale : Arabic (Saudi Arabia) [ar-sa] -//! author : Suhail Alkowaileet : https://github.com/xsoh +//! locale : Bosnian [bs] +//! author : Nedim Cholich : https://github.com/frontyard +//! based on (hr) translation by Bojan Marković ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2263817__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var symbolMap = { - 1: '١', - 2: '٢', - 3: '٣', - 4: '٤', - 5: '٥', - 6: '٦', - 7: '٧', - 8: '٨', - 9: '٩', - 0: '٠', - }, - numberMap = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0', - }; + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } - var arSa = moment.defineLocale('ar-sa', { - months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + var bs = moment.defineLocale('bs', { + months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split( '_' ), - monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( '_' ), - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), weekdaysParseExact: true, longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ص|م/, - isPM: function (input) { - return 'م' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', }, calendar: { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[jučer u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + return '[prošlu] dddd [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, sameElse: 'L', }, relativeTime: { - future: 'في %s', - past: 'منذ %s', - s: 'ثوان', - ss: '%d ثانية', - m: 'دقيقة', - mm: '%d دقائق', - h: 'ساعة', - hh: '%d ساعات', - d: 'يوم', - dd: '%d أيام', - M: 'شهر', - MM: '%d أشهر', - y: 'سنة', - yy: '%d سنوات', - }, - preparse: function (string) { - return string - .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap[match]; - }) - .replace(/،/g, ','); - }, - postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap[match]; - }) - .replace(/,/g, '،'); + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. }, }); - return arSa; + return bs; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-tn.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-tn.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ca.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ca.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2269436__) { //! moment.js locale configuration -//! locale : Arabic (Tunisia) [ar-tn] -//! author : Nader Toukabri : https://github.com/naderio +//! locale : Catalan [ca] +//! author : Juan G. Hurtado : https://github.com/juanghurtado ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2269436__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var arTn = moment.defineLocale('ar-tn', { - months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( - '_' - ), - monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( - '_' - ), - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + var ca = moment.defineLocale('ca', { + months: { + standalone: + 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( + '_' + ), + format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), weekdaysParseExact: true, longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', + LT: 'H:mm', + LTS: 'H:mm:ss', L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a les] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', + llll: 'ddd D MMM YYYY, H:mm', }, calendar: { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', + sameDay: function () { + return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextDay: function () { + return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastDay: function () { + return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [passat a ' + + (this.hours() !== 1 ? 'les' : 'la') + + '] LT' + ); + }, sameElse: 'L', }, relativeTime: { - future: 'في %s', - past: 'منذ %s', - s: 'ثوان', - ss: '%d ثانية', - m: 'دقيقة', - mm: '%d دقائق', - h: 'ساعة', - hh: '%d ساعات', - d: 'يوم', - dd: '%d أيام', - M: 'شهر', - MM: '%d أشهر', - y: 'سنة', - yy: '%d سنوات', + future: "d'aquí %s", + past: 'fa %s', + s: 'uns segons', + ss: '%d segons', + m: 'un minut', + mm: '%d minuts', + h: 'una hora', + hh: '%d hores', + d: 'un dia', + dd: '%d dies', + M: 'un mes', + MM: '%d mesos', + y: 'un any', + yy: '%d anys', + }, + dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, + ordinal: function (number, period) { + var output = + number === 1 + ? 'r' + : number === 2 + ? 'n' + : number === 3 + ? 'r' + : number === 4 + ? 't' + : 'è'; + if (period === 'w' || period === 'W') { + output = 'a'; + } + return number + output; }, week: { dow: 1, // Monday is the first day of the week. @@ -58563,1555 +65330,1336 @@ module.exports = uniqBy; }, }); - return arTn; + return ca; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/cs.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/cs.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2273420__) { //! moment.js locale configuration -//! locale : Arabic [ar] -//! author : Abdel Said: https://github.com/abdelsaid -//! author : Ahmed Elkhatib -//! author : forabi https://github.com/forabi +//! locale : Czech [cs] +//! author : petrbela : https://github.com/petrbela ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2273420__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var symbolMap = { - 1: '١', - 2: '٢', - 3: '٣', - 4: '٤', - 5: '٥', - 6: '٦', - 7: '٧', - 8: '٨', - 9: '٩', - 0: '٠', - }, - numberMap = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0', - }, - pluralForm = function (n) { - return n === 0 - ? 0 - : n === 1 - ? 1 - : n === 2 - ? 2 - : n % 100 >= 3 && n % 100 <= 10 - ? 3 - : n % 100 >= 11 - ? 4 - : 5; + var months = { + format: 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split( + '_' + ), + standalone: + 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split( + '_' + ), }, - plurals = { - s: [ - 'أقل من ثانية', - 'ثانية واحدة', - ['ثانيتان', 'ثانيتين'], - '%d ثوان', - '%d ثانية', - '%d ثانية', - ], - m: [ - 'أقل من دقيقة', - 'دقيقة واحدة', - ['دقيقتان', 'دقيقتين'], - '%d دقائق', - '%d دقيقة', - '%d دقيقة', - ], - h: [ - 'أقل من ساعة', - 'ساعة واحدة', - ['ساعتان', 'ساعتين'], - '%d ساعات', - '%d ساعة', - '%d ساعة', - ], - d: [ - 'أقل من يوم', - 'يوم واحد', - ['يومان', 'يومين'], - '%d أيام', - '%d يومًا', - '%d يوم', - ], - M: [ - 'أقل من شهر', - 'شهر واحد', - ['شهران', 'شهرين'], - '%d أشهر', - '%d شهرا', - '%d شهر', - ], - y: [ - 'أقل من عام', - 'عام واحد', - ['عامان', 'عامين'], - '%d أعوام', - '%d عامًا', - '%d عام', - ], + monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'), + monthsParse = [ + /^led/i, + /^úno/i, + /^bře/i, + /^dub/i, + /^kvě/i, + /^(čvn|červen$|června)/i, + /^(čvc|červenec|července)/i, + /^srp/i, + /^zář/i, + /^říj/i, + /^lis/i, + /^pro/i, + ], + // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. + // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. + monthsRegex = + /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i; + + function plural(n) { + return n > 1 && n < 5 && ~~(n / 10) !== 1; + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'sekundy' : 'sekund'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'minuty' : 'minut'); + } else { + return result + 'minutami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hodin'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'den' : 'dnem'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dny' : 'dní'); + } else { + return result + 'dny'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'měsíc' : 'měsícem'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'měsíce' : 'měsíců'); + } else { + return result + 'měsíci'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokem'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'let'); + } else { + return result + 'lety'; + } + } + } + + var cs = moment.defineLocale('cs', { + months: months, + monthsShort: monthsShort, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. + // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. + monthsStrictRegex: + /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i, + monthsShortStrictRegex: + /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'), + weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'), + weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + l: 'D. M. YYYY', }, - pluralize = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm(number), - str = plurals[u][pluralForm(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; + calendar: { + sameDay: '[dnes v] LT', + nextDay: '[zítra v] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v neděli v] LT'; + case 1: + case 2: + return '[v] dddd [v] LT'; + case 3: + return '[ve středu v] LT'; + case 4: + return '[ve čtvrtek v] LT'; + case 5: + return '[v pátek v] LT'; + case 6: + return '[v sobotu v] LT'; } - return str.replace(/%d/i, number); - }; + }, + lastDay: '[včera v] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulou neděli v] LT'; + case 1: + case 2: + return '[minulé] dddd [v] LT'; + case 3: + return '[minulou středu v] LT'; + case 4: + case 5: + return '[minulý] dddd [v] LT'; + case 6: + return '[minulou sobotu v] LT'; + } + }, + sameElse: 'L', }, - months = [ - 'يناير', - 'فبراير', - 'مارس', - 'أبريل', - 'مايو', - 'يونيو', - 'يوليو', - 'أغسطس', - 'سبتمبر', - 'أكتوبر', - 'نوفمبر', - 'ديسمبر', - ]; + relativeTime: { + future: 'za %s', + past: 'před %s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); - var ar = moment.defineLocale('ar', { - months: months, - monthsShort: months, - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact: true, + return cs; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/cv.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/cv.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2281270__) { + +//! moment.js locale configuration +//! locale : Chuvash [cv] +//! author : Anatoly Mironov : https://github.com/mirontoli + +;(function (global, factory) { + true ? factory(__nested_webpack_require_2281270__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var cv = moment.defineLocale('cv', { + months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split( + '_' + ), + monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), + weekdays: + 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split( + '_' + ), + weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), + weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'D/\u200FM/\u200FYYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ص|م/, - isPM: function (input) { - return 'م' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } + L: 'DD-MM-YYYY', + LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', + LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', }, calendar: { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', + sameDay: '[Паян] LT [сехетре]', + nextDay: '[Ыран] LT [сехетре]', + lastDay: '[Ӗнер] LT [сехетре]', + nextWeek: '[Ҫитес] dddd LT [сехетре]', + lastWeek: '[Иртнӗ] dddd LT [сехетре]', sameElse: 'L', }, relativeTime: { - future: 'بعد %s', - past: 'منذ %s', - s: pluralize('s'), - ss: pluralize('s'), - m: pluralize('m'), - mm: pluralize('m'), - h: pluralize('h'), - hh: pluralize('h'), - d: pluralize('d'), - dd: pluralize('d'), - M: pluralize('M'), - MM: pluralize('M'), - y: pluralize('y'), - yy: pluralize('y'), - }, - preparse: function (string) { - return string - .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap[match]; - }) - .replace(/،/g, ','); - }, - postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap[match]; - }) - .replace(/,/g, '،'); + future: function (output) { + var affix = /сехет$/i.exec(output) + ? 'рен' + : /ҫул$/i.exec(output) + ? 'тан' + : 'ран'; + return output + affix; + }, + past: '%s каялла', + s: 'пӗр-ик ҫеккунт', + ss: '%d ҫеккунт', + m: 'пӗр минут', + mm: '%d минут', + h: 'пӗр сехет', + hh: '%d сехет', + d: 'пӗр кун', + dd: '%d кун', + M: 'пӗр уйӑх', + MM: '%d уйӑх', + y: 'пӗр ҫул', + yy: '%d ҫул', }, + dayOfMonthOrdinalParse: /\d{1,2}-мӗш/, + ordinal: '%d-мӗш', week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. }, }); - return ar; + return cv; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/az.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/az.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/cy.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/cy.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2284039__) { //! moment.js locale configuration -//! locale : Azerbaijani [az] -//! author : topchiyev : https://github.com/topchiyev +//! locale : Welsh [cy] +//! author : Robert Allen : https://github.com/robgallen +//! author : https://github.com/ryangreaves ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2284039__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var suffixes = { - 1: '-inci', - 5: '-inci', - 8: '-inci', - 70: '-inci', - 80: '-inci', - 2: '-nci', - 7: '-nci', - 20: '-nci', - 50: '-nci', - 3: '-üncü', - 4: '-üncü', - 100: '-üncü', - 6: '-ncı', - 9: '-uncu', - 10: '-uncu', - 30: '-uncu', - 60: '-ıncı', - 90: '-ıncı', - }; - - var az = moment.defineLocale('az', { - months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( + var cy = moment.defineLocale('cy', { + months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( '_' ), - monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), - weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split( + monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( '_' ), - weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), - weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), + weekdays: + 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( + '_' + ), + weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), weekdaysParseExact: true, + // time formats are the same as en-gb longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', + L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[bugün saat] LT', - nextDay: '[sabah saat] LT', - nextWeek: '[gələn həftə] dddd [saat] LT', - lastDay: '[dünən] LT', - lastWeek: '[keçən həftə] dddd [saat] LT', + sameDay: '[Heddiw am] LT', + nextDay: '[Yfory am] LT', + nextWeek: 'dddd [am] LT', + lastDay: '[Ddoe am] LT', + lastWeek: 'dddd [diwethaf am] LT', sameElse: 'L', }, relativeTime: { - future: '%s sonra', - past: '%s əvvəl', - s: 'bir neçə saniyə', - ss: '%d saniyə', - m: 'bir dəqiqə', - mm: '%d dəqiqə', - h: 'bir saat', - hh: '%d saat', - d: 'bir gün', - dd: '%d gün', - M: 'bir ay', - MM: '%d ay', - y: 'bir il', - yy: '%d il', - }, - meridiemParse: /gecə|səhər|gündüz|axşam/, - isPM: function (input) { - return /^(gündüz|axşam)$/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'gecə'; - } else if (hour < 12) { - return 'səhər'; - } else if (hour < 17) { - return 'gündüz'; - } else { - return 'axşam'; - } + future: 'mewn %s', + past: '%s yn ôl', + s: 'ychydig eiliadau', + ss: '%d eiliad', + m: 'munud', + mm: '%d munud', + h: 'awr', + hh: '%d awr', + d: 'diwrnod', + dd: '%d diwrnod', + M: 'mis', + MM: '%d mis', + y: 'blwyddyn', + yy: '%d flynedd', }, - dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, + dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, + // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh ordinal: function (number) { - if (number === 0) { - // special case for zero - return number + '-ıncı'; + var b = number, + output = '', + lookup = [ + '', + 'af', + 'il', + 'ydd', + 'ydd', + 'ed', + 'ed', + 'ed', + 'fed', + 'fed', + 'fed', // 1af to 10fed + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'fed', // 11eg to 20fed + ]; + if (b > 20) { + if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { + output = 'fed'; // not 30ain, 70ain or 90ain + } else { + output = 'ain'; + } + } else if (b > 0) { + output = lookup[b]; } - var a = number % 10, - b = (number % 100) - a, - c = number >= 100 ? 100 : null; - return number + (suffixes[a] || suffixes[b] || suffixes[c]); + return number + output; }, week: { dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return az; + return cy; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/be.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/be.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/da.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/da.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2287820__) { //! moment.js locale configuration -//! locale : Belarusian [be] -//! author : Dmitry Demidov : https://github.com/demidov91 -//! author: Praleska: http://praleska.pro/ -//! Author : Menelion Elensúle : https://github.com/Oire +//! locale : Danish [da] +//! author : Ulrik Nielsen : https://github.com/mrbase ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2287820__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - function plural(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 - ? forms[0] - : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) - ? forms[1] - : forms[2]; - } - function relativeTimeWithPlural(number, withoutSuffix, key) { + var da = moment.defineLocale('da', { + months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'), + weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'på dddd [kl.] LT', + lastDay: '[i går kl.] LT', + lastWeek: '[i] dddd[s kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'få sekunder', + ss: '%d sekunder', + m: 'et minut', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dage', + M: 'en måned', + MM: '%d måneder', + y: 'et år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return da; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/de-at.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/de-at.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2290220__) { + +//! moment.js locale configuration +//! locale : German (Austria) [de-at] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elensúle: https://github.com/Oire +//! author : Martin Groller : https://github.com/MadMG +//! author : Mikolaj Dadela : https://github.com/mik01aj + +;(function (global, factory) { + true ? factory(__nested_webpack_require_2290220__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { var format = { - ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', - mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін', - hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін', - dd: 'дзень_дні_дзён', - MM: 'месяц_месяцы_месяцаў', - yy: 'год_гады_гадоў', + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], }; - if (key === 'm') { - return withoutSuffix ? 'хвіліна' : 'хвіліну'; - } else if (key === 'h') { - return withoutSuffix ? 'гадзіна' : 'гадзіну'; - } else { - return number + ' ' + plural(format[key], +number); - } + return withoutSuffix ? format[key][0] : format[key][1]; } - var be = moment.defineLocale('be', { - months: { - format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split( - '_' - ), - standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split( - '_' - ), - }, - monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split( + var deAt = moment.defineLocale('de-at', { + months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( '_' ), - weekdays: { - format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split( - '_' - ), - standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split( + monthsShort: + 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( '_' ), - isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/, - }, - weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), - weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY г.', - LLL: 'D MMMM YYYY г., HH:mm', - LLLL: 'dddd, D MMMM YYYY г., HH:mm', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', }, calendar: { - sameDay: '[Сёння ў] LT', - nextDay: '[Заўтра ў] LT', - lastDay: '[Учора ў] LT', - nextWeek: function () { - return '[У] dddd [ў] LT'; - }, - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 5: - case 6: - return '[У мінулую] dddd [ў] LT'; - case 1: - case 2: - case 4: - return '[У мінулы] dddd [ў] LT'; - } - }, + sameDay: '[heute um] LT [Uhr]', sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', }, relativeTime: { - future: 'праз %s', - past: '%s таму', - s: 'некалькі секунд', - m: relativeTimeWithPlural, - mm: relativeTimeWithPlural, - h: relativeTimeWithPlural, - hh: relativeTimeWithPlural, - d: 'дзень', - dd: relativeTimeWithPlural, - M: 'месяц', - MM: relativeTimeWithPlural, - y: 'год', - yy: relativeTimeWithPlural, - }, - meridiemParse: /ночы|раніцы|дня|вечара/, - isPM: function (input) { - return /^(дня|вечара)$/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'ночы'; - } else if (hour < 12) { - return 'раніцы'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечара'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - case 'w': - case 'W': - return (number % 10 === 2 || number % 10 === 3) && - number % 100 !== 12 && - number % 100 !== 13 - ? number + '-і' - : number + '-ы'; - case 'D': - return number + '-га'; - default: - return number; - } + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return be; + return deAt; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bg.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bg.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/de-ch.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/de-ch.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2293726__) { //! moment.js locale configuration -//! locale : Bulgarian [bg] -//! author : Krasen Borisov : https://github.com/kraz +//! locale : German (Switzerland) [de-ch] +//! author : sschueller : https://github.com/sschueller ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2293726__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var bg = moment.defineLocale('bg', { - months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split( - '_' - ), - monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), - weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split( + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + var deCh = moment.defineLocale('de-ch', { + months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( '_' ), - weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'), - weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + monthsShort: + 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'D.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY H:mm', - LLLL: 'dddd, D MMMM YYYY H:mm', + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', }, calendar: { - sameDay: '[Днес в] LT', - nextDay: '[Утре в] LT', - nextWeek: 'dddd [в] LT', - lastDay: '[Вчера в] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 6: - return '[Миналата] dddd [в] LT'; - case 1: - case 2: - case 4: - case 5: - return '[Миналия] dddd [в] LT'; - } - }, + sameDay: '[heute um] LT [Uhr]', sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', }, relativeTime: { - future: 'след %s', - past: 'преди %s', - s: 'няколко секунди', - ss: '%d секунди', - m: 'минута', - mm: '%d минути', - h: 'час', - hh: '%d часа', - d: 'ден', - dd: '%d дена', - w: 'седмица', - ww: '%d седмици', - M: 'месец', - MM: '%d месеца', - y: 'година', - yy: '%d години', - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, - ordinal: function (number) { - var lastDigit = number % 10, - last2Digits = number % 100; - if (number === 0) { - return number + '-ев'; - } else if (last2Digits === 0) { - return number + '-ен'; - } else if (last2Digits > 10 && last2Digits < 20) { - return number + '-ти'; - } else if (lastDigit === 1) { - return number + '-ви'; - } else if (lastDigit === 2) { - return number + '-ри'; - } else if (lastDigit === 7 || lastDigit === 8) { - return number + '-ми'; - } else { - return number + '-ти'; - } + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return bg; + return deCh; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bm.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bm.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/de.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/de.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2297058__) { //! moment.js locale configuration -//! locale : Bambara [bm] -//! author : Estelle Comment : https://github.com/estellecomment +//! locale : German [de] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elensúle: https://github.com/Oire +//! author : Mikolaj Dadela : https://github.com/mik01aj ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2297058__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var bm = moment.defineLocale('bm', { - months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split( + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + var de = moment.defineLocale('de', { + months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( '_' ), - monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'), - weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), - weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'), - weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), + monthsShort: + 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'MMMM [tile] D [san] YYYY', - LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', - LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', }, calendar: { - sameDay: '[Bi lɛrɛ] LT', - nextDay: '[Sini lɛrɛ] LT', - nextWeek: 'dddd [don lɛrɛ] LT', - lastDay: '[Kunu lɛrɛ] LT', - lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT', + sameDay: '[heute um] LT [Uhr]', sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', }, relativeTime: { - future: '%s kɔnɔ', - past: 'a bɛ %s bɔ', - s: 'sanga dama dama', - ss: 'sekondi %d', - m: 'miniti kelen', - mm: 'miniti %d', - h: 'lɛrɛ kelen', - hh: 'lɛrɛ %d', - d: 'tile kelen', - dd: 'tile %d', - M: 'kalo kelen', - MM: 'kalo %d', - y: 'san kelen', - yy: 'san %d', + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return bm; + return de; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bn-bd.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bn-bd.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/dv.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/dv.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2300477__) { //! moment.js locale configuration -//! locale : Bengali (Bangladesh) [bn-bd] -//! author : Asraf Hossain Patoary : https://github.com/ashwoolford +//! locale : Maldivian [dv] +//! author : Jawish Hameed : https://github.com/jawish ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2300477__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var symbolMap = { - 1: '১', - 2: '২', - 3: '৩', - 4: '৪', - 5: '৫', - 6: '৬', - 7: '৭', - 8: '৮', - 9: '৯', - 0: '০', - }, - numberMap = { - '১': '1', - '২': '2', - '৩': '3', - '৪': '4', - '৫': '5', - '৬': '6', - '৭': '7', - '৮': '8', - '৯': '9', - '০': '0', - }; + var months = [ + 'ޖެނުއަރީ', + 'ފެބްރުއަރީ', + 'މާރިޗު', + 'އޭޕްރީލު', + 'މޭ', + 'ޖޫން', + 'ޖުލައި', + 'އޯގަސްޓު', + 'ސެޕްޓެމްބަރު', + 'އޮކްޓޯބަރު', + 'ނޮވެމްބަރު', + 'ޑިސެމްބަރު', + ], + weekdays = [ + 'އާދިއްތަ', + 'ހޯމަ', + 'އަންގާރަ', + 'ބުދަ', + 'ބުރާސްފަތި', + 'ހުކުރު', + 'ހޮނިހިރު', + ]; - var bnBd = moment.defineLocale('bn-bd', { - months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( - '_' - ), - monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( - '_' - ), - weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( - '_' - ), - weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), - weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), + var dv = moment.defineLocale('dv', { + months: months, + monthsShort: months, + weekdays: weekdays, + weekdaysShort: weekdays, + weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'), longDateFormat: { - LT: 'A h:mm সময়', - LTS: 'A h:mm:ss সময়', - L: 'DD/MM/YYYY', + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/M/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm সময়', - LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /މކ|މފ/, + isPM: function (input) { + return 'މފ' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'މކ'; + } else { + return 'މފ'; + } }, calendar: { - sameDay: '[আজ] LT', - nextDay: '[আগামীকাল] LT', - nextWeek: 'dddd, LT', - lastDay: '[গতকাল] LT', - lastWeek: '[গত] dddd, LT', + sameDay: '[މިއަދު] LT', + nextDay: '[މާދަމާ] LT', + nextWeek: 'dddd LT', + lastDay: '[އިއްޔެ] LT', + lastWeek: '[ފާއިތުވި] dddd LT', sameElse: 'L', }, relativeTime: { - future: '%s পরে', - past: '%s আগে', - s: 'কয়েক সেকেন্ড', - ss: '%d সেকেন্ড', - m: 'এক মিনিট', - mm: '%d মিনিট', - h: 'এক ঘন্টা', - hh: '%d ঘন্টা', - d: 'এক দিন', - dd: '%d দিন', - M: 'এক মাস', - MM: '%d মাস', - y: 'এক বছর', - yy: '%d বছর', + future: 'ތެރޭގައި %s', + past: 'ކުރިން %s', + s: 'ސިކުންތުކޮޅެއް', + ss: 'd% ސިކުންތު', + m: 'މިނިޓެއް', + mm: 'މިނިޓު %d', + h: 'ގަޑިއިރެއް', + hh: 'ގަޑިއިރު %d', + d: 'ދުވަހެއް', + dd: 'ދުވަސް %d', + M: 'މަހެއް', + MM: 'މަސް %d', + y: 'އަހަރެއް', + yy: 'އަހަރު %d', }, preparse: function (string) { - return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { - return numberMap[match]; - }); + return string.replace(/،/g, ','); }, postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - - meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'রাত') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ভোর') { - return hour; - } else if (meridiem === 'সকাল') { - return hour; - } else if (meridiem === 'দুপুর') { - return hour >= 3 ? hour : hour + 12; - } else if (meridiem === 'বিকাল') { - return hour + 12; - } else if (meridiem === 'সন্ধ্যা') { - return hour + 12; - } - }, - - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'রাত'; - } else if (hour < 6) { - return 'ভোর'; - } else if (hour < 12) { - return 'সকাল'; - } else if (hour < 15) { - return 'দুপুর'; - } else if (hour < 18) { - return 'বিকাল'; - } else if (hour < 20) { - return 'সন্ধ্যা'; - } else { - return 'রাত'; - } + return string.replace(/,/g, '،'); }, week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. + dow: 7, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. }, }); - return bnBd; + return dv; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bn.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bn.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/el.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/el.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2303543__) { //! moment.js locale configuration -//! locale : Bengali [bn] -//! author : Kaushik Gandhi : https://github.com/kaushikgandhi +//! locale : Greek [el] +//! author : Aggelos Karalias : https://github.com/mehiel ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2303543__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var symbolMap = { - 1: '১', - 2: '২', - 3: '৩', - 4: '৪', - 5: '৫', - 6: '৬', - 7: '৭', - 8: '৮', - 9: '৯', - 0: '০', - }, - numberMap = { - '১': '1', - '২': '2', - '৩': '3', - '৪': '4', - '৫': '5', - '৬': '6', - '৭': '7', - '৮': '8', - '৯': '9', - '০': '0', - }; + function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); + } - var bn = moment.defineLocale('bn', { - months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( - '_' - ), - monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( - '_' - ), - weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( - '_' - ), - weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), - weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), - longDateFormat: { - LT: 'A h:mm সময়', - LTS: 'A h:mm:ss সময়', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm সময়', - LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', - }, - calendar: { - sameDay: '[আজ] LT', - nextDay: '[আগামীকাল] LT', - nextWeek: 'dddd, LT', - lastDay: '[গতকাল] LT', - lastWeek: '[গত] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s পরে', - past: '%s আগে', - s: 'কয়েক সেকেন্ড', - ss: '%d সেকেন্ড', - m: 'এক মিনিট', - mm: '%d মিনিট', - h: 'এক ঘন্টা', - hh: '%d ঘন্টা', - d: 'এক দিন', - dd: '%d দিন', - M: 'এক মাস', - MM: '%d মাস', - y: 'এক বছর', - yy: '%d বছর', - }, - preparse: function (string) { - return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ( - (meridiem === 'রাত' && hour >= 4) || - (meridiem === 'দুপুর' && hour < 5) || - meridiem === 'বিকাল' + var el = moment.defineLocale('el', { + monthsNominativeEl: + 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split( + '_' + ), + monthsGenitiveEl: + 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split( + '_' + ), + months: function (momentToFormat, format) { + if (!momentToFormat) { + return this._monthsNominativeEl; + } else if ( + typeof format === 'string' && + /D/.test(format.substring(0, format.indexOf('MMMM'))) ) { - return hour + 12; + // if there is a day number before 'MMMM' + return this._monthsGenitiveEl[momentToFormat.month()]; } else { - return hour; + return this._monthsNominativeEl[momentToFormat.month()]; } }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'রাত'; - } else if (hour < 10) { - return 'সকাল'; - } else if (hour < 17) { - return 'দুপুর'; - } else if (hour < 20) { - return 'বিকাল'; + monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), + weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split( + '_' + ), + weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), + weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'μμ' : 'ΜΜ'; } else { - return 'রাত'; + return isLower ? 'πμ' : 'ΠΜ'; + } + }, + isPM: function (input) { + return (input + '').toLowerCase()[0] === 'μ'; + }, + meridiemParse: /[ΠΜ]\.?Μ?\.?/i, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendarEl: { + sameDay: '[Σήμερα {}] LT', + nextDay: '[Αύριο {}] LT', + nextWeek: 'dddd [{}] LT', + lastDay: '[Χθες {}] LT', + lastWeek: function () { + switch (this.day()) { + case 6: + return '[το προηγούμενο] dddd [{}] LT'; + default: + return '[την προηγούμενη] dddd [{}] LT'; + } + }, + sameElse: 'L', + }, + calendar: function (key, mom) { + var output = this._calendarEl[key], + hours = mom && mom.hours(); + if (isFunction(output)) { + output = output.apply(mom); } + return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις'); + }, + relativeTime: { + future: 'σε %s', + past: '%s πριν', + s: 'λίγα δευτερόλεπτα', + ss: '%d δευτερόλεπτα', + m: 'ένα λεπτό', + mm: '%d λεπτά', + h: 'μία ώρα', + hh: '%d ώρες', + d: 'μία μέρα', + dd: '%d μέρες', + M: 'ένας μήνας', + MM: '%d μήνες', + y: 'ένας χρόνος', + yy: '%d χρόνια', }, + dayOfMonthOrdinalParse: /\d{1,2}η/, + ordinal: '%dη', week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4st is the first week of the year. }, }); - return bn; + return el; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bo.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bo.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/en-au.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/en-au.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2307923__) { //! moment.js locale configuration -//! locale : Tibetan [bo] -//! author : Thupten N. Chakrishar : https://github.com/vajradog +//! locale : English (Australia) [en-au] +//! author : Jared Morse : https://github.com/jarcoal ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2307923__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var symbolMap = { - 1: '༡', - 2: '༢', - 3: '༣', - 4: '༤', - 5: '༥', - 6: '༦', - 7: '༧', - 8: '༨', - 9: '༩', - 0: '༠', - }, - numberMap = { - '༡': '1', - '༢': '2', - '༣': '3', - '༤': '4', - '༥': '5', - '༦': '6', - '༧': '7', - '༨': '8', - '༩': '9', - '༠': '0', - }; - - var bo = moment.defineLocale('bo', { - months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split( - '_' - ), - monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split( - '_' - ), - monthsShortRegex: /^(ཟླ་\d{1,2})/, - monthsParseExact: true, - weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split( + var enAu = moment.defineLocale('en-au', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( '_' ), - weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split( + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( '_' ), - weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat: { - LT: 'A h:mm', - LTS: 'A h:mm:ss', + LT: 'h:mm A', + LTS: 'h:mm:ss A', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm', - LLLL: 'dddd, D MMMM YYYY, A h:mm', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', }, calendar: { - sameDay: '[དི་རིང] LT', - nextDay: '[སང་ཉིན] LT', - nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT', - lastDay: '[ཁ་སང] LT', - lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT', + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', sameElse: 'L', }, relativeTime: { - future: '%s ལ་', - past: '%s སྔན་ལ', - s: 'ལམ་སང', - ss: '%d སྐར་ཆ།', - m: 'སྐར་མ་གཅིག', - mm: '%d སྐར་མ', - h: 'ཆུ་ཚོད་གཅིག', - hh: '%d ཆུ་ཚོད', - d: 'ཉིན་གཅིག', - dd: '%d ཉིན་', - M: 'ཟླ་བ་གཅིག', - MM: '%d ཟླ་བ', - y: 'ལོ་གཅིག', - yy: '%d ལོ', - }, - preparse: function (string) { - return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ( - (meridiem === 'མཚན་མོ' && hour >= 4) || - (meridiem === 'ཉིན་གུང' && hour < 5) || - meridiem === 'དགོང་དག' - ) { - return hour + 12; - } else { - return hour; - } + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'མཚན་མོ'; - } else if (hour < 10) { - return 'ཞོགས་ཀས'; - } else if (hour < 17) { - return 'ཉིན་གུང'; - } else if (hour < 20) { - return 'དགོང་དག'; - } else { - return 'མཚན་མོ'; - } + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; }, week: { dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return bo; + return enAu; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/br.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/br.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/en-ca.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/en-ca.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2310800__) { //! moment.js locale configuration -//! locale : Breton [br] -//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou +//! locale : English (Canada) [en-ca] +//! author : Jonathan Abourbih : https://github.com/jonbca ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2310800__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - function relativeTimeWithMutation(number, withoutSuffix, key) { - var format = { - mm: 'munutenn', - MM: 'miz', - dd: 'devezh', - }; - return number + ' ' + mutation(format[key], number); - } - function specialMutationForYears(number) { - switch (lastNumber(number)) { - case 1: - case 3: - case 4: - case 5: - case 9: - return number + ' bloaz'; - default: - return number + ' vloaz'; - } - } - function lastNumber(number) { - if (number > 9) { - return lastNumber(number % 10); - } - return number; - } - function mutation(text, number) { - if (number === 2) { - return softMutation(text); - } - return text; - } - function softMutation(text) { - var mutationTable = { - m: 'v', - b: 'v', - d: 'z', - }; - if (mutationTable[text.charAt(0)] === undefined) { - return text; - } - return mutationTable[text.charAt(0)] + text.substring(1); - } - - var monthsParse = [ - /^gen/i, - /^c[ʼ\']hwe/i, - /^meu/i, - /^ebr/i, - /^mae/i, - /^(mez|eve)/i, - /^gou/i, - /^eos/i, - /^gwe/i, - /^her/i, - /^du/i, - /^ker/i, - ], - monthsRegex = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, - monthsStrictRegex = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, - monthsShortStrictRegex = /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, - fullWeekdaysParse = [ - /^sul/i, - /^lun/i, - /^meurzh/i, - /^merc[ʼ\']her/i, - /^yaou/i, - /^gwener/i, - /^sadorn/i, - ], - shortWeekdaysParse = [ - /^Sul/i, - /^Lun/i, - /^Meu/i, - /^Mer/i, - /^Yao/i, - /^Gwe/i, - /^Sad/i, - ], - minWeekdaysParse = [ - /^Su/i, - /^Lu/i, - /^Me([^r]|$)/i, - /^Mer/i, - /^Ya/i, - /^Gw/i, - /^Sa/i, - ]; - - var br = moment.defineLocale('br', { - months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( + var enCa = moment.defineLocale('en-ca', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( '_' ), - monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), - weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'), - weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), - weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), - weekdaysParse: minWeekdaysParse, - fullWeekdaysParse: fullWeekdaysParse, - shortWeekdaysParse: shortWeekdaysParse, - minWeekdaysParse: minWeekdaysParse, - - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: monthsStrictRegex, - monthsShortStrictRegex: monthsShortStrictRegex, - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [a viz] MMMM YYYY', - LLL: 'D [a viz] MMMM YYYY HH:mm', - LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'YYYY-MM-DD', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', }, calendar: { - sameDay: '[Hiziv da] LT', - nextDay: '[Warcʼhoazh da] LT', - nextWeek: 'dddd [da] LT', - lastDay: '[Decʼh da] LT', - lastWeek: 'dddd [paset da] LT', + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', sameElse: 'L', }, relativeTime: { - future: 'a-benn %s', - past: '%s ʼzo', - s: 'un nebeud segondennoù', - ss: '%d eilenn', - m: 'ur vunutenn', - mm: relativeTimeWithMutation, - h: 'un eur', - hh: '%d eur', - d: 'un devezh', - dd: relativeTimeWithMutation, - M: 'ur miz', - MM: relativeTimeWithMutation, - y: 'ur bloaz', - yy: specialMutationForYears, + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', }, - dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function (number) { - var output = number === 1 ? 'añ' : 'vet'; + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; return number + output; }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn - isPM: function (token) { - return token === 'g.m.'; - }, - meridiem: function (hour, minute, isLower) { - return hour < 12 ? 'a.m.' : 'g.m.'; - }, }); - return br; + return enCa; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bs.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bs.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/en-gb.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/en-gb.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2313510__) { //! moment.js locale configuration -//! locale : Bosnian [bs] -//! author : Nedim Cholich : https://github.com/frontyard -//! based on (hr) translation by Bojan Marković +//! locale : English (United Kingdom) [en-gb] +//! author : Chris Gedrim : https://github.com/chrisgedrim ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2313510__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - function translate(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'ss': - if (number === 1) { - result += 'sekunda'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sekunde'; - } else { - result += 'sekundi'; - } - return result; - case 'm': - return withoutSuffix ? 'jedna minuta' : 'jedne minute'; - case 'mm': - if (number === 1) { - result += 'minuta'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'minute'; - } else { - result += 'minuta'; - } - return result; - case 'h': - return withoutSuffix ? 'jedan sat' : 'jednog sata'; - case 'hh': - if (number === 1) { - result += 'sat'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sata'; - } else { - result += 'sati'; - } - return result; - case 'dd': - if (number === 1) { - result += 'dan'; - } else { - result += 'dana'; - } - return result; - case 'MM': - if (number === 1) { - result += 'mjesec'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'mjeseca'; - } else { - result += 'mjeseci'; - } - return result; - case 'yy': - if (number === 1) { - result += 'godina'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'godine'; - } else { - result += 'godina'; - } - return result; - } - } - - var bs = moment.defineLocale('bs', { - months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split( - '_' - ), - monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split( + var enGb = moment.defineLocale('en-gb', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( '_' ), - monthsParseExact: true, - weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( '_' ), - weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), - weekdaysParseExact: true, + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm', + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[danas u] LT', - nextDay: '[sutra u] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[u] [nedjelju] [u] LT'; - case 3: - return '[u] [srijedu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - }, - lastDay: '[jučer u] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - return '[prošlu] dddd [u] LT'; - case 6: - return '[prošle] [subote] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[prošli] dddd [u] LT'; - } - }, + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', sameElse: 'L', }, relativeTime: { - future: 'za %s', - past: 'prije %s', - s: 'par sekundi', - ss: translate, - m: translate, - mm: translate, - h: translate, - hh: translate, - d: 'dan', - dd: translate, - M: 'mjesec', - MM: translate, - y: 'godinu', - yy: translate, + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return bs; + return enGb; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ca.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ca.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/en-ie.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/en-ie.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2316393__) { //! moment.js locale configuration -//! locale : Catalan [ca] -//! author : Juan G. Hurtado : https://github.com/juanghurtado +//! locale : English (Ireland) [en-ie] +//! author : Chris Cartlidge : https://github.com/chriscartlidge ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2316393__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var ca = moment.defineLocale('ca', { - months: { - standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( - '_' - ), - format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split( - '_' - ), - isFormat: /D[oD]?(\s)+MMMM/, - }, - monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( + var enIe = moment.defineLocale('en-ie', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( '_' ), - monthsParseExact: true, - weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( '_' ), - weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), - weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), - weekdaysParseExact: true, + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', + LT: 'HH:mm', + LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', - LL: 'D MMMM [de] YYYY', - ll: 'D MMM YYYY', - LLL: 'D MMMM [de] YYYY [a les] H:mm', - lll: 'D MMM YYYY, H:mm', - LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', - llll: 'ddd D MMM YYYY, H:mm', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', }, calendar: { - sameDay: function () { - return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; - }, - nextDay: function () { - return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; - }, - nextWeek: function () { - return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; - }, - lastDay: function () { - return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; - }, - lastWeek: function () { - return ( - '[el] dddd [passat a ' + - (this.hours() !== 1 ? 'les' : 'la') + - '] LT' - ); - }, + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', sameElse: 'L', }, relativeTime: { - future: "d'aquí %s", - past: 'fa %s', - s: 'uns segons', - ss: '%d segons', - m: 'un minut', - mm: '%d minuts', - h: 'una hora', - hh: '%d hores', - d: 'un dia', - dd: '%d dies', - M: 'un mes', - MM: '%d mesos', - y: 'un any', - yy: '%d anys', + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', }, - dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, - ordinal: function (number, period) { - var output = - number === 1 - ? 'r' - : number === 2 - ? 'n' - : number === 3 - ? 'r' - : number === 4 - ? 't' - : 'è'; - if (period === 'w' || period === 'W') { - output = 'a'; - } + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; return number + output; }, week: { @@ -60120,385 +66668,255 @@ module.exports = uniqBy; }, }); - return ca; + return enIe; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cs.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cs.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/en-il.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/en-il.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2319274__) { //! moment.js locale configuration -//! locale : Czech [cs] -//! author : petrbela : https://github.com/petrbela +//! locale : English (Israel) [en-il] +//! author : Chris Gedrim : https://github.com/chrisgedrim ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2319274__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split( + var enIl = moment.defineLocale('en-il', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( '_' ), - monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'), - monthsParse = [ - /^led/i, - /^úno/i, - /^bře/i, - /^dub/i, - /^kvě/i, - /^(čvn|červen$|června)/i, - /^(čvc|červenec|července)/i, - /^srp/i, - /^zář/i, - /^říj/i, - /^lis/i, - /^pro/i, - ], - // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. - // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. - monthsRegex = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i; - - function plural(n) { - return n > 1 && n < 5 && ~~(n / 10) !== 1; - } - function translate(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': // a few seconds / in a few seconds / a few seconds ago - return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami'; - case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'sekundy' : 'sekund'); - } else { - return result + 'sekundami'; - } - case 'm': // a minute / in a minute / a minute ago - return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; - case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'minuty' : 'minut'); - } else { - return result + 'minutami'; - } - case 'h': // an hour / in an hour / an hour ago - return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; - case 'hh': // 9 hours / in 9 hours / 9 hours ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'hodiny' : 'hodin'); - } else { - return result + 'hodinami'; - } - case 'd': // a day / in a day / a day ago - return withoutSuffix || isFuture ? 'den' : 'dnem'; - case 'dd': // 9 days / in 9 days / 9 days ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'dny' : 'dní'); - } else { - return result + 'dny'; - } - case 'M': // a month / in a month / a month ago - return withoutSuffix || isFuture ? 'měsíc' : 'měsícem'; - case 'MM': // 9 months / in 9 months / 9 months ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'měsíce' : 'měsíců'); - } else { - return result + 'měsíci'; - } - case 'y': // a year / in a year / a year ago - return withoutSuffix || isFuture ? 'rok' : 'rokem'; - case 'yy': // 9 years / in 9 years / 9 years ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'roky' : 'let'); - } else { - return result + 'lety'; - } - } - } - - var cs = moment.defineLocale('cs', { - months: months, - monthsShort: monthsShort, - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. - // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. - monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i, - monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i, - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'), - weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'), - weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd D. MMMM YYYY H:mm', - l: 'D. M. YYYY', + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[dnes v] LT', - nextDay: '[zítra v] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[v neděli v] LT'; - case 1: - case 2: - return '[v] dddd [v] LT'; - case 3: - return '[ve středu v] LT'; - case 4: - return '[ve čtvrtek v] LT'; - case 5: - return '[v pátek v] LT'; - case 6: - return '[v sobotu v] LT'; - } - }, - lastDay: '[včera v] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[minulou neděli v] LT'; - case 1: - case 2: - return '[minulé] dddd [v] LT'; - case 3: - return '[minulou středu v] LT'; - case 4: - case 5: - return '[minulý] dddd [v] LT'; - case 6: - return '[minulou sobotu v] LT'; - } - }, + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', sameElse: 'L', }, relativeTime: { - future: 'za %s', - past: 'před %s', - s: translate, - ss: translate, - m: translate, - mm: translate, - h: translate, - hh: translate, - d: translate, - dd: translate, - M: translate, - MM: translate, - y: translate, - yy: translate, + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; }, }); - return cs; + return enIl; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cv.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cv.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/en-in.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/en-in.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2321977__) { //! moment.js locale configuration -//! locale : Chuvash [cv] -//! author : Anatoly Mironov : https://github.com/mirontoli +//! locale : English (India) [en-in] +//! author : Jatin Agrawal : https://github.com/jatinag22 ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2321977__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var cv = moment.defineLocale('cv', { - months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split( + var enIn = moment.defineLocale('en-in', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( '_' ), - monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), - weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split( + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( '_' ), - weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), - weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD-MM-YYYY', - LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', - LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', - LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', }, calendar: { - sameDay: '[Паян] LT [сехетре]', - nextDay: '[Ыран] LT [сехетре]', - lastDay: '[Ӗнер] LT [сехетре]', - nextWeek: '[Ҫитес] dddd LT [сехетре]', - lastWeek: '[Иртнӗ] dddd LT [сехетре]', + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', sameElse: 'L', }, relativeTime: { - future: function (output) { - var affix = /сехет$/i.exec(output) - ? 'рен' - : /ҫул$/i.exec(output) - ? 'тан' - : 'ран'; - return output + affix; - }, - past: '%s каялла', - s: 'пӗр-ик ҫеккунт', - ss: '%d ҫеккунт', - m: 'пӗр минут', - mm: '%d минут', - h: 'пӗр сехет', - hh: '%d сехет', - d: 'пӗр кун', - dd: '%d кун', - M: 'пӗр уйӑх', - MM: '%d уйӑх', - y: 'пӗр ҫул', - yy: '%d ҫул', + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; }, - dayOfMonthOrdinalParse: /\d{1,2}-мӗш/, - ordinal: '%d-мӗш', week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 1st is the first week of the year. }, }); - return cv; + return enIn; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cy.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cy.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/en-nz.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/en-nz.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2324854__) { //! moment.js locale configuration -//! locale : Welsh [cy] -//! author : Robert Allen : https://github.com/robgallen -//! author : https://github.com/ryangreaves +//! locale : English (New Zealand) [en-nz] +//! author : Luke McGregor : https://github.com/lukemcgregor ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2324854__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var cy = moment.defineLocale('cy', { - months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( - '_' - ), - monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( + var enNz = moment.defineLocale('en-nz', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( '_' ), - weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( '_' ), - weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), - weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), - weekdaysParseExact: true, - // time formats are the same as en-gb + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', + LT: 'h:mm A', + LTS: 'h:mm:ss A', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', }, calendar: { - sameDay: '[Heddiw am] LT', - nextDay: '[Yfory am] LT', - nextWeek: 'dddd [am] LT', - lastDay: '[Ddoe am] LT', - lastWeek: 'dddd [diwethaf am] LT', + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', sameElse: 'L', }, relativeTime: { - future: 'mewn %s', - past: '%s yn ôl', - s: 'ychydig eiliadau', - ss: '%d eiliad', - m: 'munud', - mm: '%d munud', - h: 'awr', - hh: '%d awr', - d: 'diwrnod', - dd: '%d diwrnod', - M: 'mis', - MM: '%d mis', - y: 'blwyddyn', - yy: '%d flynedd', + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', }, - dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, - // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function (number) { - var b = number, - output = '', - lookup = [ - '', - 'af', - 'il', - 'ydd', - 'ydd', - 'ed', - 'ed', - 'ed', - 'fed', - 'fed', - 'fed', // 1af to 10fed - 'eg', - 'fed', - 'eg', - 'eg', - 'fed', - 'eg', - 'eg', - 'fed', - 'eg', - 'fed', // 11eg to 20fed - ]; - if (b > 20) { - if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { - output = 'fed'; // not 30ain, 70ain or 90ain - } else { - output = 'ain'; - } - } else if (b > 0) { - output = lookup[b]; - } + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; return number + output; }, week: { @@ -60507,804 +66925,942 @@ module.exports = uniqBy; }, }); - return cy; + return enNz; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/da.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/da.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/en-sg.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/en-sg.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2327740__) { //! moment.js locale configuration -//! locale : Danish [da] -//! author : Ulrik Nielsen : https://github.com/mrbase +//! locale : English (Singapore) [en-sg] +//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2327740__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var da = moment.defineLocale('da', { - months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( + var enSg = moment.defineLocale('en-sg', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( '_' ), - monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), - weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), - weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'), - weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY HH:mm', - LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[i dag kl.] LT', - nextDay: '[i morgen kl.] LT', - nextWeek: 'på dddd [kl.] LT', - lastDay: '[i går kl.] LT', - lastWeek: '[i] dddd[s kl.] LT', + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', sameElse: 'L', }, relativeTime: { - future: 'om %s', - past: '%s siden', - s: 'få sekunder', - ss: '%d sekunder', - m: 'et minut', - mm: '%d minutter', - h: 'en time', - hh: '%d timer', - d: 'en dag', - dd: '%d dage', - M: 'en måned', - MM: '%d måneder', - y: 'et år', - yy: '%d år', + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return da; + return enSg; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de-at.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de-at.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/eo.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/eo.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2330623__) { //! moment.js locale configuration -//! locale : German (Austria) [de-at] -//! author : lluchs : https://github.com/lluchs -//! author: Menelion Elensúle: https://github.com/Oire -//! author : Martin Groller : https://github.com/MadMG -//! author : Mikolaj Dadela : https://github.com/mik01aj +//! locale : Esperanto [eo] +//! author : Colin Dean : https://github.com/colindean +//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia +//! comment : miestasmia corrected the translation by colindean +//! comment : Vivakvo corrected the translation by colindean and miestasmia ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2330623__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - m: ['eine Minute', 'einer Minute'], - h: ['eine Stunde', 'einer Stunde'], - d: ['ein Tag', 'einem Tag'], - dd: [number + ' Tage', number + ' Tagen'], - w: ['eine Woche', 'einer Woche'], - M: ['ein Monat', 'einem Monat'], - MM: [number + ' Monate', number + ' Monaten'], - y: ['ein Jahr', 'einem Jahr'], - yy: [number + ' Jahre', number + ' Jahren'], - }; - return withoutSuffix ? format[key][0] : format[key][1]; - } - - var deAt = moment.defineLocale('de-at', { - months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( - '_' - ), - monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + var eo = moment.defineLocale('eo', { + months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split( '_' ), - weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), - weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), - weekdaysParseExact: true, + monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'), + weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'), + weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'), + weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY HH:mm', - LLLL: 'dddd, D. MMMM YYYY HH:mm', + L: 'YYYY-MM-DD', + LL: '[la] D[-an de] MMMM, YYYY', + LLL: '[la] D[-an de] MMMM, YYYY HH:mm', + LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', + llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', + }, + meridiemParse: /[ap]\.t\.m/i, + isPM: function (input) { + return input.charAt(0).toLowerCase() === 'p'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'p.t.m.' : 'P.T.M.'; + } else { + return isLower ? 'a.t.m.' : 'A.T.M.'; + } }, calendar: { - sameDay: '[heute um] LT [Uhr]', + sameDay: '[Hodiaŭ je] LT', + nextDay: '[Morgaŭ je] LT', + nextWeek: 'dddd[n je] LT', + lastDay: '[Hieraŭ je] LT', + lastWeek: '[pasintan] dddd[n je] LT', sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]', }, relativeTime: { - future: 'in %s', - past: 'vor %s', - s: 'ein paar Sekunden', - ss: '%d Sekunden', - m: processRelativeTime, - mm: '%d Minuten', - h: processRelativeTime, - hh: '%d Stunden', - d: processRelativeTime, - dd: processRelativeTime, - w: processRelativeTime, - ww: '%d Wochen', - M: processRelativeTime, - MM: processRelativeTime, - y: processRelativeTime, - yy: processRelativeTime, + future: 'post %s', + past: 'antaŭ %s', + s: 'kelkaj sekundoj', + ss: '%d sekundoj', + m: 'unu minuto', + mm: '%d minutoj', + h: 'unu horo', + hh: '%d horoj', + d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo + dd: '%d tagoj', + M: 'unu monato', + MM: '%d monatoj', + y: 'unu jaro', + yy: '%d jaroj', }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', + dayOfMonthOrdinalParse: /\d{1,2}a/, + ordinal: '%da', week: { dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + doy: 7, // The week that contains Jan 7th is the first week of the year. }, }); - return deAt; + return eo; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de-ch.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de-ch.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/es-do.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/es-do.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2333780__) { //! moment.js locale configuration -//! locale : German (Switzerland) [de-ch] -//! author : sschueller : https://github.com/sschueller +//! locale : Spanish (Dominican Republic) [es-do] ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2333780__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - m: ['eine Minute', 'einer Minute'], - h: ['eine Stunde', 'einer Stunde'], - d: ['ein Tag', 'einem Tag'], - dd: [number + ' Tage', number + ' Tagen'], - w: ['eine Woche', 'einer Woche'], - M: ['ein Monat', 'einem Monat'], - MM: [number + ' Monate', number + ' Monaten'], - y: ['ein Jahr', 'einem Jahr'], - yy: [number + ' Jahre', number + ' Jahren'], - }; - return withoutSuffix ? format[key][0] : format[key][1]; - } + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - var deCh = moment.defineLocale('de-ch', { - months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( - '_' - ), - monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + var esDo = moment.defineLocale('es-do', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( '_' ), - weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), - weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), weekdaysParseExact: true, longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY HH:mm', - LLLL: 'dddd, D. MMMM YYYY HH:mm', + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', }, calendar: { - sameDay: '[heute um] LT [Uhr]', + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]', }, relativeTime: { - future: 'in %s', - past: 'vor %s', - s: 'ein paar Sekunden', - ss: '%d Sekunden', - m: processRelativeTime, - mm: '%d Minuten', - h: processRelativeTime, - hh: '%d Stunden', - d: processRelativeTime, - dd: processRelativeTime, - w: processRelativeTime, - ww: '%d Wochen', - M: processRelativeTime, - MM: processRelativeTime, - y: processRelativeTime, - yy: processRelativeTime, + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return deCh; + return esDo; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/es-mx.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/es-mx.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2338217__) { //! moment.js locale configuration -//! locale : German [de] -//! author : lluchs : https://github.com/lluchs -//! author: Menelion Elensúle: https://github.com/Oire -//! author : Mikolaj Dadela : https://github.com/mik01aj +//! locale : Spanish (Mexico) [es-mx] +//! author : JC Franco : https://github.com/jcfranco ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2338217__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - m: ['eine Minute', 'einer Minute'], - h: ['eine Stunde', 'einer Stunde'], - d: ['ein Tag', 'einem Tag'], - dd: [number + ' Tage', number + ' Tagen'], - w: ['eine Woche', 'einer Woche'], - M: ['ein Monat', 'einem Monat'], - MM: [number + ' Monate', number + ' Monaten'], - y: ['ein Jahr', 'einem Jahr'], - yy: [number + ' Jahre', number + ' Jahren'], - }; - return withoutSuffix ? format[key][0] : format[key][1]; - } + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - var de = moment.defineLocale('de', { - months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( - '_' - ), - monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + var esMx = moment.defineLocale('es-mx', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( '_' ), - weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), - weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), weekdaysParseExact: true, longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY HH:mm', - LLLL: 'dddd, D. MMMM YYYY HH:mm', + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', }, calendar: { - sameDay: '[heute um] LT [Uhr]', + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]', }, relativeTime: { - future: 'in %s', - past: 'vor %s', - s: 'ein paar Sekunden', - ss: '%d Sekunden', - m: processRelativeTime, - mm: '%d Minuten', - h: processRelativeTime, - hh: '%d Stunden', - d: processRelativeTime, - dd: processRelativeTime, - w: processRelativeTime, - ww: '%d Wochen', - M: processRelativeTime, - MM: processRelativeTime, - y: processRelativeTime, - yy: processRelativeTime, + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', week: { - dow: 1, // Monday is the first day of the week. + dow: 0, // Sunday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, + invalidDate: 'Fecha inválida', }); - return de; + return esMx; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/dv.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/dv.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/es-us.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/es-us.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2342726__) { //! moment.js locale configuration -//! locale : Maldivian [dv] -//! author : Jawish Hameed : https://github.com/jawish +//! locale : Spanish (United States) [es-us] +//! author : bustta : https://github.com/bustta +//! author : chrisrodz : https://github.com/chrisrodz ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2342726__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var months = [ - 'ޖެނުއަރީ', - 'ފެބްރުއަރީ', - 'މާރިޗު', - 'އޭޕްރީލު', - 'މޭ', - 'ޖޫން', - 'ޖުލައި', - 'އޯގަސްޓު', - 'ސެޕްޓެމްބަރު', - 'އޮކްޓޯބަރު', - 'ނޮވެމްބަރު', - 'ޑިސެމްބަރު', + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, ], - weekdays = [ - 'އާދިއްތަ', - 'ހޯމަ', - 'އަންގާރަ', - 'ބުދަ', - 'ބުރާސްފަތި', - 'ހުކުރު', - 'ހޮނިހިރު', - ]; + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - var dv = moment.defineLocale('dv', { - months: months, - monthsShort: months, - weekdays: weekdays, - weekdaysShort: weekdays, - weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'D/M/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - meridiemParse: /މކ|މފ/, - isPM: function (input) { - return 'މފ' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'މކ'; + var esUs = moment.defineLocale('es-us', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; } else { - return 'މފ'; + return monthsShortDot[m.month()]; } }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'MM/DD/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, calendar: { - sameDay: '[މިއަދު] LT', - nextDay: '[މާދަމާ] LT', - nextWeek: 'dddd LT', - lastDay: '[އިއްޔެ] LT', - lastWeek: '[ފާއިތުވި] dddd LT', + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, sameElse: 'L', }, relativeTime: { - future: 'ތެރޭގައި %s', - past: 'ކުރިން %s', - s: 'ސިކުންތުކޮޅެއް', - ss: 'd% ސިކުންތު', - m: 'މިނިޓެއް', - mm: 'މިނިޓު %d', - h: 'ގަޑިއިރެއް', - hh: 'ގަޑިއިރު %d', - d: 'ދުވަހެއް', - dd: 'ދުވަސް %d', - M: 'މަހެއް', - MM: 'މަސް %d', - y: 'އަހަރެއް', - yy: 'އަހަރު %d', - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', week: { - dow: 7, // Sunday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. }, }); - return dv; + return esUs; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/el.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/el.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/es.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/es.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2347248__) { //! moment.js locale configuration -//! locale : Greek [el] -//! author : Aggelos Karalias : https://github.com/mehiel +//! locale : Spanish [es] +//! author : Julio Napurí : https://github.com/julionc ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2347248__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - function isFunction(input) { - return ( - (typeof Function !== 'undefined' && input instanceof Function) || - Object.prototype.toString.call(input) === '[object Function]' - ); - } + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - var el = moment.defineLocale('el', { - monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split( - '_' - ), - monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split( - '_' - ), - months: function (momentToFormat, format) { - if (!momentToFormat) { - return this._monthsNominativeEl; - } else if ( - typeof format === 'string' && - /D/.test(format.substring(0, format.indexOf('MMMM'))) - ) { - // if there is a day number before 'MMMM' - return this._monthsGenitiveEl[momentToFormat.month()]; - } else { - return this._monthsNominativeEl[momentToFormat.month()]; - } - }, - monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), - weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split( + var es = moment.defineLocale('es', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( '_' ), - weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), - weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), - meridiem: function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'μμ' : 'ΜΜ'; + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; } else { - return isLower ? 'πμ' : 'ΠΜ'; + return monthsShortDot[m.month()]; } }, - isPM: function (input) { - return (input + '').toLowerCase()[0] === 'μ'; - }, - meridiemParse: /[ΠΜ]\.?Μ?\.?/i, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', + LT: 'H:mm', + LTS: 'H:mm:ss', L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', }, - calendarEl: { - sameDay: '[Σήμερα {}] LT', - nextDay: '[Αύριο {}] LT', - nextWeek: 'dddd [{}] LT', - lastDay: '[Χθες {}] LT', + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, lastWeek: function () { - switch (this.day()) { - case 6: - return '[το προηγούμενο] dddd [{}] LT'; - default: - return '[την προηγούμενη] dddd [{}] LT'; - } + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); }, sameElse: 'L', }, - calendar: function (key, mom) { - var output = this._calendarEl[key], - hours = mom && mom.hours(); - if (isFunction(output)) { - output = output.apply(mom); - } - return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις'); - }, relativeTime: { - future: 'σε %s', - past: '%s πριν', - s: 'λίγα δευτερόλεπτα', - ss: '%d δευτερόλεπτα', - m: 'ένα λεπτό', - mm: '%d λεπτά', - h: 'μία ώρα', - hh: '%d ώρες', - d: 'μία μέρα', - dd: '%d μέρες', - M: 'ένας μήνας', - MM: '%d μήνες', - y: 'ένας χρόνος', - yy: '%d χρόνια', + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', }, - dayOfMonthOrdinalParse: /\d{1,2}η/, - ordinal: '%dη', + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', week: { dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4st is the first week of the year. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, + invalidDate: 'Fecha inválida', }); - return el; + return es; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-au.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-au.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/et.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/et.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2351728__) { //! moment.js locale configuration -//! locale : English (Australia) [en-au] -//! author : Jared Morse : https://github.com/jarcoal +//! locale : Estonian [et] +//! author : Henry Kehlmann : https://github.com/madhenry +//! improvements : Illimar Tambek : https://github.com/ragulka ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2351728__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var enAu = moment.defineLocale('en-au', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'], + ss: [number + 'sekundi', number + 'sekundit'], + m: ['ühe minuti', 'üks minut'], + mm: [number + ' minuti', number + ' minutit'], + h: ['ühe tunni', 'tund aega', 'üks tund'], + hh: [number + ' tunni', number + ' tundi'], + d: ['ühe päeva', 'üks päev'], + M: ['kuu aja', 'kuu aega', 'üks kuu'], + MM: [number + ' kuu', number + ' kuud'], + y: ['ühe aasta', 'aasta', 'üks aasta'], + yy: [number + ' aasta', number + ' aastat'], + }; + if (withoutSuffix) { + return format[key][2] ? format[key][2] : format[key][1]; + } + return isFuture ? format[key][0] : format[key][1]; + } + + var et = moment.defineLocale('et', { + months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( '_' ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + monthsShort: + 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), + weekdays: + 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split( + '_' + ), + weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), + weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', }, calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', + sameDay: '[Täna,] LT', + nextDay: '[Homme,] LT', + nextWeek: '[Järgmine] dddd LT', + lastDay: '[Eile,] LT', + lastWeek: '[Eelmine] dddd LT', sameElse: 'L', }, relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; + future: '%s pärast', + past: '%s tagasi', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: '%d päeva', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', week: { - dow: 0, // Sunday is the first day of the week. + dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return enAu; + return et; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-ca.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-ca.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/eu.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/eu.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2355197__) { //! moment.js locale configuration -//! locale : English (Canada) [en-ca] -//! author : Jonathan Abourbih : https://github.com/jonbca +//! locale : Basque [eu] +//! author : Eneko Illarramendi : https://github.com/eillarra ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2355197__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var enCa = moment.defineLocale('en-ca', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + var eu = moment.defineLocale('eu', { + months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( '_' ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + monthsShort: + 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( + '_' + ), + weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), + weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), + weekdaysParseExact: true, longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', + LT: 'HH:mm', + LTS: 'HH:mm:ss', L: 'YYYY-MM-DD', - LL: 'MMMM D, YYYY', - LLL: 'MMMM D, YYYY h:mm A', - LLLL: 'dddd, MMMM D, YYYY h:mm A', + LL: 'YYYY[ko] MMMM[ren] D[a]', + LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', + LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', + l: 'YYYY-M-D', + ll: 'YYYY[ko] MMM D[a]', + lll: 'YYYY[ko] MMM D[a] HH:mm', + llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', }, calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', + sameDay: '[gaur] LT[etan]', + nextDay: '[bihar] LT[etan]', + nextWeek: 'dddd LT[etan]', + lastDay: '[atzo] LT[etan]', + lastWeek: '[aurreko] dddd LT[etan]', sameElse: 'L', }, relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', + future: '%s barru', + past: 'duela %s', + s: 'segundo batzuk', + ss: '%d segundo', + m: 'minutu bat', + mm: '%d minutu', + h: 'ordu bat', + hh: '%d ordu', + d: 'egun bat', + dd: '%d egun', + M: 'hilabete bat', + MM: '%d hilabete', + y: 'urte bat', + yy: '%d urte', }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. }, }); - return enCa; + return eu; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-gb.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-gb.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/fa.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/fa.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2357981__) { //! moment.js locale configuration -//! locale : English (United Kingdom) [en-gb] -//! author : Chris Gedrim : https://github.com/chrisgedrim +//! locale : Persian [fa] +//! author : Ebrahim Byagowi : https://github.com/ebraminio ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2357981__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var enGb = moment.defineLocale('en-gb', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + var symbolMap = { + 1: '۱', + 2: '۲', + 3: '۳', + 4: '۴', + 5: '۵', + 6: '۶', + 7: '۷', + 8: '۸', + 9: '۹', + 0: '۰', + }, + numberMap = { + '۱': '1', + '۲': '2', + '۳': '3', + '۴': '4', + '۵': '5', + '۶': '6', + '۷': '7', + '۸': '8', + '۹': '9', + '۰': '0', + }; + + var fa = moment.defineLocale('fa', { + months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( '_' ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + monthsShort: + 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( + '_' + ), + weekdays: + 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( + '_' + ), + weekdaysShort: + 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( + '_' + ), + weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'), + weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', @@ -61313,131 +67869,276 @@ module.exports = uniqBy; LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm', }, + meridiemParse: /قبل از ظهر|بعد از ظهر/, + isPM: function (input) { + return /بعد از ظهر/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'قبل از ظهر'; + } else { + return 'بعد از ظهر'; + } + }, calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', + sameDay: '[امروز ساعت] LT', + nextDay: '[فردا ساعت] LT', + nextWeek: 'dddd [ساعت] LT', + lastDay: '[دیروز ساعت] LT', + lastWeek: 'dddd [پیش] [ساعت] LT', sameElse: 'L', }, relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', + future: 'در %s', + past: '%s پیش', + s: 'چند ثانیه', + ss: '%d ثانیه', + m: 'یک دقیقه', + mm: '%d دقیقه', + h: 'یک ساعت', + hh: '%d ساعت', + d: 'یک روز', + dd: '%d روز', + M: 'یک ماه', + MM: '%d ماه', + y: 'یک سال', + yy: '%d سال', }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; + preparse: function (string) { + return string + .replace(/[۰-۹]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + dayOfMonthOrdinalParse: /\d{1,2}م/, + ordinal: '%dم', + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return fa; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/fi.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/fi.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2361847__) { + +//! moment.js locale configuration +//! locale : Finnish [fi] +//! author : Tarmo Aidantausta : https://github.com/bleadof + +;(function (global, factory) { + true ? factory(__nested_webpack_require_2361847__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var numbersPast = + 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split( + ' ' + ), + numbersFuture = [ + 'nolla', + 'yhden', + 'kahden', + 'kolmen', + 'neljän', + 'viiden', + 'kuuden', + numbersPast[7], + numbersPast[8], + numbersPast[9], + ]; + function translate(number, withoutSuffix, key, isFuture) { + var result = ''; + switch (key) { + case 's': + return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; + case 'ss': + result = isFuture ? 'sekunnin' : 'sekuntia'; + break; + case 'm': + return isFuture ? 'minuutin' : 'minuutti'; + case 'mm': + result = isFuture ? 'minuutin' : 'minuuttia'; + break; + case 'h': + return isFuture ? 'tunnin' : 'tunti'; + case 'hh': + result = isFuture ? 'tunnin' : 'tuntia'; + break; + case 'd': + return isFuture ? 'päivän' : 'päivä'; + case 'dd': + result = isFuture ? 'päivän' : 'päivää'; + break; + case 'M': + return isFuture ? 'kuukauden' : 'kuukausi'; + case 'MM': + result = isFuture ? 'kuukauden' : 'kuukautta'; + break; + case 'y': + return isFuture ? 'vuoden' : 'vuosi'; + case 'yy': + result = isFuture ? 'vuoden' : 'vuotta'; + break; + } + result = verbalNumber(number, isFuture) + ' ' + result; + return result; + } + function verbalNumber(number, isFuture) { + return number < 10 + ? isFuture + ? numbersFuture[number] + : numbersPast[number] + : number; + } + + var fi = moment.defineLocale('fi', { + months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( + '_' + ), + monthsShort: + 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split( + '_' + ), + weekdays: + 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( + '_' + ), + weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), + weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM[ta] YYYY', + LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm', + LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', + l: 'D.M.YYYY', + ll: 'Do MMM YYYY', + lll: 'Do MMM YYYY, [klo] HH.mm', + llll: 'ddd, Do MMM YYYY, [klo] HH.mm', + }, + calendar: { + sameDay: '[tänään] [klo] LT', + nextDay: '[huomenna] [klo] LT', + nextWeek: 'dddd [klo] LT', + lastDay: '[eilen] [klo] LT', + lastWeek: '[viime] dddd[na] [klo] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s päästä', + past: '%s sitten', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return enGb; + return fi; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-ie.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-ie.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/fil.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/fil.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2366512__) { //! moment.js locale configuration -//! locale : English (Ireland) [en-ie] -//! author : Chris Cartlidge : https://github.com/chriscartlidge +//! locale : Filipino [fil] +//! author : Dan Hagman : https://github.com/hagmandan +//! author : Matthew Co : https://github.com/matthewdeeco ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2366512__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var enIe = moment.defineLocale('en-ie', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + var fil = moment.defineLocale('fil', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( '_' ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( '_' ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', }, calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', sameElse: 'L', }, relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + dayOfMonthOrdinalParse: /\d{1,2}/, ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; + return number; }, week: { dow: 1, // Monday is the first day of the week. @@ -61445,256 +68146,257 @@ module.exports = uniqBy; }, }); - return enIe; + return fil; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-il.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-il.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/fo.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/fo.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2369078__) { //! moment.js locale configuration -//! locale : English (Israel) [en-il] -//! author : Chris Gedrim : https://github.com/chrisgedrim +//! locale : Faroese [fo] +//! author : Ragnar Johannesen : https://github.com/ragnar123 +//! author : Kristian Sakarisson : https://github.com/sakarisson ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2369078__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var enIl = moment.defineLocale('en-il', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + var fo = moment.defineLocale('fo', { + months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split( '_' ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdays: + 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split( + '_' + ), + weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'), + weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', + LLLL: 'dddd D. MMMM, YYYY HH:mm', }, calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', + sameDay: '[Í dag kl.] LT', + nextDay: '[Í morgin kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[Í gjár kl.] LT', + lastWeek: '[síðstu] dddd [kl] LT', sameElse: 'L', }, relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', + future: 'um %s', + past: '%s síðani', + s: 'fá sekund', + ss: '%d sekundir', + m: 'ein minuttur', + mm: '%d minuttir', + h: 'ein tími', + hh: '%d tímar', + d: 'ein dagur', + dd: '%d dagar', + M: 'ein mánaður', + MM: '%d mánaðir', + y: 'eitt ár', + yy: '%d ár', }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return enIl; + return fo; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-in.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-in.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/fr-ca.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/fr-ca.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2371617__) { //! moment.js locale configuration -//! locale : English (India) [en-in] -//! author : Jatin Agrawal : https://github.com/jatinag22 +//! locale : French (Canada) [fr-ca] +//! author : Jonathan Abourbih : https://github.com/jonbca ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2371617__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var enIn = moment.defineLocale('en-in', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + var frCa = moment.defineLocale('fr-ca', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( '_' ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', sameElse: 'L', }, relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 1st is the first week of the year. + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } }, }); - return enIn; + return frCa; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-nz.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-nz.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/fr-ch.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/fr-ch.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2374560__) { //! moment.js locale configuration -//! locale : English (New Zealand) [en-nz] -//! author : Luke McGregor : https://github.com/lukemcgregor +//! locale : French (Switzerland) [fr-ch] +//! author : Gaspard Bucher : https://github.com/gaspard ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2374560__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var enNz = moment.defineLocale('en-nz', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + var frCh = moment.defineLocale('fr-ch', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( '_' ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', sameElse: 'L', }, relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } }, week: { dow: 1, // Monday is the first day of the week. @@ -61702,86 +68404,126 @@ module.exports = uniqBy; }, }); - return enNz; + return frCh; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-sg.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-sg.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/fr.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/fr.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2377666__) { //! moment.js locale configuration -//! locale : English (Singapore) [en-sg] -//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension +//! locale : French [fr] +//! author : John Fischer : https://github.com/jfroffice ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2377666__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var enSg = moment.defineLocale('en-sg', { - months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + var monthsStrictRegex = + /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, + monthsShortStrictRegex = + /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i, + monthsRegex = + /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, + monthsParse = [ + /^janv/i, + /^févr/i, + /^mars/i, + /^avr/i, + /^mai/i, + /^juin/i, + /^juil/i, + /^août/i, + /^sept/i, + /^oct/i, + /^nov/i, + /^déc/i, + ]; + + var fr = moment.defineLocale('fr', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( '_' ), - weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', sameElse: 'L', }, relativeTime: { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + w: 'une semaine', + ww: '%d semaines', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; + dayOfMonthOrdinalParse: /\d{1,2}(er|)/, + ordinal: function (number, period) { + switch (period) { + // TODO: Return 'e' when day of month > 1. Move this case inside + // block for masculine words below. + // See https://github.com/moment/moment/issues/3375 + case 'D': + return number + (number === 1 ? 'er' : ''); + + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } }, week: { dow: 1, // Monday is the first day of the week. @@ -61789,611 +68531,586 @@ module.exports = uniqBy; }, }); - return enSg; + return fr; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/eo.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/eo.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/fy.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/fy.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2382089__) { //! moment.js locale configuration -//! locale : Esperanto [eo] -//! author : Colin Dean : https://github.com/colindean -//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia -//! comment : miestasmia corrected the translation by colindean -//! comment : Vivakvo corrected the translation by colindean and miestasmia +//! locale : Frisian [fy] +//! author : Robin van der Vliet : https://github.com/robin0van0der0v ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2382089__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var eo = moment.defineLocale('eo', { - months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split( + var monthsShortWithDots = + 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); + + var fy = moment.defineLocale('fy', { + months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( '_' ), - monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'), - weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'), - weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'), - weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + monthsParseExact: true, + weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( + '_' + ), + weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), + weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), + weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: '[la] D[-an de] MMMM, YYYY', - LLL: '[la] D[-an de] MMMM, YYYY HH:mm', - LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', - llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', - }, - meridiemParse: /[ap]\.t\.m/i, - isPM: function (input) { - return input.charAt(0).toLowerCase() === 'p'; - }, - meridiem: function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'p.t.m.' : 'P.T.M.'; - } else { - return isLower ? 'a.t.m.' : 'A.T.M.'; - } + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[Hodiaŭ je] LT', - nextDay: '[Morgaŭ je] LT', - nextWeek: 'dddd[n je] LT', - lastDay: '[Hieraŭ je] LT', - lastWeek: '[pasintan] dddd[n je] LT', + sameDay: '[hjoed om] LT', + nextDay: '[moarn om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[juster om] LT', + lastWeek: '[ôfrûne] dddd [om] LT', sameElse: 'L', }, relativeTime: { - future: 'post %s', - past: 'antaŭ %s', - s: 'kelkaj sekundoj', - ss: '%d sekundoj', - m: 'unu minuto', - mm: '%d minutoj', - h: 'unu horo', - hh: '%d horoj', - d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo - dd: '%d tagoj', - M: 'unu monato', - MM: '%d monatoj', - y: 'unu jaro', - yy: '%d jaroj', + future: 'oer %s', + past: '%s lyn', + s: 'in pear sekonden', + ss: '%d sekonden', + m: 'ien minút', + mm: '%d minuten', + h: 'ien oere', + hh: '%d oeren', + d: 'ien dei', + dd: '%d dagen', + M: 'ien moanne', + MM: '%d moannen', + y: 'ien jier', + yy: '%d jierren', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); }, - dayOfMonthOrdinalParse: /\d{1,2}a/, - ordinal: '%da', week: { dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return eo; + return fy; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-do.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-do.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ga.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ga.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2385217__) { //! moment.js locale configuration -//! locale : Spanish (Dominican Republic) [es-do] +//! locale : Irish or Irish Gaelic [ga] +//! author : André Silva : https://github.com/askpt ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2385217__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( - '_' - ), - monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), - monthsParse = [ - /^ene/i, - /^feb/i, - /^mar/i, - /^abr/i, - /^may/i, - /^jun/i, - /^jul/i, - /^ago/i, - /^sep/i, - /^oct/i, - /^nov/i, - /^dic/i, + var months = [ + 'Eanáir', + 'Feabhra', + 'Márta', + 'Aibreán', + 'Bealtaine', + 'Meitheamh', + 'Iúil', + 'Lúnasa', + 'Meán Fómhair', + 'Deireadh Fómhair', + 'Samhain', + 'Nollaig', + ], + monthsShort = [ + 'Ean', + 'Feabh', + 'Márt', + 'Aib', + 'Beal', + 'Meith', + 'Iúil', + 'Lún', + 'M.F.', + 'D.F.', + 'Samh', + 'Noll', + ], + weekdays = [ + 'Dé Domhnaigh', + 'Dé Luain', + 'Dé Máirt', + 'Dé Céadaoin', + 'Déardaoin', + 'Dé hAoine', + 'Dé Sathairn', ], - monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'], + weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa']; - var esDo = moment.defineLocale('es-do', { - months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortDot; - } else if (/-MMM-/.test(format)) { - return monthsShort[m.month()]; - } else { - return monthsShortDot[m.month()]; - } - }, - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), - weekdaysParseExact: true, + var ga = moment.defineLocale('ga', { + months: months, + monthsShort: monthsShort, + monthsParseExact: true, + weekdays: weekdays, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', + LT: 'HH:mm', + LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY h:mm A', - LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', }, calendar: { - sameDay: function () { - return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextDay: function () { - return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextWeek: function () { - return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastDay: function () { - return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastWeek: function () { - return ( - '[el] dddd [pasado a la' + - (this.hours() !== 1 ? 's' : '') + - '] LT' - ); - }, + sameDay: '[Inniu ag] LT', + nextDay: '[Amárach ag] LT', + nextWeek: 'dddd [ag] LT', + lastDay: '[Inné ag] LT', + lastWeek: 'dddd [seo caite] [ag] LT', sameElse: 'L', }, relativeTime: { - future: 'en %s', - past: 'hace %s', - s: 'unos segundos', - ss: '%d segundos', - m: 'un minuto', - mm: '%d minutos', - h: 'una hora', - hh: '%d horas', - d: 'un día', - dd: '%d días', - w: 'una semana', - ww: '%d semanas', - M: 'un mes', - MM: '%d meses', - y: 'un año', - yy: '%d años', + future: 'i %s', + past: '%s ó shin', + s: 'cúpla soicind', + ss: '%d soicind', + m: 'nóiméad', + mm: '%d nóiméad', + h: 'uair an chloig', + hh: '%d uair an chloig', + d: 'lá', + dd: '%d lá', + M: 'mí', + MM: '%d míonna', + y: 'bliain', + yy: '%d bliain', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + return number + output; }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return esDo; + return ga; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-mx.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-mx.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/gd.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/gd.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2388474__) { //! moment.js locale configuration -//! locale : Spanish (Mexico) [es-mx] -//! author : JC Franco : https://github.com/jcfranco +//! locale : Scottish Gaelic [gd] +//! author : Jon Ashdown : https://github.com/jonashdown ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2388474__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( - '_' - ), - monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), - monthsParse = [ - /^ene/i, - /^feb/i, - /^mar/i, - /^abr/i, - /^may/i, - /^jun/i, - /^jul/i, - /^ago/i, - /^sep/i, - /^oct/i, - /^nov/i, - /^dic/i, + var months = [ + 'Am Faoilleach', + 'An Gearran', + 'Am Màrt', + 'An Giblean', + 'An Cèitean', + 'An t-Ògmhios', + 'An t-Iuchar', + 'An Lùnastal', + 'An t-Sultain', + 'An Dàmhair', + 'An t-Samhain', + 'An Dùbhlachd', + ], + monthsShort = [ + 'Faoi', + 'Gear', + 'Màrt', + 'Gibl', + 'Cèit', + 'Ògmh', + 'Iuch', + 'Lùn', + 'Sult', + 'Dàmh', + 'Samh', + 'Dùbh', + ], + weekdays = [ + 'Didòmhnaich', + 'Diluain', + 'Dimàirt', + 'Diciadain', + 'Diardaoin', + 'Dihaoine', + 'Disathairne', ], - monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], + weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa']; - var esMx = moment.defineLocale('es-mx', { - months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortDot; - } else if (/-MMM-/.test(format)) { - return monthsShort[m.month()]; - } else { - return monthsShortDot[m.month()]; - } - }, - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), - weekdaysParseExact: true, + var gd = moment.defineLocale('gd', { + months: months, + monthsShort: monthsShort, + monthsParseExact: true, + weekdays: weekdays, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', + LT: 'HH:mm', + LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY H:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', }, calendar: { - sameDay: function () { - return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextDay: function () { - return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextWeek: function () { - return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastDay: function () { - return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastWeek: function () { - return ( - '[el] dddd [pasado a la' + - (this.hours() !== 1 ? 's' : '') + - '] LT' - ); - }, + sameDay: '[An-diugh aig] LT', + nextDay: '[A-màireach aig] LT', + nextWeek: 'dddd [aig] LT', + lastDay: '[An-dè aig] LT', + lastWeek: 'dddd [seo chaidh] [aig] LT', sameElse: 'L', }, relativeTime: { - future: 'en %s', - past: 'hace %s', - s: 'unos segundos', - ss: '%d segundos', - m: 'un minuto', - mm: '%d minutos', - h: 'una hora', - hh: '%d horas', - d: 'un día', - dd: '%d días', - w: 'una semana', - ww: '%d semanas', - M: 'un mes', - MM: '%d meses', - y: 'un año', - yy: '%d años', + future: 'ann an %s', + past: 'bho chionn %s', + s: 'beagan diogan', + ss: '%d diogan', + m: 'mionaid', + mm: '%d mionaidean', + h: 'uair', + hh: '%d uairean', + d: 'latha', + dd: '%d latha', + M: 'mìos', + MM: '%d mìosan', + y: 'bliadhna', + yy: '%d bliadhna', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + return number + output; }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', week: { - dow: 0, // Sunday is the first day of the week. + dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, - invalidDate: 'Fecha inválida', }); - return esMx; + return gd; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-us.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-us.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/gl.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/gl.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2391770__) { //! moment.js locale configuration -//! locale : Spanish (United States) [es-us] -//! author : bustta : https://github.com/bustta -//! author : chrisrodz : https://github.com/chrisrodz +//! locale : Galician [gl] +//! author : Juan G. Hurtado : https://github.com/juanghurtado ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2391770__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( - '_' - ), - monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), - monthsParse = [ - /^ene/i, - /^feb/i, - /^mar/i, - /^abr/i, - /^may/i, - /^jun/i, - /^jul/i, - /^ago/i, - /^sep/i, - /^oct/i, - /^nov/i, - /^dic/i, - ], - monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - - var esUs = moment.defineLocale('es-us', { - months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + var gl = moment.defineLocale('gl', { + months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split( '_' ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortDot; - } else if (/-MMM-/.test(format)) { - return monthsShort[m.month()]; - } else { - return monthsShortDot[m.month()]; - } - }, - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + monthsShort: + 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'), weekdaysParseExact: true, longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'MM/DD/YYYY', + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY h:mm A', - LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', }, calendar: { sameDay: function () { - return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; }, nextDay: function () { - return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; }, nextWeek: function () { - return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'; }, lastDay: function () { - return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT'; }, lastWeek: function () { return ( - '[el] dddd [pasado a la' + - (this.hours() !== 1 ? 's' : '') + - '] LT' + '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT' ); }, sameElse: 'L', }, relativeTime: { - future: 'en %s', - past: 'hace %s', - s: 'unos segundos', + future: function (str) { + if (str.indexOf('un') === 0) { + return 'n' + str; + } + return 'en ' + str; + }, + past: 'hai %s', + s: 'uns segundos', ss: '%d segundos', m: 'un minuto', mm: '%d minutos', - h: 'una hora', + h: 'unha hora', hh: '%d horas', d: 'un día', dd: '%d días', - w: 'una semana', - ww: '%d semanas', M: 'un mes', MM: '%d meses', - y: 'un año', - yy: '%d años', + y: 'un ano', + yy: '%d anos', }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: '%dº', week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return esUs; + return gl; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/gom-deva.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/gom-deva.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2394980__) { //! moment.js locale configuration -//! locale : Spanish [es] -//! author : Julio Napurí : https://github.com/julionc +//! locale : Konkani Devanagari script [gom-deva] +//! author : The Discoverer : https://github.com/WikiDiscoverer ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2394980__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( - '_' - ), - monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), - monthsParse = [ - /^ene/i, - /^feb/i, - /^mar/i, - /^abr/i, - /^may/i, - /^jun/i, - /^jul/i, - /^ago/i, - /^sep/i, - /^oct/i, - /^nov/i, - /^dic/i, - ], - monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'], + ss: [number + ' सॅकंडांनी', number + ' सॅकंड'], + m: ['एका मिणटान', 'एक मिनूट'], + mm: [number + ' मिणटांनी', number + ' मिणटां'], + h: ['एका वरान', 'एक वर'], + hh: [number + ' वरांनी', number + ' वरां'], + d: ['एका दिसान', 'एक दीस'], + dd: [number + ' दिसांनी', number + ' दीस'], + M: ['एका म्हयन्यान', 'एक म्हयनो'], + MM: [number + ' म्हयन्यानी', number + ' म्हयने'], + y: ['एका वर्सान', 'एक वर्स'], + yy: [number + ' वर्सांनी', number + ' वर्सां'], + }; + return isFuture ? format[key][0] : format[key][1]; + } - var es = moment.defineLocale('es', { - months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortDot; - } else if (/-MMM-/.test(format)) { - return monthsShort[m.month()]; - } else { - return monthsShortDot[m.month()]; - } + var gomDeva = moment.defineLocale('gom-deva', { + months: { + standalone: + 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( + '_' + ), + format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, }, - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + monthsShort: + 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'), + weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'), + weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'), weekdaysParseExact: true, longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY H:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + LT: 'A h:mm [वाजतां]', + LTS: 'A h:mm:ss [वाजतां]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [वाजतां]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]', + llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]', }, calendar: { - sameDay: function () { - return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextDay: function () { - return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - nextWeek: function () { - return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastDay: function () { - return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; - }, - lastWeek: function () { - return ( - '[el] dddd [pasado a la' + - (this.hours() !== 1 ? 's' : '') + - '] LT' - ); - }, + sameDay: '[आयज] LT', + nextDay: '[फाल्यां] LT', + nextWeek: '[फुडलो] dddd[,] LT', + lastDay: '[काल] LT', + lastWeek: '[फाटलो] dddd[,] LT', sameElse: 'L', }, relativeTime: { - future: 'en %s', - past: 'hace %s', - s: 'unos segundos', - ss: '%d segundos', - m: 'un minuto', - mm: '%d minutos', - h: 'una hora', - hh: '%d horas', - d: 'un día', - dd: '%d días', - w: 'una semana', - ww: '%d semanas', - M: 'un mes', - MM: '%d meses', - y: 'un año', - yy: '%d años', + future: '%s', + past: '%s आदीं', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(वेर)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'वेर' only applies to day of the month + case 'D': + return number + 'वेर'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /राती|सकाळीं|दनपारां|सांजे/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'राती') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'सकाळीं') { + return hour; + } else if (meridiem === 'दनपारां') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'सांजे') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'राती'; + } else if (hour < 12) { + return 'सकाळीं'; + } else if (hour < 16) { + return 'दनपारां'; + } else if (hour < 20) { + return 'सांजे'; + } else { + return 'राती'; + } }, - invalidDate: 'Fecha inválida', }); - return es; + return gomDeva; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/et.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/et.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/gom-latn.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/gom-latn.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2400262__) { //! moment.js locale configuration -//! locale : Estonian [et] -//! author : Henry Kehlmann : https://github.com/madhenry -//! improvements : Illimar Tambek : https://github.com/ragulka +//! locale : Konkani Latin script [gom-latn] +//! author : The Discoverer : https://github.com/WikiDiscoverer ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2400262__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; @@ -62401,55 +69118,60 @@ module.exports = uniqBy; function processRelativeTime(number, withoutSuffix, key, isFuture) { var format = { - s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'], - ss: [number + 'sekundi', number + 'sekundit'], - m: ['ühe minuti', 'üks minut'], - mm: [number + ' minuti', number + ' minutit'], - h: ['ühe tunni', 'tund aega', 'üks tund'], - hh: [number + ' tunni', number + ' tundi'], - d: ['ühe päeva', 'üks päev'], - M: ['kuu aja', 'kuu aega', 'üks kuu'], - MM: [number + ' kuu', number + ' kuud'], - y: ['ühe aasta', 'aasta', 'üks aasta'], - yy: [number + ' aasta', number + ' aastat'], + s: ['thoddea sekondamni', 'thodde sekond'], + ss: [number + ' sekondamni', number + ' sekond'], + m: ['eka mintan', 'ek minut'], + mm: [number + ' mintamni', number + ' mintam'], + h: ['eka voran', 'ek vor'], + hh: [number + ' voramni', number + ' voram'], + d: ['eka disan', 'ek dis'], + dd: [number + ' disamni', number + ' dis'], + M: ['eka mhoinean', 'ek mhoino'], + MM: [number + ' mhoineamni', number + ' mhoine'], + y: ['eka vorsan', 'ek voros'], + yy: [number + ' vorsamni', number + ' vorsam'], }; - if (withoutSuffix) { - return format[key][2] ? format[key][2] : format[key][1]; - } return isFuture ? format[key][0] : format[key][1]; } - var et = moment.defineLocale('et', { - months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( - '_' - ), - monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split( - '_' - ), - weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split( - '_' - ), - weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), - weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), + var gomLatn = moment.defineLocale('gom-latn', { + months: { + standalone: + 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( + '_' + ), + format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), + weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), + weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), + weekdaysParseExact: true, longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm', + LT: 'A h:mm [vazta]', + LTS: 'A h:mm:ss [vazta]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [vazta]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', + llll: 'ddd, D MMM YYYY, A h:mm [vazta]', }, calendar: { - sameDay: '[Täna,] LT', - nextDay: '[Homme,] LT', - nextWeek: '[Järgmine] dddd LT', - lastDay: '[Eile,] LT', - lastWeek: '[Eelmine] dddd LT', + sameDay: '[Aiz] LT', + nextDay: '[Faleam] LT', + nextWeek: '[Fuddlo] dddd[,] LT', + lastDay: '[Kal] LT', + lastWeek: '[Fattlo] dddd[,] LT', sameElse: 'L', }, relativeTime: { - future: '%s pärast', - past: '%s tagasi', + future: '%s', + past: '%s adim', s: processRelativeTime, ss: processRelativeTime, m: processRelativeTime, @@ -62457,1625 +69179,2083 @@ module.exports = uniqBy; h: processRelativeTime, hh: processRelativeTime, d: processRelativeTime, - dd: '%d päeva', + dd: processRelativeTime, M: processRelativeTime, MM: processRelativeTime, y: processRelativeTime, yy: processRelativeTime, }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', + dayOfMonthOrdinalParse: /\d{1,2}(er)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'er' only applies to day of the month + case 'D': + return number + 'er'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /rati|sokallim|donparam|sanje/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'rati') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'sokallim') { + return hour; + } else if (meridiem === 'donparam') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'sanje') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'rati'; + } else if (hour < 12) { + return 'sokallim'; + } else if (hour < 16) { + return 'donparam'; + } else if (hour < 20) { + return 'sanje'; + } else { + return 'rati'; + } }, }); - return et; + return gomLatn; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/eu.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/eu.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/gu.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/gu.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2405454__) { //! moment.js locale configuration -//! locale : Basque [eu] -//! author : Eneko Illarramendi : https://github.com/eillarra +//! locale : Gujarati [gu] +//! author : Kaushik Thanki : https://github.com/Kaushik1987 ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2405454__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var eu = moment.defineLocale('eu', { - months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( + var symbolMap = { + 1: '૧', + 2: '૨', + 3: '૩', + 4: '૪', + 5: '૫', + 6: '૬', + 7: '૭', + 8: '૮', + 9: '૯', + 0: '૦', + }, + numberMap = { + '૧': '1', + '૨': '2', + '૩': '3', + '૪': '4', + '૫': '5', + '૬': '6', + '૭': '7', + '૮': '8', + '૯': '9', + '૦': '0', + }; + + var gu = moment.defineLocale('gu', { + months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split( '_' ), - monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( + monthsShort: + 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split( '_' ), - monthsParseExact: true, - weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( + weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'), + weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'), + longDateFormat: { + LT: 'A h:mm વાગ્યે', + LTS: 'A h:mm:ss વાગ્યે', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm વાગ્યે', + LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે', + }, + calendar: { + sameDay: '[આજ] LT', + nextDay: '[કાલે] LT', + nextWeek: 'dddd, LT', + lastDay: '[ગઇકાલે] LT', + lastWeek: '[પાછલા] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s મા', + past: '%s પહેલા', + s: 'અમુક પળો', + ss: '%d સેકંડ', + m: 'એક મિનિટ', + mm: '%d મિનિટ', + h: 'એક કલાક', + hh: '%d કલાક', + d: 'એક દિવસ', + dd: '%d દિવસ', + M: 'એક મહિનો', + MM: '%d મહિનો', + y: 'એક વર્ષ', + yy: '%d વર્ષ', + }, + preparse: function (string) { + return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Gujarati notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. + meridiemParse: /રાત|બપોર|સવાર|સાંજ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'રાત') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'સવાર') { + return hour; + } else if (meridiem === 'બપોર') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'સાંજ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'રાત'; + } else if (hour < 10) { + return 'સવાર'; + } else if (hour < 17) { + return 'બપોર'; + } else if (hour < 20) { + return 'સાંજ'; + } else { + return 'રાત'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return gu; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/he.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/he.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2409826__) { + +//! moment.js locale configuration +//! locale : Hebrew [he] +//! author : Tomer Cohen : https://github.com/tomer +//! author : Moshe Simantov : https://github.com/DevelopmentIL +//! author : Tal Ater : https://github.com/TalAter + +;(function (global, factory) { + true ? factory(__nested_webpack_require_2409826__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var he = moment.defineLocale('he', { + months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split( '_' ), - weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), - weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), - weekdaysParseExact: true, + monthsShort: + 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'), + weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), + weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), + weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'YYYY[ko] MMMM[ren] D[a]', - LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', - LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', - l: 'YYYY-M-D', - ll: 'YYYY[ko] MMM D[a]', - lll: 'YYYY[ko] MMM D[a] HH:mm', - llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', + L: 'DD/MM/YYYY', + LL: 'D [ב]MMMM YYYY', + LLL: 'D [ב]MMMM YYYY HH:mm', + LLLL: 'dddd, D [ב]MMMM YYYY HH:mm', + l: 'D/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', }, calendar: { - sameDay: '[gaur] LT[etan]', - nextDay: '[bihar] LT[etan]', - nextWeek: 'dddd LT[etan]', - lastDay: '[atzo] LT[etan]', - lastWeek: '[aurreko] dddd LT[etan]', + sameDay: '[היום ב־]LT', + nextDay: '[מחר ב־]LT', + nextWeek: 'dddd [בשעה] LT', + lastDay: '[אתמול ב־]LT', + lastWeek: '[ביום] dddd [האחרון בשעה] LT', sameElse: 'L', }, relativeTime: { - future: '%s barru', - past: 'duela %s', - s: 'segundo batzuk', - ss: '%d segundo', - m: 'minutu bat', - mm: '%d minutu', - h: 'ordu bat', - hh: '%d ordu', - d: 'egun bat', - dd: '%d egun', - M: 'hilabete bat', - MM: '%d hilabete', - y: 'urte bat', - yy: '%d urte', + future: 'בעוד %s', + past: 'לפני %s', + s: 'מספר שניות', + ss: '%d שניות', + m: 'דקה', + mm: '%d דקות', + h: 'שעה', + hh: function (number) { + if (number === 2) { + return 'שעתיים'; + } + return number + ' שעות'; + }, + d: 'יום', + dd: function (number) { + if (number === 2) { + return 'יומיים'; + } + return number + ' ימים'; + }, + M: 'חודש', + MM: function (number) { + if (number === 2) { + return 'חודשיים'; + } + return number + ' חודשים'; + }, + y: 'שנה', + yy: function (number) { + if (number === 2) { + return 'שנתיים'; + } else if (number % 10 === 0 && number !== 10) { + return number + ' שנה'; + } + return number + ' שנים'; + }, }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. + meridiemParse: + /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, + isPM: function (input) { + return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 5) { + return 'לפנות בוקר'; + } else if (hour < 10) { + return 'בבוקר'; + } else if (hour < 12) { + return isLower ? 'לפנה"צ' : 'לפני הצהריים'; + } else if (hour < 18) { + return isLower ? 'אחה"צ' : 'אחרי הצהריים'; + } else { + return 'בערב'; + } }, }); - return eu; + return he; }))); -/***/ }), +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/hi.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/hi.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2413564__) { + +//! moment.js locale configuration +//! locale : Hindi [hi] +//! author : Mayank Singhal : https://github.com/mayanksinghal + +;(function (global, factory) { + true ? factory(__nested_webpack_require_2413564__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }, + monthsParse = [ + /^जन/i, + /^फ़र|फर/i, + /^मार्च/i, + /^अप्रै/i, + /^मई/i, + /^जून/i, + /^जुल/i, + /^अग/i, + /^सितं|सित/i, + /^अक्टू/i, + /^नव|नवं/i, + /^दिसं|दिस/i, + ], + shortMonthsParse = [ + /^जन/i, + /^फ़र/i, + /^मार्च/i, + /^अप्रै/i, + /^मई/i, + /^जून/i, + /^जुल/i, + /^अग/i, + /^सित/i, + /^अक्टू/i, + /^नव/i, + /^दिस/i, + ]; + + var hi = moment.defineLocale('hi', { + months: { + format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split( + '_' + ), + standalone: + 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split( + '_' + ), + }, + monthsShort: + 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'), + weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), + longDateFormat: { + LT: 'A h:mm बजे', + LTS: 'A h:mm:ss बजे', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm बजे', + LLLL: 'dddd, D MMMM YYYY, A h:mm बजे', + }, -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fa.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fa.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: shortMonthsParse, -//! moment.js locale configuration -//! locale : Persian [fa] -//! author : Ebrahim Byagowi : https://github.com/ebraminio + monthsRegex: + /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + monthsShortRegex: + /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, - //! moment.js locale configuration + monthsStrictRegex: + /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i, - var symbolMap = { - 1: '۱', - 2: '۲', - 3: '۳', - 4: '۴', - 5: '۵', - 6: '۶', - 7: '۷', - 8: '۸', - 9: '۹', - 0: '۰', - }, - numberMap = { - '۱': '1', - '۲': '2', - '۳': '3', - '۴': '4', - '۵': '5', - '۶': '6', - '۷': '7', - '۸': '8', - '۹': '9', - '۰': '0', - }; + monthsShortStrictRegex: + /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i, - var fa = moment.defineLocale('fa', { - months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( - '_' - ), - monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( - '_' - ), - weekdays: 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( - '_' - ), - weekdaysShort: 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( - '_' - ), - weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - meridiemParse: /قبل از ظهر|بعد از ظهر/, - isPM: function (input) { - return /بعد از ظهر/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'قبل از ظهر'; - } else { - return 'بعد از ظهر'; - } - }, calendar: { - sameDay: '[امروز ساعت] LT', - nextDay: '[فردا ساعت] LT', - nextWeek: 'dddd [ساعت] LT', - lastDay: '[دیروز ساعت] LT', - lastWeek: 'dddd [پیش] [ساعت] LT', + sameDay: '[आज] LT', + nextDay: '[कल] LT', + nextWeek: 'dddd, LT', + lastDay: '[कल] LT', + lastWeek: '[पिछले] dddd, LT', sameElse: 'L', }, relativeTime: { - future: 'در %s', - past: '%s پیش', - s: 'چند ثانیه', - ss: '%d ثانیه', - m: 'یک دقیقه', - mm: '%d دقیقه', - h: 'یک ساعت', - hh: '%d ساعت', - d: 'یک روز', - dd: '%d روز', - M: 'یک ماه', - MM: '%d ماه', - y: 'یک سال', - yy: '%d سال', + future: '%s में', + past: '%s पहले', + s: 'कुछ ही क्षण', + ss: '%d सेकंड', + m: 'एक मिनट', + mm: '%d मिनट', + h: 'एक घंटा', + hh: '%d घंटे', + d: 'एक दिन', + dd: '%d दिन', + M: 'एक महीने', + MM: '%d महीने', + y: 'एक वर्ष', + yy: '%d वर्ष', }, preparse: function (string) { - return string - .replace(/[۰-۹]/g, function (match) { - return numberMap[match]; - }) - .replace(/،/g, ','); + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); }, postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap[match]; - }) - .replace(/,/g, '،'); + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Hindi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. + meridiemParse: /रात|सुबह|दोपहर|शाम/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'रात') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'सुबह') { + return hour; + } else if (meridiem === 'दोपहर') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'शाम') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'रात'; + } else if (hour < 10) { + return 'सुबह'; + } else if (hour < 17) { + return 'दोपहर'; + } else if (hour < 20) { + return 'शाम'; + } else { + return 'रात'; + } }, - dayOfMonthOrdinalParse: /\d{1,2}م/, - ordinal: '%dم', week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. }, }); - return fa; + return hi; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fi.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fi.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/hr.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/hr.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2419457__) { //! moment.js locale configuration -//! locale : Finnish [fi] -//! author : Tarmo Aidantausta : https://github.com/bleadof +//! locale : Croatian [hr] +//! author : Bojan Marković : https://github.com/bmarkovic ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2419457__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split( - ' ' - ), - numbersFuture = [ - 'nolla', - 'yhden', - 'kahden', - 'kolmen', - 'neljän', - 'viiden', - 'kuuden', - numbersPast[7], - numbersPast[8], - numbersPast[9], - ]; - function translate(number, withoutSuffix, key, isFuture) { - var result = ''; + function translate(number, withoutSuffix, key) { + var result = number + ' '; switch (key) { - case 's': - return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; case 'ss': - result = isFuture ? 'sekunnin' : 'sekuntia'; - break; + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; case 'm': - return isFuture ? 'minuutin' : 'minuutti'; + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; case 'mm': - result = isFuture ? 'minuutin' : 'minuuttia'; - break; + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; case 'h': - return isFuture ? 'tunnin' : 'tunti'; + return withoutSuffix ? 'jedan sat' : 'jednog sata'; case 'hh': - result = isFuture ? 'tunnin' : 'tuntia'; - break; - case 'd': - return isFuture ? 'päivän' : 'päivä'; + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; case 'dd': - result = isFuture ? 'päivän' : 'päivää'; - break; - case 'M': - return isFuture ? 'kuukauden' : 'kuukausi'; + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; case 'MM': - result = isFuture ? 'kuukauden' : 'kuukautta'; - break; - case 'y': - return isFuture ? 'vuoden' : 'vuosi'; + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; case 'yy': - result = isFuture ? 'vuoden' : 'vuotta'; - break; + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; } - result = verbalNumber(number, isFuture) + ' ' + result; - return result; - } - function verbalNumber(number, isFuture) { - return number < 10 - ? isFuture - ? numbersFuture[number] - : numbersPast[number] - : number; } - var fi = moment.defineLocale('fi', { - months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( - '_' - ), - monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split( - '_' - ), - weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( + var hr = moment.defineLocale('hr', { + months: { + format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( + '_' + ), + standalone: + 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( + '_' + ), + }, + monthsShort: + 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( '_' ), - weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), - weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', + LT: 'H:mm', + LTS: 'H:mm:ss', L: 'DD.MM.YYYY', - LL: 'Do MMMM[ta] YYYY', - LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm', - LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', - l: 'D.M.YYYY', - ll: 'Do MMM YYYY', - lll: 'Do MMM YYYY, [klo] HH.mm', - llll: 'ddd, Do MMM YYYY, [klo] HH.mm', + LL: 'Do MMMM YYYY', + LLL: 'Do MMMM YYYY H:mm', + LLLL: 'dddd, Do MMMM YYYY H:mm', }, calendar: { - sameDay: '[tänään] [klo] LT', - nextDay: '[huomenna] [klo] LT', - nextWeek: 'dddd [klo] LT', - lastDay: '[eilen] [klo] LT', - lastWeek: '[viime] dddd[na] [klo] LT', + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[jučer u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prošlu] [nedjelju] [u] LT'; + case 3: + return '[prošlu] [srijedu] [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, sameElse: 'L', }, relativeTime: { - future: '%s päästä', - past: '%s sitten', - s: translate, + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', ss: translate, m: translate, mm: translate, h: translate, hh: translate, - d: translate, + d: 'dan', dd: translate, - M: translate, + M: 'mjesec', MM: translate, - y: translate, + y: 'godinu', yy: translate, }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + doy: 7, // The week that contains Jan 7th is the first week of the year. }, }); - return fi; + return hr; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fil.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fil.js ***! - \**********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/hu.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/hu.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2425339__) { //! moment.js locale configuration -//! locale : Filipino [fil] -//! author : Dan Hagman : https://github.com/hagmandan -//! author : Matthew Co : https://github.com/matthewdeeco +//! locale : Hungarian [hu] +//! author : Adam Brunner : https://github.com/adambrunner +//! author : Peter Viszt : https://github.com/passatgt ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2425339__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var fil = moment.defineLocale('fil', { - months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( - '_' - ), - monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), - weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + var weekEndings = + 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' '); + function translate(number, withoutSuffix, key, isFuture) { + var num = number; + switch (key) { + case 's': + return isFuture || withoutSuffix + ? 'néhány másodperc' + : 'néhány másodperce'; + case 'ss': + return num + (isFuture || withoutSuffix) + ? ' másodperc' + : ' másodperce'; + case 'm': + return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'mm': + return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'h': + return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'hh': + return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'd': + return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'dd': + return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'M': + return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'MM': + return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'y': + return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); + case 'yy': + return num + (isFuture || withoutSuffix ? ' év' : ' éve'); + } + return ''; + } + function week(isFuture) { + return ( + (isFuture ? '' : '[múlt] ') + + '[' + + weekEndings[this.day()] + + '] LT[-kor]' + ); + } + + var hu = moment.defineLocale('hu', { + months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split( '_' ), - weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), - weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + monthsShort: + 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'), + weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), + weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'MM/D/YYYY', - LL: 'MMMM D, YYYY', - LLL: 'MMMM D, YYYY HH:mm', - LLLL: 'dddd, MMMM DD, YYYY HH:mm', + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY. MMMM D.', + LLL: 'YYYY. MMMM D. H:mm', + LLLL: 'YYYY. MMMM D., dddd H:mm', + }, + meridiemParse: /de|du/i, + isPM: function (input) { + return input.charAt(1).toLowerCase() === 'u'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower === true ? 'de' : 'DE'; + } else { + return isLower === true ? 'du' : 'DU'; + } }, calendar: { - sameDay: 'LT [ngayong araw]', - nextDay: '[Bukas ng] LT', - nextWeek: 'LT [sa susunod na] dddd', - lastDay: 'LT [kahapon]', - lastWeek: 'LT [noong nakaraang] dddd', + sameDay: '[ma] LT[-kor]', + nextDay: '[holnap] LT[-kor]', + nextWeek: function () { + return week.call(this, true); + }, + lastDay: '[tegnap] LT[-kor]', + lastWeek: function () { + return week.call(this, false); + }, sameElse: 'L', }, relativeTime: { - future: 'sa loob ng %s', - past: '%s ang nakalipas', - s: 'ilang segundo', - ss: '%d segundo', - m: 'isang minuto', - mm: '%d minuto', - h: 'isang oras', - hh: '%d oras', - d: 'isang araw', - dd: '%d araw', - M: 'isang buwan', - MM: '%d buwan', - y: 'isang taon', - yy: '%d taon', - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal: function (number) { - return number; + future: '%s múlva', + past: '%s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return fil; + return hu; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fo.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fo.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/hy-am.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/hy-am.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2430134__) { //! moment.js locale configuration -//! locale : Faroese [fo] -//! author : Ragnar Johannesen : https://github.com/ragnar123 -//! author : Kristian Sakarisson : https://github.com/sakarisson +//! locale : Armenian [hy-am] +//! author : Armendarabyan : https://github.com/armendarabyan ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2430134__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var fo = moment.defineLocale('fo', { - months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split( - '_' - ), - monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), - weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split( - '_' - ), - weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'), - weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'), + var hyAm = moment.defineLocale('hy-am', { + months: { + format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split( + '_' + ), + standalone: + 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split( + '_' + ), + }, + monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), + weekdays: + 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split( + '_' + ), + weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D. MMMM, YYYY HH:mm', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY թ.', + LLL: 'D MMMM YYYY թ., HH:mm', + LLLL: 'dddd, D MMMM YYYY թ., HH:mm', }, calendar: { - sameDay: '[Í dag kl.] LT', - nextDay: '[Í morgin kl.] LT', - nextWeek: 'dddd [kl.] LT', - lastDay: '[Í gjár kl.] LT', - lastWeek: '[síðstu] dddd [kl] LT', + sameDay: '[այսօր] LT', + nextDay: '[վաղը] LT', + lastDay: '[երեկ] LT', + nextWeek: function () { + return 'dddd [օրը ժամը] LT'; + }, + lastWeek: function () { + return '[անցած] dddd [օրը ժամը] LT'; + }, sameElse: 'L', }, relativeTime: { - future: 'um %s', - past: '%s síðani', - s: 'fá sekund', - ss: '%d sekundir', - m: 'ein minuttur', - mm: '%d minuttir', - h: 'ein tími', - hh: '%d tímar', - d: 'ein dagur', - dd: '%d dagar', - M: 'ein mánaður', - MM: '%d mánaðir', - y: 'eitt ár', - yy: '%d ár', + future: '%s հետո', + past: '%s առաջ', + s: 'մի քանի վայրկյան', + ss: '%d վայրկյան', + m: 'րոպե', + mm: '%d րոպե', + h: 'ժամ', + hh: '%d ժամ', + d: 'օր', + dd: '%d օր', + M: 'ամիս', + MM: '%d ամիս', + y: 'տարի', + yy: '%d տարի', + }, + meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, + isPM: function (input) { + return /^(ցերեկվա|երեկոյան)$/.test(input); + }, + meridiem: function (hour) { + if (hour < 4) { + return 'գիշերվա'; + } else if (hour < 12) { + return 'առավոտվա'; + } else if (hour < 17) { + return 'ցերեկվա'; + } else { + return 'երեկոյան'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, + ordinal: function (number, period) { + switch (period) { + case 'DDD': + case 'w': + case 'W': + case 'DDDo': + if (number === 1) { + return number + '-ին'; + } + return number + '-րդ'; + default: + return number; + } }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + doy: 7, // The week that contains Jan 7th is the first week of the year. }, }); - return fo; + return hyAm; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr-ca.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr-ca.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/id.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/id.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2433817__) { //! moment.js locale configuration -//! locale : French (Canada) [fr-ca] -//! author : Jonathan Abourbih : https://github.com/jonbca +//! locale : Indonesian [id] +//! author : Mohammad Satrio Utomo : https://github.com/tyok +//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2433817__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var frCa = moment.defineLocale('fr-ca', { - months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( - '_' - ), - monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + var id = moment.defineLocale('id', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( '_' ), - monthsParseExact: true, - weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), - weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), - weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), - weekdaysParseExact: true, + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|siang|sore|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'siang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sore' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'siang'; + } else if (hours < 19) { + return 'sore'; + } else { + return 'malam'; + } }, calendar: { - sameDay: '[Aujourd’hui à] LT', - nextDay: '[Demain à] LT', - nextWeek: 'dddd [à] LT', - lastDay: '[Hier à] LT', - lastWeek: 'dddd [dernier à] LT', + sameDay: '[Hari ini pukul] LT', + nextDay: '[Besok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kemarin pukul] LT', + lastWeek: 'dddd [lalu pukul] LT', sameElse: 'L', }, relativeTime: { - future: 'dans %s', - past: 'il y a %s', - s: 'quelques secondes', - ss: '%d secondes', - m: 'une minute', - mm: '%d minutes', - h: 'une heure', - hh: '%d heures', - d: 'un jour', - dd: '%d jours', - M: 'un mois', - MM: '%d mois', - y: 'un an', - yy: '%d ans', + future: 'dalam %s', + past: '%s yang lalu', + s: 'beberapa detik', + ss: '%d detik', + m: 'semenit', + mm: '%d menit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal: function (number, period) { - switch (period) { - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'D': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. }, }); - return frCa; + return id; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr-ch.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr-ch.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/is.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/is.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2437052__) { //! moment.js locale configuration -//! locale : French (Switzerland) [fr-ch] -//! author : Gaspard Bucher : https://github.com/gaspard +//! locale : Icelandic [is] +//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2437052__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var frCh = moment.defineLocale('fr-ch', { - months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( - '_' - ), - monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + function plural(n) { + if (n % 100 === 11) { + return true; + } else if (n % 10 === 1) { + return false; + } + return true; + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nokkrar sekúndur' + : 'nokkrum sekúndum'; + case 'ss': + if (plural(number)) { + return ( + result + + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum') + ); + } + return result + 'sekúnda'; + case 'm': + return withoutSuffix ? 'mínúta' : 'mínútu'; + case 'mm': + if (plural(number)) { + return ( + result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum') + ); + } else if (withoutSuffix) { + return result + 'mínúta'; + } + return result + 'mínútu'; + case 'hh': + if (plural(number)) { + return ( + result + + (withoutSuffix || isFuture + ? 'klukkustundir' + : 'klukkustundum') + ); + } + return result + 'klukkustund'; + case 'd': + if (withoutSuffix) { + return 'dagur'; + } + return isFuture ? 'dag' : 'degi'; + case 'dd': + if (plural(number)) { + if (withoutSuffix) { + return result + 'dagar'; + } + return result + (isFuture ? 'daga' : 'dögum'); + } else if (withoutSuffix) { + return result + 'dagur'; + } + return result + (isFuture ? 'dag' : 'degi'); + case 'M': + if (withoutSuffix) { + return 'mánuður'; + } + return isFuture ? 'mánuð' : 'mánuði'; + case 'MM': + if (plural(number)) { + if (withoutSuffix) { + return result + 'mánuðir'; + } + return result + (isFuture ? 'mánuði' : 'mánuðum'); + } else if (withoutSuffix) { + return result + 'mánuður'; + } + return result + (isFuture ? 'mánuð' : 'mánuði'); + case 'y': + return withoutSuffix || isFuture ? 'ár' : 'ári'; + case 'yy': + if (plural(number)) { + return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); + } + return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); + } + } + + var is = moment.defineLocale('is', { + months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split( '_' ), - monthsParseExact: true, - weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), - weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), - weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), - weekdaysParseExact: true, + monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'), + weekdays: + 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split( + '_' + ), + weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'), + weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'), longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', + LT: 'H:mm', + LTS: 'H:mm:ss', L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', }, calendar: { - sameDay: '[Aujourd’hui à] LT', - nextDay: '[Demain à] LT', - nextWeek: 'dddd [à] LT', - lastDay: '[Hier à] LT', - lastWeek: 'dddd [dernier à] LT', + sameDay: '[í dag kl.] LT', + nextDay: '[á morgun kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[í gær kl.] LT', + lastWeek: '[síðasta] dddd [kl.] LT', sameElse: 'L', }, relativeTime: { - future: 'dans %s', - past: 'il y a %s', - s: 'quelques secondes', - ss: '%d secondes', - m: 'une minute', - mm: '%d minutes', - h: 'une heure', - hh: '%d heures', - d: 'un jour', - dd: '%d jours', - M: 'un mois', - MM: '%d mois', - y: 'un an', - yy: '%d ans', - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal: function (number, period) { - switch (period) { - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'D': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } + future: 'eftir %s', + past: 'fyrir %s síðan', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: 'klukkustund', + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return frCh; + return is; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/it-ch.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/it-ch.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2442556__) { //! moment.js locale configuration -//! locale : French [fr] -//! author : John Fischer : https://github.com/jfroffice +//! locale : Italian (Switzerland) [it-ch] +//! author : xfh : https://github.com/xfh ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2442556__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, - monthsShortStrictRegex = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i, - monthsRegex = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, - monthsParse = [ - /^janv/i, - /^févr/i, - /^mars/i, - /^avr/i, - /^mai/i, - /^juin/i, - /^juil/i, - /^août/i, - /^sept/i, - /^oct/i, - /^nov/i, - /^déc/i, - ]; - - var fr = moment.defineLocale('fr', { - months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + var itCh = moment.defineLocale('it-ch', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( '_' ), - monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( '_' ), - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: monthsStrictRegex, - monthsShortStrictRegex: monthsShortStrictRegex, - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), - weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), - weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), - weekdaysParseExact: true, + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', + L: 'DD.MM.YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[Aujourd’hui à] LT', - nextDay: '[Demain à] LT', - nextWeek: 'dddd [à] LT', - lastDay: '[Hier à] LT', - lastWeek: 'dddd [dernier à] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dans %s', - past: 'il y a %s', - s: 'quelques secondes', - ss: '%d secondes', - m: 'une minute', - mm: '%d minutes', - h: 'une heure', - hh: '%d heures', - d: 'un jour', - dd: '%d jours', - w: 'une semaine', - ww: '%d semaines', - M: 'un mois', - MM: '%d mois', - y: 'un an', - yy: '%d ans', - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|)/, - ordinal: function (number, period) { - switch (period) { - // TODO: Return 'e' when day of month > 1. Move this case inside - // block for masculine words below. - // See https://github.com/moment/moment/issues/3375 - case 'D': - return number + (number === 1 ? 'er' : ''); - - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } + sameDay: '[Oggi alle] LT', + nextDay: '[Domani alle] LT', + nextWeek: 'dddd [alle] LT', + lastDay: '[Ieri alle] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[la scorsa] dddd [alle] LT'; + default: + return '[lo scorso] dddd [alle] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; + }, + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return fr; + return itCh; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fy.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fy.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/it.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/it.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2445310__) { //! moment.js locale configuration -//! locale : Frisian [fy] -//! author : Robin van der Vliet : https://github.com/robin0van0der0v +//! locale : Italian [it] +//! author : Lorenzo : https://github.com/aliem +//! author: Mattia Larentis: https://github.com/nostalgiaz +//! author: Marco : https://github.com/Manfre98 ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2445310__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split( - '_' - ), - monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split( - '_' - ); - - var fy = moment.defineLocale('fy', { - months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( + var it = moment.defineLocale('it', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( '_' ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortWithDots; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots[m.month()]; - } else { - return monthsShortWithDots[m.month()]; - } - }, - monthsParseExact: true, - weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( '_' ), - weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), - weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), - weekdaysParseExact: true, + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD-MM-YYYY', + L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[hjoed om] LT', - nextDay: '[moarn om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[juster om] LT', - lastWeek: '[ôfrûne] dddd [om] LT', + sameDay: function () { + return ( + '[Oggi a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextDay: function () { + return ( + '[Domani a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextWeek: function () { + return ( + 'dddd [a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastDay: function () { + return ( + '[Ieri a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastWeek: function () { + switch (this.day()) { + case 0: + return ( + '[La scorsa] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + default: + return ( + '[Lo scorso] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + } + }, sameElse: 'L', }, relativeTime: { - future: 'oer %s', - past: '%s lyn', - s: 'in pear sekonden', - ss: '%d sekonden', - m: 'ien minút', - mm: '%d minuten', - h: 'ien oere', - hh: '%d oeren', - d: 'ien dei', - dd: '%d dagen', - M: 'ien moanne', - MM: '%d moannen', - y: 'ien jier', - yy: '%d jierren', - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal: function (number) { - return ( - number + - (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') - ); + future: 'tra %s', + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + w: 'una settimana', + ww: '%d settimane', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return fy; + return it; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ga.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ga.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ja.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ja.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2449530__) { //! moment.js locale configuration -//! locale : Irish or Irish Gaelic [ga] -//! author : André Silva : https://github.com/askpt +//! locale : Japanese [ja] +//! author : LI Long : https://github.com/baryon ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2449530__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var months = [ - 'Eanáir', - 'Feabhra', - 'Márta', - 'Aibreán', - 'Bealtaine', - 'Meitheamh', - 'Iúil', - 'Lúnasa', - 'Meán Fómhair', - 'Deireadh Fómhair', - 'Samhain', - 'Nollaig', - ], - monthsShort = [ - 'Ean', - 'Feabh', - 'Márt', - 'Aib', - 'Beal', - 'Meith', - 'Iúil', - 'Lún', - 'M.F.', - 'D.F.', - 'Samh', - 'Noll', - ], - weekdays = [ - 'Dé Domhnaigh', - 'Dé Luain', - 'Dé Máirt', - 'Dé Céadaoin', - 'Déardaoin', - 'Dé hAoine', - 'Dé Sathairn', + var ja = moment.defineLocale('ja', { + eras: [ + { + since: '2019-05-01', + offset: 1, + name: '令和', + narrow: '㋿', + abbr: 'R', + }, + { + since: '1989-01-08', + until: '2019-04-30', + offset: 1, + name: '平成', + narrow: '㍻', + abbr: 'H', + }, + { + since: '1926-12-25', + until: '1989-01-07', + offset: 1, + name: '昭和', + narrow: '㍼', + abbr: 'S', + }, + { + since: '1912-07-30', + until: '1926-12-24', + offset: 1, + name: '大正', + narrow: '㍽', + abbr: 'T', + }, + { + since: '1873-01-01', + until: '1912-07-29', + offset: 6, + name: '明治', + narrow: '㍾', + abbr: 'M', + }, + { + since: '0001-01-01', + until: '1873-12-31', + offset: 1, + name: '西暦', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: '紀元前', + narrow: 'BC', + abbr: 'BC', + }, ], - weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'], - weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa']; - - var ga = moment.defineLocale('ga', { - months: months, - monthsShort: monthsShort, - monthsParseExact: true, - weekdays: weekdays, - weekdaysShort: weekdaysShort, - weekdaysMin: weekdaysMin, + eraYearOrdinalRegex: /(元|\d+)年/, + eraYearOrdinalParse: function (input, match) { + return match[1] === '元' ? 1 : parseInt(match[1] || input, 10); + }, + months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'), + weekdaysShort: '日_月_火_水_木_金_土'.split('_'), + weekdaysMin: '日_月_火_水_木_金_土'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日 dddd HH:mm', + l: 'YYYY/MM/DD', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日(ddd) HH:mm', + }, + meridiemParse: /午前|午後/i, + isPM: function (input) { + return input === '午後'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '午前'; + } else { + return '午後'; + } }, calendar: { - sameDay: '[Inniu ag] LT', - nextDay: '[Amárach ag] LT', - nextWeek: 'dddd [ag] LT', - lastDay: '[Inné ag] LT', - lastWeek: 'dddd [seo caite] [ag] LT', + sameDay: '[今日] LT', + nextDay: '[明日] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[来週]dddd LT'; + } else { + return 'dddd LT'; + } + }, + lastDay: '[昨日] LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[先週]dddd LT'; + } else { + return 'dddd LT'; + } + }, sameElse: 'L', }, - relativeTime: { - future: 'i %s', - past: '%s ó shin', - s: 'cúpla soicind', - ss: '%d soicind', - m: 'nóiméad', - mm: '%d nóiméad', - h: 'uair an chloig', - hh: '%d uair an chloig', - d: 'lá', - dd: '%d lá', - M: 'mí', - MM: '%d míonna', - y: 'bliain', - yy: '%d bliain', - }, - dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, - ordinal: function (number) { - var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; - return number + output; + dayOfMonthOrdinalParse: /\d{1,2}日/, + ordinal: function (number, period) { + switch (period) { + case 'y': + return number === 1 ? '元年' : number + '年'; + case 'd': + case 'D': + case 'DDD': + return number + '日'; + default: + return number; + } }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + relativeTime: { + future: '%s後', + past: '%s前', + s: '数秒', + ss: '%d秒', + m: '1分', + mm: '%d分', + h: '1時間', + hh: '%d時間', + d: '1日', + dd: '%d日', + M: '1ヶ月', + MM: '%dヶ月', + y: '1年', + yy: '%d年', }, }); - return ga; + return ja; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gd.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gd.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/jv.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/jv.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2454349__) { //! moment.js locale configuration -//! locale : Scottish Gaelic [gd] -//! author : Jon Ashdown : https://github.com/jonashdown +//! locale : Javanese [jv] +//! author : Rony Lantip : https://github.com/lantip +//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2454349__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var months = [ - 'Am Faoilleach', - 'An Gearran', - 'Am Màrt', - 'An Giblean', - 'An Cèitean', - 'An t-Ògmhios', - 'An t-Iuchar', - 'An Lùnastal', - 'An t-Sultain', - 'An Dàmhair', - 'An t-Samhain', - 'An Dùbhlachd', - ], - monthsShort = [ - 'Faoi', - 'Gear', - 'Màrt', - 'Gibl', - 'Cèit', - 'Ògmh', - 'Iuch', - 'Lùn', - 'Sult', - 'Dàmh', - 'Samh', - 'Dùbh', - ], - weekdays = [ - 'Didòmhnaich', - 'Diluain', - 'Dimàirt', - 'Diciadain', - 'Diardaoin', - 'Dihaoine', - 'Disathairne', - ], - weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], - weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa']; - - var gd = moment.defineLocale('gd', { - months: months, - monthsShort: monthsShort, - monthsParseExact: true, - weekdays: weekdays, - weekdaysShort: weekdaysShort, - weekdaysMin: weekdaysMin, + var jv = moment.defineLocale('jv', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), + weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', + LT: 'HH.mm', + LTS: 'HH.mm.ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /enjing|siyang|sonten|ndalu/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'enjing') { + return hour; + } else if (meridiem === 'siyang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sonten' || meridiem === 'ndalu') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'enjing'; + } else if (hours < 15) { + return 'siyang'; + } else if (hours < 19) { + return 'sonten'; + } else { + return 'ndalu'; + } }, calendar: { - sameDay: '[An-diugh aig] LT', - nextDay: '[A-màireach aig] LT', - nextWeek: 'dddd [aig] LT', - lastDay: '[An-dè aig] LT', - lastWeek: 'dddd [seo chaidh] [aig] LT', + sameDay: '[Dinten puniko pukul] LT', + nextDay: '[Mbenjang pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kala wingi pukul] LT', + lastWeek: 'dddd [kepengker pukul] LT', sameElse: 'L', }, relativeTime: { - future: 'ann an %s', - past: 'bho chionn %s', - s: 'beagan diogan', - ss: '%d diogan', - m: 'mionaid', - mm: '%d mionaidean', - h: 'uair', - hh: '%d uairean', - d: 'latha', - dd: '%d latha', - M: 'mìos', - MM: '%d mìosan', - y: 'bliadhna', - yy: '%d bliadhna', - }, - dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, - ordinal: function (number) { - var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; - return number + output; + future: 'wonten ing %s', + past: '%s ingkang kepengker', + s: 'sawetawis detik', + ss: '%d detik', + m: 'setunggal menit', + mm: '%d menit', + h: 'setunggal jam', + hh: '%d jam', + d: 'sedinten', + dd: '%d dinten', + M: 'sewulan', + MM: '%d wulan', + y: 'setaun', + yy: '%d taun', }, week: { dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + doy: 7, // The week that contains Jan 7th is the first week of the year. }, }); - return gd; + return jv; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gl.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gl.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ka.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ka.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2457593__) { //! moment.js locale configuration -//! locale : Galician [gl] -//! author : Juan G. Hurtado : https://github.com/juanghurtado +//! locale : Georgian [ka] +//! author : Irakli Janiashvili : https://github.com/IrakliJani ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2457593__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var gl = moment.defineLocale('gl', { - months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split( - '_' - ), - monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split( + var ka = moment.defineLocale('ka', { + months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split( '_' ), - monthsParseExact: true, - weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'), - weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'), - weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'), - weekdaysParseExact: true, + monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), + weekdays: { + standalone: + 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split( + '_' + ), + format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split( + '_' + ), + isFormat: /(წინა|შემდეგ)/, + }, + weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), + weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', + LT: 'HH:mm', + LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY H:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', }, calendar: { - sameDay: function () { - return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; - }, - nextDay: function () { - return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; - }, - nextWeek: function () { - return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'; - }, - lastDay: function () { - return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT'; - }, - lastWeek: function () { - return ( - '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT' - ); - }, + sameDay: '[დღეს] LT[-ზე]', + nextDay: '[ხვალ] LT[-ზე]', + lastDay: '[გუშინ] LT[-ზე]', + nextWeek: '[შემდეგ] dddd LT[-ზე]', + lastWeek: '[წინა] dddd LT-ზე', sameElse: 'L', }, relativeTime: { - future: function (str) { - if (str.indexOf('un') === 0) { - return 'n' + str; + future: function (s) { + return s.replace( + /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, + function ($0, $1, $2) { + return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში'; + } + ); + }, + past: function (s) { + if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) { + return s.replace(/(ი|ე)$/, 'ის წინ'); } - return 'en ' + str; + if (/წელი/.test(s)) { + return s.replace(/წელი$/, 'წლის წინ'); + } + return s; }, - past: 'hai %s', - s: 'uns segundos', - ss: '%d segundos', - m: 'un minuto', - mm: '%d minutos', - h: 'unha hora', - hh: '%d horas', - d: 'un día', - dd: '%d días', - M: 'un mes', - MM: '%d meses', - y: 'un ano', - yy: '%d anos', + s: 'რამდენიმე წამი', + ss: '%d წამი', + m: 'წუთი', + mm: '%d წუთი', + h: 'საათი', + hh: '%d საათი', + d: 'დღე', + dd: '%d დღე', + M: 'თვე', + MM: '%d თვე', + y: 'წელი', + yy: '%d წელი', + }, + dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, + ordinal: function (number) { + if (number === 0) { + return number; + } + if (number === 1) { + return number + '-ლი'; + } + if ( + number < 20 || + (number <= 100 && number % 20 === 0) || + number % 100 === 0 + ) { + return 'მე-' + number; + } + return number + '-ე'; }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + dow: 1, + doy: 7, }, }); - return gl; + return ka; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gom-deva.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gom-deva.js ***! - \***************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/kk.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/kk.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2461141__) { //! moment.js locale configuration -//! locale : Konkani Devanagari script [gom-deva] -//! author : The Discoverer : https://github.com/WikiDiscoverer +//! locale : Kazakh [kk] +//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2461141__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'], - ss: [number + ' सॅकंडांनी', number + ' सॅकंड'], - m: ['एका मिणटान', 'एक मिनूट'], - mm: [number + ' मिणटांनी', number + ' मिणटां'], - h: ['एका वरान', 'एक वर'], - hh: [number + ' वरांनी', number + ' वरां'], - d: ['एका दिसान', 'एक दीस'], - dd: [number + ' दिसांनी', number + ' दीस'], - M: ['एका म्हयन्यान', 'एक म्हयनो'], - MM: [number + ' म्हयन्यानी', number + ' म्हयने'], - y: ['एका वर्सान', 'एक वर्स'], - yy: [number + ' वर्सांनी', number + ' वर्सां'], - }; - return isFuture ? format[key][0] : format[key][1]; - } + var suffixes = { + 0: '-ші', + 1: '-ші', + 2: '-ші', + 3: '-ші', + 4: '-ші', + 5: '-ші', + 6: '-шы', + 7: '-ші', + 8: '-ші', + 9: '-шы', + 10: '-шы', + 20: '-шы', + 30: '-шы', + 40: '-шы', + 50: '-ші', + 60: '-шы', + 70: '-ші', + 80: '-ші', + 90: '-шы', + 100: '-ші', + }; - var gomDeva = moment.defineLocale('gom-deva', { - months: { - standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( - '_' - ), - format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split( - '_' - ), - isFormat: /MMMM(\s)+D[oD]?/, - }, - monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( + var kk = moment.defineLocale('kk', { + months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split( '_' ), - monthsParseExact: true, - weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'), - weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'), - weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'), - weekdaysParseExact: true, + monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), + weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split( + '_' + ), + weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), + weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'), longDateFormat: { - LT: 'A h:mm [वाजतां]', - LTS: 'A h:mm:ss [वाजतां]', - L: 'DD-MM-YYYY', + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY A h:mm [वाजतां]', - LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]', - llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[आयज] LT', - nextDay: '[फाल्यां] LT', - nextWeek: '[फुडलो] dddd[,] LT', - lastDay: '[काल] LT', - lastWeek: '[फाटलो] dddd[,] LT', + sameDay: '[Бүгін сағат] LT', + nextDay: '[Ертең сағат] LT', + nextWeek: 'dddd [сағат] LT', + lastDay: '[Кеше сағат] LT', + lastWeek: '[Өткен аптаның] dddd [сағат] LT', sameElse: 'L', }, relativeTime: { - future: '%s', - past: '%s आदीं', - s: processRelativeTime, - ss: processRelativeTime, - m: processRelativeTime, - mm: processRelativeTime, - h: processRelativeTime, - hh: processRelativeTime, - d: processRelativeTime, - dd: processRelativeTime, - M: processRelativeTime, - MM: processRelativeTime, - y: processRelativeTime, - yy: processRelativeTime, + future: '%s ішінде', + past: '%s бұрын', + s: 'бірнеше секунд', + ss: '%d секунд', + m: 'бір минут', + mm: '%d минут', + h: 'бір сағат', + hh: '%d сағат', + d: 'бір күн', + dd: '%d күн', + M: 'бір ай', + MM: '%d ай', + y: 'бір жыл', + yy: '%d жыл', }, - dayOfMonthOrdinalParse: /\d{1,2}(वेर)/, - ordinal: function (number, period) { - switch (period) { - // the ordinal 'वेर' only applies to day of the month - case 'D': - return number + 'वेर'; - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - case 'w': - case 'W': - return number; - } + dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); }, week: { - dow: 0, // Sunday is the first day of the week - doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) - }, - meridiemParse: /राती|सकाळीं|दनपारां|सांजे/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'राती') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'सकाळीं') { - return hour; - } else if (meridiem === 'दनपारां') { - return hour > 12 ? hour : hour + 12; - } else if (meridiem === 'सांजे') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'राती'; - } else if (hour < 12) { - return 'सकाळीं'; - } else if (hour < 16) { - return 'दनपारां'; - } else if (hour < 20) { - return 'सांजे'; - } else { - return 'राती'; - } + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. }, }); - return gomDeva; + return kk; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gom-latn.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gom-latn.js ***! - \***************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/km.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/km.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2464153__) { //! moment.js locale configuration -//! locale : Konkani Latin script [gom-latn] -//! author : The Discoverer : https://github.com/WikiDiscoverer +//! locale : Cambodian [km] +//! author : Kruy Vanna : https://github.com/kruyvanna ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2464153__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - s: ['thoddea sekondamni', 'thodde sekond'], - ss: [number + ' sekondamni', number + ' sekond'], - m: ['eka mintan', 'ek minut'], - mm: [number + ' mintamni', number + ' mintam'], - h: ['eka voran', 'ek vor'], - hh: [number + ' voramni', number + ' voram'], - d: ['eka disan', 'ek dis'], - dd: [number + ' disamni', number + ' dis'], - M: ['eka mhoinean', 'ek mhoino'], - MM: [number + ' mhoineamni', number + ' mhoine'], - y: ['eka vorsan', 'ek voros'], - yy: [number + ' vorsamni', number + ' vorsam'], + var symbolMap = { + 1: '១', + 2: '២', + 3: '៣', + 4: '៤', + 5: '៥', + 6: '៦', + 7: '៧', + 8: '៨', + 9: '៩', + 0: '០', + }, + numberMap = { + '១': '1', + '២': '2', + '៣': '3', + '៤': '4', + '៥': '5', + '៦': '6', + '៧': '7', + '៨': '8', + '៩': '9', + '០': '0', }; - return isFuture ? format[key][0] : format[key][1]; - } - var gomLatn = moment.defineLocale('gom-latn', { - months: { - standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( - '_' - ), - format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( - '_' - ), - isFormat: /MMMM(\s)+D[oD]?/, - }, - monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split( + var km = moment.defineLocale('km', { + months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( '_' ), - monthsParseExact: true, - weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), - weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), - weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), + monthsShort: + 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( + '_' + ), + weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), + weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), + weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), weekdaysParseExact: true, longDateFormat: { - LT: 'A h:mm [vazta]', - LTS: 'A h:mm:ss [vazta]', - L: 'DD-MM-YYYY', + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY A h:mm [vazta]', - LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', - llll: 'ddd, D MMM YYYY, A h:mm [vazta]', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /ព្រឹក|ល្ងាច/, + isPM: function (input) { + return input === 'ល្ងាច'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ព្រឹក'; + } else { + return 'ល្ងាច'; + } }, calendar: { - sameDay: '[Aiz] LT', - nextDay: '[Faleam] LT', - nextWeek: '[Fuddlo] dddd[,] LT', - lastDay: '[Kal] LT', - lastWeek: '[Fattlo] dddd[,] LT', + sameDay: '[ថ្ងៃនេះ ម៉ោង] LT', + nextDay: '[ស្អែក ម៉ោង] LT', + nextWeek: 'dddd [ម៉ោង] LT', + lastDay: '[ម្សិលមិញ ម៉ោង] LT', + lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT', sameElse: 'L', }, relativeTime: { - future: '%s', - past: '%s adim', - s: processRelativeTime, - ss: processRelativeTime, - m: processRelativeTime, - mm: processRelativeTime, - h: processRelativeTime, - hh: processRelativeTime, - d: processRelativeTime, - dd: processRelativeTime, - M: processRelativeTime, - MM: processRelativeTime, - y: processRelativeTime, - yy: processRelativeTime, - }, - dayOfMonthOrdinalParse: /\d{1,2}(er)/, - ordinal: function (number, period) { - switch (period) { - // the ordinal 'er' only applies to day of the month - case 'D': - return number + 'er'; - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - case 'w': - case 'W': - return number; - } + future: '%sទៀត', + past: '%sមុន', + s: 'ប៉ុន្មានវិនាទី', + ss: '%d វិនាទី', + m: 'មួយនាទី', + mm: '%d នាទី', + h: 'មួយម៉ោង', + hh: '%d ម៉ោង', + d: 'មួយថ្ងៃ', + dd: '%d ថ្ងៃ', + M: 'មួយខែ', + MM: '%d ខែ', + y: 'មួយឆ្នាំ', + yy: '%d ឆ្នាំ', }, - week: { - dow: 0, // Sunday is the first day of the week - doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + dayOfMonthOrdinalParse: /ទី\d{1,2}/, + ordinal: 'ទី%d', + preparse: function (string) { + return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) { + return numberMap[match]; + }); }, - meridiemParse: /rati|sokallim|donparam|sanje/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'rati') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'sokallim') { - return hour; - } else if (meridiem === 'donparam') { - return hour > 12 ? hour : hour + 12; - } else if (meridiem === 'sanje') { - return hour + 12; - } + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'rati'; - } else if (hour < 12) { - return 'sokallim'; - } else if (hour < 16) { - return 'donparam'; - } else if (hour < 20) { - return 'sanje'; - } else { - return 'rati'; - } + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return gomLatn; + return km; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gu.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gu.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/kn.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/kn.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2467747__) { //! moment.js locale configuration -//! locale : Gujarati [gu] -//! author : Kaushik Thanki : https://github.com/Kaushik1987 +//! locale : Kannada [kn] +//! author : Rajeev Naik : https://github.com/rajeevnaikte ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2467747__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { - 1: '૧', - 2: '૨', - 3: '૩', - 4: '૪', - 5: '૫', - 6: '૬', - 7: '૭', - 8: '૮', - 9: '૯', - 0: '૦', + 1: '೧', + 2: '೨', + 3: '೩', + 4: '೪', + 5: '೫', + 6: '೬', + 7: '೭', + 8: '೮', + 9: '೯', + 0: '೦', }, numberMap = { - '૧': '1', - '૨': '2', - '૩': '3', - '૪': '4', - '૫': '5', - '૬': '6', - '૭': '7', - '૮': '8', - '૯': '9', - '૦': '0', + '೧': '1', + '೨': '2', + '೩': '3', + '೪': '4', + '೫': '5', + '೬': '6', + '೭': '7', + '೮': '8', + '೯': '9', + '೦': '0', }; - var gu = moment.defineLocale('gu', { - months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split( - '_' - ), - monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split( + var kn = moment.defineLocale('kn', { + months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split( '_' ), + monthsShort: + 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split( + '_' + ), monthsParseExact: true, - weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split( + weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split( '_' ), - weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'), - weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'), + weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'), + weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'), longDateFormat: { - LT: 'A h:mm વાગ્યે', - LTS: 'A h:mm:ss વાગ્યે', + LT: 'A h:mm', + LTS: 'A h:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm વાગ્યે', - LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', }, calendar: { - sameDay: '[આજ] LT', - nextDay: '[કાલે] LT', + sameDay: '[ಇಂದು] LT', + nextDay: '[ನಾಳೆ] LT', nextWeek: 'dddd, LT', - lastDay: '[ગઇકાલે] LT', - lastWeek: '[પાછલા] dddd, LT', + lastDay: '[ನಿನ್ನೆ] LT', + lastWeek: '[ಕೊನೆಯ] dddd, LT', sameElse: 'L', }, relativeTime: { - future: '%s મા', - past: '%s પહેલા', - s: 'અમુક પળો', - ss: '%d સેકંડ', - m: 'એક મિનિટ', - mm: '%d મિનિટ', - h: 'એક કલાક', - hh: '%d કલાક', - d: 'એક દિવસ', - dd: '%d દિવસ', - M: 'એક મહિનો', - MM: '%d મહિનો', - y: 'એક વર્ષ', - yy: '%d વર્ષ', + future: '%s ನಂತರ', + past: '%s ಹಿಂದೆ', + s: 'ಕೆಲವು ಕ್ಷಣಗಳು', + ss: '%d ಸೆಕೆಂಡುಗಳು', + m: 'ಒಂದು ನಿಮಿಷ', + mm: '%d ನಿಮಿಷ', + h: 'ಒಂದು ಗಂಟೆ', + hh: '%d ಗಂಟೆ', + d: 'ಒಂದು ದಿನ', + dd: '%d ದಿನ', + M: 'ಒಂದು ತಿಂಗಳು', + MM: '%d ತಿಂಗಳು', + y: 'ಒಂದು ವರ್ಷ', + yy: '%d ವರ್ಷ', }, preparse: function (string) { - return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) { + return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) { return numberMap[match]; }); }, @@ -64084,1420 +71264,1671 @@ module.exports = uniqBy; return symbolMap[match]; }); }, - // Gujarati notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. - meridiemParse: /રાત|બપોર|સવાર|સાંજ/, + meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/, meridiemHour: function (hour, meridiem) { if (hour === 12) { hour = 0; } - if (meridiem === 'રાત') { + if (meridiem === 'ರಾತ್ರಿ') { return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'સવાર') { + } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') { return hour; - } else if (meridiem === 'બપોર') { + } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') { return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'સાંજ') { + } else if (meridiem === 'ಸಂಜೆ') { return hour + 12; } }, meridiem: function (hour, minute, isLower) { if (hour < 4) { - return 'રાત'; + return 'ರಾತ್ರಿ'; } else if (hour < 10) { - return 'સવાર'; + return 'ಬೆಳಿಗ್ಗೆ'; } else if (hour < 17) { - return 'બપોર'; + return 'ಮಧ್ಯಾಹ್ನ'; } else if (hour < 20) { - return 'સાંજ'; + return 'ಸಂಜೆ'; } else { - return 'રાત'; + return 'ರಾತ್ರಿ'; } }, + dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/, + ordinal: function (number) { + return number + 'ನೇ'; + }, week: { dow: 0, // Sunday is the first day of the week. doy: 6, // The week that contains Jan 6th is the first week of the year. }, }); - return gu; + return kn; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/he.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/he.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ko.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ko.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2472117__) { //! moment.js locale configuration -//! locale : Hebrew [he] -//! author : Tomer Cohen : https://github.com/tomer -//! author : Moshe Simantov : https://github.com/DevelopmentIL -//! author : Tal Ater : https://github.com/TalAter +//! locale : Korean [ko] +//! author : Kyungwook, Park : https://github.com/kyungw00k +//! author : Jeeeyul Lee ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2472117__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var he = moment.defineLocale('he', { - months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split( - '_' - ), - monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split( + var ko = moment.defineLocale('ko', { + months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), + monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split( '_' ), - weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), - weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), - weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'), + weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'), + weekdaysShort: '일_월_화_수_목_금_토'.split('_'), + weekdaysMin: '일_월_화_수_목_금_토'.split('_'), longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [ב]MMMM YYYY', - LLL: 'D [ב]MMMM YYYY HH:mm', - LLLL: 'dddd, D [ב]MMMM YYYY HH:mm', - l: 'D/M/YYYY', - ll: 'D MMM YYYY', - lll: 'D MMM YYYY HH:mm', - llll: 'ddd, D MMM YYYY HH:mm', + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY년 MMMM D일', + LLL: 'YYYY년 MMMM D일 A h:mm', + LLLL: 'YYYY년 MMMM D일 dddd A h:mm', + l: 'YYYY.MM.DD.', + ll: 'YYYY년 MMMM D일', + lll: 'YYYY년 MMMM D일 A h:mm', + llll: 'YYYY년 MMMM D일 dddd A h:mm', }, calendar: { - sameDay: '[היום ב־]LT', - nextDay: '[מחר ב־]LT', - nextWeek: 'dddd [בשעה] LT', - lastDay: '[אתמול ב־]LT', - lastWeek: '[ביום] dddd [האחרון בשעה] LT', + sameDay: '오늘 LT', + nextDay: '내일 LT', + nextWeek: 'dddd LT', + lastDay: '어제 LT', + lastWeek: '지난주 dddd LT', sameElse: 'L', }, relativeTime: { - future: 'בעוד %s', - past: 'לפני %s', - s: 'מספר שניות', - ss: '%d שניות', - m: 'דקה', - mm: '%d דקות', - h: 'שעה', - hh: function (number) { - if (number === 2) { - return 'שעתיים'; - } - return number + ' שעות'; - }, - d: 'יום', - dd: function (number) { - if (number === 2) { - return 'יומיים'; - } - return number + ' ימים'; - }, - M: 'חודש', - MM: function (number) { - if (number === 2) { - return 'חודשיים'; - } - return number + ' חודשים'; - }, - y: 'שנה', - yy: function (number) { - if (number === 2) { - return 'שנתיים'; - } else if (number % 10 === 0 && number !== 10) { - return number + ' שנה'; - } - return number + ' שנים'; - }, - }, - meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, - isPM: function (input) { - return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input); + future: '%s 후', + past: '%s 전', + s: '몇 초', + ss: '%d초', + m: '1분', + mm: '%d분', + h: '한 시간', + hh: '%d시간', + d: '하루', + dd: '%d일', + M: '한 달', + MM: '%d달', + y: '일 년', + yy: '%d년', }, - meridiem: function (hour, minute, isLower) { - if (hour < 5) { - return 'לפנות בוקר'; - } else if (hour < 10) { - return 'בבוקר'; - } else if (hour < 12) { - return isLower ? 'לפנה"צ' : 'לפני הצהריים'; - } else if (hour < 18) { - return isLower ? 'אחה"צ' : 'אחרי הצהריים'; - } else { - return 'בערב'; + dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '일'; + case 'M': + return number + '월'; + case 'w': + case 'W': + return number + '주'; + default: + return number; } }, + meridiemParse: /오전|오후/, + isPM: function (token) { + return token === '오후'; + }, + meridiem: function (hour, minute, isUpper) { + return hour < 12 ? '오전' : '오후'; + }, }); - return he; + return ko; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hi.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hi.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ku.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ku.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2474962__) { //! moment.js locale configuration -//! locale : Hindi [hi] -//! author : Mayank Singhal : https://github.com/mayanksinghal +//! locale : Kurdish [ku] +//! author : Shahram Mebashar : https://github.com/ShahramMebashar ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2474962__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { - 1: '१', - 2: '२', - 3: '३', - 4: '४', - 5: '५', - 6: '६', - 7: '७', - 8: '८', - 9: '९', - 0: '०', + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', }, numberMap = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0', + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', }, - monthsParse = [ - /^जन/i, - /^फ़र|फर/i, - /^मार्च/i, - /^अप्रै/i, - /^मई/i, - /^जून/i, - /^जुल/i, - /^अग/i, - /^सितं|सित/i, - /^अक्टू/i, - /^नव|नवं/i, - /^दिसं|दिस/i, - ], - shortMonthsParse = [ - /^जन/i, - /^फ़र/i, - /^मार्च/i, - /^अप्रै/i, - /^मई/i, - /^जून/i, - /^जुल/i, - /^अग/i, - /^सित/i, - /^अक्टू/i, - /^नव/i, - /^दिस/i, + months = [ + 'کانونی دووەم', + 'شوبات', + 'ئازار', + 'نیسان', + 'ئایار', + 'حوزەیران', + 'تەمموز', + 'ئاب', + 'ئەیلوول', + 'تشرینی یەكەم', + 'تشرینی دووەم', + 'كانونی یەکەم', ]; - var hi = moment.defineLocale('hi', { - months: { - format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split( - '_' - ), - standalone: 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split( + var ku = moment.defineLocale('ku', { + months: months, + monthsShort: months, + weekdays: + 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split( '_' ), - }, - monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split( - '_' - ), - weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), - weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), - weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), + weekdaysShort: + 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'), + weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'), + weekdaysParseExact: true, longDateFormat: { - LT: 'A h:mm बजे', - LTS: 'A h:mm:ss बजे', + LT: 'HH:mm', + LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm बजे', - LLLL: 'dddd, D MMMM YYYY, A h:mm बजे', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /ئێواره‌|به‌یانی/, + isPM: function (input) { + return /ئێواره‌/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'به‌یانی'; + } else { + return 'ئێواره‌'; + } }, - - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: shortMonthsParse, - - monthsRegex: /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, - - monthsShortRegex: /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, - - monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i, - - monthsShortStrictRegex: /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i, - calendar: { - sameDay: '[आज] LT', - nextDay: '[कल] LT', - nextWeek: 'dddd, LT', - lastDay: '[कल] LT', - lastWeek: '[पिछले] dddd, LT', + sameDay: '[ئه‌مرۆ كاتژمێر] LT', + nextDay: '[به‌یانی كاتژمێر] LT', + nextWeek: 'dddd [كاتژمێر] LT', + lastDay: '[دوێنێ كاتژمێر] LT', + lastWeek: 'dddd [كاتژمێر] LT', sameElse: 'L', }, relativeTime: { - future: '%s में', - past: '%s पहले', - s: 'कुछ ही क्षण', - ss: '%d सेकंड', - m: 'एक मिनट', - mm: '%d मिनट', - h: 'एक घंटा', - hh: '%d घंटे', - d: 'एक दिन', - dd: '%d दिन', - M: 'एक महीने', - MM: '%d महीने', - y: 'एक वर्ष', - yy: '%d वर्ष', + future: 'له‌ %s', + past: '%s', + s: 'چه‌ند چركه‌یه‌ك', + ss: 'چركه‌ %d', + m: 'یه‌ك خوله‌ك', + mm: '%d خوله‌ك', + h: 'یه‌ك كاتژمێر', + hh: '%d كاتژمێر', + d: 'یه‌ك ڕۆژ', + dd: '%d ڕۆژ', + M: 'یه‌ك مانگ', + MM: '%d مانگ', + y: 'یه‌ك ساڵ', + yy: '%d ساڵ', }, preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap[match]; - }); + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return ku; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ky.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ky.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2478860__) { + +//! moment.js locale configuration +//! locale : Kyrgyz [ky] +//! author : Chyngyz Arystan uulu : https://github.com/chyngyz + +;(function (global, factory) { + true ? factory(__nested_webpack_require_2478860__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var suffixes = { + 0: '-чү', + 1: '-чи', + 2: '-чи', + 3: '-чү', + 4: '-чү', + 5: '-чи', + 6: '-чы', + 7: '-чи', + 8: '-чи', + 9: '-чу', + 10: '-чу', + 20: '-чы', + 30: '-чу', + 40: '-чы', + 50: '-чү', + 60: '-чы', + 70: '-чи', + 80: '-чи', + 90: '-чу', + 100: '-чү', + }; + + var ky = moment.defineLocale('ky', { + months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( + '_' + ), + monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split( + '_' + ), + weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split( + '_' + ), + weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'), + weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); + calendar: { + sameDay: '[Бүгүн саат] LT', + nextDay: '[Эртең саат] LT', + nextWeek: 'dddd [саат] LT', + lastDay: '[Кечээ саат] LT', + lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT', + sameElse: 'L', }, - // Hindi notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. - meridiemParse: /रात|सुबह|दोपहर|शाम/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'रात') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'सुबह') { - return hour; - } else if (meridiem === 'दोपहर') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'शाम') { - return hour + 12; - } + relativeTime: { + future: '%s ичинде', + past: '%s мурун', + s: 'бирнече секунд', + ss: '%d секунд', + m: 'бир мүнөт', + mm: '%d мүнөт', + h: 'бир саат', + hh: '%d саат', + d: 'бир күн', + dd: '%d күн', + M: 'бир ай', + MM: '%d ай', + y: 'бир жыл', + yy: '%d жыл', }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'रात'; - } else if (hour < 10) { - return 'सुबह'; - } else if (hour < 17) { - return 'दोपहर'; - } else if (hour < 20) { - return 'शाम'; - } else { - return 'रात'; - } + dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); }, week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. }, }); - return hi; + return ky; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hr.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hr.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/lb.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/lb.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2481903__) { //! moment.js locale configuration -//! locale : Croatian [hr] -//! author : Bojan Marković : https://github.com/bmarkovic +//! locale : Luxembourgish [lb] +//! author : mweimerskirch : https://github.com/mweimerskirch +//! author : David Raison : https://github.com/kwisatz ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2481903__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - function translate(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'ss': - if (number === 1) { - result += 'sekunda'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sekunde'; - } else { - result += 'sekundi'; - } - return result; - case 'm': - return withoutSuffix ? 'jedna minuta' : 'jedne minute'; - case 'mm': - if (number === 1) { - result += 'minuta'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'minute'; - } else { - result += 'minuta'; - } - return result; - case 'h': - return withoutSuffix ? 'jedan sat' : 'jednog sata'; - case 'hh': - if (number === 1) { - result += 'sat'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sata'; - } else { - result += 'sati'; - } - return result; - case 'dd': - if (number === 1) { - result += 'dan'; - } else { - result += 'dana'; - } - return result; - case 'MM': - if (number === 1) { - result += 'mjesec'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'mjeseca'; - } else { - result += 'mjeseci'; - } - return result; - case 'yy': - if (number === 1) { - result += 'godina'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'godine'; - } else { - result += 'godina'; - } - return result; + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eng Minutt', 'enger Minutt'], + h: ['eng Stonn', 'enger Stonn'], + d: ['een Dag', 'engem Dag'], + M: ['ee Mount', 'engem Mount'], + y: ['ee Joer', 'engem Joer'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + function processFutureTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'a ' + string; + } + return 'an ' + string; + } + function processPastTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'viru ' + string; + } + return 'virun ' + string; + } + /** + * Returns true if the word before the given number loses the '-n' ending. + * e.g. 'an 10 Deeg' but 'a 5 Deeg' + * + * @param number {integer} + * @returns {boolean} + */ + function eifelerRegelAppliesToNumber(number) { + number = parseInt(number, 10); + if (isNaN(number)) { + return false; + } + if (number < 0) { + // Negative Number --> always true + return true; + } else if (number < 10) { + // Only 1 digit + if (4 <= number && number <= 7) { + return true; + } + return false; + } else if (number < 100) { + // 2 digits + var lastDigit = number % 10, + firstDigit = number / 10; + if (lastDigit === 0) { + return eifelerRegelAppliesToNumber(firstDigit); + } + return eifelerRegelAppliesToNumber(lastDigit); + } else if (number < 10000) { + // 3 or 4 digits --> recursively check first digit + while (number >= 10) { + number = number / 10; + } + return eifelerRegelAppliesToNumber(number); + } else { + // Anything larger than 4 digits: recursively check first n-3 digits + number = number / 1000; + return eifelerRegelAppliesToNumber(number); } } - var hr = moment.defineLocale('hr', { - months: { - format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( + var lb = moment.defineLocale('lb', { + months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( '_' ), - standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( + monthsParseExact: true, + weekdays: + 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split( '_' ), - }, - monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( - '_' - ), - weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), weekdaysParseExact: true, longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', + LT: 'H:mm [Auer]', + LTS: 'H:mm:ss [Auer]', L: 'DD.MM.YYYY', - LL: 'Do MMMM YYYY', - LLL: 'Do MMMM YYYY H:mm', - LLLL: 'dddd, Do MMMM YYYY H:mm', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm [Auer]', + LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', }, calendar: { - sameDay: '[danas u] LT', - nextDay: '[sutra u] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[u] [nedjelju] [u] LT'; - case 3: - return '[u] [srijedu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - }, - lastDay: '[jučer u] LT', + sameDay: '[Haut um] LT', + sameElse: 'L', + nextDay: '[Muer um] LT', + nextWeek: 'dddd [um] LT', + lastDay: '[Gëschter um] LT', lastWeek: function () { + // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule switch (this.day()) { - case 0: - return '[prošlu] [nedjelju] [u] LT'; - case 3: - return '[prošlu] [srijedu] [u] LT'; - case 6: - return '[prošle] [subote] [u] LT'; - case 1: case 2: case 4: - case 5: - return '[prošli] dddd [u] LT'; + return '[Leschten] dddd [um] LT'; + default: + return '[Leschte] dddd [um] LT'; } }, - sameElse: 'L', }, relativeTime: { - future: 'za %s', - past: 'prije %s', - s: 'par sekundi', - ss: translate, - m: translate, - mm: translate, - h: translate, - hh: translate, - d: 'dan', - dd: translate, - M: 'mjesec', - MM: translate, - y: 'godinu', - yy: translate, + future: processFutureTime, + past: processPastTime, + s: 'e puer Sekonnen', + ss: '%d Sekonnen', + m: processRelativeTime, + mm: '%d Minutten', + h: processRelativeTime, + hh: '%d Stonnen', + d: processRelativeTime, + dd: '%d Deeg', + M: processRelativeTime, + MM: '%d Méint', + y: processRelativeTime, + yy: '%d Joer', }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return hr; + return lb; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hu.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hu.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/lo.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/lo.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2487258__) { //! moment.js locale configuration -//! locale : Hungarian [hu] -//! author : Adam Brunner : https://github.com/adambrunner -//! author : Peter Viszt : https://github.com/passatgt +//! locale : Lao [lo] +//! author : Ryan Hart : https://github.com/ryanhart2 ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2487258__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split( - ' ' - ); - function translate(number, withoutSuffix, key, isFuture) { - var num = number; - switch (key) { - case 's': - return isFuture || withoutSuffix - ? 'néhány másodperc' - : 'néhány másodperce'; - case 'ss': - return num + (isFuture || withoutSuffix) - ? ' másodperc' - : ' másodperce'; - case 'm': - return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); - case 'mm': - return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); - case 'h': - return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); - case 'hh': - return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); - case 'd': - return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); - case 'dd': - return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); - case 'M': - return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); - case 'MM': - return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); - case 'y': - return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); - case 'yy': - return num + (isFuture || withoutSuffix ? ' év' : ' éve'); - } - return ''; - } - function week(isFuture) { - return ( - (isFuture ? '' : '[múlt] ') + - '[' + - weekEndings[this.day()] + - '] LT[-kor]' - ); - } - - var hu = moment.defineLocale('hu', { - months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split( - '_' - ), - monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split( + var lo = moment.defineLocale('lo', { + months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( '_' ), - monthsParseExact: true, - weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'), - weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), - weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), + monthsShort: + 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( + '_' + ), + weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), + weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), + weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), + weekdaysParseExact: true, longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'YYYY.MM.DD.', - LL: 'YYYY. MMMM D.', - LLL: 'YYYY. MMMM D. H:mm', - LLLL: 'YYYY. MMMM D., dddd H:mm', + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'ວັນdddd D MMMM YYYY HH:mm', }, - meridiemParse: /de|du/i, + meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, isPM: function (input) { - return input.charAt(1).toLowerCase() === 'u'; + return input === 'ຕອນແລງ'; }, - meridiem: function (hours, minutes, isLower) { - if (hours < 12) { - return isLower === true ? 'de' : 'DE'; + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ຕອນເຊົ້າ'; } else { - return isLower === true ? 'du' : 'DU'; + return 'ຕອນແລງ'; + } + }, + calendar: { + sameDay: '[ມື້ນີ້ເວລາ] LT', + nextDay: '[ມື້ອື່ນເວລາ] LT', + nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT', + lastDay: '[ມື້ວານນີ້ເວລາ] LT', + lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ອີກ %s', + past: '%sຜ່ານມາ', + s: 'ບໍ່ເທົ່າໃດວິນາທີ', + ss: '%d ວິນາທີ', + m: '1 ນາທີ', + mm: '%d ນາທີ', + h: '1 ຊົ່ວໂມງ', + hh: '%d ຊົ່ວໂມງ', + d: '1 ມື້', + dd: '%d ມື້', + M: '1 ເດືອນ', + MM: '%d ເດືອນ', + y: '1 ປີ', + yy: '%d ປີ', + }, + dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/, + ordinal: function (number) { + return 'ທີ່' + number; + }, + }); + + return lo; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/lt.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/lt.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2489935__) { + +//! moment.js locale configuration +//! locale : Lithuanian [lt] +//! author : Mindaugas Mozūras : https://github.com/mmozuras + +;(function (global, factory) { + true ? factory(__nested_webpack_require_2489935__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var units = { + ss: 'sekundė_sekundžių_sekundes', + m: 'minutė_minutės_minutę', + mm: 'minutės_minučių_minutes', + h: 'valanda_valandos_valandą', + hh: 'valandos_valandų_valandas', + d: 'diena_dienos_dieną', + dd: 'dienos_dienų_dienas', + M: 'mėnuo_mėnesio_mėnesį', + MM: 'mėnesiai_mėnesių_mėnesius', + y: 'metai_metų_metus', + yy: 'metai_metų_metus', + }; + function translateSeconds(number, withoutSuffix, key, isFuture) { + if (withoutSuffix) { + return 'kelios sekundės'; + } else { + return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; + } + } + function translateSingular(number, withoutSuffix, key, isFuture) { + return withoutSuffix + ? forms(key)[0] + : isFuture + ? forms(key)[1] + : forms(key)[2]; + } + function special(number) { + return number % 10 === 0 || (number > 10 && number < 20); + } + function forms(key) { + return units[key].split('_'); + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + if (number === 1) { + return ( + result + translateSingular(number, withoutSuffix, key[0], isFuture) + ); + } else if (withoutSuffix) { + return result + (special(number) ? forms(key)[1] : forms(key)[0]); + } else { + if (isFuture) { + return result + forms(key)[1]; + } else { + return result + (special(number) ? forms(key)[1] : forms(key)[2]); } + } + } + var lt = moment.defineLocale('lt', { + months: { + format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split( + '_' + ), + standalone: + 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split( + '_' + ), + isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, + }, + monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), + weekdays: { + format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split( + '_' + ), + standalone: + 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split( + '_' + ), + isFormat: /dddd HH:mm/, + }, + weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), + weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY [m.] MMMM D [d.]', + LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', + l: 'YYYY-MM-DD', + ll: 'YYYY [m.] MMMM D [d.]', + lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', }, calendar: { - sameDay: '[ma] LT[-kor]', - nextDay: '[holnap] LT[-kor]', - nextWeek: function () { - return week.call(this, true); - }, - lastDay: '[tegnap] LT[-kor]', - lastWeek: function () { - return week.call(this, false); - }, + sameDay: '[Šiandien] LT', + nextDay: '[Rytoj] LT', + nextWeek: 'dddd LT', + lastDay: '[Vakar] LT', + lastWeek: '[Praėjusį] dddd LT', sameElse: 'L', }, relativeTime: { - future: '%s múlva', - past: '%s', - s: translate, + future: 'po %s', + past: 'prieš %s', + s: translateSeconds, ss: translate, - m: translate, + m: translateSingular, mm: translate, - h: translate, + h: translateSingular, hh: translate, - d: translate, + d: translateSingular, dd: translate, - M: translate, + M: translateSingular, MM: translate, - y: translate, + y: translateSingular, yy: translate, }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', + dayOfMonthOrdinalParse: /\d{1,2}-oji/, + ordinal: function (number) { + return number + '-oji'; + }, week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return hu; + return lt; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hy-am.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hy-am.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/lv.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/lv.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2494938__) { //! moment.js locale configuration -//! locale : Armenian [hy-am] -//! author : Armendarabyan : https://github.com/armendarabyan +//! locale : Latvian [lv] +//! author : Kristaps Karlsons : https://github.com/skakri +//! author : Jānis Elmeris : https://github.com/JanisE ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2494938__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var hyAm = moment.defineLocale('hy-am', { - months: { - format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split( - '_' - ), - standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split( - '_' - ), - }, - monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), - weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split( + var units = { + ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'), + m: 'minūtes_minūtēm_minūte_minūtes'.split('_'), + mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'), + h: 'stundas_stundām_stunda_stundas'.split('_'), + hh: 'stundas_stundām_stunda_stundas'.split('_'), + d: 'dienas_dienām_diena_dienas'.split('_'), + dd: 'dienas_dienām_diena_dienas'.split('_'), + M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), + MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), + y: 'gada_gadiem_gads_gadi'.split('_'), + yy: 'gada_gadiem_gads_gadi'.split('_'), + }; + /** + * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. + */ + function format(forms, number, withoutSuffix) { + if (withoutSuffix) { + // E.g. "21 minūte", "3 minūtes". + return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; + } else { + // E.g. "21 minūtes" as in "pēc 21 minūtes". + // E.g. "3 minūtēm" as in "pēc 3 minūtēm". + return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; + } + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + return number + ' ' + format(units[key], number, withoutSuffix); + } + function relativeTimeWithSingular(number, withoutSuffix, key) { + return format(units[key], number, withoutSuffix); + } + function relativeSeconds(number, withoutSuffix) { + return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm'; + } + + var lv = moment.defineLocale('lv', { + months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split( '_' ), - weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), - weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'), + weekdays: + 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split( + '_' + ), + weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY թ.', - LLL: 'D MMMM YYYY թ., HH:mm', - LLLL: 'dddd, D MMMM YYYY թ., HH:mm', + L: 'DD.MM.YYYY.', + LL: 'YYYY. [gada] D. MMMM', + LLL: 'YYYY. [gada] D. MMMM, HH:mm', + LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', }, calendar: { - sameDay: '[այսօր] LT', - nextDay: '[վաղը] LT', - lastDay: '[երեկ] LT', - nextWeek: function () { - return 'dddd [օրը ժամը] LT'; - }, - lastWeek: function () { - return '[անցած] dddd [օրը ժամը] LT'; - }, + sameDay: '[Šodien pulksten] LT', + nextDay: '[Rīt pulksten] LT', + nextWeek: 'dddd [pulksten] LT', + lastDay: '[Vakar pulksten] LT', + lastWeek: '[Pagājušā] dddd [pulksten] LT', sameElse: 'L', }, relativeTime: { - future: '%s հետո', - past: '%s առաջ', - s: 'մի քանի վայրկյան', - ss: '%d վայրկյան', - m: 'րոպե', - mm: '%d րոպե', - h: 'ժամ', - hh: '%d ժամ', - d: 'օր', - dd: '%d օր', - M: 'ամիս', - MM: '%d ամիս', - y: 'տարի', - yy: '%d տարի', - }, - meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, - isPM: function (input) { - return /^(ցերեկվա|երեկոյան)$/.test(input); - }, - meridiem: function (hour) { - if (hour < 4) { - return 'գիշերվա'; - } else if (hour < 12) { - return 'առավոտվա'; - } else if (hour < 17) { - return 'ցերեկվա'; - } else { - return 'երեկոյան'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, - ordinal: function (number, period) { - switch (period) { - case 'DDD': - case 'w': - case 'W': - case 'DDDo': - if (number === 1) { - return number + '-ին'; - } - return number + '-րդ'; - default: - return number; - } + future: 'pēc %s', + past: 'pirms %s', + s: relativeSeconds, + ss: relativeTimeWithPlural, + m: relativeTimeWithSingular, + mm: relativeTimeWithPlural, + h: relativeTimeWithSingular, + hh: relativeTimeWithPlural, + d: relativeTimeWithSingular, + dd: relativeTimeWithPlural, + M: relativeTimeWithSingular, + MM: relativeTimeWithPlural, + y: relativeTimeWithSingular, + yy: relativeTimeWithPlural, }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return hyAm; + return lv; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/id.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/id.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/me.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/me.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2499256__) { //! moment.js locale configuration -//! locale : Indonesian [id] -//! author : Mohammad Satrio Utomo : https://github.com/tyok -//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan +//! locale : Montenegrin [me] +//! author : Miodrag Nikač : https://github.com/miodragnikac ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2499256__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var id = moment.defineLocale('id', { - months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), - weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), - weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), - weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [pukul] HH.mm', - LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + var translator = { + words: { + //Different grammatical cases + ss: ['sekund', 'sekunda', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + dd: ['dan', 'dana', 'dana'], + MM: ['mjesec', 'mjeseca', 'mjeseci'], + yy: ['godina', 'godine', 'godina'], }, - meridiemParse: /pagi|siang|sore|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'siang') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'sore' || meridiem === 'malam') { - return hour + 12; - } + correctGrammaticalCase: function (number, wordKey) { + return number === 1 + ? wordKey[0] + : number >= 2 && number <= 4 + ? wordKey[1] + : wordKey[2]; }, - meridiem: function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'siang'; - } else if (hours < 19) { - return 'sore'; + translate: function (number, withoutSuffix, key) { + var wordKey = translator.words[key]; + if (key.length === 1) { + return withoutSuffix ? wordKey[0] : wordKey[1]; } else { - return 'malam'; + return ( + number + + ' ' + + translator.correctGrammaticalCase(number, wordKey) + ); } }, + }; + + var me = moment.defineLocale('me', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, calendar: { - sameDay: '[Hari ini pukul] LT', - nextDay: '[Besok pukul] LT', - nextWeek: 'dddd [pukul] LT', - lastDay: '[Kemarin pukul] LT', - lastWeek: 'dddd [lalu pukul] LT', + sameDay: '[danas u] LT', + nextDay: '[sjutra u] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[juče u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[prošle] [nedjelje] [u] LT', + '[prošlog] [ponedjeljka] [u] LT', + '[prošlog] [utorka] [u] LT', + '[prošle] [srijede] [u] LT', + '[prošlog] [četvrtka] [u] LT', + '[prošlog] [petka] [u] LT', + '[prošle] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, sameElse: 'L', }, relativeTime: { - future: 'dalam %s', - past: '%s yang lalu', - s: 'beberapa detik', - ss: '%d detik', - m: 'semenit', - mm: '%d menit', - h: 'sejam', - hh: '%d jam', - d: 'sehari', - dd: '%d hari', - M: 'sebulan', - MM: '%d bulan', - y: 'setahun', - yy: '%d tahun', + future: 'za %s', + past: 'prije %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: 'dan', + dd: translator.translate, + M: 'mjesec', + MM: translator.translate, + y: 'godinu', + yy: translator.translate, }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. }, }); - return id; + return me; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/is.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/is.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/mi.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/mi.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2503924__) { //! moment.js locale configuration -//! locale : Icelandic [is] -//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik +//! locale : Maori [mi] +//! author : John Corrigan : https://github.com/johnideal ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2503924__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - function plural(n) { - if (n % 100 === 11) { - return true; - } else if (n % 10 === 1) { - return false; - } - return true; - } - function translate(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': - return withoutSuffix || isFuture - ? 'nokkrar sekúndur' - : 'nokkrum sekúndum'; - case 'ss': - if (plural(number)) { - return ( - result + - (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum') - ); - } - return result + 'sekúnda'; - case 'm': - return withoutSuffix ? 'mínúta' : 'mínútu'; - case 'mm': - if (plural(number)) { - return ( - result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum') - ); - } else if (withoutSuffix) { - return result + 'mínúta'; - } - return result + 'mínútu'; - case 'hh': - if (plural(number)) { - return ( - result + - (withoutSuffix || isFuture - ? 'klukkustundir' - : 'klukkustundum') - ); - } - return result + 'klukkustund'; - case 'd': - if (withoutSuffix) { - return 'dagur'; - } - return isFuture ? 'dag' : 'degi'; - case 'dd': - if (plural(number)) { - if (withoutSuffix) { - return result + 'dagar'; - } - return result + (isFuture ? 'daga' : 'dögum'); - } else if (withoutSuffix) { - return result + 'dagur'; - } - return result + (isFuture ? 'dag' : 'degi'); - case 'M': - if (withoutSuffix) { - return 'mánuður'; - } - return isFuture ? 'mánuð' : 'mánuði'; - case 'MM': - if (plural(number)) { - if (withoutSuffix) { - return result + 'mánuðir'; - } - return result + (isFuture ? 'mánuði' : 'mánuðum'); - } else if (withoutSuffix) { - return result + 'mánuður'; - } - return result + (isFuture ? 'mánuð' : 'mánuði'); - case 'y': - return withoutSuffix || isFuture ? 'ár' : 'ári'; - case 'yy': - if (plural(number)) { - return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); - } - return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); - } - } - - var is = moment.defineLocale('is', { - months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split( - '_' - ), - monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'), - weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split( + var mi = moment.defineLocale('mi', { + months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split( '_' ), - weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'), - weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'), + monthsShort: + 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( + '_' + ), + monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, + weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'), + weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), + weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY [kl.] H:mm', - LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [i] HH:mm', + LLLL: 'dddd, D MMMM YYYY [i] HH:mm', }, calendar: { - sameDay: '[í dag kl.] LT', - nextDay: '[á morgun kl.] LT', - nextWeek: 'dddd [kl.] LT', - lastDay: '[í gær kl.] LT', - lastWeek: '[síðasta] dddd [kl.] LT', + sameDay: '[i teie mahana, i] LT', + nextDay: '[apopo i] LT', + nextWeek: 'dddd [i] LT', + lastDay: '[inanahi i] LT', + lastWeek: 'dddd [whakamutunga i] LT', sameElse: 'L', }, relativeTime: { - future: 'eftir %s', - past: 'fyrir %s síðan', - s: translate, - ss: translate, - m: translate, - mm: translate, - h: 'klukkustund', - hh: translate, - d: translate, - dd: translate, - M: translate, - MM: translate, - y: translate, - yy: translate, + future: 'i roto i %s', + past: '%s i mua', + s: 'te hēkona ruarua', + ss: '%d hēkona', + m: 'he meneti', + mm: '%d meneti', + h: 'te haora', + hh: '%d haora', + d: 'he ra', + dd: '%d ra', + M: 'he marama', + MM: '%d marama', + y: 'he tau', + yy: '%d tau', }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return is; + return mi; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/it-ch.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/it-ch.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/mk.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/mk.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2506723__) { //! moment.js locale configuration -//! locale : Italian (Switzerland) [it-ch] -//! author : xfh : https://github.com/xfh +//! locale : Macedonian [mk] +//! author : Borislav Mickov : https://github.com/B0k0 +//! author : Sashko Todorov : https://github.com/bkyceh ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2506723__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var itCh = moment.defineLocale('it-ch', { - months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + var mk = moment.defineLocale('mk', { + months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split( '_' ), - monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), - weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( + monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), + weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split( '_' ), - weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), - weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'), + weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'), longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', }, calendar: { - sameDay: '[Oggi alle] LT', - nextDay: '[Domani alle] LT', - nextWeek: 'dddd [alle] LT', - lastDay: '[Ieri alle] LT', + sameDay: '[Денес во] LT', + nextDay: '[Утре во] LT', + nextWeek: '[Во] dddd [во] LT', + lastDay: '[Вчера во] LT', lastWeek: function () { switch (this.day()) { case 0: - return '[la scorsa] dddd [alle] LT'; - default: - return '[lo scorso] dddd [alle] LT'; + case 3: + case 6: + return '[Изминатата] dddd [во] LT'; + case 1: + case 2: + case 4: + case 5: + return '[Изминатиот] dddd [во] LT'; } }, sameElse: 'L', }, relativeTime: { - future: function (s) { - return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; - }, - past: '%s fa', - s: 'alcuni secondi', - ss: '%d secondi', - m: 'un minuto', - mm: '%d minuti', - h: "un'ora", - hh: '%d ore', - d: 'un giorno', - dd: '%d giorni', - M: 'un mese', - MM: '%d mesi', - y: 'un anno', - yy: '%d anni', + future: 'за %s', + past: 'пред %s', + s: 'неколку секунди', + ss: '%d секунди', + m: 'една минута', + mm: '%d минути', + h: 'еден час', + hh: '%d часа', + d: 'еден ден', + dd: '%d дена', + M: 'еден месец', + MM: '%d месеци', + y: 'една година', + yy: '%d години', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', week: { dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + doy: 7, // The week that contains Jan 7th is the first week of the year. }, }); - return itCh; + return mk; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/it.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/it.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ml.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ml.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2510287__) { //! moment.js locale configuration -//! locale : Italian [it] -//! author : Lorenzo : https://github.com/aliem -//! author: Mattia Larentis: https://github.com/nostalgiaz -//! author: Marco : https://github.com/Manfre98 +//! locale : Malayalam [ml] +//! author : Floyd Pink : https://github.com/floydpink ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2510287__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var it = moment.defineLocale('it', { - months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + var ml = moment.defineLocale('ml', { + months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split( '_' ), - monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), - weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( + monthsShort: + 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split( + '_' + ), + weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), + weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), + longDateFormat: { + LT: 'A h:mm -നു', + LTS: 'A h:mm:ss -നു', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm -നു', + LLLL: 'dddd, D MMMM YYYY, A h:mm -നു', + }, + calendar: { + sameDay: '[ഇന്ന്] LT', + nextDay: '[നാളെ] LT', + nextWeek: 'dddd, LT', + lastDay: '[ഇന്നലെ] LT', + lastWeek: '[കഴിഞ്ഞ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s കഴിഞ്ഞ്', + past: '%s മുൻപ്', + s: 'അൽപ നിമിഷങ്ങൾ', + ss: '%d സെക്കൻഡ്', + m: 'ഒരു മിനിറ്റ്', + mm: '%d മിനിറ്റ്', + h: 'ഒരു മണിക്കൂർ', + hh: '%d മണിക്കൂർ', + d: 'ഒരു ദിവസം', + dd: '%d ദിവസം', + M: 'ഒരു മാസം', + MM: '%d മാസം', + y: 'ഒരു വർഷം', + yy: '%d വർഷം', + }, + meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'രാത്രി' && hour >= 4) || + meridiem === 'ഉച്ച കഴിഞ്ഞ്' || + meridiem === 'വൈകുന്നേരം' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'രാത്രി'; + } else if (hour < 12) { + return 'രാവിലെ'; + } else if (hour < 17) { + return 'ഉച്ച കഴിഞ്ഞ്'; + } else if (hour < 20) { + return 'വൈകുന്നേരം'; + } else { + return 'രാത്രി'; + } + }, + }); + + return ml; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/mn.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/mn.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2513512__) { + +//! moment.js locale configuration +//! locale : Mongolian [mn] +//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7 + +;(function (global, factory) { + true ? factory(__nested_webpack_require_2513512__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function translate(number, withoutSuffix, key, isFuture) { + switch (key) { + case 's': + return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын'; + case 'ss': + return number + (withoutSuffix ? ' секунд' : ' секундын'); + case 'm': + case 'mm': + return number + (withoutSuffix ? ' минут' : ' минутын'); + case 'h': + case 'hh': + return number + (withoutSuffix ? ' цаг' : ' цагийн'); + case 'd': + case 'dd': + return number + (withoutSuffix ? ' өдөр' : ' өдрийн'); + case 'M': + case 'MM': + return number + (withoutSuffix ? ' сар' : ' сарын'); + case 'y': + case 'yy': + return number + (withoutSuffix ? ' жил' : ' жилийн'); + default: + return number; + } + } + + var mn = moment.defineLocale('mn', { + months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split( '_' ), - weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), - weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + monthsShort: + '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'), + weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'), + weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'), + weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', + L: 'YYYY-MM-DD', + LL: 'YYYY оны MMMMын D', + LLL: 'YYYY оны MMMMын D HH:mm', + LLLL: 'dddd, YYYY оны MMMMын D HH:mm', + }, + meridiemParse: /ҮӨ|ҮХ/i, + isPM: function (input) { + return input === 'ҮХ'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ҮӨ'; + } else { + return 'ҮХ'; + } }, calendar: { - sameDay: function () { - return ( - '[Oggi a' + - (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + - ']LT' - ); - }, - nextDay: function () { - return ( - '[Domani a' + - (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + - ']LT' - ); - }, - nextWeek: function () { - return ( - 'dddd [a' + - (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + - ']LT' - ); - }, - lastDay: function () { - return ( - '[Ieri a' + - (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + - ']LT' - ); - }, - lastWeek: function () { - switch (this.day()) { - case 0: - return ( - '[La scorsa] dddd [a' + - (this.hours() > 1 - ? 'lle ' - : this.hours() === 0 - ? ' ' - : "ll'") + - ']LT' - ); - default: - return ( - '[Lo scorso] dddd [a' + - (this.hours() > 1 - ? 'lle ' - : this.hours() === 0 - ? ' ' - : "ll'") + - ']LT' - ); - } - }, + sameDay: '[Өнөөдөр] LT', + nextDay: '[Маргааш] LT', + nextWeek: '[Ирэх] dddd LT', + lastDay: '[Өчигдөр] LT', + lastWeek: '[Өнгөрсөн] dddd LT', sameElse: 'L', }, relativeTime: { - future: 'tra %s', - past: '%s fa', - s: 'alcuni secondi', - ss: '%d secondi', - m: 'un minuto', - mm: '%d minuti', - h: "un'ora", - hh: '%d ore', - d: 'un giorno', - dd: '%d giorni', - w: 'una settimana', - ww: '%d settimane', - M: 'un mese', - MM: '%d mesi', - y: 'un anno', - yy: '%d anni', + future: '%s дараа', + past: '%s өмнө', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + dayOfMonthOrdinalParse: /\d{1,2} өдөр/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + ' өдөр'; + default: + return number; + } }, }); - return it; + return mn; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ja.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ja.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/mr.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/mr.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2517449__) { //! moment.js locale configuration -//! locale : Japanese [ja] -//! author : LI Long : https://github.com/baryon +//! locale : Marathi [mr] +//! author : Harshad Kale : https://github.com/kalehv +//! author : Vivek Athalye : https://github.com/vnathalye ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2517449__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var ja = moment.defineLocale('ja', { - eras: [ - { - since: '2019-05-01', - offset: 1, - name: '令和', - narrow: '㋿', - abbr: 'R', - }, - { - since: '1989-01-08', - until: '2019-04-30', - offset: 1, - name: '平成', - narrow: '㍻', - abbr: 'H', - }, - { - since: '1926-12-25', - until: '1989-01-07', - offset: 1, - name: '昭和', - narrow: '㍼', - abbr: 'S', - }, - { - since: '1912-07-30', - until: '1926-12-24', - offset: 1, - name: '大正', - narrow: '㍽', - abbr: 'T', - }, - { - since: '1873-01-01', - until: '1912-07-29', - offset: 6, - name: '明治', - narrow: '㍾', - abbr: 'M', - }, - { - since: '0001-01-01', - until: '1873-12-31', - offset: 1, - name: '西暦', - narrow: 'AD', - abbr: 'AD', - }, - { - since: '0000-12-31', - until: -Infinity, - offset: 1, - name: '紀元前', - narrow: 'BC', - abbr: 'BC', - }, - ], - eraYearOrdinalRegex: /(元|\d+)年/, - eraYearOrdinalParse: function (input, match) { - return match[1] === '元' ? 1 : parseInt(match[1] || input, 10); + var symbolMap = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', }, - months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }; + + function relativeTimeMr(number, withoutSuffix, string, isFuture) { + var output = ''; + if (withoutSuffix) { + switch (string) { + case 's': + output = 'काही सेकंद'; + break; + case 'ss': + output = '%d सेकंद'; + break; + case 'm': + output = 'एक मिनिट'; + break; + case 'mm': + output = '%d मिनिटे'; + break; + case 'h': + output = 'एक तास'; + break; + case 'hh': + output = '%d तास'; + break; + case 'd': + output = 'एक दिवस'; + break; + case 'dd': + output = '%d दिवस'; + break; + case 'M': + output = 'एक महिना'; + break; + case 'MM': + output = '%d महिने'; + break; + case 'y': + output = 'एक वर्ष'; + break; + case 'yy': + output = '%d वर्षे'; + break; + } + } else { + switch (string) { + case 's': + output = 'काही सेकंदां'; + break; + case 'ss': + output = '%d सेकंदां'; + break; + case 'm': + output = 'एका मिनिटा'; + break; + case 'mm': + output = '%d मिनिटां'; + break; + case 'h': + output = 'एका तासा'; + break; + case 'hh': + output = '%d तासां'; + break; + case 'd': + output = 'एका दिवसा'; + break; + case 'dd': + output = '%d दिवसां'; + break; + case 'M': + output = 'एका महिन्या'; + break; + case 'MM': + output = '%d महिन्यां'; + break; + case 'y': + output = 'एका वर्षा'; + break; + case 'yy': + output = '%d वर्षां'; + break; + } + } + return output.replace(/%d/i, number); + } + + var mr = moment.defineLocale('mr', { + months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( '_' ), - weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'), - weekdaysShort: '日_月_火_水_木_金_土'.split('_'), - weekdaysMin: '日_月_火_水_木_金_土'.split('_'), + monthsShort: + 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日 HH:mm', - LLLL: 'YYYY年M月D日 dddd HH:mm', - l: 'YYYY/MM/DD', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日(ddd) HH:mm', - }, - meridiemParse: /午前|午後/i, - isPM: function (input) { - return input === '午後'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return '午前'; - } else { - return '午後'; - } + LT: 'A h:mm वाजता', + LTS: 'A h:mm:ss वाजता', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm वाजता', + LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता', }, calendar: { - sameDay: '[今日] LT', - nextDay: '[明日] LT', - nextWeek: function (now) { - if (now.week() !== this.week()) { - return '[来週]dddd LT'; - } else { - return 'dddd LT'; - } - }, - lastDay: '[昨日] LT', - lastWeek: function (now) { - if (this.week() !== now.week()) { - return '[先週]dddd LT'; - } else { - return 'dddd LT'; - } - }, + sameDay: '[आज] LT', + nextDay: '[उद्या] LT', + nextWeek: 'dddd, LT', + lastDay: '[काल] LT', + lastWeek: '[मागील] dddd, LT', sameElse: 'L', }, - dayOfMonthOrdinalParse: /\d{1,2}日/, - ordinal: function (number, period) { - switch (period) { - case 'y': - return number === 1 ? '元年' : number + '年'; - case 'd': - case 'D': - case 'DDD': - return number + '日'; - default: - return number; + relativeTime: { + future: '%sमध्ये', + past: '%sपूर्वी', + s: relativeTimeMr, + ss: relativeTimeMr, + m: relativeTimeMr, + mm: relativeTimeMr, + h: relativeTimeMr, + hh: relativeTimeMr, + d: relativeTimeMr, + dd: relativeTimeMr, + M: relativeTimeMr, + MM: relativeTimeMr, + y: relativeTimeMr, + yy: relativeTimeMr, + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'पहाटे' || meridiem === 'सकाळी') { + return hour; + } else if ( + meridiem === 'दुपारी' || + meridiem === 'सायंकाळी' || + meridiem === 'रात्री' + ) { + return hour >= 12 ? hour : hour + 12; } }, - relativeTime: { - future: '%s後', - past: '%s前', - s: '数秒', - ss: '%d秒', - m: '1分', - mm: '%d分', - h: '1時間', - hh: '%d時間', - d: '1日', - dd: '%d日', - M: '1ヶ月', - MM: '%dヶ月', - y: '1年', - yy: '%d年', + meridiem: function (hour, minute, isLower) { + if (hour >= 0 && hour < 6) { + return 'पहाटे'; + } else if (hour < 12) { + return 'सकाळी'; + } else if (hour < 17) { + return 'दुपारी'; + } else if (hour < 20) { + return 'सायंकाळी'; + } else { + return 'रात्री'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. }, }); - return ja; + return mr; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/jv.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/jv.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ms-my.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ms-my.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2524321__) { //! moment.js locale configuration -//! locale : Javanese [jv] -//! author : Rony Lantip : https://github.com/lantip -//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa +//! locale : Malay [ms-my] +//! note : DEPRECATED, the correct one is [ms] +//! author : Weldan Jamili : https://github.com/weldan ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2524321__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var jv = moment.defineLocale('jv', { - months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( + var msMy = moment.defineLocale('ms-my', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( '_' ), - monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), - weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), - weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), - weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), longDateFormat: { LT: 'HH.mm', LTS: 'HH.mm.ss', @@ -65506,53 +72937,53 @@ module.exports = uniqBy; LLL: 'D MMMM YYYY [pukul] HH.mm', LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', }, - meridiemParse: /enjing|siyang|sonten|ndalu/, + meridiemParse: /pagi|tengahari|petang|malam/, meridiemHour: function (hour, meridiem) { if (hour === 12) { hour = 0; } - if (meridiem === 'enjing') { + if (meridiem === 'pagi') { return hour; - } else if (meridiem === 'siyang') { + } else if (meridiem === 'tengahari') { return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'sonten' || meridiem === 'ndalu') { + } else if (meridiem === 'petang' || meridiem === 'malam') { return hour + 12; } }, meridiem: function (hours, minutes, isLower) { if (hours < 11) { - return 'enjing'; + return 'pagi'; } else if (hours < 15) { - return 'siyang'; + return 'tengahari'; } else if (hours < 19) { - return 'sonten'; + return 'petang'; } else { - return 'ndalu'; + return 'malam'; } }, calendar: { - sameDay: '[Dinten puniko pukul] LT', - nextDay: '[Mbenjang pukul] LT', + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', nextWeek: 'dddd [pukul] LT', - lastDay: '[Kala wingi pukul] LT', - lastWeek: 'dddd [kepengker pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', sameElse: 'L', }, relativeTime: { - future: 'wonten ing %s', - past: '%s ingkang kepengker', - s: 'sawetawis detik', - ss: '%d detik', - m: 'setunggal menit', - mm: '%d menit', - h: 'setunggal jam', + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', hh: '%d jam', - d: 'sedinten', - dd: '%d dinten', - M: 'sewulan', - MM: '%d wulan', - y: 'setaun', - yy: '%d taun', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', }, week: { dow: 1, // Monday is the first day of the week. @@ -65560,211 +72991,93 @@ module.exports = uniqBy; }, }); - return jv; + return msMy; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ka.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ka.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ms.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ms.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2527515__) { //! moment.js locale configuration -//! locale : Georgian [ka] -//! author : Irakli Janiashvili : https://github.com/IrakliJani +//! locale : Malay [ms] +//! author : Weldan Jamili : https://github.com/weldan ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2527515__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var ka = moment.defineLocale('ka', { - months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split( + var ms = moment.defineLocale('ms', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( '_' ), - monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), - weekdays: { - standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split( - '_' - ), - format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split( - '_' - ), - isFormat: /(წინა|შემდეგ)/, - }, - weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), - weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', + LT: 'HH.mm', + LTS: 'HH.mm.ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[დღეს] LT[-ზე]', - nextDay: '[ხვალ] LT[-ზე]', - lastDay: '[გუშინ] LT[-ზე]', - nextWeek: '[შემდეგ] dddd LT[-ზე]', - lastWeek: '[წინა] dddd LT-ზე', - sameElse: 'L', - }, - relativeTime: { - future: function (s) { - return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function ( - $0, - $1, - $2 - ) { - return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში'; - }); - }, - past: function (s) { - if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) { - return s.replace(/(ი|ე)$/, 'ის წინ'); - } - if (/წელი/.test(s)) { - return s.replace(/წელი$/, 'წლის წინ'); - } - return s; - }, - s: 'რამდენიმე წამი', - ss: '%d წამი', - m: 'წუთი', - mm: '%d წუთი', - h: 'საათი', - hh: '%d საათი', - d: 'დღე', - dd: '%d დღე', - M: 'თვე', - MM: '%d თვე', - y: 'წელი', - yy: '%d წელი', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', }, - dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, - ordinal: function (number) { - if (number === 0) { - return number; - } - if (number === 1) { - return number + '-ლი'; + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; } - if ( - number < 20 || - (number <= 100 && number % 20 === 0) || - number % 100 === 0 - ) { - return 'მე-' + number; + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; } - return number + '-ე'; - }, - week: { - dow: 1, - doy: 7, }, - }); - - return ka; - -}))); - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/kk.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/kk.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - -//! moment.js locale configuration -//! locale : Kazakh [kk] -//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan - -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; - - //! moment.js locale configuration - - var suffixes = { - 0: '-ші', - 1: '-ші', - 2: '-ші', - 3: '-ші', - 4: '-ші', - 5: '-ші', - 6: '-шы', - 7: '-ші', - 8: '-ші', - 9: '-шы', - 10: '-шы', - 20: '-шы', - 30: '-шы', - 40: '-шы', - 50: '-ші', - 60: '-шы', - 70: '-ші', - 80: '-ші', - 90: '-шы', - 100: '-ші', - }; - - var kk = moment.defineLocale('kk', { - months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split( - '_' - ), - monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), - weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split( - '_' - ), - weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), - weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } }, calendar: { - sameDay: '[Бүгін сағат] LT', - nextDay: '[Ертең сағат] LT', - nextWeek: 'dddd [сағат] LT', - lastDay: '[Кеше сағат] LT', - lastWeek: '[Өткен аптаның] dddd [сағат] LT', + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', sameElse: 'L', }, relativeTime: { - future: '%s ішінде', - past: '%s бұрын', - s: 'бірнеше секунд', - ss: '%d секунд', - m: 'бір минут', - mm: '%d минут', - h: 'бір сағат', - hh: '%d сағат', - d: 'бір күн', - dd: '%d күн', - M: 'бір ай', - MM: '%d ай', - y: 'бір жыл', - yy: '%d жыл', - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/, - ordinal: function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes[number] || suffixes[a] || suffixes[b]); + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', }, week: { dow: 1, // Monday is the first day of the week. @@ -65772,66 +73085,41 @@ module.exports = uniqBy; }, }); - return kk; + return ms; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/km.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/km.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/mt.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/mt.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2530652__) { //! moment.js locale configuration -//! locale : Cambodian [km] -//! author : Kruy Vanna : https://github.com/kruyvanna +//! locale : Maltese (Malta) [mt] +//! author : Alessandro Maruccia : https://github.com/alesma ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2530652__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; - //! moment.js locale configuration - - var symbolMap = { - 1: '១', - 2: '២', - 3: '៣', - 4: '៤', - 5: '៥', - 6: '៦', - 7: '៧', - 8: '៨', - 9: '៩', - 0: '០', - }, - numberMap = { - '១': '1', - '២': '2', - '៣': '3', - '៤': '4', - '៥': '5', - '៦': '6', - '៧': '7', - '៨': '8', - '៩': '9', - '០': '0', - }; + //! moment.js locale configuration - var km = moment.defineLocale('km', { - months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( - '_' - ), - monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( + var mt = moment.defineLocale('mt', { + months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split( '_' ), - weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), - weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), - weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), - weekdaysParseExact: true, + monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'), + weekdays: + 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split( + '_' + ), + weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'), + weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', @@ -65840,155 +73128,134 @@ module.exports = uniqBy; LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm', }, - meridiemParse: /ព្រឹក|ល្ងាច/, - isPM: function (input) { - return input === 'ល្ងាច'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ព្រឹក'; - } else { - return 'ល្ងាច'; - } - }, calendar: { - sameDay: '[ថ្ងៃនេះ ម៉ោង] LT', - nextDay: '[ស្អែក ម៉ោង] LT', - nextWeek: 'dddd [ម៉ោង] LT', - lastDay: '[ម្សិលមិញ ម៉ោង] LT', - lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT', + sameDay: '[Illum fil-]LT', + nextDay: '[Għada fil-]LT', + nextWeek: 'dddd [fil-]LT', + lastDay: '[Il-bieraħ fil-]LT', + lastWeek: 'dddd [li għadda] [fil-]LT', sameElse: 'L', }, relativeTime: { - future: '%sទៀត', - past: '%sមុន', - s: 'ប៉ុន្មានវិនាទី', - ss: '%d វិនាទី', - m: 'មួយនាទី', - mm: '%d នាទី', - h: 'មួយម៉ោង', - hh: '%d ម៉ោង', - d: 'មួយថ្ងៃ', - dd: '%d ថ្ងៃ', - M: 'មួយខែ', - MM: '%d ខែ', - y: 'មួយឆ្នាំ', - yy: '%d ឆ្នាំ', - }, - dayOfMonthOrdinalParse: /ទី\d{1,2}/, - ordinal: 'ទី%d', - preparse: function (string) { - return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); + future: 'f’ %s', + past: '%s ilu', + s: 'ftit sekondi', + ss: '%d sekondi', + m: 'minuta', + mm: '%d minuti', + h: 'siegħa', + hh: '%d siegħat', + d: 'ġurnata', + dd: '%d ġranet', + M: 'xahar', + MM: '%d xhur', + y: 'sena', + yy: '%d sni', }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return km; + return mt; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/kn.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/kn.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/my.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/my.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2533094__) { //! moment.js locale configuration -//! locale : Kannada [kn] -//! author : Rajeev Naik : https://github.com/rajeevnaikte +//! locale : Burmese [my] +//! author : Squar team, mysquar.com +//! author : David Rossellat : https://github.com/gholadr +//! author : Tin Aung Lin : https://github.com/thanyawzinmin ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2533094__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { - 1: '೧', - 2: '೨', - 3: '೩', - 4: '೪', - 5: '೫', - 6: '೬', - 7: '೭', - 8: '೮', - 9: '೯', - 0: '೦', + 1: '၁', + 2: '၂', + 3: '၃', + 4: '၄', + 5: '၅', + 6: '၆', + 7: '၇', + 8: '၈', + 9: '၉', + 0: '၀', }, numberMap = { - '೧': '1', - '೨': '2', - '೩': '3', - '೪': '4', - '೫': '5', - '೬': '6', - '೭': '7', - '೮': '8', - '೯': '9', - '೦': '0', + '၁': '1', + '၂': '2', + '၃': '3', + '၄': '4', + '၅': '5', + '၆': '6', + '၇': '7', + '၈': '8', + '၉': '9', + '၀': '0', }; - var kn = moment.defineLocale('kn', { - months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split( - '_' - ), - monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split( + var my = moment.defineLocale('my', { + months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split( '_' ), - monthsParseExact: true, - weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split( + monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), + weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split( '_' ), - weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'), - weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'), + weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + longDateFormat: { - LT: 'A h:mm', - LTS: 'A h:mm:ss', + LT: 'HH:mm', + LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm', - LLLL: 'dddd, D MMMM YYYY, A h:mm', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[ಇಂದು] LT', - nextDay: '[ನಾಳೆ] LT', - nextWeek: 'dddd, LT', - lastDay: '[ನಿನ್ನೆ] LT', - lastWeek: '[ಕೊನೆಯ] dddd, LT', + sameDay: '[ယနေ.] LT [မှာ]', + nextDay: '[မနက်ဖြန်] LT [မှာ]', + nextWeek: 'dddd LT [မှာ]', + lastDay: '[မနေ.က] LT [မှာ]', + lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]', sameElse: 'L', }, relativeTime: { - future: '%s ನಂತರ', - past: '%s ಹಿಂದೆ', - s: 'ಕೆಲವು ಕ್ಷಣಗಳು', - ss: '%d ಸೆಕೆಂಡುಗಳು', - m: 'ಒಂದು ನಿಮಿಷ', - mm: '%d ನಿಮಿಷ', - h: 'ಒಂದು ಗಂಟೆ', - hh: '%d ಗಂಟೆ', - d: 'ಒಂದು ದಿನ', - dd: '%d ದಿನ', - M: 'ಒಂದು ತಿಂಗಳು', - MM: '%d ತಿಂಗಳು', - y: 'ಒಂದು ವರ್ಷ', - yy: '%d ವರ್ಷ', + future: 'လာမည့် %s မှာ', + past: 'လွန်ခဲ့သော %s က', + s: 'စက္ကန်.အနည်းငယ်', + ss: '%d စက္ကန့်', + m: 'တစ်မိနစ်', + mm: '%d မိနစ်', + h: 'တစ်နာရီ', + hh: '%d နာရီ', + d: 'တစ်ရက်', + dd: '%d ရက်', + M: 'တစ်လ', + MM: '%d လ', + y: 'တစ်နှစ်', + yy: '%d နှစ်', }, preparse: function (string) { - return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) { + return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) { return numberMap[match]; }); }, @@ -65997,1076 +73264,1107 @@ module.exports = uniqBy; return symbolMap[match]; }); }, - meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ರಾತ್ರಿ') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') { - return hour; - } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'ಸಂಜೆ') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'ರಾತ್ರಿ'; - } else if (hour < 10) { - return 'ಬೆಳಿಗ್ಗೆ'; - } else if (hour < 17) { - return 'ಮಧ್ಯಾಹ್ನ'; - } else if (hour < 20) { - return 'ಸಂಜೆ'; - } else { - return 'ರಾತ್ರಿ'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/, - ordinal: function (number) { - return number + 'ನೇ'; - }, week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return kn; + return my; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ko.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ko.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/nb.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/nb.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2536382__) { //! moment.js locale configuration -//! locale : Korean [ko] -//! author : Kyungwook, Park : https://github.com/kyungw00k -//! author : Jeeeyul Lee +//! locale : Norwegian Bokmål [nb] +//! authors : Espen Hovlandsdal : https://github.com/rexxars +//! Sigurd Gartmann : https://github.com/sigurdga +//! Stephen Ramthun : https://github.com/stephenramthun ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2536382__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var ko = moment.defineLocale('ko', { - months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), - monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split( + var nb = moment.defineLocale('nb', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( '_' ), - weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'), - weekdaysShort: '일_월_화_수_목_금_토'.split('_'), - weekdaysMin: '일_월_화_수_목_금_토'.split('_'), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'), + weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), + weekdaysParseExact: true, longDateFormat: { - LT: 'A h:mm', - LTS: 'A h:mm:ss', - L: 'YYYY.MM.DD.', - LL: 'YYYY년 MMMM D일', - LLL: 'YYYY년 MMMM D일 A h:mm', - LLLL: 'YYYY년 MMMM D일 dddd A h:mm', - l: 'YYYY.MM.DD.', - ll: 'YYYY년 MMMM D일', - lll: 'YYYY년 MMMM D일 A h:mm', - llll: 'YYYY년 MMMM D일 dddd A h:mm', + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', }, calendar: { - sameDay: '오늘 LT', - nextDay: '내일 LT', - nextWeek: 'dddd LT', - lastDay: '어제 LT', - lastWeek: '지난주 dddd LT', + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[i går kl.] LT', + lastWeek: '[forrige] dddd [kl.] LT', sameElse: 'L', }, relativeTime: { - future: '%s 후', - past: '%s 전', - s: '몇 초', - ss: '%d초', - m: '1분', - mm: '%d분', - h: '한 시간', - hh: '%d시간', - d: '하루', - dd: '%d일', - M: '한 달', - MM: '%d달', - y: '일 년', - yy: '%d년', - }, - dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '일'; - case 'M': - return number + '월'; - case 'w': - case 'W': - return number + '주'; - default: - return number; - } - }, - meridiemParse: /오전|오후/, - isPM: function (token) { - return token === '오후'; + future: 'om %s', + past: '%s siden', + s: 'noen sekunder', + ss: '%d sekunder', + m: 'ett minutt', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dager', + w: 'en uke', + ww: '%d uker', + M: 'en måned', + MM: '%d måneder', + y: 'ett år', + yy: '%d år', }, - meridiem: function (hour, minute, isUpper) { - return hour < 12 ? '오전' : '오후'; + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return ko; + return nb; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ku.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ku.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ne.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ne.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2539061__) { //! moment.js locale configuration -//! locale : Kurdish [ku] -//! author : Shahram Mebashar : https://github.com/ShahramMebashar +//! locale : Nepalese [ne] +//! author : suvash : https://github.com/suvash ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2539061__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { - 1: '١', - 2: '٢', - 3: '٣', - 4: '٤', - 5: '٥', - 6: '٦', - 7: '٧', - 8: '٨', - 9: '٩', - 0: '٠', + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', }, numberMap = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0', - }, - months = [ - 'کانونی دووەم', - 'شوبات', - 'ئازار', - 'نیسان', - 'ئایار', - 'حوزەیران', - 'تەمموز', - 'ئاب', - 'ئەیلوول', - 'تشرینی یەكەم', - 'تشرینی دووەم', - 'كانونی یەکەم', - ]; + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }; - var ku = moment.defineLocale('ku', { - months: months, - monthsShort: months, - weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split( + var ne = moment.defineLocale('ne', { + months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split( '_' ), - weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split( + monthsShort: + 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split( '_' ), - weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'), + weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), + weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'), weekdaysParseExact: true, longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', + LT: 'Aको h:mm बजे', + LTS: 'Aको h:mm:ss बजे', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', + LLL: 'D MMMM YYYY, Aको h:mm बजे', + LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे', }, - meridiemParse: /ئێواره‌|به‌یانی/, - isPM: function (input) { - return /ئێواره‌/.test(input); + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /राति|बिहान|दिउँसो|साँझ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'राति') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'बिहान') { + return hour; + } else if (meridiem === 'दिउँसो') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'साँझ') { + return hour + 12; + } }, meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'به‌یانی'; + if (hour < 3) { + return 'राति'; + } else if (hour < 12) { + return 'बिहान'; + } else if (hour < 16) { + return 'दिउँसो'; + } else if (hour < 20) { + return 'साँझ'; } else { - return 'ئێواره‌'; + return 'राति'; } }, calendar: { - sameDay: '[ئه‌مرۆ كاتژمێر] LT', - nextDay: '[به‌یانی كاتژمێر] LT', - nextWeek: 'dddd [كاتژمێر] LT', - lastDay: '[دوێنێ كاتژمێر] LT', - lastWeek: 'dddd [كاتژمێر] LT', + sameDay: '[आज] LT', + nextDay: '[भोलि] LT', + nextWeek: '[आउँदो] dddd[,] LT', + lastDay: '[हिजो] LT', + lastWeek: '[गएको] dddd[,] LT', sameElse: 'L', }, relativeTime: { - future: 'له‌ %s', - past: '%s', - s: 'چه‌ند چركه‌یه‌ك', - ss: 'چركه‌ %d', - m: 'یه‌ك خوله‌ك', - mm: '%d خوله‌ك', - h: 'یه‌ك كاتژمێر', - hh: '%d كاتژمێر', - d: 'یه‌ك ڕۆژ', - dd: '%d ڕۆژ', - M: 'یه‌ك مانگ', - MM: '%d مانگ', - y: 'یه‌ك ساڵ', - yy: '%d ساڵ', - }, - preparse: function (string) { - return string - .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap[match]; - }) - .replace(/،/g, ','); - }, - postformat: function (string) { - return string - .replace(/\d/g, function (match) { - return symbolMap[match]; - }) - .replace(/,/g, '،'); + future: '%sमा', + past: '%s अगाडि', + s: 'केही क्षण', + ss: '%d सेकेण्ड', + m: 'एक मिनेट', + mm: '%d मिनेट', + h: 'एक घण्टा', + hh: '%d घण्टा', + d: 'एक दिन', + dd: '%d दिन', + M: 'एक महिना', + MM: '%d महिना', + y: 'एक बर्ष', + yy: '%d बर्ष', }, week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. }, }); - return ku; + return ne; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ky.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ky.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/nl-be.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/nl-be.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2543320__) { //! moment.js locale configuration -//! locale : Kyrgyz [ky] -//! author : Chyngyz Arystan uulu : https://github.com/chyngyz +//! locale : Dutch (Belgium) [nl-be] +//! author : Joris Röling : https://github.com/jorisroling +//! author : Jacob Middag : https://github.com/middagj ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2543320__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var suffixes = { - 0: '-чү', - 1: '-чи', - 2: '-чи', - 3: '-чү', - 4: '-чү', - 5: '-чи', - 6: '-чы', - 7: '-чи', - 8: '-чи', - 9: '-чу', - 10: '-чу', - 20: '-чы', - 30: '-чу', - 40: '-чы', - 50: '-чү', - 60: '-чы', - 70: '-чи', - 80: '-чи', - 90: '-чу', - 100: '-чү', - }; + var monthsShortWithDots = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse = [ + /^jan/i, + /^feb/i, + /^maart|mrt.?$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - var ky = moment.defineLocale('ky', { - months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( - '_' - ), - monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split( - '_' - ), - weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split( + var nlBe = moment.defineLocale('nl-be', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( '_' ), - weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'), - weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', + L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[Бүгүн саат] LT', - nextDay: '[Эртең саат] LT', - nextWeek: 'dddd [саат] LT', - lastDay: '[Кечээ саат] LT', - lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT', + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', sameElse: 'L', }, relativeTime: { - future: '%s ичинде', - past: '%s мурун', - s: 'бирнече секунд', - ss: '%d секунд', - m: 'бир мүнөт', - mm: '%d мүнөт', - h: 'бир саат', - hh: '%d саат', - d: 'бир күн', - dd: '%d күн', - M: 'бир ай', - MM: '%d ай', - y: 'бир жыл', - yy: '%d жыл', + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: 'één minuut', + mm: '%d minuten', + h: 'één uur', + hh: '%d uur', + d: 'één dag', + dd: '%d dagen', + M: 'één maand', + MM: '%d maanden', + y: 'één jaar', + yy: '%d jaar', }, - dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, ordinal: function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes[number] || suffixes[a] || suffixes[b]); + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); }, week: { dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return ky; + return nlBe; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lb.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lb.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/nl.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/nl.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2547430__) { //! moment.js locale configuration -//! locale : Luxembourgish [lb] -//! author : mweimerskirch : https://github.com/mweimerskirch -//! author : David Raison : https://github.com/kwisatz +//! locale : Dutch [nl] +//! author : Joris Röling : https://github.com/jorisroling +//! author : Jacob Middag : https://github.com/middagj ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2547430__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - m: ['eng Minutt', 'enger Minutt'], - h: ['eng Stonn', 'enger Stonn'], - d: ['een Dag', 'engem Dag'], - M: ['ee Mount', 'engem Mount'], - y: ['ee Joer', 'engem Joer'], - }; - return withoutSuffix ? format[key][0] : format[key][1]; - } - function processFutureTime(string) { - var number = string.substr(0, string.indexOf(' ')); - if (eifelerRegelAppliesToNumber(number)) { - return 'a ' + string; - } - return 'an ' + string; - } - function processPastTime(string) { - var number = string.substr(0, string.indexOf(' ')); - if (eifelerRegelAppliesToNumber(number)) { - return 'viru ' + string; - } - return 'virun ' + string; - } - /** - * Returns true if the word before the given number loses the '-n' ending. - * e.g. 'an 10 Deeg' but 'a 5 Deeg' - * - * @param number {integer} - * @returns {boolean} - */ - function eifelerRegelAppliesToNumber(number) { - number = parseInt(number, 10); - if (isNaN(number)) { - return false; - } - if (number < 0) { - // Negative Number --> always true - return true; - } else if (number < 10) { - // Only 1 digit - if (4 <= number && number <= 7) { - return true; - } - return false; - } else if (number < 100) { - // 2 digits - var lastDigit = number % 10, - firstDigit = number / 10; - if (lastDigit === 0) { - return eifelerRegelAppliesToNumber(firstDigit); - } - return eifelerRegelAppliesToNumber(lastDigit); - } else if (number < 10000) { - // 3 or 4 digits --> recursively check first digit - while (number >= 10) { - number = number / 10; - } - return eifelerRegelAppliesToNumber(number); - } else { - // Anything larger than 4 digits: recursively check first n-3 digits - number = number / 1000; - return eifelerRegelAppliesToNumber(number); - } - } + var monthsShortWithDots = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse = [ + /^jan/i, + /^feb/i, + /^maart|mrt.?$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - var lb = moment.defineLocale('lb', { - months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( - '_' - ), - monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split( + var nl = moment.defineLocale('nl', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( '_' ), - weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), - weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), weekdaysParseExact: true, longDateFormat: { - LT: 'H:mm [Auer]', - LTS: 'H:mm:ss [Auer]', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm [Auer]', - LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[Haut um] LT', + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', sameElse: 'L', - nextDay: '[Muer um] LT', - nextWeek: 'dddd [um] LT', - lastDay: '[Gëschter um] LT', - lastWeek: function () { - // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule - switch (this.day()) { - case 2: - case 4: - return '[Leschten] dddd [um] LT'; - default: - return '[Leschte] dddd [um] LT'; - } - }, }, relativeTime: { - future: processFutureTime, - past: processPastTime, - s: 'e puer Sekonnen', - ss: '%d Sekonnen', - m: processRelativeTime, - mm: '%d Minutten', - h: processRelativeTime, - hh: '%d Stonnen', - d: processRelativeTime, - dd: '%d Deeg', - M: processRelativeTime, - MM: '%d Méint', - y: processRelativeTime, - yy: '%d Joer', + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: 'één minuut', + mm: '%d minuten', + h: 'één uur', + hh: '%d uur', + d: 'één dag', + dd: '%d dagen', + w: 'één week', + ww: '%d weken', + M: 'één maand', + MM: '%d maanden', + y: 'één jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return lb; + return nl; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lo.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lo.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/nn.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/nn.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2551575__) { //! moment.js locale configuration -//! locale : Lao [lo] -//! author : Ryan Hart : https://github.com/ryanhart2 +//! locale : Nynorsk [nn] +//! authors : https://github.com/mechuwind +//! Stephen Ramthun : https://github.com/stephenramthun ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2551575__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var lo = moment.defineLocale('lo', { - months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( - '_' - ), - monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( + var nn = moment.defineLocale('nn', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( '_' ), - weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), - weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), - weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), + weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'), + weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'ວັນdddd D MMMM YYYY HH:mm', - }, - meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, - isPM: function (input) { - return input === 'ຕອນແລງ'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ຕອນເຊົ້າ'; - } else { - return 'ຕອນແລງ'; - } + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', }, calendar: { - sameDay: '[ມື້ນີ້ເວລາ] LT', - nextDay: '[ມື້ອື່ນເວລາ] LT', - nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT', - lastDay: '[ມື້ວານນີ້ເວລາ] LT', - lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT', + sameDay: '[I dag klokka] LT', + nextDay: '[I morgon klokka] LT', + nextWeek: 'dddd [klokka] LT', + lastDay: '[I går klokka] LT', + lastWeek: '[Føregåande] dddd [klokka] LT', sameElse: 'L', }, relativeTime: { - future: 'ອີກ %s', - past: '%sຜ່ານມາ', - s: 'ບໍ່ເທົ່າໃດວິນາທີ', - ss: '%d ວິນາທີ', - m: '1 ນາທີ', - mm: '%d ນາທີ', - h: '1 ຊົ່ວໂມງ', - hh: '%d ຊົ່ວໂມງ', - d: '1 ມື້', - dd: '%d ມື້', - M: '1 ເດືອນ', - MM: '%d ເດືອນ', - y: '1 ປີ', - yy: '%d ປີ', + future: 'om %s', + past: '%s sidan', + s: 'nokre sekund', + ss: '%d sekund', + m: 'eit minutt', + mm: '%d minutt', + h: 'ein time', + hh: '%d timar', + d: 'ein dag', + dd: '%d dagar', + w: 'ei veke', + ww: '%d veker', + M: 'ein månad', + MM: '%d månader', + y: 'eit år', + yy: '%d år', }, - dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/, - ordinal: function (number) { - return 'ທີ່' + number; + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return lo; + return nn; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lt.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lt.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/oc-lnc.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/oc-lnc.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2554201__) { //! moment.js locale configuration -//! locale : Lithuanian [lt] -//! author : Mindaugas Mozūras : https://github.com/mmozuras +//! locale : Occitan, lengadocian dialecte [oc-lnc] +//! author : Quentin PAGÈS : https://github.com/Quenty31 ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2554201__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var units = { - ss: 'sekundė_sekundžių_sekundes', - m: 'minutė_minutės_minutę', - mm: 'minutės_minučių_minutes', - h: 'valanda_valandos_valandą', - hh: 'valandos_valandų_valandas', - d: 'diena_dienos_dieną', - dd: 'dienos_dienų_dienas', - M: 'mėnuo_mėnesio_mėnesį', - MM: 'mėnesiai_mėnesių_mėnesius', - y: 'metai_metų_metus', - yy: 'metai_metų_metus', - }; - function translateSeconds(number, withoutSuffix, key, isFuture) { - if (withoutSuffix) { - return 'kelios sekundės'; - } else { - return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; - } - } - function translateSingular(number, withoutSuffix, key, isFuture) { - return withoutSuffix - ? forms(key)[0] - : isFuture - ? forms(key)[1] - : forms(key)[2]; - } - function special(number) { - return number % 10 === 0 || (number > 10 && number < 20); - } - function forms(key) { - return units[key].split('_'); - } - function translate(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - if (number === 1) { - return ( - result + translateSingular(number, withoutSuffix, key[0], isFuture) - ); - } else if (withoutSuffix) { - return result + (special(number) ? forms(key)[1] : forms(key)[0]); - } else { - if (isFuture) { - return result + forms(key)[1]; - } else { - return result + (special(number) ? forms(key)[1] : forms(key)[2]); - } - } - } - var lt = moment.defineLocale('lt', { + var ocLnc = moment.defineLocale('oc-lnc', { months: { - format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split( - '_' - ), - standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split( + standalone: + 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split( + '_' + ), + format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split( '_' ), - isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, + isFormat: /D[oD]?(\s)+MMMM/, }, - monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), - weekdays: { - format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split( - '_' - ), - standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split( + monthsShort: + 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( '_' ), - isFormat: /dddd HH:mm/, - }, - weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), - weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'YYYY [m.] MMMM D [d.]', - LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', - LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', - l: 'YYYY-MM-DD', - ll: 'YYYY [m.] MMMM D [d.]', - lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', - llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', + monthsParseExact: true, + weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', + llll: 'ddd D MMM YYYY, H:mm', }, calendar: { - sameDay: '[Šiandien] LT', - nextDay: '[Rytoj] LT', - nextWeek: 'dddd LT', - lastDay: '[Vakar] LT', - lastWeek: '[Praėjusį] dddd LT', + sameDay: '[uèi a] LT', + nextDay: '[deman a] LT', + nextWeek: 'dddd [a] LT', + lastDay: '[ièr a] LT', + lastWeek: 'dddd [passat a] LT', sameElse: 'L', }, relativeTime: { - future: 'po %s', - past: 'prieš %s', - s: translateSeconds, - ss: translate, - m: translateSingular, - mm: translate, - h: translateSingular, - hh: translate, - d: translateSingular, - dd: translate, - M: translateSingular, - MM: translate, - y: translateSingular, - yy: translate, + future: "d'aquí %s", + past: 'fa %s', + s: 'unas segondas', + ss: '%d segondas', + m: 'una minuta', + mm: '%d minutas', + h: 'una ora', + hh: '%d oras', + d: 'un jorn', + dd: '%d jorns', + M: 'un mes', + MM: '%d meses', + y: 'un an', + yy: '%d ans', }, - dayOfMonthOrdinalParse: /\d{1,2}-oji/, - ordinal: function (number) { - return number + '-oji'; + dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, + ordinal: function (number, period) { + var output = + number === 1 + ? 'r' + : number === 2 + ? 'n' + : number === 3 + ? 'r' + : number === 4 + ? 't' + : 'è'; + if (period === 'w' || period === 'W') { + output = 'a'; + } + return number + output; }, week: { dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + doy: 4, }, }); - return lt; + return ocLnc; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lv.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lv.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/pa-in.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/pa-in.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2557574__) { //! moment.js locale configuration -//! locale : Latvian [lv] -//! author : Kristaps Karlsons : https://github.com/skakri -//! author : Jānis Elmeris : https://github.com/JanisE +//! locale : Punjabi (India) [pa-in] +//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2557574__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var units = { - ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'), - m: 'minūtes_minūtēm_minūte_minūtes'.split('_'), - mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'), - h: 'stundas_stundām_stunda_stundas'.split('_'), - hh: 'stundas_stundām_stunda_stundas'.split('_'), - d: 'dienas_dienām_diena_dienas'.split('_'), - dd: 'dienas_dienām_diena_dienas'.split('_'), - M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), - MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), - y: 'gada_gadiem_gads_gadi'.split('_'), - yy: 'gada_gadiem_gads_gadi'.split('_'), - }; - /** - * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. - */ - function format(forms, number, withoutSuffix) { - if (withoutSuffix) { - // E.g. "21 minūte", "3 minūtes". - return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; - } else { - // E.g. "21 minūtes" as in "pēc 21 minūtes". - // E.g. "3 minūtēm" as in "pēc 3 minūtēm". - return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; - } - } - function relativeTimeWithPlural(number, withoutSuffix, key) { - return number + ' ' + format(units[key], number, withoutSuffix); - } - function relativeTimeWithSingular(number, withoutSuffix, key) { - return format(units[key], number, withoutSuffix); - } - function relativeSeconds(number, withoutSuffix) { - return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm'; - } + var symbolMap = { + 1: '੧', + 2: '੨', + 3: '੩', + 4: '੪', + 5: '੫', + 6: '੬', + 7: '੭', + 8: '੮', + 9: '੯', + 0: '੦', + }, + numberMap = { + '੧': '1', + '੨': '2', + '੩': '3', + '੪': '4', + '੫': '5', + '੬': '6', + '੭': '7', + '੮': '8', + '੯': '9', + '੦': '0', + }; - var lv = moment.defineLocale('lv', { - months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split( + var paIn = moment.defineLocale('pa-in', { + // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. + months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( '_' ), - monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'), - weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split( + monthsShort: + 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( + '_' + ), + weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split( '_' ), - weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), - weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), - weekdaysParseExact: true, + weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), + weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY.', - LL: 'YYYY. [gada] D. MMMM', - LLL: 'YYYY. [gada] D. MMMM, HH:mm', - LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', + LT: 'A h:mm ਵਜੇ', + LTS: 'A h:mm:ss ਵਜੇ', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm ਵਜੇ', + LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ', }, calendar: { - sameDay: '[Šodien pulksten] LT', - nextDay: '[Rīt pulksten] LT', - nextWeek: 'dddd [pulksten] LT', - lastDay: '[Vakar pulksten] LT', - lastWeek: '[Pagājušā] dddd [pulksten] LT', + sameDay: '[ਅਜ] LT', + nextDay: '[ਕਲ] LT', + nextWeek: '[ਅਗਲਾ] dddd, LT', + lastDay: '[ਕਲ] LT', + lastWeek: '[ਪਿਛਲੇ] dddd, LT', sameElse: 'L', }, relativeTime: { - future: 'pēc %s', - past: 'pirms %s', - s: relativeSeconds, - ss: relativeTimeWithPlural, - m: relativeTimeWithSingular, - mm: relativeTimeWithPlural, - h: relativeTimeWithSingular, - hh: relativeTimeWithPlural, - d: relativeTimeWithSingular, - dd: relativeTimeWithPlural, - M: relativeTimeWithSingular, - MM: relativeTimeWithPlural, - y: relativeTimeWithSingular, - yy: relativeTimeWithPlural, + future: '%s ਵਿੱਚ', + past: '%s ਪਿਛਲੇ', + s: 'ਕੁਝ ਸਕਿੰਟ', + ss: '%d ਸਕਿੰਟ', + m: 'ਇਕ ਮਿੰਟ', + mm: '%d ਮਿੰਟ', + h: 'ਇੱਕ ਘੰਟਾ', + hh: '%d ਘੰਟੇ', + d: 'ਇੱਕ ਦਿਨ', + dd: '%d ਦਿਨ', + M: 'ਇੱਕ ਮਹੀਨਾ', + MM: '%d ਮਹੀਨੇ', + y: 'ਇੱਕ ਸਾਲ', + yy: '%d ਸਾਲ', + }, + preparse: function (string) { + return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Punjabi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. + meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ਰਾਤ') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ਸਵੇਰ') { + return hour; + } else if (meridiem === 'ਦੁਪਹਿਰ') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'ਸ਼ਾਮ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ਰਾਤ'; + } else if (hour < 10) { + return 'ਸਵੇਰ'; + } else if (hour < 17) { + return 'ਦੁਪਹਿਰ'; + } else if (hour < 20) { + return 'ਸ਼ਾਮ'; + } else { + return 'ਰਾਤ'; + } }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. }, }); - return lv; + return paIn; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/me.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/me.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/pl.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/pl.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2562034__) { //! moment.js locale configuration -//! locale : Montenegrin [me] -//! author : Miodrag Nikač : https://github.com/miodragnikac +//! locale : Polish [pl] +//! author : Rafal Hirsz : https://github.com/evoL ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2562034__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var translator = { - words: { - //Different grammatical cases - ss: ['sekund', 'sekunda', 'sekundi'], - m: ['jedan minut', 'jednog minuta'], - mm: ['minut', 'minuta', 'minuta'], - h: ['jedan sat', 'jednog sata'], - hh: ['sat', 'sata', 'sati'], - dd: ['dan', 'dana', 'dana'], - MM: ['mjesec', 'mjeseca', 'mjeseci'], - yy: ['godina', 'godine', 'godina'], - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 - ? wordKey[0] - : number >= 2 && number <= 4 - ? wordKey[1] - : wordKey[2]; - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; + var monthsNominative = + 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split( + '_' + ), + monthsSubjective = + 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split( + '_' + ), + monthsParse = [ + /^sty/i, + /^lut/i, + /^mar/i, + /^kwi/i, + /^maj/i, + /^cze/i, + /^lip/i, + /^sie/i, + /^wrz/i, + /^paź/i, + /^lis/i, + /^gru/i, + ]; + function plural(n) { + return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; + } + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + return result + (plural(number) ? 'sekundy' : 'sekund'); + case 'm': + return withoutSuffix ? 'minuta' : 'minutę'; + case 'mm': + return result + (plural(number) ? 'minuty' : 'minut'); + case 'h': + return withoutSuffix ? 'godzina' : 'godzinę'; + case 'hh': + return result + (plural(number) ? 'godziny' : 'godzin'); + case 'ww': + return result + (plural(number) ? 'tygodnie' : 'tygodni'); + case 'MM': + return result + (plural(number) ? 'miesiące' : 'miesięcy'); + case 'yy': + return result + (plural(number) ? 'lata' : 'lat'); + } + } + + var pl = moment.defineLocale('pl', { + months: function (momentToFormat, format) { + if (!momentToFormat) { + return monthsNominative; + } else if (/D MMMM/.test(format)) { + return monthsSubjective[momentToFormat.month()]; } else { - return ( - number + - ' ' + - translator.correctGrammaticalCase(number, wordKey) - ); + return monthsNominative[momentToFormat.month()]; } }, - }; - - var me = moment.defineLocale('me', { - months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( - '_' - ), - monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( - '_' - ), - weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), - weekdaysParseExact: true, + monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: + 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'), + weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'), + weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'), longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', + LT: 'HH:mm', + LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[danas u] LT', - nextDay: '[sjutra u] LT', - + sameDay: '[Dziś o] LT', + nextDay: '[Jutro o] LT', nextWeek: function () { switch (this.day()) { case 0: - return '[u] [nedjelju] [u] LT'; + return '[W niedzielę o] LT'; + + case 2: + return '[We wtorek o] LT'; + case 3: - return '[u] [srijedu] [u] LT'; + return '[W środę o] LT'; + case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; + return '[W sobotę o] LT'; + + default: + return '[W] dddd [o] LT'; } }, - lastDay: '[juče u] LT', + lastDay: '[Wczoraj o] LT', lastWeek: function () { - var lastWeekDays = [ - '[prošle] [nedjelje] [u] LT', - '[prošlog] [ponedjeljka] [u] LT', - '[prošlog] [utorka] [u] LT', - '[prošle] [srijede] [u] LT', - '[prošlog] [četvrtka] [u] LT', - '[prošlog] [petka] [u] LT', - '[prošle] [subote] [u] LT', - ]; - return lastWeekDays[this.day()]; + switch (this.day()) { + case 0: + return '[W zeszłą niedzielę o] LT'; + case 3: + return '[W zeszłą środę o] LT'; + case 6: + return '[W zeszłą sobotę o] LT'; + default: + return '[W zeszły] dddd [o] LT'; + } }, sameElse: 'L', }, relativeTime: { future: 'za %s', - past: 'prije %s', - s: 'nekoliko sekundi', - ss: translator.translate, - m: translator.translate, - mm: translator.translate, - h: translator.translate, - hh: translator.translate, - d: 'dan', - dd: translator.translate, - M: 'mjesec', - MM: translator.translate, - y: 'godinu', - yy: translator.translate, + past: '%s temu', + s: 'kilka sekund', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: '1 dzień', + dd: '%d dni', + w: 'tydzień', + ww: translate, + M: 'miesiąc', + MM: translate, + y: 'rok', + yy: translate, }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return pl; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/pt-br.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/pt-br.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2567274__) { + +//! moment.js locale configuration +//! locale : Portuguese (Brazil) [pt-br] +//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira + +;(function (global, factory) { + true ? factory(__nested_webpack_require_2567274__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ptBr = moment.defineLocale('pt-br', { + months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split( + '_' + ), + weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'), + weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY [às] HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm', + }, + calendar: { + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[Último] dddd [às] LT' // Saturday + Sunday + : '[Última] dddd [às] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'há %s', + s: 'poucos segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + M: 'um mês', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + invalidDate: 'Data inválida', }); - return me; + return ptBr; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mi.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mi.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/pt.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/pt.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2569898__) { //! moment.js locale configuration -//! locale : Maori [mi] -//! author : John Corrigan : https://github.com/johnideal +//! locale : Portuguese [pt] +//! author : Jefferson : https://github.com/jalex79 ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2569898__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var mi = moment.defineLocale('mi', { - months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split( - '_' - ), - monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( + var pt = moment.defineLocale('pt', { + months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( '_' ), - monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, - weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'), - weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), - weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split( + '_' + ), + weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), + weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), + weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [i] HH:mm', - LLLL: 'dddd, D MMMM YYYY [i] HH:mm', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', }, calendar: { - sameDay: '[i teie mahana, i] LT', - nextDay: '[apopo i] LT', - nextWeek: 'dddd [i] LT', - lastDay: '[inanahi i] LT', - lastWeek: 'dddd [whakamutunga i] LT', + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[Último] dddd [às] LT' // Saturday + Sunday + : '[Última] dddd [às] LT'; // Monday - Friday + }, sameElse: 'L', }, relativeTime: { - future: 'i roto i %s', - past: '%s i mua', - s: 'te hēkona ruarua', - ss: '%d hēkona', - m: 'he meneti', - mm: '%d meneti', - h: 'te haora', - hh: '%d haora', - d: 'he ra', - dd: '%d ra', - M: 'he marama', - MM: '%d marama', - y: 'he tau', - yy: '%d tau', + future: 'em %s', + past: 'há %s', + s: 'segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + w: 'uma semana', + ww: '%d semanas', + M: 'um mês', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: '%dº', @@ -67076,772 +74374,995 @@ module.exports = uniqBy; }, }); - return mi; + return pt; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mk.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mk.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ro.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ro.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2572655__) { //! moment.js locale configuration -//! locale : Macedonian [mk] -//! author : Borislav Mickov : https://github.com/B0k0 -//! author : Sashko Todorov : https://github.com/bkyceh +//! locale : Romanian [ro] +//! author : Vlad Gurdiga : https://github.com/gurdiga +//! author : Valentin Agachi : https://github.com/avaly +//! author : Emanuel Cepoi : https://github.com/cepem ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2572655__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var mk = moment.defineLocale('mk', { - months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split( - '_' - ), - monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), - weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split( + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: 'secunde', + mm: 'minute', + hh: 'ore', + dd: 'zile', + ww: 'săptămâni', + MM: 'luni', + yy: 'ani', + }, + separator = ' '; + if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { + separator = ' de '; + } + return number + separator + format[key]; + } + + var ro = moment.defineLocale('ro', { + months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( '_' ), - weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'), - weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'), + monthsShort: + 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'), + weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), + weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', - L: 'D.MM.YYYY', + L: 'DD.MM.YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY H:mm', LLLL: 'dddd, D MMMM YYYY H:mm', }, calendar: { - sameDay: '[Денес во] LT', - nextDay: '[Утре во] LT', - nextWeek: '[Во] dddd [во] LT', - lastDay: '[Вчера во] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 6: - return '[Изминатата] dddd [во] LT'; - case 1: - case 2: - case 4: - case 5: - return '[Изминатиот] dddd [во] LT'; + sameDay: '[azi la] LT', + nextDay: '[mâine la] LT', + nextWeek: 'dddd [la] LT', + lastDay: '[ieri la] LT', + lastWeek: '[fosta] dddd [la] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'peste %s', + past: '%s în urmă', + s: 'câteva secunde', + ss: relativeTimeWithPlural, + m: 'un minut', + mm: relativeTimeWithPlural, + h: 'o oră', + hh: relativeTimeWithPlural, + d: 'o zi', + dd: relativeTimeWithPlural, + w: 'o săptămână', + ww: relativeTimeWithPlural, + M: 'o lună', + MM: relativeTimeWithPlural, + y: 'un an', + yy: relativeTimeWithPlural, + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return ro; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ru.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ru.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2575806__) { + +//! moment.js locale configuration +//! locale : Russian [ru] +//! author : Viktorminator : https://github.com/Viktorminator +//! author : Menelion Elensúle : https://github.com/Oire +//! author : Коренберг Марк : https://github.com/socketpair + +;(function (global, factory) { + true ? factory(__nested_webpack_require_2575806__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', + mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', + hh: 'час_часа_часов', + dd: 'день_дня_дней', + ww: 'неделя_недели_недель', + MM: 'месяц_месяца_месяцев', + yy: 'год_года_лет', + }; + if (key === 'm') { + return withoutSuffix ? 'минута' : 'минуту'; + } else { + return number + ' ' + plural(format[key], +number); + } + } + var monthsParse = [ + /^янв/i, + /^фев/i, + /^мар/i, + /^апр/i, + /^ма[йя]/i, + /^июн/i, + /^июл/i, + /^авг/i, + /^сен/i, + /^окт/i, + /^ноя/i, + /^дек/i, + ]; + + // http://new.gramota.ru/spravka/rules/139-prop : § 103 + // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 + // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 + var ru = moment.defineLocale('ru', { + months: { + format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split( + '_' + ), + standalone: + 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( + '_' + ), + }, + monthsShort: { + // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку? + format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split( + '_' + ), + standalone: + 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split( + '_' + ), + }, + weekdays: { + standalone: + 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split( + '_' + ), + format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split( + '_' + ), + isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/, + }, + weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки + monthsRegex: + /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, + + // копия предыдущего + monthsShortRegex: + /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, + + // полные названия с падежами + monthsStrictRegex: + /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, + + // Выражение, которое соответствует только сокращённым формам + monthsShortStrictRegex: + /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY г.', + LLL: 'D MMMM YYYY г., H:mm', + LLLL: 'dddd, D MMMM YYYY г., H:mm', + }, + calendar: { + sameDay: '[Сегодня, в] LT', + nextDay: '[Завтра, в] LT', + lastDay: '[Вчера, в] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + switch (this.day()) { + case 0: + return '[В следующее] dddd, [в] LT'; + case 1: + case 2: + case 4: + return '[В следующий] dddd, [в] LT'; + case 3: + case 5: + case 6: + return '[В следующую] dddd, [в] LT'; + } + } else { + if (this.day() === 2) { + return '[Во] dddd, [в] LT'; + } else { + return '[В] dddd, [в] LT'; + } + } + }, + lastWeek: function (now) { + if (now.week() !== this.week()) { + switch (this.day()) { + case 0: + return '[В прошлое] dddd, [в] LT'; + case 1: + case 2: + case 4: + return '[В прошлый] dddd, [в] LT'; + case 3: + case 5: + case 6: + return '[В прошлую] dddd, [в] LT'; + } + } else { + if (this.day() === 2) { + return '[Во] dddd, [в] LT'; + } else { + return '[В] dddd, [в] LT'; + } } }, sameElse: 'L', }, relativeTime: { - future: 'за %s', - past: 'пред %s', - s: 'неколку секунди', - ss: '%d секунди', - m: 'една минута', - mm: '%d минути', - h: 'еден час', - hh: '%d часа', - d: 'еден ден', - dd: '%d дена', - M: 'еден месец', - MM: '%d месеци', - y: 'една година', - yy: '%d години', + future: 'через %s', + past: '%s назад', + s: 'несколько секунд', + ss: relativeTimeWithPlural, + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: 'час', + hh: relativeTimeWithPlural, + d: 'день', + dd: relativeTimeWithPlural, + w: 'неделя', + ww: relativeTimeWithPlural, + M: 'месяц', + MM: relativeTimeWithPlural, + y: 'год', + yy: relativeTimeWithPlural, }, - dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, - ordinal: function (number) { - var lastDigit = number % 10, - last2Digits = number % 100; - if (number === 0) { - return number + '-ев'; - } else if (last2Digits === 0) { - return number + '-ен'; - } else if (last2Digits > 10 && last2Digits < 20) { - return number + '-ти'; - } else if (lastDigit === 1) { - return number + '-ви'; - } else if (lastDigit === 2) { - return number + '-ри'; - } else if (lastDigit === 7 || lastDigit === 8) { - return number + '-ми'; + meridiemParse: /ночи|утра|дня|вечера/i, + isPM: function (input) { + return /^(дня|вечера)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночи'; + } else if (hour < 12) { + return 'утра'; + } else if (hour < 17) { + return 'дня'; } else { - return number + '-ти'; + return 'вечера'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + return number + '-й'; + case 'D': + return number + '-го'; + case 'w': + case 'W': + return number + '-я'; + default: + return number; } }, week: { dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return mk; + return ru; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ml.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ml.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/sd.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/sd.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2584242__) { //! moment.js locale configuration -//! locale : Malayalam [ml] -//! author : Floyd Pink : https://github.com/floydpink +//! locale : Sindhi [sd] +//! author : Narain Sagar : https://github.com/narainsagar ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2584242__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var ml = moment.defineLocale('ml', { - months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split( - '_' - ), - monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split( - '_' - ), - weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), - weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), + var months = [ + 'جنوري', + 'فيبروري', + 'مارچ', + 'اپريل', + 'مئي', + 'جون', + 'جولاءِ', + 'آگسٽ', + 'سيپٽمبر', + 'آڪٽوبر', + 'نومبر', + 'ڊسمبر', + ], + days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر']; + + var sd = moment.defineLocale('sd', { + months: months, + monthsShort: months, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, longDateFormat: { - LT: 'A h:mm -നു', - LTS: 'A h:mm:ss -നു', + LT: 'HH:mm', + LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm -നു', - LLLL: 'dddd, D MMMM YYYY, A h:mm -നു', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd، D MMMM YYYY HH:mm', + }, + meridiemParse: /صبح|شام/, + isPM: function (input) { + return 'شام' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'صبح'; + } + return 'شام'; }, calendar: { - sameDay: '[ഇന്ന്] LT', - nextDay: '[നാളെ] LT', - nextWeek: 'dddd, LT', - lastDay: '[ഇന്നലെ] LT', - lastWeek: '[കഴിഞ്ഞ] dddd, LT', + sameDay: '[اڄ] LT', + nextDay: '[سڀاڻي] LT', + nextWeek: 'dddd [اڳين هفتي تي] LT', + lastDay: '[ڪالهه] LT', + lastWeek: '[گزريل هفتي] dddd [تي] LT', sameElse: 'L', }, relativeTime: { - future: '%s കഴിഞ്ഞ്', - past: '%s മുൻപ്', - s: 'അൽപ നിമിഷങ്ങൾ', - ss: '%d സെക്കൻഡ്', - m: 'ഒരു മിനിറ്റ്', - mm: '%d മിനിറ്റ്', - h: 'ഒരു മണിക്കൂർ', - hh: '%d മണിക്കൂർ', - d: 'ഒരു ദിവസം', - dd: '%d ദിവസം', - M: 'ഒരു മാസം', - MM: '%d മാസം', - y: 'ഒരു വർഷം', - yy: '%d വർഷം', - }, - meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ( - (meridiem === 'രാത്രി' && hour >= 4) || - meridiem === 'ഉച്ച കഴിഞ്ഞ്' || - meridiem === 'വൈകുന്നേരം' - ) { - return hour + 12; - } else { - return hour; - } + future: '%s پوء', + past: '%s اڳ', + s: 'چند سيڪنڊ', + ss: '%d سيڪنڊ', + m: 'هڪ منٽ', + mm: '%d منٽ', + h: 'هڪ ڪلاڪ', + hh: '%d ڪلاڪ', + d: 'هڪ ڏينهن', + dd: '%d ڏينهن', + M: 'هڪ مهينو', + MM: '%d مهينا', + y: 'هڪ سال', + yy: '%d سال', }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'രാത്രി'; - } else if (hour < 12) { - return 'രാവിലെ'; - } else if (hour < 17) { - return 'ഉച്ച കഴിഞ്ഞ്'; - } else if (hour < 20) { - return 'വൈകുന്നേരം'; - } else { - return 'രാത്രി'; - } + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return ml; + return sd; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mn.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mn.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/se.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/se.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2587069__) { //! moment.js locale configuration -//! locale : Mongolian [mn] -//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7 +//! locale : Northern Sami [se] +//! authors : Bård Rolstad Henriksen : https://github.com/karamell ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2587069__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - function translate(number, withoutSuffix, key, isFuture) { - switch (key) { - case 's': - return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын'; - case 'ss': - return number + (withoutSuffix ? ' секунд' : ' секундын'); - case 'm': - case 'mm': - return number + (withoutSuffix ? ' минут' : ' минутын'); - case 'h': - case 'hh': - return number + (withoutSuffix ? ' цаг' : ' цагийн'); - case 'd': - case 'dd': - return number + (withoutSuffix ? ' өдөр' : ' өдрийн'); - case 'M': - case 'MM': - return number + (withoutSuffix ? ' сар' : ' сарын'); - case 'y': - case 'yy': - return number + (withoutSuffix ? ' жил' : ' жилийн'); - default: - return number; - } - } - - var mn = moment.defineLocale('mn', { - months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split( - '_' - ), - monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split( + var se = moment.defineLocale('se', { + months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split( '_' ), - monthsParseExact: true, - weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'), - weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'), - weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'), - weekdaysParseExact: true, + monthsShort: + 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'), + weekdays: + 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split( + '_' + ), + weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), + weekdaysMin: 's_v_m_g_d_b_L'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'YYYY оны MMMMын D', - LLL: 'YYYY оны MMMMын D HH:mm', - LLLL: 'dddd, YYYY оны MMMMын D HH:mm', - }, - meridiemParse: /ҮӨ|ҮХ/i, - isPM: function (input) { - return input === 'ҮХ'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ҮӨ'; - } else { - return 'ҮХ'; - } + L: 'DD.MM.YYYY', + LL: 'MMMM D. [b.] YYYY', + LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', + LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', }, calendar: { - sameDay: '[Өнөөдөр] LT', - nextDay: '[Маргааш] LT', - nextWeek: '[Ирэх] dddd LT', - lastDay: '[Өчигдөр] LT', - lastWeek: '[Өнгөрсөн] dddd LT', + sameDay: '[otne ti] LT', + nextDay: '[ihttin ti] LT', + nextWeek: 'dddd [ti] LT', + lastDay: '[ikte ti] LT', + lastWeek: '[ovddit] dddd [ti] LT', sameElse: 'L', }, relativeTime: { - future: '%s дараа', - past: '%s өмнө', - s: translate, - ss: translate, - m: translate, - mm: translate, - h: translate, - hh: translate, - d: translate, - dd: translate, - M: translate, - MM: translate, - y: translate, - yy: translate, + future: '%s geažes', + past: 'maŋit %s', + s: 'moadde sekunddat', + ss: '%d sekunddat', + m: 'okta minuhta', + mm: '%d minuhtat', + h: 'okta diimmu', + hh: '%d diimmut', + d: 'okta beaivi', + dd: '%d beaivvit', + M: 'okta mánnu', + MM: '%d mánut', + y: 'okta jahki', + yy: '%d jagit', }, - dayOfMonthOrdinalParse: /\d{1,2} өдөр/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + ' өдөр'; - default: - return number; - } + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return mn; + return se; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mr.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mr.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/si.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/si.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2589670__) { //! moment.js locale configuration -//! locale : Marathi [mr] -//! author : Harshad Kale : https://github.com/kalehv -//! author : Vivek Athalye : https://github.com/vnathalye +//! locale : Sinhalese [si] +//! author : Sampath Sitinamaluwa : https://github.com/sampathsris ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2589670__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var symbolMap = { - 1: '१', - 2: '२', - 3: '३', - 4: '४', - 5: '५', - 6: '६', - 7: '७', - 8: '८', - 9: '९', - 0: '०', - }, - numberMap = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0', - }; - - function relativeTimeMr(number, withoutSuffix, string, isFuture) { - var output = ''; - if (withoutSuffix) { - switch (string) { - case 's': - output = 'काही सेकंद'; - break; - case 'ss': - output = '%d सेकंद'; - break; - case 'm': - output = 'एक मिनिट'; - break; - case 'mm': - output = '%d मिनिटे'; - break; - case 'h': - output = 'एक तास'; - break; - case 'hh': - output = '%d तास'; - break; - case 'd': - output = 'एक दिवस'; - break; - case 'dd': - output = '%d दिवस'; - break; - case 'M': - output = 'एक महिना'; - break; - case 'MM': - output = '%d महिने'; - break; - case 'y': - output = 'एक वर्ष'; - break; - case 'yy': - output = '%d वर्षे'; - break; - } - } else { - switch (string) { - case 's': - output = 'काही सेकंदां'; - break; - case 'ss': - output = '%d सेकंदां'; - break; - case 'm': - output = 'एका मिनिटा'; - break; - case 'mm': - output = '%d मिनिटां'; - break; - case 'h': - output = 'एका तासा'; - break; - case 'hh': - output = '%d तासां'; - break; - case 'd': - output = 'एका दिवसा'; - break; - case 'dd': - output = '%d दिवसां'; - break; - case 'M': - output = 'एका महिन्या'; - break; - case 'MM': - output = '%d महिन्यां'; - break; - case 'y': - output = 'एका वर्षा'; - break; - case 'yy': - output = '%d वर्षां'; - break; - } - } - return output.replace(/%d/i, number); - } - - var mr = moment.defineLocale('mr', { - months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( + /*jshint -W100*/ + var si = moment.defineLocale('si', { + months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split( '_' ), - monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( + monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split( '_' ), - monthsParseExact: true, - weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), - weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), - weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), + weekdays: + 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split( + '_' + ), + weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), + weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), + weekdaysParseExact: true, longDateFormat: { - LT: 'A h:mm वाजता', - LTS: 'A h:mm:ss वाजता', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm वाजता', - LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता', + LT: 'a h:mm', + LTS: 'a h:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY MMMM D', + LLL: 'YYYY MMMM D, a h:mm', + LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss', }, calendar: { - sameDay: '[आज] LT', - nextDay: '[उद्या] LT', - nextWeek: 'dddd, LT', - lastDay: '[काल] LT', - lastWeek: '[मागील] dddd, LT', + sameDay: '[අද] LT[ට]', + nextDay: '[හෙට] LT[ට]', + nextWeek: 'dddd LT[ට]', + lastDay: '[ඊයේ] LT[ට]', + lastWeek: '[පසුගිය] dddd LT[ට]', sameElse: 'L', }, relativeTime: { - future: '%sमध्ये', - past: '%sपूर्वी', - s: relativeTimeMr, - ss: relativeTimeMr, - m: relativeTimeMr, - mm: relativeTimeMr, - h: relativeTimeMr, - hh: relativeTimeMr, - d: relativeTimeMr, - dd: relativeTimeMr, - M: relativeTimeMr, - MM: relativeTimeMr, - y: relativeTimeMr, - yy: relativeTimeMr, - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap[match]; - }); + future: '%sකින්', + past: '%sකට පෙර', + s: 'තත්පර කිහිපය', + ss: 'තත්පර %d', + m: 'මිනිත්තුව', + mm: 'මිනිත්තු %d', + h: 'පැය', + hh: 'පැය %d', + d: 'දිනය', + dd: 'දින %d', + M: 'මාසය', + MM: 'මාස %d', + y: 'වසර', + yy: 'වසර %d', }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); + dayOfMonthOrdinalParse: /\d{1,2} වැනි/, + ordinal: function (number) { + return number + ' වැනි'; }, - meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'पहाटे' || meridiem === 'सकाळी') { - return hour; - } else if ( - meridiem === 'दुपारी' || - meridiem === 'सायंकाळी' || - meridiem === 'रात्री' - ) { - return hour >= 12 ? hour : hour + 12; - } + meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, + isPM: function (input) { + return input === 'ප.ව.' || input === 'පස් වරු'; }, - meridiem: function (hour, minute, isLower) { - if (hour >= 0 && hour < 6) { - return 'पहाटे'; - } else if (hour < 12) { - return 'सकाळी'; - } else if (hour < 17) { - return 'दुपारी'; - } else if (hour < 20) { - return 'सायंकाळी'; + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'ප.ව.' : 'පස් වරු'; } else { - return 'रात्री'; + return isLower ? 'පෙ.ව.' : 'පෙර වරු'; } }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }, }); - return mr; + return si; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ms-my.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ms-my.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/sk.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/sk.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2592473__) { //! moment.js locale configuration -//! locale : Malay [ms-my] -//! note : DEPRECATED, the correct one is [ms] -//! author : Weldan Jamili : https://github.com/weldan +//! locale : Slovak [sk] +//! author : Martin Minka : https://github.com/k2s +//! based on work of petrbela : https://github.com/petrbela ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2592473__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var msMy = moment.defineLocale('ms-my', { - months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), - weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), - weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), - weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + var months = + 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split( + '_' + ), + monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); + function plural(n) { + return n > 1 && n < 5; + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'sekundy' : 'sekúnd'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'minúty' : 'minút'); + } else { + return result + 'minútami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hodín'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'deň' : 'dňom'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dni' : 'dní'); + } else { + return result + 'dňami'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'mesiace' : 'mesiacov'); + } else { + return result + 'mesiacmi'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokom'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'rokov'); + } else { + return result + 'rokmi'; + } + } + } + + var sk = moment.defineLocale('sk', { + months: months, + monthsShort: monthsShort, + weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'), + weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'), + weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'), longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [pukul] HH.mm', - LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', - }, - meridiemParse: /pagi|tengahari|petang|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'tengahari') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'petang' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'tengahari'; - } else if (hours < 19) { - return 'petang'; - } else { - return 'malam'; - } - }, - calendar: { - sameDay: '[Hari ini pukul] LT', - nextDay: '[Esok pukul] LT', - nextWeek: 'dddd [pukul] LT', - lastDay: '[Kelmarin pukul] LT', - lastWeek: 'dddd [lepas pukul] LT', + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[dnes o] LT', + nextDay: '[zajtra o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v nedeľu o] LT'; + case 1: + case 2: + return '[v] dddd [o] LT'; + case 3: + return '[v stredu o] LT'; + case 4: + return '[vo štvrtok o] LT'; + case 5: + return '[v piatok o] LT'; + case 6: + return '[v sobotu o] LT'; + } + }, + lastDay: '[včera o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulú nedeľu o] LT'; + case 1: + case 2: + return '[minulý] dddd [o] LT'; + case 3: + return '[minulú stredu o] LT'; + case 4: + case 5: + return '[minulý] dddd [o] LT'; + case 6: + return '[minulú sobotu o] LT'; + } + }, sameElse: 'L', }, relativeTime: { - future: 'dalam %s', - past: '%s yang lepas', - s: 'beberapa saat', - ss: '%d saat', - m: 'seminit', - mm: '%d minit', - h: 'sejam', - hh: '%d jam', - d: 'sehari', - dd: '%d hari', - M: 'sebulan', - MM: '%d bulan', - y: 'setahun', - yy: '%d tahun', + future: 'za %s', + past: 'pred %s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return msMy; + return sk; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ms.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ms.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/sl.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/sl.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2598740__) { //! moment.js locale configuration -//! locale : Malay [ms] -//! author : Weldan Jamili : https://github.com/weldan +//! locale : Slovenian [sl] +//! author : Robert Sedovšek : https://github.com/sedovsek ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2598740__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var ms = moment.defineLocale('ms', { - months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nekaj sekund' + : 'nekaj sekundami'; + case 'ss': + if (number === 1) { + result += withoutSuffix ? 'sekundo' : 'sekundi'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; + } else { + result += 'sekund'; + } + return result; + case 'm': + return withoutSuffix ? 'ena minuta' : 'eno minuto'; + case 'mm': + if (number === 1) { + result += withoutSuffix ? 'minuta' : 'minuto'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'minute' : 'minutami'; + } else { + result += withoutSuffix || isFuture ? 'minut' : 'minutami'; + } + return result; + case 'h': + return withoutSuffix ? 'ena ura' : 'eno uro'; + case 'hh': + if (number === 1) { + result += withoutSuffix ? 'ura' : 'uro'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'uri' : 'urama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'ure' : 'urami'; + } else { + result += withoutSuffix || isFuture ? 'ur' : 'urami'; + } + return result; + case 'd': + return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; + case 'dd': + if (number === 1) { + result += withoutSuffix || isFuture ? 'dan' : 'dnem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; + } else { + result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; + } + return result; + case 'M': + return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; + case 'MM': + if (number === 1) { + result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; + } else { + result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; + } + return result; + case 'y': + return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; + case 'yy': + if (number === 1) { + result += withoutSuffix || isFuture ? 'leto' : 'letom'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'leti' : 'letoma'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'leta' : 'leti'; + } else { + result += withoutSuffix || isFuture ? 'let' : 'leti'; + } + return result; + } + } + + var sl = moment.defineLocale('sl', { + months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( '_' ), - monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), - weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), - weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), - weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'), + weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'), + weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'), + weekdaysParseExact: true, longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [pukul] HH.mm', - LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', - }, - meridiemParse: /pagi|tengahari|petang|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'tengahari') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'petang' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'tengahari'; - } else if (hours < 19) { - return 'petang'; - } else { - return 'malam'; - } + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD. MM. YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', }, calendar: { - sameDay: '[Hari ini pukul] LT', - nextDay: '[Esok pukul] LT', - nextWeek: 'dddd [pukul] LT', - lastDay: '[Kelmarin pukul] LT', - lastWeek: 'dddd [lepas pukul] LT', + sameDay: '[danes ob] LT', + nextDay: '[jutri ob] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v] [nedeljo] [ob] LT'; + case 3: + return '[v] [sredo] [ob] LT'; + case 6: + return '[v] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[v] dddd [ob] LT'; + } + }, + lastDay: '[včeraj ob] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prejšnjo] [nedeljo] [ob] LT'; + case 3: + return '[prejšnjo] [sredo] [ob] LT'; + case 6: + return '[prejšnjo] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prejšnji] dddd [ob] LT'; + } + }, sameElse: 'L', }, relativeTime: { - future: 'dalam %s', - past: '%s yang lepas', - s: 'beberapa saat', - ss: '%d saat', - m: 'seminit', - mm: '%d minit', - h: 'sejam', - hh: '%d jam', - d: 'sehari', - dd: '%d hari', - M: 'sebulan', - MM: '%d bulan', - y: 'setahun', - yy: '%d tahun', + future: 'čez %s', + past: 'pred %s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 7, // The week that contains Jan 7th is the first week of the year. }, }); - return ms; + return sl; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mt.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mt.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/sq.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/sq.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2606081__) { //! moment.js locale configuration -//! locale : Maltese (Malta) [mt] -//! author : Alessandro Maruccia : https://github.com/alesma +//! locale : Albanian [sq] +//! author : Flakërim Ismani : https://github.com/flakerimi +//! author : Menelion Elensúle : https://github.com/Oire +//! author : Oerd Cukalla : https://github.com/oerd ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2606081__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var mt = moment.defineLocale('mt', { - months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split( + var sq = moment.defineLocale('sq', { + months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split( '_' ), - monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'), - weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split( + monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), + weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split( '_' ), - weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'), - weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'), + weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), + weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'), + weekdaysParseExact: true, + meridiemParse: /PD|MD/, + isPM: function (input) { + return input.charAt(0) === 'M'; + }, + meridiem: function (hours, minutes, isLower) { + return hours < 12 ? 'PD' : 'MD'; + }, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', @@ -67851,480 +75372,514 @@ module.exports = uniqBy; LLLL: 'dddd, D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[Illum fil-]LT', - nextDay: '[Għada fil-]LT', - nextWeek: 'dddd [fil-]LT', - lastDay: '[Il-bieraħ fil-]LT', - lastWeek: 'dddd [li għadda] [fil-]LT', + sameDay: '[Sot në] LT', + nextDay: '[Nesër në] LT', + nextWeek: 'dddd [në] LT', + lastDay: '[Dje në] LT', + lastWeek: 'dddd [e kaluar në] LT', sameElse: 'L', }, relativeTime: { - future: 'f’ %s', - past: '%s ilu', - s: 'ftit sekondi', - ss: '%d sekondi', - m: 'minuta', - mm: '%d minuti', - h: 'siegħa', - hh: '%d siegħat', - d: 'ġurnata', - dd: '%d ġranet', - M: 'xahar', - MM: '%d xhur', - y: 'sena', - yy: '%d sni', + future: 'në %s', + past: '%s më parë', + s: 'disa sekonda', + ss: '%d sekonda', + m: 'një minutë', + mm: '%d minuta', + h: 'një orë', + hh: '%d orë', + d: 'një ditë', + dd: '%d ditë', + M: 'një muaj', + MM: '%d muaj', + y: 'një vit', + yy: '%d vite', }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return mt; + return sq; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/my.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/my.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/sr-cyrl.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/sr-cyrl.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2608868__) { //! moment.js locale configuration -//! locale : Burmese [my] -//! author : Squar team, mysquar.com -//! author : David Rossellat : https://github.com/gholadr -//! author : Tin Aung Lin : https://github.com/thanyawzinmin +//! locale : Serbian Cyrillic [sr-cyrl] +//! author : Milan Janačković : https://github.com/milan-j +//! author : Stefan Crnjaković : https://github.com/crnjakovic ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2608868__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var symbolMap = { - 1: '၁', - 2: '၂', - 3: '၃', - 4: '၄', - 5: '၅', - 6: '၆', - 7: '၇', - 8: '၈', - 9: '၉', - 0: '၀', + var translator = { + words: { + //Different grammatical cases + ss: ['секунда', 'секунде', 'секунди'], + m: ['један минут', 'једног минута'], + mm: ['минут', 'минута', 'минута'], + h: ['један сат', 'једног сата'], + hh: ['сат', 'сата', 'сати'], + d: ['један дан', 'једног дана'], + dd: ['дан', 'дана', 'дана'], + M: ['један месец', 'једног месеца'], + MM: ['месец', 'месеца', 'месеци'], + y: ['једну годину', 'једне године'], + yy: ['годину', 'године', 'година'], }, - numberMap = { - '၁': '1', - '၂': '2', - '၃': '3', - '၄': '4', - '၅': '5', - '၆': '6', - '၇': '7', - '၈': '8', - '၉': '9', - '၀': '0', - }; + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key], + word; - var my = moment.defineLocale('my', { - months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split( - '_' - ), - monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), - weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split( + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'једна година'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'годину') { + return number + ' година'; + } + + return number + ' ' + word; + }, + }; + + var srCyrl = moment.defineLocale('sr-cyrl', { + months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split( '_' ), - weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), - weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), - + monthsShort: + 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'), + monthsParseExact: true, + weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), + weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), + weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), + weekdaysParseExact: true, longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', }, calendar: { - sameDay: '[ယနေ.] LT [မှာ]', - nextDay: '[မနက်ဖြန်] LT [မှာ]', - nextWeek: 'dddd LT [မှာ]', - lastDay: '[မနေ.က] LT [မှာ]', - lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]', + sameDay: '[данас у] LT', + nextDay: '[сутра у] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[у] [недељу] [у] LT'; + case 3: + return '[у] [среду] [у] LT'; + case 6: + return '[у] [суботу] [у] LT'; + case 1: + case 2: + case 4: + case 5: + return '[у] dddd [у] LT'; + } + }, + lastDay: '[јуче у] LT', + lastWeek: function () { + var lastWeekDays = [ + '[прошле] [недеље] [у] LT', + '[прошлог] [понедељка] [у] LT', + '[прошлог] [уторка] [у] LT', + '[прошле] [среде] [у] LT', + '[прошлог] [четвртка] [у] LT', + '[прошлог] [петка] [у] LT', + '[прошле] [суботе] [у] LT', + ]; + return lastWeekDays[this.day()]; + }, sameElse: 'L', }, relativeTime: { - future: 'လာမည့် %s မှာ', - past: 'လွန်ခဲ့သော %s က', - s: 'စက္ကန်.အနည်းငယ်', - ss: '%d စက္ကန့်', - m: 'တစ်မိနစ်', - mm: '%d မိနစ်', - h: 'တစ်နာရီ', - hh: '%d နာရီ', - d: 'တစ်ရက်', - dd: '%d ရက်', - M: 'တစ်လ', - MM: '%d လ', - y: 'တစ်နှစ်', - yy: '%d နှစ်', - }, - preparse: function (string) { - return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); + future: 'за %s', + past: 'пре %s', + s: 'неколико секунди', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: translator.translate, + dd: translator.translate, + M: translator.translate, + MM: translator.translate, + y: translator.translate, + yy: translator.translate, }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + doy: 7, // The week that contains Jan 1st is the first week of the year. }, }); - return my; + return srCyrl; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nb.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nb.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/sr.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/sr.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2614118__) { //! moment.js locale configuration -//! locale : Norwegian Bokmål [nb] -//! authors : Espen Hovlandsdal : https://github.com/rexxars -//! Sigurd Gartmann : https://github.com/sigurdga -//! Stephen Ramthun : https://github.com/stephenramthun +//! locale : Serbian [sr] +//! author : Milan Janačković : https://github.com/milan-j +//! author : Stefan Crnjaković : https://github.com/crnjakovic ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2614118__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var nb = moment.defineLocale('nb', { - months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + var translator = { + words: { + //Different grammatical cases + ss: ['sekunda', 'sekunde', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + d: ['jedan dan', 'jednog dana'], + dd: ['dan', 'dana', 'dana'], + M: ['jedan mesec', 'jednog meseca'], + MM: ['mesec', 'meseca', 'meseci'], + y: ['jednu godinu', 'jedne godine'], + yy: ['godinu', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'jedna godina'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'godinu') { + return number + ' godina'; + } + + return number + ' ' + word; + }, + }; + + var sr = moment.defineLocale('sr', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( '_' ), - monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split( + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split( '_' ), - monthsParseExact: true, - weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), - weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'), - weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), + weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), weekdaysParseExact: true, longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY [kl.] HH:mm', - LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', }, calendar: { - sameDay: '[i dag kl.] LT', - nextDay: '[i morgen kl.] LT', - nextWeek: 'dddd [kl.] LT', - lastDay: '[i går kl.] LT', - lastWeek: '[forrige] dddd [kl.] LT', + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedelju] [u] LT'; + case 3: + return '[u] [sredu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[juče u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[prošle] [nedelje] [u] LT', + '[prošlog] [ponedeljka] [u] LT', + '[prošlog] [utorka] [u] LT', + '[prošle] [srede] [u] LT', + '[prošlog] [četvrtka] [u] LT', + '[prošlog] [petka] [u] LT', + '[prošle] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, sameElse: 'L', }, relativeTime: { - future: 'om %s', - past: '%s siden', - s: 'noen sekunder', - ss: '%d sekunder', - m: 'ett minutt', - mm: '%d minutter', - h: 'en time', - hh: '%d timer', - d: 'en dag', - dd: '%d dager', - w: 'en uke', - ww: '%d uker', - M: 'en måned', - MM: '%d måneder', - y: 'ett år', - yy: '%d år', + future: 'za %s', + past: 'pre %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: translator.translate, + dd: translator.translate, + M: translator.translate, + MM: translator.translate, + y: translator.translate, + yy: translator.translate, }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + doy: 7, // The week that contains Jan 7th is the first week of the year. }, }); - return nb; + return sr; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ne.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ne.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ss.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ss.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2619368__) { //! moment.js locale configuration -//! locale : Nepalese [ne] -//! author : suvash : https://github.com/suvash +//! locale : siSwati [ss] +//! author : Nicolai Davies : https://github.com/nicolaidavies ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2619368__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var symbolMap = { - 1: '१', - 2: '२', - 3: '३', - 4: '४', - 5: '५', - 6: '६', - 7: '७', - 8: '८', - 9: '९', - 0: '०', - }, - numberMap = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0', - }; - - var ne = moment.defineLocale('ne', { - months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split( - '_' - ), - monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split( + var ss = moment.defineLocale('ss', { + months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( '_' ), - weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), - weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'), + monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), + weekdays: + 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( + '_' + ), + weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), + weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), weekdaysParseExact: true, longDateFormat: { - LT: 'Aको h:mm बजे', - LTS: 'Aको h:mm:ss बजे', + LT: 'h:mm A', + LTS: 'h:mm:ss A', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, Aको h:mm बजे', - LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap[match]; - }); + calendar: { + sameDay: '[Namuhla nga] LT', + nextDay: '[Kusasa nga] LT', + nextWeek: 'dddd [nga] LT', + lastDay: '[Itolo nga] LT', + lastWeek: 'dddd [leliphelile] [nga] LT', + sameElse: 'L', }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); + relativeTime: { + future: 'nga %s', + past: 'wenteka nga %s', + s: 'emizuzwana lomcane', + ss: '%d mzuzwana', + m: 'umzuzu', + mm: '%d emizuzu', + h: 'lihora', + hh: '%d emahora', + d: 'lilanga', + dd: '%d emalanga', + M: 'inyanga', + MM: '%d tinyanga', + y: 'umnyaka', + yy: '%d iminyaka', + }, + meridiemParse: /ekuseni|emini|entsambama|ebusuku/, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'ekuseni'; + } else if (hours < 15) { + return 'emini'; + } else if (hours < 19) { + return 'entsambama'; + } else { + return 'ebusuku'; + } }, - meridiemParse: /राति|बिहान|दिउँसो|साँझ/, meridiemHour: function (hour, meridiem) { if (hour === 12) { hour = 0; } - if (meridiem === 'राति') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'बिहान') { + if (meridiem === 'ekuseni') { return hour; - } else if (meridiem === 'दिउँसो') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'साँझ') { + } else if (meridiem === 'emini') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { + if (hour === 0) { + return 0; + } return hour + 12; } }, - meridiem: function (hour, minute, isLower) { - if (hour < 3) { - return 'राति'; - } else if (hour < 12) { - return 'बिहान'; - } else if (hour < 16) { - return 'दिउँसो'; - } else if (hour < 20) { - return 'साँझ'; - } else { - return 'राति'; - } - }, - calendar: { - sameDay: '[आज] LT', - nextDay: '[भोलि] LT', - nextWeek: '[आउँदो] dddd[,] LT', - lastDay: '[हिजो] LT', - lastWeek: '[गएको] dddd[,] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%sमा', - past: '%s अगाडि', - s: 'केही क्षण', - ss: '%d सेकेण्ड', - m: 'एक मिनेट', - mm: '%d मिनेट', - h: 'एक घण्टा', - hh: '%d घण्टा', - d: 'एक दिन', - dd: '%d दिन', - M: 'एक महिना', - MM: '%d महिना', - y: 'एक बर्ष', - yy: '%d बर्ष', - }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: '%d', week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return ne; + return ss; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nl-be.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nl-be.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/sv.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/sv.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2622836__) { //! moment.js locale configuration -//! locale : Dutch (Belgium) [nl-be] -//! author : Joris Röling : https://github.com/jorisroling -//! author : Jacob Middag : https://github.com/middagj +//! locale : Swedish [sv] +//! author : Jens Alm : https://github.com/ulmus ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2622836__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split( - '_' - ), - monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split( - '_' - ), - monthsParse = [ - /^jan/i, - /^feb/i, - /^maart|mrt.?$/i, - /^apr/i, - /^mei$/i, - /^jun[i.]?$/i, - /^jul[i.]?$/i, - /^aug/i, - /^sep/i, - /^okt/i, - /^nov/i, - /^dec/i, - ], - monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - - var nlBe = moment.defineLocale('nl-be', { - months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( - '_' - ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortWithDots; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots[m.month()]; - } else { - return monthsShortWithDots[m.month()]; - } - }, - - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, - monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, - - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - - weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split( + var sv = moment.defineLocale('sv', { + months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( '_' ), - weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), - weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), - weekdaysParseExact: true, + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), + weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'), + weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', + L: 'YYYY-MM-DD', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', + LLL: 'D MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd D MMM YYYY HH:mm', }, calendar: { - sameDay: '[vandaag om] LT', - nextDay: '[morgen om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[gisteren om] LT', - lastWeek: '[afgelopen] dddd [om] LT', + sameDay: '[Idag] LT', + nextDay: '[Imorgon] LT', + lastDay: '[Igår] LT', + nextWeek: '[På] dddd LT', + lastWeek: '[I] dddd[s] LT', sameElse: 'L', }, relativeTime: { - future: 'over %s', - past: '%s geleden', - s: 'een paar seconden', - ss: '%d seconden', - m: 'één minuut', - mm: '%d minuten', - h: 'één uur', - hh: '%d uur', - d: 'één dag', - dd: '%d dagen', - M: 'één maand', - MM: '%d maanden', - y: 'één jaar', - yy: '%d jaar', + future: 'om %s', + past: 'för %s sedan', + s: 'några sekunder', + ss: '%d sekunder', + m: 'en minut', + mm: '%d minuter', + h: 'en timme', + hh: '%d timmar', + d: 'en dag', + dd: '%d dagar', + M: 'en månad', + MM: '%d månader', + y: 'ett år', + yy: '%d år', }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, ordinal: function (number) { - return ( - number + - (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') - ); + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? ':e' + : b === 1 + ? ':a' + : b === 2 + ? ':a' + : b === 3 + ? ':e' + : ':e'; + return number + output; }, week: { dow: 1, // Monday is the first day of the week. @@ -68332,2236 +75887,2095 @@ module.exports = uniqBy; }, }); - return nlBe; + return sv; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nl.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nl.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/sw.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/sw.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2625717__) { //! moment.js locale configuration -//! locale : Dutch [nl] -//! author : Joris Röling : https://github.com/jorisroling -//! author : Jacob Middag : https://github.com/middagj +//! locale : Swahili [sw] +//! author : Fahad Kassim : https://github.com/fadsel ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2625717__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split( - '_' - ), - monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split( - '_' - ), - monthsParse = [ - /^jan/i, - /^feb/i, - /^maart|mrt.?$/i, - /^apr/i, - /^mei$/i, - /^jun[i.]?$/i, - /^jul[i.]?$/i, - /^aug/i, - /^sep/i, - /^okt/i, - /^nov/i, - /^dec/i, - ], - monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - - var nl = moment.defineLocale('nl', { - months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + var sw = moment.defineLocale('sw', { + months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( '_' ), - monthsShort: function (m, format) { - if (!m) { - return monthsShortWithDots; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots[m.month()]; - } else { - return monthsShortWithDots[m.month()]; - } + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), + weekdays: + 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( + '_' + ), + weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), + weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'hh:mm A', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[leo saa] LT', + nextDay: '[kesho saa] LT', + nextWeek: '[wiki ijayo] dddd [saat] LT', + lastDay: '[jana] LT', + lastWeek: '[wiki iliyopita] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s baadaye', + past: 'tokea %s', + s: 'hivi punde', + ss: 'sekunde %d', + m: 'dakika moja', + mm: 'dakika %d', + h: 'saa limoja', + hh: 'masaa %d', + d: 'siku moja', + dd: 'siku %d', + M: 'mwezi mmoja', + MM: 'miezi %d', + y: 'mwaka mmoja', + yy: 'miaka %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. }, + }); + + return sw; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ta.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ta.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2628148__) { + +//! moment.js locale configuration +//! locale : Tamil [ta] +//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 + +;(function (global, factory) { + true ? factory(__nested_webpack_require_2628148__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, - monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + //! moment.js locale configuration - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, + var symbolMap = { + 1: '௧', + 2: '௨', + 3: '௩', + 4: '௪', + 5: '௫', + 6: '௬', + 7: '௭', + 8: '௮', + 9: '௯', + 0: '௦', + }, + numberMap = { + '௧': '1', + '௨': '2', + '௩': '3', + '௪': '4', + '௫': '5', + '௬': '6', + '௭': '7', + '௮': '8', + '௯': '9', + '௦': '0', + }; - weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split( + var ta = moment.defineLocale('ta', { + months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( '_' ), - weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), - weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), - weekdaysParseExact: true, + monthsShort: + 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( + '_' + ), + weekdays: + 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split( + '_' + ), + weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split( + '_' + ), + weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD-MM-YYYY', + L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', + LLL: 'D MMMM YYYY, HH:mm', + LLLL: 'dddd, D MMMM YYYY, HH:mm', }, calendar: { - sameDay: '[vandaag om] LT', - nextDay: '[morgen om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[gisteren om] LT', - lastWeek: '[afgelopen] dddd [om] LT', + sameDay: '[இன்று] LT', + nextDay: '[நாளை] LT', + nextWeek: 'dddd, LT', + lastDay: '[நேற்று] LT', + lastWeek: '[கடந்த வாரம்] dddd, LT', sameElse: 'L', }, relativeTime: { - future: 'over %s', - past: '%s geleden', - s: 'een paar seconden', - ss: '%d seconden', - m: 'één minuut', - mm: '%d minuten', - h: 'één uur', - hh: '%d uur', - d: 'één dag', - dd: '%d dagen', - w: 'één week', - ww: '%d weken', - M: 'één maand', - MM: '%d maanden', - y: 'één jaar', - yy: '%d jaar', + future: '%s இல்', + past: '%s முன்', + s: 'ஒரு சில விநாடிகள்', + ss: '%d விநாடிகள்', + m: 'ஒரு நிமிடம்', + mm: '%d நிமிடங்கள்', + h: 'ஒரு மணி நேரம்', + hh: '%d மணி நேரம்', + d: 'ஒரு நாள்', + dd: '%d நாட்கள்', + M: 'ஒரு மாதம்', + MM: '%d மாதங்கள்', + y: 'ஒரு வருடம்', + yy: '%d ஆண்டுகள்', }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + dayOfMonthOrdinalParse: /\d{1,2}வது/, ordinal: function (number) { - return ( - number + - (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') - ); + return number + 'வது'; + }, + preparse: function (string) { + return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // refer http://ta.wikipedia.org/s/1er1 + meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, + meridiem: function (hour, minute, isLower) { + if (hour < 2) { + return ' யாமம்'; + } else if (hour < 6) { + return ' வைகறை'; // வைகறை + } else if (hour < 10) { + return ' காலை'; // காலை + } else if (hour < 14) { + return ' நண்பகல்'; // நண்பகல் + } else if (hour < 18) { + return ' எற்பாடு'; // எற்பாடு + } else if (hour < 22) { + return ' மாலை'; // மாலை + } else { + return ' யாமம்'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'யாமம்') { + return hour < 2 ? hour : hour + 12; + } else if (meridiem === 'வைகறை' || meridiem === 'காலை') { + return hour; + } else if (meridiem === 'நண்பகல்') { + return hour >= 10 ? hour : hour + 12; + } else { + return hour + 12; + } }, week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. }, }); - return nl; + return ta; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nn.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nn.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/te.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/te.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2632854__) { //! moment.js locale configuration -//! locale : Nynorsk [nn] -//! authors : https://github.com/mechuwind -//! Stephen Ramthun : https://github.com/stephenramthun +//! locale : Telugu [te] +//! author : Krishna Chaitanya Thota : https://github.com/kcthota ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2632854__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var nn = moment.defineLocale('nn', { - months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( - '_' - ), - monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split( + var te = moment.defineLocale('te', { + months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split( '_' ), + monthsShort: + 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split( + '_' + ), monthsParseExact: true, - weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), - weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'), - weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'), - weekdaysParseExact: true, + weekdays: + 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split( + '_' + ), + weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), + weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY [kl.] H:mm', - LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', }, calendar: { - sameDay: '[I dag klokka] LT', - nextDay: '[I morgon klokka] LT', - nextWeek: 'dddd [klokka] LT', - lastDay: '[I går klokka] LT', - lastWeek: '[Føregåande] dddd [klokka] LT', + sameDay: '[నేడు] LT', + nextDay: '[రేపు] LT', + nextWeek: 'dddd, LT', + lastDay: '[నిన్న] LT', + lastWeek: '[గత] dddd, LT', sameElse: 'L', }, relativeTime: { - future: 'om %s', - past: '%s sidan', - s: 'nokre sekund', - ss: '%d sekund', - m: 'eit minutt', - mm: '%d minutt', - h: 'ein time', - hh: '%d timar', - d: 'ein dag', - dd: '%d dagar', - w: 'ei veke', - ww: '%d veker', - M: 'ein månad', - MM: '%d månader', - y: 'eit år', - yy: '%d år', + future: '%s లో', + past: '%s క్రితం', + s: 'కొన్ని క్షణాలు', + ss: '%d సెకన్లు', + m: 'ఒక నిమిషం', + mm: '%d నిమిషాలు', + h: 'ఒక గంట', + hh: '%d గంటలు', + d: 'ఒక రోజు', + dd: '%d రోజులు', + M: 'ఒక నెల', + MM: '%d నెలలు', + y: 'ఒక సంవత్సరం', + yy: '%d సంవత్సరాలు', + }, + dayOfMonthOrdinalParse: /\d{1,2}వ/, + ordinal: '%dవ', + meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'రాత్రి') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ఉదయం') { + return hour; + } else if (meridiem === 'మధ్యాహ్నం') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'సాయంత్రం') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'రాత్రి'; + } else if (hour < 10) { + return 'ఉదయం'; + } else if (hour < 17) { + return 'మధ్యాహ్నం'; + } else if (hour < 20) { + return 'సాయంత్రం'; + } else { + return 'రాత్రి'; + } }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. }, }); - return nn; + return te; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/oc-lnc.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/oc-lnc.js ***! - \*************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/tet.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/tet.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2636344__) { //! moment.js locale configuration -//! locale : Occitan, lengadocian dialecte [oc-lnc] -//! author : Quentin PAGÈS : https://github.com/Quenty31 +//! locale : Tetun Dili (East Timor) [tet] +//! author : Joshua Brooks : https://github.com/joshbrooks +//! author : Onorio De J. Afonso : https://github.com/marobo +//! author : Sonia Simoes : https://github.com/soniasimoes ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2636344__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var ocLnc = moment.defineLocale('oc-lnc', { - months: { - standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split( - '_' - ), - format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split( - '_' - ), - isFormat: /D[oD]?(\s)+MMMM/, - }, - monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split( + var tet = moment.defineLocale('tet', { + months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( '_' ), - weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), - weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), - weekdaysParseExact: true, + monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), + weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), + weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), + weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', + LT: 'HH:mm', + LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', - LL: 'D MMMM [de] YYYY', - ll: 'D MMM YYYY', - LLL: 'D MMMM [de] YYYY [a] H:mm', - lll: 'D MMM YYYY, H:mm', - LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', - llll: 'ddd D MMM YYYY, H:mm', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[uèi a] LT', - nextDay: '[deman a] LT', - nextWeek: 'dddd [a] LT', - lastDay: '[ièr a] LT', - lastWeek: 'dddd [passat a] LT', + sameDay: '[Ohin iha] LT', + nextDay: '[Aban iha] LT', + nextWeek: 'dddd [iha] LT', + lastDay: '[Horiseik iha] LT', + lastWeek: 'dddd [semana kotuk] [iha] LT', sameElse: 'L', }, relativeTime: { - future: "d'aquí %s", - past: 'fa %s', - s: 'unas segondas', - ss: '%d segondas', - m: 'una minuta', - mm: '%d minutas', - h: 'una ora', - hh: '%d oras', - d: 'un jorn', - dd: '%d jorns', - M: 'un mes', - MM: '%d meses', - y: 'un an', - yy: '%d ans', + future: 'iha %s', + past: '%s liuba', + s: 'segundu balun', + ss: 'segundu %d', + m: 'minutu ida', + mm: 'minutu %d', + h: 'oras ida', + hh: 'oras %d', + d: 'loron ida', + dd: 'loron %d', + M: 'fulan ida', + MM: 'fulan %d', + y: 'tinan ida', + yy: 'tinan %d', }, - dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, - ordinal: function (number, period) { - var output = - number === 1 - ? 'r' - : number === 2 - ? 'n' - : number === 3 - ? 'r' - : number === 4 - ? 't' - : 'è'; - if (period === 'w' || period === 'W') { - output = 'a'; - } + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; return number + output; }, week: { dow: 1, // Monday is the first day of the week. - doy: 4, + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return ocLnc; + return tet; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pa-in.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pa-in.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/tg.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/tg.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2639324__) { //! moment.js locale configuration -//! locale : Punjabi (India) [pa-in] -//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit +//! locale : Tajik [tg] +//! author : Orif N. Jr. : https://github.com/orif-jr ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2639324__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var symbolMap = { - 1: '੧', - 2: '੨', - 3: '੩', - 4: '੪', - 5: '੫', - 6: '੬', - 7: '੭', - 8: '੮', - 9: '੯', - 0: '੦', - }, - numberMap = { - '੧': '1', - '੨': '2', - '੩': '3', - '੪': '4', - '੫': '5', - '੬': '6', - '੭': '7', - '੮': '8', - '੯': '9', - '੦': '0', - }; + var suffixes = { + 0: '-ум', + 1: '-ум', + 2: '-юм', + 3: '-юм', + 4: '-ум', + 5: '-ум', + 6: '-ум', + 7: '-ум', + 8: '-ум', + 9: '-ум', + 10: '-ум', + 12: '-ум', + 13: '-ум', + 20: '-ум', + 30: '-юм', + 40: '-ум', + 50: '-ум', + 60: '-ум', + 70: '-ум', + 80: '-ум', + 90: '-ум', + 100: '-ум', + }; - var paIn = moment.defineLocale('pa-in', { - // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. - months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( - '_' - ), - monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( - '_' - ), - weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split( + var tg = moment.defineLocale('tg', { + months: { + format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split( + '_' + ), + standalone: + 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( + '_' + ), + }, + monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split( '_' ), - weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), - weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), + weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'), + weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'), longDateFormat: { - LT: 'A h:mm ਵਜੇ', - LTS: 'A h:mm:ss ਵਜੇ', - L: 'DD/MM/YYYY', + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm ਵਜੇ', - LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[ਅਜ] LT', - nextDay: '[ਕਲ] LT', - nextWeek: '[ਅਗਲਾ] dddd, LT', - lastDay: '[ਕਲ] LT', - lastWeek: '[ਪਿਛਲੇ] dddd, LT', + sameDay: '[Имрӯз соати] LT', + nextDay: '[Фардо соати] LT', + lastDay: '[Дирӯз соати] LT', + nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT', + lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT', sameElse: 'L', }, relativeTime: { - future: '%s ਵਿੱਚ', - past: '%s ਪਿਛਲੇ', - s: 'ਕੁਝ ਸਕਿੰਟ', - ss: '%d ਸਕਿੰਟ', - m: 'ਇਕ ਮਿੰਟ', - mm: '%d ਮਿੰਟ', - h: 'ਇੱਕ ਘੰਟਾ', - hh: '%d ਘੰਟੇ', - d: 'ਇੱਕ ਦਿਨ', - dd: '%d ਦਿਨ', - M: 'ਇੱਕ ਮਹੀਨਾ', - MM: '%d ਮਹੀਨੇ', - y: 'ਇੱਕ ਸਾਲ', - yy: '%d ਸਾਲ', - }, - preparse: function (string) { - return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); + future: 'баъди %s', + past: '%s пеш', + s: 'якчанд сония', + m: 'як дақиқа', + mm: '%d дақиқа', + h: 'як соат', + hh: '%d соат', + d: 'як рӯз', + dd: '%d рӯз', + M: 'як моҳ', + MM: '%d моҳ', + y: 'як сол', + yy: '%d сол', }, - // Punjabi notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. - meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/, + meridiemParse: /шаб|субҳ|рӯз|бегоҳ/, meridiemHour: function (hour, meridiem) { if (hour === 12) { hour = 0; } - if (meridiem === 'ਰਾਤ') { + if (meridiem === 'шаб') { return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ਸਵੇਰ') { + } else if (meridiem === 'субҳ') { return hour; - } else if (meridiem === 'ਦੁਪਹਿਰ') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'ਸ਼ਾਮ') { + } else if (meridiem === 'рӯз') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'бегоҳ') { return hour + 12; } }, meridiem: function (hour, minute, isLower) { if (hour < 4) { - return 'ਰਾਤ'; - } else if (hour < 10) { - return 'ਸਵੇਰ'; - } else if (hour < 17) { - return 'ਦੁਪਹਿਰ'; - } else if (hour < 20) { - return 'ਸ਼ਾਮ'; + return 'шаб'; + } else if (hour < 11) { + return 'субҳ'; + } else if (hour < 16) { + return 'рӯз'; + } else if (hour < 19) { + return 'бегоҳ'; } else { - return 'ਰਾਤ'; + return 'шаб'; } }, + dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1th is the first week of the year. }, }); - return paIn; + return tg; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pl.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pl.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/th.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/th.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2643474__) { //! moment.js locale configuration -//! locale : Polish [pl] -//! author : Rafal Hirsz : https://github.com/evoL +//! locale : Thai [th] +//! author : Kridsada Thanabulpong : https://github.com/sirn ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2643474__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split( - '_' - ), - monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split( - '_' - ), - monthsParse = [ - /^sty/i, - /^lut/i, - /^mar/i, - /^kwi/i, - /^maj/i, - /^cze/i, - /^lip/i, - /^sie/i, - /^wrz/i, - /^paź/i, - /^lis/i, - /^gru/i, - ]; - function plural(n) { - return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; - } - function translate(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'ss': - return result + (plural(number) ? 'sekundy' : 'sekund'); - case 'm': - return withoutSuffix ? 'minuta' : 'minutę'; - case 'mm': - return result + (plural(number) ? 'minuty' : 'minut'); - case 'h': - return withoutSuffix ? 'godzina' : 'godzinę'; - case 'hh': - return result + (plural(number) ? 'godziny' : 'godzin'); - case 'ww': - return result + (plural(number) ? 'tygodnie' : 'tygodni'); - case 'MM': - return result + (plural(number) ? 'miesiące' : 'miesięcy'); - case 'yy': - return result + (plural(number) ? 'lata' : 'lat'); - } - } - - var pl = moment.defineLocale('pl', { - months: function (momentToFormat, format) { - if (!momentToFormat) { - return monthsNominative; - } else if (/D MMMM/.test(format)) { - return monthsSubjective[momentToFormat.month()]; - } else { - return monthsNominative[momentToFormat.month()]; - } - }, - monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split( + var th = moment.defineLocale('th', { + months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split( '_' ), - weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'), - weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'), + monthsShort: + 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), + weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference + weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), + weekdaysParseExact: true, longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', + LLL: 'D MMMM YYYY เวลา H:mm', + LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm', + }, + meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, + isPM: function (input) { + return input === 'หลังเที่ยง'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ก่อนเที่ยง'; + } else { + return 'หลังเที่ยง'; + } }, calendar: { - sameDay: '[Dziś o] LT', - nextDay: '[Jutro o] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[W niedzielę o] LT'; - - case 2: - return '[We wtorek o] LT'; - - case 3: - return '[W środę o] LT'; - - case 6: - return '[W sobotę o] LT'; - - default: - return '[W] dddd [o] LT'; - } - }, - lastDay: '[Wczoraj o] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[W zeszłą niedzielę o] LT'; - case 3: - return '[W zeszłą środę o] LT'; - case 6: - return '[W zeszłą sobotę o] LT'; - default: - return '[W zeszły] dddd [o] LT'; - } - }, + sameDay: '[วันนี้ เวลา] LT', + nextDay: '[พรุ่งนี้ เวลา] LT', + nextWeek: 'dddd[หน้า เวลา] LT', + lastDay: '[เมื่อวานนี้ เวลา] LT', + lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT', sameElse: 'L', }, relativeTime: { - future: 'za %s', - past: '%s temu', - s: 'kilka sekund', - ss: translate, - m: translate, - mm: translate, - h: translate, - hh: translate, - d: '1 dzień', - dd: '%d dni', - w: 'tydzień', - ww: translate, - M: 'miesiąc', - MM: translate, - y: 'rok', - yy: translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + future: 'อีก %s', + past: '%sที่แล้ว', + s: 'ไม่กี่วินาที', + ss: '%d วินาที', + m: '1 นาที', + mm: '%d นาที', + h: '1 ชั่วโมง', + hh: '%d ชั่วโมง', + d: '1 วัน', + dd: '%d วัน', + w: '1 สัปดาห์', + ww: '%d สัปดาห์', + M: '1 เดือน', + MM: '%d เดือน', + y: '1 ปี', + yy: '%d ปี', }, }); - return pl; + return th; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pt-br.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pt-br.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/tk.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/tk.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2646218__) { //! moment.js locale configuration -//! locale : Portuguese (Brazil) [pt-br] -//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira +//! locale : Turkmen [tk] +//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2646218__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var ptBr = moment.defineLocale('pt-br', { - months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + var suffixes = { + 1: "'inji", + 5: "'inji", + 8: "'inji", + 70: "'inji", + 80: "'inji", + 2: "'nji", + 7: "'nji", + 20: "'nji", + 50: "'nji", + 3: "'ünji", + 4: "'ünji", + 100: "'ünji", + 6: "'njy", + 9: "'unjy", + 10: "'unjy", + 30: "'unjy", + 60: "'ynjy", + 90: "'ynjy", + }; + + var tk = moment.defineLocale('tk', { + months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split( '_' ), - monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), - weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split( + monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'), + weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split( '_' ), - weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'), - weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'), - weekdaysParseExact: true, + weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'), + weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY [às] HH:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[Hoje às] LT', - nextDay: '[Amanhã às] LT', - nextWeek: 'dddd [às] LT', - lastDay: '[Ontem às] LT', - lastWeek: function () { - return this.day() === 0 || this.day() === 6 - ? '[Último] dddd [às] LT' // Saturday + Sunday - : '[Última] dddd [às] LT'; // Monday - Friday - }, + sameDay: '[bugün sagat] LT', + nextDay: '[ertir sagat] LT', + nextWeek: '[indiki] dddd [sagat] LT', + lastDay: '[düýn] LT', + lastWeek: '[geçen] dddd [sagat] LT', sameElse: 'L', }, relativeTime: { - future: 'em %s', - past: 'há %s', - s: 'poucos segundos', - ss: '%d segundos', - m: 'um minuto', - mm: '%d minutos', - h: 'uma hora', - hh: '%d horas', - d: 'um dia', - dd: '%d dias', - M: 'um mês', - MM: '%d meses', - y: 'um ano', - yy: '%d anos', + future: '%s soň', + past: '%s öň', + s: 'birnäçe sekunt', + m: 'bir minut', + mm: '%d minut', + h: 'bir sagat', + hh: '%d sagat', + d: 'bir gün', + dd: '%d gün', + M: 'bir aý', + MM: '%d aý', + y: 'bir ýyl', + yy: '%d ýyl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'unjy"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - invalidDate: 'Data inválida', }); - return ptBr; + return tk; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pt.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pt.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/tl-ph.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/tl-ph.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2649590__) { //! moment.js locale configuration -//! locale : Portuguese [pt] -//! author : Jefferson : https://github.com/jalex79 +//! locale : Tagalog (Philippines) [tl-ph] +//! author : Dan Hagman : https://github.com/hagmandan ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2649590__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var pt = moment.defineLocale('pt', { - months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + var tlPh = moment.defineLocale('tl-ph', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( '_' ), - monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), - weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split( + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( '_' ), - weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), - weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), - weekdaysParseExact: true, + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D [de] MMMM [de] YYYY', - LLL: 'D [de] MMMM [de] YYYY HH:mm', - LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', }, calendar: { - sameDay: '[Hoje às] LT', - nextDay: '[Amanhã às] LT', - nextWeek: 'dddd [às] LT', - lastDay: '[Ontem às] LT', - lastWeek: function () { - return this.day() === 0 || this.day() === 6 - ? '[Último] dddd [às] LT' // Saturday + Sunday - : '[Última] dddd [às] LT'; // Monday - Friday - }, + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', sameElse: 'L', }, relativeTime: { - future: 'em %s', - past: 'há %s', - s: 'segundos', - ss: '%d segundos', - m: 'um minuto', - mm: '%d minutos', - h: 'uma hora', - hh: '%d horas', - d: 'um dia', - dd: '%d dias', - w: 'uma semana', - ww: '%d semanas', - M: 'um mês', - MM: '%d meses', - y: 'um ano', - yy: '%d anos', + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return pt; + return tlPh; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ro.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ro.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/tlh.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/tlh.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2652121__) { //! moment.js locale configuration -//! locale : Romanian [ro] -//! author : Vlad Gurdiga : https://github.com/gurdiga -//! author : Valentin Agachi : https://github.com/avaly -//! author : Emanuel Cepoi : https://github.com/cepem +//! locale : Klingon [tlh] +//! author : Dominika Kruk : https://github.com/amaranthrose ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2652121__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - ss: 'secunde', - mm: 'minute', - hh: 'ore', - dd: 'zile', - ww: 'săptămâni', - MM: 'luni', - yy: 'ani', - }, - separator = ' '; - if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { - separator = ' de '; + var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); + + function translateFuture(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'leS' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'waQ' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'nem' + : time + ' pIq'; + return time; + } + + function translatePast(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'Hu’' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'wen' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'ben' + : time + ' ret'; + return time; + } + + function translate(number, withoutSuffix, string, isFuture) { + var numberNoun = numberAsNoun(number); + switch (string) { + case 'ss': + return numberNoun + ' lup'; + case 'mm': + return numberNoun + ' tup'; + case 'hh': + return numberNoun + ' rep'; + case 'dd': + return numberNoun + ' jaj'; + case 'MM': + return numberNoun + ' jar'; + case 'yy': + return numberNoun + ' DIS'; } - return number + separator + format[key]; } - var ro = moment.defineLocale('ro', { - months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( + function numberAsNoun(number) { + var hundred = Math.floor((number % 1000) / 100), + ten = Math.floor((number % 100) / 10), + one = number % 10, + word = ''; + if (hundred > 0) { + word += numbersNouns[hundred] + 'vatlh'; + } + if (ten > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; + } + if (one > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[one]; + } + return word === '' ? 'pagh' : word; + } + + var tlh = moment.defineLocale('tlh', { + months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split( '_' ), - monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( + monthsShort: + 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( '_' ), - monthsParseExact: true, - weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'), - weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), - weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), + weekdaysShort: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + weekdaysMin: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', + LT: 'HH:mm', + LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY H:mm', - LLLL: 'dddd, D MMMM YYYY H:mm', - }, - calendar: { - sameDay: '[azi la] LT', - nextDay: '[mâine la] LT', - nextWeek: 'dddd [la] LT', - lastDay: '[ieri la] LT', - lastWeek: '[fosta] dddd [la] LT', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[DaHjaj] LT', + nextDay: '[wa’leS] LT', + nextWeek: 'LLL', + lastDay: '[wa’Hu’] LT', + lastWeek: 'LLL', sameElse: 'L', }, relativeTime: { - future: 'peste %s', - past: '%s în urmă', - s: 'câteva secunde', - ss: relativeTimeWithPlural, - m: 'un minut', - mm: relativeTimeWithPlural, - h: 'o oră', - hh: relativeTimeWithPlural, - d: 'o zi', - dd: relativeTimeWithPlural, - w: 'o săptămână', - ww: relativeTimeWithPlural, - M: 'o lună', - MM: relativeTimeWithPlural, - y: 'un an', - yy: relativeTimeWithPlural, + future: translateFuture, + past: translatePast, + s: 'puS lup', + ss: translate, + m: 'wa’ tup', + mm: translate, + h: 'wa’ rep', + hh: translate, + d: 'wa’ jaj', + dd: translate, + M: 'wa’ jar', + MM: translate, + y: 'wa’ DIS', + yy: translate, }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return ro; + return tlh; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ru.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ru.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/tr.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/tr.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2656840__) { //! moment.js locale configuration -//! locale : Russian [ru] -//! author : Viktorminator : https://github.com/Viktorminator -//! author : Menelion Elensúle : https://github.com/Oire -//! author : Коренберг Марк : https://github.com/socketpair +//! locale : Turkish [tr] +//! authors : Erhan Gundogan : https://github.com/erhangundogan, +//! Burak Yiğit Kaya: https://github.com/BYK ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2656840__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - function plural(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 - ? forms[0] - : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) - ? forms[1] - : forms[2]; - } - function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', - mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', - hh: 'час_часа_часов', - dd: 'день_дня_дней', - ww: 'неделя_недели_недель', - MM: 'месяц_месяца_месяцев', - yy: 'год_года_лет', - }; - if (key === 'm') { - return withoutSuffix ? 'минута' : 'минуту'; - } else { - return number + ' ' + plural(format[key], +number); - } - } - var monthsParse = [ - /^янв/i, - /^фев/i, - /^мар/i, - /^апр/i, - /^ма[йя]/i, - /^июн/i, - /^июл/i, - /^авг/i, - /^сен/i, - /^окт/i, - /^ноя/i, - /^дек/i, - ]; + var suffixes = { + 1: "'inci", + 5: "'inci", + 8: "'inci", + 70: "'inci", + 80: "'inci", + 2: "'nci", + 7: "'nci", + 20: "'nci", + 50: "'nci", + 3: "'üncü", + 4: "'üncü", + 100: "'üncü", + 6: "'ncı", + 9: "'uncu", + 10: "'uncu", + 30: "'uncu", + 60: "'ıncı", + 90: "'ıncı", + }; - // http://new.gramota.ru/spravka/rules/139-prop : § 103 - // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 - // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 - var ru = moment.defineLocale('ru', { - months: { - format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split( - '_' - ), - standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( - '_' - ), - }, - monthsShort: { - // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку? - format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split( - '_' - ), - standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split( - '_' - ), + var tr = moment.defineLocale('tr', { + months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split( + '_' + ), + monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'), + weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split( + '_' + ), + weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'), + weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'öö' : 'ÖÖ'; + } else { + return isLower ? 'ös' : 'ÖS'; + } }, - weekdays: { - standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split( - '_' - ), - format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split( - '_' - ), - isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/, + meridiemParse: /öö|ÖÖ|ös|ÖS/, + isPM: function (input) { + return input === 'ös' || input === 'ÖS'; }, - weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), - weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - - // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки - monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, - - // копия предыдущего - monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, - - // полные названия с падежами - monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, - - // Выражение, которое соответствует только сокращённым формам - monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', + LT: 'HH:mm', + LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY г.', - LLL: 'D MMMM YYYY г., H:mm', - LLLL: 'dddd, D MMMM YYYY г., H:mm', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[Сегодня, в] LT', - nextDay: '[Завтра, в] LT', - lastDay: '[Вчера, в] LT', - nextWeek: function (now) { - if (now.week() !== this.week()) { - switch (this.day()) { - case 0: - return '[В следующее] dddd, [в] LT'; - case 1: - case 2: - case 4: - return '[В следующий] dddd, [в] LT'; - case 3: - case 5: - case 6: - return '[В следующую] dddd, [в] LT'; - } - } else { - if (this.day() === 2) { - return '[Во] dddd, [в] LT'; - } else { - return '[В] dddd, [в] LT'; - } - } - }, - lastWeek: function (now) { - if (now.week() !== this.week()) { - switch (this.day()) { - case 0: - return '[В прошлое] dddd, [в] LT'; - case 1: - case 2: - case 4: - return '[В прошлый] dddd, [в] LT'; - case 3: - case 5: - case 6: - return '[В прошлую] dddd, [в] LT'; - } - } else { - if (this.day() === 2) { - return '[Во] dddd, [в] LT'; - } else { - return '[В] dddd, [в] LT'; - } - } - }, + sameDay: '[bugün saat] LT', + nextDay: '[yarın saat] LT', + nextWeek: '[gelecek] dddd [saat] LT', + lastDay: '[dün] LT', + lastWeek: '[geçen] dddd [saat] LT', sameElse: 'L', }, relativeTime: { - future: 'через %s', - past: '%s назад', - s: 'несколько секунд', - ss: relativeTimeWithPlural, - m: relativeTimeWithPlural, - mm: relativeTimeWithPlural, - h: 'час', - hh: relativeTimeWithPlural, - d: 'день', - dd: relativeTimeWithPlural, - w: 'неделя', - ww: relativeTimeWithPlural, - M: 'месяц', - MM: relativeTimeWithPlural, - y: 'год', - yy: relativeTimeWithPlural, - }, - meridiemParse: /ночи|утра|дня|вечера/i, - isPM: function (input) { - return /^(дня|вечера)$/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'ночи'; - } else if (hour < 12) { - return 'утра'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечера'; - } + future: '%s sonra', + past: '%s önce', + s: 'birkaç saniye', + ss: '%d saniye', + m: 'bir dakika', + mm: '%d dakika', + h: 'bir saat', + hh: '%d saat', + d: 'bir gün', + dd: '%d gün', + w: 'bir hafta', + ww: '%d hafta', + M: 'bir ay', + MM: '%d ay', + y: 'bir yıl', + yy: '%d yıl', }, - dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, ordinal: function (number, period) { switch (period) { - case 'M': case 'd': - case 'DDD': - return number + '-й'; case 'D': - return number + '-го'; - case 'w': - case 'W': - return number + '-я'; - default: + case 'Do': + case 'DD': return number; + default: + if (number === 0) { + // special case for zero + return number + "'ıncı"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); } }, week: { dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + doy: 7, // The week that contains Jan 7th is the first week of the year. }, }); - return ru; + return tr; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sd.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sd.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/tzl.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/tzl.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2660695__) { //! moment.js locale configuration -//! locale : Sindhi [sd] -//! author : Narain Sagar : https://github.com/narainsagar +//! locale : Talossan [tzl] +//! author : Robin van der Vliet : https://github.com/robin0van0der0v +//! author : Iustì Canun ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2660695__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var months = [ - 'جنوري', - 'فيبروري', - 'مارچ', - 'اپريل', - 'مئي', - 'جون', - 'جولاءِ', - 'آگسٽ', - 'سيپٽمبر', - 'آڪٽوبر', - 'نومبر', - 'ڊسمبر', - ], - days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر']; - - var sd = moment.defineLocale('sd', { - months: months, - monthsShort: months, - weekdays: days, - weekdaysShort: days, - weekdaysMin: days, + // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. + // This is currently too difficult (maybe even impossible) to add. + var tzl = moment.defineLocale('tzl', { + months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), + weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), + weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), + weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd، D MMMM YYYY HH:mm', + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM [dallas] YYYY', + LLL: 'D. MMMM [dallas] YYYY HH.mm', + LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', }, - meridiemParse: /صبح|شام/, + meridiemParse: /d\'o|d\'a/i, isPM: function (input) { - return 'شام' === input; + return "d'o" === input.toLowerCase(); }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'صبح'; + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? "d'o" : "D'O"; + } else { + return isLower ? "d'a" : "D'A"; } - return 'شام'; }, calendar: { - sameDay: '[اڄ] LT', - nextDay: '[سڀاڻي] LT', - nextWeek: 'dddd [اڳين هفتي تي] LT', - lastDay: '[ڪالهه] LT', - lastWeek: '[گزريل هفتي] dddd [تي] LT', + sameDay: '[oxhi à] LT', + nextDay: '[demà à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[ieiri à] LT', + lastWeek: '[sür el] dddd [lasteu à] LT', sameElse: 'L', }, relativeTime: { - future: '%s پوء', - past: '%s اڳ', - s: 'چند سيڪنڊ', - ss: '%d سيڪنڊ', - m: 'هڪ منٽ', - mm: '%d منٽ', - h: 'هڪ ڪلاڪ', - hh: '%d ڪلاڪ', - d: 'هڪ ڏينهن', - dd: '%d ڏينهن', - M: 'هڪ مهينو', - MM: '%d مهينا', - y: 'هڪ سال', - yy: '%d سال', - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); + future: 'osprei %s', + past: 'ja%s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return sd; + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['viensas secunds', "'iensas secunds"], + ss: [number + ' secunds', '' + number + ' secunds'], + m: ["'n míut", "'iens míut"], + mm: [number + ' míuts', '' + number + ' míuts'], + h: ["'n þora", "'iensa þora"], + hh: [number + ' þoras', '' + number + ' þoras'], + d: ["'n ziua", "'iensa ziua"], + dd: [number + ' ziuas', '' + number + ' ziuas'], + M: ["'n mes", "'iens mes"], + MM: [number + ' mesen', '' + number + ' mesen'], + y: ["'n ar", "'iens ar"], + yy: [number + ' ars', '' + number + ' ars'], + }; + return isFuture + ? format[key][0] + : withoutSuffix + ? format[key][0] + : format[key][1]; + } + + return tzl; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/se.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/se.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/tzm-latn.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/tzm-latn.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2664699__) { //! moment.js locale configuration -//! locale : Northern Sami [se] -//! authors : Bård Rolstad Henriksen : https://github.com/karamell +//! locale : Central Atlas Tamazight Latin [tzm-latn] +//! author : Abdel Said : https://github.com/abdelsaid ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2664699__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var se = moment.defineLocale('se', { - months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split( - '_' - ), - monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split( - '_' - ), - weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split( + var tzmLatn = moment.defineLocale('tzm-latn', { + months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( '_' ), - weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), - weekdaysMin: 's_v_m_g_d_b_L'.split('_'), + monthsShort: + 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( + '_' + ), + weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'MMMM D. [b.] YYYY', - LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', - LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[otne ti] LT', - nextDay: '[ihttin ti] LT', - nextWeek: 'dddd [ti] LT', - lastDay: '[ikte ti] LT', - lastWeek: '[ovddit] dddd [ti] LT', + sameDay: '[asdkh g] LT', + nextDay: '[aska g] LT', + nextWeek: 'dddd [g] LT', + lastDay: '[assant g] LT', + lastWeek: 'dddd [g] LT', sameElse: 'L', }, relativeTime: { - future: '%s geažes', - past: 'maŋit %s', - s: 'moadde sekunddat', - ss: '%d sekunddat', - m: 'okta minuhta', - mm: '%d minuhtat', - h: 'okta diimmu', - hh: '%d diimmut', - d: 'okta beaivi', - dd: '%d beaivvit', - M: 'okta mánnu', - MM: '%d mánut', - y: 'okta jahki', - yy: '%d jagit', + future: 'dadkh s yan %s', + past: 'yan %s', + s: 'imik', + ss: '%d imik', + m: 'minuḍ', + mm: '%d minuḍ', + h: 'saɛa', + hh: '%d tassaɛin', + d: 'ass', + dd: '%d ossan', + M: 'ayowr', + MM: '%d iyyirn', + y: 'asgas', + yy: '%d isgasn', }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. }, }); - return se; + return tzmLatn; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/si.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/si.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/tzm.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/tzm.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2667150__) { //! moment.js locale configuration -//! locale : Sinhalese [si] -//! author : Sampath Sitinamaluwa : https://github.com/sampathsris +//! locale : Central Atlas Tamazight [tzm] +//! author : Abdel Said : https://github.com/abdelsaid ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2667150__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - /*jshint -W100*/ - var si = moment.defineLocale('si', { - months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split( - '_' - ), - monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split( - '_' - ), - weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split( + var tzm = moment.defineLocale('tzm', { + months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( '_' ), - weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), - weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), - weekdaysParseExact: true, + monthsShort: + 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( + '_' + ), + weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), longDateFormat: { - LT: 'a h:mm', - LTS: 'a h:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY MMMM D', - LLL: 'YYYY MMMM D, a h:mm', - LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss', + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[අද] LT[ට]', - nextDay: '[හෙට] LT[ට]', - nextWeek: 'dddd LT[ට]', - lastDay: '[ඊයේ] LT[ට]', - lastWeek: '[පසුගිය] dddd LT[ට]', + sameDay: '[ⴰⵙⴷⵅ ⴴ] LT', + nextDay: '[ⴰⵙⴽⴰ ⴴ] LT', + nextWeek: 'dddd [ⴴ] LT', + lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT', + lastWeek: 'dddd [ⴴ] LT', sameElse: 'L', }, relativeTime: { - future: '%sකින්', - past: '%sකට පෙර', - s: 'තත්පර කිහිපය', - ss: 'තත්පර %d', - m: 'මිනිත්තුව', - mm: 'මිනිත්තු %d', - h: 'පැය', - hh: 'පැය %d', - d: 'දිනය', - dd: 'දින %d', - M: 'මාසය', - MM: 'මාස %d', - y: 'වසර', - yy: 'වසර %d', - }, - dayOfMonthOrdinalParse: /\d{1,2} වැනි/, - ordinal: function (number) { - return number + ' වැනි'; - }, - meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, - isPM: function (input) { - return input === 'ප.ව.' || input === 'පස් වරු'; + future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s', + past: 'ⵢⴰⵏ %s', + s: 'ⵉⵎⵉⴽ', + ss: '%d ⵉⵎⵉⴽ', + m: 'ⵎⵉⵏⵓⴺ', + mm: '%d ⵎⵉⵏⵓⴺ', + h: 'ⵙⴰⵄⴰ', + hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ', + d: 'ⴰⵙⵙ', + dd: '%d oⵙⵙⴰⵏ', + M: 'ⴰⵢoⵓⵔ', + MM: '%d ⵉⵢⵢⵉⵔⵏ', + y: 'ⴰⵙⴳⴰⵙ', + yy: '%d ⵉⵙⴳⴰⵙⵏ', }, - meridiem: function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'ප.ව.' : 'පස් වරු'; - } else { - return isLower ? 'පෙ.ව.' : 'පෙර වරු'; - } + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. }, }); - return si; + return tzm; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sk.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sk.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ug-cn.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ug-cn.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2669570__) { //! moment.js locale configuration -//! locale : Slovak [sk] -//! author : Martin Minka : https://github.com/k2s -//! based on work of petrbela : https://github.com/petrbela +//! locale : Uyghur (China) [ug-cn] +//! author: boyaq : https://github.com/boyaq ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2669570__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split( + var ugCn = moment.defineLocale('ug-cn', { + months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( '_' ), - monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); - function plural(n) { - return n > 1 && n < 5; - } - function translate(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': // a few seconds / in a few seconds / a few seconds ago - return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami'; - case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'sekundy' : 'sekúnd'); - } else { - return result + 'sekundami'; - } - case 'm': // a minute / in a minute / a minute ago - return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou'; - case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'minúty' : 'minút'); - } else { - return result + 'minútami'; - } - case 'h': // an hour / in an hour / an hour ago - return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; - case 'hh': // 9 hours / in 9 hours / 9 hours ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'hodiny' : 'hodín'); - } else { - return result + 'hodinami'; - } - case 'd': // a day / in a day / a day ago - return withoutSuffix || isFuture ? 'deň' : 'dňom'; - case 'dd': // 9 days / in 9 days / 9 days ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'dni' : 'dní'); - } else { - return result + 'dňami'; - } - case 'M': // a month / in a month / a month ago - return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; - case 'MM': // 9 months / in 9 months / 9 months ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'mesiace' : 'mesiacov'); - } else { - return result + 'mesiacmi'; - } - case 'y': // a year / in a year / a year ago - return withoutSuffix || isFuture ? 'rok' : 'rokom'; - case 'yy': // 9 years / in 9 years / 9 years ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'roky' : 'rokov'); - } else { - return result + 'rokmi'; - } - } - } - - var sk = moment.defineLocale('sk', { - months: months, - monthsShort: monthsShort, - weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'), - weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'), - weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'), + monthsShort: + 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( + '_' + ), + weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split( + '_' + ), + weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), + weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd D. MMMM YYYY H:mm', + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى', + LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', + LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', + }, + meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + meridiem === 'يېرىم كېچە' || + meridiem === 'سەھەر' || + meridiem === 'چۈشتىن بۇرۇن' + ) { + return hour; + } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') { + return hour + 12; + } else { + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return 'يېرىم كېچە'; + } else if (hm < 900) { + return 'سەھەر'; + } else if (hm < 1130) { + return 'چۈشتىن بۇرۇن'; + } else if (hm < 1230) { + return 'چۈش'; + } else if (hm < 1800) { + return 'چۈشتىن كېيىن'; + } else { + return 'كەچ'; + } }, calendar: { - sameDay: '[dnes o] LT', - nextDay: '[zajtra o] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[v nedeľu o] LT'; - case 1: - case 2: - return '[v] dddd [o] LT'; - case 3: - return '[v stredu o] LT'; - case 4: - return '[vo štvrtok o] LT'; - case 5: - return '[v piatok o] LT'; - case 6: - return '[v sobotu o] LT'; - } - }, - lastDay: '[včera o] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[minulú nedeľu o] LT'; - case 1: - case 2: - return '[minulý] dddd [o] LT'; - case 3: - return '[minulú stredu o] LT'; - case 4: - case 5: - return '[minulý] dddd [o] LT'; - case 6: - return '[minulú sobotu o] LT'; - } - }, + sameDay: '[بۈگۈن سائەت] LT', + nextDay: '[ئەتە سائەت] LT', + nextWeek: '[كېلەركى] dddd [سائەت] LT', + lastDay: '[تۆنۈگۈن] LT', + lastWeek: '[ئالدىنقى] dddd [سائەت] LT', sameElse: 'L', }, relativeTime: { - future: 'za %s', - past: 'pred %s', - s: translate, - ss: translate, - m: translate, - mm: translate, - h: translate, - hh: translate, - d: translate, - dd: translate, - M: translate, - MM: translate, - y: translate, - yy: translate, + future: '%s كېيىن', + past: '%s بۇرۇن', + s: 'نەچچە سېكونت', + ss: '%d سېكونت', + m: 'بىر مىنۇت', + mm: '%d مىنۇت', + h: 'بىر سائەت', + hh: '%d سائەت', + d: 'بىر كۈن', + dd: '%d كۈن', + M: 'بىر ئاي', + MM: '%d ئاي', + y: 'بىر يىل', + yy: '%d يىل', + }, + + dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '-كۈنى'; + case 'w': + case 'W': + return number + '-ھەپتە'; + default: + return number; + } + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', week: { + // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + doy: 7, // The week that contains Jan 1st is the first week of the year. }, }); - return sk; + return ugCn; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sl.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sl.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/uk.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/uk.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2673860__) { //! moment.js locale configuration -//! locale : Slovenian [sl] -//! author : Robert Sedovšek : https://github.com/sedovsek +//! locale : Ukrainian [uk] +//! author : zemlanin : https://github.com/zemlanin +//! Author : Menelion Elensúle : https://github.com/Oire ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2673860__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': - return withoutSuffix || isFuture - ? 'nekaj sekund' - : 'nekaj sekundami'; - case 'ss': - if (number === 1) { - result += withoutSuffix ? 'sekundo' : 'sekundi'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; - } else { - result += 'sekund'; - } - return result; - case 'm': - return withoutSuffix ? 'ena minuta' : 'eno minuto'; - case 'mm': - if (number === 1) { - result += withoutSuffix ? 'minuta' : 'minuto'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'minute' : 'minutami'; - } else { - result += withoutSuffix || isFuture ? 'minut' : 'minutami'; - } - return result; - case 'h': - return withoutSuffix ? 'ena ura' : 'eno uro'; - case 'hh': - if (number === 1) { - result += withoutSuffix ? 'ura' : 'uro'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'uri' : 'urama'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'ure' : 'urami'; - } else { - result += withoutSuffix || isFuture ? 'ur' : 'urami'; - } - return result; - case 'd': - return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; - case 'dd': - if (number === 1) { - result += withoutSuffix || isFuture ? 'dan' : 'dnem'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; - } else { - result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; - } - return result; - case 'M': - return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; - case 'MM': - if (number === 1) { - result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; - } else { - result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; - } - return result; - case 'y': - return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; - case 'yy': - if (number === 1) { - result += withoutSuffix || isFuture ? 'leto' : 'letom'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'leti' : 'letoma'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'leta' : 'leti'; - } else { - result += withoutSuffix || isFuture ? 'let' : 'leti'; - } - return result; + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд', + mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', + hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин', + dd: 'день_дні_днів', + MM: 'місяць_місяці_місяців', + yy: 'рік_роки_років', + }; + if (key === 'm') { + return withoutSuffix ? 'хвилина' : 'хвилину'; + } else if (key === 'h') { + return withoutSuffix ? 'година' : 'годину'; + } else { + return number + ' ' + plural(format[key], +number); } } + function weekdaysCaseReplace(m, format) { + var weekdays = { + nominative: + 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split( + '_' + ), + accusative: + 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split( + '_' + ), + genitive: + 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split( + '_' + ), + }, + nounCase; - var sl = moment.defineLocale('sl', { - months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( - '_' - ), - monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( + if (m === true) { + return weekdays['nominative'] + .slice(1, 7) + .concat(weekdays['nominative'].slice(0, 1)); + } + if (!m) { + return weekdays['nominative']; + } + + nounCase = /(\[[ВвУу]\]) ?dddd/.test(format) + ? 'accusative' + : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format) + ? 'genitive' + : 'nominative'; + return weekdays[nounCase][m.day()]; + } + function processHoursFunction(str) { + return function () { + return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; + }; + } + + var uk = moment.defineLocale('uk', { + months: { + format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split( + '_' + ), + standalone: + 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split( + '_' + ), + }, + monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split( '_' ), - monthsParseExact: true, - weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'), - weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'), - weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'), - weekdaysParseExact: true, + weekdays: weekdaysCaseReplace, + weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD. MM. YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm', + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY р.', + LLL: 'D MMMM YYYY р., HH:mm', + LLLL: 'dddd, D MMMM YYYY р., HH:mm', }, calendar: { - sameDay: '[danes ob] LT', - nextDay: '[jutri ob] LT', - - nextWeek: function () { - switch (this.day()) { - case 0: - return '[v] [nedeljo] [ob] LT'; - case 3: - return '[v] [sredo] [ob] LT'; - case 6: - return '[v] [soboto] [ob] LT'; - case 1: - case 2: - case 4: - case 5: - return '[v] dddd [ob] LT'; - } - }, - lastDay: '[včeraj ob] LT', + sameDay: processHoursFunction('[Сьогодні '), + nextDay: processHoursFunction('[Завтра '), + lastDay: processHoursFunction('[Вчора '), + nextWeek: processHoursFunction('[У] dddd ['), lastWeek: function () { switch (this.day()) { case 0: - return '[prejšnjo] [nedeljo] [ob] LT'; case 3: - return '[prejšnjo] [sredo] [ob] LT'; + case 5: case 6: - return '[prejšnjo] [soboto] [ob] LT'; + return processHoursFunction('[Минулої] dddd [').call(this); case 1: case 2: case 4: - case 5: - return '[prejšnji] dddd [ob] LT'; + return processHoursFunction('[Минулого] dddd [').call(this); } }, sameElse: 'L', }, relativeTime: { - future: 'čez %s', - past: 'pred %s', - s: processRelativeTime, - ss: processRelativeTime, - m: processRelativeTime, - mm: processRelativeTime, - h: processRelativeTime, - hh: processRelativeTime, - d: processRelativeTime, - dd: processRelativeTime, - M: processRelativeTime, - MM: processRelativeTime, - y: processRelativeTime, - yy: processRelativeTime, + future: 'за %s', + past: '%s тому', + s: 'декілька секунд', + ss: relativeTimeWithPlural, + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: 'годину', + hh: relativeTimeWithPlural, + d: 'день', + dd: relativeTimeWithPlural, + M: 'місяць', + MM: relativeTimeWithPlural, + y: 'рік', + yy: relativeTimeWithPlural, + }, + // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason + meridiemParse: /ночі|ранку|дня|вечора/, + isPM: function (input) { + return /^(дня|вечора)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночі'; + } else if (hour < 12) { + return 'ранку'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечора'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return number + '-й'; + case 'D': + return number + '-го'; + default: + return number; + } }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 7, // The week that contains Jan 7th is the first week of the year. }, }); - return sl; + return uk; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sq.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sq.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ur.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ur.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2680313__) { //! moment.js locale configuration -//! locale : Albanian [sq] -//! author : Flakërim Ismani : https://github.com/flakerimi -//! author : Menelion Elensúle : https://github.com/Oire -//! author : Oerd Cukalla : https://github.com/oerd +//! locale : Urdu [ur] +//! author : Sawood Alam : https://github.com/ibnesayeed +//! author : Zack : https://github.com/ZackVision ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2680313__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var sq = moment.defineLocale('sq', { - months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split( - '_' - ), - monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), - weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split( - '_' - ), - weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), - weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'), - weekdaysParseExact: true, - meridiemParse: /PD|MD/, - isPM: function (input) { - return input.charAt(0) === 'M'; - }, - meridiem: function (hours, minutes, isLower) { - return hours < 12 ? 'PD' : 'MD'; - }, + var months = [ + 'جنوری', + 'فروری', + 'مارچ', + 'اپریل', + 'مئی', + 'جون', + 'جولائی', + 'اگست', + 'ستمبر', + 'اکتوبر', + 'نومبر', + 'دسمبر', + ], + days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ']; + + var ur = moment.defineLocale('ur', { + months: months, + monthsShort: months, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', + LLLL: 'dddd، D MMMM YYYY HH:mm', + }, + meridiemParse: /صبح|شام/, + isPM: function (input) { + return 'شام' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'صبح'; + } + return 'شام'; }, calendar: { - sameDay: '[Sot në] LT', - nextDay: '[Nesër në] LT', - nextWeek: 'dddd [në] LT', - lastDay: '[Dje në] LT', - lastWeek: 'dddd [e kaluar në] LT', + sameDay: '[آج بوقت] LT', + nextDay: '[کل بوقت] LT', + nextWeek: 'dddd [بوقت] LT', + lastDay: '[گذشتہ روز بوقت] LT', + lastWeek: '[گذشتہ] dddd [بوقت] LT', sameElse: 'L', }, relativeTime: { - future: 'në %s', - past: '%s më parë', - s: 'disa sekonda', - ss: '%d sekonda', - m: 'një minutë', - mm: '%d minuta', - h: 'një orë', - hh: '%d orë', - d: 'një ditë', - dd: '%d ditë', - M: 'një muaj', - MM: '%d muaj', - y: 'një vit', - yy: '%d vite', + future: '%s بعد', + past: '%s قبل', + s: 'چند سیکنڈ', + ss: '%d سیکنڈ', + m: 'ایک منٹ', + mm: '%d منٹ', + h: 'ایک گھنٹہ', + hh: '%d گھنٹے', + d: 'ایک دن', + dd: '%d دن', + M: 'ایک ماہ', + MM: '%d ماہ', + y: 'ایک سال', + yy: '%d سال', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return sq; + return ur; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sr-cyrl.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sr-cyrl.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/uz-latn.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/uz-latn.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2683207__) { //! moment.js locale configuration -//! locale : Serbian Cyrillic [sr-cyrl] -//! author : Milan Janačković : https://github.com/milan-j -//! author : Stefan Crnjaković : https://github.com/crnjakovic +//! locale : Uzbek Latin [uz-latn] +//! author : Rasulbek Mirzayev : github.com/Rasulbeeek ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2683207__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var translator = { - words: { - //Different grammatical cases - ss: ['секунда', 'секунде', 'секунди'], - m: ['један минут', 'једне минуте'], - mm: ['минут', 'минуте', 'минута'], - h: ['један сат', 'једног сата'], - hh: ['сат', 'сата', 'сати'], - dd: ['дан', 'дана', 'дана'], - MM: ['месец', 'месеца', 'месеци'], - yy: ['година', 'године', 'година'], - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 - ? wordKey[0] - : number >= 2 && number <= 4 - ? wordKey[1] - : wordKey[2]; - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return ( - number + - ' ' + - translator.correctGrammaticalCase(number, wordKey) - ); - } - }, - }; - - var srCyrl = moment.defineLocale('sr-cyrl', { - months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split( - '_' - ), - monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split( + var uzLatn = moment.defineLocale('uz-latn', { + months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( '_' ), - monthsParseExact: true, - weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), - weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), - weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), - weekdaysParseExact: true, + monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), + weekdays: + 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( + '_' + ), + weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), + weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'D. M. YYYY.', - LL: 'D. MMMM YYYY.', - LLL: 'D. MMMM YYYY. H:mm', - LLLL: 'dddd, D. MMMM YYYY. H:mm', + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', }, calendar: { - sameDay: '[данас у] LT', - nextDay: '[сутра у] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[у] [недељу] [у] LT'; - case 3: - return '[у] [среду] [у] LT'; - case 6: - return '[у] [суботу] [у] LT'; - case 1: - case 2: - case 4: - case 5: - return '[у] dddd [у] LT'; - } - }, - lastDay: '[јуче у] LT', - lastWeek: function () { - var lastWeekDays = [ - '[прошле] [недеље] [у] LT', - '[прошлог] [понедељка] [у] LT', - '[прошлог] [уторка] [у] LT', - '[прошле] [среде] [у] LT', - '[прошлог] [четвртка] [у] LT', - '[прошлог] [петка] [у] LT', - '[прошле] [суботе] [у] LT', - ]; - return lastWeekDays[this.day()]; - }, + sameDay: '[Bugun soat] LT [da]', + nextDay: '[Ertaga] LT [da]', + nextWeek: 'dddd [kuni soat] LT [da]', + lastDay: '[Kecha soat] LT [da]', + lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", sameElse: 'L', }, relativeTime: { - future: 'за %s', - past: 'пре %s', - s: 'неколико секунди', - ss: translator.translate, - m: translator.translate, - mm: translator.translate, - h: translator.translate, - hh: translator.translate, - d: 'дан', - dd: translator.translate, - M: 'месец', - MM: translator.translate, - y: 'годину', - yy: translator.translate, + future: 'Yaqin %s ichida', + past: 'Bir necha %s oldin', + s: 'soniya', + ss: '%d soniya', + m: 'bir daqiqa', + mm: '%d daqiqa', + h: 'bir soat', + hh: '%d soat', + d: 'bir kun', + dd: '%d kun', + M: 'bir oy', + MM: '%d oy', + y: 'bir yil', + yy: '%d yil', }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 1st is the first week of the year. + doy: 7, // The week that contains Jan 7th is the first week of the year. }, }); - return srCyrl; + return uzLatn; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sr.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sr.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/uz.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/uz.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2685630__) { //! moment.js locale configuration -//! locale : Serbian [sr] -//! author : Milan Janačković : https://github.com/milan-j -//! author : Stefan Crnjaković : https://github.com/crnjakovic +//! locale : Uzbek [uz] +//! author : Sardor Muminov : https://github.com/muminoff ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2685630__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var translator = { - words: { - //Different grammatical cases - ss: ['sekunda', 'sekunde', 'sekundi'], - m: ['jedan minut', 'jedne minute'], - mm: ['minut', 'minute', 'minuta'], - h: ['jedan sat', 'jednog sata'], - hh: ['sat', 'sata', 'sati'], - dd: ['dan', 'dana', 'dana'], - MM: ['mesec', 'meseca', 'meseci'], - yy: ['godina', 'godine', 'godina'], - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 - ? wordKey[0] - : number >= 2 && number <= 4 - ? wordKey[1] - : wordKey[2]; - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return ( - number + - ' ' + - translator.correctGrammaticalCase(number, wordKey) - ); - } - }, - }; - - var sr = moment.defineLocale('sr', { - months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( - '_' - ), - monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split( + var uz = moment.defineLocale('uz', { + months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( '_' ), - weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), - weekdaysParseExact: true, + monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), + weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), + weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'D. M. YYYY.', - LL: 'D. MMMM YYYY.', - LLL: 'D. MMMM YYYY. H:mm', - LLLL: 'dddd, D. MMMM YYYY. H:mm', + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', }, calendar: { - sameDay: '[danas u] LT', - nextDay: '[sutra u] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[u] [nedelju] [u] LT'; - case 3: - return '[u] [sredu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - }, - lastDay: '[juče u] LT', - lastWeek: function () { - var lastWeekDays = [ - '[prošle] [nedelje] [u] LT', - '[prošlog] [ponedeljka] [u] LT', - '[prošlog] [utorka] [u] LT', - '[prošle] [srede] [u] LT', - '[prošlog] [četvrtka] [u] LT', - '[prošlog] [petka] [u] LT', - '[prošle] [subote] [u] LT', - ]; - return lastWeekDays[this.day()]; - }, + sameDay: '[Бугун соат] LT [да]', + nextDay: '[Эртага] LT [да]', + nextWeek: 'dddd [куни соат] LT [да]', + lastDay: '[Кеча соат] LT [да]', + lastWeek: '[Утган] dddd [куни соат] LT [да]', sameElse: 'L', }, relativeTime: { - future: 'za %s', - past: 'pre %s', - s: 'nekoliko sekundi', - ss: translator.translate, - m: translator.translate, - mm: translator.translate, - h: translator.translate, - hh: translator.translate, - d: 'dan', - dd: translator.translate, - M: 'mesec', - MM: translator.translate, - y: 'godinu', - yy: translator.translate, + future: 'Якин %s ичида', + past: 'Бир неча %s олдин', + s: 'фурсат', + ss: '%d фурсат', + m: 'бир дакика', + mm: '%d дакика', + h: 'бир соат', + hh: '%d соат', + d: 'бир кун', + dd: '%d кун', + M: 'бир ой', + MM: '%d ой', + y: 'бир йил', + yy: '%d йил', }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. + doy: 7, // The week that contains Jan 4th is the first week of the year. }, }); - return sr; + return uz; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ss.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ss.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/vi.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/vi.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2687965__) { //! moment.js locale configuration -//! locale : siSwati [ss] -//! author : Nicolai Davies : https://github.com/nicolaidavies +//! locale : Vietnamese [vi] +//! author : Bang Nguyen : https://github.com/bangnk +//! author : Chien Kira : https://github.com/chienkira ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2687965__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var ss = moment.defineLocale('ss', { - months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( + var vi = moment.defineLocale('vi', { + months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split( '_' ), - monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), - weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( + monthsShort: + 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split( '_' ), - weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), - weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), + weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), weekdaysParseExact: true, - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendar: { - sameDay: '[Namuhla nga] LT', - nextDay: '[Kusasa nga] LT', - nextWeek: 'dddd [nga] LT', - lastDay: '[Itolo nga] LT', - lastWeek: 'dddd [leliphelile] [nga] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'nga %s', - past: 'wenteka nga %s', - s: 'emizuzwana lomcane', - ss: '%d mzuzwana', - m: 'umzuzu', - mm: '%d emizuzu', - h: 'lihora', - hh: '%d emahora', - d: 'lilanga', - dd: '%d emalanga', - M: 'inyanga', - MM: '%d tinyanga', - y: 'umnyaka', - yy: '%d iminyaka', - }, - meridiemParse: /ekuseni|emini|entsambama|ebusuku/, - meridiem: function (hours, minutes, isLower) { - if (hours < 11) { - return 'ekuseni'; - } else if (hours < 15) { - return 'emini'; - } else if (hours < 19) { - return 'entsambama'; + meridiemParse: /sa|ch/i, + isPM: function (input) { + return /^ch$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'sa' : 'SA'; } else { - return 'ebusuku'; + return isLower ? 'ch' : 'CH'; } }, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ekuseni') { - return hour; - } else if (meridiem === 'emini') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { - if (hour === 0) { - return 0; - } - return hour + 12; - } + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [năm] YYYY', + LLL: 'D MMMM [năm] YYYY HH:mm', + LLLL: 'dddd, D MMMM [năm] YYYY HH:mm', + l: 'DD/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hôm nay lúc] LT', + nextDay: '[Ngày mai lúc] LT', + nextWeek: 'dddd [tuần tới lúc] LT', + lastDay: '[Hôm qua lúc] LT', + lastWeek: 'dddd [tuần trước lúc] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s tới', + past: '%s trước', + s: 'vài giây', + ss: '%d giây', + m: 'một phút', + mm: '%d phút', + h: 'một giờ', + hh: '%d giờ', + d: 'một ngày', + dd: '%d ngày', + w: 'một tuần', + ww: '%d tuần', + M: 'một tháng', + MM: '%d tháng', + y: 'một năm', + yy: '%d năm', }, dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal: '%d', + ordinal: function (number) { + return number; + }, week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return ss; + return vi; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sv.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sv.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/x-pseudo.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/x-pseudo.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2691206__) { //! moment.js locale configuration -//! locale : Swedish [sv] -//! author : Jens Alm : https://github.com/ulmus +//! locale : Pseudo [x-pseudo] +//! author : Andrew Hood : https://github.com/andrewhood125 ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2691206__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var sv = moment.defineLocale('sv', { - months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( + var xPseudo = moment.defineLocale('x-pseudo', { + months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split( '_' ), - monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), - weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), - weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'), - weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'), + monthsShort: + 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split( + '_' + ), + weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'), + weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), + weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', + L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [kl.] HH:mm', - LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', - lll: 'D MMM YYYY HH:mm', - llll: 'ddd D MMM YYYY HH:mm', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', }, calendar: { - sameDay: '[Idag] LT', - nextDay: '[Imorgon] LT', - lastDay: '[Igår] LT', - nextWeek: '[På] dddd LT', - lastWeek: '[I] dddd[s] LT', + sameDay: '[T~ódá~ý át] LT', + nextDay: '[T~ómó~rró~w át] LT', + nextWeek: 'dddd [át] LT', + lastDay: '[Ý~ést~érdá~ý át] LT', + lastWeek: '[L~ást] dddd [át] LT', sameElse: 'L', }, relativeTime: { - future: 'om %s', - past: 'för %s sedan', - s: 'några sekunder', - ss: '%d sekunder', - m: 'en minut', - mm: '%d minuter', - h: 'en timme', - hh: '%d timmar', - d: 'en dag', - dd: '%d dagar', - M: 'en månad', - MM: '%d månader', - y: 'ett år', - yy: '%d år', + future: 'í~ñ %s', + past: '%s á~gó', + s: 'á ~féw ~sécó~ñds', + ss: '%d s~écóñ~ds', + m: 'á ~míñ~úté', + mm: '%d m~íñú~tés', + h: 'á~ñ hó~úr', + hh: '%d h~óúrs', + d: 'á ~dáý', + dd: '%d d~áýs', + M: 'á ~móñ~th', + MM: '%d m~óñt~hs', + y: 'á ~ýéár', + yy: '%d ý~éárs', }, - dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal: function (number) { var b = number % 10, output = ~~((number % 100) / 10) === 1 - ? ':e' + ? 'th' : b === 1 - ? ':a' + ? 'st' : b === 2 - ? ':a' + ? 'nd' : b === 3 - ? ':e' - : ':e'; + ? 'rd' + : 'th'; return number + output; }, week: { @@ -70570,10934 +77984,10819 @@ module.exports = uniqBy; }, }); - return sv; + return xPseudo; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sw.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sw.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/yo.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/yo.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2694261__) { //! moment.js locale configuration -//! locale : Swahili [sw] -//! author : Fahad Kassim : https://github.com/fadsel +//! locale : Yoruba Nigeria [yo] +//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2694261__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var sw = moment.defineLocale('sw', { - months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( - '_' - ), - monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), - weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( + var yo = moment.defineLocale('yo', { + months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split( '_' ), - weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), - weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), - weekdaysParseExact: true, + monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), + weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), + weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), + weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), longDateFormat: { - LT: 'hh:mm A', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', }, calendar: { - sameDay: '[leo saa] LT', - nextDay: '[kesho saa] LT', - nextWeek: '[wiki ijayo] dddd [saat] LT', - lastDay: '[jana] LT', - lastWeek: '[wiki iliyopita] dddd [saat] LT', + sameDay: '[Ònì ni] LT', + nextDay: '[Ọ̀la ni] LT', + nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT", + lastDay: '[Àna ni] LT', + lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT', sameElse: 'L', }, relativeTime: { - future: '%s baadaye', - past: 'tokea %s', - s: 'hivi punde', - ss: 'sekunde %d', - m: 'dakika moja', - mm: 'dakika %d', - h: 'saa limoja', - hh: 'masaa %d', - d: 'siku moja', - dd: 'siku %d', - M: 'mwezi mmoja', - MM: 'miezi %d', - y: 'mwaka mmoja', - yy: 'miaka %d', + future: 'ní %s', + past: '%s kọjá', + s: 'ìsẹjú aayá die', + ss: 'aayá %d', + m: 'ìsẹjú kan', + mm: 'ìsẹjú %d', + h: 'wákati kan', + hh: 'wákati %d', + d: 'ọjọ́ kan', + dd: 'ọjọ́ %d', + M: 'osù kan', + MM: 'osù %d', + y: 'ọdún kan', + yy: 'ọdún %d', }, + dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/, + ordinal: 'ọjọ́ %d', week: { dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return sw; + return yo; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ta.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ta.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/zh-cn.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/zh-cn.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2696742__) { //! moment.js locale configuration -//! locale : Tamil [ta] -//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 +//! locale : Chinese (China) [zh-cn] +//! author : suupic : https://github.com/suupic +//! author : Zeno Zeng : https://github.com/zenozeng +//! author : uu109 : https://github.com/uu109 ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2696742__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var symbolMap = { - 1: '௧', - 2: '௨', - 3: '௩', - 4: '௪', - 5: '௫', - 6: '௬', - 7: '௭', - 8: '௮', - 9: '௯', - 0: '௦', - }, - numberMap = { - '௧': '1', - '௨': '2', - '௩': '3', - '௪': '4', - '௫': '5', - '௬': '6', - '௭': '7', - '௮': '8', - '௯': '9', - '௦': '0', - }; - - var ta = moment.defineLocale('ta', { - months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( - '_' - ), - monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( - '_' - ), - weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split( + var zhCn = moment.defineLocale('zh-cn', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( '_' ), - weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split( + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( '_' ), - weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, HH:mm', - LLLL: 'dddd, D MMMM YYYY, HH:mm', - }, - calendar: { - sameDay: '[இன்று] LT', - nextDay: '[நாளை] LT', - nextWeek: 'dddd, LT', - lastDay: '[நேற்று] LT', - lastWeek: '[கடந்த வாரம்] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s இல்', - past: '%s முன்', - s: 'ஒரு சில விநாடிகள்', - ss: '%d விநாடிகள்', - m: 'ஒரு நிமிடம்', - mm: '%d நிமிடங்கள்', - h: 'ஒரு மணி நேரம்', - hh: '%d மணி நேரம்', - d: 'ஒரு நாள்', - dd: '%d நாட்கள்', - M: 'ஒரு மாதம்', - MM: '%d மாதங்கள்', - y: 'ஒரு வருடம்', - yy: '%d ஆண்டுகள்', - }, - dayOfMonthOrdinalParse: /\d{1,2}வது/, - ordinal: function (number) { - return number + 'வது'; - }, - preparse: function (string) { - return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - // refer http://ta.wikipedia.org/s/1er1 - meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, - meridiem: function (hour, minute, isLower) { - if (hour < 2) { - return ' யாமம்'; - } else if (hour < 6) { - return ' வைகறை'; // வைகறை - } else if (hour < 10) { - return ' காலை'; // காலை - } else if (hour < 14) { - return ' நண்பகல்'; // நண்பகல் - } else if (hour < 18) { - return ' எற்பாடு'; // எற்பாடு - } else if (hour < 22) { - return ' மாலை'; // மாலை - } else { - return ' யாமம்'; - } + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日Ah点mm分', + LLLL: 'YYYY年M月D日ddddAh点mm分', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, meridiemHour: function (hour, meridiem) { if (hour === 12) { hour = 0; } - if (meridiem === 'யாமம்') { - return hour < 2 ? hour : hour + 12; - } else if (meridiem === 'வைகறை' || meridiem === 'காலை') { + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { return hour; - } else if (meridiem === 'நண்பகல்') { - return hour >= 10 ? hour : hour + 12; - } else { + } else if (meridiem === '下午' || meridiem === '晚上') { return hour + 12; + } else { + // '中午' + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天]LT', + nextDay: '[明天]LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[下]dddLT'; + } else { + return '[本]dddLT'; + } + }, + lastDay: '[昨天]LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[上]dddLT'; + } else { + return '[本]dddLT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '周'; + default: + return number; } }, + relativeTime: { + future: '%s后', + past: '%s前', + s: '几秒', + ss: '%d 秒', + m: '1 分钟', + mm: '%d 分钟', + h: '1 小时', + hh: '%d 小时', + d: '1 天', + dd: '%d 天', + w: '1 周', + ww: '%d 周', + M: '1 个月', + MM: '%d 个月', + y: '1 年', + yy: '%d 年', + }, week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. + // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. }, }); - return ta; + return zhCn; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/te.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/te.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/zh-hk.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/zh-hk.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2701095__) { //! moment.js locale configuration -//! locale : Telugu [te] -//! author : Krishna Chaitanya Thota : https://github.com/kcthota +//! locale : Chinese (Hong Kong) [zh-hk] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris +//! author : Konstantin : https://github.com/skfd +//! author : Anthony : https://github.com/anthonylau ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2701095__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var te = moment.defineLocale('te', { - months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split( - '_' - ), - monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split( + var zhHk = moment.defineLocale('zh-hk', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( '_' ), - monthsParseExact: true, - weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split( + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( '_' ), - weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), - weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), longDateFormat: { - LT: 'A h:mm', - LTS: 'A h:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY, A h:mm', - LLLL: 'dddd, D MMMM YYYY, A h:mm', - }, - calendar: { - sameDay: '[నేడు] LT', - nextDay: '[రేపు] LT', - nextWeek: 'dddd, LT', - lastDay: '[నిన్న] LT', - lastWeek: '[గత] dddd, LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s లో', - past: '%s క్రితం', - s: 'కొన్ని క్షణాలు', - ss: '%d సెకన్లు', - m: 'ఒక నిమిషం', - mm: '%d నిమిషాలు', - h: 'ఒక గంట', - hh: '%d గంటలు', - d: 'ఒక రోజు', - dd: '%d రోజులు', - M: 'ఒక నెల', - MM: '%d నెలలు', - y: 'ఒక సంవత్సరం', - yy: '%d సంవత్సరాలు', + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', }, - dayOfMonthOrdinalParse: /\d{1,2}వ/, - ordinal: '%dవ', - meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, meridiemHour: function (hour, meridiem) { if (hour === 12) { hour = 0; } - if (meridiem === 'రాత్రి') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ఉదయం') { + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { return hour; - } else if (meridiem === 'మధ్యాహ్నం') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'సాయంత్రం') { + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { return hour + 12; } }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'రాత్రి'; - } else if (hour < 10) { - return 'ఉదయం'; - } else if (hour < 17) { - return 'మధ్యాహ్నం'; - } else if (hour < 20) { - return 'సాయంత్రం'; - } else { - return 'రాత్రి'; + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1200) { + return '上午'; + } else if (hm === 1200) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天]LT', + nextDay: '[明天]LT', + nextWeek: '[下]ddddLT', + lastDay: '[昨天]LT', + lastWeek: '[上]ddddLT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; } }, - week: { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. + relativeTime: { + future: '%s後', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', }, }); - return te; + return zhHk; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tet.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tet.js ***! - \**********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/zh-mo.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/zh-mo.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2704841__) { //! moment.js locale configuration -//! locale : Tetun Dili (East Timor) [tet] -//! author : Joshua Brooks : https://github.com/joshbrooks -//! author : Onorio De J. Afonso : https://github.com/marobo -//! author : Sonia Simoes : https://github.com/soniasimoes +//! locale : Chinese (Macau) [zh-mo] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris +//! author : Tan Yuanhong : https://github.com/le0tan ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2704841__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var tet = moment.defineLocale('tet', { - months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( + var zhMo = moment.defineLocale('zh-mo', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( '_' ), - monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), - weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), - weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), - weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'D/M/YYYY', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } }, calendar: { - sameDay: '[Ohin iha] LT', - nextDay: '[Aban iha] LT', - nextWeek: 'dddd [iha] LT', - lastDay: '[Horiseik iha] LT', - lastWeek: 'dddd [semana kotuk] [iha] LT', + sameDay: '[今天] LT', + nextDay: '[明天] LT', + nextWeek: '[下]dddd LT', + lastDay: '[昨天] LT', + lastWeek: '[上]dddd LT', sameElse: 'L', }, - relativeTime: { - future: 'iha %s', - past: '%s liuba', - s: 'segundu balun', - ss: 'segundu %d', - m: 'minutu ida', - mm: 'minutu %d', - h: 'oras ida', - hh: 'oras %d', - d: 'loron ida', - dd: 'loron %d', - M: 'fulan ida', - MM: 'fulan %d', - y: 'tinan ida', - yy: 'tinan %d', - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. + relativeTime: { + future: '%s內', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', }, }); - return tet; + return zhMo; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tg.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tg.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale/zh-tw.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/zh-tw.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_2708537__) { //! moment.js locale configuration -//! locale : Tajik [tg] -//! author : Orif N. Jr. : https://github.com/orif-jr +//! locale : Chinese (Taiwan) [zh-tw] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : + true ? factory(__nested_webpack_require_2708537__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : 0 }(this, (function (moment) { 'use strict'; //! moment.js locale configuration - var suffixes = { - 0: '-ум', - 1: '-ум', - 2: '-юм', - 3: '-юм', - 4: '-ум', - 5: '-ум', - 6: '-ум', - 7: '-ум', - 8: '-ум', - 9: '-ум', - 10: '-ум', - 12: '-ум', - 13: '-ум', - 20: '-ум', - 30: '-юм', - 40: '-ум', - 50: '-ум', - 60: '-ум', - 70: '-ум', - 80: '-ум', - 90: '-ум', - 100: '-ум', - }; - - var tg = moment.defineLocale('tg', { - months: { - format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split( - '_' - ), - standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( - '_' - ), - }, - monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), - weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split( + var zhTw = moment.defineLocale('zh-tw', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( '_' ), - weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'), - weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Имрӯз соати] LT', - nextDay: '[Фардо соати] LT', - lastDay: '[Дирӯз соати] LT', - nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT', - lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'баъди %s', - past: '%s пеш', - s: 'якчанд сония', - m: 'як дақиқа', - mm: '%d дақиқа', - h: 'як соат', - hh: '%d соат', - d: 'як рӯз', - dd: '%d рӯз', - M: 'як моҳ', - MM: '%d моҳ', - y: 'як сол', - yy: '%d сол', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', }, - meridiemParse: /шаб|субҳ|рӯз|бегоҳ/, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, meridiemHour: function (hour, meridiem) { if (hour === 12) { hour = 0; } - if (meridiem === 'шаб') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'субҳ') { + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { return hour; - } else if (meridiem === 'рӯз') { + } else if (meridiem === '中午') { return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'бегоҳ') { + } else if (meridiem === '下午' || meridiem === '晚上') { return hour + 12; } }, meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'шаб'; - } else if (hour < 11) { - return 'субҳ'; - } else if (hour < 16) { - return 'рӯз'; - } else if (hour < 19) { - return 'бегоҳ'; + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; } else { - return 'шаб'; + return '晚上'; } }, - dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/, - ordinal: function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes[number] || suffixes[a] || suffixes[b]); + calendar: { + sameDay: '[今天] LT', + nextDay: '[明天] LT', + nextWeek: '[下]dddd LT', + lastDay: '[昨天] LT', + lastWeek: '[上]dddd LT', + sameElse: 'L', }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 1th is the first week of the year. + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', }, }); - return tg; + return zhTw; }))); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/th.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/th.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/moment/locale sync recursive ^\\.\\/.*$": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ sync ^\.\/.*$ ***! + \**********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2712190__) => { -//! moment.js locale configuration -//! locale : Thai [th] -//! author : Kridsada Thanabulpong : https://github.com/sirn +var map = { + "./af": "./build/cht-core-4-6/node_modules/moment/locale/af.js", + "./af.js": "./build/cht-core-4-6/node_modules/moment/locale/af.js", + "./ar": "./build/cht-core-4-6/node_modules/moment/locale/ar.js", + "./ar-dz": "./build/cht-core-4-6/node_modules/moment/locale/ar-dz.js", + "./ar-dz.js": "./build/cht-core-4-6/node_modules/moment/locale/ar-dz.js", + "./ar-kw": "./build/cht-core-4-6/node_modules/moment/locale/ar-kw.js", + "./ar-kw.js": "./build/cht-core-4-6/node_modules/moment/locale/ar-kw.js", + "./ar-ly": "./build/cht-core-4-6/node_modules/moment/locale/ar-ly.js", + "./ar-ly.js": "./build/cht-core-4-6/node_modules/moment/locale/ar-ly.js", + "./ar-ma": "./build/cht-core-4-6/node_modules/moment/locale/ar-ma.js", + "./ar-ma.js": "./build/cht-core-4-6/node_modules/moment/locale/ar-ma.js", + "./ar-sa": "./build/cht-core-4-6/node_modules/moment/locale/ar-sa.js", + "./ar-sa.js": "./build/cht-core-4-6/node_modules/moment/locale/ar-sa.js", + "./ar-tn": "./build/cht-core-4-6/node_modules/moment/locale/ar-tn.js", + "./ar-tn.js": "./build/cht-core-4-6/node_modules/moment/locale/ar-tn.js", + "./ar.js": "./build/cht-core-4-6/node_modules/moment/locale/ar.js", + "./az": "./build/cht-core-4-6/node_modules/moment/locale/az.js", + "./az.js": "./build/cht-core-4-6/node_modules/moment/locale/az.js", + "./be": "./build/cht-core-4-6/node_modules/moment/locale/be.js", + "./be.js": "./build/cht-core-4-6/node_modules/moment/locale/be.js", + "./bg": "./build/cht-core-4-6/node_modules/moment/locale/bg.js", + "./bg.js": "./build/cht-core-4-6/node_modules/moment/locale/bg.js", + "./bm": "./build/cht-core-4-6/node_modules/moment/locale/bm.js", + "./bm.js": "./build/cht-core-4-6/node_modules/moment/locale/bm.js", + "./bn": "./build/cht-core-4-6/node_modules/moment/locale/bn.js", + "./bn-bd": "./build/cht-core-4-6/node_modules/moment/locale/bn-bd.js", + "./bn-bd.js": "./build/cht-core-4-6/node_modules/moment/locale/bn-bd.js", + "./bn.js": "./build/cht-core-4-6/node_modules/moment/locale/bn.js", + "./bo": "./build/cht-core-4-6/node_modules/moment/locale/bo.js", + "./bo.js": "./build/cht-core-4-6/node_modules/moment/locale/bo.js", + "./br": "./build/cht-core-4-6/node_modules/moment/locale/br.js", + "./br.js": "./build/cht-core-4-6/node_modules/moment/locale/br.js", + "./bs": "./build/cht-core-4-6/node_modules/moment/locale/bs.js", + "./bs.js": "./build/cht-core-4-6/node_modules/moment/locale/bs.js", + "./ca": "./build/cht-core-4-6/node_modules/moment/locale/ca.js", + "./ca.js": "./build/cht-core-4-6/node_modules/moment/locale/ca.js", + "./cs": "./build/cht-core-4-6/node_modules/moment/locale/cs.js", + "./cs.js": "./build/cht-core-4-6/node_modules/moment/locale/cs.js", + "./cv": "./build/cht-core-4-6/node_modules/moment/locale/cv.js", + "./cv.js": "./build/cht-core-4-6/node_modules/moment/locale/cv.js", + "./cy": "./build/cht-core-4-6/node_modules/moment/locale/cy.js", + "./cy.js": "./build/cht-core-4-6/node_modules/moment/locale/cy.js", + "./da": "./build/cht-core-4-6/node_modules/moment/locale/da.js", + "./da.js": "./build/cht-core-4-6/node_modules/moment/locale/da.js", + "./de": "./build/cht-core-4-6/node_modules/moment/locale/de.js", + "./de-at": "./build/cht-core-4-6/node_modules/moment/locale/de-at.js", + "./de-at.js": "./build/cht-core-4-6/node_modules/moment/locale/de-at.js", + "./de-ch": "./build/cht-core-4-6/node_modules/moment/locale/de-ch.js", + "./de-ch.js": "./build/cht-core-4-6/node_modules/moment/locale/de-ch.js", + "./de.js": "./build/cht-core-4-6/node_modules/moment/locale/de.js", + "./dv": "./build/cht-core-4-6/node_modules/moment/locale/dv.js", + "./dv.js": "./build/cht-core-4-6/node_modules/moment/locale/dv.js", + "./el": "./build/cht-core-4-6/node_modules/moment/locale/el.js", + "./el.js": "./build/cht-core-4-6/node_modules/moment/locale/el.js", + "./en-au": "./build/cht-core-4-6/node_modules/moment/locale/en-au.js", + "./en-au.js": "./build/cht-core-4-6/node_modules/moment/locale/en-au.js", + "./en-ca": "./build/cht-core-4-6/node_modules/moment/locale/en-ca.js", + "./en-ca.js": "./build/cht-core-4-6/node_modules/moment/locale/en-ca.js", + "./en-gb": "./build/cht-core-4-6/node_modules/moment/locale/en-gb.js", + "./en-gb.js": "./build/cht-core-4-6/node_modules/moment/locale/en-gb.js", + "./en-ie": "./build/cht-core-4-6/node_modules/moment/locale/en-ie.js", + "./en-ie.js": "./build/cht-core-4-6/node_modules/moment/locale/en-ie.js", + "./en-il": "./build/cht-core-4-6/node_modules/moment/locale/en-il.js", + "./en-il.js": "./build/cht-core-4-6/node_modules/moment/locale/en-il.js", + "./en-in": "./build/cht-core-4-6/node_modules/moment/locale/en-in.js", + "./en-in.js": "./build/cht-core-4-6/node_modules/moment/locale/en-in.js", + "./en-nz": "./build/cht-core-4-6/node_modules/moment/locale/en-nz.js", + "./en-nz.js": "./build/cht-core-4-6/node_modules/moment/locale/en-nz.js", + "./en-sg": "./build/cht-core-4-6/node_modules/moment/locale/en-sg.js", + "./en-sg.js": "./build/cht-core-4-6/node_modules/moment/locale/en-sg.js", + "./eo": "./build/cht-core-4-6/node_modules/moment/locale/eo.js", + "./eo.js": "./build/cht-core-4-6/node_modules/moment/locale/eo.js", + "./es": "./build/cht-core-4-6/node_modules/moment/locale/es.js", + "./es-do": "./build/cht-core-4-6/node_modules/moment/locale/es-do.js", + "./es-do.js": "./build/cht-core-4-6/node_modules/moment/locale/es-do.js", + "./es-mx": "./build/cht-core-4-6/node_modules/moment/locale/es-mx.js", + "./es-mx.js": "./build/cht-core-4-6/node_modules/moment/locale/es-mx.js", + "./es-us": "./build/cht-core-4-6/node_modules/moment/locale/es-us.js", + "./es-us.js": "./build/cht-core-4-6/node_modules/moment/locale/es-us.js", + "./es.js": "./build/cht-core-4-6/node_modules/moment/locale/es.js", + "./et": "./build/cht-core-4-6/node_modules/moment/locale/et.js", + "./et.js": "./build/cht-core-4-6/node_modules/moment/locale/et.js", + "./eu": "./build/cht-core-4-6/node_modules/moment/locale/eu.js", + "./eu.js": "./build/cht-core-4-6/node_modules/moment/locale/eu.js", + "./fa": "./build/cht-core-4-6/node_modules/moment/locale/fa.js", + "./fa.js": "./build/cht-core-4-6/node_modules/moment/locale/fa.js", + "./fi": "./build/cht-core-4-6/node_modules/moment/locale/fi.js", + "./fi.js": "./build/cht-core-4-6/node_modules/moment/locale/fi.js", + "./fil": "./build/cht-core-4-6/node_modules/moment/locale/fil.js", + "./fil.js": "./build/cht-core-4-6/node_modules/moment/locale/fil.js", + "./fo": "./build/cht-core-4-6/node_modules/moment/locale/fo.js", + "./fo.js": "./build/cht-core-4-6/node_modules/moment/locale/fo.js", + "./fr": "./build/cht-core-4-6/node_modules/moment/locale/fr.js", + "./fr-ca": "./build/cht-core-4-6/node_modules/moment/locale/fr-ca.js", + "./fr-ca.js": "./build/cht-core-4-6/node_modules/moment/locale/fr-ca.js", + "./fr-ch": "./build/cht-core-4-6/node_modules/moment/locale/fr-ch.js", + "./fr-ch.js": "./build/cht-core-4-6/node_modules/moment/locale/fr-ch.js", + "./fr.js": "./build/cht-core-4-6/node_modules/moment/locale/fr.js", + "./fy": "./build/cht-core-4-6/node_modules/moment/locale/fy.js", + "./fy.js": "./build/cht-core-4-6/node_modules/moment/locale/fy.js", + "./ga": "./build/cht-core-4-6/node_modules/moment/locale/ga.js", + "./ga.js": "./build/cht-core-4-6/node_modules/moment/locale/ga.js", + "./gd": "./build/cht-core-4-6/node_modules/moment/locale/gd.js", + "./gd.js": "./build/cht-core-4-6/node_modules/moment/locale/gd.js", + "./gl": "./build/cht-core-4-6/node_modules/moment/locale/gl.js", + "./gl.js": "./build/cht-core-4-6/node_modules/moment/locale/gl.js", + "./gom-deva": "./build/cht-core-4-6/node_modules/moment/locale/gom-deva.js", + "./gom-deva.js": "./build/cht-core-4-6/node_modules/moment/locale/gom-deva.js", + "./gom-latn": "./build/cht-core-4-6/node_modules/moment/locale/gom-latn.js", + "./gom-latn.js": "./build/cht-core-4-6/node_modules/moment/locale/gom-latn.js", + "./gu": "./build/cht-core-4-6/node_modules/moment/locale/gu.js", + "./gu.js": "./build/cht-core-4-6/node_modules/moment/locale/gu.js", + "./he": "./build/cht-core-4-6/node_modules/moment/locale/he.js", + "./he.js": "./build/cht-core-4-6/node_modules/moment/locale/he.js", + "./hi": "./build/cht-core-4-6/node_modules/moment/locale/hi.js", + "./hi.js": "./build/cht-core-4-6/node_modules/moment/locale/hi.js", + "./hr": "./build/cht-core-4-6/node_modules/moment/locale/hr.js", + "./hr.js": "./build/cht-core-4-6/node_modules/moment/locale/hr.js", + "./hu": "./build/cht-core-4-6/node_modules/moment/locale/hu.js", + "./hu.js": "./build/cht-core-4-6/node_modules/moment/locale/hu.js", + "./hy-am": "./build/cht-core-4-6/node_modules/moment/locale/hy-am.js", + "./hy-am.js": "./build/cht-core-4-6/node_modules/moment/locale/hy-am.js", + "./id": "./build/cht-core-4-6/node_modules/moment/locale/id.js", + "./id.js": "./build/cht-core-4-6/node_modules/moment/locale/id.js", + "./is": "./build/cht-core-4-6/node_modules/moment/locale/is.js", + "./is.js": "./build/cht-core-4-6/node_modules/moment/locale/is.js", + "./it": "./build/cht-core-4-6/node_modules/moment/locale/it.js", + "./it-ch": "./build/cht-core-4-6/node_modules/moment/locale/it-ch.js", + "./it-ch.js": "./build/cht-core-4-6/node_modules/moment/locale/it-ch.js", + "./it.js": "./build/cht-core-4-6/node_modules/moment/locale/it.js", + "./ja": "./build/cht-core-4-6/node_modules/moment/locale/ja.js", + "./ja.js": "./build/cht-core-4-6/node_modules/moment/locale/ja.js", + "./jv": "./build/cht-core-4-6/node_modules/moment/locale/jv.js", + "./jv.js": "./build/cht-core-4-6/node_modules/moment/locale/jv.js", + "./ka": "./build/cht-core-4-6/node_modules/moment/locale/ka.js", + "./ka.js": "./build/cht-core-4-6/node_modules/moment/locale/ka.js", + "./kk": "./build/cht-core-4-6/node_modules/moment/locale/kk.js", + "./kk.js": "./build/cht-core-4-6/node_modules/moment/locale/kk.js", + "./km": "./build/cht-core-4-6/node_modules/moment/locale/km.js", + "./km.js": "./build/cht-core-4-6/node_modules/moment/locale/km.js", + "./kn": "./build/cht-core-4-6/node_modules/moment/locale/kn.js", + "./kn.js": "./build/cht-core-4-6/node_modules/moment/locale/kn.js", + "./ko": "./build/cht-core-4-6/node_modules/moment/locale/ko.js", + "./ko.js": "./build/cht-core-4-6/node_modules/moment/locale/ko.js", + "./ku": "./build/cht-core-4-6/node_modules/moment/locale/ku.js", + "./ku.js": "./build/cht-core-4-6/node_modules/moment/locale/ku.js", + "./ky": "./build/cht-core-4-6/node_modules/moment/locale/ky.js", + "./ky.js": "./build/cht-core-4-6/node_modules/moment/locale/ky.js", + "./lb": "./build/cht-core-4-6/node_modules/moment/locale/lb.js", + "./lb.js": "./build/cht-core-4-6/node_modules/moment/locale/lb.js", + "./lo": "./build/cht-core-4-6/node_modules/moment/locale/lo.js", + "./lo.js": "./build/cht-core-4-6/node_modules/moment/locale/lo.js", + "./lt": "./build/cht-core-4-6/node_modules/moment/locale/lt.js", + "./lt.js": "./build/cht-core-4-6/node_modules/moment/locale/lt.js", + "./lv": "./build/cht-core-4-6/node_modules/moment/locale/lv.js", + "./lv.js": "./build/cht-core-4-6/node_modules/moment/locale/lv.js", + "./me": "./build/cht-core-4-6/node_modules/moment/locale/me.js", + "./me.js": "./build/cht-core-4-6/node_modules/moment/locale/me.js", + "./mi": "./build/cht-core-4-6/node_modules/moment/locale/mi.js", + "./mi.js": "./build/cht-core-4-6/node_modules/moment/locale/mi.js", + "./mk": "./build/cht-core-4-6/node_modules/moment/locale/mk.js", + "./mk.js": "./build/cht-core-4-6/node_modules/moment/locale/mk.js", + "./ml": "./build/cht-core-4-6/node_modules/moment/locale/ml.js", + "./ml.js": "./build/cht-core-4-6/node_modules/moment/locale/ml.js", + "./mn": "./build/cht-core-4-6/node_modules/moment/locale/mn.js", + "./mn.js": "./build/cht-core-4-6/node_modules/moment/locale/mn.js", + "./mr": "./build/cht-core-4-6/node_modules/moment/locale/mr.js", + "./mr.js": "./build/cht-core-4-6/node_modules/moment/locale/mr.js", + "./ms": "./build/cht-core-4-6/node_modules/moment/locale/ms.js", + "./ms-my": "./build/cht-core-4-6/node_modules/moment/locale/ms-my.js", + "./ms-my.js": "./build/cht-core-4-6/node_modules/moment/locale/ms-my.js", + "./ms.js": "./build/cht-core-4-6/node_modules/moment/locale/ms.js", + "./mt": "./build/cht-core-4-6/node_modules/moment/locale/mt.js", + "./mt.js": "./build/cht-core-4-6/node_modules/moment/locale/mt.js", + "./my": "./build/cht-core-4-6/node_modules/moment/locale/my.js", + "./my.js": "./build/cht-core-4-6/node_modules/moment/locale/my.js", + "./nb": "./build/cht-core-4-6/node_modules/moment/locale/nb.js", + "./nb.js": "./build/cht-core-4-6/node_modules/moment/locale/nb.js", + "./ne": "./build/cht-core-4-6/node_modules/moment/locale/ne.js", + "./ne.js": "./build/cht-core-4-6/node_modules/moment/locale/ne.js", + "./nl": "./build/cht-core-4-6/node_modules/moment/locale/nl.js", + "./nl-be": "./build/cht-core-4-6/node_modules/moment/locale/nl-be.js", + "./nl-be.js": "./build/cht-core-4-6/node_modules/moment/locale/nl-be.js", + "./nl.js": "./build/cht-core-4-6/node_modules/moment/locale/nl.js", + "./nn": "./build/cht-core-4-6/node_modules/moment/locale/nn.js", + "./nn.js": "./build/cht-core-4-6/node_modules/moment/locale/nn.js", + "./oc-lnc": "./build/cht-core-4-6/node_modules/moment/locale/oc-lnc.js", + "./oc-lnc.js": "./build/cht-core-4-6/node_modules/moment/locale/oc-lnc.js", + "./pa-in": "./build/cht-core-4-6/node_modules/moment/locale/pa-in.js", + "./pa-in.js": "./build/cht-core-4-6/node_modules/moment/locale/pa-in.js", + "./pl": "./build/cht-core-4-6/node_modules/moment/locale/pl.js", + "./pl.js": "./build/cht-core-4-6/node_modules/moment/locale/pl.js", + "./pt": "./build/cht-core-4-6/node_modules/moment/locale/pt.js", + "./pt-br": "./build/cht-core-4-6/node_modules/moment/locale/pt-br.js", + "./pt-br.js": "./build/cht-core-4-6/node_modules/moment/locale/pt-br.js", + "./pt.js": "./build/cht-core-4-6/node_modules/moment/locale/pt.js", + "./ro": "./build/cht-core-4-6/node_modules/moment/locale/ro.js", + "./ro.js": "./build/cht-core-4-6/node_modules/moment/locale/ro.js", + "./ru": "./build/cht-core-4-6/node_modules/moment/locale/ru.js", + "./ru.js": "./build/cht-core-4-6/node_modules/moment/locale/ru.js", + "./sd": "./build/cht-core-4-6/node_modules/moment/locale/sd.js", + "./sd.js": "./build/cht-core-4-6/node_modules/moment/locale/sd.js", + "./se": "./build/cht-core-4-6/node_modules/moment/locale/se.js", + "./se.js": "./build/cht-core-4-6/node_modules/moment/locale/se.js", + "./si": "./build/cht-core-4-6/node_modules/moment/locale/si.js", + "./si.js": "./build/cht-core-4-6/node_modules/moment/locale/si.js", + "./sk": "./build/cht-core-4-6/node_modules/moment/locale/sk.js", + "./sk.js": "./build/cht-core-4-6/node_modules/moment/locale/sk.js", + "./sl": "./build/cht-core-4-6/node_modules/moment/locale/sl.js", + "./sl.js": "./build/cht-core-4-6/node_modules/moment/locale/sl.js", + "./sq": "./build/cht-core-4-6/node_modules/moment/locale/sq.js", + "./sq.js": "./build/cht-core-4-6/node_modules/moment/locale/sq.js", + "./sr": "./build/cht-core-4-6/node_modules/moment/locale/sr.js", + "./sr-cyrl": "./build/cht-core-4-6/node_modules/moment/locale/sr-cyrl.js", + "./sr-cyrl.js": "./build/cht-core-4-6/node_modules/moment/locale/sr-cyrl.js", + "./sr.js": "./build/cht-core-4-6/node_modules/moment/locale/sr.js", + "./ss": "./build/cht-core-4-6/node_modules/moment/locale/ss.js", + "./ss.js": "./build/cht-core-4-6/node_modules/moment/locale/ss.js", + "./sv": "./build/cht-core-4-6/node_modules/moment/locale/sv.js", + "./sv.js": "./build/cht-core-4-6/node_modules/moment/locale/sv.js", + "./sw": "./build/cht-core-4-6/node_modules/moment/locale/sw.js", + "./sw.js": "./build/cht-core-4-6/node_modules/moment/locale/sw.js", + "./ta": "./build/cht-core-4-6/node_modules/moment/locale/ta.js", + "./ta.js": "./build/cht-core-4-6/node_modules/moment/locale/ta.js", + "./te": "./build/cht-core-4-6/node_modules/moment/locale/te.js", + "./te.js": "./build/cht-core-4-6/node_modules/moment/locale/te.js", + "./tet": "./build/cht-core-4-6/node_modules/moment/locale/tet.js", + "./tet.js": "./build/cht-core-4-6/node_modules/moment/locale/tet.js", + "./tg": "./build/cht-core-4-6/node_modules/moment/locale/tg.js", + "./tg.js": "./build/cht-core-4-6/node_modules/moment/locale/tg.js", + "./th": "./build/cht-core-4-6/node_modules/moment/locale/th.js", + "./th.js": "./build/cht-core-4-6/node_modules/moment/locale/th.js", + "./tk": "./build/cht-core-4-6/node_modules/moment/locale/tk.js", + "./tk.js": "./build/cht-core-4-6/node_modules/moment/locale/tk.js", + "./tl-ph": "./build/cht-core-4-6/node_modules/moment/locale/tl-ph.js", + "./tl-ph.js": "./build/cht-core-4-6/node_modules/moment/locale/tl-ph.js", + "./tlh": "./build/cht-core-4-6/node_modules/moment/locale/tlh.js", + "./tlh.js": "./build/cht-core-4-6/node_modules/moment/locale/tlh.js", + "./tr": "./build/cht-core-4-6/node_modules/moment/locale/tr.js", + "./tr.js": "./build/cht-core-4-6/node_modules/moment/locale/tr.js", + "./tzl": "./build/cht-core-4-6/node_modules/moment/locale/tzl.js", + "./tzl.js": "./build/cht-core-4-6/node_modules/moment/locale/tzl.js", + "./tzm": "./build/cht-core-4-6/node_modules/moment/locale/tzm.js", + "./tzm-latn": "./build/cht-core-4-6/node_modules/moment/locale/tzm-latn.js", + "./tzm-latn.js": "./build/cht-core-4-6/node_modules/moment/locale/tzm-latn.js", + "./tzm.js": "./build/cht-core-4-6/node_modules/moment/locale/tzm.js", + "./ug-cn": "./build/cht-core-4-6/node_modules/moment/locale/ug-cn.js", + "./ug-cn.js": "./build/cht-core-4-6/node_modules/moment/locale/ug-cn.js", + "./uk": "./build/cht-core-4-6/node_modules/moment/locale/uk.js", + "./uk.js": "./build/cht-core-4-6/node_modules/moment/locale/uk.js", + "./ur": "./build/cht-core-4-6/node_modules/moment/locale/ur.js", + "./ur.js": "./build/cht-core-4-6/node_modules/moment/locale/ur.js", + "./uz": "./build/cht-core-4-6/node_modules/moment/locale/uz.js", + "./uz-latn": "./build/cht-core-4-6/node_modules/moment/locale/uz-latn.js", + "./uz-latn.js": "./build/cht-core-4-6/node_modules/moment/locale/uz-latn.js", + "./uz.js": "./build/cht-core-4-6/node_modules/moment/locale/uz.js", + "./vi": "./build/cht-core-4-6/node_modules/moment/locale/vi.js", + "./vi.js": "./build/cht-core-4-6/node_modules/moment/locale/vi.js", + "./x-pseudo": "./build/cht-core-4-6/node_modules/moment/locale/x-pseudo.js", + "./x-pseudo.js": "./build/cht-core-4-6/node_modules/moment/locale/x-pseudo.js", + "./yo": "./build/cht-core-4-6/node_modules/moment/locale/yo.js", + "./yo.js": "./build/cht-core-4-6/node_modules/moment/locale/yo.js", + "./zh-cn": "./build/cht-core-4-6/node_modules/moment/locale/zh-cn.js", + "./zh-cn.js": "./build/cht-core-4-6/node_modules/moment/locale/zh-cn.js", + "./zh-hk": "./build/cht-core-4-6/node_modules/moment/locale/zh-hk.js", + "./zh-hk.js": "./build/cht-core-4-6/node_modules/moment/locale/zh-hk.js", + "./zh-mo": "./build/cht-core-4-6/node_modules/moment/locale/zh-mo.js", + "./zh-mo.js": "./build/cht-core-4-6/node_modules/moment/locale/zh-mo.js", + "./zh-tw": "./build/cht-core-4-6/node_modules/moment/locale/zh-tw.js", + "./zh-tw.js": "./build/cht-core-4-6/node_modules/moment/locale/zh-tw.js" +}; + + +function webpackContext(req) { + var id = webpackContextResolve(req); + return __nested_webpack_require_2712190__(id); +} +function webpackContextResolve(req) { + if(!__nested_webpack_require_2712190__.o(map, req)) { + var e = new Error("Cannot find module '" + req + "'"); + e.code = 'MODULE_NOT_FOUND'; + throw e; + } + return map[req]; +} +webpackContext.keys = function webpackContextKeys() { + return Object.keys(map); +}; +webpackContext.resolve = webpackContextResolve; +module.exports = webpackContext; +webpackContext.id = "./build/cht-core-4-6/node_modules/moment/locale sync recursive ^\\.\\/.*$"; + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/moment.js": +/*!**********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/moment.js ***! + \**********************************************************/ +/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_2731916__) { + +/* module decorator */ module = __nested_webpack_require_2731916__.nmd(module); +//! moment.js +//! version : 2.29.4 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com ;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + true ? module.exports = factory() : + 0 +}(this, (function () { 'use strict'; - //! moment.js locale configuration + var hookCallback; - var th = moment.defineLocale('th', { - months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split( - '_' - ), - monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), - weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference - weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'H:mm', - LTS: 'H:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY เวลา H:mm', - LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm', - }, - meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, - isPM: function (input) { - return input === 'หลังเที่ยง'; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'ก่อนเที่ยง'; - } else { - return 'หลังเที่ยง'; + function hooks() { + return hookCallback.apply(null, arguments); + } + + // This is done to register the method called with moment() + // without creating circular dependencies. + function setHookCallback(callback) { + hookCallback = callback; + } + + function isArray(input) { + return ( + input instanceof Array || + Object.prototype.toString.call(input) === '[object Array]' + ); + } + + function isObject(input) { + // IE8 will treat undefined and null as object if it wasn't for + // input != null + return ( + input != null && + Object.prototype.toString.call(input) === '[object Object]' + ); + } + + function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); + } + + function isObjectEmpty(obj) { + if (Object.getOwnPropertyNames) { + return Object.getOwnPropertyNames(obj).length === 0; + } else { + var k; + for (k in obj) { + if (hasOwnProp(obj, k)) { + return false; + } } - }, - calendar: { - sameDay: '[วันนี้ เวลา] LT', - nextDay: '[พรุ่งนี้ เวลา] LT', - nextWeek: 'dddd[หน้า เวลา] LT', - lastDay: '[เมื่อวานนี้ เวลา] LT', - lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'อีก %s', - past: '%sที่แล้ว', - s: 'ไม่กี่วินาที', - ss: '%d วินาที', - m: '1 นาที', - mm: '%d นาที', - h: '1 ชั่วโมง', - hh: '%d ชั่วโมง', - d: '1 วัน', - dd: '%d วัน', - w: '1 สัปดาห์', - ww: '%d สัปดาห์', - M: '1 เดือน', - MM: '%d เดือน', - y: '1 ปี', - yy: '%d ปี', - }, - }); + return true; + } + } + + function isUndefined(input) { + return input === void 0; + } + + function isNumber(input) { + return ( + typeof input === 'number' || + Object.prototype.toString.call(input) === '[object Number]' + ); + } - return th; + function isDate(input) { + return ( + input instanceof Date || + Object.prototype.toString.call(input) === '[object Date]' + ); + } -}))); + function map(arr, fn) { + var res = [], + i, + arrLen = arr.length; + for (i = 0; i < arrLen; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } -/***/ }), + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tk.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tk.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } -//! moment.js locale configuration -//! locale : Turkmen [tk] -//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy + return a; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function createUTC(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); + } - //! moment.js locale configuration + function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty: false, + unusedTokens: [], + unusedInput: [], + overflow: -2, + charsLeftOver: 0, + nullInput: false, + invalidEra: null, + invalidMonth: null, + invalidFormat: false, + userInvalidated: false, + iso: false, + parsedDateParts: [], + era: null, + meridiem: null, + rfc2822: false, + weekdayMismatch: false, + }; + } - var suffixes = { - 1: "'inji", - 5: "'inji", - 8: "'inji", - 70: "'inji", - 80: "'inji", - 2: "'nji", - 7: "'nji", - 20: "'nji", - 50: "'nji", - 3: "'ünji", - 4: "'ünji", - 100: "'ünji", - 6: "'njy", - 9: "'unjy", - 10: "'unjy", - 30: "'unjy", - 60: "'ynjy", - 90: "'ynjy", - }; + function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; + } - var tk = moment.defineLocale('tk', { - months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split( - '_' - ), - monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'), - weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split( - '_' - ), - weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'), - weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[bugün sagat] LT', - nextDay: '[ertir sagat] LT', - nextWeek: '[indiki] dddd [sagat] LT', - lastDay: '[düýn] LT', - lastWeek: '[geçen] dddd [sagat] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s soň', - past: '%s öň', - s: 'birnäçe sekunt', - m: 'bir minut', - mm: '%d minut', - h: 'bir sagat', - hh: '%d sagat', - d: 'bir gün', - dd: '%d gün', - M: 'bir aý', - MM: '%d aý', - y: 'bir ýyl', - yy: '%d ýyl', - }, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'Do': - case 'DD': - return number; - default: - if (number === 0) { - // special case for zero - return number + "'unjy"; - } - var a = number % 10, - b = (number % 100) - a, - c = number >= 100 ? 100 : null; - return number + (suffixes[a] || suffixes[b] || suffixes[c]); - } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); + var some; + if (Array.prototype.some) { + some = Array.prototype.some; + } else { + some = function (fun) { + var t = Object(this), + len = t.length >>> 0, + i; - return tk; + for (i = 0; i < len; i++) { + if (i in t && fun.call(this, t[i], i, t)) { + return true; + } + } -}))); + return false; + }; + } + function isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m), + parsedParts = some.call(flags.parsedDateParts, function (i) { + return i != null; + }), + isNowValid = + !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidEra && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.weekdayMismatch && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated && + (!flags.meridiem || (flags.meridiem && parsedParts)); -/***/ }), + if (m._strict) { + isNowValid = + isNowValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tl-ph.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tl-ph.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + if (Object.isFrozen == null || !Object.isFrozen(m)) { + m._isValid = isNowValid; + } else { + return isNowValid; + } + } + return m._isValid; + } -//! moment.js locale configuration -//! locale : Tagalog (Philippines) [tl-ph] -//! author : Dan Hagman : https://github.com/hagmandan + function createInvalid(flags) { + var m = createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } else { + getParsingFlags(m).userInvalidated = true; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + return m; + } - //! moment.js locale configuration + // Plugins that add properties should also add the key here (null value), + // so we can properly clone ourselves. + var momentProperties = (hooks.momentProperties = []), + updateInProgress = false; - var tlPh = moment.defineLocale('tl-ph', { - months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( - '_' - ), - monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), - weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( - '_' - ), - weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), - weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'MM/D/YYYY', - LL: 'MMMM D, YYYY', - LLL: 'MMMM D, YYYY HH:mm', - LLLL: 'dddd, MMMM DD, YYYY HH:mm', - }, - calendar: { - sameDay: 'LT [ngayong araw]', - nextDay: '[Bukas ng] LT', - nextWeek: 'LT [sa susunod na] dddd', - lastDay: 'LT [kahapon]', - lastWeek: 'LT [noong nakaraang] dddd', - sameElse: 'L', - }, - relativeTime: { - future: 'sa loob ng %s', - past: '%s ang nakalipas', - s: 'ilang segundo', - ss: '%d segundo', - m: 'isang minuto', - mm: '%d minuto', - h: 'isang oras', - hh: '%d oras', - d: 'isang araw', - dd: '%d araw', - M: 'isang buwan', - MM: '%d buwan', - y: 'isang taon', - yy: '%d taon', - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal: function (number) { - return number; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + function copyConfig(to, from) { + var i, + prop, + val, + momentPropertiesLen = momentProperties.length; - return tlPh; + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } -}))); + if (momentPropertiesLen > 0) { + for (i = 0; i < momentPropertiesLen; i++) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + return to; + } -/***/ }), + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + if (!this.isValid()) { + this._d = new Date(NaN); + } + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + hooks.updateOffset(this); + updateInProgress = false; + } + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tlh.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tlh.js ***! - \**********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function isMoment(obj) { + return ( + obj instanceof Moment || (obj != null && obj._isAMomentObject != null) + ); + } -//! moment.js locale configuration -//! locale : Klingon [tlh] -//! author : Dominika Kruk : https://github.com/amaranthrose + function warn(msg) { + if ( + hooks.suppressDeprecationWarnings === false && + typeof console !== 'undefined' && + console.warn + ) { + console.warn('Deprecation warning: ' + msg); + } + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function deprecate(msg, fn) { + var firstTime = true; - //! moment.js locale configuration + return extend(function () { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(null, msg); + } + if (firstTime) { + var args = [], + arg, + i, + key, + argLen = arguments.length; + for (i = 0; i < argLen; i++) { + arg = ''; + if (typeof arguments[i] === 'object') { + arg += '\n[' + i + '] '; + for (key in arguments[0]) { + if (hasOwnProp(arguments[0], key)) { + arg += key + ': ' + arguments[0][key] + ', '; + } + } + arg = arg.slice(0, -2); // Remove trailing comma and space + } else { + arg = arguments[i]; + } + args.push(arg); + } + warn( + msg + + '\nArguments: ' + + Array.prototype.slice.call(args).join('') + + '\n' + + new Error().stack + ); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } - var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); + var deprecations = {}; - function translateFuture(output) { - var time = output; - time = - output.indexOf('jaj') !== -1 - ? time.slice(0, -3) + 'leS' - : output.indexOf('jar') !== -1 - ? time.slice(0, -3) + 'waQ' - : output.indexOf('DIS') !== -1 - ? time.slice(0, -3) + 'nem' - : time + ' pIq'; - return time; + function deprecateSimple(name, msg) { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(name, msg); + } + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } } - function translatePast(output) { - var time = output; - time = - output.indexOf('jaj') !== -1 - ? time.slice(0, -3) + 'Hu’' - : output.indexOf('jar') !== -1 - ? time.slice(0, -3) + 'wen' - : output.indexOf('DIS') !== -1 - ? time.slice(0, -3) + 'ben' - : time + ' ret'; - return time; + hooks.suppressDeprecationWarnings = false; + hooks.deprecationHandler = null; + + function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); } - function translate(number, withoutSuffix, string, isFuture) { - var numberNoun = numberAsNoun(number); - switch (string) { - case 'ss': - return numberNoun + ' lup'; - case 'mm': - return numberNoun + ' tup'; - case 'hh': - return numberNoun + ' rep'; - case 'dd': - return numberNoun + ' jaj'; - case 'MM': - return numberNoun + ' jar'; - case 'yy': - return numberNoun + ' DIS'; + function set(config) { + var prop, i; + for (i in config) { + if (hasOwnProp(config, i)) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } } + this._config = config; + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. + // TODO: Remove "ordinalParse" fallback in next major release. + this._dayOfMonthOrdinalParseLenient = new RegExp( + (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + + '|' + + /\d{1,2}/.source + ); } - function numberAsNoun(number) { - var hundred = Math.floor((number % 1000) / 100), - ten = Math.floor((number % 100) / 10), - one = number % 10, - word = ''; - if (hundred > 0) { - word += numbersNouns[hundred] + 'vatlh'; - } - if (ten > 0) { - word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; + function mergeConfigs(parentConfig, childConfig) { + var res = extend({}, parentConfig), + prop; + for (prop in childConfig) { + if (hasOwnProp(childConfig, prop)) { + if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { + res[prop] = {}; + extend(res[prop], parentConfig[prop]); + extend(res[prop], childConfig[prop]); + } else if (childConfig[prop] != null) { + res[prop] = childConfig[prop]; + } else { + delete res[prop]; + } + } } - if (one > 0) { - word += (word !== '' ? ' ' : '') + numbersNouns[one]; + for (prop in parentConfig) { + if ( + hasOwnProp(parentConfig, prop) && + !hasOwnProp(childConfig, prop) && + isObject(parentConfig[prop]) + ) { + // make sure changes to properties don't modify parent config + res[prop] = extend({}, res[prop]); + } } - return word === '' ? 'pagh' : word; + return res; } - var tlh = moment.defineLocale('tlh', { - months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split( - '_' - ), - monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( - '_' - ), - weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( - '_' - ), - weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( - '_' - ), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[DaHjaj] LT', - nextDay: '[wa’leS] LT', - nextWeek: 'LLL', - lastDay: '[wa’Hu’] LT', - lastWeek: 'LLL', - sameElse: 'L', - }, - relativeTime: { - future: translateFuture, - past: translatePast, - s: 'puS lup', - ss: translate, - m: 'wa’ tup', - mm: translate, - h: 'wa’ rep', - hh: translate, - d: 'wa’ jaj', - dd: translate, - M: 'wa’ jar', - MM: translate, - y: 'wa’ DIS', - yy: translate, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + function Locale(config) { + if (config != null) { + this.set(config); + } + } - return tlh; + var keys; -}))); + if (Object.keys) { + keys = Object.keys; + } else { + keys = function (obj) { + var i, + res = []; + for (i in obj) { + if (hasOwnProp(obj, i)) { + res.push(i); + } + } + return res; + }; + } + var defaultCalendar = { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }; -/***/ }), + function calendar(key, mom, now) { + var output = this._calendar[key] || this._calendar['sameElse']; + return isFunction(output) ? output.call(mom, now) : output; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tr.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tr.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return ( + (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + + absNumber + ); + } -//! moment.js locale configuration -//! locale : Turkish [tr] -//! authors : Erhan Gundogan : https://github.com/erhangundogan, -//! Burak Yiğit Kaya: https://github.com/BYK + var formattingTokens = + /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, + localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, + formatFunctions = {}, + formatTokenFunctions = {}; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken(token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal( + func.apply(this, arguments), + token + ); + }; + } + } - //! moment.js locale configuration + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } - var suffixes = { - 1: "'inci", - 5: "'inci", - 8: "'inci", - 70: "'inci", - 80: "'inci", - 2: "'nci", - 7: "'nci", - 20: "'nci", - 50: "'nci", - 3: "'üncü", - 4: "'üncü", - 100: "'üncü", - 6: "'ncı", - 9: "'uncu", - 10: "'uncu", - 30: "'uncu", - 60: "'ıncı", - 90: "'ıncı", - }; + function makeFormatFunction(format) { + var array = format.match(formattingTokens), + i, + length; - var tr = moment.defineLocale('tr', { - months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split( - '_' - ), - monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'), - weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split( - '_' - ), - weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'), - weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'), - meridiem: function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'öö' : 'ÖÖ'; + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; } else { - return isLower ? 'ös' : 'ÖS'; - } - }, - meridiemParse: /öö|ÖÖ|ös|ÖS/, - isPM: function (input) { - return input === 'ös' || input === 'ÖS'; - }, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[bugün saat] LT', - nextDay: '[yarın saat] LT', - nextWeek: '[gelecek] dddd [saat] LT', - lastDay: '[dün] LT', - lastWeek: '[geçen] dddd [saat] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s sonra', - past: '%s önce', - s: 'birkaç saniye', - ss: '%d saniye', - m: 'bir dakika', - mm: '%d dakika', - h: 'bir saat', - hh: '%d saat', - d: 'bir gün', - dd: '%d gün', - w: 'bir hafta', - ww: '%d hafta', - M: 'bir ay', - MM: '%d ay', - y: 'bir yıl', - yy: '%d yıl', - }, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'Do': - case 'DD': - return number; - default: - if (number === 0) { - // special case for zero - return number + "'ıncı"; - } - var a = number % 10, - b = (number % 100) - a, - c = number >= 100 ? 100 : null; - return number + (suffixes[a] || suffixes[b] || suffixes[c]); + array[i] = removeFormattingTokens(array[i]); } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); - - return tr; - -}))); + } + return function (mom) { + var output = '', + i; + for (i = 0; i < length; i++) { + output += isFunction(array[i]) + ? array[i].call(mom, format) + : array[i]; + } + return output; + }; + } -/***/ }), + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzl.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzl.js ***! - \**********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + format = expandFormat(format, m.localeData()); + formatFunctions[format] = + formatFunctions[format] || makeFormatFunction(format); -//! moment.js locale configuration -//! locale : Talossan [tzl] -//! author : Robin van der Vliet : https://github.com/robin0van0der0v -//! author : Iustì Canun + return formatFunctions[format](m); + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function expandFormat(format, locale) { + var i = 5; - //! moment.js locale configuration + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } - // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. - // This is currently too difficult (maybe even impossible) to add. - var tzl = moment.defineLocale('tzl', { - months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split( - '_' - ), - monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), - weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), - weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), - weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), - longDateFormat: { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM [dallas] YYYY', - LLL: 'D. MMMM [dallas] YYYY HH.mm', - LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', - }, - meridiemParse: /d\'o|d\'a/i, - isPM: function (input) { - return "d'o" === input.toLowerCase(); - }, - meridiem: function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? "d'o" : "D'O"; - } else { - return isLower ? "d'a" : "D'A"; - } - }, - calendar: { - sameDay: '[oxhi à] LT', - nextDay: '[demà à] LT', - nextWeek: 'dddd [à] LT', - lastDay: '[ieiri à] LT', - lastWeek: '[sür el] dddd [lasteu à] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'osprei %s', - past: 'ja%s', - s: processRelativeTime, - ss: processRelativeTime, - m: processRelativeTime, - mm: processRelativeTime, - h: processRelativeTime, - hh: processRelativeTime, - d: processRelativeTime, - dd: processRelativeTime, - M: processRelativeTime, - MM: processRelativeTime, - y: processRelativeTime, - yy: processRelativeTime, - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace( + localFormattingTokens, + replaceLongDateFormatTokens + ); + localFormattingTokens.lastIndex = 0; + i -= 1; + } - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - s: ['viensas secunds', "'iensas secunds"], - ss: [number + ' secunds', '' + number + ' secunds'], - m: ["'n míut", "'iens míut"], - mm: [number + ' míuts', '' + number + ' míuts'], - h: ["'n þora", "'iensa þora"], - hh: [number + ' þoras', '' + number + ' þoras'], - d: ["'n ziua", "'iensa ziua"], - dd: [number + ' ziuas', '' + number + ' ziuas'], - M: ["'n mes", "'iens mes"], - MM: [number + ' mesen', '' + number + ' mesen'], - y: ["'n ar", "'iens ar"], - yy: [number + ' ars', '' + number + ' ars'], - }; - return isFuture - ? format[key][0] - : withoutSuffix - ? format[key][0] - : format[key][1]; + return format; } - return tzl; + var defaultLongDateFormat = { + LTS: 'h:mm:ss A', + LT: 'h:mm A', + L: 'MM/DD/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }; -}))); + function longDateFormat(key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + if (format || !formatUpper) { + return format; + } -/***/ }), + this._longDateFormat[key] = formatUpper + .match(formattingTokens) + .map(function (tok) { + if ( + tok === 'MMMM' || + tok === 'MM' || + tok === 'DD' || + tok === 'dddd' + ) { + return tok.slice(1); + } + return tok; + }) + .join(''); -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzm-latn.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzm-latn.js ***! - \***************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + return this._longDateFormat[key]; + } -//! moment.js locale configuration -//! locale : Central Atlas Tamazight Latin [tzm-latn] -//! author : Abdel Said : https://github.com/abdelsaid + var defaultInvalidDate = 'Invalid date'; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function invalidDate() { + return this._invalidDate; + } - //! moment.js locale configuration + var defaultOrdinal = '%d', + defaultDayOfMonthOrdinalParse = /\d{1,2}/; - var tzmLatn = moment.defineLocale('tzm-latn', { - months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( - '_' - ), - monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( - '_' - ), - weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), - weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), - weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[asdkh g] LT', - nextDay: '[aska g] LT', - nextWeek: 'dddd [g] LT', - lastDay: '[assant g] LT', - lastWeek: 'dddd [g] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'dadkh s yan %s', - past: 'yan %s', - s: 'imik', - ss: '%d imik', - m: 'minuḍ', - mm: '%d minuḍ', - h: 'saɛa', - hh: '%d tassaɛin', - d: 'ass', - dd: '%d ossan', - M: 'ayowr', - MM: '%d iyyirn', - y: 'asgas', - yy: '%d isgasn', - }, - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); + function ordinal(number) { + return this._ordinal.replace('%d', number); + } - return tzmLatn; + var defaultRelativeTime = { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + w: 'a week', + ww: '%d weeks', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }; -}))); + function relativeTime(number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return isFunction(output) + ? output(number, withoutSuffix, string, isFuture) + : output.replace(/%d/i, number); + } + function pastFuture(diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); + } -/***/ }), + var aliases = {}; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzm.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzm.js ***! - \**********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function addUnitAlias(unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + } -//! moment.js locale configuration -//! locale : Central Atlas Tamazight [tzm] -//! author : Abdel Said : https://github.com/abdelsaid + function normalizeUnits(units) { + return typeof units === 'string' + ? aliases[units] || aliases[units.toLowerCase()] + : undefined; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; - //! moment.js locale configuration + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } - var tzm = moment.defineLocale('tzm', { - months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( - '_' - ), - monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( - '_' - ), - weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[ⴰⵙⴷⵅ ⴴ] LT', - nextDay: '[ⴰⵙⴽⴰ ⴴ] LT', - nextWeek: 'dddd [ⴴ] LT', - lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT', - lastWeek: 'dddd [ⴴ] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s', - past: 'ⵢⴰⵏ %s', - s: 'ⵉⵎⵉⴽ', - ss: '%d ⵉⵎⵉⴽ', - m: 'ⵎⵉⵏⵓⴺ', - mm: '%d ⵎⵉⵏⵓⴺ', - h: 'ⵙⴰⵄⴰ', - hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ', - d: 'ⴰⵙⵙ', - dd: '%d oⵙⵙⴰⵏ', - M: 'ⴰⵢoⵓⵔ', - MM: '%d ⵉⵢⵢⵉⵔⵏ', - y: 'ⴰⵙⴳⴰⵙ', - yy: '%d ⵉⵙⴳⴰⵙⵏ', - }, - week: { - dow: 6, // Saturday is the first day of the week. - doy: 12, // The week that contains Jan 12th is the first week of the year. - }, - }); + return normalizedInput; + } - return tzm; + var priorities = {}; -}))); + function addUnitPriority(unit, priority) { + priorities[unit] = priority; + } + function getPrioritizedUnits(unitsObj) { + var units = [], + u; + for (u in unitsObj) { + if (hasOwnProp(unitsObj, u)) { + units.push({ unit: u, priority: priorities[u] }); + } + } + units.sort(function (a, b) { + return a.priority - b.priority; + }); + return units; + } -/***/ }), + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ug-cn.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ug-cn.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function absFloor(number) { + if (number < 0) { + // -0 -> 0 + return Math.ceil(number) || 0; + } else { + return Math.floor(number); + } + } -//! moment.js locale configuration -//! locale : Uyghur (China) [ug-cn] -//! author: boyaq : https://github.com/boyaq + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } - //! moment.js locale configuration + return value; + } - var ugCn = moment.defineLocale('ug-cn', { - months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( - '_' - ), - monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( - '_' - ), - weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split( - '_' - ), - weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), - weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY-MM-DD', - LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى', - LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', - LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', - }, - meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; + function makeGetSet(unit, keepTime) { + return function (value) { + if (value != null) { + set$1(this, unit, value); + hooks.updateOffset(this, keepTime); + return this; + } else { + return get(this, unit); } + }; + } + + function get(mom, unit) { + return mom.isValid() + ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() + : NaN; + } + + function set$1(mom, unit, value) { + if (mom.isValid() && !isNaN(value)) { if ( - meridiem === 'يېرىم كېچە' || - meridiem === 'سەھەر' || - meridiem === 'چۈشتىن بۇرۇن' + unit === 'FullYear' && + isLeapYear(mom.year()) && + mom.month() === 1 && + mom.date() === 29 ) { - return hour; - } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') { - return hour + 12; - } else { - return hour >= 11 ? hour : hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return 'يېرىم كېچە'; - } else if (hm < 900) { - return 'سەھەر'; - } else if (hm < 1130) { - return 'چۈشتىن بۇرۇن'; - } else if (hm < 1230) { - return 'چۈش'; - } else if (hm < 1800) { - return 'چۈشتىن كېيىن'; + value = toInt(value); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit]( + value, + mom.month(), + daysInMonth(value, mom.month()) + ); } else { - return 'كەچ'; - } - }, - calendar: { - sameDay: '[بۈگۈن سائەت] LT', - nextDay: '[ئەتە سائەت] LT', - nextWeek: '[كېلەركى] dddd [سائەت] LT', - lastDay: '[تۆنۈگۈن] LT', - lastWeek: '[ئالدىنقى] dddd [سائەت] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s كېيىن', - past: '%s بۇرۇن', - s: 'نەچچە سېكونت', - ss: '%d سېكونت', - m: 'بىر مىنۇت', - mm: '%d مىنۇت', - h: 'بىر سائەت', - hh: '%d سائەت', - d: 'بىر كۈن', - dd: '%d كۈن', - M: 'بىر ئاي', - MM: '%d ئاي', - y: 'بىر يىل', - yy: '%d يىل', - }, - - dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '-كۈنى'; - case 'w': - case 'W': - return number + '-ھەپتە'; - default: - return number; + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); } - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week: { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 1st is the first week of the year. - }, - }); + } + } - return ugCn; + // MOMENTS -}))); + function stringGet(units) { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](); + } + return this; + } + function stringSet(units, value) { + if (typeof units === 'object') { + units = normalizeObjectUnits(units); + var prioritized = getPrioritizedUnits(units), + i, + prioritizedLen = prioritized.length; + for (i = 0; i < prioritizedLen; i++) { + this[prioritized[i].unit](units[prioritized[i].unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; + } -/***/ }), + var match1 = /\d/, // 0 - 9 + match2 = /\d\d/, // 00 - 99 + match3 = /\d{3}/, // 000 - 999 + match4 = /\d{4}/, // 0000 - 9999 + match6 = /[+-]?\d{6}/, // -999999 - 999999 + match1to2 = /\d\d?/, // 0 - 99 + match3to4 = /\d\d\d\d?/, // 999 - 9999 + match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 + match1to3 = /\d{1,3}/, // 0 - 999 + match1to4 = /\d{1,4}/, // 0 - 9999 + match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 + matchUnsigned = /\d+/, // 0 - inf + matchSigned = /[+-]?\d+/, // -inf - inf + matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z + matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z + matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + matchWord = + /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, + regexes; -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uk.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uk.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + regexes = {}; -//! moment.js locale configuration -//! locale : Ukrainian [uk] -//! author : zemlanin : https://github.com/zemlanin -//! Author : Menelion Elensúle : https://github.com/Oire + function addRegexToken(token, regex, strictRegex) { + regexes[token] = isFunction(regex) + ? regex + : function (isStrict, localeData) { + return isStrict && strictRegex ? strictRegex : regex; + }; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function getParseRegexForToken(token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } - //! moment.js locale configuration + return regexes[token](config._strict, config._locale); + } - function plural(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 - ? forms[0] - : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) - ? forms[1] - : forms[2]; + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return regexEscape( + s + .replace('\\', '') + .replace( + /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, + function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + } + ) + ); } - function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд', - mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', - hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин', - dd: 'день_дні_днів', - MM: 'місяць_місяці_місяців', - yy: 'рік_роки_років', - }; - if (key === 'm') { - return withoutSuffix ? 'хвилина' : 'хвилину'; - } else if (key === 'h') { - return withoutSuffix ? 'година' : 'годину'; - } else { - return number + ' ' + plural(format[key], +number); - } + + function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); } - function weekdaysCaseReplace(m, format) { - var weekdays = { - nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split( - '_' - ), - accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split( - '_' - ), - genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split( - '_' - ), - }, - nounCase; - if (m === true) { - return weekdays['nominative'] - .slice(1, 7) - .concat(weekdays['nominative'].slice(0, 1)); + var tokens = {}; + + function addParseToken(token, callback) { + var i, + func = callback, + tokenLen; + if (typeof token === 'string') { + token = [token]; } - if (!m) { - return weekdays['nominative']; + if (isNumber(callback)) { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + tokenLen = token.length; + for (i = 0; i < tokenLen; i++) { + tokens[token[i]] = func; } + } - nounCase = /(\[[ВвУу]\]) ?dddd/.test(format) - ? 'accusative' - : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format) - ? 'genitive' - : 'nominative'; - return weekdays[nounCase][m.day()]; + function addWeekParseToken(token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); } - function processHoursFunction(str) { - return function () { - return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; - }; + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } } - var uk = moment.defineLocale('uk', { - months: { - format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split( - '_' - ), - standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split( - '_' - ), - }, - monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split( - '_' - ), - weekdays: weekdaysCaseReplace, - weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D MMMM YYYY р.', - LLL: 'D MMMM YYYY р., HH:mm', - LLLL: 'dddd, D MMMM YYYY р., HH:mm', - }, - calendar: { - sameDay: processHoursFunction('[Сьогодні '), - nextDay: processHoursFunction('[Завтра '), - lastDay: processHoursFunction('[Вчора '), - nextWeek: processHoursFunction('[У] dddd ['), - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 5: - case 6: - return processHoursFunction('[Минулої] dddd [').call(this); - case 1: - case 2: - case 4: - return processHoursFunction('[Минулого] dddd [').call(this); + var YEAR = 0, + MONTH = 1, + DATE = 2, + HOUR = 3, + MINUTE = 4, + SECOND = 5, + MILLISECOND = 6, + WEEK = 7, + WEEKDAY = 8; + + function mod(n, x) { + return ((n % x) + x) % x; + } + + var indexOf; + + if (Array.prototype.indexOf) { + indexOf = Array.prototype.indexOf; + } else { + indexOf = function (o) { + // I know + var i; + for (i = 0; i < this.length; ++i) { + if (this[i] === o) { + return i; } - }, - sameElse: 'L', - }, - relativeTime: { - future: 'за %s', - past: '%s тому', - s: 'декілька секунд', - ss: relativeTimeWithPlural, - m: relativeTimeWithPlural, - mm: relativeTimeWithPlural, - h: 'годину', - hh: relativeTimeWithPlural, - d: 'день', - dd: relativeTimeWithPlural, - M: 'місяць', - MM: relativeTimeWithPlural, - y: 'рік', - yy: relativeTimeWithPlural, - }, - // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason - meridiemParse: /ночі|ранку|дня|вечора/, - isPM: function (input) { - return /^(дня|вечора)$/.test(input); - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'ночі'; - } else if (hour < 12) { - return 'ранку'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечора'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - case 'w': - case 'W': - return number + '-й'; - case 'D': - return number + '-го'; - default: - return number; } - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, + return -1; + }; + } + + function daysInMonth(year, month) { + if (isNaN(year) || isNaN(month)) { + return NaN; + } + var modMonth = mod(month, 12); + year += (month - modMonth) / 12; + return modMonth === 1 + ? isLeapYear(year) + ? 29 + : 28 + : 31 - ((modMonth % 7) % 2); + } + + // FORMATTING + + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; }); - return uk; + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); -}))); + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); + // ALIASES -/***/ }), + addUnitAlias('month', 'M'); -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ur.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ur.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + // PRIORITY -//! moment.js locale configuration -//! locale : Urdu [ur] -//! author : Sawood Alam : https://github.com/ibnesayeed -//! author : Zack : https://github.com/ZackVision + addUnitPriority('month', 8); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // PARSING - //! moment.js locale configuration + addRegexToken('M', match1to2); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); + }); + addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); + }); - var months = [ - 'جنوری', - 'فروری', - 'مارچ', - 'اپریل', - 'مئی', - 'جون', - 'جولائی', - 'اگست', - 'ستمبر', - 'اکتوبر', - 'نومبر', - 'دسمبر', - ], - days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ']; + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); - var ur = moment.defineLocale('ur', { - months: months, - monthsShort: months, - weekdays: days, - weekdaysShort: days, - weekdaysMin: days, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd، D MMMM YYYY HH:mm', - }, - meridiemParse: /صبح|شام/, - isPM: function (input) { - return 'شام' === input; - }, - meridiem: function (hour, minute, isLower) { - if (hour < 12) { - return 'صبح'; - } - return 'شام'; - }, - calendar: { - sameDay: '[آج بوقت] LT', - nextDay: '[کل بوقت] LT', - nextWeek: 'dddd [بوقت] LT', - lastDay: '[گذشتہ روز بوقت] LT', - lastWeek: '[گذشتہ] dddd [بوقت] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s بعد', - past: '%s قبل', - s: 'چند سیکنڈ', - ss: '%d سیکنڈ', - m: 'ایک منٹ', - mm: '%d منٹ', - h: 'ایک گھنٹہ', - hh: '%d گھنٹے', - d: 'ایک دن', - dd: '%d دن', - M: 'ایک ماہ', - MM: '%d ماہ', - y: 'ایک سال', - yy: '%d سال', - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } }); - return ur; + // LOCALES -}))); + var defaultLocaleMonths = + 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + defaultLocaleMonthsShort = + 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, + defaultMonthsShortRegex = matchWord, + defaultMonthsRegex = matchWord; + function localeMonths(m, format) { + if (!m) { + return isArray(this._months) + ? this._months + : this._months['standalone']; + } + return isArray(this._months) + ? this._months[m.month()] + : this._months[ + (this._months.isFormat || MONTHS_IN_FORMAT).test(format) + ? 'format' + : 'standalone' + ][m.month()]; + } -/***/ }), + function localeMonthsShort(m, format) { + if (!m) { + return isArray(this._monthsShort) + ? this._monthsShort + : this._monthsShort['standalone']; + } + return isArray(this._monthsShort) + ? this._monthsShort[m.month()] + : this._monthsShort[ + MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone' + ][m.month()]; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uz-latn.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uz-latn.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function handleStrictParse(monthName, format, strict) { + var i, + ii, + mom, + llc = monthName.toLocaleLowerCase(); + if (!this._monthsParse) { + // this is not used + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + for (i = 0; i < 12; ++i) { + mom = createUTC([2000, i]); + this._shortMonthsParse[i] = this.monthsShort( + mom, + '' + ).toLocaleLowerCase(); + this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); + } + } -//! moment.js locale configuration -//! locale : Uzbek Latin [uz-latn] -//! author : Rasulbek Mirzayev : github.com/Rasulbeeek + if (strict) { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function localeMonthsParse(monthName, format, strict) { + var i, mom, regex; - //! moment.js locale configuration + if (this._monthsParseExact) { + return handleStrictParse.call(this, monthName, format, strict); + } - var uzLatn = moment.defineLocale('uz-latn', { - months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( - '_' - ), - monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), - weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( - '_' - ), - weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), - weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'D MMMM YYYY, dddd HH:mm', - }, - calendar: { - sameDay: '[Bugun soat] LT [da]', - nextDay: '[Ertaga] LT [da]', - nextWeek: 'dddd [kuni soat] LT [da]', - lastDay: '[Kecha soat] LT [da]', - lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", - sameElse: 'L', - }, - relativeTime: { - future: 'Yaqin %s ichida', - past: 'Bir necha %s oldin', - s: 'soniya', - ss: '%d soniya', - m: 'bir daqiqa', - mm: '%d daqiqa', - h: 'bir soat', - hh: '%d soat', - d: 'bir kun', - dd: '%d kun', - M: 'bir oy', - MM: '%d oy', - y: 'bir yil', - yy: '%d yil', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 7th is the first week of the year. - }, - }); + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } - return uzLatn; + // TODO: add sorting + // Sorting makes sure if one month (or abbr) is a prefix of another + // see sorting in computeMonthsParse + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp( + '^' + this.months(mom, '').replace('.', '') + '$', + 'i' + ); + this._shortMonthsParse[i] = new RegExp( + '^' + this.monthsShort(mom, '').replace('.', '') + '$', + 'i' + ); + } + if (!strict && !this._monthsParse[i]) { + regex = + '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'MMMM' && + this._longMonthsParse[i].test(monthName) + ) { + return i; + } else if ( + strict && + format === 'MMM' && + this._shortMonthsParse[i].test(monthName) + ) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } + } -}))); + // MOMENTS + function setMonth(mom, value) { + var dayOfMonth; -/***/ }), + if (!mom.isValid()) { + // No op + return mom; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uz.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uz.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + if (typeof value === 'string') { + if (/^\d+$/.test(value)) { + value = toInt(value); + } else { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (!isNumber(value)) { + return mom; + } + } + } -//! moment.js locale configuration -//! locale : Uzbek [uz] -//! author : Sardor Muminov : https://github.com/muminoff + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function getSetMonth(value) { + if (value != null) { + setMonth(this, value); + hooks.updateOffset(this, true); + return this; + } else { + return get(this, 'Month'); + } + } - //! moment.js locale configuration + function getDaysInMonth() { + return daysInMonth(this.year(), this.month()); + } - var uz = moment.defineLocale('uz', { - months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( - '_' - ), - monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), - weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), - weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), - weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'D MMMM YYYY, dddd HH:mm', - }, - calendar: { - sameDay: '[Бугун соат] LT [да]', - nextDay: '[Эртага] LT [да]', - nextWeek: 'dddd [куни соат] LT [да]', - lastDay: '[Кеча соат] LT [да]', - lastWeek: '[Утган] dddd [куни соат] LT [да]', - sameElse: 'L', - }, - relativeTime: { - future: 'Якин %s ичида', - past: 'Бир неча %s олдин', - s: 'фурсат', - ss: '%d фурсат', - m: 'бир дакика', - mm: '%d дакика', - h: 'бир соат', - hh: '%d соат', - d: 'бир кун', - dd: '%d кун', - M: 'бир ой', - MM: '%d ой', - y: 'бир йил', - yy: '%d йил', - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 7, // The week that contains Jan 4th is the first week of the year. - }, + function monthsShortRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + if (!hasOwnProp(this, '_monthsShortRegex')) { + this._monthsShortRegex = defaultMonthsShortRegex; + } + return this._monthsShortStrictRegex && isStrict + ? this._monthsShortStrictRegex + : this._monthsShortRegex; + } + } + + function monthsRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + if (!hasOwnProp(this, '_monthsRegex')) { + this._monthsRegex = defaultMonthsRegex; + } + return this._monthsStrictRegex && isStrict + ? this._monthsStrictRegex + : this._monthsRegex; + } + } + + function computeMonthsParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + shortPieces.push(this.monthsShort(mom, '')); + longPieces.push(this.months(mom, '')); + mixedPieces.push(this.months(mom, '')); + mixedPieces.push(this.monthsShort(mom, '')); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 12; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + } + for (i = 0; i < 24; i++) { + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._monthsShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + } + + // FORMATTING + + addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? zeroFill(y, 4) : '+' + y; + }); + + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; }); - return uz; + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + + // ALIASES + + addUnitAlias('year', 'y'); -}))); + // PRIORITIES + addUnitPriority('year', 1); -/***/ }), + // PARSING -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/vi.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/vi.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); -//! moment.js locale configuration -//! locale : Vietnamese [vi] -//! author : Bang Nguyen : https://github.com/bangnk -//! author : Chien Kira : https://github.com/chienkira + addParseToken(['YYYYY', 'YYYYYY'], YEAR); + addParseToken('YYYY', function (input, array) { + array[YEAR] = + input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken('YY', function (input, array) { + array[YEAR] = hooks.parseTwoDigitYear(input); + }); + addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); + }); -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // HELPERS - //! moment.js locale configuration + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } - var vi = moment.defineLocale('vi', { - months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split( - '_' - ), - monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split( - '_' - ), - weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), - weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), - weekdaysParseExact: true, - meridiemParse: /sa|ch/i, - isPM: function (input) { - return /^ch$/i.test(input); - }, - meridiem: function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'sa' : 'SA'; - } else { - return isLower ? 'ch' : 'CH'; - } - }, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM [năm] YYYY', - LLL: 'D MMMM [năm] YYYY HH:mm', - LLLL: 'dddd, D MMMM [năm] YYYY HH:mm', - l: 'DD/M/YYYY', - ll: 'D MMM YYYY', - lll: 'D MMM YYYY HH:mm', - llll: 'ddd, D MMM YYYY HH:mm', - }, - calendar: { - sameDay: '[Hôm nay lúc] LT', - nextDay: '[Ngày mai lúc] LT', - nextWeek: 'dddd [tuần tới lúc] LT', - lastDay: '[Hôm qua lúc] LT', - lastWeek: 'dddd [tuần trước lúc] LT', - sameElse: 'L', - }, - relativeTime: { - future: '%s tới', - past: '%s trước', - s: 'vài giây', - ss: '%d giây', - m: 'một phút', - mm: '%d phút', - h: 'một giờ', - hh: '%d giờ', - d: 'một ngày', - dd: '%d ngày', - w: 'một tuần', - ww: '%d tuần', - M: 'một tháng', - MM: '%d tháng', - y: 'một năm', - yy: '%d năm', - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal: function (number) { - return number; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + // HOOKS - return vi; + hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; -}))); + // MOMENTS + var getSetYear = makeGetSet('FullYear', true); -/***/ }), + function getIsLeapYear() { + return isLeapYear(this.year()); + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/x-pseudo.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/x-pseudo.js ***! - \***************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function createDate(y, m, d, h, M, s, ms) { + // can't just apply() to create a date: + // https://stackoverflow.com/q/181348 + var date; + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + date = new Date(y + 400, m, d, h, M, s, ms); + if (isFinite(date.getFullYear())) { + date.setFullYear(y); + } + } else { + date = new Date(y, m, d, h, M, s, ms); + } -//! moment.js locale configuration -//! locale : Pseudo [x-pseudo] -//! author : Andrew Hood : https://github.com/andrewhood125 + return date; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + function createUTCDate(y) { + var date, args; + // the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + args = Array.prototype.slice.call(arguments); + // preserve leap years using a full 400 year cycle, then reset + args[0] = y + 400; + date = new Date(Date.UTC.apply(null, args)); + if (isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + } else { + date = new Date(Date.UTC.apply(null, arguments)); + } - //! moment.js locale configuration + return date; + } - var xPseudo = moment.defineLocale('x-pseudo', { - months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split( - '_' - ), - monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split( - '_' - ), - monthsParseExact: true, - weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split( - '_' - ), - weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'), - weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), - weekdaysParseExact: true, - longDateFormat: { - LT: 'HH:mm', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm', - }, - calendar: { - sameDay: '[T~ódá~ý át] LT', - nextDay: '[T~ómó~rró~w át] LT', - nextWeek: 'dddd [át] LT', - lastDay: '[Ý~ést~érdá~ý át] LT', - lastWeek: '[L~ást] dddd [át] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'í~ñ %s', - past: '%s á~gó', - s: 'á ~féw ~sécó~ñds', - ss: '%d s~écóñ~ds', - m: 'á ~míñ~úté', - mm: '%d m~íñú~tés', - h: 'á~ñ hó~úr', - hh: '%d h~óúrs', - d: 'á ~dáý', - dd: '%d d~áýs', - M: 'á ~móñ~th', - MM: '%d m~óñt~hs', - y: 'á ~ýéár', - yy: '%d ý~éárs', - }, - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal: function (number) { - var b = number % 10, - output = - ~~((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + // start-of-first-week - start-of-year + function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; - return xPseudo; + return -fwdlw + fwd - 1; + } -}))); + // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, + resDayOfYear; + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } -/***/ }), + return { + year: resYear, + dayOfYear: resDayOfYear, + }; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/yo.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/yo.js ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, + resYear; -//! moment.js locale configuration -//! locale : Yoruba Nigeria [yo] -//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + return { + week: resWeek, + year: resYear, + }; + } - //! moment.js locale configuration + function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; + } - var yo = moment.defineLocale('yo', { - months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split( - '_' - ), - monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), - weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), - weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), - weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), - longDateFormat: { - LT: 'h:mm A', - LTS: 'h:mm:ss A', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY h:mm A', - LLLL: 'dddd, D MMMM YYYY h:mm A', - }, - calendar: { - sameDay: '[Ònì ni] LT', - nextDay: '[Ọ̀la ni] LT', - nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT", - lastDay: '[Àna ni] LT', - lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT', - sameElse: 'L', - }, - relativeTime: { - future: 'ní %s', - past: '%s kọjá', - s: 'ìsẹjú aayá die', - ss: 'aayá %d', - m: 'ìsẹjú kan', - mm: 'ìsẹjú %d', - h: 'wákati kan', - hh: 'wákati %d', - d: 'ọjọ́ kan', - dd: 'ọjọ́ %d', - M: 'osù kan', - MM: 'osù %d', - y: 'ọdún kan', - yy: 'ọdún %d', - }, - dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/, - ordinal: 'ọjọ́ %d', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + // FORMATTING - return yo; + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); -}))); + // ALIASES + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); -/***/ }), + // PRIORITIES -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-cn.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-cn.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + addUnitPriority('week', 5); + addUnitPriority('isoWeek', 5); -//! moment.js locale configuration -//! locale : Chinese (China) [zh-cn] -//! author : suupic : https://github.com/suupic -//! author : Zeno Zeng : https://github.com/zenozeng -//! author : uu109 : https://github.com/uu109 + // PARSING -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); - //! moment.js locale configuration + addWeekParseToken( + ['w', 'ww', 'W', 'WW'], + function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + } + ); - var zhCn = moment.defineLocale('zh-cn', { - months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( - '_' - ), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( - '_' - ), - weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'), - weekdaysMin: '日_一_二_三_四_五_六'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日Ah点mm分', - LLLL: 'YYYY年M月D日ddddAh点mm分', - l: 'YYYY/M/D', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日dddd HH:mm', - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } else { - // '中午' - return hour >= 11 ? hour : hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar: { - sameDay: '[今天]LT', - nextDay: '[明天]LT', - nextWeek: function (now) { - if (now.week() !== this.week()) { - return '[下]dddLT'; - } else { - return '[本]dddLT'; - } - }, - lastDay: '[昨天]LT', - lastWeek: function (now) { - if (this.week() !== now.week()) { - return '[上]dddLT'; - } else { - return '[本]dddLT'; - } - }, - sameElse: 'L', - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '周'; - default: - return number; - } - }, - relativeTime: { - future: '%s后', - past: '%s前', - s: '几秒', - ss: '%d 秒', - m: '1 分钟', - mm: '%d 分钟', - h: '1 小时', - hh: '%d 小时', - d: '1 天', - dd: '%d 天', - w: '1 周', - ww: '%d 周', - M: '1 个月', - MM: '%d 个月', - y: '1 年', - yy: '%d 年', - }, - week: { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow: 1, // Monday is the first day of the week. - doy: 4, // The week that contains Jan 4th is the first week of the year. - }, - }); + // HELPERS - return zhCn; + // LOCALES -}))); + function localeWeek(mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + var defaultLocaleWeek = { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }; -/***/ }), + function localeFirstDayOfWeek() { + return this._week.dow; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-hk.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-hk.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + function localeFirstDayOfYear() { + return this._week.doy; + } -//! moment.js locale configuration -//! locale : Chinese (Hong Kong) [zh-hk] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris -//! author : Konstantin : https://github.com/skfd -//! author : Anthony : https://github.com/anthonylau + // MOMENTS + + function getSetWeek(input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek(input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + // FORMATTING -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + addFormatToken('d', 0, 'do', 'day'); - //! moment.js locale configuration + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); - var zhHk = moment.defineLocale('zh-hk', { - months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( - '_' - ), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( - '_' - ), - weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), - weekdaysMin: '日_一_二_三_四_五_六'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日 HH:mm', - LLLL: 'YYYY年M月D日dddd HH:mm', - l: 'YYYY/M/D', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日dddd HH:mm', - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1200) { - return '上午'; - } else if (hm === 1200) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar: { - sameDay: '[今天]LT', - nextDay: '[明天]LT', - nextWeek: '[下]ddddLT', - lastDay: '[昨天]LT', - lastWeek: '[上]ddddLT', - sameElse: 'L', - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '週'; - default: - return number; - } - }, - relativeTime: { - future: '%s後', - past: '%s前', - s: '幾秒', - ss: '%d 秒', - m: '1 分鐘', - mm: '%d 分鐘', - h: '1 小時', - hh: '%d 小時', - d: '1 天', - dd: '%d 天', - M: '1 個月', - MM: '%d 個月', - y: '1 年', - yy: '%d 年', - }, + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); }); - return zhHk; + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); -}))); + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + // ALIASES -/***/ }), + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-mo.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-mo.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + // PRIORITY + addUnitPriority('day', 11); + addUnitPriority('weekday', 11); + addUnitPriority('isoWeekday', 11); -//! moment.js locale configuration -//! locale : Chinese (Macau) [zh-mo] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris -//! author : Tan Yuanhong : https://github.com/le0tan + // PARSING -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', function (isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); + }); + addRegexToken('ddd', function (isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); + }); + addRegexToken('dddd', function (isStrict, locale) { + return locale.weekdaysRegex(isStrict); + }); - //! moment.js locale configuration + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); - var zhMo = moment.defineLocale('zh-mo', { - months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( - '_' - ), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( - '_' - ), - weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), - weekdaysMin: '日_一_二_三_四_五_六'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日 HH:mm', - LLLL: 'YYYY年M月D日dddd HH:mm', - l: 'D/M/YYYY', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日dddd HH:mm', - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar: { - sameDay: '[今天] LT', - nextDay: '[明天] LT', - nextWeek: '[下]dddd LT', - lastDay: '[昨天] LT', - lastWeek: '[上]dddd LT', - sameElse: 'L', - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '週'; - default: - return number; - } - }, - relativeTime: { - future: '%s內', - past: '%s前', - s: '幾秒', - ss: '%d 秒', - m: '1 分鐘', - mm: '%d 分鐘', - h: '1 小時', - hh: '%d 小時', - d: '1 天', - dd: '%d 天', - M: '1 個月', - MM: '%d 個月', - y: '1 年', - yy: '%d 年', - }, + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); }); - return zhMo; + // HELPERS -}))); + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + if (!isNaN(input)) { + return parseInt(input, 10); + } -/***/ }), + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-tw.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-tw.js ***! - \************************************************************************************************/ -/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + return null; + } -//! moment.js locale configuration -//! locale : Chinese (Taiwan) [zh-tw] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris + function parseIsoWeekday(input, locale) { + if (typeof input === 'string') { + return locale.weekdaysParse(input) % 7 || 7; + } + return isNaN(input) ? null : input; + } -;(function (global, factory) { - true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js")) : - 0 -}(this, (function (moment) { 'use strict'; + // LOCALES + function shiftWeekdays(ws, n) { + return ws.slice(n, 7).concat(ws.slice(0, n)); + } - //! moment.js locale configuration + var defaultLocaleWeekdays = + 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + defaultWeekdaysRegex = matchWord, + defaultWeekdaysShortRegex = matchWord, + defaultWeekdaysMinRegex = matchWord; - var zhTw = moment.defineLocale('zh-tw', { - months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( - '_' - ), - monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( - '_' - ), - weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), - weekdaysMin: '日_一_二_三_四_五_六'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'YYYY/MM/DD', - LL: 'YYYY年M月D日', - LLL: 'YYYY年M月D日 HH:mm', - LLLL: 'YYYY年M月D日dddd HH:mm', - l: 'YYYY/M/D', - ll: 'YYYY年M月D日', - lll: 'YYYY年M月D日 HH:mm', - llll: 'YYYY年M月D日dddd HH:mm', - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; + function localeWeekdays(m, format) { + var weekdays = isArray(this._weekdays) + ? this._weekdays + : this._weekdays[ + m && m !== true && this._weekdays.isFormat.test(format) + ? 'format' + : 'standalone' + ]; + return m === true + ? shiftWeekdays(weekdays, this._week.dow) + : m + ? weekdays[m.day()] + : weekdays; + } + + function localeWeekdaysShort(m) { + return m === true + ? shiftWeekdays(this._weekdaysShort, this._week.dow) + : m + ? this._weekdaysShort[m.day()] + : this._weekdaysShort; + } + + function localeWeekdaysMin(m) { + return m === true + ? shiftWeekdays(this._weekdaysMin, this._week.dow) + : m + ? this._weekdaysMin[m.day()] + : this._weekdaysMin; + } + + function handleStrictParse$1(weekdayName, format, strict) { + var i, + ii, + mom, + llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; + + for (i = 0; i < 7; ++i) { + mom = createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin( + mom, + '' + ).toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort( + mom, + '' + ).toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); } - }, - meridiem: function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; + } + + if (strict) { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; } else { - return '晚上'; + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; } - }, - calendar: { - sameDay: '[今天] LT', - nextDay: '[明天] LT', - nextWeek: '[下]dddd LT', - lastDay: '[昨天] LT', - lastWeek: '[上]dddd LT', - sameElse: 'L', - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '週'; - default: - return number; + } else { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; } - }, - relativeTime: { - future: '%s後', - past: '%s前', - s: '幾秒', - ss: '%d 秒', - m: '1 分鐘', - mm: '%d 分鐘', - h: '1 小時', - hh: '%d 小時', - d: '1 天', - dd: '%d 天', - M: '1 個月', - MM: '%d 個月', - y: '1 年', - yy: '%d 年', - }, - }); + } + } - return zhTw; + function localeWeekdaysParse(weekdayName, format, strict) { + var i, mom, regex; -}))); + if (this._weekdaysParseExact) { + return handleStrictParse$1.call(this, weekdayName, format, strict); + } + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp( + '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._shortWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._minWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + } + if (!this._weekdaysParse[i]) { + regex = + '^' + + this.weekdays(mom, '') + + '|^' + + this.weekdaysShort(mom, '') + + '|^' + + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'dddd' && + this._fullWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'ddd' && + this._shortWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'dd' && + this._minWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } -/***/ }), + // MOMENTS -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale sync recursive ^\\.\\/.*$": -/*!******************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ sync ^\.\/.*$ ***! - \******************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + function getSetDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } -var map = { - "./af": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/af.js", - "./af.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/af.js", - "./ar": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar.js", - "./ar-dz": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-dz.js", - "./ar-dz.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-dz.js", - "./ar-kw": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-kw.js", - "./ar-kw.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-kw.js", - "./ar-ly": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-ly.js", - "./ar-ly.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-ly.js", - "./ar-ma": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-ma.js", - "./ar-ma.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-ma.js", - "./ar-sa": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-sa.js", - "./ar-sa.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-sa.js", - "./ar-tn": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-tn.js", - "./ar-tn.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-tn.js", - "./ar.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar.js", - "./az": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/az.js", - "./az.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/az.js", - "./be": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/be.js", - "./be.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/be.js", - "./bg": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bg.js", - "./bg.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bg.js", - "./bm": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bm.js", - "./bm.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bm.js", - "./bn": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bn.js", - "./bn-bd": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bn-bd.js", - "./bn-bd.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bn-bd.js", - "./bn.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bn.js", - "./bo": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bo.js", - "./bo.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bo.js", - "./br": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/br.js", - "./br.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/br.js", - "./bs": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bs.js", - "./bs.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bs.js", - "./ca": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ca.js", - "./ca.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ca.js", - "./cs": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cs.js", - "./cs.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cs.js", - "./cv": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cv.js", - "./cv.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cv.js", - "./cy": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cy.js", - "./cy.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cy.js", - "./da": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/da.js", - "./da.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/da.js", - "./de": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de.js", - "./de-at": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de-at.js", - "./de-at.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de-at.js", - "./de-ch": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de-ch.js", - "./de-ch.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de-ch.js", - "./de.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de.js", - "./dv": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/dv.js", - "./dv.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/dv.js", - "./el": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/el.js", - "./el.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/el.js", - "./en-au": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-au.js", - "./en-au.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-au.js", - "./en-ca": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-ca.js", - "./en-ca.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-ca.js", - "./en-gb": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-gb.js", - "./en-gb.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-gb.js", - "./en-ie": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-ie.js", - "./en-ie.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-ie.js", - "./en-il": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-il.js", - "./en-il.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-il.js", - "./en-in": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-in.js", - "./en-in.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-in.js", - "./en-nz": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-nz.js", - "./en-nz.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-nz.js", - "./en-sg": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-sg.js", - "./en-sg.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-sg.js", - "./eo": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/eo.js", - "./eo.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/eo.js", - "./es": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es.js", - "./es-do": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-do.js", - "./es-do.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-do.js", - "./es-mx": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-mx.js", - "./es-mx.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-mx.js", - "./es-us": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-us.js", - "./es-us.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-us.js", - "./es.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es.js", - "./et": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/et.js", - "./et.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/et.js", - "./eu": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/eu.js", - "./eu.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/eu.js", - "./fa": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fa.js", - "./fa.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fa.js", - "./fi": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fi.js", - "./fi.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fi.js", - "./fil": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fil.js", - "./fil.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fil.js", - "./fo": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fo.js", - "./fo.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fo.js", - "./fr": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr.js", - "./fr-ca": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr-ca.js", - "./fr-ca.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr-ca.js", - "./fr-ch": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr-ch.js", - "./fr-ch.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr-ch.js", - "./fr.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr.js", - "./fy": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fy.js", - "./fy.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fy.js", - "./ga": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ga.js", - "./ga.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ga.js", - "./gd": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gd.js", - "./gd.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gd.js", - "./gl": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gl.js", - "./gl.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gl.js", - "./gom-deva": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gom-deva.js", - "./gom-deva.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gom-deva.js", - "./gom-latn": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gom-latn.js", - "./gom-latn.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gom-latn.js", - "./gu": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gu.js", - "./gu.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gu.js", - "./he": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/he.js", - "./he.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/he.js", - "./hi": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hi.js", - "./hi.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hi.js", - "./hr": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hr.js", - "./hr.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hr.js", - "./hu": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hu.js", - "./hu.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hu.js", - "./hy-am": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hy-am.js", - "./hy-am.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hy-am.js", - "./id": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/id.js", - "./id.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/id.js", - "./is": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/is.js", - "./is.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/is.js", - "./it": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/it.js", - "./it-ch": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/it-ch.js", - "./it-ch.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/it-ch.js", - "./it.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/it.js", - "./ja": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ja.js", - "./ja.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ja.js", - "./jv": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/jv.js", - "./jv.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/jv.js", - "./ka": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ka.js", - "./ka.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ka.js", - "./kk": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/kk.js", - "./kk.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/kk.js", - "./km": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/km.js", - "./km.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/km.js", - "./kn": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/kn.js", - "./kn.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/kn.js", - "./ko": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ko.js", - "./ko.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ko.js", - "./ku": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ku.js", - "./ku.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ku.js", - "./ky": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ky.js", - "./ky.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ky.js", - "./lb": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lb.js", - "./lb.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lb.js", - "./lo": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lo.js", - "./lo.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lo.js", - "./lt": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lt.js", - "./lt.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lt.js", - "./lv": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lv.js", - "./lv.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lv.js", - "./me": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/me.js", - "./me.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/me.js", - "./mi": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mi.js", - "./mi.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mi.js", - "./mk": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mk.js", - "./mk.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mk.js", - "./ml": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ml.js", - "./ml.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ml.js", - "./mn": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mn.js", - "./mn.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mn.js", - "./mr": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mr.js", - "./mr.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mr.js", - "./ms": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ms.js", - "./ms-my": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ms-my.js", - "./ms-my.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ms-my.js", - "./ms.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ms.js", - "./mt": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mt.js", - "./mt.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mt.js", - "./my": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/my.js", - "./my.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/my.js", - "./nb": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nb.js", - "./nb.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nb.js", - "./ne": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ne.js", - "./ne.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ne.js", - "./nl": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nl.js", - "./nl-be": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nl-be.js", - "./nl-be.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nl-be.js", - "./nl.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nl.js", - "./nn": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nn.js", - "./nn.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nn.js", - "./oc-lnc": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/oc-lnc.js", - "./oc-lnc.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/oc-lnc.js", - "./pa-in": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pa-in.js", - "./pa-in.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pa-in.js", - "./pl": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pl.js", - "./pl.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pl.js", - "./pt": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pt.js", - "./pt-br": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pt-br.js", - "./pt-br.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pt-br.js", - "./pt.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pt.js", - "./ro": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ro.js", - "./ro.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ro.js", - "./ru": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ru.js", - "./ru.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ru.js", - "./sd": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sd.js", - "./sd.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sd.js", - "./se": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/se.js", - "./se.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/se.js", - "./si": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/si.js", - "./si.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/si.js", - "./sk": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sk.js", - "./sk.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sk.js", - "./sl": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sl.js", - "./sl.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sl.js", - "./sq": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sq.js", - "./sq.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sq.js", - "./sr": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sr.js", - "./sr-cyrl": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sr-cyrl.js", - "./sr-cyrl.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sr-cyrl.js", - "./sr.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sr.js", - "./ss": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ss.js", - "./ss.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ss.js", - "./sv": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sv.js", - "./sv.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sv.js", - "./sw": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sw.js", - "./sw.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sw.js", - "./ta": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ta.js", - "./ta.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ta.js", - "./te": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/te.js", - "./te.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/te.js", - "./tet": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tet.js", - "./tet.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tet.js", - "./tg": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tg.js", - "./tg.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tg.js", - "./th": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/th.js", - "./th.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/th.js", - "./tk": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tk.js", - "./tk.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tk.js", - "./tl-ph": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tl-ph.js", - "./tl-ph.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tl-ph.js", - "./tlh": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tlh.js", - "./tlh.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tlh.js", - "./tr": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tr.js", - "./tr.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tr.js", - "./tzl": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzl.js", - "./tzl.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzl.js", - "./tzm": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzm.js", - "./tzm-latn": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzm-latn.js", - "./tzm-latn.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzm-latn.js", - "./tzm.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzm.js", - "./ug-cn": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ug-cn.js", - "./ug-cn.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ug-cn.js", - "./uk": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uk.js", - "./uk.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uk.js", - "./ur": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ur.js", - "./ur.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ur.js", - "./uz": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uz.js", - "./uz-latn": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uz-latn.js", - "./uz-latn.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uz-latn.js", - "./uz.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uz.js", - "./vi": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/vi.js", - "./vi.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/vi.js", - "./x-pseudo": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/x-pseudo.js", - "./x-pseudo.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/x-pseudo.js", - "./yo": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/yo.js", - "./yo.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/yo.js", - "./zh-cn": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-cn.js", - "./zh-cn.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-cn.js", - "./zh-hk": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-hk.js", - "./zh-hk.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-hk.js", - "./zh-mo": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-mo.js", - "./zh-mo.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-mo.js", - "./zh-tw": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-tw.js", - "./zh-tw.js": "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-tw.js" -}; + function getSetLocaleDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + function getSetISODayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } -function webpackContext(req) { - var id = webpackContextResolve(req); - return __webpack_require__(id); -} -function webpackContextResolve(req) { - if(!__webpack_require__.o(map, req)) { - var e = new Error("Cannot find module '" + req + "'"); - e.code = 'MODULE_NOT_FOUND'; - throw e; - } - return map[req]; -} -webpackContext.keys = function webpackContextKeys() { - return Object.keys(map); -}; -webpackContext.resolve = webpackContextResolve; -module.exports = webpackContext; -webpackContext.id = "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale sync recursive ^\\.\\/.*$"; + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. -/***/ }), + if (input != null) { + var weekday = parseIsoWeekday(input, this.localeData()); + return this.day(this.day() % 7 ? weekday : weekday - 7); + } else { + return this.day() || 7; + } + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js ***! - \******************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + function weekdaysRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; + } else { + return this._weekdaysRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysRegex')) { + this._weekdaysRegex = defaultWeekdaysRegex; + } + return this._weekdaysStrictRegex && isStrict + ? this._weekdaysStrictRegex + : this._weekdaysRegex; + } + } -/* module decorator */ module = __webpack_require__.nmd(module); -//! moment.js -//! version : 2.29.1 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com + function weekdaysShortRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysShortRegex')) { + this._weekdaysShortRegex = defaultWeekdaysShortRegex; + } + return this._weekdaysShortStrictRegex && isStrict + ? this._weekdaysShortStrictRegex + : this._weekdaysShortRegex; + } + } -;(function (global, factory) { - true ? module.exports = factory() : - 0 -}(this, (function () { 'use strict'; + function weekdaysMinRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysMinRegex')) { + this._weekdaysMinRegex = defaultWeekdaysMinRegex; + } + return this._weekdaysMinStrictRegex && isStrict + ? this._weekdaysMinStrictRegex + : this._weekdaysMinRegex; + } + } - var hookCallback; + function computeWeekdaysParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } - function hooks() { - return hookCallback.apply(null, arguments); - } + var minPieces = [], + shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom, + minp, + shortp, + longp; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, 1]).day(i); + minp = regexEscape(this.weekdaysMin(mom, '')); + shortp = regexEscape(this.weekdaysShort(mom, '')); + longp = regexEscape(this.weekdays(mom, '')); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + // Sorting makes sure if one weekday (or abbr) is a prefix of another it + // will match the longer piece. + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); - // This is done to register the method called with moment() - // without creating circular dependencies. - function setHookCallback(callback) { - hookCallback = callback; - } + this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; - function isArray(input) { - return ( - input instanceof Array || - Object.prototype.toString.call(input) === '[object Array]' + this._weekdaysStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' ); - } - - function isObject(input) { - // IE8 will treat undefined and null as object if it wasn't for - // input != null - return ( - input != null && - Object.prototype.toString.call(input) === '[object Object]' + this._weekdaysShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + this._weekdaysMinStrictRegex = new RegExp( + '^(' + minPieces.join('|') + ')', + 'i' ); } - function hasOwnProp(a, b) { - return Object.prototype.hasOwnProperty.call(a, b); - } + // FORMATTING - function isObjectEmpty(obj) { - if (Object.getOwnPropertyNames) { - return Object.getOwnPropertyNames(obj).length === 0; - } else { - var k; - for (k in obj) { - if (hasOwnProp(obj, k)) { - return false; - } - } - return true; - } + function hFormat() { + return this.hours() % 12 || 12; } - function isUndefined(input) { - return input === void 0; + function kFormat() { + return this.hours() || 24; } - function isNumber(input) { + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, hFormat); + addFormatToken('k', ['kk', 2], 0, kFormat); + + addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); + }); + + addFormatToken('hmmss', 0, 0, function () { return ( - typeof input === 'number' || - Object.prototype.toString.call(input) === '[object Number]' + '' + + hFormat.apply(this) + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) ); - } + }); - function isDate(input) { + addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); + }); + + addFormatToken('Hmmss', 0, 0, function () { return ( - input instanceof Date || - Object.prototype.toString.call(input) === '[object Date]' + '' + + this.hours() + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) ); - } + }); - function map(arr, fn) { - var res = [], - i; - for (i = 0; i < arr.length; ++i) { - res.push(fn(arr[i], i)); - } - return res; + function meridiem(token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem( + this.hours(), + this.minutes(), + lowercase + ); + }); } - function extend(a, b) { - for (var i in b) { - if (hasOwnProp(b, i)) { - a[i] = b[i]; - } - } + meridiem('a', true); + meridiem('A', false); - if (hasOwnProp(b, 'toString')) { - a.toString = b.toString; - } + // ALIASES - if (hasOwnProp(b, 'valueOf')) { - a.valueOf = b.valueOf; - } + addUnitAlias('hour', 'h'); - return a; - } + // PRIORITY + addUnitPriority('hour', 13); - function createUTC(input, format, locale, strict) { - return createLocalOrUTC(input, format, locale, strict, true).utc(); - } + // PARSING - function defaultParsingFlags() { - // We need to deep clone this object. - return { - empty: false, - unusedTokens: [], - unusedInput: [], - overflow: -2, - charsLeftOver: 0, - nullInput: false, - invalidEra: null, - invalidMonth: null, - invalidFormat: false, - userInvalidated: false, - iso: false, - parsedDateParts: [], - era: null, - meridiem: null, - rfc2822: false, - weekdayMismatch: false, - }; + function matchMeridiem(isStrict, locale) { + return locale._meridiemParse; } - function getParsingFlags(m) { - if (m._pf == null) { - m._pf = defaultParsingFlags(); - } - return m._pf; - } + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('k', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + addRegexToken('kk', match1to2, match2); - var some; - if (Array.prototype.some) { - some = Array.prototype.some; - } else { - some = function (fun) { - var t = Object(this), - len = t.length >>> 0, - i; + addRegexToken('hmm', match3to4); + addRegexToken('hmmss', match5to6); + addRegexToken('Hmm', match3to4); + addRegexToken('Hmmss', match5to6); - for (i = 0; i < len; i++) { - if (i in t && fun.call(this, t[i], i, t)) { - return true; - } - } + addParseToken(['H', 'HH'], HOUR); + addParseToken(['k', 'kk'], function (input, array, config) { + var kInput = toInt(input); + array[HOUR] = kInput === 24 ? 0 : kInput; + }); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + }); + addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + }); - return false; - }; - } + // LOCALES - function isValid(m) { - if (m._isValid == null) { - var flags = getParsingFlags(m), - parsedParts = some.call(flags.parsedDateParts, function (i) { - return i != null; - }), - isNowValid = - !isNaN(m._d.getTime()) && - flags.overflow < 0 && - !flags.empty && - !flags.invalidEra && - !flags.invalidMonth && - !flags.invalidWeekday && - !flags.weekdayMismatch && - !flags.nullInput && - !flags.invalidFormat && - !flags.userInvalidated && - (!flags.meridiem || (flags.meridiem && parsedParts)); + function localeIsPM(input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return (input + '').toLowerCase().charAt(0) === 'p'; + } - if (m._strict) { - isNowValid = - isNowValid && - flags.charsLeftOver === 0 && - flags.unusedTokens.length === 0 && - flags.bigHour === undefined; - } + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, + // Setting the hour should keep the time, because the user explicitly + // specified which hour they want. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + getSetHour = makeGetSet('Hours', true); - if (Object.isFrozen == null || !Object.isFrozen(m)) { - m._isValid = isNowValid; - } else { - return isNowValid; - } + function localeMeridiem(hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; } - return m._isValid; } - function createInvalid(flags) { - var m = createUTC(NaN); - if (flags != null) { - extend(getParsingFlags(m), flags); - } else { - getParsingFlags(m).userInvalidated = true; - } + var baseConfig = { + calendar: defaultCalendar, + longDateFormat: defaultLongDateFormat, + invalidDate: defaultInvalidDate, + ordinal: defaultOrdinal, + dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, + relativeTime: defaultRelativeTime, - return m; - } + months: defaultLocaleMonths, + monthsShort: defaultLocaleMonthsShort, - // Plugins that add properties should also add the key here (null value), - // so we can properly clone ourselves. - var momentProperties = (hooks.momentProperties = []), - updateInProgress = false; + week: defaultLocaleWeek, - function copyConfig(to, from) { - var i, prop, val; + weekdays: defaultLocaleWeekdays, + weekdaysMin: defaultLocaleWeekdaysMin, + weekdaysShort: defaultLocaleWeekdaysShort, - if (!isUndefined(from._isAMomentObject)) { - to._isAMomentObject = from._isAMomentObject; - } - if (!isUndefined(from._i)) { - to._i = from._i; - } - if (!isUndefined(from._f)) { - to._f = from._f; - } - if (!isUndefined(from._l)) { - to._l = from._l; - } - if (!isUndefined(from._strict)) { - to._strict = from._strict; - } - if (!isUndefined(from._tzm)) { - to._tzm = from._tzm; - } - if (!isUndefined(from._isUTC)) { - to._isUTC = from._isUTC; - } - if (!isUndefined(from._offset)) { - to._offset = from._offset; - } - if (!isUndefined(from._pf)) { - to._pf = getParsingFlags(from); - } - if (!isUndefined(from._locale)) { - to._locale = from._locale; - } + meridiemParse: defaultLocaleMeridiemParse, + }; - if (momentProperties.length > 0) { - for (i = 0; i < momentProperties.length; i++) { - prop = momentProperties[i]; - val = from[prop]; - if (!isUndefined(val)) { - to[prop] = val; - } + // internal storage for locale config files + var locales = {}, + localeFamilies = {}, + globalLocale; + + function commonPrefix(arr1, arr2) { + var i, + minl = Math.min(arr1.length, arr2.length); + for (i = 0; i < minl; i += 1) { + if (arr1[i] !== arr2[i]) { + return i; } } + return minl; + } - return to; + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; } - // Moment prototype object - function Moment(config) { - copyConfig(this, config); - this._d = new Date(config._d != null ? config._d.getTime() : NaN); - if (!this.isValid()) { - this._d = new Date(NaN); - } - // Prevent infinite loop in case updateOffset creates new moment - // objects. - if (updateInProgress === false) { - updateInProgress = true; - hooks.updateOffset(this); - updateInProgress = false; + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, + j, + next, + locale, + split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if ( + next && + next.length >= j && + commonPrefix(split, next) >= j - 1 + ) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; } + return globalLocale; } - function isMoment(obj) { - return ( - obj instanceof Moment || (obj != null && obj._isAMomentObject != null) - ); + function isLocaleNameSane(name) { + // Prevent names that look like filesystem paths, i.e contain '/' or '\' + return name.match('^[^/\\\\]*$') != null; } - function warn(msg) { + function loadLocale(name) { + var oldLocale = null, + aliasedRequire; + // TODO: Find a better way to register and load all the locales in Node if ( - hooks.suppressDeprecationWarnings === false && - typeof console !== 'undefined' && - console.warn + locales[name] === undefined && + "object" !== 'undefined' && + module && + module.exports && + isLocaleNameSane(name) ) { - console.warn('Deprecation warning: ' + msg); + try { + oldLocale = globalLocale._abbr; + aliasedRequire = undefined; + __nested_webpack_require_2731916__("./build/cht-core-4-6/node_modules/moment/locale sync recursive ^\\.\\/.*$")("./" + name); + getSetGlobalLocale(oldLocale); + } catch (e) { + // mark as not found to avoid repeating expensive file require call causing high CPU + // when trying to find en-US, en_US, en-us for every format call + locales[name] = null; // null means not found + } } + return locales[name]; } - function deprecate(msg, fn) { - var firstTime = true; + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function getSetGlobalLocale(key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = getLocale(key); + } else { + data = defineLocale(key, values); + } - return extend(function () { - if (hooks.deprecationHandler != null) { - hooks.deprecationHandler(null, msg); + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } else { + if (typeof console !== 'undefined' && console.warn) { + //warn user if arguments are passed but the locale could not be set + console.warn( + 'Locale ' + key + ' not found. Did you forget to load it?' + ); + } } - if (firstTime) { - var args = [], - arg, - i, - key; - for (i = 0; i < arguments.length; i++) { - arg = ''; - if (typeof arguments[i] === 'object') { - arg += '\n[' + i + '] '; - for (key in arguments[0]) { - if (hasOwnProp(arguments[0], key)) { - arg += key + ': ' + arguments[0][key] + ', '; - } - } - arg = arg.slice(0, -2); // Remove trailing comma and space + } + + return globalLocale._abbr; + } + + function defineLocale(name, config) { + if (config !== null) { + var locale, + parentConfig = baseConfig; + config.abbr = name; + if (locales[name] != null) { + deprecateSimple( + 'defineLocaleOverride', + 'use moment.updateLocale(localeName, config) to change ' + + 'an existing locale. moment.defineLocale(localeName, ' + + 'config) should only be used for creating a new locale ' + + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.' + ); + parentConfig = locales[name]._config; + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + parentConfig = locales[config.parentLocale]._config; + } else { + locale = loadLocale(config.parentLocale); + if (locale != null) { + parentConfig = locale._config; } else { - arg = arguments[i]; + if (!localeFamilies[config.parentLocale]) { + localeFamilies[config.parentLocale] = []; + } + localeFamilies[config.parentLocale].push({ + name: name, + config: config, + }); + return null; } - args.push(arg); } - warn( - msg + - '\nArguments: ' + - Array.prototype.slice.call(args).join('') + - '\n' + - new Error().stack - ); - firstTime = false; } - return fn.apply(this, arguments); - }, fn); - } + locales[name] = new Locale(mergeConfigs(parentConfig, config)); - var deprecations = {}; + if (localeFamilies[name]) { + localeFamilies[name].forEach(function (x) { + defineLocale(x.name, x.config); + }); + } - function deprecateSimple(name, msg) { - if (hooks.deprecationHandler != null) { - hooks.deprecationHandler(name, msg); - } - if (!deprecations[name]) { - warn(msg); - deprecations[name] = true; + // backwards compat for now: also set the locale + // make sure we set the locale AFTER all child locales have been + // created, so we won't end up with the child locale set. + getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; } } - hooks.suppressDeprecationWarnings = false; - hooks.deprecationHandler = null; + function updateLocale(name, config) { + if (config != null) { + var locale, + tmpLocale, + parentConfig = baseConfig; - function isFunction(input) { - return ( - (typeof Function !== 'undefined' && input instanceof Function) || - Object.prototype.toString.call(input) === '[object Function]' - ); - } + if (locales[name] != null && locales[name].parentLocale != null) { + // Update existing child locale in-place to avoid memory-leaks + locales[name].set(mergeConfigs(locales[name]._config, config)); + } else { + // MERGE + tmpLocale = loadLocale(name); + if (tmpLocale != null) { + parentConfig = tmpLocale._config; + } + config = mergeConfigs(parentConfig, config); + if (tmpLocale == null) { + // updateLocale is called for creating a new locale + // Set abbr so it will have a name (getters return + // undefined otherwise). + config.abbr = name; + } + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; + } - function set(config) { - var prop, i; - for (i in config) { - if (hasOwnProp(config, i)) { - prop = config[i]; - if (isFunction(prop)) { - this[i] = prop; - } else { - this['_' + i] = prop; + // backwards compat for now: also set the locale + getSetGlobalLocale(name); + } else { + // pass null for config to unupdate, useful for tests + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + if (name === getSetGlobalLocale()) { + getSetGlobalLocale(name); + } + } else if (locales[name] != null) { + delete locales[name]; } } } - this._config = config; - // Lenient ordinal parsing accepts just a number in addition to - // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. - // TODO: Remove "ordinalParse" fallback in next major release. - this._dayOfMonthOrdinalParseLenient = new RegExp( - (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + - '|' + - /\d{1,2}/.source - ); + return locales[name]; } - function mergeConfigs(parentConfig, childConfig) { - var res = extend({}, parentConfig), - prop; - for (prop in childConfig) { - if (hasOwnProp(childConfig, prop)) { - if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { - res[prop] = {}; - extend(res[prop], parentConfig[prop]); - extend(res[prop], childConfig[prop]); - } else if (childConfig[prop] != null) { - res[prop] = childConfig[prop]; - } else { - delete res[prop]; - } - } + // returns locale data + function getLocale(key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; } - for (prop in parentConfig) { - if ( - hasOwnProp(parentConfig, prop) && - !hasOwnProp(childConfig, prop) && - isObject(parentConfig[prop]) - ) { - // make sure changes to properties don't modify parent config - res[prop] = extend({}, res[prop]); + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; } + key = [key]; } - return res; + + return chooseLocale(key); } - function Locale(config) { - if (config != null) { - this.set(config); - } + function listLocales() { + return keys(locales); } - var keys; + function checkOverflow(m) { + var overflow, + a = m._a; - if (Object.keys) { - keys = Object.keys; - } else { - keys = function (obj) { - var i, - res = []; - for (i in obj) { - if (hasOwnProp(obj, i)) { - res.push(i); - } + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 + ? MONTH + : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) + ? DATE + : a[HOUR] < 0 || + a[HOUR] > 24 || + (a[HOUR] === 24 && + (a[MINUTE] !== 0 || + a[SECOND] !== 0 || + a[MILLISECOND] !== 0)) + ? HOUR + : a[MINUTE] < 0 || a[MINUTE] > 59 + ? MINUTE + : a[SECOND] < 0 || a[SECOND] > 59 + ? SECOND + : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 + ? MILLISECOND + : -1; + + if ( + getParsingFlags(m)._overflowDayOfYear && + (overflow < YEAR || overflow > DATE) + ) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; } - return res; - }; - } - var defaultCalendar = { - sameDay: '[Today at] LT', - nextDay: '[Tomorrow at] LT', - nextWeek: 'dddd [at] LT', - lastDay: '[Yesterday at] LT', - lastWeek: '[Last] dddd [at] LT', - sameElse: 'L', - }; + getParsingFlags(m).overflow = overflow; + } - function calendar(key, mom, now) { - var output = this._calendar[key] || this._calendar['sameElse']; - return isFunction(output) ? output.call(mom, now) : output; + return m; } - function zeroFill(number, targetLength, forceSign) { - var absNumber = '' + Math.abs(number), - zerosToFill = targetLength - absNumber.length, - sign = number >= 0; - return ( - (sign ? (forceSign ? '+' : '') : '-') + - Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + - absNumber - ); - } + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + var extendedIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + basicIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, + isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/], + ['YYYYMM', /\d{6}/, false], + ['YYYY', /\d{4}/, false], + ], + // iso time formats and regexes + isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/], + ], + aspNetJsonRegex = /^\/?Date\((-?\d+)/i, + // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 + rfc2822 = + /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, + obsOffsets = { + UT: 0, + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60, + }; - var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, - localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, - formatFunctions = {}, - formatTokenFunctions = {}; + // date from iso format + function configFromISO(config) { + var i, + l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, + dateFormat, + timeFormat, + tzFormat, + isoDatesLen = isoDates.length, + isoTimesLen = isoTimes.length; - // token: 'M' - // padded: ['MM', 2] - // ordinal: 'Mo' - // callback: function () { this.month() + 1 } - function addFormatToken(token, padded, ordinal, callback) { - var func = callback; - if (typeof callback === 'string') { - func = function () { - return this[callback](); - }; - } - if (token) { - formatTokenFunctions[token] = func; - } - if (padded) { - formatTokenFunctions[padded[0]] = function () { - return zeroFill(func.apply(this, arguments), padded[1], padded[2]); - }; + if (match) { + getParsingFlags(config).iso = true; + for (i = 0, l = isoDatesLen; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimesLen; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; } - if (ordinal) { - formatTokenFunctions[ordinal] = function () { - return this.localeData().ordinal( - func.apply(this, arguments), - token - ); - }; + } + + function extractFromRFC2822Strings( + yearStr, + monthStr, + dayStr, + hourStr, + minuteStr, + secondStr + ) { + var result = [ + untruncateYear(yearStr), + defaultLocaleMonthsShort.indexOf(monthStr), + parseInt(dayStr, 10), + parseInt(hourStr, 10), + parseInt(minuteStr, 10), + ]; + + if (secondStr) { + result.push(parseInt(secondStr, 10)); } + + return result; } - function removeFormattingTokens(input) { - if (input.match(/\[[\s\S]/)) { - return input.replace(/^\[|\]$/g, ''); + function untruncateYear(yearStr) { + var year = parseInt(yearStr, 10); + if (year <= 49) { + return 2000 + year; + } else if (year <= 999) { + return 1900 + year; } - return input.replace(/\\/g, ''); + return year; } - function makeFormatFunction(format) { - var array = format.match(formattingTokens), - i, - length; + function preprocessRFC2822(s) { + // Remove comments and folding whitespace and replace multiple-spaces with a single space + return s + .replace(/\([^()]*\)|[\n\t]/g, ' ') + .replace(/(\s\s+)/g, ' ') + .replace(/^\s\s*/, '') + .replace(/\s\s*$/, ''); + } - for (i = 0, length = array.length; i < length; i++) { - if (formatTokenFunctions[array[i]]) { - array[i] = formatTokenFunctions[array[i]]; - } else { - array[i] = removeFormattingTokens(array[i]); + function checkWeekday(weekdayStr, parsedInput, config) { + if (weekdayStr) { + // TODO: Replace the vanilla JS Date object with an independent day-of-week check. + var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), + weekdayActual = new Date( + parsedInput[0], + parsedInput[1], + parsedInput[2] + ).getDay(); + if (weekdayProvided !== weekdayActual) { + getParsingFlags(config).weekdayMismatch = true; + config._isValid = false; + return false; } } - - return function (mom) { - var output = '', - i; - for (i = 0; i < length; i++) { - output += isFunction(array[i]) - ? array[i].call(mom, format) - : array[i]; - } - return output; - }; + return true; } - // format date using native date object - function formatMoment(m, format) { - if (!m.isValid()) { - return m.localeData().invalidDate(); + function calculateOffset(obsOffset, militaryOffset, numOffset) { + if (obsOffset) { + return obsOffsets[obsOffset]; + } else if (militaryOffset) { + // the only allowed military tz is Z + return 0; + } else { + var hm = parseInt(numOffset, 10), + m = hm % 100, + h = (hm - m) / 100; + return h * 60 + m; } - - format = expandFormat(format, m.localeData()); - formatFunctions[format] = - formatFunctions[format] || makeFormatFunction(format); - - return formatFunctions[format](m); } - function expandFormat(format, locale) { - var i = 5; + // date and time from ref 2822 format + function configFromRFC2822(config) { + var match = rfc2822.exec(preprocessRFC2822(config._i)), + parsedArray; + if (match) { + parsedArray = extractFromRFC2822Strings( + match[4], + match[3], + match[2], + match[5], + match[6], + match[7] + ); + if (!checkWeekday(match[1], parsedArray, config)) { + return; + } - function replaceLongDateFormatTokens(input) { - return locale.longDateFormat(input) || input; - } + config._a = parsedArray; + config._tzm = calculateOffset(match[8], match[9], match[10]); - localFormattingTokens.lastIndex = 0; - while (i >= 0 && localFormattingTokens.test(format)) { - format = format.replace( - localFormattingTokens, - replaceLongDateFormatTokens - ); - localFormattingTokens.lastIndex = 0; - i -= 1; - } + config._d = createUTCDate.apply(null, config._a); + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); - return format; + getParsingFlags(config).rfc2822 = true; + } else { + config._isValid = false; + } } - var defaultLongDateFormat = { - LTS: 'h:mm:ss A', - LT: 'h:mm A', - L: 'MM/DD/YYYY', - LL: 'MMMM D, YYYY', - LLL: 'MMMM D, YYYY h:mm A', - LLLL: 'dddd, MMMM D, YYYY h:mm A', - }; - - function longDateFormat(key) { - var format = this._longDateFormat[key], - formatUpper = this._longDateFormat[key.toUpperCase()]; + // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } - if (format || !formatUpper) { - return format; + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; } - this._longDateFormat[key] = formatUpper - .match(formattingTokens) - .map(function (tok) { - if ( - tok === 'MMMM' || - tok === 'MM' || - tok === 'DD' || - tok === 'dddd' - ) { - return tok.slice(1); - } - return tok; - }) - .join(''); + configFromRFC2822(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } - return this._longDateFormat[key]; + if (config._strict) { + config._isValid = false; + } else { + // Final attempt, use Input Fallback + hooks.createFromInputFallback(config); + } } - var defaultInvalidDate = 'Invalid date'; + hooks.createFromInputFallback = deprecate( + 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); - function invalidDate() { - return this._invalidDate; + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; } - var defaultOrdinal = '%d', - defaultDayOfMonthOrdinalParse = /\d{1,2}/; - - function ordinal(number) { - return this._ordinal.replace('%d', number); + function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(hooks.now()); + if (config._useUTC) { + return [ + nowValue.getUTCFullYear(), + nowValue.getUTCMonth(), + nowValue.getUTCDate(), + ]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; } - var defaultRelativeTime = { - future: 'in %s', - past: '%s ago', - s: 'a few seconds', - ss: '%d seconds', - m: 'a minute', - mm: '%d minutes', - h: 'an hour', - hh: '%d hours', - d: 'a day', - dd: '%d days', - w: 'a week', - ww: '%d weeks', - M: 'a month', - MM: '%d months', - y: 'a year', - yy: '%d years', - }; + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray(config) { + var i, + date, + input = [], + currentDate, + expectedWeekday, + yearToUse; - function relativeTime(number, withoutSuffix, string, isFuture) { - var output = this._relativeTime[string]; - return isFunction(output) - ? output(number, withoutSuffix, string, isFuture) - : output.replace(/%d/i, number); - } + if (config._d) { + return; + } - function pastFuture(diff, output) { - var format = this._relativeTime[diff > 0 ? 'future' : 'past']; - return isFunction(format) ? format(output) : format.replace(/%s/i, output); - } + currentDate = currentDateArray(config); - var aliases = {}; + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } - function addUnitAlias(unit, shorthand) { - var lowerCase = unit.toLowerCase(); - aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; - } + //if the day of the year is set, figure out what it is + if (config._dayOfYear != null) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); - function normalizeUnits(units) { - return typeof units === 'string' - ? aliases[units] || aliases[units.toLowerCase()] - : undefined; - } + if ( + config._dayOfYear > daysInYear(yearToUse) || + config._dayOfYear === 0 + ) { + getParsingFlags(config)._overflowDayOfYear = true; + } - function normalizeObjectUnits(inputObject) { - var normalizedInput = {}, - normalizedProp, - prop; + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } - for (prop in inputObject) { - if (hasOwnProp(inputObject, prop)) { - normalizedProp = normalizeUnits(prop); - if (normalizedProp) { - normalizedInput[normalizedProp] = inputObject[prop]; - } - } + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; } - return normalizedInput; - } + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = + config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i]; + } - var priorities = {}; + // Check for 24:00:00.000 + if ( + config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0 + ) { + config._nextDay = true; + config._a[HOUR] = 0; + } - function addUnitPriority(unit, priority) { - priorities[unit] = priority; - } + config._d = (config._useUTC ? createUTCDate : createDate).apply( + null, + input + ); + expectedWeekday = config._useUTC + ? config._d.getUTCDay() + : config._d.getDay(); - function getPrioritizedUnits(unitsObj) { - var units = [], - u; - for (u in unitsObj) { - if (hasOwnProp(unitsObj, u)) { - units.push({ unit: u, priority: priorities[u] }); - } + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); } - units.sort(function (a, b) { - return a.priority - b.priority; - }); - return units; - } - function isLeapYear(year) { - return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; - } + if (config._nextDay) { + config._a[HOUR] = 24; + } - function absFloor(number) { - if (number < 0) { - // -0 -> 0 - return Math.ceil(number) || 0; - } else { - return Math.floor(number); + // check for mismatching day of week + if ( + config._w && + typeof config._w.d !== 'undefined' && + config._w.d !== expectedWeekday + ) { + getParsingFlags(config).weekdayMismatch = true; } } - function toInt(argumentForCoercion) { - var coercedNumber = +argumentForCoercion, - value = 0; - - if (coercedNumber !== 0 && isFinite(coercedNumber)) { - value = absFloor(coercedNumber); - } + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; - return value; - } + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; - function makeGetSet(unit, keepTime) { - return function (value) { - if (value != null) { - set$1(this, unit, value); - hooks.updateOffset(this, keepTime); - return this; - } else { - return get(this, unit); + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults( + w.GG, + config._a[YEAR], + weekOfYear(createLocal(), 1, 4).year + ); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; } - }; - } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; - function get(mom, unit) { - return mom.isValid() - ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() - : NaN; - } + curWeek = weekOfYear(createLocal(), dow, doy); - function set$1(mom, unit, value) { - if (mom.isValid() && !isNaN(value)) { - if ( - unit === 'FullYear' && - isLeapYear(mom.year()) && - mom.month() === 1 && - mom.date() === 29 - ) { - value = toInt(value); - mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit]( - value, - mom.month(), - daysInMonth(value, mom.month()) - ); + weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); + + // Default to current week. + week = defaults(w.w, curWeek.week); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from beginning of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } } else { - mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + // default to beginning of week + weekday = dow; } } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } } - // MOMENTS + // constant that refers to the ISO standard + hooks.ISO_8601 = function () {}; - function stringGet(units) { - units = normalizeUnits(units); - if (isFunction(this[units])) { - return this[units](); - } - return this; - } + // constant that refers to the RFC 2822 form + hooks.RFC_2822 = function () {}; - function stringSet(units, value) { - if (typeof units === 'object') { - units = normalizeObjectUnits(units); - var prioritized = getPrioritizedUnits(units), - i; - for (i = 0; i < prioritized.length; i++) { - this[prioritized[i].unit](units[prioritized[i].unit]); - } - } else { - units = normalizeUnits(units); - if (isFunction(this[units])) { - return this[units](value); - } + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === hooks.ISO_8601) { + configFromISO(config); + return; } - return this; - } - - var match1 = /\d/, // 0 - 9 - match2 = /\d\d/, // 00 - 99 - match3 = /\d{3}/, // 000 - 999 - match4 = /\d{4}/, // 0000 - 9999 - match6 = /[+-]?\d{6}/, // -999999 - 999999 - match1to2 = /\d\d?/, // 0 - 99 - match3to4 = /\d\d\d\d?/, // 999 - 9999 - match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 - match1to3 = /\d{1,3}/, // 0 - 999 - match1to4 = /\d{1,4}/, // 0 - 9999 - match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 - matchUnsigned = /\d+/, // 0 - inf - matchSigned = /[+-]?\d+/, // -inf - inf - matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z - matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z - matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 - // any word (or two) characters or numbers including two/three word month in arabic. - // includes scottish gaelic two word and hyphenated months - matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, - regexes; + if (config._f === hooks.RFC_2822) { + configFromRFC2822(config); + return; + } + config._a = []; + getParsingFlags(config).empty = true; - regexes = {}; + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, + parsedInput, + tokens, + token, + skipped, + stringLength = string.length, + totalParsedInputLength = 0, + era, + tokenLen; - function addRegexToken(token, regex, strictRegex) { - regexes[token] = isFunction(regex) - ? regex - : function (isStrict, localeData) { - return isStrict && strictRegex ? strictRegex : regex; - }; - } + tokens = + expandFormat(config._f, config._locale).match(formattingTokens) || []; + tokenLen = tokens.length; + for (i = 0; i < tokenLen; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || + [])[0]; + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice( + string.indexOf(parsedInput) + parsedInput.length + ); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } - function getParseRegexForToken(token, config) { - if (!hasOwnProp(regexes, token)) { - return new RegExp(unescapeFormat(token)); + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = + stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); } - return regexes[token](config._strict, config._locale); - } + // clear _12h flag if hour is <= 12 + if ( + config._a[HOUR] <= 12 && + getParsingFlags(config).bigHour === true && + config._a[HOUR] > 0 + ) { + getParsingFlags(config).bigHour = undefined; + } - // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript - function unescapeFormat(s) { - return regexEscape( - s - .replace('\\', '') - .replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function ( - matched, - p1, - p2, - p3, - p4 - ) { - return p1 || p2 || p3 || p4; - }) + getParsingFlags(config).parsedDateParts = config._a.slice(0); + getParsingFlags(config).meridiem = config._meridiem; + // handle meridiem + config._a[HOUR] = meridiemFixWrap( + config._locale, + config._a[HOUR], + config._meridiem ); - } - function regexEscape(s) { - return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + // handle era + era = getParsingFlags(config).era; + if (era !== null) { + config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); + } + + configFromArray(config); + checkOverflow(config); } - var tokens = {}; + function meridiemFixWrap(locale, hour, meridiem) { + var isPm; - function addParseToken(token, callback) { - var i, - func = callback; - if (typeof token === 'string') { - token = [token]; - } - if (isNumber(callback)) { - func = function (input, array) { - array[callback] = toInt(input); - }; + if (meridiem == null) { + // nothing to do + return hour; } - for (i = 0; i < token.length; i++) { - tokens[token[i]] = func; + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; } } - function addWeekParseToken(token, callback) { - addParseToken(token, function (input, array, config, token) { - config._w = config._w || {}; - callback(input, config._w, config, token); - }); - } + // date from string and array of format strings + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + scoreToBeat, + i, + currentScore, + validFormatFound, + bestFormatIsValid = false, + configfLen = config._f.length; - function addTimeToArrayFromToken(token, input, config) { - if (input != null && hasOwnProp(tokens, token)) { - tokens[token](input, config._a, config, token); + if (configfLen === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; } - } - var YEAR = 0, - MONTH = 1, - DATE = 2, - HOUR = 3, - MINUTE = 4, - SECOND = 5, - MILLISECOND = 6, - WEEK = 7, - WEEKDAY = 8; + for (i = 0; i < configfLen; i++) { + currentScore = 0; + validFormatFound = false; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); - function mod(n, x) { - return ((n % x) + x) % x; - } + if (isValid(tempConfig)) { + validFormatFound = true; + } - var indexOf; + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; - if (Array.prototype.indexOf) { - indexOf = Array.prototype.indexOf; - } else { - indexOf = function (o) { - // I know - var i; - for (i = 0; i < this.length; ++i) { - if (this[i] === o) { - return i; + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (!bestFormatIsValid) { + if ( + scoreToBeat == null || + currentScore < scoreToBeat || + validFormatFound + ) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + if (validFormatFound) { + bestFormatIsValid = true; + } + } + } else { + if (currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; } } - return -1; - }; + } + + extend(config, bestMoment || tempConfig); } - function daysInMonth(year, month) { - if (isNaN(year) || isNaN(month)) { - return NaN; + function configFromObject(config) { + if (config._d) { + return; } - var modMonth = mod(month, 12); - year += (month - modMonth) / 12; - return modMonth === 1 - ? isLeapYear(year) - ? 29 - : 28 - : 31 - ((modMonth % 7) % 2); - } - // FORMATTING + var i = normalizeObjectUnits(config._i), + dayOrDate = i.day === undefined ? i.date : i.day; + config._a = map( + [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], + function (obj) { + return obj && parseInt(obj, 10); + } + ); - addFormatToken('M', ['MM', 2], 'Mo', function () { - return this.month() + 1; - }); + configFromArray(config); + } - addFormatToken('MMM', 0, 0, function (format) { - return this.localeData().monthsShort(this, format); - }); + function createFromConfig(config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } - addFormatToken('MMMM', 0, 0, function (format) { - return this.localeData().months(this, format); - }); + return res; + } - // ALIASES + function prepareConfig(config) { + var input = config._i, + format = config._f; - addUnitAlias('month', 'M'); + config._locale = config._locale || getLocale(config._l); - // PRIORITY + if (input === null || (format === undefined && input === '')) { + return createInvalid({ nullInput: true }); + } - addUnitPriority('month', 8); + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } - // PARSING + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isDate(input)) { + config._d = input; + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else { + configFromInput(config); + } - addRegexToken('M', match1to2); - addRegexToken('MM', match1to2, match2); - addRegexToken('MMM', function (isStrict, locale) { - return locale.monthsShortRegex(isStrict); - }); - addRegexToken('MMMM', function (isStrict, locale) { - return locale.monthsRegex(isStrict); - }); + if (!isValid(config)) { + config._d = null; + } - addParseToken(['M', 'MM'], function (input, array) { - array[MONTH] = toInt(input) - 1; - }); + return config; + } - addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { - var month = config._locale.monthsParse(input, token, config._strict); - // if we didn't find a month name, mark the date as invalid. - if (month != null) { - array[MONTH] = month; + function configFromInput(config) { + var input = config._i; + if (isUndefined(input)) { + config._d = new Date(hooks.now()); + } else if (isDate(input)) { + config._d = new Date(input.valueOf()); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (isObject(input)) { + configFromObject(config); + } else if (isNumber(input)) { + // from milliseconds + config._d = new Date(input); } else { - getParsingFlags(config).invalidMonth = input; + hooks.createFromInputFallback(config); } - }); + } - // LOCALES + function createLocalOrUTC(input, format, locale, strict, isUTC) { + var c = {}; - var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split( - '_' - ), - defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split( - '_' - ), - MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, - defaultMonthsShortRegex = matchWord, - defaultMonthsRegex = matchWord; + if (format === true || format === false) { + strict = format; + format = undefined; + } - function localeMonths(m, format) { - if (!m) { - return isArray(this._months) - ? this._months - : this._months['standalone']; + if (locale === true || locale === false) { + strict = locale; + locale = undefined; } - return isArray(this._months) - ? this._months[m.month()] - : this._months[ - (this._months.isFormat || MONTHS_IN_FORMAT).test(format) - ? 'format' - : 'standalone' - ][m.month()]; - } - function localeMonthsShort(m, format) { - if (!m) { - return isArray(this._monthsShort) - ? this._monthsShort - : this._monthsShort['standalone']; + if ( + (isObject(input) && isObjectEmpty(input)) || + (isArray(input) && input.length === 0) + ) { + input = undefined; } - return isArray(this._monthsShort) - ? this._monthsShort[m.month()] - : this._monthsShort[ - MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone' - ][m.month()]; + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); } - function handleStrictParse(monthName, format, strict) { - var i, - ii, - mom, - llc = monthName.toLocaleLowerCase(); - if (!this._monthsParse) { - // this is not used - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - for (i = 0; i < 12; ++i) { - mom = createUTC([2000, i]); - this._shortMonthsParse[i] = this.monthsShort( - mom, - '' - ).toLocaleLowerCase(); - this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); - } - } + function createLocal(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); + } - if (strict) { - if (format === 'MMM') { - ii = indexOf.call(this._shortMonthsParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._longMonthsParse, llc); - return ii !== -1 ? ii : null; - } - } else { - if (format === 'MMM') { - ii = indexOf.call(this._shortMonthsParse, llc); - if (ii !== -1) { - return ii; + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return createInvalid(); } - ii = indexOf.call(this._longMonthsParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._longMonthsParse, llc); - if (ii !== -1) { - return ii; + } + ), + prototypeMax = deprecate( + 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return createInvalid(); } - ii = indexOf.call(this._shortMonthsParse, llc); - return ii !== -1 ? ii : null; + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; } } + return res; } - function localeMonthsParse(monthName, format, strict) { - var i, mom, regex; + // TODO: Use [].sort instead? + function min() { + var args = [].slice.call(arguments, 0); - if (this._monthsParseExact) { - return handleStrictParse.call(this, monthName, format, strict); - } + return pickBy('isBefore', args); + } - if (!this._monthsParse) { - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - } + function max() { + var args = [].slice.call(arguments, 0); - // TODO: add sorting - // Sorting makes sure if one month (or abbr) is a prefix of another - // see sorting in computeMonthsParse - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, i]); - if (strict && !this._longMonthsParse[i]) { - this._longMonthsParse[i] = new RegExp( - '^' + this.months(mom, '').replace('.', '') + '$', - 'i' - ); - this._shortMonthsParse[i] = new RegExp( - '^' + this.monthsShort(mom, '').replace('.', '') + '$', - 'i' - ); - } - if (!strict && !this._monthsParse[i]) { - regex = - '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); - this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex + return pickBy('isAfter', args); + } + + var now = function () { + return Date.now ? Date.now() : +new Date(); + }; + + var ordering = [ + 'year', + 'quarter', + 'month', + 'week', + 'day', + 'hour', + 'minute', + 'second', + 'millisecond', + ]; + + function isDurationValid(m) { + var key, + unitHasDecimal = false, + i, + orderLen = ordering.length; + for (key in m) { if ( - strict && - format === 'MMMM' && - this._longMonthsParse[i].test(monthName) - ) { - return i; - } else if ( - strict && - format === 'MMM' && - this._shortMonthsParse[i].test(monthName) + hasOwnProp(m, key) && + !( + indexOf.call(ordering, key) !== -1 && + (m[key] == null || !isNaN(m[key])) + ) ) { - return i; - } else if (!strict && this._monthsParse[i].test(monthName)) { - return i; + return false; } } - } - - // MOMENTS - - function setMonth(mom, value) { - var dayOfMonth; - - if (!mom.isValid()) { - // No op - return mom; - } - if (typeof value === 'string') { - if (/^\d+$/.test(value)) { - value = toInt(value); - } else { - value = mom.localeData().monthsParse(value); - // TODO: Another silent failure? - if (!isNumber(value)) { - return mom; + for (i = 0; i < orderLen; ++i) { + if (m[ordering[i]]) { + if (unitHasDecimal) { + return false; // only allow non-integers for smallest unit + } + if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { + unitHasDecimal = true; } } } - dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); - mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); - return mom; + return true; } - function getSetMonth(value) { - if (value != null) { - setMonth(this, value); - hooks.updateOffset(this, true); - return this; - } else { - return get(this, 'Month'); - } + function isValid$1() { + return this._isValid; } - function getDaysInMonth() { - return daysInMonth(this.year(), this.month()); + function createInvalid$1() { + return createDuration(NaN); } - function monthsShortRegex(isStrict) { - if (this._monthsParseExact) { - if (!hasOwnProp(this, '_monthsRegex')) { - computeMonthsParse.call(this); - } - if (isStrict) { - return this._monthsShortStrictRegex; - } else { - return this._monthsShortRegex; - } - } else { - if (!hasOwnProp(this, '_monthsShortRegex')) { - this._monthsShortRegex = defaultMonthsShortRegex; - } - return this._monthsShortStrictRegex && isStrict - ? this._monthsShortStrictRegex - : this._monthsShortRegex; - } + function Duration(duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || normalizedInput.isoWeek || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + this._isValid = isDurationValid(normalizedInput); + + // representation for dateAddRemove + this._milliseconds = + +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + weeks * 7; + // It is impossible to translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + quarters * 3 + years * 12; + + this._data = {}; + + this._locale = getLocale(); + + this._bubble(); } - function monthsRegex(isStrict) { - if (this._monthsParseExact) { - if (!hasOwnProp(this, '_monthsRegex')) { - computeMonthsParse.call(this); - } - if (isStrict) { - return this._monthsStrictRegex; - } else { - return this._monthsRegex; - } - } else { - if (!hasOwnProp(this, '_monthsRegex')) { - this._monthsRegex = defaultMonthsRegex; - } - return this._monthsStrictRegex && isStrict - ? this._monthsStrictRegex - : this._monthsRegex; - } + function isDuration(obj) { + return obj instanceof Duration; } - function computeMonthsParse() { - function cmpLenRev(a, b) { - return b.length - a.length; + function absRound(number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); } + } - var shortPieces = [], - longPieces = [], - mixedPieces = [], - i, - mom; - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, i]); - shortPieces.push(this.monthsShort(mom, '')); - longPieces.push(this.months(mom, '')); - mixedPieces.push(this.months(mom, '')); - mixedPieces.push(this.monthsShort(mom, '')); - } - // Sorting makes sure if one month (or abbr) is a prefix of another it - // will match the longer piece. - shortPieces.sort(cmpLenRev); - longPieces.sort(cmpLenRev); - mixedPieces.sort(cmpLenRev); - for (i = 0; i < 12; i++) { - shortPieces[i] = regexEscape(shortPieces[i]); - longPieces[i] = regexEscape(longPieces[i]); - } - for (i = 0; i < 24; i++) { - mixedPieces[i] = regexEscape(mixedPieces[i]); + // compare two arrays, return the number of differences + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ( + (dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) + ) { + diffs++; + } } - - this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._monthsShortRegex = this._monthsRegex; - this._monthsStrictRegex = new RegExp( - '^(' + longPieces.join('|') + ')', - 'i' - ); - this._monthsShortStrictRegex = new RegExp( - '^(' + shortPieces.join('|') + ')', - 'i' - ); + return diffs + lengthDiff; } // FORMATTING - addFormatToken('Y', 0, 0, function () { - var y = this.year(); - return y <= 9999 ? zeroFill(y, 4) : '+' + y; - }); + function offset(token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(), + sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return ( + sign + + zeroFill(~~(offset / 60), 2) + + separator + + zeroFill(~~offset % 60, 2) + ); + }); + } - addFormatToken(0, ['YY', 2], 0, function () { - return this.year() % 100; - }); + offset('Z', ':'); + offset('ZZ', ''); - addFormatToken(0, ['YYYY', 4], 0, 'year'); - addFormatToken(0, ['YYYYY', 5], 0, 'year'); - addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + // PARSING - // ALIASES + addRegexToken('Z', matchShortOffset); + addRegexToken('ZZ', matchShortOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); + }); - addUnitAlias('year', 'y'); + // HELPERS - // PRIORITIES + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; - addUnitPriority('year', 1); + function offsetFromString(matcher, string) { + var matches = (string || '').match(matcher), + chunk, + parts, + minutes; - // PARSING + if (matches === null) { + return null; + } - addRegexToken('Y', matchSigned); - addRegexToken('YY', match1to2, match2); - addRegexToken('YYYY', match1to4, match4); - addRegexToken('YYYYY', match1to6, match6); - addRegexToken('YYYYYY', match1to6, match6); + chunk = matches[matches.length - 1] || []; + parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + minutes = +(parts[1] * 60) + toInt(parts[2]); - addParseToken(['YYYYY', 'YYYYYY'], YEAR); - addParseToken('YYYY', function (input, array) { - array[YEAR] = - input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); - }); - addParseToken('YY', function (input, array) { - array[YEAR] = hooks.parseTwoDigitYear(input); - }); - addParseToken('Y', function (input, array) { - array[YEAR] = parseInt(input, 10); - }); + return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; + } - // HELPERS + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = + (isMoment(input) || isDate(input) + ? input.valueOf() + : createLocal(input).valueOf()) - res.valueOf(); + // Use low-level api, because this fn is low-level api. + res._d.setTime(res._d.valueOf() + diff); + hooks.updateOffset(res, false); + return res; + } else { + return createLocal(input).local(); + } + } - function daysInYear(year) { - return isLeapYear(year) ? 366 : 365; + function getDateOffset(m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset()); } // HOOKS - hooks.parseTwoDigitYear = function (input) { - return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); - }; + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + hooks.updateOffset = function () {}; // MOMENTS - var getSetYear = makeGetSet('FullYear', true); - - function getIsLeapYear() { - return isLeapYear(this.year()); - } - - function createDate(y, m, d, h, M, s, ms) { - // can't just apply() to create a date: - // https://stackoverflow.com/q/181348 - var date; - // the date constructor remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0) { - // preserve leap years using a full 400 year cycle, then reset - date = new Date(y + 400, m, d, h, M, s, ms); - if (isFinite(date.getFullYear())) { - date.setFullYear(y); + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset(input, keepLocalTime, keepMinutes) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + if (input === null) { + return this; + } + } else if (Math.abs(input) < 16 && !keepMinutes) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + addSubtract( + this, + createDuration(input - offset, 'm'), + 1, + false + ); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + hooks.updateOffset(this, true); + this._changeInProgress = null; + } } + return this; } else { - date = new Date(y, m, d, h, M, s, ms); + return this._isUTC ? offset : getDateOffset(this); } - - return date; } - function createUTCDate(y) { - var date, args; - // the Date.UTC function remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0) { - args = Array.prototype.slice.call(arguments); - // preserve leap years using a full 400 year cycle, then reset - args[0] = y + 400; - date = new Date(Date.UTC.apply(null, args)); - if (isFinite(date.getUTCFullYear())) { - date.setUTCFullYear(y); + function getSetZone(input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; } + + this.utcOffset(input, keepLocalTime); + + return this; } else { - date = new Date(Date.UTC.apply(null, arguments)); + return -this.utcOffset(); } - - return date; } - // start-of-first-week - start-of-year - function firstWeekOffset(year, dow, doy) { - var // first-week day -- which january is always in the first week (4 for iso, 1 for other) - fwd = 7 + dow - doy, - // first-week day local weekday -- which local weekday is fwd - fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; - - return -fwdlw + fwd - 1; + function setOffsetToUTC(keepLocalTime) { + return this.utcOffset(0, keepLocalTime); } - // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday - function dayOfYearFromWeeks(year, week, weekday, dow, doy) { - var localWeekday = (7 + weekday - dow) % 7, - weekOffset = firstWeekOffset(year, dow, doy), - dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, - resYear, - resDayOfYear; + function setOffsetToLocal(keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; - if (dayOfYear <= 0) { - resYear = year - 1; - resDayOfYear = daysInYear(resYear) + dayOfYear; - } else if (dayOfYear > daysInYear(year)) { - resYear = year + 1; - resDayOfYear = dayOfYear - daysInYear(year); - } else { - resYear = year; - resDayOfYear = dayOfYear; + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } } - - return { - year: resYear, - dayOfYear: resDayOfYear, - }; + return this; } - function weekOfYear(mom, dow, doy) { - var weekOffset = firstWeekOffset(mom.year(), dow, doy), - week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, - resWeek, - resYear; + function setOffsetToParsedOffset() { + if (this._tzm != null) { + this.utcOffset(this._tzm, false, true); + } else if (typeof this._i === 'string') { + var tZone = offsetFromString(matchOffset, this._i); + if (tZone != null) { + this.utcOffset(tZone); + } else { + this.utcOffset(0, true); + } + } + return this; + } - if (week < 1) { - resYear = mom.year() - 1; - resWeek = week + weeksInYear(resYear, dow, doy); - } else if (week > weeksInYear(mom.year(), dow, doy)) { - resWeek = week - weeksInYear(mom.year(), dow, doy); - resYear = mom.year() + 1; - } else { - resYear = mom.year(); - resWeek = week; + function hasAlignedHourOffset(input) { + if (!this.isValid()) { + return false; } + input = input ? createLocal(input).utcOffset() : 0; - return { - week: resWeek, - year: resYear, - }; + return (this.utcOffset() - input) % 60 === 0; } - function weeksInYear(year, dow, doy) { - var weekOffset = firstWeekOffset(year, dow, doy), - weekOffsetNext = firstWeekOffset(year + 1, dow, doy); - return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; + function isDaylightSavingTime() { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); } - // FORMATTING - - addFormatToken('w', ['ww', 2], 'wo', 'week'); - addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); - - // ALIASES - - addUnitAlias('week', 'w'); - addUnitAlias('isoWeek', 'W'); - - // PRIORITIES - - addUnitPriority('week', 5); - addUnitPriority('isoWeek', 5); - - // PARSING - - addRegexToken('w', match1to2); - addRegexToken('ww', match1to2, match2); - addRegexToken('W', match1to2); - addRegexToken('WW', match1to2, match2); - - addWeekParseToken(['w', 'ww', 'W', 'WW'], function ( - input, - week, - config, - token - ) { - week[token.substr(0, 1)] = toInt(input); - }); - - // HELPERS + function isDaylightSavingTimeShifted() { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } - // LOCALES + var c = {}, + other; - function localeWeek(mom) { - return weekOfYear(mom, this._week.dow, this._week.doy).week; - } + copyConfig(c, this); + c = prepareConfig(c); - var defaultLocaleWeek = { - dow: 0, // Sunday is the first day of the week. - doy: 6, // The week that contains Jan 6th is the first week of the year. - }; + if (c._a) { + other = c._isUTC ? createUTC(c._a) : createLocal(c._a); + this._isDSTShifted = + this.isValid() && compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } - function localeFirstDayOfWeek() { - return this._week.dow; + return this._isDSTShifted; } - function localeFirstDayOfYear() { - return this._week.doy; + function isLocal() { + return this.isValid() ? !this._isUTC : false; } - // MOMENTS - - function getSetWeek(input) { - var week = this.localeData().week(this); - return input == null ? week : this.add((input - week) * 7, 'd'); + function isUtcOffset() { + return this.isValid() ? this._isUTC : false; } - function getSetISOWeek(input) { - var week = weekOfYear(this, 1, 4).week; - return input == null ? week : this.add((input - week) * 7, 'd'); + function isUtc() { + return this.isValid() ? this._isUTC && this._offset === 0 : false; } - // FORMATTING + // ASP.NET json date format regex + var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + // and further modified to allow for strings containing both week and day + isoRegex = + /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; - addFormatToken('d', 0, 'do', 'day'); + function createDuration(input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; - addFormatToken('dd', 0, 0, function (format) { - return this.localeData().weekdaysMin(this, format); - }); + if (isDuration(input)) { + duration = { + ms: input._milliseconds, + d: input._days, + M: input._months, + }; + } else if (isNumber(input) || !isNaN(+input)) { + duration = {}; + if (key) { + duration[key] = +input; + } else { + duration.milliseconds = +input; + } + } else if ((match = aspNetRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: 0, + d: toInt(match[DATE]) * sign, + h: toInt(match[HOUR]) * sign, + m: toInt(match[MINUTE]) * sign, + s: toInt(match[SECOND]) * sign, + ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match + }; + } else if ((match = isoRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: parseIso(match[2], sign), + M: parseIso(match[3], sign), + w: parseIso(match[4], sign), + d: parseIso(match[5], sign), + h: parseIso(match[6], sign), + m: parseIso(match[7], sign), + s: parseIso(match[8], sign), + }; + } else if (duration == null) { + // checks for null or undefined + duration = {}; + } else if ( + typeof duration === 'object' && + ('from' in duration || 'to' in duration) + ) { + diffRes = momentsDifference( + createLocal(duration.from), + createLocal(duration.to) + ); - addFormatToken('ddd', 0, 0, function (format) { - return this.localeData().weekdaysShort(this, format); - }); + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } - addFormatToken('dddd', 0, 0, function (format) { - return this.localeData().weekdays(this, format); - }); + ret = new Duration(duration); - addFormatToken('e', 0, 0, 'weekday'); - addFormatToken('E', 0, 0, 'isoWeekday'); + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } - // ALIASES + if (isDuration(input) && hasOwnProp(input, '_isValid')) { + ret._isValid = input._isValid; + } - addUnitAlias('day', 'd'); - addUnitAlias('weekday', 'e'); - addUnitAlias('isoWeekday', 'E'); + return ret; + } - // PRIORITY - addUnitPriority('day', 11); - addUnitPriority('weekday', 11); - addUnitPriority('isoWeekday', 11); + createDuration.fn = Duration.prototype; + createDuration.invalid = createInvalid$1; - // PARSING + function parseIso(inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + } - addRegexToken('d', match1to2); - addRegexToken('e', match1to2); - addRegexToken('E', match1to2); - addRegexToken('dd', function (isStrict, locale) { - return locale.weekdaysMinRegex(isStrict); - }); - addRegexToken('ddd', function (isStrict, locale) { - return locale.weekdaysShortRegex(isStrict); - }); - addRegexToken('dddd', function (isStrict, locale) { - return locale.weekdaysRegex(isStrict); - }); + function positiveMomentsDifference(base, other) { + var res = {}; - addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { - var weekday = config._locale.weekdaysParse(input, token, config._strict); - // if we didn't get a weekday name, mark the date as invalid - if (weekday != null) { - week.d = weekday; - } else { - getParsingFlags(config).invalidWeekday = input; + res.months = + other.month() - base.month() + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; } - }); - - addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { - week[token] = toInt(input); - }); - // HELPERS + res.milliseconds = +other - +base.clone().add(res.months, 'M'); - function parseWeekday(input, locale) { - if (typeof input !== 'string') { - return input; - } + return res; + } - if (!isNaN(input)) { - return parseInt(input, 10); + function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return { milliseconds: 0, months: 0 }; } - input = locale.weekdaysParse(input); - if (typeof input === 'number') { - return input; + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; } - return null; + return res; } - function parseIsoWeekday(input, locale) { - if (typeof input === 'string') { - return locale.weekdaysParse(input) % 7 || 7; - } - return isNaN(input) ? null : input; - } + // TODO: remove 'name' arg after deprecation is removed + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple( + name, + 'moment().' + + name + + '(period, number) is deprecated. Please use moment().' + + name + + '(number, period). ' + + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' + ); + tmp = val; + val = period; + period = tmp; + } - // LOCALES - function shiftWeekdays(ws, n) { - return ws.slice(n, 7).concat(ws.slice(0, n)); + dur = createDuration(val, period); + addSubtract(this, dur, direction); + return this; + }; } - var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( - '_' - ), - defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - defaultWeekdaysRegex = matchWord, - defaultWeekdaysShortRegex = matchWord, - defaultWeekdaysMinRegex = matchWord; + function addSubtract(mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = absRound(duration._days), + months = absRound(duration._months); - function localeWeekdays(m, format) { - var weekdays = isArray(this._weekdays) - ? this._weekdays - : this._weekdays[ - m && m !== true && this._weekdays.isFormat.test(format) - ? 'format' - : 'standalone' - ]; - return m === true - ? shiftWeekdays(weekdays, this._week.dow) - : m - ? weekdays[m.day()] - : weekdays; - } + if (!mom.isValid()) { + // No op + return; + } - function localeWeekdaysShort(m) { - return m === true - ? shiftWeekdays(this._weekdaysShort, this._week.dow) - : m - ? this._weekdaysShort[m.day()] - : this._weekdaysShort; - } + updateOffset = updateOffset == null ? true : updateOffset; - function localeWeekdaysMin(m) { - return m === true - ? shiftWeekdays(this._weekdaysMin, this._week.dow) - : m - ? this._weekdaysMin[m.day()] - : this._weekdaysMin; + if (months) { + setMonth(mom, get(mom, 'Month') + months * isAdding); + } + if (days) { + set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); + } + if (milliseconds) { + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); + } + if (updateOffset) { + hooks.updateOffset(mom, days || months); + } } - function handleStrictParse$1(weekdayName, format, strict) { - var i, - ii, - mom, - llc = weekdayName.toLocaleLowerCase(); - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._shortWeekdaysParse = []; - this._minWeekdaysParse = []; + var add = createAdder(1, 'add'), + subtract = createAdder(-1, 'subtract'); - for (i = 0; i < 7; ++i) { - mom = createUTC([2000, 1]).day(i); - this._minWeekdaysParse[i] = this.weekdaysMin( - mom, - '' - ).toLocaleLowerCase(); - this._shortWeekdaysParse[i] = this.weekdaysShort( - mom, - '' - ).toLocaleLowerCase(); - this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); - } - } + function isString(input) { + return typeof input === 'string' || input instanceof String; + } - if (strict) { - if (format === 'dddd') { - ii = indexOf.call(this._weekdaysParse, llc); - return ii !== -1 ? ii : null; - } else if (format === 'ddd') { - ii = indexOf.call(this._shortWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } - } else { - if (format === 'dddd') { - ii = indexOf.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._shortWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else if (format === 'ddd') { - ii = indexOf.call(this._shortWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._minWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._shortWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } - } + // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined + function isMomentInput(input) { + return ( + isMoment(input) || + isDate(input) || + isString(input) || + isNumber(input) || + isNumberOrStringArray(input) || + isMomentInputObject(input) || + input === null || + input === undefined + ); } - function localeWeekdaysParse(weekdayName, format, strict) { - var i, mom, regex; + function isMomentInputObject(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'years', + 'year', + 'y', + 'months', + 'month', + 'M', + 'days', + 'day', + 'd', + 'dates', + 'date', + 'D', + 'hours', + 'hour', + 'h', + 'minutes', + 'minute', + 'm', + 'seconds', + 'second', + 's', + 'milliseconds', + 'millisecond', + 'ms', + ], + i, + property, + propertyLen = properties.length; - if (this._weekdaysParseExact) { - return handleStrictParse$1.call(this, weekdayName, format, strict); + for (i = 0; i < propertyLen; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); } - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._minWeekdaysParse = []; - this._shortWeekdaysParse = []; - this._fullWeekdaysParse = []; + return objectTest && propertyTest; + } + + function isNumberOrStringArray(input) { + var arrayTest = isArray(input), + dataTypeTest = false; + if (arrayTest) { + dataTypeTest = + input.filter(function (item) { + return !isNumber(item) && isString(input); + }).length === 0; } + return arrayTest && dataTypeTest; + } - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already + function isCalendarSpec(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'sameDay', + 'nextDay', + 'lastDay', + 'nextWeek', + 'lastWeek', + 'sameElse', + ], + i, + property; - mom = createUTC([2000, 1]).day(i); - if (strict && !this._fullWeekdaysParse[i]) { - this._fullWeekdaysParse[i] = new RegExp( - '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', - 'i' - ); - this._shortWeekdaysParse[i] = new RegExp( - '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', - 'i' - ); - this._minWeekdaysParse[i] = new RegExp( - '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', - 'i' - ); - } - if (!this._weekdaysParse[i]) { - regex = - '^' + - this.weekdays(mom, '') + - '|^' + - this.weekdaysShort(mom, '') + - '|^' + - this.weekdaysMin(mom, ''); - this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if ( - strict && - format === 'dddd' && - this._fullWeekdaysParse[i].test(weekdayName) - ) { - return i; - } else if ( - strict && - format === 'ddd' && - this._shortWeekdaysParse[i].test(weekdayName) - ) { - return i; - } else if ( - strict && - format === 'dd' && - this._minWeekdaysParse[i].test(weekdayName) - ) { - return i; - } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { - return i; - } + for (i = 0; i < properties.length; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); } + + return objectTest && propertyTest; } - // MOMENTS + function getCalendarFormat(myMoment, now) { + var diff = myMoment.diff(now, 'days', true); + return diff < -6 + ? 'sameElse' + : diff < -1 + ? 'lastWeek' + : diff < 0 + ? 'lastDay' + : diff < 1 + ? 'sameDay' + : diff < 2 + ? 'nextDay' + : diff < 7 + ? 'nextWeek' + : 'sameElse'; + } - function getSetDayOfWeek(input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); - if (input != null) { - input = parseWeekday(input, this.localeData()); - return this.add(input - day, 'd'); - } else { - return day; + function calendar$1(time, formats) { + // Support for single parameter, formats only overload to the calendar function + if (arguments.length === 1) { + if (!arguments[0]) { + time = undefined; + formats = undefined; + } else if (isMomentInput(arguments[0])) { + time = arguments[0]; + formats = undefined; + } else if (isCalendarSpec(arguments[0])) { + formats = arguments[0]; + time = undefined; + } } + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + format = hooks.calendarFormat(this, sod) || 'sameElse', + output = + formats && + (isFunction(formats[format]) + ? formats[format].call(this, now) + : formats[format]); + + return this.format( + output || this.localeData().calendar(format, this, createLocal(now)) + ); } - function getSetLocaleDayOfWeek(input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; - return input == null ? weekday : this.add(input - weekday, 'd'); + function clone() { + return new Moment(this); } - function getSetISODayOfWeek(input) { - if (!this.isValid()) { - return input != null ? this : NaN; + function isAfter(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; } - - // behaves the same as moment#day except - // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) - // as a setter, sunday should belong to the previous week. - - if (input != null) { - var weekday = parseIsoWeekday(input, this.localeData()); - return this.day(this.day() % 7 ? weekday : weekday - 7); + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() > localInput.valueOf(); } else { - return this.day() || 7; + return localInput.valueOf() < this.clone().startOf(units).valueOf(); } } - function weekdaysRegex(isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysStrictRegex; - } else { - return this._weekdaysRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysRegex')) { - this._weekdaysRegex = defaultWeekdaysRegex; - } - return this._weekdaysStrictRegex && isStrict - ? this._weekdaysStrictRegex - : this._weekdaysRegex; + function isBefore(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; } - } - - function weekdaysShortRegex(isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysShortStrictRegex; - } else { - return this._weekdaysShortRegex; - } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() < localInput.valueOf(); } else { - if (!hasOwnProp(this, '_weekdaysShortRegex')) { - this._weekdaysShortRegex = defaultWeekdaysShortRegex; - } - return this._weekdaysShortStrictRegex && isStrict - ? this._weekdaysShortStrictRegex - : this._weekdaysShortRegex; + return this.clone().endOf(units).valueOf() < localInput.valueOf(); } } - function weekdaysMinRegex(isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysMinStrictRegex; - } else { - return this._weekdaysMinRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysMinRegex')) { - this._weekdaysMinRegex = defaultWeekdaysMinRegex; - } - return this._weekdaysMinStrictRegex && isStrict - ? this._weekdaysMinStrictRegex - : this._weekdaysMinRegex; + function isBetween(from, to, units, inclusivity) { + var localFrom = isMoment(from) ? from : createLocal(from), + localTo = isMoment(to) ? to : createLocal(to); + if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { + return false; } + inclusivity = inclusivity || '()'; + return ( + (inclusivity[0] === '(' + ? this.isAfter(localFrom, units) + : !this.isBefore(localFrom, units)) && + (inclusivity[1] === ')' + ? this.isBefore(localTo, units) + : !this.isAfter(localTo, units)) + ); } - function computeWeekdaysParse() { - function cmpLenRev(a, b) { - return b.length - a.length; + function isSame(input, units) { + var localInput = isMoment(input) ? input : createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; } - - var minPieces = [], - shortPieces = [], - longPieces = [], - mixedPieces = [], - i, - mom, - minp, - shortp, - longp; - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, 1]).day(i); - minp = regexEscape(this.weekdaysMin(mom, '')); - shortp = regexEscape(this.weekdaysShort(mom, '')); - longp = regexEscape(this.weekdays(mom, '')); - minPieces.push(minp); - shortPieces.push(shortp); - longPieces.push(longp); - mixedPieces.push(minp); - mixedPieces.push(shortp); - mixedPieces.push(longp); + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() === localInput.valueOf(); + } else { + inputMs = localInput.valueOf(); + return ( + this.clone().startOf(units).valueOf() <= inputMs && + inputMs <= this.clone().endOf(units).valueOf() + ); } - // Sorting makes sure if one weekday (or abbr) is a prefix of another it - // will match the longer piece. - minPieces.sort(cmpLenRev); - shortPieces.sort(cmpLenRev); - longPieces.sort(cmpLenRev); - mixedPieces.sort(cmpLenRev); - - this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._weekdaysShortRegex = this._weekdaysRegex; - this._weekdaysMinRegex = this._weekdaysRegex; - - this._weekdaysStrictRegex = new RegExp( - '^(' + longPieces.join('|') + ')', - 'i' - ); - this._weekdaysShortStrictRegex = new RegExp( - '^(' + shortPieces.join('|') + ')', - 'i' - ); - this._weekdaysMinStrictRegex = new RegExp( - '^(' + minPieces.join('|') + ')', - 'i' - ); } - // FORMATTING - - function hFormat() { - return this.hours() % 12 || 12; + function isSameOrAfter(input, units) { + return this.isSame(input, units) || this.isAfter(input, units); } - function kFormat() { - return this.hours() || 24; + function isSameOrBefore(input, units) { + return this.isSame(input, units) || this.isBefore(input, units); } - addFormatToken('H', ['HH', 2], 0, 'hour'); - addFormatToken('h', ['hh', 2], 0, hFormat); - addFormatToken('k', ['kk', 2], 0, kFormat); - - addFormatToken('hmm', 0, 0, function () { - return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); - }); - - addFormatToken('hmmss', 0, 0, function () { - return ( - '' + - hFormat.apply(this) + - zeroFill(this.minutes(), 2) + - zeroFill(this.seconds(), 2) - ); - }); - - addFormatToken('Hmm', 0, 0, function () { - return '' + this.hours() + zeroFill(this.minutes(), 2); - }); - - addFormatToken('Hmmss', 0, 0, function () { - return ( - '' + - this.hours() + - zeroFill(this.minutes(), 2) + - zeroFill(this.seconds(), 2) - ); - }); + function diff(input, units, asFloat) { + var that, zoneDelta, output; - function meridiem(token, lowercase) { - addFormatToken(token, 0, 0, function () { - return this.localeData().meridiem( - this.hours(), - this.minutes(), - lowercase - ); - }); - } + if (!this.isValid()) { + return NaN; + } - meridiem('a', true); - meridiem('A', false); + that = cloneWithOffset(input, this); - // ALIASES + if (!that.isValid()) { + return NaN; + } - addUnitAlias('hour', 'h'); + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; - // PRIORITY - addUnitPriority('hour', 13); + units = normalizeUnits(units); - // PARSING + switch (units) { + case 'year': + output = monthDiff(this, that) / 12; + break; + case 'month': + output = monthDiff(this, that); + break; + case 'quarter': + output = monthDiff(this, that) / 3; + break; + case 'second': + output = (this - that) / 1e3; + break; // 1000 + case 'minute': + output = (this - that) / 6e4; + break; // 1000 * 60 + case 'hour': + output = (this - that) / 36e5; + break; // 1000 * 60 * 60 + case 'day': + output = (this - that - zoneDelta) / 864e5; + break; // 1000 * 60 * 60 * 24, negate dst + case 'week': + output = (this - that - zoneDelta) / 6048e5; + break; // 1000 * 60 * 60 * 24 * 7, negate dst + default: + output = this - that; + } - function matchMeridiem(isStrict, locale) { - return locale._meridiemParse; + return asFloat ? output : absFloor(output); } - addRegexToken('a', matchMeridiem); - addRegexToken('A', matchMeridiem); - addRegexToken('H', match1to2); - addRegexToken('h', match1to2); - addRegexToken('k', match1to2); - addRegexToken('HH', match1to2, match2); - addRegexToken('hh', match1to2, match2); - addRegexToken('kk', match1to2, match2); + function monthDiff(a, b) { + if (a.date() < b.date()) { + // end-of-month calculations work correct when the start month has more + // days than the end month. + return -monthDiff(b, a); + } + // difference in months + var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, + adjust; - addRegexToken('hmm', match3to4); - addRegexToken('hmmss', match5to6); - addRegexToken('Hmm', match3to4); - addRegexToken('Hmmss', match5to6); + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } - addParseToken(['H', 'HH'], HOUR); - addParseToken(['k', 'kk'], function (input, array, config) { - var kInput = toInt(input); - array[HOUR] = kInput === 24 ? 0 : kInput; - }); - addParseToken(['a', 'A'], function (input, array, config) { - config._isPm = config._locale.isPM(input); - config._meridiem = input; - }); - addParseToken(['h', 'hh'], function (input, array, config) { - array[HOUR] = toInt(input); - getParsingFlags(config).bigHour = true; - }); - addParseToken('hmm', function (input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); - getParsingFlags(config).bigHour = true; - }); - addParseToken('hmmss', function (input, array, config) { - var pos1 = input.length - 4, - pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); - getParsingFlags(config).bigHour = true; - }); - addParseToken('Hmm', function (input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); - }); - addParseToken('Hmmss', function (input, array, config) { - var pos1 = input.length - 4, - pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); - }); + //check for negative zero, return zero if negative zero + return -(wholeMonthDiff + adjust) || 0; + } - // LOCALES + hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; - function localeIsPM(input) { - // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays - // Using charAt should be more compatible. - return (input + '').toLowerCase().charAt(0) === 'p'; + function toString() { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); } - var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, - // Setting the hour should keep the time, because the user explicitly - // specified which hour they want. So trying to maintain the same hour (in - // a new timezone) makes sense. Adding/subtracting hours does not follow - // this rule. - getSetHour = makeGetSet('Hours', true); - - function localeMeridiem(hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'pm' : 'PM'; - } else { - return isLower ? 'am' : 'AM'; + function toISOString(keepOffset) { + if (!this.isValid()) { + return null; + } + var utc = keepOffset !== true, + m = utc ? this.clone().utc() : this; + if (m.year() < 0 || m.year() > 9999) { + return formatMoment( + m, + utc + ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' + : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); + } + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + if (utc) { + return this.toDate().toISOString(); + } else { + return new Date(this.valueOf() + this.utcOffset() * 60 * 1000) + .toISOString() + .replace('Z', formatMoment(m, 'Z')); + } } + return formatMoment( + m, + utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); } - var baseConfig = { - calendar: defaultCalendar, - longDateFormat: defaultLongDateFormat, - invalidDate: defaultInvalidDate, - ordinal: defaultOrdinal, - dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, - relativeTime: defaultRelativeTime, - - months: defaultLocaleMonths, - monthsShort: defaultLocaleMonthsShort, - - week: defaultLocaleWeek, - - weekdays: defaultLocaleWeekdays, - weekdaysMin: defaultLocaleWeekdaysMin, - weekdaysShort: defaultLocaleWeekdaysShort, - - meridiemParse: defaultLocaleMeridiemParse, - }; + /** + * Return a human readable representation of a moment that can + * also be evaluated to get a new moment which is the same + * + * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects + */ + function inspect() { + if (!this.isValid()) { + return 'moment.invalid(/* ' + this._i + ' */)'; + } + var func = 'moment', + zone = '', + prefix, + year, + datetime, + suffix; + if (!this.isLocal()) { + func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; + zone = 'Z'; + } + prefix = '[' + func + '("]'; + year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; + datetime = '-MM-DD[T]HH:mm:ss.SSS'; + suffix = zone + '[")]'; - // internal storage for locale config files - var locales = {}, - localeFamilies = {}, - globalLocale; + return this.format(prefix + year + datetime + suffix); + } - function commonPrefix(arr1, arr2) { - var i, - minl = Math.min(arr1.length, arr2.length); - for (i = 0; i < minl; i += 1) { - if (arr1[i] !== arr2[i]) { - return i; - } + function format(inputString) { + if (!inputString) { + inputString = this.isUtc() + ? hooks.defaultFormatUtc + : hooks.defaultFormat; } - return minl; + var output = formatMoment(this, inputString); + return this.localeData().postformat(output); } - function normalizeLocale(key) { - return key ? key.toLowerCase().replace('_', '-') : key; + function from(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ to: this, from: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } } - // pick the locale from the array - // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each - // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root - function chooseLocale(names) { - var i = 0, - j, - next, - locale, - split; - - while (i < names.length) { - split = normalizeLocale(names[i]).split('-'); - j = split.length; - next = normalizeLocale(names[i + 1]); - next = next ? next.split('-') : null; - while (j > 0) { - locale = loadLocale(split.slice(0, j).join('-')); - if (locale) { - return locale; - } - if ( - next && - next.length >= j && - commonPrefix(split, next) >= j - 1 - ) { - //the next array item is better than a shallower substring of this one - break; - } - j--; - } - i++; - } - return globalLocale; + function fromNow(withoutSuffix) { + return this.from(createLocal(), withoutSuffix); } - function loadLocale(name) { - var oldLocale = null, - aliasedRequire; - // TODO: Find a better way to register and load all the locales in Node + function to(time, withoutSuffix) { if ( - locales[name] === undefined && - "object" !== 'undefined' && - module && - module.exports + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) ) { - try { - oldLocale = globalLocale._abbr; - aliasedRequire = undefined; - __webpack_require__("./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale sync recursive ^\\.\\/.*$")("./" + name); - getSetGlobalLocale(oldLocale); - } catch (e) { - // mark as not found to avoid repeating expensive file require call causing high CPU - // when trying to find en-US, en_US, en-us for every format call - locales[name] = null; // null means not found - } + return createDuration({ from: this, to: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); } - return locales[name]; } - // This function will load locale and then set the global locale. If - // no arguments are passed in, it will simply return the current global - // locale key. - function getSetGlobalLocale(key, values) { - var data; - if (key) { - if (isUndefined(values)) { - data = getLocale(key); - } else { - data = defineLocale(key, values); + function toNow(withoutSuffix) { + return this.to(createLocal(), withoutSuffix); + } + + // If passed a locale key, it will set the locale for this + // instance. Otherwise, it will return the locale configuration + // variables for this instance. + function locale(key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; } + return this; + } + } - if (data) { - // moment.duration._locale = moment._locale = data; - globalLocale = data; + var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); } else { - if (typeof console !== 'undefined' && console.warn) { - //warn user if arguments are passed but the locale could not be set - console.warn( - 'Locale ' + key + ' not found. Did you forget to load it?' - ); - } + return this.locale(key); } } + ); - return globalLocale._abbr; + function localeData() { + return this._locale; } - function defineLocale(name, config) { - if (config !== null) { - var locale, - parentConfig = baseConfig; - config.abbr = name; - if (locales[name] != null) { - deprecateSimple( - 'defineLocaleOverride', - 'use moment.updateLocale(localeName, config) to change ' + - 'an existing locale. moment.defineLocale(localeName, ' + - 'config) should only be used for creating a new locale ' + - 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.' - ); - parentConfig = locales[name]._config; - } else if (config.parentLocale != null) { - if (locales[config.parentLocale] != null) { - parentConfig = locales[config.parentLocale]._config; - } else { - locale = loadLocale(config.parentLocale); - if (locale != null) { - parentConfig = locale._config; - } else { - if (!localeFamilies[config.parentLocale]) { - localeFamilies[config.parentLocale] = []; - } - localeFamilies[config.parentLocale].push({ - name: name, - config: config, - }); - return null; - } - } - } - locales[name] = new Locale(mergeConfigs(parentConfig, config)); - - if (localeFamilies[name]) { - localeFamilies[name].forEach(function (x) { - defineLocale(x.name, x.config); - }); - } + var MS_PER_SECOND = 1000, + MS_PER_MINUTE = 60 * MS_PER_SECOND, + MS_PER_HOUR = 60 * MS_PER_MINUTE, + MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; - // backwards compat for now: also set the locale - // make sure we set the locale AFTER all child locales have been - // created, so we won't end up with the child locale set. - getSetGlobalLocale(name); + // actual modulo - handles negative numbers (for dates before 1970): + function mod$1(dividend, divisor) { + return ((dividend % divisor) + divisor) % divisor; + } - return locales[name]; + function localStartOfDate(y, m, d) { + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return new Date(y + 400, m, d) - MS_PER_400_YEARS; } else { - // useful for testing - delete locales[name]; - return null; + return new Date(y, m, d).valueOf(); } } - function updateLocale(name, config) { - if (config != null) { - var locale, - tmpLocale, - parentConfig = baseConfig; - - if (locales[name] != null && locales[name].parentLocale != null) { - // Update existing child locale in-place to avoid memory-leaks - locales[name].set(mergeConfigs(locales[name]._config, config)); - } else { - // MERGE - tmpLocale = loadLocale(name); - if (tmpLocale != null) { - parentConfig = tmpLocale._config; - } - config = mergeConfigs(parentConfig, config); - if (tmpLocale == null) { - // updateLocale is called for creating a new locale - // Set abbr so it will have a name (getters return - // undefined otherwise). - config.abbr = name; - } - locale = new Locale(config); - locale.parentLocale = locales[name]; - locales[name] = locale; - } - - // backwards compat for now: also set the locale - getSetGlobalLocale(name); + function utcStartOfDate(y, m, d) { + // Date.UTC remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; } else { - // pass null for config to unupdate, useful for tests - if (locales[name] != null) { - if (locales[name].parentLocale != null) { - locales[name] = locales[name].parentLocale; - if (name === getSetGlobalLocale()) { - getSetGlobalLocale(name); - } - } else if (locales[name] != null) { - delete locales[name]; - } - } + return Date.UTC(y, m, d); } - return locales[name]; } - // returns locale data - function getLocale(key) { - var locale; + function startOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } - if (key && key._locale && key._locale._abbr) { - key = key._locale._abbr; + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year(), 0, 1); + break; + case 'quarter': + time = startOfDate( + this.year(), + this.month() - (this.month() % 3), + 1 + ); + break; + case 'month': + time = startOfDate(this.year(), this.month(), 1); + break; + case 'week': + time = startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + ); + break; + case 'isoWeek': + time = startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + ); + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date()); + break; + case 'hour': + time = this._d.valueOf(); + time -= mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ); + break; + case 'minute': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_MINUTE); + break; + case 'second': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_SECOND); + break; } - if (!key) { - return globalLocale; + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } + + function endOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; } - if (!isArray(key)) { - //short-circuit everything else - locale = loadLocale(key); - if (locale) { - return locale; - } - key = [key]; + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year() + 1, 0, 1) - 1; + break; + case 'quarter': + time = + startOfDate( + this.year(), + this.month() - (this.month() % 3) + 3, + 1 + ) - 1; + break; + case 'month': + time = startOfDate(this.year(), this.month() + 1, 1) - 1; + break; + case 'week': + time = + startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + 7 + ) - 1; + break; + case 'isoWeek': + time = + startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + 7 + ) - 1; + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; + break; + case 'hour': + time = this._d.valueOf(); + time += + MS_PER_HOUR - + mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ) - + 1; + break; + case 'minute': + time = this._d.valueOf(); + time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; + break; + case 'second': + time = this._d.valueOf(); + time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; + break; } - return chooseLocale(key); + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; } - function listLocales() { - return keys(locales); + function valueOf() { + return this._d.valueOf() - (this._offset || 0) * 60000; } - function checkOverflow(m) { - var overflow, - a = m._a; + function unix() { + return Math.floor(this.valueOf() / 1000); + } - if (a && getParsingFlags(m).overflow === -2) { - overflow = - a[MONTH] < 0 || a[MONTH] > 11 - ? MONTH - : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) - ? DATE - : a[HOUR] < 0 || - a[HOUR] > 24 || - (a[HOUR] === 24 && - (a[MINUTE] !== 0 || - a[SECOND] !== 0 || - a[MILLISECOND] !== 0)) - ? HOUR - : a[MINUTE] < 0 || a[MINUTE] > 59 - ? MINUTE - : a[SECOND] < 0 || a[SECOND] > 59 - ? SECOND - : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 - ? MILLISECOND - : -1; + function toDate() { + return new Date(this.valueOf()); + } - if ( - getParsingFlags(m)._overflowDayOfYear && - (overflow < YEAR || overflow > DATE) - ) { - overflow = DATE; - } - if (getParsingFlags(m)._overflowWeeks && overflow === -1) { - overflow = WEEK; - } - if (getParsingFlags(m)._overflowWeekday && overflow === -1) { - overflow = WEEKDAY; - } + function toArray() { + var m = this; + return [ + m.year(), + m.month(), + m.date(), + m.hour(), + m.minute(), + m.second(), + m.millisecond(), + ]; + } - getParsingFlags(m).overflow = overflow; - } + function toObject() { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds(), + }; + } - return m; + function toJSON() { + // new Date(NaN).toJSON() === null + return this.isValid() ? this.toISOString() : null; } - // iso 8601 regex - // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) - var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, - basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, - tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, - isoDates = [ - ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], - ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], - ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], - ['GGGG-[W]WW', /\d{4}-W\d\d/, false], - ['YYYY-DDD', /\d{4}-\d{3}/], - ['YYYY-MM', /\d{4}-\d\d/, false], - ['YYYYYYMMDD', /[+-]\d{10}/], - ['YYYYMMDD', /\d{8}/], - ['GGGG[W]WWE', /\d{4}W\d{3}/], - ['GGGG[W]WW', /\d{4}W\d{2}/, false], - ['YYYYDDD', /\d{7}/], - ['YYYYMM', /\d{6}/, false], - ['YYYY', /\d{4}/, false], - ], - // iso time formats and regexes - isoTimes = [ - ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], - ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], - ['HH:mm:ss', /\d\d:\d\d:\d\d/], - ['HH:mm', /\d\d:\d\d/], - ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], - ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], - ['HHmmss', /\d\d\d\d\d\d/], - ['HHmm', /\d\d\d\d/], - ['HH', /\d\d/], - ], - aspNetJsonRegex = /^\/?Date\((-?\d+)/i, - // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 - rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, - obsOffsets = { - UT: 0, - GMT: 0, - EDT: -4 * 60, - EST: -5 * 60, - CDT: -5 * 60, - CST: -6 * 60, - MDT: -6 * 60, - MST: -7 * 60, - PDT: -7 * 60, - PST: -8 * 60, + function isValid$2() { + return isValid(this); + } + + function parsingFlags() { + return extend({}, getParsingFlags(this)); + } + + function invalidAt() { + return getParsingFlags(this).overflow; + } + + function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict, }; + } + + addFormatToken('N', 0, 0, 'eraAbbr'); + addFormatToken('NN', 0, 0, 'eraAbbr'); + addFormatToken('NNN', 0, 0, 'eraAbbr'); + addFormatToken('NNNN', 0, 0, 'eraName'); + addFormatToken('NNNNN', 0, 0, 'eraNarrow'); + + addFormatToken('y', ['y', 1], 'yo', 'eraYear'); + addFormatToken('y', ['yy', 2], 0, 'eraYear'); + addFormatToken('y', ['yyy', 3], 0, 'eraYear'); + addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); + + addRegexToken('N', matchEraAbbr); + addRegexToken('NN', matchEraAbbr); + addRegexToken('NNN', matchEraAbbr); + addRegexToken('NNNN', matchEraName); + addRegexToken('NNNNN', matchEraNarrow); + + addParseToken( + ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], + function (input, array, config, token) { + var era = config._locale.erasParse(input, token, config._strict); + if (era) { + getParsingFlags(config).era = era; + } else { + getParsingFlags(config).invalidEra = input; + } + } + ); + + addRegexToken('y', matchUnsigned); + addRegexToken('yy', matchUnsigned); + addRegexToken('yyy', matchUnsigned); + addRegexToken('yyyy', matchUnsigned); + addRegexToken('yo', matchEraYearOrdinal); + + addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); + addParseToken(['yo'], function (input, array, config, token) { + var match; + if (config._locale._eraYearOrdinalRegex) { + match = input.match(config._locale._eraYearOrdinalRegex); + } + + if (config._locale.eraYearOrdinalParse) { + array[YEAR] = config._locale.eraYearOrdinalParse(input, match); + } else { + array[YEAR] = parseInt(input, 10); + } + }); + + function localeEras(m, format) { + var i, + l, + date, + eras = this._eras || getLocale('en')._eras; + for (i = 0, l = eras.length; i < l; ++i) { + switch (typeof eras[i].since) { + case 'string': + // truncate time + date = hooks(eras[i].since).startOf('day'); + eras[i].since = date.valueOf(); + break; + } - // date from iso format - function configFromISO(config) { + switch (typeof eras[i].until) { + case 'undefined': + eras[i].until = +Infinity; + break; + case 'string': + // truncate time + date = hooks(eras[i].until).startOf('day').valueOf(); + eras[i].until = date.valueOf(); + break; + } + } + return eras; + } + + function localeErasParse(eraName, format, strict) { var i, l, - string = config._i, - match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), - allowTime, - dateFormat, - timeFormat, - tzFormat; + eras = this.eras(), + name, + abbr, + narrow; + eraName = eraName.toUpperCase(); - if (match) { - getParsingFlags(config).iso = true; + for (i = 0, l = eras.length; i < l; ++i) { + name = eras[i].name.toUpperCase(); + abbr = eras[i].abbr.toUpperCase(); + narrow = eras[i].narrow.toUpperCase(); - for (i = 0, l = isoDates.length; i < l; i++) { - if (isoDates[i][1].exec(match[1])) { - dateFormat = isoDates[i][0]; - allowTime = isoDates[i][2] !== false; - break; - } - } - if (dateFormat == null) { - config._isValid = false; - return; - } - if (match[3]) { - for (i = 0, l = isoTimes.length; i < l; i++) { - if (isoTimes[i][1].exec(match[3])) { - // match[2] should be 'T' or space - timeFormat = (match[2] || ' ') + isoTimes[i][0]; + if (strict) { + switch (format) { + case 'N': + case 'NN': + case 'NNN': + if (abbr === eraName) { + return eras[i]; + } + break; + + case 'NNNN': + if (name === eraName) { + return eras[i]; + } + break; + + case 'NNNNN': + if (narrow === eraName) { + return eras[i]; + } break; - } - } - if (timeFormat == null) { - config._isValid = false; - return; - } - } - if (!allowTime && timeFormat != null) { - config._isValid = false; - return; - } - if (match[4]) { - if (tzRegex.exec(match[4])) { - tzFormat = 'Z'; - } else { - config._isValid = false; - return; } + } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { + return eras[i]; } - config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); - configFromStringAndFormat(config); + } + } + + function localeErasConvertYear(era, year) { + var dir = era.since <= era.until ? +1 : -1; + if (year === undefined) { + return hooks(era.since).year(); } else { - config._isValid = false; + return hooks(era.since).year() + (year - era.offset) * dir; } } - function extractFromRFC2822Strings( - yearStr, - monthStr, - dayStr, - hourStr, - minuteStr, - secondStr - ) { - var result = [ - untruncateYear(yearStr), - defaultLocaleMonthsShort.indexOf(monthStr), - parseInt(dayStr, 10), - parseInt(hourStr, 10), - parseInt(minuteStr, 10), - ]; + function getEraName() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); - if (secondStr) { - result.push(parseInt(secondStr, 10)); + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].name; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].name; + } } - return result; + return ''; } - function untruncateYear(yearStr) { - var year = parseInt(yearStr, 10); - if (year <= 49) { - return 2000 + year; - } else if (year <= 999) { - return 1900 + year; + function getEraNarrow() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].narrow; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].narrow; + } } - return year; - } - function preprocessRFC2822(s) { - // Remove comments and folding whitespace and replace multiple-spaces with a single space - return s - .replace(/\([^)]*\)|[\n\t]/g, ' ') - .replace(/(\s\s+)/g, ' ') - .replace(/^\s\s*/, '') - .replace(/\s\s*$/, ''); + return ''; } - function checkWeekday(weekdayStr, parsedInput, config) { - if (weekdayStr) { - // TODO: Replace the vanilla JS Date object with an independent day-of-week check. - var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), - weekdayActual = new Date( - parsedInput[0], - parsedInput[1], - parsedInput[2] - ).getDay(); - if (weekdayProvided !== weekdayActual) { - getParsingFlags(config).weekdayMismatch = true; - config._isValid = false; - return false; + function getEraAbbr() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].abbr; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].abbr; } } - return true; - } - function calculateOffset(obsOffset, militaryOffset, numOffset) { - if (obsOffset) { - return obsOffsets[obsOffset]; - } else if (militaryOffset) { - // the only allowed military tz is Z - return 0; - } else { - var hm = parseInt(numOffset, 10), - m = hm % 100, - h = (hm - m) / 100; - return h * 60 + m; - } + return ''; } - // date and time from ref 2822 format - function configFromRFC2822(config) { - var match = rfc2822.exec(preprocessRFC2822(config._i)), - parsedArray; - if (match) { - parsedArray = extractFromRFC2822Strings( - match[4], - match[3], - match[2], - match[5], - match[6], - match[7] - ); - if (!checkWeekday(match[1], parsedArray, config)) { - return; - } - - config._a = parsedArray; - config._tzm = calculateOffset(match[8], match[9], match[10]); + function getEraYear() { + var i, + l, + dir, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + dir = eras[i].since <= eras[i].until ? +1 : -1; - config._d = createUTCDate.apply(null, config._a); - config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + // truncate time + val = this.clone().startOf('day').valueOf(); - getParsingFlags(config).rfc2822 = true; - } else { - config._isValid = false; + if ( + (eras[i].since <= val && val <= eras[i].until) || + (eras[i].until <= val && val <= eras[i].since) + ) { + return ( + (this.year() - hooks(eras[i].since).year()) * dir + + eras[i].offset + ); + } } + + return this.year(); } - // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict - function configFromString(config) { - var matched = aspNetJsonRegex.exec(config._i); - if (matched !== null) { - config._d = new Date(+matched[1]); - return; + function erasNameRegex(isStrict) { + if (!hasOwnProp(this, '_erasNameRegex')) { + computeErasParse.call(this); } + return isStrict ? this._erasNameRegex : this._erasRegex; + } - configFromISO(config); - if (config._isValid === false) { - delete config._isValid; - } else { - return; + function erasAbbrRegex(isStrict) { + if (!hasOwnProp(this, '_erasAbbrRegex')) { + computeErasParse.call(this); } + return isStrict ? this._erasAbbrRegex : this._erasRegex; + } - configFromRFC2822(config); - if (config._isValid === false) { - delete config._isValid; - } else { - return; + function erasNarrowRegex(isStrict) { + if (!hasOwnProp(this, '_erasNarrowRegex')) { + computeErasParse.call(this); } + return isStrict ? this._erasNarrowRegex : this._erasRegex; + } - if (config._strict) { - config._isValid = false; - } else { - // Final attempt, use Input Fallback - hooks.createFromInputFallback(config); - } + function matchEraAbbr(isStrict, locale) { + return locale.erasAbbrRegex(isStrict); } - hooks.createFromInputFallback = deprecate( - 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + - 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + - 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', - function (config) { - config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); - } - ); + function matchEraName(isStrict, locale) { + return locale.erasNameRegex(isStrict); + } - // Pick the first defined of two or three arguments. - function defaults(a, b, c) { - if (a != null) { - return a; - } - if (b != null) { - return b; - } - return c; + function matchEraNarrow(isStrict, locale) { + return locale.erasNarrowRegex(isStrict); } - function currentDateArray(config) { - // hooks is actually the exported moment object - var nowValue = new Date(hooks.now()); - if (config._useUTC) { - return [ - nowValue.getUTCFullYear(), - nowValue.getUTCMonth(), - nowValue.getUTCDate(), - ]; - } - return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; + function matchEraYearOrdinal(isStrict, locale) { + return locale._eraYearOrdinalRegex || matchUnsigned; } - // convert an array to a date. - // the array should mirror the parameters below - // note: all values past the year are optional and will default to the lowest possible value. - // [year, month, day , hour, minute, second, millisecond] - function configFromArray(config) { - var i, - date, - input = [], - currentDate, - expectedWeekday, - yearToUse; + function computeErasParse() { + var abbrPieces = [], + namePieces = [], + narrowPieces = [], + mixedPieces = [], + i, + l, + eras = this.eras(); - if (config._d) { - return; + for (i = 0, l = eras.length; i < l; ++i) { + namePieces.push(regexEscape(eras[i].name)); + abbrPieces.push(regexEscape(eras[i].abbr)); + narrowPieces.push(regexEscape(eras[i].narrow)); + + mixedPieces.push(regexEscape(eras[i].name)); + mixedPieces.push(regexEscape(eras[i].abbr)); + mixedPieces.push(regexEscape(eras[i].narrow)); } - currentDate = currentDateArray(config); + this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); + this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); + this._erasNarrowRegex = new RegExp( + '^(' + narrowPieces.join('|') + ')', + 'i' + ); + } - //compute day of the year from weeks and weekdays - if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { - dayOfYearFromWeekInfo(config); - } + // FORMATTING - //if the day of the year is set, figure out what it is - if (config._dayOfYear != null) { - yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); - if ( - config._dayOfYear > daysInYear(yearToUse) || - config._dayOfYear === 0 - ) { - getParsingFlags(config)._overflowDayOfYear = true; - } + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); - date = createUTCDate(yearToUse, 0, config._dayOfYear); - config._a[MONTH] = date.getUTCMonth(); - config._a[DATE] = date.getUTCDate(); - } + function addWeekYearFormatToken(token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } - // Default to current date. - // * if no year, month, day of month are given, default to today - // * if day of month is given, default month and year - // * if month is given, default only year - // * if year is given, don't default anything - for (i = 0; i < 3 && config._a[i] == null; ++i) { - config._a[i] = input[i] = currentDate[i]; - } + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); - // Zero out whatever was not defaulted, including time - for (; i < 7; i++) { - config._a[i] = input[i] = - config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i]; - } + // ALIASES - // Check for 24:00:00.000 - if ( - config._a[HOUR] === 24 && - config._a[MINUTE] === 0 && - config._a[SECOND] === 0 && - config._a[MILLISECOND] === 0 - ) { - config._nextDay = true; - config._a[HOUR] = 0; - } + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); - config._d = (config._useUTC ? createUTCDate : createDate).apply( - null, - input - ); - expectedWeekday = config._useUTC - ? config._d.getUTCDay() - : config._d.getDay(); + // PRIORITY - // Apply timezone offset from input. The actual utcOffset can be changed - // with parseZone. - if (config._tzm != null) { - config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); - } + addUnitPriority('weekYear', 1); + addUnitPriority('isoWeekYear', 1); - if (config._nextDay) { - config._a[HOUR] = 24; - } + // PARSING - // check for mismatching day of week - if ( - config._w && - typeof config._w.d !== 'undefined' && - config._w.d !== expectedWeekday - ) { - getParsingFlags(config).weekdayMismatch = true; + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); + + addWeekParseToken( + ['gggg', 'ggggg', 'GGGG', 'GGGGG'], + function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); } - } + ); - function dayOfYearFromWeekInfo(config) { - var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = hooks.parseTwoDigitYear(input); + }); - w = config._w; - if (w.GG != null || w.W != null || w.E != null) { - dow = 1; - doy = 4; + // MOMENTS - // TODO: We need to take the current isoWeekYear, but that depends on - // how we interpret now (local, utc, fixed offset). So create - // a now version of current config (take local/utc/offset flags, and - // create now). - weekYear = defaults( - w.GG, - config._a[YEAR], - weekOfYear(createLocal(), 1, 4).year - ); - week = defaults(w.W, 1); - weekday = defaults(w.E, 1); - if (weekday < 1 || weekday > 7) { - weekdayOverflow = true; - } - } else { - dow = config._locale._week.dow; - doy = config._locale._week.doy; + function getSetWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy + ); + } - curWeek = weekOfYear(createLocal(), dow, doy); + function getSetISOWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.isoWeek(), + this.isoWeekday(), + 1, + 4 + ); + } + + function getISOWeeksInYear() { + return weeksInYear(this.year(), 1, 4); + } + + function getISOWeeksInISOWeekYear() { + return weeksInYear(this.isoWeekYear(), 1, 4); + } - weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); + function getWeeksInYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } - // Default to current week. - week = defaults(w.w, curWeek.week); + function getWeeksInWeekYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); + } - if (w.d != null) { - // weekday -- low day numbers are considered next week - weekday = w.d; - if (weekday < 0 || weekday > 6) { - weekdayOverflow = true; - } - } else if (w.e != null) { - // local weekday -- counting starts from beginning of week - weekday = w.e + dow; - if (w.e < 0 || w.e > 6) { - weekdayOverflow = true; - } - } else { - // default to beginning of week - weekday = dow; - } - } - if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { - getParsingFlags(config)._overflowWeeks = true; - } else if (weekdayOverflow != null) { - getParsingFlags(config)._overflowWeekday = true; + function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; } else { - temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); - config._a[YEAR] = temp.year; - config._dayOfYear = temp.dayOfYear; + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); } } - // constant that refers to the ISO standard - hooks.ISO_8601 = function () {}; + function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); - // constant that refers to the RFC 2822 form - hooks.RFC_2822 = function () {}; + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; + } - // date from string and format string - function configFromStringAndFormat(config) { - // TODO: Move this to another part of the creation flow to prevent circular deps - if (config._f === hooks.ISO_8601) { - configFromISO(config); - return; - } - if (config._f === hooks.RFC_2822) { - configFromRFC2822(config); - return; - } - config._a = []; - getParsingFlags(config).empty = true; + // FORMATTING - // This array is used to make a Date, either with `new Date` or `Date.UTC` - var string = '' + config._i, - i, - parsedInput, - tokens, - token, - skipped, - stringLength = string.length, - totalParsedInputLength = 0, - era; + addFormatToken('Q', 0, 'Qo', 'quarter'); - tokens = - expandFormat(config._f, config._locale).match(formattingTokens) || []; + // ALIASES - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - parsedInput = (string.match(getParseRegexForToken(token, config)) || - [])[0]; - if (parsedInput) { - skipped = string.substr(0, string.indexOf(parsedInput)); - if (skipped.length > 0) { - getParsingFlags(config).unusedInput.push(skipped); - } - string = string.slice( - string.indexOf(parsedInput) + parsedInput.length - ); - totalParsedInputLength += parsedInput.length; - } - // don't parse if it's not a known token - if (formatTokenFunctions[token]) { - if (parsedInput) { - getParsingFlags(config).empty = false; - } else { - getParsingFlags(config).unusedTokens.push(token); - } - addTimeToArrayFromToken(token, parsedInput, config); - } else if (config._strict && !parsedInput) { - getParsingFlags(config).unusedTokens.push(token); - } - } + addUnitAlias('quarter', 'Q'); - // add remaining unparsed input length to the string - getParsingFlags(config).charsLeftOver = - stringLength - totalParsedInputLength; - if (string.length > 0) { - getParsingFlags(config).unusedInput.push(string); - } + // PRIORITY - // clear _12h flag if hour is <= 12 - if ( - config._a[HOUR] <= 12 && - getParsingFlags(config).bigHour === true && - config._a[HOUR] > 0 - ) { - getParsingFlags(config).bigHour = undefined; - } + addUnitPriority('quarter', 7); - getParsingFlags(config).parsedDateParts = config._a.slice(0); - getParsingFlags(config).meridiem = config._meridiem; - // handle meridiem - config._a[HOUR] = meridiemFixWrap( - config._locale, - config._a[HOUR], - config._meridiem - ); + // PARSING - // handle era - era = getParsingFlags(config).era; - if (era !== null) { - config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); - } + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); - configFromArray(config); - checkOverflow(config); + // MOMENTS + + function getSetQuarter(input) { + return input == null + ? Math.ceil((this.month() + 1) / 3) + : this.month((input - 1) * 3 + (this.month() % 3)); } - function meridiemFixWrap(locale, hour, meridiem) { - var isPm; + // FORMATTING - if (meridiem == null) { - // nothing to do - return hour; - } - if (locale.meridiemHour != null) { - return locale.meridiemHour(hour, meridiem); - } else if (locale.isPM != null) { - // Fallback - isPm = locale.isPM(meridiem); - if (isPm && hour < 12) { - hour += 12; - } - if (!isPm && hour === 12) { - hour = 0; - } - return hour; - } else { - // this is not supposed to happen - return hour; - } - } + addFormatToken('D', ['DD', 2], 'Do', 'date'); - // date from string and array of format strings - function configFromStringAndArray(config) { - var tempConfig, - bestMoment, - scoreToBeat, - i, - currentScore, - validFormatFound, - bestFormatIsValid = false; + // ALIASES - if (config._f.length === 0) { - getParsingFlags(config).invalidFormat = true; - config._d = new Date(NaN); - return; - } + addUnitAlias('date', 'D'); - for (i = 0; i < config._f.length; i++) { - currentScore = 0; - validFormatFound = false; - tempConfig = copyConfig({}, config); - if (config._useUTC != null) { - tempConfig._useUTC = config._useUTC; - } - tempConfig._f = config._f[i]; - configFromStringAndFormat(tempConfig); + // PRIORITY + addUnitPriority('date', 9); - if (isValid(tempConfig)) { - validFormatFound = true; - } + // PARSING - // if there is any input that was not parsed add a penalty for that format - currentScore += getParsingFlags(tempConfig).charsLeftOver; + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + // TODO: Remove "ordinalParse" fallback in next major release. + return isStrict + ? locale._dayOfMonthOrdinalParse || locale._ordinalParse + : locale._dayOfMonthOrdinalParseLenient; + }); - //or tokens - currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0]); + }); - getParsingFlags(tempConfig).score = currentScore; + // MOMENTS - if (!bestFormatIsValid) { - if ( - scoreToBeat == null || - currentScore < scoreToBeat || - validFormatFound - ) { - scoreToBeat = currentScore; - bestMoment = tempConfig; - if (validFormatFound) { - bestFormatIsValid = true; - } - } - } else { - if (currentScore < scoreToBeat) { - scoreToBeat = currentScore; - bestMoment = tempConfig; - } - } - } + var getSetDayOfMonth = makeGetSet('Date', true); - extend(config, bestMoment || tempConfig); - } + // FORMATTING - function configFromObject(config) { - if (config._d) { - return; - } + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); - var i = normalizeObjectUnits(config._i), - dayOrDate = i.day === undefined ? i.date : i.day; - config._a = map( - [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], - function (obj) { - return obj && parseInt(obj, 10); - } - ); + // ALIASES - configFromArray(config); - } + addUnitAlias('dayOfYear', 'DDD'); - function createFromConfig(config) { - var res = new Moment(checkOverflow(prepareConfig(config))); - if (res._nextDay) { - // Adding is smart enough around DST - res.add(1, 'd'); - res._nextDay = undefined; - } + // PRIORITY + addUnitPriority('dayOfYear', 4); - return res; + // PARSING + + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + // MOMENTS + + function getSetDayOfYear(input) { + var dayOfYear = + Math.round( + (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5 + ) + 1; + return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); } - function prepareConfig(config) { - var input = config._i, - format = config._f; + // FORMATTING - config._locale = config._locale || getLocale(config._l); + addFormatToken('m', ['mm', 2], 0, 'minute'); - if (input === null || (format === undefined && input === '')) { - return createInvalid({ nullInput: true }); - } + // ALIASES - if (typeof input === 'string') { - config._i = input = config._locale.preparse(input); - } + addUnitAlias('minute', 'm'); - if (isMoment(input)) { - return new Moment(checkOverflow(input)); - } else if (isDate(input)) { - config._d = input; - } else if (isArray(format)) { - configFromStringAndArray(config); - } else if (format) { - configFromStringAndFormat(config); - } else { - configFromInput(config); - } + // PRIORITY - if (!isValid(config)) { - config._d = null; - } + addUnitPriority('minute', 14); - return config; - } + // PARSING - function configFromInput(config) { - var input = config._i; - if (isUndefined(input)) { - config._d = new Date(hooks.now()); - } else if (isDate(input)) { - config._d = new Date(input.valueOf()); - } else if (typeof input === 'string') { - configFromString(config); - } else if (isArray(input)) { - config._a = map(input.slice(0), function (obj) { - return parseInt(obj, 10); - }); - configFromArray(config); - } else if (isObject(input)) { - configFromObject(config); - } else if (isNumber(input)) { - // from milliseconds - config._d = new Date(input); - } else { - hooks.createFromInputFallback(config); - } - } + addRegexToken('m', match1to2); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); - function createLocalOrUTC(input, format, locale, strict, isUTC) { - var c = {}; + // MOMENTS - if (format === true || format === false) { - strict = format; - format = undefined; - } + var getSetMinute = makeGetSet('Minutes', false); - if (locale === true || locale === false) { - strict = locale; - locale = undefined; - } + // FORMATTING - if ( - (isObject(input) && isObjectEmpty(input)) || - (isArray(input) && input.length === 0) - ) { - input = undefined; - } - // object construction must be done this way. - // https://github.com/moment/moment/issues/1423 - c._isAMomentObject = true; - c._useUTC = c._isUTC = isUTC; - c._l = locale; - c._i = input; - c._f = format; - c._strict = strict; + addFormatToken('s', ['ss', 2], 0, 'second'); - return createFromConfig(c); - } + // ALIASES - function createLocal(input, format, locale, strict) { - return createLocalOrUTC(input, format, locale, strict, false); - } + addUnitAlias('second', 's'); - var prototypeMin = deprecate( - 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', - function () { - var other = createLocal.apply(null, arguments); - if (this.isValid() && other.isValid()) { - return other < this ? this : other; - } else { - return createInvalid(); - } - } - ), - prototypeMax = deprecate( - 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', - function () { - var other = createLocal.apply(null, arguments); - if (this.isValid() && other.isValid()) { - return other > this ? this : other; - } else { - return createInvalid(); - } - } - ); + // PRIORITY - // Pick a moment m from moments so that m[fn](other) is true for all - // other. This relies on the function fn to be transitive. - // - // moments should either be an array of moment objects or an array, whose - // first element is an array of moment objects. - function pickBy(fn, moments) { - var res, i; - if (moments.length === 1 && isArray(moments[0])) { - moments = moments[0]; - } - if (!moments.length) { - return createLocal(); - } - res = moments[0]; - for (i = 1; i < moments.length; ++i) { - if (!moments[i].isValid() || moments[i][fn](res)) { - res = moments[i]; - } - } - return res; - } + addUnitPriority('second', 15); - // TODO: Use [].sort instead? - function min() { - var args = [].slice.call(arguments, 0); + // PARSING - return pickBy('isBefore', args); - } + addRegexToken('s', match1to2); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); - function max() { - var args = [].slice.call(arguments, 0); + // MOMENTS - return pickBy('isAfter', args); - } + var getSetSecond = makeGetSet('Seconds', false); - var now = function () { - return Date.now ? Date.now() : +new Date(); - }; + // FORMATTING - var ordering = [ - 'year', - 'quarter', - 'month', - 'week', - 'day', - 'hour', - 'minute', - 'second', - 'millisecond', - ]; + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); + }); - function isDurationValid(m) { - var key, - unitHasDecimal = false, - i; - for (key in m) { - if ( - hasOwnProp(m, key) && - !( - indexOf.call(ordering, key) !== -1 && - (m[key] == null || !isNaN(m[key])) - ) - ) { - return false; - } - } + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); - for (i = 0; i < ordering.length; ++i) { - if (m[ordering[i]]) { - if (unitHasDecimal) { - return false; // only allow non-integers for smallest unit - } - if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { - unitHasDecimal = true; - } - } - } + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); + + // ALIASES + + addUnitAlias('millisecond', 'ms'); + + // PRIORITY - return true; - } + addUnitPriority('millisecond', 16); - function isValid$1() { - return this._isValid; + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token, getSetMillisecond; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); } - function createInvalid$1() { - return createDuration(NaN); + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); } - function Duration(duration) { - var normalizedInput = normalizeObjectUnits(duration), - years = normalizedInput.year || 0, - quarters = normalizedInput.quarter || 0, - months = normalizedInput.month || 0, - weeks = normalizedInput.week || normalizedInput.isoWeek || 0, - days = normalizedInput.day || 0, - hours = normalizedInput.hour || 0, - minutes = normalizedInput.minute || 0, - seconds = normalizedInput.second || 0, - milliseconds = normalizedInput.millisecond || 0; + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } - this._isValid = isDurationValid(normalizedInput); + getSetMillisecond = makeGetSet('Milliseconds', false); - // representation for dateAddRemove - this._milliseconds = - +milliseconds + - seconds * 1e3 + // 1000 - minutes * 6e4 + // 1000 * 60 - hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 - // Because of dateAddRemove treats 24 hours as different from a - // day when working around DST, we need to store them separately - this._days = +days + weeks * 7; - // It is impossible to translate months into days without knowing - // which months you are are talking about, so we have to store - // it separately. - this._months = +months + quarters * 3 + years * 12; + // FORMATTING - this._data = {}; + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); - this._locale = getLocale(); + // MOMENTS - this._bubble(); + function getZoneAbbr() { + return this._isUTC ? 'UTC' : ''; } - function isDuration(obj) { - return obj instanceof Duration; + function getZoneName() { + return this._isUTC ? 'Coordinated Universal Time' : ''; } - function absRound(number) { - if (number < 0) { - return Math.round(-1 * number) * -1; - } else { - return Math.round(number); - } + var proto = Moment.prototype; + + proto.add = add; + proto.calendar = calendar$1; + proto.clone = clone; + proto.diff = diff; + proto.endOf = endOf; + proto.format = format; + proto.from = from; + proto.fromNow = fromNow; + proto.to = to; + proto.toNow = toNow; + proto.get = stringGet; + proto.invalidAt = invalidAt; + proto.isAfter = isAfter; + proto.isBefore = isBefore; + proto.isBetween = isBetween; + proto.isSame = isSame; + proto.isSameOrAfter = isSameOrAfter; + proto.isSameOrBefore = isSameOrBefore; + proto.isValid = isValid$2; + proto.lang = lang; + proto.locale = locale; + proto.localeData = localeData; + proto.max = prototypeMax; + proto.min = prototypeMin; + proto.parsingFlags = parsingFlags; + proto.set = stringSet; + proto.startOf = startOf; + proto.subtract = subtract; + proto.toArray = toArray; + proto.toObject = toObject; + proto.toDate = toDate; + proto.toISOString = toISOString; + proto.inspect = inspect; + if (typeof Symbol !== 'undefined' && Symbol.for != null) { + proto[Symbol.for('nodejs.util.inspect.custom')] = function () { + return 'Moment<' + this.format() + '>'; + }; } + proto.toJSON = toJSON; + proto.toString = toString; + proto.unix = unix; + proto.valueOf = valueOf; + proto.creationData = creationData; + proto.eraName = getEraName; + proto.eraNarrow = getEraNarrow; + proto.eraAbbr = getEraAbbr; + proto.eraYear = getEraYear; + proto.year = getSetYear; + proto.isLeapYear = getIsLeapYear; + proto.weekYear = getSetWeekYear; + proto.isoWeekYear = getSetISOWeekYear; + proto.quarter = proto.quarters = getSetQuarter; + proto.month = getSetMonth; + proto.daysInMonth = getDaysInMonth; + proto.week = proto.weeks = getSetWeek; + proto.isoWeek = proto.isoWeeks = getSetISOWeek; + proto.weeksInYear = getWeeksInYear; + proto.weeksInWeekYear = getWeeksInWeekYear; + proto.isoWeeksInYear = getISOWeeksInYear; + proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; + proto.date = getSetDayOfMonth; + proto.day = proto.days = getSetDayOfWeek; + proto.weekday = getSetLocaleDayOfWeek; + proto.isoWeekday = getSetISODayOfWeek; + proto.dayOfYear = getSetDayOfYear; + proto.hour = proto.hours = getSetHour; + proto.minute = proto.minutes = getSetMinute; + proto.second = proto.seconds = getSetSecond; + proto.millisecond = proto.milliseconds = getSetMillisecond; + proto.utcOffset = getSetOffset; + proto.utc = setOffsetToUTC; + proto.local = setOffsetToLocal; + proto.parseZone = setOffsetToParsedOffset; + proto.hasAlignedHourOffset = hasAlignedHourOffset; + proto.isDST = isDaylightSavingTime; + proto.isLocal = isLocal; + proto.isUtcOffset = isUtcOffset; + proto.isUtc = isUtc; + proto.isUTC = isUtc; + proto.zoneAbbr = getZoneAbbr; + proto.zoneName = getZoneName; + proto.dates = deprecate( + 'dates accessor is deprecated. Use date instead.', + getSetDayOfMonth + ); + proto.months = deprecate( + 'months accessor is deprecated. Use month instead', + getSetMonth + ); + proto.years = deprecate( + 'years accessor is deprecated. Use year instead', + getSetYear + ); + proto.zone = deprecate( + 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', + getSetZone + ); + proto.isDSTShifted = deprecate( + 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', + isDaylightSavingTimeShifted + ); - // compare two arrays, return the number of differences - function compareArrays(array1, array2, dontConvert) { - var len = Math.min(array1.length, array2.length), - lengthDiff = Math.abs(array1.length - array2.length), - diffs = 0, - i; - for (i = 0; i < len; i++) { - if ( - (dontConvert && array1[i] !== array2[i]) || - (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) - ) { - diffs++; - } - } - return diffs + lengthDiff; + function createUnix(input) { + return createLocal(input * 1000); } - // FORMATTING + function createInZone() { + return createLocal.apply(null, arguments).parseZone(); + } - function offset(token, separator) { - addFormatToken(token, 0, 0, function () { - var offset = this.utcOffset(), - sign = '+'; - if (offset < 0) { - offset = -offset; - sign = '-'; - } - return ( - sign + - zeroFill(~~(offset / 60), 2) + - separator + - zeroFill(~~offset % 60, 2) - ); - }); + function preParsePostFormat(string) { + return string; } - offset('Z', ':'); - offset('ZZ', ''); + var proto$1 = Locale.prototype; - // PARSING + proto$1.calendar = calendar; + proto$1.longDateFormat = longDateFormat; + proto$1.invalidDate = invalidDate; + proto$1.ordinal = ordinal; + proto$1.preparse = preParsePostFormat; + proto$1.postformat = preParsePostFormat; + proto$1.relativeTime = relativeTime; + proto$1.pastFuture = pastFuture; + proto$1.set = set; + proto$1.eras = localeEras; + proto$1.erasParse = localeErasParse; + proto$1.erasConvertYear = localeErasConvertYear; + proto$1.erasAbbrRegex = erasAbbrRegex; + proto$1.erasNameRegex = erasNameRegex; + proto$1.erasNarrowRegex = erasNarrowRegex; - addRegexToken('Z', matchShortOffset); - addRegexToken('ZZ', matchShortOffset); - addParseToken(['Z', 'ZZ'], function (input, array, config) { - config._useUTC = true; - config._tzm = offsetFromString(matchShortOffset, input); - }); + proto$1.months = localeMonths; + proto$1.monthsShort = localeMonthsShort; + proto$1.monthsParse = localeMonthsParse; + proto$1.monthsRegex = monthsRegex; + proto$1.monthsShortRegex = monthsShortRegex; + proto$1.week = localeWeek; + proto$1.firstDayOfYear = localeFirstDayOfYear; + proto$1.firstDayOfWeek = localeFirstDayOfWeek; - // HELPERS + proto$1.weekdays = localeWeekdays; + proto$1.weekdaysMin = localeWeekdaysMin; + proto$1.weekdaysShort = localeWeekdaysShort; + proto$1.weekdaysParse = localeWeekdaysParse; - // timezone chunker - // '+10:00' > ['10', '00'] - // '-1530' > ['-15', '30'] - var chunkOffset = /([\+\-]|\d\d)/gi; + proto$1.weekdaysRegex = weekdaysRegex; + proto$1.weekdaysShortRegex = weekdaysShortRegex; + proto$1.weekdaysMinRegex = weekdaysMinRegex; - function offsetFromString(matcher, string) { - var matches = (string || '').match(matcher), - chunk, - parts, - minutes; + proto$1.isPM = localeIsPM; + proto$1.meridiem = localeMeridiem; - if (matches === null) { - return null; - } + function get$1(format, index, field, setter) { + var locale = getLocale(), + utc = createUTC().set(setter, index); + return locale[field](utc, format); + } - chunk = matches[matches.length - 1] || []; - parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; - minutes = +(parts[1] * 60) + toInt(parts[2]); + function listMonthsImpl(format, index, field) { + if (isNumber(format)) { + index = format; + format = undefined; + } - return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; - } + format = format || ''; - // Return a moment from input, that is local/utc/zone equivalent to model. - function cloneWithOffset(input, model) { - var res, diff; - if (model._isUTC) { - res = model.clone(); - diff = - (isMoment(input) || isDate(input) - ? input.valueOf() - : createLocal(input).valueOf()) - res.valueOf(); - // Use low-level api, because this fn is low-level api. - res._d.setTime(res._d.valueOf() + diff); - hooks.updateOffset(res, false); - return res; - } else { - return createLocal(input).local(); + if (index != null) { + return get$1(format, index, field, 'month'); } - } - function getDateOffset(m) { - // On Firefox.24 Date#getTimezoneOffset returns a floating point. - // https://github.com/moment/moment/pull/1871 - return -Math.round(m._d.getTimezoneOffset()); + var i, + out = []; + for (i = 0; i < 12; i++) { + out[i] = get$1(format, i, field, 'month'); + } + return out; } - // HOOKS - - // This function will be called whenever a moment is mutated. - // It is intended to keep the offset in sync with the timezone. - hooks.updateOffset = function () {}; + // () + // (5) + // (fmt, 5) + // (fmt) + // (true) + // (true, 5) + // (true, fmt, 5) + // (true, fmt) + function listWeekdaysImpl(localeSorted, format, index, field) { + if (typeof localeSorted === 'boolean') { + if (isNumber(format)) { + index = format; + format = undefined; + } - // MOMENTS + format = format || ''; + } else { + format = localeSorted; + index = format; + localeSorted = false; - // keepLocalTime = true means only change the timezone, without - // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> - // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset - // +0200, so we adjust the time as needed, to be valid. - // - // Keeping the time actually adds/subtracts (one hour) - // from the actual represented time. That is why we call updateOffset - // a second time. In case it wants us to change the offset again - // _changeInProgress == true case, then we have to adjust, because - // there is no such time in the given timezone. - function getSetOffset(input, keepLocalTime, keepMinutes) { - var offset = this._offset || 0, - localAdjust; - if (!this.isValid()) { - return input != null ? this : NaN; - } - if (input != null) { - if (typeof input === 'string') { - input = offsetFromString(matchShortOffset, input); - if (input === null) { - return this; - } - } else if (Math.abs(input) < 16 && !keepMinutes) { - input = input * 60; - } - if (!this._isUTC && keepLocalTime) { - localAdjust = getDateOffset(this); - } - this._offset = input; - this._isUTC = true; - if (localAdjust != null) { - this.add(localAdjust, 'm'); - } - if (offset !== input) { - if (!keepLocalTime || this._changeInProgress) { - addSubtract( - this, - createDuration(input - offset, 'm'), - 1, - false - ); - } else if (!this._changeInProgress) { - this._changeInProgress = true; - hooks.updateOffset(this, true); - this._changeInProgress = null; - } + if (isNumber(format)) { + index = format; + format = undefined; } - return this; - } else { - return this._isUTC ? offset : getDateOffset(this); + + format = format || ''; } - } - function getSetZone(input, keepLocalTime) { - if (input != null) { - if (typeof input !== 'string') { - input = -input; - } + var locale = getLocale(), + shift = localeSorted ? locale._week.dow : 0, + i, + out = []; - this.utcOffset(input, keepLocalTime); + if (index != null) { + return get$1(format, (index + shift) % 7, field, 'day'); + } - return this; - } else { - return -this.utcOffset(); + for (i = 0; i < 7; i++) { + out[i] = get$1(format, (i + shift) % 7, field, 'day'); } + return out; } - function setOffsetToUTC(keepLocalTime) { - return this.utcOffset(0, keepLocalTime); + function listMonths(format, index) { + return listMonthsImpl(format, index, 'months'); } - function setOffsetToLocal(keepLocalTime) { - if (this._isUTC) { - this.utcOffset(0, keepLocalTime); - this._isUTC = false; - - if (keepLocalTime) { - this.subtract(getDateOffset(this), 'm'); - } - } - return this; + function listMonthsShort(format, index) { + return listMonthsImpl(format, index, 'monthsShort'); } - function setOffsetToParsedOffset() { - if (this._tzm != null) { - this.utcOffset(this._tzm, false, true); - } else if (typeof this._i === 'string') { - var tZone = offsetFromString(matchOffset, this._i); - if (tZone != null) { - this.utcOffset(tZone); - } else { - this.utcOffset(0, true); - } - } - return this; + function listWeekdays(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); } - function hasAlignedHourOffset(input) { - if (!this.isValid()) { - return false; - } - input = input ? createLocal(input).utcOffset() : 0; - - return (this.utcOffset() - input) % 60 === 0; + function listWeekdaysShort(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); } - function isDaylightSavingTime() { - return ( - this.utcOffset() > this.clone().month(0).utcOffset() || - this.utcOffset() > this.clone().month(5).utcOffset() - ); + function listWeekdaysMin(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); } - function isDaylightSavingTimeShifted() { - if (!isUndefined(this._isDSTShifted)) { - return this._isDSTShifted; - } + getSetGlobalLocale('en', { + eras: [ + { + since: '0001-01-01', + until: +Infinity, + offset: 1, + name: 'Anno Domini', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: 'Before Christ', + narrow: 'BC', + abbr: 'BC', + }, + ], + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + toInt((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + // Side effect imports + + hooks.lang = deprecate( + 'moment.lang is deprecated. Use moment.locale instead.', + getSetGlobalLocale + ); + hooks.langData = deprecate( + 'moment.langData is deprecated. Use moment.localeData instead.', + getLocale + ); + + var mathAbs = Math.abs; + + function abs() { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); - var c = {}, - other; + return this; + } - copyConfig(c, this); - c = prepareConfig(c); + function addSubtract$1(duration, input, value, direction) { + var other = createDuration(input, value); - if (c._a) { - other = c._isUTC ? createUTC(c._a) : createLocal(c._a); - this._isDSTShifted = - this.isValid() && compareArrays(c._a, other.toArray()) > 0; - } else { - this._isDSTShifted = false; - } + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; - return this._isDSTShifted; + return duration._bubble(); } - function isLocal() { - return this.isValid() ? !this._isUTC : false; + // supports only 2.0-style add(1, 's') or add(duration) + function add$1(input, value) { + return addSubtract$1(this, input, value, 1); } - function isUtcOffset() { - return this.isValid() ? this._isUTC : false; + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function subtract$1(input, value) { + return addSubtract$1(this, input, value, -1); } - function isUtc() { - return this.isValid() ? this._isUTC && this._offset === 0 : false; + function absCeil(number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } } - // ASP.NET json date format regex - var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, - // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html - // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere - // and further modified to allow for strings containing both week and day - isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; - - function createDuration(input, key) { - var duration = input, - // matching against regexp is expensive, do it on demand - match = null, - sign, - ret, - diffRes; + function bubble() { + var milliseconds = this._milliseconds, + days = this._days, + months = this._months, + data = this._data, + seconds, + minutes, + hours, + years, + monthsFromDays; - if (isDuration(input)) { - duration = { - ms: input._milliseconds, - d: input._days, - M: input._months, - }; - } else if (isNumber(input) || !isNaN(+input)) { - duration = {}; - if (key) { - duration[key] = +input; - } else { - duration.milliseconds = +input; - } - } else if ((match = aspNetRegex.exec(input))) { - sign = match[1] === '-' ? -1 : 1; - duration = { - y: 0, - d: toInt(match[DATE]) * sign, - h: toInt(match[HOUR]) * sign, - m: toInt(match[MINUTE]) * sign, - s: toInt(match[SECOND]) * sign, - ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match - }; - } else if ((match = isoRegex.exec(input))) { - sign = match[1] === '-' ? -1 : 1; - duration = { - y: parseIso(match[2], sign), - M: parseIso(match[3], sign), - w: parseIso(match[4], sign), - d: parseIso(match[5], sign), - h: parseIso(match[6], sign), - m: parseIso(match[7], sign), - s: parseIso(match[8], sign), - }; - } else if (duration == null) { - // checks for null or undefined - duration = {}; - } else if ( - typeof duration === 'object' && - ('from' in duration || 'to' in duration) + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if ( + !( + (milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0) + ) ) { - diffRes = momentsDifference( - createLocal(duration.from), - createLocal(duration.to) - ); - - duration = {}; - duration.ms = diffRes.milliseconds; - duration.M = diffRes.months; + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; } - ret = new Duration(duration); + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; - if (isDuration(input) && hasOwnProp(input, '_locale')) { - ret._locale = input._locale; - } + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; - if (isDuration(input) && hasOwnProp(input, '_isValid')) { - ret._isValid = input._isValid; - } + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; - return ret; - } + hours = absFloor(minutes / 60); + data.hours = hours % 24; - createDuration.fn = Duration.prototype; - createDuration.invalid = createInvalid$1; + days += absFloor(hours / 24); - function parseIso(inp, sign) { - // We'd normally use ~~inp for this, but unfortunately it also - // converts floats to ints. - // inp may be undefined, so careful calling replace on it. - var res = inp && parseFloat(inp.replace(',', '.')); - // apply sign while we're at it - return (isNaN(res) ? 0 : res) * sign; - } + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); - function positiveMomentsDifference(base, other) { - var res = {}; + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; - res.months = - other.month() - base.month() + (other.year() - base.year()) * 12; - if (base.clone().add(res.months, 'M').isAfter(other)) { - --res.months; - } + data.days = days; + data.months = months; + data.years = years; - res.milliseconds = +other - +base.clone().add(res.months, 'M'); + return this; + } - return res; + function daysToMonths(days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return (days * 4800) / 146097; } - function momentsDifference(base, other) { - var res; - if (!(base.isValid() && other.isValid())) { - return { milliseconds: 0, months: 0 }; + function monthsToDays(months) { + // the reverse of daysToMonths + return (months * 146097) / 4800; + } + + function as(units) { + if (!this.isValid()) { + return NaN; } + var days, + months, + milliseconds = this._milliseconds; - other = cloneWithOffset(other, base); - if (base.isBefore(other)) { - res = positiveMomentsDifference(base, other); + units = normalizeUnits(units); + + if (units === 'month' || units === 'quarter' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + switch (units) { + case 'month': + return months; + case 'quarter': + return months / 3; + case 'year': + return months / 12; + } } else { - res = positiveMomentsDifference(other, base); - res.milliseconds = -res.milliseconds; - res.months = -res.months; + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week': + return days / 7 + milliseconds / 6048e5; + case 'day': + return days + milliseconds / 864e5; + case 'hour': + return days * 24 + milliseconds / 36e5; + case 'minute': + return days * 1440 + milliseconds / 6e4; + case 'second': + return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': + return Math.floor(days * 864e5) + milliseconds; + default: + throw new Error('Unknown unit ' + units); + } } - - return res; } - // TODO: remove 'name' arg after deprecation is removed - function createAdder(direction, name) { - return function (val, period) { - var dur, tmp; - //invert the arguments, but complain about it - if (period !== null && !isNaN(+period)) { - deprecateSimple( - name, - 'moment().' + - name + - '(period, number) is deprecated. Please use moment().' + - name + - '(number, period). ' + - 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' - ); - tmp = val; - val = period; - period = tmp; - } + // TODO: Use this.as('ms')? + function valueOf$1() { + if (!this.isValid()) { + return NaN; + } + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } - dur = createDuration(val, period); - addSubtract(this, dur, direction); - return this; + function makeAs(alias) { + return function () { + return this.as(alias); }; } - function addSubtract(mom, duration, isAdding, updateOffset) { - var milliseconds = duration._milliseconds, - days = absRound(duration._days), - months = absRound(duration._months); + var asMilliseconds = makeAs('ms'), + asSeconds = makeAs('s'), + asMinutes = makeAs('m'), + asHours = makeAs('h'), + asDays = makeAs('d'), + asWeeks = makeAs('w'), + asMonths = makeAs('M'), + asQuarters = makeAs('Q'), + asYears = makeAs('y'); - if (!mom.isValid()) { - // No op - return; - } + function clone$1() { + return createDuration(this); + } - updateOffset = updateOffset == null ? true : updateOffset; + function get$2(units) { + units = normalizeUnits(units); + return this.isValid() ? this[units + 's']() : NaN; + } - if (months) { - setMonth(mom, get(mom, 'Month') + months * isAdding); - } - if (days) { - set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); - } - if (milliseconds) { - mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); - } - if (updateOffset) { - hooks.updateOffset(mom, days || months); - } + function makeGetter(name) { + return function () { + return this.isValid() ? this._data[name] : NaN; + }; } - var add = createAdder(1, 'add'), - subtract = createAdder(-1, 'subtract'); + var milliseconds = makeGetter('milliseconds'), + seconds = makeGetter('seconds'), + minutes = makeGetter('minutes'), + hours = makeGetter('hours'), + days = makeGetter('days'), + months = makeGetter('months'), + years = makeGetter('years'); - function isString(input) { - return typeof input === 'string' || input instanceof String; + function weeks() { + return absFloor(this.days() / 7); } - // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined - function isMomentInput(input) { - return ( - isMoment(input) || - isDate(input) || - isString(input) || - isNumber(input) || - isNumberOrStringArray(input) || - isMomentInputObject(input) || - input === null || - input === undefined - ); + var round = Math.round, + thresholds = { + ss: 44, // a few seconds to seconds + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month/week + w: null, // weeks to month + M: 11, // months to year + }; + + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); } - function isMomentInputObject(input) { - var objectTest = isObject(input) && !isObjectEmpty(input), - propertyTest = false, - properties = [ - 'years', - 'year', - 'y', - 'months', - 'month', - 'M', - 'days', - 'day', - 'd', - 'dates', - 'date', - 'D', - 'hours', - 'hour', - 'h', - 'minutes', - 'minute', - 'm', - 'seconds', - 'second', - 's', - 'milliseconds', - 'millisecond', - 'ms', - ], - i, - property; + function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) { + var duration = createDuration(posNegDuration).abs(), + seconds = round(duration.as('s')), + minutes = round(duration.as('m')), + hours = round(duration.as('h')), + days = round(duration.as('d')), + months = round(duration.as('M')), + weeks = round(duration.as('w')), + years = round(duration.as('y')), + a = + (seconds <= thresholds.ss && ['s', seconds]) || + (seconds < thresholds.s && ['ss', seconds]) || + (minutes <= 1 && ['m']) || + (minutes < thresholds.m && ['mm', minutes]) || + (hours <= 1 && ['h']) || + (hours < thresholds.h && ['hh', hours]) || + (days <= 1 && ['d']) || + (days < thresholds.d && ['dd', days]); - for (i = 0; i < properties.length; i += 1) { - property = properties[i]; - propertyTest = propertyTest || hasOwnProp(input, property); + if (thresholds.w != null) { + a = + a || + (weeks <= 1 && ['w']) || + (weeks < thresholds.w && ['ww', weeks]); } + a = a || + (months <= 1 && ['M']) || + (months < thresholds.M && ['MM', months]) || + (years <= 1 && ['y']) || ['yy', years]; - return objectTest && propertyTest; + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); } - function isNumberOrStringArray(input) { - var arrayTest = isArray(input), - dataTypeTest = false; - if (arrayTest) { - dataTypeTest = - input.filter(function (item) { - return !isNumber(item) && isString(input); - }).length === 0; + // This function allows you to set the rounding function for relative time strings + function getSetRelativeTimeRounding(roundingFunction) { + if (roundingFunction === undefined) { + return round; } - return arrayTest && dataTypeTest; + if (typeof roundingFunction === 'function') { + round = roundingFunction; + return true; + } + return false; } - function isCalendarSpec(input) { - var objectTest = isObject(input) && !isObjectEmpty(input), - propertyTest = false, - properties = [ - 'sameDay', - 'nextDay', - 'lastDay', - 'nextWeek', - 'lastWeek', - 'sameElse', - ], - i, - property; - - for (i = 0; i < properties.length; i += 1) { - property = properties[i]; - propertyTest = propertyTest || hasOwnProp(input, property); + // This function allows you to set a threshold for relative time strings + function getSetRelativeTimeThreshold(threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; } - - return objectTest && propertyTest; + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + if (threshold === 's') { + thresholds.ss = limit - 1; + } + return true; } - function getCalendarFormat(myMoment, now) { - var diff = myMoment.diff(now, 'days', true); - return diff < -6 - ? 'sameElse' - : diff < -1 - ? 'lastWeek' - : diff < 0 - ? 'lastDay' - : diff < 1 - ? 'sameDay' - : diff < 2 - ? 'nextDay' - : diff < 7 - ? 'nextWeek' - : 'sameElse'; - } + function humanize(argWithSuffix, argThresholds) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } - function calendar$1(time, formats) { - // Support for single parameter, formats only overload to the calendar function - if (arguments.length === 1) { - if (!arguments[0]) { - time = undefined; - formats = undefined; - } else if (isMomentInput(arguments[0])) { - time = arguments[0]; - formats = undefined; - } else if (isCalendarSpec(arguments[0])) { - formats = arguments[0]; - time = undefined; + var withSuffix = false, + th = thresholds, + locale, + output; + + if (typeof argWithSuffix === 'object') { + argThresholds = argWithSuffix; + argWithSuffix = false; + } + if (typeof argWithSuffix === 'boolean') { + withSuffix = argWithSuffix; + } + if (typeof argThresholds === 'object') { + th = Object.assign({}, thresholds, argThresholds); + if (argThresholds.s != null && argThresholds.ss == null) { + th.ss = argThresholds.s - 1; } } - // We want to compare the start of today, vs this. - // Getting start-of-today depends on whether we're local/utc/offset or not. - var now = time || createLocal(), - sod = cloneWithOffset(now, this).startOf('day'), - format = hooks.calendarFormat(this, sod) || 'sameElse', - output = - formats && - (isFunction(formats[format]) - ? formats[format].call(this, now) - : formats[format]); - return this.format( - output || this.localeData().calendar(format, this, createLocal(now)) - ); - } + locale = this.localeData(); + output = relativeTime$1(this, !withSuffix, th, locale); - function clone() { - return new Moment(this); + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); } - function isAfter(input, units) { - var localInput = isMoment(input) ? input : createLocal(input); - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(units) || 'millisecond'; - if (units === 'millisecond') { - return this.valueOf() > localInput.valueOf(); - } else { - return localInput.valueOf() < this.clone().startOf(units).valueOf(); - } + var abs$1 = Math.abs; + + function sign(x) { + return (x > 0) - (x < 0) || +x; } - function isBefore(input, units) { - var localInput = isMoment(input) ? input : createLocal(input); - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(units) || 'millisecond'; - if (units === 'millisecond') { - return this.valueOf() < localInput.valueOf(); - } else { - return this.clone().endOf(units).valueOf() < localInput.valueOf(); + function toISOString$1() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + if (!this.isValid()) { + return this.localeData().invalidDate(); } - } - function isBetween(from, to, units, inclusivity) { - var localFrom = isMoment(from) ? from : createLocal(from), - localTo = isMoment(to) ? to : createLocal(to); - if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { - return false; + var seconds = abs$1(this._milliseconds) / 1000, + days = abs$1(this._days), + months = abs$1(this._months), + minutes, + hours, + years, + s, + total = this.asSeconds(), + totalSign, + ymSign, + daysSign, + hmsSign; + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; } - inclusivity = inclusivity || '()'; + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; + + totalSign = total < 0 ? '-' : ''; + ymSign = sign(this._months) !== sign(total) ? '-' : ''; + daysSign = sign(this._days) !== sign(total) ? '-' : ''; + hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; + return ( - (inclusivity[0] === '(' - ? this.isAfter(localFrom, units) - : !this.isBefore(localFrom, units)) && - (inclusivity[1] === ')' - ? this.isBefore(localTo, units) - : !this.isAfter(localTo, units)) + totalSign + + 'P' + + (years ? ymSign + years + 'Y' : '') + + (months ? ymSign + months + 'M' : '') + + (days ? daysSign + days + 'D' : '') + + (hours || minutes || seconds ? 'T' : '') + + (hours ? hmsSign + hours + 'H' : '') + + (minutes ? hmsSign + minutes + 'M' : '') + + (seconds ? hmsSign + s + 'S' : '') ); } - function isSame(input, units) { - var localInput = isMoment(input) ? input : createLocal(input), - inputMs; - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(units) || 'millisecond'; - if (units === 'millisecond') { - return this.valueOf() === localInput.valueOf(); - } else { - inputMs = localInput.valueOf(); - return ( - this.clone().startOf(units).valueOf() <= inputMs && - inputMs <= this.clone().endOf(units).valueOf() - ); - } - } + var proto$2 = Duration.prototype; - function isSameOrAfter(input, units) { - return this.isSame(input, units) || this.isAfter(input, units); - } + proto$2.isValid = isValid$1; + proto$2.abs = abs; + proto$2.add = add$1; + proto$2.subtract = subtract$1; + proto$2.as = as; + proto$2.asMilliseconds = asMilliseconds; + proto$2.asSeconds = asSeconds; + proto$2.asMinutes = asMinutes; + proto$2.asHours = asHours; + proto$2.asDays = asDays; + proto$2.asWeeks = asWeeks; + proto$2.asMonths = asMonths; + proto$2.asQuarters = asQuarters; + proto$2.asYears = asYears; + proto$2.valueOf = valueOf$1; + proto$2._bubble = bubble; + proto$2.clone = clone$1; + proto$2.get = get$2; + proto$2.milliseconds = milliseconds; + proto$2.seconds = seconds; + proto$2.minutes = minutes; + proto$2.hours = hours; + proto$2.days = days; + proto$2.weeks = weeks; + proto$2.months = months; + proto$2.years = years; + proto$2.humanize = humanize; + proto$2.toISOString = toISOString$1; + proto$2.toString = toISOString$1; + proto$2.toJSON = toISOString$1; + proto$2.locale = locale; + proto$2.localeData = localeData; - function isSameOrBefore(input, units) { - return this.isSame(input, units) || this.isBefore(input, units); - } + proto$2.toIsoString = deprecate( + 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', + toISOString$1 + ); + proto$2.lang = lang; - function diff(input, units, asFloat) { - var that, zoneDelta, output; + // FORMATTING - if (!this.isValid()) { - return NaN; - } + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); - that = cloneWithOffset(input, this); + // PARSING - if (!that.isValid()) { - return NaN; - } + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); + }); - zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + //! moment.js - units = normalizeUnits(units); + hooks.version = '2.29.4'; - switch (units) { - case 'year': - output = monthDiff(this, that) / 12; - break; - case 'month': - output = monthDiff(this, that); - break; - case 'quarter': - output = monthDiff(this, that) / 3; - break; - case 'second': - output = (this - that) / 1e3; - break; // 1000 - case 'minute': - output = (this - that) / 6e4; - break; // 1000 * 60 - case 'hour': - output = (this - that) / 36e5; - break; // 1000 * 60 * 60 - case 'day': - output = (this - that - zoneDelta) / 864e5; - break; // 1000 * 60 * 60 * 24, negate dst - case 'week': - output = (this - that - zoneDelta) / 6048e5; - break; // 1000 * 60 * 60 * 24 * 7, negate dst - default: - output = this - that; - } + setHookCallback(createLocal); - return asFloat ? output : absFloor(output); - } + hooks.fn = proto; + hooks.min = min; + hooks.max = max; + hooks.now = now; + hooks.utc = createUTC; + hooks.unix = createUnix; + hooks.months = listMonths; + hooks.isDate = isDate; + hooks.locale = getSetGlobalLocale; + hooks.invalid = createInvalid; + hooks.duration = createDuration; + hooks.isMoment = isMoment; + hooks.weekdays = listWeekdays; + hooks.parseZone = createInZone; + hooks.localeData = getLocale; + hooks.isDuration = isDuration; + hooks.monthsShort = listMonthsShort; + hooks.weekdaysMin = listWeekdaysMin; + hooks.defineLocale = defineLocale; + hooks.updateLocale = updateLocale; + hooks.locales = listLocales; + hooks.weekdaysShort = listWeekdaysShort; + hooks.normalizeUnits = normalizeUnits; + hooks.relativeTimeRounding = getSetRelativeTimeRounding; + hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; + hooks.calendarFormat = getCalendarFormat; + hooks.prototype = proto; - function monthDiff(a, b) { - if (a.date() < b.date()) { - // end-of-month calculations work correct when the start month has more - // days than the end month. - return -monthDiff(b, a); - } - // difference in months - var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), - // b is in (anchor - 1 month, anchor + 1 month) - anchor = a.clone().add(wholeMonthDiff, 'months'), - anchor2, - adjust; + // currently HTML5 input type only supports 24-hour formats + hooks.HTML5_FMT = { + DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // + DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // + DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // + DATE: 'YYYY-MM-DD', // + TIME: 'HH:mm', // + TIME_SECONDS: 'HH:mm:ss', // + TIME_MS: 'HH:mm:ss.SSS', // + WEEK: 'GGGG-[W]WW', // + MONTH: 'YYYY-MM', // + }; - if (b - anchor < 0) { - anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor - anchor2); - } else { - anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor2 - anchor); - } + return hooks; - //check for negative zero, return zero if negative zero - return -(wholeMonthDiff + adjust) || 0; - } +}))); - hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; - hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; - function toString() { - return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); - } +/***/ }), - function toISOString(keepOffset) { - if (!this.isValid()) { - return null; - } - var utc = keepOffset !== true, - m = utc ? this.clone().utc() : this; - if (m.year() < 0 || m.year() > 9999) { - return formatMoment( - m, - utc - ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' - : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ' - ); - } - if (isFunction(Date.prototype.toISOString)) { - // native implementation is ~50x faster, use it when we can - if (utc) { - return this.toDate().toISOString(); - } else { - return new Date(this.valueOf() + this.utcOffset() * 60 * 1000) - .toISOString() - .replace('Z', formatMoment(m, 'Z')); +/***/ "./build/cht-core-4-6/node_modules/nools/index.js": +/*!********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/index.js ***! + \********************************************************/ +/***/ ((module, exports, __nested_webpack_require_2906816__) => { + +module.exports = exports = __nested_webpack_require_2906816__(/*! ./lib */ "./build/cht-core-4-6/node_modules/nools/lib/index.js"); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/agenda.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/agenda.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2907277__) => { + +"use strict"; + +var extd = __nested_webpack_require_2907277__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + declare = extd.declare, + AVLTree = extd.AVLTree, + LinkedList = extd.LinkedList, + isPromise = extd.isPromiseLike, + EventEmitter = __nested_webpack_require_2907277__(/*! events */ "events").EventEmitter; + + +var FactHash = declare({ + instance: { + constructor: function () { + this.memory = {}; + this.memoryValues = new LinkedList(); + }, + + clear: function () { + this.memoryValues.clear(); + this.memory = {}; + }, + + + remove: function (v) { + var hashCode = v.hashCode, + memory = this.memory, + ret = memory[hashCode]; + if (ret) { + this.memoryValues.remove(ret); + delete memory[hashCode]; + } + return ret; + }, + + insert: function (insert) { + var hashCode = insert.hashCode; + if (hashCode in this.memory) { + throw new Error("Activation already in agenda " + insert.rule.name + " agenda"); } + this.memoryValues.push((this.memory[hashCode] = insert)); } - return formatMoment( - m, - utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ' - ); } +}); - /** - * Return a human readable representation of a moment that can - * also be evaluated to get a new moment which is the same - * - * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects - */ - function inspect() { - if (!this.isValid()) { - return 'moment.invalid(/* ' + this._i + ' */)'; - } - var func = 'moment', - zone = '', - prefix, - year, - datetime, - suffix; - if (!this.isLocal()) { - func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; - zone = 'Z'; - } - prefix = '[' + func + '("]'; - year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; - datetime = '-MM-DD[T]HH:mm:ss.SSS'; - suffix = zone + '[")]'; - return this.format(prefix + year + datetime + suffix); - } +var DEFAULT_AGENDA_GROUP = "main"; +module.exports = declare(EventEmitter, { - function format(inputString) { - if (!inputString) { - inputString = this.isUtc() - ? hooks.defaultFormatUtc - : hooks.defaultFormat; - } - var output = formatMoment(this, inputString); - return this.localeData().postformat(output); - } + instance: { + constructor: function (flow, conflictResolution) { + this.agendaGroups = {}; + this.agendaGroupStack = [DEFAULT_AGENDA_GROUP]; + this.rules = {}; + this.flow = flow; + this.comparator = conflictResolution; + this.setFocus(DEFAULT_AGENDA_GROUP).addAgendaGroup(DEFAULT_AGENDA_GROUP); + }, - function from(time, withoutSuffix) { - if ( - this.isValid() && - ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) - ) { - return createDuration({ to: this, from: time }) - .locale(this.locale()) - .humanize(!withoutSuffix); - } else { - return this.localeData().invalidDate(); - } - } + addAgendaGroup: function (groupName) { + if (!extd.has(this.agendaGroups, groupName)) { + this.agendaGroups[groupName] = new AVLTree({compare: this.comparator}); + } + }, - function fromNow(withoutSuffix) { - return this.from(createLocal(), withoutSuffix); - } + getAgendaGroup: function (groupName) { + return this.agendaGroups[groupName || DEFAULT_AGENDA_GROUP]; + }, - function to(time, withoutSuffix) { - if ( - this.isValid() && - ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) - ) { - return createDuration({ from: this, to: time }) - .locale(this.locale()) - .humanize(!withoutSuffix); - } else { - return this.localeData().invalidDate(); - } - } + setFocus: function (agendaGroup) { + if (agendaGroup !== this.getFocused() && this.agendaGroups[agendaGroup]) { + this.agendaGroupStack.push(agendaGroup); + this.emit("focused", agendaGroup); + } + return this; + }, - function toNow(withoutSuffix) { - return this.to(createLocal(), withoutSuffix); - } + getFocused: function () { + var ags = this.agendaGroupStack; + return ags[ags.length - 1]; + }, - // If passed a locale key, it will set the locale for this - // instance. Otherwise, it will return the locale configuration - // variables for this instance. - function locale(key) { - var newLocaleData; + getFocusedAgenda: function () { + return this.agendaGroups[this.getFocused()]; + }, + + register: function (node) { + var agendaGroup = node.rule.agendaGroup; + this.rules[node.name] = {tree: new AVLTree({compare: this.comparator}), factTable: new FactHash()}; + if (agendaGroup) { + this.addAgendaGroup(agendaGroup); + } + }, + + isEmpty: function () { + var agendaGroupStack = this.agendaGroupStack, changed = false; + while (this.getFocusedAgenda().isEmpty() && this.getFocused() !== DEFAULT_AGENDA_GROUP) { + agendaGroupStack.pop(); + changed = true; + } + if (changed) { + this.emit("focused", this.getFocused()); + } + return this.getFocusedAgenda().isEmpty(); + }, + + fireNext: function () { + var agendaGroupStack = this.agendaGroupStack, ret = false; + while (this.getFocusedAgenda().isEmpty() && this.getFocused() !== DEFAULT_AGENDA_GROUP) { + agendaGroupStack.pop(); + } + if (!this.getFocusedAgenda().isEmpty()) { + var activation = this.pop(); + this.emit("fire", activation.rule.name, activation.match.factHash); + var fired = activation.rule.fire(this.flow, activation.match); + if (isPromise(fired)) { + ret = fired.then(function () { + //return true if an activation fired + return true; + }); + } else { + ret = true; + } + } + //return false if activation not fired + return ret; + }, - if (key === undefined) { - return this._locale._abbr; - } else { - newLocaleData = getLocale(key); - if (newLocaleData != null) { - this._locale = newLocaleData; + pop: function () { + var tree = this.getFocusedAgenda(), root = tree.__root; + while (root.right) { + root = root.right; } - return this; - } - } + var v = root.data; + tree.remove(v); + var rule = this.rules[v.name]; + rule.tree.remove(v); + rule.factTable.remove(v); + return v; + }, - var lang = deprecate( - 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', - function (key) { - if (key === undefined) { - return this.localeData(); - } else { - return this.locale(key); + peek: function () { + var tree = this.getFocusedAgenda(), root = tree.__root; + while (root.right) { + root = root.right; } - } - ); + return root.data; + }, - function localeData() { - return this._locale; - } + modify: function (node, context) { + this.retract(node, context); + this.insert(node, context); + }, - var MS_PER_SECOND = 1000, - MS_PER_MINUTE = 60 * MS_PER_SECOND, - MS_PER_HOUR = 60 * MS_PER_MINUTE, - MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; + retract: function (node, retract) { + var rule = this.rules[node.name]; + retract.rule = node; + var activation = rule.factTable.remove(retract); + if (activation) { + this.getAgendaGroup(node.rule.agendaGroup).remove(activation); + rule.tree.remove(activation); + } + }, - // actual modulo - handles negative numbers (for dates before 1970): - function mod$1(dividend, divisor) { - return ((dividend % divisor) + divisor) % divisor; - } + insert: function (node, insert) { + var rule = this.rules[node.name], nodeRule = node.rule, agendaGroup = nodeRule.agendaGroup; + rule.tree.insert(insert); + this.getAgendaGroup(agendaGroup).insert(insert); + if (nodeRule.autoFocus) { + this.setFocus(agendaGroup); + } - function localStartOfDate(y, m, d) { - // the date constructor remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0) { - // preserve leap years using a full 400 year cycle, then reset - return new Date(y + 400, m, d) - MS_PER_400_YEARS; - } else { - return new Date(y, m, d).valueOf(); - } - } + rule.factTable.insert(insert); + }, - function utcStartOfDate(y, m, d) { - // Date.UTC remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0) { - // preserve leap years using a full 400 year cycle, then reset - return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; - } else { - return Date.UTC(y, m, d); + dispose: function () { + for (var i in this.agendaGroups) { + this.agendaGroups[i].clear(); + } + var rules = this.rules; + for (i in rules) { + if (i in rules) { + rules[i].tree.clear(); + rules[i].factTable.clear(); + + } + } + this.rules = {}; } } - function startOf(units) { - var time, startOfDate; - units = normalizeUnits(units); - if (units === undefined || units === 'millisecond' || !this.isValid()) { - return this; - } +}); - startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; +/***/ }), - switch (units) { - case 'year': - time = startOfDate(this.year(), 0, 1); - break; - case 'quarter': - time = startOfDate( - this.year(), - this.month() - (this.month() % 3), - 1 - ); - break; - case 'month': - time = startOfDate(this.year(), this.month(), 1); - break; - case 'week': - time = startOfDate( - this.year(), - this.month(), - this.date() - this.weekday() - ); - break; - case 'isoWeek': - time = startOfDate( - this.year(), - this.month(), - this.date() - (this.isoWeekday() - 1) - ); - break; - case 'day': - case 'date': - time = startOfDate(this.year(), this.month(), this.date()); - break; - case 'hour': - time = this._d.valueOf(); - time -= mod$1( - time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), - MS_PER_HOUR - ); - break; - case 'minute': - time = this._d.valueOf(); - time -= mod$1(time, MS_PER_MINUTE); - break; - case 'second': - time = this._d.valueOf(); - time -= mod$1(time, MS_PER_SECOND); - break; - } +/***/ "./build/cht-core-4-6/node_modules/nools/lib/compile/common.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/compile/common.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_2913823__) => { - this._d.setTime(time); - hooks.updateOffset(this, true); - return this; - } +"use strict"; +/*jshint evil:true*/ - function endOf(units) { - var time, startOfDate; - units = normalizeUnits(units); - if (units === undefined || units === 'millisecond' || !this.isValid()) { - return this; - } +var extd = __nested_webpack_require_2913823__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + forEach = extd.forEach, + isString = extd.isString; - startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; +exports.modifiers = ["assert", "modify", "retract", "emit", "halt", "focus", "getFacts"]; - switch (units) { - case 'year': - time = startOfDate(this.year() + 1, 0, 1) - 1; - break; - case 'quarter': - time = - startOfDate( - this.year(), - this.month() - (this.month() % 3) + 3, - 1 - ) - 1; - break; - case 'month': - time = startOfDate(this.year(), this.month() + 1, 1) - 1; - break; - case 'week': - time = - startOfDate( - this.year(), - this.month(), - this.date() - this.weekday() + 7 - ) - 1; - break; - case 'isoWeek': - time = - startOfDate( - this.year(), - this.month(), - this.date() - (this.isoWeekday() - 1) + 7 - ) - 1; - break; - case 'day': - case 'date': - time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; - break; - case 'hour': - time = this._d.valueOf(); - time += - MS_PER_HOUR - - mod$1( - time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), - MS_PER_HOUR - ) - - 1; - break; - case 'minute': - time = this._d.valueOf(); - time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; - break; - case 'second': - time = this._d.valueOf(); - time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; - break; +var createFunction = function (body, defined, scope, scopeNames, definedNames) { + var declares = []; + forEach(definedNames, function (i) { + if (body.indexOf(i) !== -1) { + declares.push("var " + i + "= defined." + i + ";"); } + }); - this._d.setTime(time); - hooks.updateOffset(this, true); - return this; - } - - function valueOf() { - return this._d.valueOf() - (this._offset || 0) * 60000; - } - - function unix() { - return Math.floor(this.valueOf() / 1000); + forEach(scopeNames, function (i) { + if (body.indexOf(i) !== -1) { + declares.push("var " + i + "= scope." + i + ";"); + } + }); + body = ["((function(){", declares.join(""), "\n\treturn ", body, "\n})())"].join(""); + try { + return eval(body); + } catch (e) { + throw new Error("Invalid action : " + body + "\n" + e.message); } +}; - function toDate() { - return new Date(this.valueOf()); - } +var createDefined = (function () { - function toArray() { - var m = this; - return [ - m.year(), - m.month(), - m.date(), - m.hour(), - m.minute(), - m.second(), - m.millisecond(), - ]; - } + var _createDefined = function (action, defined, scope) { + if (isString(action)) { + var declares = []; + extd(defined).keys().forEach(function (i) { + if (action.indexOf(i) !== -1) { + declares.push("var " + i + "= defined." + i + ";"); + } + }); - function toObject() { - var m = this; - return { - years: m.year(), - months: m.month(), - date: m.date(), - hours: m.hours(), - minutes: m.minutes(), - seconds: m.seconds(), - milliseconds: m.milliseconds(), + extd(scope).keys().forEach(function (i) { + if (action.indexOf(i) !== -1) { + declares.push("var " + i + "= function(){var prop = scope." + i + "; return __objToStr__.call(prop) === '[object Function]' ? prop.apply(void 0, arguments) : prop;};"); + } + }); + if (declares.length) { + declares.unshift("var __objToStr__ = Object.prototype.toString;"); + } + action = [declares.join(""), "return ", action, ";"].join(""); + action = new Function("defined", "scope", action)(defined, scope); + } + var ret = action.hasOwnProperty("constructor") && "function" === typeof action.constructor ? action.constructor : function (opts) { + opts = opts || {}; + for (var i in opts) { + if (i in action) { + this[i] = opts[i]; + } + } }; - } + var proto = ret.prototype; + for (var i in action) { + proto[i] = action[i]; + } + return ret; - function toJSON() { - // new Date(NaN).toJSON() === null - return this.isValid() ? this.toISOString() : null; - } + }; - function isValid$2() { - return isValid(this); - } + return function (options, defined, scope) { + return _createDefined(options.properties, defined, scope); + }; +})(); - function parsingFlags() { - return extend({}, getParsingFlags(this)); - } +exports.createFunction = createFunction; +exports.createDefined = createDefined; - function invalidAt() { - return getParsingFlags(this).overflow; - } +/***/ }), - function creationData() { - return { - input: this._i, - format: this._f, - locale: this._locale, - isUTC: this._isUTC, - strict: this._strict, - }; - } +/***/ "./build/cht-core-4-6/node_modules/nools/lib/compile/index.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/compile/index.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_2916804__) => { - addFormatToken('N', 0, 0, 'eraAbbr'); - addFormatToken('NN', 0, 0, 'eraAbbr'); - addFormatToken('NNN', 0, 0, 'eraAbbr'); - addFormatToken('NNNN', 0, 0, 'eraName'); - addFormatToken('NNNNN', 0, 0, 'eraNarrow'); +"use strict"; +/*jshint evil:true*/ - addFormatToken('y', ['y', 1], 'yo', 'eraYear'); - addFormatToken('y', ['yy', 2], 0, 'eraYear'); - addFormatToken('y', ['yyy', 3], 0, 'eraYear'); - addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); +var extd = __nested_webpack_require_2916804__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + parser = __nested_webpack_require_2916804__(/*! ../parser */ "./build/cht-core-4-6/node_modules/nools/lib/parser/index.js"), + constraintMatcher = __nested_webpack_require_2916804__(/*! ../constraintMatcher.js */ "./build/cht-core-4-6/node_modules/nools/lib/constraintMatcher.js"), + indexOf = extd.indexOf, + forEach = extd.forEach, + removeDuplicates = extd.removeDuplicates, + map = extd.map, + obj = extd.hash, + keys = obj.keys, + merge = extd.merge, + rules = __nested_webpack_require_2916804__(/*! ../rule */ "./build/cht-core-4-6/node_modules/nools/lib/rule.js"), + common = __nested_webpack_require_2916804__(/*! ./common */ "./build/cht-core-4-6/node_modules/nools/lib/compile/common.js"), + modifiers = common.modifiers, + createDefined = common.createDefined, + createFunction = common.createFunction; - addRegexToken('N', matchEraAbbr); - addRegexToken('NN', matchEraAbbr); - addRegexToken('NNN', matchEraAbbr); - addRegexToken('NNNN', matchEraName); - addRegexToken('NNNNN', matchEraNarrow); - addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function ( - input, - array, - config, - token - ) { - var era = config._locale.erasParse(input, token, config._strict); - if (era) { - getParsingFlags(config).era = era; - } else { - getParsingFlags(config).invalidEra = input; +/** + * @private + * Parses an action from a rule definition + * @param {String} action the body of the action to execute + * @param {Array} identifiers array of identifiers collected + * @param {Object} defined an object of defined + * @param scope + * @return {Object} + */ +var parseAction = function (action, identifiers, defined, scope) { + var declares = []; + forEach(identifiers, function (i) { + if (action.indexOf(i) !== -1) { + declares.push("var " + i + "= facts." + i + ";"); } }); - - addRegexToken('y', matchUnsigned); - addRegexToken('yy', matchUnsigned); - addRegexToken('yyy', matchUnsigned); - addRegexToken('yyyy', matchUnsigned); - addRegexToken('yo', matchEraYearOrdinal); - - addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); - addParseToken(['yo'], function (input, array, config, token) { - var match; - if (config._locale._eraYearOrdinalRegex) { - match = input.match(config._locale._eraYearOrdinalRegex); + extd(defined).keys().forEach(function (i) { + if (action.indexOf(i) !== -1) { + declares.push("var " + i + "= defined." + i + ";"); } + }); - if (config._locale.eraYearOrdinalParse) { - array[YEAR] = config._locale.eraYearOrdinalParse(input, match); - } else { - array[YEAR] = parseInt(input, 10); + extd(scope).keys().forEach(function (i) { + if (action.indexOf(i) !== -1) { + declares.push("var " + i + "= scope." + i + ";"); } }); - - function localeEras(m, format) { - var i, - l, - date, - eras = this._eras || getLocale('en')._eras; - for (i = 0, l = eras.length; i < l; ++i) { - switch (typeof eras[i].since) { - case 'string': - // truncate time - date = hooks(eras[i].since).startOf('day'); - eras[i].since = date.valueOf(); - break; - } - - switch (typeof eras[i].until) { - case 'undefined': - eras[i].until = +Infinity; - break; - case 'string': - // truncate time - date = hooks(eras[i].until).startOf('day').valueOf(); - eras[i].until = date.valueOf(); - break; - } + extd(modifiers).forEach(function (i) { + if (action.indexOf(i) !== -1) { + declares.push("if(!" + i + "){ var " + i + "= flow." + i + ";}"); } - return eras; + }); + var params = ["facts", 'flow']; + if (/next\(.*\)/.test(action)) { + params.push("next"); } + action = declares.join("") + action; + try { + return new Function("defined, scope", "return " + new Function(params.join(","), action).toString())(defined, scope); + } catch (e) { + throw new Error("Invalid action : " + action + "\n" + e.message); + } +}; - function localeErasParse(eraName, format, strict) { - var i, - l, - eras = this.eras(), - name, - abbr, - narrow; - eraName = eraName.toUpperCase(); - - for (i = 0, l = eras.length; i < l; ++i) { - name = eras[i].name.toUpperCase(); - abbr = eras[i].abbr.toUpperCase(); - narrow = eras[i].narrow.toUpperCase(); - - if (strict) { - switch (format) { - case 'N': - case 'NN': - case 'NNN': - if (abbr === eraName) { - return eras[i]; - } - break; - - case 'NNNN': - if (name === eraName) { - return eras[i]; - } - break; - - case 'NNNNN': - if (narrow === eraName) { - return eras[i]; - } - break; +var createRuleFromObject = (function () { + var __resolveRule = function (rule, identifiers, conditions, defined, name) { + var condition = [], definedClass = rule[0], alias = rule[1], constraint = rule[2], refs = rule[3]; + if (extd.isHash(constraint)) { + refs = constraint; + constraint = null; + } + if (definedClass && !!(definedClass = defined[definedClass])) { + condition.push(definedClass); + } else { + throw new Error("Invalid class " + rule[0] + " for rule " + name); + } + condition.push(alias, constraint, refs); + conditions.push(condition); + identifiers.push(alias); + if (constraint) { + forEach(constraintMatcher.getIdentifiers(parser.parseConstraint(constraint)), function (i) { + identifiers.push(i); + }); + } + if (extd.isObject(refs)) { + for (var j in refs) { + var ident = refs[j]; + if (indexOf(identifiers, ident) === -1) { + identifiers.push(ident); } - } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { - return eras[i]; } } - } + }; - function localeErasConvertYear(era, year) { - var dir = era.since <= era.until ? +1 : -1; - if (year === undefined) { - return hooks(era.since).year(); - } else { - return hooks(era.since).year() + (year - era.offset) * dir; + function parseRule(rule, conditions, identifiers, defined, name) { + if (rule.length) { + var r0 = rule[0]; + if (r0 === "not" || r0 === "exists") { + var temp = []; + rule.shift(); + __resolveRule(rule, identifiers, temp, defined, name); + var cond = temp[0]; + cond.unshift(r0); + conditions.push(cond); + } else if (r0 === "or") { + var conds = [r0]; + rule.shift(); + forEach(rule, function (cond) { + parseRule(cond, conds, identifiers, defined, name); + }); + conditions.push(conds); + } else { + __resolveRule(rule, identifiers, conditions, defined, name); + identifiers = removeDuplicates(identifiers); + } } - } - function getEraName() { - var i, - l, - val, - eras = this.localeData().eras(); - for (i = 0, l = eras.length; i < l; ++i) { - // truncate time - val = this.clone().startOf('day').valueOf(); + } - if (eras[i].since <= val && val <= eras[i].until) { - return eras[i].name; - } - if (eras[i].until <= val && val <= eras[i].since) { - return eras[i].name; - } + return function (obj, defined, scope) { + var name = obj.name; + if (extd.isEmpty(obj)) { + throw new Error("Rule is empty"); + } + var options = obj.options || {}; + options.scope = scope; + var constraints = obj.constraints || [], l = constraints.length; + if (!l) { + constraints = ["true"]; + } + var action = obj.action; + if (extd.isUndefined(action)) { + throw new Error("No action was defined for rule " + name); } + var conditions = [], identifiers = []; + forEach(constraints, function (rule) { + parseRule(rule, conditions, identifiers, defined, name); + }); + return rules.createRule(name, options, conditions, parseAction(action, identifiers, defined, scope)); + }; +})(); - return ''; - } +exports.parse = function (src, file) { + //parse flow from file + return parser.parseRuleSet(src, file); - function getEraNarrow() { - var i, - l, - val, - eras = this.localeData().eras(); - for (i = 0, l = eras.length; i < l; ++i) { - // truncate time - val = this.clone().startOf('day').valueOf(); +}; +exports.compile = function (flowObj, options, cb, Container) { + if (extd.isFunction(options)) { + cb = options; + options = {}; + } else { + options = options || {}; + } + var name = flowObj.name || options.name; + //if !name throw an error + if (!name) { + throw new Error("Name must be present in JSON or options"); + } + var flow = new Container(name); + var defined = merge({Array: Array, String: String, Number: Number, Boolean: Boolean, RegExp: RegExp, Date: Date, Object: Object}, options.define || {}); + if (typeof Buffer !== "undefined") { + defined.Buffer = Buffer; + } + var scope = merge({console: console}, options.scope); + //add the anything added to the scope as a property + forEach(flowObj.scope, function (s) { + scope[s.name] = true; + }); + //add any defined classes in the parsed flowObj to defined + forEach(flowObj.define, function (d) { + defined[d.name] = createDefined(d, defined, scope); + }); - if (eras[i].since <= val && val <= eras[i].until) { - return eras[i].narrow; - } - if (eras[i].until <= val && val <= eras[i].since) { - return eras[i].narrow; - } - } + //expose any defined classes to the flow. + extd(defined).forEach(function (cls, name) { + flow.addDefined(name, cls); + }); - return ''; + var scopeNames = extd(flowObj.scope).pluck("name").union(extd(scope).keys().value()).value(); + var definedNames = map(keys(defined), function (s) { + return s; + }); + forEach(flowObj.scope, function (s) { + scope[s.name] = createFunction(s.body, defined, scope, scopeNames, definedNames); + }); + var rules = flowObj.rules; + if (rules.length) { + forEach(rules, function (rule) { + flow.__rules = flow.__rules.concat(createRuleFromObject(rule, defined, scope)); + }); } + if (cb) { + cb.call(flow, flow); + } + return flow; +}; - function getEraAbbr() { - var i, - l, - val, - eras = this.localeData().eras(); - for (i = 0, l = eras.length; i < l; ++i) { - // truncate time - val = this.clone().startOf('day').valueOf(); +exports.transpile = __nested_webpack_require_2916804__(/*! ./transpile */ "./build/cht-core-4-6/node_modules/nools/lib/compile/transpile.js").transpile; - if (eras[i].since <= val && val <= eras[i].until) { - return eras[i].abbr; - } - if (eras[i].until <= val && val <= eras[i].since) { - return eras[i].abbr; - } - } - return ''; - } - function getEraYear() { - var i, - l, - dir, - val, - eras = this.localeData().eras(); - for (i = 0, l = eras.length; i < l; ++i) { - dir = eras[i].since <= eras[i].until ? +1 : -1; - // truncate time - val = this.clone().startOf('day').valueOf(); - if ( - (eras[i].since <= val && val <= eras[i].until) || - (eras[i].until <= val && val <= eras[i].since) - ) { - return ( - (this.year() - hooks(eras[i].since).year()) * dir + - eras[i].offset - ); - } - } +/***/ }), - return this.year(); - } +/***/ "./build/cht-core-4-6/node_modules/nools/lib/compile/transpile.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/compile/transpile.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_2924390__) => { - function erasNameRegex(isStrict) { - if (!hasOwnProp(this, '_erasNameRegex')) { - computeErasParse.call(this); +var extd = __nested_webpack_require_2924390__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + forEach = extd.forEach, + indexOf = extd.indexOf, + merge = extd.merge, + isString = extd.isString, + modifiers = __nested_webpack_require_2924390__(/*! ./common */ "./build/cht-core-4-6/node_modules/nools/lib/compile/common.js").modifiers, + constraintMatcher = __nested_webpack_require_2924390__(/*! ../constraintMatcher */ "./build/cht-core-4-6/node_modules/nools/lib/constraintMatcher.js"), + parser = __nested_webpack_require_2924390__(/*! ../parser */ "./build/cht-core-4-6/node_modules/nools/lib/parser/index.js"); + +function definedToJs(options) { + /*jshint evil:true*/ + options = isString(options) ? new Function("return " + options + ";")() : options; + var ret = ["(function(){"], value; + + if (options.hasOwnProperty("constructor") && "function" === typeof options.constructor) { + ret.push("var Defined = " + options.constructor.toString() + ";"); + } else { + ret.push("var Defined = function(opts){ for(var i in opts){if(opts.hasOwnProperty(i)){this[i] = opts[i];}}};"); + } + ret.push("var proto = Defined.prototype;"); + for (var key in options) { + if (options.hasOwnProperty(key)) { + value = options[key]; + ret.push("proto." + key + " = " + (extd.isFunction(value) ? value.toString() : extd.format("%j", value)) + ";"); } - return isStrict ? this._erasNameRegex : this._erasRegex; } + ret.push("return Defined;"); + ret.push("}())"); + return ret.join(""); - function erasAbbrRegex(isStrict) { - if (!hasOwnProp(this, '_erasAbbrRegex')) { - computeErasParse.call(this); +} + +function actionToJs(action, identifiers, defined, scope) { + var declares = [], usedVars = {}; + forEach(identifiers, function (i) { + if (action.indexOf(i) !== -1) { + usedVars[i] = true; + declares.push("var " + i + "= facts." + i + ";"); } - return isStrict ? this._erasAbbrRegex : this._erasRegex; - } + }); + extd(defined).keys().forEach(function (i) { + if (action.indexOf(i) !== -1 && !usedVars[i]) { + usedVars[i] = true; + declares.push("var " + i + "= defined." + i + ";"); + } + }); - function erasNarrowRegex(isStrict) { - if (!hasOwnProp(this, '_erasNarrowRegex')) { - computeErasParse.call(this); + extd(scope).keys().forEach(function (i) { + if (action.indexOf(i) !== -1 && !usedVars[i]) { + usedVars[i] = true; + declares.push("var " + i + "= scope." + i + ";"); } - return isStrict ? this._erasNarrowRegex : this._erasRegex; + }); + extd(modifiers).forEach(function (i) { + if (action.indexOf(i) !== -1 && !usedVars[i]) { + declares.push("var " + i + "= flow." + i + ";"); + } + }); + var params = ["facts", 'flow']; + if (/next\(.*\)/.test(action)) { + params.push("next"); } - - function matchEraAbbr(isStrict, locale) { - return locale.erasAbbrRegex(isStrict); + action = declares.join("") + action; + try { + return ["function(", params.join(","), "){", action, "}"].join(""); + } catch (e) { + throw new Error("Invalid action : " + action + "\n" + e.message); } +} - function matchEraName(isStrict, locale) { - return locale.erasNameRegex(isStrict); +function parseConstraintModifier(constraint, ret) { + if (constraint.length && extd.isString(constraint[0])) { + var modifier = constraint[0].match(" *(from)"); + if (modifier) { + modifier = modifier[0]; + switch (modifier) { + case "from": + ret.push(', "', constraint.shift(), '"'); + break; + default: + throw new Error("Unrecognized modifier " + modifier); + } + } } +} - function matchEraNarrow(isStrict, locale) { - return locale.erasNarrowRegex(isStrict); +function parseConstraintHash(constraint, ret, identifiers) { + if (constraint.length && extd.isHash(constraint[0])) { + //ret of options + var refs = constraint.shift(); + extd(refs).values().forEach(function (ident) { + if (indexOf(identifiers, ident) === -1) { + identifiers.push(ident); + } + }); + ret.push(',' + extd.format('%j', [refs])); } +} - function matchEraYearOrdinal(isStrict, locale) { - return locale._eraYearOrdinalRegex || matchUnsigned; +function constraintsToJs(constraint, identifiers) { + constraint = constraint.slice(0); + var ret = []; + if (constraint[0] === "or") { + ret.push('["' + constraint.shift() + '"'); + ret.push(extd.map(constraint,function (c) { + return constraintsToJs(c, identifiers); + }).join(",") + "]"); + return ret; + } else if (constraint[0] === "not" || constraint[0] === "exists") { + ret.push('"', constraint.shift(), '", '); } - - function computeErasParse() { - var abbrPieces = [], - namePieces = [], - narrowPieces = [], - mixedPieces = [], - i, - l, - eras = this.eras(); - - for (i = 0, l = eras.length; i < l; ++i) { - namePieces.push(regexEscape(eras[i].name)); - abbrPieces.push(regexEscape(eras[i].abbr)); - narrowPieces.push(regexEscape(eras[i].narrow)); - - mixedPieces.push(regexEscape(eras[i].name)); - mixedPieces.push(regexEscape(eras[i].abbr)); - mixedPieces.push(regexEscape(eras[i].narrow)); + identifiers.push(constraint[1]); + ret.push(constraint[0], ', "' + constraint[1].replace(/\\/g, "\\\\").replace(/"/g, "\\\"") + '"'); + constraint.splice(0, 2); + if (constraint.length) { + //constraint + var c = constraint.shift(); + if (extd.isString(c) && c) { + ret.push(',"' + c.replace(/\\/g, "\\\\").replace(/"/g, "\\\""), '"'); + forEach(constraintMatcher.getIdentifiers(parser.parseConstraint(c)), function (i) { + identifiers.push(i); + }); + } else { + ret.push(',"true"'); + constraint.unshift(c); } - - this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); - this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); - this._erasNarrowRegex = new RegExp( - '^(' + narrowPieces.join('|') + ')', - 'i' - ); } + parseConstraintModifier(constraint, ret); + parseConstraintHash(constraint, ret, identifiers); + return '[' + ret.join("") + ']'; +} - // FORMATTING - - addFormatToken(0, ['gg', 2], 0, function () { - return this.weekYear() % 100; - }); - - addFormatToken(0, ['GG', 2], 0, function () { - return this.isoWeekYear() % 100; - }); - - function addWeekYearFormatToken(token, getter) { - addFormatToken(0, [token, token.length], 0, getter); +exports.transpile = function (flowObj, options) { + options = options || {}; + var ret = []; + ret.push("(function(){"); + ret.push("return function(options){"); + ret.push("options = options || {};"); + ret.push("var bind = function(scope, fn){return function(){return fn.apply(scope, arguments);};}, defined = {Array: Array, String: String, Number: Number, Boolean: Boolean, RegExp: RegExp, Date: Date, Object: Object}, scope = options.scope || {};"); + ret.push("var optDefined = options.defined || {}; for(var i in optDefined){defined[i] = optDefined[i];}"); + var defined = merge({Array: Array, String: String, Number: Number, Boolean: Boolean, RegExp: RegExp, Date: Date, Object: Object}, options.define || {}); + if (typeof Buffer !== "undefined") { + defined.Buffer = Buffer; } + var scope = merge({console: console}, options.scope); + ret.push(["return nools.flow('", options.name, "', function(){"].join("")); + //add any defined classes in the parsed flowObj to defined + ret.push(extd(flowObj.define || []).map(function (defined) { + var name = defined.name; + defined[name] = {}; + return ["var", name, "= defined." + name, "= this.addDefined('" + name + "',", definedToJs(defined.properties) + ");"].join(" "); + }).value().join("\n")); + ret.push(extd(flowObj.scope || []).map(function (s) { + var name = s.name; + scope[name] = {}; + return ["var", name, "= scope." + name, "= ", s.body, ";"].join(" "); + }).value().join("\n")); + ret.push("scope.console = console;\n"); - addWeekYearFormatToken('gggg', 'weekYear'); - addWeekYearFormatToken('ggggg', 'weekYear'); - addWeekYearFormatToken('GGGG', 'isoWeekYear'); - addWeekYearFormatToken('GGGGG', 'isoWeekYear'); - // ALIASES + ret.push(extd(flowObj.rules || []).map(function (rule) { + var identifiers = [], ret = ["this.rule('", rule.name.replace(/'/g, "\\'"), "'"], options = extd.merge(rule.options || {}, {scope: "scope"}); + ret.push(",", extd.format("%j", [options]).replace(/(:"scope")/, ":scope")); + if (rule.constraints && !extd.isEmpty(rule.constraints)) { + ret.push(", ["); + ret.push(extd(rule.constraints).map(function (c) { + return constraintsToJs(c, identifiers); + }).value().join(",")); + ret.push("]"); + } + ret.push(",", actionToJs(rule.action, identifiers, defined, scope)); + ret.push(");"); + return ret.join(""); + }).value().join("")); + ret.push("});"); + ret.push("};"); + ret.push("}());"); + return ret.join(""); +}; - addUnitAlias('weekYear', 'gg'); - addUnitAlias('isoWeekYear', 'GG'); - // PRIORITY - addUnitPriority('weekYear', 1); - addUnitPriority('isoWeekYear', 1); - // PARSING +/***/ }), - addRegexToken('G', matchSigned); - addRegexToken('g', matchSigned); - addRegexToken('GG', match1to2, match2); - addRegexToken('gg', match1to2, match2); - addRegexToken('GGGG', match1to4, match4); - addRegexToken('gggg', match1to4, match4); - addRegexToken('GGGGG', match1to6, match6); - addRegexToken('ggggg', match1to6, match6); +/***/ "./build/cht-core-4-6/node_modules/nools/lib/conflict.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/conflict.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_2932009__) => { - addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function ( - input, - week, - config, - token - ) { - week[token.substr(0, 2)] = toInt(input); - }); +var map = __nested_webpack_require_2932009__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js").map; - addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { - week[token] = hooks.parseTwoDigitYear(input); - }); +function salience(a, b) { + return a.rule.priority - b.rule.priority; +} - // MOMENTS +function bucketCounter(a, b) { + return a.counter - b.counter; +} - function getSetWeekYear(input) { - return getSetWeekYearHelper.call( - this, - input, - this.week(), - this.weekday(), - this.localeData()._week.dow, - this.localeData()._week.doy - ); - } +function factRecency(a, b) { + /*jshint noempty: false*/ - function getSetISOWeekYear(input) { - return getSetWeekYearHelper.call( - this, - input, - this.isoWeek(), - this.isoWeekday(), - 1, - 4 - ); + var i = 0; + var aMatchRecency = a.match.recency, + bMatchRecency = b.match.recency, aLength = aMatchRecency.length - 1, bLength = bMatchRecency.length - 1; + while (aMatchRecency[i] === bMatchRecency[i] && i < aLength && i < bLength && i++) { } - - function getISOWeeksInYear() { - return weeksInYear(this.year(), 1, 4); + var ret = aMatchRecency[i] - bMatchRecency[i]; + if (!ret) { + ret = aLength - bLength; } + return ret; +} - function getISOWeeksInISOWeekYear() { - return weeksInYear(this.isoWeekYear(), 1, 4); - } +function activationRecency(a, b) { + return a.recency - b.recency; +} - function getWeeksInYear() { - var weekInfo = this.localeData()._week; - return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); - } +var strategies = { + salience: salience, + bucketCounter: bucketCounter, + factRecency: factRecency, + activationRecency: activationRecency +}; - function getWeeksInWeekYear() { - var weekInfo = this.localeData()._week; - return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); - } +exports.strategies = strategies; +exports.strategy = function (strats) { + strats = map(strats, function (s) { + return strategies[s]; + }); + var stratsLength = strats.length; - function getSetWeekYearHelper(input, week, weekday, dow, doy) { - var weeksTarget; - if (input == null) { - return weekOfYear(this, dow, doy).year; - } else { - weeksTarget = weeksInYear(input, dow, doy); - if (week > weeksTarget) { - week = weeksTarget; + return function (a, b) { + var i = -1, ret = 0; + var equal = (a === b) || (a.name === b.name && a.hashCode === b.hashCode); + if (!equal) { + while (++i < stratsLength && !ret) { + ret = strats[i](a, b); } - return setWeekAll.call(this, input, week, weekday, dow, doy); + ret = ret > 0 ? 1 : -1; } - } - - function setWeekAll(weekYear, week, weekday, dow, doy) { - var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), - date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + return ret; + }; +}; - this.year(date.getUTCFullYear()); - this.month(date.getUTCMonth()); - this.date(date.getUTCDate()); - return this; - } +/***/ }), - // FORMATTING +/***/ "./build/cht-core-4-6/node_modules/nools/lib/constraint.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/constraint.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_2933828__) => { - addFormatToken('Q', 0, 'Qo', 'quarter'); +"use strict"; - // ALIASES - addUnitAlias('quarter', 'Q'); +var extd = __nested_webpack_require_2933828__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + deepEqual = extd.deepEqual, + merge = extd.merge, + instanceOf = extd.instanceOf, + filter = extd.filter, + declare = extd.declare, + constraintMatcher; - // PRIORITY +var id = 0; +var Constraint = declare({ - addUnitPriority('quarter', 7); + type: null, - // PARSING + instance: { + constructor: function (constraint) { + if (!constraintMatcher) { + constraintMatcher = __nested_webpack_require_2933828__(/*! ./constraintMatcher */ "./build/cht-core-4-6/node_modules/nools/lib/constraintMatcher.js"); + } + this.id = id++; + this.constraint = constraint; + extd.bindAll(this, ["assert"]); + }, + "assert": function () { + throw new Error("not implemented"); + }, - addRegexToken('Q', match1); - addParseToken('Q', function (input, array) { - array[MONTH] = (toInt(input) - 1) * 3; - }); + getIndexableProperties: function () { + return []; + }, - // MOMENTS + equal: function (constraint) { + return instanceOf(constraint, this._static) && this.get("alias") === constraint.get("alias") && extd.deepEqual(this.constraint, constraint.constraint); + }, - function getSetQuarter(input) { - return input == null - ? Math.ceil((this.month() + 1) / 3) - : this.month((input - 1) * 3 + (this.month() % 3)); - } + getters: { + variables: function () { + return [this.get("alias")]; + } + } - // FORMATTING - addFormatToken('D', ['DD', 2], 'Do', 'date'); + } +}); - // ALIASES +Constraint.extend({ + instance: { - addUnitAlias('date', 'D'); + type: "object", - // PRIORITY - addUnitPriority('date', 9); + constructor: function (type) { + this._super([type]); + }, - // PARSING + "assert": function (param) { + return param instanceof this.constraint || param.constructor === this.constraint; + }, - addRegexToken('D', match1to2); - addRegexToken('DD', match1to2, match2); - addRegexToken('Do', function (isStrict, locale) { - // TODO: Remove "ordinalParse" fallback in next major release. - return isStrict - ? locale._dayOfMonthOrdinalParse || locale._ordinalParse - : locale._dayOfMonthOrdinalParseLenient; - }); + equal: function (constraint) { + return instanceOf(constraint, this._static) && this.constraint === constraint.constraint; + } + } +}).as(exports, "ObjectConstraint"); - addParseToken(['D', 'DD'], DATE); - addParseToken('Do', function (input, array) { - array[DATE] = toInt(input.match(match1to2)[0]); - }); +var EqualityConstraint = Constraint.extend({ - // MOMENTS + instance: { - var getSetDayOfMonth = makeGetSet('Date', true); + type: "equality", - // FORMATTING + constructor: function (constraint, options) { + this._super([constraint]); + options = options || {}; + this.pattern = options.pattern; + this._matcher = constraintMatcher.getMatcher(constraint, options, true); + }, - addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + "assert": function (values) { + return this._matcher(values); + } + } +}).as(exports, "EqualityConstraint"); - // ALIASES +EqualityConstraint.extend({instance: {type: "inequality"}}).as(exports, "InequalityConstraint"); +EqualityConstraint.extend({instance: {type: "comparison"}}).as(exports, "ComparisonConstraint"); - addUnitAlias('dayOfYear', 'DDD'); +Constraint.extend({ - // PRIORITY - addUnitPriority('dayOfYear', 4); + instance: { - // PARSING + type: "equality", - addRegexToken('DDD', match1to3); - addRegexToken('DDDD', match3); - addParseToken(['DDD', 'DDDD'], function (input, array, config) { - config._dayOfYear = toInt(input); - }); + constructor: function () { + this._super([ + [true] + ]); + }, - // HELPERS + equal: function (constraint) { + return instanceOf(constraint, this._static) && this.get("alias") === constraint.get("alias"); + }, - // MOMENTS - function getSetDayOfYear(input) { - var dayOfYear = - Math.round( - (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5 - ) + 1; - return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); + "assert": function () { + return true; + } } +}).as(exports, "TrueConstraint"); - // FORMATTING +var ReferenceConstraint = Constraint.extend({ - addFormatToken('m', ['mm', 2], 0, 'minute'); + instance: { - // ALIASES + type: "reference", - addUnitAlias('minute', 'm'); + constructor: function (constraint, options) { + this.cache = {}; + this._super([constraint]); + options = options || {}; + this.values = []; + this.pattern = options.pattern; + this._options = options; + this._matcher = constraintMatcher.getMatcher(constraint, options, false); + }, - // PRIORITY + "assert": function (fact, fh) { + try { + return this._matcher(fact, fh); + } catch (e) { + throw new Error("Error with evaluating pattern " + this.pattern + " " + e.message); + } - addUnitPriority('minute', 14); + }, - // PARSING + merge: function (that) { + var ret = this; + if (that instanceof ReferenceConstraint) { + ret = new this._static([this.constraint, that.constraint, "and"], merge({}, this._options, this._options)); + ret._alias = this._alias || that._alias; + ret.vars = this.vars.concat(that.vars); + } + return ret; + }, - addRegexToken('m', match1to2); - addRegexToken('mm', match1to2, match2); - addParseToken(['m', 'mm'], MINUTE); + equal: function (constraint) { + return instanceOf(constraint, this._static) && extd.deepEqual(this.constraint, constraint.constraint); + }, - // MOMENTS - var getSetMinute = makeGetSet('Minutes', false); + getters: { + variables: function () { + return this.vars; + }, - // FORMATTING + alias: function () { + return this._alias; + } + }, - addFormatToken('s', ['ss', 2], 0, 'second'); + setters: { + alias: function (alias) { + this._alias = alias; + this.vars = filter(constraintMatcher.getIdentifiers(this.constraint), function (v) { + return v !== alias; + }); + } + } + } - // ALIASES +}).as(exports, "ReferenceConstraint"); - addUnitAlias('second', 's'); - // PRIORITY +ReferenceConstraint.extend({ + instance: { + type: "reference_equality", + op: "eq", + getIndexableProperties: function () { + return constraintMatcher.getIndexableProperties(this.constraint); + } + } +}).as(exports, "ReferenceEqualityConstraint") + .extend({instance: {type: "reference_inequality", op: "neq"}}).as(exports, "ReferenceInequalityConstraint") + .extend({instance: {type: "reference_gt", op: "gt"}}).as(exports, "ReferenceGTConstraint") + .extend({instance: {type: "reference_gte", op: "gte"}}).as(exports, "ReferenceGTEConstraint") + .extend({instance: {type: "reference_lt", op: "lt"}}).as(exports, "ReferenceLTConstraint") + .extend({instance: {type: "reference_lte", op: "lte"}}).as(exports, "ReferenceLTEConstraint"); - addUnitPriority('second', 15); - // PARSING +Constraint.extend({ + instance: { - addRegexToken('s', match1to2); - addRegexToken('ss', match1to2, match2); - addParseToken(['s', 'ss'], SECOND); + type: "hash", - // MOMENTS + constructor: function (hash) { + this._super([hash]); + }, - var getSetSecond = makeGetSet('Seconds', false); + equal: function (constraint) { + return extd.instanceOf(constraint, this._static) && this.get("alias") === constraint.get("alias") && extd.deepEqual(this.constraint, constraint.constraint); + }, - // FORMATTING + "assert": function () { + return true; + }, - addFormatToken('S', 0, 0, function () { - return ~~(this.millisecond() / 100); - }); + getters: { + variables: function () { + return this.constraint; + } + } - addFormatToken(0, ['SS', 2], 0, function () { - return ~~(this.millisecond() / 10); - }); + } +}).as(exports, "HashConstraint"); - addFormatToken(0, ['SSS', 3], 0, 'millisecond'); - addFormatToken(0, ['SSSS', 4], 0, function () { - return this.millisecond() * 10; - }); - addFormatToken(0, ['SSSSS', 5], 0, function () { - return this.millisecond() * 100; - }); - addFormatToken(0, ['SSSSSS', 6], 0, function () { - return this.millisecond() * 1000; - }); - addFormatToken(0, ['SSSSSSS', 7], 0, function () { - return this.millisecond() * 10000; - }); - addFormatToken(0, ['SSSSSSSS', 8], 0, function () { - return this.millisecond() * 100000; - }); - addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { - return this.millisecond() * 1000000; - }); +Constraint.extend({ + instance: { + constructor: function (constraints, options) { + this.type = "from"; + this.constraints = constraintMatcher.getSourceMatcher(constraints, (options || {}), true); + extd.bindAll(this, ["assert"]); + }, - // ALIASES + equal: function (constraint) { + return instanceOf(constraint, this._static) && this.get("alias") === constraint.get("alias") && deepEqual(this.constraints, constraint.constraints); + }, - addUnitAlias('millisecond', 'ms'); + "assert": function (fact, fh) { + return this.constraints(fact, fh); + }, - // PRIORITY + getters: { + variables: function () { + return this.constraint; + } + } - addUnitPriority('millisecond', 16); + } +}).as(exports, "FromConstraint"); - // PARSING +Constraint.extend({ + instance: { + constructor: function (func, options) { + this.type = "custom"; + this.fn = func; + this.options = options; + extd.bindAll(this, ["assert"]); + }, - addRegexToken('S', match1to3, match1); - addRegexToken('SS', match1to3, match2); - addRegexToken('SSS', match1to3, match3); + equal: function (constraint) { + return instanceOf(constraint, this._static) && this.fn === constraint.constraint; + }, - var token, getSetMillisecond; - for (token = 'SSSS'; token.length <= 9; token += 'S') { - addRegexToken(token, matchUnsigned); + "assert": function (fact, fh) { + return this.fn(fact, fh); + } } +}).as(exports, "CustomConstraint"); - function parseMs(input, array) { - array[MILLISECOND] = toInt(('0.' + input) * 1000); - } - for (token = 'S'; token.length <= 9; token += 'S') { - addParseToken(token, parseMs); - } - getSetMillisecond = makeGetSet('Milliseconds', false); - // FORMATTING +/***/ }), - addFormatToken('z', 0, 0, 'zoneAbbr'); - addFormatToken('zz', 0, 0, 'zoneName'); +/***/ "./build/cht-core-4-6/node_modules/nools/lib/constraintMatcher.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/constraintMatcher.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_2941567__) => { - // MOMENTS +"use strict"; - function getZoneAbbr() { - return this._isUTC ? 'UTC' : ''; - } - function getZoneName() { - return this._isUTC ? 'Coordinated Universal Time' : ''; - } +var extd = __nested_webpack_require_2941567__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + isArray = extd.isArray, + forEach = extd.forEach, + some = extd.some, + indexOf = extd.indexOf, + isNumber = extd.isNumber, + removeDups = extd.removeDuplicates, + atoms = __nested_webpack_require_2941567__(/*! ./constraint */ "./build/cht-core-4-6/node_modules/nools/lib/constraint.js"); - var proto = Moment.prototype; +function getProps(val) { + return extd(val).map(function mapper(val) { + return isArray(val) ? isArray(val[0]) ? getProps(val).value() : val.reverse().join(".") : val; + }).flatten().filter(function (v) { + return !!v; + }); +} - proto.add = add; - proto.calendar = calendar$1; - proto.clone = clone; - proto.diff = diff; - proto.endOf = endOf; - proto.format = format; - proto.from = from; - proto.fromNow = fromNow; - proto.to = to; - proto.toNow = toNow; - proto.get = stringGet; - proto.invalidAt = invalidAt; - proto.isAfter = isAfter; - proto.isBefore = isBefore; - proto.isBetween = isBetween; - proto.isSame = isSame; - proto.isSameOrAfter = isSameOrAfter; - proto.isSameOrBefore = isSameOrBefore; - proto.isValid = isValid$2; - proto.lang = lang; - proto.locale = locale; - proto.localeData = localeData; - proto.max = prototypeMax; - proto.min = prototypeMin; - proto.parsingFlags = parsingFlags; - proto.set = stringSet; - proto.startOf = startOf; - proto.subtract = subtract; - proto.toArray = toArray; - proto.toObject = toObject; - proto.toDate = toDate; - proto.toISOString = toISOString; - proto.inspect = inspect; - if (typeof Symbol !== 'undefined' && Symbol.for != null) { - proto[Symbol.for('nodejs.util.inspect.custom')] = function () { - return 'Moment<' + this.format() + '>'; - }; - } - proto.toJSON = toJSON; - proto.toString = toString; - proto.unix = unix; - proto.valueOf = valueOf; - proto.creationData = creationData; - proto.eraName = getEraName; - proto.eraNarrow = getEraNarrow; - proto.eraAbbr = getEraAbbr; - proto.eraYear = getEraYear; - proto.year = getSetYear; - proto.isLeapYear = getIsLeapYear; - proto.weekYear = getSetWeekYear; - proto.isoWeekYear = getSetISOWeekYear; - proto.quarter = proto.quarters = getSetQuarter; - proto.month = getSetMonth; - proto.daysInMonth = getDaysInMonth; - proto.week = proto.weeks = getSetWeek; - proto.isoWeek = proto.isoWeeks = getSetISOWeek; - proto.weeksInYear = getWeeksInYear; - proto.weeksInWeekYear = getWeeksInWeekYear; - proto.isoWeeksInYear = getISOWeeksInYear; - proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; - proto.date = getSetDayOfMonth; - proto.day = proto.days = getSetDayOfWeek; - proto.weekday = getSetLocaleDayOfWeek; - proto.isoWeekday = getSetISODayOfWeek; - proto.dayOfYear = getSetDayOfYear; - proto.hour = proto.hours = getSetHour; - proto.minute = proto.minutes = getSetMinute; - proto.second = proto.seconds = getSetSecond; - proto.millisecond = proto.milliseconds = getSetMillisecond; - proto.utcOffset = getSetOffset; - proto.utc = setOffsetToUTC; - proto.local = setOffsetToLocal; - proto.parseZone = setOffsetToParsedOffset; - proto.hasAlignedHourOffset = hasAlignedHourOffset; - proto.isDST = isDaylightSavingTime; - proto.isLocal = isLocal; - proto.isUtcOffset = isUtcOffset; - proto.isUtc = isUtc; - proto.isUTC = isUtc; - proto.zoneAbbr = getZoneAbbr; - proto.zoneName = getZoneName; - proto.dates = deprecate( - 'dates accessor is deprecated. Use date instead.', - getSetDayOfMonth - ); - proto.months = deprecate( - 'months accessor is deprecated. Use month instead', - getSetMonth - ); - proto.years = deprecate( - 'years accessor is deprecated. Use year instead', - getSetYear - ); - proto.zone = deprecate( - 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', - getSetZone - ); - proto.isDSTShifted = deprecate( - 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', - isDaylightSavingTimeShifted - ); +var definedFuncs = { + indexOf: extd.indexOf, + now: function () { + return new Date(); + }, - function createUnix(input) { - return createLocal(input * 1000); - } + Date: function (y, m, d, h, min, s, ms) { + var date = new Date(); + if (isNumber(y)) { + date.setYear(y); + } + if (isNumber(m)) { + date.setMonth(m); + } + if (isNumber(d)) { + date.setDate(d); + } + if (isNumber(h)) { + date.setHours(h); + } + if (isNumber(min)) { + date.setMinutes(min); + } + if (isNumber(s)) { + date.setSeconds(s); + } + if (isNumber(ms)) { + date.setMilliseconds(ms); + } + return date; + }, - function createInZone() { - return createLocal.apply(null, arguments).parseZone(); - } + lengthOf: function (arr, length) { + return arr.length === length; + }, - function preParsePostFormat(string) { - return string; + isTrue: function (val) { + return val === true; + }, + + isFalse: function (val) { + return val === false; + }, + + isNotNull: function (actual) { + return actual !== null; + }, + + dateCmp: function (dt1, dt2) { + return extd.compare(dt1, dt2); } - var proto$1 = Locale.prototype; - - proto$1.calendar = calendar; - proto$1.longDateFormat = longDateFormat; - proto$1.invalidDate = invalidDate; - proto$1.ordinal = ordinal; - proto$1.preparse = preParsePostFormat; - proto$1.postformat = preParsePostFormat; - proto$1.relativeTime = relativeTime; - proto$1.pastFuture = pastFuture; - proto$1.set = set; - proto$1.eras = localeEras; - proto$1.erasParse = localeErasParse; - proto$1.erasConvertYear = localeErasConvertYear; - proto$1.erasAbbrRegex = erasAbbrRegex; - proto$1.erasNameRegex = erasNameRegex; - proto$1.erasNarrowRegex = erasNarrowRegex; +}; - proto$1.months = localeMonths; - proto$1.monthsShort = localeMonthsShort; - proto$1.monthsParse = localeMonthsParse; - proto$1.monthsRegex = monthsRegex; - proto$1.monthsShortRegex = monthsShortRegex; - proto$1.week = localeWeek; - proto$1.firstDayOfYear = localeFirstDayOfYear; - proto$1.firstDayOfWeek = localeFirstDayOfWeek; +forEach(["years", "days", "months", "hours", "minutes", "seconds"], function (k) { + definedFuncs[k + "FromNow"] = extd[k + "FromNow"]; + definedFuncs[k + "Ago"] = extd[k + "Ago"]; +}); - proto$1.weekdays = localeWeekdays; - proto$1.weekdaysMin = localeWeekdaysMin; - proto$1.weekdaysShort = localeWeekdaysShort; - proto$1.weekdaysParse = localeWeekdaysParse; - proto$1.weekdaysRegex = weekdaysRegex; - proto$1.weekdaysShortRegex = weekdaysShortRegex; - proto$1.weekdaysMinRegex = weekdaysMinRegex; +forEach(["isArray", "isNumber", "isHash", "isObject", "isDate", "isBoolean", "isString", "isRegExp", "isNull", "isEmpty", + "isUndefined", "isDefined", "isUndefinedOrNull", "isPromiseLike", "isFunction", "deepEqual"], function (k) { + var m = extd[k]; + definedFuncs[k] = function () { + return m.apply(extd, arguments); + }; +}); - proto$1.isPM = localeIsPM; - proto$1.meridiem = localeMeridiem; - function get$1(format, index, field, setter) { - var locale = getLocale(), - utc = createUTC().set(setter, index); - return locale[field](utc, format); - } +var lang = { - function listMonthsImpl(format, index, field) { - if (isNumber(format)) { - index = format; - format = undefined; + equal: function (c1, c2) { + var ret = false; + if (c1 === c2) { + ret = true; + } else { + if (c1[2] === c2[2]) { + if (indexOf(["string", "number", "boolean", "regexp", "identifier", "null"], c1[2]) !== -1) { + ret = c1[0] === c2[0]; + } else if (c1[2] === "unary" || c1[2] === "logicalNot") { + ret = this.equal(c1[0], c2[0]); + } else { + ret = this.equal(c1[0], c2[0]) && this.equal(c1[1], c2[1]); + } + } } + return ret; + }, - format = format || ''; - - if (index != null) { - return get$1(format, index, field, 'month'); + __getProperties: function (rule) { + var ret = []; + if (rule) { + var rule2 = rule[2]; + if (!rule2) { + return ret; + } + if (rule2 !== "prop" && + rule2 !== "identifier" && + rule2 !== "string" && + rule2 !== "number" && + rule2 !== "boolean" && + rule2 !== "regexp" && + rule2 !== "unary" && + rule2 !== "unary") { + ret[0] = this.__getProperties(rule[0]); + ret[1] = this.__getProperties(rule[1]); + } else if (rule2 === "identifier") { + //at the bottom + ret = [rule[0]]; + } else { + ret = lang.__getProperties(rule[1]).concat(lang.__getProperties(rule[0])); + } } + return ret; + }, - var i, - out = []; - for (i = 0; i < 12; i++) { - out[i] = get$1(format, i, field, 'month'); + getIndexableProperties: function (rule) { + if (rule[2] === "composite") { + return this.getIndexableProperties(rule[0]); + } else if (/^(\w+(\['[^']*'])*) *([!=]==?|[<>]=?) (\w+(\['[^']*'])*)$/.test(this.parse(rule))) { + return getProps(this.__getProperties(rule)).flatten().value(); + } else { + return []; } - return out; - } + }, - // () - // (5) - // (fmt, 5) - // (fmt) - // (true) - // (true, 5) - // (true, fmt, 5) - // (true, fmt) - function listWeekdaysImpl(localeSorted, format, index, field) { - if (typeof localeSorted === 'boolean') { - if (isNumber(format)) { - index = format; - format = undefined; + getIdentifiers: function (rule) { + var ret = []; + var rule2 = rule[2]; + + if (rule2 === "identifier") { + //its an identifier so stop + return [rule[0]]; + } else if (rule2 === "function") { + ret = ret.concat(this.getIdentifiers(rule[0])).concat(this.getIdentifiers(rule[1])); + } else if (rule2 !== "string" && + rule2 !== "number" && + rule2 !== "boolean" && + rule2 !== "regexp" && + rule2 !== "unary" && + rule2 !== "unary") { + //its an expression so keep going + if (rule2 === "prop") { + ret = ret.concat(this.getIdentifiers(rule[0])); + if (rule[1]) { + var propChain = rule[1]; + //go through the member variables and collect any identifiers that may be in functions + while (isArray(propChain)) { + if (propChain[2] === "function") { + ret = ret.concat(this.getIdentifiers(propChain[1])); + break; + } else { + propChain = propChain[1]; + } + } + } + + } else { + if (rule[0]) { + ret = ret.concat(this.getIdentifiers(rule[0])); + } + if (rule[1]) { + ret = ret.concat(this.getIdentifiers(rule[1])); + } } + } + //remove dups and return + return removeDups(ret); + }, - format = format || ''; - } else { - format = localeSorted; - index = format; - localeSorted = false; + toConstraints: function (rule, options) { + var ret = [], + alias = options.alias, + scope = options.scope || {}; - if (isNumber(format)) { - index = format; - format = undefined; + var rule2 = rule[2]; + + + if (rule2 === "and") { + ret = ret.concat(this.toConstraints(rule[0], options)).concat(this.toConstraints(rule[1], options)); + } else if ( + rule2 === "composite" || + rule2 === "or" || + rule2 === "lt" || + rule2 === "gt" || + rule2 === "lte" || + rule2 === "gte" || + rule2 === "like" || + rule2 === "notLike" || + rule2 === "eq" || + rule2 === "neq" || + rule2 === "seq" || + rule2 === "sneq" || + rule2 === "in" || + rule2 === "notIn" || + rule2 === "prop" || + rule2 === "propLookup" || + rule2 === "function" || + rule2 === "logicalNot") { + var isReference = some(this.getIdentifiers(rule), function (i) { + return i !== alias && !(i in definedFuncs) && !(i in scope); + }); + switch (rule2) { + case "eq": + ret.push(new atoms[isReference ? "ReferenceEqualityConstraint" : "EqualityConstraint"](rule, options)); + break; + case "seq": + ret.push(new atoms[isReference ? "ReferenceEqualityConstraint" : "EqualityConstraint"](rule, options)); + break; + case "neq": + ret.push(new atoms[isReference ? "ReferenceInequalityConstraint" : "InequalityConstraint"](rule, options)); + break; + case "sneq": + ret.push(new atoms[isReference ? "ReferenceInequalityConstraint" : "InequalityConstraint"](rule, options)); + break; + case "gt": + ret.push(new atoms[isReference ? "ReferenceGTConstraint" : "ComparisonConstraint"](rule, options)); + break; + case "gte": + ret.push(new atoms[isReference ? "ReferenceGTEConstraint" : "ComparisonConstraint"](rule, options)); + break; + case "lt": + ret.push(new atoms[isReference ? "ReferenceLTConstraint" : "ComparisonConstraint"](rule, options)); + break; + case "lte": + ret.push(new atoms[isReference ? "ReferenceLTEConstraint" : "ComparisonConstraint"](rule, options)); + break; + default: + ret.push(new atoms[isReference ? "ReferenceConstraint" : "ComparisonConstraint"](rule, options)); } - format = format || ''; } + return ret; + }, - var locale = getLocale(), - shift = localeSorted ? locale._week.dow : 0, - i, - out = []; - if (index != null) { - return get$1(format, (index + shift) % 7, field, 'day'); + parse: function (rule) { + return this[rule[2]](rule[0], rule[1]); + }, + + composite: function (lhs) { + return this.parse(lhs); + }, + + and: function (lhs, rhs) { + return ["(", this.parse(lhs), "&&", this.parse(rhs), ")"].join(" "); + }, + + or: function (lhs, rhs) { + return ["(", this.parse(lhs), "||", this.parse(rhs), ")"].join(" "); + }, + + prop: function (name, prop) { + if (prop[2] === "function") { + return [this.parse(name), this.parse(prop)].join("."); + } else { + return [this.parse(name), "['", this.parse(prop), "']"].join(""); } + }, - for (i = 0; i < 7; i++) { - out[i] = get$1(format, (i + shift) % 7, field, 'day'); + propLookup: function (name, prop) { + if (prop[2] === "function") { + return [this.parse(name), this.parse(prop)].join("."); + } else { + return [this.parse(name), "[", this.parse(prop), "]"].join(""); } - return out; - } + }, - function listMonths(format, index) { - return listMonthsImpl(format, index, 'months'); - } + unary: function (lhs) { + return -1 * this.parse(lhs); + }, - function listMonthsShort(format, index) { - return listMonthsImpl(format, index, 'monthsShort'); - } + plus: function (lhs, rhs) { + return [this.parse(lhs), "+", this.parse(rhs)].join(" "); + }, + minus: function (lhs, rhs) { + return [this.parse(lhs), "-", this.parse(rhs)].join(" "); + }, - function listWeekdays(localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); - } + mult: function (lhs, rhs) { + return [this.parse(lhs), "*", this.parse(rhs)].join(" "); + }, - function listWeekdaysShort(localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); - } + div: function (lhs, rhs) { + return [this.parse(lhs), "/", this.parse(rhs)].join(" "); + }, - function listWeekdaysMin(localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); - } + mod: function (lhs, rhs) { + return [this.parse(lhs), "%", this.parse(rhs)].join(" "); + }, - getSetGlobalLocale('en', { - eras: [ - { - since: '0001-01-01', - until: +Infinity, - offset: 1, - name: 'Anno Domini', - narrow: 'AD', - abbr: 'AD', - }, - { - since: '0000-12-31', - until: -Infinity, - offset: 1, - name: 'Before Christ', - narrow: 'BC', - abbr: 'BC', - }, - ], - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal: function (number) { - var b = number % 10, - output = - toInt((number % 100) / 10) === 1 - ? 'th' - : b === 1 - ? 'st' - : b === 2 - ? 'nd' - : b === 3 - ? 'rd' - : 'th'; - return number + output; - }, - }); + lt: function (lhs, rhs) { + return [this.parse(lhs), "<", this.parse(rhs)].join(" "); + }, + gt: function (lhs, rhs) { + return [this.parse(lhs), ">", this.parse(rhs)].join(" "); + }, + lte: function (lhs, rhs) { + return [this.parse(lhs), "<=", this.parse(rhs)].join(" "); + }, + gte: function (lhs, rhs) { + return [this.parse(lhs), ">=", this.parse(rhs)].join(" "); + }, + like: function (lhs, rhs) { + return [this.parse(rhs), ".test(", this.parse(lhs), ")"].join(""); + }, + notLike: function (lhs, rhs) { + return ["!", this.parse(rhs), ".test(", this.parse(lhs), ")"].join(""); + }, + eq: function (lhs, rhs) { + return [this.parse(lhs), "==", this.parse(rhs)].join(" "); + }, - // Side effect imports + seq: function (lhs, rhs) { + return [this.parse(lhs), "===", this.parse(rhs)].join(" "); + }, - hooks.lang = deprecate( - 'moment.lang is deprecated. Use moment.locale instead.', - getSetGlobalLocale - ); - hooks.langData = deprecate( - 'moment.langData is deprecated. Use moment.localeData instead.', - getLocale - ); + neq: function (lhs, rhs) { + return [this.parse(lhs), "!=", this.parse(rhs)].join(" "); + }, - var mathAbs = Math.abs; + sneq: function (lhs, rhs) { + return [this.parse(lhs), "!==", this.parse(rhs)].join(" "); + }, - function abs() { - var data = this._data; + "in": function (lhs, rhs) { + return ["(indexOf(", this.parse(rhs), ",", this.parse(lhs), ")) != -1"].join(""); + }, - this._milliseconds = mathAbs(this._milliseconds); - this._days = mathAbs(this._days); - this._months = mathAbs(this._months); + "notIn": function (lhs, rhs) { + return ["(indexOf(", this.parse(rhs), ",", this.parse(lhs), ")) == -1"].join(""); + }, - data.milliseconds = mathAbs(data.milliseconds); - data.seconds = mathAbs(data.seconds); - data.minutes = mathAbs(data.minutes); - data.hours = mathAbs(data.hours); - data.months = mathAbs(data.months); - data.years = mathAbs(data.years); + "arguments": function (lhs, rhs) { + var ret = []; + if (lhs) { + ret.push(this.parse(lhs)); + } + if (rhs) { + ret.push(this.parse(rhs)); + } + return ret.join(","); + }, - return this; - } + "array": function (lhs) { + var args = []; + if (lhs) { + args = this.parse(lhs); + if (isArray(args)) { + return args; + } else { + return ["[", args, "]"].join(""); + } + } + return ["[", args.join(","), "]"].join(""); + }, - function addSubtract$1(duration, input, value, direction) { - var other = createDuration(input, value); + "function": function (lhs, rhs) { + var args = this.parse(rhs); + return [this.parse(lhs), "(", args, ")"].join(""); + }, - duration._milliseconds += direction * other._milliseconds; - duration._days += direction * other._days; - duration._months += direction * other._months; + "string": function (lhs) { + return "'" + lhs + "'"; + }, - return duration._bubble(); - } + "number": function (lhs) { + return lhs; + }, - // supports only 2.0-style add(1, 's') or add(duration) - function add$1(input, value) { - return addSubtract$1(this, input, value, 1); - } + "boolean": function (lhs) { + return lhs; + }, - // supports only 2.0-style subtract(1, 's') or subtract(duration) - function subtract$1(input, value) { - return addSubtract$1(this, input, value, -1); + regexp: function (lhs) { + return lhs; + }, + + identifier: function (lhs) { + return lhs; + }, + + "null": function () { + return "null"; + }, + + logicalNot: function (lhs) { + return ["!(", this.parse(lhs), ")"].join(""); } +}; - function absCeil(number) { - if (number < 0) { - return Math.floor(number); +var matcherCount = 0; +var toJs = exports.toJs = function (rule, scope, alias, equality, wrap) { + /*jshint evil:true*/ + var js = lang.parse(rule); + scope = scope || {}; + var vars = lang.getIdentifiers(rule); + var closureVars = ["var indexOf = definedFuncs.indexOf; var hasOwnProperty = Object.prototype.hasOwnProperty;"], funcVars = []; + extd(vars).filter(function (v) { + var ret = ["var ", v, " = "]; + if (definedFuncs.hasOwnProperty(v)) { + ret.push("definedFuncs['", v, "']"); + } else if (scope.hasOwnProperty(v)) { + ret.push("scope['", v, "']"); } else { - return Math.ceil(number); + return true; } - } - - function bubble() { - var milliseconds = this._milliseconds, - days = this._days, - months = this._months, - data = this._data, - seconds, - minutes, - hours, - years, - monthsFromDays; - - // if we have a mix of positive and negative values, bubble down first - // check: https://github.com/moment/moment/issues/2166 - if ( - !( - (milliseconds >= 0 && days >= 0 && months >= 0) || - (milliseconds <= 0 && days <= 0 && months <= 0) - ) - ) { - milliseconds += absCeil(monthsToDays(months) + days) * 864e5; - days = 0; - months = 0; + ret.push(";"); + closureVars.push(ret.join("")); + return false; + }).forEach(function (v) { + var ret = ["var ", v, " = "]; + if (equality || v !== alias) { + ret.push("fact." + v); + } else if (v === alias) { + ret.push("hash.", v, ""); } + ret.push(";"); + funcVars.push(ret.join("")); + }); + var closureBody = closureVars.join("") + "return function matcher" + (matcherCount++) + (!equality ? "(fact, hash){" : "(fact){") + funcVars.join("") + " return " + (wrap ? wrap(js) : js) + ";}"; + var f = new Function("definedFuncs, scope", closureBody)(definedFuncs, scope); + //console.log(f.toString()); + return f; +}; - // The following code bubbles up values, see the tests for - // examples of what that means. - data.milliseconds = milliseconds % 1000; +exports.getMatcher = function (rule, options, equality) { + options = options || {}; + return toJs(rule, options.scope, options.alias, equality, function (src) { + return "!!(" + src + ")"; + }); +}; - seconds = absFloor(milliseconds / 1000); - data.seconds = seconds % 60; +exports.getSourceMatcher = function (rule, options, equality) { + options = options || {}; + return toJs(rule, options.scope, options.alias, equality, function (src) { + return src; + }); +}; - minutes = absFloor(seconds / 60); - data.minutes = minutes % 60; +exports.toConstraints = function (constraint, options) { + if (typeof constraint === 'function') { + return [new atoms.CustomConstraint(constraint, options)]; + } + //constraint.split("&&") + return lang.toConstraints(constraint, options); +}; - hours = absFloor(minutes / 60); - data.hours = hours % 24; +exports.equal = function (c1, c2) { + return lang.equal(c1, c2); +}; - days += absFloor(hours / 24); +exports.getIdentifiers = function (constraint) { + return lang.getIdentifiers(constraint); +}; - // convert days to months - monthsFromDays = absFloor(daysToMonths(days)); - months += monthsFromDays; - days -= absCeil(monthsToDays(monthsFromDays)); +exports.getIndexableProperties = function (constraint) { + return lang.getIndexableProperties(constraint); +}; - // 12 months -> 1 year - years = absFloor(months / 12); - months %= 12; +/***/ }), - data.days = days; - data.months = months; - data.years = years; +/***/ "./build/cht-core-4-6/node_modules/nools/lib/context.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/context.js ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2956648__) => { - return this; - } +"use strict"; +/* module decorator */ module = __nested_webpack_require_2956648__.nmd(module); - function daysToMonths(days) { - // 400 years have 146097 days (taking into account leap year rules) - // 400 years have 12 months === 4800 - return (days * 4800) / 146097; - } +var extd = __nested_webpack_require_2956648__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + isBoolean = extd.isBoolean, + declare = extd.declare, + indexOf = extd.indexOf, + pPush = Array.prototype.push; - function monthsToDays(months) { - // the reverse of daysToMonths - return (months * 146097) / 4800; +function createContextHash(paths, hashCode) { + var ret = "", + i = -1, + l = paths.length; + while (++i < l) { + ret += paths[i].id + ":"; } + ret += hashCode; + return ret; +} - function as(units) { - if (!this.isValid()) { - return NaN; - } - var days, - months, - milliseconds = this._milliseconds; - - units = normalizeUnits(units); - - if (units === 'month' || units === 'quarter' || units === 'year') { - days = this._days + milliseconds / 864e5; - months = this._months + daysToMonths(days); - switch (units) { - case 'month': - return months; - case 'quarter': - return months / 3; - case 'year': - return months / 12; - } - } else { - // handle milliseconds separately because of floating point math errors (issue #1867) - days = this._days + Math.round(monthsToDays(this._months)); - switch (units) { - case 'week': - return days / 7 + milliseconds / 6048e5; - case 'day': - return days + milliseconds / 864e5; - case 'hour': - return days * 24 + milliseconds / 36e5; - case 'minute': - return days * 1440 + milliseconds / 6e4; - case 'second': - return days * 86400 + milliseconds / 1000; - // Math.floor prevents floating point math errors here - case 'millisecond': - return Math.floor(days * 864e5) + milliseconds; - default: - throw new Error('Unknown unit ' + units); - } - } +function merge(h1, h2, aliases) { + var i = -1, l = aliases.length, alias; + while (++i < l) { + alias = aliases[i]; + h1[alias] = h2[alias]; } +} - // TODO: Use this.as('ms')? - function valueOf$1() { - if (!this.isValid()) { - return NaN; +function unionRecency(arr, arr1, arr2) { + pPush.apply(arr, arr1); + var i = -1, l = arr2.length, val, j = arr.length; + while (++i < l) { + val = arr2[i]; + if (indexOf(arr, val) === -1) { + arr[j++] = val; } - return ( - this._milliseconds + - this._days * 864e5 + - (this._months % 12) * 2592e6 + - toInt(this._months / 12) * 31536e6 - ); - } - - function makeAs(alias) { - return function () { - return this.as(alias); - }; } +} - var asMilliseconds = makeAs('ms'), - asSeconds = makeAs('s'), - asMinutes = makeAs('m'), - asHours = makeAs('h'), - asDays = makeAs('d'), - asWeeks = makeAs('w'), - asMonths = makeAs('M'), - asQuarters = makeAs('Q'), - asYears = makeAs('y'); - - function clone$1() { - return createDuration(this); - } +var Match = declare({ + instance: { - function get$2(units) { - units = normalizeUnits(units); - return this.isValid() ? this[units + 's']() : NaN; - } + isMatch: true, + hashCode: "", + facts: null, + factIds: null, + factHash: null, + recency: null, + aliases: null, - function makeGetter(name) { - return function () { - return this.isValid() ? this._data[name] : NaN; - }; - } + constructor: function () { + this.facts = []; + this.factIds = []; + this.factHash = {}; + this.recency = []; + this.aliases = []; + }, - var milliseconds = makeGetter('milliseconds'), - seconds = makeGetter('seconds'), - minutes = makeGetter('minutes'), - hours = makeGetter('hours'), - days = makeGetter('days'), - months = makeGetter('months'), - years = makeGetter('years'); + addFact: function (assertable) { + pPush.call(this.facts, assertable); + pPush.call(this.recency, assertable.recency); + pPush.call(this.factIds, assertable.id); + this.hashCode = this.factIds.join(":"); + return this; + }, - function weeks() { - return absFloor(this.days() / 7); + merge: function (mr) { + var ret = new Match(); + ret.isMatch = mr.isMatch; + pPush.apply(ret.facts, this.facts); + pPush.apply(ret.facts, mr.facts); + pPush.apply(ret.aliases, this.aliases); + pPush.apply(ret.aliases, mr.aliases); + ret.hashCode = this.hashCode + ":" + mr.hashCode; + merge(ret.factHash, this.factHash, this.aliases); + merge(ret.factHash, mr.factHash, mr.aliases); + unionRecency(ret.recency, this.recency, mr.recency); + return ret; + } } +}); - var round = Math.round, - thresholds = { - ss: 44, // a few seconds to seconds - s: 45, // seconds to minute - m: 45, // minutes to hour - h: 22, // hours to day - d: 26, // days to month/week - w: null, // weeks to month - M: 11, // months to year - }; - - // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize - function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { - return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); - } +var Context = declare({ + instance: { + match: null, + factHash: null, + aliases: null, + fact: null, + hashCode: null, + paths: null, + pathsHash: null, - function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) { - var duration = createDuration(posNegDuration).abs(), - seconds = round(duration.as('s')), - minutes = round(duration.as('m')), - hours = round(duration.as('h')), - days = round(duration.as('d')), - months = round(duration.as('M')), - weeks = round(duration.as('w')), - years = round(duration.as('y')), - a = - (seconds <= thresholds.ss && ['s', seconds]) || - (seconds < thresholds.s && ['ss', seconds]) || - (minutes <= 1 && ['m']) || - (minutes < thresholds.m && ['mm', minutes]) || - (hours <= 1 && ['h']) || - (hours < thresholds.h && ['hh', hours]) || - (days <= 1 && ['d']) || - (days < thresholds.d && ['dd', days]); + constructor: function (fact, paths, mr) { + this.fact = fact; + if (mr) { + this.match = mr; + } else { + this.match = new Match().addFact(fact); + } + this.factHash = this.match.factHash; + this.aliases = this.match.aliases; + this.hashCode = this.match.hashCode; + if (paths) { + this.paths = paths; + this.pathsHash = createContextHash(paths, this.hashCode); + } else { + this.pathsHash = this.hashCode; + } + }, - if (thresholds.w != null) { - a = - a || - (weeks <= 1 && ['w']) || - (weeks < thresholds.w && ['ww', weeks]); - } - a = a || - (months <= 1 && ['M']) || - (months < thresholds.M && ['MM', months]) || - (years <= 1 && ['y']) || ['yy', years]; + "set": function (key, value) { + this.factHash[key] = value; + this.aliases.push(key); + return this; + }, - a[2] = withoutSuffix; - a[3] = +posNegDuration > 0; - a[4] = locale; - return substituteTimeAgo.apply(null, a); - } + isMatch: function (isMatch) { + if (isBoolean(isMatch)) { + this.match.isMatch = isMatch; + } else { + return this.match.isMatch; + } + return this; + }, - // This function allows you to set the rounding function for relative time strings - function getSetRelativeTimeRounding(roundingFunction) { - if (roundingFunction === undefined) { - return round; - } - if (typeof roundingFunction === 'function') { - round = roundingFunction; - return true; - } - return false; - } + mergeMatch: function (merge) { + var match = this.match = this.match.merge(merge); + this.factHash = match.factHash; + this.hashCode = match.hashCode; + this.aliases = match.aliases; + return this; + }, - // This function allows you to set a threshold for relative time strings - function getSetRelativeTimeThreshold(threshold, limit) { - if (thresholds[threshold] === undefined) { - return false; - } - if (limit === undefined) { - return thresholds[threshold]; - } - thresholds[threshold] = limit; - if (threshold === 's') { - thresholds.ss = limit - 1; + clone: function (fact, paths, match) { + return new Context(fact || this.fact, paths || this.path, match || this.match); } - return true; } +}).as(module); - function humanize(argWithSuffix, argThresholds) { - if (!this.isValid()) { - return this.localeData().invalidDate(); - } - var withSuffix = false, - th = thresholds, - locale, - output; - if (typeof argWithSuffix === 'object') { - argThresholds = argWithSuffix; - argWithSuffix = false; - } - if (typeof argWithSuffix === 'boolean') { - withSuffix = argWithSuffix; - } - if (typeof argThresholds === 'object') { - th = Object.assign({}, thresholds, argThresholds); - if (argThresholds.s != null && argThresholds.ss == null) { - th.ss = argThresholds.s - 1; - } - } - locale = this.localeData(); - output = relativeTime$1(this, !withSuffix, th, locale); +/***/ }), - if (withSuffix) { - output = locale.pastFuture(+this, output); - } +/***/ "./build/cht-core-4-6/node_modules/nools/lib/executionStrategy.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/executionStrategy.js ***! + \************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2960889__) => { - return locale.postformat(output); - } +/* module decorator */ module = __nested_webpack_require_2960889__.nmd(module); +var extd = __nested_webpack_require_2960889__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + Promise = extd.Promise, + nextTick = __nested_webpack_require_2960889__(/*! ./nextTick */ "./build/cht-core-4-6/node_modules/nools/lib/nextTick.js"), + isPromiseLike = extd.isPromiseLike; - var abs$1 = Math.abs; +Promise.extend({ + instance: { - function sign(x) { - return (x > 0) - (x < 0) || +x; - } + looping: false, - function toISOString$1() { - // for ISO strings we do not use the normal bubbling rules: - // * milliseconds bubble up until they become hours - // * days do not bubble at all - // * months bubble up until they become years - // This is because there is no context-free conversion between hours and days - // (think of clock changes) - // and also not between days and months (28-31 days per month) - if (!this.isValid()) { - return this.localeData().invalidDate(); - } + constructor: function (flow, matchUntilHalt) { + this._super([]); + this.flow = flow; + this.agenda = flow.agenda; + this.rootNode = flow.rootNode; + this.matchUntilHalt = !!(matchUntilHalt); + extd.bindAll(this, ["onAlter", "callNext"]); + }, - var seconds = abs$1(this._milliseconds) / 1000, - days = abs$1(this._days), - months = abs$1(this._months), - minutes, - hours, - years, - s, - total = this.asSeconds(), - totalSign, - ymSign, - daysSign, - hmsSign; + halt: function () { + this.__halted = true; + if (!this.looping) { + this.callback(); + } + }, - if (!total) { - // this is the same as C#'s (Noda) and python (isodate)... - // but not other JS (goog.date) - return 'P0D'; - } + onAlter: function () { + this.flowAltered = true; + if (!this.looping && this.matchUntilHalt && !this.__halted) { + this.callNext(); + } + }, - // 3600 seconds -> 60 minutes -> 1 hour - minutes = absFloor(seconds / 60); - hours = absFloor(minutes / 60); - seconds %= 60; - minutes %= 60; + setup: function () { + var flow = this.flow; + this.rootNode.resetCounter(); + flow.on("assert", this.onAlter); + flow.on("modify", this.onAlter); + flow.on("retract", this.onAlter); + }, - // 12 months -> 1 year - years = absFloor(months / 12); - months %= 12; + tearDown: function () { + var flow = this.flow; + flow.removeListener("assert", this.onAlter); + flow.removeListener("modify", this.onAlter); + flow.removeListener("retract", this.onAlter); + }, - // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js - s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; + __handleAsyncNext: function (next) { + var self = this, agenda = self.agenda; + return next.then(function () { + self.looping = false; + if (!agenda.isEmpty()) { + if (self.flowAltered) { + self.rootNode.incrementCounter(); + self.flowAltered = false; + } + if (!self.__halted) { + self.callNext(); + } else { + self.callback(); + } + } else if (!self.matchUntilHalt || self.__halted) { + self.callback(); + } + self = null; + }, this.errback); + }, - totalSign = total < 0 ? '-' : ''; - ymSign = sign(this._months) !== sign(total) ? '-' : ''; - daysSign = sign(this._days) !== sign(total) ? '-' : ''; - hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; + __handleSyncNext: function (next) { + this.looping = false; + if (!this.agenda.isEmpty()) { + if (this.flowAltered) { + this.rootNode.incrementCounter(); + this.flowAltered = false; + } + } + if (next && !this.__halted) { + nextTick(this.callNext); + } else if (!this.matchUntilHalt || this.__halted) { + this.callback(); + } + return next; + }, - return ( - totalSign + - 'P' + - (years ? ymSign + years + 'Y' : '') + - (months ? ymSign + months + 'M' : '') + - (days ? daysSign + days + 'D' : '') + - (hours || minutes || seconds ? 'T' : '') + - (hours ? hmsSign + hours + 'H' : '') + - (minutes ? hmsSign + minutes + 'M' : '') + - (seconds ? hmsSign + s + 'S' : '') - ); - } + callback: function () { + this.tearDown(); + this._super(arguments); + }, - var proto$2 = Duration.prototype; - proto$2.isValid = isValid$1; - proto$2.abs = abs; - proto$2.add = add$1; - proto$2.subtract = subtract$1; - proto$2.as = as; - proto$2.asMilliseconds = asMilliseconds; - proto$2.asSeconds = asSeconds; - proto$2.asMinutes = asMinutes; - proto$2.asHours = asHours; - proto$2.asDays = asDays; - proto$2.asWeeks = asWeeks; - proto$2.asMonths = asMonths; - proto$2.asQuarters = asQuarters; - proto$2.asYears = asYears; - proto$2.valueOf = valueOf$1; - proto$2._bubble = bubble; - proto$2.clone = clone$1; - proto$2.get = get$2; - proto$2.milliseconds = milliseconds; - proto$2.seconds = seconds; - proto$2.minutes = minutes; - proto$2.hours = hours; - proto$2.days = days; - proto$2.weeks = weeks; - proto$2.months = months; - proto$2.years = years; - proto$2.humanize = humanize; - proto$2.toISOString = toISOString$1; - proto$2.toString = toISOString$1; - proto$2.toJSON = toISOString$1; - proto$2.locale = locale; - proto$2.localeData = localeData; + callNext: function () { + this.looping = true; + var next = this.agenda.fireNext(); + return isPromiseLike(next) ? this.__handleAsyncNext(next) : this.__handleSyncNext(next); + }, - proto$2.toIsoString = deprecate( - 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', - toISOString$1 - ); - proto$2.lang = lang; + execute: function () { + this.setup(); + this.callNext(); + return this; + } + } +}).as(module); - // FORMATTING +/***/ }), - addFormatToken('X', 0, 0, 'unix'); - addFormatToken('x', 0, 0, 'valueOf'); +/***/ "./build/cht-core-4-6/node_modules/nools/lib/extended.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/extended.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2964594__) => { - // PARSING +var arr = __nested_webpack_require_2964594__(/*! array-extended */ "./build/cht-core-4-6/node_modules/array-extended/index.js"), + unique = arr.unique, + indexOf = arr.indexOf, + map = arr.map, + pSlice = Array.prototype.slice, + pSplice = Array.prototype.splice; - addRegexToken('x', matchSigned); - addRegexToken('X', matchTimestamp); - addParseToken('X', function (input, array, config) { - config._d = new Date(parseFloat(input) * 1000); - }); - addParseToken('x', function (input, array, config) { - config._d = new Date(toInt(input)); - }); +function plucked(prop) { + var exec = prop.match(/(\w+)\(\)$/); + if (exec) { + prop = exec[1]; + return function (item) { + return item[prop](); + }; + } else { + return function (item) { + return item[prop]; + }; + } +} - //! moment.js +function plucker(prop) { + prop = prop.split("."); + if (prop.length === 1) { + return plucked(prop[0]); + } else { + var pluckers = map(prop, function (prop) { + return plucked(prop); + }); + var l = pluckers.length; + return function (item) { + var i = -1, res = item; + while (++i < l) { + res = pluckers[i](res); + } + return res; + }; + } +} - hooks.version = '2.29.1'; +function intersection(a, b) { + a = pSlice.call(a); + var aOne, i = -1, l; + l = a.length; + while (++i < l) { + aOne = a[i]; + if (indexOf(b, aOne) === -1) { + pSplice.call(a, i--, 1); + l--; + } + } + return a; +} - setHookCallback(createLocal); +function inPlaceIntersection(a, b) { + var aOne, i = -1, l; + l = a.length; + while (++i < l) { + aOne = a[i]; + if (indexOf(b, aOne) === -1) { + pSplice.call(a, i--, 1); + l--; + } + } + return a; +} - hooks.fn = proto; - hooks.min = min; - hooks.max = max; - hooks.now = now; - hooks.utc = createUTC; - hooks.unix = createUnix; - hooks.months = listMonths; - hooks.isDate = isDate; - hooks.locale = getSetGlobalLocale; - hooks.invalid = createInvalid; - hooks.duration = createDuration; - hooks.isMoment = isMoment; - hooks.weekdays = listWeekdays; - hooks.parseZone = createInZone; - hooks.localeData = getLocale; - hooks.isDuration = isDuration; - hooks.monthsShort = listMonthsShort; - hooks.weekdaysMin = listWeekdaysMin; - hooks.defineLocale = defineLocale; - hooks.updateLocale = updateLocale; - hooks.locales = listLocales; - hooks.weekdaysShort = listWeekdaysShort; - hooks.normalizeUnits = normalizeUnits; - hooks.relativeTimeRounding = getSetRelativeTimeRounding; - hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; - hooks.calendarFormat = getCalendarFormat; - hooks.prototype = proto; +function inPlaceDifference(a, b) { + var aOne, i = -1, l; + l = a.length; + while (++i < l) { + aOne = a[i]; + if (indexOf(b, aOne) !== -1) { + pSplice.call(a, i--, 1); + l--; + } + } + return a; +} - // currently HTML5 input type only supports 24-hour formats - hooks.HTML5_FMT = { - DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // - DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // - DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // - DATE: 'YYYY-MM-DD', // - TIME: 'HH:mm', // - TIME_SECONDS: 'HH:mm:ss', // - TIME_MS: 'HH:mm:ss.SSS', // - WEEK: 'GGGG-[W]WW', // - MONTH: 'YYYY-MM', // - }; +function diffArr(arr1, arr2) { + var ret = [], i = -1, j, l2 = arr2.length, l1 = arr1.length, a, found; + if (l2 > l1) { + ret = arr1.slice(); + while (++i < l2) { + a = arr2[i]; + j = -1; + l1 = ret.length; + while (++j < l1) { + if (ret[j] === a) { + ret.splice(j, 1); + break; + } + } + } + } else { + while (++i < l1) { + a = arr1[i]; + j = -1; + found = false; + while (++j < l2) { + if (arr2[j] === a) { + found = true; + break; + } + } + if (!found) { + ret.push(a); + } + } + } + return ret; +} - return hooks; +function diffHash(h1, h2) { + var ret = {}; + for (var i in h1) { + if (!hasOwnProperty.call(h2, i)) { + ret[i] = h1[i]; + } + } + return ret; +} -}))); +function union(arr1, arr2) { + return unique(arr1.concat(arr2)); +} -/***/ }), +module.exports = __nested_webpack_require_2964594__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js")() + .register(__nested_webpack_require_2964594__(/*! date-extended */ "./build/cht-core-4-6/node_modules/date-extended/index.js")) + .register(arr) + .register(__nested_webpack_require_2964594__(/*! object-extended */ "./build/cht-core-4-6/node_modules/object-extended/index.js")) + .register(__nested_webpack_require_2964594__(/*! string-extended */ "./build/cht-core-4-6/node_modules/string-extended/index.js")) + .register(__nested_webpack_require_2964594__(/*! promise-extended */ "./build/cht-core-4-6/node_modules/promise-extended/index.js")) + .register(__nested_webpack_require_2964594__(/*! function-extended */ "./build/cht-core-4-6/node_modules/function-extended/index.js")) + .register(__nested_webpack_require_2964594__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js")) + .register("intersection", intersection) + .register("inPlaceIntersection", inPlaceIntersection) + .register("inPlaceDifference", inPlaceDifference) + .register("diffArr", diffArr) + .register("diffHash", diffHash) + .register("unionArr", union) + .register("plucker", plucker) + .register("HashTable", __nested_webpack_require_2964594__(/*! ht */ "./build/cht-core-4-6/node_modules/ht/index.js")) + .register("declare", __nested_webpack_require_2964594__(/*! declare.js */ "./build/cht-core-4-6/node_modules/declare.js/index.js")) + .register(__nested_webpack_require_2964594__(/*! leafy */ "./build/cht-core-4-6/node_modules/leafy/index.js")) + .register("LinkedList", __nested_webpack_require_2964594__(/*! ./linkedList */ "./build/cht-core-4-6/node_modules/nools/lib/linkedList.js")); -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/index.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/index.js ***! - \****************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { -module.exports = exports = __webpack_require__(/*! ./lib */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/index.js"); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/agenda.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/agenda.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/nools/lib/flow.js": +/*!***********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/flow.js ***! + \***********************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2969336__) => { "use strict"; -var extd = __webpack_require__(/*! ./extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), +var extd = __nested_webpack_require_2969336__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + bind = extd.bind, declare = extd.declare, - AVLTree = extd.AVLTree, - LinkedList = extd.LinkedList, - isPromise = extd.isPromiseLike, - EventEmitter = __webpack_require__(/*! events */ "events").EventEmitter; + nodes = __nested_webpack_require_2969336__(/*! ./nodes */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/index.js"), + EventEmitter = __nested_webpack_require_2969336__(/*! events */ "events").EventEmitter, + wm = __nested_webpack_require_2969336__(/*! ./workingMemory */ "./build/cht-core-4-6/node_modules/nools/lib/workingMemory.js"), + WorkingMemory = wm.WorkingMemory, + ExecutionStragegy = __nested_webpack_require_2969336__(/*! ./executionStrategy */ "./build/cht-core-4-6/node_modules/nools/lib/executionStrategy.js"), + AgendaTree = __nested_webpack_require_2969336__(/*! ./agenda */ "./build/cht-core-4-6/node_modules/nools/lib/agenda.js"); +module.exports = declare(EventEmitter, { -var FactHash = declare({ instance: { - constructor: function () { - this.memory = {}; - this.memoryValues = new LinkedList(); - }, - clear: function () { - this.memoryValues.clear(); - this.memory = {}; - }, + name: null, + executionStrategy: null, - remove: function (v) { - var hashCode = v.hashCode, - memory = this.memory, - ret = memory[hashCode]; - if (ret) { - this.memoryValues.remove(ret); - delete memory[hashCode]; - } - return ret; + constructor: function (name, conflictResolutionStrategy) { + this.env = null; + this.name = name; + this.__rules = {}; + this.conflictResolutionStrategy = conflictResolutionStrategy; + this.workingMemory = new WorkingMemory(); + this.agenda = new AgendaTree(this, conflictResolutionStrategy); + this.agenda.on("fire", bind(this, "emit", "fire")); + this.agenda.on("focused", bind(this, "emit", "focused")); + this.rootNode = new nodes.RootNode(this.workingMemory, this.agenda); + extd.bindAll(this, "halt", "assert", "retract", "modify", "focus", + "emit", "getFacts", "getFact"); }, - insert: function (insert) { - var hashCode = insert.hashCode; - if (hashCode in this.memory) { - throw new Error("Activation already in agenda " + insert.rule.name + " agenda"); + getFacts: function (Type) { + var ret; + if (Type) { + ret = this.workingMemory.getFactsByType(Type); + } else { + ret = this.workingMemory.getFacts(); } - this.memoryValues.push((this.memory[hashCode] = insert)); - } - } -}); - - -var DEFAULT_AGENDA_GROUP = "main"; -module.exports = declare(EventEmitter, { - - instance: { - constructor: function (flow, conflictResolution) { - this.agendaGroups = {}; - this.agendaGroupStack = [DEFAULT_AGENDA_GROUP]; - this.rules = {}; - this.flow = flow; - this.comparator = conflictResolution; - this.setFocus(DEFAULT_AGENDA_GROUP).addAgendaGroup(DEFAULT_AGENDA_GROUP); + return ret; }, - addAgendaGroup: function (groupName) { - if (!extd.has(this.agendaGroups, groupName)) { - this.agendaGroups[groupName] = new AVLTree({compare: this.comparator}); + getFact: function (Type) { + var ret; + if (Type) { + ret = this.workingMemory.getFactsByType(Type); + } else { + ret = this.workingMemory.getFacts(); } + return ret && ret[0]; }, - getAgendaGroup: function (groupName) { - return this.agendaGroups[groupName || DEFAULT_AGENDA_GROUP]; - }, - - setFocus: function (agendaGroup) { - if (agendaGroup !== this.getFocused() && this.agendaGroups[agendaGroup]) { - this.agendaGroupStack.push(agendaGroup); - this.emit("focused", agendaGroup); - } + focus: function (focused) { + this.agenda.setFocus(focused); return this; }, - getFocused: function () { - var ags = this.agendaGroupStack; - return ags[ags.length - 1]; - }, - - getFocusedAgenda: function () { - return this.agendaGroups[this.getFocused()]; + halt: function () { + this.executionStrategy.halt(); + return this; }, - register: function (node) { - var agendaGroup = node.rule.agendaGroup; - this.rules[node.name] = {tree: new AVLTree({compare: this.comparator}), factTable: new FactHash()}; - if (agendaGroup) { - this.addAgendaGroup(agendaGroup); - } + dispose: function () { + this.workingMemory.dispose(); + this.agenda.dispose(); + this.rootNode.dispose(); }, - isEmpty: function () { - var agendaGroupStack = this.agendaGroupStack, changed = false; - while (this.getFocusedAgenda().isEmpty() && this.getFocused() !== DEFAULT_AGENDA_GROUP) { - agendaGroupStack.pop(); - changed = true; - } - if (changed) { - this.emit("focused", this.getFocused()); - } - return this.getFocusedAgenda().isEmpty(); + assert: function (fact) { + this.rootNode.assertFact(this.workingMemory.assertFact(fact)); + this.emit("assert", fact); + return fact; }, - fireNext: function () { - var agendaGroupStack = this.agendaGroupStack, ret = false; - while (this.getFocusedAgenda().isEmpty() && this.getFocused() !== DEFAULT_AGENDA_GROUP) { - agendaGroupStack.pop(); - } - if (!this.getFocusedAgenda().isEmpty()) { - var activation = this.pop(); - this.emit("fire", activation.rule.name, activation.match.factHash); - var fired = activation.rule.fire(this.flow, activation.match); - if (isPromise(fired)) { - ret = fired.then(function () { - //return true if an activation fired - return true; - }); - } else { - ret = true; - } - } - //return false if activation not fired - return ret; + // This method is called to remove an existing fact from working memory + retract: function (fact) { + //fact = this.workingMemory.getFact(fact); + this.rootNode.retractFact(this.workingMemory.retractFact(fact)); + this.emit("retract", fact); + return fact; }, - pop: function () { - var tree = this.getFocusedAgenda(), root = tree.__root; - while (root.right) { - root = root.right; + // This method is called to alter an existing fact. It is essentially a + // retract followed by an assert. + modify: function (fact, cb) { + //fact = this.workingMemory.getFact(fact); + if ("function" === typeof cb) { + cb.call(fact, fact); } - var v = root.data; - tree.remove(v); - var rule = this.rules[v.name]; - rule.tree.remove(v); - rule.factTable.remove(v); - return v; + this.rootNode.modifyFact(this.workingMemory.modifyFact(fact)); + this.emit("modify", fact); + return fact; }, - peek: function () { - var tree = this.getFocusedAgenda(), root = tree.__root; - while (root.right) { - root = root.right; - } - return root.data; + print: function () { + this.rootNode.print(); }, - modify: function (node, context) { - this.retract(node, context); - this.insert(node, context); + containsRule: function (name) { + return this.rootNode.containsRule(name); }, - retract: function (node, retract) { - var rule = this.rules[node.name]; - retract.rule = node; - var activation = rule.factTable.remove(retract); - if (activation) { - this.getAgendaGroup(node.rule.agendaGroup).remove(activation); - rule.tree.remove(activation); - } + rule: function (rule) { + this.rootNode.assertRule(rule); }, - insert: function (node, insert) { - var rule = this.rules[node.name], nodeRule = node.rule, agendaGroup = nodeRule.agendaGroup; - rule.tree.insert(insert); - this.getAgendaGroup(agendaGroup).insert(insert); - if (nodeRule.autoFocus) { - this.setFocus(agendaGroup); - } - - rule.factTable.insert(insert); + matchUntilHalt: function (cb) { + return (this.executionStrategy = new ExecutionStragegy(this, true)).execute().classic(cb).promise(); }, - dispose: function () { - for (var i in this.agendaGroups) { - this.agendaGroups[i].clear(); - } - var rules = this.rules; - for (i in rules) { - if (i in rules) { - rules[i].tree.clear(); - rules[i].factTable.clear(); - - } - } - this.rules = {}; + match: function (cb) { + return (this.executionStrategy = new ExecutionStragegy(this)).execute().classic(cb).promise(); } - } + } }); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/compile/common.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/compile/common.js ***! - \*****************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/nools/lib/flowContainer.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/flowContainer.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2973793__) => { "use strict"; -/*jshint evil:true*/ +/* module decorator */ module = __nested_webpack_require_2973793__.nmd(module); -var extd = __webpack_require__(/*! ../extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), +var extd = __nested_webpack_require_2973793__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + instanceOf = extd.instanceOf, forEach = extd.forEach, - isString = extd.isString; + declare = extd.declare, + InitialFact = __nested_webpack_require_2973793__(/*! ./pattern */ "./build/cht-core-4-6/node_modules/nools/lib/pattern.js").InitialFact, + conflictStrategies = __nested_webpack_require_2973793__(/*! ./conflict */ "./build/cht-core-4-6/node_modules/nools/lib/conflict.js"), + conflictResolution = conflictStrategies.strategy(["salience", "activationRecency"]), + rule = __nested_webpack_require_2973793__(/*! ./rule */ "./build/cht-core-4-6/node_modules/nools/lib/rule.js"), + Flow = __nested_webpack_require_2973793__(/*! ./flow */ "./build/cht-core-4-6/node_modules/nools/lib/flow.js"); -exports.modifiers = ["assert", "modify", "retract", "emit", "halt", "focus", "getFacts"]; +var flows = {}; +var FlowContainer = declare({ + + instance: { + + constructor: function (name, cb) { + this.name = name; + this.cb = cb; + this.__rules = []; + this.__defined = {}; + this.conflictResolutionStrategy = conflictResolution; + if (cb) { + cb.call(this, this); + } + if (!flows.hasOwnProperty(name)) { + flows[name] = this; + } else { + throw new Error("Flow with " + name + " already defined"); + } + }, + + conflictResolution: function (strategies) { + this.conflictResolutionStrategy = conflictStrategies.strategy(strategies); + return this; + }, + + getDefined: function (name) { + var ret = this.__defined[name.toLowerCase()]; + if (!ret) { + throw new Error(name + " flow class is not defined"); + } + return ret; + }, + + addDefined: function (name, cls) { + //normalize + this.__defined[name.toLowerCase()] = cls; + return cls; + }, + + rule: function () { + this.__rules = this.__rules.concat(rule.createRule.apply(rule, arguments)); + return this; + }, + + getSession: function () { + var flow = new Flow(this.name, this.conflictResolutionStrategy); + forEach(this.__rules, function (rule) { + flow.rule(rule); + }); + flow.assert(new InitialFact()); + for (var i = 0, l = arguments.length; i < l; i++) { + flow.assert(arguments[i]); + } + return flow; + }, -var createFunction = function (body, defined, scope, scopeNames, definedNames) { - var declares = []; - forEach(definedNames, function (i) { - if (body.indexOf(i) !== -1) { - declares.push("var " + i + "= defined." + i + ";"); + containsRule: function (name) { + return extd.some(this.__rules, function (rule) { + return rule.name === name; + }); } - }); - forEach(scopeNames, function (i) { - if (body.indexOf(i) !== -1) { - declares.push("var " + i + "= scope." + i + ";"); - } - }); - body = ["((function(){", declares.join(""), "\n\treturn ", body, "\n})())"].join(""); - try { - return eval(body); - } catch (e) { - throw new Error("Invalid action : " + body + "\n" + e.message); - } -}; + }, -var createDefined = (function () { + "static": { + getFlow: function (name) { + return flows[name]; + }, - var _createDefined = function (action, defined, scope) { - if (isString(action)) { - var declares = []; - extd(defined).keys().forEach(function (i) { - if (action.indexOf(i) !== -1) { - declares.push("var " + i + "= defined." + i + ";"); - } - }); + hasFlow: function (name) { + return extd.has(flows, name); + }, - extd(scope).keys().forEach(function (i) { - if (action.indexOf(i) !== -1) { - declares.push("var " + i + "= function(){var prop = scope." + i + "; return __objToStr__.call(prop) === '[object Function]' ? prop.apply(void 0, arguments) : prop;};"); - } - }); - if (declares.length) { - declares.unshift("var __objToStr__ = Object.prototype.toString;"); + deleteFlow: function (name) { + if (instanceOf(name, FlowContainer)) { + name = name.name; } - action = [declares.join(""), "return ", action, ";"].join(""); - action = new Function("defined", "scope", action)(defined, scope); - } - var ret = action.hasOwnProperty("constructor") && "function" === typeof action.constructor ? action.constructor : function (opts) { - opts = opts || {}; - for (var i in opts) { - if (i in action) { - this[i] = opts[i]; + delete flows[name]; + return FlowContainer; + }, + + deleteFlows: function () { + for (var name in flows) { + if (name in flows) { + delete flows[name]; } } - }; - var proto = ret.prototype; - for (var i in action) { - proto[i] = action[i]; - } - return ret; - - }; + return FlowContainer; + }, - return function (options, defined, scope) { - return _createDefined(options.properties, defined, scope); - }; -})(); + create: function (name, cb) { + return new FlowContainer(name, cb); + } + } -exports.createFunction = createFunction; -exports.createDefined = createDefined; +}).as(module); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/compile/index.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/compile/index.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/nools/lib/index.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/index.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_2977588__) => { "use strict"; -/*jshint evil:true*/ - -var extd = __webpack_require__(/*! ../extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - parser = __webpack_require__(/*! ../parser */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/index.js"), - constraintMatcher = __webpack_require__(/*! ../constraintMatcher.js */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/constraintMatcher.js"), - indexOf = extd.indexOf, - forEach = extd.forEach, - removeDuplicates = extd.removeDuplicates, - map = extd.map, - obj = extd.hash, - keys = obj.keys, - merge = extd.merge, - rules = __webpack_require__(/*! ../rule */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/rule.js"), - common = __webpack_require__(/*! ./common */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/compile/common.js"), - modifiers = common.modifiers, - createDefined = common.createDefined, - createFunction = common.createFunction; - - /** - * @private - * Parses an action from a rule definition - * @param {String} action the body of the action to execute - * @param {Array} identifiers array of identifiers collected - * @param {Object} defined an object of defined - * @param scope - * @return {Object} + * + * @projectName nools + * @github https://github.com/C2FO/nools + * @includeDoc [Examples] ../docs-md/examples.md + * @includeDoc [Change Log] ../history.md + * @header [../readme.md] */ -var parseAction = function (action, identifiers, defined, scope) { - var declares = []; - forEach(identifiers, function (i) { - if (action.indexOf(i) !== -1) { - declares.push("var " + i + "= facts." + i + ";"); - } - }); - extd(defined).keys().forEach(function (i) { - if (action.indexOf(i) !== -1) { - declares.push("var " + i + "= defined." + i + ";"); - } - }); - extd(scope).keys().forEach(function (i) { - if (action.indexOf(i) !== -1) { - declares.push("var " + i + "= scope." + i + ";"); - } - }); - extd(modifiers).forEach(function (i) { - if (action.indexOf(i) !== -1) { - declares.push("if(!" + i + "){ var " + i + "= flow." + i + ";}"); - } - }); - var params = ["facts", 'flow']; - if (/next\(.*\)/.test(action)) { - params.push("next"); - } - action = declares.join("") + action; - try { - return new Function("defined, scope", "return " + new Function(params.join(","), action).toString())(defined, scope); - } catch (e) { - throw new Error("Invalid action : " + action + "\n" + e.message); - } -}; -var createRuleFromObject = (function () { - var __resolveRule = function (rule, identifiers, conditions, defined, name) { - var condition = [], definedClass = rule[0], alias = rule[1], constraint = rule[2], refs = rule[3]; - if (extd.isHash(constraint)) { - refs = constraint; - constraint = null; - } - if (definedClass && !!(definedClass = defined[definedClass])) { - condition.push(definedClass); - } else { - throw new Error("Invalid class " + rule[0] + " for rule " + name); - } - condition.push(alias, constraint, refs); - conditions.push(condition); - identifiers.push(alias); - if (constraint) { - forEach(constraintMatcher.getIdentifiers(parser.parseConstraint(constraint)), function (i) { - identifiers.push(i); - }); - } - if (extd.isObject(refs)) { - for (var j in refs) { - var ident = refs[j]; - if (indexOf(identifiers, ident) === -1) { - identifiers.push(ident); - } - } - } - }; +var extd = __nested_webpack_require_2977588__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + fs = __nested_webpack_require_2977588__(/*! fs */ "fs"), + path = __nested_webpack_require_2977588__(/*! path */ "path"), + compile = __nested_webpack_require_2977588__(/*! ./compile */ "./build/cht-core-4-6/node_modules/nools/lib/compile/index.js"), + FlowContainer = __nested_webpack_require_2977588__(/*! ./flowContainer */ "./build/cht-core-4-6/node_modules/nools/lib/flowContainer.js"); - function parseRule(rule, conditions, identifiers, defined, name) { - if (rule.length) { - var r0 = rule[0]; - if (r0 === "not" || r0 === "exists") { - var temp = []; - rule.shift(); - __resolveRule(rule, identifiers, temp, defined, name); - var cond = temp[0]; - cond.unshift(r0); - conditions.push(cond); - } else if (r0 === "or") { - var conds = [r0]; - rule.shift(); - forEach(rule, function (cond) { - parseRule(cond, conds, identifiers, defined, name); - }); - conditions.push(conds); - } else { - __resolveRule(rule, identifiers, conditions, defined, name); - identifiers = removeDuplicates(identifiers); - } - } +function isNoolsFile(file) { + return (/\.nools$/).test(file); +} +function parse(source) { + var ret; + if (isNoolsFile(source)) { + ret = compile.parse(fs.readFileSync(source, "utf8"), source); + } else { + ret = compile.parse(source); } + return ret; +} - return function (obj, defined, scope) { - var name = obj.name; - if (extd.isEmpty(obj)) { - throw new Error("Rule is empty"); - } - var options = obj.options || {}; - options.scope = scope; - var constraints = obj.constraints || [], l = constraints.length; - if (!l) { - constraints = ["true"]; - } - var action = obj.action; - if (extd.isUndefined(action)) { - throw new Error("No action was defined for rule " + name); - } - var conditions = [], identifiers = []; - forEach(constraints, function (rule) { - parseRule(rule, conditions, identifiers, defined, name); - }); - return rules.createRule(name, options, conditions, parseAction(action, identifiers, defined, scope)); - }; -})(); +exports.Flow = FlowContainer; -exports.parse = function (src, file) { - //parse flow from file - return parser.parseRuleSet(src, file); +exports.getFlow = FlowContainer.getFlow; +exports.hasFlow = FlowContainer.hasFlow; +exports.deleteFlow = function (name) { + FlowContainer.deleteFlow(name); + return this; }; -exports.compile = function (flowObj, options, cb, Container) { + +exports.deleteFlows = function () { + FlowContainer.deleteFlows(); + return this; +}; + +exports.flow = FlowContainer.create; + +exports.compile = function (file, options, cb) { if (extd.isFunction(options)) { cb = options; options = {}; } else { options = options || {}; } - var name = flowObj.name || options.name; - //if !name throw an error - if (!name) { - throw new Error("Name must be present in JSON or options"); + if (extd.isString(file)) { + options.name = options.name || (isNoolsFile(file) ? path.basename(file, path.extname(file)) : null); + file = parse(file); } - var flow = new Container(name); - var defined = merge({Array: Array, String: String, Number: Number, Boolean: Boolean, RegExp: RegExp, Date: Date, Object: Object}, options.define || {}); - if (typeof Buffer !== "undefined") { - defined.Buffer = Buffer; + if (!options.name) { + throw new Error("Name required when compiling nools source"); } - var scope = merge({console: console}, options.scope); - //add the anything added to the scope as a property - forEach(flowObj.scope, function (s) { - scope[s.name] = true; - }); - //add any defined classes in the parsed flowObj to defined - forEach(flowObj.define, function (d) { - defined[d.name] = createDefined(d, defined, scope); - }); - - //expose any defined classes to the flow. - extd(defined).forEach(function (cls, name) { - flow.addDefined(name, cls); - }); + return compile.compile(file, options, cb, FlowContainer); +}; - var scopeNames = extd(flowObj.scope).pluck("name").union(extd(scope).keys().value()).value(); - var definedNames = map(keys(defined), function (s) { - return s; - }); - forEach(flowObj.scope, function (s) { - scope[s.name] = createFunction(s.body, defined, scope, scopeNames, definedNames); - }); - var rules = flowObj.rules; - if (rules.length) { - forEach(rules, function (rule) { - flow.__rules = flow.__rules.concat(createRuleFromObject(rule, defined, scope)); - }); - } - if (cb) { - cb.call(flow, flow); +exports.transpile = function (file, options) { + options = options || {}; + if (extd.isString(file)) { + options.name = options.name || (isNoolsFile(file) ? path.basename(file, path.extname(file)) : null); + file = parse(file); } - return flow; + return compile.transpile(file, options); }; -exports.transpile = __webpack_require__(/*! ./transpile */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/compile/transpile.js").transpile; - - - - +exports.parse = parse; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/compile/transpile.js": -/*!********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/compile/transpile.js ***! - \********************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -var extd = __webpack_require__(/*! ../extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - forEach = extd.forEach, - indexOf = extd.indexOf, - merge = extd.merge, - isString = extd.isString, - modifiers = __webpack_require__(/*! ./common */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/compile/common.js").modifiers, - constraintMatcher = __webpack_require__(/*! ../constraintMatcher */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/constraintMatcher.js"), - parser = __webpack_require__(/*! ../parser */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/index.js"); - -function definedToJs(options) { - /*jshint evil:true*/ - options = isString(options) ? new Function("return " + options + ";")() : options; - var ret = ["(function(){"], value; - - if (options.hasOwnProperty("constructor") && "function" === typeof options.constructor) { - ret.push("var Defined = " + options.constructor.toString() + ";"); - } else { - ret.push("var Defined = function(opts){ for(var i in opts){if(opts.hasOwnProperty(i)){this[i] = opts[i];}}};"); - } - ret.push("var proto = Defined.prototype;"); - for (var key in options) { - if (options.hasOwnProperty(key)) { - value = options[key]; - ret.push("proto." + key + " = " + (extd.isFunction(value) ? value.toString() : extd.format("%j", value)) + ";"); - } - } - ret.push("return Defined;"); - ret.push("}())"); - return ret.join(""); +/***/ "./build/cht-core-4-6/node_modules/nools/lib/linkedList.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/linkedList.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2980072__) => { -} +/* module decorator */ module = __nested_webpack_require_2980072__.nmd(module); +var declare = __nested_webpack_require_2980072__(/*! declare.js */ "./build/cht-core-4-6/node_modules/declare.js/index.js"); +declare({ -function actionToJs(action, identifiers, defined, scope) { - var declares = [], usedVars = {}; - forEach(identifiers, function (i) { - if (action.indexOf(i) !== -1) { - usedVars[i] = true; - declares.push("var " + i + "= facts." + i + ";"); - } - }); - extd(defined).keys().forEach(function (i) { - if (action.indexOf(i) !== -1 && !usedVars[i]) { - usedVars[i] = true; - declares.push("var " + i + "= defined." + i + ";"); - } - }); + instance: { + constructor: function () { + this.head = null; + this.tail = null; + this.length = null; + }, - extd(scope).keys().forEach(function (i) { - if (action.indexOf(i) !== -1 && !usedVars[i]) { - usedVars[i] = true; - declares.push("var " + i + "= scope." + i + ";"); - } - }); - extd(modifiers).forEach(function (i) { - if (action.indexOf(i) !== -1 && !usedVars[i]) { - declares.push("var " + i + "= flow." + i + ";"); - } - }); - var params = ["facts", 'flow']; - if (/next\(.*\)/.test(action)) { - params.push("next"); - } - action = declares.join("") + action; - try { - return ["function(", params.join(","), "){", action, "}"].join(""); - } catch (e) { - throw new Error("Invalid action : " + action + "\n" + e.message); - } -} + push: function (data) { + var tail = this.tail, head = this.head, node = {data: data, prev: tail, next: null}; + if (tail) { + this.tail.next = node; + } + this.tail = node; + if (!head) { + this.head = node; + } + this.length++; + return node; + }, -function parseConstraintModifier(constraint, ret) { - if (constraint.length && extd.isString(constraint[0])) { - var modifier = constraint[0].match(" *(from)"); - if (modifier) { - modifier = modifier[0]; - switch (modifier) { - case "from": - ret.push(', "', constraint.shift(), '"'); - break; - default: - throw new Error("Unrecognized modifier " + modifier); + remove: function (node) { + if (node.prev) { + node.prev.next = node.next; + } else { + this.head = node.next; } - } - } -} + if (node.next) { + node.next.prev = node.prev; + } else { + this.tail = node.prev; + } + //node.data = node.prev = node.next = null; + this.length--; + }, -function parseConstraintHash(constraint, ret, identifiers) { - if (constraint.length && extd.isHash(constraint[0])) { - //ret of options - var refs = constraint.shift(); - extd(refs).values().forEach(function (ident) { - if (indexOf(identifiers, ident) === -1) { - identifiers.push(ident); + forEach: function (cb) { + var head = {next: this.head}; + while ((head = head.next)) { + cb(head.data); } - }); - ret.push(',' + extd.format('%j', [refs])); - } -} + }, -function constraintsToJs(constraint, identifiers) { - constraint = constraint.slice(0); - var ret = []; - if (constraint[0] === "or") { - ret.push('["' + constraint.shift() + '"'); - ret.push(extd.map(constraint,function (c) { - return constraintsToJs(c, identifiers); - }).join(",") + "]"); - return ret; - } else if (constraint[0] === "not" || constraint[0] === "exists") { - ret.push('"', constraint.shift(), '", '); - } - identifiers.push(constraint[1]); - ret.push(constraint[0], ', "' + constraint[1].replace(/\\/g, "\\\\").replace(/"/g, "\\\"") + '"'); - constraint.splice(0, 2); - if (constraint.length) { - //constraint - var c = constraint.shift(); - if (extd.isString(c) && c) { - ret.push(',"' + c.replace(/\\/g, "\\\\").replace(/"/g, "\\\""), '"'); - forEach(constraintMatcher.getIdentifiers(parser.parseConstraint(c)), function (i) { - identifiers.push(i); - }); - } else { - ret.push(',"true"'); - constraint.unshift(c); - } - } - parseConstraintModifier(constraint, ret); - parseConstraintHash(constraint, ret, identifiers); - return '[' + ret.join("") + ']'; -} + toArray: function () { + var head = {next: this.head}, ret = []; + while ((head = head.next)) { + ret.push(head); + } + return ret; + }, -exports.transpile = function (flowObj, options) { - options = options || {}; - var ret = []; - ret.push("(function(){"); - ret.push("return function(options){"); - ret.push("options = options || {};"); - ret.push("var bind = function(scope, fn){return function(){return fn.apply(scope, arguments);};}, defined = {Array: Array, String: String, Number: Number, Boolean: Boolean, RegExp: RegExp, Date: Date, Object: Object}, scope = options.scope || {};"); - ret.push("var optDefined = options.defined || {}; for(var i in optDefined){defined[i] = optDefined[i];}"); - var defined = merge({Array: Array, String: String, Number: Number, Boolean: Boolean, RegExp: RegExp, Date: Date, Object: Object}, options.define || {}); - if (typeof Buffer !== "undefined") { - defined.Buffer = Buffer; - } - var scope = merge({console: console}, options.scope); - ret.push(["return nools.flow('", options.name, "', function(){"].join("")); - //add any defined classes in the parsed flowObj to defined - ret.push(extd(flowObj.define || []).map(function (defined) { - var name = defined.name; - defined[name] = {}; - return ["var", name, "= defined." + name, "= this.addDefined('" + name + "',", definedToJs(defined.properties) + ");"].join(" "); - }).value().join("\n")); - ret.push(extd(flowObj.scope || []).map(function (s) { - var name = s.name; - scope[name] = {}; - return ["var", name, "= scope." + name, "= ", s.body, ";"].join(" "); - }).value().join("\n")); - ret.push("scope.console = console;\n"); + removeByData: function (data) { + var head = {next: this.head}; + while ((head = head.next)) { + if (head.data === data) { + this.remove(head); + break; + } + } + }, + getByData: function (data) { + var head = {next: this.head}; + while ((head = head.next)) { + if (head.data === data) { + return head; + } + } + }, - ret.push(extd(flowObj.rules || []).map(function (rule) { - var identifiers = [], ret = ["this.rule('", rule.name.replace(/'/g, "\\'"), "'"], options = extd.merge(rule.options || {}, {scope: "scope"}); - ret.push(",", extd.format("%j", [options]).replace(/(:"scope")/, ":scope")); - if (rule.constraints && !extd.isEmpty(rule.constraints)) { - ret.push(", ["); - ret.push(extd(rule.constraints).map(function (c) { - return constraintsToJs(c, identifiers); - }).value().join(",")); - ret.push("]"); + clear: function () { + this.head = this.tail = null; + this.length = 0; } - ret.push(",", actionToJs(rule.action, identifiers, defined, scope)); - ret.push(");"); - return ret.join(""); - }).value().join("")); - ret.push("});"); - ret.push("};"); - ret.push("}());"); - return ret.join(""); -}; + } +}).as(module); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/conflict.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/conflict.js ***! - \***********************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -var map = __webpack_require__(/*! ./extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js").map; +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nextTick.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nextTick.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2982588__) => { -function salience(a, b) { - return a.rule.priority - b.rule.priority; +/*global setImmediate, window, MessageChannel*/ +var extd = __nested_webpack_require_2982588__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"); +var nextTick; +if (typeof setImmediate === "function") { + // In IE10, or use https://github.com/NobleJS/setImmediate + if (typeof window !== "undefined") { + nextTick = extd.bind(window, setImmediate); + } else { + nextTick = setImmediate; + } +} else if (typeof process !== "undefined") { + // node + nextTick = process.nextTick; +} else if (typeof MessageChannel !== "undefined") { + // modern browsers + // http://www.nonblocking.io/2011/06/windownexttick.html + var channel = new MessageChannel(); + // linked list of tasks (single, with head node) + var head = {}, tail = head; + channel.port1.onmessage = function () { + head = head.next; + var task = head.task; + delete head.task; + task(); + }; + nextTick = function (task) { + tail = tail.next = {task: task}; + channel.port2.postMessage(0); + }; +} else { + // old browsers + nextTick = function (task) { + setTimeout(task, 0); + }; } -function bucketCounter(a, b) { - return a.counter - b.counter; -} +module.exports = nextTick; -function factRecency(a, b) { - /*jshint noempty: false*/ +/***/ }), - var i = 0; - var aMatchRecency = a.match.recency, - bMatchRecency = b.match.recency, aLength = aMatchRecency.length - 1, bLength = bMatchRecency.length - 1; - while (aMatchRecency[i] === bMatchRecency[i] && i < aLength && i < bLength && i++) { - } - var ret = aMatchRecency[i] - bMatchRecency[i]; - if (!ret) { - ret = aLength - bLength; - } - return ret; -} +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/adapterNode.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/adapterNode.js ***! + \************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2984144__) => { -function activationRecency(a, b) { - return a.recency - b.recency; -} +/* module decorator */ module = __nested_webpack_require_2984144__.nmd(module); +var Node = __nested_webpack_require_2984144__(/*! ./node */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js"), + intersection = __nested_webpack_require_2984144__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js").intersection; -var strategies = { - salience: salience, - bucketCounter: bucketCounter, - factRecency: factRecency, - activationRecency: activationRecency -}; +Node.extend({ + instance: { -exports.strategies = strategies; -exports.strategy = function (strats) { - strats = map(strats, function (s) { - return strategies[s]; - }); - var stratsLength = strats.length; + __propagatePaths: function (method, context) { + var entrySet = this.__entrySet, i = entrySet.length, entry, outNode, paths, continuingPaths; + while (--i > -1) { + entry = entrySet[i]; + outNode = entry.key; + paths = entry.value; + if ((continuingPaths = intersection(paths, context.paths)).length) { + outNode[method](context.clone(null, continuingPaths, null)); + } + } + }, - return function (a, b) { - var i = -1, ret = 0; - var equal = (a === b) || (a.name === b.name && a.hashCode === b.hashCode); - if (!equal) { - while (++i < stratsLength && !ret) { - ret = strats[i](a, b); + __propagateNoPaths: function (method, context) { + var entrySet = this.__entrySet, i = entrySet.length; + while (--i > -1) { + entrySet[i].key[method](context); + } + }, + + __propagate: function (method, context) { + if (context.paths) { + this.__propagatePaths(method, context); + } else { + this.__propagateNoPaths(method, context); } - ret = ret > 0 ? 1 : -1; } - return ret; - }; -}; + } +}).as(module); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/constraint.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/constraint.js ***! - \*************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; - +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/aliasNode.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/aliasNode.js ***! + \**********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2985863__) => { -var extd = __webpack_require__(/*! ./extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - deepEqual = extd.deepEqual, - merge = extd.merge, - instanceOf = extd.instanceOf, - filter = extd.filter, - declare = extd.declare, - constraintMatcher; +/* module decorator */ module = __nested_webpack_require_2985863__.nmd(module); +var AlphaNode = __nested_webpack_require_2985863__(/*! ./alphaNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/alphaNode.js"); -var id = 0; -var Constraint = declare({ +AlphaNode.extend({ + instance: { - type: null, + constructor: function () { + this._super(arguments); + this.alias = this.constraint.get("alias"); + }, - instance: { - constructor: function (constraint) { - if (!constraintMatcher) { - constraintMatcher = __webpack_require__(/*! ./constraintMatcher */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/constraintMatcher.js"); - } - this.id = id++; - this.constraint = constraint; - extd.bindAll(this, ["assert"]); + toString: function () { + return "AliasNode" + this.__count; }, - "assert": function () { - throw new Error("not implemented"); + + assert: function (context) { + return this.__propagate("assert", context.set(this.alias, context.fact.object)); }, - getIndexableProperties: function () { - return []; + modify: function (context) { + return this.__propagate("modify", context.set(this.alias, context.fact.object)); }, - equal: function (constraint) { - return instanceOf(constraint, this._static) && this.get("alias") === constraint.get("alias") && extd.deepEqual(this.constraint, constraint.constraint); + retract: function (context) { + return this.__propagate("retract", context.set(this.alias, context.fact.object)); }, - getters: { - variables: function () { - return [this.get("alias")]; - } + equal: function (other) { + return other instanceof this._static && this.alias === other.alias; } + } +}).as(module); +/***/ }), - } -}); +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/alphaNode.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/alphaNode.js ***! + \**********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2987269__) => { -Constraint.extend({ - instance: { +"use strict"; +/* module decorator */ module = __nested_webpack_require_2987269__.nmd(module); - type: "object", +var Node = __nested_webpack_require_2987269__(/*! ./node */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js"); - constructor: function (type) { - this._super([type]); +Node.extend({ + instance: { + constructor: function (constraint) { + this._super([]); + this.constraint = constraint; + this.constraintAssert = this.constraint.assert; }, - "assert": function (param) { - return param instanceof this.constraint || param.constructor === this.constraint; + toString: function () { + return "AlphaNode " + this.__count; }, equal: function (constraint) { - return instanceOf(constraint, this._static) && this.constraint === constraint.constraint; + return this.constraint.equal(constraint.constraint); } } -}).as(exports, "ObjectConstraint"); - -var EqualityConstraint = Constraint.extend({ - - instance: { - - type: "equality", +}).as(module); - constructor: function (constraint, options) { - this._super([constraint]); - options = options || {}; - this.pattern = options.pattern; - this._matcher = constraintMatcher.getMatcher(constraint, options, true); - }, +/***/ }), - "assert": function (values) { - return this._matcher(values); - } - } -}).as(exports, "EqualityConstraint"); +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/betaNode.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/betaNode.js ***! + \*********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2988278__) => { -EqualityConstraint.extend({instance: {type: "inequality"}}).as(exports, "InequalityConstraint"); -EqualityConstraint.extend({instance: {type: "comparison"}}).as(exports, "ComparisonConstraint"); +/* module decorator */ module = __nested_webpack_require_2988278__.nmd(module); +var extd = __nested_webpack_require_2988278__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + keys = extd.hash.keys, + Node = __nested_webpack_require_2988278__(/*! ./node */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js"), + LeftMemory = __nested_webpack_require_2988278__(/*! ./misc/leftMemory */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/leftMemory.js"), RightMemory = __nested_webpack_require_2988278__(/*! ./misc/rightMemory */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/rightMemory.js"); -Constraint.extend({ +Node.extend({ instance: { - type: "equality", + nodeType: "BetaNode", constructor: function () { - this._super([ - [true] - ]); + this._super([]); + this.leftMemory = {}; + this.rightMemory = {}; + this.leftTuples = new LeftMemory(); + this.rightTuples = new RightMemory(); }, - equal: function (constraint) { - return instanceOf(constraint, this._static) && this.get("alias") === constraint.get("alias"); + __propagate: function (method, context) { + var entrySet = this.__entrySet, i = entrySet.length, entry, outNode; + while (--i > -1) { + entry = entrySet[i]; + outNode = entry.key; + outNode[method](context); + } }, + dispose: function () { + this.leftMemory = {}; + this.rightMemory = {}; + this.leftTuples.clear(); + this.rightTuples.clear(); + }, - "assert": function () { - return true; - } - } -}).as(exports, "TrueConstraint"); - -var ReferenceConstraint = Constraint.extend({ + disposeLeft: function (fact) { + this.leftMemory = {}; + this.leftTuples.clear(); + this.propagateDispose(fact); + }, - instance: { + disposeRight: function (fact) { + this.rightMemory = {}; + this.rightTuples.clear(); + this.propagateDispose(fact); + }, - type: "reference", + hashCode: function () { + return this.nodeType + " " + this.__count; + }, - constructor: function (constraint, options) { - this.cache = {}; - this._super([constraint]); - options = options || {}; - this.values = []; - this.pattern = options.pattern; - this._options = options; - this._matcher = constraintMatcher.getMatcher(constraint, options, false); + toString: function () { + return this.nodeType + " " + this.__count; }, - "assert": function (fact, fh) { - try { - return this._matcher(fact, fh); - } catch (e) { - throw new Error("Error with evaluating pattern " + this.pattern + " " + e.message); + retractLeft: function (context) { + context = this.removeFromLeftMemory(context).data; + var rightMatches = context.rightMatches, + hashCodes = keys(rightMatches), + i = -1, + l = hashCodes.length; + while (++i < l) { + this.__propagate("retract", rightMatches[hashCodes[i]].clone()); } - }, - merge: function (that) { - var ret = this; - if (that instanceof ReferenceConstraint) { - ret = new this._static([this.constraint, that.constraint, "and"], merge({}, this._options, this._options)); - ret._alias = this._alias || that._alias; - ret.vars = this.vars.concat(that.vars); + retractRight: function (context) { + context = this.removeFromRightMemory(context).data; + var leftMatches = context.leftMatches, + hashCodes = keys(leftMatches), + i = -1, + l = hashCodes.length; + while (++i < l) { + this.__propagate("retract", leftMatches[hashCodes[i]].clone()); } - return ret; }, - equal: function (constraint) { - return instanceOf(constraint, this._static) && extd.deepEqual(this.constraint, constraint.constraint); + assertLeft: function (context) { + this.__addToLeftMemory(context); + var rm = this.rightTuples.getRightMemory(context), i = -1, l = rm.length; + while (++i < l) { + this.propagateFromLeft(context, rm[i].data); + } }, + assertRight: function (context) { + this.__addToRightMemory(context); + var lm = this.leftTuples.getLeftMemory(context), i = -1, l = lm.length; + while (++i < l) { + this.propagateFromRight(context, lm[i].data); + } + }, - getters: { - variables: function () { - return this.vars; - }, + modifyLeft: function (context) { + var previousContext = this.removeFromLeftMemory(context).data; + this.__addToLeftMemory(context); + var rm = this.rightTuples.getRightMemory(context), l = rm.length, i = -1, rightMatches; + if (!l) { + this.propagateRetractModifyFromLeft(previousContext); + } else { + rightMatches = previousContext.rightMatches; + while (++i < l) { + this.propagateAssertModifyFromLeft(context, rightMatches, rm[i].data); + } - alias: function () { - return this._alias; } }, - setters: { - alias: function (alias) { - this._alias = alias; - this.vars = filter(constraintMatcher.getIdentifiers(this.constraint), function (v) { - return v !== alias; - }); + modifyRight: function (context) { + var previousContext = this.removeFromRightMemory(context).data; + this.__addToRightMemory(context); + var lm = this.leftTuples.getLeftMemory(context); + if (!lm.length) { + this.propagateRetractModifyFromRight(previousContext); + } else { + var leftMatches = previousContext.leftMatches, i = -1, l = lm.length; + while (++i < l) { + this.propagateAssertModifyFromRight(context, leftMatches, lm[i].data); + } } - } - } + }, -}).as(exports, "ReferenceConstraint"); + propagateFromLeft: function (context, rc) { + this.__propagate("assert", this.__addToMemoryMatches(rc, context, context.clone(null, null, context.match.merge(rc.match)))); + }, + propagateFromRight: function (context, lc) { + this.__propagate("assert", this.__addToMemoryMatches(context, lc, lc.clone(null, null, lc.match.merge(context.match)))); + }, -ReferenceConstraint.extend({ - instance: { - type: "reference_equality", - op: "eq", - getIndexableProperties: function () { - return constraintMatcher.getIndexableProperties(this.constraint); - } - } -}).as(exports, "ReferenceEqualityConstraint") - .extend({instance: {type: "reference_inequality", op: "neq"}}).as(exports, "ReferenceInequalityConstraint") - .extend({instance: {type: "reference_gt", op: "gt"}}).as(exports, "ReferenceGTConstraint") - .extend({instance: {type: "reference_gte", op: "gte"}}).as(exports, "ReferenceGTEConstraint") - .extend({instance: {type: "reference_lt", op: "lt"}}).as(exports, "ReferenceLTConstraint") - .extend({instance: {type: "reference_lte", op: "lte"}}).as(exports, "ReferenceLTEConstraint"); + propagateRetractModifyFromLeft: function (context) { + var rightMatches = context.rightMatches, + hashCodes = keys(rightMatches), + l = hashCodes.length, + i = -1; + while (++i < l) { + this.__propagate("retract", rightMatches[hashCodes[i]].clone()); + } + }, + propagateRetractModifyFromRight: function (context) { + var leftMatches = context.leftMatches, + hashCodes = keys(leftMatches), + l = hashCodes.length, + i = -1; + while (++i < l) { + this.__propagate("retract", leftMatches[hashCodes[i]].clone()); + } + }, -Constraint.extend({ - instance: { + propagateAssertModifyFromLeft: function (context, rightMatches, rm) { + var factId = rm.hashCode; + if (factId in rightMatches) { + this.__propagate("modify", this.__addToMemoryMatches(rm, context, context.clone(null, null, context.match.merge(rm.match)))); + } else { + this.propagateFromLeft(context, rm); + } + }, - type: "hash", + propagateAssertModifyFromRight: function (context, leftMatches, lm) { + var factId = lm.hashCode; + if (factId in leftMatches) { + this.__propagate("modify", this.__addToMemoryMatches(context, lm, context.clone(null, null, lm.match.merge(context.match)))); + } else { + this.propagateFromRight(context, lm); + } + }, - constructor: function (hash) { - this._super([hash]); + removeFromRightMemory: function (context) { + var hashCode = context.hashCode, ret; + context = this.rightMemory[hashCode] || null; + var tuples = this.rightTuples; + if (context) { + var leftMemory = this.leftMemory; + ret = context.data; + var leftMatches = ret.leftMatches; + tuples.remove(context); + var hashCodes = keys(leftMatches), i = -1, l = hashCodes.length; + while (++i < l) { + delete leftMemory[hashCodes[i]].data.rightMatches[hashCode]; + } + delete this.rightMemory[hashCode]; + } + return context; }, - equal: function (constraint) { - return extd.instanceOf(constraint, this._static) && this.get("alias") === constraint.get("alias") && extd.deepEqual(this.constraint, constraint.constraint); + removeFromLeftMemory: function (context) { + var hashCode = context.hashCode; + context = this.leftMemory[hashCode] || null; + if (context) { + var rightMemory = this.rightMemory; + var rightMatches = context.data.rightMatches; + this.leftTuples.remove(context); + var hashCodes = keys(rightMatches), i = -1, l = hashCodes.length; + while (++i < l) { + delete rightMemory[hashCodes[i]].data.leftMatches[hashCode]; + } + delete this.leftMemory[hashCode]; + } + return context; }, - "assert": function () { + getRightMemoryMatches: function (context) { + var lm = this.leftMemory[context.hashCode], ret = {}; + if (lm) { + ret = lm.rightMatches; + } + return ret; + }, + + __addToMemoryMatches: function (rightContext, leftContext, createdContext) { + var rightFactId = rightContext.hashCode, + rm = this.rightMemory[rightFactId], + lm, leftFactId = leftContext.hashCode; + if (rm) { + rm = rm.data; + if (leftFactId in rm.leftMatches) { + throw new Error("Duplicate left fact entry"); + } + rm.leftMatches[leftFactId] = createdContext; + } + lm = this.leftMemory[leftFactId]; + if (lm) { + lm = lm.data; + if (rightFactId in lm.rightMatches) { + throw new Error("Duplicate right fact entry"); + } + lm.rightMatches[rightFactId] = createdContext; + } + return createdContext; + }, + + __addToRightMemory: function (context) { + var hashCode = context.hashCode, rm = this.rightMemory; + if (hashCode in rm) { + return false; + } + rm[hashCode] = this.rightTuples.push(context); + context.leftMatches = {}; return true; }, - getters: { - variables: function () { - return this.constraint; + + __addToLeftMemory: function (context) { + var hashCode = context.hashCode, lm = this.leftMemory; + if (hashCode in lm) { + return false; } + lm[hashCode] = this.leftTuples.push(context); + context.rightMatches = {}; + return true; } - } -}).as(exports, "HashConstraint"); -Constraint.extend({ +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/equalityNode.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/equalityNode.js ***! + \*************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2998250__) => { + +/* module decorator */ module = __nested_webpack_require_2998250__.nmd(module); +var AlphaNode = __nested_webpack_require_2998250__(/*! ./alphaNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/alphaNode.js"); + +AlphaNode.extend({ instance: { - constructor: function (constraints, options) { - this.type = "from"; - this.constraints = constraintMatcher.getSourceMatcher(constraints, (options || {}), true); - extd.bindAll(this, ["assert"]); - }, - equal: function (constraint) { - return instanceOf(constraint, this._static) && this.get("alias") === constraint.get("alias") && deepEqual(this.constraints, constraint.constraints); + constructor: function () { + this.memory = {}; + this._super(arguments); + this.constraintAssert = this.constraint.assert; }, - "assert": function (fact, fh) { - return this.constraints(fact, fh); + assert: function (context) { + if ((this.memory[context.pathsHash] = this.constraintAssert(context.factHash))) { + this.__propagate("assert", context); + } }, - getters: { - variables: function () { - return this.constraint; + modify: function (context) { + var memory = this.memory, + hashCode = context.pathsHash, + wasMatch = memory[hashCode]; + if ((memory[hashCode] = this.constraintAssert(context.factHash))) { + this.__propagate(wasMatch ? "modify" : "assert", context); + } else if (wasMatch) { + this.__propagate("retract", context); } - } - - } -}).as(exports, "FromConstraint"); - -Constraint.extend({ - instance: { - constructor: function (func, options) { - this.type = "custom"; - this.fn = func; - this.options = options; - extd.bindAll(this, ["assert"]); }, - equal: function (constraint) { - return instanceOf(constraint, this._static) && this.fn === constraint.constraint; + retract: function (context) { + var hashCode = context.pathsHash, + memory = this.memory; + if (memory[hashCode]) { + this.__propagate("retract", context); + } + delete memory[hashCode]; }, - "assert": function (fact, fh) { - return this.fn(fact, fh); + toString: function () { + return "EqualityNode" + this.__count; } } -}).as(exports, "CustomConstraint"); - - - +}).as(module); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/constraintMatcher.js": -/*!********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/constraintMatcher.js ***! - \********************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; - - -var extd = __webpack_require__(/*! ./extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - isArray = extd.isArray, - forEach = extd.forEach, - some = extd.some, - indexOf = extd.indexOf, - isNumber = extd.isNumber, - removeDups = extd.removeDuplicates, - atoms = __webpack_require__(/*! ./constraint */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/constraint.js"); - -function getProps(val) { - return extd(val).map(function mapper(val) { - return isArray(val) ? isArray(val[0]) ? getProps(val).value() : val.reverse().join(".") : val; - }).flatten().filter(function (v) { - return !!v; - }); -} - -var definedFuncs = { - indexOf: extd.indexOf, - now: function () { - return new Date(); - }, - - Date: function (y, m, d, h, min, s, ms) { - var date = new Date(); - if (isNumber(y)) { - date.setYear(y); - } - if (isNumber(m)) { - date.setMonth(m); - } - if (isNumber(d)) { - date.setDate(d); - } - if (isNumber(h)) { - date.setHours(h); - } - if (isNumber(min)) { - date.setMinutes(min); - } - if (isNumber(s)) { - date.setSeconds(s); - } - if (isNumber(ms)) { - date.setMilliseconds(ms); - } - return date; - }, - - lengthOf: function (arr, length) { - return arr.length === length; - }, - - isTrue: function (val) { - return val === true; - }, - - isFalse: function (val) { - return val === false; - }, - - isNotNull: function (actual) { - return actual !== null; - }, - - dateCmp: function (dt1, dt2) { - return extd.compare(dt1, dt2); - } - -}; - -forEach(["years", "days", "months", "hours", "minutes", "seconds"], function (k) { - definedFuncs[k + "FromNow"] = extd[k + "FromNow"]; - definedFuncs[k + "Ago"] = extd[k + "Ago"]; -}); - +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/existsFromNode.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/existsFromNode.js ***! + \***************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3000081__) => { -forEach(["isArray", "isNumber", "isHash", "isObject", "isDate", "isBoolean", "isString", "isRegExp", "isNull", "isEmpty", - "isUndefined", "isDefined", "isUndefinedOrNull", "isPromiseLike", "isFunction", "deepEqual"], function (k) { - var m = extd[k]; - definedFuncs[k] = function () { - return m.apply(extd, arguments); - }; -}); +/* module decorator */ module = __nested_webpack_require_3000081__.nmd(module); +var FromNotNode = __nested_webpack_require_3000081__(/*! ./fromNotNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNotNode.js"), + extd = __nested_webpack_require_3000081__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + Context = __nested_webpack_require_3000081__(/*! ../context */ "./build/cht-core-4-6/node_modules/nools/lib/context.js"), + isDefined = extd.isDefined, + isArray = extd.isArray; +FromNotNode.extend({ + instance: { -var lang = { + nodeType: "ExistsFromNode", - equal: function (c1, c2) { - var ret = false; - if (c1 === c2) { - ret = true; - } else { - if (c1[2] === c2[2]) { - if (indexOf(["string", "number", "boolean", "regexp", "identifier", "null"], c1[2]) !== -1) { - ret = c1[0] === c2[0]; - } else if (c1[2] === "unary" || c1[2] === "logicalNot") { - ret = this.equal(c1[0], c2[0]); - } else { - ret = this.equal(c1[0], c2[0]) && this.equal(c1[1], c2[1]); + retractLeft: function (context) { + var ctx = this.removeFromLeftMemory(context); + if (ctx) { + ctx = ctx.data; + if (ctx.blocked) { + this.__propagate("retract", ctx.clone()); } } - } - return ret; - }, + }, - __getProperties: function (rule) { - var ret = []; - if (rule) { - var rule2 = rule[2]; - if (!rule2) { - return ret; + __modify: function (context, leftContext) { + var leftContextBlocked = leftContext.blocked; + var fh = context.factHash, o = this.from(fh); + if (isArray(o)) { + for (var i = 0, l = o.length; i < l; i++) { + if (this.__isMatch(context, o[i], true)) { + context.blocked = true; + break; + } + } + } else if (isDefined(o)) { + context.blocked = this.__isMatch(context, o, true); } - if (rule2 !== "prop" && - rule2 !== "identifier" && - rule2 !== "string" && - rule2 !== "number" && - rule2 !== "boolean" && - rule2 !== "regexp" && - rule2 !== "unary" && - rule2 !== "unary") { - ret[0] = this.__getProperties(rule[0]); - ret[1] = this.__getProperties(rule[1]); - } else if (rule2 === "identifier") { - //at the bottom - ret = [rule[0]]; - } else { - ret = lang.__getProperties(rule[1]).concat(lang.__getProperties(rule[0])); + var newContextBlocked = context.blocked; + if (newContextBlocked) { + if (leftContextBlocked) { + this.__propagate("modify", context.clone()); + } else { + this.__propagate("assert", context.clone()); + } + } else if (leftContextBlocked) { + this.__propagate("retract", context.clone()); } - } - return ret; - }, - - getIndexableProperties: function (rule) { - if (rule[2] === "composite") { - return this.getIndexableProperties(rule[0]); - } else if (/^(\w+(\['[^']*'])*) *([!=]==?|[<>]=?) (\w+(\['[^']*'])*)$/.test(this.parse(rule))) { - return getProps(this.__getProperties(rule)).flatten().value(); - } else { - return []; - } - }, - getIdentifiers: function (rule) { - var ret = []; - var rule2 = rule[2]; + }, - if (rule2 === "identifier") { - //its an identifier so stop - return [rule[0]]; - } else if (rule2 === "function") { - ret = ret.concat(this.getIdentifiers(rule[0])).concat(this.getIdentifiers(rule[1])); - } else if (rule2 !== "string" && - rule2 !== "number" && - rule2 !== "boolean" && - rule2 !== "regexp" && - rule2 !== "unary" && - rule2 !== "unary") { - //its an expression so keep going - if (rule2 === "prop") { - ret = ret.concat(this.getIdentifiers(rule[0])); - if (rule[1]) { - var propChain = rule[1]; - //go through the member variables and collect any identifiers that may be in functions - while (isArray(propChain)) { - if (propChain[2] === "function") { - ret = ret.concat(this.getIdentifiers(propChain[1])); - break; - } else { - propChain = propChain[1]; - } + __findMatches: function (context) { + var fh = context.factHash, o = this.from(fh), isMatch = false; + if (isArray(o)) { + for (var i = 0, l = o.length; i < l; i++) { + if (this.__isMatch(context, o[i], true)) { + context.blocked = true; + this.__propagate("assert", context.clone()); + return; } } + } else if (isDefined(o) && (this.__isMatch(context, o, true))) { + context.blocked = true; + this.__propagate("assert", context.clone()); + } + return isMatch; + }, - } else { - if (rule[0]) { - ret = ret.concat(this.getIdentifiers(rule[0])); + __isMatch: function (oc, o, add) { + var ret = false; + if (this.type(o)) { + var createdFact = this.workingMemory.getFactHandle(o); + var context = new Context(createdFact, null, null) + .mergeMatch(oc.match) + .set(this.alias, o); + if (add) { + var fm = this.fromMemory[createdFact.id]; + if (!fm) { + fm = this.fromMemory[createdFact.id] = {}; + } + fm[oc.hashCode] = oc; } - if (rule[1]) { - ret = ret.concat(this.getIdentifiers(rule[1])); + var fh = context.factHash; + var eqConstraints = this.__equalityConstraints; + for (var i = 0, l = eqConstraints.length; i < l; i++) { + if (eqConstraints[i](fh)) { + ret = true; + } else { + ret = false; + break; + } } } - } - //remove dups and return - return removeDups(ret); - }, - - toConstraints: function (rule, options) { - var ret = [], - alias = options.alias, - scope = options.scope || {}; - - var rule2 = rule[2]; - - - if (rule2 === "and") { - ret = ret.concat(this.toConstraints(rule[0], options)).concat(this.toConstraints(rule[1], options)); - } else if ( - rule2 === "composite" || - rule2 === "or" || - rule2 === "lt" || - rule2 === "gt" || - rule2 === "lte" || - rule2 === "gte" || - rule2 === "like" || - rule2 === "notLike" || - rule2 === "eq" || - rule2 === "neq" || - rule2 === "seq" || - rule2 === "sneq" || - rule2 === "in" || - rule2 === "notIn" || - rule2 === "prop" || - rule2 === "propLookup" || - rule2 === "function" || - rule2 === "logicalNot") { - var isReference = some(this.getIdentifiers(rule), function (i) { - return i !== alias && !(i in definedFuncs) && !(i in scope); - }); - switch (rule2) { - case "eq": - ret.push(new atoms[isReference ? "ReferenceEqualityConstraint" : "EqualityConstraint"](rule, options)); - break; - case "seq": - ret.push(new atoms[isReference ? "ReferenceEqualityConstraint" : "EqualityConstraint"](rule, options)); - break; - case "neq": - ret.push(new atoms[isReference ? "ReferenceInequalityConstraint" : "InequalityConstraint"](rule, options)); - break; - case "sneq": - ret.push(new atoms[isReference ? "ReferenceInequalityConstraint" : "InequalityConstraint"](rule, options)); - break; - case "gt": - ret.push(new atoms[isReference ? "ReferenceGTConstraint" : "ComparisonConstraint"](rule, options)); - break; - case "gte": - ret.push(new atoms[isReference ? "ReferenceGTEConstraint" : "ComparisonConstraint"](rule, options)); - break; - case "lt": - ret.push(new atoms[isReference ? "ReferenceLTConstraint" : "ComparisonConstraint"](rule, options)); - break; - case "lte": - ret.push(new atoms[isReference ? "ReferenceLTEConstraint" : "ComparisonConstraint"](rule, options)); - break; - default: - ret.push(new atoms[isReference ? "ReferenceConstraint" : "ComparisonConstraint"](rule, options)); - } + return ret; + }, + assertLeft: function (context) { + this.__addToLeftMemory(context); + this.__findMatches(context); } - return ret; - }, + } +}).as(module); - parse: function (rule) { - return this[rule[2]](rule[0], rule[1]); - }, +/***/ }), - composite: function (lhs) { - return this.parse(lhs); - }, +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/existsNode.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/existsNode.js ***! + \***********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3004207__) => { - and: function (lhs, rhs) { - return ["(", this.parse(lhs), "&&", this.parse(rhs), ")"].join(" "); - }, +/* module decorator */ module = __nested_webpack_require_3004207__.nmd(module); +var NotNode = __nested_webpack_require_3004207__(/*! ./notNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/notNode.js"), + LinkedList = __nested_webpack_require_3004207__(/*! ../linkedList */ "./build/cht-core-4-6/node_modules/nools/lib/linkedList.js"); - or: function (lhs, rhs) { - return ["(", this.parse(lhs), "||", this.parse(rhs), ")"].join(" "); - }, - prop: function (name, prop) { - if (prop[2] === "function") { - return [this.parse(name), this.parse(prop)].join("."); - } else { - return [this.parse(name), "['", this.parse(prop), "']"].join(""); - } - }, +NotNode.extend({ + instance: { - propLookup: function (name, prop) { - if (prop[2] === "function") { - return [this.parse(name), this.parse(prop)].join("."); - } else { - return [this.parse(name), "[", this.parse(prop), "]"].join(""); - } - }, + nodeType: "ExistsNode", - unary: function (lhs) { - return -1 * this.parse(lhs); - }, + blockedContext: function (leftContext, rightContext) { + leftContext.blocker = rightContext; + this.removeFromLeftMemory(leftContext); + this.addToLeftBlockedMemory(rightContext.blocking.push(leftContext)); + this.__propagate("assert", this.__cloneContext(leftContext)); + }, - plus: function (lhs, rhs) { - return [this.parse(lhs), "+", this.parse(rhs)].join(" "); - }, - minus: function (lhs, rhs) { - return [this.parse(lhs), "-", this.parse(rhs)].join(" "); - }, + notBlockedContext: function (leftContext, propagate) { + this.__addToLeftMemory(leftContext); + propagate && this.__propagate("retract", this.__cloneContext(leftContext)); + }, - mult: function (lhs, rhs) { - return [this.parse(lhs), "*", this.parse(rhs)].join(" "); - }, + propagateFromLeft: function (leftContext) { + this.notBlockedContext(leftContext, false); + }, - div: function (lhs, rhs) { - return [this.parse(lhs), "/", this.parse(rhs)].join(" "); - }, - mod: function (lhs, rhs) { - return [this.parse(lhs), "%", this.parse(rhs)].join(" "); - }, + retractLeft: function (context) { + var ctx; + if (!this.removeFromLeftMemory(context)) { + if ((ctx = this.removeFromLeftBlockedMemory(context))) { + this.__propagate("retract", this.__cloneContext(ctx.data)); + } else { + throw new Error(); + } + } + }, + + modifyLeft: function (context) { + var ctx = this.removeFromLeftMemory(context), + leftContext, + thisConstraint = this.constraint, + rightTuples = this.rightTuples, + l = rightTuples.length, + isBlocked = false, + node, rc, blocker; + if (!ctx) { + //blocked before + ctx = this.removeFromLeftBlockedMemory(context); + isBlocked = true; + } + if (ctx) { + leftContext = ctx.data; + + if (leftContext && leftContext.blocker) { + //we were blocked before so only check nodes previous to our blocker + blocker = this.rightMemory[leftContext.blocker.hashCode]; + } + if (blocker) { + if (thisConstraint.isMatch(context, rc = blocker.data)) { + //propogate as a modify or assert + this.__propagate(!isBlocked ? "assert" : "modify", this.__cloneContext(leftContext)); + context.blocker = rc; + this.addToLeftBlockedMemory(rc.blocking.push(context)); + context = null; + } + if (context) { + node = {next: blocker.next}; + } + } else { + node = {next: rightTuples.head}; + } + if (context && l) { + node = {next: rightTuples.head}; + //we were propagated before + while ((node = node.next)) { + if (thisConstraint.isMatch(context, rc = node.data)) { + //we cant be proagated so retract previous - lt: function (lhs, rhs) { - return [this.parse(lhs), "<", this.parse(rhs)].join(" "); - }, - gt: function (lhs, rhs) { - return [this.parse(lhs), ">", this.parse(rhs)].join(" "); - }, - lte: function (lhs, rhs) { - return [this.parse(lhs), "<=", this.parse(rhs)].join(" "); - }, - gte: function (lhs, rhs) { - return [this.parse(lhs), ">=", this.parse(rhs)].join(" "); - }, - like: function (lhs, rhs) { - return [this.parse(rhs), ".test(", this.parse(lhs), ")"].join(""); - }, - notLike: function (lhs, rhs) { - return ["!", this.parse(rhs), ".test(", this.parse(lhs), ")"].join(""); - }, - eq: function (lhs, rhs) { - return [this.parse(lhs), "==", this.parse(rhs)].join(" "); - }, + //we were asserted before so retract + this.__propagate(!isBlocked ? "assert" : "modify", this.__cloneContext(leftContext)); - seq: function (lhs, rhs) { - return [this.parse(lhs), "===", this.parse(rhs)].join(" "); - }, + this.addToLeftBlockedMemory(rc.blocking.push(context)); + context.blocker = rc; + context = null; + break; + } + } + } + if (context) { + //we can still be propogated + this.__addToLeftMemory(context); + if (isBlocked) { + //we were blocked so retract + this.__propagate("retract", this.__cloneContext(context)); + } - neq: function (lhs, rhs) { - return [this.parse(lhs), "!=", this.parse(rhs)].join(" "); - }, + } + } else { + throw new Error(); + } - sneq: function (lhs, rhs) { - return [this.parse(lhs), "!==", this.parse(rhs)].join(" "); - }, + }, - "in": function (lhs, rhs) { - return ["(indexOf(", this.parse(rhs), ",", this.parse(lhs), ")) != -1"].join(""); - }, + modifyRight: function (context) { + var ctx = this.removeFromRightMemory(context); + if (ctx) { + var rightContext = ctx.data, + leftTuples = this.leftTuples, + leftTuplesLength = leftTuples.length, + leftContext, + thisConstraint = this.constraint, + node, + blocking = rightContext.blocking; + this.__addToRightMemory(context); + context.blocking = new LinkedList(); + if (leftTuplesLength || blocking.length) { + if (blocking.length) { + var rc; + //check old blocked contexts + //check if the same contexts blocked before are still blocked + var blockingNode = {next: blocking.head}; + while ((blockingNode = blockingNode.next)) { + leftContext = blockingNode.data; + leftContext.blocker = null; + if (thisConstraint.isMatch(leftContext, context)) { + leftContext.blocker = context; + this.addToLeftBlockedMemory(context.blocking.push(leftContext)); + this.__propagate("assert", this.__cloneContext(leftContext)); + leftContext = null; + } else { + //we arent blocked anymore + leftContext.blocker = null; + node = ctx; + while ((node = node.next)) { + if (thisConstraint.isMatch(leftContext, rc = node.data)) { + leftContext.blocker = rc; + this.addToLeftBlockedMemory(rc.blocking.push(leftContext)); + this.__propagate("assert", this.__cloneContext(leftContext)); + leftContext = null; + break; + } + } + if (leftContext) { + this.__addToLeftMemory(leftContext); + } + } + } + } - "notIn": function (lhs, rhs) { - return ["(indexOf(", this.parse(rhs), ",", this.parse(lhs), ")) == -1"].join(""); - }, + if (leftTuplesLength) { + //check currently left tuples in memory + node = {next: leftTuples.head}; + while ((node = node.next)) { + leftContext = node.data; + if (thisConstraint.isMatch(leftContext, context)) { + this.__propagate("assert", this.__cloneContext(leftContext)); + this.removeFromLeftMemory(leftContext); + this.addToLeftBlockedMemory(context.blocking.push(leftContext)); + leftContext.blocker = context; + } + } + } - "arguments": function (lhs, rhs) { - var ret = []; - if (lhs) { - ret.push(this.parse(lhs)); - } - if (rhs) { - ret.push(this.parse(rhs)); - } - return ret.join(","); - }, - "array": function (lhs) { - var args = []; - if (lhs) { - args = this.parse(lhs); - if (isArray(args)) { - return args; + } } else { - return ["[", args, "]"].join(""); + throw new Error(); } - } - return ["[", args.join(","), "]"].join(""); - }, - - "function": function (lhs, rhs) { - var args = this.parse(rhs); - return [this.parse(lhs), "(", args, ")"].join(""); - }, - - "string": function (lhs) { - return "'" + lhs + "'"; - }, - "number": function (lhs) { - return lhs; - }, - "boolean": function (lhs) { - return lhs; - }, + } + } +}).as(module); - regexp: function (lhs) { - return lhs; - }, +/***/ }), - identifier: function (lhs) { - return lhs; - }, +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNode.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNode.js ***! + \*********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3012088__) => { - "null": function () { - return "null"; - }, +/* module decorator */ module = __nested_webpack_require_3012088__.nmd(module); +var JoinNode = __nested_webpack_require_3012088__(/*! ./joinNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/joinNode.js"), + extd = __nested_webpack_require_3012088__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + constraint = __nested_webpack_require_3012088__(/*! ../constraint */ "./build/cht-core-4-6/node_modules/nools/lib/constraint.js"), + EqualityConstraint = constraint.EqualityConstraint, + HashConstraint = constraint.HashConstraint, + ReferenceConstraint = constraint.ReferenceConstraint, + Context = __nested_webpack_require_3012088__(/*! ../context */ "./build/cht-core-4-6/node_modules/nools/lib/context.js"), + isDefined = extd.isDefined, + isEmpty = extd.isEmpty, + forEach = extd.forEach, + isArray = extd.isArray; - logicalNot: function (lhs) { - return ["!(", this.parse(lhs), ")"].join(""); +var DEFAULT_MATCH = { + isMatch: function () { + return false; } }; -var matcherCount = 0; -var toJs = exports.toJs = function (rule, scope, alias, equality, wrap) { - /*jshint evil:true*/ - var js = lang.parse(rule); - scope = scope || {}; - var vars = lang.getIdentifiers(rule); - var closureVars = ["var indexOf = definedFuncs.indexOf; var hasOwnProperty = Object.prototype.hasOwnProperty;"], funcVars = []; - extd(vars).filter(function (v) { - var ret = ["var ", v, " = "]; - if (definedFuncs.hasOwnProperty(v)) { - ret.push("definedFuncs['", v, "']"); - } else if (scope.hasOwnProperty(v)) { - ret.push("scope['", v, "']"); - } else { - return true; - } - ret.push(";"); - closureVars.push(ret.join("")); - return false; - }).forEach(function (v) { - var ret = ["var ", v, " = "]; - if (equality || v !== alias) { - ret.push("fact." + v); - } else if (v === alias) { - ret.push("hash.", v, ""); - } - ret.push(";"); - funcVars.push(ret.join("")); - }); - var closureBody = closureVars.join("") + "return function matcher" + (matcherCount++) + (!equality ? "(fact, hash){" : "(fact){") + funcVars.join("") + " return " + (wrap ? wrap(js) : js) + ";}"; - var f = new Function("definedFuncs, scope", closureBody)(definedFuncs, scope); - //console.log(f.toString()); - return f; -}; +JoinNode.extend({ + instance: { -exports.getMatcher = function (rule, options, equality) { - options = options || {}; - return toJs(rule, options.scope, options.alias, equality, function (src) { - return "!!(" + src + ")"; - }); -}; + nodeType: "FromNode", -exports.getSourceMatcher = function (rule, options, equality) { - options = options || {}; - return toJs(rule, options.scope, options.alias, equality, function (src) { - return src; - }); -}; + constructor: function (pattern, wm) { + this._super(arguments); + this.workingMemory = wm; + this.fromMemory = {}; + this.pattern = pattern; + this.type = pattern.get("constraints")[0].assert; + this.alias = pattern.get("alias"); + this.from = pattern.from.assert; + var eqConstraints = this.__equalityConstraints = []; + var vars = []; + forEach(this.constraints = this.pattern.get("constraints").slice(1), function (c) { + if (c instanceof EqualityConstraint || c instanceof ReferenceConstraint) { + eqConstraints.push(c.assert); + } else if (c instanceof HashConstraint) { + vars = vars.concat(c.get("variables")); + } + }); + this.__variables = vars; + }, -exports.toConstraints = function (constraint, options) { - if (typeof constraint === 'function') { - return [new atoms.CustomConstraint(constraint, options)]; - } - //constraint.split("&&") - return lang.toConstraints(constraint, options); -}; + __createMatches: function (context) { + var fh = context.factHash, o = this.from(fh); + if (isArray(o)) { + for (var i = 0, l = o.length; i < l; i++) { + this.__checkMatch(context, o[i], true); + } + } else if (isDefined(o)) { + this.__checkMatch(context, o, true); + } + }, -exports.equal = function (c1, c2) { - return lang.equal(c1, c2); -}; + __checkMatch: function (context, o, propogate) { + var newContext; + if ((newContext = this.__createMatch(context, o)).isMatch() && propogate) { + this.__propagate("assert", newContext.clone()); + } + return newContext; + }, -exports.getIdentifiers = function (constraint) { - return lang.getIdentifiers(constraint); -}; + __createMatch: function (lc, o) { + if (this.type(o)) { + var createdFact = this.workingMemory.getFactHandle(o, true), + createdContext, + rc = new Context(createdFact, null, null) + .set(this.alias, o), + createdFactId = createdFact.id; + var fh = rc.factHash, lcFh = lc.factHash; + for (var key in lcFh) { + fh[key] = lcFh[key]; + } + var eqConstraints = this.__equalityConstraints, vars = this.__variables, i = -1, l = eqConstraints.length; + while (++i < l) { + if (!eqConstraints[i](fh, fh)) { + createdContext = DEFAULT_MATCH; + break; + } + } + var fm = this.fromMemory[createdFactId]; + if (!fm) { + fm = this.fromMemory[createdFactId] = {}; + } + if (!createdContext) { + var prop; + i = -1; + l = vars.length; + while (++i < l) { + prop = vars[i]; + fh[prop] = o[prop]; + } + lc.fromMatches[createdFact.id] = createdContext = rc.clone(createdFact, null, lc.match.merge(rc.match)); + } + fm[lc.hashCode] = [lc, createdContext]; + return createdContext; + } + return DEFAULT_MATCH; + }, -exports.getIndexableProperties = function (constraint) { - return lang.getIndexableProperties(constraint); -}; + retractRight: function () { + throw new Error("Shouldnt have gotten here"); + }, -/***/ }), + removeFromFromMemory: function (context) { + var factId = context.fact.id; + var fm = this.fromMemory[factId]; + if (fm) { + var entry; + for (var i in fm) { + entry = fm[i]; + if (entry[1] === context) { + delete fm[i]; + if (isEmpty(fm)) { + delete this.fromMemory[factId]; + } + break; + } + } + } -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/context.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/context.js ***! - \**********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + }, -"use strict"; -/* module decorator */ module = __webpack_require__.nmd(module); + retractLeft: function (context) { + var ctx = this.removeFromLeftMemory(context); + if (ctx) { + ctx = ctx.data; + var fromMatches = ctx.fromMatches; + for (var i in fromMatches) { + this.removeFromFromMemory(fromMatches[i]); + this.__propagate("retract", fromMatches[i].clone()); + } + } + }, -var extd = __webpack_require__(/*! ./extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - isBoolean = extd.isBoolean, - declare = extd.declare, - indexOf = extd.indexOf, - pPush = Array.prototype.push; + modifyLeft: function (context) { + var ctx = this.removeFromLeftMemory(context), newContext, i, l, factId, fact; + if (ctx) { + this.__addToLeftMemory(context); -function createContextHash(paths, hashCode) { - var ret = "", - i = -1, - l = paths.length; - while (++i < l) { - ret += paths[i].id + ":"; - } - ret += hashCode; - return ret; -} + var leftContext = ctx.data, + fromMatches = (context.fromMatches = {}), + rightMatches = leftContext.fromMatches, + o = this.from(context.factHash); -function merge(h1, h2, aliases) { - var i = -1, l = aliases.length, alias; - while (++i < l) { - alias = aliases[i]; - h1[alias] = h2[alias]; - } -} + if (isArray(o)) { + for (i = 0, l = o.length; i < l; i++) { + newContext = this.__checkMatch(context, o[i], false); + if (newContext.isMatch()) { + factId = newContext.fact.id; + if (factId in rightMatches) { + this.__propagate("modify", newContext.clone()); + } else { + this.__propagate("assert", newContext.clone()); + } + } + } + } else if (isDefined(o)) { + newContext = this.__checkMatch(context, o, false); + if (newContext.isMatch()) { + factId = newContext.fact.id; + if (factId in rightMatches) { + this.__propagate("modify", newContext.clone()); + } else { + this.__propagate("assert", newContext.clone()); + } + } + } + for (i in rightMatches) { + if (!(i in fromMatches)) { + this.removeFromFromMemory(rightMatches[i]); + this.__propagate("retract", rightMatches[i].clone()); + } + } + } else { + this.assertLeft(context); + } + fact = context.fact; + factId = fact.id; + var fm = this.fromMemory[factId]; + this.fromMemory[factId] = {}; + if (fm) { + var lc, entry, cc, createdIsMatch, factObject = fact.object; + for (i in fm) { + entry = fm[i]; + lc = entry[0]; + cc = entry[1]; + createdIsMatch = cc.isMatch(); + if (lc.hashCode !== context.hashCode) { + newContext = this.__createMatch(lc, factObject, false); + if (createdIsMatch) { + this.__propagate("retract", cc.clone()); + } + if (newContext.isMatch()) { + this.__propagate(createdIsMatch ? "modify" : "assert", newContext.clone()); + } -function unionRecency(arr, arr1, arr2) { - pPush.apply(arr, arr1); - var i = -1, l = arr2.length, val, j = arr.length; - while (++i < l) { - val = arr2[i]; - if (indexOf(arr, val) === -1) { - arr[j++] = val; + } + } + } + }, + + assertLeft: function (context) { + this.__addToLeftMemory(context); + context.fromMatches = {}; + this.__createMatches(context); + }, + + assertRight: function () { + throw new Error("Shouldnt have gotten here"); } + } -} +}).as(module); -var Match = declare({ +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNotNode.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNotNode.js ***! + \************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3020855__) => { + +/* module decorator */ module = __nested_webpack_require_3020855__.nmd(module); +var JoinNode = __nested_webpack_require_3020855__(/*! ./joinNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/joinNode.js"), + extd = __nested_webpack_require_3020855__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + constraint = __nested_webpack_require_3020855__(/*! ../constraint */ "./build/cht-core-4-6/node_modules/nools/lib/constraint.js"), + EqualityConstraint = constraint.EqualityConstraint, + HashConstraint = constraint.HashConstraint, + ReferenceConstraint = constraint.ReferenceConstraint, + Context = __nested_webpack_require_3020855__(/*! ../context */ "./build/cht-core-4-6/node_modules/nools/lib/context.js"), + isDefined = extd.isDefined, + forEach = extd.forEach, + isArray = extd.isArray; + +JoinNode.extend({ instance: { - isMatch: true, - hashCode: "", - facts: null, - factIds: null, - factHash: null, - recency: null, - aliases: null, + nodeType: "FromNotNode", + + constructor: function (pattern, workingMemory) { + this._super(arguments); + this.workingMemory = workingMemory; + this.pattern = pattern; + this.type = pattern.get("constraints")[0].assert; + this.alias = pattern.get("alias"); + this.from = pattern.from.assert; + this.fromMemory = {}; + var eqConstraints = this.__equalityConstraints = []; + var vars = []; + forEach(this.constraints = this.pattern.get("constraints").slice(1), function (c) { + if (c instanceof EqualityConstraint || c instanceof ReferenceConstraint) { + eqConstraints.push(c.assert); + } else if (c instanceof HashConstraint) { + vars = vars.concat(c.get("variables")); + } + }); + this.__variables = vars; - constructor: function () { - this.facts = []; - this.factIds = []; - this.factHash = {}; - this.recency = []; - this.aliases = []; }, - addFact: function (assertable) { - pPush.call(this.facts, assertable); - pPush.call(this.recency, assertable.recency); - pPush.call(this.factIds, assertable.id); - this.hashCode = this.factIds.join(":"); - return this; + retractLeft: function (context) { + var ctx = this.removeFromLeftMemory(context); + if (ctx) { + ctx = ctx.data; + if (!ctx.blocked) { + this.__propagate("retract", ctx.clone()); + } + } }, - merge: function (mr) { - var ret = new Match(); - ret.isMatch = mr.isMatch; - pPush.apply(ret.facts, this.facts); - pPush.apply(ret.facts, mr.facts); - pPush.apply(ret.aliases, this.aliases); - pPush.apply(ret.aliases, mr.aliases); - ret.hashCode = this.hashCode + ":" + mr.hashCode; - merge(ret.factHash, this.factHash, this.aliases); - merge(ret.factHash, mr.factHash, mr.aliases); - unionRecency(ret.recency, this.recency, mr.recency); - return ret; - } - } -}); + __modify: function (context, leftContext) { + var leftContextBlocked = leftContext.blocked; + var fh = context.factHash, o = this.from(fh); + if (isArray(o)) { + for (var i = 0, l = o.length; i < l; i++) { + if (this.__isMatch(context, o[i], true)) { + context.blocked = true; + break; + } + } + } else if (isDefined(o)) { + context.blocked = this.__isMatch(context, o, true); + } + var newContextBlocked = context.blocked; + if (!newContextBlocked) { + if (leftContextBlocked) { + this.__propagate("assert", context.clone()); + } else { + this.__propagate("modify", context.clone()); + } + } else if (!leftContextBlocked) { + this.__propagate("retract", leftContext.clone()); + } -var Context = declare({ - instance: { - match: null, - factHash: null, - aliases: null, - fact: null, - hashCode: null, - paths: null, - pathsHash: null, + }, - constructor: function (fact, paths, mr) { - this.fact = fact; - if (mr) { - this.match = mr; + modifyLeft: function (context) { + var ctx = this.removeFromLeftMemory(context); + if (ctx) { + this.__addToLeftMemory(context); + this.__modify(context, ctx.data); } else { - this.match = new Match().addFact(fact); + throw new Error(); } - this.factHash = this.match.factHash; - this.aliases = this.match.aliases; - this.hashCode = this.match.hashCode; - if (paths) { - this.paths = paths; - this.pathsHash = createContextHash(paths, this.hashCode); - } else { - this.pathsHash = this.hashCode; + var fm = this.fromMemory[context.fact.id]; + this.fromMemory[context.fact.id] = {}; + if (fm) { + for (var i in fm) { + // update any contexts associated with this fact + if (i !== context.hashCode) { + var lc = fm[i]; + ctx = this.removeFromLeftMemory(lc); + if (ctx) { + lc = lc.clone(); + lc.blocked = false; + this.__addToLeftMemory(lc); + this.__modify(lc, ctx.data); + } + } + } } }, - "set": function (key, value) { - this.factHash[key] = value; - this.aliases.push(key); - return this; + __findMatches: function (context) { + var fh = context.factHash, o = this.from(fh), isMatch = false; + if (isArray(o)) { + for (var i = 0, l = o.length; i < l; i++) { + if (this.__isMatch(context, o[i], true)) { + context.blocked = true; + return; + } + } + this.__propagate("assert", context.clone()); + } else if (isDefined(o) && !(context.blocked = this.__isMatch(context, o, true))) { + this.__propagate("assert", context.clone()); + } + return isMatch; }, - isMatch: function (isMatch) { - if (isBoolean(isMatch)) { - this.match.isMatch = isMatch; - } else { - return this.match.isMatch; + __isMatch: function (oc, o, add) { + var ret = false; + if (this.type(o)) { + var createdFact = this.workingMemory.getFactHandle(o); + var context = new Context(createdFact, null) + .mergeMatch(oc.match) + .set(this.alias, o); + if (add) { + var fm = this.fromMemory[createdFact.id]; + if (!fm) { + fm = this.fromMemory[createdFact.id] = {}; + } + fm[oc.hashCode] = oc; + } + var fh = context.factHash; + var eqConstraints = this.__equalityConstraints; + for (var i = 0, l = eqConstraints.length; i < l; i++) { + if (eqConstraints[i](fh, fh)) { + ret = true; + } else { + ret = false; + break; + } + } } - return this; + return ret; }, - mergeMatch: function (merge) { - var match = this.match = this.match.merge(merge); - this.factHash = match.factHash; - this.hashCode = match.hashCode; - this.aliases = match.aliases; - return this; + assertLeft: function (context) { + this.__addToLeftMemory(context); + this.__findMatches(context); }, - clone: function (fact, paths, match) { - return new Context(fact || this.fact, paths || this.path, match || this.match); + assertRight: function () { + throw new Error("Shouldnt have gotten here"); + }, + + retractRight: function () { + throw new Error("Shouldnt have gotten here"); } + } }).as(module); +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/index.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/index.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_3027347__) => { +"use strict"; -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/executionStrategy.js": -/*!********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/executionStrategy.js ***! - \********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +var extd = __nested_webpack_require_3027347__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + forEach = extd.forEach, + some = extd.some, + declare = extd.declare, + pattern = __nested_webpack_require_3027347__(/*! ../pattern.js */ "./build/cht-core-4-6/node_modules/nools/lib/pattern.js"), + ObjectPattern = pattern.ObjectPattern, + FromPattern = pattern.FromPattern, + FromNotPattern = pattern.FromNotPattern, + ExistsPattern = pattern.ExistsPattern, + FromExistsPattern = pattern.FromExistsPattern, + NotPattern = pattern.NotPattern, + CompositePattern = pattern.CompositePattern, + InitialFactPattern = pattern.InitialFactPattern, + constraints = __nested_webpack_require_3027347__(/*! ../constraint */ "./build/cht-core-4-6/node_modules/nools/lib/constraint.js"), + HashConstraint = constraints.HashConstraint, + ReferenceConstraint = constraints.ReferenceConstraint, + AliasNode = __nested_webpack_require_3027347__(/*! ./aliasNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/aliasNode.js"), + EqualityNode = __nested_webpack_require_3027347__(/*! ./equalityNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/equalityNode.js"), + JoinNode = __nested_webpack_require_3027347__(/*! ./joinNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/joinNode.js"), + BetaNode = __nested_webpack_require_3027347__(/*! ./betaNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/betaNode.js"), + NotNode = __nested_webpack_require_3027347__(/*! ./notNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/notNode.js"), + FromNode = __nested_webpack_require_3027347__(/*! ./fromNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNode.js"), + FromNotNode = __nested_webpack_require_3027347__(/*! ./fromNotNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNotNode.js"), + ExistsNode = __nested_webpack_require_3027347__(/*! ./existsNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/existsNode.js"), + ExistsFromNode = __nested_webpack_require_3027347__(/*! ./existsFromNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/existsFromNode.js"), + LeftAdapterNode = __nested_webpack_require_3027347__(/*! ./leftAdapterNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/leftAdapterNode.js"), + RightAdapterNode = __nested_webpack_require_3027347__(/*! ./rightAdapterNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/rightAdapterNode.js"), + TypeNode = __nested_webpack_require_3027347__(/*! ./typeNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/typeNode.js"), + TerminalNode = __nested_webpack_require_3027347__(/*! ./terminalNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/terminalNode.js"), + PropertyNode = __nested_webpack_require_3027347__(/*! ./propertyNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/propertyNode.js"); -/* module decorator */ module = __webpack_require__.nmd(module); -var extd = __webpack_require__(/*! ./extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - Promise = extd.Promise, - nextTick = __webpack_require__(/*! ./nextTick */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nextTick.js"), - isPromiseLike = extd.isPromiseLike; +function hasRefernceConstraints(pattern) { + return some(pattern.constraints || [], function (c) { + return c instanceof ReferenceConstraint; + }); +} -Promise.extend({ +declare({ instance: { + constructor: function (wm, agendaTree) { + this.terminalNodes = []; + this.joinNodes = []; + this.nodes = []; + this.constraints = []; + this.typeNodes = []; + this.__ruleCount = 0; + this.bucket = { + counter: 0, + recency: 0 + }; + this.agendaTree = agendaTree; + this.workingMemory = wm; + }, - looping: false, + assertRule: function (rule) { + var terminalNode = new TerminalNode(this.bucket, this.__ruleCount++, rule, this.agendaTree); + this.__addToNetwork(rule, rule.pattern, terminalNode); + this.__mergeJoinNodes(); + this.terminalNodes.push(terminalNode); + }, - constructor: function (flow, matchUntilHalt) { - this._super([]); - this.flow = flow; - this.agenda = flow.agenda; - this.rootNode = flow.rootNode; - this.matchUntilHalt = !!(matchUntilHalt); - extd.bindAll(this, ["onAlter", "callNext"]); + resetCounter: function () { + this.bucket.counter = 0; }, - halt: function () { - this.__halted = true; - if (!this.looping) { - this.callback(); + incrementCounter: function () { + this.bucket.counter++; + }, + + assertFact: function (fact) { + var typeNodes = this.typeNodes, i = typeNodes.length - 1; + for (; i >= 0; i--) { + typeNodes[i].assert(fact); } }, - onAlter: function () { - this.flowAltered = true; - if (!this.looping && this.matchUntilHalt && !this.__halted) { - this.callNext(); + retractFact: function (fact) { + var typeNodes = this.typeNodes, i = typeNodes.length - 1; + for (; i >= 0; i--) { + typeNodes[i].retract(fact); } }, - setup: function () { - var flow = this.flow; - this.rootNode.resetCounter(); - flow.on("assert", this.onAlter); - flow.on("modify", this.onAlter); - flow.on("retract", this.onAlter); + modifyFact: function (fact) { + var typeNodes = this.typeNodes, i = typeNodes.length - 1; + for (; i >= 0; i--) { + typeNodes[i].modify(fact); + } }, - tearDown: function () { - var flow = this.flow; - flow.removeListener("assert", this.onAlter); - flow.removeListener("modify", this.onAlter); - flow.removeListener("retract", this.onAlter); + + containsRule: function (name) { + return some(this.terminalNodes, function (n) { + return n.rule.name === name; + }); }, - __handleAsyncNext: function (next) { - var self = this, agenda = self.agenda; - return next.then(function () { - self.looping = false; - if (!agenda.isEmpty()) { - if (self.flowAltered) { - self.rootNode.incrementCounter(); - self.flowAltered = false; - } - if (!self.__halted) { - self.callNext(); - } else { - self.callback(); - } - } else if (!self.matchUntilHalt || self.__halted) { - self.callback(); - } - self = null; - }, this.errback); + dispose: function () { + var typeNodes = this.typeNodes, i = typeNodes.length - 1; + for (; i >= 0; i--) { + typeNodes[i].dispose(); + } }, - __handleSyncNext: function (next) { - this.looping = false; - if (!this.agenda.isEmpty()) { - if (this.flowAltered) { - this.rootNode.incrementCounter(); - this.flowAltered = false; + __mergeJoinNodes: function () { + var joinNodes = this.joinNodes; + for (var i = 0; i < joinNodes.length; i++) { + var j1 = joinNodes[i], j2 = joinNodes[i + 1]; + if (j1 && j2 && (j1.constraint && j2.constraint && j1.constraint.equal(j2.constraint))) { + j1.merge(j2); + joinNodes.splice(i + 1, 1); } } - if (next && !this.__halted) { - nextTick(this.callNext); - } else if (!this.matchUntilHalt || this.__halted) { - this.callback(); - } - return next; }, - callback: function () { - this.tearDown(); - this._super(arguments); + __checkEqual: function (node) { + var constraints = this.constraints, i = constraints.length - 1; + for (; i >= 0; i--) { + var n = constraints[i]; + if (node.equal(n)) { + return n; + } + } + constraints.push(node); + return node; }, - - callNext: function () { - this.looping = true; - var next = this.agenda.fireNext(); - return isPromiseLike(next) ? this.__handleAsyncNext(next) : this.__handleSyncNext(next); + __createTypeNode: function (rule, pattern) { + var ret = new TypeNode(pattern.get("constraints")[0]); + var constraints = this.typeNodes, i = constraints.length - 1; + for (; i >= 0; i--) { + var n = constraints[i]; + if (ret.equal(n)) { + return n; + } + } + constraints.push(ret); + return ret; }, - execute: function () { - this.setup(); - this.callNext(); - return this; - } - } -}).as(module); + __createEqualityNode: function (rule, constraint) { + return this.__checkEqual(new EqualityNode(constraint)).addRule(rule); + }, -/***/ }), + __createPropertyNode: function (rule, constraint) { + return this.__checkEqual(new PropertyNode(constraint)).addRule(rule); + }, -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js ***! - \***********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + __createAliasNode: function (rule, pattern) { + return this.__checkEqual(new AliasNode(pattern)).addRule(rule); + }, -var arr = __webpack_require__(/*! array-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/array-extended/index.js"), - unique = arr.unique, - indexOf = arr.indexOf, - map = arr.map, - pSlice = Array.prototype.slice, - pSplice = Array.prototype.splice; + __createAdapterNode: function (rule, side) { + return (side === "left" ? new LeftAdapterNode() : new RightAdapterNode()).addRule(rule); + }, -function plucked(prop) { - var exec = prop.match(/(\w+)\(\)$/); - if (exec) { - prop = exec[1]; - return function (item) { - return item[prop](); - }; - } else { - return function (item) { - return item[prop]; - }; - } -} + __createJoinNode: function (rule, pattern, outNode, side) { + var joinNode; + if (pattern.rightPattern instanceof NotPattern) { + joinNode = new NotNode(); + } else if (pattern.rightPattern instanceof FromExistsPattern) { + joinNode = new ExistsFromNode(pattern.rightPattern, this.workingMemory); + } else if (pattern.rightPattern instanceof ExistsPattern) { + joinNode = new ExistsNode(); + } else if (pattern.rightPattern instanceof FromNotPattern) { + joinNode = new FromNotNode(pattern.rightPattern, this.workingMemory); + } else if (pattern.rightPattern instanceof FromPattern) { + joinNode = new FromNode(pattern.rightPattern, this.workingMemory); + } else if (pattern instanceof CompositePattern && !hasRefernceConstraints(pattern.leftPattern) && !hasRefernceConstraints(pattern.rightPattern)) { + joinNode = new BetaNode(); + this.joinNodes.push(joinNode); + } else { + joinNode = new JoinNode(); + this.joinNodes.push(joinNode); + } + joinNode["__rule__"] = rule; + var parentNode = joinNode; + if (outNode instanceof BetaNode) { + var adapterNode = this.__createAdapterNode(rule, side); + parentNode.addOutNode(adapterNode, pattern); + parentNode = adapterNode; + } + parentNode.addOutNode(outNode, pattern); + return joinNode.addRule(rule); + }, -function plucker(prop) { - prop = prop.split("."); - if (prop.length === 1) { - return plucked(prop[0]); - } else { - var pluckers = map(prop, function (prop) { - return plucked(prop); - }); - var l = pluckers.length; - return function (item) { - var i = -1, res = item; - while (++i < l) { - res = pluckers[i](res); + __addToNetwork: function (rule, pattern, outNode, side) { + if (pattern instanceof ObjectPattern) { + if (!(pattern instanceof InitialFactPattern) && (!side || side === "left")) { + this.__createBetaNode(rule, new CompositePattern(new InitialFactPattern(), pattern), outNode, side); + } else { + this.__createAlphaNode(rule, pattern, outNode, side); + } + } else if (pattern instanceof CompositePattern) { + this.__createBetaNode(rule, pattern, outNode, side); } - return res; - }; - } -} + }, -function intersection(a, b) { - a = pSlice.call(a); - var aOne, i = -1, l; - l = a.length; - while (++i < l) { - aOne = a[i]; - if (indexOf(b, aOne) === -1) { - pSplice.call(a, i--, 1); - l--; - } - } - return a; -} + __createBetaNode: function (rule, pattern, outNode, side) { + var joinNode = this.__createJoinNode(rule, pattern, outNode, side); + this.__addToNetwork(rule, pattern.rightPattern, joinNode, "right"); + this.__addToNetwork(rule, pattern.leftPattern, joinNode, "left"); + outNode.addParentNode(joinNode); + return joinNode; + }, -function inPlaceIntersection(a, b) { - var aOne, i = -1, l; - l = a.length; - while (++i < l) { - aOne = a[i]; - if (indexOf(b, aOne) === -1) { - pSplice.call(a, i--, 1); - l--; - } - } - return a; -} -function inPlaceDifference(a, b) { - var aOne, i = -1, l; - l = a.length; - while (++i < l) { - aOne = a[i]; - if (indexOf(b, aOne) !== -1) { - pSplice.call(a, i--, 1); - l--; - } - } - return a; -} + __createAlphaNode: function (rule, pattern, outNode, side) { + var typeNode, parentNode; + if (!(pattern instanceof FromPattern)) { -function diffArr(arr1, arr2) { - var ret = [], i = -1, j, l2 = arr2.length, l1 = arr1.length, a, found; - if (l2 > l1) { - ret = arr1.slice(); - while (++i < l2) { - a = arr2[i]; - j = -1; - l1 = ret.length; - while (++j < l1) { - if (ret[j] === a) { - ret.splice(j, 1); - break; - } - } - } - } else { - while (++i < l1) { - a = arr1[i]; - j = -1; - found = false; - while (++j < l2) { - if (arr2[j] === a) { - found = true; - break; + var constraints = pattern.get("constraints"); + typeNode = this.__createTypeNode(rule, pattern); + var aliasNode = this.__createAliasNode(rule, pattern); + typeNode.addOutNode(aliasNode, pattern); + aliasNode.addParentNode(typeNode); + parentNode = aliasNode; + var i = constraints.length - 1; + for (; i > 0; i--) { + var constraint = constraints[i], node; + if (constraint instanceof HashConstraint) { + node = this.__createPropertyNode(rule, constraint); + } else if (constraint instanceof ReferenceConstraint) { + outNode.constraint.addConstraint(constraint); + continue; + } else { + node = this.__createEqualityNode(rule, constraint); + } + parentNode.addOutNode(node, pattern); + node.addParentNode(parentNode); + parentNode = node; } + + if (outNode instanceof BetaNode) { + var adapterNode = this.__createAdapterNode(rule, side); + adapterNode.addParentNode(parentNode); + parentNode.addOutNode(adapterNode, pattern); + parentNode = adapterNode; + } + outNode.addParentNode(parentNode); + parentNode.addOutNode(outNode, pattern); + return typeNode; } - if (!found) { - ret.push(a); - } - } - } - return ret; -} + }, -function diffHash(h1, h2) { - var ret = {}; - for (var i in h1) { - if (!hasOwnProperty.call(h2, i)) { - ret[i] = h1[i]; + print: function () { + forEach(this.terminalNodes, function (t) { + t.print(" "); + }); } } - return ret; -} +}).as(exports, "RootNode"); -function union(arr1, arr2) { - return unique(arr1.concat(arr2)); -} -module.exports = __webpack_require__(/*! extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extended/index.js")() - .register(__webpack_require__(/*! date-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/date-extended/index.js")) - .register(arr) - .register(__webpack_require__(/*! object-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/object-extended/index.js")) - .register(__webpack_require__(/*! string-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/string-extended/index.js")) - .register(__webpack_require__(/*! promise-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/promise-extended/index.js")) - .register(__webpack_require__(/*! function-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/function-extended/index.js")) - .register(__webpack_require__(/*! is-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/is-extended/index.js")) - .register("intersection", intersection) - .register("inPlaceIntersection", inPlaceIntersection) - .register("inPlaceDifference", inPlaceDifference) - .register("diffArr", diffArr) - .register("diffHash", diffHash) - .register("unionArr", union) - .register("plucker", plucker) - .register("HashTable", __webpack_require__(/*! ht */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/ht/index.js")) - .register("declare", __webpack_require__(/*! declare.js */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/declare.js/index.js")) - .register(__webpack_require__(/*! leafy */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/leafy/index.js")) - .register("LinkedList", __webpack_require__(/*! ./linkedList */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/linkedList.js")); -/***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/flow.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/flow.js ***! - \*******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ }), -"use strict"; +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/joinNode.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/joinNode.js ***! + \*********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3038900__) => { -var extd = __webpack_require__(/*! ./extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - bind = extd.bind, - declare = extd.declare, - nodes = __webpack_require__(/*! ./nodes */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/index.js"), - EventEmitter = __webpack_require__(/*! events */ "events").EventEmitter, - wm = __webpack_require__(/*! ./workingMemory */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/workingMemory.js"), - WorkingMemory = wm.WorkingMemory, - ExecutionStragegy = __webpack_require__(/*! ./executionStrategy */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/executionStrategy.js"), - AgendaTree = __webpack_require__(/*! ./agenda */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/agenda.js"); +/* module decorator */ module = __nested_webpack_require_3038900__.nmd(module); +var BetaNode = __nested_webpack_require_3038900__(/*! ./betaNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/betaNode.js"), + JoinReferenceNode = __nested_webpack_require_3038900__(/*! ./joinReferenceNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/joinReferenceNode.js"); -module.exports = declare(EventEmitter, { +BetaNode.extend({ instance: { + constructor: function () { + this._super(arguments); + this.constraint = new JoinReferenceNode(this.leftTuples, this.rightTuples); + }, - name: null, + nodeType: "JoinNode", - executionStrategy: null, + propagateFromLeft: function (context, rm) { + var mr; + if ((mr = this.constraint.match(context, rm)).isMatch) { + this.__propagate("assert", this.__addToMemoryMatches(rm, context, context.clone(null, null, mr))); + } + return this; + }, - constructor: function (name, conflictResolutionStrategy) { - this.env = null; - this.name = name; - this.__rules = {}; - this.conflictResolutionStrategy = conflictResolutionStrategy; - this.workingMemory = new WorkingMemory(); - this.agenda = new AgendaTree(this, conflictResolutionStrategy); - this.agenda.on("fire", bind(this, "emit", "fire")); - this.agenda.on("focused", bind(this, "emit", "focused")); - this.rootNode = new nodes.RootNode(this.workingMemory, this.agenda); - extd.bindAll(this, "halt", "assert", "retract", "modify", "focus", - "emit", "getFacts", "getFact"); + propagateFromRight: function (context, lm) { + var mr; + if ((mr = this.constraint.match(lm, context)).isMatch) { + this.__propagate("assert", this.__addToMemoryMatches(context, lm, context.clone(null, null, mr))); + } + return this; }, - getFacts: function (Type) { - var ret; - if (Type) { - ret = this.workingMemory.getFactsByType(Type); + propagateAssertModifyFromLeft: function (context, rightMatches, rm) { + var factId = rm.hashCode, mr; + if (factId in rightMatches) { + mr = this.constraint.match(context, rm); + var mrIsMatch = mr.isMatch; + if (!mrIsMatch) { + this.__propagate("retract", rightMatches[factId].clone()); + } else { + this.__propagate("modify", this.__addToMemoryMatches(rm, context, context.clone(null, null, mr))); + } } else { - ret = this.workingMemory.getFacts(); + this.propagateFromLeft(context, rm); } - return ret; }, - getFact: function (Type) { - var ret; - if (Type) { - ret = this.workingMemory.getFactsByType(Type); + propagateAssertModifyFromRight: function (context, leftMatches, lm) { + var factId = lm.hashCode, mr; + if (factId in leftMatches) { + mr = this.constraint.match(lm, context); + var mrIsMatch = mr.isMatch; + if (!mrIsMatch) { + this.__propagate("retract", leftMatches[factId].clone()); + } else { + this.__propagate("modify", this.__addToMemoryMatches(context, lm, context.clone(null, null, mr))); + } } else { - ret = this.workingMemory.getFacts(); + this.propagateFromRight(context, lm); } - return ret && ret[0]; - }, + } + } - focus: function (focused) { - this.agenda.setFocus(focused); - return this; - }, +}).as(module); - halt: function () { - this.executionStrategy.halt(); - return this; - }, +/***/ }), - dispose: function () { - this.workingMemory.dispose(); - this.agenda.dispose(); - this.rootNode.dispose(); - }, +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/joinReferenceNode.js": +/*!******************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/joinReferenceNode.js ***! + \******************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3041790__) => { - assert: function (fact) { - this.rootNode.assertFact(this.workingMemory.assertFact(fact)); - this.emit("assert", fact); - return fact; - }, +/* module decorator */ module = __nested_webpack_require_3041790__.nmd(module); +var Node = __nested_webpack_require_3041790__(/*! ./node */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js"), + constraints = __nested_webpack_require_3041790__(/*! ../constraint */ "./build/cht-core-4-6/node_modules/nools/lib/constraint.js"), + ReferenceEqualityConstraint = constraints.ReferenceEqualityConstraint; - // This method is called to remove an existing fact from working memory - retract: function (fact) { - //fact = this.workingMemory.getFact(fact); - this.rootNode.retractFact(this.workingMemory.retractFact(fact)); - this.emit("retract", fact); - return fact; - }, +var DEFUALT_CONSTRAINT = { + isDefault: true, + assert: function () { + return true; + }, - // This method is called to alter an existing fact. It is essentially a - // retract followed by an assert. - modify: function (fact, cb) { - //fact = this.workingMemory.getFact(fact); - if ("function" === typeof cb) { - cb.call(fact, fact); - } - this.rootNode.modifyFact(this.workingMemory.modifyFact(fact)); - this.emit("modify", fact); - return fact; - }, + equal: function () { + return false; + } +}; - print: function () { - this.rootNode.print(); +var inversions = { + "gt": "lte", + "gte": "lte", + "lt": "gte", + "lte": "gte", + "eq": "eq", + "neq": "neq" +}; + +function normalizeRightIndexConstraint(rightIndex, indexes, op) { + if (rightIndex === indexes[1]) { + op = inversions[op]; + } + return op; +} + +function normalizeLeftIndexConstraint(leftIndex, indexes, op) { + if (leftIndex === indexes[1]) { + op = inversions[op]; + } + return op; +} + +Node.extend({ + + instance: { + + constraint: DEFUALT_CONSTRAINT, + + constructor: function (leftMemory, rightMemory) { + this._super(arguments); + this.constraint = DEFUALT_CONSTRAINT; + this.constraintAssert = DEFUALT_CONSTRAINT.assert; + this.rightIndexes = []; + this.leftIndexes = []; + this.constraintLength = 0; + this.leftMemory = leftMemory; + this.rightMemory = rightMemory; }, - containsRule: function (name) { - return this.rootNode.containsRule(name); + addConstraint: function (constraint) { + if (constraint instanceof ReferenceEqualityConstraint) { + var identifiers = constraint.getIndexableProperties(); + var alias = constraint.get("alias"); + if (identifiers.length === 2 && alias) { + var leftIndex, rightIndex, i = -1, indexes = []; + while (++i < 2) { + var index = identifiers[i]; + if (index.match(new RegExp("^" + alias + "(\\.?)")) === null) { + indexes.push(index); + leftIndex = index; + } else { + indexes.push(index); + rightIndex = index; + } + } + if (leftIndex && rightIndex) { + var leftOp = normalizeLeftIndexConstraint(leftIndex, indexes, constraint.op), + rightOp = normalizeRightIndexConstraint(rightIndex, indexes, constraint.op); + this.rightMemory.addIndex(rightIndex, leftIndex, rightOp); + this.leftMemory.addIndex(leftIndex, rightIndex, leftOp); + } + } + } + if (this.constraint.isDefault) { + this.constraint = constraint; + this.isDefault = false; + } else { + this.constraint = this.constraint.merge(constraint); + } + this.constraintAssert = this.constraint.assert; + }, - rule: function (rule) { - this.rootNode.assertRule(rule); + equal: function (constraint) { + return this.constraint.equal(constraint.constraint); }, - matchUntilHalt: function (cb) { - return (this.executionStrategy = new ExecutionStragegy(this, true)).execute().classic(cb).promise(); + isMatch: function (lc, rc) { + return this.constraintAssert(lc.factHash, rc.factHash); }, - match: function (cb) { - return (this.executionStrategy = new ExecutionStragegy(this)).execute().classic(cb).promise(); + match: function (lc, rc) { + var ret = {isMatch: false}; + if (this.constraintAssert(lc.factHash, rc.factHash)) { + ret = lc.match.merge(rc.match); + } + return ret; } } -}); - -/***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/flowContainer.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/flowContainer.js ***! - \****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +}).as(module); -"use strict"; -/* module decorator */ module = __webpack_require__.nmd(module); +/***/ }), -var extd = __webpack_require__(/*! ./extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - instanceOf = extd.instanceOf, - forEach = extd.forEach, - declare = extd.declare, - InitialFact = __webpack_require__(/*! ./pattern */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/pattern.js").InitialFact, - conflictStrategies = __webpack_require__(/*! ./conflict */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/conflict.js"), - conflictResolution = conflictStrategies.strategy(["salience", "activationRecency"]), - rule = __webpack_require__(/*! ./rule */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/rule.js"), - Flow = __webpack_require__(/*! ./flow */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/flow.js"); +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/leftAdapterNode.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/leftAdapterNode.js ***! + \****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3045742__) => { -var flows = {}; -var FlowContainer = declare({ +/* module decorator */ module = __nested_webpack_require_3045742__.nmd(module); +var Node = __nested_webpack_require_3045742__(/*! ./adapterNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/adapterNode.js"); +Node.extend({ instance: { - - constructor: function (name, cb) { - this.name = name; - this.cb = cb; - this.__rules = []; - this.__defined = {}; - this.conflictResolutionStrategy = conflictResolution; - if (cb) { - cb.call(this, this); - } - if (!flows.hasOwnProperty(name)) { - flows[name] = this; - } else { - throw new Error("Flow with " + name + " already defined"); - } + propagateAssert: function (context) { + this.__propagate("assertLeft", context); }, - conflictResolution: function (strategies) { - this.conflictResolutionStrategy = conflictStrategies.strategy(strategies); - return this; + propagateRetract: function (context) { + this.__propagate("retractLeft", context); }, - getDefined: function (name) { - var ret = this.__defined[name.toLowerCase()]; - if (!ret) { - throw new Error(name + " flow class is not defined"); - } - return ret; + propagateResolve: function (context) { + this.__propagate("retractResolve", context); }, - addDefined: function (name, cls) { - //normalize - this.__defined[name.toLowerCase()] = cls; - return cls; + propagateModify: function (context) { + this.__propagate("modifyLeft", context); }, - rule: function () { - this.__rules = this.__rules.concat(rule.createRule.apply(rule, arguments)); - return this; + retractResolve: function (match) { + this.__propagate("retractResolve", match); }, - getSession: function () { - var flow = new Flow(this.name, this.conflictResolutionStrategy); - forEach(this.__rules, function (rule) { - flow.rule(rule); - }); - flow.assert(new InitialFact()); - for (var i = 0, l = arguments.length; i < l; i++) { - flow.assert(arguments[i]); - } - return flow; + dispose: function (context) { + this.propagateDispose(context); }, - containsRule: function (name) { - return extd.some(this.__rules, function (rule) { - return rule.name === name; - }); + toString: function () { + return "LeftAdapterNode " + this.__count; } + } - }, +}).as(module); - "static": { - getFlow: function (name) { - return flows[name]; - }, +/***/ }), - hasFlow: function (name) { - return extd.has(flows, name); - }, +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/helpers.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/helpers.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { - deleteFlow: function (name) { - if (instanceOf(name, FlowContainer)) { - name = name.name; - } - delete flows[name]; - return FlowContainer; - }, +exports.getMemory = (function () { - deleteFlows: function () { - for (var name in flows) { - if (name in flows) { - delete flows[name]; + var pPush = Array.prototype.push, NPL = 0, EMPTY_ARRAY = [], NOT_POSSIBLES_HASH = {}, POSSIBLES_HASH = {}, PL = 0; + + function mergePossibleTuples(ret, a, l) { + var val, j = 0, i = -1; + if (PL < l) { + while (PL && ++i < l) { + if (POSSIBLES_HASH[(val = a[i]).hashCode]) { + ret[j++] = val; + PL--; } } - return FlowContainer; - }, - - create: function (name, cb) { - return new FlowContainer(name, cb); + } else { + pPush.apply(ret, a); } + PL = 0; + POSSIBLES_HASH = {}; } -}).as(module); - -/***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/index.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/index.js ***! - \********************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + function mergeNotPossibleTuples(ret, a, l) { + var val, j = 0, i = -1; + if (NPL < l) { + while (++i < l) { + if (!NPL) { + ret[j++] = a[i]; + } else if (!NOT_POSSIBLES_HASH[(val = a[i]).hashCode]) { + ret[j++] = val; + } else { + NPL--; + } + } + } + NPL = 0; + NOT_POSSIBLES_HASH = {}; + } -"use strict"; -/** - * - * @projectName nools - * @github https://github.com/C2FO/nools - * @includeDoc [Examples] ../docs-md/examples.md - * @includeDoc [Change Log] ../history.md - * @header [../readme.md] - */ + function mergeBothTuples(ret, a, l) { + if (PL === l) { + mergeNotPossibles(ret, a, l); + } else if (NPL < l) { + var val, j = 0, i = -1, hashCode; + while (++i < l) { + if (!NOT_POSSIBLES_HASH[(hashCode = (val = a[i]).hashCode)] && POSSIBLES_HASH[hashCode]) { + ret[j++] = val; + } + } + } + NPL = 0; + NOT_POSSIBLES_HASH = {}; + PL = 0; + POSSIBLES_HASH = {}; + } + function mergePossiblesAndNotPossibles(a, l) { + var ret = EMPTY_ARRAY; + if (l) { + if (NPL || PL) { + ret = []; + if (!NPL) { + mergePossibleTuples(ret, a, l); + } else if (!PL) { + mergeNotPossibleTuples(ret, a, l); + } else { + mergeBothTuples(ret, a, l); + } + } else { + ret = a; + } + } + return ret; + } -var extd = __webpack_require__(/*! ./extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - fs = __webpack_require__(/*! fs */ "fs"), - path = __webpack_require__(/*! path */ "path"), - compile = __webpack_require__(/*! ./compile */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/compile/index.js"), - FlowContainer = __webpack_require__(/*! ./flowContainer */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/flowContainer.js"); + function getRangeTuples(op, currEntry, val) { + var ret; + if (op === "gt") { + ret = currEntry.findGT(val); + } else if (op === "gte") { + ret = currEntry.findGTE(val); + } else if (op === "lt") { + ret = currEntry.findLT(val); + } else if (op === "lte") { + ret = currEntry.findLTE(val); + } + return ret; + } -function isNoolsFile(file) { - return (/\.nools$/).test(file); -} + function mergeNotPossibles(tuples, tl) { + if (tl) { + var j = -1, hashCode; + while (++j < tl) { + hashCode = tuples[j].hashCode; + if (!NOT_POSSIBLES_HASH[hashCode]) { + NOT_POSSIBLES_HASH[hashCode] = true; + NPL++; + } + } + } + } -function parse(source) { - var ret; - if (isNoolsFile(source)) { - ret = compile.parse(fs.readFileSync(source, "utf8"), source); - } else { - ret = compile.parse(source); + function mergePossibles(tuples, tl) { + if (tl) { + var j = -1, hashCode; + while (++j < tl) { + hashCode = tuples[j].hashCode; + if (!POSSIBLES_HASH[hashCode]) { + POSSIBLES_HASH[hashCode] = true; + PL++; + } + } + } } - return ret; -} -exports.Flow = FlowContainer; + return function _getMemory(entry, factHash, indexes) { + var i = -1, l = indexes.length, + ret = entry.tuples, + rl = ret.length, + intersected = false, + tables = entry.tables, + index, val, op, nextEntry, currEntry, tuples, tl; + while (++i < l && rl) { + index = indexes[i]; + val = index[3](factHash); + op = index[4]; + currEntry = tables[index[0]]; + if (op === "eq" || op === "seq") { + if ((nextEntry = currEntry.get(val))) { + rl = (ret = (entry = nextEntry).tuples).length; + tables = nextEntry.tables; + } else { + rl = (ret = EMPTY_ARRAY).length; + } + } else if (op === "neq" || op === "sneq") { + if ((nextEntry = currEntry.get(val))) { + tl = (tuples = nextEntry.tuples).length; + mergeNotPossibles(tuples, tl); + } + } else if (!intersected) { + rl = (ret = getRangeTuples(op, currEntry, val)).length; + intersected = true; + } else if ((tl = (tuples = getRangeTuples(op, currEntry, val)).length)) { + mergePossibles(tuples, tl); + } else { + ret = tuples; + rl = tl; + } + } + return mergePossiblesAndNotPossibles(ret, rl); + }; +}()); -exports.getFlow = FlowContainer.getFlow; -exports.hasFlow = FlowContainer.hasFlow; +/***/ }), -exports.deleteFlow = function (name) { - FlowContainer.deleteFlow(name); - return this; -}; +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/leftMemory.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/leftMemory.js ***! + \****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3052111__) => { -exports.deleteFlows = function () { - FlowContainer.deleteFlows(); - return this; -}; +/* module decorator */ module = __nested_webpack_require_3052111__.nmd(module); +var Memory = __nested_webpack_require_3052111__(/*! ./memory */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/memory.js"); -exports.flow = FlowContainer.create; +Memory.extend({ -exports.compile = function (file, options, cb) { - if (extd.isFunction(options)) { - cb = options; - options = {}; - } else { - options = options || {}; - } - if (extd.isString(file)) { - options.name = options.name || (isNoolsFile(file) ? path.basename(file, path.extname(file)) : null); - file = parse(file); - } - if (!options.name) { - throw new Error("Name required when compiling nools source"); - } - return compile.compile(file, options, cb, FlowContainer); -}; + instance: { -exports.transpile = function (file, options) { - options = options || {}; - if (extd.isString(file)) { - options.name = options.name || (isNoolsFile(file) ? path.basename(file, path.extname(file)) : null); - file = parse(file); + getLeftMemory: function (tuple) { + return this.getMemory(tuple); + } } - return compile.transpile(file, options); -}; -exports.parse = parse; +}).as(module); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/linkedList.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/linkedList.js ***! - \*************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/memory.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/memory.js ***! + \************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3052833__) => { + +/* module decorator */ module = __nested_webpack_require_3052833__.nmd(module); +var extd = __nested_webpack_require_3052833__(/*! ../../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + plucker = extd.plucker, + declare = extd.declare, + getMemory = __nested_webpack_require_3052833__(/*! ./helpers */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/helpers.js").getMemory, + Table = __nested_webpack_require_3052833__(/*! ./table */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/table.js"), + TupleEntry = __nested_webpack_require_3052833__(/*! ./tupleEntry */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/tupleEntry.js"); -/* module decorator */ module = __webpack_require__.nmd(module); -var declare = __webpack_require__(/*! declare.js */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/declare.js/index.js"); + +var id = 0; declare({ instance: { + length: 0, + constructor: function () { this.head = null; this.tail = null; - this.length = null; + this.indexes = []; + this.tables = new TupleEntry(null, new Table(), false); }, push: function (data) { - var tail = this.tail, head = this.head, node = {data: data, prev: tail, next: null}; + var tail = this.tail, head = this.head, node = {data: data, tuples: [], hashCode: id++, prev: tail, next: null}; if (tail) { this.tail.next = node; } @@ -81506,6 +88805,8 @@ declare({ this.head = node; } this.length++; + this.__index(node); + this.tables.addNode(node); return node; }, @@ -81520,7 +88821,8 @@ declare({ } else { this.tail = node.prev; } - //node.data = node.prev = node.next = null; + this.tables.removeNode(node); + this.__removeFromIndex(node); this.length--; }, @@ -81532,684 +88834,641 @@ declare({ }, toArray: function () { - var head = {next: this.head}, ret = []; - while ((head = head.next)) { - ret.push(head); - } - return ret; + return this.tables.tuples.slice(); }, - removeByData: function (data) { - var head = {next: this.head}; - while ((head = head.next)) { - if (head.data === data) { - this.remove(head); - break; + clear: function () { + this.head = this.tail = null; + this.length = 0; + this.clearIndexes(); + }, + + clearIndexes: function () { + this.tables = {}; + this.indexes.length = 0; + }, + + __index: function (node) { + var data = node.data, + factHash = data.factHash, + indexes = this.indexes, + entry = this.tables, + i = -1, l = indexes.length, + tuples, index, val, path, tables, currEntry, prevLookup; + while (++i < l) { + index = indexes[i]; + val = index[2](factHash); + path = index[0]; + tables = entry.tables; + if (!(tuples = (currEntry = tables[path] || (tables[path] = new Table())).get(val))) { + tuples = new TupleEntry(val, currEntry, true); + currEntry.set(val, tuples); + } + if (currEntry !== prevLookup) { + node.tuples.push(tuples.addNode(node)); + } + prevLookup = currEntry; + if (index[4] === "eq") { + entry = tuples; } } }, - getByData: function (data) { - var head = {next: this.head}; - while ((head = head.next)) { - if (head.data === data) { - return head; - } + __removeFromIndex: function (node) { + var tuples = node.tuples, i = tuples.length; + while (--i >= 0) { + tuples[i].removeNode(node); } + node.tuples.length = 0; }, - clear: function () { - this.head = this.tail = null; - this.length = 0; + getMemory: function (tuple) { + var ret; + if (!this.length) { + ret = []; + } else { + ret = getMemory(this.tables, tuple.factHash, this.indexes); + } + return ret; + }, + + __createIndexTree: function () { + var table = this.tables.tables = {}; + var indexes = this.indexes; + table[indexes[0][0]] = new Table(); + }, + + + addIndex: function (primary, lookup, op) { + this.indexes.push([primary, lookup, plucker(primary), plucker(lookup), op || "eq"]); + this.indexes.sort(function (a, b) { + var aOp = a[4], bOp = b[4]; + return aOp === bOp ? 0 : aOp > bOp ? 1 : aOp === bOp ? 0 : -1; + }); + this.__createIndexTree(); + } } }).as(module); - /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nextTick.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nextTick.js ***! - \***********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/rightMemory.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/rightMemory.js ***! + \*****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3057675__) => { -/*global setImmediate, window, MessageChannel*/ -var extd = __webpack_require__(/*! ./extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"); -var nextTick; -if (typeof setImmediate === "function") { - // In IE10, or use https://github.com/NobleJS/setImmediate - if (typeof window !== "undefined") { - nextTick = extd.bind(window, setImmediate); - } else { - nextTick = setImmediate; +/* module decorator */ module = __nested_webpack_require_3057675__.nmd(module); +var Memory = __nested_webpack_require_3057675__(/*! ./memory */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/memory.js"); + +Memory.extend({ + + instance: { + + getRightMemory: function (tuple) { + return this.getMemory(tuple); + } } -} else if (typeof process !== "undefined") { - // node - nextTick = process.nextTick; -} else if (typeof MessageChannel !== "undefined") { - // modern browsers - // http://www.nonblocking.io/2011/06/windownexttick.html - var channel = new MessageChannel(); - // linked list of tasks (single, with head node) - var head = {}, tail = head; - channel.port1.onmessage = function () { - head = head.next; - var task = head.task; - delete head.task; - task(); - }; - nextTick = function (task) { - tail = tail.next = {task: task}; - channel.port2.postMessage(0); - }; -} else { - // old browsers - nextTick = function (task) { - setTimeout(task, 0); - }; -} -module.exports = nextTick; +}).as(module); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/adapterNode.js": -/*!********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/adapterNode.js ***! - \********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/table.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/table.js ***! + \***********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3058394__) => { -/* module decorator */ module = __webpack_require__.nmd(module); -var Node = __webpack_require__(/*! ./node */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/node.js"), - intersection = __webpack_require__(/*! ../extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js").intersection; +/* module decorator */ module = __nested_webpack_require_3058394__.nmd(module); +var extd = __nested_webpack_require_3058394__(/*! ../../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + pPush = Array.prototype.push, + HashTable = extd.HashTable, + AVLTree = extd.AVLTree; -Node.extend({ - instance: { +function compare(a, b) { + /*jshint eqeqeq: false*/ + a = a.key; + b = b.key; + var ret; + if (a == b) { + ret = 0; + } else if (a > b) { + ret = 1; + } else if (a < b) { + ret = -1; + } else { + ret = 1; + } + return ret; +} - __propagatePaths: function (method, context) { - var entrySet = this.__entrySet, i = entrySet.length, entry, outNode, paths, continuingPaths; - while (--i > -1) { - entry = entrySet[i]; - outNode = entry.key; - paths = entry.value; - if ((continuingPaths = intersection(paths, context.paths)).length) { - outNode[method](context.clone(null, continuingPaths, null)); - } - } - }, +function compareGT(v1, v2) { + return compare(v1, v2) === 1; +} +function compareGTE(v1, v2) { + return compare(v1, v2) !== -1; +} - __propagateNoPaths: function (method, context) { - var entrySet = this.__entrySet, i = entrySet.length; - while (--i > -1) { - entrySet[i].key[method](context); - } - }, +function compareLT(v1, v2) { + return compare(v1, v2) === -1; +} +function compareLTE(v1, v2) { + return compare(v1, v2) !== 1; +} - __propagate: function (method, context) { - if (context.paths) { - this.__propagatePaths(method, context); +var STACK = [], + VALUE = {key: null}; +function traverseInOrder(tree, key, comparator) { + VALUE.key = key; + var ret = []; + var i = 0, current = tree.__root, v; + while (true) { + if (current) { + current = (STACK[i++] = current).left; + } else { + if (i > 0) { + v = (current = STACK[--i]).data; + if (comparator(v, VALUE)) { + pPush.apply(ret, v.value.tuples); + current = current.right; + } else { + break; + } } else { - this.__propagateNoPaths(method, context); + break; } } } -}).as(module); - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/aliasNode.js": -/*!******************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/aliasNode.js ***! - \******************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + STACK.length = 0; + return ret; +} -/* module decorator */ module = __webpack_require__.nmd(module); -var AlphaNode = __webpack_require__(/*! ./alphaNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/alphaNode.js"); +function traverseReverseOrder(tree, key, comparator) { + VALUE.key = key; + var ret = []; + var i = 0, current = tree.__root, v; + while (true) { + if (current) { + current = (STACK[i++] = current).right; + } else { + if (i > 0) { + v = (current = STACK[--i]).data; + if (comparator(v, VALUE)) { + pPush.apply(ret, v.value.tuples); + current = current.left; + } else { + break; + } + } else { + break; + } + } + } + STACK.length = 0; + return ret; +} -AlphaNode.extend({ +AVLTree.extend({ instance: { constructor: function () { - this._super(arguments); - this.alias = this.constraint.get("alias"); + this._super([ + { + compare: compare + } + ]); + this.gtCache = new HashTable(); + this.gteCache = new HashTable(); + this.ltCache = new HashTable(); + this.lteCache = new HashTable(); + this.hasGTCache = false; + this.hasGTECache = false; + this.hasLTCache = false; + this.hasLTECache = false; }, - toString: function () { - return "AliasNode" + this.__count; + clearCache: function () { + this.hasGTCache && this.gtCache.clear() && (this.hasGTCache = false); + this.hasGTECache && this.gteCache.clear() && (this.hasGTECache = false); + this.hasLTCache && this.ltCache.clear() && (this.hasLTCache = false); + this.hasLTECache && this.lteCache.clear() && (this.hasLTECache = false); }, - assert: function (context) { - return this.__propagate("assert", context.set(this.alias, context.fact.object)); + contains: function (key) { + return this._super([ + {key: key} + ]); }, - modify: function (context) { - return this.__propagate("modify", context.set(this.alias, context.fact.object)); + "set": function (key, value) { + this.insert({key: key, value: value}); + this.clearCache(); }, - retract: function (context) { - return this.__propagate("retract", context.set(this.alias, context.fact.object)); + "get": function (key) { + var ret = this.find({key: key}); + return ret && ret.value; }, - equal: function (other) { - return other instanceof this._static && this.alias === other.alias; - } - } -}).as(module); - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/alphaNode.js": -/*!******************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/alphaNode.js ***! - \******************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/* module decorator */ module = __webpack_require__.nmd(module); + "remove": function (key) { + this.clearCache(); + return this._super([ + {key: key} + ]); + }, -var Node = __webpack_require__(/*! ./node */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/node.js"); + findGT: function (key) { + var ret = this.gtCache.get(key); + if (!ret) { + this.hasGTCache = true; + this.gtCache.put(key, (ret = traverseReverseOrder(this, key, compareGT))); + } + return ret; + }, -Node.extend({ - instance: { - constructor: function (constraint) { - this._super([]); - this.constraint = constraint; - this.constraintAssert = this.constraint.assert; + findGTE: function (key) { + var ret = this.gteCache.get(key); + if (!ret) { + this.hasGTECache = true; + this.gteCache.put(key, (ret = traverseReverseOrder(this, key, compareGTE))); + } + return ret; }, - toString: function () { - return "AlphaNode " + this.__count; + findLT: function (key) { + var ret = this.ltCache.get(key); + if (!ret) { + this.hasLTCache = true; + this.ltCache.put(key, (ret = traverseInOrder(this, key, compareLT))); + } + return ret; }, - equal: function (constraint) { - return this.constraint.equal(constraint.constraint); + findLTE: function (key) { + var ret = this.lteCache.get(key); + if (!ret) { + this.hasLTECache = true; + this.lteCache.put(key, (ret = traverseInOrder(this, key, compareLTE))); + } + return ret; } + } }).as(module); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/betaNode.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/betaNode.js ***! - \*****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -/* module decorator */ module = __webpack_require__.nmd(module); -var extd = __webpack_require__(/*! ../extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - keys = extd.hash.keys, - Node = __webpack_require__(/*! ./node */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/node.js"), - LeftMemory = __webpack_require__(/*! ./misc/leftMemory */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/leftMemory.js"), RightMemory = __webpack_require__(/*! ./misc/rightMemory */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/rightMemory.js"); - -Node.extend({ - - instance: { - - nodeType: "BetaNode", - - constructor: function () { - this._super([]); - this.leftMemory = {}; - this.rightMemory = {}; - this.leftTuples = new LeftMemory(); - this.rightTuples = new RightMemory(); - }, - - __propagate: function (method, context) { - var entrySet = this.__entrySet, i = entrySet.length, entry, outNode; - while (--i > -1) { - entry = entrySet[i]; - outNode = entry.key; - outNode[method](context); - } - }, - - dispose: function () { - this.leftMemory = {}; - this.rightMemory = {}; - this.leftTuples.clear(); - this.rightTuples.clear(); - }, - - disposeLeft: function (fact) { - this.leftMemory = {}; - this.leftTuples.clear(); - this.propagateDispose(fact); - }, +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/tupleEntry.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/tupleEntry.js ***! + \****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3063530__) => { - disposeRight: function (fact) { - this.rightMemory = {}; - this.rightTuples.clear(); - this.propagateDispose(fact); - }, +/* module decorator */ module = __nested_webpack_require_3063530__.nmd(module); +var extd = __nested_webpack_require_3063530__(/*! ../../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + indexOf = extd.indexOf; +// HashSet = require("./hashSet"); - hashCode: function () { - return this.nodeType + " " + this.__count; - }, - toString: function () { - return this.nodeType + " " + this.__count; - }, +var TUPLE_ID = 0; +extd.declare({ - retractLeft: function (context) { - context = this.removeFromLeftMemory(context).data; - var rightMatches = context.rightMatches, - hashCodes = keys(rightMatches), - i = -1, - l = hashCodes.length; - while (++i < l) { - this.__propagate("retract", rightMatches[hashCodes[i]].clone()); - } + instance: { + tuples: null, + tupleMap: null, + hashCode: null, + tables: null, + entry: null, + constructor: function (val, entry, canRemove) { + this.val = val; + this.canRemove = canRemove; + this.tuples = []; + this.tupleMap = {}; + this.hashCode = TUPLE_ID++; + this.tables = {}; + this.length = 0; + this.entry = entry; }, - retractRight: function (context) { - context = this.removeFromRightMemory(context).data; - var leftMatches = context.leftMatches, - hashCodes = keys(leftMatches), - i = -1, - l = hashCodes.length; - while (++i < l) { - this.__propagate("retract", leftMatches[hashCodes[i]].clone()); + addNode: function (node) { + this.tuples[this.length++] = node; + if (this.length > 1) { + this.entry.clearCache(); } + return this; }, - assertLeft: function (context) { - this.__addToLeftMemory(context); - var rm = this.rightTuples.getRightMemory(context), i = -1, l = rm.length; - while (++i < l) { - this.propagateFromLeft(context, rm[i].data); + removeNode: function (node) { + var tuples = this.tuples, index = indexOf(tuples, node); + if (index !== -1) { + tuples.splice(index, 1); + this.length--; + this.entry.clearCache(); } - }, - - assertRight: function (context) { - this.__addToRightMemory(context); - var lm = this.leftTuples.getLeftMemory(context), i = -1, l = lm.length; - while (++i < l) { - this.propagateFromRight(context, lm[i].data); + if (this.canRemove && !this.length) { + this.entry.remove(this.val); } - }, + } + } +}).as(module); - modifyLeft: function (context) { - var previousContext = this.removeFromLeftMemory(context).data; - this.__addToLeftMemory(context); - var rm = this.rightTuples.getRightMemory(context), l = rm.length, i = -1, rightMatches; - if (!l) { - this.propagateRetractModifyFromLeft(previousContext); - } else { - rightMatches = previousContext.rightMatches; - while (++i < l) { - this.propagateAssertModifyFromLeft(context, rightMatches, rm[i].data); - } +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3065243__) => { + +/* module decorator */ module = __nested_webpack_require_3065243__.nmd(module); +var extd = __nested_webpack_require_3065243__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + forEach = extd.forEach, + indexOf = extd.indexOf, + intersection = extd.intersection, + declare = extd.declare, + HashTable = extd.HashTable, + Context = __nested_webpack_require_3065243__(/*! ../context */ "./build/cht-core-4-6/node_modules/nools/lib/context.js"); + +var count = 0; +declare({ + instance: { + constructor: function () { + this.nodes = new HashTable(); + this.rules = []; + this.parentNodes = []; + this.__count = count++; + this.__entrySet = []; + }, + addRule: function (rule) { + if (indexOf(this.rules, rule) === -1) { + this.rules.push(rule); } + return this; }, - modifyRight: function (context) { - var previousContext = this.removeFromRightMemory(context).data; - this.__addToRightMemory(context); - var lm = this.leftTuples.getLeftMemory(context); - if (!lm.length) { - this.propagateRetractModifyFromRight(previousContext); - } else { - var leftMatches = previousContext.leftMatches, i = -1, l = lm.length; - while (++i < l) { - this.propagateAssertModifyFromRight(context, leftMatches, lm[i].data); + merge: function (that) { + that.nodes.forEach(function (entry) { + var patterns = entry.value, node = entry.key; + for (var i = 0, l = patterns.length; i < l; i++) { + this.addOutNode(node, patterns[i]); } + that.nodes.remove(node); + }, this); + var thatParentNodes = that.parentNodes; + for (var i = 0, l = that.parentNodes.l; i < l; i++) { + var parentNode = thatParentNodes[i]; + this.addParentNode(parentNode); + parentNode.nodes.remove(that); } + return this; }, - propagateFromLeft: function (context, rc) { - this.__propagate("assert", this.__addToMemoryMatches(rc, context, context.clone(null, null, context.match.merge(rc.match)))); + resolve: function (mr1, mr2) { + return mr1.hashCode === mr2.hashCode; }, - propagateFromRight: function (context, lc) { - this.__propagate("assert", this.__addToMemoryMatches(context, lc, lc.clone(null, null, lc.match.merge(context.match)))); + print: function (tab) { + console.log(tab + this.toString()); + forEach(this.parentNodes, function (n) { + n.print(" " + tab); + }); }, - propagateRetractModifyFromLeft: function (context) { - var rightMatches = context.rightMatches, - hashCodes = keys(rightMatches), - l = hashCodes.length, - i = -1; - while (++i < l) { - this.__propagate("retract", rightMatches[hashCodes[i]].clone()); + addOutNode: function (outNode, pattern) { + if (!this.nodes.contains(outNode)) { + this.nodes.put(outNode, []); } + this.nodes.get(outNode).push(pattern); + this.__entrySet = this.nodes.entrySet(); }, - propagateRetractModifyFromRight: function (context) { - var leftMatches = context.leftMatches, - hashCodes = keys(leftMatches), - l = hashCodes.length, - i = -1; - while (++i < l) { - this.__propagate("retract", leftMatches[hashCodes[i]].clone()); + addParentNode: function (n) { + if (indexOf(this.parentNodes, n) === -1) { + this.parentNodes.push(n); } }, - propagateAssertModifyFromLeft: function (context, rightMatches, rm) { - var factId = rm.hashCode; - if (factId in rightMatches) { - this.__propagate("modify", this.__addToMemoryMatches(rm, context, context.clone(null, null, context.match.merge(rm.match)))); - } else { - this.propagateFromLeft(context, rm); - } + shareable: function () { + return false; }, - propagateAssertModifyFromRight: function (context, leftMatches, lm) { - var factId = lm.hashCode; - if (factId in leftMatches) { - this.__propagate("modify", this.__addToMemoryMatches(context, lm, context.clone(null, null, lm.match.merge(context.match)))); - } else { - this.propagateFromRight(context, lm); - } - }, + __propagate: function (method, context) { + var entrySet = this.__entrySet, i = entrySet.length, entry, outNode, paths, continuingPaths; + while (--i > -1) { + entry = entrySet[i]; + outNode = entry.key; + paths = entry.value; - removeFromRightMemory: function (context) { - var hashCode = context.hashCode, ret; - context = this.rightMemory[hashCode] || null; - var tuples = this.rightTuples; - if (context) { - var leftMemory = this.leftMemory; - ret = context.data; - var leftMatches = ret.leftMatches; - tuples.remove(context); - var hashCodes = keys(leftMatches), i = -1, l = hashCodes.length; - while (++i < l) { - delete leftMemory[hashCodes[i]].data.rightMatches[hashCode]; + if ((continuingPaths = intersection(paths, context.paths)).length) { + outNode[method](new Context(context.fact, continuingPaths, context.match)); } - delete this.rightMemory[hashCode]; + } - return context; }, - removeFromLeftMemory: function (context) { - var hashCode = context.hashCode; - context = this.leftMemory[hashCode] || null; - if (context) { - var rightMemory = this.rightMemory; - var rightMatches = context.data.rightMatches; - this.leftTuples.remove(context); - var hashCodes = keys(rightMatches), i = -1, l = hashCodes.length; - while (++i < l) { - delete rightMemory[hashCodes[i]].data.leftMatches[hashCode]; - } - delete this.leftMemory[hashCode]; - } - return context; + dispose: function (assertable) { + this.propagateDispose(assertable); }, - getRightMemoryMatches: function (context) { - var lm = this.leftMemory[context.hashCode], ret = {}; - if (lm) { - ret = lm.rightMatches; - } - return ret; + retract: function (assertable) { + this.propagateRetract(assertable); }, - __addToMemoryMatches: function (rightContext, leftContext, createdContext) { - var rightFactId = rightContext.hashCode, - rm = this.rightMemory[rightFactId], - lm, leftFactId = leftContext.hashCode; - if (rm) { - rm = rm.data; - if (leftFactId in rm.leftMatches) { - throw new Error("Duplicate left fact entry"); - } - rm.leftMatches[leftFactId] = createdContext; - } - lm = this.leftMemory[leftFactId]; - if (lm) { - lm = lm.data; - if (rightFactId in lm.rightMatches) { - throw new Error("Duplicate right fact entry"); - } - lm.rightMatches[rightFactId] = createdContext; + propagateDispose: function (assertable, outNodes) { + outNodes = outNodes || this.nodes; + var entrySet = this.__entrySet, i = entrySet.length - 1; + for (; i >= 0; i--) { + var entry = entrySet[i], outNode = entry.key; + outNode.dispose(assertable); } - return createdContext; }, - __addToRightMemory: function (context) { - var hashCode = context.hashCode, rm = this.rightMemory; - if (hashCode in rm) { - return false; - } - rm[hashCode] = this.rightTuples.push(context); - context.leftMatches = {}; - return true; + propagateAssert: function (assertable) { + this.__propagate("assert", assertable); }, + propagateRetract: function (assertable) { + this.__propagate("retract", assertable); + }, - __addToLeftMemory: function (context) { - var hashCode = context.hashCode, lm = this.leftMemory; - if (hashCode in lm) { - return false; - } - lm[hashCode] = this.leftTuples.push(context); - context.rightMatches = {}; - return true; + assert: function (assertable) { + this.propagateAssert(assertable); + }, + + modify: function (assertable) { + this.propagateModify(assertable); + }, + + propagateModify: function (assertable) { + this.__propagate("modify", assertable); } } }).as(module); + /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/equalityNode.js": -/*!*********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/equalityNode.js ***! - \*********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/notNode.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/notNode.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3069595__) => { -/* module decorator */ module = __webpack_require__.nmd(module); -var AlphaNode = __webpack_require__(/*! ./alphaNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/alphaNode.js"); +/* module decorator */ module = __nested_webpack_require_3069595__.nmd(module); +var JoinNode = __nested_webpack_require_3069595__(/*! ./joinNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/joinNode.js"), + LinkedList = __nested_webpack_require_3069595__(/*! ../linkedList */ "./build/cht-core-4-6/node_modules/nools/lib/linkedList.js"), + Context = __nested_webpack_require_3069595__(/*! ../context */ "./build/cht-core-4-6/node_modules/nools/lib/context.js"), + InitialFact = __nested_webpack_require_3069595__(/*! ../pattern */ "./build/cht-core-4-6/node_modules/nools/lib/pattern.js").InitialFact; -AlphaNode.extend({ + +JoinNode.extend({ instance: { + nodeType: "NotNode", + constructor: function () { - this.memory = {}; this._super(arguments); - this.constraintAssert = this.constraint.assert; + this.leftTupleMemory = {}; + //use this ensure a unique match for and propagated context. + this.notMatch = new Context(new InitialFact()).match; }, - assert: function (context) { - if ((this.memory[context.pathsHash] = this.constraintAssert(context.factHash))) { - this.__propagate("assert", context); - } + __cloneContext: function (context) { + return context.clone(null, null, context.match.merge(this.notMatch)); }, - modify: function (context) { - var memory = this.memory, - hashCode = context.pathsHash, - wasMatch = memory[hashCode]; - if ((memory[hashCode] = this.constraintAssert(context.factHash))) { - this.__propagate(wasMatch ? "modify" : "assert", context); - } else if (wasMatch) { - this.__propagate("retract", context); + + retractRight: function (context) { + var ctx = this.removeFromRightMemory(context), + rightContext = ctx.data, + blocking = rightContext.blocking; + if (blocking.length) { + //if we are blocking left contexts + var leftContext, thisConstraint = this.constraint, blockingNode = {next: blocking.head}, rc; + while ((blockingNode = blockingNode.next)) { + leftContext = blockingNode.data; + this.removeFromLeftBlockedMemory(leftContext); + var rm = this.rightTuples.getRightMemory(leftContext), l = rm.length, i; + i = -1; + while (++i < l) { + if (thisConstraint.isMatch(leftContext, rc = rm[i].data)) { + this.blockedContext(leftContext, rc); + leftContext = null; + break; + } + } + if (leftContext) { + this.notBlockedContext(leftContext, true); + } + } + blocking.clear(); } + }, - retract: function (context) { - var hashCode = context.pathsHash, - memory = this.memory; - if (memory[hashCode]) { - this.__propagate("retract", context); - } - delete memory[hashCode]; + blockedContext: function (leftContext, rightContext, propagate) { + leftContext.blocker = rightContext; + this.removeFromLeftMemory(leftContext); + this.addToLeftBlockedMemory(rightContext.blocking.push(leftContext)); + propagate && this.__propagate("retract", this.__cloneContext(leftContext)); }, - toString: function () { - return "EqualityNode" + this.__count; - } - } -}).as(module); + notBlockedContext: function (leftContext, propagate) { + this.__addToLeftMemory(leftContext); + propagate && this.__propagate("assert", this.__cloneContext(leftContext)); + }, -/***/ }), + propagateFromLeft: function (leftContext) { + this.notBlockedContext(leftContext, true); + }, -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/existsFromNode.js": -/*!***********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/existsFromNode.js ***! - \***********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + propagateFromRight: function (leftContext) { + this.notBlockedContext(leftContext, true); + }, -/* module decorator */ module = __webpack_require__.nmd(module); -var FromNotNode = __webpack_require__(/*! ./fromNotNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/fromNotNode.js"), - extd = __webpack_require__(/*! ../extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - Context = __webpack_require__(/*! ../context */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/context.js"), - isDefined = extd.isDefined, - isArray = extd.isArray; + blockFromAssertRight: function (leftContext, rightContext) { + this.blockedContext(leftContext, rightContext, true); + }, -FromNotNode.extend({ - instance: { + blockFromAssertLeft: function (leftContext, rightContext) { + this.blockedContext(leftContext, rightContext, false); + }, - nodeType: "ExistsFromNode", retractLeft: function (context) { var ctx = this.removeFromLeftMemory(context); if (ctx) { ctx = ctx.data; - if (ctx.blocked) { - this.__propagate("retract", ctx.clone()); + this.__propagate("retract", this.__cloneContext(ctx)); + } else { + if (!this.removeFromLeftBlockedMemory(context)) { + throw new Error(); } } }, - __modify: function (context, leftContext) { - var leftContextBlocked = leftContext.blocked; - var fh = context.factHash, o = this.from(fh); - if (isArray(o)) { - for (var i = 0, l = o.length; i < l; i++) { - if (this.__isMatch(context, o[i], true)) { - context.blocked = true; - break; - } + assertLeft: function (context) { + var values = this.rightTuples.getRightMemory(context), + thisConstraint = this.constraint, rc, i = -1, l = values.length; + while (++i < l) { + if (thisConstraint.isMatch(context, rc = values[i].data)) { + this.blockFromAssertLeft(context, rc); + context = null; + i = l; } - } else if (isDefined(o)) { - context.blocked = this.__isMatch(context, o, true); } - var newContextBlocked = context.blocked; - if (newContextBlocked) { - if (leftContextBlocked) { - this.__propagate("modify", context.clone()); - } else { - this.__propagate("assert", context.clone()); - } - } else if (leftContextBlocked) { - this.__propagate("retract", context.clone()); + if (context) { + this.propagateFromLeft(context); } - }, - __findMatches: function (context) { - var fh = context.factHash, o = this.from(fh), isMatch = false; - if (isArray(o)) { - for (var i = 0, l = o.length; i < l; i++) { - if (this.__isMatch(context, o[i], true)) { - context.blocked = true; - this.__propagate("assert", context.clone()); - return; - } + assertRight: function (context) { + this.__addToRightMemory(context); + context.blocking = new LinkedList(); + var fl = this.leftTuples.getLeftMemory(context).slice(), + i = -1, l = fl.length, + leftContext, thisConstraint = this.constraint; + while (++i < l) { + leftContext = fl[i].data; + if (thisConstraint.isMatch(leftContext, context)) { + this.blockFromAssertRight(leftContext, context); } - } else if (isDefined(o) && (this.__isMatch(context, o, true))) { - context.blocked = true; - this.__propagate("assert", context.clone()); } - return isMatch; }, - __isMatch: function (oc, o, add) { - var ret = false; - if (this.type(o)) { - var createdFact = this.workingMemory.getFactHandle(o); - var context = new Context(createdFact, null, null) - .mergeMatch(oc.match) - .set(this.alias, o); - if (add) { - var fm = this.fromMemory[createdFact.id]; - if (!fm) { - fm = this.fromMemory[createdFact.id] = {}; - } - fm[oc.hashCode] = oc; - } - var fh = context.factHash; - var eqConstraints = this.__equalityConstraints; - for (var i = 0, l = eqConstraints.length; i < l; i++) { - if (eqConstraints[i](fh)) { - ret = true; - } else { - ret = false; - break; - } - } + addToLeftBlockedMemory: function (context) { + var data = context.data, hashCode = data.hashCode; + var ctx = this.leftMemory[hashCode]; + this.leftTupleMemory[hashCode] = context; + if (ctx) { + this.leftTuples.remove(ctx); } - return ret; - }, - - assertLeft: function (context) { - this.__addToLeftMemory(context); - this.__findMatches(context); - } - - } -}).as(module); - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/existsNode.js": -/*!*******************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/existsNode.js ***! - \*******************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -/* module decorator */ module = __webpack_require__.nmd(module); -var NotNode = __webpack_require__(/*! ./notNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/notNode.js"), - LinkedList = __webpack_require__(/*! ../linkedList */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/linkedList.js"); - - -NotNode.extend({ - instance: { - - nodeType: "ExistsNode", - - blockedContext: function (leftContext, rightContext) { - leftContext.blocker = rightContext; - this.removeFromLeftMemory(leftContext); - this.addToLeftBlockedMemory(rightContext.blocking.push(leftContext)); - this.__propagate("assert", this.__cloneContext(leftContext)); - }, - - notBlockedContext: function (leftContext, propagate) { - this.__addToLeftMemory(leftContext); - propagate && this.__propagate("retract", this.__cloneContext(leftContext)); - }, - - propagateFromLeft: function (leftContext) { - this.notBlockedContext(leftContext, false); + return this; }, - - retractLeft: function (context) { - var ctx; - if (!this.removeFromLeftMemory(context)) { - if ((ctx = this.removeFromLeftBlockedMemory(context))) { - this.__propagate("retract", this.__cloneContext(ctx.data)); - } else { - throw new Error(); - } + removeFromLeftBlockedMemory: function (context) { + var ret = this.leftTupleMemory[context.hashCode] || null; + if (ret) { + delete this.leftTupleMemory[context.hashCode]; + ret.data.blocker.blocking.remove(ret); } + return ret; }, - + modifyLeft: function (context) { var ctx = this.removeFromLeftMemory(context), leftContext, thisConstraint = this.constraint, - rightTuples = this.rightTuples, + rightTuples = this.rightTuples.getRightMemory(context), l = rightTuples.length, isBlocked = false, - node, rc, blocker; + i, rc, blocker; if (!ctx) { //blocked before ctx = this.removeFromLeftBlockedMemory(context); @@ -82221,31 +89480,30 @@ NotNode.extend({ if (leftContext && leftContext.blocker) { //we were blocked before so only check nodes previous to our blocker blocker = this.rightMemory[leftContext.blocker.hashCode]; + leftContext.blocker = null; } if (blocker) { if (thisConstraint.isMatch(context, rc = blocker.data)) { - //propogate as a modify or assert - this.__propagate(!isBlocked ? "assert" : "modify", this.__cloneContext(leftContext)); + //we cant be proagated so retract previous + if (!isBlocked) { + //we were asserted before so retract + this.__propagate("retract", this.__cloneContext(leftContext)); + } context.blocker = rc; this.addToLeftBlockedMemory(rc.blocking.push(context)); context = null; } - if (context) { - node = {next: blocker.next}; - } - } else { - node = {next: rightTuples.head}; } if (context && l) { - node = {next: rightTuples.head}; - //we were propagated before - while ((node = node.next)) { - if (thisConstraint.isMatch(context, rc = node.data)) { + i = -1; + //we were propogated before + while (++i < l) { + if (thisConstraint.isMatch(context, rc = rightTuples[i].data)) { //we cant be proagated so retract previous - - //we were asserted before so retract - this.__propagate(!isBlocked ? "assert" : "modify", this.__cloneContext(leftContext)); - + if (!isBlocked) { + //we were asserted before so retract + this.__propagate("retract", this.__cloneContext(leftContext)); + } this.addToLeftBlockedMemory(rc.blocking.push(context)); context.blocker = rc; context = null; @@ -82256,9 +89514,12 @@ NotNode.extend({ if (context) { //we can still be propogated this.__addToLeftMemory(context); - if (isBlocked) { - //we were blocked so retract - this.__propagate("retract", this.__cloneContext(context)); + if (!isBlocked) { + //we weren't blocked before so modify + this.__propagate("modify", this.__cloneContext(context)); + } else { + //we were blocked before but aren't now + this.__propagate("assert", this.__cloneContext(context)); } } @@ -82272,63 +89533,56 @@ NotNode.extend({ var ctx = this.removeFromRightMemory(context); if (ctx) { var rightContext = ctx.data, - leftTuples = this.leftTuples, + leftTuples = this.leftTuples.getLeftMemory(context).slice(), leftTuplesLength = leftTuples.length, leftContext, thisConstraint = this.constraint, - node, + i, node, blocking = rightContext.blocking; this.__addToRightMemory(context); context.blocking = new LinkedList(); - if (leftTuplesLength || blocking.length) { - if (blocking.length) { - var rc; - //check old blocked contexts - //check if the same contexts blocked before are still blocked - var blockingNode = {next: blocking.head}; - while ((blockingNode = blockingNode.next)) { - leftContext = blockingNode.data; - leftContext.blocker = null; - if (thisConstraint.isMatch(leftContext, context)) { - leftContext.blocker = context; - this.addToLeftBlockedMemory(context.blocking.push(leftContext)); - this.__propagate("assert", this.__cloneContext(leftContext)); + + var rc; + //check old blocked contexts + //check if the same contexts blocked before are still blocked + var blockingNode = {next: blocking.head}; + while ((blockingNode = blockingNode.next)) { + leftContext = blockingNode.data; + leftContext.blocker = null; + if (thisConstraint.isMatch(leftContext, context)) { + leftContext.blocker = context; + this.addToLeftBlockedMemory(context.blocking.push(leftContext)); + leftContext = null; + } else { + //we arent blocked anymore + leftContext.blocker = null; + node = ctx; + while ((node = node.next)) { + if (thisConstraint.isMatch(leftContext, rc = node.data)) { + leftContext.blocker = rc; + this.addToLeftBlockedMemory(rc.blocking.push(leftContext)); leftContext = null; - } else { - //we arent blocked anymore - leftContext.blocker = null; - node = ctx; - while ((node = node.next)) { - if (thisConstraint.isMatch(leftContext, rc = node.data)) { - leftContext.blocker = rc; - this.addToLeftBlockedMemory(rc.blocking.push(leftContext)); - this.__propagate("assert", this.__cloneContext(leftContext)); - leftContext = null; - break; - } - } - if (leftContext) { - this.__addToLeftMemory(leftContext); - } + break; } } + if (leftContext) { + this.__addToLeftMemory(leftContext); + this.__propagate("assert", this.__cloneContext(leftContext)); + } } - - if (leftTuplesLength) { - //check currently left tuples in memory - node = {next: leftTuples.head}; - while ((node = node.next)) { - leftContext = node.data; - if (thisConstraint.isMatch(leftContext, context)) { - this.__propagate("assert", this.__cloneContext(leftContext)); - this.removeFromLeftMemory(leftContext); - this.addToLeftBlockedMemory(context.blocking.push(leftContext)); - leftContext.blocker = context; - } + } + if (leftTuplesLength) { + //check currently left tuples in memory + i = -1; + while (++i < leftTuplesLength) { + leftContext = leftTuples[i].data; + if (thisConstraint.isMatch(leftContext, context)) { + this.__propagate("retract", this.__cloneContext(leftContext)); + this.removeFromLeftMemory(leftContext); + this.addToLeftBlockedMemory(context.blocking.push(leftContext)); + leftContext.blocker = context; } } - - } } else { throw new Error(); @@ -82341,15079 +89595,12308 @@ NotNode.extend({ /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/fromNode.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/fromNode.js ***! - \*****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -/* module decorator */ module = __webpack_require__.nmd(module); -var JoinNode = __webpack_require__(/*! ./joinNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/joinNode.js"), - extd = __webpack_require__(/*! ../extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - constraint = __webpack_require__(/*! ../constraint */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/constraint.js"), - EqualityConstraint = constraint.EqualityConstraint, - HashConstraint = constraint.HashConstraint, - ReferenceConstraint = constraint.ReferenceConstraint, - Context = __webpack_require__(/*! ../context */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/context.js"), - isDefined = extd.isDefined, - isEmpty = extd.isEmpty, - forEach = extd.forEach, - isArray = extd.isArray; +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/propertyNode.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/propertyNode.js ***! + \*************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3081283__) => { -var DEFAULT_MATCH = { - isMatch: function () { - return false; - } -}; +/* module decorator */ module = __nested_webpack_require_3081283__.nmd(module); +var AlphaNode = __nested_webpack_require_3081283__(/*! ./alphaNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/alphaNode.js"), + Context = __nested_webpack_require_3081283__(/*! ../context */ "./build/cht-core-4-6/node_modules/nools/lib/context.js"), + extd = __nested_webpack_require_3081283__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"); -JoinNode.extend({ +AlphaNode.extend({ instance: { - nodeType: "FromNode", - - constructor: function (pattern, wm) { + constructor: function () { this._super(arguments); - this.workingMemory = wm; - this.fromMemory = {}; - this.pattern = pattern; - this.type = pattern.get("constraints")[0].assert; - this.alias = pattern.get("alias"); - this.from = pattern.from.assert; - var eqConstraints = this.__equalityConstraints = []; - var vars = []; - forEach(this.constraints = this.pattern.get("constraints").slice(1), function (c) { - if (c instanceof EqualityConstraint || c instanceof ReferenceConstraint) { - eqConstraints.push(c.assert); - } else if (c instanceof HashConstraint) { - vars = vars.concat(c.get("variables")); - } - }); - this.__variables = vars; + this.alias = this.constraint.get("alias"); + this.varLength = (this.variables = extd(this.constraint.get("variables")).toArray().value()).length; }, - __createMatches: function (context) { - var fh = context.factHash, o = this.from(fh); - if (isArray(o)) { - for (var i = 0, l = o.length; i < l; i++) { - this.__checkMatch(context, o[i], true); - } - } else if (isDefined(o)) { - this.__checkMatch(context, o, true); + assert: function (context) { + var c = new Context(context.fact, context.paths); + var variables = this.variables, o = context.fact.object, item; + c.set(this.alias, o); + for (var i = 0, l = this.varLength; i < l; i++) { + item = variables[i]; + c.set(item[1], o[item[0]]); } + + this.__propagate("assert", c); + }, - __checkMatch: function (context, o, propogate) { - var newContext; - if ((newContext = this.__createMatch(context, o)).isMatch() && propogate) { - this.__propagate("assert", newContext.clone()); - } - return newContext; + retract: function (context) { + this.__propagate("retract", new Context(context.fact, context.paths)); }, - __createMatch: function (lc, o) { - if (this.type(o)) { - var createdFact = this.workingMemory.getFactHandle(o, true), - createdContext, - rc = new Context(createdFact, null, null) - .set(this.alias, o), - createdFactId = createdFact.id; - var fh = rc.factHash, lcFh = lc.factHash; - for (var key in lcFh) { - fh[key] = lcFh[key]; - } - var eqConstraints = this.__equalityConstraints, vars = this.__variables, i = -1, l = eqConstraints.length; - while (++i < l) { - if (!eqConstraints[i](fh, fh)) { - createdContext = DEFAULT_MATCH; - break; - } - } - var fm = this.fromMemory[createdFactId]; - if (!fm) { - fm = this.fromMemory[createdFactId] = {}; - } - if (!createdContext) { - var prop; - i = -1; - l = vars.length; - while (++i < l) { - prop = vars[i]; - fh[prop] = o[prop]; - } - lc.fromMatches[createdFact.id] = createdContext = rc.clone(createdFact, null, lc.match.merge(rc.match)); - } - fm[lc.hashCode] = [lc, createdContext]; - return createdContext; + modify: function (context) { + var c = new Context(context.fact, context.paths); + var variables = this.variables, o = context.fact.object, item; + c.set(this.alias, o); + for (var i = 0, l = this.varLength; i < l; i++) { + item = variables[i]; + c.set(item[1], o[item[0]]); } - return DEFAULT_MATCH; + this.__propagate("modify", c); }, - retractRight: function () { - throw new Error("Shouldnt have gotten here"); - }, - removeFromFromMemory: function (context) { - var factId = context.fact.id; - var fm = this.fromMemory[factId]; - if (fm) { - var entry; - for (var i in fm) { - entry = fm[i]; - if (entry[1] === context) { - delete fm[i]; - if (isEmpty(fm)) { - delete this.fromMemory[factId]; - } - break; - } - } - } + toString: function () { + return "PropertyNode" + this.__count; + } + } +}).as(module); - }, - retractLeft: function (context) { - var ctx = this.removeFromLeftMemory(context); - if (ctx) { - ctx = ctx.data; - var fromMatches = ctx.fromMatches; - for (var i in fromMatches) { - this.removeFromFromMemory(fromMatches[i]); - this.__propagate("retract", fromMatches[i].clone()); - } - } + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/rightAdapterNode.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/rightAdapterNode.js ***! + \*****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3083479__) => { + +/* module decorator */ module = __nested_webpack_require_3083479__.nmd(module); +var Node = __nested_webpack_require_3083479__(/*! ./adapterNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/adapterNode.js"); + +Node.extend({ + instance: { + + retractResolve: function (match) { + this.__propagate("retractResolve", match); }, - modifyLeft: function (context) { - var ctx = this.removeFromLeftMemory(context), newContext, i, l, factId, fact; - if (ctx) { - this.__addToLeftMemory(context); + dispose: function (context) { + this.propagateDispose(context); + }, - var leftContext = ctx.data, - fromMatches = (context.fromMatches = {}), - rightMatches = leftContext.fromMatches, - o = this.from(context.factHash); + propagateAssert: function (context) { + this.__propagate("assertRight", context); + }, - if (isArray(o)) { - for (i = 0, l = o.length; i < l; i++) { - newContext = this.__checkMatch(context, o[i], false); - if (newContext.isMatch()) { - factId = newContext.fact.id; - if (factId in rightMatches) { - this.__propagate("modify", newContext.clone()); - } else { - this.__propagate("assert", newContext.clone()); - } - } - } - } else if (isDefined(o)) { - newContext = this.__checkMatch(context, o, false); - if (newContext.isMatch()) { - factId = newContext.fact.id; - if (factId in rightMatches) { - this.__propagate("modify", newContext.clone()); - } else { - this.__propagate("assert", newContext.clone()); - } - } - } - for (i in rightMatches) { - if (!(i in fromMatches)) { - this.removeFromFromMemory(rightMatches[i]); - this.__propagate("retract", rightMatches[i].clone()); - } - } - } else { - this.assertLeft(context); - } - fact = context.fact; - factId = fact.id; - var fm = this.fromMemory[factId]; - this.fromMemory[factId] = {}; - if (fm) { - var lc, entry, cc, createdIsMatch, factObject = fact.object; - for (i in fm) { - entry = fm[i]; - lc = entry[0]; - cc = entry[1]; - createdIsMatch = cc.isMatch(); - if (lc.hashCode !== context.hashCode) { - newContext = this.__createMatch(lc, factObject, false); - if (createdIsMatch) { - this.__propagate("retract", cc.clone()); - } - if (newContext.isMatch()) { - this.__propagate(createdIsMatch ? "modify" : "assert", newContext.clone()); - } + propagateRetract: function (context) { + this.__propagate("retractRight", context); + }, - } - } - } + propagateResolve: function (context) { + this.__propagate("retractResolve", context); }, - assertLeft: function (context) { - this.__addToLeftMemory(context); - context.fromMatches = {}; - this.__createMatches(context); + propagateModify: function (context) { + this.__propagate("modifyRight", context); }, - assertRight: function () { - throw new Error("Shouldnt have gotten here"); + toString: function () { + return "RightAdapterNode " + this.__count; } - } }).as(module); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/fromNotNode.js": -/*!********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/fromNotNode.js ***! - \********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/terminalNode.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/terminalNode.js ***! + \*************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3084865__) => { -/* module decorator */ module = __webpack_require__.nmd(module); -var JoinNode = __webpack_require__(/*! ./joinNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/joinNode.js"), - extd = __webpack_require__(/*! ../extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - constraint = __webpack_require__(/*! ../constraint */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/constraint.js"), - EqualityConstraint = constraint.EqualityConstraint, - HashConstraint = constraint.HashConstraint, - ReferenceConstraint = constraint.ReferenceConstraint, - Context = __webpack_require__(/*! ../context */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/context.js"), - isDefined = extd.isDefined, - forEach = extd.forEach, - isArray = extd.isArray; +/* module decorator */ module = __nested_webpack_require_3084865__.nmd(module); +var Node = __nested_webpack_require_3084865__(/*! ./node */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js"), + extd = __nested_webpack_require_3084865__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + bind = extd.bind; -JoinNode.extend({ +Node.extend({ instance: { - - nodeType: "FromNotNode", - - constructor: function (pattern, workingMemory) { - this._super(arguments); - this.workingMemory = workingMemory; - this.pattern = pattern; - this.type = pattern.get("constraints")[0].assert; - this.alias = pattern.get("alias"); - this.from = pattern.from.assert; - this.fromMemory = {}; - var eqConstraints = this.__equalityConstraints = []; - var vars = []; - forEach(this.constraints = this.pattern.get("constraints").slice(1), function (c) { - if (c instanceof EqualityConstraint || c instanceof ReferenceConstraint) { - eqConstraints.push(c.assert); - } else if (c instanceof HashConstraint) { - vars = vars.concat(c.get("variables")); - } - }); - this.__variables = vars; - + constructor: function (bucket, index, rule, agenda) { + this._super([]); + this.resolve = bind(this, this.resolve); + this.rule = rule; + this.index = index; + this.name = this.rule.name; + this.agenda = agenda; + this.bucket = bucket; + agenda.register(this); }, - retractLeft: function (context) { - var ctx = this.removeFromLeftMemory(context); - if (ctx) { - ctx = ctx.data; - if (!ctx.blocked) { - this.__propagate("retract", ctx.clone()); - } + __assertModify: function (context) { + var match = context.match; + if (match.isMatch) { + var rule = this.rule, bucket = this.bucket; + this.agenda.insert(this, { + rule: rule, + hashCode: context.hashCode, + index: this.index, + name: rule.name, + recency: bucket.recency++, + match: match, + counter: bucket.counter + }); } }, - __modify: function (context, leftContext) { - var leftContextBlocked = leftContext.blocked; - var fh = context.factHash, o = this.from(fh); - if (isArray(o)) { - for (var i = 0, l = o.length; i < l; i++) { - if (this.__isMatch(context, o[i], true)) { - context.blocked = true; - break; - } - } - } else if (isDefined(o)) { - context.blocked = this.__isMatch(context, o, true); - } - var newContextBlocked = context.blocked; - if (!newContextBlocked) { - if (leftContextBlocked) { - this.__propagate("assert", context.clone()); - } else { - this.__propagate("modify", context.clone()); - } - } else if (!leftContextBlocked) { - this.__propagate("retract", leftContext.clone()); - } + assert: function (context) { + this.__assertModify(context); + }, + modify: function (context) { + this.agenda.retract(this, context); + this.__assertModify(context); }, - modifyLeft: function (context) { - var ctx = this.removeFromLeftMemory(context); - if (ctx) { - this.__addToLeftMemory(context); - this.__modify(context, ctx.data); - } else { - throw new Error(); - } - var fm = this.fromMemory[context.fact.id]; - this.fromMemory[context.fact.id] = {}; - if (fm) { - for (var i in fm) { - // update any contexts associated with this fact - if (i !== context.hashCode) { - var lc = fm[i]; - ctx = this.removeFromLeftMemory(lc); - if (ctx) { - lc = lc.clone(); - lc.blocked = false; - this.__addToLeftMemory(lc); - this.__modify(lc, ctx.data); - } - } - } - } + retract: function (context) { + this.agenda.retract(this, context); }, - __findMatches: function (context) { - var fh = context.factHash, o = this.from(fh), isMatch = false; - if (isArray(o)) { - for (var i = 0, l = o.length; i < l; i++) { - if (this.__isMatch(context, o[i], true)) { - context.blocked = true; - return; - } - } - this.__propagate("assert", context.clone()); - } else if (isDefined(o) && !(context.blocked = this.__isMatch(context, o, true))) { - this.__propagate("assert", context.clone()); - } - return isMatch; + retractRight: function (context) { + this.agenda.retract(this, context); }, - __isMatch: function (oc, o, add) { - var ret = false; - if (this.type(o)) { - var createdFact = this.workingMemory.getFactHandle(o); - var context = new Context(createdFact, null) - .mergeMatch(oc.match) - .set(this.alias, o); - if (add) { - var fm = this.fromMemory[createdFact.id]; - if (!fm) { - fm = this.fromMemory[createdFact.id] = {}; - } - fm[oc.hashCode] = oc; - } - var fh = context.factHash; - var eqConstraints = this.__equalityConstraints; - for (var i = 0, l = eqConstraints.length; i < l; i++) { - if (eqConstraints[i](fh, fh)) { - ret = true; - } else { - ret = false; - break; - } - } - } - return ret; + retractLeft: function (context) { + this.agenda.retract(this, context); }, assertLeft: function (context) { - this.__addToLeftMemory(context); - this.__findMatches(context); + this.__assertModify(context); }, - assertRight: function () { - throw new Error("Shouldnt have gotten here"); + assertRight: function (context) { + this.__assertModify(context); }, - retractRight: function () { - throw new Error("Shouldnt have gotten here"); + toString: function () { + return "TerminalNode " + this.rule.name; } - } }).as(module); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/index.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/index.js ***! - \**************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; - -var extd = __webpack_require__(/*! ../extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - forEach = extd.forEach, - some = extd.some, - declare = extd.declare, - pattern = __webpack_require__(/*! ../pattern.js */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/pattern.js"), - ObjectPattern = pattern.ObjectPattern, - FromPattern = pattern.FromPattern, - FromNotPattern = pattern.FromNotPattern, - ExistsPattern = pattern.ExistsPattern, - FromExistsPattern = pattern.FromExistsPattern, - NotPattern = pattern.NotPattern, - CompositePattern = pattern.CompositePattern, - InitialFactPattern = pattern.InitialFactPattern, - constraints = __webpack_require__(/*! ../constraint */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/constraint.js"), - HashConstraint = constraints.HashConstraint, - ReferenceConstraint = constraints.ReferenceConstraint, - AliasNode = __webpack_require__(/*! ./aliasNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/aliasNode.js"), - EqualityNode = __webpack_require__(/*! ./equalityNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/equalityNode.js"), - JoinNode = __webpack_require__(/*! ./joinNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/joinNode.js"), - BetaNode = __webpack_require__(/*! ./betaNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/betaNode.js"), - NotNode = __webpack_require__(/*! ./notNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/notNode.js"), - FromNode = __webpack_require__(/*! ./fromNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/fromNode.js"), - FromNotNode = __webpack_require__(/*! ./fromNotNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/fromNotNode.js"), - ExistsNode = __webpack_require__(/*! ./existsNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/existsNode.js"), - ExistsFromNode = __webpack_require__(/*! ./existsFromNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/existsFromNode.js"), - LeftAdapterNode = __webpack_require__(/*! ./leftAdapterNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/leftAdapterNode.js"), - RightAdapterNode = __webpack_require__(/*! ./rightAdapterNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/rightAdapterNode.js"), - TypeNode = __webpack_require__(/*! ./typeNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/typeNode.js"), - TerminalNode = __webpack_require__(/*! ./terminalNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/terminalNode.js"), - PropertyNode = __webpack_require__(/*! ./propertyNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/propertyNode.js"); +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/typeNode.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/typeNode.js ***! + \*********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3087324__) => { -function hasRefernceConstraints(pattern) { - return some(pattern.constraints || [], function (c) { - return c instanceof ReferenceConstraint; - }); -} +/* module decorator */ module = __nested_webpack_require_3087324__.nmd(module); +var AlphaNode = __nested_webpack_require_3087324__(/*! ./alphaNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/alphaNode.js"), + Context = __nested_webpack_require_3087324__(/*! ../context */ "./build/cht-core-4-6/node_modules/nools/lib/context.js"); -declare({ +AlphaNode.extend({ instance: { - constructor: function (wm, agendaTree) { - this.terminalNodes = []; - this.joinNodes = []; - this.nodes = []; - this.constraints = []; - this.typeNodes = []; - this.__ruleCount = 0; - this.bucket = { - counter: 0, - recency: 0 - }; - this.agendaTree = agendaTree; - this.workingMemory = wm; + + assert: function (fact) { + if (this.constraintAssert(fact.object)) { + this.__propagate("assert", fact); + } }, - assertRule: function (rule) { - var terminalNode = new TerminalNode(this.bucket, this.__ruleCount++, rule, this.agendaTree); - this.__addToNetwork(rule, rule.pattern, terminalNode); - this.__mergeJoinNodes(); - this.terminalNodes.push(terminalNode); + modify: function (fact) { + if (this.constraintAssert(fact.object)) { + this.__propagate("modify", fact); + } }, - resetCounter: function () { - this.bucket.counter = 0; + retract: function (fact) { + if (this.constraintAssert(fact.object)) { + this.__propagate("retract", fact); + } }, - incrementCounter: function () { - this.bucket.counter++; + toString: function () { + return "TypeNode" + this.__count; }, - assertFact: function (fact) { - var typeNodes = this.typeNodes, i = typeNodes.length - 1; + dispose: function () { + var es = this.__entrySet, i = es.length - 1; for (; i >= 0; i--) { - typeNodes[i].assert(fact); + var e = es[i], outNode = e.key, paths = e.value; + outNode.dispose({paths: paths}); } }, - retractFact: function (fact) { - var typeNodes = this.typeNodes, i = typeNodes.length - 1; - for (; i >= 0; i--) { - typeNodes[i].retract(fact); + __propagate: function (method, fact) { + var es = this.__entrySet, i = -1, l = es.length; + while (++i < l) { + var e = es[i], outNode = e.key, paths = e.value; + outNode[method](new Context(fact, paths)); } + } + } +}).as(module); + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/parser/constraint/parser.js": +/*!*******************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/parser/constraint/parser.js ***! + \*******************************************************************************/ +/***/ ((module, exports, __nested_webpack_require_3089213__) => { + +/* module decorator */ module = __nested_webpack_require_3089213__.nmd(module); +/* parser generated by jison 0.4.17 */ +/* + Returns a Parser object of the following structure: + + Parser: { + yy: {} + } + + Parser.prototype: { + yy: {}, + trace: function(), + symbols_: {associative list: name ==> number}, + terminals_: {associative list: number ==> name}, + productions_: [...], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), + table: [...], + defaultActions: {...}, + parseError: function(str, hash), + parse: function(input), + + lexer: { + EOF: 1, + parseError: function(str, hash), + setInput: function(input), + input: function(), + unput: function(str), + more: function(), + less: function(n), + pastInput: function(), + upcomingInput: function(), + showPosition: function(), + test_match: function(regex_match_array, rule_index), + next: function(), + lex: function(), + begin: function(condition), + popState: function(), + _currentRules: function(), + topState: function(), + pushState: function(condition), + + options: { + ranges: boolean (optional: true ==> token location info will include a .range[] member) + flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) + backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) }, - modifyFact: function (fact) { - var typeNodes = this.typeNodes, i = typeNodes.length - 1; - for (; i >= 0; i--) { - typeNodes[i].modify(fact); - } - }, + performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), + rules: [...], + conditions: {associative list: name ==> set}, + } + } + + + token location info (@$, _$, etc.): { + first_line: n, + last_line: n, + first_column: n, + last_column: n, + range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) + } + + + the parseError function receives a 'hash' object with these members for lexer and parser errors: { + text: (matched text) + token: (the produced terminal token, if any) + line: (yylineno) + } + while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { + loc: (yylloc) + expected: (string describing the set of expected tokens) + recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) + } +*/ +var parser = (function(){ +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,29],$V1=[1,30],$V2=[1,26],$V3=[1,24],$V4=[1,16],$V5=[1,18],$V6=[1,19],$V7=[1,20],$V8=[1,21],$V9=[1,22],$Va=[5,38,49],$Vb=[1,33],$Vc=[5,36,38,49],$Vd=[5,8,11,12,13,15,17,19,20,21,22,24,25,26,27,28,29,36,38,49],$Ve=[2,2],$Vf=[5,24,25,26,27,28,29,36,38,49],$Vg=[1,42],$Vh=[1,43],$Vi=[1,44],$Vj=[1,45],$Vk=[5,8,11,12,13,15,17,19,20,21,22,24,25,26,27,28,29,31,33,36,38,40,46,49],$Vl=[1,46],$Vm=[1,47],$Vn=[1,48],$Vo=[5,19,20,21,22,24,25,26,27,28,29,36,38,49],$Vp=[1,50],$Vq=[5,8,11,12,13,15,17,19,20,21,22,24,25,26,27,28,29,31,33,36,38,40,43,44,46,48,49],$Vr=[5,17,19,20,21,22,24,25,26,27,28,29,36,38,49],$Vs=[1,55],$Vt=[1,54],$Vu=[5,8,15,17,19,20,21,22,24,25,26,27,28,29,36,38,49],$Vv=[1,56],$Vw=[1,57],$Vx=[1,58],$Vy=[1,87],$Vz=[40,46,49]; +var parser = {trace: function trace() { }, +yy: {}, +symbols_: {"error":2,"expressions":3,"EXPRESSION":4,"EOF":5,"UNARY_EXPRESSION":6,"LITERAL_EXPRESSION":7,"-":8,"!":9,"MULTIPLICATIVE_EXPRESSION":10,"*":11,"/":12,"%":13,"ADDITIVE_EXPRESSION":14,"+":15,"EXPONENT_EXPRESSION":16,"^":17,"RELATIONAL_EXPRESSION":18,"<":19,">":20,"<=":21,">=":22,"EQUALITY_EXPRESSION":23,"==":24,"===":25,"!=":26,"!==":27,"=~":28,"!=~":29,"IN_EXPRESSION":30,"in":31,"ARRAY_EXPRESSION":32,"notIn":33,"OBJECT_EXPRESSION":34,"AND_EXPRESSION":35,"&&":36,"OR_EXPRESSION":37,"||":38,"ARGUMENT_LIST":39,",":40,"IDENTIFIER_EXPRESSION":41,"IDENTIFIER":42,".":43,"[":44,"STRING_EXPRESSION":45,"]":46,"NUMBER_EXPRESSION":47,"(":48,")":49,"STRING":50,"NUMBER":51,"REGEXP_EXPRESSION":52,"REGEXP":53,"BOOLEAN_EXPRESSION":54,"BOOLEAN":55,"NULL_EXPRESSION":56,"NULL":57,"$accept":0,"$end":1}, +terminals_: {2:"error",5:"EOF",8:"-",9:"!",11:"*",12:"/",13:"%",15:"+",17:"^",19:"<",20:">",21:"<=",22:">=",24:"==",25:"===",26:"!=",27:"!==",28:"=~",29:"!=~",31:"in",33:"notIn",36:"&&",38:"||",40:",",42:"IDENTIFIER",43:".",44:"[",46:"]",48:"(",49:")",50:"STRING",51:"NUMBER",53:"REGEXP",55:"BOOLEAN",57:"NULL"}, +productions_: [0,[3,2],[6,1],[6,2],[6,2],[10,1],[10,3],[10,3],[10,3],[14,1],[14,3],[14,3],[16,1],[16,3],[18,1],[18,3],[18,3],[18,3],[18,3],[23,1],[23,3],[23,3],[23,3],[23,3],[23,3],[23,3],[30,1],[30,3],[30,3],[30,3],[30,3],[35,1],[35,3],[37,1],[37,3],[39,1],[39,3],[41,1],[34,1],[34,3],[34,4],[34,4],[34,4],[34,3],[34,4],[45,1],[47,1],[52,1],[54,1],[56,1],[32,2],[32,3],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,3],[4,1]], +performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { +/* this == yyval */ + +var $0 = $$.length - 1; +switch (yystate) { +case 1: +return $$[$0-1]; +break; +case 3: +this.$ = [$$[$0], null, 'unary']; +break; +case 4: +this.$ = [$$[$0], null, 'logicalNot']; +break; +case 6: +this.$ = [$$[$0-2], $$[$0], 'mult']; +break; +case 7: +this.$ = [$$[$0-2], $$[$0], 'div']; +break; +case 8: +this.$ = [$$[$0-2], $$[$0], 'mod']; +break; +case 10: +this.$ = [$$[$0-2], $$[$0], 'plus']; +break; +case 11: +this.$ = [$$[$0-2], $$[$0], 'minus']; +break; +case 13: +this.$ = [$$[$0-2], $$[$0], 'pow']; +break; +case 15: +this.$ = [$$[$0-2], $$[$0], 'lt']; +break; +case 16: +this.$ = [$$[$0-2], $$[$0], 'gt']; +break; +case 17: +this.$ = [$$[$0-2], $$[$0], 'lte']; +break; +case 18: +this.$ = [$$[$0-2], $$[$0], 'gte']; +break; +case 20: +this.$ = [$$[$0-2], $$[$0], 'eq']; +break; +case 21: +this.$ = [$$[$0-2], $$[$0], 'seq']; +break; +case 22: +this.$ = [$$[$0-2], $$[$0], 'neq']; +break; +case 23: +this.$ = [$$[$0-2], $$[$0], 'sneq']; +break; +case 24: +this.$ = [$$[$0-2], $$[$0], 'like']; +break; +case 25: +this.$ = [$$[$0-2], $$[$0], 'notLike']; +break; +case 27: case 29: +this.$ = [$$[$0-2], $$[$0], 'in']; +break; +case 28: case 30: +this.$ = [$$[$0-2], $$[$0], 'notIn']; +break; +case 32: +this.$ = [$$[$0-2], $$[$0], 'and']; +break; +case 34: +this.$ = [$$[$0-2], $$[$0], 'or']; +break; +case 36: +this.$ = [$$[$0-2], $$[$0], 'arguments'] +break; +case 37: +this.$ = [String(yytext), null, 'identifier']; +break; +case 39: +this.$ = [$$[$0-2],$$[$0], 'prop']; +break; +case 40: case 41: case 42: +this.$ = [$$[$0-3],$$[$0-1], 'propLookup']; +break; +case 43: +this.$ = [$$[$0-2], [null, null, 'arguments'], 'function'] +break; +case 44: +this.$ = [$$[$0-3], $$[$0-1], 'function'] +break; +case 45: +this.$ = [String(yytext.replace(/^['|"]|['|"]$/g, '')), null, 'string']; +break; +case 46: +this.$ = [Number(yytext), null, 'number']; +break; +case 47: +this.$ = [yytext, null, 'regexp']; +break; +case 48: +this.$ = [yytext.replace(/^\s+/, '') == 'true', null, 'boolean']; +break; +case 49: +this.$ = [null, null, 'null']; +break; +case 50: +this.$ = [null, null, 'array']; +break; +case 51: +this.$ = [$$[$0-1], null, 'array']; +break; +case 59: +this.$ = [$$[$0-1], null, 'composite'] +break; +} +}, +table: [{3:1,4:2,6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:5,32:15,34:14,35:4,37:3,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{1:[3]},{5:[1,31]},o([5,49],[2,60],{38:[1,32]}),o($Va,[2,33],{36:$Vb}),o($Vc,[2,31]),o($Vc,[2,26],{24:[1,34],25:[1,35],26:[1,36],27:[1,37],28:[1,38],29:[1,39]}),o($Vd,$Ve,{31:[1,40],33:[1,41]}),o($Vf,[2,19],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vk,[2,52]),o($Vk,[2,53]),o($Vk,[2,54]),o($Vk,[2,55]),o($Vk,[2,56]),o($Vk,[2,57],{43:$Vl,44:$Vm,48:$Vn}),o($Vk,[2,58]),{4:49,6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:5,32:15,34:14,35:4,37:3,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vo,[2,14],{17:$Vp}),o($Vk,[2,45]),o($Vk,[2,46]),o($Vk,[2,47]),o($Vk,[2,48]),o($Vk,[2,49]),o($Vq,[2,38]),{7:53,32:15,34:14,39:52,41:23,42:$V2,44:$V3,45:9,46:[1,51],47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vr,[2,12],{8:$Vs,15:$Vt}),o($Vq,[2,37]),o($Vu,[2,9],{11:$Vv,12:$Vw,13:$Vx}),o($Vd,[2,5]),{6:59,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:61,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{1:[2,1]},{6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:5,32:15,34:14,35:62,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:63,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:64,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:65,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:66,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:67,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:68,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:69,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{32:70,34:71,41:23,42:$V2,44:$V3},{32:72,34:73,41:23,42:$V2,44:$V3},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:74,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:75,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:76,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:77,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{41:78,42:$V2},{34:81,41:23,42:$V2,45:79,47:80,50:$V5,51:$V6},{7:53,32:15,34:14,39:83,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,49:[1,82],50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{49:[1,84]},{6:28,7:60,8:$V0,9:$V1,10:27,14:85,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vk,[2,50]),{40:$Vy,46:[1,86]},o($Vz,[2,35]),{6:28,7:60,8:$V0,9:$V1,10:88,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:89,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:90,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:91,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:92,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vd,[2,3]),o($Vd,$Ve),o($Vd,[2,4]),o($Va,[2,34],{36:$Vb}),o($Vc,[2,32]),o($Vf,[2,20],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,21],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,22],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,23],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,24],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,25],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vc,[2,27]),o($Vc,[2,29],{43:$Vl,44:$Vm,48:$Vn}),o($Vc,[2,28]),o($Vc,[2,30],{43:$Vl,44:$Vm,48:$Vn}),o($Vo,[2,15],{17:$Vp}),o($Vo,[2,16],{17:$Vp}),o($Vo,[2,17],{17:$Vp}),o($Vo,[2,18],{17:$Vp}),o($Vq,[2,39]),{46:[1,93]},{46:[1,94]},{43:$Vl,44:$Vm,46:[1,95],48:$Vn},o($Vq,[2,43]),{40:$Vy,49:[1,96]},o($Vk,[2,59]),o($Vr,[2,13],{8:$Vs,15:$Vt}),o($Vk,[2,51]),{7:97,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vu,[2,10],{11:$Vv,12:$Vw,13:$Vx}),o($Vu,[2,11],{11:$Vv,12:$Vw,13:$Vx}),o($Vd,[2,6]),o($Vd,[2,7]),o($Vd,[2,8]),o($Vq,[2,40]),o($Vq,[2,41]),o($Vq,[2,42]),o($Vq,[2,44]),o($Vz,[2,36])], +defaultActions: {31:[2,1]}, +parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + function _parseError (msg, hash) { + this.message = msg; + this.hash = hash; + } + _parseError.prototype = Error; + + throw new _parseError(str, hash); + } +}, +parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer; + sharedState.yy.parser = this; + if (typeof lexer.yylloc == 'undefined') { + lexer.yylloc = {}; + } + var yyloc = lexer.yylloc; + lstack.push(yyloc); + var ranges = lexer.options && lexer.options.ranges; + if (typeof sharedState.yy.parseError === 'function') { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function popStack(n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + _token_stack: + var lex = function () { + var token; + token = lexer.lex() || EOF; + if (typeof token !== 'number') { + token = self.symbols_[token] || token; + } + return token; + }; + var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == 'undefined') { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === 'undefined' || !action.length || !action[0]) { + var errStr = ''; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push('\'' + this.terminals_[p] + '\''); + } + } + if (lexer.showPosition) { + errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; + } else { + errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); + } + this.parseError(errStr, { + text: lexer.match, + token: this.terminals_[symbol] || symbol, + line: lexer.yylineno, + loc: yyloc, + expected: expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer.yytext); + lstack.push(lexer.yylloc); + stack.push(action[1]); + symbol = null; + if (!preErrorSymbol) { + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + if (recovering > 0) { + recovering--; + } + } else { + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== 'undefined') { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; +}}; +/* generated by jison-lex 0.3.4 */ +var lexer = (function(){ +var lexer = ({ + +EOF:1, + +parseError:function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + +// resets the lexer, sets new input +setInput:function (input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ''; + this.conditionStack = ['INITIAL']; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0,0]; + } + this.offset = 0; + return this; + }, + +// consumes and returns one char from the input +input:function () { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + + this._input = this._input.slice(1); + return ch; + }, + +// unshifts one char (or a string) into the input +unput:function (ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + //this.yyleng -= len; + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? + (lines.length === oldLines.length ? this.yylloc.first_column : 0) + + oldLines[oldLines.length - lines.length].length - lines[0].length : + this.yylloc.first_column - len + }; - containsRule: function (name) { - return some(this.terminalNodes, function (n) { - return n.rule.name === name; - }); - }, + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, - dispose: function () { - var typeNodes = this.typeNodes, i = typeNodes.length - 1; - for (; i >= 0; i--) { - typeNodes[i].dispose(); - } - }, +// When called from action, caches matched text and appends it on next action +more:function () { + this._more = true; + return this; + }, - __mergeJoinNodes: function () { - var joinNodes = this.joinNodes; - for (var i = 0; i < joinNodes.length; i++) { - var j1 = joinNodes[i], j2 = joinNodes[i + 1]; - if (j1 && j2 && (j1.constraint && j2.constraint && j1.constraint.equal(j2.constraint))) { - j1.merge(j2); - joinNodes.splice(i + 1, 1); - } - } - }, +// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. +reject:function () { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); - __checkEqual: function (node) { - var constraints = this.constraints, i = constraints.length - 1; - for (; i >= 0; i--) { - var n = constraints[i]; - if (node.equal(n)) { - return n; - } - } - constraints.push(node); - return node; - }, + } + return this; + }, - __createTypeNode: function (rule, pattern) { - var ret = new TypeNode(pattern.get("constraints")[0]); - var constraints = this.typeNodes, i = constraints.length - 1; - for (; i >= 0; i--) { - var n = constraints[i]; - if (ret.equal(n)) { - return n; - } - } - constraints.push(ret); - return ret; - }, +// retain first n characters of the match +less:function (n) { + this.unput(this.match.slice(n)); + }, - __createEqualityNode: function (rule, constraint) { - return this.__checkEqual(new EqualityNode(constraint)).addRule(rule); - }, +// displays already matched input, i.e. for error messages +pastInput:function () { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); + }, - __createPropertyNode: function (rule, constraint) { - return this.__checkEqual(new PropertyNode(constraint)).addRule(rule); - }, +// displays upcoming input, i.e. for error messages +upcomingInput:function () { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20-next.length); + } + return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); + }, - __createAliasNode: function (rule, pattern) { - return this.__checkEqual(new AliasNode(pattern)).addRule(rule); - }, +// displays the character position where the lexing error occurred, i.e. for error messages +showPosition:function () { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, - __createAdapterNode: function (rule, side) { - return (side === "left" ? new LeftAdapterNode() : new RightAdapterNode()).addRule(rule); - }, +// test the lexed token: return FALSE when not a match, otherwise return token +test_match:function (match, indexed_rule) { + var token, + lines, + backup; - __createJoinNode: function (rule, pattern, outNode, side) { - var joinNode; - if (pattern.rightPattern instanceof NotPattern) { - joinNode = new NotNode(); - } else if (pattern.rightPattern instanceof FromExistsPattern) { - joinNode = new ExistsFromNode(pattern.rightPattern, this.workingMemory); - } else if (pattern.rightPattern instanceof ExistsPattern) { - joinNode = new ExistsNode(); - } else if (pattern.rightPattern instanceof FromNotPattern) { - joinNode = new FromNotNode(pattern.rightPattern, this.workingMemory); - } else if (pattern.rightPattern instanceof FromPattern) { - joinNode = new FromNode(pattern.rightPattern, this.workingMemory); - } else if (pattern instanceof CompositePattern && !hasRefernceConstraints(pattern.leftPattern) && !hasRefernceConstraints(pattern.rightPattern)) { - joinNode = new BetaNode(); - this.joinNodes.push(joinNode); - } else { - joinNode = new JoinNode(); - this.joinNodes.push(joinNode); - } - joinNode["__rule__"] = rule; - var parentNode = joinNode; - if (outNode instanceof BetaNode) { - var adapterNode = this.__createAdapterNode(rule, side); - parentNode.addOutNode(adapterNode, pattern); - parentNode = adapterNode; + if (this.options.backtrack_lexer) { + // save context + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); } - parentNode.addOutNode(outNode, pattern); - return joinNode.addRule(rule); - }, + } - __addToNetwork: function (rule, pattern, outNode, side) { - if (pattern instanceof ObjectPattern) { - if (!(pattern instanceof InitialFactPattern) && (!side || side === "left")) { - this.__createBetaNode(rule, new CompositePattern(new InitialFactPattern(), pattern), outNode, side); - } else { - this.__createAlphaNode(rule, pattern, outNode, side); - } - } else if (pattern instanceof CompositePattern) { - this.__createBetaNode(rule, pattern, outNode, side); + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? + lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : + this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + // recover context + for (var k in backup) { + this[k] = backup[k]; } - }, - - __createBetaNode: function (rule, pattern, outNode, side) { - var joinNode = this.__createJoinNode(rule, pattern, outNode, side); - this.__addToNetwork(rule, pattern.rightPattern, joinNode, "right"); - this.__addToNetwork(rule, pattern.leftPattern, joinNode, "left"); - outNode.addParentNode(joinNode); - return joinNode; - }, - + return false; // rule action called reject() implying the next rule should be tested instead. + } + return false; + }, - __createAlphaNode: function (rule, pattern, outNode, side) { - var typeNode, parentNode; - if (!(pattern instanceof FromPattern)) { +// return next match in input +next:function () { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } - var constraints = pattern.get("constraints"); - typeNode = this.__createTypeNode(rule, pattern); - var aliasNode = this.__createAliasNode(rule, pattern); - typeNode.addOutNode(aliasNode, pattern); - aliasNode.addParentNode(typeNode); - parentNode = aliasNode; - var i = constraints.length - 1; - for (; i > 0; i--) { - var constraint = constraints[i], node; - if (constraint instanceof HashConstraint) { - node = this.__createPropertyNode(rule, constraint); - } else if (constraint instanceof ReferenceConstraint) { - outNode.constraint.addConstraint(constraint); - continue; + var token, + match, + tempMatch, + index; + if (!this._more) { + this.yytext = ''; + this.match = ''; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; // rule action called reject() implying a rule MISmatch. } else { - node = this.__createEqualityNode(rule, constraint); + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; } - parentNode.addOutNode(node, pattern); - node.addParentNode(parentNode); - parentNode = node; - } - - if (outNode instanceof BetaNode) { - var adapterNode = this.__createAdapterNode(rule, side); - adapterNode.addParentNode(parentNode); - parentNode.addOutNode(adapterNode, pattern); - parentNode = adapterNode; + } else if (!this.options.flex) { + break; } - outNode.addParentNode(parentNode); - parentNode.addOutNode(outNode, pattern); - return typeNode; } - }, - - print: function () { - forEach(this.terminalNodes, function (t) { - t.print(" "); + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno }); } - } -}).as(exports, "RootNode"); + }, + +// return next match that has a token +lex:function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + +// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) +begin:function begin(condition) { + this.conditionStack.push(condition); + }, + +// pop the previously active lexer condition state off the condition stack +popState:function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, +// produce the lexer rule set which is active for the currently active lexer condition state +_currentRules:function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, +// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available +topState:function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, +// alias for begin(condition) +pushState:function pushState(condition) { + this.begin(condition); + }, +// return the number of states currently on the stack +stateStackSize:function stateStackSize() { + return this.conditionStack.length; + }, +options: {}, +performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { +var YYSTATE=YY_START; +switch($avoiding_name_collisions) { +case 0:return 31; +break; +case 1:return 33; +break; +case 2:return 'from'; +break; +case 3:return 24; +break; +case 4:return 25; +break; +case 5:return 26; +break; +case 6:return 27; +break; +case 7:return 21; +break; +case 8:return 19; +break; +case 9:return 22; +break; +case 10:return 20; +break; +case 11:return 28; +break; +case 12:return 29; +break; +case 13:return 36; +break; +case 14:return 38; +break; +case 15:return 57; +break; +case 16:return 55; +break; +case 17:/* skip whitespace */ +break; +case 18:return 51; +break; +case 19:return 50; +break; +case 20:return 50; +break; +case 21:return 42; +break; +case 22:return 53; +break; +case 23:return 43; +break; +case 24:return 11; +break; +case 25:return 12; +break; +case 26:return 13; +break; +case 27:return 40; +break; +case 28:return 8; +break; +case 29:return 28; +break; +case 30:return 29; +break; +case 31:return 25; +break; +case 32:return 24; +break; +case 33:return 27; +break; +case 34:return 26; +break; +case 35:return 21; +break; +case 36:return 22; +break; +case 37:return 20; +break; +case 38:return 19; +break; +case 39:return 36; +break; +case 40:return 38; +break; +case 41:return 15; +break; +case 42:return 17; +break; +case 43:return 48; +break; +case 44:return 46; +break; +case 45:return 44; +break; +case 46:return 49; +break; +case 47:return 9; +break; +case 48:return 5; +break; +} +}, +rules: [/^(?:\s+in\b)/,/^(?:\s+notIn\b)/,/^(?:\s+from\b)/,/^(?:\s+(eq|EQ)\b)/,/^(?:\s+(seq|SEQ)\b)/,/^(?:\s+(neq|NEQ)\b)/,/^(?:\s+(sneq|SNEQ)\b)/,/^(?:\s+(lte|LTE)\b)/,/^(?:\s+(lt|LT)\b)/,/^(?:\s+(gte|GTE)\b)/,/^(?:\s+(gt|GT)\b)/,/^(?:\s+(like|LIKE)\b)/,/^(?:\s+(notLike|NOT_LIKE)\b)/,/^(?:\s+(and|AND)\b)/,/^(?:\s+(or|OR)\b)/,/^(?:\s*(null)\b)/,/^(?:\s*(true|false)\b)/,/^(?:\s+)/,/^(?:-?[0-9]+(?:\.[0-9]+)?\b)/,/^(?:'[^']*')/,/^(?:"[^"]*")/,/^(?:([a-zA-Z_$][0-9a-zA-Z_$]*))/,/^(?:^\/((?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4})(?!\w))/,/^(?:\.)/,/^(?:\*)/,/^(?:\/)/,/^(?:\%)/,/^(?:,)/,/^(?:-)/,/^(?:=~)/,/^(?:!=~)/,/^(?:===)/,/^(?:==)/,/^(?:!==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:&&)/,/^(?:\|\|)/,/^(?:\+)/,/^(?:\^)/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:\))/,/^(?:!)/,/^(?:$)/], +conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"inclusive":true}} +}); +return lexer; +})(); +parser.lexer = lexer; +function Parser () { + this.yy = {}; +} +Parser.prototype = parser;parser.Parser = Parser; +return new Parser; +})(); +if (true) { +exports.parser = parser; +exports.Parser = parser.Parser; +exports.parse = function () { return parser.parse.apply(parser, arguments); }; +exports.main = function commonjsMain(args) { + if (!args[1]) { + console.log('Usage: '+args[0]+' FILE'); + process.exit(1); + } + var source = __nested_webpack_require_3089213__(/*! fs */ "fs").readFileSync(__nested_webpack_require_3089213__(/*! path */ "path").normalize(args[1]), "utf8"); + return exports.parser.parse(source); +}; +if ( true && __nested_webpack_require_3089213__.c[__nested_webpack_require_3089213__.s] === module) { + exports.main(process.argv.slice(1)); +} +} /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/joinNode.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/joinNode.js ***! - \*****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/nools/lib/parser/index.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/parser/index.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_3121853__) => { + +(function () { + "use strict"; + var constraintParser = __nested_webpack_require_3121853__(/*! ./constraint/parser */ "./build/cht-core-4-6/node_modules/nools/lib/parser/constraint/parser.js"), + noolParser = __nested_webpack_require_3121853__(/*! ./nools/nool.parser */ "./build/cht-core-4-6/node_modules/nools/lib/parser/nools/nool.parser.js"); + + exports.parseConstraint = function (expression) { + try { + return constraintParser.parse(expression); + } catch (e) { + throw new Error("Invalid expression '" + expression + "'"); + } + }; -/* module decorator */ module = __webpack_require__.nmd(module); -var BetaNode = __webpack_require__(/*! ./betaNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/betaNode.js"), - JoinReferenceNode = __webpack_require__(/*! ./joinReferenceNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/joinReferenceNode.js"); + exports.parseRuleSet = function (source, file) { + return noolParser.parse(source, file); + }; +})(); -BetaNode.extend({ +/***/ }), - instance: { - constructor: function () { - this._super(arguments); - this.constraint = new JoinReferenceNode(this.leftTuples, this.rightTuples); - }, +/***/ "./build/cht-core-4-6/node_modules/nools/lib/parser/nools/nool.parser.js": +/*!*******************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/parser/nools/nool.parser.js ***! + \*******************************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_3122945__) => { - nodeType: "JoinNode", +"use strict"; - propagateFromLeft: function (context, rm) { - var mr; - if ((mr = this.constraint.match(context, rm)).isMatch) { - this.__propagate("assert", this.__addToMemoryMatches(rm, context, context.clone(null, null, mr))); - } - return this; - }, - propagateFromRight: function (context, lm) { - var mr; - if ((mr = this.constraint.match(lm, context)).isMatch) { - this.__propagate("assert", this.__addToMemoryMatches(context, lm, context.clone(null, null, mr))); - } - return this; - }, +var tokens = __nested_webpack_require_3122945__(/*! ./tokens.js */ "./build/cht-core-4-6/node_modules/nools/lib/parser/nools/tokens.js"), + extd = __nested_webpack_require_3122945__(/*! ../../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + keys = extd.hash.keys, + utils = __nested_webpack_require_3122945__(/*! ./util.js */ "./build/cht-core-4-6/node_modules/nools/lib/parser/nools/util.js"); - propagateAssertModifyFromLeft: function (context, rightMatches, rm) { - var factId = rm.hashCode, mr; - if (factId in rightMatches) { - mr = this.constraint.match(context, rm); - var mrIsMatch = mr.isMatch; - if (!mrIsMatch) { - this.__propagate("retract", rightMatches[factId].clone()); - } else { - this.__propagate("modify", this.__addToMemoryMatches(rm, context, context.clone(null, null, mr))); - } - } else { - this.propagateFromLeft(context, rm); - } - }, +var parse = function (src, keywords, context) { + var orig = src; + src = src.replace(/\/\/(.*)/g, "").replace(/\r\n|\r|\n/g, " "); - propagateAssertModifyFromRight: function (context, leftMatches, lm) { - var factId = lm.hashCode, mr; - if (factId in leftMatches) { - mr = this.constraint.match(lm, context); - var mrIsMatch = mr.isMatch; - if (!mrIsMatch) { - this.__propagate("retract", leftMatches[factId].clone()); - } else { - this.__propagate("modify", this.__addToMemoryMatches(context, lm, context.clone(null, null, mr))); + var blockTypes = new RegExp("^(" + keys(keywords).join("|") + ")"), index; + while (src && (index = utils.findNextTokenIndex(src)) !== -1) { + src = src.substr(index); + var blockType = src.match(blockTypes); + if (blockType !== null) { + blockType = blockType[1]; + if (blockType in keywords) { + try { + src = keywords[blockType](src, context, parse).replace(/^\s*|\s*$/g, ""); + } catch (e) { + throw new Error("Invalid " + blockType + " definition \n" + e.message + "; \nstarting at : " + orig); } } else { - this.propagateFromRight(context, lm); + throw new Error("Unknown token" + blockType); } + } else { + throw new Error("Error parsing " + src); } } - -}).as(module); - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/joinReferenceNode.js": -/*!**************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/joinReferenceNode.js ***! - \**************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -/* module decorator */ module = __webpack_require__.nmd(module); -var Node = __webpack_require__(/*! ./node */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/node.js"), - constraints = __webpack_require__(/*! ../constraint */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/constraint.js"), - ReferenceEqualityConstraint = constraints.ReferenceEqualityConstraint; - -var DEFUALT_CONSTRAINT = { - isDefault: true, - assert: function () { - return true; - }, - - equal: function () { - return false; - } }; -var inversions = { - "gt": "lte", - "gte": "lte", - "lt": "gte", - "lte": "gte", - "eq": "eq", - "neq": "neq" +exports.parse = function (src, file) { + var context = {define: [], rules: [], scope: [], loaded: [], file: file}; + parse(src, tokens, context); + return context; }; -function normalizeRightIndexConstraint(rightIndex, indexes, op) { - if (rightIndex === indexes[1]) { - op = inversions[op]; - } - return op; -} -function normalizeLeftIndexConstraint(leftIndex, indexes, op) { - if (leftIndex === indexes[1]) { - op = inversions[op]; - } - return op; -} -Node.extend({ +/***/ }), - instance: { +/***/ "./build/cht-core-4-6/node_modules/nools/lib/parser/nools/tokens.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/parser/nools/tokens.js ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3124864__) => { - constraint: DEFUALT_CONSTRAINT, +"use strict"; - constructor: function (leftMemory, rightMemory) { - this._super(arguments); - this.constraint = DEFUALT_CONSTRAINT; - this.constraintAssert = DEFUALT_CONSTRAINT.assert; - this.rightIndexes = []; - this.leftIndexes = []; - this.constraintLength = 0; - this.leftMemory = leftMemory; - this.rightMemory = rightMemory; - }, - addConstraint: function (constraint) { - if (constraint instanceof ReferenceEqualityConstraint) { - var identifiers = constraint.getIndexableProperties(); - var alias = constraint.get("alias"); - if (identifiers.length === 2 && alias) { - var leftIndex, rightIndex, i = -1, indexes = []; - while (++i < 2) { - var index = identifiers[i]; - if (index.match(new RegExp("^" + alias + "(\\.?)")) === null) { - indexes.push(index); - leftIndex = index; - } else { - indexes.push(index); - rightIndex = index; - } - } - if (leftIndex && rightIndex) { - var leftOp = normalizeLeftIndexConstraint(leftIndex, indexes, constraint.op), - rightOp = normalizeRightIndexConstraint(rightIndex, indexes, constraint.op); - this.rightMemory.addIndex(rightIndex, leftIndex, rightOp); - this.leftMemory.addIndex(leftIndex, rightIndex, leftOp); - } - } - } - if (this.constraint.isDefault) { - this.constraint = constraint; - this.isDefault = false; - } else { - this.constraint = this.constraint.merge(constraint); - } - this.constraintAssert = this.constraint.assert; +var utils = __nested_webpack_require_3124864__(/*! ./util.js */ "./build/cht-core-4-6/node_modules/nools/lib/parser/nools/util.js"), + fs = __nested_webpack_require_3124864__(/*! fs */ "fs"), + extd = __nested_webpack_require_3124864__(/*! ../../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + filter = extd.filter, + indexOf = extd.indexOf, + predicates = ["not", "or", "exists"], + predicateRegExp = new RegExp("^(" + predicates.join("|") + ") *\\((.*)\\)$", "m"), + predicateBeginExp = new RegExp(" *(" + predicates.join("|") + ") *\\(", "g"); - }, +var isWhiteSpace = function (str) { + return str.replace(/[\s|\n|\r|\t]/g, "").length === 0; +}; - equal: function (constraint) { - return this.constraint.equal(constraint.constraint); - }, +var joinFunc = function (m, str) { + return "; " + str; +}; - isMatch: function (lc, rc) { - return this.constraintAssert(lc.factHash, rc.factHash); - }, +var splitRuleLineByPredicateExpressions = function (ruleLine) { + var str = ruleLine.replace(/,\s*(\$?\w+\s*:)/g, joinFunc); + var parts = filter(str.split(predicateBeginExp), function (str) { + return str !== ""; + }), + l = parts.length, ret = []; - match: function (lc, rc) { - var ret = {isMatch: false}; - if (this.constraintAssert(lc.factHash, rc.factHash)) { - ret = lc.match.merge(rc.match); + if (l) { + for (var i = 0; i < l; i++) { + if (indexOf(predicates, parts[i]) !== -1) { + ret.push([parts[i], "(", parts[++i].replace(/, *$/, "")].join("")); + } else { + ret.push(parts[i].replace(/, *$/, "")); } - return ret; } - + } else { + return str; } + return ret.join(";"); +}; -}).as(module); - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/leftAdapterNode.js": -/*!************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/leftAdapterNode.js ***! - \************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -/* module decorator */ module = __webpack_require__.nmd(module); -var Node = __webpack_require__(/*! ./adapterNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/adapterNode.js"); - -Node.extend({ - instance: { - propagateAssert: function (context) { - this.__propagate("assertLeft", context); - }, - - propagateRetract: function (context) { - this.__propagate("retractLeft", context); - }, - - propagateResolve: function (context) { - this.__propagate("retractResolve", context); - }, +var ruleTokens = { - propagateModify: function (context) { - this.__propagate("modifyLeft", context); - }, + salience: (function () { + var salienceRegexp = /^(salience|priority)\s*:\s*(-?\d+)\s*[,;]?/; + return function (src, context) { + if (salienceRegexp.test(src)) { + var parts = src.match(salienceRegexp), + priority = parseInt(parts[2], 10); + if (!isNaN(priority)) { + context.options.priority = priority; + } else { + throw new Error("Invalid salience/priority " + parts[2]); + } + return src.replace(parts[0], ""); + } else { + throw new Error("invalid format"); + } + }; + })(), - retractResolve: function (match) { - this.__propagate("retractResolve", match); - }, + agendaGroup: (function () { + var agendaGroupRegexp = /^(agenda-group|agendaGroup)\s*:\s*([a-zA-Z_$][0-9a-zA-Z_$]*|"[^"]*"|'[^']*')\s*[,;]?/; + return function (src, context) { + if (agendaGroupRegexp.test(src)) { + var parts = src.match(agendaGroupRegexp), + agendaGroup = parts[2]; + if (agendaGroup) { + context.options.agendaGroup = agendaGroup.replace(/^["']|["']$/g, ""); + } else { + throw new Error("Invalid agenda-group " + parts[2]); + } + return src.replace(parts[0], ""); + } else { + throw new Error("invalid format"); + } + }; + })(), - dispose: function (context) { - this.propagateDispose(context); - }, + autoFocus: (function () { + var autoFocusRegexp = /^(auto-focus|autoFocus)\s*:\s*(true|false)\s*[,;]?/; + return function (src, context) { + if (autoFocusRegexp.test(src)) { + var parts = src.match(autoFocusRegexp), + autoFocus = parts[2]; + if (autoFocus) { + context.options.autoFocus = autoFocus === "true" ? true : false; + } else { + throw new Error("Invalid auto-focus " + parts[2]); + } + return src.replace(parts[0], ""); + } else { + throw new Error("invalid format"); + } + }; + })(), - toString: function () { - return "LeftAdapterNode " + this.__count; - } - } + "agenda-group": function () { + return this.agendaGroup.apply(this, arguments); + }, -}).as(module); + "auto-focus": function () { + return this.autoFocus.apply(this, arguments); + }, -/***/ }), + priority: function () { + return this.salience.apply(this, arguments); + }, -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/helpers.js": -/*!*********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/helpers.js ***! - \*********************************************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { + when: (function () { + /*jshint evil:true*/ -exports.getMemory = (function () { + var ruleRegExp = /^(\$?\w+) *: *(\w+)(.*)/; - var pPush = Array.prototype.push, NPL = 0, EMPTY_ARRAY = [], NOT_POSSIBLES_HASH = {}, POSSIBLES_HASH = {}, PL = 0; + var constraintRegExp = /(\{ *(?:["']?\$?\w+["']?\s*:\s*["']?\$?\w+["']? *(?:, *["']?\$?\w+["']?\s*:\s*["']?\$?\w+["']?)*)+ *\})/; + var fromRegExp = /(\bfrom\s+.*)/; + var parseRules = function (str) { + var rules = []; + var ruleLines = str.split(";"), l = ruleLines.length, ruleLine; + for (var i = 0; i < l && (ruleLine = ruleLines[i].replace(/^\s*|\s*$/g, "").replace(/\n/g, "")); i++) { + if (!isWhiteSpace(ruleLine)) { + var rule = []; + if (predicateRegExp.test(ruleLine)) { + var m = ruleLine.match(predicateRegExp); + var pred = m[1].replace(/^\s*|\s*$/g, ""); + rule.push(pred); + ruleLine = m[2].replace(/^\s*|\s*$/g, ""); + if (pred === "or") { + rule = rule.concat(parseRules(splitRuleLineByPredicateExpressions(ruleLine))); + rules.push(rule); + continue; + } - function mergePossibleTuples(ret, a, l) { - var val, j = 0, i = -1; - if (PL < l) { - while (PL && ++i < l) { - if (POSSIBLES_HASH[(val = a[i]).hashCode]) { - ret[j++] = val; - PL--; + } + var parts = ruleLine.match(ruleRegExp); + if (parts && parts.length) { + rule.push(parts[2], parts[1]); + var constraints = parts[3].replace(/^\s*|\s*$/g, ""); + var hashParts = constraints.match(constraintRegExp), from = null, fromMatch; + if (hashParts) { + var hash = hashParts[1], constraint = constraints.replace(hash, ""); + if (fromRegExp.test(constraint)) { + fromMatch = constraint.match(fromRegExp); + from = fromMatch[0]; + constraint = constraint.replace(fromMatch[0], ""); + } + if (constraint) { + rule.push(constraint.replace(/^\s*|\s*$/g, "")); + } + if (hash) { + rule.push(eval("(" + hash.replace(/(\$?\w+)\s*:\s*(\$?\w+)/g, '"$1" : "$2"') + ")")); + } + } else if (constraints && !isWhiteSpace(constraints)) { + if (fromRegExp.test(constraints)) { + fromMatch = constraints.match(fromRegExp); + from = fromMatch[0]; + constraints = constraints.replace(fromMatch[0], ""); + } + rule.push(constraints); + } + if (from) { + rule.push(from); + } + rules.push(rule); + } else { + throw new Error("Invalid constraint " + ruleLine); + } } } - } else { - pPush.apply(ret, a); - } - PL = 0; - POSSIBLES_HASH = {}; - } + return rules; + }; + return function (orig, context) { + var src = orig.replace(/^when\s*/, "").replace(/^\s*|\s*$/g, ""); + if (utils.findNextToken(src) === "{") { + var body = utils.getTokensBetween(src, "{", "}", true).join(""); + src = src.replace(body, ""); + context.constraints = parseRules(body.replace(/^\{\s*|\}\s*$/g, "")); + return src; + } else { + throw new Error("unexpected token : expected : '{' found : '" + utils.findNextToken(src) + "'"); + } + }; + })(), - function mergeNotPossibleTuples(ret, a, l) { - var val, j = 0, i = -1; - if (NPL < l) { - while (++i < l) { - if (!NPL) { - ret[j++] = a[i]; - } else if (!NOT_POSSIBLES_HASH[(val = a[i]).hashCode]) { - ret[j++] = val; + then: (function () { + return function (orig, context) { + if (!context.action) { + var src = orig.replace(/^then\s*/, "").replace(/^\s*|\s*$/g, ""); + if (utils.findNextToken(src) === "{") { + var body = utils.getTokensBetween(src, "{", "}", true).join(""); + src = src.replace(body, ""); + if (!context.action) { + context.action = body.replace(/^\{\s*|\}\s*$/g, ""); + } + if (!isWhiteSpace(src)) { + throw new Error("Error parsing then block " + orig); + } + return src; } else { - NPL--; + throw new Error("unexpected token : expected : '{' found : '" + utils.findNextToken(src) + "'"); } + } else { + throw new Error("action already defined for rule" + context.name); } - } - NPL = 0; - NOT_POSSIBLES_HASH = {}; - } - function mergeBothTuples(ret, a, l) { - if (PL === l) { - mergeNotPossibles(ret, a, l); - } else if (NPL < l) { - var val, j = 0, i = -1, hashCode; - while (++i < l) { - if (!NOT_POSSIBLES_HASH[(hashCode = (val = a[i]).hashCode)] && POSSIBLES_HASH[hashCode]) { - ret[j++] = val; - } - } + }; + })() +}; + +var topLevelTokens = { + "/": function (orig) { + if (orig.match(/^\/\*/)) { + // Block Comment parse + return orig.replace(/\/\*.*?\*\//, ""); + } else { + return orig; } - NPL = 0; - NOT_POSSIBLES_HASH = {}; - PL = 0; - POSSIBLES_HASH = {}; - } + }, - function mergePossiblesAndNotPossibles(a, l) { - var ret = EMPTY_ARRAY; - if (l) { - if (NPL || PL) { - ret = []; - if (!NPL) { - mergePossibleTuples(ret, a, l); - } else if (!PL) { - mergeNotPossibleTuples(ret, a, l); - } else { - mergeBothTuples(ret, a, l); - } + "define": function (orig, context) { + var src = orig.replace(/^define\s*/, ""); + var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*)/); + if (name) { + src = src.replace(name[0], "").replace(/^\s*|\s*$/g, ""); + if (utils.findNextToken(src) === "{") { + name = name[1]; + var body = utils.getTokensBetween(src, "{", "}", true).join(""); + src = src.replace(body, ""); + //should + context.define.push({name: name, properties: "(" + body + ")"}); + return src; } else { - ret = a; + throw new Error("unexpected token : expected : '{' found : '" + utils.findNextToken(src) + "'"); } + } else { + throw new Error("missing name"); } - return ret; - } + }, - function getRangeTuples(op, currEntry, val) { - var ret; - if (op === "gt") { - ret = currEntry.findGT(val); - } else if (op === "gte") { - ret = currEntry.findGTE(val); - } else if (op === "lt") { - ret = currEntry.findLT(val); - } else if (op === "lte") { - ret = currEntry.findLTE(val); + "import": function (orig, context, parse) { + if (typeof window !== 'undefined') { + throw new Error("import cannot be used in a browser"); } - return ret; - } - - function mergeNotPossibles(tuples, tl) { - if (tl) { - var j = -1, hashCode; - while (++j < tl) { - hashCode = tuples[j].hashCode; - if (!NOT_POSSIBLES_HASH[hashCode]) { - NOT_POSSIBLES_HASH[hashCode] = true; - NPL++; + var src = orig.replace(/^import\s*/, ""); + if (utils.findNextToken(src) === "(") { + var file = utils.getParamList(src); + src = src.replace(file, "").replace(/^\s*|\s*$/g, ""); + utils.findNextToken(src) === ";" && (src = src.replace(/\s*;/, "")); + file = file.replace(/[\(|\)]/g, "").split(","); + if (file.length === 1) { + file = utils.resolve(context.file || process.cwd(), file[0].replace(/["|']/g, "")); + if (indexOf(context.loaded, file) === -1) { + var origFile = context.file; + context.file = file; + parse(fs.readFileSync(file, "utf8"), topLevelTokens, context); + context.loaded.push(file); + context.file = origFile; } + return src; + } else { + throw new Error("import accepts a single file"); } + } else { + throw new Error("unexpected token : expected : '(' found : '" + utils.findNextToken(src) + "'"); } - } - function mergePossibles(tuples, tl) { - if (tl) { - var j = -1, hashCode; - while (++j < tl) { - hashCode = tuples[j].hashCode; - if (!POSSIBLES_HASH[hashCode]) { - POSSIBLES_HASH[hashCode] = true; - PL++; + }, + + //define a global + "global": function (orig, context) { + var src = orig.replace(/^global\s*/, ""); + var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*\s*)/); + if (name) { + src = src.replace(name[0], "").replace(/^\s*|\s*$/g, ""); + if (utils.findNextToken(src) === "=") { + name = name[1].replace(/^\s+|\s+$/g, ''); + var fullbody = utils.getTokensBetween(src, "=", ";", true).join(""); + var body = fullbody.substring(1, fullbody.length - 1); + body = body.replace(/^\s+|\s+$/g, ''); + if (/^require\(/.test(body)) { + var file = utils.getParamList(body.replace("require")).replace(/[\(|\)]/g, "").split(","); + if (file.length === 1) { + //handle relative require calls + file = file[0].replace(/["|']/g, ""); + body = ["require('", utils.resolve(context.file || process.cwd(), file) , "')"].join(""); + } } + context.scope.push({name: name, body: body}); + src = src.replace(fullbody, ""); + return src; + } else { + throw new Error("unexpected token : expected : '=' found : '" + utils.findNextToken(src) + "'"); } + } else { + throw new Error("missing name"); } - } + }, - return function _getMemory(entry, factHash, indexes) { - var i = -1, l = indexes.length, - ret = entry.tuples, - rl = ret.length, - intersected = false, - tables = entry.tables, - index, val, op, nextEntry, currEntry, tuples, tl; - while (++i < l && rl) { - index = indexes[i]; - val = index[3](factHash); - op = index[4]; - currEntry = tables[index[0]]; - if (op === "eq" || op === "seq") { - if ((nextEntry = currEntry.get(val))) { - rl = (ret = (entry = nextEntry).tuples).length; - tables = nextEntry.tables; + //define a function + "function": function (orig, context) { + var src = orig.replace(/^function\s*/, ""); + //parse the function name + var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*)\s*/); + if (name) { + src = src.replace(name[0], ""); + if (utils.findNextToken(src) === "(") { + name = name[1]; + var params = utils.getParamList(src); + src = src.replace(params, "").replace(/^\s*|\s*$/g, ""); + if (utils.findNextToken(src) === "{") { + var body = utils.getTokensBetween(src, "{", "}", true).join(""); + src = src.replace(body, ""); + //should + context.scope.push({name: name, body: "function" + params + body}); + return src; } else { - rl = (ret = EMPTY_ARRAY).length; - } - } else if (op === "neq" || op === "sneq") { - if ((nextEntry = currEntry.get(val))) { - tl = (tuples = nextEntry.tuples).length; - mergeNotPossibles(tuples, tl); + throw new Error("unexpected token : expected : '{' found : '" + utils.findNextToken(src) + "'"); } - } else if (!intersected) { - rl = (ret = getRangeTuples(op, currEntry, val)).length; - intersected = true; - } else if ((tl = (tuples = getRangeTuples(op, currEntry, val)).length)) { - mergePossibles(tuples, tl); } else { - ret = tuples; - rl = tl; + throw new Error("unexpected token : expected : '(' found : '" + utils.findNextToken(src) + "'"); } + } else { + throw new Error("missing name"); } - return mergePossiblesAndNotPossibles(ret, rl); - }; -}()); - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/leftMemory.js": -/*!************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/leftMemory.js ***! - \************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -/* module decorator */ module = __webpack_require__.nmd(module); -var Memory = __webpack_require__(/*! ./memory */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/memory.js"); - -Memory.extend({ - - instance: { + }, - getLeftMemory: function (tuple) { - return this.getMemory(tuple); + "rule": function (orig, context, parse) { + var src = orig.replace(/^rule\s*/, ""); + var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*|"[^"]*"|'[^']*')/); + if (name) { + src = src.replace(name[0], "").replace(/^\s*|\s*$/g, ""); + if (utils.findNextToken(src) === "{") { + name = name[1].replace(/^["']|["']$/g, ""); + var rule = {name: name, options: {}, constraints: null, action: null}; + var body = utils.getTokensBetween(src, "{", "}", true).join(""); + src = src.replace(body, ""); + parse(body.replace(/^\{\s*|\}\s*$/g, ""), ruleTokens, rule); + context.rules.push(rule); + return src; + } else { + throw new Error("unexpected token : expected : '{' found : '" + utils.findNextToken(src) + "'"); + } + } else { + throw new Error("missing name"); } - } -}).as(module); + } +}; +module.exports = topLevelTokens; -/***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/memory.js": -/*!********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/memory.js ***! - \********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -/* module decorator */ module = __webpack_require__.nmd(module); -var extd = __webpack_require__(/*! ../../extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - plucker = extd.plucker, - declare = extd.declare, - getMemory = __webpack_require__(/*! ./helpers */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/helpers.js").getMemory, - Table = __webpack_require__(/*! ./table */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/table.js"), - TupleEntry = __webpack_require__(/*! ./tupleEntry */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/tupleEntry.js"); +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/nools/lib/parser/nools/util.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/parser/nools/util.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_3139718__) => { -var id = 0; -declare({ +"use strict"; - instance: { - length: 0, - constructor: function () { - this.head = null; - this.tail = null; - this.indexes = []; - this.tables = new TupleEntry(null, new Table(), false); - }, +var path = __nested_webpack_require_3139718__(/*! path */ "path"); +var WHITE_SPACE_REG = /[\s|\n|\r|\t]/, + pathSep = path.sep || ( process.platform === 'win32' ? '\\' : '/' ); - push: function (data) { - var tail = this.tail, head = this.head, node = {data: data, tuples: [], hashCode: id++, prev: tail, next: null}; - if (tail) { - this.tail.next = node; - } - this.tail = node; - if (!head) { - this.head = node; - } - this.length++; - this.__index(node); - this.tables.addNode(node); - return node; - }, +var TOKEN_INVERTS = { + "{": "}", + "}": "{", + "(": ")", + ")": "(", + "[": "]" +}; - remove: function (node) { - if (node.prev) { - node.prev.next = node.next; - } else { - this.head = node.next; - } - if (node.next) { - node.next.prev = node.prev; +var getTokensBetween = exports.getTokensBetween = function (str, start, stop, includeStartEnd) { + var depth = 0, ret = []; + if (!start) { + start = TOKEN_INVERTS[stop]; + depth = 1; + } + if (!stop) { + stop = TOKEN_INVERTS[start]; + } + str = Object(str); + var startPushing = false, token, cursor = 0, found = false; + while ((token = str.charAt(cursor++))) { + if (token === start) { + depth++; + if (!startPushing) { + startPushing = true; + if (includeStartEnd) { + ret.push(token); + } } else { - this.tail = node.prev; - } - this.tables.removeNode(node); - this.__removeFromIndex(node); - this.length--; - }, - - forEach: function (cb) { - var head = {next: this.head}; - while ((head = head.next)) { - cb(head.data); + ret.push(token); } - }, - - toArray: function () { - return this.tables.tuples.slice(); - }, - - clear: function () { - this.head = this.tail = null; - this.length = 0; - this.clearIndexes(); - }, - - clearIndexes: function () { - this.tables = {}; - this.indexes.length = 0; - }, - - __index: function (node) { - var data = node.data, - factHash = data.factHash, - indexes = this.indexes, - entry = this.tables, - i = -1, l = indexes.length, - tuples, index, val, path, tables, currEntry, prevLookup; - while (++i < l) { - index = indexes[i]; - val = index[2](factHash); - path = index[0]; - tables = entry.tables; - if (!(tuples = (currEntry = tables[path] || (tables[path] = new Table())).get(val))) { - tuples = new TupleEntry(val, currEntry, true); - currEntry.set(val, tuples); - } - if (currEntry !== prevLookup) { - node.tuples.push(tuples.addNode(node)); - } - prevLookup = currEntry; - if (index[4] === "eq") { - entry = tuples; + } else if (token === stop && cursor) { + depth--; + if (depth === 0) { + if (includeStartEnd) { + ret.push(token); } + found = true; + break; } - }, - - __removeFromIndex: function (node) { - var tuples = node.tuples, i = tuples.length; - while (--i >= 0) { - tuples[i].removeNode(node); - } - node.tuples.length = 0; - }, - - getMemory: function (tuple) { - var ret; - if (!this.length) { - ret = []; - } else { - ret = getMemory(this.tables, tuple.factHash, this.indexes); - } - return ret; - }, - - __createIndexTree: function () { - var table = this.tables.tables = {}; - var indexes = this.indexes; - table[indexes[0][0]] = new Table(); - }, - - - addIndex: function (primary, lookup, op) { - this.indexes.push([primary, lookup, plucker(primary), plucker(lookup), op || "eq"]); - this.indexes.sort(function (a, b) { - var aOp = a[4], bOp = b[4]; - return aOp === bOp ? 0 : aOp > bOp ? 1 : aOp === bOp ? 0 : -1; - }); - this.__createIndexTree(); - + ret.push(token); + } else if (startPushing) { + ret.push(token); } - } + if (!found) { + throw new Error("Unable to match " + start + " in " + str); + } + return ret; +}; -}).as(module); - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/rightMemory.js": -/*!*************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/rightMemory.js ***! - \*************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -/* module decorator */ module = __webpack_require__.nmd(module); -var Memory = __webpack_require__(/*! ./memory */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/memory.js"); +exports.getParamList = function (str) { + return getTokensBetween(str, "(", ")", true).join(""); +}; -Memory.extend({ +exports.resolve = function (from, to) { + if (process.platform === 'win32') { + to = to.replace(/\//g, '\\'); + } + if (path.extname(from) !== '') { + from = path.dirname(from); + } + if (to.split(pathSep).length === 1) { + return to; + } + return path.resolve(from, to).replace(/\\/g, '/'); - instance: { +}; - getRightMemory: function (tuple) { - return this.getMemory(tuple); +var findNextTokenIndex = exports.findNextTokenIndex = function (str, startIndex, endIndex) { + startIndex = startIndex || 0; + endIndex = endIndex || str.length; + var ret = -1, l = str.length; + if (!endIndex || endIndex > l) { + endIndex = l; + } + for (; startIndex < endIndex; startIndex++) { + var c = str.charAt(startIndex); + if (!WHITE_SPACE_REG.test(c)) { + ret = startIndex; + break; } } + return ret; +}; -}).as(module); +exports.findNextToken = function (str, startIndex, endIndex) { + return str.charAt(findNextTokenIndex(str, startIndex, endIndex)); +}; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/table.js": -/*!*******************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/table.js ***! - \*******************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -/* module decorator */ module = __webpack_require__.nmd(module); -var extd = __webpack_require__(/*! ../../extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - pPush = Array.prototype.push, - HashTable = extd.HashTable, - AVLTree = extd.AVLTree; +/***/ "./build/cht-core-4-6/node_modules/nools/lib/pattern.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/pattern.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_3142554__) => { -function compare(a, b) { - /*jshint eqeqeq: false*/ - a = a.key; - b = b.key; - var ret; - if (a == b) { - ret = 0; - } else if (a > b) { - ret = 1; - } else if (a < b) { - ret = -1; - } else { - ret = 1; - } - return ret; -} +"use strict"; -function compareGT(v1, v2) { - return compare(v1, v2) === 1; -} -function compareGTE(v1, v2) { - return compare(v1, v2) !== -1; -} +var extd = __nested_webpack_require_3142554__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + isEmpty = extd.isEmpty, + merge = extd.merge, + forEach = extd.forEach, + declare = extd.declare, + constraintMatcher = __nested_webpack_require_3142554__(/*! ./constraintMatcher */ "./build/cht-core-4-6/node_modules/nools/lib/constraintMatcher.js"), + constraint = __nested_webpack_require_3142554__(/*! ./constraint */ "./build/cht-core-4-6/node_modules/nools/lib/constraint.js"), + EqualityConstraint = constraint.EqualityConstraint, + FromConstraint = constraint.FromConstraint; -function compareLT(v1, v2) { - return compare(v1, v2) === -1; -} -function compareLTE(v1, v2) { - return compare(v1, v2) !== 1; -} +var id = 0; +var Pattern = declare({}); -var STACK = [], - VALUE = {key: null}; -function traverseInOrder(tree, key, comparator) { - VALUE.key = key; - var ret = []; - var i = 0, current = tree.__root, v; - while (true) { - if (current) { - current = (STACK[i++] = current).left; - } else { - if (i > 0) { - v = (current = STACK[--i]).data; - if (comparator(v, VALUE)) { - pPush.apply(ret, v.value.tuples); - current = current.right; - } else { - break; - } +var ObjectPattern = Pattern.extend({ + instance: { + constructor: function (type, alias, conditions, store, options) { + options = options || {}; + this.id = id++; + this.type = type; + this.alias = alias; + this.conditions = conditions; + this.pattern = options.pattern; + var constraints = [new constraint.ObjectConstraint(type)]; + var constrnts = constraintMatcher.toConstraints(conditions, merge({alias: alias}, options)); + if (constrnts.length) { + constraints = constraints.concat(constrnts); } else { - break; + var cnstrnt = new constraint.TrueConstraint(); + constraints.push(cnstrnt); } - } - } - STACK.length = 0; - return ret; -} - -function traverseReverseOrder(tree, key, comparator) { - VALUE.key = key; - var ret = []; - var i = 0, current = tree.__root, v; - while (true) { - if (current) { - current = (STACK[i++] = current).right; - } else { - if (i > 0) { - v = (current = STACK[--i]).data; - if (comparator(v, VALUE)) { - pPush.apply(ret, v.value.tuples); - current = current.left; - } else { - break; - } - } else { - break; + if (store && !isEmpty(store)) { + var atm = new constraint.HashConstraint(store); + constraints.push(atm); } - } - } - STACK.length = 0; - return ret; -} -AVLTree.extend({ - instance: { - - constructor: function () { - this._super([ - { - compare: compare - } - ]); - this.gtCache = new HashTable(); - this.gteCache = new HashTable(); - this.ltCache = new HashTable(); - this.lteCache = new HashTable(); - this.hasGTCache = false; - this.hasGTECache = false; - this.hasLTCache = false; - this.hasLTECache = false; + forEach(constraints, function (constraint) { + constraint.set("alias", alias); + }); + this.constraints = constraints; }, - clearCache: function () { - this.hasGTCache && this.gtCache.clear() && (this.hasGTCache = false); - this.hasGTECache && this.gteCache.clear() && (this.hasGTECache = false); - this.hasLTCache && this.ltCache.clear() && (this.hasLTCache = false); - this.hasLTECache && this.lteCache.clear() && (this.hasLTECache = false); + getSpecificity: function () { + var constraints = this.constraints, specificity = 0; + for (var i = 0, l = constraints.length; i < l; i++) { + if (constraints[i] instanceof EqualityConstraint) { + specificity++; + } + } + return specificity; }, - contains: function (key) { - return this._super([ - {key: key} - ]); + hasConstraint: function (type) { + return extd.some(this.constraints, function (c) { + return c instanceof type; + }); }, - "set": function (key, value) { - this.insert({key: key, value: value}); - this.clearCache(); + hashCode: function () { + return [this.type, this.alias, extd.format("%j", this.conditions)].join(":"); }, - "get": function (key) { - var ret = this.find({key: key}); - return ret && ret.value; - }, + toString: function () { + return extd.format("%j", this.constraints); + } + } +}).as(exports, "ObjectPattern"); - "remove": function (key) { - this.clearCache(); - return this._super([ - {key: key} - ]); +var FromPattern = ObjectPattern.extend({ + instance: { + constructor: function (type, alias, conditions, store, from, options) { + this._super([type, alias, conditions, store, options]); + this.from = new FromConstraint(from, options); }, - findGT: function (key) { - var ret = this.gtCache.get(key); - if (!ret) { - this.hasGTCache = true; - this.gtCache.put(key, (ret = traverseReverseOrder(this, key, compareGT))); - } - return ret; + hasConstraint: function (type) { + return extd.some(this.constraints, function (c) { + return c instanceof type; + }); }, - findGTE: function (key) { - var ret = this.gteCache.get(key); - if (!ret) { - this.hasGTECache = true; - this.gteCache.put(key, (ret = traverseReverseOrder(this, key, compareGTE))); - } - return ret; + getSpecificity: function () { + return this._super(arguments) + 1; }, - findLT: function (key) { - var ret = this.ltCache.get(key); - if (!ret) { - this.hasLTCache = true; - this.ltCache.put(key, (ret = traverseInOrder(this, key, compareLT))); - } - return ret; + hashCode: function () { + return [this.type, this.alias, extd.format("%j", this.conditions), this.from.from].join(":"); }, - findLTE: function (key) { - var ret = this.lteCache.get(key); - if (!ret) { - this.hasLTECache = true; - this.lteCache.put(key, (ret = traverseInOrder(this, key, compareLTE))); - } - return ret; + toString: function () { + return extd.format("%j from %s", this.constraints, this.from.from); } - } -}).as(module); - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/tupleEntry.js": -/*!************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/tupleEntry.js ***! - \************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +}).as(exports, "FromPattern"); -/* module decorator */ module = __webpack_require__.nmd(module); -var extd = __webpack_require__(/*! ../../extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - indexOf = extd.indexOf; -// HashSet = require("./hashSet"); +FromPattern.extend().as(exports, "FromNotPattern"); +ObjectPattern.extend().as(exports, "NotPattern"); +ObjectPattern.extend().as(exports, "ExistsPattern"); +FromPattern.extend().as(exports, "FromExistsPattern"); -var TUPLE_ID = 0; -extd.declare({ +Pattern.extend({ instance: { - tuples: null, - tupleMap: null, - hashCode: null, - tables: null, - entry: null, - constructor: function (val, entry, canRemove) { - this.val = val; - this.canRemove = canRemove; - this.tuples = []; - this.tupleMap = {}; - this.hashCode = TUPLE_ID++; - this.tables = {}; - this.length = 0; - this.entry = entry; + constructor: function (left, right) { + this.id = id++; + this.leftPattern = left; + this.rightPattern = right; }, - addNode: function (node) { - this.tuples[this.length++] = node; - if (this.length > 1) { - this.entry.clearCache(); - } - return this; + hashCode: function () { + return [this.leftPattern.hashCode(), this.rightPattern.hashCode()].join(":"); }, - removeNode: function (node) { - var tuples = this.tuples, index = indexOf(tuples, node); - if (index !== -1) { - tuples.splice(index, 1); - this.length--; - this.entry.clearCache(); - } - if (this.canRemove && !this.length) { - this.entry.remove(this.val); + getSpecificity: function () { + return this.rightPattern.getSpecificity() + this.leftPattern.getSpecificity(); + }, + + getters: { + constraints: function () { + return this.leftPattern.constraints.concat(this.rightPattern.constraints); } } } -}).as(module); -/***/ }), +}).as(exports, "CompositePattern"); -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/node.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/node.js ***! - \*************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -/* module decorator */ module = __webpack_require__.nmd(module); -var extd = __webpack_require__(/*! ../extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - forEach = extd.forEach, - indexOf = extd.indexOf, - intersection = extd.intersection, - declare = extd.declare, - HashTable = extd.HashTable, - Context = __webpack_require__(/*! ../context */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/context.js"); +var InitialFact = declare({ + instance: { + constructor: function () { + this.id = id++; + this.recency = 0; + } + } +}).as(exports, "InitialFact"); -var count = 0; -declare({ +ObjectPattern.extend({ instance: { constructor: function () { - this.nodes = new HashTable(); - this.rules = []; - this.parentNodes = []; - this.__count = count++; - this.__entrySet = []; + this._super([InitialFact, "__i__", [], {}]); }, - addRule: function (rule) { - if (indexOf(this.rules, rule) === -1) { - this.rules.push(rule); - } - return this; - }, + assert: function () { + return true; + } + } +}).as(exports, "InitialFactPattern"); - merge: function (that) { - that.nodes.forEach(function (entry) { - var patterns = entry.value, node = entry.key; - for (var i = 0, l = patterns.length; i < l; i++) { - this.addOutNode(node, patterns[i]); - } - that.nodes.remove(node); - }, this); - var thatParentNodes = that.parentNodes; - for (var i = 0, l = that.parentNodes.l; i < l; i++) { - var parentNode = thatParentNodes[i]; - this.addParentNode(parentNode); - parentNode.nodes.remove(that); - } - return this; - }, - resolve: function (mr1, mr2) { - return mr1.hashCode === mr2.hashCode; - }, - print: function (tab) { - console.log(tab + this.toString()); - forEach(this.parentNodes, function (n) { - n.print(" " + tab); - }); - }, - addOutNode: function (outNode, pattern) { - if (!this.nodes.contains(outNode)) { - this.nodes.put(outNode, []); - } - this.nodes.get(outNode).push(pattern); - this.__entrySet = this.nodes.entrySet(); - }, - addParentNode: function (n) { - if (indexOf(this.parentNodes, n) === -1) { - this.parentNodes.push(n); - } - }, +/***/ }), - shareable: function () { - return false; - }, +/***/ "./build/cht-core-4-6/node_modules/nools/lib/rule.js": +/*!***********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/rule.js ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_3147610__) => { - __propagate: function (method, context) { - var entrySet = this.__entrySet, i = entrySet.length, entry, outNode, paths, continuingPaths; - while (--i > -1) { - entry = entrySet[i]; - outNode = entry.key; - paths = entry.value; +"use strict"; - if ((continuingPaths = intersection(paths, context.paths)).length) { - outNode[method](new Context(context.fact, continuingPaths, context.match)); - } +var extd = __nested_webpack_require_3147610__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + isArray = extd.isArray, + Promise = extd.Promise, + declare = extd.declare, + isHash = extd.isHash, + isString = extd.isString, + format = extd.format, + parser = __nested_webpack_require_3147610__(/*! ./parser */ "./build/cht-core-4-6/node_modules/nools/lib/parser/index.js"), + pattern = __nested_webpack_require_3147610__(/*! ./pattern */ "./build/cht-core-4-6/node_modules/nools/lib/pattern.js"), + ObjectPattern = pattern.ObjectPattern, + FromPattern = pattern.FromPattern, + NotPattern = pattern.NotPattern, + ExistsPattern = pattern.ExistsPattern, + FromNotPattern = pattern.FromNotPattern, + FromExistsPattern = pattern.FromExistsPattern, + CompositePattern = pattern.CompositePattern; + +var parseConstraint = function (constraint) { + if (typeof constraint === 'function') { + // No parsing is needed for constraint functions + return constraint; + } + return parser.parseConstraint(constraint); +}; + +var parseExtra = extd + .switcher() + .isUndefinedOrNull(function () { + return null; + }) + .isLike(/^from +/, function (s) { + return {from: s.replace(/^from +/, "").replace(/^\s*|\s*$/g, "")}; + }) + .def(function (o) { + throw new Error("invalid rule constraint option " + o); + }) + .switcher(); + +var normailizeConstraint = extd + .switcher() + .isLength(1, function (c) { + throw new Error("invalid rule constraint " + format("%j", [c])); + }) + .isLength(2, function (c) { + c.push("true"); + return c; + }) + //handle case where c[2] is a hash rather than a constraint string + .isLength(3, function (c) { + if (isString(c[2]) && /^from +/.test(c[2])) { + var extra = c[2]; + c.splice(2, 0, "true"); + c[3] = null; + c[4] = parseExtra(extra); + } else if (isHash(c[2])) { + c.splice(2, 0, "true"); + } + return c; + }) + //handle case where c[3] is a from clause rather than a hash for references + .isLength(4, function (c) { + if (isString(c[3])) { + c.splice(3, 0, null); + c[4] = parseExtra(c[4]); + } + return c; + }) + .def(function (c) { + if (c.length === 5) { + c[4] = parseExtra(c[4]); + } + return c; + }) + .switcher(); + +var getParamType = function getParamType(type, scope) { + scope = scope || {}; + var getParamTypeSwitch = extd + .switcher() + .isEq("string", function () { + return String; + }) + .isEq("date", function () { + return Date; + }) + .isEq("array", function () { + return Array; + }) + .isEq("boolean", function () { + return Boolean; + }) + .isEq("regexp", function () { + return RegExp; + }) + .isEq("number", function () { + return Number; + }) + .isEq("object", function () { + return Object; + }) + .isEq("hash", function () { + return Object; + }) + .def(function (param) { + throw new TypeError("invalid param type " + param); + }) + .switcher(); + var _getParamType = extd + .switcher() + .isString(function (param) { + var t = scope[param]; + if (!t) { + return getParamTypeSwitch(param.toLowerCase()); + } else { + return t; } - }, + }) + .isFunction(function (func) { + return func; + }) + .deepEqual([], function () { + return Array; + }) + .def(function (param) { + throw new Error("invalid param type " + param); + }) + .switcher(); - dispose: function (assertable) { - this.propagateDispose(assertable); - }, + return _getParamType(type); +}; - retract: function (assertable) { - this.propagateRetract(assertable); - }, +var parsePattern = extd + .switcher() + .containsAt("or", 0, function (condition) { + condition.shift(); + return extd(condition).map(function (cond) { + cond.scope = condition.scope; + return parsePattern(cond); + }).flatten().value(); + }) + .containsAt("not", 0, function (condition) { + condition.shift(); + condition = normailizeConstraint(condition); + if (condition[4] && condition[4].from) { + return [ + new FromNotPattern( + getParamType(condition[0], condition.scope), + condition[1] || "m", + parseConstraint(condition[2] || "true"), + condition[3] || {}, + parseConstraint(condition[4].from), + {scope: condition.scope, pattern: condition[2]} + ) + ]; + } else { + return [ + new NotPattern( + getParamType(condition[0], condition.scope), + condition[1] || "m", + parseConstraint(condition[2] || "true"), + condition[3] || {}, + {scope: condition.scope, pattern: condition[2]} + ) + ]; + } + }) + .containsAt("exists", 0, function (condition) { + condition.shift(); + condition = normailizeConstraint(condition); + if (condition[4] && condition[4].from) { + return [ + new FromExistsPattern( + getParamType(condition[0], condition.scope), + condition[1] || "m", + parseConstraint(condition[2] || "true"), + condition[3] || {}, + parseConstraint(condition[4].from), + {scope: condition.scope, pattern: condition[2]} + ) + ]; + } else { + return [ + new ExistsPattern( + getParamType(condition[0], condition.scope), + condition[1] || "m", + parseConstraint(condition[2] || "true"), + condition[3] || {}, + {scope: condition.scope, pattern: condition[2]} + ) + ]; + } + }) + .def(function (condition) { + if (typeof condition === 'function') { + return [condition]; + } + condition = normailizeConstraint(condition); + if (condition[4] && condition[4].from) { + return [ + new FromPattern( + getParamType(condition[0], condition.scope), + condition[1] || "m", + parseConstraint(condition[2] || "true"), + condition[3] || {}, + parseConstraint(condition[4].from), + {scope: condition.scope, pattern: condition[2]} + ) + ]; + } else { + return [ + new ObjectPattern( + getParamType(condition[0], condition.scope), + condition[1] || "m", + parseConstraint(condition[2] || "true"), + condition[3] || {}, + {scope: condition.scope, pattern: condition[2]} + ) + ]; + } + }).switcher(); - propagateDispose: function (assertable, outNodes) { - outNodes = outNodes || this.nodes; - var entrySet = this.__entrySet, i = entrySet.length - 1; - for (; i >= 0; i--) { - var entry = entrySet[i], outNode = entry.key; - outNode.dispose(assertable); +var Rule = declare({ + instance: { + constructor: function (name, options, pattern, cb) { + this.name = name; + this.pattern = pattern; + this.cb = cb; + if (options.agendaGroup) { + this.agendaGroup = options.agendaGroup; + this.autoFocus = extd.isBoolean(options.autoFocus) ? options.autoFocus : false; } + this.priority = options.priority || options.salience || 0; }, - propagateAssert: function (assertable) { - this.__propagate("assert", assertable); - }, + fire: function (flow, match) { + var ret = new Promise(), cb = this.cb; + try { + if (cb.length === 3) { + cb.call(flow, match.factHash, flow, ret.resolve); + } else { + ret = cb.call(flow, match.factHash, flow); + } + } catch (e) { + ret.errback(e); + } + return ret; + } + } +}); - propagateRetract: function (assertable) { - this.__propagate("retract", assertable); - }, +function createRule(name, options, conditions, cb) { + if (isArray(options)) { + cb = conditions; + conditions = options; + } else { + options = options || {}; + } + var isRules = extd.every(conditions, function (cond) { + return isArray(cond); + }); + if (isRules && conditions.length === 1) { + conditions = conditions[0]; + isRules = false; + } + var rules = []; + var scope = options.scope || {}; + conditions.scope = scope; + if (isRules) { + var _mergePatterns = function (patt, i) { + if (!patterns[i]) { + patterns[i] = i === 0 ? [] : patterns[i - 1].slice(); + //remove dup + if (i !== 0) { + patterns[i].pop(); + } + patterns[i].push(patt); + } else { + extd(patterns).forEach(function (p) { + p.push(patt); + }); + } + + }; + var l = conditions.length, patterns = [], condition; + for (var i = 0; i < l; i++) { + condition = conditions[i]; + condition.scope = scope; + extd.forEach(parsePattern(condition), _mergePatterns); + + } + rules = extd.map(patterns, function (patterns) { + var compPat = null; + for (var i = 0; i < patterns.length; i++) { + if (compPat === null) { + compPat = new CompositePattern(patterns[i++], patterns[i]); + } else { + compPat = new CompositePattern(compPat, patterns[i]); + } + } + return new Rule(name, options, compPat, cb); + }); + } else { + rules = extd.map(parsePattern(conditions), function (cond) { + return new Rule(name, options, cond, cb); + }); + } + return rules; +} - assert: function (assertable) { - this.propagateAssert(assertable); - }, +exports.createRule = createRule; - modify: function (assertable) { - this.propagateModify(assertable); - }, - propagateModify: function (assertable) { - this.__propagate("modify", assertable); - } - } -}).as(module); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/notNode.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/notNode.js ***! - \****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -/* module decorator */ module = __webpack_require__.nmd(module); -var JoinNode = __webpack_require__(/*! ./joinNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/joinNode.js"), - LinkedList = __webpack_require__(/*! ../linkedList */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/linkedList.js"), - Context = __webpack_require__(/*! ../context */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/context.js"), - InitialFact = __webpack_require__(/*! ../pattern */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/pattern.js").InitialFact; - +/***/ "./build/cht-core-4-6/node_modules/nools/lib/workingMemory.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/workingMemory.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_3158000__) => { -JoinNode.extend({ - instance: { +"use strict"; - nodeType: "NotNode", +var declare = __nested_webpack_require_3158000__(/*! declare.js */ "./build/cht-core-4-6/node_modules/declare.js/index.js"), + LinkedList = __nested_webpack_require_3158000__(/*! ./linkedList */ "./build/cht-core-4-6/node_modules/nools/lib/linkedList.js"), + InitialFact = __nested_webpack_require_3158000__(/*! ./pattern */ "./build/cht-core-4-6/node_modules/nools/lib/pattern.js").InitialFact, + id = 0; - constructor: function () { - this._super(arguments); - this.leftTupleMemory = {}; - //use this ensure a unique match for and propagated context. - this.notMatch = new Context(new InitialFact()).match; - }, +var Fact = declare({ - __cloneContext: function (context) { - return context.clone(null, null, context.match.merge(this.notMatch)); + instance: { + constructor: function (obj) { + this.object = obj; + this.recency = 0; + this.id = id++; }, - - retractRight: function (context) { - var ctx = this.removeFromRightMemory(context), - rightContext = ctx.data, - blocking = rightContext.blocking; - if (blocking.length) { - //if we are blocking left contexts - var leftContext, thisConstraint = this.constraint, blockingNode = {next: blocking.head}, rc; - while ((blockingNode = blockingNode.next)) { - leftContext = blockingNode.data; - this.removeFromLeftBlockedMemory(leftContext); - var rm = this.rightTuples.getRightMemory(leftContext), l = rm.length, i; - i = -1; - while (++i < l) { - if (thisConstraint.isMatch(leftContext, rc = rm[i].data)) { - this.blockedContext(leftContext, rc); - leftContext = null; - break; - } - } - if (leftContext) { - this.notBlockedContext(leftContext, true); - } - } - blocking.clear(); - } - + equals: function (fact) { + return fact === this.object; }, - blockedContext: function (leftContext, rightContext, propagate) { - leftContext.blocker = rightContext; - this.removeFromLeftMemory(leftContext); - this.addToLeftBlockedMemory(rightContext.blocking.push(leftContext)); - propagate && this.__propagate("retract", this.__cloneContext(leftContext)); - }, + hashCode: function () { + return this.id; + } + } - notBlockedContext: function (leftContext, propagate) { - this.__addToLeftMemory(leftContext); - propagate && this.__propagate("assert", this.__cloneContext(leftContext)); - }, +}); - propagateFromLeft: function (leftContext) { - this.notBlockedContext(leftContext, true); - }, +declare({ - propagateFromRight: function (leftContext) { - this.notBlockedContext(leftContext, true); - }, + instance: { - blockFromAssertRight: function (leftContext, rightContext) { - this.blockedContext(leftContext, rightContext, true); + constructor: function () { + this.recency = 0; + this.facts = new LinkedList(); }, - blockFromAssertLeft: function (leftContext, rightContext) { - this.blockedContext(leftContext, rightContext, false); + dispose: function () { + this.facts.clear(); }, - - retractLeft: function (context) { - var ctx = this.removeFromLeftMemory(context); - if (ctx) { - ctx = ctx.data; - this.__propagate("retract", this.__cloneContext(ctx)); - } else { - if (!this.removeFromLeftBlockedMemory(context)) { - throw new Error(); + getFacts: function () { + var head = {next: this.facts.head}, ret = [], i = 0, val; + while ((head = head.next)) { + if (!((val = head.data.object) instanceof InitialFact)) { + ret[i++] = val; } } + return ret; }, - assertLeft: function (context) { - var values = this.rightTuples.getRightMemory(context), - thisConstraint = this.constraint, rc, i = -1, l = values.length; - while (++i < l) { - if (thisConstraint.isMatch(context, rc = values[i].data)) { - this.blockFromAssertLeft(context, rc); - context = null; - i = l; + getFactsByType: function (Type) { + var head = {next: this.facts.head}, ret = [], i = 0; + while ((head = head.next)) { + var val = head.data.object; + if (!(val instanceof InitialFact) && (val instanceof Type || val.constructor === Type)) { + ret[i++] = val; } } - if (context) { - this.propagateFromLeft(context); - } + return ret; }, - assertRight: function (context) { - this.__addToRightMemory(context); - context.blocking = new LinkedList(); - var fl = this.leftTuples.getLeftMemory(context).slice(), - i = -1, l = fl.length, - leftContext, thisConstraint = this.constraint; - while (++i < l) { - leftContext = fl[i].data; - if (thisConstraint.isMatch(leftContext, context)) { - this.blockFromAssertRight(leftContext, context); + getFactHandle: function (o) { + var head = {next: this.facts.head}, ret; + while ((head = head.next)) { + var existingFact = head.data; + if (existingFact.equals(o)) { + return existingFact; } } - }, - - addToLeftBlockedMemory: function (context) { - var data = context.data, hashCode = data.hashCode; - var ctx = this.leftMemory[hashCode]; - this.leftTupleMemory[hashCode] = context; - if (ctx) { - this.leftTuples.remove(ctx); - } - return this; - }, - - removeFromLeftBlockedMemory: function (context) { - var ret = this.leftTupleMemory[context.hashCode] || null; - if (ret) { - delete this.leftTupleMemory[context.hashCode]; - ret.data.blocker.blocking.remove(ret); + if (!ret) { + ret = new Fact(o); + ret.recency = this.recency++; + //this.facts.push(ret); } return ret; }, - modifyLeft: function (context) { - var ctx = this.removeFromLeftMemory(context), - leftContext, - thisConstraint = this.constraint, - rightTuples = this.rightTuples.getRightMemory(context), - l = rightTuples.length, - isBlocked = false, - i, rc, blocker; - if (!ctx) { - //blocked before - ctx = this.removeFromLeftBlockedMemory(context); - isBlocked = true; - } - if (ctx) { - leftContext = ctx.data; - - if (leftContext && leftContext.blocker) { - //we were blocked before so only check nodes previous to our blocker - blocker = this.rightMemory[leftContext.blocker.hashCode]; - leftContext.blocker = null; - } - if (blocker) { - if (thisConstraint.isMatch(context, rc = blocker.data)) { - //we cant be proagated so retract previous - if (!isBlocked) { - //we were asserted before so retract - this.__propagate("retract", this.__cloneContext(leftContext)); - } - context.blocker = rc; - this.addToLeftBlockedMemory(rc.blocking.push(context)); - context = null; - } - } - if (context && l) { - i = -1; - //we were propogated before - while (++i < l) { - if (thisConstraint.isMatch(context, rc = rightTuples[i].data)) { - //we cant be proagated so retract previous - if (!isBlocked) { - //we were asserted before so retract - this.__propagate("retract", this.__cloneContext(leftContext)); - } - this.addToLeftBlockedMemory(rc.blocking.push(context)); - context.blocker = rc; - context = null; - break; - } - } - } - if (context) { - //we can still be propogated - this.__addToLeftMemory(context); - if (!isBlocked) { - //we weren't blocked before so modify - this.__propagate("modify", this.__cloneContext(context)); - } else { - //we were blocked before but aren't now - this.__propagate("assert", this.__cloneContext(context)); - } - + modifyFact: function (fact) { + var head = {next: this.facts.head}; + while ((head = head.next)) { + var existingFact = head.data; + if (existingFact.equals(fact)) { + existingFact.recency = this.recency++; + return existingFact; } - } else { - throw new Error(); } - + //if we made it here we did not find the fact + throw new Error("the fact to modify does not exist"); }, - modifyRight: function (context) { - var ctx = this.removeFromRightMemory(context); - if (ctx) { - var rightContext = ctx.data, - leftTuples = this.leftTuples.getLeftMemory(context).slice(), - leftTuplesLength = leftTuples.length, - leftContext, - thisConstraint = this.constraint, - i, node, - blocking = rightContext.blocking; - this.__addToRightMemory(context); - context.blocking = new LinkedList(); + assertFact: function (fact) { + var ret = new Fact(fact); + ret.recency = this.recency++; + this.facts.push(ret); + return ret; + }, - var rc; - //check old blocked contexts - //check if the same contexts blocked before are still blocked - var blockingNode = {next: blocking.head}; - while ((blockingNode = blockingNode.next)) { - leftContext = blockingNode.data; - leftContext.blocker = null; - if (thisConstraint.isMatch(leftContext, context)) { - leftContext.blocker = context; - this.addToLeftBlockedMemory(context.blocking.push(leftContext)); - leftContext = null; - } else { - //we arent blocked anymore - leftContext.blocker = null; - node = ctx; - while ((node = node.next)) { - if (thisConstraint.isMatch(leftContext, rc = node.data)) { - leftContext.blocker = rc; - this.addToLeftBlockedMemory(rc.blocking.push(leftContext)); - leftContext = null; - break; - } - } - if (leftContext) { - this.__addToLeftMemory(leftContext); - this.__propagate("assert", this.__cloneContext(leftContext)); - } - } - } - if (leftTuplesLength) { - //check currently left tuples in memory - i = -1; - while (++i < leftTuplesLength) { - leftContext = leftTuples[i].data; - if (thisConstraint.isMatch(leftContext, context)) { - this.__propagate("retract", this.__cloneContext(leftContext)); - this.removeFromLeftMemory(leftContext); - this.addToLeftBlockedMemory(context.blocking.push(leftContext)); - leftContext.blocker = context; - } - } + retractFact: function (fact) { + var facts = this.facts, head = {next: facts.head}; + while ((head = head.next)) { + var existingFact = head.data; + if (existingFact.equals(fact)) { + facts.remove(head); + return existingFact; } - } else { - throw new Error(); } + //if we made it here we did not find the fact + throw new Error("the fact to remove does not exist"); } } -}).as(module); - -/***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/propertyNode.js": -/*!*********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/propertyNode.js ***! - \*********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +}).as(exports, "WorkingMemory"); -/* module decorator */ module = __webpack_require__.nmd(module); -var AlphaNode = __webpack_require__(/*! ./alphaNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/alphaNode.js"), - Context = __webpack_require__(/*! ../context */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/context.js"), - extd = __webpack_require__(/*! ../extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"); -AlphaNode.extend({ - instance: { - constructor: function () { - this._super(arguments); - this.alias = this.constraint.get("alias"); - this.varLength = (this.variables = extd(this.constraint.get("variables")).toArray().value()).length; - }, +/***/ }), - assert: function (context) { - var c = new Context(context.fact, context.paths); - var variables = this.variables, o = context.fact.object, item; - c.set(this.alias, o); - for (var i = 0, l = this.varLength; i < l; i++) { - item = variables[i]; - c.set(item[1], o[item[0]]); - } +/***/ "./build/cht-core-4-6/node_modules/object-extended/index.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/object-extended/index.js ***! + \******************************************************************/ +/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_3161748__) { - this.__propagate("assert", c); +(function () { + "use strict"; + /*global extended isExtended*/ - }, + function defineObject(extended, is, arr) { - retract: function (context) { - this.__propagate("retract", new Context(context.fact, context.paths)); - }, + var deepEqual = is.deepEqual, + isString = is.isString, + isHash = is.isHash, + difference = arr.difference, + hasOwn = Object.prototype.hasOwnProperty, + isFunction = is.isFunction; - modify: function (context) { - var c = new Context(context.fact, context.paths); - var variables = this.variables, o = context.fact.object, item; - c.set(this.alias, o); - for (var i = 0, l = this.varLength; i < l; i++) { - item = variables[i]; - c.set(item[1], o[item[0]]); + function _merge(target, source) { + var name, s; + for (name in source) { + if (hasOwn.call(source, name)) { + s = source[name]; + if (!(name in target) || (target[name] !== s)) { + target[name] = s; + } + } } - this.__propagate("modify", c); - }, - - - toString: function () { - return "PropertyNode" + this.__count; + return target; } - } -}).as(module); - - - - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/rightAdapterNode.js": -/*!*************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/rightAdapterNode.js ***! - \*************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -/* module decorator */ module = __webpack_require__.nmd(module); -var Node = __webpack_require__(/*! ./adapterNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/adapterNode.js"); - -Node.extend({ - instance: { - - retractResolve: function (match) { - this.__propagate("retractResolve", match); - }, - - dispose: function (context) { - this.propagateDispose(context); - }, - - propagateAssert: function (context) { - this.__propagate("assertRight", context); - }, - - propagateRetract: function (context) { - this.__propagate("retractRight", context); - }, - - propagateResolve: function (context) { - this.__propagate("retractResolve", context); - }, - - propagateModify: function (context) { - this.__propagate("modifyRight", context); - }, - - toString: function () { - return "RightAdapterNode " + this.__count; + function _deepMerge(target, source) { + var name, s, t; + for (name in source) { + if (hasOwn.call(source, name)) { + s = source[name]; + t = target[name]; + if (!deepEqual(t, s)) { + if (isHash(t) && isHash(s)) { + target[name] = _deepMerge(t, s); + } else if (isHash(s)) { + target[name] = _deepMerge({}, s); + } else { + target[name] = s; + } + } + } + } + return target; } - } -}).as(module); - -/***/ }), - -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/terminalNode.js": -/*!*********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/terminalNode.js ***! - \*********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -/* module decorator */ module = __webpack_require__.nmd(module); -var Node = __webpack_require__(/*! ./node */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/node.js"), - extd = __webpack_require__(/*! ../extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - bind = extd.bind; -Node.extend({ - instance: { - constructor: function (bucket, index, rule, agenda) { - this._super([]); - this.resolve = bind(this, this.resolve); - this.rule = rule; - this.index = index; - this.name = this.rule.name; - this.agenda = agenda; - this.bucket = bucket; - agenda.register(this); - }, - __assertModify: function (context) { - var match = context.match; - if (match.isMatch) { - var rule = this.rule, bucket = this.bucket; - this.agenda.insert(this, { - rule: rule, - hashCode: context.hashCode, - index: this.index, - name: rule.name, - recency: bucket.recency++, - match: match, - counter: bucket.counter - }); + function merge(obj) { + if (!obj) { + obj = {}; } - }, - - assert: function (context) { - this.__assertModify(context); - }, - - modify: function (context) { - this.agenda.retract(this, context); - this.__assertModify(context); - }, - - retract: function (context) { - this.agenda.retract(this, context); - }, - - retractRight: function (context) { - this.agenda.retract(this, context); - }, - - retractLeft: function (context) { - this.agenda.retract(this, context); - }, - - assertLeft: function (context) { - this.__assertModify(context); - }, - - assertRight: function (context) { - this.__assertModify(context); - }, + for (var i = 1, l = arguments.length; i < l; i++) { + _merge(obj, arguments[i]); + } + return obj; // Object + } - toString: function () { - return "TerminalNode " + this.rule.name; + function deepMerge(obj) { + if (!obj) { + obj = {}; + } + for (var i = 1, l = arguments.length; i < l; i++) { + _deepMerge(obj, arguments[i]); + } + return obj; // Object } - } -}).as(module); - -/***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/typeNode.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/typeNode.js ***! - \*****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -/* module decorator */ module = __webpack_require__.nmd(module); -var AlphaNode = __webpack_require__(/*! ./alphaNode */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/alphaNode.js"), - Context = __webpack_require__(/*! ../context */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/context.js"); + function extend(parent, child) { + var proto = parent.prototype || parent; + merge(proto, child); + return parent; + } -AlphaNode.extend({ - instance: { + function forEach(hash, iterator, scope) { + if (!isHash(hash) || !isFunction(iterator)) { + throw new TypeError(); + } + var objKeys = keys(hash), key; + for (var i = 0, len = objKeys.length; i < len; ++i) { + key = objKeys[i]; + iterator.call(scope || hash, hash[key], key, hash); + } + return hash; + } - assert: function (fact) { - if (this.constraintAssert(fact.object)) { - this.__propagate("assert", fact); + function filter(hash, iterator, scope) { + if (!isHash(hash) || !isFunction(iterator)) { + throw new TypeError(); } - }, + var objKeys = keys(hash), key, value, ret = {}; + for (var i = 0, len = objKeys.length; i < len; ++i) { + key = objKeys[i]; + value = hash[key]; + if (iterator.call(scope || hash, value, key, hash)) { + ret[key] = value; + } + } + return ret; + } - modify: function (fact) { - if (this.constraintAssert(fact.object)) { - this.__propagate("modify", fact); + function values(hash) { + if (!isHash(hash)) { + throw new TypeError(); } - }, + var objKeys = keys(hash), ret = []; + for (var i = 0, len = objKeys.length; i < len; ++i) { + ret.push(hash[objKeys[i]]); + } + return ret; + } - retract: function (fact) { - if (this.constraintAssert(fact.object)) { - this.__propagate("retract", fact); + + function keys(hash) { + if (!isHash(hash)) { + throw new TypeError(); } - }, + var ret = []; + for (var i in hash) { + if (hasOwn.call(hash, i)) { + ret.push(i); + } + } + return ret; + } - toString: function () { - return "TypeNode" + this.__count; - }, + function invert(hash) { + if (!isHash(hash)) { + throw new TypeError(); + } + var objKeys = keys(hash), key, ret = {}; + for (var i = 0, len = objKeys.length; i < len; ++i) { + key = objKeys[i]; + ret[hash[key]] = key; + } + return ret; + } - dispose: function () { - var es = this.__entrySet, i = es.length - 1; - for (; i >= 0; i--) { - var e = es[i], outNode = e.key, paths = e.value; - outNode.dispose({paths: paths}); + function toArray(hash) { + if (!isHash(hash)) { + throw new TypeError(); } - }, + var objKeys = keys(hash), key, ret = []; + for (var i = 0, len = objKeys.length; i < len; ++i) { + key = objKeys[i]; + ret.push([key, hash[key]]); + } + return ret; + } - __propagate: function (method, fact) { - var es = this.__entrySet, i = -1, l = es.length; - while (++i < l) { - var e = es[i], outNode = e.key, paths = e.value; - outNode[method](new Context(fact, paths)); + function omit(hash, omitted) { + if (!isHash(hash)) { + throw new TypeError(); + } + if (isString(omitted)) { + omitted = [omitted]; + } + var objKeys = difference(keys(hash), omitted), key, ret = {}; + for (var i = 0, len = objKeys.length; i < len; ++i) { + key = objKeys[i]; + ret[key] = hash[key]; } + return ret; } + + var hash = { + forEach: forEach, + filter: filter, + invert: invert, + values: values, + toArray: toArray, + keys: keys, + omit: omit + }; + + + var obj = { + extend: extend, + merge: merge, + deepMerge: deepMerge, + omit: omit + }; + + var ret = extended.define(is.isObject, obj).define(isHash, hash).define(is.isFunction, {extend: extend}).expose({hash: hash}).expose(obj); + var orig = ret.extend; + ret.extend = function __extend() { + if (arguments.length === 1) { + return orig.extend.apply(ret, arguments); + } else { + extend.apply(null, arguments); + } + }; + return ret; + } -}).as(module); + if (true) { + if ( true && module.exports) { + module.exports = defineObject(__nested_webpack_require_3161748__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js"), __nested_webpack_require_3161748__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js"), __nested_webpack_require_3161748__(/*! array-extended */ "./build/cht-core-4-6/node_modules/array-extended/index.js")); + } + } else {} -/***/ }), +}).call(this); -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/constraint/parser.js": -/*!***************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/constraint/parser.js ***! - \***************************************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { -/* module decorator */ module = __webpack_require__.nmd(module); -/* parser generated by jison 0.4.17 */ -/* - Returns a Parser object of the following structure: - Parser: { - yy: {} - } - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } +/***/ }), - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } +/***/ "./build/cht-core-4-6/node_modules/promise-extended/index.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/promise-extended/index.js ***! + \*******************************************************************/ +/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_3168311__) { +(function () { + "use strict"; + /*global setImmediate, MessageChannel*/ - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -var parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,29],$V1=[1,30],$V2=[1,26],$V3=[1,24],$V4=[1,16],$V5=[1,18],$V6=[1,19],$V7=[1,20],$V8=[1,21],$V9=[1,22],$Va=[5,38,49],$Vb=[1,33],$Vc=[5,36,38,49],$Vd=[5,8,11,12,13,15,17,19,20,21,22,24,25,26,27,28,29,36,38,49],$Ve=[2,2],$Vf=[5,24,25,26,27,28,29,36,38,49],$Vg=[1,42],$Vh=[1,43],$Vi=[1,44],$Vj=[1,45],$Vk=[5,8,11,12,13,15,17,19,20,21,22,24,25,26,27,28,29,31,33,36,38,40,46,49],$Vl=[1,46],$Vm=[1,47],$Vn=[1,48],$Vo=[5,19,20,21,22,24,25,26,27,28,29,36,38,49],$Vp=[1,50],$Vq=[5,8,11,12,13,15,17,19,20,21,22,24,25,26,27,28,29,31,33,36,38,40,43,44,46,48,49],$Vr=[5,17,19,20,21,22,24,25,26,27,28,29,36,38,49],$Vs=[1,55],$Vt=[1,54],$Vu=[5,8,15,17,19,20,21,22,24,25,26,27,28,29,36,38,49],$Vv=[1,56],$Vw=[1,57],$Vx=[1,58],$Vy=[1,87],$Vz=[40,46,49]; -var parser = {trace: function trace() { }, -yy: {}, -symbols_: {"error":2,"expressions":3,"EXPRESSION":4,"EOF":5,"UNARY_EXPRESSION":6,"LITERAL_EXPRESSION":7,"-":8,"!":9,"MULTIPLICATIVE_EXPRESSION":10,"*":11,"/":12,"%":13,"ADDITIVE_EXPRESSION":14,"+":15,"EXPONENT_EXPRESSION":16,"^":17,"RELATIONAL_EXPRESSION":18,"<":19,">":20,"<=":21,">=":22,"EQUALITY_EXPRESSION":23,"==":24,"===":25,"!=":26,"!==":27,"=~":28,"!=~":29,"IN_EXPRESSION":30,"in":31,"ARRAY_EXPRESSION":32,"notIn":33,"OBJECT_EXPRESSION":34,"AND_EXPRESSION":35,"&&":36,"OR_EXPRESSION":37,"||":38,"ARGUMENT_LIST":39,",":40,"IDENTIFIER_EXPRESSION":41,"IDENTIFIER":42,".":43,"[":44,"STRING_EXPRESSION":45,"]":46,"NUMBER_EXPRESSION":47,"(":48,")":49,"STRING":50,"NUMBER":51,"REGEXP_EXPRESSION":52,"REGEXP":53,"BOOLEAN_EXPRESSION":54,"BOOLEAN":55,"NULL_EXPRESSION":56,"NULL":57,"$accept":0,"$end":1}, -terminals_: {2:"error",5:"EOF",8:"-",9:"!",11:"*",12:"/",13:"%",15:"+",17:"^",19:"<",20:">",21:"<=",22:">=",24:"==",25:"===",26:"!=",27:"!==",28:"=~",29:"!=~",31:"in",33:"notIn",36:"&&",38:"||",40:",",42:"IDENTIFIER",43:".",44:"[",46:"]",48:"(",49:")",50:"STRING",51:"NUMBER",53:"REGEXP",55:"BOOLEAN",57:"NULL"}, -productions_: [0,[3,2],[6,1],[6,2],[6,2],[10,1],[10,3],[10,3],[10,3],[14,1],[14,3],[14,3],[16,1],[16,3],[18,1],[18,3],[18,3],[18,3],[18,3],[23,1],[23,3],[23,3],[23,3],[23,3],[23,3],[23,3],[30,1],[30,3],[30,3],[30,3],[30,3],[35,1],[35,3],[37,1],[37,3],[39,1],[39,3],[41,1],[34,1],[34,3],[34,4],[34,4],[34,4],[34,3],[34,4],[45,1],[47,1],[52,1],[54,1],[56,1],[32,2],[32,3],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,3],[4,1]], -performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { -/* this == yyval */ -var $0 = $$.length - 1; -switch (yystate) { -case 1: -return $$[$0-1]; -break; -case 3: -this.$ = [$$[$0], null, 'unary']; -break; -case 4: -this.$ = [$$[$0], null, 'logicalNot']; -break; -case 6: -this.$ = [$$[$0-2], $$[$0], 'mult']; -break; -case 7: -this.$ = [$$[$0-2], $$[$0], 'div']; -break; -case 8: -this.$ = [$$[$0-2], $$[$0], 'mod']; -break; -case 10: -this.$ = [$$[$0-2], $$[$0], 'plus']; -break; -case 11: -this.$ = [$$[$0-2], $$[$0], 'minus']; -break; -case 13: -this.$ = [$$[$0-2], $$[$0], 'pow']; -break; -case 15: -this.$ = [$$[$0-2], $$[$0], 'lt']; -break; -case 16: -this.$ = [$$[$0-2], $$[$0], 'gt']; -break; -case 17: -this.$ = [$$[$0-2], $$[$0], 'lte']; -break; -case 18: -this.$ = [$$[$0-2], $$[$0], 'gte']; -break; -case 20: -this.$ = [$$[$0-2], $$[$0], 'eq']; -break; -case 21: -this.$ = [$$[$0-2], $$[$0], 'seq']; -break; -case 22: -this.$ = [$$[$0-2], $$[$0], 'neq']; -break; -case 23: -this.$ = [$$[$0-2], $$[$0], 'sneq']; -break; -case 24: -this.$ = [$$[$0-2], $$[$0], 'like']; -break; -case 25: -this.$ = [$$[$0-2], $$[$0], 'notLike']; -break; -case 27: case 29: -this.$ = [$$[$0-2], $$[$0], 'in']; -break; -case 28: case 30: -this.$ = [$$[$0-2], $$[$0], 'notIn']; -break; -case 32: -this.$ = [$$[$0-2], $$[$0], 'and']; -break; -case 34: -this.$ = [$$[$0-2], $$[$0], 'or']; -break; -case 36: -this.$ = [$$[$0-2], $$[$0], 'arguments'] -break; -case 37: -this.$ = [String(yytext), null, 'identifier']; -break; -case 39: -this.$ = [$$[$0-2],$$[$0], 'prop']; -break; -case 40: case 41: case 42: -this.$ = [$$[$0-3],$$[$0-1], 'propLookup']; -break; -case 43: -this.$ = [$$[$0-2], [null, null, 'arguments'], 'function'] -break; -case 44: -this.$ = [$$[$0-3], $$[$0-1], 'function'] -break; -case 45: -this.$ = [String(yytext.replace(/^['|"]|['|"]$/g, '')), null, 'string']; -break; -case 46: -this.$ = [Number(yytext), null, 'number']; -break; -case 47: -this.$ = [yytext, null, 'regexp']; -break; -case 48: -this.$ = [yytext.replace(/^\s+/, '') == 'true', null, 'boolean']; -break; -case 49: -this.$ = [null, null, 'null']; -break; -case 50: -this.$ = [null, null, 'array']; -break; -case 51: -this.$ = [$$[$0-1], null, 'array']; -break; -case 59: -this.$ = [$$[$0-1], null, 'composite'] -break; -} -}, -table: [{3:1,4:2,6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:5,32:15,34:14,35:4,37:3,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{1:[3]},{5:[1,31]},o([5,49],[2,60],{38:[1,32]}),o($Va,[2,33],{36:$Vb}),o($Vc,[2,31]),o($Vc,[2,26],{24:[1,34],25:[1,35],26:[1,36],27:[1,37],28:[1,38],29:[1,39]}),o($Vd,$Ve,{31:[1,40],33:[1,41]}),o($Vf,[2,19],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vk,[2,52]),o($Vk,[2,53]),o($Vk,[2,54]),o($Vk,[2,55]),o($Vk,[2,56]),o($Vk,[2,57],{43:$Vl,44:$Vm,48:$Vn}),o($Vk,[2,58]),{4:49,6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:5,32:15,34:14,35:4,37:3,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vo,[2,14],{17:$Vp}),o($Vk,[2,45]),o($Vk,[2,46]),o($Vk,[2,47]),o($Vk,[2,48]),o($Vk,[2,49]),o($Vq,[2,38]),{7:53,32:15,34:14,39:52,41:23,42:$V2,44:$V3,45:9,46:[1,51],47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vr,[2,12],{8:$Vs,15:$Vt}),o($Vq,[2,37]),o($Vu,[2,9],{11:$Vv,12:$Vw,13:$Vx}),o($Vd,[2,5]),{6:59,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:61,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{1:[2,1]},{6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:5,32:15,34:14,35:62,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:63,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:64,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:65,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:66,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:67,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:68,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:69,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{32:70,34:71,41:23,42:$V2,44:$V3},{32:72,34:73,41:23,42:$V2,44:$V3},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:74,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:75,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:76,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:77,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{41:78,42:$V2},{34:81,41:23,42:$V2,45:79,47:80,50:$V5,51:$V6},{7:53,32:15,34:14,39:83,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,49:[1,82],50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{49:[1,84]},{6:28,7:60,8:$V0,9:$V1,10:27,14:85,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vk,[2,50]),{40:$Vy,46:[1,86]},o($Vz,[2,35]),{6:28,7:60,8:$V0,9:$V1,10:88,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:89,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:90,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:91,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:92,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vd,[2,3]),o($Vd,$Ve),o($Vd,[2,4]),o($Va,[2,34],{36:$Vb}),o($Vc,[2,32]),o($Vf,[2,20],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,21],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,22],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,23],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,24],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,25],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vc,[2,27]),o($Vc,[2,29],{43:$Vl,44:$Vm,48:$Vn}),o($Vc,[2,28]),o($Vc,[2,30],{43:$Vl,44:$Vm,48:$Vn}),o($Vo,[2,15],{17:$Vp}),o($Vo,[2,16],{17:$Vp}),o($Vo,[2,17],{17:$Vp}),o($Vo,[2,18],{17:$Vp}),o($Vq,[2,39]),{46:[1,93]},{46:[1,94]},{43:$Vl,44:$Vm,46:[1,95],48:$Vn},o($Vq,[2,43]),{40:$Vy,49:[1,96]},o($Vk,[2,59]),o($Vr,[2,13],{8:$Vs,15:$Vt}),o($Vk,[2,51]),{7:97,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vu,[2,10],{11:$Vv,12:$Vw,13:$Vx}),o($Vu,[2,11],{11:$Vv,12:$Vw,13:$Vx}),o($Vd,[2,6]),o($Vd,[2,7]),o($Vd,[2,8]),o($Vq,[2,40]),o($Vq,[2,41]),o($Vq,[2,42]),o($Vq,[2,44]),o($Vz,[2,36])], -defaultActions: {31:[2,1]}, -parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - function _parseError (msg, hash) { - this.message = msg; - this.hash = hash; - } - _parseError.prototype = Error; + function definePromise(declare, extended, array, is, fn, args) { - throw new _parseError(str, hash); - } -}, -parse: function parse(input) { - var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - var ranges = lexer.options && lexer.options.ranges; - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function popStack(n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - _token_stack: - var lex = function () { - var token; - token = lexer.lex() || EOF; - if (typeof token !== 'number') { - token = self.symbols_[token] || token; - } - return token; - }; - var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === 'undefined' || !action.length || !action[0]) { - var errStr = ''; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push('\'' + this.terminals_[p] + '\''); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; - } else { - errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: yyloc, - expected: expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); - symbol = null; - if (!preErrorSymbol) { - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [ - lstack[lstack.length - (len || 1)].range[0], - lstack[lstack.length - 1].range[1] - ]; - } - r = this.performAction.apply(yyval, [ - yytext, - yyleng, - yylineno, - sharedState.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== 'undefined') { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; -}}; -/* generated by jison-lex 0.3.4 */ -var lexer = (function(){ -var lexer = ({ + var forEach = array.forEach, + isUndefinedOrNull = is.isUndefinedOrNull, + isArray = is.isArray, + isFunction = is.isFunction, + isBoolean = is.isBoolean, + bind = fn.bind, + bindIgnore = fn.bindIgnore, + argsToArray = args.argsToArray; -EOF:1, + function createHandler(fn, promise) { + return function _handler() { + try { + when(fn.apply(null, arguments)) + .addCallback(promise) + .addErrback(promise); + } catch (e) { + promise.errback(e); + } + }; + } -parseError:function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); + var nextTick; + if (typeof setImmediate === "function") { + // In IE10, or use https://github.com/NobleJS/setImmediate + if (typeof window !== "undefined") { + nextTick = setImmediate.bind(window); + } else { + nextTick = setImmediate; + } + } else if (typeof process !== "undefined") { + // node + nextTick = function (cb) { + process.nextTick(cb); + }; + } else if (typeof MessageChannel !== "undefined") { + // modern browsers + // http://www.nonblocking.io/2011/06/windownexttick.html + var channel = new MessageChannel(); + // linked list of tasks (single, with head node) + var head = {}, tail = head; + channel.port1.onmessage = function () { + head = head.next; + var task = head.task; + delete head.task; + task(); + }; + nextTick = function (task) { + tail = tail.next = {task: task}; + channel.port2.postMessage(0); + }; } else { - throw new Error(str); + // old browsers + nextTick = function (task) { + setTimeout(task, 0); + }; } - }, -// resets the lexer, sets new input -setInput:function (input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0,0]; - } - this.offset = 0; - return this; - }, -// consumes and returns one char from the input -input:function () { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } + //noinspection JSHint + var Promise = declare({ + instance: { + __fired: false, - this._input = this._input.slice(1); - return ch; - }, + __results: null, -// unshifts one char (or a string) into the input -unput:function (ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); + __error: null, - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); + __errorCbs: null, - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; + __cbs: null, - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? - (lines.length === oldLines.length ? this.yylloc.first_column : 0) - + oldLines[oldLines.length - lines.length].length - lines[0].length : - this.yylloc.first_column - len - }; + constructor: function () { + this.__errorCbs = []; + this.__cbs = []; + fn.bindAll(this, ["callback", "errback", "resolve", "classic", "__resolve", "addCallback", "addErrback"]); + }, - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, + __resolve: function () { + if (!this.__fired) { + this.__fired = true; + var cbs = this.__error ? this.__errorCbs : this.__cbs, + len = cbs.length, i, + results = this.__error || this.__results; + for (i = 0; i < len; i++) { + this.__callNextTick(cbs[i], results); + } -// When called from action, caches matched text and appends it on next action -more:function () { - this._more = true; - return this; - }, + } + }, -// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. -reject:function () { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); + __callNextTick: function (cb, results) { + nextTick(function () { + cb.apply(this, results); + }); + }, - } - return this; - }, + addCallback: function (cb) { + if (cb) { + if (isPromiseLike(cb) && cb.callback) { + cb = cb.callback; + } + if (this.__fired && this.__results) { + this.__callNextTick(cb, this.__results); + } else { + this.__cbs.push(cb); + } + } + return this; + }, -// retain first n characters of the match -less:function (n) { - this.unput(this.match.slice(n)); - }, -// displays already matched input, i.e. for error messages -pastInput:function () { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); - }, + addErrback: function (cb) { + if (cb) { + if (isPromiseLike(cb) && cb.errback) { + cb = cb.errback; + } + if (this.__fired && this.__error) { + this.__callNextTick(cb, this.__error); + } else { + this.__errorCbs.push(cb); + } + } + return this; + }, -// displays upcoming input, i.e. for error messages -upcomingInput:function () { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20-next.length); - } - return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, + callback: function (args) { + if (!this.__fired) { + this.__results = arguments; + this.__resolve(); + } + return this.promise(); + }, -// displays the character position where the lexing error occurred, i.e. for error messages -showPosition:function () { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, + errback: function (args) { + if (!this.__fired) { + this.__error = arguments; + this.__resolve(); + } + return this.promise(); + }, -// test the lexed token: return FALSE when not a match, otherwise return token -test_match:function (match, indexed_rule) { - var token, - lines, - backup; + resolve: function (err, args) { + if (err) { + this.errback(err); + } else { + this.callback.apply(this, argsToArray(arguments, 1)); + } + return this; + }, - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column + classic: function (cb) { + if ("function" === typeof cb) { + this.addErrback(function (err) { + cb(err); + }); + this.addCallback(function () { + cb.apply(this, [null].concat(argsToArray(arguments))); + }); + } + return this; }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); + + then: function (callback, errback) { + + var promise = new Promise(), errorHandler = promise; + if (isFunction(errback)) { + errorHandler = createHandler(errback, promise); + } + this.addErrback(errorHandler); + if (isFunction(callback)) { + this.addCallback(createHandler(callback, promise)); + } else { + this.addCallback(promise); + } + + return promise.promise(); + }, + + both: function (callback) { + return this.then(callback, callback); + }, + + promise: function () { + var ret = { + then: bind(this, "then"), + both: bind(this, "both"), + promise: function () { + return ret; + } + }; + forEach(["addCallback", "addErrback", "classic"], function (action) { + ret[action] = bind(this, function () { + this[action].apply(this, arguments); + return ret; + }); + }, this); + + return ret; + } + + } - } + }); + + + var PromiseList = Promise.extend({ + instance: { + + /*@private*/ + __results: null, + + /*@private*/ + __errors: null, + + /*@private*/ + __promiseLength: 0, + + /*@private*/ + __defLength: 0, + + /*@private*/ + __firedLength: 0, + + normalizeResults: false, + + constructor: function (defs, normalizeResults) { + this.__errors = []; + this.__results = []; + this.normalizeResults = isBoolean(normalizeResults) ? normalizeResults : false; + this._super(arguments); + if (defs && defs.length) { + this.__defLength = defs.length; + forEach(defs, this.__addPromise, this); + } else { + this.__resolve(); + } + }, + + __addPromise: function (promise, i) { + promise.then( + bind(this, function () { + var args = argsToArray(arguments); + args.unshift(i); + this.callback.apply(this, args); + }), + bind(this, function () { + var args = argsToArray(arguments); + args.unshift(i); + this.errback.apply(this, args); + }) + ); + }, + + __resolve: function () { + if (!this.__fired) { + this.__fired = true; + var cbs = this.__errors.length ? this.__errorCbs : this.__cbs, + len = cbs.length, i, + results = this.__errors.length ? this.__errors : this.__results; + for (i = 0; i < len; i++) { + this.__callNextTick(cbs[i], results); + } + + } + }, + + __callNextTick: function (cb, results) { + nextTick(function () { + cb.apply(null, [results]); + }); + }, + + addCallback: function (cb) { + if (cb) { + if (isPromiseLike(cb) && cb.callback) { + cb = bind(cb, "callback"); + } + if (this.__fired && !this.__errors.length) { + this.__callNextTick(cb, this.__results); + } else { + this.__cbs.push(cb); + } + } + return this; + }, + + addErrback: function (cb) { + if (cb) { + if (isPromiseLike(cb) && cb.errback) { + cb = bind(cb, "errback"); + } + if (this.__fired && this.__errors.length) { + this.__callNextTick(cb, this.__errors); + } else { + this.__errorCbs.push(cb); + } + } + return this; + }, + + + callback: function (i) { + if (this.__fired) { + throw new Error("Already fired!"); + } + var args = argsToArray(arguments); + if (this.normalizeResults) { + args = args.slice(1); + args = args.length === 1 ? args.pop() : args; + } + this.__results[i] = args; + this.__firedLength++; + if (this.__firedLength === this.__defLength) { + this.__resolve(); + } + return this.promise(); + }, + + + errback: function (i) { + if (this.__fired) { + throw new Error("Already fired!"); + } + var args = argsToArray(arguments); + if (this.normalizeResults) { + args = args.slice(1); + args = args.length === 1 ? args.pop() : args; + } + this.__errors[i] = args; + this.__firedLength++; + if (this.__firedLength === this.__defLength) { + this.__resolve(); + } + return this.promise(); + } - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? - lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : - this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; } - return false; // rule action called reject() implying the next rule should be tested instead. + }); + + + function callNext(list, results, propogate) { + var ret = new Promise().callback(); + forEach(list, function (listItem) { + ret = ret.then(propogate ? listItem : bindIgnore(null, listItem)); + if (!propogate) { + ret = ret.then(function (res) { + results.push(res); + return results; + }); + } + }); + return ret; } - return false; - }, -// return next match in input -next:function () { - if (this.done) { - return this.EOF; + function isPromiseLike(obj) { + return !isUndefinedOrNull(obj) && (isFunction(obj.then)); } - if (!this._input) { - this.done = true; + + function wrapThenPromise(p) { + var ret = new Promise(); + p.then(bind(ret, "callback"), bind(ret, "errback")); + return ret.promise(); } - var token, - match, - tempMatch, - index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. + function when(args) { + var p; + args = argsToArray(arguments); + if (!args.length) { + p = new Promise().callback(args).promise(); + } else if (args.length === 1) { + args = args.pop(); + if (isPromiseLike(args)) { + if (args.addCallback && args.addErrback) { + p = new Promise(); + args.addCallback(p.callback); + args.addErrback(p.errback); } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; + p = wrapThenPromise(args); } - } else if (!this.options.flex) { - break; + } else if (isArray(args) && array.every(args, isPromiseLike)) { + p = new PromiseList(args, true).promise(); + } else { + p = new Promise().callback(args); } + } else { + p = new PromiseList(array.map(args, function (a) { + return when(a); + }), true).promise(); } + return p; + } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; + + function wrap(fn, scope) { + return function _wrap() { + var ret = new Promise(); + var args = argsToArray(arguments); + args.push(ret.resolve); + fn.apply(scope || this, args); + return ret.promise(); + }; } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); + + function serial(list) { + if (isArray(list)) { + return callNext(list, [], false); + } else { + throw new Error("When calling promise.serial the first argument must be an array"); + } } - }, -// return next match that has a token -lex:function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); + + function chain(list) { + if (isArray(list)) { + return callNext(list, [], true); + } else { + throw new Error("When calling promise.serial the first argument must be an array"); + } } - }, -// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin(condition) { - this.conditionStack.push(condition); - }, -// pop the previously active lexer condition state off the condition stack -popState:function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; + function wait(args, fn) { + args = argsToArray(arguments); + var resolved = false; + fn = args.pop(); + var p = when(args); + return function waiter() { + if (!resolved) { + args = arguments; + return p.then(bind(this, function doneWaiting() { + resolved = true; + return fn.apply(this, args); + })); + } else { + return when(fn.apply(this, arguments)); + } + }; } - }, -// produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; + function createPromise() { + return new Promise(); } - }, -// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; + function createPromiseList(promises) { + return new PromiseList(promises, true).promise(); } - }, -// alias for begin(condition) -pushState:function pushState(condition) { - this.begin(condition); - }, + function createRejected(val) { + return createPromise().errback(val); + } -// return the number of states currently on the stack -stateStackSize:function stateStackSize() { - return this.conditionStack.length; - }, -options: {}, -performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { -var YYSTATE=YY_START; -switch($avoiding_name_collisions) { -case 0:return 31; -break; -case 1:return 33; -break; -case 2:return 'from'; -break; -case 3:return 24; -break; -case 4:return 25; -break; -case 5:return 26; -break; -case 6:return 27; -break; -case 7:return 21; -break; -case 8:return 19; -break; -case 9:return 22; -break; -case 10:return 20; -break; -case 11:return 28; -break; -case 12:return 29; -break; -case 13:return 36; -break; -case 14:return 38; -break; -case 15:return 57; -break; -case 16:return 55; -break; -case 17:/* skip whitespace */ -break; -case 18:return 51; -break; -case 19:return 50; -break; -case 20:return 50; -break; -case 21:return 42; -break; -case 22:return 53; -break; -case 23:return 43; -break; -case 24:return 11; -break; -case 25:return 12; -break; -case 26:return 13; -break; -case 27:return 40; -break; -case 28:return 8; -break; -case 29:return 28; -break; -case 30:return 29; -break; -case 31:return 25; -break; -case 32:return 24; -break; -case 33:return 27; -break; -case 34:return 26; -break; -case 35:return 21; -break; -case 36:return 22; -break; -case 37:return 20; -break; -case 38:return 19; -break; -case 39:return 36; -break; -case 40:return 38; -break; -case 41:return 15; -break; -case 42:return 17; -break; -case 43:return 48; -break; -case 44:return 46; -break; -case 45:return 44; -break; -case 46:return 49; -break; -case 47:return 9; -break; -case 48:return 5; -break; -} -}, -rules: [/^(?:\s+in\b)/,/^(?:\s+notIn\b)/,/^(?:\s+from\b)/,/^(?:\s+(eq|EQ)\b)/,/^(?:\s+(seq|SEQ)\b)/,/^(?:\s+(neq|NEQ)\b)/,/^(?:\s+(sneq|SNEQ)\b)/,/^(?:\s+(lte|LTE)\b)/,/^(?:\s+(lt|LT)\b)/,/^(?:\s+(gte|GTE)\b)/,/^(?:\s+(gt|GT)\b)/,/^(?:\s+(like|LIKE)\b)/,/^(?:\s+(notLike|NOT_LIKE)\b)/,/^(?:\s+(and|AND)\b)/,/^(?:\s+(or|OR)\b)/,/^(?:\s*(null)\b)/,/^(?:\s*(true|false)\b)/,/^(?:\s+)/,/^(?:-?[0-9]+(?:\.[0-9]+)?\b)/,/^(?:'[^']*')/,/^(?:"[^"]*")/,/^(?:([a-zA-Z_$][0-9a-zA-Z_$]*))/,/^(?:^\/((?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4})(?!\w))/,/^(?:\.)/,/^(?:\*)/,/^(?:\/)/,/^(?:\%)/,/^(?:,)/,/^(?:-)/,/^(?:=~)/,/^(?:!=~)/,/^(?:===)/,/^(?:==)/,/^(?:!==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:&&)/,/^(?:\|\|)/,/^(?:\+)/,/^(?:\^)/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:\))/,/^(?:!)/,/^(?:$)/], -conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"inclusive":true}} -}); -return lexer; -})(); -parser.lexer = lexer; -function Parser () { - this.yy = {}; -} -Parser.prototype = parser;parser.Parser = Parser; -return new Parser; -})(); + function createResolved(val) { + return createPromise().callback(val); + } -if (true) { -exports.parser = parser; -exports.Parser = parser.Parser; -exports.parse = function () { return parser.parse.apply(parser, arguments); }; -exports.main = function commonjsMain(args) { - if (!args[1]) { - console.log('Usage: '+args[0]+' FILE'); - process.exit(1); + return extended + .define({ + isPromiseLike: isPromiseLike + }).expose({ + isPromiseLike: isPromiseLike, + when: when, + wrap: wrap, + wait: wait, + serial: serial, + chain: chain, + Promise: Promise, + PromiseList: PromiseList, + promise: createPromise, + defer: createPromise, + deferredList: createPromiseList, + reject: createRejected, + resolve: createResolved + }); + } - var source = __webpack_require__(/*! fs */ "fs").readFileSync(__webpack_require__(/*! path */ "path").normalize(args[1]), "utf8"); - return exports.parser.parse(source); -}; -if ( true && __webpack_require__.c[__webpack_require__.s] === module) { - exports.main(process.argv.slice(1)); -} -} -/***/ }), + if (true) { + if ( true && module.exports) { + module.exports = definePromise(__nested_webpack_require_3168311__(/*! declare.js */ "./build/cht-core-4-6/node_modules/declare.js/index.js"), __nested_webpack_require_3168311__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js"), __nested_webpack_require_3168311__(/*! array-extended */ "./build/cht-core-4-6/node_modules/array-extended/index.js"), __nested_webpack_require_3168311__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js"), __nested_webpack_require_3168311__(/*! function-extended */ "./build/cht-core-4-6/node_modules/function-extended/index.js"), __nested_webpack_require_3168311__(/*! arguments-extended */ "./build/cht-core-4-6/node_modules/arguments-extended/index.js")); + } + } else {} + +}).call(this); + + + -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/index.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/index.js ***! - \***************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -(function () { - "use strict"; - var constraintParser = __webpack_require__(/*! ./constraint/parser */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/constraint/parser.js"), - noolParser = __webpack_require__(/*! ./nools/nool.parser */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/nools/nool.parser.js"); - exports.parseConstraint = function (expression) { - try { - return constraintParser.parse(expression); - } catch (e) { - throw new Error("Invalid expression '" + expression + "'"); - } - }; - exports.parseRuleSet = function (source, file) { - return noolParser.parse(source, file); - }; -})(); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/nools/nool.parser.js": -/*!***************************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/nools/nool.parser.js ***! - \***************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/string-extended/index.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/string-extended/index.js ***! + \******************************************************************/ +/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_3185718__) { -"use strict"; +(function () { + "use strict"; + function defineString(extended, is, date, arr) { -var tokens = __webpack_require__(/*! ./tokens.js */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/nools/tokens.js"), - extd = __webpack_require__(/*! ../../extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - keys = extd.hash.keys, - utils = __webpack_require__(/*! ./util.js */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/nools/util.js"); + var stringify; + if (typeof JSON === "undefined") { + /* + json2.js + 2012-10-08 -var parse = function (src, keywords, context) { - var orig = src; - src = src.replace(/\/\/(.*)/g, "").replace(/\r\n|\r|\n/g, " "); + Public Domain. - var blockTypes = new RegExp("^(" + keys(keywords).join("|") + ")"), index; - while (src && (index = utils.findNextTokenIndex(src)) !== -1) { - src = src.substr(index); - var blockType = src.match(blockTypes); - if (blockType !== null) { - blockType = blockType[1]; - if (blockType in keywords) { - try { - src = keywords[blockType](src, context, parse).replace(/^\s*|\s*$/g, ""); - } catch (e) { - throw new Error("Invalid " + blockType + " definition \n" + e.message + "; \nstarting at : " + orig); + NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + */ + + (function () { + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; } - } else { - throw new Error("Unknown token" + blockType); - } - } else { - throw new Error("Error parsing " + src); - } - } -}; -exports.parse = function (src, file) { - var context = {define: [], rules: [], scope: [], loaded: [], file: file}; - parse(src, tokens, context); - return context; -}; + var isPrimitive = is.tester().isString().isNumber().isBoolean().tester(); + function toJSON(obj) { + if (is.isDate(obj)) { + return isFinite(obj.valueOf()) ? obj.getUTCFullYear() + '-' + + f(obj.getUTCMonth() + 1) + '-' + + f(obj.getUTCDate()) + 'T' + + f(obj.getUTCHours()) + ':' + + f(obj.getUTCMinutes()) + ':' + + f(obj.getUTCSeconds()) + 'Z' + : null; + } else if (isPrimitive(obj)) { + return obj.valueOf(); + } + return obj; + } + var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + gap, + indent, + meta = { // table of character substitutions + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '"': '\\"', + '\\': '\\\\' + }, + rep; -/***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/nools/tokens.js": -/*!**********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/nools/tokens.js ***! - \**********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + function quote(string) { + escapable.lastIndex = 0; + return escapable.test(string) ? '"' + string.replace(escapable, function (a) { + var c = meta[a]; + return typeof c === 'string' ? c : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }) + '"' : '"' + string + '"'; + } -"use strict"; + function str(key, holder) { -var utils = __webpack_require__(/*! ./util.js */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/nools/util.js"), - fs = __webpack_require__(/*! fs */ "fs"), - extd = __webpack_require__(/*! ../../extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - filter = extd.filter, - indexOf = extd.indexOf, - predicates = ["not", "or", "exists"], - predicateRegExp = new RegExp("^(" + predicates.join("|") + ") *\\((.*)\\)$", "m"), - predicateBeginExp = new RegExp(" *(" + predicates.join("|") + ") *\\(", "g"); + var i, k, v, length, mind = gap, partial, value = holder[key]; + if (value) { + value = toJSON(value); + } + if (typeof rep === 'function') { + value = rep.call(holder, key, value); + } + switch (typeof value) { + case 'string': + return quote(value); + case 'number': + return isFinite(value) ? String(value) : 'null'; + case 'boolean': + case 'null': + return String(value); + case 'object': + if (!value) { + return 'null'; + } + gap += indent; + partial = []; + if (Object.prototype.toString.apply(value) === '[object Array]') { + length = value.length; + for (i = 0; i < length; i += 1) { + partial[i] = str(i, value) || 'null'; + } + v = partial.length === 0 ? '[]' : gap ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' : '[' + partial.join(',') + ']'; + gap = mind; + return v; + } + if (rep && typeof rep === 'object') { + length = rep.length; + for (i = 0; i < length; i += 1) { + if (typeof rep[i] === 'string') { + k = rep[i]; + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } else { + for (k in value) { + if (Object.prototype.hasOwnProperty.call(value, k)) { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } + v = partial.length === 0 ? '{}' : gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' : '{' + partial.join(',') + '}'; + gap = mind; + return v; + } + } -var isWhiteSpace = function (str) { - return str.replace(/[\s|\n|\r|\t]/g, "").length === 0; -}; + stringify = function (value, replacer, space) { + var i; + gap = ''; + indent = ''; + if (typeof space === 'number') { + for (i = 0; i < space; i += 1) { + indent += ' '; + } + } else if (typeof space === 'string') { + indent = space; + } + rep = replacer; + if (replacer && typeof replacer !== 'function' && + (typeof replacer !== 'object' || + typeof replacer.length !== 'number')) { + throw new Error('JSON.stringify'); + } + return str('', {'': value}); + }; + }()); + } else { + stringify = JSON.stringify; + } -var joinFunc = function (m, str) { - return "; " + str; -}; -var splitRuleLineByPredicateExpressions = function (ruleLine) { - var str = ruleLine.replace(/,\s*(\$?\w+\s*:)/g, joinFunc); - var parts = filter(str.split(predicateBeginExp), function (str) { - return str !== ""; - }), - l = parts.length, ret = []; + var isHash = is.isHash, aSlice = Array.prototype.slice; - if (l) { - for (var i = 0; i < l; i++) { - if (indexOf(predicates, parts[i]) !== -1) { - ret.push([parts[i], "(", parts[++i].replace(/, *$/, "")].join("")); - } else { - ret.push(parts[i].replace(/, *$/, "")); + var FORMAT_REGEX = /%((?:-?\+?.?\d*)?|(?:\[[^\[|\]]*\]))?([sjdDZ])/g; + var INTERP_REGEX = /\{(?:\[([^\[|\]]*)\])?(\w+)\}/g; + var STR_FORMAT = /(-?)(\+?)([A-Z|a-z|\W]?)([1-9][0-9]*)?$/; + var OBJECT_FORMAT = /([1-9][0-9]*)$/g; + + function formatString(string, format) { + var ret = string; + if (STR_FORMAT.test(format)) { + var match = format.match(STR_FORMAT); + var isLeftJustified = match[1], padChar = match[3], width = match[4]; + if (width) { + width = parseInt(width, 10); + if (ret.length < width) { + ret = pad(ret, width, padChar, isLeftJustified); + } else { + ret = truncate(ret, width); + } + } } + return ret; } - } else { - return str; - } - return ret.join(";"); -}; -var ruleTokens = { + function formatNumber(number, format) { + var ret; + if (is.isNumber(number)) { + ret = "" + number; + if (STR_FORMAT.test(format)) { + var match = format.match(STR_FORMAT); + var isLeftJustified = match[1], signed = match[2], padChar = match[3], width = match[4]; + if (signed) { + ret = (number > 0 ? "+" : "") + ret; + } + if (width) { + width = parseInt(width, 10); + if (ret.length < width) { + ret = pad(ret, width, padChar || "0", isLeftJustified); + } else { + ret = truncate(ret, width); + } + } - salience: (function () { - var salienceRegexp = /^(salience|priority)\s*:\s*(-?\d+)\s*[,;]?/; - return function (src, context) { - if (salienceRegexp.test(src)) { - var parts = src.match(salienceRegexp), - priority = parseInt(parts[2], 10); - if (!isNaN(priority)) { - context.options.priority = priority; - } else { - throw new Error("Invalid salience/priority " + parts[2]); } - return src.replace(parts[0], ""); } else { - throw new Error("invalid format"); + throw new Error("stringExtended.format : when using %d the parameter must be a number!"); } - }; - })(), + return ret; + } - agendaGroup: (function () { - var agendaGroupRegexp = /^(agenda-group|agendaGroup)\s*:\s*([a-zA-Z_$][0-9a-zA-Z_$]*|"[^"]*"|'[^']*')\s*[,;]?/; - return function (src, context) { - if (agendaGroupRegexp.test(src)) { - var parts = src.match(agendaGroupRegexp), - agendaGroup = parts[2]; - if (agendaGroup) { - context.options.agendaGroup = agendaGroup.replace(/^["']|["']$/g, ""); - } else { - throw new Error("Invalid agenda-group " + parts[2]); + function formatObject(object, format) { + var ret, match = format.match(OBJECT_FORMAT), spacing = 0; + if (match) { + spacing = parseInt(match[0], 10); + if (isNaN(spacing)) { + spacing = 0; } - return src.replace(parts[0], ""); - } else { - throw new Error("invalid format"); } - }; - })(), - - autoFocus: (function () { - var autoFocusRegexp = /^(auto-focus|autoFocus)\s*:\s*(true|false)\s*[,;]?/; - return function (src, context) { - if (autoFocusRegexp.test(src)) { - var parts = src.match(autoFocusRegexp), - autoFocus = parts[2]; - if (autoFocus) { - context.options.autoFocus = autoFocus === "true" ? true : false; - } else { - throw new Error("Invalid auto-focus " + parts[2]); - } - return src.replace(parts[0], ""); - } else { - throw new Error("invalid format"); + try { + ret = stringify(object, null, spacing); + } catch (e) { + throw new Error("stringExtended.format : Unable to parse json from ", object); } - }; - })(), + return ret; + } - "agenda-group": function () { - return this.agendaGroup.apply(this, arguments); - }, - "auto-focus": function () { - return this.autoFocus.apply(this, arguments); - }, + var styles = { + //styles + bold: 1, + bright: 1, + italic: 3, + underline: 4, + blink: 5, + inverse: 7, + crossedOut: 9, - priority: function () { - return this.salience.apply(this, arguments); - }, + red: 31, + green: 32, + yellow: 33, + blue: 34, + magenta: 35, + cyan: 36, + white: 37, - when: (function () { - /*jshint evil:true*/ + redBackground: 41, + greenBackground: 42, + yellowBackground: 43, + blueBackground: 44, + magentaBackground: 45, + cyanBackground: 46, + whiteBackground: 47, - var ruleRegExp = /^(\$?\w+) *: *(\w+)(.*)/; + encircled: 52, + overlined: 53, + grey: 90, + black: 90 + }; - var constraintRegExp = /(\{ *(?:["']?\$?\w+["']?\s*:\s*["']?\$?\w+["']? *(?:, *["']?\$?\w+["']?\s*:\s*["']?\$?\w+["']?)*)+ *\})/; - var fromRegExp = /(\bfrom\s+.*)/; - var parseRules = function (str) { - var rules = []; - var ruleLines = str.split(";"), l = ruleLines.length, ruleLine; - for (var i = 0; i < l && (ruleLine = ruleLines[i].replace(/^\s*|\s*$/g, "").replace(/\n/g, "")); i++) { - if (!isWhiteSpace(ruleLine)) { - var rule = []; - if (predicateRegExp.test(ruleLine)) { - var m = ruleLine.match(predicateRegExp); - var pred = m[1].replace(/^\s*|\s*$/g, ""); - rule.push(pred); - ruleLine = m[2].replace(/^\s*|\s*$/g, ""); - if (pred === "or") { - rule = rule.concat(parseRules(splitRuleLineByPredicateExpressions(ruleLine))); - rules.push(rule); - continue; - } + var characters = { + SMILEY: "☺", + SOLID_SMILEY: "☻", + HEART: "♥", + DIAMOND: "♦", + CLOVE: "♣", + SPADE: "♠", + DOT: "•", + SQUARE_CIRCLE: "◘", + CIRCLE: "○", + FILLED_SQUARE_CIRCLE: "◙", + MALE: "♂", + FEMALE: "♀", + EIGHT_NOTE: "♪", + DOUBLE_EIGHTH_NOTE: "♫", + SUN: "☼", + PLAY: "►", + REWIND: "◄", + UP_DOWN: "↕", + PILCROW: "¶", + SECTION: "§", + THICK_MINUS: "▬", + SMALL_UP_DOWN: "↨", + UP_ARROW: "↑", + DOWN_ARROW: "↓", + RIGHT_ARROW: "→", + LEFT_ARROW: "←", + RIGHT_ANGLE: "∟", + LEFT_RIGHT_ARROW: "↔", + TRIANGLE: "▲", + DOWN_TRIANGLE: "▼", + HOUSE: "⌂", + C_CEDILLA: "Ç", + U_UMLAUT: "ü", + E_ACCENT: "é", + A_LOWER_CIRCUMFLEX: "â", + A_LOWER_UMLAUT: "ä", + A_LOWER_GRAVE_ACCENT: "à", + A_LOWER_CIRCLE_OVER: "å", + C_LOWER_CIRCUMFLEX: "ç", + E_LOWER_CIRCUMFLEX: "ê", + E_LOWER_UMLAUT: "ë", + E_LOWER_GRAVE_ACCENT: "è", + I_LOWER_UMLAUT: "ï", + I_LOWER_CIRCUMFLEX: "î", + I_LOWER_GRAVE_ACCENT: "ì", + A_UPPER_UMLAUT: "Ä", + A_UPPER_CIRCLE: "Å", + E_UPPER_ACCENT: "É", + A_E_LOWER: "æ", + A_E_UPPER: "Æ", + O_LOWER_CIRCUMFLEX: "ô", + O_LOWER_UMLAUT: "ö", + O_LOWER_GRAVE_ACCENT: "ò", + U_LOWER_CIRCUMFLEX: "û", + U_LOWER_GRAVE_ACCENT: "ù", + Y_LOWER_UMLAUT: "ÿ", + O_UPPER_UMLAUT: "Ö", + U_UPPER_UMLAUT: "Ü", + CENTS: "¢", + POUND: "£", + YEN: "¥", + CURRENCY: "¤", + PTS: "₧", + FUNCTION: "ƒ", + A_LOWER_ACCENT: "á", + I_LOWER_ACCENT: "í", + O_LOWER_ACCENT: "ó", + U_LOWER_ACCENT: "ú", + N_LOWER_TILDE: "ñ", + N_UPPER_TILDE: "Ñ", + A_SUPER: "ª", + O_SUPER: "º", + UPSIDEDOWN_QUESTION: "¿", + SIDEWAYS_L: "⌐", + NEGATION: "¬", + ONE_HALF: "½", + ONE_FOURTH: "¼", + UPSIDEDOWN_EXCLAMATION: "¡", + DOUBLE_LEFT: "«", + DOUBLE_RIGHT: "»", + LIGHT_SHADED_BOX: "░", + MEDIUM_SHADED_BOX: "▒", + DARK_SHADED_BOX: "▓", + VERTICAL_LINE: "│", + MAZE__SINGLE_RIGHT_T: "┤", + MAZE_SINGLE_RIGHT_TOP: "┐", + MAZE_SINGLE_RIGHT_BOTTOM_SMALL: "┘", + MAZE_SINGLE_LEFT_TOP_SMALL: "┌", + MAZE_SINGLE_LEFT_BOTTOM_SMALL: "└", + MAZE_SINGLE_LEFT_T: "├", + MAZE_SINGLE_BOTTOM_T: "┴", + MAZE_SINGLE_TOP_T: "┬", + MAZE_SINGLE_CENTER: "┼", + MAZE_SINGLE_HORIZONTAL_LINE: "─", + MAZE_SINGLE_RIGHT_DOUBLECENTER_T: "╡", + MAZE_SINGLE_RIGHT_DOUBLE_BL: "╛", + MAZE_SINGLE_RIGHT_DOUBLE_T: "╢", + MAZE_SINGLE_RIGHT_DOUBLEBOTTOM_TOP: "╖", + MAZE_SINGLE_RIGHT_DOUBLELEFT_TOP: "╕", + MAZE_SINGLE_LEFT_DOUBLE_T: "╞", + MAZE_SINGLE_BOTTOM_DOUBLE_T: "╧", + MAZE_SINGLE_TOP_DOUBLE_T: "╤", + MAZE_SINGLE_TOP_DOUBLECENTER_T: "╥", + MAZE_SINGLE_BOTTOM_DOUBLECENTER_T: "╨", + MAZE_SINGLE_LEFT_DOUBLERIGHT_BOTTOM: "╘", + MAZE_SINGLE_LEFT_DOUBLERIGHT_TOP: "╒", + MAZE_SINGLE_LEFT_DOUBLEBOTTOM_TOP: "╓", + MAZE_SINGLE_LEFT_DOUBLETOP_BOTTOM: "╙", + MAZE_SINGLE_LEFT_TOP: "Γ", + MAZE_SINGLE_RIGHT_BOTTOM: "╜", + MAZE_SINGLE_LEFT_CENTER: "╟", + MAZE_SINGLE_DOUBLECENTER_CENTER: "╫", + MAZE_SINGLE_DOUBLECROSS_CENTER: "╪", + MAZE_DOUBLE_LEFT_CENTER: "╣", + MAZE_DOUBLE_VERTICAL: "║", + MAZE_DOUBLE_RIGHT_TOP: "╗", + MAZE_DOUBLE_RIGHT_BOTTOM: "╝", + MAZE_DOUBLE_LEFT_BOTTOM: "╚", + MAZE_DOUBLE_LEFT_TOP: "╔", + MAZE_DOUBLE_BOTTOM_T: "╩", + MAZE_DOUBLE_TOP_T: "╦", + MAZE_DOUBLE_LEFT_T: "╠", + MAZE_DOUBLE_HORIZONTAL: "═", + MAZE_DOUBLE_CROSS: "╬", + SOLID_RECTANGLE: "█", + THICK_LEFT_VERTICAL: "▌", + THICK_RIGHT_VERTICAL: "▐", + SOLID_SMALL_RECTANGLE_BOTTOM: "▄", + SOLID_SMALL_RECTANGLE_TOP: "▀", + PHI_UPPER: "Φ", + INFINITY: "∞", + INTERSECTION: "∩", + DEFINITION: "≡", + PLUS_MINUS: "±", + GT_EQ: "≥", + LT_EQ: "≤", + THEREFORE: "⌠", + SINCE: "∵", + DOESNOT_EXIST: "∄", + EXISTS: "∃", + FOR_ALL: "∀", + EXCLUSIVE_OR: "⊕", + BECAUSE: "⌡", + DIVIDE: "÷", + APPROX: "≈", + DEGREE: "°", + BOLD_DOT: "∙", + DOT_SMALL: "·", + CHECK: "√", + ITALIC_X: "✗", + SUPER_N: "ⁿ", + SQUARED: "²", + CUBED: "³", + SOLID_BOX: "■", + PERMILE: "‰", + REGISTERED_TM: "®", + COPYRIGHT: "©", + TRADEMARK: "™", + BETA: "β", + GAMMA: "γ", + ZETA: "ζ", + ETA: "η", + IOTA: "ι", + KAPPA: "κ", + LAMBDA: "λ", + NU: "ν", + XI: "ξ", + OMICRON: "ο", + RHO: "ρ", + UPSILON: "υ", + CHI_LOWER: "φ", + CHI_UPPER: "χ", + PSI: "ψ", + ALPHA: "α", + ESZETT: "ß", + PI: "π", + SIGMA_UPPER: "Σ", + SIGMA_LOWER: "σ", + MU: "µ", + TAU: "τ", + THETA: "Θ", + OMEGA: "Ω", + DELTA: "δ", + PHI_LOWER: "φ", + EPSILON: "ε" + }; - } - var parts = ruleLine.match(ruleRegExp); - if (parts && parts.length) { - rule.push(parts[2], parts[1]); - var constraints = parts[3].replace(/^\s*|\s*$/g, ""); - var hashParts = constraints.match(constraintRegExp), from = null, fromMatch; - if (hashParts) { - var hash = hashParts[1], constraint = constraints.replace(hash, ""); - if (fromRegExp.test(constraint)) { - fromMatch = constraint.match(fromRegExp); - from = fromMatch[0]; - constraint = constraint.replace(fromMatch[0], ""); - } - if (constraint) { - rule.push(constraint.replace(/^\s*|\s*$/g, "")); - } - if (hash) { - rule.push(eval("(" + hash.replace(/(\$?\w+)\s*:\s*(\$?\w+)/g, '"$1" : "$2"') + ")")); - } - } else if (constraints && !isWhiteSpace(constraints)) { - if (fromRegExp.test(constraints)) { - fromMatch = constraints.match(fromRegExp); - from = fromMatch[0]; - constraints = constraints.replace(fromMatch[0], ""); - } - rule.push(constraints); - } - if (from) { - rule.push(from); - } - rules.push(rule); - } else { - throw new Error("Invalid constraint " + ruleLine); - } + function pad(string, length, ch, end) { + string = "" + string; //check for numbers + ch = ch || " "; + var strLen = string.length; + while (strLen < length) { + if (end) { + string += ch; + } else { + string = ch + string; } + strLen++; } - return rules; - }; + return string; + } - return function (orig, context) { - var src = orig.replace(/^when\s*/, "").replace(/^\s*|\s*$/g, ""); - if (utils.findNextToken(src) === "{") { - var body = utils.getTokensBetween(src, "{", "}", true).join(""); - src = src.replace(body, ""); - context.constraints = parseRules(body.replace(/^\{\s*|\}\s*$/g, "")); - return src; + function truncate(string, length, end) { + var ret = string; + if (is.isString(ret)) { + if (string.length > length) { + if (end) { + var l = string.length; + ret = string.substring(l - length, l); + } else { + ret = string.substring(0, length); + } + } } else { - throw new Error("unexpected token : expected : '{' found : '" + utils.findNextToken(src) + "'"); + ret = truncate("" + ret, length); } - }; - })(), + return ret; + } - then: (function () { - return function (orig, context) { - if (!context.action) { - var src = orig.replace(/^then\s*/, "").replace(/^\s*|\s*$/g, ""); - if (utils.findNextToken(src) === "{") { - var body = utils.getTokensBetween(src, "{", "}", true).join(""); - src = src.replace(body, ""); - if (!context.action) { - context.action = body.replace(/^\{\s*|\}\s*$/g, ""); + function format(str, obj) { + if (obj instanceof Array) { + var i = 0, len = obj.length; + //find the matches + return str.replace(FORMAT_REGEX, function (m, format, type) { + var replacer, ret; + if (i < len) { + replacer = obj[i++]; + } else { + //we are out of things to replace with so + //just return the match? + return m; } - if (!isWhiteSpace(src)) { - throw new Error("Error parsing then block " + orig); + if (m === "%s" || m === "%d" || m === "%D") { + //fast path! + ret = replacer + ""; + } else if (m === "%Z") { + ret = replacer.toUTCString(); + } else if (m === "%j") { + try { + ret = stringify(replacer); + } catch (e) { + throw new Error("stringExtended.format : Unable to parse json from ", replacer); + } + } else { + format = format.replace(/^\[|\]$/g, ""); + switch (type) { + case "s": + ret = formatString(replacer, format); + break; + case "d": + ret = formatNumber(replacer, format); + break; + case "j": + ret = formatObject(replacer, format); + break; + case "D": + ret = date.format(replacer, format); + break; + case "Z": + ret = date.format(replacer, format, true); + break; + } } - return src; - } else { - throw new Error("unexpected token : expected : '{' found : '" + utils.findNextToken(src) + "'"); - } + return ret; + }); + } else if (isHash(obj)) { + return str.replace(INTERP_REGEX, function (m, format, value) { + value = obj[value]; + if (!is.isUndefined(value)) { + if (format) { + if (is.isString(value)) { + return formatString(value, format); + } else if (is.isNumber(value)) { + return formatNumber(value, format); + } else if (is.isDate(value)) { + return date.format(value, format); + } else if (is.isObject(value)) { + return formatObject(value, format); + } + } else { + return "" + value; + } + } + return m; + }); } else { - throw new Error("action already defined for rule" + context.name); + var args = aSlice.call(arguments).slice(1); + return format(str, args); } - - }; - })() -}; - -var topLevelTokens = { - "/": function (orig) { - if (orig.match(/^\/\*/)) { - // Block Comment parse - return orig.replace(/\/\*.*?\*\//, ""); - } else { - return orig; } - }, - "define": function (orig, context) { - var src = orig.replace(/^define\s*/, ""); - var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*)/); - if (name) { - src = src.replace(name[0], "").replace(/^\s*|\s*$/g, ""); - if (utils.findNextToken(src) === "{") { - name = name[1]; - var body = utils.getTokensBetween(src, "{", "}", true).join(""); - src = src.replace(body, ""); - //should - context.define.push({name: name, properties: "(" + body + ")"}); - return src; - } else { - throw new Error("unexpected token : expected : '{' found : '" + utils.findNextToken(src) + "'"); + function toArray(testStr, delim) { + var ret = []; + if (testStr) { + if (testStr.indexOf(delim) > 0) { + ret = testStr.replace(/\s+/g, "").split(delim); + } + else { + ret.push(testStr); + } } - } else { - throw new Error("missing name"); + return ret; } - }, - "import": function (orig, context, parse) { - if (typeof window !== 'undefined') { - throw new Error("import cannot be used in a browser"); - } - var src = orig.replace(/^import\s*/, ""); - if (utils.findNextToken(src) === "(") { - var file = utils.getParamList(src); - src = src.replace(file, "").replace(/^\s*|\s*$/g, ""); - utils.findNextToken(src) === ";" && (src = src.replace(/\s*;/, "")); - file = file.replace(/[\(|\)]/g, "").split(","); - if (file.length === 1) { - file = utils.resolve(context.file || process.cwd(), file[0].replace(/["|']/g, "")); - if (indexOf(context.loaded, file) === -1) { - var origFile = context.file; - context.file = file; - parse(fs.readFileSync(file, "utf8"), topLevelTokens, context); - context.loaded.push(file); - context.file = origFile; + function multiply(str, times) { + var ret = []; + if (times) { + for (var i = 0; i < times; i++) { + ret.push(str); } - return src; - } else { - throw new Error("import accepts a single file"); } - } else { - throw new Error("unexpected token : expected : '(' found : '" + utils.findNextToken(src) + "'"); + return ret.join(""); } - }, - //define a global - "global": function (orig, context) { - var src = orig.replace(/^global\s*/, ""); - var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*\s*)/); - if (name) { - src = src.replace(name[0], "").replace(/^\s*|\s*$/g, ""); - if (utils.findNextToken(src) === "=") { - name = name[1].replace(/^\s+|\s+$/g, ''); - var fullbody = utils.getTokensBetween(src, "=", ";", true).join(""); - var body = fullbody.substring(1, fullbody.length - 1); - body = body.replace(/^\s+|\s+$/g, ''); - if (/^require\(/.test(body)) { - var file = utils.getParamList(body.replace("require")).replace(/[\(|\)]/g, "").split(","); - if (file.length === 1) { - //handle relative require calls - file = file[0].replace(/["|']/g, ""); - body = ["require('", utils.resolve(context.file || process.cwd(), file) , "')"].join(""); + function style(str, options) { + var ret, i, l; + if (options) { + if (is.isArray(str)) { + ret = []; + for (i = 0, l = str.length; i < l; i++) { + ret.push(style(str[i], options)); + } + } else if (options instanceof Array) { + ret = str; + for (i = 0, l = options.length; i < l; i++) { + ret = style(ret, options[i]); } + } else if (options in styles) { + ret = '\x1B[' + styles[options] + 'm' + str + '\x1B[0m'; } - context.scope.push({name: name, body: body}); - src = src.replace(fullbody, ""); - return src; - } else { - throw new Error("unexpected token : expected : '=' found : '" + utils.findNextToken(src) + "'"); } - } else { - throw new Error("missing name"); + return ret; } - }, - //define a function - "function": function (orig, context) { - var src = orig.replace(/^function\s*/, ""); - //parse the function name - var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*)\s*/); - if (name) { - src = src.replace(name[0], ""); - if (utils.findNextToken(src) === "(") { - name = name[1]; - var params = utils.getParamList(src); - src = src.replace(params, "").replace(/^\s*|\s*$/g, ""); - if (utils.findNextToken(src) === "{") { - var body = utils.getTokensBetween(src, "{", "}", true).join(""); - src = src.replace(body, ""); - //should - context.scope.push({name: name, body: "function" + params + body}); - return src; - } else { - throw new Error("unexpected token : expected : '{' found : '" + utils.findNextToken(src) + "'"); + function escape(str, except) { + return str.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, function (ch) { + if (except && arr.indexOf(except, ch) !== -1) { + return ch; } - } else { - throw new Error("unexpected token : expected : '(' found : '" + utils.findNextToken(src) + "'"); - } - } else { - throw new Error("missing name"); + return "\\" + ch; + }); } - }, - "rule": function (orig, context, parse) { - var src = orig.replace(/^rule\s*/, ""); - var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*|"[^"]*"|'[^']*')/); - if (name) { - src = src.replace(name[0], "").replace(/^\s*|\s*$/g, ""); - if (utils.findNextToken(src) === "{") { - name = name[1].replace(/^["']|["']$/g, ""); - var rule = {name: name, options: {}, constraints: null, action: null}; - var body = utils.getTokensBetween(src, "{", "}", true).join(""); - src = src.replace(body, ""); - parse(body.replace(/^\{\s*|\}\s*$/g, ""), ruleTokens, rule); - context.rules.push(rule); - return src; - } else { - throw new Error("unexpected token : expected : '{' found : '" + utils.findNextToken(src) + "'"); - } - } else { - throw new Error("missing name"); + function trim(str) { + return str.replace(/^\s*|\s*$/g, ""); + } + + function trimLeft(str) { + return str.replace(/^\s*/, ""); + } + + function trimRight(str) { + return str.replace(/\s*$/, ""); + } + + function isEmpty(str) { + return str.length === 0; } + + var string = { + toArray: toArray, + pad: pad, + truncate: truncate, + multiply: multiply, + format: format, + style: style, + escape: escape, + trim: trim, + trimLeft: trimLeft, + trimRight: trimRight, + isEmpty: isEmpty + }; + return extended.define(is.isString, string).define(is.isArray, {style: style}).expose(string).expose({characters: characters}); } -}; -module.exports = topLevelTokens; + + if (true) { + if ( true && module.exports) { + module.exports = defineString(__nested_webpack_require_3185718__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js"), __nested_webpack_require_3185718__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js"), __nested_webpack_require_3185718__(/*! date-extended */ "./build/cht-core-4-6/node_modules/date-extended/index.js"), __nested_webpack_require_3185718__(/*! array-extended */ "./build/cht-core-4-6/node_modules/array-extended/index.js")); + + } + } else {} + +}).call(this); + + + + + /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/nools/util.js": -/*!********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/nools/util.js ***! - \********************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_baseCreate.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_baseCreate.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3208660__) => { "use strict"; +__nested_webpack_require_3208660__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3208660__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ baseCreate) +/* harmony export */ }); +/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3208660__(/*! ./isObject.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isObject.js"); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3208660__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); -var path = __webpack_require__(/*! path */ "path"); -var WHITE_SPACE_REG = /[\s|\n|\r|\t]/, - pathSep = path.sep || ( process.platform === 'win32' ? '\\' : '/' ); -var TOKEN_INVERTS = { - "{": "}", - "}": "{", - "(": ")", - ")": "(", - "[": "]" -}; +// Create a naked function reference for surrogate-prototype-swapping. +function ctor() { + return function(){}; +} -var getTokensBetween = exports.getTokensBetween = function (str, start, stop, includeStartEnd) { - var depth = 0, ret = []; - if (!start) { - start = TOKEN_INVERTS[stop]; - depth = 1; - } - if (!stop) { - stop = TOKEN_INVERTS[start]; - } - str = Object(str); - var startPushing = false, token, cursor = 0, found = false; - while ((token = str.charAt(cursor++))) { - if (token === start) { - depth++; - if (!startPushing) { - startPushing = true; - if (includeStartEnd) { - ret.push(token); - } - } else { - ret.push(token); - } - } else if (token === stop && cursor) { - depth--; - if (depth === 0) { - if (includeStartEnd) { - ret.push(token); - } - found = true; - break; - } - ret.push(token); - } else if (startPushing) { - ret.push(token); - } - } - if (!found) { - throw new Error("Unable to match " + start + " in " + str); - } - return ret; -}; +// An internal function for creating a new object that inherits from another. +function baseCreate(prototype) { + if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__.default)(prototype)) return {}; + if (_setup_js__WEBPACK_IMPORTED_MODULE_1__.nativeCreate) return (0,_setup_js__WEBPACK_IMPORTED_MODULE_1__.nativeCreate)(prototype); + var Ctor = ctor(); + Ctor.prototype = prototype; + var result = new Ctor; + Ctor.prototype = null; + return result; +} -exports.getParamList = function (str) { - return getTokensBetween(str, "(", ")", true).join(""); -}; -exports.resolve = function (from, to) { - if (process.platform === 'win32') { - to = to.replace(/\//g, '\\'); - } - if (path.extname(from) !== '') { - from = path.dirname(from); - } - if (to.split(pathSep).length === 1) { - return to; - } - return path.resolve(from, to).replace(/\\/g, '/'); +/***/ }), -}; +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_baseIteratee.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_baseIteratee.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3210227__) => { -var findNextTokenIndex = exports.findNextTokenIndex = function (str, startIndex, endIndex) { - startIndex = startIndex || 0; - endIndex = endIndex || str.length; - var ret = -1, l = str.length; - if (!endIndex || endIndex > l) { - endIndex = l; - } - for (; startIndex < endIndex; startIndex++) { - var c = str.charAt(startIndex); - if (!WHITE_SPACE_REG.test(c)) { - ret = startIndex; - break; - } - } - return ret; -}; +"use strict"; +__nested_webpack_require_3210227__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3210227__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ baseIteratee) +/* harmony export */ }); +/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3210227__(/*! ./identity.js */ "./build/cht-core-4-6/node_modules/underscore/modules/identity.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3210227__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3210227__(/*! ./isObject.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isObject.js"); +/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_3210227__(/*! ./isArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArray.js"); +/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_4__ = __nested_webpack_require_3210227__(/*! ./matcher.js */ "./build/cht-core-4-6/node_modules/underscore/modules/matcher.js"); +/* harmony import */ var _property_js__WEBPACK_IMPORTED_MODULE_5__ = __nested_webpack_require_3210227__(/*! ./property.js */ "./build/cht-core-4-6/node_modules/underscore/modules/property.js"); +/* harmony import */ var _optimizeCb_js__WEBPACK_IMPORTED_MODULE_6__ = __nested_webpack_require_3210227__(/*! ./_optimizeCb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js"); + + + + + + + + +// An internal function to generate callbacks that can be applied to each +// element in a collection, returning the desired result — either `_.identity`, +// an arbitrary callback, a property matcher, or a property accessor. +function baseIteratee(value, context, argCount) { + if (value == null) return _identity_js__WEBPACK_IMPORTED_MODULE_0__.default; + if ((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(value)) return (0,_optimizeCb_js__WEBPACK_IMPORTED_MODULE_6__.default)(value, context, argCount); + if ((0,_isObject_js__WEBPACK_IMPORTED_MODULE_2__.default)(value) && !(0,_isArray_js__WEBPACK_IMPORTED_MODULE_3__.default)(value)) return (0,_matcher_js__WEBPACK_IMPORTED_MODULE_4__.default)(value); + return (0,_property_js__WEBPACK_IMPORTED_MODULE_5__.default)(value); +} -exports.findNextToken = function (str, startIndex, endIndex) { - return str.charAt(findNextTokenIndex(str, startIndex, endIndex)); -}; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/pattern.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/pattern.js ***! - \**********************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_cb.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3212893__) => { "use strict"; +__nested_webpack_require_3212893__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3212893__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ cb) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3212893__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); +/* harmony import */ var _baseIteratee_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3212893__(/*! ./_baseIteratee.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_baseIteratee.js"); +/* harmony import */ var _iteratee_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3212893__(/*! ./iteratee.js */ "./build/cht-core-4-6/node_modules/underscore/modules/iteratee.js"); -var extd = __webpack_require__(/*! ./extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - isEmpty = extd.isEmpty, - merge = extd.merge, - forEach = extd.forEach, - declare = extd.declare, - constraintMatcher = __webpack_require__(/*! ./constraintMatcher */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/constraintMatcher.js"), - constraint = __webpack_require__(/*! ./constraint */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/constraint.js"), - EqualityConstraint = constraint.EqualityConstraint, - FromConstraint = constraint.FromConstraint; -var id = 0; -var Pattern = declare({}); -var ObjectPattern = Pattern.extend({ - instance: { - constructor: function (type, alias, conditions, store, options) { - options = options || {}; - this.id = id++; - this.type = type; - this.alias = alias; - this.conditions = conditions; - this.pattern = options.pattern; - var constraints = [new constraint.ObjectConstraint(type)]; - var constrnts = constraintMatcher.toConstraints(conditions, merge({alias: alias}, options)); - if (constrnts.length) { - constraints = constraints.concat(constrnts); - } else { - var cnstrnt = new constraint.TrueConstraint(); - constraints.push(cnstrnt); - } - if (store && !isEmpty(store)) { - var atm = new constraint.HashConstraint(store); - constraints.push(atm); - } - forEach(constraints, function (constraint) { - constraint.set("alias", alias); - }); - this.constraints = constraints; - }, +// The function we call internally to generate a callback. It invokes +// `_.iteratee` if overridden, otherwise `baseIteratee`. +function cb(value, context, argCount) { + if (_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.iteratee !== _iteratee_js__WEBPACK_IMPORTED_MODULE_2__.default) return _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.iteratee(value, context); + return (0,_baseIteratee_js__WEBPACK_IMPORTED_MODULE_1__.default)(value, context, argCount); +} - getSpecificity: function () { - var constraints = this.constraints, specificity = 0; - for (var i = 0, l = constraints.length; i < l; i++) { - if (constraints[i] instanceof EqualityConstraint) { - specificity++; - } - } - return specificity; - }, - hasConstraint: function (type) { - return extd.some(this.constraints, function (c) { - return c instanceof type; - }); - }, +/***/ }), - hashCode: function () { - return [this.type, this.alias, extd.format("%j", this.conditions)].join(":"); - }, +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_chainResult.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_chainResult.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3214561__) => { - toString: function () { - return extd.format("%j", this.constraints); - } +"use strict"; +__nested_webpack_require_3214561__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3214561__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ chainResult) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3214561__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); + + +// Helper function to continue chaining intermediate results. +function chainResult(instance, obj) { + return instance._chain ? (0,_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj).chain() : obj; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_collectNonEnumProps.js": +/*!************************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_collectNonEnumProps.js ***! + \************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3215631__) => { + +"use strict"; +__nested_webpack_require_3215631__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3215631__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ collectNonEnumProps) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3215631__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3215631__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3215631__(/*! ./_has.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_has.js"); + + + + +// Internal helper to create a simple lookup structure. +// `collectNonEnumProps` used to depend on `_.contains`, but this led to +// circular imports. `emulatedSet` is a one-off solution that only works for +// arrays of strings. +function emulatedSet(keys) { + var hash = {}; + for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true; + return { + contains: function(key) { return hash[key] === true; }, + push: function(key) { + hash[key] = true; + return keys.push(key); } -}).as(exports, "ObjectPattern"); + }; +} -var FromPattern = ObjectPattern.extend({ - instance: { - constructor: function (type, alias, conditions, store, from, options) { - this._super([type, alias, conditions, store, options]); - this.from = new FromConstraint(from, options); - }, +// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't +// be iterated by `for key in ...` and thus missed. Extends `keys` in place if +// needed. +function collectNonEnumProps(obj, keys) { + keys = emulatedSet(keys); + var nonEnumIdx = _setup_js__WEBPACK_IMPORTED_MODULE_0__.nonEnumerableProps.length; + var constructor = obj.constructor; + var proto = ((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(constructor) && constructor.prototype) || _setup_js__WEBPACK_IMPORTED_MODULE_0__.ObjProto; - hasConstraint: function (type) { - return extd.some(this.constraints, function (c) { - return c instanceof type; - }); - }, + // Constructor is a special case. + var prop = 'constructor'; + if ((0,_has_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj, prop) && !keys.contains(prop)) keys.push(prop); - getSpecificity: function () { - return this._super(arguments) + 1; - }, + while (nonEnumIdx--) { + prop = _setup_js__WEBPACK_IMPORTED_MODULE_0__.nonEnumerableProps[nonEnumIdx]; + if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) { + keys.push(prop); + } + } +} - hashCode: function () { - return [this.type, this.alias, extd.format("%j", this.conditions), this.from.from].join(":"); - }, - toString: function () { - return extd.format("%j from %s", this.constraints, this.from.from); - } +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_createAssigner.js": +/*!*******************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_createAssigner.js ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3218247__) => { + +"use strict"; +__nested_webpack_require_3218247__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3218247__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ createAssigner) +/* harmony export */ }); +// An internal function for creating assigner functions. +function createAssigner(keysFunc, defaults) { + return function(obj) { + var length = arguments.length; + if (defaults) obj = Object(obj); + if (length < 2 || obj == null) return obj; + for (var index = 1; index < length; index++) { + var source = arguments[index], + keys = keysFunc(source), + l = keys.length; + for (var i = 0; i < l; i++) { + var key = keys[i]; + if (!defaults || obj[key] === void 0) obj[key] = source[key]; + } } -}).as(exports, "FromPattern"); + return obj; + }; +} -FromPattern.extend().as(exports, "FromNotPattern"); -ObjectPattern.extend().as(exports, "NotPattern"); -ObjectPattern.extend().as(exports, "ExistsPattern"); -FromPattern.extend().as(exports, "FromExistsPattern"); +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_createEscaper.js": +/*!******************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_createEscaper.js ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3219471__) => { + +"use strict"; +__nested_webpack_require_3219471__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3219471__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ createEscaper) +/* harmony export */ }); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3219471__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + +// Internal helper to generate functions for escaping and unescaping strings +// to/from HTML interpolation. +function createEscaper(map) { + var escaper = function(match) { + return map[match]; + }; + // Regexes for identifying a key that needs to be escaped. + var source = '(?:' + (0,_keys_js__WEBPACK_IMPORTED_MODULE_0__.default)(map).join('|') + ')'; + var testRegexp = RegExp(source); + var replaceRegexp = RegExp(source, 'g'); + return function(string) { + string = string == null ? '' : '' + string; + return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string; + }; +} -Pattern.extend({ - instance: { - constructor: function (left, right) { - this.id = id++; - this.leftPattern = left; - this.rightPattern = right; - }, +/***/ }), - hashCode: function () { - return [this.leftPattern.hashCode(), this.rightPattern.hashCode()].join(":"); - }, +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_createIndexFinder.js": +/*!**********************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_createIndexFinder.js ***! + \**********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3220915__) => { - getSpecificity: function () { - return this.rightPattern.getSpecificity() + this.leftPattern.getSpecificity(); - }, +"use strict"; +__nested_webpack_require_3220915__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3220915__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ createIndexFinder) +/* harmony export */ }); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3220915__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3220915__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _isNaN_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3220915__(/*! ./isNaN.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isNaN.js"); - getters: { - constraints: function () { - return this.leftPattern.constraints.concat(this.rightPattern.constraints); - } - } - } -}).as(exports, "CompositePattern"); -var InitialFact = declare({ - instance: { - constructor: function () { - this.id = id++; - this.recency = 0; - } +// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions. +function createIndexFinder(dir, predicateFind, sortedIndex) { + return function(array, item, idx) { + var i = 0, length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(array); + if (typeof idx == 'number') { + if (dir > 0) { + i = idx >= 0 ? idx : Math.max(idx + length, i); + } else { + length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1; + } + } else if (sortedIndex && idx && length) { + idx = sortedIndex(array, item); + return array[idx] === item ? idx : -1; } -}).as(exports, "InitialFact"); + if (item !== item) { + idx = predicateFind(_setup_js__WEBPACK_IMPORTED_MODULE_1__.slice.call(array, i, length), _isNaN_js__WEBPACK_IMPORTED_MODULE_2__.default); + return idx >= 0 ? idx + i : -1; + } + for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) { + if (array[idx] === item) return idx; + } + return -1; + }; +} -ObjectPattern.extend({ - instance: { - constructor: function () { - this._super([InitialFact, "__i__", [], {}]); - }, - assert: function () { - return true; - } - } -}).as(exports, "InitialFactPattern"); +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_createPredicateIndexFinder.js": +/*!*******************************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_createPredicateIndexFinder.js ***! + \*******************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3223133__) => { +"use strict"; +__nested_webpack_require_3223133__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3223133__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ createPredicateIndexFinder) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3223133__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3223133__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); +// Internal function to generate `_.findIndex` and `_.findLastIndex`. +function createPredicateIndexFinder(dir) { + return function(array, predicate, context) { + predicate = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(predicate, context); + var length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_1__.default)(array); + var index = dir > 0 ? 0 : length - 1; + for (; index >= 0 && index < length; index += dir) { + if (predicate(array[index], index, array)) return index; + } + return -1; + }; +} + /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/rule.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/rule.js ***! - \*******************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_createReduce.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_createReduce.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3224663__) => { "use strict"; +__nested_webpack_require_3224663__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3224663__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ createReduce) +/* harmony export */ }); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3224663__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3224663__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); +/* harmony import */ var _optimizeCb_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3224663__(/*! ./_optimizeCb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js"); -var extd = __webpack_require__(/*! ./extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js"), - isArray = extd.isArray, - Promise = extd.Promise, - declare = extd.declare, - isHash = extd.isHash, - isString = extd.isString, - format = extd.format, - parser = __webpack_require__(/*! ./parser */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/index.js"), - pattern = __webpack_require__(/*! ./pattern */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/pattern.js"), - ObjectPattern = pattern.ObjectPattern, - FromPattern = pattern.FromPattern, - NotPattern = pattern.NotPattern, - ExistsPattern = pattern.ExistsPattern, - FromNotPattern = pattern.FromNotPattern, - FromExistsPattern = pattern.FromExistsPattern, - CompositePattern = pattern.CompositePattern; -var parseConstraint = function (constraint) { - if (typeof constraint === 'function') { - // No parsing is needed for constraint functions - return constraint; + + +// Internal helper to create a reducing function, iterating left or right. +function createReduce(dir) { + // Wrap code that reassigns argument variables in a separate function than + // the one that accesses `arguments.length` to avoid a perf hit. (#1991) + var reducer = function(obj, iteratee, memo, initial) { + var _keys = !(0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj) && (0,_keys_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj), + length = (_keys || obj).length, + index = dir > 0 ? 0 : length - 1; + if (!initial) { + memo = obj[_keys ? _keys[index] : index]; + index += dir; } - return parser.parseConstraint(constraint); -}; + for (; index >= 0 && index < length; index += dir) { + var currentKey = _keys ? _keys[index] : index; + memo = iteratee(memo, obj[currentKey], currentKey, obj); + } + return memo; + }; -var parseExtra = extd - .switcher() - .isUndefinedOrNull(function () { - return null; - }) - .isLike(/^from +/, function (s) { - return {from: s.replace(/^from +/, "").replace(/^\s*|\s*$/g, "")}; - }) - .def(function (o) { - throw new Error("invalid rule constraint option " + o); - }) - .switcher(); + return function(obj, iteratee, memo, context) { + var initial = arguments.length >= 3; + return reducer(obj, (0,_optimizeCb_js__WEBPACK_IMPORTED_MODULE_2__.default)(iteratee, context, 4), memo, initial); + }; +} -var normailizeConstraint = extd - .switcher() - .isLength(1, function (c) { - throw new Error("invalid rule constraint " + format("%j", [c])); - }) - .isLength(2, function (c) { - c.push("true"); - return c; - }) - //handle case where c[2] is a hash rather than a constraint string - .isLength(3, function (c) { - if (isString(c[2]) && /^from +/.test(c[2])) { - var extra = c[2]; - c.splice(2, 0, "true"); - c[3] = null; - c[4] = parseExtra(extra); - } else if (isHash(c[2])) { - c.splice(2, 0, "true"); - } - return c; - }) - //handle case where c[3] is a from clause rather than a hash for references - .isLength(4, function (c) { - if (isString(c[3])) { - c.splice(3, 0, null); - c[4] = parseExtra(c[4]); - } - return c; - }) - .def(function (c) { - if (c.length === 5) { - c[4] = parseExtra(c[4]); - } - return c; - }) - .switcher(); -var getParamType = function getParamType(type, scope) { - scope = scope || {}; - var getParamTypeSwitch = extd - .switcher() - .isEq("string", function () { - return String; - }) - .isEq("date", function () { - return Date; - }) - .isEq("array", function () { - return Array; - }) - .isEq("boolean", function () { - return Boolean; - }) - .isEq("regexp", function () { - return RegExp; - }) - .isEq("number", function () { - return Number; - }) - .isEq("object", function () { - return Object; - }) - .isEq("hash", function () { - return Object; - }) - .def(function (param) { - throw new TypeError("invalid param type " + param); - }) - .switcher(); +/***/ }), - var _getParamType = extd - .switcher() - .isString(function (param) { - var t = scope[param]; - if (!t) { - return getParamTypeSwitch(param.toLowerCase()); - } else { - return t; - } - }) - .isFunction(function (func) { - return func; - }) - .deepEqual([], function () { - return Array; - }) - .def(function (param) { - throw new Error("invalid param type " + param); - }) - .switcher(); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_createSizePropertyCheck.js": +/*!****************************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_createSizePropertyCheck.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3226952__) => { - return _getParamType(type); -}; +"use strict"; +__nested_webpack_require_3226952__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3226952__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ createSizePropertyCheck) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3226952__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); -var parsePattern = extd - .switcher() - .containsAt("or", 0, function (condition) { - condition.shift(); - return extd(condition).map(function (cond) { - cond.scope = condition.scope; - return parsePattern(cond); - }).flatten().value(); - }) - .containsAt("not", 0, function (condition) { - condition.shift(); - condition = normailizeConstraint(condition); - if (condition[4] && condition[4].from) { - return [ - new FromNotPattern( - getParamType(condition[0], condition.scope), - condition[1] || "m", - parseConstraint(condition[2] || "true"), - condition[3] || {}, - parseConstraint(condition[4].from), - {scope: condition.scope, pattern: condition[2]} - ) - ]; - } else { - return [ - new NotPattern( - getParamType(condition[0], condition.scope), - condition[1] || "m", - parseConstraint(condition[2] || "true"), - condition[3] || {}, - {scope: condition.scope, pattern: condition[2]} - ) - ]; - } - }) - .containsAt("exists", 0, function (condition) { - condition.shift(); - condition = normailizeConstraint(condition); - if (condition[4] && condition[4].from) { - return [ - new FromExistsPattern( - getParamType(condition[0], condition.scope), - condition[1] || "m", - parseConstraint(condition[2] || "true"), - condition[3] || {}, - parseConstraint(condition[4].from), - {scope: condition.scope, pattern: condition[2]} - ) - ]; - } else { - return [ - new ExistsPattern( - getParamType(condition[0], condition.scope), - condition[1] || "m", - parseConstraint(condition[2] || "true"), - condition[3] || {}, - {scope: condition.scope, pattern: condition[2]} - ) - ]; - } - }) - .def(function (condition) { - if (typeof condition === 'function') { - return [condition]; - } - condition = normailizeConstraint(condition); - if (condition[4] && condition[4].from) { - return [ - new FromPattern( - getParamType(condition[0], condition.scope), - condition[1] || "m", - parseConstraint(condition[2] || "true"), - condition[3] || {}, - parseConstraint(condition[4].from), - {scope: condition.scope, pattern: condition[2]} - ) - ]; - } else { - return [ - new ObjectPattern( - getParamType(condition[0], condition.scope), - condition[1] || "m", - parseConstraint(condition[2] || "true"), - condition[3] || {}, - {scope: condition.scope, pattern: condition[2]} - ) - ]; - } - }).switcher(); -var Rule = declare({ - instance: { - constructor: function (name, options, pattern, cb) { - this.name = name; - this.pattern = pattern; - this.cb = cb; - if (options.agendaGroup) { - this.agendaGroup = options.agendaGroup; - this.autoFocus = extd.isBoolean(options.autoFocus) ? options.autoFocus : false; - } - this.priority = options.priority || options.salience || 0; - }, +// Common internal logic for `isArrayLike` and `isBufferLike`. +function createSizePropertyCheck(getSizeProperty) { + return function(collection) { + var sizeProperty = getSizeProperty(collection); + return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= _setup_js__WEBPACK_IMPORTED_MODULE_0__.MAX_ARRAY_INDEX; + } +} - fire: function (flow, match) { - var ret = new Promise(), cb = this.cb; - try { - if (cb.length === 3) { - cb.call(flow, match.factHash, flow, ret.resolve); - } else { - ret = cb.call(flow, match.factHash, flow); - } - } catch (e) { - ret.errback(e); - } - return ret; - } - } -}); -function createRule(name, options, conditions, cb) { - if (isArray(options)) { - cb = conditions; - conditions = options; - } else { - options = options || {}; - } - var isRules = extd.every(conditions, function (cond) { - return isArray(cond); - }); - if (isRules && conditions.length === 1) { - conditions = conditions[0]; - isRules = false; - } - var rules = []; - var scope = options.scope || {}; - conditions.scope = scope; - if (isRules) { - var _mergePatterns = function (patt, i) { - if (!patterns[i]) { - patterns[i] = i === 0 ? [] : patterns[i - 1].slice(); - //remove dup - if (i !== 0) { - patterns[i].pop(); - } - patterns[i].push(patt); - } else { - extd(patterns).forEach(function (p) { - p.push(patt); - }); - } +/***/ }), - }; - var l = conditions.length, patterns = [], condition; - for (var i = 0; i < l; i++) { - condition = conditions[i]; - condition.scope = scope; - extd.forEach(parsePattern(condition), _mergePatterns); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_deepGet.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_deepGet.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3228112__) => { - } - rules = extd.map(patterns, function (patterns) { - var compPat = null; - for (var i = 0; i < patterns.length; i++) { - if (compPat === null) { - compPat = new CompositePattern(patterns[i++], patterns[i]); - } else { - compPat = new CompositePattern(compPat, patterns[i]); - } - } - return new Rule(name, options, compPat, cb); - }); - } else { - rules = extd.map(parsePattern(conditions), function (cond) { - return new Rule(name, options, cond, cb); - }); - } - return rules; +"use strict"; +__nested_webpack_require_3228112__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3228112__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ deepGet) +/* harmony export */ }); +// Internal function to obtain a nested property in `obj` along `path`. +function deepGet(obj, path) { + var length = path.length; + for (var i = 0; i < length; i++) { + if (obj == null) return void 0; + obj = obj[path[i]]; + } + return length ? obj : void 0; } -exports.createRule = createRule; +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_escapeMap.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_escapeMap.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3229011__) => { +"use strict"; +__nested_webpack_require_3229011__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3229011__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +// Internal list of HTML entities for escaping. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '`': '`' +}); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/workingMemory.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/workingMemory.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_executeBound.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_executeBound.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3229877__) => { "use strict"; +__nested_webpack_require_3229877__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3229877__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ executeBound) +/* harmony export */ }); +/* harmony import */ var _baseCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3229877__(/*! ./_baseCreate.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_baseCreate.js"); +/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3229877__(/*! ./isObject.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isObject.js"); -var declare = __webpack_require__(/*! declare.js */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/declare.js/index.js"), - LinkedList = __webpack_require__(/*! ./linkedList */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/linkedList.js"), - InitialFact = __webpack_require__(/*! ./pattern */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/pattern.js").InitialFact, - id = 0; -var Fact = declare({ - instance: { - constructor: function (obj) { - this.object = obj; - this.recency = 0; - this.id = id++; - }, +// Internal function to execute `sourceFunc` bound to `context` with optional +// `args`. Determines whether to execute a function as a constructor or as a +// normal function. +function executeBound(sourceFunc, boundFunc, context, callingContext, args) { + if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args); + var self = (0,_baseCreate_js__WEBPACK_IMPORTED_MODULE_0__.default)(sourceFunc.prototype); + var result = sourceFunc.apply(self, args); + if ((0,_isObject_js__WEBPACK_IMPORTED_MODULE_1__.default)(result)) return result; + return self; +} - equals: function (fact) { - return fact === this.object; - }, - hashCode: function () { - return this.id; - } - } +/***/ }), -}); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3231454__) => { -declare({ +"use strict"; +__nested_webpack_require_3231454__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3231454__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ flatten) +/* harmony export */ }); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3231454__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3231454__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3231454__(/*! ./isArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArray.js"); +/* harmony import */ var _isArguments_js__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_3231454__(/*! ./isArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArguments.js"); - instance: { - constructor: function () { - this.recency = 0; - this.facts = new LinkedList(); - }, - dispose: function () { - this.facts.clear(); - }, - getFacts: function () { - var head = {next: this.facts.head}, ret = [], i = 0, val; - while ((head = head.next)) { - if (!((val = head.data.object) instanceof InitialFact)) { - ret[i++] = val; - } - } - return ret; - }, - getFactsByType: function (Type) { - var head = {next: this.facts.head}, ret = [], i = 0; - while ((head = head.next)) { - var val = head.data.object; - if (!(val instanceof InitialFact) && (val instanceof Type || val.constructor === Type)) { - ret[i++] = val; - } - } - return ret; - }, +// Internal implementation of a recursive `flatten` function. +function flatten(input, depth, strict, output) { + output = output || []; + if (!depth && depth !== 0) { + depth = Infinity; + } else if (depth <= 0) { + return output.concat(input); + } + var idx = output.length; + for (var i = 0, length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(input); i < length; i++) { + var value = input[i]; + if ((0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__.default)(value) && ((0,_isArray_js__WEBPACK_IMPORTED_MODULE_2__.default)(value) || (0,_isArguments_js__WEBPACK_IMPORTED_MODULE_3__.default)(value))) { + // Flatten current level of array or arguments object. + if (depth > 1) { + flatten(value, depth - 1, strict, output); + idx = output.length; + } else { + var j = 0, len = value.length; + while (j < len) output[idx++] = value[j++]; + } + } else if (!strict) { + output[idx++] = value; + } + } + return output; +} + - getFactHandle: function (o) { - var head = {next: this.facts.head}, ret; - while ((head = head.next)) { - var existingFact = head.data; - if (existingFact.equals(o)) { - return existingFact; - } - } - if (!ret) { - ret = new Fact(o); - ret.recency = this.recency++; - //this.facts.push(ret); - } - return ret; - }, +/***/ }), - modifyFact: function (fact) { - var head = {next: this.facts.head}; - while ((head = head.next)) { - var existingFact = head.data; - if (existingFact.equals(fact)) { - existingFact.recency = this.recency++; - return existingFact; - } - } - //if we made it here we did not find the fact - throw new Error("the fact to modify does not exist"); - }, +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_getByteLength.js": +/*!******************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_getByteLength.js ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3233831__) => { - assertFact: function (fact) { - var ret = new Fact(fact); - ret.recency = this.recency++; - this.facts.push(ret); - return ret; - }, +"use strict"; +__nested_webpack_require_3233831__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3233831__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _shallowProperty_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3233831__(/*! ./_shallowProperty.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_shallowProperty.js"); - retractFact: function (fact) { - var facts = this.facts, head = {next: facts.head}; - while ((head = head.next)) { - var existingFact = head.data; - if (existingFact.equals(fact)) { - facts.remove(head); - return existingFact; - } - } - //if we made it here we did not find the fact - throw new Error("the fact to remove does not exist"); + +// Internal helper to obtain the `byteLength` property of an object. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_shallowProperty_js__WEBPACK_IMPORTED_MODULE_0__.default)('byteLength')); - } - } +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3234885__) => { + +"use strict"; +__nested_webpack_require_3234885__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3234885__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _shallowProperty_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3234885__(/*! ./_shallowProperty.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_shallowProperty.js"); -}).as(exports, "WorkingMemory"); +// Internal helper to obtain the `length` property of an object. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_shallowProperty_js__WEBPACK_IMPORTED_MODULE_0__.default)('length')); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/object-extended/index.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/object-extended/index.js ***! - \**************************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_group.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_group.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3235915__) => { -(function () { - "use strict"; - /*global extended isExtended*/ +"use strict"; +__nested_webpack_require_3235915__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3235915__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ group) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3235915__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3235915__(/*! ./each.js */ "./build/cht-core-4-6/node_modules/underscore/modules/each.js"); - function defineObject(extended, is, arr) { - var deepEqual = is.deepEqual, - isString = is.isString, - isHash = is.isHash, - difference = arr.difference, - hasOwn = Object.prototype.hasOwnProperty, - isFunction = is.isFunction; - function _merge(target, source) { - var name, s; - for (name in source) { - if (hasOwn.call(source, name)) { - s = source[name]; - if (!(name in target) || (target[name] !== s)) { - target[name] = s; - } - } - } - return target; - } +// An internal function used for aggregate "group by" operations. +function group(behavior, partition) { + return function(obj, iteratee, context) { + var result = partition ? [[], []] : {}; + iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context); + (0,_each_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj, function(value, index) { + var key = iteratee(value, index, obj); + behavior(result, value, key); + }); + return result; + }; +} - function _deepMerge(target, source) { - var name, s, t; - for (name in source) { - if (hasOwn.call(source, name)) { - s = source[name]; - t = target[name]; - if (!deepEqual(t, s)) { - if (isHash(t) && isHash(s)) { - target[name] = _deepMerge(t, s); - } else if (isHash(s)) { - target[name] = _deepMerge({}, s); - } else { - target[name] = s; - } - } - } - } - return target; - } +/***/ }), - function merge(obj) { - if (!obj) { - obj = {}; - } - for (var i = 1, l = arguments.length; i < l; i++) { - _merge(obj, arguments[i]); - } - return obj; // Object - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_has.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_has.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3237330__) => { - function deepMerge(obj) { - if (!obj) { - obj = {}; - } - for (var i = 1, l = arguments.length; i < l; i++) { - _deepMerge(obj, arguments[i]); - } - return obj; // Object - } +"use strict"; +__nested_webpack_require_3237330__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3237330__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ has) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3237330__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); - function extend(parent, child) { - var proto = parent.prototype || parent; - merge(proto, child); - return parent; - } +// Internal function to check whether `key` is an own property name of `obj`. +function has(obj, key) { + return obj != null && _setup_js__WEBPACK_IMPORTED_MODULE_0__.hasOwnProperty.call(obj, key); +} - function forEach(hash, iterator, scope) { - if (!isHash(hash) || !isFunction(iterator)) { - throw new TypeError(); - } - var objKeys = keys(hash), key; - for (var i = 0, len = objKeys.length; i < len; ++i) { - key = objKeys[i]; - iterator.call(scope || hash, hash[key], key, hash); - } - return hash; - } - function filter(hash, iterator, scope) { - if (!isHash(hash) || !isFunction(iterator)) { - throw new TypeError(); - } - var objKeys = keys(hash), key, value, ret = {}; - for (var i = 0, len = objKeys.length; i < len; ++i) { - key = objKeys[i]; - value = hash[key]; - if (iterator.call(scope || hash, value, key, hash)) { - ret[key] = value; - } - } - return ret; - } +/***/ }), - function values(hash) { - if (!isHash(hash)) { - throw new TypeError(); - } - var objKeys = keys(hash), ret = []; - for (var i = 0, len = objKeys.length; i < len; ++i) { - ret.push(hash[objKeys[i]]); - } - return ret; - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_hasObjectTag.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_hasObjectTag.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3238345__) => { +"use strict"; +__nested_webpack_require_3238345__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3238345__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3238345__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); - function keys(hash) { - if (!isHash(hash)) { - throw new TypeError(); - } - var ret = []; - for (var i in hash) { - if (hasOwn.call(hash, i)) { - ret.push(i); - } - } - return ret; - } - function invert(hash) { - if (!isHash(hash)) { - throw new TypeError(); - } - var objKeys = keys(hash), key, ret = {}; - for (var i = 0, len = objKeys.length; i < len; ++i) { - key = objKeys[i]; - ret[hash[key]] = key; - } - return ret; - } +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Object')); - function toArray(hash) { - if (!isHash(hash)) { - throw new TypeError(); - } - var objKeys = keys(hash), key, ret = []; - for (var i = 0, len = objKeys.length; i < len; ++i) { - key = objKeys[i]; - ret.push([key, hash[key]]); - } - return ret; - } - function omit(hash, omitted) { - if (!isHash(hash)) { - throw new TypeError(); - } - if (isString(omitted)) { - omitted = [omitted]; - } - var objKeys = difference(keys(hash), omitted), key, ret = {}; - for (var i = 0, len = objKeys.length; i < len; ++i) { - key = objKeys[i]; - ret[key] = hash[key]; - } - return ret; - } +/***/ }), - var hash = { - forEach: forEach, - filter: filter, - invert: invert, - values: values, - toArray: toArray, - keys: keys, - omit: omit - }; +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3239310__) => { +"use strict"; +__nested_webpack_require_3239310__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3239310__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createSizePropertyCheck_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3239310__(/*! ./_createSizePropertyCheck.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createSizePropertyCheck.js"); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3239310__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); - var obj = { - extend: extend, - merge: merge, - deepMerge: deepMerge, - omit: omit - }; - var ret = extended.define(is.isObject, obj).define(isHash, hash).define(is.isFunction, {extend: extend}).expose({hash: hash}).expose(obj); - var orig = ret.extend; - ret.extend = function __extend() { - if (arguments.length === 1) { - return orig.extend.apply(ret, arguments); - } else { - extend.apply(null, arguments); - } - }; - return ret; - } +// Internal helper for collection methods to determine whether a collection +// should be iterated as an array or as an object. +// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength +// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094 +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createSizePropertyCheck_js__WEBPACK_IMPORTED_MODULE_0__.default)(_getLength_js__WEBPACK_IMPORTED_MODULE_1__.default)); - if (true) { - if ( true && module.exports) { - module.exports = defineObject(__webpack_require__(/*! extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extended/index.js"), __webpack_require__(/*! is-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/is-extended/index.js"), __webpack_require__(/*! array-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/array-extended/index.js")); - } - } else {} +/***/ }), -}).call(this); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_isBufferLike.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_isBufferLike.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3240822__) => { + +"use strict"; +__nested_webpack_require_3240822__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3240822__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createSizePropertyCheck_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3240822__(/*! ./_createSizePropertyCheck.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createSizePropertyCheck.js"); +/* harmony import */ var _getByteLength_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3240822__(/*! ./_getByteLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getByteLength.js"); +// Internal helper to determine whether we should spend extensive checks against +// `ArrayBuffer` et al. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createSizePropertyCheck_js__WEBPACK_IMPORTED_MODULE_0__.default)(_getByteLength_js__WEBPACK_IMPORTED_MODULE_1__.default)); + +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_keyInObj.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_keyInObj.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3242179__) => { +"use strict"; +__nested_webpack_require_3242179__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3242179__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ keyInObj) +/* harmony export */ }); +// Internal `_.pick` helper function to determine whether `key` is an enumerable +// property name of `obj`. +function keyInObj(value, key, obj) { + return key in obj; +} /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/promise-extended/index.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/promise-extended/index.js ***! - \***************************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_methodFingerprint.js": +/*!**********************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_methodFingerprint.js ***! + \**********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3243014__) => { -(function () { - "use strict"; - /*global setImmediate, MessageChannel*/ +"use strict"; +__nested_webpack_require_3243014__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3243014__.d(__webpack_exports__, { +/* harmony export */ "ie11fingerprint": () => (/* binding */ ie11fingerprint), +/* harmony export */ "mapMethods": () => (/* binding */ mapMethods), +/* harmony export */ "weakMapMethods": () => (/* binding */ weakMapMethods), +/* harmony export */ "setMethods": () => (/* binding */ setMethods) +/* harmony export */ }); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3243014__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3243014__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _allKeys_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3243014__(/*! ./allKeys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js"); - function definePromise(declare, extended, array, is, fn, args) { - var forEach = array.forEach, - isUndefinedOrNull = is.isUndefinedOrNull, - isArray = is.isArray, - isFunction = is.isFunction, - isBoolean = is.isBoolean, - bind = fn.bind, - bindIgnore = fn.bindIgnore, - argsToArray = args.argsToArray; - function createHandler(fn, promise) { - return function _handler() { - try { - when(fn.apply(null, arguments)) - .addCallback(promise) - .addErrback(promise); - } catch (e) { - promise.errback(e); - } - }; - } +// Since the regular `Object.prototype.toString` type tests don't work for +// some types in IE 11, we use a fingerprinting heuristic instead, based +// on the methods. It's not great, but it's the best we got. +// The fingerprint method lists are defined below. +function ie11fingerprint(methods) { + var length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(methods); + return function(obj) { + if (obj == null) return false; + // `Map`, `WeakMap` and `Set` have no enumerable keys. + var keys = (0,_allKeys_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj); + if ((0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(keys)) return false; + for (var i = 0; i < length; i++) { + if (!(0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj[methods[i]])) return false; + } + // If we are testing against `WeakMap`, we need to ensure that + // `obj` doesn't have a `forEach` method in order to distinguish + // it from a regular `Map`. + return methods !== weakMapMethods || !(0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj[forEachName]); + }; +} - var nextTick; - if (typeof setImmediate === "function") { - // In IE10, or use https://github.com/NobleJS/setImmediate - if (typeof window !== "undefined") { - nextTick = setImmediate.bind(window); - } else { - nextTick = setImmediate; - } - } else if (typeof process !== "undefined") { - // node - nextTick = function (cb) { - process.nextTick(cb); - }; - } else if (typeof MessageChannel !== "undefined") { - // modern browsers - // http://www.nonblocking.io/2011/06/windownexttick.html - var channel = new MessageChannel(); - // linked list of tasks (single, with head node) - var head = {}, tail = head; - channel.port1.onmessage = function () { - head = head.next; - var task = head.task; - delete head.task; - task(); - }; - nextTick = function (task) { - tail = tail.next = {task: task}; - channel.port2.postMessage(0); - }; - } else { - // old browsers - nextTick = function (task) { - setTimeout(task, 0); - }; - } +// In the interest of compact minification, we write +// each string in the fingerprints only once. +var forEachName = 'forEach', + hasName = 'has', + commonInit = ['clear', 'delete'], + mapTail = ['get', hasName, 'set']; +// `Map`, `WeakMap` and `Set` each have slightly different +// combinations of the above sublists. +var mapMethods = commonInit.concat(forEachName, mapTail), + weakMapMethods = commonInit.concat(mapTail), + setMethods = ['add'].concat(commonInit, forEachName, hasName); - //noinspection JSHint - var Promise = declare({ - instance: { - __fired: false, - __results: null, +/***/ }), - __error: null, +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3246027__) => { - __errorCbs: null, +"use strict"; +__nested_webpack_require_3246027__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3246027__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ optimizeCb) +/* harmony export */ }); +// Internal function that returns an efficient (for current engines) version +// of the passed-in callback, to be repeatedly applied in other Underscore +// functions. +function optimizeCb(func, context, argCount) { + if (context === void 0) return func; + switch (argCount == null ? 3 : argCount) { + case 1: return function(value) { + return func.call(context, value); + }; + // The 2-argument case is omitted because we’re not using it. + case 3: return function(value, index, collection) { + return func.call(context, value, index, collection); + }; + case 4: return function(accumulator, value, index, collection) { + return func.call(context, accumulator, value, index, collection); + }; + } + return function() { + return func.apply(context, arguments); + }; +} - __cbs: null, - constructor: function () { - this.__errorCbs = []; - this.__cbs = []; - fn.bindAll(this, ["callback", "errback", "resolve", "classic", "__resolve", "addCallback", "addErrback"]); - }, +/***/ }), - __resolve: function () { - if (!this.__fired) { - this.__fired = true; - var cbs = this.__error ? this.__errorCbs : this.__cbs, - len = cbs.length, i, - results = this.__error || this.__results; - for (i = 0; i < len; i++) { - this.__callNextTick(cbs[i], results); - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_setup.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3247441__) => { - } - }, +"use strict"; +__nested_webpack_require_3247441__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3247441__.d(__webpack_exports__, { +/* harmony export */ "VERSION": () => (/* binding */ VERSION), +/* harmony export */ "root": () => (/* binding */ root), +/* harmony export */ "ArrayProto": () => (/* binding */ ArrayProto), +/* harmony export */ "ObjProto": () => (/* binding */ ObjProto), +/* harmony export */ "SymbolProto": () => (/* binding */ SymbolProto), +/* harmony export */ "push": () => (/* binding */ push), +/* harmony export */ "slice": () => (/* binding */ slice), +/* harmony export */ "toString": () => (/* binding */ toString), +/* harmony export */ "hasOwnProperty": () => (/* binding */ hasOwnProperty), +/* harmony export */ "supportsArrayBuffer": () => (/* binding */ supportsArrayBuffer), +/* harmony export */ "supportsDataView": () => (/* binding */ supportsDataView), +/* harmony export */ "nativeIsArray": () => (/* binding */ nativeIsArray), +/* harmony export */ "nativeKeys": () => (/* binding */ nativeKeys), +/* harmony export */ "nativeCreate": () => (/* binding */ nativeCreate), +/* harmony export */ "nativeIsView": () => (/* binding */ nativeIsView), +/* harmony export */ "_isNaN": () => (/* binding */ _isNaN), +/* harmony export */ "_isFinite": () => (/* binding */ _isFinite), +/* harmony export */ "hasEnumBug": () => (/* binding */ hasEnumBug), +/* harmony export */ "nonEnumerableProps": () => (/* binding */ nonEnumerableProps), +/* harmony export */ "MAX_ARRAY_INDEX": () => (/* binding */ MAX_ARRAY_INDEX) +/* harmony export */ }); +// Current version. +var VERSION = '1.13.6'; - __callNextTick: function (cb, results) { - nextTick(function () { - cb.apply(this, results); - }); - }, +// Establish the root object, `window` (`self`) in the browser, `global` +// on the server, or `this` in some virtual machines. We use `self` +// instead of `window` for `WebWorker` support. +var root = (typeof self == 'object' && self.self === self && self) || + (typeof global == 'object' && global.global === global && global) || + Function('return this')() || + {}; - addCallback: function (cb) { - if (cb) { - if (isPromiseLike(cb) && cb.callback) { - cb = cb.callback; - } - if (this.__fired && this.__results) { - this.__callNextTick(cb, this.__results); - } else { - this.__cbs.push(cb); - } - } - return this; - }, +// Save bytes in the minified (but not gzipped) version: +var ArrayProto = Array.prototype, ObjProto = Object.prototype; +var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null; +// Create quick reference variables for speed access to core prototypes. +var push = ArrayProto.push, + slice = ArrayProto.slice, + toString = ObjProto.toString, + hasOwnProperty = ObjProto.hasOwnProperty; - addErrback: function (cb) { - if (cb) { - if (isPromiseLike(cb) && cb.errback) { - cb = cb.errback; - } - if (this.__fired && this.__error) { - this.__callNextTick(cb, this.__error); - } else { - this.__errorCbs.push(cb); - } - } - return this; - }, +// Modern feature detection. +var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined', + supportsDataView = typeof DataView !== 'undefined'; + +// All **ECMAScript 5+** native function implementations that we hope to use +// are declared here. +var nativeIsArray = Array.isArray, + nativeKeys = Object.keys, + nativeCreate = Object.create, + nativeIsView = supportsArrayBuffer && ArrayBuffer.isView; + +// Create references to these builtin functions because we override them. +var _isNaN = isNaN, + _isFinite = isFinite; - callback: function (args) { - if (!this.__fired) { - this.__results = arguments; - this.__resolve(); - } - return this.promise(); - }, +// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed. +var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString'); +var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString', + 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; - errback: function (args) { - if (!this.__fired) { - this.__error = arguments; - this.__resolve(); - } - return this.promise(); - }, +// The largest integer that can be represented exactly. +var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1; - resolve: function (err, args) { - if (err) { - this.errback(err); - } else { - this.callback.apply(this, argsToArray(arguments, 1)); - } - return this; - }, - classic: function (cb) { - if ("function" === typeof cb) { - this.addErrback(function (err) { - cb(err); - }); - this.addCallback(function () { - cb.apply(this, [null].concat(argsToArray(arguments))); - }); - } - return this; - }, +/***/ }), - then: function (callback, errback) { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_shallowProperty.js": +/*!********************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_shallowProperty.js ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3251227__) => { - var promise = new Promise(), errorHandler = promise; - if (isFunction(errback)) { - errorHandler = createHandler(errback, promise); - } - this.addErrback(errorHandler); - if (isFunction(callback)) { - this.addCallback(createHandler(callback, promise)); - } else { - this.addCallback(promise); - } +"use strict"; +__nested_webpack_require_3251227__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3251227__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ shallowProperty) +/* harmony export */ }); +// Internal helper to generate a function to obtain property `key` from `obj`. +function shallowProperty(key) { + return function(obj) { + return obj == null ? void 0 : obj[key]; + }; +} - return promise.promise(); - }, - both: function (callback) { - return this.then(callback, callback); - }, +/***/ }), - promise: function () { - var ret = { - then: bind(this, "then"), - both: bind(this, "both"), - promise: function () { - return ret; - } - }; - forEach(["addCallback", "addErrback", "classic"], function (action) { - ret[action] = bind(this, function () { - this[action].apply(this, arguments); - return ret; - }); - }, this); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3252068__) => { - return ret; - } +"use strict"; +__nested_webpack_require_3252068__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3252068__.d(__webpack_exports__, { +/* harmony export */ "hasStringTagBug": () => (/* binding */ hasStringTagBug), +/* harmony export */ "isIE11": () => (/* binding */ isIE11) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3252068__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _hasObjectTag_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3252068__(/*! ./_hasObjectTag.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_hasObjectTag.js"); - } - }); +// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`. +// In IE 11, the most common among them, this problem also applies to +// `Map`, `WeakMap` and `Set`. +var hasStringTagBug = ( + _setup_js__WEBPACK_IMPORTED_MODULE_0__.supportsDataView && (0,_hasObjectTag_js__WEBPACK_IMPORTED_MODULE_1__.default)(new DataView(new ArrayBuffer(8))) + ), + isIE11 = (typeof Map !== 'undefined' && (0,_hasObjectTag_js__WEBPACK_IMPORTED_MODULE_1__.default)(new Map)); - var PromiseList = Promise.extend({ - instance: { - /*@private*/ - __results: null, +/***/ }), - /*@private*/ - __errors: null, +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3253621__) => { - /*@private*/ - __promiseLength: 0, +"use strict"; +__nested_webpack_require_3253621__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3253621__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ tagTester) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3253621__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); - /*@private*/ - __defLength: 0, - /*@private*/ - __firedLength: 0, +// Internal function for creating a `toString`-based type tester. +function tagTester(name) { + var tag = '[object ' + name + ']'; + return function(obj) { + return _setup_js__WEBPACK_IMPORTED_MODULE_0__.toString.call(obj) === tag; + }; +} - normalizeResults: false, - constructor: function (defs, normalizeResults) { - this.__errors = []; - this.__results = []; - this.normalizeResults = isBoolean(normalizeResults) ? normalizeResults : false; - this._super(arguments); - if (defs && defs.length) { - this.__defLength = defs.length; - forEach(defs, this.__addPromise, this); - } else { - this.__resolve(); - } - }, +/***/ }), - __addPromise: function (promise, i) { - promise.then( - bind(this, function () { - var args = argsToArray(arguments); - args.unshift(i); - this.callback.apply(this, args); - }), - bind(this, function () { - var args = argsToArray(arguments); - args.unshift(i); - this.errback.apply(this, args); - }) - ); - }, +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_toBufferView.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_toBufferView.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3254683__) => { - __resolve: function () { - if (!this.__fired) { - this.__fired = true; - var cbs = this.__errors.length ? this.__errorCbs : this.__cbs, - len = cbs.length, i, - results = this.__errors.length ? this.__errors : this.__results; - for (i = 0; i < len; i++) { - this.__callNextTick(cbs[i], results); - } +"use strict"; +__nested_webpack_require_3254683__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3254683__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toBufferView) +/* harmony export */ }); +/* harmony import */ var _getByteLength_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3254683__(/*! ./_getByteLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getByteLength.js"); - } - }, - __callNextTick: function (cb, results) { - nextTick(function () { - cb.apply(null, [results]); - }); - }, +// Internal function to wrap or shallow-copy an ArrayBuffer, +// typed array or DataView to a new view, reusing the buffer. +function toBufferView(bufferSource) { + return new Uint8Array( + bufferSource.buffer || bufferSource, + bufferSource.byteOffset || 0, + (0,_getByteLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(bufferSource) + ); +} - addCallback: function (cb) { - if (cb) { - if (isPromiseLike(cb) && cb.callback) { - cb = bind(cb, "callback"); - } - if (this.__fired && !this.__errors.length) { - this.__callNextTick(cb, this.__results); - } else { - this.__cbs.push(cb); - } - } - return this; - }, - addErrback: function (cb) { - if (cb) { - if (isPromiseLike(cb) && cb.errback) { - cb = bind(cb, "errback"); - } - if (this.__fired && this.__errors.length) { - this.__callNextTick(cb, this.__errors); - } else { - this.__errorCbs.push(cb); - } - } - return this; - }, +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3255853__) => { - callback: function (i) { - if (this.__fired) { - throw new Error("Already fired!"); - } - var args = argsToArray(arguments); - if (this.normalizeResults) { - args = args.slice(1); - args = args.length === 1 ? args.pop() : args; - } - this.__results[i] = args; - this.__firedLength++; - if (this.__firedLength === this.__defLength) { - this.__resolve(); - } - return this.promise(); - }, +"use strict"; +__nested_webpack_require_3255853__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3255853__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toPath) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3255853__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); +/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3255853__(/*! ./toPath.js */ "./build/cht-core-4-6/node_modules/underscore/modules/toPath.js"); - errback: function (i) { - if (this.__fired) { - throw new Error("Already fired!"); - } - var args = argsToArray(arguments); - if (this.normalizeResults) { - args = args.slice(1); - args = args.length === 1 ? args.pop() : args; - } - this.__errors[i] = args; - this.__firedLength++; - if (this.__firedLength === this.__defLength) { - this.__resolve(); - } - return this.promise(); - } - } - }); +// Internal wrapper for `_.toPath` to enable minification. +// Similar to `cb` for `_.iteratee`. +function toPath(path) { + return _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.toPath(path); +} - function callNext(list, results, propogate) { - var ret = new Promise().callback(); - forEach(list, function (listItem) { - ret = ret.then(propogate ? listItem : bindIgnore(null, listItem)); - if (!propogate) { - ret = ret.then(function (res) { - results.push(res); - return results; - }); - } - }); - return ret; - } +/***/ }), - function isPromiseLike(obj) { - return !isUndefinedOrNull(obj) && (isFunction(obj.then)); - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_unescapeMap.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_unescapeMap.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3257052__) => { - function wrapThenPromise(p) { - var ret = new Promise(); - p.then(bind(ret, "callback"), bind(ret, "errback")); - return ret.promise(); - } +"use strict"; +__nested_webpack_require_3257052__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3257052__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _invert_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3257052__(/*! ./invert.js */ "./build/cht-core-4-6/node_modules/underscore/modules/invert.js"); +/* harmony import */ var _escapeMap_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3257052__(/*! ./_escapeMap.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_escapeMap.js"); - function when(args) { - var p; - args = argsToArray(arguments); - if (!args.length) { - p = new Promise().callback(args).promise(); - } else if (args.length === 1) { - args = args.pop(); - if (isPromiseLike(args)) { - if (args.addCallback && args.addErrback) { - p = new Promise(); - args.addCallback(p.callback); - args.addErrback(p.errback); - } else { - p = wrapThenPromise(args); - } - } else if (isArray(args) && array.every(args, isPromiseLike)) { - p = new PromiseList(args, true).promise(); - } else { - p = new Promise().callback(args); - } - } else { - p = new PromiseList(array.map(args, function (a) { - return when(a); - }), true).promise(); - } - return p; - } - function wrap(fn, scope) { - return function _wrap() { - var ret = new Promise(); - var args = argsToArray(arguments); - args.push(ret.resolve); - fn.apply(scope || this, args); - return ret.promise(); - }; - } +// Internal list of HTML entities for unescaping. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_invert_js__WEBPACK_IMPORTED_MODULE_0__.default)(_escapeMap_js__WEBPACK_IMPORTED_MODULE_1__.default)); - function serial(list) { - if (isArray(list)) { - return callNext(list, [], false); - } else { - throw new Error("When calling promise.serial the first argument must be an array"); - } - } +/***/ }), - function chain(list) { - if (isArray(list)) { - return callNext(list, [], true); - } else { - throw new Error("When calling promise.serial the first argument must be an array"); - } - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/after.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/after.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3258252__) => { +"use strict"; +__nested_webpack_require_3258252__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3258252__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ after) +/* harmony export */ }); +// Returns a function that will only be executed on and after the Nth call. +function after(times, func) { + return function() { + if (--times < 1) { + return func.apply(this, arguments); + } + }; +} - function wait(args, fn) { - args = argsToArray(arguments); - var resolved = false; - fn = args.pop(); - var p = when(args); - return function waiter() { - if (!resolved) { - args = arguments; - return p.then(bind(this, function doneWaiting() { - resolved = true; - return fn.apply(this, args); - })); - } else { - return when(fn.apply(this, arguments)); - } - }; - } - function createPromise() { - return new Promise(); - } +/***/ }), - function createPromiseList(promises) { - return new PromiseList(promises, true).promise(); - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3259078__) => { - function createRejected(val) { - return createPromise().errback(val); - } +"use strict"; +__nested_webpack_require_3259078__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3259078__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ allKeys) +/* harmony export */ }); +/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3259078__(/*! ./isObject.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isObject.js"); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3259078__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _collectNonEnumProps_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3259078__(/*! ./_collectNonEnumProps.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_collectNonEnumProps.js"); - function createResolved(val) { - return createPromise().callback(val); - } - return extended - .define({ - isPromiseLike: isPromiseLike - }).expose({ - isPromiseLike: isPromiseLike, - when: when, - wrap: wrap, - wait: wait, - serial: serial, - chain: chain, - Promise: Promise, - PromiseList: PromiseList, - promise: createPromise, - defer: createPromise, - deferredList: createPromiseList, - reject: createRejected, - resolve: createResolved - }); +// Retrieve all the enumerable property names of an object. +function allKeys(obj) { + if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj)) return []; + var keys = []; + for (var key in obj) keys.push(key); + // Ahem, IE < 9. + if (_setup_js__WEBPACK_IMPORTED_MODULE_1__.hasEnumBug) (0,_collectNonEnumProps_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj, keys); + return keys; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/before.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/before.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3260653__) => { + +"use strict"; +__nested_webpack_require_3260653__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3260653__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ before) +/* harmony export */ }); +// Returns a function that will only be executed up to (but not including) the +// Nth call. +function before(times, func) { + var memo; + return function() { + if (--times > 0) { + memo = func.apply(this, arguments); } + if (times <= 1) func = null; + return memo; + }; +} - if (true) { - if ( true && module.exports) { - module.exports = definePromise(__webpack_require__(/*! declare.js */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/declare.js/index.js"), __webpack_require__(/*! extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extended/index.js"), __webpack_require__(/*! array-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/array-extended/index.js"), __webpack_require__(/*! is-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/is-extended/index.js"), __webpack_require__(/*! function-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/function-extended/index.js"), __webpack_require__(/*! arguments-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/arguments-extended/index.js")); - } - } else {} -}).call(this); +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/bind.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/bind.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3261547__) => { +"use strict"; +__nested_webpack_require_3261547__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3261547__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3261547__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3261547__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _executeBound_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3261547__(/*! ./_executeBound.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_executeBound.js"); +// Create a function bound to a given object (assigning `this`, and arguments, +// optionally). +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(func, context, args) { + if (!(0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(func)) throw new TypeError('Bind must be called on a function'); + var bound = (0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(callArgs) { + return (0,_executeBound_js__WEBPACK_IMPORTED_MODULE_2__.default)(func, bound, context, this, args.concat(callArgs)); + }); + return bound; +})); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/string-extended/index.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/string-extended/index.js ***! - \**************************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/bindAll.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/bindAll.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3263371__) => { -(function () { - "use strict"; +"use strict"; +__nested_webpack_require_3263371__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3263371__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3263371__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3263371__(/*! ./_flatten.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js"); +/* harmony import */ var _bind_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3263371__(/*! ./bind.js */ "./build/cht-core-4-6/node_modules/underscore/modules/bind.js"); - function defineString(extended, is, date, arr) { - var stringify; - if (typeof JSON === "undefined") { - /* - json2.js - 2012-10-08 - Public Domain. - NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. - */ +// Bind a number of an object's methods to that object. Remaining arguments +// are the method names to be bound. Useful for ensuring that all callbacks +// defined on an object belong to it. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(obj, keys) { + keys = (0,_flatten_js__WEBPACK_IMPORTED_MODULE_1__.default)(keys, false, false); + var index = keys.length; + if (index < 1) throw new Error('bindAll must be passed function names'); + while (index--) { + var key = keys[index]; + obj[key] = (0,_bind_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj[key], obj); + } + return obj; +})); - (function () { - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; - } - var isPrimitive = is.tester().isString().isNumber().isBoolean().tester(); +/***/ }), - function toJSON(obj) { - if (is.isDate(obj)) { - return isFinite(obj.valueOf()) ? obj.getUTCFullYear() + '-' + - f(obj.getUTCMonth() + 1) + '-' + - f(obj.getUTCDate()) + 'T' + - f(obj.getUTCHours()) + ':' + - f(obj.getUTCMinutes()) + ':' + - f(obj.getUTCSeconds()) + 'Z' - : null; - } else if (isPrimitive(obj)) { - return obj.valueOf(); - } - return obj; - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/chain.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/chain.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3265205__) => { - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - gap, - indent, - meta = { // table of character substitutions - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"': '\\"', - '\\': '\\\\' - }, - rep; +"use strict"; +__nested_webpack_require_3265205__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3265205__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ chain) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3265205__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); - function quote(string) { - escapable.lastIndex = 0; - return escapable.test(string) ? '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' ? c : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : '"' + string + '"'; - } +// Start chaining a wrapped Underscore object. +function chain(obj) { + var instance = (0,_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj); + instance._chain = true; + return instance; +} + + +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/chunk.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/chunk.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3266199__) => { + +"use strict"; +__nested_webpack_require_3266199__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3266199__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ chunk) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3266199__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); - function str(key, holder) { - var i, k, v, length, mind = gap, partial, value = holder[key]; - if (value) { - value = toJSON(value); - } - if (typeof rep === 'function') { - value = rep.call(holder, key, value); - } - switch (typeof value) { - case 'string': - return quote(value); - case 'number': - return isFinite(value) ? String(value) : 'null'; - case 'boolean': - case 'null': - return String(value); - case 'object': - if (!value) { - return 'null'; - } - gap += indent; - partial = []; - if (Object.prototype.toString.apply(value) === '[object Array]') { - length = value.length; - for (i = 0; i < length; i += 1) { - partial[i] = str(i, value) || 'null'; - } - v = partial.length === 0 ? '[]' : gap ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' : '[' + partial.join(',') + ']'; - gap = mind; - return v; - } - if (rep && typeof rep === 'object') { - length = rep.length; - for (i = 0; i < length; i += 1) { - if (typeof rep[i] === 'string') { - k = rep[i]; - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } - } - } else { - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } - } - } - v = partial.length === 0 ? '{}' : gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' : '{' + partial.join(',') + '}'; - gap = mind; - return v; - } - } +// Chunk a single array into multiple arrays, each containing `count` or fewer +// items. +function chunk(array, count) { + if (count == null || count < 1) return []; + var result = []; + var i = 0, length = array.length; + while (i < length) { + result.push(_setup_js__WEBPACK_IMPORTED_MODULE_0__.slice.call(array, i, i += count)); + } + return result; +} - stringify = function (value, replacer, space) { - var i; - gap = ''; - indent = ''; - if (typeof space === 'number') { - for (i = 0; i < space; i += 1) { - indent += ' '; - } - } else if (typeof space === 'string') { - indent = space; - } - rep = replacer; - if (replacer && typeof replacer !== 'function' && - (typeof replacer !== 'object' || - typeof replacer.length !== 'number')) { - throw new Error('JSON.stringify'); - } - return str('', {'': value}); - }; - }()); - } else { - stringify = JSON.stringify; - } +/***/ }), - var isHash = is.isHash, aSlice = Array.prototype.slice; +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/clone.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/clone.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3267341__) => { - var FORMAT_REGEX = /%((?:-?\+?.?\d*)?|(?:\[[^\[|\]]*\]))?([sjdDZ])/g; - var INTERP_REGEX = /\{(?:\[([^\[|\]]*)\])?(\w+)\}/g; - var STR_FORMAT = /(-?)(\+?)([A-Z|a-z|\W]?)([1-9][0-9]*)?$/; - var OBJECT_FORMAT = /([1-9][0-9]*)$/g; +"use strict"; +__nested_webpack_require_3267341__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3267341__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ clone) +/* harmony export */ }); +/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3267341__(/*! ./isObject.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isObject.js"); +/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3267341__(/*! ./isArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArray.js"); +/* harmony import */ var _extend_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3267341__(/*! ./extend.js */ "./build/cht-core-4-6/node_modules/underscore/modules/extend.js"); - function formatString(string, format) { - var ret = string; - if (STR_FORMAT.test(format)) { - var match = format.match(STR_FORMAT); - var isLeftJustified = match[1], padChar = match[3], width = match[4]; - if (width) { - width = parseInt(width, 10); - if (ret.length < width) { - ret = pad(ret, width, padChar, isLeftJustified); - } else { - ret = truncate(ret, width); - } - } - } - return ret; - } - function formatNumber(number, format) { - var ret; - if (is.isNumber(number)) { - ret = "" + number; - if (STR_FORMAT.test(format)) { - var match = format.match(STR_FORMAT); - var isLeftJustified = match[1], signed = match[2], padChar = match[3], width = match[4]; - if (signed) { - ret = (number > 0 ? "+" : "") + ret; - } - if (width) { - width = parseInt(width, 10); - if (ret.length < width) { - ret = pad(ret, width, padChar || "0", isLeftJustified); - } else { - ret = truncate(ret, width); - } - } - } - } else { - throw new Error("stringExtended.format : when using %d the parameter must be a number!"); - } - return ret; - } - function formatObject(object, format) { - var ret, match = format.match(OBJECT_FORMAT), spacing = 0; - if (match) { - spacing = parseInt(match[0], 10); - if (isNaN(spacing)) { - spacing = 0; - } - } - try { - ret = stringify(object, null, spacing); - } catch (e) { - throw new Error("stringExtended.format : Unable to parse json from ", object); - } - return ret; - } +// Create a (shallow-cloned) duplicate of an object. +function clone(obj) { + if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj)) return obj; + return (0,_isArray_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) ? obj.slice() : (0,_extend_js__WEBPACK_IMPORTED_MODULE_2__.default)({}, obj); +} - var styles = { - //styles - bold: 1, - bright: 1, - italic: 3, - underline: 4, - blink: 5, - inverse: 7, - crossedOut: 9, +/***/ }), - red: 31, - green: 32, - yellow: 33, - blue: 34, - magenta: 35, - cyan: 36, - white: 37, +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/compact.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/compact.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3268794__) => { - redBackground: 41, - greenBackground: 42, - yellowBackground: 43, - blueBackground: 44, - magentaBackground: 45, - cyanBackground: 46, - whiteBackground: 47, +"use strict"; +__nested_webpack_require_3268794__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3268794__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ compact) +/* harmony export */ }); +/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3268794__(/*! ./filter.js */ "./build/cht-core-4-6/node_modules/underscore/modules/filter.js"); - encircled: 52, - overlined: 53, - grey: 90, - black: 90 - }; - var characters = { - SMILEY: "☺", - SOLID_SMILEY: "☻", - HEART: "♥", - DIAMOND: "♦", - CLOVE: "♣", - SPADE: "♠", - DOT: "•", - SQUARE_CIRCLE: "◘", - CIRCLE: "○", - FILLED_SQUARE_CIRCLE: "◙", - MALE: "♂", - FEMALE: "♀", - EIGHT_NOTE: "♪", - DOUBLE_EIGHTH_NOTE: "♫", - SUN: "☼", - PLAY: "►", - REWIND: "◄", - UP_DOWN: "↕", - PILCROW: "¶", - SECTION: "§", - THICK_MINUS: "▬", - SMALL_UP_DOWN: "↨", - UP_ARROW: "↑", - DOWN_ARROW: "↓", - RIGHT_ARROW: "→", - LEFT_ARROW: "←", - RIGHT_ANGLE: "∟", - LEFT_RIGHT_ARROW: "↔", - TRIANGLE: "▲", - DOWN_TRIANGLE: "▼", - HOUSE: "⌂", - C_CEDILLA: "Ç", - U_UMLAUT: "ü", - E_ACCENT: "é", - A_LOWER_CIRCUMFLEX: "â", - A_LOWER_UMLAUT: "ä", - A_LOWER_GRAVE_ACCENT: "à", - A_LOWER_CIRCLE_OVER: "å", - C_LOWER_CIRCUMFLEX: "ç", - E_LOWER_CIRCUMFLEX: "ê", - E_LOWER_UMLAUT: "ë", - E_LOWER_GRAVE_ACCENT: "è", - I_LOWER_UMLAUT: "ï", - I_LOWER_CIRCUMFLEX: "î", - I_LOWER_GRAVE_ACCENT: "ì", - A_UPPER_UMLAUT: "Ä", - A_UPPER_CIRCLE: "Å", - E_UPPER_ACCENT: "É", - A_E_LOWER: "æ", - A_E_UPPER: "Æ", - O_LOWER_CIRCUMFLEX: "ô", - O_LOWER_UMLAUT: "ö", - O_LOWER_GRAVE_ACCENT: "ò", - U_LOWER_CIRCUMFLEX: "û", - U_LOWER_GRAVE_ACCENT: "ù", - Y_LOWER_UMLAUT: "ÿ", - O_UPPER_UMLAUT: "Ö", - U_UPPER_UMLAUT: "Ü", - CENTS: "¢", - POUND: "£", - YEN: "¥", - CURRENCY: "¤", - PTS: "₧", - FUNCTION: "ƒ", - A_LOWER_ACCENT: "á", - I_LOWER_ACCENT: "í", - O_LOWER_ACCENT: "ó", - U_LOWER_ACCENT: "ú", - N_LOWER_TILDE: "ñ", - N_UPPER_TILDE: "Ñ", - A_SUPER: "ª", - O_SUPER: "º", - UPSIDEDOWN_QUESTION: "¿", - SIDEWAYS_L: "⌐", - NEGATION: "¬", - ONE_HALF: "½", - ONE_FOURTH: "¼", - UPSIDEDOWN_EXCLAMATION: "¡", - DOUBLE_LEFT: "«", - DOUBLE_RIGHT: "»", - LIGHT_SHADED_BOX: "░", - MEDIUM_SHADED_BOX: "▒", - DARK_SHADED_BOX: "▓", - VERTICAL_LINE: "│", - MAZE__SINGLE_RIGHT_T: "┤", - MAZE_SINGLE_RIGHT_TOP: "┐", - MAZE_SINGLE_RIGHT_BOTTOM_SMALL: "┘", - MAZE_SINGLE_LEFT_TOP_SMALL: "┌", - MAZE_SINGLE_LEFT_BOTTOM_SMALL: "└", - MAZE_SINGLE_LEFT_T: "├", - MAZE_SINGLE_BOTTOM_T: "┴", - MAZE_SINGLE_TOP_T: "┬", - MAZE_SINGLE_CENTER: "┼", - MAZE_SINGLE_HORIZONTAL_LINE: "─", - MAZE_SINGLE_RIGHT_DOUBLECENTER_T: "╡", - MAZE_SINGLE_RIGHT_DOUBLE_BL: "╛", - MAZE_SINGLE_RIGHT_DOUBLE_T: "╢", - MAZE_SINGLE_RIGHT_DOUBLEBOTTOM_TOP: "╖", - MAZE_SINGLE_RIGHT_DOUBLELEFT_TOP: "╕", - MAZE_SINGLE_LEFT_DOUBLE_T: "╞", - MAZE_SINGLE_BOTTOM_DOUBLE_T: "╧", - MAZE_SINGLE_TOP_DOUBLE_T: "╤", - MAZE_SINGLE_TOP_DOUBLECENTER_T: "╥", - MAZE_SINGLE_BOTTOM_DOUBLECENTER_T: "╨", - MAZE_SINGLE_LEFT_DOUBLERIGHT_BOTTOM: "╘", - MAZE_SINGLE_LEFT_DOUBLERIGHT_TOP: "╒", - MAZE_SINGLE_LEFT_DOUBLEBOTTOM_TOP: "╓", - MAZE_SINGLE_LEFT_DOUBLETOP_BOTTOM: "╙", - MAZE_SINGLE_LEFT_TOP: "Γ", - MAZE_SINGLE_RIGHT_BOTTOM: "╜", - MAZE_SINGLE_LEFT_CENTER: "╟", - MAZE_SINGLE_DOUBLECENTER_CENTER: "╫", - MAZE_SINGLE_DOUBLECROSS_CENTER: "╪", - MAZE_DOUBLE_LEFT_CENTER: "╣", - MAZE_DOUBLE_VERTICAL: "║", - MAZE_DOUBLE_RIGHT_TOP: "╗", - MAZE_DOUBLE_RIGHT_BOTTOM: "╝", - MAZE_DOUBLE_LEFT_BOTTOM: "╚", - MAZE_DOUBLE_LEFT_TOP: "╔", - MAZE_DOUBLE_BOTTOM_T: "╩", - MAZE_DOUBLE_TOP_T: "╦", - MAZE_DOUBLE_LEFT_T: "╠", - MAZE_DOUBLE_HORIZONTAL: "═", - MAZE_DOUBLE_CROSS: "╬", - SOLID_RECTANGLE: "█", - THICK_LEFT_VERTICAL: "▌", - THICK_RIGHT_VERTICAL: "▐", - SOLID_SMALL_RECTANGLE_BOTTOM: "▄", - SOLID_SMALL_RECTANGLE_TOP: "▀", - PHI_UPPER: "Φ", - INFINITY: "∞", - INTERSECTION: "∩", - DEFINITION: "≡", - PLUS_MINUS: "±", - GT_EQ: "≥", - LT_EQ: "≤", - THEREFORE: "⌠", - SINCE: "∵", - DOESNOT_EXIST: "∄", - EXISTS: "∃", - FOR_ALL: "∀", - EXCLUSIVE_OR: "⊕", - BECAUSE: "⌡", - DIVIDE: "÷", - APPROX: "≈", - DEGREE: "°", - BOLD_DOT: "∙", - DOT_SMALL: "·", - CHECK: "√", - ITALIC_X: "✗", - SUPER_N: "ⁿ", - SQUARED: "²", - CUBED: "³", - SOLID_BOX: "■", - PERMILE: "‰", - REGISTERED_TM: "®", - COPYRIGHT: "©", - TRADEMARK: "™", - BETA: "β", - GAMMA: "γ", - ZETA: "ζ", - ETA: "η", - IOTA: "ι", - KAPPA: "κ", - LAMBDA: "λ", - NU: "ν", - XI: "ξ", - OMICRON: "ο", - RHO: "ρ", - UPSILON: "υ", - CHI_LOWER: "φ", - CHI_UPPER: "χ", - PSI: "ψ", - ALPHA: "α", - ESZETT: "ß", - PI: "π", - SIGMA_UPPER: "Σ", - SIGMA_LOWER: "σ", - MU: "µ", - TAU: "τ", - THETA: "Θ", - OMEGA: "Ω", - DELTA: "δ", - PHI_LOWER: "φ", - EPSILON: "ε" - }; +// Trim out all falsy values from an array. +function compact(array) { + return (0,_filter_js__WEBPACK_IMPORTED_MODULE_0__.default)(array, Boolean); +} - function pad(string, length, ch, end) { - string = "" + string; //check for numbers - ch = ch || " "; - var strLen = string.length; - while (strLen < length) { - if (end) { - string += ch; - } else { - string = ch + string; - } - strLen++; - } - return string; - } - function truncate(string, length, end) { - var ret = string; - if (is.isString(ret)) { - if (string.length > length) { - if (end) { - var l = string.length; - ret = string.substring(l - length, l); - } else { - ret = string.substring(0, length); - } - } - } else { - ret = truncate("" + ret, length); - } - return ret; - } +/***/ }), - function format(str, obj) { - if (obj instanceof Array) { - var i = 0, len = obj.length; - //find the matches - return str.replace(FORMAT_REGEX, function (m, format, type) { - var replacer, ret; - if (i < len) { - replacer = obj[i++]; - } else { - //we are out of things to replace with so - //just return the match? - return m; - } - if (m === "%s" || m === "%d" || m === "%D") { - //fast path! - ret = replacer + ""; - } else if (m === "%Z") { - ret = replacer.toUTCString(); - } else if (m === "%j") { - try { - ret = stringify(replacer); - } catch (e) { - throw new Error("stringExtended.format : Unable to parse json from ", replacer); - } - } else { - format = format.replace(/^\[|\]$/g, ""); - switch (type) { - case "s": - ret = formatString(replacer, format); - break; - case "d": - ret = formatNumber(replacer, format); - break; - case "j": - ret = formatObject(replacer, format); - break; - case "D": - ret = date.format(replacer, format); - break; - case "Z": - ret = date.format(replacer, format, true); - break; - } - } - return ret; - }); - } else if (isHash(obj)) { - return str.replace(INTERP_REGEX, function (m, format, value) { - value = obj[value]; - if (!is.isUndefined(value)) { - if (format) { - if (is.isString(value)) { - return formatString(value, format); - } else if (is.isNumber(value)) { - return formatNumber(value, format); - } else if (is.isDate(value)) { - return date.format(value, format); - } else if (is.isObject(value)) { - return formatObject(value, format); - } - } else { - return "" + value; - } - } - return m; - }); - } else { - var args = aSlice.call(arguments).slice(1); - return format(str, args); - } - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/compose.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/compose.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3269741__) => { - function toArray(testStr, delim) { - var ret = []; - if (testStr) { - if (testStr.indexOf(delim) > 0) { - ret = testStr.replace(/\s+/g, "").split(delim); - } - else { - ret.push(testStr); - } - } - return ret; - } +"use strict"; +__nested_webpack_require_3269741__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3269741__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ compose) +/* harmony export */ }); +// Returns a function that is the composition of a list of functions, each +// consuming the return value of the function that follows. +function compose() { + var args = arguments; + var start = args.length - 1; + return function() { + var i = start; + var result = args[start].apply(this, arguments); + while (i--) result = args[i].call(this, result); + return result; + }; +} - function multiply(str, times) { - var ret = []; - if (times) { - for (var i = 0; i < times; i++) { - ret.push(str); - } - } - return ret.join(""); - } +/***/ }), - function style(str, options) { - var ret, i, l; - if (options) { - if (is.isArray(str)) { - ret = []; - for (i = 0, l = str.length; i < l; i++) { - ret.push(style(str[i], options)); - } - } else if (options instanceof Array) { - ret = str; - for (i = 0, l = options.length; i < l; i++) { - ret = style(ret, options[i]); - } - } else if (options in styles) { - ret = '\x1B[' + styles[options] + 'm' + str + '\x1B[0m'; - } - } - return ret; - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/constant.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/constant.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3270751__) => { - function escape(str, except) { - return str.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, function (ch) { - if (except && arr.indexOf(except, ch) !== -1) { - return ch; - } - return "\\" + ch; - }); - } +"use strict"; +__nested_webpack_require_3270751__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3270751__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ constant) +/* harmony export */ }); +// Predicate-generating function. Often useful outside of Underscore. +function constant(value) { + return function() { + return value; + }; +} - function trim(str) { - return str.replace(/^\s*|\s*$/g, ""); - } - function trimLeft(str) { - return str.replace(/^\s*/, ""); - } +/***/ }), - function trimRight(str) { - return str.replace(/\s*$/, ""); - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/contains.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/contains.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3271522__) => { - function isEmpty(str) { - return str.length === 0; - } +"use strict"; +__nested_webpack_require_3271522__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3271522__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ contains) +/* harmony export */ }); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3271522__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3271522__(/*! ./values.js */ "./build/cht-core-4-6/node_modules/underscore/modules/values.js"); +/* harmony import */ var _indexOf_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3271522__(/*! ./indexOf.js */ "./build/cht-core-4-6/node_modules/underscore/modules/indexOf.js"); - var string = { - toArray: toArray, - pad: pad, - truncate: truncate, - multiply: multiply, - format: format, - style: style, - escape: escape, - trim: trim, - trimLeft: trimLeft, - trimRight: trimRight, - isEmpty: isEmpty - }; - return extended.define(is.isString, string).define(is.isArray, {style: style}).expose(string).expose({characters: characters}); - } - if (true) { - if ( true && module.exports) { - module.exports = defineString(__webpack_require__(/*! extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extended/index.js"), __webpack_require__(/*! is-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/is-extended/index.js"), __webpack_require__(/*! date-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/date-extended/index.js"), __webpack_require__(/*! array-extended */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/array-extended/index.js")); - } - } else {} +// Determine if the array or object contains a given item (using `===`). +function contains(obj, item, fromIndex, guard) { + if (!(0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj)) obj = (0,_values_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj); + if (typeof fromIndex != 'number' || guard) fromIndex = 0; + return (0,_indexOf_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj, item, fromIndex) >= 0; +} -}).call(this); +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/countBy.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/countBy.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3273096__) => { +"use strict"; +__nested_webpack_require_3273096__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3273096__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _group_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3273096__(/*! ./_group.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_group.js"); +/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3273096__(/*! ./_has.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_has.js"); +// Counts instances of an object that group by a certain criterion. Pass +// either a string attribute to count by, or a function that returns the +// criterion. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_group_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(result, value, key) { + if ((0,_has_js__WEBPACK_IMPORTED_MODULE_1__.default)(result, key)) result[key]++; else result[key] = 1; +})); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/underscore/underscore-node-f.cjs": -/*!**********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/underscore/underscore-node-f.cjs ***! - \**********************************************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/create.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/create.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3274478__) => { -// Underscore.js 1.13.1 -// https://underscorejs.org -// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors -// Underscore may be freely distributed under the MIT license. +"use strict"; +__nested_webpack_require_3274478__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3274478__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ create) +/* harmony export */ }); +/* harmony import */ var _baseCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3274478__(/*! ./_baseCreate.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_baseCreate.js"); +/* harmony import */ var _extendOwn_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3274478__(/*! ./extendOwn.js */ "./build/cht-core-4-6/node_modules/underscore/modules/extendOwn.js"); -Object.defineProperty(exports, "__esModule", ({ value: true })); -// Current version. -var VERSION = '1.13.1'; -// Establish the root object, `window` (`self`) in the browser, `global` -// on the server, or `this` in some virtual machines. We use `self` -// instead of `window` for `WebWorker` support. -var root = typeof self == 'object' && self.self === self && self || - typeof global == 'object' && global.global === global && global || - Function('return this')() || - {}; +// Creates an object that inherits from the given prototype object. +// If additional properties are provided then they will be added to the +// created object. +function create(prototype, props) { + var result = (0,_baseCreate_js__WEBPACK_IMPORTED_MODULE_0__.default)(prototype); + if (props) (0,_extendOwn_js__WEBPACK_IMPORTED_MODULE_1__.default)(result, props); + return result; +} -// Save bytes in the minified (but not gzipped) version: -var ArrayProto = Array.prototype, ObjProto = Object.prototype; -var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null; -// Create quick reference variables for speed access to core prototypes. -var push = ArrayProto.push, - slice = ArrayProto.slice, - toString = ObjProto.toString, - hasOwnProperty = ObjProto.hasOwnProperty; +/***/ }), -// Modern feature detection. -var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined', - supportsDataView = typeof DataView !== 'undefined'; +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/debounce.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/debounce.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3275856__) => { -// All **ECMAScript 5+** native function implementations that we hope to use -// are declared here. -var nativeIsArray = Array.isArray, - nativeKeys = Object.keys, - nativeCreate = Object.create, - nativeIsView = supportsArrayBuffer && ArrayBuffer.isView; +"use strict"; +__nested_webpack_require_3275856__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3275856__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ debounce) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3275856__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _now_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3275856__(/*! ./now.js */ "./build/cht-core-4-6/node_modules/underscore/modules/now.js"); -// Create references to these builtin functions because we override them. -var _isNaN = isNaN, - _isFinite = isFinite; -// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed. -var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString'); -var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString', - 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; -// The largest integer that can be represented exactly. -var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1; +// When a sequence of calls of the returned function ends, the argument +// function is triggered. The end of a sequence is defined by the `wait` +// parameter. If `immediate` is passed, the argument function will be +// triggered at the beginning of the sequence instead of at the end. +function debounce(func, wait, immediate) { + var timeout, previous, args, result, context; -// Some functions take a variable number of arguments, or a few expected -// arguments at the beginning and then a variable number of values to operate -// on. This helper accumulates all remaining arguments past the function’s -// argument length (or an explicit `startIndex`), into an array that becomes -// the last argument. Similar to ES6’s "rest parameter". -function restArguments(func, startIndex) { - startIndex = startIndex == null ? func.length - 1 : +startIndex; - return function() { - var length = Math.max(arguments.length - startIndex, 0), - rest = Array(length), - index = 0; - for (; index < length; index++) { - rest[index] = arguments[index + startIndex]; - } - switch (startIndex) { - case 0: return func.call(this, rest); - case 1: return func.call(this, arguments[0], rest); - case 2: return func.call(this, arguments[0], arguments[1], rest); + var later = function() { + var passed = (0,_now_js__WEBPACK_IMPORTED_MODULE_1__.default)() - previous; + if (wait > passed) { + timeout = setTimeout(later, wait - passed); + } else { + timeout = null; + if (!immediate) result = func.apply(context, args); + // This check is needed because `func` can recursively invoke `debounced`. + if (!timeout) args = context = null; } - var args = Array(startIndex + 1); - for (index = 0; index < startIndex; index++) { - args[index] = arguments[index]; + }; + + var debounced = (0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(_args) { + context = this; + args = _args; + previous = (0,_now_js__WEBPACK_IMPORTED_MODULE_1__.default)(); + if (!timeout) { + timeout = setTimeout(later, wait); + if (immediate) result = func.apply(context, args); } - args[startIndex] = rest; - return func.apply(this, args); + return result; + }); + + debounced.cancel = function() { + clearTimeout(timeout); + timeout = args = context = null; }; -} -// Is a given variable an object? -function isObject(obj) { - var type = typeof obj; - return type === 'function' || type === 'object' && !!obj; + return debounced; } -// Is a given value equal to null? -function isNull(obj) { - return obj === null; -} -// Is a given variable undefined? -function isUndefined(obj) { - return obj === void 0; -} +/***/ }), -// Is a given value a boolean? -function isBoolean(obj) { - return obj === true || obj === false || toString.call(obj) === '[object Boolean]'; -} +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/defaults.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/defaults.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3278107__) => { -// Is a given value a DOM element? -function isElement(obj) { - return !!(obj && obj.nodeType === 1); -} +"use strict"; +__nested_webpack_require_3278107__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3278107__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createAssigner_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3278107__(/*! ./_createAssigner.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createAssigner.js"); +/* harmony import */ var _allKeys_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3278107__(/*! ./allKeys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js"); -// Internal function for creating a `toString`-based type tester. -function tagTester(name) { - var tag = '[object ' + name + ']'; - return function(obj) { - return toString.call(obj) === tag; - }; -} -var isString = tagTester('String'); -var isNumber = tagTester('Number'); +// Fill in a given object with default properties. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createAssigner_js__WEBPACK_IMPORTED_MODULE_0__.default)(_allKeys_js__WEBPACK_IMPORTED_MODULE_1__.default, true)); -var isDate = tagTester('Date'); -var isRegExp = tagTester('RegExp'); +/***/ }), -var isError = tagTester('Error'); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/defer.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/defer.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3279338__) => { -var isSymbol = tagTester('Symbol'); +"use strict"; +__nested_webpack_require_3279338__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3279338__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _partial_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3279338__(/*! ./partial.js */ "./build/cht-core-4-6/node_modules/underscore/modules/partial.js"); +/* harmony import */ var _delay_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3279338__(/*! ./delay.js */ "./build/cht-core-4-6/node_modules/underscore/modules/delay.js"); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3279338__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); -var isArrayBuffer = tagTester('ArrayBuffer'); -var isFunction = tagTester('Function'); -// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old -// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236). -var nodelist = root.document && root.document.childNodes; -if ( true && typeof Int8Array != 'object' && typeof nodelist != 'function') { - isFunction = function(obj) { - return typeof obj == 'function' || false; - }; -} -var isFunction$1 = isFunction; +// Defers a function, scheduling it to run after the current call stack has +// cleared. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_partial_js__WEBPACK_IMPORTED_MODULE_0__.default)(_delay_js__WEBPACK_IMPORTED_MODULE_1__.default, _underscore_js__WEBPACK_IMPORTED_MODULE_2__.default, 1)); -var hasObjectTag = tagTester('Object'); -// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`. -// In IE 11, the most common among them, this problem also applies to -// `Map`, `WeakMap` and `Set`. -var hasStringTagBug = ( - supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8))) - ), - isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map)); +/***/ }), -var isDataView = tagTester('DataView'); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/delay.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/delay.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3280804__) => { -// In IE 10 - Edge 13, we need a different heuristic -// to determine whether an object is a `DataView`. -function ie10IsDataView(obj) { - return obj != null && isFunction$1(obj.getInt8) && isArrayBuffer(obj.buffer); -} +"use strict"; +__nested_webpack_require_3280804__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3280804__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3280804__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); -var isDataView$1 = (hasStringTagBug ? ie10IsDataView : isDataView); -// Is a given value an array? -// Delegates to ECMA5's native `Array.isArray`. -var isArray = nativeIsArray || tagTester('Array'); +// Delays a function for the given number of milliseconds, and then calls +// it with the arguments supplied. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(func, wait, args) { + return setTimeout(function() { + return func.apply(null, args); + }, wait); +})); -// Internal function to check whether `key` is an own property name of `obj`. -function has$1(obj, key) { - return obj != null && hasOwnProperty.call(obj, key); -} -var isArguments = tagTester('Arguments'); +/***/ }), -// Define a fallback version of the method in browsers (ahem, IE < 9), where -// there isn't any inspectable "Arguments" type. -(function() { - if (!isArguments(arguments)) { - isArguments = function(obj) { - return has$1(obj, 'callee'); - }; - } -}()); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/difference.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/difference.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3281986__) => { -var isArguments$1 = isArguments; +"use strict"; +__nested_webpack_require_3281986__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3281986__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3281986__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3281986__(/*! ./_flatten.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js"); +/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3281986__(/*! ./filter.js */ "./build/cht-core-4-6/node_modules/underscore/modules/filter.js"); +/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_3281986__(/*! ./contains.js */ "./build/cht-core-4-6/node_modules/underscore/modules/contains.js"); -// Is a given object a finite number? -function isFinite$1(obj) { - return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj)); -} -// Is the given value `NaN`? -function isNaN$1(obj) { - return isNumber(obj) && _isNaN(obj); -} -// Predicate-generating function. Often useful outside of Underscore. -function constant(value) { - return function() { - return value; - }; -} -// Common internal logic for `isArrayLike` and `isBufferLike`. -function createSizePropertyCheck(getSizeProperty) { - return function(collection) { - var sizeProperty = getSizeProperty(collection); - return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX; - } -} -// Internal helper to generate a function to obtain property `key` from `obj`. -function shallowProperty(key) { - return function(obj) { - return obj == null ? void 0 : obj[key]; - }; -} +// Take the difference between one array and a number of other arrays. +// Only the elements present in just the first array will remain. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(array, rest) { + rest = (0,_flatten_js__WEBPACK_IMPORTED_MODULE_1__.default)(rest, true, true); + return (0,_filter_js__WEBPACK_IMPORTED_MODULE_2__.default)(array, function(value){ + return !(0,_contains_js__WEBPACK_IMPORTED_MODULE_3__.default)(rest, value); + }); +})); -// Internal helper to obtain the `byteLength` property of an object. -var getByteLength = shallowProperty('byteLength'); -// Internal helper to determine whether we should spend extensive checks against -// `ArrayBuffer` et al. -var isBufferLike = createSizePropertyCheck(getByteLength); +/***/ }), -// Is a given value a typed array? -var typedArrayPattern = /\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/; -function isTypedArray(obj) { - // `ArrayBuffer.isView` is the most future-proof, so use it when available. - // Otherwise, fall back on the above regular expression. - return nativeIsView ? (nativeIsView(obj) && !isDataView$1(obj)) : - isBufferLike(obj) && typedArrayPattern.test(toString.call(obj)); -} +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/each.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/each.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3283872__) => { -var isTypedArray$1 = supportsArrayBuffer ? isTypedArray : constant(false); +"use strict"; +__nested_webpack_require_3283872__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3283872__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ each) +/* harmony export */ }); +/* harmony import */ var _optimizeCb_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3283872__(/*! ./_optimizeCb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js"); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3283872__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3283872__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); -// Internal helper to obtain the `length` property of an object. -var getLength = shallowProperty('length'); -// Internal helper to create a simple lookup structure. -// `collectNonEnumProps` used to depend on `_.contains`, but this led to -// circular imports. `emulatedSet` is a one-off solution that only works for -// arrays of strings. -function emulatedSet(keys) { - var hash = {}; - for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true; - return { - contains: function(key) { return hash[key]; }, - push: function(key) { - hash[key] = true; - return keys.push(key); + + +// The cornerstone for collection functions, an `each` +// implementation, aka `forEach`. +// Handles raw objects in addition to array-likes. Treats all +// sparse array-likes as if they were dense. +function each(obj, iteratee, context) { + iteratee = (0,_optimizeCb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context); + var i, length; + if ((0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj)) { + for (i = 0, length = obj.length; i < length; i++) { + iteratee(obj[i], i, obj); } - }; + } else { + var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj); + for (i = 0, length = _keys.length; i < length; i++) { + iteratee(obj[_keys[i]], _keys[i], obj); + } + } + return obj; } -// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't -// be iterated by `for key in ...` and thus missed. Extends `keys` in place if -// needed. -function collectNonEnumProps(obj, keys) { - keys = emulatedSet(keys); - var nonEnumIdx = nonEnumerableProps.length; - var constructor = obj.constructor; - var proto = isFunction$1(constructor) && constructor.prototype || ObjProto; - // Constructor is a special case. - var prop = 'constructor'; - if (has$1(obj, prop) && !keys.contains(prop)) keys.push(prop); +/***/ }), - while (nonEnumIdx--) { - prop = nonEnumerableProps[nonEnumIdx]; - if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) { - keys.push(prop); - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/escape.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/escape.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3285755__) => { + +"use strict"; +__nested_webpack_require_3285755__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3285755__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createEscaper_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3285755__(/*! ./_createEscaper.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createEscaper.js"); +/* harmony import */ var _escapeMap_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3285755__(/*! ./_escapeMap.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_escapeMap.js"); + + + +// Function for escaping strings to HTML interpolation. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createEscaper_js__WEBPACK_IMPORTED_MODULE_0__.default)(_escapeMap_js__WEBPACK_IMPORTED_MODULE_1__.default)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/every.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/every.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3286991__) => { + +"use strict"; +__nested_webpack_require_3286991__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3286991__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ every) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3286991__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3286991__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3286991__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + + + +// Determine whether all of the elements pass a truth test. +function every(obj, predicate, context) { + predicate = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(predicate, context); + var _keys = !(0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) && (0,_keys_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj), + length = (_keys || obj).length; + for (var index = 0; index < length; index++) { + var currentKey = _keys ? _keys[index] : index; + if (!predicate(obj[currentKey], currentKey, obj)) return false; } + return true; } -// Retrieve the names of an object's own properties. -// Delegates to **ECMAScript 5**'s native `Object.keys`. -function keys(obj) { - if (!isObject(obj)) return []; - if (nativeKeys) return nativeKeys(obj); - var keys = []; - for (var key in obj) if (has$1(obj, key)) keys.push(key); - // Ahem, IE < 9. - if (hasEnumBug) collectNonEnumProps(obj, keys); - return keys; -} -// Is a given array, string, or object empty? -// An "empty" object has no enumerable own-properties. -function isEmpty(obj) { - if (obj == null) return true; - // Skip the more expensive `toString`-based type checks if `obj` has no - // `.length`. - var length = getLength(obj); - if (typeof length == 'number' && ( - isArray(obj) || isString(obj) || isArguments$1(obj) - )) return length === 0; - return getLength(keys(obj)) === 0; +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/extend.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/extend.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3288679__) => { + +"use strict"; +__nested_webpack_require_3288679__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3288679__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createAssigner_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3288679__(/*! ./_createAssigner.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createAssigner.js"); +/* harmony import */ var _allKeys_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3288679__(/*! ./allKeys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js"); + + + +// Extend a given object with all the properties in passed-in object(s). +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createAssigner_js__WEBPACK_IMPORTED_MODULE_0__.default)(_allKeys_js__WEBPACK_IMPORTED_MODULE_1__.default)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/extendOwn.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/extendOwn.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3289942__) => { + +"use strict"; +__nested_webpack_require_3289942__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3289942__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createAssigner_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3289942__(/*! ./_createAssigner.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createAssigner.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3289942__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + + +// Assigns a given object with all the own properties in the passed-in +// object(s). +// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createAssigner_js__WEBPACK_IMPORTED_MODULE_0__.default)(_keys_js__WEBPACK_IMPORTED_MODULE_1__.default)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/filter.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/filter.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3291287__) => { + +"use strict"; +__nested_webpack_require_3291287__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3291287__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ filter) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3291287__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3291287__(/*! ./each.js */ "./build/cht-core-4-6/node_modules/underscore/modules/each.js"); + + + +// Return all the elements that pass a truth test. +function filter(obj, predicate, context) { + var results = []; + predicate = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(predicate, context); + (0,_each_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj, function(value, index, list) { + if (predicate(value, index, list)) results.push(value); + }); + return results; } -// Returns whether an object has a given set of `key:value` pairs. -function isMatch(object, attrs) { - var _keys = keys(attrs), length = _keys.length; - if (object == null) return !length; - var obj = Object(object); - for (var i = 0; i < length; i++) { - var key = _keys[i]; - if (attrs[key] !== obj[key] || !(key in obj)) return false; - } - return true; + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/find.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/find.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3292600__) => { + +"use strict"; +__nested_webpack_require_3292600__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3292600__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ find) +/* harmony export */ }); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3292600__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _findIndex_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3292600__(/*! ./findIndex.js */ "./build/cht-core-4-6/node_modules/underscore/modules/findIndex.js"); +/* harmony import */ var _findKey_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3292600__(/*! ./findKey.js */ "./build/cht-core-4-6/node_modules/underscore/modules/findKey.js"); + + + + +// Return the first value which passes a truth test. +function find(obj, predicate, context) { + var keyFinder = (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj) ? _findIndex_js__WEBPACK_IMPORTED_MODULE_1__.default : _findKey_js__WEBPACK_IMPORTED_MODULE_2__.default; + var key = keyFinder(obj, predicate, context); + if (key !== void 0 && key !== -1) return obj[key]; } -// If Underscore is called as a function, it returns a wrapped object that can -// be used OO-style. This wrapper holds altered versions of all functions added -// through `_.mixin`. Wrapped objects may be chained. -function _$1(obj) { - if (obj instanceof _$1) return obj; - if (!(this instanceof _$1)) return new _$1(obj); - this._wrapped = obj; + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/findIndex.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/findIndex.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3294161__) => { + +"use strict"; +__nested_webpack_require_3294161__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3294161__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createPredicateIndexFinder_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3294161__(/*! ./_createPredicateIndexFinder.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createPredicateIndexFinder.js"); + + +// Returns the first index on an array-like that passes a truth test. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createPredicateIndexFinder_js__WEBPACK_IMPORTED_MODULE_0__.default)(1)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/findKey.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/findKey.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3295237__) => { + +"use strict"; +__nested_webpack_require_3295237__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3295237__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ findKey) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3295237__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3295237__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + + +// Returns the first key on an object that passes a truth test. +function findKey(obj, predicate, context) { + predicate = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(predicate, context); + var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj), key; + for (var i = 0, length = _keys.length; i < length; i++) { + key = _keys[i]; + if (predicate(obj[key], key, obj)) return key; + } } -_$1.VERSION = VERSION; -// Extracts the result from a wrapped and chained object. -_$1.prototype.value = function() { - return this._wrapped; -}; +/***/ }), -// Provide unwrapping proxies for some methods used in engine operations -// such as arithmetic and JSON stringification. -_$1.prototype.valueOf = _$1.prototype.toJSON = _$1.prototype.value; +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/findLastIndex.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/findLastIndex.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3296619__) => { -_$1.prototype.toString = function() { - return String(this._wrapped); -}; +"use strict"; +__nested_webpack_require_3296619__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3296619__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createPredicateIndexFinder_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3296619__(/*! ./_createPredicateIndexFinder.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createPredicateIndexFinder.js"); -// Internal function to wrap or shallow-copy an ArrayBuffer, -// typed array or DataView to a new view, reusing the buffer. -function toBufferView(bufferSource) { - return new Uint8Array( - bufferSource.buffer || bufferSource, - bufferSource.byteOffset || 0, - getByteLength(bufferSource) - ); -} -// We use this string twice, so give it a name for minification. -var tagDataView = '[object DataView]'; +// Returns the last index on an array-like that passes a truth test. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createPredicateIndexFinder_js__WEBPACK_IMPORTED_MODULE_0__.default)(-1)); -// Internal recursive comparison function for `_.isEqual`. -function eq(a, b, aStack, bStack) { - // Identical objects are equal. `0 === -0`, but they aren't identical. - // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal). - if (a === b) return a !== 0 || 1 / a === 1 / b; - // `null` or `undefined` only equal to itself (strict comparison). - if (a == null || b == null) return false; - // `NaN`s are equivalent, but non-reflexive. - if (a !== a) return b !== b; - // Exhaust primitive checks - var type = typeof a; - if (type !== 'function' && type !== 'object' && typeof b != 'object') return false; - return deepEq(a, b, aStack, bStack); -} -// Internal recursive comparison function for `_.isEqual`. -function deepEq(a, b, aStack, bStack) { - // Unwrap any wrapped objects. - if (a instanceof _$1) a = a._wrapped; - if (b instanceof _$1) b = b._wrapped; - // Compare `[[Class]]` names. - var className = toString.call(a); - if (className !== toString.call(b)) return false; - // Work around a bug in IE 10 - Edge 13. - if (hasStringTagBug && className == '[object Object]' && isDataView$1(a)) { - if (!isDataView$1(b)) return false; - className = tagDataView; - } - switch (className) { - // These types are compared by value. - case '[object RegExp]': - // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i') - case '[object String]': - // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is - // equivalent to `new String("5")`. - return '' + a === '' + b; - case '[object Number]': - // `NaN`s are equivalent, but non-reflexive. - // Object(NaN) is equivalent to NaN. - if (+a !== +a) return +b !== +b; - // An `egal` comparison is performed for other numeric values. - return +a === 0 ? 1 / +a === 1 / b : +a === +b; - case '[object Date]': - case '[object Boolean]': - // Coerce dates and booleans to numeric primitive values. Dates are compared by their - // millisecond representations. Note that invalid dates with millisecond representations - // of `NaN` are not equivalent. - return +a === +b; - case '[object Symbol]': - return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b); - case '[object ArrayBuffer]': - case tagDataView: - // Coerce to typed array so we can fall through. - return deepEq(toBufferView(a), toBufferView(b), aStack, bStack); - } +/***/ }), - var areArrays = className === '[object Array]'; - if (!areArrays && isTypedArray$1(a)) { - var byteLength = getByteLength(a); - if (byteLength !== getByteLength(b)) return false; - if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true; - areArrays = true; - } - if (!areArrays) { - if (typeof a != 'object' || typeof b != 'object') return false; +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/findWhere.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/findWhere.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3297703__) => { - // Objects with different constructors are not equivalent, but `Object`s or `Array`s - // from different frames are. - var aCtor = a.constructor, bCtor = b.constructor; - if (aCtor !== bCtor && !(isFunction$1(aCtor) && aCtor instanceof aCtor && - isFunction$1(bCtor) && bCtor instanceof bCtor) - && ('constructor' in a && 'constructor' in b)) { - return false; - } - } - // Assume equality for cyclic structures. The algorithm for detecting cyclic - // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`. +"use strict"; +__nested_webpack_require_3297703__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3297703__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ findWhere) +/* harmony export */ }); +/* harmony import */ var _find_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3297703__(/*! ./find.js */ "./build/cht-core-4-6/node_modules/underscore/modules/find.js"); +/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3297703__(/*! ./matcher.js */ "./build/cht-core-4-6/node_modules/underscore/modules/matcher.js"); - // Initializing stack of traversed objects. - // It's done here since we only need them for objects and arrays comparison. - aStack = aStack || []; - bStack = bStack || []; - var length = aStack.length; - while (length--) { - // Linear search. Performance is inversely proportional to the number of - // unique nested structures. - if (aStack[length] === a) return bStack[length] === b; - } - // Add the first object to the stack of traversed objects. - aStack.push(a); - bStack.push(b); - // Recursively compare objects and arrays. - if (areArrays) { - // Compare array lengths to determine if a deep comparison is necessary. - length = a.length; - if (length !== b.length) return false; - // Deep compare the contents, ignoring non-numeric properties. - while (length--) { - if (!eq(a[length], b[length], aStack, bStack)) return false; - } - } else { - // Deep compare objects. - var _keys = keys(a), key; - length = _keys.length; - // Ensure that both objects contain the same number of properties before comparing deep equality. - if (keys(b).length !== length) return false; - while (length--) { - // Deep compare each member - key = _keys[length]; - if (!(has$1(b, key) && eq(a[key], b[key], aStack, bStack))) return false; - } - } - // Remove the first object from the stack of traversed objects. - aStack.pop(); - bStack.pop(); - return true; +// Convenience version of a common use case of `_.find`: getting the first +// object containing specific `key:value` pairs. +function findWhere(obj, attrs) { + return (0,_find_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, (0,_matcher_js__WEBPACK_IMPORTED_MODULE_1__.default)(attrs)); } -// Perform a deep comparison to check if two objects are equal. -function isEqual(a, b) { - return eq(a, b); -} -// Retrieve all the enumerable property names of an object. -function allKeys(obj) { - if (!isObject(obj)) return []; - var keys = []; - for (var key in obj) keys.push(key); - // Ahem, IE < 9. - if (hasEnumBug) collectNonEnumProps(obj, keys); - return keys; -} +/***/ }), -// Since the regular `Object.prototype.toString` type tests don't work for -// some types in IE 11, we use a fingerprinting heuristic instead, based -// on the methods. It's not great, but it's the best we got. -// The fingerprint method lists are defined below. -function ie11fingerprint(methods) { - var length = getLength(methods); - return function(obj) { - if (obj == null) return false; - // `Map`, `WeakMap` and `Set` have no enumerable keys. - var keys = allKeys(obj); - if (getLength(keys)) return false; - for (var i = 0; i < length; i++) { - if (!isFunction$1(obj[methods[i]])) return false; - } - // If we are testing against `WeakMap`, we need to ensure that - // `obj` doesn't have a `forEach` method in order to distinguish - // it from a regular `Map`. - return methods !== weakMapMethods || !isFunction$1(obj[forEachName]); - }; -} +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/first.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/first.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3298950__) => { -// In the interest of compact minification, we write -// each string in the fingerprints only once. -var forEachName = 'forEach', - hasName = 'has', - commonInit = ['clear', 'delete'], - mapTail = ['get', hasName, 'set']; +"use strict"; +__nested_webpack_require_3298950__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3298950__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ first) +/* harmony export */ }); +/* harmony import */ var _initial_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3298950__(/*! ./initial.js */ "./build/cht-core-4-6/node_modules/underscore/modules/initial.js"); -// `Map`, `WeakMap` and `Set` each have slightly different -// combinations of the above sublists. -var mapMethods = commonInit.concat(forEachName, mapTail), - weakMapMethods = commonInit.concat(mapTail), - setMethods = ['add'].concat(commonInit, forEachName, hasName); -var isMap = isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map'); +// Get the first element of an array. Passing **n** will return the first N +// values in the array. The **guard** check allows it to work with `_.map`. +function first(array, n, guard) { + if (array == null || array.length < 1) return n == null || guard ? void 0 : []; + if (n == null || guard) return array[0]; + return (0,_initial_js__WEBPACK_IMPORTED_MODULE_0__.default)(array, array.length - n); +} -var isWeakMap = isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap'); -var isSet = isIE11 ? ie11fingerprint(setMethods) : tagTester('Set'); +/***/ }), -var isWeakSet = tagTester('WeakSet'); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/flatten.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/flatten.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3300149__) => { -// Retrieve the values of an object's properties. -function values(obj) { - var _keys = keys(obj); - var length = _keys.length; - var values = Array(length); - for (var i = 0; i < length; i++) { - values[i] = obj[_keys[i]]; - } - return values; -} +"use strict"; +__nested_webpack_require_3300149__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3300149__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ flatten) +/* harmony export */ }); +/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3300149__(/*! ./_flatten.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js"); -// Convert an object into a list of `[key, value]` pairs. -// The opposite of `_.object` with one argument. -function pairs(obj) { - var _keys = keys(obj); - var length = _keys.length; - var pairs = Array(length); - for (var i = 0; i < length; i++) { - pairs[i] = [_keys[i], obj[_keys[i]]]; - } - return pairs; -} -// Invert the keys and values of an object. The values must be serializable. -function invert(obj) { - var result = {}; - var _keys = keys(obj); - for (var i = 0, length = _keys.length; i < length; i++) { - result[obj[_keys[i]]] = _keys[i]; - } - return result; +// Flatten out an array, either recursively (by default), or up to `depth`. +// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively. +function flatten(array, depth) { + return (0,_flatten_js__WEBPACK_IMPORTED_MODULE_0__.default)(array, depth, false); } + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/functions.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/functions.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3301233__) => { + +"use strict"; +__nested_webpack_require_3301233__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3301233__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ functions) +/* harmony export */ }); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3301233__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); + + // Return a sorted list of the function names available on the object. function functions(obj) { var names = []; for (var key in obj) { - if (isFunction$1(obj[key])) names.push(key); + if ((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj[key])) names.push(key); } return names.sort(); } -// An internal function for creating assigner functions. -function createAssigner(keysFunc, defaults) { - return function(obj) { - var length = arguments.length; - if (defaults) obj = Object(obj); - if (length < 2 || obj == null) return obj; - for (var index = 1; index < length; index++) { - var source = arguments[index], - keys = keysFunc(source), - l = keys.length; - for (var i = 0; i < l; i++) { - var key = keys[i]; - if (!defaults || obj[key] === void 0) obj[key] = source[key]; - } - } - return obj; - }; -} - -// Extend a given object with all the properties in passed-in object(s). -var extend = createAssigner(allKeys); - -// Assigns a given object with all the own properties in the passed-in -// object(s). -// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) -var extendOwn = createAssigner(keys); - -// Fill in a given object with default properties. -var defaults = createAssigner(allKeys, true); - -// Create a naked function reference for surrogate-prototype-swapping. -function ctor() { - return function(){}; -} - -// An internal function for creating a new object that inherits from another. -function baseCreate(prototype) { - if (!isObject(prototype)) return {}; - if (nativeCreate) return nativeCreate(prototype); - var Ctor = ctor(); - Ctor.prototype = prototype; - var result = new Ctor; - Ctor.prototype = null; - return result; -} -// Creates an object that inherits from the given prototype object. -// If additional properties are provided then they will be added to the -// created object. -function create(prototype, props) { - var result = baseCreate(prototype); - if (props) extendOwn(result, props); - return result; -} +/***/ }), -// Create a (shallow-cloned) duplicate of an object. -function clone(obj) { - if (!isObject(obj)) return obj; - return isArray(obj) ? obj.slice() : extend({}, obj); -} +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/get.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/get.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3302289__) => { -// Invokes `interceptor` with the `obj` and then returns `obj`. -// The primary purpose of this method is to "tap into" a method chain, in -// order to perform operations on intermediate results within the chain. -function tap(obj, interceptor) { - interceptor(obj); - return obj; -} +"use strict"; +__nested_webpack_require_3302289__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3302289__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ get) +/* harmony export */ }); +/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3302289__(/*! ./_toPath.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js"); +/* harmony import */ var _deepGet_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3302289__(/*! ./_deepGet.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_deepGet.js"); +/* harmony import */ var _isUndefined_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3302289__(/*! ./isUndefined.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isUndefined.js"); -// Normalize a (deep) property `path` to array. -// Like `_.iteratee`, this function can be customized. -function toPath$1(path) { - return isArray(path) ? path : [path]; -} -_$1.toPath = toPath$1; -// Internal wrapper for `_.toPath` to enable minification. -// Similar to `cb` for `_.iteratee`. -function toPath(path) { - return _$1.toPath(path); -} -// Internal function to obtain a nested property in `obj` along `path`. -function deepGet(obj, path) { - var length = path.length; - for (var i = 0; i < length; i++) { - if (obj == null) return void 0; - obj = obj[path[i]]; - } - return length ? obj : void 0; -} // Get the value of the (deep) property on `path` from `object`. // If any property in `path` does not exist or if the value is // `undefined`, return `defaultValue` instead. // The `path` is normalized through `_.toPath`. function get(object, path, defaultValue) { - var value = deepGet(object, toPath(path)); - return isUndefined(value) ? defaultValue : value; + var value = (0,_deepGet_js__WEBPACK_IMPORTED_MODULE_1__.default)(object, (0,_toPath_js__WEBPACK_IMPORTED_MODULE_0__.default)(path)); + return (0,_isUndefined_js__WEBPACK_IMPORTED_MODULE_2__.default)(value) ? defaultValue : value; } + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/groupBy.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/groupBy.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3303952__) => { + +"use strict"; +__nested_webpack_require_3303952__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3303952__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _group_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3303952__(/*! ./_group.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_group.js"); +/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3303952__(/*! ./_has.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_has.js"); + + + +// Groups the object's values by a criterion. Pass either a string attribute +// to group by, or a function that returns the criterion. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_group_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(result, value, key) { + if ((0,_has_js__WEBPACK_IMPORTED_MODULE_1__.default)(result, key)) result[key].push(value); else result[key] = [value]; +})); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/has.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/has.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3305313__) => { + +"use strict"; +__nested_webpack_require_3305313__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3305313__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ has) +/* harmony export */ }); +/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3305313__(/*! ./_has.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_has.js"); +/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3305313__(/*! ./_toPath.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js"); + + + // Shortcut function for checking if an object has a given property directly on // itself (in other words, not on a prototype). Unlike the internal `has` // function, this public version can also traverse nested properties. function has(obj, path) { - path = toPath(path); + path = (0,_toPath_js__WEBPACK_IMPORTED_MODULE_1__.default)(path); var length = path.length; for (var i = 0; i < length; i++) { var key = path[i]; - if (!has$1(obj, key)) return false; + if (!(0,_has_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, key)) return false; obj = obj[key]; } return !!length; } + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/identity.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/identity.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3306813__) => { + +"use strict"; +__nested_webpack_require_3306813__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3306813__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ identity) +/* harmony export */ }); // Keep the identity function around for default iteratees. function identity(value) { return value; } -// Returns a predicate for checking whether an object has a given set of -// `key:value` pairs. -function matcher(attrs) { - attrs = extendOwn({}, attrs); - return function(obj) { - return isMatch(obj, attrs); - }; -} -// Creates a function that, when passed an object, will traverse that object’s -// properties down the given `path`, specified as an array of keys or indices. -function property(path) { - path = toPath(path); - return function(obj) { - return deepGet(obj, path); - }; -} +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/index-all.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/index-all.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3307549__) => { + +"use strict"; +__nested_webpack_require_3307549__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3307549__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* reexport safe */ _index_default_js__WEBPACK_IMPORTED_MODULE_0__.default), +/* harmony export */ "VERSION": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.VERSION), +/* harmony export */ "after": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.after), +/* harmony export */ "all": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.all), +/* harmony export */ "allKeys": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.allKeys), +/* harmony export */ "any": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.any), +/* harmony export */ "assign": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.assign), +/* harmony export */ "before": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.before), +/* harmony export */ "bind": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.bind), +/* harmony export */ "bindAll": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.bindAll), +/* harmony export */ "chain": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.chain), +/* harmony export */ "chunk": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.chunk), +/* harmony export */ "clone": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.clone), +/* harmony export */ "collect": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.collect), +/* harmony export */ "compact": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.compact), +/* harmony export */ "compose": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.compose), +/* harmony export */ "constant": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.constant), +/* harmony export */ "contains": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.contains), +/* harmony export */ "countBy": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.countBy), +/* harmony export */ "create": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.create), +/* harmony export */ "debounce": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.debounce), +/* harmony export */ "defaults": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.defaults), +/* harmony export */ "defer": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.defer), +/* harmony export */ "delay": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.delay), +/* harmony export */ "detect": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.detect), +/* harmony export */ "difference": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.difference), +/* harmony export */ "drop": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.drop), +/* harmony export */ "each": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.each), +/* harmony export */ "escape": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.escape), +/* harmony export */ "every": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.every), +/* harmony export */ "extend": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.extend), +/* harmony export */ "extendOwn": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.extendOwn), +/* harmony export */ "filter": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.filter), +/* harmony export */ "find": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.find), +/* harmony export */ "findIndex": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.findIndex), +/* harmony export */ "findKey": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.findKey), +/* harmony export */ "findLastIndex": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.findLastIndex), +/* harmony export */ "findWhere": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.findWhere), +/* harmony export */ "first": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.first), +/* harmony export */ "flatten": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.flatten), +/* harmony export */ "foldl": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.foldl), +/* harmony export */ "foldr": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.foldr), +/* harmony export */ "forEach": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.forEach), +/* harmony export */ "functions": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.functions), +/* harmony export */ "get": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.get), +/* harmony export */ "groupBy": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.groupBy), +/* harmony export */ "has": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.has), +/* harmony export */ "head": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.head), +/* harmony export */ "identity": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.identity), +/* harmony export */ "include": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.include), +/* harmony export */ "includes": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.includes), +/* harmony export */ "indexBy": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.indexBy), +/* harmony export */ "indexOf": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.indexOf), +/* harmony export */ "initial": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.initial), +/* harmony export */ "inject": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.inject), +/* harmony export */ "intersection": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.intersection), +/* harmony export */ "invert": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.invert), +/* harmony export */ "invoke": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.invoke), +/* harmony export */ "isArguments": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isArguments), +/* harmony export */ "isArray": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isArray), +/* harmony export */ "isArrayBuffer": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isArrayBuffer), +/* harmony export */ "isBoolean": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isBoolean), +/* harmony export */ "isDataView": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isDataView), +/* harmony export */ "isDate": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isDate), +/* harmony export */ "isElement": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isElement), +/* harmony export */ "isEmpty": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isEmpty), +/* harmony export */ "isEqual": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isEqual), +/* harmony export */ "isError": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isError), +/* harmony export */ "isFinite": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isFinite), +/* harmony export */ "isFunction": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isFunction), +/* harmony export */ "isMap": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isMap), +/* harmony export */ "isMatch": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isMatch), +/* harmony export */ "isNaN": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isNaN), +/* harmony export */ "isNull": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isNull), +/* harmony export */ "isNumber": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isNumber), +/* harmony export */ "isObject": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isObject), +/* harmony export */ "isRegExp": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isRegExp), +/* harmony export */ "isSet": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isSet), +/* harmony export */ "isString": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isString), +/* harmony export */ "isSymbol": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isSymbol), +/* harmony export */ "isTypedArray": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isTypedArray), +/* harmony export */ "isUndefined": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isUndefined), +/* harmony export */ "isWeakMap": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isWeakMap), +/* harmony export */ "isWeakSet": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isWeakSet), +/* harmony export */ "iteratee": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.iteratee), +/* harmony export */ "keys": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.keys), +/* harmony export */ "last": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.last), +/* harmony export */ "lastIndexOf": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.lastIndexOf), +/* harmony export */ "map": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.map), +/* harmony export */ "mapObject": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.mapObject), +/* harmony export */ "matcher": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.matcher), +/* harmony export */ "matches": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.matches), +/* harmony export */ "max": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.max), +/* harmony export */ "memoize": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.memoize), +/* harmony export */ "methods": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.methods), +/* harmony export */ "min": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.min), +/* harmony export */ "mixin": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.mixin), +/* harmony export */ "negate": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.negate), +/* harmony export */ "noop": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.noop), +/* harmony export */ "now": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.now), +/* harmony export */ "object": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.object), +/* harmony export */ "omit": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.omit), +/* harmony export */ "once": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.once), +/* harmony export */ "pairs": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.pairs), +/* harmony export */ "partial": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.partial), +/* harmony export */ "partition": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.partition), +/* harmony export */ "pick": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.pick), +/* harmony export */ "pluck": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.pluck), +/* harmony export */ "property": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.property), +/* harmony export */ "propertyOf": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.propertyOf), +/* harmony export */ "random": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.random), +/* harmony export */ "range": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.range), +/* harmony export */ "reduce": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.reduce), +/* harmony export */ "reduceRight": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.reduceRight), +/* harmony export */ "reject": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.reject), +/* harmony export */ "rest": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.rest), +/* harmony export */ "restArguments": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.restArguments), +/* harmony export */ "result": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.result), +/* harmony export */ "sample": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.sample), +/* harmony export */ "select": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.select), +/* harmony export */ "shuffle": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.shuffle), +/* harmony export */ "size": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.size), +/* harmony export */ "some": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.some), +/* harmony export */ "sortBy": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.sortBy), +/* harmony export */ "sortedIndex": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.sortedIndex), +/* harmony export */ "tail": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.tail), +/* harmony export */ "take": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.take), +/* harmony export */ "tap": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.tap), +/* harmony export */ "template": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.template), +/* harmony export */ "templateSettings": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.templateSettings), +/* harmony export */ "throttle": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.throttle), +/* harmony export */ "times": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.times), +/* harmony export */ "toArray": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.toArray), +/* harmony export */ "toPath": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.toPath), +/* harmony export */ "transpose": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.transpose), +/* harmony export */ "unescape": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.unescape), +/* harmony export */ "union": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.union), +/* harmony export */ "uniq": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.uniq), +/* harmony export */ "unique": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.unique), +/* harmony export */ "uniqueId": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.uniqueId), +/* harmony export */ "unzip": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.unzip), +/* harmony export */ "values": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.values), +/* harmony export */ "where": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.where), +/* harmony export */ "without": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.without), +/* harmony export */ "wrap": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.wrap), +/* harmony export */ "zip": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.zip) +/* harmony export */ }); +/* harmony import */ var _index_default_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3307549__(/*! ./index-default.js */ "./build/cht-core-4-6/node_modules/underscore/modules/index-default.js"); +/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3307549__(/*! ./index.js */ "./build/cht-core-4-6/node_modules/underscore/modules/index.js"); +// ESM Exports +// =========== +// This module is the package entry point for ES module users. In other words, +// it is the module they are interfacing with when they import from the whole +// package instead of from a submodule, like this: +// +// ```js +// import { map } from 'underscore'; +// ``` +// +// The difference with `./index-default`, which is the package entry point for +// CommonJS, AMD and UMD users, is purely technical. In ES modules, named and +// default exports are considered to be siblings, so when you have a default +// export, its properties are not automatically available as named exports. For +// this reason, we re-export the named exports in addition to providing the same +// default export as in `./index-default`. + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/index-default.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/index-default.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3325197__) => { + +"use strict"; +__nested_webpack_require_3325197__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3325197__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3325197__(/*! ./index.js */ "./build/cht-core-4-6/node_modules/underscore/modules/index.js"); +// Default Export +// ============== +// In this module, we mix our bundled exports into the `_` object and export +// the result. This is analogous to setting `module.exports = _` in CommonJS. +// Hence, this module is also the entry point of our UMD bundle and the package +// entry point for CommonJS and AMD users. In other words, this is (the source +// of) the module you are interfacing with when you do any of the following: +// +// ```js +// // CommonJS +// var _ = require('underscore'); +// +// // AMD +// define(['underscore'], function(_) {...}); +// +// // UMD in the browser +// // _ is available as a global variable +// ``` + + + +// Add all of the Underscore functions to the wrapper object. +var _ = (0,_index_js__WEBPACK_IMPORTED_MODULE_0__.mixin)(_index_js__WEBPACK_IMPORTED_MODULE_0__); +// Legacy Node.js API. +_._ = _; +// Export the Underscore API. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/index.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/index.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3326904__) => { + +"use strict"; +__nested_webpack_require_3326904__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3326904__.d(__webpack_exports__, { +/* harmony export */ "VERSION": () => (/* reexport safe */ _setup_js__WEBPACK_IMPORTED_MODULE_0__.VERSION), +/* harmony export */ "restArguments": () => (/* reexport safe */ _restArguments_js__WEBPACK_IMPORTED_MODULE_1__.default), +/* harmony export */ "isObject": () => (/* reexport safe */ _isObject_js__WEBPACK_IMPORTED_MODULE_2__.default), +/* harmony export */ "isNull": () => (/* reexport safe */ _isNull_js__WEBPACK_IMPORTED_MODULE_3__.default), +/* harmony export */ "isUndefined": () => (/* reexport safe */ _isUndefined_js__WEBPACK_IMPORTED_MODULE_4__.default), +/* harmony export */ "isBoolean": () => (/* reexport safe */ _isBoolean_js__WEBPACK_IMPORTED_MODULE_5__.default), +/* harmony export */ "isElement": () => (/* reexport safe */ _isElement_js__WEBPACK_IMPORTED_MODULE_6__.default), +/* harmony export */ "isString": () => (/* reexport safe */ _isString_js__WEBPACK_IMPORTED_MODULE_7__.default), +/* harmony export */ "isNumber": () => (/* reexport safe */ _isNumber_js__WEBPACK_IMPORTED_MODULE_8__.default), +/* harmony export */ "isDate": () => (/* reexport safe */ _isDate_js__WEBPACK_IMPORTED_MODULE_9__.default), +/* harmony export */ "isRegExp": () => (/* reexport safe */ _isRegExp_js__WEBPACK_IMPORTED_MODULE_10__.default), +/* harmony export */ "isError": () => (/* reexport safe */ _isError_js__WEBPACK_IMPORTED_MODULE_11__.default), +/* harmony export */ "isSymbol": () => (/* reexport safe */ _isSymbol_js__WEBPACK_IMPORTED_MODULE_12__.default), +/* harmony export */ "isArrayBuffer": () => (/* reexport safe */ _isArrayBuffer_js__WEBPACK_IMPORTED_MODULE_13__.default), +/* harmony export */ "isDataView": () => (/* reexport safe */ _isDataView_js__WEBPACK_IMPORTED_MODULE_14__.default), +/* harmony export */ "isArray": () => (/* reexport safe */ _isArray_js__WEBPACK_IMPORTED_MODULE_15__.default), +/* harmony export */ "isFunction": () => (/* reexport safe */ _isFunction_js__WEBPACK_IMPORTED_MODULE_16__.default), +/* harmony export */ "isArguments": () => (/* reexport safe */ _isArguments_js__WEBPACK_IMPORTED_MODULE_17__.default), +/* harmony export */ "isFinite": () => (/* reexport safe */ _isFinite_js__WEBPACK_IMPORTED_MODULE_18__.default), +/* harmony export */ "isNaN": () => (/* reexport safe */ _isNaN_js__WEBPACK_IMPORTED_MODULE_19__.default), +/* harmony export */ "isTypedArray": () => (/* reexport safe */ _isTypedArray_js__WEBPACK_IMPORTED_MODULE_20__.default), +/* harmony export */ "isEmpty": () => (/* reexport safe */ _isEmpty_js__WEBPACK_IMPORTED_MODULE_21__.default), +/* harmony export */ "isMatch": () => (/* reexport safe */ _isMatch_js__WEBPACK_IMPORTED_MODULE_22__.default), +/* harmony export */ "isEqual": () => (/* reexport safe */ _isEqual_js__WEBPACK_IMPORTED_MODULE_23__.default), +/* harmony export */ "isMap": () => (/* reexport safe */ _isMap_js__WEBPACK_IMPORTED_MODULE_24__.default), +/* harmony export */ "isWeakMap": () => (/* reexport safe */ _isWeakMap_js__WEBPACK_IMPORTED_MODULE_25__.default), +/* harmony export */ "isSet": () => (/* reexport safe */ _isSet_js__WEBPACK_IMPORTED_MODULE_26__.default), +/* harmony export */ "isWeakSet": () => (/* reexport safe */ _isWeakSet_js__WEBPACK_IMPORTED_MODULE_27__.default), +/* harmony export */ "keys": () => (/* reexport safe */ _keys_js__WEBPACK_IMPORTED_MODULE_28__.default), +/* harmony export */ "allKeys": () => (/* reexport safe */ _allKeys_js__WEBPACK_IMPORTED_MODULE_29__.default), +/* harmony export */ "values": () => (/* reexport safe */ _values_js__WEBPACK_IMPORTED_MODULE_30__.default), +/* harmony export */ "pairs": () => (/* reexport safe */ _pairs_js__WEBPACK_IMPORTED_MODULE_31__.default), +/* harmony export */ "invert": () => (/* reexport safe */ _invert_js__WEBPACK_IMPORTED_MODULE_32__.default), +/* harmony export */ "functions": () => (/* reexport safe */ _functions_js__WEBPACK_IMPORTED_MODULE_33__.default), +/* harmony export */ "methods": () => (/* reexport safe */ _functions_js__WEBPACK_IMPORTED_MODULE_33__.default), +/* harmony export */ "extend": () => (/* reexport safe */ _extend_js__WEBPACK_IMPORTED_MODULE_34__.default), +/* harmony export */ "extendOwn": () => (/* reexport safe */ _extendOwn_js__WEBPACK_IMPORTED_MODULE_35__.default), +/* harmony export */ "assign": () => (/* reexport safe */ _extendOwn_js__WEBPACK_IMPORTED_MODULE_35__.default), +/* harmony export */ "defaults": () => (/* reexport safe */ _defaults_js__WEBPACK_IMPORTED_MODULE_36__.default), +/* harmony export */ "create": () => (/* reexport safe */ _create_js__WEBPACK_IMPORTED_MODULE_37__.default), +/* harmony export */ "clone": () => (/* reexport safe */ _clone_js__WEBPACK_IMPORTED_MODULE_38__.default), +/* harmony export */ "tap": () => (/* reexport safe */ _tap_js__WEBPACK_IMPORTED_MODULE_39__.default), +/* harmony export */ "get": () => (/* reexport safe */ _get_js__WEBPACK_IMPORTED_MODULE_40__.default), +/* harmony export */ "has": () => (/* reexport safe */ _has_js__WEBPACK_IMPORTED_MODULE_41__.default), +/* harmony export */ "mapObject": () => (/* reexport safe */ _mapObject_js__WEBPACK_IMPORTED_MODULE_42__.default), +/* harmony export */ "identity": () => (/* reexport safe */ _identity_js__WEBPACK_IMPORTED_MODULE_43__.default), +/* harmony export */ "constant": () => (/* reexport safe */ _constant_js__WEBPACK_IMPORTED_MODULE_44__.default), +/* harmony export */ "noop": () => (/* reexport safe */ _noop_js__WEBPACK_IMPORTED_MODULE_45__.default), +/* harmony export */ "toPath": () => (/* reexport safe */ _toPath_js__WEBPACK_IMPORTED_MODULE_46__.default), +/* harmony export */ "property": () => (/* reexport safe */ _property_js__WEBPACK_IMPORTED_MODULE_47__.default), +/* harmony export */ "propertyOf": () => (/* reexport safe */ _propertyOf_js__WEBPACK_IMPORTED_MODULE_48__.default), +/* harmony export */ "matcher": () => (/* reexport safe */ _matcher_js__WEBPACK_IMPORTED_MODULE_49__.default), +/* harmony export */ "matches": () => (/* reexport safe */ _matcher_js__WEBPACK_IMPORTED_MODULE_49__.default), +/* harmony export */ "times": () => (/* reexport safe */ _times_js__WEBPACK_IMPORTED_MODULE_50__.default), +/* harmony export */ "random": () => (/* reexport safe */ _random_js__WEBPACK_IMPORTED_MODULE_51__.default), +/* harmony export */ "now": () => (/* reexport safe */ _now_js__WEBPACK_IMPORTED_MODULE_52__.default), +/* harmony export */ "escape": () => (/* reexport safe */ _escape_js__WEBPACK_IMPORTED_MODULE_53__.default), +/* harmony export */ "unescape": () => (/* reexport safe */ _unescape_js__WEBPACK_IMPORTED_MODULE_54__.default), +/* harmony export */ "templateSettings": () => (/* reexport safe */ _templateSettings_js__WEBPACK_IMPORTED_MODULE_55__.default), +/* harmony export */ "template": () => (/* reexport safe */ _template_js__WEBPACK_IMPORTED_MODULE_56__.default), +/* harmony export */ "result": () => (/* reexport safe */ _result_js__WEBPACK_IMPORTED_MODULE_57__.default), +/* harmony export */ "uniqueId": () => (/* reexport safe */ _uniqueId_js__WEBPACK_IMPORTED_MODULE_58__.default), +/* harmony export */ "chain": () => (/* reexport safe */ _chain_js__WEBPACK_IMPORTED_MODULE_59__.default), +/* harmony export */ "iteratee": () => (/* reexport safe */ _iteratee_js__WEBPACK_IMPORTED_MODULE_60__.default), +/* harmony export */ "partial": () => (/* reexport safe */ _partial_js__WEBPACK_IMPORTED_MODULE_61__.default), +/* harmony export */ "bind": () => (/* reexport safe */ _bind_js__WEBPACK_IMPORTED_MODULE_62__.default), +/* harmony export */ "bindAll": () => (/* reexport safe */ _bindAll_js__WEBPACK_IMPORTED_MODULE_63__.default), +/* harmony export */ "memoize": () => (/* reexport safe */ _memoize_js__WEBPACK_IMPORTED_MODULE_64__.default), +/* harmony export */ "delay": () => (/* reexport safe */ _delay_js__WEBPACK_IMPORTED_MODULE_65__.default), +/* harmony export */ "defer": () => (/* reexport safe */ _defer_js__WEBPACK_IMPORTED_MODULE_66__.default), +/* harmony export */ "throttle": () => (/* reexport safe */ _throttle_js__WEBPACK_IMPORTED_MODULE_67__.default), +/* harmony export */ "debounce": () => (/* reexport safe */ _debounce_js__WEBPACK_IMPORTED_MODULE_68__.default), +/* harmony export */ "wrap": () => (/* reexport safe */ _wrap_js__WEBPACK_IMPORTED_MODULE_69__.default), +/* harmony export */ "negate": () => (/* reexport safe */ _negate_js__WEBPACK_IMPORTED_MODULE_70__.default), +/* harmony export */ "compose": () => (/* reexport safe */ _compose_js__WEBPACK_IMPORTED_MODULE_71__.default), +/* harmony export */ "after": () => (/* reexport safe */ _after_js__WEBPACK_IMPORTED_MODULE_72__.default), +/* harmony export */ "before": () => (/* reexport safe */ _before_js__WEBPACK_IMPORTED_MODULE_73__.default), +/* harmony export */ "once": () => (/* reexport safe */ _once_js__WEBPACK_IMPORTED_MODULE_74__.default), +/* harmony export */ "findKey": () => (/* reexport safe */ _findKey_js__WEBPACK_IMPORTED_MODULE_75__.default), +/* harmony export */ "findIndex": () => (/* reexport safe */ _findIndex_js__WEBPACK_IMPORTED_MODULE_76__.default), +/* harmony export */ "findLastIndex": () => (/* reexport safe */ _findLastIndex_js__WEBPACK_IMPORTED_MODULE_77__.default), +/* harmony export */ "sortedIndex": () => (/* reexport safe */ _sortedIndex_js__WEBPACK_IMPORTED_MODULE_78__.default), +/* harmony export */ "indexOf": () => (/* reexport safe */ _indexOf_js__WEBPACK_IMPORTED_MODULE_79__.default), +/* harmony export */ "lastIndexOf": () => (/* reexport safe */ _lastIndexOf_js__WEBPACK_IMPORTED_MODULE_80__.default), +/* harmony export */ "find": () => (/* reexport safe */ _find_js__WEBPACK_IMPORTED_MODULE_81__.default), +/* harmony export */ "detect": () => (/* reexport safe */ _find_js__WEBPACK_IMPORTED_MODULE_81__.default), +/* harmony export */ "findWhere": () => (/* reexport safe */ _findWhere_js__WEBPACK_IMPORTED_MODULE_82__.default), +/* harmony export */ "each": () => (/* reexport safe */ _each_js__WEBPACK_IMPORTED_MODULE_83__.default), +/* harmony export */ "forEach": () => (/* reexport safe */ _each_js__WEBPACK_IMPORTED_MODULE_83__.default), +/* harmony export */ "map": () => (/* reexport safe */ _map_js__WEBPACK_IMPORTED_MODULE_84__.default), +/* harmony export */ "collect": () => (/* reexport safe */ _map_js__WEBPACK_IMPORTED_MODULE_84__.default), +/* harmony export */ "reduce": () => (/* reexport safe */ _reduce_js__WEBPACK_IMPORTED_MODULE_85__.default), +/* harmony export */ "foldl": () => (/* reexport safe */ _reduce_js__WEBPACK_IMPORTED_MODULE_85__.default), +/* harmony export */ "inject": () => (/* reexport safe */ _reduce_js__WEBPACK_IMPORTED_MODULE_85__.default), +/* harmony export */ "reduceRight": () => (/* reexport safe */ _reduceRight_js__WEBPACK_IMPORTED_MODULE_86__.default), +/* harmony export */ "foldr": () => (/* reexport safe */ _reduceRight_js__WEBPACK_IMPORTED_MODULE_86__.default), +/* harmony export */ "filter": () => (/* reexport safe */ _filter_js__WEBPACK_IMPORTED_MODULE_87__.default), +/* harmony export */ "select": () => (/* reexport safe */ _filter_js__WEBPACK_IMPORTED_MODULE_87__.default), +/* harmony export */ "reject": () => (/* reexport safe */ _reject_js__WEBPACK_IMPORTED_MODULE_88__.default), +/* harmony export */ "every": () => (/* reexport safe */ _every_js__WEBPACK_IMPORTED_MODULE_89__.default), +/* harmony export */ "all": () => (/* reexport safe */ _every_js__WEBPACK_IMPORTED_MODULE_89__.default), +/* harmony export */ "some": () => (/* reexport safe */ _some_js__WEBPACK_IMPORTED_MODULE_90__.default), +/* harmony export */ "any": () => (/* reexport safe */ _some_js__WEBPACK_IMPORTED_MODULE_90__.default), +/* harmony export */ "contains": () => (/* reexport safe */ _contains_js__WEBPACK_IMPORTED_MODULE_91__.default), +/* harmony export */ "includes": () => (/* reexport safe */ _contains_js__WEBPACK_IMPORTED_MODULE_91__.default), +/* harmony export */ "include": () => (/* reexport safe */ _contains_js__WEBPACK_IMPORTED_MODULE_91__.default), +/* harmony export */ "invoke": () => (/* reexport safe */ _invoke_js__WEBPACK_IMPORTED_MODULE_92__.default), +/* harmony export */ "pluck": () => (/* reexport safe */ _pluck_js__WEBPACK_IMPORTED_MODULE_93__.default), +/* harmony export */ "where": () => (/* reexport safe */ _where_js__WEBPACK_IMPORTED_MODULE_94__.default), +/* harmony export */ "max": () => (/* reexport safe */ _max_js__WEBPACK_IMPORTED_MODULE_95__.default), +/* harmony export */ "min": () => (/* reexport safe */ _min_js__WEBPACK_IMPORTED_MODULE_96__.default), +/* harmony export */ "shuffle": () => (/* reexport safe */ _shuffle_js__WEBPACK_IMPORTED_MODULE_97__.default), +/* harmony export */ "sample": () => (/* reexport safe */ _sample_js__WEBPACK_IMPORTED_MODULE_98__.default), +/* harmony export */ "sortBy": () => (/* reexport safe */ _sortBy_js__WEBPACK_IMPORTED_MODULE_99__.default), +/* harmony export */ "groupBy": () => (/* reexport safe */ _groupBy_js__WEBPACK_IMPORTED_MODULE_100__.default), +/* harmony export */ "indexBy": () => (/* reexport safe */ _indexBy_js__WEBPACK_IMPORTED_MODULE_101__.default), +/* harmony export */ "countBy": () => (/* reexport safe */ _countBy_js__WEBPACK_IMPORTED_MODULE_102__.default), +/* harmony export */ "partition": () => (/* reexport safe */ _partition_js__WEBPACK_IMPORTED_MODULE_103__.default), +/* harmony export */ "toArray": () => (/* reexport safe */ _toArray_js__WEBPACK_IMPORTED_MODULE_104__.default), +/* harmony export */ "size": () => (/* reexport safe */ _size_js__WEBPACK_IMPORTED_MODULE_105__.default), +/* harmony export */ "pick": () => (/* reexport safe */ _pick_js__WEBPACK_IMPORTED_MODULE_106__.default), +/* harmony export */ "omit": () => (/* reexport safe */ _omit_js__WEBPACK_IMPORTED_MODULE_107__.default), +/* harmony export */ "first": () => (/* reexport safe */ _first_js__WEBPACK_IMPORTED_MODULE_108__.default), +/* harmony export */ "head": () => (/* reexport safe */ _first_js__WEBPACK_IMPORTED_MODULE_108__.default), +/* harmony export */ "take": () => (/* reexport safe */ _first_js__WEBPACK_IMPORTED_MODULE_108__.default), +/* harmony export */ "initial": () => (/* reexport safe */ _initial_js__WEBPACK_IMPORTED_MODULE_109__.default), +/* harmony export */ "last": () => (/* reexport safe */ _last_js__WEBPACK_IMPORTED_MODULE_110__.default), +/* harmony export */ "rest": () => (/* reexport safe */ _rest_js__WEBPACK_IMPORTED_MODULE_111__.default), +/* harmony export */ "tail": () => (/* reexport safe */ _rest_js__WEBPACK_IMPORTED_MODULE_111__.default), +/* harmony export */ "drop": () => (/* reexport safe */ _rest_js__WEBPACK_IMPORTED_MODULE_111__.default), +/* harmony export */ "compact": () => (/* reexport safe */ _compact_js__WEBPACK_IMPORTED_MODULE_112__.default), +/* harmony export */ "flatten": () => (/* reexport safe */ _flatten_js__WEBPACK_IMPORTED_MODULE_113__.default), +/* harmony export */ "without": () => (/* reexport safe */ _without_js__WEBPACK_IMPORTED_MODULE_114__.default), +/* harmony export */ "uniq": () => (/* reexport safe */ _uniq_js__WEBPACK_IMPORTED_MODULE_115__.default), +/* harmony export */ "unique": () => (/* reexport safe */ _uniq_js__WEBPACK_IMPORTED_MODULE_115__.default), +/* harmony export */ "union": () => (/* reexport safe */ _union_js__WEBPACK_IMPORTED_MODULE_116__.default), +/* harmony export */ "intersection": () => (/* reexport safe */ _intersection_js__WEBPACK_IMPORTED_MODULE_117__.default), +/* harmony export */ "difference": () => (/* reexport safe */ _difference_js__WEBPACK_IMPORTED_MODULE_118__.default), +/* harmony export */ "unzip": () => (/* reexport safe */ _unzip_js__WEBPACK_IMPORTED_MODULE_119__.default), +/* harmony export */ "transpose": () => (/* reexport safe */ _unzip_js__WEBPACK_IMPORTED_MODULE_119__.default), +/* harmony export */ "zip": () => (/* reexport safe */ _zip_js__WEBPACK_IMPORTED_MODULE_120__.default), +/* harmony export */ "object": () => (/* reexport safe */ _object_js__WEBPACK_IMPORTED_MODULE_121__.default), +/* harmony export */ "range": () => (/* reexport safe */ _range_js__WEBPACK_IMPORTED_MODULE_122__.default), +/* harmony export */ "chunk": () => (/* reexport safe */ _chunk_js__WEBPACK_IMPORTED_MODULE_123__.default), +/* harmony export */ "mixin": () => (/* reexport safe */ _mixin_js__WEBPACK_IMPORTED_MODULE_124__.default), +/* harmony export */ "default": () => (/* reexport safe */ _underscore_array_methods_js__WEBPACK_IMPORTED_MODULE_125__.default) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3326904__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3326904__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3326904__(/*! ./isObject.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isObject.js"); +/* harmony import */ var _isNull_js__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_3326904__(/*! ./isNull.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isNull.js"); +/* harmony import */ var _isUndefined_js__WEBPACK_IMPORTED_MODULE_4__ = __nested_webpack_require_3326904__(/*! ./isUndefined.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isUndefined.js"); +/* harmony import */ var _isBoolean_js__WEBPACK_IMPORTED_MODULE_5__ = __nested_webpack_require_3326904__(/*! ./isBoolean.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isBoolean.js"); +/* harmony import */ var _isElement_js__WEBPACK_IMPORTED_MODULE_6__ = __nested_webpack_require_3326904__(/*! ./isElement.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isElement.js"); +/* harmony import */ var _isString_js__WEBPACK_IMPORTED_MODULE_7__ = __nested_webpack_require_3326904__(/*! ./isString.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isString.js"); +/* harmony import */ var _isNumber_js__WEBPACK_IMPORTED_MODULE_8__ = __nested_webpack_require_3326904__(/*! ./isNumber.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isNumber.js"); +/* harmony import */ var _isDate_js__WEBPACK_IMPORTED_MODULE_9__ = __nested_webpack_require_3326904__(/*! ./isDate.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isDate.js"); +/* harmony import */ var _isRegExp_js__WEBPACK_IMPORTED_MODULE_10__ = __nested_webpack_require_3326904__(/*! ./isRegExp.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isRegExp.js"); +/* harmony import */ var _isError_js__WEBPACK_IMPORTED_MODULE_11__ = __nested_webpack_require_3326904__(/*! ./isError.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isError.js"); +/* harmony import */ var _isSymbol_js__WEBPACK_IMPORTED_MODULE_12__ = __nested_webpack_require_3326904__(/*! ./isSymbol.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isSymbol.js"); +/* harmony import */ var _isArrayBuffer_js__WEBPACK_IMPORTED_MODULE_13__ = __nested_webpack_require_3326904__(/*! ./isArrayBuffer.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArrayBuffer.js"); +/* harmony import */ var _isDataView_js__WEBPACK_IMPORTED_MODULE_14__ = __nested_webpack_require_3326904__(/*! ./isDataView.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isDataView.js"); +/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_15__ = __nested_webpack_require_3326904__(/*! ./isArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArray.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_16__ = __nested_webpack_require_3326904__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _isArguments_js__WEBPACK_IMPORTED_MODULE_17__ = __nested_webpack_require_3326904__(/*! ./isArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArguments.js"); +/* harmony import */ var _isFinite_js__WEBPACK_IMPORTED_MODULE_18__ = __nested_webpack_require_3326904__(/*! ./isFinite.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFinite.js"); +/* harmony import */ var _isNaN_js__WEBPACK_IMPORTED_MODULE_19__ = __nested_webpack_require_3326904__(/*! ./isNaN.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isNaN.js"); +/* harmony import */ var _isTypedArray_js__WEBPACK_IMPORTED_MODULE_20__ = __nested_webpack_require_3326904__(/*! ./isTypedArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isTypedArray.js"); +/* harmony import */ var _isEmpty_js__WEBPACK_IMPORTED_MODULE_21__ = __nested_webpack_require_3326904__(/*! ./isEmpty.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isEmpty.js"); +/* harmony import */ var _isMatch_js__WEBPACK_IMPORTED_MODULE_22__ = __nested_webpack_require_3326904__(/*! ./isMatch.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isMatch.js"); +/* harmony import */ var _isEqual_js__WEBPACK_IMPORTED_MODULE_23__ = __nested_webpack_require_3326904__(/*! ./isEqual.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isEqual.js"); +/* harmony import */ var _isMap_js__WEBPACK_IMPORTED_MODULE_24__ = __nested_webpack_require_3326904__(/*! ./isMap.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isMap.js"); +/* harmony import */ var _isWeakMap_js__WEBPACK_IMPORTED_MODULE_25__ = __nested_webpack_require_3326904__(/*! ./isWeakMap.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isWeakMap.js"); +/* harmony import */ var _isSet_js__WEBPACK_IMPORTED_MODULE_26__ = __nested_webpack_require_3326904__(/*! ./isSet.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isSet.js"); +/* harmony import */ var _isWeakSet_js__WEBPACK_IMPORTED_MODULE_27__ = __nested_webpack_require_3326904__(/*! ./isWeakSet.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isWeakSet.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_28__ = __nested_webpack_require_3326904__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); +/* harmony import */ var _allKeys_js__WEBPACK_IMPORTED_MODULE_29__ = __nested_webpack_require_3326904__(/*! ./allKeys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js"); +/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_30__ = __nested_webpack_require_3326904__(/*! ./values.js */ "./build/cht-core-4-6/node_modules/underscore/modules/values.js"); +/* harmony import */ var _pairs_js__WEBPACK_IMPORTED_MODULE_31__ = __nested_webpack_require_3326904__(/*! ./pairs.js */ "./build/cht-core-4-6/node_modules/underscore/modules/pairs.js"); +/* harmony import */ var _invert_js__WEBPACK_IMPORTED_MODULE_32__ = __nested_webpack_require_3326904__(/*! ./invert.js */ "./build/cht-core-4-6/node_modules/underscore/modules/invert.js"); +/* harmony import */ var _functions_js__WEBPACK_IMPORTED_MODULE_33__ = __nested_webpack_require_3326904__(/*! ./functions.js */ "./build/cht-core-4-6/node_modules/underscore/modules/functions.js"); +/* harmony import */ var _extend_js__WEBPACK_IMPORTED_MODULE_34__ = __nested_webpack_require_3326904__(/*! ./extend.js */ "./build/cht-core-4-6/node_modules/underscore/modules/extend.js"); +/* harmony import */ var _extendOwn_js__WEBPACK_IMPORTED_MODULE_35__ = __nested_webpack_require_3326904__(/*! ./extendOwn.js */ "./build/cht-core-4-6/node_modules/underscore/modules/extendOwn.js"); +/* harmony import */ var _defaults_js__WEBPACK_IMPORTED_MODULE_36__ = __nested_webpack_require_3326904__(/*! ./defaults.js */ "./build/cht-core-4-6/node_modules/underscore/modules/defaults.js"); +/* harmony import */ var _create_js__WEBPACK_IMPORTED_MODULE_37__ = __nested_webpack_require_3326904__(/*! ./create.js */ "./build/cht-core-4-6/node_modules/underscore/modules/create.js"); +/* harmony import */ var _clone_js__WEBPACK_IMPORTED_MODULE_38__ = __nested_webpack_require_3326904__(/*! ./clone.js */ "./build/cht-core-4-6/node_modules/underscore/modules/clone.js"); +/* harmony import */ var _tap_js__WEBPACK_IMPORTED_MODULE_39__ = __nested_webpack_require_3326904__(/*! ./tap.js */ "./build/cht-core-4-6/node_modules/underscore/modules/tap.js"); +/* harmony import */ var _get_js__WEBPACK_IMPORTED_MODULE_40__ = __nested_webpack_require_3326904__(/*! ./get.js */ "./build/cht-core-4-6/node_modules/underscore/modules/get.js"); +/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_41__ = __nested_webpack_require_3326904__(/*! ./has.js */ "./build/cht-core-4-6/node_modules/underscore/modules/has.js"); +/* harmony import */ var _mapObject_js__WEBPACK_IMPORTED_MODULE_42__ = __nested_webpack_require_3326904__(/*! ./mapObject.js */ "./build/cht-core-4-6/node_modules/underscore/modules/mapObject.js"); +/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_43__ = __nested_webpack_require_3326904__(/*! ./identity.js */ "./build/cht-core-4-6/node_modules/underscore/modules/identity.js"); +/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_44__ = __nested_webpack_require_3326904__(/*! ./constant.js */ "./build/cht-core-4-6/node_modules/underscore/modules/constant.js"); +/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_45__ = __nested_webpack_require_3326904__(/*! ./noop.js */ "./build/cht-core-4-6/node_modules/underscore/modules/noop.js"); +/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_46__ = __nested_webpack_require_3326904__(/*! ./toPath.js */ "./build/cht-core-4-6/node_modules/underscore/modules/toPath.js"); +/* harmony import */ var _property_js__WEBPACK_IMPORTED_MODULE_47__ = __nested_webpack_require_3326904__(/*! ./property.js */ "./build/cht-core-4-6/node_modules/underscore/modules/property.js"); +/* harmony import */ var _propertyOf_js__WEBPACK_IMPORTED_MODULE_48__ = __nested_webpack_require_3326904__(/*! ./propertyOf.js */ "./build/cht-core-4-6/node_modules/underscore/modules/propertyOf.js"); +/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_49__ = __nested_webpack_require_3326904__(/*! ./matcher.js */ "./build/cht-core-4-6/node_modules/underscore/modules/matcher.js"); +/* harmony import */ var _times_js__WEBPACK_IMPORTED_MODULE_50__ = __nested_webpack_require_3326904__(/*! ./times.js */ "./build/cht-core-4-6/node_modules/underscore/modules/times.js"); +/* harmony import */ var _random_js__WEBPACK_IMPORTED_MODULE_51__ = __nested_webpack_require_3326904__(/*! ./random.js */ "./build/cht-core-4-6/node_modules/underscore/modules/random.js"); +/* harmony import */ var _now_js__WEBPACK_IMPORTED_MODULE_52__ = __nested_webpack_require_3326904__(/*! ./now.js */ "./build/cht-core-4-6/node_modules/underscore/modules/now.js"); +/* harmony import */ var _escape_js__WEBPACK_IMPORTED_MODULE_53__ = __nested_webpack_require_3326904__(/*! ./escape.js */ "./build/cht-core-4-6/node_modules/underscore/modules/escape.js"); +/* harmony import */ var _unescape_js__WEBPACK_IMPORTED_MODULE_54__ = __nested_webpack_require_3326904__(/*! ./unescape.js */ "./build/cht-core-4-6/node_modules/underscore/modules/unescape.js"); +/* harmony import */ var _templateSettings_js__WEBPACK_IMPORTED_MODULE_55__ = __nested_webpack_require_3326904__(/*! ./templateSettings.js */ "./build/cht-core-4-6/node_modules/underscore/modules/templateSettings.js"); +/* harmony import */ var _template_js__WEBPACK_IMPORTED_MODULE_56__ = __nested_webpack_require_3326904__(/*! ./template.js */ "./build/cht-core-4-6/node_modules/underscore/modules/template.js"); +/* harmony import */ var _result_js__WEBPACK_IMPORTED_MODULE_57__ = __nested_webpack_require_3326904__(/*! ./result.js */ "./build/cht-core-4-6/node_modules/underscore/modules/result.js"); +/* harmony import */ var _uniqueId_js__WEBPACK_IMPORTED_MODULE_58__ = __nested_webpack_require_3326904__(/*! ./uniqueId.js */ "./build/cht-core-4-6/node_modules/underscore/modules/uniqueId.js"); +/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_59__ = __nested_webpack_require_3326904__(/*! ./chain.js */ "./build/cht-core-4-6/node_modules/underscore/modules/chain.js"); +/* harmony import */ var _iteratee_js__WEBPACK_IMPORTED_MODULE_60__ = __nested_webpack_require_3326904__(/*! ./iteratee.js */ "./build/cht-core-4-6/node_modules/underscore/modules/iteratee.js"); +/* harmony import */ var _partial_js__WEBPACK_IMPORTED_MODULE_61__ = __nested_webpack_require_3326904__(/*! ./partial.js */ "./build/cht-core-4-6/node_modules/underscore/modules/partial.js"); +/* harmony import */ var _bind_js__WEBPACK_IMPORTED_MODULE_62__ = __nested_webpack_require_3326904__(/*! ./bind.js */ "./build/cht-core-4-6/node_modules/underscore/modules/bind.js"); +/* harmony import */ var _bindAll_js__WEBPACK_IMPORTED_MODULE_63__ = __nested_webpack_require_3326904__(/*! ./bindAll.js */ "./build/cht-core-4-6/node_modules/underscore/modules/bindAll.js"); +/* harmony import */ var _memoize_js__WEBPACK_IMPORTED_MODULE_64__ = __nested_webpack_require_3326904__(/*! ./memoize.js */ "./build/cht-core-4-6/node_modules/underscore/modules/memoize.js"); +/* harmony import */ var _delay_js__WEBPACK_IMPORTED_MODULE_65__ = __nested_webpack_require_3326904__(/*! ./delay.js */ "./build/cht-core-4-6/node_modules/underscore/modules/delay.js"); +/* harmony import */ var _defer_js__WEBPACK_IMPORTED_MODULE_66__ = __nested_webpack_require_3326904__(/*! ./defer.js */ "./build/cht-core-4-6/node_modules/underscore/modules/defer.js"); +/* harmony import */ var _throttle_js__WEBPACK_IMPORTED_MODULE_67__ = __nested_webpack_require_3326904__(/*! ./throttle.js */ "./build/cht-core-4-6/node_modules/underscore/modules/throttle.js"); +/* harmony import */ var _debounce_js__WEBPACK_IMPORTED_MODULE_68__ = __nested_webpack_require_3326904__(/*! ./debounce.js */ "./build/cht-core-4-6/node_modules/underscore/modules/debounce.js"); +/* harmony import */ var _wrap_js__WEBPACK_IMPORTED_MODULE_69__ = __nested_webpack_require_3326904__(/*! ./wrap.js */ "./build/cht-core-4-6/node_modules/underscore/modules/wrap.js"); +/* harmony import */ var _negate_js__WEBPACK_IMPORTED_MODULE_70__ = __nested_webpack_require_3326904__(/*! ./negate.js */ "./build/cht-core-4-6/node_modules/underscore/modules/negate.js"); +/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_71__ = __nested_webpack_require_3326904__(/*! ./compose.js */ "./build/cht-core-4-6/node_modules/underscore/modules/compose.js"); +/* harmony import */ var _after_js__WEBPACK_IMPORTED_MODULE_72__ = __nested_webpack_require_3326904__(/*! ./after.js */ "./build/cht-core-4-6/node_modules/underscore/modules/after.js"); +/* harmony import */ var _before_js__WEBPACK_IMPORTED_MODULE_73__ = __nested_webpack_require_3326904__(/*! ./before.js */ "./build/cht-core-4-6/node_modules/underscore/modules/before.js"); +/* harmony import */ var _once_js__WEBPACK_IMPORTED_MODULE_74__ = __nested_webpack_require_3326904__(/*! ./once.js */ "./build/cht-core-4-6/node_modules/underscore/modules/once.js"); +/* harmony import */ var _findKey_js__WEBPACK_IMPORTED_MODULE_75__ = __nested_webpack_require_3326904__(/*! ./findKey.js */ "./build/cht-core-4-6/node_modules/underscore/modules/findKey.js"); +/* harmony import */ var _findIndex_js__WEBPACK_IMPORTED_MODULE_76__ = __nested_webpack_require_3326904__(/*! ./findIndex.js */ "./build/cht-core-4-6/node_modules/underscore/modules/findIndex.js"); +/* harmony import */ var _findLastIndex_js__WEBPACK_IMPORTED_MODULE_77__ = __nested_webpack_require_3326904__(/*! ./findLastIndex.js */ "./build/cht-core-4-6/node_modules/underscore/modules/findLastIndex.js"); +/* harmony import */ var _sortedIndex_js__WEBPACK_IMPORTED_MODULE_78__ = __nested_webpack_require_3326904__(/*! ./sortedIndex.js */ "./build/cht-core-4-6/node_modules/underscore/modules/sortedIndex.js"); +/* harmony import */ var _indexOf_js__WEBPACK_IMPORTED_MODULE_79__ = __nested_webpack_require_3326904__(/*! ./indexOf.js */ "./build/cht-core-4-6/node_modules/underscore/modules/indexOf.js"); +/* harmony import */ var _lastIndexOf_js__WEBPACK_IMPORTED_MODULE_80__ = __nested_webpack_require_3326904__(/*! ./lastIndexOf.js */ "./build/cht-core-4-6/node_modules/underscore/modules/lastIndexOf.js"); +/* harmony import */ var _find_js__WEBPACK_IMPORTED_MODULE_81__ = __nested_webpack_require_3326904__(/*! ./find.js */ "./build/cht-core-4-6/node_modules/underscore/modules/find.js"); +/* harmony import */ var _findWhere_js__WEBPACK_IMPORTED_MODULE_82__ = __nested_webpack_require_3326904__(/*! ./findWhere.js */ "./build/cht-core-4-6/node_modules/underscore/modules/findWhere.js"); +/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_83__ = __nested_webpack_require_3326904__(/*! ./each.js */ "./build/cht-core-4-6/node_modules/underscore/modules/each.js"); +/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_84__ = __nested_webpack_require_3326904__(/*! ./map.js */ "./build/cht-core-4-6/node_modules/underscore/modules/map.js"); +/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_85__ = __nested_webpack_require_3326904__(/*! ./reduce.js */ "./build/cht-core-4-6/node_modules/underscore/modules/reduce.js"); +/* harmony import */ var _reduceRight_js__WEBPACK_IMPORTED_MODULE_86__ = __nested_webpack_require_3326904__(/*! ./reduceRight.js */ "./build/cht-core-4-6/node_modules/underscore/modules/reduceRight.js"); +/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_87__ = __nested_webpack_require_3326904__(/*! ./filter.js */ "./build/cht-core-4-6/node_modules/underscore/modules/filter.js"); +/* harmony import */ var _reject_js__WEBPACK_IMPORTED_MODULE_88__ = __nested_webpack_require_3326904__(/*! ./reject.js */ "./build/cht-core-4-6/node_modules/underscore/modules/reject.js"); +/* harmony import */ var _every_js__WEBPACK_IMPORTED_MODULE_89__ = __nested_webpack_require_3326904__(/*! ./every.js */ "./build/cht-core-4-6/node_modules/underscore/modules/every.js"); +/* harmony import */ var _some_js__WEBPACK_IMPORTED_MODULE_90__ = __nested_webpack_require_3326904__(/*! ./some.js */ "./build/cht-core-4-6/node_modules/underscore/modules/some.js"); +/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_91__ = __nested_webpack_require_3326904__(/*! ./contains.js */ "./build/cht-core-4-6/node_modules/underscore/modules/contains.js"); +/* harmony import */ var _invoke_js__WEBPACK_IMPORTED_MODULE_92__ = __nested_webpack_require_3326904__(/*! ./invoke.js */ "./build/cht-core-4-6/node_modules/underscore/modules/invoke.js"); +/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_93__ = __nested_webpack_require_3326904__(/*! ./pluck.js */ "./build/cht-core-4-6/node_modules/underscore/modules/pluck.js"); +/* harmony import */ var _where_js__WEBPACK_IMPORTED_MODULE_94__ = __nested_webpack_require_3326904__(/*! ./where.js */ "./build/cht-core-4-6/node_modules/underscore/modules/where.js"); +/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_95__ = __nested_webpack_require_3326904__(/*! ./max.js */ "./build/cht-core-4-6/node_modules/underscore/modules/max.js"); +/* harmony import */ var _min_js__WEBPACK_IMPORTED_MODULE_96__ = __nested_webpack_require_3326904__(/*! ./min.js */ "./build/cht-core-4-6/node_modules/underscore/modules/min.js"); +/* harmony import */ var _shuffle_js__WEBPACK_IMPORTED_MODULE_97__ = __nested_webpack_require_3326904__(/*! ./shuffle.js */ "./build/cht-core-4-6/node_modules/underscore/modules/shuffle.js"); +/* harmony import */ var _sample_js__WEBPACK_IMPORTED_MODULE_98__ = __nested_webpack_require_3326904__(/*! ./sample.js */ "./build/cht-core-4-6/node_modules/underscore/modules/sample.js"); +/* harmony import */ var _sortBy_js__WEBPACK_IMPORTED_MODULE_99__ = __nested_webpack_require_3326904__(/*! ./sortBy.js */ "./build/cht-core-4-6/node_modules/underscore/modules/sortBy.js"); +/* harmony import */ var _groupBy_js__WEBPACK_IMPORTED_MODULE_100__ = __nested_webpack_require_3326904__(/*! ./groupBy.js */ "./build/cht-core-4-6/node_modules/underscore/modules/groupBy.js"); +/* harmony import */ var _indexBy_js__WEBPACK_IMPORTED_MODULE_101__ = __nested_webpack_require_3326904__(/*! ./indexBy.js */ "./build/cht-core-4-6/node_modules/underscore/modules/indexBy.js"); +/* harmony import */ var _countBy_js__WEBPACK_IMPORTED_MODULE_102__ = __nested_webpack_require_3326904__(/*! ./countBy.js */ "./build/cht-core-4-6/node_modules/underscore/modules/countBy.js"); +/* harmony import */ var _partition_js__WEBPACK_IMPORTED_MODULE_103__ = __nested_webpack_require_3326904__(/*! ./partition.js */ "./build/cht-core-4-6/node_modules/underscore/modules/partition.js"); +/* harmony import */ var _toArray_js__WEBPACK_IMPORTED_MODULE_104__ = __nested_webpack_require_3326904__(/*! ./toArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/toArray.js"); +/* harmony import */ var _size_js__WEBPACK_IMPORTED_MODULE_105__ = __nested_webpack_require_3326904__(/*! ./size.js */ "./build/cht-core-4-6/node_modules/underscore/modules/size.js"); +/* harmony import */ var _pick_js__WEBPACK_IMPORTED_MODULE_106__ = __nested_webpack_require_3326904__(/*! ./pick.js */ "./build/cht-core-4-6/node_modules/underscore/modules/pick.js"); +/* harmony import */ var _omit_js__WEBPACK_IMPORTED_MODULE_107__ = __nested_webpack_require_3326904__(/*! ./omit.js */ "./build/cht-core-4-6/node_modules/underscore/modules/omit.js"); +/* harmony import */ var _first_js__WEBPACK_IMPORTED_MODULE_108__ = __nested_webpack_require_3326904__(/*! ./first.js */ "./build/cht-core-4-6/node_modules/underscore/modules/first.js"); +/* harmony import */ var _initial_js__WEBPACK_IMPORTED_MODULE_109__ = __nested_webpack_require_3326904__(/*! ./initial.js */ "./build/cht-core-4-6/node_modules/underscore/modules/initial.js"); +/* harmony import */ var _last_js__WEBPACK_IMPORTED_MODULE_110__ = __nested_webpack_require_3326904__(/*! ./last.js */ "./build/cht-core-4-6/node_modules/underscore/modules/last.js"); +/* harmony import */ var _rest_js__WEBPACK_IMPORTED_MODULE_111__ = __nested_webpack_require_3326904__(/*! ./rest.js */ "./build/cht-core-4-6/node_modules/underscore/modules/rest.js"); +/* harmony import */ var _compact_js__WEBPACK_IMPORTED_MODULE_112__ = __nested_webpack_require_3326904__(/*! ./compact.js */ "./build/cht-core-4-6/node_modules/underscore/modules/compact.js"); +/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_113__ = __nested_webpack_require_3326904__(/*! ./flatten.js */ "./build/cht-core-4-6/node_modules/underscore/modules/flatten.js"); +/* harmony import */ var _without_js__WEBPACK_IMPORTED_MODULE_114__ = __nested_webpack_require_3326904__(/*! ./without.js */ "./build/cht-core-4-6/node_modules/underscore/modules/without.js"); +/* harmony import */ var _uniq_js__WEBPACK_IMPORTED_MODULE_115__ = __nested_webpack_require_3326904__(/*! ./uniq.js */ "./build/cht-core-4-6/node_modules/underscore/modules/uniq.js"); +/* harmony import */ var _union_js__WEBPACK_IMPORTED_MODULE_116__ = __nested_webpack_require_3326904__(/*! ./union.js */ "./build/cht-core-4-6/node_modules/underscore/modules/union.js"); +/* harmony import */ var _intersection_js__WEBPACK_IMPORTED_MODULE_117__ = __nested_webpack_require_3326904__(/*! ./intersection.js */ "./build/cht-core-4-6/node_modules/underscore/modules/intersection.js"); +/* harmony import */ var _difference_js__WEBPACK_IMPORTED_MODULE_118__ = __nested_webpack_require_3326904__(/*! ./difference.js */ "./build/cht-core-4-6/node_modules/underscore/modules/difference.js"); +/* harmony import */ var _unzip_js__WEBPACK_IMPORTED_MODULE_119__ = __nested_webpack_require_3326904__(/*! ./unzip.js */ "./build/cht-core-4-6/node_modules/underscore/modules/unzip.js"); +/* harmony import */ var _zip_js__WEBPACK_IMPORTED_MODULE_120__ = __nested_webpack_require_3326904__(/*! ./zip.js */ "./build/cht-core-4-6/node_modules/underscore/modules/zip.js"); +/* harmony import */ var _object_js__WEBPACK_IMPORTED_MODULE_121__ = __nested_webpack_require_3326904__(/*! ./object.js */ "./build/cht-core-4-6/node_modules/underscore/modules/object.js"); +/* harmony import */ var _range_js__WEBPACK_IMPORTED_MODULE_122__ = __nested_webpack_require_3326904__(/*! ./range.js */ "./build/cht-core-4-6/node_modules/underscore/modules/range.js"); +/* harmony import */ var _chunk_js__WEBPACK_IMPORTED_MODULE_123__ = __nested_webpack_require_3326904__(/*! ./chunk.js */ "./build/cht-core-4-6/node_modules/underscore/modules/chunk.js"); +/* harmony import */ var _mixin_js__WEBPACK_IMPORTED_MODULE_124__ = __nested_webpack_require_3326904__(/*! ./mixin.js */ "./build/cht-core-4-6/node_modules/underscore/modules/mixin.js"); +/* harmony import */ var _underscore_array_methods_js__WEBPACK_IMPORTED_MODULE_125__ = __nested_webpack_require_3326904__(/*! ./underscore-array-methods.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore-array-methods.js"); +// Named Exports +// ============= + +// Underscore.js 1.13.6 +// https://underscorejs.org +// (c) 2009-2022 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors +// Underscore may be freely distributed under the MIT license. + +// Baseline setup. + + + +// Object Functions +// ---------------- +// Our most fundamental functions operate on any JavaScript object. +// Most functions in Underscore depend on at least one function in this section. + +// A group of functions that check the types of core JavaScript values. +// These are often informally referred to as the "isType" functions. + + + + + + + + + + + + + + + + + + + + + + + + + + + +// Functions that treat an object as a dictionary of key-value pairs. + -// Internal function that returns an efficient (for current engines) version -// of the passed-in callback, to be repeatedly applied in other Underscore -// functions. -function optimizeCb(func, context, argCount) { - if (context === void 0) return func; - switch (argCount == null ? 3 : argCount) { - case 1: return function(value) { - return func.call(context, value); - }; - // The 2-argument case is omitted because we’re not using it. - case 3: return function(value, index, collection) { - return func.call(context, value, index, collection); - }; - case 4: return function(accumulator, value, index, collection) { - return func.call(context, accumulator, value, index, collection); - }; - } - return function() { - return func.apply(context, arguments); - }; -} -// An internal function to generate callbacks that can be applied to each -// element in a collection, returning the desired result — either `_.identity`, -// an arbitrary callback, a property matcher, or a property accessor. -function baseIteratee(value, context, argCount) { - if (value == null) return identity; - if (isFunction$1(value)) return optimizeCb(value, context, argCount); - if (isObject(value) && !isArray(value)) return matcher(value); - return property(value); -} -// External wrapper for our callback generator. Users may customize -// `_.iteratee` if they want additional predicate/iteratee shorthand styles. -// This abstraction hides the internal-only `argCount` argument. -function iteratee(value, context) { - return baseIteratee(value, context, Infinity); -} -_$1.iteratee = iteratee; -// The function we call internally to generate a callback. It invokes -// `_.iteratee` if overridden, otherwise `baseIteratee`. -function cb(value, context, argCount) { - if (_$1.iteratee !== iteratee) return _$1.iteratee(value, context); - return baseIteratee(value, context, argCount); -} -// Returns the results of applying the `iteratee` to each element of `obj`. -// In contrast to `_.map` it returns an object. -function mapObject(obj, iteratee, context) { - iteratee = cb(iteratee, context); - var _keys = keys(obj), - length = _keys.length, - results = {}; - for (var index = 0; index < length; index++) { - var currentKey = _keys[index]; - results[currentKey] = iteratee(obj[currentKey], currentKey, obj); - } - return results; -} -// Predicate-generating function. Often useful outside of Underscore. -function noop(){} -// Generates a function for a given object that returns a given property. -function propertyOf(obj) { - if (obj == null) return noop; - return function(path) { - return get(obj, path); - }; -} -// Run a function **n** times. -function times(n, iteratee, context) { - var accum = Array(Math.max(0, n)); - iteratee = optimizeCb(iteratee, context, 1); - for (var i = 0; i < n; i++) accum[i] = iteratee(i); - return accum; -} -// Return a random integer between `min` and `max` (inclusive). -function random(min, max) { - if (max == null) { - max = min; - min = 0; - } - return min + Math.floor(Math.random() * (max - min + 1)); -} -// A (possibly faster) way to get the current timestamp as an integer. -var now = Date.now || function() { - return new Date().getTime(); -}; -// Internal helper to generate functions for escaping and unescaping strings -// to/from HTML interpolation. -function createEscaper(map) { - var escaper = function(match) { - return map[match]; - }; - // Regexes for identifying a key that needs to be escaped. - var source = '(?:' + keys(map).join('|') + ')'; - var testRegexp = RegExp(source); - var replaceRegexp = RegExp(source, 'g'); - return function(string) { - string = string == null ? '' : '' + string; - return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string; - }; -} -// Internal list of HTML entities for escaping. -var escapeMap = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''', - '`': '`' -}; -// Function for escaping strings to HTML interpolation. -var _escape = createEscaper(escapeMap); -// Internal list of HTML entities for unescaping. -var unescapeMap = invert(escapeMap); -// Function for unescaping strings from HTML interpolation. -var _unescape = createEscaper(unescapeMap); +// Utility Functions +// ----------------- +// A bit of a grab bag: Predicate-generating functions for use with filters and +// loops, string escaping and templating, create random numbers and unique ids, +// and functions that facilitate Underscore's chaining and iteration conventions. -// By default, Underscore uses ERB-style template delimiters. Change the -// following template settings to use alternative delimiters. -var templateSettings = _$1.templateSettings = { - evaluate: /<%([\s\S]+?)%>/g, - interpolate: /<%=([\s\S]+?)%>/g, - escape: /<%-([\s\S]+?)%>/g -}; -// When customizing `_.templateSettings`, if you don't want to define an -// interpolation, evaluation or escaping regex, we need one that is -// guaranteed not to match. -var noMatch = /(.)^/; -// Certain characters need to be escaped so that they can be put into a -// string literal. -var escapes = { - "'": "'", - '\\': '\\', - '\r': 'r', - '\n': 'n', - '\u2028': 'u2028', - '\u2029': 'u2029' -}; -var escapeRegExp = /\\|'|\r|\n|\u2028|\u2029/g; -function escapeChar(match) { - return '\\' + escapes[match]; -} -// In order to prevent third-party code injection through -// `_.templateSettings.variable`, we test it against the following regular -// expression. It is intentionally a bit more liberal than just matching valid -// identifiers, but still prevents possible loopholes through defaults or -// destructuring assignment. -var bareIdentifier = /^\s*(\w|\$)+\s*$/; -// JavaScript micro-templating, similar to John Resig's implementation. -// Underscore templating handles arbitrary delimiters, preserves whitespace, -// and correctly escapes quotes within interpolated code. -// NB: `oldSettings` only exists for backwards compatibility. -function template(text, settings, oldSettings) { - if (!settings && oldSettings) settings = oldSettings; - settings = defaults({}, settings, _$1.templateSettings); - // Combine delimiters into one regular expression via alternation. - var matcher = RegExp([ - (settings.escape || noMatch).source, - (settings.interpolate || noMatch).source, - (settings.evaluate || noMatch).source - ].join('|') + '|$', 'g'); - // Compile the template source, escaping string literals appropriately. - var index = 0; - var source = "__p+='"; - text.replace(matcher, function(match, escape, interpolate, evaluate, offset) { - source += text.slice(index, offset).replace(escapeRegExp, escapeChar); - index = offset + match.length; - if (escape) { - source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; - } else if (interpolate) { - source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'"; - } else if (evaluate) { - source += "';\n" + evaluate + "\n__p+='"; - } - // Adobe VMs need the match returned to produce the correct offset. - return match; - }); - source += "';\n"; - var argument = settings.variable; - if (argument) { - // Insure against third-party code injection. (CVE-2021-23358) - if (!bareIdentifier.test(argument)) throw new Error( - 'variable is not a bare identifier: ' + argument - ); - } else { - // If a variable is not specified, place data values in local scope. - source = 'with(obj||{}){\n' + source + '}\n'; - argument = 'obj'; - } - source = "var __t,__p='',__j=Array.prototype.join," + - "print=function(){__p+=__j.call(arguments,'');};\n" + - source + 'return __p;\n'; - var render; - try { - render = new Function(argument, '_', source); - } catch (e) { - e.source = source; - throw e; - } - var template = function(data) { - return render.call(this, data, _$1); - }; - // Provide the compiled source as a convenience for precompilation. - template.source = 'function(' + argument + '){\n' + source + '}'; - return template; -} -// Traverses the children of `obj` along `path`. If a child is a function, it -// is invoked with its parent as context. Returns the value of the final -// child, or `fallback` if any child is undefined. -function result(obj, path, fallback) { - path = toPath(path); - var length = path.length; - if (!length) { - return isFunction$1(fallback) ? fallback.call(obj) : fallback; - } - for (var i = 0; i < length; i++) { - var prop = obj == null ? void 0 : obj[path[i]]; - if (prop === void 0) { - prop = fallback; - i = length; // Ensure we don't continue iterating. - } - obj = isFunction$1(prop) ? prop.call(obj) : prop; - } - return obj; -} -// Generate a unique integer id (unique within the entire client session). -// Useful for temporary DOM ids. -var idCounter = 0; -function uniqueId(prefix) { - var id = ++idCounter + ''; - return prefix ? prefix + id : id; -} +// Function (ahem) Functions +// ------------------------- +// These functions take a function as an argument and return a new function +// as the result. Also known as higher-order functions. -// Start chaining a wrapped Underscore object. -function chain(obj) { - var instance = _$1(obj); - instance._chain = true; - return instance; -} -// Internal function to execute `sourceFunc` bound to `context` with optional -// `args`. Determines whether to execute a function as a constructor or as a -// normal function. -function executeBound(sourceFunc, boundFunc, context, callingContext, args) { - if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args); - var self = baseCreate(sourceFunc.prototype); - var result = sourceFunc.apply(self, args); - if (isObject(result)) return result; - return self; -} -// Partially apply a function by creating a version that has had some of its -// arguments pre-filled, without changing its dynamic `this` context. `_` acts -// as a placeholder by default, allowing any combination of arguments to be -// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument. -var partial = restArguments(function(func, boundArgs) { - var placeholder = partial.placeholder; - var bound = function() { - var position = 0, length = boundArgs.length; - var args = Array(length); - for (var i = 0; i < length; i++) { - args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i]; - } - while (position < arguments.length) args.push(arguments[position++]); - return executeBound(func, bound, this, this, args); - }; - return bound; -}); -partial.placeholder = _$1; -// Create a function bound to a given object (assigning `this`, and arguments, -// optionally). -var bind = restArguments(function(func, context, args) { - if (!isFunction$1(func)) throw new TypeError('Bind must be called on a function'); - var bound = restArguments(function(callArgs) { - return executeBound(func, bound, context, this, args.concat(callArgs)); - }); - return bound; -}); -// Internal helper for collection methods to determine whether a collection -// should be iterated as an array or as an object. -// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength -// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094 -var isArrayLike = createSizePropertyCheck(getLength); -// Internal implementation of a recursive `flatten` function. -function flatten$1(input, depth, strict, output) { - output = output || []; - if (!depth && depth !== 0) { - depth = Infinity; - } else if (depth <= 0) { - return output.concat(input); - } - var idx = output.length; - for (var i = 0, length = getLength(input); i < length; i++) { - var value = input[i]; - if (isArrayLike(value) && (isArray(value) || isArguments$1(value))) { - // Flatten current level of array or arguments object. - if (depth > 1) { - flatten$1(value, depth - 1, strict, output); - idx = output.length; - } else { - var j = 0, len = value.length; - while (j < len) output[idx++] = value[j++]; - } - } else if (!strict) { - output[idx++] = value; - } - } - return output; -} -// Bind a number of an object's methods to that object. Remaining arguments -// are the method names to be bound. Useful for ensuring that all callbacks -// defined on an object belong to it. -var bindAll = restArguments(function(obj, keys) { - keys = flatten$1(keys, false, false); - var index = keys.length; - if (index < 1) throw new Error('bindAll must be passed function names'); - while (index--) { - var key = keys[index]; - obj[key] = bind(obj[key], obj); - } - return obj; -}); -// Memoize an expensive function by storing its results. -function memoize(func, hasher) { - var memoize = function(key) { - var cache = memoize.cache; - var address = '' + (hasher ? hasher.apply(this, arguments) : key); - if (!has$1(cache, address)) cache[address] = func.apply(this, arguments); - return cache[address]; - }; - memoize.cache = {}; - return memoize; -} -// Delays a function for the given number of milliseconds, and then calls -// it with the arguments supplied. -var delay = restArguments(function(func, wait, args) { - return setTimeout(function() { - return func.apply(null, args); - }, wait); -}); -// Defers a function, scheduling it to run after the current call stack has -// cleared. -var defer = partial(delay, _$1, 1); -// Returns a function, that, when invoked, will only be triggered at most once -// during a given window of time. Normally, the throttled function will run -// as much as it can, without ever going more than once per `wait` duration; -// but if you'd like to disable the execution on the leading edge, pass -// `{leading: false}`. To disable execution on the trailing edge, ditto. -function throttle(func, wait, options) { - var timeout, context, args, result; - var previous = 0; - if (!options) options = {}; - var later = function() { - previous = options.leading === false ? 0 : now(); - timeout = null; - result = func.apply(context, args); - if (!timeout) context = args = null; - }; - var throttled = function() { - var _now = now(); - if (!previous && options.leading === false) previous = _now; - var remaining = wait - (_now - previous); - context = this; - args = arguments; - if (remaining <= 0 || remaining > wait) { - if (timeout) { - clearTimeout(timeout); - timeout = null; - } - previous = _now; - result = func.apply(context, args); - if (!timeout) context = args = null; - } else if (!timeout && options.trailing !== false) { - timeout = setTimeout(later, remaining); - } - return result; - }; - throttled.cancel = function() { - clearTimeout(timeout); - previous = 0; - timeout = context = args = null; - }; +// Finders +// ------- +// Functions that extract (the position of) a single element from an object +// or array based on some criterion. - return throttled; -} -// When a sequence of calls of the returned function ends, the argument -// function is triggered. The end of a sequence is defined by the `wait` -// parameter. If `immediate` is passed, the argument function will be -// triggered at the beginning of the sequence instead of at the end. -function debounce(func, wait, immediate) { - var timeout, previous, args, result, context; - var later = function() { - var passed = now() - previous; - if (wait > passed) { - timeout = setTimeout(later, wait - passed); - } else { - timeout = null; - if (!immediate) result = func.apply(context, args); - // This check is needed because `func` can recursively invoke `debounced`. - if (!timeout) args = context = null; - } - }; - var debounced = restArguments(function(_args) { - context = this; - args = _args; - previous = now(); - if (!timeout) { - timeout = setTimeout(later, wait); - if (immediate) result = func.apply(context, args); - } - return result; - }); - debounced.cancel = function() { - clearTimeout(timeout); - timeout = args = context = null; - }; - return debounced; -} -// Returns the first function passed as an argument to the second, -// allowing you to adjust arguments, run code before and after, and -// conditionally execute the original function. -function wrap(func, wrapper) { - return partial(wrapper, func); -} -// Returns a negated version of the passed-in predicate. -function negate(predicate) { - return function() { - return !predicate.apply(this, arguments); - }; -} -// Returns a function that is the composition of a list of functions, each -// consuming the return value of the function that follows. -function compose() { - var args = arguments; - var start = args.length - 1; - return function() { - var i = start; - var result = args[start].apply(this, arguments); - while (i--) result = args[i].call(this, result); - return result; - }; -} +// Collection Functions +// -------------------- +// Functions that work on any collection of elements: either an array, or +// an object of key-value pairs. -// Returns a function that will only be executed on and after the Nth call. -function after(times, func) { - return function() { - if (--times < 1) { - return func.apply(this, arguments); - } - }; -} -// Returns a function that will only be executed up to (but not including) the -// Nth call. -function before(times, func) { - var memo; - return function() { - if (--times > 0) { - memo = func.apply(this, arguments); - } - if (times <= 1) func = null; - return memo; - }; -} -// Returns a function that will be executed at most one time, no matter how -// often you call it. Useful for lazy initialization. -var once = partial(before, 2); -// Returns the first key on an object that passes a truth test. -function findKey(obj, predicate, context) { - predicate = cb(predicate, context); - var _keys = keys(obj), key; - for (var i = 0, length = _keys.length; i < length; i++) { - key = _keys[i]; - if (predicate(obj[key], key, obj)) return key; - } -} -// Internal function to generate `_.findIndex` and `_.findLastIndex`. -function createPredicateIndexFinder(dir) { - return function(array, predicate, context) { - predicate = cb(predicate, context); - var length = getLength(array); - var index = dir > 0 ? 0 : length - 1; - for (; index >= 0 && index < length; index += dir) { - if (predicate(array[index], index, array)) return index; - } - return -1; - }; -} -// Returns the first index on an array-like that passes a truth test. -var findIndex = createPredicateIndexFinder(1); -// Returns the last index on an array-like that passes a truth test. -var findLastIndex = createPredicateIndexFinder(-1); -// Use a comparator function to figure out the smallest index at which -// an object should be inserted so as to maintain order. Uses binary search. -function sortedIndex(array, obj, iteratee, context) { - iteratee = cb(iteratee, context, 1); - var value = iteratee(obj); - var low = 0, high = getLength(array); - while (low < high) { - var mid = Math.floor((low + high) / 2); - if (iteratee(array[mid]) < value) low = mid + 1; else high = mid; - } - return low; -} -// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions. -function createIndexFinder(dir, predicateFind, sortedIndex) { - return function(array, item, idx) { - var i = 0, length = getLength(array); - if (typeof idx == 'number') { - if (dir > 0) { - i = idx >= 0 ? idx : Math.max(idx + length, i); - } else { - length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1; - } - } else if (sortedIndex && idx && length) { - idx = sortedIndex(array, item); - return array[idx] === item ? idx : -1; - } - if (item !== item) { - idx = predicateFind(slice.call(array, i, length), isNaN$1); - return idx >= 0 ? idx + i : -1; - } - for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) { - if (array[idx] === item) return idx; - } - return -1; - }; -} -// Return the position of the first occurrence of an item in an array, -// or -1 if the item is not included in the array. -// If the array is large and already in sort order, pass `true` -// for **isSorted** to use binary search. -var indexOf = createIndexFinder(1, findIndex, sortedIndex); -// Return the position of the last occurrence of an item in an array, -// or -1 if the item is not included in the array. -var lastIndexOf = createIndexFinder(-1, findLastIndex); -// Return the first value which passes a truth test. -function find(obj, predicate, context) { - var keyFinder = isArrayLike(obj) ? findIndex : findKey; - var key = keyFinder(obj, predicate, context); - if (key !== void 0 && key !== -1) return obj[key]; -} -// Convenience version of a common use case of `_.find`: getting the first -// object containing specific `key:value` pairs. -function findWhere(obj, attrs) { - return find(obj, matcher(attrs)); -} -// The cornerstone for collection functions, an `each` -// implementation, aka `forEach`. -// Handles raw objects in addition to array-likes. Treats all -// sparse array-likes as if they were dense. -function each(obj, iteratee, context) { - iteratee = optimizeCb(iteratee, context); - var i, length; - if (isArrayLike(obj)) { - for (i = 0, length = obj.length; i < length; i++) { - iteratee(obj[i], i, obj); - } - } else { - var _keys = keys(obj); - for (i = 0, length = _keys.length; i < length; i++) { - iteratee(obj[_keys[i]], _keys[i], obj); - } - } - return obj; -} -// Return the results of applying the iteratee to each element. -function map(obj, iteratee, context) { - iteratee = cb(iteratee, context); - var _keys = !isArrayLike(obj) && keys(obj), - length = (_keys || obj).length, - results = Array(length); - for (var index = 0; index < length; index++) { - var currentKey = _keys ? _keys[index] : index; - results[index] = iteratee(obj[currentKey], currentKey, obj); - } - return results; -} -// Internal helper to create a reducing function, iterating left or right. -function createReduce(dir) { - // Wrap code that reassigns argument variables in a separate function than - // the one that accesses `arguments.length` to avoid a perf hit. (#1991) - var reducer = function(obj, iteratee, memo, initial) { - var _keys = !isArrayLike(obj) && keys(obj), - length = (_keys || obj).length, - index = dir > 0 ? 0 : length - 1; - if (!initial) { - memo = obj[_keys ? _keys[index] : index]; - index += dir; - } - for (; index >= 0 && index < length; index += dir) { - var currentKey = _keys ? _keys[index] : index; - memo = iteratee(memo, obj[currentKey], currentKey, obj); - } - return memo; - }; - return function(obj, iteratee, memo, context) { - var initial = arguments.length >= 3; - return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial); - }; -} -// **Reduce** builds up a single result from a list of values, aka `inject`, -// or `foldl`. -var reduce = createReduce(1); -// The right-associative version of reduce, also known as `foldr`. -var reduceRight = createReduce(-1); -// Return all the elements that pass a truth test. -function filter(obj, predicate, context) { - var results = []; - predicate = cb(predicate, context); - each(obj, function(value, index, list) { - if (predicate(value, index, list)) results.push(value); - }); - return results; -} -// Return all the elements for which a truth test fails. -function reject(obj, predicate, context) { - return filter(obj, negate(cb(predicate)), context); -} -// Determine whether all of the elements pass a truth test. -function every(obj, predicate, context) { - predicate = cb(predicate, context); - var _keys = !isArrayLike(obj) && keys(obj), - length = (_keys || obj).length; - for (var index = 0; index < length; index++) { - var currentKey = _keys ? _keys[index] : index; - if (!predicate(obj[currentKey], currentKey, obj)) return false; - } - return true; -} -// Determine if at least one element in the object passes a truth test. -function some(obj, predicate, context) { - predicate = cb(predicate, context); - var _keys = !isArrayLike(obj) && keys(obj), - length = (_keys || obj).length; - for (var index = 0; index < length; index++) { - var currentKey = _keys ? _keys[index] : index; - if (predicate(obj[currentKey], currentKey, obj)) return true; - } - return false; -} -// Determine if the array or object contains a given item (using `===`). -function contains(obj, item, fromIndex, guard) { - if (!isArrayLike(obj)) obj = values(obj); - if (typeof fromIndex != 'number' || guard) fromIndex = 0; - return indexOf(obj, item, fromIndex) >= 0; -} +// `_.pick` and `_.omit` are actually object functions, but we put +// them here in order to create a more natural reading order in the +// monolithic build as they depend on `_.contains`. -// Invoke a method (with arguments) on every item in a collection. -var invoke = restArguments(function(obj, path, args) { - var contextPath, func; - if (isFunction$1(path)) { - func = path; - } else { - path = toPath(path); - contextPath = path.slice(0, -1); - path = path[path.length - 1]; - } - return map(obj, function(context) { - var method = func; - if (!method) { - if (contextPath && contextPath.length) { - context = deepGet(context, contextPath); - } - if (context == null) return void 0; - method = context[path]; - } - return method == null ? method : method.apply(context, args); - }); -}); -// Convenience version of a common use case of `_.map`: fetching a property. -function pluck(obj, key) { - return map(obj, property(key)); -} -// Convenience version of a common use case of `_.filter`: selecting only -// objects containing specific `key:value` pairs. -function where(obj, attrs) { - return filter(obj, matcher(attrs)); -} +// Array Functions +// --------------- +// Functions that operate on arrays (and array-likes) only, because they’re +// expressed in terms of operations on an ordered list of values. -// Return the maximum element (or element-based computation). -function max(obj, iteratee, context) { - var result = -Infinity, lastComputed = -Infinity, - value, computed; - if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) { - obj = isArrayLike(obj) ? obj : values(obj); - for (var i = 0, length = obj.length; i < length; i++) { - value = obj[i]; - if (value != null && value > result) { - result = value; - } - } - } else { - iteratee = cb(iteratee, context); - each(obj, function(v, index, list) { - computed = iteratee(v, index, list); - if (computed > lastComputed || computed === -Infinity && result === -Infinity) { - result = v; - lastComputed = computed; - } - }); - } - return result; -} -// Return the minimum element (or element-based computation). -function min(obj, iteratee, context) { - var result = Infinity, lastComputed = Infinity, - value, computed; - if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) { - obj = isArrayLike(obj) ? obj : values(obj); - for (var i = 0, length = obj.length; i < length; i++) { - value = obj[i]; - if (value != null && value < result) { - result = value; - } - } - } else { - iteratee = cb(iteratee, context); - each(obj, function(v, index, list) { - computed = iteratee(v, index, list); - if (computed < lastComputed || computed === Infinity && result === Infinity) { - result = v; - lastComputed = computed; - } - }); - } - return result; -} -// Sample **n** random values from a collection using the modern version of the -// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle). -// If **n** is not specified, returns a single random element. -// The internal `guard` argument allows it to work with `_.map`. -function sample(obj, n, guard) { - if (n == null || guard) { - if (!isArrayLike(obj)) obj = values(obj); - return obj[random(obj.length - 1)]; - } - var sample = isArrayLike(obj) ? clone(obj) : values(obj); - var length = getLength(sample); - n = Math.max(Math.min(n, length), 0); - var last = length - 1; - for (var index = 0; index < n; index++) { - var rand = random(index, last); - var temp = sample[index]; - sample[index] = sample[rand]; - sample[rand] = temp; - } - return sample.slice(0, n); -} -// Shuffle a collection. -function shuffle(obj) { - return sample(obj, Infinity); -} -// Sort the object's values by a criterion produced by an iteratee. -function sortBy(obj, iteratee, context) { - var index = 0; - iteratee = cb(iteratee, context); - return pluck(map(obj, function(value, key, list) { - return { - value: value, - index: index++, - criteria: iteratee(value, key, list) - }; - }).sort(function(left, right) { - var a = left.criteria; - var b = right.criteria; - if (a !== b) { - if (a > b || a === void 0) return 1; - if (a < b || b === void 0) return -1; - } - return left.index - right.index; - }), 'value'); -} -// An internal function used for aggregate "group by" operations. -function group(behavior, partition) { - return function(obj, iteratee, context) { - var result = partition ? [[], []] : {}; - iteratee = cb(iteratee, context); - each(obj, function(value, index) { - var key = iteratee(value, index, obj); - behavior(result, value, key); - }); - return result; - }; -} -// Groups the object's values by a criterion. Pass either a string attribute -// to group by, or a function that returns the criterion. -var groupBy = group(function(result, value, key) { - if (has$1(result, key)) result[key].push(value); else result[key] = [value]; -}); + + + + + + + + + + +// OOP +// --- +// These modules support the "object-oriented" calling style. See also +// `underscore.js` and `index-default.js`. + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/indexBy.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/indexBy.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3368276__) => { + +"use strict"; +__nested_webpack_require_3368276__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3368276__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _group_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3368276__(/*! ./_group.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_group.js"); + // Indexes the object's values by a criterion, similar to `_.groupBy`, but for // when you know that your index values will be unique. -var indexBy = group(function(result, value, key) { +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_group_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(result, value, key) { result[key] = value; -}); +})); -// Counts instances of an object that group by a certain criterion. Pass -// either a string attribute to count by, or a function that returns the -// criterion. -var countBy = group(function(result, value, key) { - if (has$1(result, key)) result[key]++; else result[key] = 1; -}); -// Split a collection into two arrays: one whose elements all pass the given -// truth test, and one whose elements all do not pass the truth test. -var partition = group(function(result, value, pass) { - result[pass ? 0 : 1].push(value); -}, true); +/***/ }), -// Safely create a real, live array from anything iterable. -var reStrSymbol = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g; -function toArray(obj) { - if (!obj) return []; - if (isArray(obj)) return slice.call(obj); - if (isString(obj)) { - // Keep surrogate pair characters together. - return obj.match(reStrSymbol); - } - if (isArrayLike(obj)) return map(obj, identity); - return values(obj); -} +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/indexOf.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/indexOf.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3369387__) => { -// Return the number of elements in a collection. -function size(obj) { - if (obj == null) return 0; - return isArrayLike(obj) ? obj.length : keys(obj).length; -} +"use strict"; +__nested_webpack_require_3369387__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3369387__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _sortedIndex_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3369387__(/*! ./sortedIndex.js */ "./build/cht-core-4-6/node_modules/underscore/modules/sortedIndex.js"); +/* harmony import */ var _findIndex_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3369387__(/*! ./findIndex.js */ "./build/cht-core-4-6/node_modules/underscore/modules/findIndex.js"); +/* harmony import */ var _createIndexFinder_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3369387__(/*! ./_createIndexFinder.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createIndexFinder.js"); -// Internal `_.pick` helper function to determine whether `key` is an enumerable -// property name of `obj`. -function keyInObj(value, key, obj) { - return key in obj; -} -// Return a copy of the object only containing the allowed properties. -var pick = restArguments(function(obj, keys) { - var result = {}, iteratee = keys[0]; - if (obj == null) return result; - if (isFunction$1(iteratee)) { - if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]); - keys = allKeys(obj); - } else { - iteratee = keyInObj; - keys = flatten$1(keys, false, false); - obj = Object(obj); - } - for (var i = 0, length = keys.length; i < length; i++) { - var key = keys[i]; - var value = obj[key]; - if (iteratee(value, key, obj)) result[key] = value; - } - return result; -}); -// Return a copy of the object without the disallowed properties. -var omit = restArguments(function(obj, keys) { - var iteratee = keys[0], context; - if (isFunction$1(iteratee)) { - iteratee = negate(iteratee); - if (keys.length > 1) context = keys[1]; - } else { - keys = map(flatten$1(keys, false, false), String); - iteratee = function(value, key) { - return !contains(keys, key); - }; - } - return pick(obj, iteratee, context); -}); + +// Return the position of the first occurrence of an item in an array, +// or -1 if the item is not included in the array. +// If the array is large and already in sort order, pass `true` +// for **isSorted** to use binary search. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createIndexFinder_js__WEBPACK_IMPORTED_MODULE_2__.default)(1, _findIndex_js__WEBPACK_IMPORTED_MODULE_1__.default, _sortedIndex_js__WEBPACK_IMPORTED_MODULE_0__.default)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/initial.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/initial.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3371063__) => { + +"use strict"; +__nested_webpack_require_3371063__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3371063__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ initial) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3371063__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); + // Returns everything but the last entry of the array. Especially useful on // the arguments object. Passing **n** will return all the values in // the array, excluding the last N. function initial(array, n, guard) { - return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n))); + return _setup_js__WEBPACK_IMPORTED_MODULE_0__.slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n))); } -// Get the first element of an array. Passing **n** will return the first N -// values in the array. The **guard** check allows it to work with `_.map`. -function first(array, n, guard) { - if (array == null || array.length < 1) return n == null || guard ? void 0 : []; - if (n == null || guard) return array[0]; - return initial(array, array.length - n); -} - -// Returns everything but the first entry of the `array`. Especially useful on -// the `arguments` object. Passing an **n** will return the rest N values in the -// `array`. -function rest(array, n, guard) { - return slice.call(array, n == null || guard ? 1 : n); -} - -// Get the last element of an array. Passing **n** will return the last N -// values in the array. -function last(array, n, guard) { - if (array == null || array.length < 1) return n == null || guard ? void 0 : []; - if (n == null || guard) return array[array.length - 1]; - return rest(array, Math.max(0, array.length - n)); -} - -// Trim out all falsy values from an array. -function compact(array) { - return filter(array, Boolean); -} -// Flatten out an array, either recursively (by default), or up to `depth`. -// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively. -function flatten(array, depth) { - return flatten$1(array, depth, false); -} +/***/ }), -// Take the difference between one array and a number of other arrays. -// Only the elements present in just the first array will remain. -var difference = restArguments(function(array, rest) { - rest = flatten$1(rest, true, true); - return filter(array, function(value){ - return !contains(rest, value); - }); -}); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/intersection.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/intersection.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3372226__) => { -// Return a version of the array that does not contain the specified value(s). -var without = restArguments(function(array, otherArrays) { - return difference(array, otherArrays); -}); +"use strict"; +__nested_webpack_require_3372226__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3372226__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ intersection) +/* harmony export */ }); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3372226__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); +/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3372226__(/*! ./contains.js */ "./build/cht-core-4-6/node_modules/underscore/modules/contains.js"); -// Produce a duplicate-free version of the array. If the array has already -// been sorted, you have the option of using a faster algorithm. -// The faster algorithm will not work with an iteratee if the iteratee -// is not a one-to-one function, so providing an iteratee will disable -// the faster algorithm. -function uniq(array, isSorted, iteratee, context) { - if (!isBoolean(isSorted)) { - context = iteratee; - iteratee = isSorted; - isSorted = false; - } - if (iteratee != null) iteratee = cb(iteratee, context); - var result = []; - var seen = []; - for (var i = 0, length = getLength(array); i < length; i++) { - var value = array[i], - computed = iteratee ? iteratee(value, i, array) : value; - if (isSorted && !iteratee) { - if (!i || seen !== computed) result.push(value); - seen = computed; - } else if (iteratee) { - if (!contains(seen, computed)) { - seen.push(computed); - result.push(value); - } - } else if (!contains(result, value)) { - result.push(value); - } - } - return result; -} -// Produce an array that contains the union: each distinct element from all of -// the passed-in arrays. -var union = restArguments(function(arrays) { - return uniq(flatten$1(arrays, true, true)); -}); // Produce an array that contains every item shared between all the // passed-in arrays. function intersection(array) { var result = []; var argsLength = arguments.length; - for (var i = 0, length = getLength(array); i < length; i++) { + for (var i = 0, length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(array); i < length; i++) { var item = array[i]; - if (contains(result, item)) continue; + if ((0,_contains_js__WEBPACK_IMPORTED_MODULE_1__.default)(result, item)) continue; var j; for (j = 1; j < argsLength; j++) { - if (!contains(arguments[j], item)) break; + if (!(0,_contains_js__WEBPACK_IMPORTED_MODULE_1__.default)(arguments[j], item)) break; } if (j === argsLength) result.push(item); } return result; } -// Complement of zip. Unzip accepts an array of arrays and groups -// each array's elements on shared indices. -function unzip(array) { - var length = array && max(array, getLength).length || 0; - var result = Array(length); - for (var index = 0; index < length; index++) { - result[index] = pluck(array, index); - } - return result; -} +/***/ }), -// Zip together multiple lists into a single array -- elements that share -// an index go together. -var zip = restArguments(unzip); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/invert.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/invert.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3373829__) => { -// Converts lists into objects. Pass either a single array of `[key, value]` -// pairs, or two parallel arrays of the same length -- one of keys, and one of -// the corresponding values. Passing by pairs is the reverse of `_.pairs`. -function object(list, values) { +"use strict"; +__nested_webpack_require_3373829__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3373829__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ invert) +/* harmony export */ }); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3373829__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + +// Invert the keys and values of an object. The values must be serializable. +function invert(obj) { var result = {}; - for (var i = 0, length = getLength(list); i < length; i++) { - if (values) { - result[list[i]] = values[i]; - } else { - result[list[i][0]] = list[i][1]; - } + var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj); + for (var i = 0, length = _keys.length; i < length; i++) { + result[obj[_keys[i]]] = _keys[i]; } return result; } -// Generate an integer Array containing an arithmetic progression. A port of -// the native Python `range()` function. See -// [the Python documentation](https://docs.python.org/library/functions.html#range). -function range(start, stop, step) { - if (stop == null) { - stop = start || 0; - start = 0; - } - if (!step) { - step = stop < start ? -1 : 1; - } - var length = Math.max(Math.ceil((stop - start) / step), 0); - var range = Array(length); +/***/ }), - for (var idx = 0; idx < length; idx++, start += step) { - range[idx] = start; - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/invoke.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/invoke.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3374925__) => { - return range; -} +"use strict"; +__nested_webpack_require_3374925__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3374925__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3374925__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3374925__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3374925__(/*! ./map.js */ "./build/cht-core-4-6/node_modules/underscore/modules/map.js"); +/* harmony import */ var _deepGet_js__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_3374925__(/*! ./_deepGet.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_deepGet.js"); +/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_4__ = __nested_webpack_require_3374925__(/*! ./_toPath.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js"); -// Chunk a single array into multiple arrays, each containing `count` or fewer -// items. -function chunk(array, count) { - if (count == null || count < 1) return []; - var result = []; - var i = 0, length = array.length; - while (i < length) { - result.push(slice.call(array, i, i += count)); - } - return result; -} -// Helper function to continue chaining intermediate results. -function chainResult(instance, obj) { - return instance._chain ? _$1(obj).chain() : obj; -} -// Add your own custom functions to the Underscore object. -function mixin(obj) { - each(functions(obj), function(name) { - var func = _$1[name] = obj[name]; - _$1.prototype[name] = function() { - var args = [this._wrapped]; - push.apply(args, arguments); - return chainResult(this, func.apply(_$1, args)); - }; - }); - return _$1; -} -// Add all mutator `Array` functions to the wrapper. -each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) { - var method = ArrayProto[name]; - _$1.prototype[name] = function() { - var obj = this._wrapped; - if (obj != null) { - method.apply(obj, arguments); - if ((name === 'shift' || name === 'splice') && obj.length === 0) { - delete obj[0]; + + +// Invoke a method (with arguments) on every item in a collection. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(obj, path, args) { + var contextPath, func; + if ((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(path)) { + func = path; + } else { + path = (0,_toPath_js__WEBPACK_IMPORTED_MODULE_4__.default)(path); + contextPath = path.slice(0, -1); + path = path[path.length - 1]; + } + return (0,_map_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj, function(context) { + var method = func; + if (!method) { + if (contextPath && contextPath.length) { + context = (0,_deepGet_js__WEBPACK_IMPORTED_MODULE_3__.default)(context, contextPath); } + if (context == null) return void 0; + method = context[path]; } - return chainResult(this, obj); - }; -}); + return method == null ? method : method.apply(context, args); + }); +})); -// Add all accessor `Array` functions to the wrapper. -each(['concat', 'join', 'slice'], function(name) { - var method = ArrayProto[name]; - _$1.prototype[name] = function() { - var obj = this._wrapped; - if (obj != null) obj = method.apply(obj, arguments); - return chainResult(this, obj); - }; -}); -// Named Exports +/***/ }), -var allExports = { - __proto__: null, - VERSION: VERSION, - restArguments: restArguments, - isObject: isObject, - isNull: isNull, - isUndefined: isUndefined, - isBoolean: isBoolean, - isElement: isElement, - isString: isString, - isNumber: isNumber, - isDate: isDate, - isRegExp: isRegExp, - isError: isError, - isSymbol: isSymbol, - isArrayBuffer: isArrayBuffer, - isDataView: isDataView$1, - isArray: isArray, - isFunction: isFunction$1, - isArguments: isArguments$1, - isFinite: isFinite$1, - isNaN: isNaN$1, - isTypedArray: isTypedArray$1, - isEmpty: isEmpty, - isMatch: isMatch, - isEqual: isEqual, - isMap: isMap, - isWeakMap: isWeakMap, - isSet: isSet, - isWeakSet: isWeakSet, - keys: keys, - allKeys: allKeys, - values: values, - pairs: pairs, - invert: invert, - functions: functions, - methods: functions, - extend: extend, - extendOwn: extendOwn, - assign: extendOwn, - defaults: defaults, - create: create, - clone: clone, - tap: tap, - get: get, - has: has, - mapObject: mapObject, - identity: identity, - constant: constant, - noop: noop, - toPath: toPath$1, - property: property, - propertyOf: propertyOf, - matcher: matcher, - matches: matcher, - times: times, - random: random, - now: now, - escape: _escape, - unescape: _unescape, - templateSettings: templateSettings, - template: template, - result: result, - uniqueId: uniqueId, - chain: chain, - iteratee: iteratee, - partial: partial, - bind: bind, - bindAll: bindAll, - memoize: memoize, - delay: delay, - defer: defer, - throttle: throttle, - debounce: debounce, - wrap: wrap, - negate: negate, - compose: compose, - after: after, - before: before, - once: once, - findKey: findKey, - findIndex: findIndex, - findLastIndex: findLastIndex, - sortedIndex: sortedIndex, - indexOf: indexOf, - lastIndexOf: lastIndexOf, - find: find, - detect: find, - findWhere: findWhere, - each: each, - forEach: each, - map: map, - collect: map, - reduce: reduce, - foldl: reduce, - inject: reduce, - reduceRight: reduceRight, - foldr: reduceRight, - filter: filter, - select: filter, - reject: reject, - every: every, - all: every, - some: some, - any: some, - contains: contains, - includes: contains, - include: contains, - invoke: invoke, - pluck: pluck, - where: where, - max: max, - min: min, - shuffle: shuffle, - sample: sample, - sortBy: sortBy, - groupBy: groupBy, - indexBy: indexBy, - countBy: countBy, - partition: partition, - toArray: toArray, - size: size, - pick: pick, - omit: omit, - first: first, - head: first, - take: first, - initial: initial, - last: last, - rest: rest, - tail: rest, - drop: rest, - compact: compact, - flatten: flatten, - without: without, - uniq: uniq, - unique: uniq, - union: union, - intersection: intersection, - difference: difference, - unzip: unzip, - transpose: unzip, - zip: zip, - object: object, - range: range, - chunk: chunk, - mixin: mixin, - 'default': _$1 -}; +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isArguments.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isArguments.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3377387__) => { -// Default Export +"use strict"; +__nested_webpack_require_3377387__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3377387__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3377387__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); +/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3377387__(/*! ./_has.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_has.js"); -// Add all of the Underscore functions to the wrapper object. -var _ = mixin(allExports); -// Legacy Node.js API. -_._ = _; -exports.VERSION = VERSION; -exports._ = _; -exports._escape = _escape; -exports._unescape = _unescape; -exports.after = after; -exports.allKeys = allKeys; -exports.before = before; -exports.bind = bind; -exports.bindAll = bindAll; -exports.chain = chain; -exports.chunk = chunk; -exports.clone = clone; -exports.compact = compact; -exports.compose = compose; -exports.constant = constant; -exports.contains = contains; -exports.countBy = countBy; -exports.create = create; -exports.debounce = debounce; -exports.defaults = defaults; -exports.defer = defer; -exports.delay = delay; -exports.difference = difference; -exports.each = each; -exports.every = every; -exports.extend = extend; -exports.extendOwn = extendOwn; -exports.filter = filter; -exports.find = find; -exports.findIndex = findIndex; -exports.findKey = findKey; -exports.findLastIndex = findLastIndex; -exports.findWhere = findWhere; -exports.first = first; -exports.flatten = flatten; -exports.functions = functions; -exports.get = get; -exports.groupBy = groupBy; -exports.has = has; -exports.identity = identity; -exports.indexBy = indexBy; -exports.indexOf = indexOf; -exports.initial = initial; -exports.intersection = intersection; -exports.invert = invert; -exports.invoke = invoke; -exports.isArguments = isArguments$1; -exports.isArray = isArray; -exports.isArrayBuffer = isArrayBuffer; -exports.isBoolean = isBoolean; -exports.isDataView = isDataView$1; -exports.isDate = isDate; -exports.isElement = isElement; -exports.isEmpty = isEmpty; -exports.isEqual = isEqual; -exports.isError = isError; -exports.isFinite = isFinite$1; -exports.isFunction = isFunction$1; -exports.isMap = isMap; -exports.isMatch = isMatch; -exports.isNaN = isNaN$1; -exports.isNull = isNull; -exports.isNumber = isNumber; -exports.isObject = isObject; -exports.isRegExp = isRegExp; -exports.isSet = isSet; -exports.isString = isString; -exports.isSymbol = isSymbol; -exports.isTypedArray = isTypedArray$1; -exports.isUndefined = isUndefined; -exports.isWeakMap = isWeakMap; -exports.isWeakSet = isWeakSet; -exports.iteratee = iteratee; -exports.keys = keys; -exports.last = last; -exports.lastIndexOf = lastIndexOf; -exports.map = map; -exports.mapObject = mapObject; -exports.matcher = matcher; -exports.max = max; -exports.memoize = memoize; -exports.min = min; -exports.mixin = mixin; -exports.negate = negate; -exports.noop = noop; -exports.now = now; -exports.object = object; -exports.omit = omit; -exports.once = once; -exports.pairs = pairs; -exports.partial = partial; -exports.partition = partition; -exports.pick = pick; -exports.pluck = pluck; -exports.property = property; -exports.propertyOf = propertyOf; -exports.random = random; -exports.range = range; -exports.reduce = reduce; -exports.reduceRight = reduceRight; -exports.reject = reject; -exports.rest = rest; -exports.restArguments = restArguments; -exports.result = result; -exports.sample = sample; -exports.shuffle = shuffle; -exports.size = size; -exports.some = some; -exports.sortBy = sortBy; -exports.sortedIndex = sortedIndex; -exports.tap = tap; -exports.template = template; -exports.templateSettings = templateSettings; -exports.throttle = throttle; -exports.times = times; -exports.toArray = toArray; -exports.toPath = toPath$1; -exports.union = union; -exports.uniq = uniq; -exports.uniqueId = uniqueId; -exports.unzip = unzip; -exports.values = values; -exports.where = where; -exports.without = without; -exports.wrap = wrap; -exports.zip = zip; -//# sourceMappingURL=underscore-node-f.cjs.map + +var isArguments = (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Arguments'); + +// Define a fallback version of the method in browsers (ahem, IE < 9), where +// there isn't any inspectable "Arguments" type. +(function() { + if (!isArguments(arguments)) { + isArguments = function(obj) { + return (0,_has_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj, 'callee'); + }; + } +}()); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isArguments); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/underscore/underscore-node.cjs": -/*!********************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/underscore/underscore-node.cjs ***! - \********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isArray.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isArray.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3378837__) => { + +"use strict"; +__nested_webpack_require_3378837__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3378837__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3378837__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3378837__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); + -// Underscore.js 1.13.1 -// https://underscorejs.org -// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors -// Underscore may be freely distributed under the MIT license. -var underscoreNodeF = __webpack_require__(/*! ./underscore-node-f.cjs */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/underscore/underscore-node-f.cjs"); +// Is a given value an array? +// Delegates to ECMA5's native `Array.isArray`. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_setup_js__WEBPACK_IMPORTED_MODULE_0__.nativeIsArray || (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_1__.default)('Array')); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isArrayBuffer.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isArrayBuffer.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3380112__) => { +"use strict"; +__nested_webpack_require_3380112__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3380112__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3380112__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); -module.exports = underscoreNodeF._; -//# sourceMappingURL=underscore-node.cjs.map +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('ArrayBuffer')); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/index.js": +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isBoolean.js": /*!*************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/src/index.js ***! + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isBoolean.js ***! \*************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3381070__) => { -/** - * @module rules-engine - * - * Business logic for interacting with rules documents - */ +"use strict"; +__nested_webpack_require_3381070__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3381070__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isBoolean) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3381070__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); -const pouchdbProvider = __webpack_require__(/*! ./pouchdb-provider */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/pouchdb-provider.js"); -const rulesEmitter = __webpack_require__(/*! ./rules-emitter */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/rules-emitter.js"); -const rulesStateStore = __webpack_require__(/*! ./rules-state-store */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/rules-state-store.js"); -const wireupToProvider = __webpack_require__(/*! ./provider-wireup */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/provider-wireup.js"); -/** - * @param {Object} db Medic pouchdb database - */ -module.exports = db => { - const provider = pouchdbProvider(db); - return { - /** - * @param {Object} settings Settings for the behavior of the rules engine - * @param {Object} settings.rules Rules code from settings doc - * @param {Object[]} settings.taskSchedules Task schedules from settings doc - * @param {Object[]} settings.targets Target definitions from settings doc - * @param {Boolean} settings.enableTasks Flag to enable tasks - * @param {Boolean} settings.enableTargets Flag to enable targets - * @param {Object} settings.contact User's hydrated contact document - * @param {Object} settings.user User's settings document - */ - initialize: (settings) => wireupToProvider.initialize(provider, settings), +// Is a given value a boolean? +function isBoolean(obj) { + return obj === true || obj === false || _setup_js__WEBPACK_IMPORTED_MODULE_0__.toString.call(obj) === '[object Boolean]'; +} - /** - * @returns {Boolean} True if the rules engine is enabled and ready for use - */ - isEnabled: () => rulesEmitter.isEnabled() && rulesEmitter.isLatestNoolsSchema(), - /** - * Refreshes all rules documents for a set of contacts and returns their task documents - * - * @param {string[]} contactIds An array of contact ids. If undefined, returns tasks for all contacts - * @returns {Promise} All the fresh task docs owned by contactIds - */ - fetchTasksFor: contactIds => wireupToProvider.fetchTasksFor(provider, contactIds), +/***/ }), - /** - * Returns a breakdown of tasks by state and title for the provided list of contacts - * - * @param {string[]} contactIds An array of contact ids. If undefined, returns breakdown for all contacts - * @returns {Promise} The breakdown of tasks counts by state and title - */ - fetchTasksBreakdown: contactIds => wireupToProvider.fetchTasksBreakdown(provider, contactIds), +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isDataView.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isDataView.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3382063__) => { - /** - * Refreshes all rules documents and returns the latest target document - * - * @param {Object} filterInterval Target emissions with date within the interval will be aggregated into the - * target scores - * @param {Integer} filterInterval.start Start timestamp of interval - * @param {Integer} filterInterval.end End timestamp of interval - * @returns {Promise} Array of fresh targets - */ - fetchTargets: filterInterval => wireupToProvider.fetchTargets(provider, filterInterval), +"use strict"; +__nested_webpack_require_3382063__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3382063__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3382063__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3382063__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _isArrayBuffer_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3382063__(/*! ./isArrayBuffer.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArrayBuffer.js"); +/* harmony import */ var _stringTagBug_js__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_3382063__(/*! ./_stringTagBug.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js"); - /** - * Indicate that the task documents associated with a given subjectId are dirty. - * - * @param {string[]} subjectIds An array of subject ids - * - * @returns {Promise} To mark the subjectIds as dirty - */ - updateEmissionsFor: subjectIds => wireupToProvider.updateEmissionsFor(provider, subjectIds), - /** - * Determines if either the settings or user's hydrated contact document have changed in a way which will impact - * the result of rules calculations. - * If they have changed in a meaningful way, the calculation state of all contacts is reset - * - * @param {Object} settings Updated settings - * @param {Object} settings.rules Rules code from settings doc - * @param {Object[]} settings.taskSchedules Task schedules from settings doc - * @param {Object[]} settings.targets Target definitions from settings doc - * @param {Boolean} settings.enableTasks Flag to enable tasks - * @param {Boolean} settings.enableTargets Flag to enable targets - * @param {Object} settings.contact User's hydrated contact document - * @param {Object} settings.user User's user-settings document - */ - rulesConfigChange: (settings) => { - const cacheIsReset = rulesStateStore.rulesConfigChange(settings); - if (cacheIsReset) { - rulesEmitter.shutdown(); - rulesEmitter.initialize(settings); - } - }, - /** - * Returns a list of UUIDs of tracked contacts that are marked as dirty - * @returns {Array} list of dirty contacts UUIDs - */ - getDirtyContacts: () => rulesStateStore.getDirtyContacts(), - }; -}; + + +var isDataView = (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('DataView'); + +// In IE 10 - Edge 13, we need a different heuristic +// to determine whether an object is a `DataView`. +function ie10IsDataView(obj) { + return obj != null && (0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj.getInt8) && (0,_isArrayBuffer_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj.buffer); +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_stringTagBug_js__WEBPACK_IMPORTED_MODULE_3__.hasStringTagBug ? ie10IsDataView : isDataView); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isDate.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isDate.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3383998__) => { + +"use strict"; +__nested_webpack_require_3383998__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3383998__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3383998__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Date')); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isElement.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isElement.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3384949__) => { + +"use strict"; +__nested_webpack_require_3384949__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3384949__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isElement) +/* harmony export */ }); +// Is a given value a DOM element? +function isElement(obj) { + return !!(obj && obj.nodeType === 1); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isEmpty.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isEmpty.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3385676__) => { + +"use strict"; +__nested_webpack_require_3385676__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3385676__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isEmpty) +/* harmony export */ }); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3385676__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); +/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3385676__(/*! ./isArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArray.js"); +/* harmony import */ var _isString_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3385676__(/*! ./isString.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isString.js"); +/* harmony import */ var _isArguments_js__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_3385676__(/*! ./isArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArguments.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_4__ = __nested_webpack_require_3385676__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + + + + + +// Is a given array, string, or object empty? +// An "empty" object has no enumerable own-properties. +function isEmpty(obj) { + if (obj == null) return true; + // Skip the more expensive `toString`-based type checks if `obj` has no + // `.length`. + var length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj); + if (typeof length == 'number' && ( + (0,_isArray_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) || (0,_isString_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj) || (0,_isArguments_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj) + )) return length === 0; + return (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)((0,_keys_js__WEBPACK_IMPORTED_MODULE_4__.default)(obj)) === 0; +} /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/pouchdb-provider.js": -/*!************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/src/pouchdb-provider.js ***! - \************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isEqual.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isEqual.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3387902__) => { -/** - * @module pouchdb-provider - * - * Wireup for accessing rules document data via medic pouch db - */ +"use strict"; +__nested_webpack_require_3387902__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3387902__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isEqual) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3387902__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3387902__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _getByteLength_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3387902__(/*! ./_getByteLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getByteLength.js"); +/* harmony import */ var _isTypedArray_js__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_3387902__(/*! ./isTypedArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isTypedArray.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_4__ = __nested_webpack_require_3387902__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _stringTagBug_js__WEBPACK_IMPORTED_MODULE_5__ = __nested_webpack_require_3387902__(/*! ./_stringTagBug.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js"); +/* harmony import */ var _isDataView_js__WEBPACK_IMPORTED_MODULE_6__ = __nested_webpack_require_3387902__(/*! ./isDataView.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isDataView.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_7__ = __nested_webpack_require_3387902__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); +/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_8__ = __nested_webpack_require_3387902__(/*! ./_has.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_has.js"); +/* harmony import */ var _toBufferView_js__WEBPACK_IMPORTED_MODULE_9__ = __nested_webpack_require_3387902__(/*! ./_toBufferView.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_toBufferView.js"); -// TODO work out how to pass in the logger from node/browser -/* eslint-disable no-console */ -const moment = __webpack_require__(/*! moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js"); -const registrationUtils = __webpack_require__(/*! @medic/registration-utils */ "./node_modules/cht-core-4-0/shared-libs/registration-utils/src/index.js"); -const uniqBy = __webpack_require__(/*! lodash/uniqBy */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/uniqBy.js"); -const RULES_STATE_DOCID = '_local/rulesStateStore'; -const docsOf = (query) => { - return query.then(result => { - const rows = uniqBy(result.rows, 'id'); - return rows.map(row => row.doc).filter(existing => existing); - }); -}; -const rowsOf = (query) => query.then(result => uniqBy(result.rows, 'id')); -const medicPouchProvider = db => { - const self = { - // PouchDB.query slows down when provided with a large keys array. - // For users with ~1000 contacts it is ~50x faster to provider a start/end key instead of specifying all ids - allTasks: prefix => { - const options = { startkey: `${prefix}-`, endkey: `${prefix}-\ufff0`, include_docs: true }; - return docsOf(db.query('medic-client/tasks_by_contact', options)); - }, - allTaskData: userSettingsDoc => { - const userSettingsId = userSettingsDoc && userSettingsDoc._id; - return Promise.all([ - docsOf(db.query('medic-client/contacts_by_type', { include_docs: true })), - docsOf(db.query('medic-client/reports_by_subject', { include_docs: true })), - self.allTasks('requester'), - ]) - .then(([contactDocs, reportDocs, taskDocs]) => ({ contactDocs, reportDocs, taskDocs, userSettingsId })); - }, - contactsBySubjectId: subjectIds => { - const keys = subjectIds.map(key => ['shortcode', key]); - return db.query('medic-client/contacts_by_reference', { keys, include_docs: true }) - .then(results => { - const shortcodeIds = results.rows.map(result => result.doc._id); - const idsThatArentShortcodes = subjectIds.filter(id => !results.rows.map(row => row.key[1]).includes(id)); - return [...shortcodeIds, ...idsThatArentShortcodes]; - }); - }, - stateChangeCallback: docUpdateClosure(db), - commitTargetDoc: (targets, userContactDoc, userSettingsDoc, docTag, force = false) => { - const userContactId = userContactDoc && userContactDoc._id; - const userSettingsId = userSettingsDoc && userSettingsDoc._id; - const _id = `target~${docTag}~${userContactId}~${userSettingsId}`; - const createNew = () => ({ - _id, - type: 'target', - user: userSettingsId, - owner: userContactId, - reporting_period: docTag, - }); - const today = moment().startOf('day').valueOf(); - return db.get(_id) - .catch(createNew) - .then(existingDoc => { - if (existingDoc.updated_date === today && !force) { - return false; - } - existingDoc.targets = targets; - existingDoc.updated_date = today; - return db.put(existingDoc); - }); - }, +// We use this string twice, so give it a name for minification. +var tagDataView = '[object DataView]'; - commitTaskDocs: taskDocs => { - if (!taskDocs || taskDocs.length === 0) { - return Promise.resolve([]); - } +// Internal recursive comparison function for `_.isEqual`. +function eq(a, b, aStack, bStack) { + // Identical objects are equal. `0 === -0`, but they aren't identical. + // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal). + if (a === b) return a !== 0 || 1 / a === 1 / b; + // `null` or `undefined` only equal to itself (strict comparison). + if (a == null || b == null) return false; + // `NaN`s are equivalent, but non-reflexive. + if (a !== a) return b !== b; + // Exhaust primitive checks + var type = typeof a; + if (type !== 'function' && type !== 'object' && typeof b != 'object') return false; + return deepEq(a, b, aStack, bStack); +} - ; - return db.bulkDocs(taskDocs) - .catch(err => console.error('Error committing task documents', err)); - }, +// Internal recursive comparison function for `_.isEqual`. +function deepEq(a, b, aStack, bStack) { + // Unwrap any wrapped objects. + if (a instanceof _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default) a = a._wrapped; + if (b instanceof _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default) b = b._wrapped; + // Compare `[[Class]]` names. + var className = _setup_js__WEBPACK_IMPORTED_MODULE_1__.toString.call(a); + if (className !== _setup_js__WEBPACK_IMPORTED_MODULE_1__.toString.call(b)) return false; + // Work around a bug in IE 10 - Edge 13. + if (_stringTagBug_js__WEBPACK_IMPORTED_MODULE_5__.hasStringTagBug && className == '[object Object]' && (0,_isDataView_js__WEBPACK_IMPORTED_MODULE_6__.default)(a)) { + if (!(0,_isDataView_js__WEBPACK_IMPORTED_MODULE_6__.default)(b)) return false; + className = tagDataView; + } + switch (className) { + // These types are compared by value. + case '[object RegExp]': + // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i') + case '[object String]': + // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is + // equivalent to `new String("5")`. + return '' + a === '' + b; + case '[object Number]': + // `NaN`s are equivalent, but non-reflexive. + // Object(NaN) is equivalent to NaN. + if (+a !== +a) return +b !== +b; + // An `egal` comparison is performed for other numeric values. + return +a === 0 ? 1 / +a === 1 / b : +a === +b; + case '[object Date]': + case '[object Boolean]': + // Coerce dates and booleans to numeric primitive values. Dates are compared by their + // millisecond representations. Note that invalid dates with millisecond representations + // of `NaN` are not equivalent. + return +a === +b; + case '[object Symbol]': + return _setup_js__WEBPACK_IMPORTED_MODULE_1__.SymbolProto.valueOf.call(a) === _setup_js__WEBPACK_IMPORTED_MODULE_1__.SymbolProto.valueOf.call(b); + case '[object ArrayBuffer]': + case tagDataView: + // Coerce to typed array so we can fall through. + return deepEq((0,_toBufferView_js__WEBPACK_IMPORTED_MODULE_9__.default)(a), (0,_toBufferView_js__WEBPACK_IMPORTED_MODULE_9__.default)(b), aStack, bStack); + } - existingRulesStateStore: () => db.get(RULES_STATE_DOCID).catch(() => ({ _id: RULES_STATE_DOCID })), + var areArrays = className === '[object Array]'; + if (!areArrays && (0,_isTypedArray_js__WEBPACK_IMPORTED_MODULE_3__.default)(a)) { + var byteLength = (0,_getByteLength_js__WEBPACK_IMPORTED_MODULE_2__.default)(a); + if (byteLength !== (0,_getByteLength_js__WEBPACK_IMPORTED_MODULE_2__.default)(b)) return false; + if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true; + areArrays = true; + } + if (!areArrays) { + if (typeof a != 'object' || typeof b != 'object') return false; - tasksByRelation: (contactIds, prefix) => { - const keys = contactIds.map(contactId => `${prefix}-${contactId}`); - return docsOf(db.query('medic-client/tasks_by_contact', { keys, include_docs: true })); - }, + // Objects with different constructors are not equivalent, but `Object`s or `Array`s + // from different frames are. + var aCtor = a.constructor, bCtor = b.constructor; + if (aCtor !== bCtor && !((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_4__.default)(aCtor) && aCtor instanceof aCtor && + (0,_isFunction_js__WEBPACK_IMPORTED_MODULE_4__.default)(bCtor) && bCtor instanceof bCtor) + && ('constructor' in a && 'constructor' in b)) { + return false; + } + } + // Assume equality for cyclic structures. The algorithm for detecting cyclic + // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`. - allTaskRowsByOwner: (contactIds) => { - const keys = contactIds.map(contactId => (['owner', 'all', contactId])); - return rowsOf(db.query('medic-client/tasks_by_contact', { keys })); - }, + // Initializing stack of traversed objects. + // It's done here since we only need them for objects and arrays comparison. + aStack = aStack || []; + bStack = bStack || []; + var length = aStack.length; + while (length--) { + // Linear search. Performance is inversely proportional to the number of + // unique nested structures. + if (aStack[length] === a) return bStack[length] === b; + } - allTaskRows: () => { - const options = { - startkey: ['owner', 'all'], - endkey: ['owner', 'all', '\ufff0'], - }; + // Add the first object to the stack of traversed objects. + aStack.push(a); + bStack.push(b); - return rowsOf(db.query('medic-client/tasks_by_contact', options)); - }, + // Recursively compare objects and arrays. + if (areArrays) { + // Compare array lengths to determine if a deep comparison is necessary. + length = a.length; + if (length !== b.length) return false; + // Deep compare the contents, ignoring non-numeric properties. + while (length--) { + if (!eq(a[length], b[length], aStack, bStack)) return false; + } + } else { + // Deep compare objects. + var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_7__.default)(a), key; + length = _keys.length; + // Ensure that both objects contain the same number of properties before comparing deep equality. + if ((0,_keys_js__WEBPACK_IMPORTED_MODULE_7__.default)(b).length !== length) return false; + while (length--) { + // Deep compare each member + key = _keys[length]; + if (!((0,_has_js__WEBPACK_IMPORTED_MODULE_8__.default)(b, key) && eq(a[key], b[key], aStack, bStack))) return false; + } + } + // Remove the first object from the stack of traversed objects. + aStack.pop(); + bStack.pop(); + return true; +} - taskDataFor: (contactIds, userSettingsDoc) => { - if (!contactIds || contactIds.length === 0) { - return Promise.resolve({}); - } +// Perform a deep comparison to check if two objects are equal. +function isEqual(a, b) { + return eq(a, b); +} - return docsOf(db.allDocs({ keys: contactIds, include_docs: true })) - .then(contactDocs => { - const subjectIds = contactDocs.reduce((agg, contactDoc) => { - registrationUtils.getSubjectIds(contactDoc).forEach(subjectId => agg.add(subjectId)); - return agg; - }, new Set(contactIds)); - const keys = Array.from(subjectIds); - return Promise.all([ - docsOf(db.query('medic-client/reports_by_subject', { keys, include_docs: true })), - self.tasksByRelation(contactIds, 'requester'), - ]) - .then(([reportDocs, taskDocs]) => { - // tighten the connection between reports and contacts - // a report will only be allowed to generate tasks for a single contact! - reportDocs = reportDocs.filter(report => { - const subjectId = registrationUtils.getSubjectId(report); - return subjectIds.has(subjectId); - }); +/***/ }), - return { - userSettingsId: userSettingsDoc && userSettingsDoc._id, - contactDocs, - reportDocs, - taskDocs, - }; - }); - }); - }, - }; +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isError.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isError.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3396251__) => { - return self; -}; +"use strict"; +__nested_webpack_require_3396251__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3396251__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3396251__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); -medicPouchProvider.RULES_STATE_DOCID = RULES_STATE_DOCID; -const docUpdateClosure = db => { - // previousResult helps avoid conflict errors if this functions is used asynchronously - let previousResult = Promise.resolve(); - return (baseDoc, assigned) => { - Object.assign(baseDoc, assigned); +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Error')); - previousResult = previousResult - .then(() => db.put(baseDoc)) - .then(updatedDoc => (baseDoc._rev = updatedDoc.rev)) - .catch(err => console.error(`Error updating ${baseDoc._id}: ${err}`)) - .then(() => { - // unsure of how browsers handle long promise chains, so break the chain when possible - previousResult = Promise.resolve(); - }); - return previousResult; - }; -}; +/***/ }), -module.exports = medicPouchProvider; +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isFinite.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isFinite.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3397199__) => { + +"use strict"; +__nested_webpack_require_3397199__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3397199__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isFinite) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3397199__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _isSymbol_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3397199__(/*! ./isSymbol.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isSymbol.js"); + + + +// Is a given object a finite number? +function isFinite(obj) { + return !(0,_isSymbol_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) && (0,_setup_js__WEBPACK_IMPORTED_MODULE_0__._isFinite)(obj) && !isNaN(parseFloat(obj)); +} /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/provider-wireup.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/src/provider-wireup.js ***! - \***********************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3398411__) => { -/** - * @module wireup - * - * Wireup a data provider to the rules-engine - */ +"use strict"; +__nested_webpack_require_3398411__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3398411__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3398411__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3398411__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); -const moment = __webpack_require__(/*! moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js"); -const registrationUtils = __webpack_require__(/*! @medic/registration-utils */ "./node_modules/cht-core-4-0/shared-libs/registration-utils/src/index.js"); -const TaskStates = __webpack_require__(/*! ./task-states */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/task-states.js"); -const refreshRulesEmissions = __webpack_require__(/*! ./refresh-rules-emissions */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/refresh-rules-emissions.js"); -const rulesEmitter = __webpack_require__(/*! ./rules-emitter */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/rules-emitter.js"); -const rulesStateStore = __webpack_require__(/*! ./rules-state-store */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/rules-state-store.js"); -const updateTemporalStates = __webpack_require__(/*! ./update-temporal-states */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/update-temporal-states.js"); -const calendarInterval = __webpack_require__(/*! @medic/calendar-interval */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/src/index.js"); -let wireupOptions; +var isFunction = (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Function'); -module.exports = { - /** - * @param {Object} provider A data provider - * @param {Object} settings Settings for the behavior of the provider - * @param {Object} settings.rules Rules code from settings doc - * @param {Object[]} settings.taskSchedules Task schedules from settings doc - * @param {Object[]} settings.targets Target definitions from settings doc - * @param {Boolean} settings.enableTasks Flag to enable tasks - * @param {Boolean} settings.enableTargets Flag to enable targets - * @param {number} settings.monthStartDate reporting interval start date - * @param {Object} userDoc User's hydrated contact document - */ - initialize: (provider, settings) => { - const isEnabled = rulesEmitter.initialize(settings); - if (!isEnabled) { - return Promise.resolve(); - } +// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old +// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236). +var nodelist = _setup_js__WEBPACK_IMPORTED_MODULE_1__.root.document && _setup_js__WEBPACK_IMPORTED_MODULE_1__.root.document.childNodes; +if ( true && typeof Int8Array != 'object' && typeof nodelist != 'function') { + isFunction = function(obj) { + return typeof obj == 'function' || false; + }; +} - const { enableTasks=true, enableTargets=true } = settings; - wireupOptions = { enableTasks, enableTargets }; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isFunction); - return provider - .existingRulesStateStore() - .then(existingStateDoc => { - if (!rulesEmitter.isLatestNoolsSchema()) { - throw Error('Rules Engine: Updates to the nools schema are required'); - } - const contactClosure = updatedState => provider.stateChangeCallback( - existingStateDoc, - { rulesStateStore: updatedState } - ); - const needsBuilding = rulesStateStore.load(existingStateDoc.rulesStateStore, settings, contactClosure); - return handleIntervalTurnover(provider, settings).then(() => { - if (!needsBuilding) { - return; - } +/***/ }), - rulesStateStore.build(settings, contactClosure); - }); - }); - }, +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isMap.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isMap.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3399994__) => { - /** - * Refreshes the rules emissions for all contacts - * Fetches all tasks in non-terminal state owned by the contacts - * Updates the temporal states of the task documents - * Commits those changes (async) - * - * @param {Object} provider A data provider - * @param {string[]} contactIds An array of contact ids. If undefined, returns tasks for all contacts - * @returns {Promise} All the fresh task docs owned by contacts - */ - fetchTasksFor: (provider, contactIds) => { - if (!rulesEmitter.isEnabled() || !wireupOptions.enableTasks) { - return disabledResponse(); - } +"use strict"; +__nested_webpack_require_3399994__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3399994__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3399994__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); +/* harmony import */ var _stringTagBug_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3399994__(/*! ./_stringTagBug.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js"); +/* harmony import */ var _methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3399994__(/*! ./_methodFingerprint.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_methodFingerprint.js"); - return enqueue(() => { - const calculationTimestamp = Date.now(); - return refreshRulesEmissionForContacts(provider, calculationTimestamp, contactIds) - .then(() => contactIds ? provider.tasksByRelation(contactIds, 'owner') : provider.allTasks('owner')) - .then(tasksToDisplay => { - const docsToCommit = updateTemporalStates(tasksToDisplay, calculationTimestamp); - provider.commitTaskDocs(docsToCommit); - return tasksToDisplay.filter(taskDoc => taskDoc.state === TaskStates.Ready); - }); - }); - }, - /** - * Returns a breakdown of task counts by state and title for the provided contacts, or all contacts - * Does NOT refresh rules emissions - * @param {Object} provider A data provider - * @param {string[]} contactIds An array of contact ids. If undefined, returns breakdown for all contacts - * @return {Promise<{ - * Ready: number, - * Draft: number, - * Failed: number, - * Completed: number, - * Cancelled: number, - *}>} - */ - fetchTasksBreakdown: (provider, contactIds) => { - const tasksByState = Object.assign({}, TaskStates.states); - Object - .keys(tasksByState) - .forEach(state => tasksByState[state] = 0); - if (!rulesEmitter.isEnabled() || !wireupOptions.enableTasks) { - return Promise.resolve(tasksByState); - } - const getTasks = contactIds ? provider.allTaskRowsByOwner(contactIds) : provider.allTaskRows(); +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_stringTagBug_js__WEBPACK_IMPORTED_MODULE_1__.isIE11 ? (0,_methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__.ie11fingerprint)(_methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__.mapMethods) : (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Map')); - return getTasks.then(taskRows => { - taskRows.forEach(({ value: { state } }) => { - if (Object.hasOwnProperty.call(tasksByState, state)) { - tasksByState[state]++; - } - }); - return tasksByState; - }); - }, +/***/ }), - /** - * Refreshes the rules emissions for all contacts - * - * @param {Object} provider A data provider - * @param {Object} filterInterval Target emissions with date within the interval will be aggregated into the target - * scores - * @param {Integer} filterInterval.start Start timestamp of interval - * @param {Integer} filterInterval.end End timestamp of interval - * @returns {Promise} The fresh aggregate target doc - */ - fetchTargets: (provider, filterInterval) => { - if (!rulesEmitter.isEnabled() || !wireupOptions.enableTargets) { - return disabledResponse(); - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isMatch.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isMatch.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3401530__) => { - const calculationTimestamp = Date.now(); - const targetEmissionFilter = filterInterval && (emission => { - // 4th parameter of isBetween represents inclusivity. By default or using ( is exclusive, [ is inclusive - return moment(emission.date).isBetween(filterInterval.start, filterInterval.end, null, '[]'); - }); +"use strict"; +__nested_webpack_require_3401530__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3401530__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isMatch) +/* harmony export */ }); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3401530__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); - return enqueue(() => { - return refreshRulesEmissionForContacts(provider, calculationTimestamp) - .then(() => { - const targets = rulesStateStore.aggregateStoredTargetEmissions(targetEmissionFilter); - return storeTargetsDoc(provider, targets, filterInterval).then(() => targets); - }); - }); - }, - /** - * Indicate that the rules emissions associated with a given subjectId are dirty - * - * @param {Object} provider A data provider - * @param {string[]} subjectIds An array of subject ids - * - * @returns {Promise} To complete the transaction marking the subjectIds as dirty - */ - updateEmissionsFor: (provider, subjectIds) => { - if (!subjectIds) { - subjectIds = []; - } +// Returns whether an object has a given set of `key:value` pairs. +function isMatch(object, attrs) { + var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_0__.default)(attrs), length = _keys.length; + if (object == null) return !length; + var obj = Object(object); + for (var i = 0; i < length; i++) { + var key = _keys[i]; + if (attrs[key] !== obj[key] || !(key in obj)) return false; + } + return true; +} - if (subjectIds && !Array.isArray(subjectIds)) { - subjectIds = [subjectIds]; - } - // this function accepts subject ids, but rulesStateStore accepts a contact id, so a conversion is required - return provider.contactsBySubjectId(subjectIds) - .then(contactIds => rulesStateStore.markDirty(contactIds)); - }, -}; +/***/ }), -let refreshQueue = Promise.resolve(); -const enqueue = callback => { - const listeners = []; - const eventQueue = []; - const emit = evtName => { - // we have to emit `queued` immediately, but there are no listeners listening at this point - // eventQueue will keep a list of listener-less events. when listeners are registered, we check if they - // have events in eventQueue, and call their callback immediately for each matching queued event. - if (!listeners[evtName]) { - return eventQueue.push(evtName); - } - listeners[evtName].forEach(callback => callback()); - }; +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isNaN.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isNaN.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3402721__) => { - emit('queued'); - refreshQueue = refreshQueue.then(() => { - emit('running'); - return callback(); - }); +"use strict"; +__nested_webpack_require_3402721__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3402721__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isNaN) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3402721__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _isNumber_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3402721__(/*! ./isNumber.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isNumber.js"); - refreshQueue.on = (evtName, callback) => { - listeners[evtName] = listeners[evtName] || []; - listeners[evtName].push(callback); - eventQueue.forEach(queuedEvent => queuedEvent === evtName && callback()); - return refreshQueue; - }; - return refreshQueue; -}; -const disabledResponse = () => { - const p = Promise.resolve([]); - p.on = () => p; - return p; -}; +// Is the given value `NaN`? +function isNaN(obj) { + return (0,_isNumber_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) && (0,_setup_js__WEBPACK_IMPORTED_MODULE_0__._isNaN)(obj); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isNull.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isNull.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3403871__) => { + +"use strict"; +__nested_webpack_require_3403871__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3403871__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isNull) +/* harmony export */ }); +// Is a given value equal to null? +function isNull(obj) { + return obj === null; +} -const refreshRulesEmissionForContacts = (provider, calculationTimestamp, contactIds) => { - const refreshAndSave = (freshData, updatedContactIds) => ( - refreshRulesEmissions(freshData, calculationTimestamp, wireupOptions) - .then(refreshed => Promise.all([ - rulesStateStore.storeTargetEmissions(updatedContactIds, refreshed.targetEmissions), - provider.commitTaskDocs(refreshed.updatedTaskDocs), - ])) - ); - const refreshForAllContacts = (calculationTimestamp) => ( - provider.allTaskData(rulesStateStore.currentUserSettings()) - .then(freshData => ( - refreshAndSave(freshData) - .then(() => { - const contactIds = freshData.contactDocs.map(doc => doc._id); +/***/ }), - const subjectIds = freshData.contactDocs.reduce((agg, contactDoc) => { - registrationUtils.getSubjectIds(contactDoc).forEach(subjectId => agg.add(subjectId)); - return agg; - }, new Set()); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isNumber.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isNumber.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3404579__) => { - const headlessSubjectIds = freshData.reportDocs - .map(doc => registrationUtils.getSubjectId(doc)) - .filter(subjectId => !subjectIds.has(subjectId)); +"use strict"; +__nested_webpack_require_3404579__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3404579__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3404579__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); - rulesStateStore.markAllFresh(calculationTimestamp, [...contactIds, ...headlessSubjectIds]); - }) - )) - ); - const refreshForKnownContacts = (calculationTimestamp, contactIds) => { - const dirtyContactIds = contactIds.filter(contactId => rulesStateStore.isDirty(contactId)); - return provider.taskDataFor(dirtyContactIds, rulesStateStore.currentUserSettings()) - .then(freshData => refreshAndSave(freshData, dirtyContactIds)) - .then(() => { - rulesStateStore.markFresh(calculationTimestamp, dirtyContactIds); - }); - }; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Number')); - return handleIntervalTurnover(provider, { monthStartDate: rulesStateStore.getMonthStartDate() }).then(() => { - if (contactIds) { - return refreshForKnownContacts(calculationTimestamp, contactIds); - } - // If the contact state store does not contain all contacts, build up that list (contact doc ids + headless ids in - // reports/tasks) - if (!rulesStateStore.hasAllContacts()) { - return refreshForAllContacts(calculationTimestamp); - } +/***/ }), - // Once the contact state store has all contacts, trust it and only refresh those marked dirty - return refreshForKnownContacts(calculationTimestamp, rulesStateStore.getContactIds()); - }); -}; +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isObject.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isObject.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3405528__) => { -const storeTargetsDoc = (provider, targets, filterInterval, force = false) => { - const targetDocTag = filterInterval ? moment(filterInterval.end).format('YYYY-MM') : 'latest'; - const minifyTarget = target => ({ id: target.id, value: target.value }); +"use strict"; +__nested_webpack_require_3405528__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3405528__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isObject) +/* harmony export */ }); +// Is a given variable an object? +function isObject(obj) { + var type = typeof obj; + return type === 'function' || (type === 'object' && !!obj); +} - return provider.commitTargetDoc( - targets.map(minifyTarget), - rulesStateStore.currentUserContact(), - rulesStateStore.currentUserSettings(), - targetDocTag, - force - ); -}; -// Because we only save the `target` document once per day (when we calculate targets for the first time), -// we're losing all updates to targets that happened in the last day of the reporting period. -// This function takes the last saved state (which may be stale) and generates the targets doc for the corresponding -// reporting interval (that includes the date when the state was calculated). -// We don't recalculate the state prior to this because we support targets that count events infinitely to emit `now`, -// which means that they would all be excluded from the emission filter (being outside the past reporting interval). -// https://github.com/medic/cht-core/issues/6209 -const handleIntervalTurnover = (provider, { monthStartDate }) => { - if (!rulesStateStore.isLoaded() || !wireupOptions.enableTargets) { - return Promise.resolve(); - } +/***/ }), - const stateCalculatedAt = rulesStateStore.stateLastUpdatedAt(); - if (!stateCalculatedAt) { - return Promise.resolve(); - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isRegExp.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isRegExp.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3406303__) => { - const currentInterval = calendarInterval.getCurrent(monthStartDate); - // 4th parameter of isBetween represents inclusivity. By default or using ( is exclusive, [ is inclusive - if (moment(stateCalculatedAt).isBetween(currentInterval.start, currentInterval.end, null, '[]')) { - return Promise.resolve(); - } +"use strict"; +__nested_webpack_require_3406303__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3406303__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3406303__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); - const filterInterval = calendarInterval.getInterval(monthStartDate, stateCalculatedAt); - const targetEmissionFilter = (emission => { - // 4th parameter of isBetween represents inclusivity. By default or using ( is exclusive, [ is inclusive - return moment(emission.date).isBetween(filterInterval.start, filterInterval.end, null, '[]'); - }); - const targets = rulesStateStore.aggregateStoredTargetEmissions(targetEmissionFilter); - return storeTargetsDoc(provider, targets, filterInterval, true); -}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('RegExp')); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/refresh-rules-emissions.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/src/refresh-rules-emissions.js ***! - \*******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isSet.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isSet.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3407240__) => { -/** - * @module refresh-rules-emissions - * Uses rules-emitter to calculate the fresh emissions for a set of contacts, their reports, and their tasks - * Creates or updates one task document per unique emission id - * Cancels task documents in non-terminal states if they were not emitted - * - * @requires rules-emitter to be initialized - */ +"use strict"; +__nested_webpack_require_3407240__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3407240__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3407240__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); +/* harmony import */ var _stringTagBug_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3407240__(/*! ./_stringTagBug.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js"); +/* harmony import */ var _methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3407240__(/*! ./_methodFingerprint.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_methodFingerprint.js"); -const rulesEmitter = __webpack_require__(/*! ./rules-emitter */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/rules-emitter.js"); -const TaskStates = __webpack_require__(/*! ./task-states */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/task-states.js"); -const transformTaskEmissionToDoc = __webpack_require__(/*! ./transform-task-emission-to-doc */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/transform-task-emission-to-doc.js"); -/** - * @param {Object[]} freshData.contactDocs A set of contact documents - * @param {Object[]} freshData.reportDocs All of the contacts' reports - * @param {Object[]} freshData.taskDocs All of the contacts' task documents (must be linked by requester to a contact) - * @param {Object[]} freshData.userSettingsId The id of the user's settings document - * - * @param {int} calculationTimestamp Timestamp for the round of rules calculations - * - * @param {Object=} [options] Options for the behavior when refreshing rules - * @param {Boolean} [options.enableTasks=true] Flag to enable tasks - * @param {Boolean} [options.enableTargets=true] Flag to enable targets - * - * @returns {Object} result - * @returns {Object[]} result.targetEmissions Array of raw target emissions - * @returns {Object[]} result.updatedTaskDocs Array of updated task documents - */ -module.exports = (freshData = {}, calculationTimestamp = Date.now(), { enableTasks=true, enableTargets=true }={}) => { - const { contactDocs = [], reportDocs = [], taskDocs = [] } = freshData; - return rulesEmitter.getEmissionsFor(contactDocs, reportDocs, taskDocs) - .then(emissions => Promise.all([ - enableTasks ? getUpdatedTaskDocs(emissions.tasks, freshData, calculationTimestamp, enableTasks) : [], - enableTargets ? emissions.targets : [], - ])) - .then(([updatedTaskDocs, targetEmissions]) => ({ updatedTaskDocs, targetEmissions })); -}; -const getUpdatedTaskDocs = (taskEmissions, freshData, calculationTimestamp) => { - const { taskDocs = [], userSettingsId } = freshData; - const { winners: emissionIdToLatestDocMap, duplicates: duplicateTaskDocs } = disambiguateTaskDocs( - taskDocs, - calculationTimestamp - ); - const timelyEmissions = taskEmissions.filter(emission => TaskStates.isTimely(emission, calculationTimestamp)); - const taskTransforms = disambiguateEmissions(timelyEmissions, calculationTimestamp) - .map(taskEmission => { - const existingDoc = emissionIdToLatestDocMap[taskEmission._id]; - return transformTaskEmissionToDoc(taskEmission, calculationTimestamp, userSettingsId, existingDoc); - }); +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_stringTagBug_js__WEBPACK_IMPORTED_MODULE_1__.isIE11 ? (0,_methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__.ie11fingerprint)(_methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__.setMethods) : (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Set')); - const freshTaskDocs = taskTransforms.map(doc => doc.taskDoc); - const cancelledDocs = getCancellationUpdates(freshTaskDocs, freshData.taskDocs, calculationTimestamp); - const cancelledDuplicatedDocs = getDeduplicationUpdates(duplicateTaskDocs, calculationTimestamp); - const updatedTaskDocs = taskTransforms.filter(doc => doc.isUpdated).map(result => result.taskDoc); - return [...updatedTaskDocs, ...cancelledDocs, ...cancelledDuplicatedDocs]; -}; -/** - * Examine the existing task documents which were previously emitted by the same contact - * Cancel any doc that is in a non-terminal state and does not have an emission to keep it alive - */ -const getCancellationUpdates = (freshDocs, existingTaskDocs = [], calculatedAt = 0) => { - const existingNonTerminalTaskDocs = existingTaskDocs.filter(doc => !TaskStates.isTerminal(doc.state)); - const currentEmissionIds = new Set(freshDocs.map(doc => doc.emission._id)); +/***/ }), - return existingNonTerminalTaskDocs - .filter(doc => !currentEmissionIds.has(doc.emission._id)) - .map(doc => TaskStates.setStateOnTaskDoc(doc, TaskStates.Cancelled, calculatedAt)); -}; +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isString.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isString.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3408780__) => { -/** - * All duplicate task docs that are not in a terminal state are "Cancelled" with a "duplicate" reason - * @param {Array} duplicatedTaskDocs - array of task docs that exist in the local DB - * @param {number} calculatedAt - Timestamp for the round of rules calculations - * @returns {Array} - task docs with updated state - */ -const getDeduplicationUpdates = (duplicatedTaskDocs, calculatedAt) => { - return duplicatedTaskDocs - .filter(doc => !TaskStates.isTerminal(doc.state)) - .map(doc => TaskStates.setStateOnTaskDoc(doc, TaskStates.Cancelled, calculatedAt, 'duplicate')); -}; +"use strict"; +__nested_webpack_require_3408780__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3408780__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3408780__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); -/* -It is possible to receive multiple emissions with the same id. When this happens, we need to pick one winner. -We pick the "most ready" emission. -*/ -const disambiguateEmissions = (taskEmissions, forTime) => { - const winners = taskEmissions.reduce((agg, emission) => { - if (!agg[emission._id]) { - agg[emission._id] = emission; - } else { - const incomingState = TaskStates.calculateState(emission, forTime) || TaskStates.Cancelled; - const currentState = TaskStates.calculateState(agg[emission._id], forTime) || TaskStates.Cancelled; - if (TaskStates.isMoreReadyThan(incomingState, currentState)) { - agg[emission._id] = emission; - } - } - return agg; - }, {}); - return Object.keys(winners).map(key => winners[key]); // Object.values() -}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('String')); -/** - * It's possible to have multiple task docs with the same emission id. (For example, when the same account logs in - * on multiple devices). When this happens, we pick the "most ready" most recent task. However, tasks that are authored - * in the future are discarded. - * @param {Array} taskDocs - An array of already exiting task documents - * @param {number} forTime - current calculation timestamp - * @returns {Object} result - * @returns {Object} result.winners - A map of emission id to task pairs - * @returns {Array} result.duplicates - A list of task documents that are duplicates and need to be cancelled - */ -const disambiguateTaskDocs = (taskDocs, forTime) => { - const duplicates = []; - const winners = {}; - const taskDocsByEmissionId = mapEmissionIdToTaskDocs(taskDocs, forTime); +/***/ }), - Object.keys(taskDocsByEmissionId).forEach(emissionId => { - taskDocsByEmissionId[emissionId].forEach(taskDoc => { - if (!winners[emissionId]) { - winners[emissionId] = taskDoc; - return; - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isSymbol.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isSymbol.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3409729__) => { - const stateComparison = TaskStates.compareState(taskDoc.state, winners[emissionId].state); - if ( - // if taskDoc is more ready - stateComparison < 0 || - // or taskDoc is more recent, when having the same state - (stateComparison === 0 && taskDoc.authoredOn > winners[emissionId].authoredOn) - ) { - duplicates.push(winners[emissionId]); - winners[emissionId] = taskDoc; - } else { - duplicates.push(taskDoc); - } - }); - }); +"use strict"; +__nested_webpack_require_3409729__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3409729__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3409729__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); - return { winners, duplicates }; -}; -const mapEmissionIdToTaskDocs = (taskDocs, maxTimestamp) => { - const tasksByEmission = {}; - taskDocs - // mitigate the fallout of a user who rewinds their system-clock after creating task docs - .filter(doc => doc.authoredOn <= maxTimestamp) - .forEach(doc => { - const emissionId = doc.emission._id; - if (!tasksByEmission[emissionId]) { - tasksByEmission[emissionId] = []; - } - tasksByEmission[emissionId].push(doc); - }); - return tasksByEmission; -}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Symbol')); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/rules-emitter.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/src/rules-emitter.js ***! - \*********************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isTypedArray.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isTypedArray.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3410694__) => { -/** - * @module rules-emitter - * Encapsulates interactions with the nools library - * Handles marshaling of documents into nools facts - * Promisifies the execution of partner "rules" code - * Ensures memory allocated by nools is freed after each run - */ -const nools = __webpack_require__(/*! nools */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/index.js"); -const nootils = __webpack_require__(/*! cht-nootils */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/cht-nootils/src/nootils.js"); -const registrationUtils = __webpack_require__(/*! @medic/registration-utils */ "./node_modules/cht-core-4-0/shared-libs/registration-utils/src/index.js"); +"use strict"; +__nested_webpack_require_3410694__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3410694__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3410694__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _isDataView_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3410694__(/*! ./isDataView.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isDataView.js"); +/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3410694__(/*! ./constant.js */ "./build/cht-core-4-6/node_modules/underscore/modules/constant.js"); +/* harmony import */ var _isBufferLike_js__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_3410694__(/*! ./_isBufferLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isBufferLike.js"); -let flow; -/** -* Sets the rules emitter to an uninitialized state. -*/ -const shutdown = () => { - nools.deleteFlows(); - flow = undefined; -}; -module.exports = { - /** - * Initializes the rules emitter - * - * @param {Object} settings Settings for the behavior of the rules emitter - * @param {Object} settings.rules Rules code from settings doc - * @param {Object[]} settings.taskSchedules Task schedules from settings doc - * @param {Object} settings.contact The logged in user's contact document - * @returns {Boolean} Success - */ - initialize: (settings) => { - if (flow) { - throw Error('Attempted to initialize the rules emitter multiple times.'); - } - if (!settings.rules) { - return false; - } - shutdown(); +// Is a given value a typed array? +var typedArrayPattern = /\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/; +function isTypedArray(obj) { + // `ArrayBuffer.isView` is the most future-proof, so use it when available. + // Otherwise, fall back on the above regular expression. + return _setup_js__WEBPACK_IMPORTED_MODULE_0__.nativeIsView ? ((0,_setup_js__WEBPACK_IMPORTED_MODULE_0__.nativeIsView)(obj) && !(0,_isDataView_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj)) : + (0,_isBufferLike_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj) && typedArrayPattern.test(_setup_js__WEBPACK_IMPORTED_MODULE_0__.toString.call(obj)); +} - try { - const settingsDoc = { tasks: { schedules: settings.taskSchedules } }; - const nootilsInstance = nootils(settingsDoc); - flow = nools.compile(settings.rules, { - name: 'medic', - scope: { - Utils: nootilsInstance, - user: settings.contact, - cht: settings.chtScriptApi, - }, - }); - } catch (err) { - shutdown(); - throw err; - } +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_setup_js__WEBPACK_IMPORTED_MODULE_0__.supportsArrayBuffer ? isTypedArray : (0,_constant_js__WEBPACK_IMPORTED_MODULE_2__.default)(false)); - return !!flow; - }, - /** - * When upgrading to version 3.8, partners are required to make schema changes in their partner code - * TODO: Add link to documentation - * - * @returns True if the schema changes are in place - */ - isLatestNoolsSchema: () => { - if (!flow) { - throw Error('task emitter is not enabled -- cannot determine schema version'); - } +/***/ }), - const Task = flow.getDefined('task'); - const Target = flow.getDefined('target'); - const hasProperty = (obj, attr) => Object.hasOwnProperty.call(obj, attr); - return hasProperty(Task.prototype, 'readyStart') && - hasProperty(Task.prototype, 'readyEnd') && - hasProperty(Target.prototype, 'contact'); - }, +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isUndefined.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isUndefined.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3412940__) => { - /** - * Runs the partner's rules code for a set of documents and returns all emissions from nools - * - * @param {Object[]} contactDocs A set of contact documents - * @param {Object[]} reportDocs All of the contacts' reports - * @param {Object[]} taskDocs All of the contacts' task documents (must be linked by requester to a contact) - * - * @returns {Promise} emissions The raw emissions from nools - * @returns {Object[]} emissions.tasks Array of task emissions - * @returns {Object[]} emissions.targets Array of target emissions - */ - getEmissionsFor: (contactDocs, reportDocs = [], taskDocs = []) => { - if (!flow) { - throw Error('task emitter is not enabled -- cannot get emissions'); - } +"use strict"; +__nested_webpack_require_3412940__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3412940__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isUndefined) +/* harmony export */ }); +// Is a given variable undefined? +function isUndefined(obj) { + return obj === void 0; +} - if (!Array.isArray(contactDocs)) { - throw Error('invalid argument: contactDocs is expected to be an array'); - } - if (!Array.isArray(reportDocs)) { - throw Error('invalid argument: reportDocs is expected to be an array'); - } +/***/ }), - if (!Array.isArray(taskDocs)) { - throw Error('invalid argument: taskDocs is expected to be an array'); - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isWeakMap.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isWeakMap.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3413663__) => { - const session = startSession(); - try { - const facts = marshalDocsIntoNoolsFacts(contactDocs, reportDocs, taskDocs); - facts.forEach(session.assert); - } catch (err) { - session.dispose(); - throw err; - } +"use strict"; +__nested_webpack_require_3413663__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3413663__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3413663__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); +/* harmony import */ var _stringTagBug_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3413663__(/*! ./_stringTagBug.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js"); +/* harmony import */ var _methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3413663__(/*! ./_methodFingerprint.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_methodFingerprint.js"); - return session.match(); - }, - /** - * @returns True if the rules emitter is initialized and ready for use - */ - isEnabled: () => !!flow, - shutdown, -}; -const startSession = function() { - if (!flow) { - throw Error('Failed to start task session. Not initialized'); - } +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_stringTagBug_js__WEBPACK_IMPORTED_MODULE_1__.isIE11 ? (0,_methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__.ie11fingerprint)(_methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__.weakMapMethods) : (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('WeakMap')); - const session = flow.getSession(); - const tasks = []; - const targets = []; - session.on('task', task => tasks.push(task)); - session.on('target', target => targets.push(target)); - return { - assert: session.assert.bind(session), - dispose: session.dispose.bind(session), +/***/ }), - // session.match can return a thenable but not a promise. so wrap it in a real promise - match: () => new Promise((resolve, reject) => { - session.match(err => { - session.dispose(); - if (err) { - return reject(err); - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isWeakSet.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isWeakSet.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3415215__) => { - resolve({ tasks, targets }); - }); - }), - }; -}; +"use strict"; +__nested_webpack_require_3415215__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3415215__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3415215__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); -const marshalDocsIntoNoolsFacts = (contactDocs, reportDocs, taskDocs) => { - const Contact = flow.getDefined('contact'); - const factByContactId = contactDocs.reduce((agg, contact) => { - agg[contact._id] = new Contact({ contact, reports: [], tasks: [] }); - return agg; - }, {}); +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('WeakSet')); - const factBySubjectId = contactDocs.reduce((agg, contactDoc) => { - const subjectIds = registrationUtils.getSubjectIds(contactDoc); - for (const subjectId of subjectIds) { - if (!agg[subjectId]) { - agg[subjectId] = factByContactId[contactDoc._id]; - } - } - return agg; - }, {}); - const addHeadlessContact = (contactId) => { - const contact = contactId ? { _id: contactId } : undefined; - const newFact = new Contact({ contact, reports: [], tasks: [] }); - factByContactId[contactId] = factBySubjectId[contactId] = newFact; - return newFact; - }; +/***/ }), - for (const report of reportDocs) { - const subjectIdInReport = registrationUtils.getSubjectId(report); - const factOfPatient = factBySubjectId[subjectIdInReport] || addHeadlessContact(subjectIdInReport); - factOfPatient.reports.push(report); - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/iteratee.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/iteratee.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3416165__) => { - if (Object.hasOwnProperty.call(Contact.prototype, 'tasks')) { - for (const task of taskDocs) { - const sourceId = task.requester; - const factOfPatient = factBySubjectId[sourceId] || addHeadlessContact(sourceId); - factOfPatient.tasks.push(task); - } - } +"use strict"; +__nested_webpack_require_3416165__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3416165__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ iteratee) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3416165__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); +/* harmony import */ var _baseIteratee_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3416165__(/*! ./_baseIteratee.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_baseIteratee.js"); - return Object.keys(factByContactId).map(key => { - factByContactId[key].reports = factByContactId[key].reports.sort((a, b) => a.reported_date - b.reported_date); - return factByContactId[key]; - }); // Object.values(factByContactId) -}; + +// External wrapper for our callback generator. Users may customize +// `_.iteratee` if they want additional predicate/iteratee shorthand styles. +// This abstraction hides the internal-only `argCount` argument. +function iteratee(value, context) { + return (0,_baseIteratee_js__WEBPACK_IMPORTED_MODULE_1__.default)(value, context, Infinity); +} +_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.iteratee = iteratee; /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/rules-state-store.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/src/rules-state-store.js ***! - \*************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/keys.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3417572__) => { -/** - * @module rules-state-store - * In-memory datastore containing - * 1. Details on the state of each contact's rules calculations - * 2. Target emissions @see target-state - */ -const md5 = __webpack_require__(/*! md5 */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/md5/md5.js"); -const calendarInterval = __webpack_require__(/*! @medic/calendar-interval */ "./node_modules/cht-core-4-0/shared-libs/calendar-interval/src/index.js"); -const targetState = __webpack_require__(/*! ./target-state */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/target-state.js"); +"use strict"; +__nested_webpack_require_3417572__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3417572__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ keys) +/* harmony export */ }); +/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3417572__(/*! ./isObject.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isObject.js"); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3417572__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3417572__(/*! ./_has.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_has.js"); +/* harmony import */ var _collectNonEnumProps_js__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_3417572__(/*! ./_collectNonEnumProps.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_collectNonEnumProps.js"); -const EXPIRE_CALCULATION_AFTER_MS = 7 * 24 * 60 * 60 * 1000; -let state; -let currentUserContact; -let currentUserSettings; -let onStateChange; -const self = { - /** - * Initializes the rules-state-store from an existing state. If existing state is invalid, builds an empty state. - * - * @param {Object} existingState State object previously passed to the stateChangeCallback - * @param {Object} settings Settings for the behavior of the rules store - * @param {Object} settings.contact User's hydrated contact document - * @param {Object} settings.user User's user-settings document - * @param {Object} stateChangeCallback Callback which is invoked whenever the state changes. - * Receives the updated state as the only parameter. - * @returns {Boolean} that represents whether or not the state needs to be rebuilt - */ - load: (existingState, settings, stateChangeCallback) => { - if (state) { - throw Error('Attempted to initialize the rules-state-store multiple times.'); - } - state = existingState; - currentUserContact = settings.contact; - currentUserSettings = settings.user; - setOnChangeState(stateChangeCallback); - const rulesConfigHash = hashRulesConfig(settings); - if (state && state.rulesConfigHash !== rulesConfigHash) { - state.stale = true; - } - return !state || state.stale; - }, +// Retrieve the names of an object's own properties. +// Delegates to **ECMAScript 5**'s native `Object.keys`. +function keys(obj) { + if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj)) return []; + if (_setup_js__WEBPACK_IMPORTED_MODULE_1__.nativeKeys) return (0,_setup_js__WEBPACK_IMPORTED_MODULE_1__.nativeKeys)(obj); + var keys = []; + for (var key in obj) if ((0,_has_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj, key)) keys.push(key); + // Ahem, IE < 9. + if (_setup_js__WEBPACK_IMPORTED_MODULE_1__.hasEnumBug) (0,_collectNonEnumProps_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj, keys); + return keys; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/last.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/last.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3419538__) => { + +"use strict"; +__nested_webpack_require_3419538__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3419538__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ last) +/* harmony export */ }); +/* harmony import */ var _rest_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3419538__(/*! ./rest.js */ "./build/cht-core-4-6/node_modules/underscore/modules/rest.js"); + + +// Get the last element of an array. Passing **n** will return the last N +// values in the array. +function last(array, n, guard) { + if (array == null || array.length < 1) return n == null || guard ? void 0 : []; + if (n == null || guard) return array[array.length - 1]; + return (0,_rest_js__WEBPACK_IMPORTED_MODULE_0__.default)(array, Math.max(0, array.length - n)); +} + + +/***/ }), - /** - * Initializes an empty rules-state-store. - * - * @param {Object} settings Settings for the behavior of the rules store - * @param {Object} settings.contact User's hydrated contact document - * @param {Object} settings.user User's user-settings document - * @param {number} settings.monthStartDate reporting interval start date - * @param {Object} stateChangeCallback Callback which is invoked whenever the state changes. - * Receives the updated state as the only parameter. - */ - build: (settings, stateChangeCallback) => { - if (state && !state.stale) { - throw Error('Attempted to initialize the rules-state-store multiple times.'); - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/lastIndexOf.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/lastIndexOf.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3420713__) => { - state = { - rulesConfigHash: hashRulesConfig(settings), - contactState: {}, - targetState: targetState.createEmptyState(settings.targets), - monthStartDate: settings.monthStartDate, - }; - currentUserContact = settings.contact; - currentUserSettings = settings.user; +"use strict"; +__nested_webpack_require_3420713__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3420713__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _findLastIndex_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3420713__(/*! ./findLastIndex.js */ "./build/cht-core-4-6/node_modules/underscore/modules/findLastIndex.js"); +/* harmony import */ var _createIndexFinder_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3420713__(/*! ./_createIndexFinder.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createIndexFinder.js"); - setOnChangeState(stateChangeCallback); - return onStateChange(state); - }, - /** - * "Dirty" indicates that the contact's task documents are not up to date. They should be refreshed before being used. - * - * The dirty state can be due to: - * 1. The time of a contact's most recent task calculation is unknown - * 2. The contact's most recent task calculation expires - * 3. The contact is explicitly marked as dirty - * 4. Configurations impacting rules calculations have changed - * - * @param {string} contactId The id of the contact to test for dirtiness - * @returns {Boolean} True if dirty - */ - isDirty: contactId => { - if (!contactId) { - return false; - } - if (!state.contactState[contactId]) { - return true; - } +// Return the position of the last occurrence of an item in an array, +// or -1 if the item is not included in the array. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createIndexFinder_js__WEBPACK_IMPORTED_MODULE_1__.default)(-1, _findLastIndex_js__WEBPACK_IMPORTED_MODULE_0__.default)); - const now = Date.now(); - const { calculatedAt, expireAt, isDirty } = state.contactState[contactId]; - return !expireAt || - isDirty || - calculatedAt > now || /* system clock changed */ - expireAt < now; /* isExpired */ - }, - /** - * Determines if either the settings document or user's hydrated contact document have changed in a way which - * will impact the result of rules calculations. - * If they have changed in a meaningful way, the calculation state of all contacts is reset - * - * @param {Object} settings Settings for the behavior of the rules store - * @returns {Boolean} True if the state of all contacts has been reset - */ - rulesConfigChange: (settings) => { - const rulesConfigHash = hashRulesConfig(settings); - if (state.rulesConfigHash !== rulesConfigHash) { - state = { - rulesConfigHash, - contactState: {}, - targetState: targetState.createEmptyState(settings.targets), - monthStartDate: settings.monthStartDate, - }; - currentUserContact = settings.contact; - currentUserSettings = settings.user; +/***/ }), - onStateChange(state); - return true; - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/map.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/map.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3422040__) => { - return false; - }, +"use strict"; +__nested_webpack_require_3422040__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3422040__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ map) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3422040__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3422040__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3422040__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); - /** - * @param {int} calculatedAt Timestamp of the calculation - * @param {string[]} contactIds Array of contact ids to be marked as freshly calculated - */ - markFresh: (calculatedAt, contactIds) => { - if (!Array.isArray(contactIds)) { - contactIds = [contactIds]; - } - contactIds = contactIds.filter(id => id); - if (contactIds.length === 0) { - return; - } - const reportingInterval = calendarInterval.getCurrent(state.monthStartDate); - const defaultExpiry = calculatedAt + EXPIRE_CALCULATION_AFTER_MS; - for (const contactId of contactIds) { - state.contactState[contactId] = { - calculatedAt, - expireAt: Math.min(reportingInterval.end, defaultExpiry), - }; - } +// Return the results of applying the iteratee to each element. +function map(obj, iteratee, context) { + iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context); + var _keys = !(0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) && (0,_keys_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj), + length = (_keys || obj).length, + results = Array(length); + for (var index = 0; index < length; index++) { + var currentKey = _keys ? _keys[index] : index; + results[index] = iteratee(obj[currentKey], currentKey, obj); + } + return results; +} - return onStateChange(state); - }, - /** - * @param {string[]} contactIds Array of contact ids to be marked as dirty - */ - markDirty: contactIds => { - if (!Array.isArray(contactIds)) { - contactIds = [contactIds]; - } - contactIds = contactIds.filter(id => id); +/***/ }), - if (contactIds.length === 0) { - return; - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/mapObject.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/mapObject.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3423768__) => { - for (const contactId of contactIds) { - if (!state.contactState[contactId]) { - state.contactState[contactId] = {}; - } +"use strict"; +__nested_webpack_require_3423768__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3423768__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ mapObject) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3423768__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3423768__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); - state.contactState[contactId].isDirty = true; - } - return onStateChange(state); - }, - /** - * @returns {string[]} The id of all contacts tracked by the store - */ - getContactIds: () => Object.keys(state.contactState), +// Returns the results of applying the `iteratee` to each element of `obj`. +// In contrast to `_.map` it returns an object. +function mapObject(obj, iteratee, context) { + iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context); + var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj), + length = _keys.length, + results = {}; + for (var index = 0; index < length; index++) { + var currentKey = _keys[index]; + results[currentKey] = iteratee(obj[currentKey], currentKey, obj); + } + return results; +} - /** - * The rules system supports the concept of "headless" reports and "headless" task documents. In these scenarios, - * a report exists on a user's device while the associated contact document of that report is not on the device. - * A common scenario associated with this case is during supervisor workflows where supervisors sync reports with the - * needs_signoff attribute but not the associated patient. - * - * In these cases, getting a list of "all the contacts with rules" requires us to look not just through contact - * docs, but also through reports. To avoid this costly operation, the rules-state-store maintains a flag which - * indicates if the contact ids in the store can serve as a trustworthy authority. - * - * markAllFresh should be called when the list of contact ids within the store is the complete set of contacts with - * rules - */ - markAllFresh: (calculatedAt, contactIds) => { - state.allContactIds = true; - return self.markFresh(calculatedAt, contactIds); - }, - /** - * @returns True if markAllFresh has been called on the current store state. - */ - hasAllContacts: () => !!state.allContactIds, +/***/ }), - /** - * @returns {string} User contact document - */ - currentUserContact: () => currentUserContact, +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/matcher.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/matcher.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3425272__) => { - /** - * @returns {string} User settings document - */ - currentUserSettings: () => currentUserSettings, +"use strict"; +__nested_webpack_require_3425272__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3425272__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ matcher) +/* harmony export */ }); +/* harmony import */ var _extendOwn_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3425272__(/*! ./extendOwn.js */ "./build/cht-core-4-6/node_modules/underscore/modules/extendOwn.js"); +/* harmony import */ var _isMatch_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3425272__(/*! ./isMatch.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isMatch.js"); - /** - * @returns {number} The timestamp when the current loaded state was last updated - */ - stateLastUpdatedAt: () => state.calculatedAt, - /** - * @returns {number} current monthStartDate - */ - getMonthStartDate: () => state.monthStartDate, - /** - * @returns {boolean} whether or not the state is loaded - */ - isLoaded: () => !!state, +// Returns a predicate for checking whether an object has a given set of +// `key:value` pairs. +function matcher(attrs) { + attrs = (0,_extendOwn_js__WEBPACK_IMPORTED_MODULE_0__.default)({}, attrs); + return function(obj) { + return (0,_isMatch_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj, attrs); + }; +} - /** - * Store a set of target emissions which were emitted by refreshing a set of contacts - * - * @param {string[]} contactIds An array of contact ids which produced these targetEmissions by being refreshed. - * If undefined, all contacts are updated. - * @param {Object[]} targetEmissions An array of target emissions (the result of the rules-emitter). - */ - storeTargetEmissions: (contactIds, targetEmissions) => { - const isUpdated = targetState.storeTargetEmissions(state.targetState, contactIds, targetEmissions); - if (isUpdated) { - return onStateChange(state); - } - }, - /** - * Aggregates the stored target emissions into target models - * - * @param {Function(emission)=} targetEmissionFilter Filter function to filter which target emissions should - * be aggregated - * @example aggregateStoredTargetEmissions(emission => emission.date > moment().startOf('month').valueOf()) - * - * @returns {Object[]} result - * @returns {string} result[n].* All attributes of the target as defined in the settings doc - * @returns {Integer} result[n].total The total number of unique target emission ids matching instanceFilter - * @returns {Integer} result[n].pass The number of unique target emission ids matching instanceFilter with the - * latest emission with truthy "pass" - * @returns {Integer} result[n].percent The percentage of pass/total - */ - aggregateStoredTargetEmissions: targetEmissionFilter => targetState.aggregateStoredTargetEmissions( - state.targetState, - targetEmissionFilter - ), +/***/ }), - /** - * Returns a list of UUIDs of tracked contacts that are marked as dirty - * @returns {Array} list of dirty contacts UUIDs - */ - getDirtyContacts: () => self.getContactIds().filter(self.isDirty), -}; +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/max.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/max.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3426546__) => { -const hashRulesConfig = (settings) => { - const asString = JSON.stringify(settings); - return md5(asString); -}; +"use strict"; +__nested_webpack_require_3426546__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3426546__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ max) +/* harmony export */ }); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3426546__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3426546__(/*! ./values.js */ "./build/cht-core-4-6/node_modules/underscore/modules/values.js"); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3426546__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_3426546__(/*! ./each.js */ "./build/cht-core-4-6/node_modules/underscore/modules/each.js"); -const setOnChangeState = (stateChangeCallback) => { - onStateChange = (state) => { - state.calculatedAt = new Date().getTime(); - if (stateChangeCallback && typeof stateChangeCallback === 'function') { - return stateChangeCallback(state); - } - }; -}; -// ensure all exported functions are only ever called after initialization -module.exports = Object.keys(self).reduce((agg, key) => { - agg[key] = (...args) => { - if (!['build', 'load', 'isLoaded'].includes(key) && (!state || !state.contactState)) { - throw Error(`Invalid operation: Attempted to invoke rules-state-store.${key} before call to build or load`); + + +// Return the maximum element (or element-based computation). +function max(obj, iteratee, context) { + var result = -Infinity, lastComputed = -Infinity, + value, computed; + if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) { + obj = (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj) ? obj : (0,_values_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj); + for (var i = 0, length = obj.length; i < length; i++) { + value = obj[i]; + if (value != null && value > result) { + result = value; + } } + } else { + iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_2__.default)(iteratee, context); + (0,_each_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj, function(v, index, list) { + computed = iteratee(v, index, list); + if (computed > lastComputed || (computed === -Infinity && result === -Infinity)) { + result = v; + lastComputed = computed; + } + }); + } + return result; +} - return self[key](...args); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/memoize.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/memoize.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3428848__) => { + +"use strict"; +__nested_webpack_require_3428848__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3428848__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ memoize) +/* harmony export */ }); +/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3428848__(/*! ./_has.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_has.js"); + + +// Memoize an expensive function by storing its results. +function memoize(func, hasher) { + var memoize = function(key) { + var cache = memoize.cache; + var address = '' + (hasher ? hasher.apply(this, arguments) : key); + if (!(0,_has_js__WEBPACK_IMPORTED_MODULE_0__.default)(cache, address)) cache[address] = func.apply(this, arguments); + return cache[address]; }; - return agg; -}, {}); + memoize.cache = {}; + return memoize; +} /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/target-state.js": -/*!********************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/src/target-state.js ***! - \********************************************************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/min.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/min.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3430041__) => { -/** - * @module target-state - * - * Stores raw target-emissions in a minified, efficient, deterministic structure - * Handles removal of "cancelled" target emissions - * Aggregates target emissions into targets - */ +"use strict"; +__nested_webpack_require_3430041__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3430041__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ min) +/* harmony export */ }); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3430041__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3430041__(/*! ./values.js */ "./build/cht-core-4-6/node_modules/underscore/modules/values.js"); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3430041__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_3430041__(/*! ./each.js */ "./build/cht-core-4-6/node_modules/underscore/modules/each.js"); -/** @summary state - * Functions in this module all accept a "state" parameter or return a "state" object. - * This state has the following structure: - * - * @example - * { - * target.id: { - * id: 'target_id', - * type: 'count', - * goal: 0, - * .. - * - * emissions: { - * emission.id: { - * requestor.id: { - * pass: boolean, - * date: timestamp, - * order: timestamp, - * }, - * .. - * }, - * .. - * } - * }, - * .. - * } - */ -module.exports = { - /** - * Builds an empty target-state. - * - * @param {Object[]} targets An array of target definitions - */ - createEmptyState: (targets=[]) => { - return targets - .reduce((agg, definition) => { - agg[definition.id] = Object.assign({}, definition, { emissions: {} }); - return agg; - }, {}); - }, - storeTargetEmissions: (state, contactIds, targetEmissions) => { - let isUpdated = false; - if (!Array.isArray(targetEmissions)) { - throw Error('targetEmissions argument must be an array'); - } - // Remove all emissions that were previously emitted by the contact ("cancelled emissions") - if (!contactIds) { - for (const targetId of Object.keys(state)) { - state[targetId].emissions = {}; - } - } else { - for (const contactId of contactIds) { - for (const targetId of Object.keys(state)) { - for (const emissionId of Object.keys(state[targetId].emissions)) { - const emission = state[targetId].emissions[emissionId]; - if (emission[contactId]) { - delete emission[contactId]; - isUpdated = true; - } - } - } - } - } - // Merge the emission data into state - for (const emission of targetEmissions) { - const target = state[emission.type]; - const requestor = emission.contact && emission.contact._id; - if (target && requestor && !emission.deleted) { - const targetRequestors = target.emissions[emission._id] = target.emissions[emission._id] || {}; - targetRequestors[requestor] = { - pass: !!emission.pass, - groupBy: emission.groupBy, - date: emission.date, - order: emission.contact.reported_date || -1, - }; - isUpdated = true; +// Return the minimum element (or element-based computation). +function min(obj, iteratee, context) { + var result = Infinity, lastComputed = Infinity, + value, computed; + if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) { + obj = (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj) ? obj : (0,_values_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj); + for (var i = 0, length = obj.length; i < length; i++) { + value = obj[i]; + if (value != null && value < result) { + result = value; } } + } else { + iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_2__.default)(iteratee, context); + (0,_each_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj, function(v, index, list) { + computed = iteratee(v, index, list); + if (computed < lastComputed || (computed === Infinity && result === Infinity)) { + result = v; + lastComputed = computed; + } + }); + } + return result; +} - return isUpdated; - }, - aggregateStoredTargetEmissions: (state, targetEmissionFilter) => { - const pick = (obj, attrs) => attrs - .reduce((agg, attr) => { - if (Object.hasOwnProperty.call(obj, attr)) { - agg[attr] = obj[attr]; - } - return agg; - }, {}); +/***/ }), - const scoreTarget = target => { - const emissionIds = Object.keys(target.emissions); - const relevantEmissions = emissionIds - // emissions passing the "targetEmissionFilter" - .map(emissionId => { - const requestorIds = Object.keys(target.emissions[emissionId]); - const filteredInstanceIds = requestorIds.filter(requestorId => { - return !targetEmissionFilter || targetEmissionFilter(target.emissions[emissionId][requestorId]); - }); - return pick(target.emissions[emissionId], filteredInstanceIds); - }) +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/mixin.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/mixin.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3432331__) => { - // if there are multiple emissions with the same id emitted by different contacts, disambiguate them - .map(emissionsByRequestor => emissionOfLatestRequestor(emissionsByRequestor)) - .filter(emission => emission); +"use strict"; +__nested_webpack_require_3432331__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3432331__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ mixin) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3432331__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); +/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3432331__(/*! ./each.js */ "./build/cht-core-4-6/node_modules/underscore/modules/each.js"); +/* harmony import */ var _functions_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3432331__(/*! ./functions.js */ "./build/cht-core-4-6/node_modules/underscore/modules/functions.js"); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_3432331__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _chainResult_js__WEBPACK_IMPORTED_MODULE_4__ = __nested_webpack_require_3432331__(/*! ./_chainResult.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_chainResult.js"); - const passingThreshold = target.passesIfGroupCount && target.passesIfGroupCount.gte; - if (!passingThreshold) { - return { - pass: relevantEmissions.filter(emission => emission.pass).length, - total: relevantEmissions.length, - }; - } - const countPassedEmissionsByGroup = {}; - const countEmissionsByGroup = {}; - relevantEmissions.forEach(emission => { - const groupBy = emission.groupBy; - if (!groupBy) { - return; - } - if (!countPassedEmissionsByGroup[groupBy]) { - countPassedEmissionsByGroup[groupBy] = 0; - countEmissionsByGroup[groupBy] = 0; - } - countEmissionsByGroup[groupBy]++; - if (emission.pass) { - countPassedEmissionsByGroup[groupBy]++; - } - }); - const groups = Object.keys(countEmissionsByGroup); - return { - pass: groups.filter(group => countPassedEmissionsByGroup[group] >= passingThreshold).length, - total: groups.length, - }; - }; - const aggregateTarget = target => { - const aggregated = pick( - target, - ['id', 'type', 'goal', 'translation_key', 'name', 'icon', 'subtitle_translation_key', 'visible'] - ); - aggregated.value = scoreTarget(target); +// Add your own custom functions to the Underscore object. +function mixin(obj) { + (0,_each_js__WEBPACK_IMPORTED_MODULE_1__.default)((0,_functions_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj), function(name) { + var func = _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default[name] = obj[name]; + _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.prototype[name] = function() { + var args = [this._wrapped]; + _setup_js__WEBPACK_IMPORTED_MODULE_3__.push.apply(args, arguments); + return (0,_chainResult_js__WEBPACK_IMPORTED_MODULE_4__.default)(this, func.apply(_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default, args)); + }; + }); + return _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/negate.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/negate.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3434566__) => { + +"use strict"; +__nested_webpack_require_3434566__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3434566__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ negate) +/* harmony export */ }); +// Returns a negated version of the passed-in predicate. +function negate(predicate) { + return function() { + return !predicate.apply(this, arguments); + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/noop.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/noop.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3435336__) => { + +"use strict"; +__nested_webpack_require_3435336__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3435336__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ noop) +/* harmony export */ }); +// Predicate-generating function. Often useful outside of Underscore. +function noop(){} - if (aggregated.type === 'percent') { - aggregated.value.percent = aggregated.value.total ? - Math.round(aggregated.value.pass * 100 / aggregated.value.total) : 0; - } - return aggregated; - }; +/***/ }), - const emissionOfLatestRequestor = emissionsByRequestor => { - return Object.keys(emissionsByRequestor).reduce((previousValue, requestorId) => { - const current = emissionsByRequestor[requestorId]; - if (!previousValue || !previousValue.order || current.order > previousValue.order) { - return current; - } - return previousValue; - }, undefined); - }; +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/now.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/now.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3436027__) => { - return Object.keys(state).map(targetId => aggregateTarget(state[targetId])); - }, -}; +"use strict"; +__nested_webpack_require_3436027__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3436027__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +// A (possibly faster) way to get the current timestamp as an integer. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Date.now || function() { + return new Date().getTime(); +}); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/task-states.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/src/task-states.js ***! - \*******************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/object.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/object.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3436846__) => { -/** - * @module task-states - * As defined by the FHIR task standard https://www.hl7.org/fhir/task.html#statemachine - */ +"use strict"; +__nested_webpack_require_3436846__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3436846__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ object) +/* harmony export */ }); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3436846__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); -const moment = __webpack_require__(/*! moment */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js"); -/** - * Problems: - * If all emissions are converted to documents, heavy users will create thousands of legacy task docs after upgrading - * to this rules-engine. - * In order to purge task documents, we need to guarantee that they won't just be recreated after they are purged. - * The two scenarios above are important for maintaining the client-side performance of the app. - * - * Therefore, we only consider task emissions "timely" if they end within a fixed time period. - * However, if this window is too short then users who don't login frequently may fail to create a task document at all. - * Looking at time-between-reports for active projects, a time window of 60 days will ensure that 99.9% of tasks are - * recorded as docs. - */ -const TIMELY_WINDOW = { - start: 60, // days - end: 180 // days -}; +// Converts lists into objects. Pass either a single array of `[key, value]` +// pairs, or two parallel arrays of the same length -- one of keys, and one of +// the corresponding values. Passing by pairs is the reverse of `_.pairs`. +function object(list, values) { + var result = {}; + for (var i = 0, length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(list); i < length; i++) { + if (values) { + result[list[i]] = values[i]; + } else { + result[list[i][0]] = list[i][1]; + } + } + return result; +} -// This must be a comparable string format to avoid a bunch of parsing. For example, "2000-01-01" < "2010-11-31" -const formatString = 'YYYY-MM-DD'; -const States = { - /** - * Task has been calculated but it is scheduled in the future - */ - Draft: 'Draft', +/***/ }), - /** - * Task is currently showing to the user - */ - Ready: 'Ready', +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/omit.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/omit.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3438165__) => { - /** - * Task was not emitted when refreshing the contact - * Task resulted from invalid emissions - */ - Cancelled: 'Cancelled', +"use strict"; +__nested_webpack_require_3438165__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3438165__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3438165__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3438165__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _negate_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3438165__(/*! ./negate.js */ "./build/cht-core-4-6/node_modules/underscore/modules/negate.js"); +/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_3438165__(/*! ./map.js */ "./build/cht-core-4-6/node_modules/underscore/modules/map.js"); +/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_4__ = __nested_webpack_require_3438165__(/*! ./_flatten.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js"); +/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_5__ = __nested_webpack_require_3438165__(/*! ./contains.js */ "./build/cht-core-4-6/node_modules/underscore/modules/contains.js"); +/* harmony import */ var _pick_js__WEBPACK_IMPORTED_MODULE_6__ = __nested_webpack_require_3438165__(/*! ./pick.js */ "./build/cht-core-4-6/node_modules/underscore/modules/pick.js"); - /** - * Task was emitted with { resolved: true } - */ - Completed: 'Completed', - /** - * Task was never terminated and is now outside the allowed time window - */ - Failed: 'Failed', -}; -const getDisplayWindow = (taskEmission) => { - const hasExistingDisplayWindow = taskEmission.startDate || taskEmission.endDate; - if (hasExistingDisplayWindow) { - return { - dueDate: taskEmission.dueDate, - startDate: taskEmission.startDate, - endDate: taskEmission.endDate, + + + + + +// Return a copy of the object without the disallowed properties. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(obj, keys) { + var iteratee = keys[0], context; + if ((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(iteratee)) { + iteratee = (0,_negate_js__WEBPACK_IMPORTED_MODULE_2__.default)(iteratee); + if (keys.length > 1) context = keys[1]; + } else { + keys = (0,_map_js__WEBPACK_IMPORTED_MODULE_3__.default)((0,_flatten_js__WEBPACK_IMPORTED_MODULE_4__.default)(keys, false, false), String); + iteratee = function(value, key) { + return !(0,_contains_js__WEBPACK_IMPORTED_MODULE_5__.default)(keys, key); }; } + return (0,_pick_js__WEBPACK_IMPORTED_MODULE_6__.default)(obj, iteratee, context); +})); - const dueDate = moment(taskEmission.date); - if (!dueDate.isValid()) { - return { dueDate: NaN, startDate: NaN, endDate: NaN }; - } - return { - dueDate: dueDate.format(formatString), - startDate: dueDate.clone().subtract(taskEmission.readyStart || 0, 'days').format(formatString), - endDate: dueDate.clone().add(taskEmission.readyEnd || 0, 'days').format(formatString), - }; -}; +/***/ }), -const mostReadyOrder = [States.Ready, States.Draft, States.Completed, States.Failed, States.Cancelled]; -const orderOf = state => { - const order = mostReadyOrder.indexOf(state); - return order >= 0 ? order : mostReadyOrder.length; -}; +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/once.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/once.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3440844__) => { -module.exports = { - isTerminal: state => [States.Cancelled, States.Completed, States.Failed].includes(state), +"use strict"; +__nested_webpack_require_3440844__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3440844__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _partial_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3440844__(/*! ./partial.js */ "./build/cht-core-4-6/node_modules/underscore/modules/partial.js"); +/* harmony import */ var _before_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3440844__(/*! ./before.js */ "./build/cht-core-4-6/node_modules/underscore/modules/before.js"); - isMoreReadyThan: (stateA, stateB) => orderOf(stateA) < orderOf(stateB), - compareState: (stateA, stateB) => orderOf(stateA) - orderOf(stateB), - calculateState: (taskEmission, timestamp) => { - if (!taskEmission) { - return false; - } +// Returns a function that will be executed at most one time, no matter how +// often you call it. Useful for lazy initialization. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_partial_js__WEBPACK_IMPORTED_MODULE_0__.default)(_before_js__WEBPACK_IMPORTED_MODULE_1__.default, 2)); - if (taskEmission.resolved) { - return States.Completed; - } - if (taskEmission.deleted) { - return States.Cancelled; - } +/***/ }), - // invalid data yields falsey - if (!taskEmission.date && !taskEmission.dueDate) { - return false; - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/pairs.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/pairs.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3442117__) => { - const { startDate, endDate } = getDisplayWindow(taskEmission); - if (!startDate || !endDate || startDate > endDate || endDate < startDate) { - return false; - } +"use strict"; +__nested_webpack_require_3442117__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3442117__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ pairs) +/* harmony export */ }); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3442117__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); - const timestampAsDate = moment(timestamp).format(formatString); - if (startDate > timestampAsDate) { - return States.Draft; - } - if (endDate < timestampAsDate) { - return States.Failed; - } +// Convert an object into a list of `[key, value]` pairs. +// The opposite of `_.object` with one argument. +function pairs(obj) { + var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj); + var length = _keys.length; + var pairs = Array(length); + for (var i = 0; i < length; i++) { + pairs[i] = [_keys[i], obj[_keys[i]]]; + } + return pairs; +} - return States.Ready; - }, - getDisplayWindow, +/***/ }), - states: States, +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/partial.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/partial.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3443264__) => { - isTimely: (taskEmission, timestamp) => { - const { startDate, endDate } = getDisplayWindow(taskEmission); - const earliest = moment(timestamp).subtract(TIMELY_WINDOW.start, 'days'); - const latest = moment(timestamp).add(TIMELY_WINDOW.end, 'days'); - return earliest.isBefore(endDate) && latest.isAfter(startDate); - }, +"use strict"; +__nested_webpack_require_3443264__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3443264__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3443264__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _executeBound_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3443264__(/*! ./_executeBound.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_executeBound.js"); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3443264__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); - setStateOnTaskDoc: (taskDoc, updatedState, timestamp = Date.now(), reason = '') => { - if (!taskDoc) { - return; - } - if (!updatedState) { - taskDoc.state = States.Cancelled; - taskDoc.stateReason = 'invalid'; - } else { - taskDoc.state = updatedState; - if (reason) { - taskDoc.stateReason = reason; - } - } - const stateHistory = taskDoc.stateHistory = taskDoc.stateHistory || []; - const mostRecentState = stateHistory[stateHistory.length - 1]; - if (!mostRecentState || taskDoc.state !== mostRecentState.state) { - const stateChange = { state: taskDoc.state, timestamp }; - stateHistory.push(stateChange); - } - return taskDoc; - }, -}; +// Partially apply a function by creating a version that has had some of its +// arguments pre-filled, without changing its dynamic `this` context. `_` acts +// as a placeholder by default, allowing any combination of arguments to be +// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument. +var partial = (0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(func, boundArgs) { + var placeholder = partial.placeholder; + var bound = function() { + var position = 0, length = boundArgs.length; + var args = Array(length); + for (var i = 0; i < length; i++) { + args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i]; + } + while (position < arguments.length) args.push(arguments[position++]); + return (0,_executeBound_js__WEBPACK_IMPORTED_MODULE_1__.default)(func, bound, this, this, args); + }; + return bound; +}); -Object.assign(module.exports, States); +partial.placeholder = _underscore_js__WEBPACK_IMPORTED_MODULE_2__.default; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (partial); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/transform-task-emission-to-doc.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/src/transform-task-emission-to-doc.js ***! - \**************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/partition.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/partition.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3445514__) => { -/** - * @module transform-task-emission-to-doc - * Transforms a task emission into the schema used by task documents - * Minifies all unneeded data from the emission - * Merges emission data into an existing document, or creates a new task document (as appropriate) - */ +"use strict"; +__nested_webpack_require_3445514__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3445514__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _group_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3445514__(/*! ./_group.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_group.js"); -const TaskStates = __webpack_require__(/*! ./task-states */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/task-states.js"); -/** - * @param {Object} taskEmission A task emission from the rules engine - * @param {int} calculatedAt Epoch timestamp at the time the emission was calculated - * @param {Object} existingDoc The most recent taskDocument with the same emission id +// Split a collection into two arrays: one whose elements all pass the given +// truth test, and one whose elements all do not pass the truth test. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_group_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(result, value, pass) { + result[pass ? 0 : 1].push(value); +}, true)); - * @returns {Object} result - * @returns {Object} result.taskDoc The result of the transformation - * @returns {Boolean} result.isUpdated True if the document is new or has been altered - */ -module.exports = (taskEmission, calculatedAt, userSettingsId, existingDoc) => { - const emittedState = TaskStates.calculateState(taskEmission, calculatedAt); - const baseFromExistingDoc = !!existingDoc && - (!TaskStates.isTerminal(existingDoc.state) || existingDoc.state === emittedState); - // reduce document churn - don't tweak data on existing docs in terminal states - const baselineStateOfExistingDoc = baseFromExistingDoc && - !TaskStates.isTerminal(existingDoc.state) && - JSON.stringify(existingDoc); - const taskDoc = baseFromExistingDoc ? existingDoc : newTaskDoc(taskEmission, userSettingsId, calculatedAt); - taskDoc.user = userSettingsId; - taskDoc.requester = taskEmission.doc && taskEmission.doc.contact && taskEmission.doc.contact._id; - taskDoc.owner = taskEmission.contact && taskEmission.contact._id; - minifyEmission(taskDoc, taskEmission); - TaskStates.setStateOnTaskDoc(taskDoc, emittedState, calculatedAt); +/***/ }), - const isUpdated = (() => { - if (!baseFromExistingDoc) { - // do not create new documents where the initial state is cancelled (invalid emission) - return taskDoc.state !== TaskStates.Cancelled; - } +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/pick.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/pick.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3446645__) => { - return baselineStateOfExistingDoc && JSON.stringify(taskDoc) !== baselineStateOfExistingDoc; - })(); +"use strict"; +__nested_webpack_require_3446645__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3446645__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3446645__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3446645__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _optimizeCb_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3446645__(/*! ./_optimizeCb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js"); +/* harmony import */ var _allKeys_js__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_3446645__(/*! ./allKeys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js"); +/* harmony import */ var _keyInObj_js__WEBPACK_IMPORTED_MODULE_4__ = __nested_webpack_require_3446645__(/*! ./_keyInObj.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_keyInObj.js"); +/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_5__ = __nested_webpack_require_3446645__(/*! ./_flatten.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js"); - return { - isUpdated, - taskDoc, - }; -}; -const minifyEmission = (taskDoc, emission) => { - const minified = ['_id', 'title', 'icon', 'deleted', 'resolved', 'actions', 'priority', 'priorityLabel' ] - .reduce((agg, attr) => { - if (Object.hasOwnProperty.call(emission, attr)) { - agg[attr] = emission[attr]; - } - return agg; - }, {}); - /* - The declarative configuration "contactLabel" results in a task emission with a contact with only a name attribute. - For backward compatibility, contacts which don't provide an id should not be minified and rehydrated. - */ - if (emission.contact) { - minified.contact = { name: emission.contact.name }; - } - if (emission.date || emission.dueDate) { - const timeWindow = TaskStates.getDisplayWindow(emission); - Object.assign(minified, timeWindow); - } - minified.actions && minified.actions - .filter(action => action && action.content) - .forEach(action => { - if (!minified.forId) { - minified.forId = action.content.contact && action.content.contact._id; - } - delete action.content.contact; - }); - taskDoc.emission = minified; - return taskDoc; -}; -const newTaskDoc = (emission, userSettingsId, calculatedAt) => ({ - _id: `task~${userSettingsId}~${emission._id}~${calculatedAt}`, - type: 'task', - authoredOn: calculatedAt, - stateHistory: [], -}); + +// Return a copy of the object only containing the allowed properties. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(obj, keys) { + var result = {}, iteratee = keys[0]; + if (obj == null) return result; + if ((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(iteratee)) { + if (keys.length > 1) iteratee = (0,_optimizeCb_js__WEBPACK_IMPORTED_MODULE_2__.default)(iteratee, keys[1]); + keys = (0,_allKeys_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj); + } else { + iteratee = _keyInObj_js__WEBPACK_IMPORTED_MODULE_4__.default; + keys = (0,_flatten_js__WEBPACK_IMPORTED_MODULE_5__.default)(keys, false, false); + obj = Object(obj); + } + for (var i = 0, length = keys.length; i < length; i++) { + var key = keys[i]; + var value = obj[key]; + if (iteratee(value, key, obj)) result[key] = value; + } + return result; +})); /***/ }), -/***/ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/update-temporal-states.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/cht-core-4-0/shared-libs/rules-engine/src/update-temporal-states.js ***! - \******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/pluck.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/pluck.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3449298__) => { -/** - * @module update-temporal-states - * As time elapses, documents change state because the timing window has been reached. - * Eg. Documents with state Draft move to state Ready just because it is now after midnight - */ -const TaskStates = __webpack_require__(/*! ./task-states */ "./node_modules/cht-core-4-0/shared-libs/rules-engine/src/task-states.js"); +"use strict"; +__nested_webpack_require_3449298__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3449298__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ pluck) +/* harmony export */ }); +/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3449298__(/*! ./map.js */ "./build/cht-core-4-6/node_modules/underscore/modules/map.js"); +/* harmony import */ var _property_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3449298__(/*! ./property.js */ "./build/cht-core-4-6/node_modules/underscore/modules/property.js"); -/** - * @param {Object[]} taskDocs A list of task documents to evaluate - * @param {int} timestamp=Date.now() Epoch timestamp to use when evaluating the current state of the task documents - */ -module.exports = (taskDocs, timestamp = Date.now()) => { - const docsToCommit = []; - for (const taskDoc of taskDocs) { - let updatedState = TaskStates.calculateState(taskDoc.emission, timestamp); - if (taskDoc.authoredOn > timestamp) { - updatedState = TaskStates.Cancelled; - } - if (!TaskStates.isTerminal(taskDoc.state) && taskDoc.state !== updatedState) { - TaskStates.setStateOnTaskDoc(taskDoc, updatedState, timestamp); - docsToCommit.push(taskDoc); - } - } - return docsToCommit; -}; +// Convenience version of a common use case of `_.map`: fetching a property. +function pluck(obj, key) { + return (0,_map_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, (0,_property_js__WEBPACK_IMPORTED_MODULE_1__.default)(key)); +} /***/ }), -/***/ "./node_modules/lodash/_Hash.js": -/*!**************************************!*\ - !*** ./node_modules/lodash/_Hash.js ***! - \**************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var hashClear = __webpack_require__(/*! ./_hashClear */ "./node_modules/lodash/_hashClear.js"), - hashDelete = __webpack_require__(/*! ./_hashDelete */ "./node_modules/lodash/_hashDelete.js"), - hashGet = __webpack_require__(/*! ./_hashGet */ "./node_modules/lodash/_hashGet.js"), - hashHas = __webpack_require__(/*! ./_hashHas */ "./node_modules/lodash/_hashHas.js"), - hashSet = __webpack_require__(/*! ./_hashSet */ "./node_modules/lodash/_hashSet.js"); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/property.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/property.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3450498__) => { -/** - * Creates a hash object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ -function Hash(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; +"use strict"; +__nested_webpack_require_3450498__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3450498__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ property) +/* harmony export */ }); +/* harmony import */ var _deepGet_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3450498__(/*! ./_deepGet.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_deepGet.js"); +/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3450498__(/*! ./_toPath.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js"); - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } -} -// Add methods to `Hash`. -Hash.prototype.clear = hashClear; -Hash.prototype['delete'] = hashDelete; -Hash.prototype.get = hashGet; -Hash.prototype.has = hashHas; -Hash.prototype.set = hashSet; -module.exports = Hash; +// Creates a function that, when passed an object, will traverse that object’s +// properties down the given `path`, specified as an array of keys or indices. +function property(path) { + path = (0,_toPath_js__WEBPACK_IMPORTED_MODULE_1__.default)(path); + return function(obj) { + return (0,_deepGet_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, path); + }; +} /***/ }), -/***/ "./node_modules/lodash/_ListCache.js": -/*!*******************************************!*\ - !*** ./node_modules/lodash/_ListCache.js ***! - \*******************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var listCacheClear = __webpack_require__(/*! ./_listCacheClear */ "./node_modules/lodash/_listCacheClear.js"), - listCacheDelete = __webpack_require__(/*! ./_listCacheDelete */ "./node_modules/lodash/_listCacheDelete.js"), - listCacheGet = __webpack_require__(/*! ./_listCacheGet */ "./node_modules/lodash/_listCacheGet.js"), - listCacheHas = __webpack_require__(/*! ./_listCacheHas */ "./node_modules/lodash/_listCacheHas.js"), - listCacheSet = __webpack_require__(/*! ./_listCacheSet */ "./node_modules/lodash/_listCacheSet.js"); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/propertyOf.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/propertyOf.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3451849__) => { -/** - * Creates an list cache object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ -function ListCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; +"use strict"; +__nested_webpack_require_3451849__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3451849__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ propertyOf) +/* harmony export */ }); +/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3451849__(/*! ./noop.js */ "./build/cht-core-4-6/node_modules/underscore/modules/noop.js"); +/* harmony import */ var _get_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3451849__(/*! ./get.js */ "./build/cht-core-4-6/node_modules/underscore/modules/get.js"); - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } -} -// Add methods to `ListCache`. -ListCache.prototype.clear = listCacheClear; -ListCache.prototype['delete'] = listCacheDelete; -ListCache.prototype.get = listCacheGet; -ListCache.prototype.has = listCacheHas; -ListCache.prototype.set = listCacheSet; -module.exports = ListCache; +// Generates a function for a given object that returns a given property. +function propertyOf(obj) { + if (obj == null) return _noop_js__WEBPACK_IMPORTED_MODULE_0__.default; + return function(path) { + return (0,_get_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj, path); + }; +} /***/ }), -/***/ "./node_modules/lodash/_Map.js": -/*!*************************************!*\ - !*** ./node_modules/lodash/_Map.js ***! - \*************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"), - root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js"); - -/* Built-in method references that are verified to be native. */ -var Map = getNative(root, 'Map'); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/random.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/random.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3453083__) => { -module.exports = Map; +"use strict"; +__nested_webpack_require_3453083__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3453083__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ random) +/* harmony export */ }); +// Return a random integer between `min` and `max` (inclusive). +function random(min, max) { + if (max == null) { + max = min; + min = 0; + } + return min + Math.floor(Math.random() * (max - min + 1)); +} /***/ }), -/***/ "./node_modules/lodash/_MapCache.js": -/*!******************************************!*\ - !*** ./node_modules/lodash/_MapCache.js ***! - \******************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var mapCacheClear = __webpack_require__(/*! ./_mapCacheClear */ "./node_modules/lodash/_mapCacheClear.js"), - mapCacheDelete = __webpack_require__(/*! ./_mapCacheDelete */ "./node_modules/lodash/_mapCacheDelete.js"), - mapCacheGet = __webpack_require__(/*! ./_mapCacheGet */ "./node_modules/lodash/_mapCacheGet.js"), - mapCacheHas = __webpack_require__(/*! ./_mapCacheHas */ "./node_modules/lodash/_mapCacheHas.js"), - mapCacheSet = __webpack_require__(/*! ./_mapCacheSet */ "./node_modules/lodash/_mapCacheSet.js"); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/range.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/range.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3453903__) => { -/** - * Creates a map cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ -function MapCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; +"use strict"; +__nested_webpack_require_3453903__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3453903__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ range) +/* harmony export */ }); +// Generate an integer Array containing an arithmetic progression. A port of +// the native Python `range()` function. See +// [the Python documentation](https://docs.python.org/library/functions.html#range). +function range(start, stop, step) { + if (stop == null) { + stop = start || 0; + start = 0; + } + if (!step) { + step = stop < start ? -1 : 1; + } - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); + var length = Math.max(Math.ceil((stop - start) / step), 0); + var range = Array(length); + + for (var idx = 0; idx < length; idx++, start += step) { + range[idx] = start; } + + return range; } -// Add methods to `MapCache`. -MapCache.prototype.clear = mapCacheClear; -MapCache.prototype['delete'] = mapCacheDelete; -MapCache.prototype.get = mapCacheGet; -MapCache.prototype.has = mapCacheHas; -MapCache.prototype.set = mapCacheSet; -module.exports = MapCache; +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/reduce.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/reduce.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3455077__) => { + +"use strict"; +__nested_webpack_require_3455077__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3455077__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createReduce_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3455077__(/*! ./_createReduce.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createReduce.js"); + + +// **Reduce** builds up a single result from a list of values, aka `inject`, +// or `foldl`. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createReduce_js__WEBPACK_IMPORTED_MODULE_0__.default)(1)); /***/ }), -/***/ "./node_modules/lodash/_Set.js": -/*!*************************************!*\ - !*** ./node_modules/lodash/_Set.js ***! - \*************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/reduceRight.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/reduceRight.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3456135__) => { -var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"), - root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js"); +"use strict"; +__nested_webpack_require_3456135__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3456135__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createReduce_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3456135__(/*! ./_createReduce.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createReduce.js"); -/* Built-in method references that are verified to be native. */ -var Set = getNative(root, 'Set'); -module.exports = Set; +// The right-associative version of reduce, also known as `foldr`. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createReduce_js__WEBPACK_IMPORTED_MODULE_0__.default)(-1)); /***/ }), -/***/ "./node_modules/lodash/_SetCache.js": -/*!******************************************!*\ - !*** ./node_modules/lodash/_SetCache.js ***! - \******************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/reject.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/reject.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3457149__) => { -var MapCache = __webpack_require__(/*! ./_MapCache */ "./node_modules/lodash/_MapCache.js"), - setCacheAdd = __webpack_require__(/*! ./_setCacheAdd */ "./node_modules/lodash/_setCacheAdd.js"), - setCacheHas = __webpack_require__(/*! ./_setCacheHas */ "./node_modules/lodash/_setCacheHas.js"); +"use strict"; +__nested_webpack_require_3457149__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3457149__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ reject) +/* harmony export */ }); +/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3457149__(/*! ./filter.js */ "./build/cht-core-4-6/node_modules/underscore/modules/filter.js"); +/* harmony import */ var _negate_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3457149__(/*! ./negate.js */ "./build/cht-core-4-6/node_modules/underscore/modules/negate.js"); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3457149__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); -/** - * - * Creates an array cache object to store unique values. - * - * @private - * @constructor - * @param {Array} [values] The values to cache. - */ -function SetCache(values) { - var index = -1, - length = values == null ? 0 : values.length; - this.__data__ = new MapCache; - while (++index < length) { - this.add(values[index]); - } -} -// Add methods to `SetCache`. -SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; -SetCache.prototype.has = setCacheHas; -module.exports = SetCache; +// Return all the elements for which a truth test fails. +function reject(obj, predicate, context) { + return (0,_filter_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, (0,_negate_js__WEBPACK_IMPORTED_MODULE_1__.default)((0,_cb_js__WEBPACK_IMPORTED_MODULE_2__.default)(predicate)), context); +} /***/ }), -/***/ "./node_modules/lodash/_Symbol.js": -/*!****************************************!*\ - !*** ./node_modules/lodash/_Symbol.js ***! - \****************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/rest.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/rest.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3458562__) => { -var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js"); +"use strict"; +__nested_webpack_require_3458562__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3458562__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ rest) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3458562__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); -/** Built-in value references. */ -var Symbol = root.Symbol; -module.exports = Symbol; +// Returns everything but the first entry of the `array`. Especially useful on +// the `arguments` object. Passing an **n** will return the rest N values in the +// `array`. +function rest(array, n, guard) { + return _setup_js__WEBPACK_IMPORTED_MODULE_0__.slice.call(array, n == null || guard ? 1 : n); +} /***/ }), -/***/ "./node_modules/lodash/_arrayIncludes.js": -/*!***********************************************!*\ - !*** ./node_modules/lodash/_arrayIncludes.js ***! - \***********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var baseIndexOf = __webpack_require__(/*! ./_baseIndexOf */ "./node_modules/lodash/_baseIndexOf.js"); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3459681__) => { -/** - * A specialized version of `_.includes` for arrays without support for - * specifying an index to search from. - * - * @private - * @param {Array} [array] The array to inspect. - * @param {*} target The value to search for. - * @returns {boolean} Returns `true` if `target` is found, else `false`. - */ -function arrayIncludes(array, value) { - var length = array == null ? 0 : array.length; - return !!length && baseIndexOf(array, value, 0) > -1; +"use strict"; +__nested_webpack_require_3459681__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3459681__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ restArguments) +/* harmony export */ }); +// Some functions take a variable number of arguments, or a few expected +// arguments at the beginning and then a variable number of values to operate +// on. This helper accumulates all remaining arguments past the function’s +// argument length (or an explicit `startIndex`), into an array that becomes +// the last argument. Similar to ES6’s "rest parameter". +function restArguments(func, startIndex) { + startIndex = startIndex == null ? func.length - 1 : +startIndex; + return function() { + var length = Math.max(arguments.length - startIndex, 0), + rest = Array(length), + index = 0; + for (; index < length; index++) { + rest[index] = arguments[index + startIndex]; + } + switch (startIndex) { + case 0: return func.call(this, rest); + case 1: return func.call(this, arguments[0], rest); + case 2: return func.call(this, arguments[0], arguments[1], rest); + } + var args = Array(startIndex + 1); + for (index = 0; index < startIndex; index++) { + args[index] = arguments[index]; + } + args[startIndex] = rest; + return func.apply(this, args); + }; } -module.exports = arrayIncludes; - /***/ }), -/***/ "./node_modules/lodash/_arrayIncludesWith.js": -/*!***************************************************!*\ - !*** ./node_modules/lodash/_arrayIncludesWith.js ***! - \***************************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/result.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/result.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3461412__) => { -/** - * This function is like `arrayIncludes` except that it accepts a comparator. - * - * @private - * @param {Array} [array] The array to inspect. - * @param {*} target The value to search for. - * @param {Function} comparator The comparator invoked per element. - * @returns {boolean} Returns `true` if `target` is found, else `false`. - */ -function arrayIncludesWith(array, value, comparator) { - var index = -1, - length = array == null ? 0 : array.length; +"use strict"; +__nested_webpack_require_3461412__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3461412__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ result) +/* harmony export */ }); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3461412__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3461412__(/*! ./_toPath.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js"); - while (++index < length) { - if (comparator(value, array[index])) { - return true; + + +// Traverses the children of `obj` along `path`. If a child is a function, it +// is invoked with its parent as context. Returns the value of the final +// child, or `fallback` if any child is undefined. +function result(obj, path, fallback) { + path = (0,_toPath_js__WEBPACK_IMPORTED_MODULE_1__.default)(path); + var length = path.length; + if (!length) { + return (0,_isFunction_js__WEBPACK_IMPORTED_MODULE_0__.default)(fallback) ? fallback.call(obj) : fallback; + } + for (var i = 0; i < length; i++) { + var prop = obj == null ? void 0 : obj[path[i]]; + if (prop === void 0) { + prop = fallback; + i = length; // Ensure we don't continue iterating. } + obj = (0,_isFunction_js__WEBPACK_IMPORTED_MODULE_0__.default)(prop) ? prop.call(obj) : prop; } - return false; + return obj; } -module.exports = arrayIncludesWith; - /***/ }), -/***/ "./node_modules/lodash/_assocIndexOf.js": -/*!**********************************************!*\ - !*** ./node_modules/lodash/_assocIndexOf.js ***! - \**********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/sample.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/sample.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3463179__) => { -var eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js"); +"use strict"; +__nested_webpack_require_3463179__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3463179__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ sample) +/* harmony export */ }); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3463179__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3463179__(/*! ./values.js */ "./build/cht-core-4-6/node_modules/underscore/modules/values.js"); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3463179__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); +/* harmony import */ var _random_js__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_3463179__(/*! ./random.js */ "./build/cht-core-4-6/node_modules/underscore/modules/random.js"); +/* harmony import */ var _toArray_js__WEBPACK_IMPORTED_MODULE_4__ = __nested_webpack_require_3463179__(/*! ./toArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/toArray.js"); -/** - * Gets the index at which the `key` is found in `array` of key-value pairs. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} key The key to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function assocIndexOf(array, key) { - var length = array.length; - while (length--) { - if (eq(array[length][0], key)) { - return length; - } + + + + + +// Sample **n** random values from a collection using the modern version of the +// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle). +// If **n** is not specified, returns a single random element. +// The internal `guard` argument allows it to work with `_.map`. +function sample(obj, n, guard) { + if (n == null || guard) { + if (!(0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj)) obj = (0,_values_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj); + return obj[(0,_random_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj.length - 1)]; } - return -1; + var sample = (0,_toArray_js__WEBPACK_IMPORTED_MODULE_4__.default)(obj); + var length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_2__.default)(sample); + n = Math.max(Math.min(n, length), 0); + var last = length - 1; + for (var index = 0; index < n; index++) { + var rand = (0,_random_js__WEBPACK_IMPORTED_MODULE_3__.default)(index, last); + var temp = sample[index]; + sample[index] = sample[rand]; + sample[rand] = temp; + } + return sample.slice(0, n); } -module.exports = assocIndexOf; - /***/ }), -/***/ "./node_modules/lodash/_baseFindIndex.js": -/*!***********************************************!*\ - !*** ./node_modules/lodash/_baseFindIndex.js ***! - \***********************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/shuffle.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/shuffle.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3465742__) => { -/** - * The base implementation of `_.findIndex` and `_.findLastIndex` without - * support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} predicate The function invoked per iteration. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function baseFindIndex(array, predicate, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 1 : -1); +"use strict"; +__nested_webpack_require_3465742__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3465742__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ shuffle) +/* harmony export */ }); +/* harmony import */ var _sample_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3465742__(/*! ./sample.js */ "./build/cht-core-4-6/node_modules/underscore/modules/sample.js"); - while ((fromRight ? index-- : ++index < length)) { - if (predicate(array[index], index, array)) { - return index; - } - } - return -1; -} -module.exports = baseFindIndex; +// Shuffle a collection. +function shuffle(obj) { + return (0,_sample_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, Infinity); +} /***/ }), -/***/ "./node_modules/lodash/_baseGetTag.js": -/*!********************************************!*\ - !*** ./node_modules/lodash/_baseGetTag.js ***! - \********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/size.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/size.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3466655__) => { -var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js"), - getRawTag = __webpack_require__(/*! ./_getRawTag */ "./node_modules/lodash/_getRawTag.js"), - objectToString = __webpack_require__(/*! ./_objectToString */ "./node_modules/lodash/_objectToString.js"); +"use strict"; +__nested_webpack_require_3466655__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3466655__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ size) +/* harmony export */ }); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3466655__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3466655__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); -/** `Object#toString` result references. */ -var nullTag = '[object Null]', - undefinedTag = '[object Undefined]'; -/** Built-in value references. */ -var symToStringTag = Symbol ? Symbol.toStringTag : undefined; -/** - * The base implementation of `getTag` without fallbacks for buggy environments. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ -function baseGetTag(value) { - if (value == null) { - return value === undefined ? undefinedTag : nullTag; - } - return (symToStringTag && symToStringTag in Object(value)) - ? getRawTag(value) - : objectToString(value); +// Return the number of elements in a collection. +function size(obj) { + if (obj == null) return 0; + return (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj) ? obj.length : (0,_keys_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj).length; } -module.exports = baseGetTag; - /***/ }), -/***/ "./node_modules/lodash/_baseIndexOf.js": -/*!*********************************************!*\ - !*** ./node_modules/lodash/_baseIndexOf.js ***! - \*********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/some.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/some.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3467873__) => { -var baseFindIndex = __webpack_require__(/*! ./_baseFindIndex */ "./node_modules/lodash/_baseFindIndex.js"), - baseIsNaN = __webpack_require__(/*! ./_baseIsNaN */ "./node_modules/lodash/_baseIsNaN.js"), - strictIndexOf = __webpack_require__(/*! ./_strictIndexOf */ "./node_modules/lodash/_strictIndexOf.js"); +"use strict"; +__nested_webpack_require_3467873__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3467873__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ some) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3467873__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3467873__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3467873__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); -/** - * The base implementation of `_.indexOf` without `fromIndex` bounds checks. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function baseIndexOf(array, value, fromIndex) { - return value === value - ? strictIndexOf(array, value, fromIndex) - : baseFindIndex(array, baseIsNaN, fromIndex); -} -module.exports = baseIndexOf; -/***/ }), +// Determine if at least one element in the object passes a truth test. +function some(obj, predicate, context) { + predicate = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(predicate, context); + var _keys = !(0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) && (0,_keys_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj), + length = (_keys || obj).length; + for (var index = 0; index < length; index++) { + var currentKey = _keys ? _keys[index] : index; + if (predicate(obj[currentKey], currentKey, obj)) return true; + } + return false; +} -/***/ "./node_modules/lodash/_baseIsNaN.js": -/*!*******************************************!*\ - !*** ./node_modules/lodash/_baseIsNaN.js ***! - \*******************************************/ -/***/ ((module) => { -/** - * The base implementation of `_.isNaN` without support for number objects. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. - */ -function baseIsNaN(value) { - return value !== value; -} +/***/ }), -module.exports = baseIsNaN; +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/sortBy.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/sortBy.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3469570__) => { +"use strict"; +__nested_webpack_require_3469570__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3469570__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ sortBy) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3469570__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3469570__(/*! ./pluck.js */ "./build/cht-core-4-6/node_modules/underscore/modules/pluck.js"); +/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3469570__(/*! ./map.js */ "./build/cht-core-4-6/node_modules/underscore/modules/map.js"); -/***/ }), -/***/ "./node_modules/lodash/_baseIsNative.js": -/*!**********************************************!*\ - !*** ./node_modules/lodash/_baseIsNative.js ***! - \**********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -var isFunction = __webpack_require__(/*! ./isFunction */ "./node_modules/lodash/isFunction.js"), - isMasked = __webpack_require__(/*! ./_isMasked */ "./node_modules/lodash/_isMasked.js"), - isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"), - toSource = __webpack_require__(/*! ./_toSource */ "./node_modules/lodash/_toSource.js"); -/** - * Used to match `RegExp` - * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). - */ -var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; +// Sort the object's values by a criterion produced by an iteratee. +function sortBy(obj, iteratee, context) { + var index = 0; + iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context); + return (0,_pluck_js__WEBPACK_IMPORTED_MODULE_1__.default)((0,_map_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj, function(value, key, list) { + return { + value: value, + index: index++, + criteria: iteratee(value, key, list) + }; + }).sort(function(left, right) { + var a = left.criteria; + var b = right.criteria; + if (a !== b) { + if (a > b || a === void 0) return 1; + if (a < b || b === void 0) return -1; + } + return left.index - right.index; + }), 'value'); +} -/** Used to detect host constructors (Safari). */ -var reIsHostCtor = /^\[object .+?Constructor\]$/; -/** Used for built-in method references. */ -var funcProto = Function.prototype, - objectProto = Object.prototype; +/***/ }), -/** Used to resolve the decompiled source of functions. */ -var funcToString = funcProto.toString; +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/sortedIndex.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/sortedIndex.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3471420__) => { -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; +"use strict"; +__nested_webpack_require_3471420__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3471420__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ sortedIndex) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3471420__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3471420__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); -/** Used to detect if a method is native. */ -var reIsNative = RegExp('^' + - funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' -); -/** - * The base implementation of `_.isNative` without bad shim checks. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. - */ -function baseIsNative(value) { - if (!isObject(value) || isMasked(value)) { - return false; + +// Use a comparator function to figure out the smallest index at which +// an object should be inserted so as to maintain order. Uses binary search. +function sortedIndex(array, obj, iteratee, context) { + iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context, 1); + var value = iteratee(obj); + var low = 0, high = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_1__.default)(array); + while (low < high) { + var mid = Math.floor((low + high) / 2); + if (iteratee(array[mid]) < value) low = mid + 1; else high = mid; } - var pattern = isFunction(value) ? reIsNative : reIsHostCtor; - return pattern.test(toSource(value)); + return low; } -module.exports = baseIsNative; + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/tap.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/tap.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3472937__) => { + +"use strict"; +__nested_webpack_require_3472937__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3472937__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ tap) +/* harmony export */ }); +// Invokes `interceptor` with the `obj` and then returns `obj`. +// The primary purpose of this method is to "tap into" a method chain, in +// order to perform operations on intermediate results within the chain. +function tap(obj, interceptor) { + interceptor(obj); + return obj; +} /***/ }), -/***/ "./node_modules/lodash/_baseUniq.js": -/*!******************************************!*\ - !*** ./node_modules/lodash/_baseUniq.js ***! - \******************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/template.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/template.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3473839__) => { -var SetCache = __webpack_require__(/*! ./_SetCache */ "./node_modules/lodash/_SetCache.js"), - arrayIncludes = __webpack_require__(/*! ./_arrayIncludes */ "./node_modules/lodash/_arrayIncludes.js"), - arrayIncludesWith = __webpack_require__(/*! ./_arrayIncludesWith */ "./node_modules/lodash/_arrayIncludesWith.js"), - cacheHas = __webpack_require__(/*! ./_cacheHas */ "./node_modules/lodash/_cacheHas.js"), - createSet = __webpack_require__(/*! ./_createSet */ "./node_modules/lodash/_createSet.js"), - setToArray = __webpack_require__(/*! ./_setToArray */ "./node_modules/lodash/_setToArray.js"); +"use strict"; +__nested_webpack_require_3473839__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3473839__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ template) +/* harmony export */ }); +/* harmony import */ var _defaults_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3473839__(/*! ./defaults.js */ "./build/cht-core-4-6/node_modules/underscore/modules/defaults.js"); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3473839__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); +/* harmony import */ var _templateSettings_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3473839__(/*! ./templateSettings.js */ "./build/cht-core-4-6/node_modules/underscore/modules/templateSettings.js"); -/** Used as the size to enable large array optimizations. */ -var LARGE_ARRAY_SIZE = 200; -/** - * The base implementation of `_.uniqBy` without support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new duplicate free array. - */ -function baseUniq(array, iteratee, comparator) { - var index = -1, - includes = arrayIncludes, - length = array.length, - isCommon = true, - result = [], - seen = result; - if (comparator) { - isCommon = false; - includes = arrayIncludesWith; - } - else if (length >= LARGE_ARRAY_SIZE) { - var set = iteratee ? null : createSet(array); - if (set) { - return setToArray(set); - } - isCommon = false; - includes = cacheHas; - seen = new SetCache; - } - else { - seen = iteratee ? [] : result; - } - outer: - while (++index < length) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - value = (comparator || value !== 0) ? value : 0; - if (isCommon && computed === computed) { - var seenIndex = seen.length; - while (seenIndex--) { - if (seen[seenIndex] === computed) { - continue outer; - } - } - if (iteratee) { - seen.push(computed); - } - result.push(value); - } - else if (!includes(seen, computed, comparator)) { - if (seen !== result) { - seen.push(computed); - } - result.push(value); - } - } - return result; +// When customizing `_.templateSettings`, if you don't want to define an +// interpolation, evaluation or escaping regex, we need one that is +// guaranteed not to match. +var noMatch = /(.)^/; + +// Certain characters need to be escaped so that they can be put into a +// string literal. +var escapes = { + "'": "'", + '\\': '\\', + '\r': 'r', + '\n': 'n', + '\u2028': 'u2028', + '\u2029': 'u2029' +}; + +var escapeRegExp = /\\|'|\r|\n|\u2028|\u2029/g; + +function escapeChar(match) { + return '\\' + escapes[match]; } -module.exports = baseUniq; +// In order to prevent third-party code injection through +// `_.templateSettings.variable`, we test it against the following regular +// expression. It is intentionally a bit more liberal than just matching valid +// identifiers, but still prevents possible loopholes through defaults or +// destructuring assignment. +var bareIdentifier = /^\s*(\w|\$)+\s*$/; +// JavaScript micro-templating, similar to John Resig's implementation. +// Underscore templating handles arbitrary delimiters, preserves whitespace, +// and correctly escapes quotes within interpolated code. +// NB: `oldSettings` only exists for backwards compatibility. +function template(text, settings, oldSettings) { + if (!settings && oldSettings) settings = oldSettings; + settings = (0,_defaults_js__WEBPACK_IMPORTED_MODULE_0__.default)({}, settings, _underscore_js__WEBPACK_IMPORTED_MODULE_1__.default.templateSettings); -/***/ }), + // Combine delimiters into one regular expression via alternation. + var matcher = RegExp([ + (settings.escape || noMatch).source, + (settings.interpolate || noMatch).source, + (settings.evaluate || noMatch).source + ].join('|') + '|$', 'g'); -/***/ "./node_modules/lodash/_cacheHas.js": -/*!******************************************!*\ - !*** ./node_modules/lodash/_cacheHas.js ***! - \******************************************/ -/***/ ((module) => { + // Compile the template source, escaping string literals appropriately. + var index = 0; + var source = "__p+='"; + text.replace(matcher, function(match, escape, interpolate, evaluate, offset) { + source += text.slice(index, offset).replace(escapeRegExp, escapeChar); + index = offset + match.length; -/** - * Checks if a `cache` value for `key` exists. - * - * @private - * @param {Object} cache The cache to query. - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function cacheHas(cache, key) { - return cache.has(key); -} + if (escape) { + source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; + } else if (interpolate) { + source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'"; + } else if (evaluate) { + source += "';\n" + evaluate + "\n__p+='"; + } -module.exports = cacheHas; + // Adobe VMs need the match returned to produce the correct offset. + return match; + }); + source += "';\n"; + var argument = settings.variable; + if (argument) { + // Insure against third-party code injection. (CVE-2021-23358) + if (!bareIdentifier.test(argument)) throw new Error( + 'variable is not a bare identifier: ' + argument + ); + } else { + // If a variable is not specified, place data values in local scope. + source = 'with(obj||{}){\n' + source + '}\n'; + argument = 'obj'; + } -/***/ }), + source = "var __t,__p='',__j=Array.prototype.join," + + "print=function(){__p+=__j.call(arguments,'');};\n" + + source + 'return __p;\n'; -/***/ "./node_modules/lodash/_coreJsData.js": -/*!********************************************!*\ - !*** ./node_modules/lodash/_coreJsData.js ***! - \********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + var render; + try { + render = new Function(argument, '_', source); + } catch (e) { + e.source = source; + throw e; + } -var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js"); + var template = function(data) { + return render.call(this, data, _underscore_js__WEBPACK_IMPORTED_MODULE_1__.default); + }; -/** Used to detect overreaching core-js shims. */ -var coreJsData = root['__core-js_shared__']; + // Provide the compiled source as a convenience for precompilation. + template.source = 'function(' + argument + '){\n' + source + '}'; -module.exports = coreJsData; + return template; +} /***/ }), -/***/ "./node_modules/lodash/_createSet.js": -/*!*******************************************!*\ - !*** ./node_modules/lodash/_createSet.js ***! - \*******************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var Set = __webpack_require__(/*! ./_Set */ "./node_modules/lodash/_Set.js"), - noop = __webpack_require__(/*! ./noop */ "./node_modules/lodash/noop.js"), - setToArray = __webpack_require__(/*! ./_setToArray */ "./node_modules/lodash/_setToArray.js"); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/templateSettings.js": +/*!********************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/templateSettings.js ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3478378__) => { -/** Used as references for various `Number` constants. */ -var INFINITY = 1 / 0; +"use strict"; +__nested_webpack_require_3478378__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3478378__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3478378__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); -/** - * Creates a set object of `values`. - * - * @private - * @param {Array} values The values to add to the set. - * @returns {Object} Returns the new set. - */ -var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) { - return new Set(values); -}; -module.exports = createSet; +// By default, Underscore uses ERB-style template delimiters. Change the +// following template settings to use alternative delimiters. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.templateSettings = { + evaluate: /<%([\s\S]+?)%>/g, + interpolate: /<%=([\s\S]+?)%>/g, + escape: /<%-([\s\S]+?)%>/g +}); /***/ }), -/***/ "./node_modules/lodash/_freeGlobal.js": -/*!********************************************!*\ - !*** ./node_modules/lodash/_freeGlobal.js ***! - \********************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/throttle.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/throttle.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3479568__) => { -/** Detect free variable `global` from Node.js. */ -var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; +"use strict"; +__nested_webpack_require_3479568__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3479568__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ throttle) +/* harmony export */ }); +/* harmony import */ var _now_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3479568__(/*! ./now.js */ "./build/cht-core-4-6/node_modules/underscore/modules/now.js"); -module.exports = freeGlobal; +// Returns a function, that, when invoked, will only be triggered at most once +// during a given window of time. Normally, the throttled function will run +// as much as it can, without ever going more than once per `wait` duration; +// but if you'd like to disable the execution on the leading edge, pass +// `{leading: false}`. To disable execution on the trailing edge, ditto. +function throttle(func, wait, options) { + var timeout, context, args, result; + var previous = 0; + if (!options) options = {}; -/***/ }), + var later = function() { + previous = options.leading === false ? 0 : (0,_now_js__WEBPACK_IMPORTED_MODULE_0__.default)(); + timeout = null; + result = func.apply(context, args); + if (!timeout) context = args = null; + }; -/***/ "./node_modules/lodash/_getMapData.js": -/*!********************************************!*\ - !*** ./node_modules/lodash/_getMapData.js ***! - \********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + var throttled = function() { + var _now = (0,_now_js__WEBPACK_IMPORTED_MODULE_0__.default)(); + if (!previous && options.leading === false) previous = _now; + var remaining = wait - (_now - previous); + context = this; + args = arguments; + if (remaining <= 0 || remaining > wait) { + if (timeout) { + clearTimeout(timeout); + timeout = null; + } + previous = _now; + result = func.apply(context, args); + if (!timeout) context = args = null; + } else if (!timeout && options.trailing !== false) { + timeout = setTimeout(later, remaining); + } + return result; + }; -var isKeyable = __webpack_require__(/*! ./_isKeyable */ "./node_modules/lodash/_isKeyable.js"); + throttled.cancel = function() { + clearTimeout(timeout); + previous = 0; + timeout = context = args = null; + }; -/** - * Gets the data for `map`. - * - * @private - * @param {Object} map The map to query. - * @param {string} key The reference key. - * @returns {*} Returns the map data. - */ -function getMapData(map, key) { - var data = map.__data__; - return isKeyable(key) - ? data[typeof key == 'string' ? 'string' : 'hash'] - : data.map; + return throttled; } -module.exports = getMapData; - /***/ }), -/***/ "./node_modules/lodash/_getNative.js": -/*!*******************************************!*\ - !*** ./node_modules/lodash/_getNative.js ***! - \*******************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/times.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/times.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3481856__) => { -var baseIsNative = __webpack_require__(/*! ./_baseIsNative */ "./node_modules/lodash/_baseIsNative.js"), - getValue = __webpack_require__(/*! ./_getValue */ "./node_modules/lodash/_getValue.js"); +"use strict"; +__nested_webpack_require_3481856__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3481856__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ times) +/* harmony export */ }); +/* harmony import */ var _optimizeCb_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3481856__(/*! ./_optimizeCb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js"); -/** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ -function getNative(object, key) { - var value = getValue(object, key); - return baseIsNative(value) ? value : undefined; -} -module.exports = getNative; +// Run a function **n** times. +function times(n, iteratee, context) { + var accum = Array(Math.max(0, n)); + iteratee = (0,_optimizeCb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context, 1); + for (var i = 0; i < n; i++) accum[i] = iteratee(i); + return accum; +} /***/ }), -/***/ "./node_modules/lodash/_getRawTag.js": -/*!*******************************************!*\ - !*** ./node_modules/lodash/_getRawTag.js ***! - \*******************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/toArray.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/toArray.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3482936__) => { -var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js"); +"use strict"; +__nested_webpack_require_3482936__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3482936__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toArray) +/* harmony export */ }); +/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3482936__(/*! ./isArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArray.js"); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3482936__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _isString_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3482936__(/*! ./isString.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isString.js"); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_3482936__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_4__ = __nested_webpack_require_3482936__(/*! ./map.js */ "./build/cht-core-4-6/node_modules/underscore/modules/map.js"); +/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_5__ = __nested_webpack_require_3482936__(/*! ./identity.js */ "./build/cht-core-4-6/node_modules/underscore/modules/identity.js"); +/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_6__ = __nested_webpack_require_3482936__(/*! ./values.js */ "./build/cht-core-4-6/node_modules/underscore/modules/values.js"); -/** Used for built-in method references. */ -var objectProto = Object.prototype; -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ -var nativeObjectToString = objectProto.toString; -/** Built-in value references. */ -var symToStringTag = Symbol ? Symbol.toStringTag : undefined; -/** - * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the raw `toStringTag`. - */ -function getRawTag(value) { - var isOwn = hasOwnProperty.call(value, symToStringTag), - tag = value[symToStringTag]; - try { - value[symToStringTag] = undefined; - var unmasked = true; - } catch (e) {} - var result = nativeObjectToString.call(value); - if (unmasked) { - if (isOwn) { - value[symToStringTag] = tag; - } else { - delete value[symToStringTag]; - } + +// Safely create a real, live array from anything iterable. +var reStrSymbol = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g; +function toArray(obj) { + if (!obj) return []; + if ((0,_isArray_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj)) return _setup_js__WEBPACK_IMPORTED_MODULE_1__.slice.call(obj); + if ((0,_isString_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj)) { + // Keep surrogate pair characters together. + return obj.match(reStrSymbol); } - return result; + if ((0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj)) return (0,_map_js__WEBPACK_IMPORTED_MODULE_4__.default)(obj, _identity_js__WEBPACK_IMPORTED_MODULE_5__.default); + return (0,_values_js__WEBPACK_IMPORTED_MODULE_6__.default)(obj); } -module.exports = getRawTag; - /***/ }), -/***/ "./node_modules/lodash/_getValue.js": -/*!******************************************!*\ - !*** ./node_modules/lodash/_getValue.js ***! - \******************************************/ -/***/ ((module) => { - -/** - * Gets the value at `key` of `object`. - * - * @private - * @param {Object} [object] The object to query. - * @param {string} key The key of the property to get. - * @returns {*} Returns the property value. - */ -function getValue(object, key) { - return object == null ? undefined : object[key]; -} - -module.exports = getValue; - +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/toPath.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/toPath.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3485522__) => { -/***/ }), +"use strict"; +__nested_webpack_require_3485522__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3485522__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toPath) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3485522__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); +/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3485522__(/*! ./isArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArray.js"); -/***/ "./node_modules/lodash/_hashClear.js": -/*!*******************************************!*\ - !*** ./node_modules/lodash/_hashClear.js ***! - \*******************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js"); -/** - * Removes all key-value entries from the hash. - * - * @private - * @name clear - * @memberOf Hash - */ -function hashClear() { - this.__data__ = nativeCreate ? nativeCreate(null) : {}; - this.size = 0; +// Normalize a (deep) property `path` to array. +// Like `_.iteratee`, this function can be customized. +function toPath(path) { + return (0,_isArray_js__WEBPACK_IMPORTED_MODULE_1__.default)(path) ? path : [path]; } - -module.exports = hashClear; +_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.toPath = toPath; /***/ }), -/***/ "./node_modules/lodash/_hashDelete.js": -/*!********************************************!*\ - !*** ./node_modules/lodash/_hashDelete.js ***! - \********************************************/ -/***/ ((module) => { - -/** - * Removes `key` and its value from the hash. - * - * @private - * @name delete - * @memberOf Hash - * @param {Object} hash The hash to modify. - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function hashDelete(key) { - var result = this.has(key) && delete this.__data__[key]; - this.size -= result ? 1 : 0; - return result; -} - -module.exports = hashDelete; - +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/underscore-array-methods.js": +/*!****************************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/underscore-array-methods.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3486858__) => { -/***/ }), +"use strict"; +__nested_webpack_require_3486858__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3486858__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3486858__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); +/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3486858__(/*! ./each.js */ "./build/cht-core-4-6/node_modules/underscore/modules/each.js"); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3486858__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _chainResult_js__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_3486858__(/*! ./_chainResult.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_chainResult.js"); -/***/ "./node_modules/lodash/_hashGet.js": -/*!*****************************************!*\ - !*** ./node_modules/lodash/_hashGet.js ***! - \*****************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js"); -/** Used to stand-in for `undefined` hash values. */ -var HASH_UNDEFINED = '__lodash_hash_undefined__'; -/** Used for built-in method references. */ -var objectProto = Object.prototype; -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; +// Add all mutator `Array` functions to the wrapper. +(0,_each_js__WEBPACK_IMPORTED_MODULE_1__.default)(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) { + var method = _setup_js__WEBPACK_IMPORTED_MODULE_2__.ArrayProto[name]; + _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.prototype[name] = function() { + var obj = this._wrapped; + if (obj != null) { + method.apply(obj, arguments); + if ((name === 'shift' || name === 'splice') && obj.length === 0) { + delete obj[0]; + } + } + return (0,_chainResult_js__WEBPACK_IMPORTED_MODULE_3__.default)(this, obj); + }; +}); -/** - * Gets the hash value for `key`. - * - * @private - * @name get - * @memberOf Hash - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function hashGet(key) { - var data = this.__data__; - if (nativeCreate) { - var result = data[key]; - return result === HASH_UNDEFINED ? undefined : result; - } - return hasOwnProperty.call(data, key) ? data[key] : undefined; -} +// Add all accessor `Array` functions to the wrapper. +(0,_each_js__WEBPACK_IMPORTED_MODULE_1__.default)(['concat', 'join', 'slice'], function(name) { + var method = _setup_js__WEBPACK_IMPORTED_MODULE_2__.ArrayProto[name]; + _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.prototype[name] = function() { + var obj = this._wrapped; + if (obj != null) obj = method.apply(obj, arguments); + return (0,_chainResult_js__WEBPACK_IMPORTED_MODULE_3__.default)(this, obj); + }; +}); -module.exports = hashGet; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default); /***/ }), -/***/ "./node_modules/lodash/_hashHas.js": -/*!*****************************************!*\ - !*** ./node_modules/lodash/_hashHas.js ***! - \*****************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js"); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/underscore.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3489449__) => { -/** Used for built-in method references. */ -var objectProto = Object.prototype; +"use strict"; +__nested_webpack_require_3489449__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3489449__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3489449__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; -/** - * Checks if a hash value for `key` exists. - * - * @private - * @name has - * @memberOf Hash - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function hashHas(key) { - var data = this.__data__; - return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); +// If Underscore is called as a function, it returns a wrapped object that can +// be used OO-style. This wrapper holds altered versions of all functions added +// through `_.mixin`. Wrapped objects may be chained. +function _(obj) { + if (obj instanceof _) return obj; + if (!(this instanceof _)) return new _(obj); + this._wrapped = obj; } -module.exports = hashHas; - +_.VERSION = _setup_js__WEBPACK_IMPORTED_MODULE_0__.VERSION; -/***/ }), - -/***/ "./node_modules/lodash/_hashSet.js": -/*!*****************************************!*\ - !*** ./node_modules/lodash/_hashSet.js ***! - \*****************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +// Extracts the result from a wrapped and chained object. +_.prototype.value = function() { + return this._wrapped; +}; -var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js"); +// Provide unwrapping proxies for some methods used in engine operations +// such as arithmetic and JSON stringification. +_.prototype.valueOf = _.prototype.toJSON = _.prototype.value; -/** Used to stand-in for `undefined` hash values. */ -var HASH_UNDEFINED = '__lodash_hash_undefined__'; +_.prototype.toString = function() { + return String(this._wrapped); +}; -/** - * Sets the hash `key` to `value`. - * - * @private - * @name set - * @memberOf Hash - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the hash instance. - */ -function hashSet(key, value) { - var data = this.__data__; - this.size += this.has(key) ? 0 : 1; - data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; - return this; -} -module.exports = hashSet; +/***/ }), +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/unescape.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/unescape.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3491018__) => { -/***/ }), +"use strict"; +__nested_webpack_require_3491018__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3491018__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createEscaper_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3491018__(/*! ./_createEscaper.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createEscaper.js"); +/* harmony import */ var _unescapeMap_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3491018__(/*! ./_unescapeMap.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_unescapeMap.js"); -/***/ "./node_modules/lodash/_isKeyable.js": -/*!*******************************************!*\ - !*** ./node_modules/lodash/_isKeyable.js ***! - \*******************************************/ -/***/ ((module) => { -/** - * Checks if `value` is suitable for use as unique object key. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is suitable, else `false`. - */ -function isKeyable(value) { - var type = typeof value; - return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') - ? (value !== '__proto__') - : (value === null); -} -module.exports = isKeyable; +// Function for unescaping strings from HTML interpolation. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createEscaper_js__WEBPACK_IMPORTED_MODULE_0__.default)(_unescapeMap_js__WEBPACK_IMPORTED_MODULE_1__.default)); /***/ }), -/***/ "./node_modules/lodash/_isMasked.js": -/*!******************************************!*\ - !*** ./node_modules/lodash/_isMasked.js ***! - \******************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/union.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/union.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3492266__) => { -var coreJsData = __webpack_require__(/*! ./_coreJsData */ "./node_modules/lodash/_coreJsData.js"); +"use strict"; +__nested_webpack_require_3492266__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3492266__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3492266__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _uniq_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3492266__(/*! ./uniq.js */ "./build/cht-core-4-6/node_modules/underscore/modules/uniq.js"); +/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3492266__(/*! ./_flatten.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js"); -/** Used to detect methods masquerading as native. */ -var maskSrcKey = (function() { - var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); - return uid ? ('Symbol(src)_1.' + uid) : ''; -}()); -/** - * Checks if `func` has its source masked. - * - * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` is masked, else `false`. - */ -function isMasked(func) { - return !!maskSrcKey && (maskSrcKey in func); -} -module.exports = isMasked; + +// Produce an array that contains the union: each distinct element from all of +// the passed-in arrays. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(arrays) { + return (0,_uniq_js__WEBPACK_IMPORTED_MODULE_1__.default)((0,_flatten_js__WEBPACK_IMPORTED_MODULE_2__.default)(arrays, true, true)); +})); /***/ }), -/***/ "./node_modules/lodash/_listCacheClear.js": -/*!************************************************!*\ - !*** ./node_modules/lodash/_listCacheClear.js ***! - \************************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/uniq.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/uniq.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3493810__) => { -/** - * Removes all key-value entries from the list cache. - * - * @private - * @name clear - * @memberOf ListCache - */ -function listCacheClear() { - this.__data__ = []; - this.size = 0; -} +"use strict"; +__nested_webpack_require_3493810__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3493810__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ uniq) +/* harmony export */ }); +/* harmony import */ var _isBoolean_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3493810__(/*! ./isBoolean.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isBoolean.js"); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3493810__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3493810__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); +/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_3493810__(/*! ./contains.js */ "./build/cht-core-4-6/node_modules/underscore/modules/contains.js"); -module.exports = listCacheClear; -/***/ }), -/***/ "./node_modules/lodash/_listCacheDelete.js": -/*!*************************************************!*\ - !*** ./node_modules/lodash/_listCacheDelete.js ***! - \*************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js"); +// Produce a duplicate-free version of the array. If the array has already +// been sorted, you have the option of using a faster algorithm. +// The faster algorithm will not work with an iteratee if the iteratee +// is not a one-to-one function, so providing an iteratee will disable +// the faster algorithm. +function uniq(array, isSorted, iteratee, context) { + if (!(0,_isBoolean_js__WEBPACK_IMPORTED_MODULE_0__.default)(isSorted)) { + context = iteratee; + iteratee = isSorted; + isSorted = false; + } + if (iteratee != null) iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_1__.default)(iteratee, context); + var result = []; + var seen = []; + for (var i = 0, length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_2__.default)(array); i < length; i++) { + var value = array[i], + computed = iteratee ? iteratee(value, i, array) : value; + if (isSorted && !iteratee) { + if (!i || seen !== computed) result.push(value); + seen = computed; + } else if (iteratee) { + if (!(0,_contains_js__WEBPACK_IMPORTED_MODULE_3__.default)(seen, computed)) { + seen.push(computed); + result.push(value); + } + } else if (!(0,_contains_js__WEBPACK_IMPORTED_MODULE_3__.default)(result, value)) { + result.push(value); + } + } + return result; +} -/** Used for built-in method references. */ -var arrayProto = Array.prototype; -/** Built-in value references. */ -var splice = arrayProto.splice; +/***/ }), -/** - * Removes `key` and its value from the list cache. - * - * @private - * @name delete - * @memberOf ListCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function listCacheDelete(key) { - var data = this.__data__, - index = assocIndexOf(data, key); +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/uniqueId.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/uniqueId.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3496424__) => { - if (index < 0) { - return false; - } - var lastIndex = data.length - 1; - if (index == lastIndex) { - data.pop(); - } else { - splice.call(data, index, 1); - } - --this.size; - return true; +"use strict"; +__nested_webpack_require_3496424__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3496424__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ uniqueId) +/* harmony export */ }); +// Generate a unique integer id (unique within the entire client session). +// Useful for temporary DOM ids. +var idCounter = 0; +function uniqueId(prefix) { + var id = ++idCounter + ''; + return prefix ? prefix + id : id; } -module.exports = listCacheDelete; - /***/ }), -/***/ "./node_modules/lodash/_listCacheGet.js": -/*!**********************************************!*\ - !*** ./node_modules/lodash/_listCacheGet.js ***! - \**********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js"); - -/** - * Gets the list cache value for `key`. - * - * @private - * @name get - * @memberOf ListCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function listCacheGet(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - - return index < 0 ? undefined : data[index][1]; -} +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/unzip.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/unzip.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3497261__) => { -module.exports = listCacheGet; +"use strict"; +__nested_webpack_require_3497261__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3497261__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ unzip) +/* harmony export */ }); +/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3497261__(/*! ./max.js */ "./build/cht-core-4-6/node_modules/underscore/modules/max.js"); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3497261__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); +/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_3497261__(/*! ./pluck.js */ "./build/cht-core-4-6/node_modules/underscore/modules/pluck.js"); -/***/ }), -/***/ "./node_modules/lodash/_listCacheHas.js": -/*!**********************************************!*\ - !*** ./node_modules/lodash/_listCacheHas.js ***! - \**********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js"); +// Complement of zip. Unzip accepts an array of arrays and groups +// each array's elements on shared indices. +function unzip(array) { + var length = (array && (0,_max_js__WEBPACK_IMPORTED_MODULE_0__.default)(array, _getLength_js__WEBPACK_IMPORTED_MODULE_1__.default).length) || 0; + var result = Array(length); -/** - * Checks if a list cache value for `key` exists. - * - * @private - * @name has - * @memberOf ListCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function listCacheHas(key) { - return assocIndexOf(this.__data__, key) > -1; + for (var index = 0; index < length; index++) { + result[index] = (0,_pluck_js__WEBPACK_IMPORTED_MODULE_2__.default)(array, index); + } + return result; } -module.exports = listCacheHas; - /***/ }), -/***/ "./node_modules/lodash/_listCacheSet.js": -/*!**********************************************!*\ - !*** ./node_modules/lodash/_listCacheSet.js ***! - \**********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/values.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/values.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3498869__) => { -var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js"); +"use strict"; +__nested_webpack_require_3498869__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3498869__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ values) +/* harmony export */ }); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3498869__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); -/** - * Sets the list cache `key` to `value`. - * - * @private - * @name set - * @memberOf ListCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the list cache instance. - */ -function listCacheSet(key, value) { - var data = this.__data__, - index = assocIndexOf(data, key); - if (index < 0) { - ++this.size; - data.push([key, value]); - } else { - data[index][1] = value; +// Retrieve the values of an object's properties. +function values(obj) { + var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj); + var length = _keys.length; + var values = Array(length); + for (var i = 0; i < length; i++) { + values[i] = obj[_keys[i]]; } - return this; + return values; } -module.exports = listCacheSet; - /***/ }), -/***/ "./node_modules/lodash/_mapCacheClear.js": -/*!***********************************************!*\ - !*** ./node_modules/lodash/_mapCacheClear.js ***! - \***********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/where.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/where.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3499944__) => { -var Hash = __webpack_require__(/*! ./_Hash */ "./node_modules/lodash/_Hash.js"), - ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js"), - Map = __webpack_require__(/*! ./_Map */ "./node_modules/lodash/_Map.js"); +"use strict"; +__nested_webpack_require_3499944__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3499944__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ where) +/* harmony export */ }); +/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3499944__(/*! ./filter.js */ "./build/cht-core-4-6/node_modules/underscore/modules/filter.js"); +/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3499944__(/*! ./matcher.js */ "./build/cht-core-4-6/node_modules/underscore/modules/matcher.js"); -/** - * Removes all key-value entries from the map. - * - * @private - * @name clear - * @memberOf MapCache - */ -function mapCacheClear() { - this.size = 0; - this.__data__ = { - 'hash': new Hash, - 'map': new (Map || ListCache), - 'string': new Hash - }; -} -module.exports = mapCacheClear; + +// Convenience version of a common use case of `_.filter`: selecting only +// objects containing specific `key:value` pairs. +function where(obj, attrs) { + return (0,_filter_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, (0,_matcher_js__WEBPACK_IMPORTED_MODULE_1__.default)(attrs)); +} /***/ }), -/***/ "./node_modules/lodash/_mapCacheDelete.js": -/*!************************************************!*\ - !*** ./node_modules/lodash/_mapCacheDelete.js ***! - \************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/without.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/without.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3501199__) => { -var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js"); +"use strict"; +__nested_webpack_require_3501199__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3501199__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3501199__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _difference_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3501199__(/*! ./difference.js */ "./build/cht-core-4-6/node_modules/underscore/modules/difference.js"); -/** - * Removes `key` and its value from the map. - * - * @private - * @name delete - * @memberOf MapCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function mapCacheDelete(key) { - var result = getMapData(this, key)['delete'](key); - this.size -= result ? 1 : 0; - return result; -} -module.exports = mapCacheDelete; + +// Return a version of the array that does not contain the specified value(s). +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(array, otherArrays) { + return (0,_difference_js__WEBPACK_IMPORTED_MODULE_1__.default)(array, otherArrays); +})); /***/ }), -/***/ "./node_modules/lodash/_mapCacheGet.js": -/*!*********************************************!*\ - !*** ./node_modules/lodash/_mapCacheGet.js ***! - \*********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/wrap.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/wrap.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3502521__) => { -var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js"); +"use strict"; +__nested_webpack_require_3502521__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3502521__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ wrap) +/* harmony export */ }); +/* harmony import */ var _partial_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3502521__(/*! ./partial.js */ "./build/cht-core-4-6/node_modules/underscore/modules/partial.js"); -/** - * Gets the map value for `key`. - * - * @private - * @name get - * @memberOf MapCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function mapCacheGet(key) { - return getMapData(this, key).get(key); -} -module.exports = mapCacheGet; +// Returns the first function passed as an argument to the second, +// allowing you to adjust arguments, run code before and after, and +// conditionally execute the original function. +function wrap(func, wrapper) { + return (0,_partial_js__WEBPACK_IMPORTED_MODULE_0__.default)(wrapper, func); +} /***/ }), -/***/ "./node_modules/lodash/_mapCacheHas.js": -/*!*********************************************!*\ - !*** ./node_modules/lodash/_mapCacheHas.js ***! - \*********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/zip.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/zip.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nested_webpack_require_3503596__) => { -var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js"); +"use strict"; +__nested_webpack_require_3503596__.r(__webpack_exports__); +/* harmony export */ __nested_webpack_require_3503596__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_3503596__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _unzip_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_3503596__(/*! ./unzip.js */ "./build/cht-core-4-6/node_modules/underscore/modules/unzip.js"); -/** - * Checks if a map value for `key` exists. - * - * @private - * @name has - * @memberOf MapCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function mapCacheHas(key) { - return getMapData(this, key).has(key); -} -module.exports = mapCacheHas; + +// Zip together multiple lists into a single array -- elements that share +// an index go together. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(_unzip_js__WEBPACK_IMPORTED_MODULE_1__.default)); /***/ }), -/***/ "./node_modules/lodash/_mapCacheSet.js": -/*!*********************************************!*\ - !*** ./node_modules/lodash/_mapCacheSet.js ***! - \*********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./build/cht-core-4-6/shared-libs/calendar-interval/src/index.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/calendar-interval/src/index.js ***! + \***********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3504839__) => { -var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js"); +const moment = __nested_webpack_require_3504839__(/*! moment */ "./build/cht-core-4-6/node_modules/moment/moment.js"); -/** - * Sets the map `key` to `value`. - * - * @private - * @name set - * @memberOf MapCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the map cache instance. - */ -function mapCacheSet(key, value) { - var data = getMapData(this, key), - size = data.size; +const normalizeStartDate = (intervalStartDate) => { + intervalStartDate = parseInt(intervalStartDate); - data.set(key, value); - this.size += data.size == size ? 0 : 1; - return this; -} + if (isNaN(intervalStartDate) || intervalStartDate <= 0 || intervalStartDate > 31) { + intervalStartDate = 1; + } -module.exports = mapCacheSet; + return intervalStartDate; +}; +const getMinimumStartDate = (intervalStartDate, relativeDate) => { + return moment + .min( + relativeDate.clone().subtract(1, 'month').date(intervalStartDate).startOf('day'), + relativeDate.clone().startOf('month') + ) + .valueOf(); +}; -/***/ }), +const getMinimumEndDate = (intervalStartDate, nextMonth, relativeDate) => { + return moment + .min( + relativeDate.clone().add(nextMonth ? 1 : 0, 'month').date(intervalStartDate - 1).endOf('day'), + relativeDate.clone().add(nextMonth ? 1 : 0, 'month').endOf('month') + ) + .valueOf(); +}; -/***/ "./node_modules/lodash/_nativeCreate.js": -/*!**********************************************!*\ - !*** ./node_modules/lodash/_nativeCreate.js ***! - \**********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +const getInterval = (intervalStartDate, referenceDate = moment()) => { + intervalStartDate = normalizeStartDate(intervalStartDate); + if (intervalStartDate === 1) { + return { + start: referenceDate.startOf('month').valueOf(), + end: referenceDate.endOf('month').valueOf() + }; + } -var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"); + if (intervalStartDate <= referenceDate.date()) { + return { + start: referenceDate.date(intervalStartDate).startOf('day').valueOf(), + end: getMinimumEndDate(intervalStartDate, true, referenceDate) + }; + } -/* Built-in method references that are verified to be native. */ -var nativeCreate = getNative(Object, 'create'); + return { + start: getMinimumStartDate(intervalStartDate, referenceDate), + end: getMinimumEndDate(intervalStartDate, false, referenceDate) + }; +}; -module.exports = nativeCreate; +module.exports = { + // Returns the timestamps of the start and end of the current calendar interval + // @param {Number} [intervalStartDate=1] - day of month when interval starts (1 - 31) + // + // if `intervalStartDate` exceeds month's day count, the start/end of following/current month is returned + // f.e. `intervalStartDate` === 31 would generate next intervals : + // [12-31 -> 01-30], [01-31 -> 02-[28|29]], [03-01 -> 03-30], [03-31 -> 04-30], [05-01 -> 05-30], [05-31 - 06-30] + getCurrent: (intervalStartDate) => getInterval(intervalStartDate), + + /** + * Returns the timestamps of the start and end of the a calendar interval that contains a reference date + * @param {Number} [intervalStartDate=1] - day of month when interval starts (1 - 31) + * @param {Number} timestamp - the reference date the interval should include + * @returns { start: number, end: number } - timestamps that define the calendar interval + */ + getInterval: (intervalStartDate, timestamp) => getInterval(intervalStartDate, moment(timestamp)), +}; /***/ }), -/***/ "./node_modules/lodash/_objectToString.js": -/*!************************************************!*\ - !*** ./node_modules/lodash/_objectToString.js ***! - \************************************************/ +/***/ "./build/cht-core-4-6/shared-libs/cht-script-api/src/auth.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/cht-script-api/src/auth.js ***! + \*******************************************************************/ /***/ ((module) => { -/** Used for built-in method references. */ -var objectProto = Object.prototype; - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. + * CHT Script API - Auth module + * Provides tools related to Authentication. */ -var nativeObjectToString = objectProto.toString; -/** - * Converts `value` to a string using `Object.prototype.toString`. - * - * @private - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - */ -function objectToString(value) { - return nativeObjectToString.call(value); -} +const ADMIN_ROLE = '_admin'; +const DISALLOWED_PERMISSION_PREFIX = '!'; -module.exports = objectToString; +const isAdmin = (userRoles) => { + if (!Array.isArray(userRoles)) { + return false; + } + return userRoles.includes(ADMIN_ROLE); +}; -/***/ }), +const groupPermissions = (permissions) => { + const groups = { allowed: [], disallowed: [] }; -/***/ "./node_modules/lodash/_root.js": -/*!**************************************!*\ - !*** ./node_modules/lodash/_root.js ***! - \**************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + permissions.forEach(permission => { + if (permission.indexOf(DISALLOWED_PERMISSION_PREFIX) === 0) { + // Removing the DISALLOWED_PERMISSION_PREFIX and keeping the permission name. + groups.disallowed.push(permission.substring(1)); + } else { + groups.allowed.push(permission); + } + }); -var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ "./node_modules/lodash/_freeGlobal.js"); + return groups; +}; -/** Detect free variable `self`. */ -var freeSelf = typeof self == 'object' && self && self.Object === Object && self; +const debug = (reason, permissions, roles) => { + // eslint-disable-next-line no-console + ; +}; -/** Used as a reference to the global object. */ -var root = freeGlobal || freeSelf || Function('return this')(); +const checkUserHasPermissions = (permissions, userRoles, chtPermissionsSettings, expectedToHave) => { + return permissions.every(permission => { + const roles = chtPermissionsSettings[permission]; -module.exports = root; + if (!roles) { + return !expectedToHave; + } + return expectedToHave === userRoles.some(role => roles.includes(role)); + }); +}; -/***/ }), +const verifyParameters = (permissions, userRoles, chtPermissionsSettings) => { + if (!Array.isArray(permissions) || !permissions.length) { + debug('Permissions to verify are not provided or have invalid type'); + return false; + } -/***/ "./node_modules/lodash/_setCacheAdd.js": -/*!*********************************************!*\ - !*** ./node_modules/lodash/_setCacheAdd.js ***! - \*********************************************/ -/***/ ((module) => { + if (!Array.isArray(userRoles)) { + debug('User roles are not provided or have invalid type'); + return false; + } -/** Used to stand-in for `undefined` hash values. */ -var HASH_UNDEFINED = '__lodash_hash_undefined__'; + if (!chtPermissionsSettings || !Object.keys(chtPermissionsSettings).length) { + debug('CHT-Core\'s configured permissions are not provided'); + return false; + } + + return true; +}; /** - * Adds `value` to the array cache. - * - * @private - * @name add - * @memberOf SetCache - * @alias push - * @param {*} value The value to cache. - * @returns {Object} Returns the cache instance. + * Verify if the user's role has the permission(s). + * @param permissions {string | string[]} Permission(s) to verify + * @param userRoles {string[]} Array of user roles. + * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings. + * @return {boolean} */ -function setCacheAdd(value) { - this.__data__.set(value, HASH_UNDEFINED); - return this; -} - -module.exports = setCacheAdd; - +const hasPermissions = (permissions, userRoles, chtPermissionsSettings) => { + if (permissions && typeof permissions === 'string') { + permissions = [ permissions ]; + } -/***/ }), + if (!verifyParameters(permissions, userRoles, chtPermissionsSettings)) { + return false; + } -/***/ "./node_modules/lodash/_setCacheHas.js": -/*!*********************************************!*\ - !*** ./node_modules/lodash/_setCacheHas.js ***! - \*********************************************/ -/***/ ((module) => { + const { allowed, disallowed } = groupPermissions(permissions); -/** - * Checks if `value` is in the array cache. - * - * @private - * @name has - * @memberOf SetCache - * @param {*} value The value to search for. - * @returns {number} Returns `true` if `value` is found, else `false`. - */ -function setCacheHas(value) { - return this.__data__.has(value); -} + if (isAdmin(userRoles)) { + if (disallowed.length) { + debug('Disallowed permission(s) found for admin', permissions, userRoles); + return false; + } + // Admin has the permissions automatically. + return true; + } -module.exports = setCacheHas; + const hasDisallowed = !checkUserHasPermissions(disallowed, userRoles, chtPermissionsSettings, false); + const hasAllowed = checkUserHasPermissions(allowed, userRoles, chtPermissionsSettings, true); + if (hasDisallowed) { + debug('Found disallowed permission(s)', permissions, userRoles); + return false; + } -/***/ }), + if (!hasAllowed) { + debug('Missing permission(s)', permissions, userRoles); + return false; + } -/***/ "./node_modules/lodash/_setToArray.js": -/*!********************************************!*\ - !*** ./node_modules/lodash/_setToArray.js ***! - \********************************************/ -/***/ ((module) => { + return true; +}; /** - * Converts `set` to an array of its values. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the values. + * Verify if the user's role has all the permissions of any of the provided groups. + * @param permissionsGroupList {string[][]} Array of groups of permissions due to the complexity of permission grouping + * @param userRoles {string[]} Array of user roles. + * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings. + * @return {boolean} */ -function setToArray(set) { - var index = -1, - result = Array(set.size); - - set.forEach(function(value) { - result[++index] = value; - }); - return result; -} - -module.exports = setToArray; - - -/***/ }), +const hasAnyPermission = (permissionsGroupList, userRoles, chtPermissionsSettings) => { + if (!verifyParameters(permissionsGroupList, userRoles, chtPermissionsSettings)) { + return false; + } -/***/ "./node_modules/lodash/_strictIndexOf.js": -/*!***********************************************!*\ - !*** ./node_modules/lodash/_strictIndexOf.js ***! - \***********************************************/ -/***/ ((module) => { + const validGroup = permissionsGroupList.every(permissions => Array.isArray(permissions)); + if (!validGroup) { + debug('Permission groups to verify are invalid'); + return false; + } -/** - * A specialized version of `_.indexOf` which performs strict equality - * comparisons of values, i.e. `===`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function strictIndexOf(array, value, fromIndex) { - var index = fromIndex - 1, - length = array.length; + const allowedGroupList = []; + const disallowedGroupList = []; + permissionsGroupList.forEach(permissions => { + const { allowed, disallowed } = groupPermissions(permissions); + allowedGroupList.push(allowed); + disallowedGroupList.push(disallowed); + }); - while (++index < length) { - if (array[index] === value) { - return index; + if (isAdmin(userRoles)) { + if (disallowedGroupList.every(permissions => permissions.length)) { + debug('Disallowed permission(s) found for admin', permissionsGroupList, userRoles); + return false; } + // Admin has the permissions automatically. + return true; } - return -1; -} -module.exports = strictIndexOf; + const hasAnyPermissionGroup = permissionsGroupList.some((permissions, i) => { + const hasAnyAllowed = checkUserHasPermissions(allowedGroupList[i], userRoles, chtPermissionsSettings, true); + const hasAnyDisallowed = !checkUserHasPermissions(disallowedGroupList[i], userRoles, chtPermissionsSettings, false); + // Checking the 'permission group' is valid. + return hasAnyAllowed && !hasAnyDisallowed; + }); + if (!hasAnyPermissionGroup) { + debug('No matching permissions', permissionsGroupList, userRoles); + return false; + } -/***/ }), + return true; +}; -/***/ "./node_modules/lodash/_toSource.js": -/*!******************************************!*\ - !*** ./node_modules/lodash/_toSource.js ***! - \******************************************/ -/***/ ((module) => { +module.exports = { + hasPermissions, + hasAnyPermission +}; -/** Used for built-in method references. */ -var funcProto = Function.prototype; -/** Used to resolve the decompiled source of functions. */ -var funcToString = funcProto.toString; +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/cht-script-api/src/index.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/cht-script-api/src/index.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3513108__) => { /** - * Converts `func` to its source code. - * - * @private - * @param {Function} func The function to convert. - * @returns {string} Returns the source code. + * CHT Script API - Index + * Builds and exports a versioned API from feature modules. + * Whenever possible keep this file clean by defining new features in modules. */ -function toSource(func) { - if (func != null) { - try { - return funcToString.call(func); - } catch (e) {} - try { - return (func + ''); - } catch (e) {} - } - return ''; -} +const auth = __nested_webpack_require_3513108__(/*! ./auth */ "./build/cht-core-4-6/shared-libs/cht-script-api/src/auth.js"); -module.exports = toSource; +/** + * Verify if the user's role has the permission(s). + * @param permissions {string | string[]} Permission(s) to verify + * @param userRoles {string[]} Array of user roles. + * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings. + * @return {boolean} + */ +const hasPermissions = (permissions, userRoles, chtPermissionsSettings) => { + return auth.hasPermissions(permissions, userRoles, chtPermissionsSettings); +}; +/** + * Verify if the user's role has all the permissions of any of the provided groups. + * @param permissionsGroupList {string[][]} Array of groups of permissions due to the complexity of permission grouping + * @param userRoles {string[]} Array of user roles. + * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings. + * @return {boolean} + */ +const hasAnyPermission = (permissionsGroupList, userRoles, chtPermissionsSettings) => { + return auth.hasAnyPermission(permissionsGroupList, userRoles, chtPermissionsSettings); +}; -/***/ }), +module.exports = { + v1: { + hasPermissions, + hasAnyPermission + } +}; -/***/ "./node_modules/lodash/core.js": -/*!*************************************!*\ - !*** ./node_modules/lodash/core.js ***! - \*************************************/ -/***/ (function(module, exports, __webpack_require__) { -/* module decorator */ module = __webpack_require__.nmd(module); -var __WEBPACK_AMD_DEFINE_RESULT__;/** - * @license - * Lodash (Custom Build) - * Build: `lodash core -o ./dist/lodash.core.js` - * Copyright OpenJS Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ -;(function() { +/***/ }), - /** Used as a safe reference for `undefined` in pre-ES5 environments. */ - var undefined; +/***/ "./build/cht-core-4-6/shared-libs/contact-types-utils/src/index.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/contact-types-utils/src/index.js ***! + \*************************************************************************/ +/***/ ((module) => { - /** Used as the semantic version number. */ - var VERSION = '4.17.21'; +const HARDCODED_PERSON_TYPE = 'person'; +const HARDCODED_TYPES = [ + 'district_hospital', + 'health_center', + 'clinic', + 'person' +]; - /** Error message constants. */ - var FUNC_ERROR_TEXT = 'Expected a function'; +const getContactTypes = config => { + return config && Array.isArray(config.contact_types) && config.contact_types || []; +}; - /** Used to compose bitmasks for value comparisons. */ - var COMPARE_PARTIAL_FLAG = 1, - COMPARE_UNORDERED_FLAG = 2; +const getTypeId = (doc) => { + if (!doc) { + return; + } + return doc.type === 'contact' ? doc.contact_type : doc.type; +}; - /** Used to compose bitmasks for function metadata. */ - var WRAP_BIND_FLAG = 1, - WRAP_PARTIAL_FLAG = 32; +const getTypeById = (config, typeId) => { + const contactTypes = getContactTypes(config); + return contactTypes.find(type => type.id === typeId); +}; - /** Used as references for various `Number` constants. */ - var INFINITY = 1 / 0, - MAX_SAFE_INTEGER = 9007199254740991; +const isPersonType = (type) => { + return type && (type.person || type.id === HARDCODED_PERSON_TYPE); +}; - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - asyncTag = '[object AsyncFunction]', - boolTag = '[object Boolean]', - dateTag = '[object Date]', - errorTag = '[object Error]', - funcTag = '[object Function]', - genTag = '[object GeneratorFunction]', - numberTag = '[object Number]', - objectTag = '[object Object]', - proxyTag = '[object Proxy]', - regexpTag = '[object RegExp]', - stringTag = '[object String]'; +const isPlaceType = (type) => { + return type && !type.person && type.id !== HARDCODED_PERSON_TYPE; +}; - /** Used to match HTML entities and HTML characters. */ - var reUnescapedHtml = /[&<>"']/g, - reHasUnescapedHtml = RegExp(reUnescapedHtml.source); +const hasParents = (type) => !!(type && type.parents && type.parents.length); - /** Used to detect unsigned integer values. */ - var reIsUint = /^(?:0|[1-9]\d*)$/; +const isParentOf = (parentType, childType) => { + if (!parentType || !childType) { + return false; + } - /** Used to map characters to HTML entities. */ - var htmlEscapes = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''' - }; + const parentTypeId = typeof parentType === 'string' ? parentType : parentType.id; + return !!(childType && childType.parents && childType.parents.includes(parentTypeId)); +}; - /** Detect free variable `global` from Node.js. */ - var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; +// A leaf place type is a contact type that does not have any child place types, but can have child person types +const getLeafPlaceTypes = (config) => { + const types = getContactTypes(config); + const placeTypes = types.filter(type => !type.person); + return placeTypes.filter(type => { + return placeTypes.every(inner => !inner.parents || !inner.parents.includes(type.id)); + }); +}; - /** Detect free variable `self`. */ - var freeSelf = typeof self == 'object' && self && self.Object === Object && self; +const getContactType = (config, contact) => { + const typeId = getTypeId(contact); + return typeId && getTypeById(config, typeId); +}; - /** Used as a reference to the global object. */ - var root = freeGlobal || freeSelf || Function('return this')(); +// returns true if contact's type exists and is a person type OR if contact's type is the hardcoded person type +const isPerson = (config, contact) => { + const typeId = getTypeId(contact); + const type = getTypeById(config, typeId) || { id: typeId }; + return isPersonType(type); +}; - /** Detect free variable `exports`. */ - var freeExports = true && exports && !exports.nodeType && exports; +const isPlace = (config, contact) => { + const type = getContactType(config, contact); + return isPlaceType(type); +}; - /** Detect free variable `module`. */ - var freeModule = freeExports && "object" == 'object' && module && !module.nodeType && module; +const isHardcodedType = type => HARDCODED_TYPES.includes(type); - /*--------------------------------------------------------------------------*/ +const isOrphan = (type) => !type.parents || !type.parents.length; +/** + * Returns an array of child types for the given type id. + * If parent is falsey, returns the types with no parent. + */ +const getChildren = (config, parentType) => { + const types = getContactTypes(config); + return types.filter(type => (!parentType && isOrphan(type)) || isParentOf(parentType, type)); +}; - /** - * Appends the elements of `values` to `array`. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to append. - * @returns {Array} Returns `array`. - */ - function arrayPush(array, values) { - array.push.apply(array, values); - return array; - } +const getPlaceTypes = (config) => getContactTypes(config).filter(isPlaceType); +const getPersonTypes = (config) => getContactTypes(config).filter(isPersonType); - /** - * The base implementation of `_.findIndex` and `_.findLastIndex` without - * support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} predicate The function invoked per iteration. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseFindIndex(array, predicate, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 1 : -1); +module.exports = { + getTypeId, + getTypeById, + isPersonType, + isPlaceType, + hasParents, + isParentOf, + getLeafPlaceTypes, + getContactType, + isPerson, + isPlace, + isHardcodedType, + HARDCODED_TYPES, + getContactTypes, + getChildren, + getPlaceTypes, + getPersonTypes, +}; - while ((fromRight ? index-- : ++index < length)) { - if (predicate(array[index], index, array)) { - return index; - } - } - return -1; - } - /** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new accessor function. - */ - function baseProperty(key) { - return function(object) { - return object == null ? undefined : object[key]; - }; - } +/***/ }), - /** - * The base implementation of `_.propertyOf` without support for deep paths. - * - * @private - * @param {Object} object The object to query. - * @returns {Function} Returns the new accessor function. - */ - function basePropertyOf(object) { - return function(key) { - return object == null ? undefined : object[key]; - }; - } +/***/ "./build/cht-core-4-6/shared-libs/lineage/src/hydration.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/lineage/src/hydration.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3518113__) => { - /** - * The base implementation of `_.reduce` and `_.reduceRight`, without support - * for iteratee shorthands, which iterates over `collection` using `eachFunc`. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} accumulator The initial value. - * @param {boolean} initAccum Specify using the first or last element of - * `collection` as the initial value. - * @param {Function} eachFunc The function to iterate over `collection`. - * @returns {*} Returns the accumulated value. - */ - function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { - eachFunc(collection, function(value, index, collection) { - accumulator = initAccum - ? (initAccum = false, value) - : iteratee(accumulator, value, index, collection); - }); - return accumulator; - } +const _ = __nested_webpack_require_3518113__(/*! lodash/core */ "./build/cht-core-4-6/node_modules/lodash/core.js"); +_.uniq = __nested_webpack_require_3518113__(/*! lodash/uniq */ "./build/cht-core-4-6/node_modules/lodash/uniq.js"); +const utils = __nested_webpack_require_3518113__(/*! ./utils */ "./build/cht-core-4-6/shared-libs/lineage/src/utils.js"); - /** - * The base implementation of `_.values` and `_.valuesIn` which creates an - * array of `object` property values corresponding to the property names - * of `props`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} props The property names to get values for. - * @returns {Object} Returns the array of property values. - */ - function baseValues(object, props) { - return baseMap(props, function(key) { - return object[key]; - }); - } +const deepCopy = obj => JSON.parse(JSON.stringify(obj)); - /** - * Used by `_.escape` to convert characters to HTML entities. - * - * @private - * @param {string} chr The matched character to escape. - * @returns {string} Returns the escaped character. - */ - var escapeHtmlChar = basePropertyOf(htmlEscapes); +const selfAndParents = function(self) { + const parents = []; + let current = self; + while (current) { + if (parents.includes(current)) { + return parents; + } - /** - * Creates a unary function that invokes `func` with its argument transformed. - * - * @private - * @param {Function} func The function to wrap. - * @param {Function} transform The argument transform. - * @returns {Function} Returns the new function. - */ - function overArg(func, transform) { - return function(arg) { - return func(transform(arg)); - }; + parents.push(current); + current = current.parent; } + return parents; +}; - /*--------------------------------------------------------------------------*/ - - /** Used for built-in method references. */ - var arrayProto = Array.prototype, - objectProto = Object.prototype; +const extractParentIds = current => selfAndParents(current) + .map(parent => parent._id) + .filter(id => id); - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; +const getContactById = (contacts, id) => id && contacts.find(contact => contact && contact._id === id); - /** Used to generate unique IDs. */ - var idCounter = 0; +const getContactIds = (contacts) => { + const ids = []; + contacts.forEach(doc => { + if (!doc) { + return; + } - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ - var nativeObjectToString = objectProto.toString; + const id = utils.getId(doc.contact); + id && ids.push(id); - /** Used to restore the original `_` reference in `_.noConflict`. */ - var oldDash = root._; + if (!utils.validLinkedDocs(doc)) { + return; + } + Object.keys(doc.linked_docs).forEach(key => { + const id = utils.getId(doc.linked_docs[key]); + id && ids.push(id); + }); + }); - /** Built-in value references. */ - var objectCreate = Object.create, - propertyIsEnumerable = objectProto.propertyIsEnumerable; + return _.uniq(ids); +}; - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeIsFinite = root.isFinite, - nativeKeys = overArg(Object.keys, Object), - nativeMax = Math.max; +module.exports = function(Promise, DB) { + const fillParentsInDocs = function(doc, lineage) { + if (!doc || !lineage.length) { + return doc; + } - /*------------------------------------------------------------------------*/ + // Parent hierarchy starts at the contact for data_records + let currentParent; + if (utils.isReport(doc)) { + currentParent = doc.contact = lineage.shift() || doc.contact; + } else { + // It's a contact + currentParent = doc; + } - /** - * Creates a `lodash` object which wraps `value` to enable implicit method - * chain sequences. Methods that operate on and return arrays, collections, - * and functions can be chained together. Methods that retrieve a single value - * or may return a primitive value will automatically end the chain sequence - * and return the unwrapped value. Otherwise, the value must be unwrapped - * with `_#value`. - * - * Explicit chain sequences, which must be unwrapped with `_#value`, may be - * enabled using `_.chain`. - * - * The execution of chained methods is lazy, that is, it's deferred until - * `_#value` is implicitly or explicitly called. - * - * Lazy evaluation allows several methods to support shortcut fusion. - * Shortcut fusion is an optimization to merge iteratee calls; this avoids - * the creation of intermediate arrays and can greatly reduce the number of - * iteratee executions. Sections of a chain sequence qualify for shortcut - * fusion if the section is applied to an array and iteratees accept only - * one argument. The heuristic for whether a section qualifies for shortcut - * fusion is subject to change. - * - * Chaining is supported in custom builds as long as the `_#value` method is - * directly or indirectly included in the build. - * - * In addition to lodash methods, wrappers have `Array` and `String` methods. - * - * The wrapper `Array` methods are: - * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` - * - * The wrapper `String` methods are: - * `replace` and `split` - * - * The wrapper methods that support shortcut fusion are: - * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, - * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, - * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` - * - * The chainable wrapper methods are: - * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, - * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, - * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, - * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, - * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, - * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, - * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, - * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, - * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, - * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, - * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, - * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, - * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, - * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, - * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, - * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, - * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, - * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, - * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, - * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, - * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, - * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, - * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, - * `zipObject`, `zipObjectDeep`, and `zipWith` - * - * The wrapper methods that are **not** chainable by default are: - * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, - * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, - * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, - * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, - * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, - * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, - * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, - * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, - * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, - * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, - * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, - * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, - * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, - * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, - * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, - * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, - * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, - * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, - * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, - * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, - * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, - * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, - * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, - * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, - * `upperFirst`, `value`, and `words` - * - * @name _ - * @constructor - * @category Seq - * @param {*} value The value to wrap in a `lodash` instance. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * function square(n) { - * return n * n; - * } - * - * var wrapped = _([1, 2, 3]); - * - * // Returns an unwrapped value. - * wrapped.reduce(_.add); - * // => 6 - * - * // Returns a wrapped value. - * var squares = wrapped.map(square); - * - * _.isArray(squares); - * // => false - * - * _.isArray(squares.value()); - * // => true - */ - function lodash(value) { - return value instanceof LodashWrapper - ? value - : new LodashWrapper(value); - } + const parentIds = extractParentIds(currentParent.parent); + lineage.forEach(function(l, i) { + currentParent.parent = l ? deepCopy(l) : { _id: parentIds[i] }; + currentParent = currentParent.parent; + }); - /** - * The base implementation of `_.create` without support for assigning - * properties to the created object. - * - * @private - * @param {Object} proto The object to inherit from. - * @returns {Object} Returns the new object. - */ - var baseCreate = (function() { - function object() {} - return function(proto) { - if (!isObject(proto)) { - return {}; + return doc; + }; + + const fillContactsInDocs = function(docs, contacts) { + if (!contacts || !contacts.length) { + return; + } + + docs.forEach(function(doc) { + if (!doc) { + return; } - if (objectCreate) { - return objectCreate(proto); + const id = utils.getId(doc.contact); + const contactDoc = getContactById(contacts, id); + if (contactDoc) { + doc.contact = deepCopy(contactDoc); } - object.prototype = proto; - var result = new object; - object.prototype = undefined; - return result; - }; - }()); - /** - * The base constructor for creating `lodash` wrapper objects. - * - * @private - * @param {*} value The value to wrap. - * @param {boolean} [chainAll] Enable explicit method chain sequences. - */ - function LodashWrapper(value, chainAll) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__chain__ = !!chainAll; - } + if (!utils.validLinkedDocs(doc)) { + return; + } - LodashWrapper.prototype = baseCreate(lodash.prototype); - LodashWrapper.prototype.constructor = LodashWrapper; + Object.keys(doc.linked_docs).forEach(key => { + const id = utils.getId(doc.linked_docs[key]); + const contactDoc = getContactById(contacts, id); + if (contactDoc) { + doc.linked_docs[key] = deepCopy(contactDoc); + } + }); + }); + }; - /*------------------------------------------------------------------------*/ + const fetchContacts = function(lineage) { + const contactIds = getContactIds(lineage); - /** - * Assigns `value` to `key` of `object` if the existing value is not equivalent - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function assignValue(object, key, value) { - var objValue = object[key]; - if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || - (value === undefined && !(key in object))) { - baseAssignValue(object, key, value); + // Only fetch docs that are new to us + const lineageContacts = []; + const contactsToFetch = []; + contactIds.forEach(function(id) { + const contact = getContactById(lineage, id); + if (contact) { + lineageContacts.push(deepCopy(contact)); + } else { + contactsToFetch.push(id); + } + }); + + return fetchDocs(contactsToFetch) + .then(function(fetchedContacts) { + return lineageContacts.concat(fetchedContacts); + }); + }; + + const mergeLineagesIntoDoc = function(lineage, contacts, patientLineage, placeLineage) { + const doc = lineage.shift(); + fillParentsInDocs(doc, lineage); + + if (patientLineage && patientLineage.length) { + const patientDoc = patientLineage.shift(); + fillParentsInDocs(patientDoc, patientLineage); + doc.patient = patientDoc; } - } - /** - * The base implementation of `assignValue` and `assignMergeValue` without - * value checks. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function baseAssignValue(object, key, value) { - object[key] = value; - } + if (placeLineage && placeLineage.length) { + const placeDoc = placeLineage.shift(); + fillParentsInDocs(placeDoc, placeLineage); + doc.place = placeDoc; + } - /** - * The base implementation of `_.delay` and `_.defer` which accepts `args` - * to provide to `func`. - * - * @private - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @param {Array} args The arguments to provide to `func`. - * @returns {number|Object} Returns the timer id or timeout object. + return doc; + }; + + /* + * @returns {Object} subjectMaps + * @returns {Map} subjectMaps.patientUuids - map with [k, v] pairs of [recordUuid, patientUuid] + * @returns {Map} subjectMaps.placeUuids - map with [k, v] pairs of [recordUuid, placeUuid] */ - function baseDelay(func, wait, args) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); + const fetchSubjectsUuids = (records) => { + const shortcodes = []; + const recordToPlaceUuidMap = new Map(); + const recordToPatientUuidMap = new Map(); + + records.forEach(record => { + if (!utils.isReport(record)) { + return; + } + + const patientId = utils.getPatientId(record); + const placeId = utils.getPlaceId(record); + recordToPatientUuidMap.set(record._id, patientId); + recordToPlaceUuidMap.set(record._id, placeId); + + shortcodes.push(patientId, placeId); + }); + + if (!shortcodes.some(shortcode => shortcode)) { + return Promise.resolve({ patientUuids: recordToPatientUuidMap, placeUuids: recordToPlaceUuidMap }); } - return setTimeout(function() { func.apply(undefined, args); }, wait); - } - /** - * The base implementation of `_.forEach` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - */ - var baseEach = createBaseEach(baseForOwn); + return contactUuidByShortcode(shortcodes).then(shortcodeToUuidMap => { + records.forEach(record => { + const patientShortcode = recordToPatientUuidMap.get(record._id); + recordToPatientUuidMap.set(record._id, shortcodeToUuidMap.get(patientShortcode)); - /** - * The base implementation of `_.every` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false` - */ - function baseEvery(collection, predicate) { - var result = true; - baseEach(collection, function(value, index, collection) { - result = !!predicate(value, index, collection); - return result; + const placeShortcode = recordToPlaceUuidMap.get(record._id); + recordToPlaceUuidMap.set(record._id, shortcodeToUuidMap.get(placeShortcode)); + }); + + return { patientUuids: recordToPatientUuidMap, placeUuids: recordToPlaceUuidMap }; }); - return result; - } + }; - /** - * The base implementation of methods like `_.max` and `_.min` which accepts a - * `comparator` to determine the extremum value. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The iteratee invoked per iteration. - * @param {Function} comparator The comparator used to compare values. - * @returns {*} Returns the extremum value. - */ - function baseExtremum(array, iteratee, comparator) { - var index = -1, - length = array.length; + /* + * @returns {Object} lineages + * @returns {Array} lineages.patientLineage + * @returns {Array} lineages.placeLineage + */ + const fetchSubjectLineage = (record) => { + if (!utils.isReport(record)) { + return Promise.resolve({ patientLineage: [], placeLineage: [] }); + } - while (++index < length) { - var value = array[index], - current = iteratee(value); + const patientId = utils.getPatientId(record); + const placeId = utils.getPlaceId(record); - if (current != null && (computed === undefined - ? (current === current && !false) - : comparator(current, computed) - )) { - var computed = current, - result = value; - } + if (!patientId && !placeId) { + return Promise.resolve({ patientLineage: [], placeLineage: [] }); } - return result; - } - /** - * The base implementation of `_.filter` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - */ - function baseFilter(collection, predicate) { - var result = []; - baseEach(collection, function(value, index, collection) { - if (predicate(value, index, collection)) { - result.push(value); - } + return contactUuidByShortcode([patientId, placeId]).then((shortcodeToUuidMap) => { + const patientUuid = shortcodeToUuidMap.get(patientId); + const placeUuid = shortcodeToUuidMap.get(placeId); + + return fetchLineageByIds([patientUuid, placeUuid]).then((lineages) => { + const patientLineage = lineages.find(lineage => lineage[0]._id === patientUuid) || []; + const placeLineage = lineages.find(lineage => lineage[0]._id === placeUuid) || []; + + return { patientLineage, placeLineage }; + }); }); - return result; - } + }; - /** - * The base implementation of `_.flatten` with support for restricting flattening. - * - * @private - * @param {Array} array The array to flatten. - * @param {number} depth The maximum recursion depth. - * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. - * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. - * @param {Array} [result=[]] The initial result value. - * @returns {Array} Returns the new flattened array. - */ - function baseFlatten(array, depth, predicate, isStrict, result) { - var index = -1, - length = array.length; + /* + * @returns {Map} map with [k, v] pairs of [shortcode, uuid] + */ + const contactUuidByShortcode = function(shortcodes) { + const keys = shortcodes + .filter(shortcode => shortcode) + .map(shortcode => [ 'shortcode', shortcode ]); - predicate || (predicate = isFlattenable); - result || (result = []); + return DB.query('medic-client/contacts_by_reference', { keys }) + .then(function(results) { + const findIdWithKey = key => { + const matchingRow = results.rows.find(row => row.key[1] === key); + return matchingRow && matchingRow.id; + }; - while (++index < length) { - var value = array[index]; - if (depth > 0 && predicate(value)) { - if (depth > 1) { - // Recursively flatten arrays (susceptible to call stack limits). - baseFlatten(value, depth - 1, predicate, isStrict, result); + return new Map(shortcodes.map(shortcode => ([ shortcode, findIdWithKey(shortcode) || shortcode, ]))); + }); + }; + + const fetchLineageById = function(id) { + const options = { + startkey: [id], + endkey: [id, {}], + include_docs: true + }; + return DB.query('medic-client/docs_by_id_lineage', options) + .then(function(result) { + return result.rows.map(function(row) { + return row.doc; + }); + }); + }; + + const fetchLineageByIds = function(ids) { + return fetchDocs(ids).then(function(docs) { + return hydrateDocs(docs).then(function(hydratedDocs) { + // Returning a list of docs just like fetchLineageById + const docsList = []; + hydratedDocs.forEach(function(hdoc) { + const docLineage = selfAndParents(hdoc); + docsList.push(docLineage); + }); + return docsList; + }); + }); + }; + + const fetchDoc = function(id) { + return DB.get(id) + .catch(function(err) { + if (err.status === 404) { + err.statusCode = 404; + } + throw err; + }); + }; + + const fetchHydratedDoc = function(id, options = {}, callback = undefined) { + let lineage; + let patientLineage; + let placeLineage; + if (typeof options === 'function') { + callback = options; + options = {}; + } + + _.defaults(options, { + throwWhenMissingLineage: false, + }); + + return fetchLineageById(id) + .then(function(result) { + lineage = result; + + if (lineage.length === 0) { + if (options.throwWhenMissingLineage) { + const err = new Error(`Document not found: ${id}`); + err.code = 404; + throw err; + } else { + // Not a doc that has lineage, just do a normal fetch. + return fetchDoc(id); + } + } + + return fetchSubjectLineage(lineage[0]) + .then((lineages = {}) => { + patientLineage = lineages.patientLineage; + placeLineage = lineages.placeLineage; + + return fetchContacts(lineage.concat(patientLineage, placeLineage)); + }) + .then(function(contacts) { + fillContactsInDocs(lineage, contacts); + fillContactsInDocs(patientLineage, contacts); + fillContactsInDocs(placeLineage, contacts); + return mergeLineagesIntoDoc(lineage, contacts, patientLineage, placeLineage); + }); + }) + .then(function(result) { + if (callback) { + callback(null, result); + } + return result; + }) + .catch(function(err) { + if (callback) { + callback(err); } else { - arrayPush(result, value); + throw err; } - } else if (!isStrict) { - result[result.length] = value; + }); + }; + + // for data_records, include the first-level contact. + const collectParentIds = function(docs) { + const ids = []; + docs.forEach(function(doc) { + let parent = doc.parent; + if (utils.isReport(doc)) { + const contactId = utils.getId(doc.contact); + if (!contactId) { + return; + } + ids.push(contactId); + parent = doc.contact; } + + ids.push(...extractParentIds(parent)); + }); + return _.uniq(ids); + }; + + // for data_records, doesn't include the first-level contact (it counts as a parent). + const collectLeafContactIds = function(partiallyHydratedDocs) { + const ids = []; + partiallyHydratedDocs.forEach(function(doc) { + const startLineageFrom = utils.isReport(doc) ? doc.contact : doc; + ids.push(...getContactIds(selfAndParents(startLineageFrom))); + }); + + return _.uniq(ids); + }; + + const fetchDocs = function(ids) { + if (!ids || !ids.length) { + return Promise.resolve([]); + } + const keys = _.uniq(ids.filter(id => id)); + if (keys.length === 0) { + return Promise.resolve([]); } - return result; - } - /** - * The base implementation of `baseForOwn` which iterates over `object` - * properties returned by `keysFunc` and invokes `iteratee` for each property. - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - var baseFor = createBaseFor(); + return DB.allDocs({ keys, include_docs: true }) + .then(function(results) { + return results.rows + .map(function(row) { + return row.doc; + }) + .filter(function(doc) { + return !!doc; + }); + }); + }; + + const hydrateDocs = function(docs) { + if (!docs.length) { + return Promise.resolve([]); + } + + const hydratedDocs = deepCopy(docs); // a copy of the original docs which we will incrementally hydrate and return + const knownDocs = [...hydratedDocs]; // an array of all documents which we have fetched + + let patientUuids; // a map of [k, v] pairs with [hydratedDocUuid, patientUuid] + let placeUuids; // a map of [k, v] pairs with [hydratedDocUuid, placeUuid] + + return fetchSubjectsUuids(hydratedDocs) + .then((subjectMaps) => { + placeUuids = subjectMaps.placeUuids; + patientUuids = subjectMaps.patientUuids; + + return fetchDocs([...placeUuids.values(), ...patientUuids.values()]); + }) + .then(subjects => { + knownDocs.push(...subjects); + + const firstRoundIdsToFetch = _.uniq([ + ...collectParentIds(hydratedDocs), + ...collectLeafContactIds(hydratedDocs), + + ...collectParentIds(subjects), + ...collectLeafContactIds(subjects), + ]); + + return fetchDocs(firstRoundIdsToFetch); + }) + .then(function(firstRoundFetched) { + knownDocs.push(...firstRoundFetched); + const secondRoundIdsToFetch = collectLeafContactIds(firstRoundFetched) + .filter(id => !knownDocs.some(doc => doc._id === id)); + return fetchDocs(secondRoundIdsToFetch); + }) + .then(function(secondRoundFetched) { + knownDocs.push(...secondRoundFetched); + + fillContactsInDocs(knownDocs, knownDocs); + hydratedDocs.forEach((doc) => { + const reconstructLineage = (docWithLineage, parents) => { + const parentIds = extractParentIds(docWithLineage); + return parentIds.map(id => { + // how can we use hashmaps? + return getContactById(parents, id); + }); + }; - /** - * The base implementation of `_.forOwn` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForOwn(object, iteratee) { - return object && baseFor(object, iteratee, keys); - } + const isReport = utils.isReport(doc); + const findParentsFor = isReport ? doc.contact : doc; + const lineage = reconstructLineage(findParentsFor, knownDocs); - /** - * The base implementation of `_.functions` which creates an array of - * `object` function property names filtered from `props`. - * - * @private - * @param {Object} object The object to inspect. - * @param {Array} props The property names to filter. - * @returns {Array} Returns the function names. - */ - function baseFunctions(object, props) { - return baseFilter(props, function(key) { - return isFunction(object[key]); - }); - } + if (isReport) { + lineage.unshift(doc); + } - /** - * The base implementation of `getTag` without fallbacks for buggy environments. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ - function baseGetTag(value) { - return objectToString(value); - } + const patientDoc = getContactById(knownDocs, patientUuids.get(doc._id)); + const patientLineage = reconstructLineage(patientDoc, knownDocs); - /** - * The base implementation of `_.gt` which doesn't coerce arguments. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is greater than `other`, - * else `false`. - */ - function baseGt(value, other) { - return value > other; - } + const placeDoc = getContactById(knownDocs, placeUuids.get(doc._id)); + const placeLineage = reconstructLineage(placeDoc, knownDocs); - /** - * The base implementation of `_.isArguments`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - */ - var baseIsArguments = noop; + mergeLineagesIntoDoc(lineage, knownDocs, patientLineage, placeLineage); + }); - /** - * The base implementation of `_.isDate` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a date object, else `false`. - */ - function baseIsDate(value) { - return isObjectLike(value) && baseGetTag(value) == dateTag; - } + return hydratedDocs; + }); + }; - /** - * The base implementation of `_.isEqual` which supports partial comparisons - * and tracks traversed objects. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {boolean} bitmask The bitmask flags. - * 1 - Unordered comparison - * 2 - Partial comparison - * @param {Function} [customizer] The function to customize comparisons. - * @param {Object} [stack] Tracks traversed `value` and `other` objects. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - */ - function baseIsEqual(value, other, bitmask, customizer, stack) { - if (value === other) { - return true; + const fetchHydratedDocs = docIds => { + if (!Array.isArray(docIds)) { + return Promise.reject(new Error('Invalid parameter: "docIds" must be an array')); } - if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { - return value !== value && other !== other; + + if (!docIds.length) { + return Promise.resolve([]); } - return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); - } - /** - * A specialized version of `baseIsEqual` for arrays and objects which performs - * deep comparisons and tracks traversed objects enabling objects with circular - * references to be compared. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} [stack] Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { - var objIsArr = isArray(object), - othIsArr = isArray(other), - objTag = objIsArr ? arrayTag : baseGetTag(object), - othTag = othIsArr ? arrayTag : baseGetTag(other); + if (docIds.length === 1) { + return fetchHydratedDoc(docIds[0]) + .then(doc => [doc]) + .catch(err => { + if (err.status === 404) { + return []; + } - objTag = objTag == argsTag ? objectTag : objTag; - othTag = othTag == argsTag ? objectTag : othTag; + throw err; + }); + } - var objIsObj = objTag == objectTag, - othIsObj = othTag == objectTag, - isSameTag = objTag == othTag; + return DB + .allDocs({ keys: docIds, include_docs: true }) + .then(result => { + const docs = result.rows.map(row => row.doc).filter(doc => doc); + return hydrateDocs(docs); + }); + }; - stack || (stack = []); - var objStack = find(stack, function(entry) { - return entry[0] == object; - }); - var othStack = find(stack, function(entry) { - return entry[0] == other; - }); - if (objStack && othStack) { - return objStack[1] == other; - } - stack.push([object, other]); - stack.push([other, object]); - if (isSameTag && !objIsObj) { - var result = (objIsArr) - ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) - : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); - stack.pop(); - return result; - } - if (!(bitmask & COMPARE_PARTIAL_FLAG)) { - var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), - othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + return { + /** + * Given a doc id get a doc and all parents, contact (and parents) and patient (and parents) and place (and parents) + * @param {String} id The id of the doc to fetch and hydrate + * @param {Object} [options] Options for the behavior of the hydration + * @param {Boolean} [options.throwWhenMissingLineage=false] When true, throw if the doc has nothing to hydrate. + * When false, does a best effort to return the document regardless of content. + * @returns {Promise} A promise to return the hydrated doc. + */ + fetchHydratedDoc: (id, options, callback) => fetchHydratedDoc(id, options, callback), - if (objIsWrapped || othIsWrapped) { - var objUnwrapped = objIsWrapped ? object.value() : object, - othUnwrapped = othIsWrapped ? other.value() : other; + /** + * Given an array of ids, returns hydrated versions of every requested doc (using hydrateDocs or fetchHydratedDoc) + * If a doc is not found, it's simply excluded from the results list + * @param {Object[]} docs The array of docs to hydrate + * @returns {Promise} A promise to return the hydrated docs + */ + fetchHydratedDocs: docIds => fetchHydratedDocs(docIds), - var result = equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); - stack.pop(); - return result; - } - } - if (!isSameTag) { - return false; - } - var result = equalObjects(object, other, bitmask, customizer, equalFunc, stack); - stack.pop(); - return result; - } + /** + * Given an array of docs bind the parents, contact (and parents) and patient (and parents) and place (and parents) + * @param {Object[]} docs The array of docs to hydrate + * @returns {Promise} + */ + hydrateDocs: docs => hydrateDocs(docs), - /** - * The base implementation of `_.isRegExp` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. - */ - function baseIsRegExp(value) { - return isObjectLike(value) && baseGetTag(value) == regexpTag; - } + fetchLineageById, + fetchLineageByIds, + fillContactsInDocs, + fillParentsInDocs, + fetchContacts, + }; +}; - /** - * The base implementation of `_.iteratee`. - * - * @private - * @param {*} [value=_.identity] The value to convert to an iteratee. - * @returns {Function} Returns the iteratee. - */ - function baseIteratee(func) { - if (typeof func == 'function') { - return func; - } - if (func == null) { - return identity; - } - return (typeof func == 'object' ? baseMatches : baseProperty)(func); - } - /** - * The base implementation of `_.lt` which doesn't coerce arguments. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is less than `other`, - * else `false`. - */ - function baseLt(value, other) { - return value < other; - } +/***/ }), - /** - * The base implementation of `_.map` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - function baseMap(collection, iteratee) { - var index = -1, - result = isArrayLike(collection) ? Array(collection.length) : []; +/***/ "./build/cht-core-4-6/shared-libs/lineage/src/index.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/lineage/src/index.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3533998__) => { - baseEach(collection, function(value, key, collection) { - result[++index] = iteratee(value, key, collection); - }); - return result; - } +/** + * @module lineage + */ +module.exports = (Promise, DB) => Object.assign( + {}, + __nested_webpack_require_3533998__(/*! ./hydration */ "./build/cht-core-4-6/shared-libs/lineage/src/hydration.js")(Promise, DB), + __nested_webpack_require_3533998__(/*! ./minify */ "./build/cht-core-4-6/shared-libs/lineage/src/minify.js") +); - /** - * The base implementation of `_.matches` which doesn't clone `source`. - * - * @private - * @param {Object} source The object of property values to match. - * @returns {Function} Returns the new spec function. - */ - function baseMatches(source) { - var props = nativeKeys(source); - return function(object) { - var length = props.length; - if (object == null) { - return !length; - } - object = Object(object); - while (length--) { - var key = props[length]; - if (!(key in object && - baseIsEqual(source[key], object[key], COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG) - )) { - return false; - } - } - return true; - }; - } - /** - * The base implementation of `_.pick` without support for individual - * property identifiers. - * - * @private - * @param {Object} object The source object. - * @param {string[]} paths The property paths to pick. - * @returns {Object} Returns the new object. - */ - function basePick(object, props) { - object = Object(object); - return reduce(props, function(result, key) { - if (key in object) { - result[key] = object[key]; - } - return result; - }, {}); - } +/***/ }), - /** - * The base implementation of `_.rest` which doesn't validate or coerce arguments. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - */ - function baseRest(func, start) { - return setToString(overRest(func, start, identity), func + ''); - } +/***/ "./build/cht-core-4-6/shared-libs/lineage/src/minify.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/lineage/src/minify.js ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3534644__) => { - /** - * The base implementation of `_.slice` without an iteratee call guard. - * - * @private - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - function baseSlice(array, start, end) { - var index = -1, - length = array.length; +const utils = __nested_webpack_require_3534644__(/*! ./utils */ "./build/cht-core-4-6/shared-libs/lineage/src/utils.js"); +const RECURSION_LIMIT = 50; - if (start < 0) { - start = -start > length ? 0 : (length + start); - } - end = end > length ? length : end; - if (end < 0) { - end += length; - } - length = start > end ? 0 : ((end - start) >>> 0); - start >>>= 0; +// Minifies things you would attach to another doc: +// doc.parent = minify(doc.parent) +// Not: +// minify(doc) +const minifyLineage = (parent) => { + if (!parent || !parent._id) { + return parent; + } - var result = Array(length); - while (++index < length) { - result[index] = array[index + start]; + const docId = parent._id; + const result = { _id: parent._id }; + let minified = result; + for (let guard = RECURSION_LIMIT; parent.parent && parent.parent._id; --guard) { + if (guard === 0) { + throw Error(`Could not minify ${docId}, possible parent recursion.`); } - return result; - } - /** - * Copies the values of `source` to `array`. - * - * @private - * @param {Array} source The array to copy values from. - * @param {Array} [array=[]] The array to copy values to. - * @returns {Array} Returns `array`. - */ - function copyArray(source) { - return baseSlice(source, 0, source.length); + minified.parent = { _id: parent.parent._id }; + minified = minified.parent; + parent = parent.parent; } - /** - * The base implementation of `_.some` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ - function baseSome(collection, predicate) { - var result; + return result; +}; - baseEach(collection, function(value, index, collection) { - result = predicate(value, index, collection); - return !result; - }); - return !!result; +/** + * Remove all hyrdrated items and leave just the ids + * @param {Object} doc The doc to minify + */ +const minify = (doc) => { + if (!doc) { + return; + } + if (doc.parent) { + doc.parent = minifyLineage(doc.parent); + } + if (doc.contact && doc.contact._id) { + const miniContact = { _id: doc.contact._id }; + if (doc.contact.parent) { + miniContact.parent = minifyLineage(doc.contact.parent); + } + doc.contact = miniContact; + } + if (doc.type === 'data_record') { + delete doc.patient; + delete doc.place; } - /** - * The base implementation of `wrapperValue` which returns the result of - * performing a sequence of actions on the unwrapped `value`, where each - * successive action is supplied the return value of the previous. - * - * @private - * @param {*} value The unwrapped value. - * @param {Array} actions Actions to perform to resolve the unwrapped value. - * @returns {*} Returns the resolved value. - */ - function baseWrapperValue(value, actions) { - var result = value; - return reduce(actions, function(result, action) { - return action.func.apply(action.thisArg, arrayPush([result], action.args)); - }, result); + if (utils.validLinkedDocs(doc)) { + Object.keys(doc.linked_docs).forEach(key => { + doc.linked_docs[key] = utils.getId(doc.linked_docs[key]); + }); } +}; - /** - * Compares values to sort them in ascending order. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {number} Returns the sort order indicator for `value`. - */ - function compareAscending(value, other) { - if (value !== other) { - var valIsDefined = value !== undefined, - valIsNull = value === null, - valIsReflexive = value === value, - valIsSymbol = false; +module.exports = { + minify, + minifyLineage, +}; - var othIsDefined = other !== undefined, - othIsNull = other === null, - othIsReflexive = other === other, - othIsSymbol = false; - if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) || - (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) || - (valIsNull && othIsDefined && othIsReflexive) || - (!valIsDefined && othIsReflexive) || - !valIsReflexive) { - return 1; - } - if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) || - (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) || - (othIsNull && valIsDefined && valIsReflexive) || - (!othIsDefined && valIsReflexive) || - !othIsReflexive) { - return -1; - } - } - return 0; - } +/***/ }), - /** - * Copies properties of `source` to `object`. - * - * @private - * @param {Object} source The object to copy properties from. - * @param {Array} props The property identifiers to copy. - * @param {Object} [object={}] The object to copy properties to. - * @param {Function} [customizer] The function to customize copied values. - * @returns {Object} Returns `object`. - */ - function copyObject(source, props, object, customizer) { - var isNew = !object; - object || (object = {}); +/***/ "./build/cht-core-4-6/shared-libs/lineage/src/utils.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/lineage/src/utils.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3536498__) => { + +const contactTypeUtils = __nested_webpack_require_3536498__(/*! @medic/contact-types-utils */ "./build/cht-core-4-6/shared-libs/contact-types-utils/src/index.js"); +const _ = __nested_webpack_require_3536498__(/*! lodash/core */ "./build/cht-core-4-6/node_modules/lodash/core.js"); + +const isContact = doc => { + if (!doc) { + return; + } - var index = -1, - length = props.length; + return doc.type === 'contact' || contactTypeUtils.HARDCODED_TYPES.includes(doc.type); +}; - while (++index < length) { - var key = props[index]; +const getId = (item) => item && (typeof item === 'string' ? item : item._id); - var newValue = customizer - ? customizer(object[key], source[key], key, object, source) - : undefined; +// don't process linked docs for non-contact types +// linked_docs property should be a key-value object +const validLinkedDocs = doc => { + return isContact(doc) && _.isObject(doc.linked_docs) && !_.isArray(doc.linked_docs); +}; - if (newValue === undefined) { - newValue = source[key]; - } - if (isNew) { - baseAssignValue(object, key, newValue); - } else { - assignValue(object, key, newValue); - } - } - return object; - } +const isReport = (doc) => doc.type === 'data_record'; +const getPatientId = (doc) => (doc.fields && (doc.fields.patient_id || doc.fields.patient_uuid)) || doc.patient_id; +const getPlaceId = (doc) => (doc.fields && doc.fields.place_id) || doc.place_id; - /** - * Creates a function like `_.assign`. - * - * @private - * @param {Function} assigner The function to assign values. - * @returns {Function} Returns the new assigner function. - */ - function createAssigner(assigner) { - return baseRest(function(object, sources) { - var index = -1, - length = sources.length, - customizer = length > 1 ? sources[length - 1] : undefined; - customizer = (assigner.length > 3 && typeof customizer == 'function') - ? (length--, customizer) - : undefined; +module.exports = { + getId, + validLinkedDocs, + isReport, + getPatientId, + getPlaceId, +}; - object = Object(object); - while (++index < length) { - var source = sources[index]; - if (source) { - assigner(object, source, index, customizer); - } - } - return object; - }); - } - /** - * Creates a `baseEach` or `baseEachRight` function. - * - * @private - * @param {Function} eachFunc The function to iterate over a collection. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseEach(eachFunc, fromRight) { - return function(collection, iteratee) { - if (collection == null) { - return collection; - } - if (!isArrayLike(collection)) { - return eachFunc(collection, iteratee); - } - var length = collection.length, - index = fromRight ? length : -1, - iterable = Object(collection); +/***/ }), - while ((fromRight ? index-- : ++index < length)) { - if (iteratee(iterable[index], index, iterable) === false) { - break; - } - } - return collection; - }; - } +/***/ "./build/cht-core-4-6/shared-libs/registration-utils/src/index.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/registration-utils/src/index.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, exports, __nested_webpack_require_3537941__) => { - /** - * Creates a base function for methods like `_.forIn` and `_.forOwn`. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseFor(fromRight) { - return function(object, iteratee, keysFunc) { - var index = -1, - iterable = Object(object), - props = keysFunc(object), - length = props.length; +const uniq = __nested_webpack_require_3537941__(/*! lodash/uniq */ "./build/cht-core-4-6/node_modules/lodash/uniq.js"); - while (length--) { - var key = props[fromRight ? length : ++index]; - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } - return object; - }; +const formCodeMatches = (conf, form) => { + return (new RegExp('^[^a-z]*' + conf + '[^a-z]*$', 'i')).test(form); +}; + +// Returns whether `doc` is a valid registration against a configuration +// This is done by checks roughly similar to the `registration` transition filter function +// Serves as a replacement for checking for `transitions` metadata within the doc itself +exports.isValidRegistration = (doc, settings) => { + if (!doc || + (doc.errors && doc.errors.length) || + !settings || + !settings.registrations || + doc.type !== 'data_record' || + !doc.form) { + return false; } - /** - * Creates a function that produces an instance of `Ctor` regardless of - * whether it was invoked as part of a `new` expression or by `call` or `apply`. - * - * @private - * @param {Function} Ctor The constructor to wrap. - * @returns {Function} Returns the new wrapped function. - */ - function createCtor(Ctor) { - return function() { - // Use a `switch` statement to work with class constructors. See - // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist - // for more details. - var args = arguments; - var thisBinding = baseCreate(Ctor.prototype), - result = Ctor.apply(thisBinding, args); + // Registration transition should be configured for this form + const registrationConfiguration = settings.registrations.find((conf) => { + return conf && + conf.form && + formCodeMatches(conf.form, doc.form); + }); + if (!registrationConfiguration) { + return false; + } - // Mimic the constructor's `return` behavior. - // See https://es5.github.io/#x13.2.2 for more details. - return isObject(result) ? result : thisBinding; - }; + if (doc.content_type === 'xml') { + return true; } - /** - * Creates a `_.find` or `_.findLast` function. - * - * @private - * @param {Function} findIndexFunc The function to find the collection index. - * @returns {Function} Returns the new find function. - */ - function createFind(findIndexFunc) { - return function(collection, predicate, fromIndex) { - var iterable = Object(collection); - if (!isArrayLike(collection)) { - var iteratee = baseIteratee(predicate, 3); - collection = keys(collection); - predicate = function(key) { return iteratee(iterable[key], key, iterable); }; - } - var index = findIndexFunc(collection, predicate, fromIndex); - return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; - }; + // SMS forms need to be configured + const form = settings.forms && settings.forms[doc.form]; + if (!form) { + return false; } - /** - * Creates a function that wraps `func` to invoke it with the `this` binding - * of `thisArg` and `partials` prepended to the arguments it receives. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} partials The arguments to prepend to those provided to - * the new function. - * @returns {Function} Returns the new wrapped function. - */ - function createPartial(func, bitmask, thisArg, partials) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - var isBind = bitmask & WRAP_BIND_FLAG, - Ctor = createCtor(func); + // Require a known submitter or the form to be public. + return Boolean(form.public_form || doc.contact); +}; - function wrapper() { - var argsIndex = -1, - argsLength = arguments.length, - leftIndex = -1, - leftLength = partials.length, - args = Array(leftLength + argsLength), - fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; +exports._formCodeMatches = formCodeMatches; - while (++leftIndex < leftLength) { - args[leftIndex] = partials[leftIndex]; +const CONTACT_SUBJECT_PROPERTIES = ['_id', 'patient_id', 'place_id']; +const REPORT_SUBJECT_PROPERTIES = ['patient_id', 'patient_uuid', 'place_id', 'place_uuid']; + +exports.getSubjectIds = (doc) => { + const subjectIds = []; + + if (!doc) { + return subjectIds; + } + + if (doc.type === 'data_record') { + REPORT_SUBJECT_PROPERTIES.forEach(prop => { + if (doc[prop]) { + subjectIds.push(doc[prop]); } - while (argsLength--) { - args[leftIndex++] = arguments[++argsIndex]; + if (doc.fields && doc.fields[prop]) { + subjectIds.push(doc.fields[prop]); } - return fn.apply(isBind ? thisArg : this, args); - } - return wrapper; + }); + } else { + CONTACT_SUBJECT_PROPERTIES.forEach(prop => { + if (doc[prop]) { + subjectIds.push(doc[prop]); + } + }); } - /** - * A specialized version of `baseIsEqualDeep` for arrays with support for - * partial deep comparisons. - * - * @private - * @param {Array} array The array to compare. - * @param {Array} other The other array to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `array` and `other` objects. - * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. - */ - function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - arrLength = array.length, - othLength = other.length; + return uniq(subjectIds); +}; - if (arrLength != othLength && !(isPartial && othLength > arrLength)) { - return false; +exports.getSubjectId = report => { + if (!report) { + return false; + } + for (const prop of REPORT_SUBJECT_PROPERTIES) { + if (report[prop]) { + return report[prop]; } - // Check that cyclic values are equal. - var arrStacked = stack.get(array); - var othStacked = stack.get(other); - if (arrStacked && othStacked) { - return arrStacked == other && othStacked == array; + if (report.fields && report.fields[prop]) { + return report.fields[prop]; } - var index = -1, - result = true, - seen = (bitmask & COMPARE_UNORDERED_FLAG) ? [] : undefined; + } +}; - // Ignore non-index properties. - while (++index < arrLength) { - var arrValue = array[index], - othValue = other[index]; - var compared; - if (compared !== undefined) { - if (compared) { - continue; - } - result = false; - break; - } - // Recursively compare arrays (susceptible to call stack limits). - if (seen) { - if (!baseSome(other, function(othValue, othIndex) { - if (!indexOf(seen, othIndex) && - (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - return seen.push(othIndex); - } - })) { - result = false; - break; - } - } else if (!( - arrValue === othValue || - equalFunc(arrValue, othValue, bitmask, customizer, stack) - )) { - result = false; - break; - } - } - return result; - } +/***/ }), - /** - * A specialized version of `baseIsEqualDeep` for comparing objects of - * the same `toStringTag`. - * - * **Note:** This function only supports comparing values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {string} tag The `toStringTag` of the objects to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { - switch (tag) { +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/index.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/index.js ***! + \******************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3540633__) => { - case boolTag: - case dateTag: - case numberTag: - // Coerce booleans to `1` or `0` and dates to milliseconds. - // Invalid dates are coerced to `NaN`. - return eq(+object, +other); +/** + * @module rules-engine + * + * Business logic for interacting with rules documents + */ - case errorTag: - return object.name == other.name && object.message == other.message; +const pouchdbProvider = __nested_webpack_require_3540633__(/*! ./pouchdb-provider */ "./build/cht-core-4-6/shared-libs/rules-engine/src/pouchdb-provider.js"); +const rulesEmitter = __nested_webpack_require_3540633__(/*! ./rules-emitter */ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/index.js"); +const rulesStateStore = __nested_webpack_require_3540633__(/*! ./rules-state-store */ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-state-store.js"); +const wireupToProvider = __nested_webpack_require_3540633__(/*! ./provider-wireup */ "./build/cht-core-4-6/shared-libs/rules-engine/src/provider-wireup.js"); - case regexpTag: - case stringTag: - // Coerce regexes to strings and treat strings, primitives and objects, - // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring - // for more details. - return object == (other + ''); +/** + * @param {Object} db Medic pouchdb database + */ +module.exports = db => { + const provider = pouchdbProvider(db); + return { + /** + * @param {Object} settings Settings for the behavior of the rules engine + * @param {Object} settings.rules Rules code from settings doc + * @param {Object[]} settings.taskSchedules Task schedules from settings doc + * @param {Object[]} settings.targets Target definitions from settings doc + * @param {Boolean} settings.enableTasks Flag to enable tasks + * @param {Boolean} settings.enableTargets Flag to enable targets + * @param {Boolean} [settings.rulesAreDeclarative=false] Flag to indicate the content of settings.rules. When true, + * rules is processed as native JavaScript. When false, nools is used. + * @param {RulesEmitter} [settings.customEmitter] Optional custom RulesEmitter object + * @param {Object} settings.contact User's hydrated contact document + * @param {Object} settings.user User's settings document + */ + initialize: (settings) => wireupToProvider.initialize(provider, settings), - } - return false; - } + /** + * @returns {Boolean} True if the rules engine is enabled and ready for use + */ + isEnabled: () => rulesEmitter.isEnabled() && rulesEmitter.isLatestNoolsSchema(), - /** - * A specialized version of `baseIsEqualDeep` for objects with support for - * partial deep comparisons. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - objProps = keys(object), - objLength = objProps.length, - othProps = keys(other), - othLength = othProps.length; + /** + * Refreshes all rules documents for a set of contacts and returns their task documents + * + * @param {string[]} contactIds An array of contact ids. If undefined, returns tasks for all contacts + * @returns {Promise} All the fresh task docs owned by contactIds + */ + fetchTasksFor: contactIds => wireupToProvider.fetchTasksFor(provider, contactIds), - if (objLength != othLength && !isPartial) { - return false; - } - var index = objLength; - while (index--) { - var key = objProps[index]; - if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { - return false; - } - } - // Check that cyclic values are equal. - var objStacked = stack.get(object); - var othStacked = stack.get(other); - if (objStacked && othStacked) { - return objStacked == other && othStacked == object; - } - var result = true; + /** + * Returns a breakdown of tasks by state and title for the provided list of contacts + * + * @param {string[]} contactIds An array of contact ids. If undefined, returns breakdown for all contacts + * @returns {Promise} The breakdown of tasks counts by state and title + */ + fetchTasksBreakdown: contactIds => wireupToProvider.fetchTasksBreakdown(provider, contactIds), - var skipCtor = isPartial; - while (++index < objLength) { - key = objProps[index]; - var objValue = object[key], - othValue = other[key]; + /** + * Refreshes all rules documents and returns the latest target document + * + * @param {Object} filterInterval Target emissions with date within the interval will be aggregated into the + * target scores + * @param {Integer} filterInterval.start Start timestamp of interval + * @param {Integer} filterInterval.end End timestamp of interval + * @returns {Promise} Array of fresh targets + */ + fetchTargets: filterInterval => wireupToProvider.fetchTargets(provider, filterInterval), - var compared; - // Recursively compare objects (susceptible to call stack limits). - if (!(compared === undefined - ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) - : compared - )) { - result = false; - break; - } - skipCtor || (skipCtor = key == 'constructor'); - } - if (result && !skipCtor) { - var objCtor = object.constructor, - othCtor = other.constructor; + /** + * Indicate that the task documents associated with a given subjectId are dirty. + * + * @param {string[]} subjectIds An array of subject ids + * + * @returns {Promise} To mark the subjectIds as dirty + */ + updateEmissionsFor: subjectIds => wireupToProvider.updateEmissionsFor(provider, subjectIds), - // Non `Object` object instances with different constructors are not equal. - if (objCtor != othCtor && - ('constructor' in object && 'constructor' in other) && - !(typeof objCtor == 'function' && objCtor instanceof objCtor && - typeof othCtor == 'function' && othCtor instanceof othCtor)) { - result = false; + /** + * Determines if either the settings or user's hydrated contact document have changed in a way which will impact + * the result of rules calculations. + * If they have changed in a meaningful way, the calculation state of all contacts is reset + * + * @param {Object} settings Updated settings + * @param {Object} settings.rules Rules code from settings doc + * @param {Object[]} settings.taskSchedules Task schedules from settings doc + * @param {Object[]} settings.targets Target definitions from settings doc + * @param {Boolean} settings.enableTasks Flag to enable tasks + * @param {Boolean} settings.enableTargets Flag to enable targets + * @param {Boolean} [settings.rulesAreDeclarative=false] Flag to indicate the content of settings.rules. When true, + * rules is native JavaScript. When false, nools is used + * @param {RulesEmitter} [settings.customEmitter] Optional custom RulesEmitter object + * @param {Object} settings.contact User's hydrated contact document + * @param {Object} settings.user User's user-settings document + */ + rulesConfigChange: (settings) => { + const cacheIsReset = rulesStateStore.rulesConfigChange(settings); + if (cacheIsReset) { + rulesEmitter.shutdown(); + rulesEmitter.initialize(settings); } - } - return result; - } + }, - /** - * A specialized version of `baseRest` which flattens the rest array. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @returns {Function} Returns the new function. - */ - function flatRest(func) { - return setToString(overRest(func, undefined, flatten), func + ''); - } + /** + * Returns a list of UUIDs of tracked contacts that are marked as dirty + * @returns {Array} list of dirty contacts UUIDs + */ + getDirtyContacts: () => rulesStateStore.getDirtyContacts(), + }; +}; + + +/***/ }), - /** - * Checks if `value` is a flattenable `arguments` object or array. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. - */ - function isFlattenable(value) { - return isArray(value) || isArguments(value); - } +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/pouchdb-provider.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/pouchdb-provider.js ***! + \*****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3546181__) => { - /** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ - function isIndex(value, length) { - var type = typeof value; - length = length == null ? MAX_SAFE_INTEGER : length; +/** + * @module pouchdb-provider + * + * Wireup for accessing rules document data via medic pouch db + */ - return !!length && - (type == 'number' || - (type != 'symbol' && reIsUint.test(value))) && - (value > -1 && value % 1 == 0 && value < length); - } +/* eslint-disable no-console */ +const moment = __nested_webpack_require_3546181__(/*! moment */ "./build/cht-core-4-6/node_modules/moment/moment.js"); +const registrationUtils = __nested_webpack_require_3546181__(/*! @medic/registration-utils */ "./build/cht-core-4-6/shared-libs/registration-utils/src/index.js"); +const uniqBy = __nested_webpack_require_3546181__(/*! lodash/uniqBy */ "./build/cht-core-4-6/node_modules/lodash/uniqBy.js"); - /** - * Checks if the given arguments are from an iteratee call. - * - * @private - * @param {*} value The potential iteratee value argument. - * @param {*} index The potential iteratee index or key argument. - * @param {*} object The potential iteratee object argument. - * @returns {boolean} Returns `true` if the arguments are from an iteratee call, - * else `false`. - */ - function isIterateeCall(value, index, object) { - if (!isObject(object)) { - return false; - } - var type = typeof index; - if (type == 'number' - ? (isArrayLike(object) && isIndex(index, object.length)) - : (type == 'string' && index in object) - ) { - return eq(object[index], value); - } - return false; - } +const RULES_STATE_DOCID = '_local/rulesStateStore'; +const MAX_QUERY_KEYS = 500; - /** - * This function is like - * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * except that it includes inherited enumerable properties. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function nativeKeysIn(object) { - var result = []; - if (object != null) { - for (var key in Object(object)) { - result.push(key); - } +const docsOf = (query) => { + return query.then(result => { + const rows = uniqBy(result.rows, 'id'); + return rows.map(row => row.doc).filter(existing => existing); + }); +}; + +const rowsOf = (query) => query.then(result => uniqBy(result.rows, 'id')); + +const medicPouchProvider = db => { + const dbQuery = async (view, params) => { + if (!params?.keys || params.keys.length < MAX_QUERY_KEYS) { + return db.query(view, params); } - return result; - } - /** - * Converts `value` to a string using `Object.prototype.toString`. - * - * @private - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - */ - function objectToString(value) { - return nativeObjectToString.call(value); - } + const keys = new Set(params.keys); + delete params.keys; + const results = await db.query(view, params); + const rows = results.rows.filter(row => keys.has(row.key)); + return { ...results, rows }; + }; - /** - * A specialized version of `baseRest` which transforms the rest array. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @param {Function} transform The rest array transform. - * @returns {Function} Returns the new function. - */ - function overRest(func, start, transform) { - start = nativeMax(start === undefined ? (func.length - 1) : start, 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - array = Array(length); + const self = { + // PouchDB.query slows down when provided with a large keys array. + // For users with ~1000 contacts it is ~50x faster to provider a start/end key instead of specifying all ids + allTasks: prefix => { + const options = { startkey: `${prefix}-`, endkey: `${prefix}-\ufff0`, include_docs: true }; + return docsOf(dbQuery('medic-client/tasks_by_contact', options)); + }, - while (++index < length) { - array[index] = args[start + index]; - } - index = -1; - var otherArgs = Array(start + 1); - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = transform(array); - return func.apply(this, otherArgs); - }; - } + allTaskData: userSettingsDoc => { + const userSettingsId = userSettingsDoc?._id; + return Promise.all([ + docsOf(dbQuery('medic-client/contacts_by_type', { include_docs: true })), + docsOf(dbQuery('medic-client/reports_by_subject', { include_docs: true })), + self.allTasks('requester'), + ]) + .then(([contactDocs, reportDocs, taskDocs]) => ({ contactDocs, reportDocs, taskDocs, userSettingsId })); + }, - /** - * Sets the `toString` method of `func` to return `string`. - * - * @private - * @param {Function} func The function to modify. - * @param {Function} string The `toString` result. - * @returns {Function} Returns `func`. - */ - var setToString = identity; + contactsBySubjectId: subjectIds => { + const keys = subjectIds.map(key => ['shortcode', key]); + return dbQuery('medic-client/contacts_by_reference', { keys, include_docs: true }) + .then(results => { + const shortcodeIds = results.rows.map(result => result.doc._id); + const idsThatArentShortcodes = subjectIds.filter(id => !results.rows.map(row => row.key[1]).includes(id)); - /*------------------------------------------------------------------------*/ + return [...shortcodeIds, ...idsThatArentShortcodes]; + }); + }, - /** - * Creates an array with all falsey values removed. The values `false`, `null`, - * `0`, `""`, `undefined`, and `NaN` are falsey. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to compact. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.compact([0, 1, false, 2, '', 3]); - * // => [1, 2, 3] - */ - function compact(array) { - return baseFilter(array, Boolean); - } + stateChangeCallback: docUpdateClosure(db), - /** - * Creates a new array concatenating `array` with any additional arrays - * and/or values. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to concatenate. - * @param {...*} [values] The values to concatenate. - * @returns {Array} Returns the new concatenated array. - * @example - * - * var array = [1]; - * var other = _.concat(array, 2, [3], [[4]]); - * - * console.log(other); - * // => [1, 2, 3, [4]] - * - * console.log(array); - * // => [1] - */ - function concat() { - var length = arguments.length; - if (!length) { - return []; - } - var args = Array(length - 1), - array = arguments[0], - index = length; + commitTargetDoc: (targets, userContactDoc, userSettingsDoc, docTag, force = false) => { // NOSONAR + const userContactId = userContactDoc?._id; + const userSettingsId = userSettingsDoc?._id; + const _id = `target~${docTag}~${userContactId}~${userSettingsId}`; + const createNew = () => ({ + _id, + type: 'target', + user: userSettingsId, + owner: userContactId, + reporting_period: docTag, + }); - while (index--) { - args[index - 1] = arguments[index]; - } - return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); - } + const today = moment().startOf('day').valueOf(); + return db.get(_id) + .catch(createNew) + .then(existingDoc => { + if (existingDoc.updated_date === today && !force) { + return false; + } - /** - * This method is like `_.find` except that it returns the index of the first - * element `predicate` returns truthy for instead of the element itself. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=0] The index to search from. - * @returns {number} Returns the index of the found element, else `-1`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * _.findIndex(users, function(o) { return o.user == 'barney'; }); - * // => 0 - * - * // The `_.matches` iteratee shorthand. - * _.findIndex(users, { 'user': 'fred', 'active': false }); - * // => 1 - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findIndex(users, ['active', false]); - * // => 0 - * - * // The `_.property` iteratee shorthand. - * _.findIndex(users, 'active'); - * // => 2 - */ - function findIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = fromIndex == null ? 0 : toInteger(fromIndex); - if (index < 0) { - index = nativeMax(length + index, 0); - } - return baseFindIndex(array, baseIteratee(predicate, 3), index); - } + existingDoc.targets = targets; + existingDoc.updated_date = today; + return db.put(existingDoc); + }); + }, - /** - * Flattens `array` a single level deep. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to flatten. - * @returns {Array} Returns the new flattened array. - * @example - * - * _.flatten([1, [2, [3, [4]], 5]]); - * // => [1, 2, [3, [4]], 5] - */ - function flatten(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten(array, 1) : []; - } + commitTaskDocs: taskDocs => { + if (!taskDocs || taskDocs.length === 0) { + return Promise.resolve([]); + } - /** - * Recursively flattens `array`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to flatten. - * @returns {Array} Returns the new flattened array. - * @example - * - * _.flattenDeep([1, [2, [3, [4]], 5]]); - * // => [1, 2, 3, 4, 5] - */ - function flattenDeep(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten(array, INFINITY) : []; - } + ; + return db.bulkDocs(taskDocs) + .catch(err => console.error('Error committing task documents', err)); + }, - /** - * Gets the first element of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @alias first - * @category Array - * @param {Array} array The array to query. - * @returns {*} Returns the first element of `array`. - * @example - * - * _.head([1, 2, 3]); - * // => 1 - * - * _.head([]); - * // => undefined - */ - function head(array) { - return (array && array.length) ? array[0] : undefined; - } + existingRulesStateStore: () => db.get(RULES_STATE_DOCID).catch(() => ({ _id: RULES_STATE_DOCID })), - /** - * Gets the index at which the first occurrence of `value` is found in `array` - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. If `fromIndex` is negative, it's used as the - * offset from the end of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} [fromIndex=0] The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.indexOf([1, 2, 1, 2], 2); - * // => 1 - * - * // Search from the `fromIndex`. - * _.indexOf([1, 2, 1, 2], 2, 2); - * // => 3 - */ - function indexOf(array, value, fromIndex) { - var length = array == null ? 0 : array.length; - if (typeof fromIndex == 'number') { - fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : fromIndex; - } else { - fromIndex = 0; - } - var index = (fromIndex || 0) - 1, - isReflexive = value === value; + tasksByRelation: (contactIds, prefix) => { + const keys = contactIds.map(contactId => `${prefix}-${contactId}`); + return docsOf(dbQuery( 'medic-client/tasks_by_contact', { keys, include_docs: true })); + }, - while (++index < length) { - var other = array[index]; - if ((isReflexive ? other === value : other !== other)) { - return index; - } - } - return -1; - } + allTaskRowsByOwner: (contactIds) => { + const keys = contactIds.map(contactId => (['owner', 'all', contactId])); + return rowsOf(dbQuery( 'medic-client/tasks_by_contact', { keys })); + }, - /** - * Gets the last element of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to query. - * @returns {*} Returns the last element of `array`. - * @example - * - * _.last([1, 2, 3]); - * // => 3 - */ - function last(array) { - var length = array == null ? 0 : array.length; - return length ? array[length - 1] : undefined; - } + allTaskRows: () => { + const options = { + startkey: ['owner', 'all'], + endkey: ['owner', 'all', '\ufff0'], + }; - /** - * Creates a slice of `array` from `start` up to, but not including, `end`. - * - * **Note:** This method is used instead of - * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are - * returned. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - function slice(array, start, end) { - var length = array == null ? 0 : array.length; - start = start == null ? 0 : +start; - end = end === undefined ? length : +end; - return length ? baseSlice(array, start, end) : []; - } + return rowsOf(dbQuery( 'medic-client/tasks_by_contact', options)); + }, - /*------------------------------------------------------------------------*/ + taskDataFor: (contactIds, userSettingsDoc) => { + if (!contactIds || contactIds.length === 0) { + return Promise.resolve({}); + } - /** - * Creates a `lodash` wrapper instance that wraps `value` with explicit method - * chain sequences enabled. The result of such sequences must be unwrapped - * with `_#value`. - * - * @static - * @memberOf _ - * @since 1.3.0 - * @category Seq - * @param {*} value The value to wrap. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 }, - * { 'user': 'pebbles', 'age': 1 } - * ]; - * - * var youngest = _ - * .chain(users) - * .sortBy('age') - * .map(function(o) { - * return o.user + ' is ' + o.age; - * }) - * .head() - * .value(); - * // => 'pebbles is 1' - */ - function chain(value) { - var result = lodash(value); - result.__chain__ = true; - return result; - } + return docsOf(db.allDocs({ keys: contactIds, include_docs: true })) + .then(contactDocs => { + const subjectIds = contactDocs.reduce((agg, contactDoc) => { + registrationUtils.getSubjectIds(contactDoc).forEach(subjectId => agg.add(subjectId)); + return agg; + }, new Set(contactIds)); - /** - * This method invokes `interceptor` and returns `value`. The interceptor - * is invoked with one argument; (value). The purpose of this method is to - * "tap into" a method chain sequence in order to modify intermediate results. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Seq - * @param {*} value The value to provide to `interceptor`. - * @param {Function} interceptor The function to invoke. - * @returns {*} Returns `value`. - * @example - * - * _([1, 2, 3]) - * .tap(function(array) { - * // Mutate input array. - * array.pop(); - * }) - * .reverse() - * .value(); - * // => [2, 1] - */ - function tap(value, interceptor) { - interceptor(value); - return value; - } + const keys = Array.from(subjectIds); + return Promise + .all([ + docsOf(dbQuery('medic-client/reports_by_subject', { keys, include_docs: true })), + self.tasksByRelation(contactIds, 'requester'), + ]) + .then(([reportDocs, taskDocs]) => { + // tighten the connection between reports and contacts + // a report will only be allowed to generate tasks for a single contact! + reportDocs = reportDocs.filter(report => { + const subjectId = registrationUtils.getSubjectId(report); + return subjectIds.has(subjectId); + }); - /** - * This method is like `_.tap` except that it returns the result of `interceptor`. - * The purpose of this method is to "pass thru" values replacing intermediate - * results in a method chain sequence. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Seq - * @param {*} value The value to provide to `interceptor`. - * @param {Function} interceptor The function to invoke. - * @returns {*} Returns the result of `interceptor`. - * @example - * - * _(' abc ') - * .chain() - * .trim() - * .thru(function(value) { - * return [value]; - * }) - * .value(); - * // => ['abc'] - */ - function thru(value, interceptor) { - return interceptor(value); - } + return { + userSettingsId: userSettingsDoc?._id, + contactDocs, + reportDocs, + taskDocs, + }; + }); + }); + }, + }; - /** - * Creates a `lodash` wrapper instance with explicit method chain sequences enabled. - * - * @name chain - * @memberOf _ - * @since 0.1.0 - * @category Seq - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 } - * ]; - * - * // A sequence without explicit chaining. - * _(users).head(); - * // => { 'user': 'barney', 'age': 36 } - * - * // A sequence with explicit chaining. - * _(users) - * .chain() - * .head() - * .pick('user') - * .value(); - * // => { 'user': 'barney' } - */ - function wrapperChain() { - return chain(this); - } + return self; +}; - /** - * Executes the chain sequence to resolve the unwrapped value. - * - * @name value - * @memberOf _ - * @since 0.1.0 - * @alias toJSON, valueOf - * @category Seq - * @returns {*} Returns the resolved unwrapped value. - * @example - * - * _([1, 2, 3]).value(); - * // => [1, 2, 3] - */ - function wrapperValue() { - return baseWrapperValue(this.__wrapped__, this.__actions__); - } +medicPouchProvider.RULES_STATE_DOCID = RULES_STATE_DOCID; - /*------------------------------------------------------------------------*/ +const docUpdateClosure = db => { + // previousResult helps avoid conflict errors if this functions is used asynchronously + let previousResult = Promise.resolve(); + return (baseDoc, assigned) => { + Object.assign(baseDoc, assigned); - /** - * Checks if `predicate` returns truthy for **all** elements of `collection`. - * Iteration is stopped once `predicate` returns falsey. The predicate is - * invoked with three arguments: (value, index|key, collection). - * - * **Note:** This method returns `true` for - * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because - * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of - * elements of empty collections. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false`. - * @example - * - * _.every([true, 1, null, 'yes'], Boolean); - * // => false - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': false } - * ]; - * - * // The `_.matches` iteratee shorthand. - * _.every(users, { 'user': 'barney', 'active': false }); - * // => false - * - * // The `_.matchesProperty` iteratee shorthand. - * _.every(users, ['active', false]); - * // => true - * - * // The `_.property` iteratee shorthand. - * _.every(users, 'active'); - * // => false - */ - function every(collection, predicate, guard) { - predicate = guard ? undefined : predicate; - return baseEvery(collection, baseIteratee(predicate)); - } + previousResult = previousResult + .then(() => db.put(baseDoc)) + .then(updatedDoc => (baseDoc._rev = updatedDoc.rev)) + .catch(err => console.error(`Error updating ${baseDoc._id}: ${err}`)) + .then(() => { + // unsure of how browsers handle long promise chains, so break the chain when possible + previousResult = Promise.resolve(); + }); - /** - * Iterates over elements of `collection`, returning an array of all elements - * `predicate` returns truthy for. The predicate is invoked with three - * arguments: (value, index|key, collection). - * - * **Note:** Unlike `_.remove`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - * @see _.reject - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': true }, - * { 'user': 'fred', 'age': 40, 'active': false } - * ]; - * - * _.filter(users, function(o) { return !o.active; }); - * // => objects for ['fred'] - * - * // The `_.matches` iteratee shorthand. - * _.filter(users, { 'age': 36, 'active': true }); - * // => objects for ['barney'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.filter(users, ['active', false]); - * // => objects for ['fred'] - * - * // The `_.property` iteratee shorthand. - * _.filter(users, 'active'); - * // => objects for ['barney'] - * - * // Combining several predicates using `_.overEvery` or `_.overSome`. - * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]])); - * // => objects for ['fred', 'barney'] - */ - function filter(collection, predicate) { - return baseFilter(collection, baseIteratee(predicate)); - } + return previousResult; + }; +}; - /** - * Iterates over elements of `collection`, returning the first element - * `predicate` returns truthy for. The predicate is invoked with three - * arguments: (value, index|key, collection). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=0] The index to search from. - * @returns {*} Returns the matched element, else `undefined`. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': true }, - * { 'user': 'fred', 'age': 40, 'active': false }, - * { 'user': 'pebbles', 'age': 1, 'active': true } - * ]; - * - * _.find(users, function(o) { return o.age < 40; }); - * // => object for 'barney' - * - * // The `_.matches` iteratee shorthand. - * _.find(users, { 'age': 1, 'active': true }); - * // => object for 'pebbles' - * - * // The `_.matchesProperty` iteratee shorthand. - * _.find(users, ['active', false]); - * // => object for 'fred' - * - * // The `_.property` iteratee shorthand. - * _.find(users, 'active'); - * // => object for 'barney' - */ - var find = createFind(findIndex); +module.exports = medicPouchProvider; - /** - * Iterates over elements of `collection` and invokes `iteratee` for each element. - * The iteratee is invoked with three arguments: (value, index|key, collection). - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * **Note:** As with other "Collections" methods, objects with a "length" - * property are iterated like arrays. To avoid this behavior use `_.forIn` - * or `_.forOwn` for object iteration. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @alias each - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - * @see _.forEachRight - * @example - * - * _.forEach([1, 2], function(value) { - * console.log(value); - * }); - * // => Logs `1` then `2`. - * - * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { - * console.log(key); - * }); - * // => Logs 'a' then 'b' (iteration order is not guaranteed). - */ - function forEach(collection, iteratee) { - return baseEach(collection, baseIteratee(iteratee)); - } - /** - * Creates an array of values by running each element in `collection` thru - * `iteratee`. The iteratee is invoked with three arguments: - * (value, index|key, collection). - * - * Many lodash methods are guarded to work as iteratees for methods like - * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. - * - * The guarded methods are: - * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, - * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, - * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, - * `template`, `trim`, `trimEnd`, `trimStart`, and `words` - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - * @example - * - * function square(n) { - * return n * n; - * } - * - * _.map([4, 8], square); - * // => [16, 64] - * - * _.map({ 'a': 4, 'b': 8 }, square); - * // => [16, 64] (iteration order is not guaranteed) - * - * var users = [ - * { 'user': 'barney' }, - * { 'user': 'fred' } - * ]; - * - * // The `_.property` iteratee shorthand. - * _.map(users, 'user'); - * // => ['barney', 'fred'] - */ - function map(collection, iteratee) { - return baseMap(collection, baseIteratee(iteratee)); - } +/***/ }), - /** - * Reduces `collection` to a value which is the accumulated result of running - * each element in `collection` thru `iteratee`, where each successive - * invocation is supplied the return value of the previous. If `accumulator` - * is not given, the first element of `collection` is used as the initial - * value. The iteratee is invoked with four arguments: - * (accumulator, value, index|key, collection). - * - * Many lodash methods are guarded to work as iteratees for methods like - * `_.reduce`, `_.reduceRight`, and `_.transform`. - * - * The guarded methods are: - * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, - * and `sortBy` - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @returns {*} Returns the accumulated value. - * @see _.reduceRight - * @example - * - * _.reduce([1, 2], function(sum, n) { - * return sum + n; - * }, 0); - * // => 3 - * - * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { - * (result[value] || (result[value] = [])).push(key); - * return result; - * }, {}); - * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) - */ - function reduce(collection, iteratee, accumulator) { - return baseReduce(collection, baseIteratee(iteratee), accumulator, arguments.length < 3, baseEach); - } +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/provider-wireup.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/provider-wireup.js ***! + \****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3553193__) => { - /** - * Gets the size of `collection` by returning its length for array-like - * values or the number of own enumerable string keyed properties for objects. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object|string} collection The collection to inspect. - * @returns {number} Returns the collection size. - * @example - * - * _.size([1, 2, 3]); - * // => 3 - * - * _.size({ 'a': 1, 'b': 2 }); - * // => 2 - * - * _.size('pebbles'); - * // => 7 - */ - function size(collection) { - if (collection == null) { - return 0; - } - collection = isArrayLike(collection) ? collection : nativeKeys(collection); - return collection.length; - } +/** + * @module wireup + * + * Wireup a data provider to the rules-engine + */ - /** - * Checks if `predicate` returns truthy for **any** element of `collection`. - * Iteration is stopped once `predicate` returns truthy. The predicate is - * invoked with three arguments: (value, index|key, collection). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - * @example - * - * _.some([null, 0, 'yes', false], Boolean); - * // => true - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false } - * ]; - * - * // The `_.matches` iteratee shorthand. - * _.some(users, { 'user': 'barney', 'active': false }); - * // => false - * - * // The `_.matchesProperty` iteratee shorthand. - * _.some(users, ['active', false]); - * // => true - * - * // The `_.property` iteratee shorthand. - * _.some(users, 'active'); - * // => true - */ - function some(collection, predicate, guard) { - predicate = guard ? undefined : predicate; - return baseSome(collection, baseIteratee(predicate)); - } +const moment = __nested_webpack_require_3553193__(/*! moment */ "./build/cht-core-4-6/node_modules/moment/moment.js"); +const registrationUtils = __nested_webpack_require_3553193__(/*! @medic/registration-utils */ "./build/cht-core-4-6/shared-libs/registration-utils/src/index.js"); +const TaskStates = __nested_webpack_require_3553193__(/*! ./task-states */ "./build/cht-core-4-6/shared-libs/rules-engine/src/task-states.js"); +const refreshRulesEmissions = __nested_webpack_require_3553193__(/*! ./refresh-rules-emissions */ "./build/cht-core-4-6/shared-libs/rules-engine/src/refresh-rules-emissions.js"); +const rulesEmitter = __nested_webpack_require_3553193__(/*! ./rules-emitter */ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/index.js"); +const rulesStateStore = __nested_webpack_require_3553193__(/*! ./rules-state-store */ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-state-store.js"); +const updateTemporalStates = __nested_webpack_require_3553193__(/*! ./update-temporal-states */ "./build/cht-core-4-6/shared-libs/rules-engine/src/update-temporal-states.js"); +const calendarInterval = __nested_webpack_require_3553193__(/*! @medic/calendar-interval */ "./build/cht-core-4-6/shared-libs/calendar-interval/src/index.js"); + +let wireupOptions; + +module.exports = { /** - * Creates an array of elements, sorted in ascending order by the results of - * running each element in a collection thru each iteratee. This method - * performs a stable sort, that is, it preserves the original sort order of - * equal elements. The iteratees are invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {...(Function|Function[])} [iteratees=[_.identity]] - * The iteratees to sort by. - * @returns {Array} Returns the new sorted array. - * @example - * - * var users = [ - * { 'user': 'fred', 'age': 48 }, - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 30 }, - * { 'user': 'barney', 'age': 34 } - * ]; - * - * _.sortBy(users, [function(o) { return o.user; }]); - * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]] - * - * _.sortBy(users, ['user', 'age']); - * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]] + * @param {Object} provider A data provider + * @param {Object} settings Settings for the behavior of the provider + * @param {Object} settings.rules Rules code from settings doc + * @param {Object[]} settings.taskSchedules Task schedules from settings doc + * @param {Object[]} settings.targets Target definitions from settings doc + * @param {Boolean} settings.enableTasks Flag to enable tasks + * @param {Boolean} settings.enableTargets Flag to enable targets + * @param {Boolean} [settings.rulesAreDeclarative=true] Flag to indicate the content of settings.rules. When true, + * rules is processed as native JavaScript. When false, nools is used. + * @param {RulesEmitter} [settings.customEmitter] Optional custom RulesEmitter object + * @param {number} settings.monthStartDate reporting interval start date + * @param {Object} userDoc User's hydrated contact document */ - function sortBy(collection, iteratee) { - var index = 0; - iteratee = baseIteratee(iteratee); + initialize: (provider, settings) => { + const isEnabled = rulesEmitter.initialize(settings); + if (!isEnabled) { + return Promise.resolve(); + } - return baseMap(baseMap(collection, function(value, key, collection) { - return { 'value': value, 'index': index++, 'criteria': iteratee(value, key, collection) }; - }).sort(function(object, other) { - return compareAscending(object.criteria, other.criteria) || (object.index - other.index); - }), baseProperty('value')); - } + const { enableTasks=true, enableTargets=true } = settings; + wireupOptions = { enableTasks, enableTargets }; - /*------------------------------------------------------------------------*/ + return provider + .existingRulesStateStore() + .then(existingStateDoc => { + if (!rulesEmitter.isLatestNoolsSchema()) { + throw Error('Rules Engine: Updates to the nools schema are required'); + } - /** - * Creates a function that invokes `func`, with the `this` binding and arguments - * of the created function, while it's called less than `n` times. Subsequent - * calls to the created function return the result of the last `func` invocation. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {number} n The number of calls at which `func` is no longer invoked. - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example + const contactClosure = updatedState => provider.stateChangeCallback( + existingStateDoc, + { rulesStateStore: updatedState } + ); + const needsBuilding = rulesStateStore.load(existingStateDoc.rulesStateStore, settings, contactClosure); + return handleIntervalTurnover(provider, settings).then(() => { + if (!needsBuilding) { + return; + } + + rulesStateStore.build(settings, contactClosure); + }); + }); + }, + + /** + * Refreshes the rules emissions for all contacts + * Fetches all tasks in non-terminal state owned by the contacts + * Updates the temporal states of the task documents + * Commits those changes (async) * - * jQuery(element).on('click', _.before(5, addContactToList)); - * // => Allows adding up to 4 contacts to the list. + * @param {Object} provider A data provider + * @param {string[]} contactIds An array of contact ids. If undefined, returns tasks for all contacts + * @returns {Promise} All the fresh task docs owned by contacts */ - function before(n, func) { - var result; - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); + fetchTasksFor: (provider, contactIds) => { + if (!rulesEmitter.isEnabled() || !wireupOptions.enableTasks) { + return disabledResponse(); } - n = toInteger(n); - return function() { - if (--n > 0) { - result = func.apply(this, arguments); - } - if (n <= 1) { - func = undefined; - } - return result; - }; - } + + return enqueue(() => { + const calculationTimestamp = Date.now(); + return refreshRulesEmissionForContacts(provider, calculationTimestamp, contactIds) + .then(() => contactIds ? provider.tasksByRelation(contactIds, 'owner') : provider.allTasks('owner')) + .then(tasksToDisplay => { + const docsToCommit = updateTemporalStates(tasksToDisplay, calculationTimestamp); + provider.commitTaskDocs(docsToCommit); + return tasksToDisplay.filter(taskDoc => taskDoc.state === TaskStates.Ready); + }); + }); + }, /** - * Creates a function that invokes `func` with the `this` binding of `thisArg` - * and `partials` prepended to the arguments it receives. - * - * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, - * may be used as a placeholder for partially applied arguments. - * - * **Note:** Unlike native `Function#bind`, this method doesn't set the "length" - * property of bound functions. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to bind. - * @param {*} thisArg The `this` binding of `func`. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new bound function. - * @example - * - * function greet(greeting, punctuation) { - * return greeting + ' ' + this.user + punctuation; - * } - * - * var object = { 'user': 'fred' }; - * - * var bound = _.bind(greet, object, 'hi'); - * bound('!'); - * // => 'hi fred!' - * - * // Bound with placeholders. - * var bound = _.bind(greet, object, _, '!'); - * bound('hi'); - * // => 'hi fred!' + * Returns a breakdown of task counts by state and title for the provided contacts, or all contacts + * Does NOT refresh rules emissions + * @param {Object} provider A data provider + * @param {string[]} contactIds An array of contact ids. If undefined, returns breakdown for all contacts + * @return {Promise<{ + * Ready: number, + * Draft: number, + * Failed: number, + * Completed: number, + * Cancelled: number, + *}>} */ - var bind = baseRest(function(func, thisArg, partials) { - return createPartial(func, WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG, thisArg, partials); - }); + fetchTasksBreakdown: (provider, contactIds) => { + const tasksByState = Object.assign({}, TaskStates.states); + Object + .keys(tasksByState) + .forEach(state => tasksByState[state] = 0); + + if (!rulesEmitter.isEnabled() || !wireupOptions.enableTasks) { + return Promise.resolve(tasksByState); + } + + const getTasks = contactIds ? provider.allTaskRowsByOwner(contactIds) : provider.allTaskRows(); + + return getTasks.then(taskRows => { + taskRows.forEach(({ value: { state } }) => { + if (Object.hasOwnProperty.call(tasksByState, state)) { + tasksByState[state]++; + } + }); + + return tasksByState; + }); + }, /** - * Defers invoking the `func` until the current call stack has cleared. Any - * additional arguments are provided to `func` when it's invoked. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to defer. - * @param {...*} [args] The arguments to invoke `func` with. - * @returns {number} Returns the timer id. - * @example + * Refreshes the rules emissions for all contacts * - * _.defer(function(text) { - * console.log(text); - * }, 'deferred'); - * // => Logs 'deferred' after one millisecond. + * @param {Object} provider A data provider + * @param {Object} filterInterval Target emissions with date within the interval will be aggregated into the target + * scores + * @param {Integer} filterInterval.start Start timestamp of interval + * @param {Integer} filterInterval.end End timestamp of interval + * @returns {Promise} The fresh aggregate target doc */ - var defer = baseRest(function(func, args) { - return baseDelay(func, 1, args); - }); + fetchTargets: (provider, filterInterval) => { + if (!rulesEmitter.isEnabled() || !wireupOptions.enableTargets) { + return disabledResponse(); + } + + const calculationTimestamp = Date.now(); + const targetEmissionFilter = filterInterval && (emission => { + // 4th parameter of isBetween represents inclusivity. By default or using ( is exclusive, [ is inclusive + return moment(emission.date).isBetween(filterInterval.start, filterInterval.end, null, '[]'); + }); + + return enqueue(() => { + return refreshRulesEmissionForContacts(provider, calculationTimestamp) + .then(() => { + const targets = rulesStateStore.aggregateStoredTargetEmissions(targetEmissionFilter); + return storeTargetsDoc(provider, targets, filterInterval).then(() => targets); + }); + }); + }, /** - * Invokes `func` after `wait` milliseconds. Any additional arguments are - * provided to `func` when it's invoked. + * Indicate that the rules emissions associated with a given subjectId are dirty * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @param {...*} [args] The arguments to invoke `func` with. - * @returns {number} Returns the timer id. - * @example + * @param {Object} provider A data provider + * @param {string[]} subjectIds An array of subject ids * - * _.delay(function(text) { - * console.log(text); - * }, 1000, 'later'); - * // => Logs 'later' after one second. + * @returns {Promise} To complete the transaction marking the subjectIds as dirty */ - var delay = baseRest(function(func, wait, args) { - return baseDelay(func, toNumber(wait) || 0, args); + updateEmissionsFor: (provider, subjectIds) => { + if (!subjectIds) { + subjectIds = []; + } + + if (subjectIds && !Array.isArray(subjectIds)) { + subjectIds = [subjectIds]; + } + + // this function accepts subject ids, but rulesStateStore accepts a contact id, so a conversion is required + return enqueue(() => { + return provider + .contactsBySubjectId(subjectIds) + .then(contactIds => rulesStateStore.markDirty(contactIds)); + }); + }, +}; + +let refreshQueue = Promise.resolve(); +const enqueue = callback => { + const listeners = []; + const eventQueue = []; + const emit = evtName => { + // we have to emit `queued` immediately, but there are no listeners listening at this point + // eventQueue will keep a list of listener-less events. when listeners are registered, we check if they + // have events in eventQueue, and call their callback immediately for each matching queued event. + if (!listeners[evtName]) { + return eventQueue.push(evtName); + } + listeners[evtName].forEach(callback => callback()); + }; + + emit('queued'); + refreshQueue = refreshQueue.then(() => { + emit('running'); + return callback(); }); - /** - * Creates a function that negates the result of the predicate `func`. The - * `func` predicate is invoked with the `this` binding and arguments of the - * created function. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} predicate The predicate to negate. - * @returns {Function} Returns the new negated function. - * @example - * - * function isEven(n) { - * return n % 2 == 0; - * } - * - * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); - * // => [1, 3, 5] - */ - function negate(predicate) { - if (typeof predicate != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); + refreshQueue.on = (evtName, callback) => { + listeners[evtName] = listeners[evtName] || []; + listeners[evtName].push(callback); + eventQueue.forEach(queuedEvent => queuedEvent === evtName && callback()); + return refreshQueue; + }; + + return refreshQueue; +}; + +const disabledResponse = () => { + const p = Promise.resolve([]); + p.on = () => p; + return p; +}; + +const refreshRulesEmissionForContacts = (provider, calculationTimestamp, contactIds) => { + const refreshAndSave = (freshData, updatedContactIds) => ( + refreshRulesEmissions(freshData, calculationTimestamp, wireupOptions) + .then(refreshed => Promise.all([ + rulesStateStore.storeTargetEmissions(updatedContactIds, refreshed.targetEmissions), + provider.commitTaskDocs(refreshed.updatedTaskDocs), + ])) + ); + + const refreshForAllContacts = (calculationTimestamp) => ( + provider.allTaskData(rulesStateStore.currentUserSettings()) + .then(freshData => ( + refreshAndSave(freshData) + .then(() => { + const contactIds = freshData.contactDocs.map(doc => doc._id); + + const subjectIds = freshData.contactDocs.reduce((agg, contactDoc) => { + registrationUtils.getSubjectIds(contactDoc).forEach(subjectId => agg.add(subjectId)); + return agg; + }, new Set()); + + const headlessSubjectIds = freshData.reportDocs + .map(doc => registrationUtils.getSubjectId(doc)) + .filter(subjectId => !subjectIds.has(subjectId)); + + rulesStateStore.markAllFresh(calculationTimestamp, [...contactIds, ...headlessSubjectIds]); + }) + )) + ); + + const refreshForKnownContacts = (calculationTimestamp, contactIds) => { + const dirtyContactIds = contactIds.filter(contactId => rulesStateStore.isDirty(contactId)); + return provider.taskDataFor(dirtyContactIds, rulesStateStore.currentUserSettings()) + .then(freshData => refreshAndSave(freshData, dirtyContactIds)) + .then(() => { + rulesStateStore.markFresh(calculationTimestamp, dirtyContactIds); + }); + }; + + return handleIntervalTurnover(provider, { monthStartDate: rulesStateStore.getMonthStartDate() }).then(() => { + if (contactIds) { + return refreshForKnownContacts(calculationTimestamp, contactIds); } - return function() { - var args = arguments; - return !predicate.apply(this, args); - }; + + // If the contact state store does not contain all contacts, build up that list (contact doc ids + headless ids in + // reports/tasks) + if (!rulesStateStore.hasAllContacts()) { + return refreshForAllContacts(calculationTimestamp); + } + + // Once the contact state store has all contacts, trust it and only refresh those marked dirty + return refreshForKnownContacts(calculationTimestamp, rulesStateStore.getContactIds()); + }); +}; + +const storeTargetsDoc = (provider, targets, filterInterval, force = false) => { + const targetDocTag = filterInterval ? moment(filterInterval.end).format('YYYY-MM') : 'latest'; + const minifyTarget = target => ({ id: target.id, value: target.value }); + + return provider.commitTargetDoc( + targets.map(minifyTarget), + rulesStateStore.currentUserContact(), + rulesStateStore.currentUserSettings(), + targetDocTag, + force + ); +}; + +// Because we only save the `target` document once per day (when we calculate targets for the first time), +// we're losing all updates to targets that happened in the last day of the reporting period. +// This function takes the last saved state (which may be stale) and generates the targets doc for the corresponding +// reporting interval (that includes the date when the state was calculated). +// We don't recalculate the state prior to this because we support targets that count events infinitely to emit `now`, +// which means that they would all be excluded from the emission filter (being outside the past reporting interval). +// https://github.com/medic/cht-core/issues/6209 +const handleIntervalTurnover = (provider, { monthStartDate }) => { + if (!rulesStateStore.isLoaded() || !wireupOptions.enableTargets) { + return Promise.resolve(); } - /** - * Creates a function that is restricted to invoking `func` once. Repeat calls - * to the function return the value of the first invocation. The `func` is - * invoked with the `this` binding and arguments of the created function. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * var initialize = _.once(createApplication); - * initialize(); - * initialize(); - * // => `createApplication` is invoked once - */ - function once(func) { - return before(2, func); + const stateCalculatedAt = rulesStateStore.stateLastUpdatedAt(); + if (!stateCalculatedAt) { + return Promise.resolve(); + } + + const currentInterval = calendarInterval.getCurrent(monthStartDate); + // 4th parameter of isBetween represents inclusivity. By default or using ( is exclusive, [ is inclusive + if (moment(stateCalculatedAt).isBetween(currentInterval.start, currentInterval.end, null, '[]')) { + return Promise.resolve(); } - /*------------------------------------------------------------------------*/ + const filterInterval = calendarInterval.getInterval(monthStartDate, stateCalculatedAt); + const targetEmissionFilter = (emission => { + // 4th parameter of isBetween represents inclusivity. By default or using ( is exclusive, [ is inclusive + return moment(emission.date).isBetween(filterInterval.start, filterInterval.end, null, '[]'); + }); + + const targets = rulesStateStore.aggregateStoredTargetEmissions(targetEmissionFilter); + return storeTargetsDoc(provider, targets, filterInterval, true); +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/refresh-rules-emissions.js": +/*!************************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/refresh-rules-emissions.js ***! + \************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3566805__) => { + +/** + * @module refresh-rules-emissions + * Uses rules-emitter to calculate the fresh emissions for a set of contacts, their reports, and their tasks + * Creates or updates one task document per unique emission id + * Cancels task documents in non-terminal states if they were not emitted + * + * @requires rules-emitter to be initialized + */ + +const rulesEmitter = __nested_webpack_require_3566805__(/*! ./rules-emitter */ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/index.js"); +const TaskStates = __nested_webpack_require_3566805__(/*! ./task-states */ "./build/cht-core-4-6/shared-libs/rules-engine/src/task-states.js"); +const transformTaskEmissionToDoc = __nested_webpack_require_3566805__(/*! ./transform-task-emission-to-doc */ "./build/cht-core-4-6/shared-libs/rules-engine/src/transform-task-emission-to-doc.js"); + +/** + * @param {Object[]} freshData.contactDocs A set of contact documents + * @param {Object[]} freshData.reportDocs All of the contacts' reports + * @param {Object[]} freshData.taskDocs All of the contacts' task documents (must be linked by requester to a contact) + * @param {Object[]} freshData.userSettingsId The id of the user's settings document + * + * @param {int} calculationTimestamp Timestamp for the round of rules calculations + * + * @param {Object=} [options] Options for the behavior when refreshing rules + * @param {Boolean} [options.enableTasks=true] Flag to enable tasks + * @param {Boolean} [options.enableTargets=true] Flag to enable targets + * + * @returns {Object} result + * @returns {Object[]} result.targetEmissions Array of raw target emissions + * @returns {Object[]} result.updatedTaskDocs Array of updated task documents + */ +module.exports = (freshData = {}, calculationTimestamp = Date.now(), { enableTasks=true, enableTargets=true }={}) => { + const { contactDocs = [], reportDocs = [], taskDocs = [] } = freshData; + return rulesEmitter.getEmissionsFor(contactDocs, reportDocs, taskDocs) + .then(emissions => Promise.all([ + enableTasks ? getUpdatedTaskDocs(emissions.tasks, freshData, calculationTimestamp, enableTasks) : [], + enableTargets ? emissions.targets : [], + ])) + .then(([updatedTaskDocs, targetEmissions]) => ({ updatedTaskDocs, targetEmissions })); +}; + +const getUpdatedTaskDocs = (taskEmissions, freshData, calculationTimestamp) => { + const { taskDocs = [], userSettingsId } = freshData; + const { winners: emissionIdToLatestDocMap, duplicates: duplicateTaskDocs } = disambiguateTaskDocs( + taskDocs, + calculationTimestamp + ); + + const timelyEmissions = taskEmissions.filter(emission => TaskStates.isTimely(emission, calculationTimestamp)); + const taskTransforms = disambiguateEmissions(timelyEmissions, calculationTimestamp) + .map(taskEmission => { + const existingDoc = emissionIdToLatestDocMap[taskEmission._id]; + return transformTaskEmissionToDoc(taskEmission, calculationTimestamp, userSettingsId, existingDoc); + }); + + const freshTaskDocs = taskTransforms.map(doc => doc.taskDoc); + const cancelledDocs = getCancellationUpdates(freshTaskDocs, freshData.taskDocs, calculationTimestamp); + const cancelledDuplicatedDocs = getDeduplicationUpdates(duplicateTaskDocs, calculationTimestamp); + const updatedTaskDocs = taskTransforms.filter(doc => doc.isUpdated).map(result => result.taskDoc); + return [...updatedTaskDocs, ...cancelledDocs, ...cancelledDuplicatedDocs]; +}; + +/** + * Examine the existing task documents which were previously emitted by the same contact + * Cancel any doc that is in a non-terminal state and does not have an emission to keep it alive + */ +const getCancellationUpdates = (freshDocs, existingTaskDocs = [], calculatedAt = 0) => { + const existingNonTerminalTaskDocs = existingTaskDocs.filter(doc => !TaskStates.isTerminal(doc.state)); + const currentEmissionIds = new Set(freshDocs.map(doc => doc.emission._id)); + + return existingNonTerminalTaskDocs + .filter(doc => !currentEmissionIds.has(doc.emission._id)) + .map(doc => TaskStates.setStateOnTaskDoc(doc, TaskStates.Cancelled, calculatedAt)); +}; + +/** + * All duplicate task docs that are not in a terminal state are "Cancelled" with a "duplicate" reason + * @param {Array} duplicatedTaskDocs - array of task docs that exist in the local DB + * @param {number} calculatedAt - Timestamp for the round of rules calculations + * @returns {Array} - task docs with updated state + */ +const getDeduplicationUpdates = (duplicatedTaskDocs, calculatedAt) => { + return duplicatedTaskDocs + .filter(doc => !TaskStates.isTerminal(doc.state)) + .map(doc => TaskStates.setStateOnTaskDoc(doc, TaskStates.Cancelled, calculatedAt, 'duplicate')); +}; + +/* +It is possible to receive multiple emissions with the same id. When this happens, we need to pick one winner. +We pick the "most ready" emission. +*/ +const disambiguateEmissions = (taskEmissions, forTime) => { + const winners = taskEmissions.reduce((agg, emission) => { + if (!agg[emission._id]) { + agg[emission._id] = emission; + } else { + const incomingState = TaskStates.calculateState(emission, forTime) || TaskStates.Cancelled; + const currentState = TaskStates.calculateState(agg[emission._id], forTime) || TaskStates.Cancelled; + if (TaskStates.isMoreReadyThan(incomingState, currentState)) { + agg[emission._id] = emission; + } + } + return agg; + }, {}); + + return Object.keys(winners).map(key => winners[key]); // Object.values() +}; + +/** + * It's possible to have multiple task docs with the same emission id. (For example, when the same account logs in + * on multiple devices). When this happens, we pick the "most ready" most recent task. However, tasks that are authored + * in the future are discarded. + * @param {Array} taskDocs - An array of already exiting task documents + * @param {number} forTime - current calculation timestamp + * @returns {Object} result + * @returns {Object} result.winners - A map of emission id to task pairs + * @returns {Array} result.duplicates - A list of task documents that are duplicates and need to be cancelled + */ +const disambiguateTaskDocs = (taskDocs, forTime) => { + const duplicates = []; + const winners = {}; + + const taskDocsByEmissionId = mapEmissionIdToTaskDocs(taskDocs, forTime); + + Object.keys(taskDocsByEmissionId).forEach(emissionId => { + taskDocsByEmissionId[emissionId].forEach(taskDoc => { + if (!winners[emissionId]) { + winners[emissionId] = taskDoc; + return; + } + + const stateComparison = TaskStates.compareState(taskDoc.state, winners[emissionId].state); + if ( + // if taskDoc is more ready + stateComparison < 0 || + // or taskDoc is more recent, when having the same state + (stateComparison === 0 && taskDoc.authoredOn > winners[emissionId].authoredOn) + ) { + duplicates.push(winners[emissionId]); + winners[emissionId] = taskDoc; + } else { + duplicates.push(taskDoc); + } + }); + }); + + return { winners, duplicates }; +}; - /** - * Creates a shallow clone of `value`. - * - * **Note:** This method is loosely based on the - * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm) - * and supports cloning arrays, array buffers, booleans, date objects, maps, - * numbers, `Object` objects, regexes, sets, strings, symbols, and typed - * arrays. The own enumerable properties of `arguments` objects are cloned - * as plain objects. An empty object is returned for uncloneable values such - * as error objects, functions, DOM nodes, and WeakMaps. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to clone. - * @returns {*} Returns the cloned value. - * @see _.cloneDeep - * @example - * - * var objects = [{ 'a': 1 }, { 'b': 2 }]; - * - * var shallow = _.clone(objects); - * console.log(shallow[0] === objects[0]); - * // => true - */ - function clone(value) { - if (!isObject(value)) { - return value; - } - return isArray(value) ? copyArray(value) : copyObject(value, nativeKeys(value)); - } +const mapEmissionIdToTaskDocs = (taskDocs, maxTimestamp) => { + const tasksByEmission = {}; + taskDocs + // mitigate the fallout of a user who rewinds their system-clock after creating task docs + .filter(doc => doc.authoredOn <= maxTimestamp) + .forEach(doc => { + const emissionId = doc.emission._id; + if (!tasksByEmission[emissionId]) { + tasksByEmission[emissionId] = []; + } + tasksByEmission[emissionId].push(doc); + }); + return tasksByEmission; +}; - /** - * Performs a - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * comparison between two values to determine if they are equivalent. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.eq(object, object); - * // => true - * - * _.eq(object, other); - * // => false - * - * _.eq('a', 'a'); - * // => true - * - * _.eq('a', Object('a')); - * // => false - * - * _.eq(NaN, NaN); - * // => true - */ - function eq(value, other) { - return value === other || (value !== value && other !== other); - } - /** - * Checks if `value` is likely an `arguments` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - * else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ - var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { - return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && - !propertyIsEnumerable.call(value, 'callee'); - }; +/***/ }), - /** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(document.body.children); - * // => false - * - * _.isArray('abc'); - * // => false - * - * _.isArray(_.noop); - * // => false - */ - var isArray = Array.isArray; +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.javascript.js": +/*!*********************************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.javascript.js ***! + \*********************************************************************************************/ +/***/ ((module) => { - /** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ - function isArrayLike(value) { - return value != null && isLength(value.length) && !isFunction(value); - } +/** + * @module emitter.javascript + * Processes declarative configuration code by executing javascript rules directly + */ - /** - * Checks if `value` is classified as a boolean primitive or object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a boolean, else `false`. - * @example - * - * _.isBoolean(false); - * // => true - * - * _.isBoolean(null); - * // => false - */ - function isBoolean(value) { - return value === true || value === false || - (isObjectLike(value) && baseGetTag(value) == boolTag); +class Contact { + constructor({ contact, reports, tasks}) { + this.contact = contact; + this.reports = reports; + this.tasks = tasks; } +} - /** - * Checks if `value` is classified as a `Date` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a date object, else `false`. - * @example - * - * _.isDate(new Date); - * // => true - * - * _.isDate('Mon April 23 2012'); - * // => false - */ - var isDate = baseIsDate; +// required by marshalDocsByContact +Contact.prototype.tasks = 'defined'; - /** - * Checks if `value` is an empty object, collection, map, or set. - * - * Objects are considered empty if they have no own enumerable string keyed - * properties. - * - * Array-like values such as `arguments` objects, arrays, buffers, strings, or - * jQuery-like collections are considered empty if they have a `length` of `0`. - * Similarly, maps and sets are considered empty if they have a `size` of `0`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is empty, else `false`. - * @example - * - * _.isEmpty(null); - * // => true - * - * _.isEmpty(true); - * // => true - * - * _.isEmpty(1); - * // => true - * - * _.isEmpty([1, 2, 3]); - * // => false - * - * _.isEmpty({ 'a': 1 }); - * // => false - */ - function isEmpty(value) { - if (isArrayLike(value) && - (isArray(value) || isString(value) || - isFunction(value.splice) || isArguments(value))) { - return !value.length; - } - return !nativeKeys(value).length; +class Task { + constructor(x) { + Object.assign(this, x); } +} - /** - * Performs a deep comparison between two values to determine if they are - * equivalent. - * - * **Note:** This method supports comparing arrays, array buffers, booleans, - * date objects, error objects, maps, numbers, `Object` objects, regexes, - * sets, strings, symbols, and typed arrays. `Object` objects are compared - * by their own, not inherited, enumerable properties. Functions and DOM - * nodes are compared by strict equality, i.e. `===`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.isEqual(object, other); - * // => true - * - * object === other; - * // => false - */ - function isEqual(value, other) { - return baseIsEqual(value, other); +class Target { + constructor(x) { + Object.assign(this, x); } +} - /** - * Checks if `value` is a finite primitive number. - * - * **Note:** This method is based on - * [`Number.isFinite`](https://mdn.io/Number/isFinite). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. - * @example - * - * _.isFinite(3); - * // => true - * - * _.isFinite(Number.MIN_VALUE); - * // => true - * - * _.isFinite(Infinity); - * // => false - * - * _.isFinite('3'); - * // => false - */ - function isFinite(value) { - return typeof value == 'number' && nativeIsFinite(value); - } +let processDocsByContact; +const results = { tasks: [], targets: [] }; - /** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a function, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ - function isFunction(value) { - if (!isObject(value)) { - return false; +module.exports = { + getContact: () => Contact, + initialize: (settings, scope) => { + const rawFunction = new Function('c', 'Task', 'Target', 'Utils', 'user', 'cht', 'emit', settings.rules); + processDocsByContact = container => rawFunction( + container, + Task, + Target, + scope.Utils, + scope.user, + scope.cht, + emitCallback, + ); + return true; + }, + + startSession: () => { + if (!processDocsByContact) { + throw Error('Failed to start task session. Not initialized'); } - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 9 which returns 'object' for typed arrays and other constructors. - var tag = baseGetTag(value); - return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; - } - /** - * Checks if `value` is a valid array-like length. - * - * **Note:** This method is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ - function isLength(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; - } + results.tasks = []; + results.targets = []; + + return { + processDocsByContact, + result: () => Promise.resolve(results), + dispose: () => {}, + }; + }, - /** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ - function isObject(value) { - var type = typeof value; - return value != null && (type == 'object' || type == 'function'); - } + isLatestNoolsSchema: () => true, - /** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ - function isObjectLike(value) { - return value != null && typeof value == 'object'; + shutdown: () => { + processDocsByContact = undefined; + }, +}; + +const emitCallback = (instanceType, instance) => { + if (instanceType === 'task') { + results.tasks.push(instance); + } else if (instanceType === 'target') { + results.targets.push(instance); } +}; - /** - * Checks if `value` is `NaN`. - * - * **Note:** This method is based on - * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as - * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for - * `undefined` and other non-number values. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. - * @example - * - * _.isNaN(NaN); - * // => true - * - * _.isNaN(new Number(NaN)); - * // => true - * - * isNaN(undefined); - * // => true - * - * _.isNaN(undefined); - * // => false - */ - function isNaN(value) { - // An `NaN` primitive is the only value that is not equal to itself. - // Perform the `toStringTag` check first to avoid errors with some - // ActiveX objects in IE. - return isNumber(value) && value != +value; + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.nools.js": +/*!****************************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.nools.js ***! + \****************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3576641__) => { + +/** + * @module emitter.nools + * Encapsulates interactions with the nools library + * Promisifies the execution of partner "rules" code + * Ensures memory allocated by nools is freed after each run + */ +const nools = __nested_webpack_require_3576641__(/*! nools */ "./build/cht-core-4-6/node_modules/nools/index.js"); + +let flow; + +const startSession = function() { + if (!flow) { + throw Error('Failed to start task session. Not initialized'); } + const session = flow.getSession(); + const tasks = []; + const targets = []; + session.on('task', task => tasks.push(task)); + session.on('target', target => targets.push(target)); + + return { + assert: session.assert.bind(session), + dispose: session.dispose.bind(session), + + // session.match can return a thenable but not a promise. so wrap it in a real promise + match: () => new Promise((resolve, reject) => { + session.match(err => { + session.dispose(); + if (err) { + return reject(err); + } + + resolve({ tasks, targets }); + }); + }), + }; +}; + +module.exports = { + getContact: () => flow.getDefined('contact'), + initialize: (settings, scope) => { + flow = nools.compile(settings.rules, { + name: 'medic', + scope, + }); + + return !!flow; + }, + startSession: () => { + const session = startSession(); + return { + processDocsByContact: session.assert, + dispose: session.dispose, + result: session.match, + }; + }, + /** - * Checks if `value` is `null`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `null`, else `false`. - * @example - * - * _.isNull(null); - * // => true + * When upgrading to version 3.8, partners are required to make schema changes in their partner code + * https://docs.communityhealthtoolkit.org/core/releases/3.8.0/#breaking-changes * - * _.isNull(void 0); - * // => false + * @returns True if the schema changes are in place */ - function isNull(value) { - return value === null; + isLatestNoolsSchema: () => { + if (!flow) { + throw Error('task emitter is not enabled -- cannot determine schema version'); + } + + const Task = flow.getDefined('task'); + const Target = flow.getDefined('target'); + const hasProperty = (obj, attr) => Object.hasOwnProperty.call(obj, attr); + return hasProperty(Task.prototype, 'readyStart') && + hasProperty(Task.prototype, 'readyEnd') && + hasProperty(Target.prototype, 'contact'); + }, + + shutdown: () => { + nools.deleteFlows(); + flow = undefined; + }, +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/index.js": +/*!********************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/index.js ***! + \********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3579300__) => { + +/** + * @module rules-emitter + * Handles the lifecycle of a @RulesEmitter and marshales of documents into the emitter by contact + * + * @typedef {Object} RulesEmitter Responsible for executing the logic in _rules_ and returning _emissions_ + */ +const nootils = __nested_webpack_require_3579300__(/*! cht-nootils */ "./build/cht-core-4-6/node_modules/cht-nootils/src/nootils.js"); +const registrationUtils = __nested_webpack_require_3579300__(/*! @medic/registration-utils */ "./build/cht-core-4-6/shared-libs/registration-utils/src/index.js"); + +const javascriptEmitter = __nested_webpack_require_3579300__(/*! ./emitter.javascript */ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.javascript.js"); +const noolsEmitter = __nested_webpack_require_3579300__(/*! ./emitter.nools */ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.nools.js"); + +let emitter; + +/** +* Sets the rules emitter to an uninitialized state. +*/ +const shutdown = () => { + if (emitter) { + emitter.shutdown(); } + emitter = undefined; +}; + +module.exports = { /** - * Checks if `value` is classified as a `Number` primitive or object. - * - * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are - * classified as numbers, use the `_.isFinite` method. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a number, else `false`. - * @example - * - * _.isNumber(3); - * // => true - * - * _.isNumber(Number.MIN_VALUE); - * // => true - * - * _.isNumber(Infinity); - * // => true + * Initializes the rules emitter * - * _.isNumber('3'); - * // => false + * @param {Object} settings Settings for the behavior of the rules emitter + * @param {Object} settings.rules Rules code from settings doc + * @param {Object[]} settings.taskSchedules Task schedules from settings doc + * @param {Boolean} [settings.rulesAreDeclarative=true] Flag to indicate the content of settings.rules. When true, + * rules is processed as native JavaScript. When false, nools is used. + * @param {RulesEmitter} [settings.customEmitter] Optional custom RulesEmitter object + * @param {Object} settings.contact The logged in user's contact document + * @returns {Boolean} Success */ - function isNumber(value) { - return typeof value == 'number' || - (isObjectLike(value) && baseGetTag(value) == numberTag); - } + initialize: (settings) => { + if (emitter) { + throw Error('Attempted to initialize the rules emitter multiple times.'); + } + + if (!settings.rules) { + return false; + } + + shutdown(); + emitter = resolveEmitter(settings); + + try { + const settingsDoc = { tasks: { schedules: settings.taskSchedules } }; + const nootilsInstance = nootils(settingsDoc); + const scope = { + Utils: nootilsInstance, + user: settings.contact, + cht: settings.chtScriptApi, + }; + return emitter.initialize(settings, scope); + } catch (err) { + shutdown(); + throw err; + } + }, /** - * Checks if `value` is classified as a `RegExp` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. - * @example - * - * _.isRegExp(/abc/); - * // => true + * When upgrading to version 3.8, partners are required to make schema changes in their partner code + * https://docs.communityhealthtoolkit.org/core/releases/3.8.0/#breaking-changes * - * _.isRegExp('/abc/'); - * // => false + * @returns True if the schema changes are in place */ - var isRegExp = baseIsRegExp; + isLatestNoolsSchema: () => { + if (!emitter) { + throw Error('task emitter is not enabled -- cannot determine schema version'); + } + + return emitter.isLatestNoolsSchema(); + }, /** - * Checks if `value` is classified as a `String` primitive or object. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a string, else `false`. - * @example + * Runs the partner's rules code for a set of documents and returns all emissions from nools * - * _.isString('abc'); - * // => true + * @param {Object[]} contactDocs A set of contact documents + * @param {Object[]} reportDocs All of the contacts' reports + * @param {Object[]} taskDocs All of the contacts' task documents (must be linked by requester to a contact) * - * _.isString(1); - * // => false + * @returns {Promise} emissions The raw emissions from nools + * @returns {Object[]} emissions.tasks Array of task emissions + * @returns {Object[]} emissions.targets Array of target emissions */ - function isString(value) { - return typeof value == 'string' || - (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); - } + getEmissionsFor: (contactDocs, reportDocs = [], taskDocs = []) => { + if (!emitter) { + throw Error('task emitter is not enabled -- cannot get emissions'); + } + + if (!Array.isArray(contactDocs)) { + throw Error('invalid argument: contactDocs is expected to be an array'); + } + + if (!Array.isArray(reportDocs)) { + throw Error('invalid argument: reportDocs is expected to be an array'); + } + + if (!Array.isArray(taskDocs)) { + throw Error('invalid argument: taskDocs is expected to be an array'); + } + + const session = emitter.startSession(); + try { + const Contact = emitter.getContact(); + const docsByContact = marshalDocsByContact(Contact, contactDocs, reportDocs, taskDocs); + docsByContact.forEach(session.processDocsByContact); + } catch (err) { + session.dispose(); + throw err; + } + + return session.result(); + }, /** - * Checks if `value` is `undefined`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. - * @example - * - * _.isUndefined(void 0); - * // => true - * - * _.isUndefined(null); - * // => false + * @returns True if the rules emitter is initialized and ready for use */ - function isUndefined(value) { - return value === undefined; + isEnabled: () => !!emitter, + + shutdown, +}; + +const marshalDocsByContact = (Contact, contactDocs, reportDocs, taskDocs) => { + const factByContactId = contactDocs.reduce((agg, contact) => { + agg[contact._id] = new Contact({ contact, reports: [], tasks: [] }); + return agg; + }, {}); + + const factBySubjectId = contactDocs.reduce((agg, contactDoc) => { + const subjectIds = registrationUtils.getSubjectIds(contactDoc); + for (const subjectId of subjectIds) { + if (!agg[subjectId]) { + agg[subjectId] = factByContactId[contactDoc._id]; + } + } + return agg; + }, {}); + + const addHeadlessContact = (contactId) => { + const contact = contactId ? { _id: contactId } : undefined; + const newFact = new Contact({ contact, reports: [], tasks: [] }); + factByContactId[contactId] = factBySubjectId[contactId] = newFact; + return newFact; + }; + + for (const report of reportDocs) { + const subjectIdInReport = registrationUtils.getSubjectId(report); + const factOfPatient = factBySubjectId[subjectIdInReport] || addHeadlessContact(subjectIdInReport); + factOfPatient.reports.push(report); } - /** - * Converts `value` to an array. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to convert. - * @returns {Array} Returns the converted array. - * @example - * - * _.toArray({ 'a': 1, 'b': 2 }); - * // => [1, 2] - * - * _.toArray('abc'); - * // => ['a', 'b', 'c'] - * - * _.toArray(1); - * // => [] - * - * _.toArray(null); - * // => [] - */ - function toArray(value) { - if (!isArrayLike(value)) { - return values(value); + if (Object.hasOwnProperty.call(Contact.prototype, 'tasks')) { + for (const task of taskDocs) { + const sourceId = task.requester; + const factOfPatient = factBySubjectId[sourceId] || addHeadlessContact(sourceId); + factOfPatient.tasks.push(task); } - return value.length ? copyArray(value) : []; } - /** - * Converts `value` to an integer. - * - * **Note:** This method is loosely based on - * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toInteger(3.2); - * // => 3 - * - * _.toInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toInteger(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toInteger('3.2'); - * // => 3 - */ - var toInteger = Number; + return Object.keys(factByContactId).map(key => { + factByContactId[key].reports = factByContactId[key].reports.sort((a, b) => a.reported_date - b.reported_date); + return factByContactId[key]; + }); // Object.values(factByContactId) +}; - /** - * Converts `value` to a number. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. - * @example - * - * _.toNumber(3.2); - * // => 3.2 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity - * - * _.toNumber('3.2'); - * // => 3.2 - */ - var toNumber = Number; +const resolveEmitter = (settings = {}) => { + const { rulesAreDeclarative, customEmitter } = settings; + if (customEmitter !== null && typeof customEmitter === 'object') { + return customEmitter; + } + + return rulesAreDeclarative ? javascriptEmitter : noolsEmitter; +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-state-store.js": +/*!******************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/rules-state-store.js ***! + \******************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3585925__) => { + +/** + * @module rules-state-store + * In-memory datastore containing + * 1. Details on the state of each contact's rules calculations + * 2. Target emissions @see target-state + */ +const md5 = __nested_webpack_require_3585925__(/*! md5 */ "./build/cht-core-4-6/node_modules/md5/md5.js"); +const calendarInterval = __nested_webpack_require_3585925__(/*! @medic/calendar-interval */ "./build/cht-core-4-6/shared-libs/calendar-interval/src/index.js"); +const targetState = __nested_webpack_require_3585925__(/*! ./target-state */ "./build/cht-core-4-6/shared-libs/rules-engine/src/target-state.js"); +const EXPIRE_CALCULATION_AFTER_MS = 7 * 24 * 60 * 60 * 1000; +let state; +let currentUserContact; +let currentUserSettings; +let onStateChange; + +const self = { /** - * Converts `value` to a string. An empty string is returned for `null` - * and `undefined` values. The sign of `-0` is preserved. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - * @example - * - * _.toString(null); - * // => '' - * - * _.toString(-0); - * // => '-0' + * Initializes the rules-state-store from an existing state. If existing state is invalid, builds an empty state. * - * _.toString([1, 2, 3]); - * // => '1,2,3' + * @param {Object} existingState State object previously passed to the stateChangeCallback + * @param {Object} settings Settings for the behavior of the rules store + * @param {Object} settings.contact User's hydrated contact document + * @param {Object} settings.user User's user-settings document + * @param {Object} stateChangeCallback Callback which is invoked whenever the state changes. + * Receives the updated state as the only parameter. + * @returns {Boolean} that represents whether or not the state needs to be rebuilt */ - function toString(value) { - if (typeof value == 'string') { - return value; + load: (existingState, settings, stateChangeCallback) => { + if (state) { + throw Error('Attempted to initialize the rules-state-store multiple times.'); } - return value == null ? '' : (value + ''); - } - /*------------------------------------------------------------------------*/ + state = existingState; + currentUserContact = settings.contact; + currentUserSettings = settings.user; + setOnChangeState(stateChangeCallback); + + const rulesConfigHash = hashRulesConfig(settings); + if (state && state.rulesConfigHash !== rulesConfigHash) { + state.stale = true; + } + + return !state || state.stale; + }, /** - * Assigns own enumerable string keyed properties of source objects to the - * destination object. Source objects are applied from left to right. - * Subsequent sources overwrite property assignments of previous sources. - * - * **Note:** This method mutates `object` and is loosely based on - * [`Object.assign`](https://mdn.io/Object/assign). - * - * @static - * @memberOf _ - * @since 0.10.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.assignIn - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * function Bar() { - * this.c = 3; - * } - * - * Foo.prototype.b = 2; - * Bar.prototype.d = 4; + * Initializes an empty rules-state-store. * - * _.assign({ 'a': 0 }, new Foo, new Bar); - * // => { 'a': 1, 'c': 3 } + * @param {Object} settings Settings for the behavior of the rules store + * @param {Object} settings.contact User's hydrated contact document + * @param {Object} settings.user User's user-settings document + * @param {number} settings.monthStartDate reporting interval start date + * @param {Object} stateChangeCallback Callback which is invoked whenever the state changes. + * Receives the updated state as the only parameter. */ - var assign = createAssigner(function(object, source) { - copyObject(source, nativeKeys(source), object); - }); + build: (settings, stateChangeCallback) => { + if (state && !state.stale) { + throw Error('Attempted to initialize the rules-state-store multiple times.'); + } + + state = { + rulesConfigHash: hashRulesConfig(settings), + contactState: {}, + targetState: targetState.createEmptyState(settings.targets), + monthStartDate: settings.monthStartDate, + }; + currentUserContact = settings.contact; + currentUserSettings = settings.user; + + setOnChangeState(stateChangeCallback); + return onStateChange(state); + }, /** - * This method is like `_.assign` except that it iterates over own and - * inherited source properties. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias extend - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.assign - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * function Bar() { - * this.c = 3; - * } + * "Dirty" indicates that the contact's task documents are not up to date. They should be refreshed before being used. * - * Foo.prototype.b = 2; - * Bar.prototype.d = 4; + * The dirty state can be due to: + * 1. The time of a contact's most recent task calculation is unknown + * 2. The contact's most recent task calculation expires + * 3. The contact is explicitly marked as dirty + * 4. Configurations impacting rules calculations have changed * - * _.assignIn({ 'a': 0 }, new Foo, new Bar); - * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } + * @param {string} contactId The id of the contact to test for dirtiness + * @returns {Boolean} True if dirty */ - var assignIn = createAssigner(function(object, source) { - copyObject(source, nativeKeysIn(source), object); - }); + isDirty: contactId => { + if (!contactId) { + return false; + } - /** - * Creates an object that inherits from the `prototype` object. If a - * `properties` object is given, its own enumerable string keyed properties - * are assigned to the created object. - * - * @static - * @memberOf _ - * @since 2.3.0 - * @category Object - * @param {Object} prototype The object to inherit from. - * @param {Object} [properties] The properties to assign to the object. - * @returns {Object} Returns the new object. - * @example - * - * function Shape() { - * this.x = 0; - * this.y = 0; - * } - * - * function Circle() { - * Shape.call(this); - * } - * - * Circle.prototype = _.create(Shape.prototype, { - * 'constructor': Circle - * }); - * - * var circle = new Circle; - * circle instanceof Circle; - * // => true + if (!state.contactState[contactId]) { + return true; + } + + const now = Date.now(); + const { calculatedAt, expireAt, isDirty } = state.contactState[contactId]; + return !expireAt || + isDirty || + calculatedAt > now || /* system clock changed */ + expireAt < now; /* isExpired */ + }, + + /** + * Determines if either the settings document or user's hydrated contact document have changed in a way which + * will impact the result of rules calculations. + * If they have changed in a meaningful way, the calculation state of all contacts is reset * - * circle instanceof Shape; - * // => true + * @param {Object} settings Settings for the behavior of the rules store + * @returns {Boolean} True if the state of all contacts has been reset */ - function create(prototype, properties) { - var result = baseCreate(prototype); - return properties == null ? result : assign(result, properties); - } + rulesConfigChange: (settings) => { + const rulesConfigHash = hashRulesConfig(settings); + if (state.rulesConfigHash !== rulesConfigHash) { + state = { + rulesConfigHash, + contactState: {}, + targetState: targetState.createEmptyState(settings.targets), + monthStartDate: settings.monthStartDate, + }; + currentUserContact = settings.contact; + currentUserSettings = settings.user; + + onStateChange(state); + return true; + } + + return false; + }, /** - * Assigns own and inherited enumerable string keyed properties of source - * objects to the destination object for all destination properties that - * resolve to `undefined`. Source objects are applied from left to right. - * Once a property is set, additional values of the same property are ignored. - * - * **Note:** This method mutates `object`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.defaultsDeep - * @example - * - * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); - * // => { 'a': 1, 'b': 2 } + * @param {int} calculatedAt Timestamp of the calculation + * @param {string[]} contactIds Array of contact ids to be marked as freshly calculated */ - var defaults = baseRest(function(object, sources) { - object = Object(object); + markFresh: (calculatedAt, contactIds) => { + if (!Array.isArray(contactIds)) { + contactIds = [contactIds]; + } + contactIds = contactIds.filter(id => id); - var index = -1; - var length = sources.length; - var guard = length > 2 ? sources[2] : undefined; + if (contactIds.length === 0) { + return; + } - if (guard && isIterateeCall(sources[0], sources[1], guard)) { - length = 1; + const reportingInterval = calendarInterval.getCurrent(state.monthStartDate); + const defaultExpiry = calculatedAt + EXPIRE_CALCULATION_AFTER_MS; + + for (const contactId of contactIds) { + state.contactState[contactId] = { + calculatedAt, + expireAt: Math.min(reportingInterval.end, defaultExpiry), + }; } - while (++index < length) { - var source = sources[index]; - var props = keysIn(source); - var propsIndex = -1; - var propsLength = props.length; + return onStateChange(state); + }, - while (++propsIndex < propsLength) { - var key = props[propsIndex]; - var value = object[key]; + /** + * @param {string[]} contactIds Array of contact ids to be marked as dirty + */ + markDirty: contactIds => { + if (!Array.isArray(contactIds)) { + contactIds = [contactIds]; + } + contactIds = contactIds.filter(id => id); - if (value === undefined || - (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) { - object[key] = source[key]; - } + if (contactIds.length === 0) { + return; + } + + for (const contactId of contactIds) { + if (!state.contactState[contactId]) { + state.contactState[contactId] = {}; } + + state.contactState[contactId].isDirty = true; } - return object; - }); + return onStateChange(state); + }, /** - * Checks if `path` is a direct property of `object`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - * @example - * - * var object = { 'a': { 'b': 2 } }; - * var other = _.create({ 'a': _.create({ 'b': 2 }) }); - * - * _.has(object, 'a'); - * // => true - * - * _.has(object, 'a.b'); - * // => true - * - * _.has(object, ['a', 'b']); - * // => true - * - * _.has(other, 'a'); - * // => false + * @returns {string[]} The id of all contacts tracked by the store */ - function has(object, path) { - return object != null && hasOwnProperty.call(object, path); - } + getContactIds: () => Object.keys(state.contactState), /** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * for more details. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; + * The rules system supports the concept of "headless" reports and "headless" task documents. In these scenarios, + * a report exists on a user's device while the associated contact document of that report is not on the device. + * A common scenario associated with this case is during supervisor workflows where supervisors sync reports with the + * needs_signoff attribute but not the associated patient. * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) + * In these cases, getting a list of "all the contacts with rules" requires us to look not just through contact + * docs, but also through reports. To avoid this costly operation, the rules-state-store maintains a flag which + * indicates if the contact ids in the store can serve as a trustworthy authority. * - * _.keys('hi'); - * // => ['0', '1'] + * markAllFresh should be called when the list of contact ids within the store is the complete set of contacts with + * rules */ - var keys = nativeKeys; + markAllFresh: (calculatedAt, contactIds) => { + state.allContactIds = true; + return self.markFresh(calculatedAt, contactIds); + }, /** - * Creates an array of the own and inherited enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keysIn(new Foo); - * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + * @returns True if markAllFresh has been called on the current store state. */ - var keysIn = nativeKeysIn; + hasAllContacts: () => !!state.allContactIds, /** - * Creates an object composed of the picked `object` properties. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {...(string|string[])} [paths] The property paths to pick. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.pick(object, ['a', 'c']); - * // => { 'a': 1, 'c': 3 } + * @returns {string} User contact document */ - var pick = flatRest(function(object, paths) { - return object == null ? {} : basePick(object, paths); - }); + currentUserContact: () => currentUserContact, /** - * This method is like `_.get` except that if the resolved value is a - * function it's invoked with the `this` binding of its parent object and - * its result is returned. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to resolve. - * @param {*} [defaultValue] The value returned for `undefined` resolved values. - * @returns {*} Returns the resolved value. - * @example - * - * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] }; - * - * _.result(object, 'a[0].b.c1'); - * // => 3 - * - * _.result(object, 'a[0].b.c2'); - * // => 4 - * - * _.result(object, 'a[0].b.c3', 'default'); - * // => 'default' - * - * _.result(object, 'a[0].b.c3', _.constant('default')); - * // => 'default' + * @returns {string} User settings document */ - function result(object, path, defaultValue) { - var value = object == null ? undefined : object[path]; - if (value === undefined) { - value = defaultValue; - } - return isFunction(value) ? value.call(object) : value; - } + currentUserSettings: () => currentUserSettings, /** - * Creates an array of the own enumerable string keyed property values of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property values. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.values(new Foo); - * // => [1, 2] (iteration order is not guaranteed) - * - * _.values('hi'); - * // => ['h', 'i'] + * @returns {number} The timestamp when the current loaded state was last updated */ - function values(object) { - return object == null ? [] : baseValues(object, keys(object)); - } - - /*------------------------------------------------------------------------*/ + stateLastUpdatedAt: () => state.calculatedAt, /** - * Converts the characters "&", "<", ">", '"', and "'" in `string` to their - * corresponding HTML entities. - * - * **Note:** No other characters are escaped. To escape additional - * characters use a third-party library like [_he_](https://mths.be/he). - * - * Though the ">" character is escaped for symmetry, characters like - * ">" and "/" don't need escaping in HTML and have no special meaning - * unless they're part of a tag or unquoted attribute value. See - * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) - * (under "semi-related fun fact") for more details. - * - * When working with HTML you should always - * [quote attribute values](http://wonko.com/post/html-escaping) to reduce - * XSS vectors. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. - * @example - * - * _.escape('fred, barney, & pebbles'); - * // => 'fred, barney, & pebbles' + * @returns {number} current monthStartDate */ - function escape(string) { - string = toString(string); - return (string && reHasUnescapedHtml.test(string)) - ? string.replace(reUnescapedHtml, escapeHtmlChar) - : string; - } + getMonthStartDate: () => state.monthStartDate, - /*------------------------------------------------------------------------*/ + /** + * @returns {boolean} whether or not the state is loaded + */ + isLoaded: () => !!state, /** - * This method returns the first argument it receives. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Util - * @param {*} value Any value. - * @returns {*} Returns `value`. - * @example - * - * var object = { 'a': 1 }; + * Store a set of target emissions which were emitted by refreshing a set of contacts * - * console.log(_.identity(object) === object); - * // => true + * @param {string[]} contactIds An array of contact ids which produced these targetEmissions by being refreshed. + * If undefined, all contacts are updated. + * @param {Object[]} targetEmissions An array of target emissions (the result of the rules-emitter). */ - function identity(value) { - return value; - } + storeTargetEmissions: (contactIds, targetEmissions) => { + const isUpdated = targetState.storeTargetEmissions(state.targetState, contactIds, targetEmissions); + if (isUpdated) { + return onStateChange(state); + } + }, /** - * Creates a function that invokes `func` with the arguments of the created - * function. If `func` is a property name, the created function returns the - * property value for a given element. If `func` is an array or object, the - * created function returns `true` for elements that contain the equivalent - * source properties, otherwise it returns `false`. - * - * @static - * @since 4.0.0 - * @memberOf _ - * @category Util - * @param {*} [func=_.identity] The value to convert to a callback. - * @returns {Function} Returns the callback. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': true }, - * { 'user': 'fred', 'age': 40, 'active': false } - * ]; - * - * // The `_.matches` iteratee shorthand. - * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true })); - * // => [{ 'user': 'barney', 'age': 36, 'active': true }] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.filter(users, _.iteratee(['user', 'fred'])); - * // => [{ 'user': 'fred', 'age': 40 }] - * - * // The `_.property` iteratee shorthand. - * _.map(users, _.iteratee('user')); - * // => ['barney', 'fred'] + * Aggregates the stored target emissions into target models * - * // Create custom iteratee shorthands. - * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) { - * return !_.isRegExp(func) ? iteratee(func) : function(string) { - * return func.test(string); - * }; - * }); + * @param {Function(emission)=} targetEmissionFilter Filter function to filter which target emissions should + * be aggregated + * @example aggregateStoredTargetEmissions(emission => emission.date > moment().startOf('month').valueOf()) * - * _.filter(['abc', 'def'], /ef/); - * // => ['def'] + * @returns {Object[]} result + * @returns {string} result[n].* All attributes of the target as defined in the settings doc + * @returns {Integer} result[n].total The total number of unique target emission ids matching instanceFilter + * @returns {Integer} result[n].pass The number of unique target emission ids matching instanceFilter with the + * latest emission with truthy "pass" + * @returns {Integer} result[n].percent The percentage of pass/total */ - var iteratee = baseIteratee; + aggregateStoredTargetEmissions: targetEmissionFilter => targetState.aggregateStoredTargetEmissions( + state.targetState, + targetEmissionFilter + ), /** - * Creates a function that performs a partial deep comparison between a given - * object and `source`, returning `true` if the given object has equivalent - * property values, else `false`. - * - * **Note:** The created function is equivalent to `_.isMatch` with `source` - * partially applied. - * - * Partial comparisons will match empty array and empty object `source` - * values against any array or object value, respectively. See `_.isEqual` - * for a list of supported value comparisons. - * - * **Note:** Multiple values can be checked by combining several matchers - * using `_.overSome` - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Util - * @param {Object} source The object of property values to match. - * @returns {Function} Returns the new spec function. - * @example - * - * var objects = [ - * { 'a': 1, 'b': 2, 'c': 3 }, - * { 'a': 4, 'b': 5, 'c': 6 } - * ]; - * - * _.filter(objects, _.matches({ 'a': 4, 'c': 6 })); - * // => [{ 'a': 4, 'b': 5, 'c': 6 }] - * - * // Checking for several possible values - * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })])); - * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }] + * Returns a list of UUIDs of tracked contacts that are marked as dirty + * @returns {Array} list of dirty contacts UUIDs */ - function matches(source) { - return baseMatches(assign({}, source)); - } + getDirtyContacts: () => self.getContactIds().filter(self.isDirty), +}; + +const hashRulesConfig = (settings) => { + const asString = JSON.stringify(settings); + return md5(asString); +}; + +const setOnChangeState = (stateChangeCallback) => { + onStateChange = (state) => { + state.calculatedAt = new Date().getTime(); + + if (stateChangeCallback && typeof stateChangeCallback === 'function') { + return stateChangeCallback(state); + } + }; +}; + +// ensure all exported functions are only ever called after initialization +module.exports = Object.keys(self).reduce((agg, key) => { + agg[key] = (...args) => { + if (!['build', 'load', 'isLoaded'].includes(key) && (!state || !state.contactState)) { + throw Error(`Invalid operation: Attempted to invoke rules-state-store.${key} before call to build or load`); + } + + return self[key](...args); + }; + return agg; +}, {}); + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/target-state.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/target-state.js ***! + \*************************************************************************/ +/***/ ((module) => { + +/** + * @module target-state + * + * Stores raw target-emissions in a minified, efficient, deterministic structure + * Handles removal of "cancelled" target emissions + * Aggregates target emissions into targets + */ + +/** @summary state + * Functions in this module all accept a "state" parameter or return a "state" object. + * This state has the following structure: + * + * @example + * { + * target.id: { + * id: 'target_id', + * type: 'count', + * goal: 0, + * .. + * + * emissions: { + * emission.id: { + * requestor.id: { + * pass: boolean, + * date: timestamp, + * order: timestamp, + * }, + * .. + * }, + * .. + * } + * }, + * .. + * } + */ +module.exports = { /** - * Adds all own enumerable string keyed function properties of a source - * object to the destination object. If `object` is a function, then methods - * are added to its prototype as well. - * - * **Note:** Use `_.runInContext` to create a pristine `lodash` function to - * avoid conflicts caused by modifying the original. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Util - * @param {Function|Object} [object=lodash] The destination object. - * @param {Object} source The object of functions to add. - * @param {Object} [options={}] The options object. - * @param {boolean} [options.chain=true] Specify whether mixins are chainable. - * @returns {Function|Object} Returns `object`. - * @example - * - * function vowels(string) { - * return _.filter(string, function(v) { - * return /[aeiou]/i.test(v); - * }); - * } - * - * _.mixin({ 'vowels': vowels }); - * _.vowels('fred'); - * // => ['e'] - * - * _('fred').vowels().value(); - * // => ['e'] + * Builds an empty target-state. * - * _.mixin({ 'vowels': vowels }, { 'chain': false }); - * _('fred').vowels(); - * // => ['e'] + * @param {Object[]} targets An array of target definitions */ - function mixin(object, source, options) { - var props = keys(source), - methodNames = baseFunctions(source, props); + createEmptyState: (targets=[]) => { + return targets + .reduce((agg, definition) => { + agg[definition.id] = Object.assign({}, definition, { emissions: {} }); + return agg; + }, {}); + }, - if (options == null && - !(isObject(source) && (methodNames.length || !props.length))) { - options = source; - source = object; - object = this; - methodNames = baseFunctions(source, keys(source)); + storeTargetEmissions: (state, contactIds, targetEmissions) => { + let isUpdated = false; + if (!Array.isArray(targetEmissions)) { + throw Error('targetEmissions argument must be an array'); } - var chain = !(isObject(options) && 'chain' in options) || !!options.chain, - isFunc = isFunction(object); - - baseEach(methodNames, function(methodName) { - var func = source[methodName]; - object[methodName] = func; - if (isFunc) { - object.prototype[methodName] = function() { - var chainAll = this.__chain__; - if (chain || chainAll) { - var result = object(this.__wrapped__), - actions = result.__actions__ = copyArray(this.__actions__); - actions.push({ 'func': func, 'args': arguments, 'thisArg': object }); - result.__chain__ = chainAll; - return result; + // Remove all emissions that were previously emitted by the contact ("cancelled emissions") + if (!contactIds) { + for (const targetId of Object.keys(state)) { + state[targetId].emissions = {}; + } + } else { + for (const contactId of contactIds) { + for (const targetId of Object.keys(state)) { + for (const emissionId of Object.keys(state[targetId].emissions)) { + const emission = state[targetId].emissions[emissionId]; + if (emission[contactId]) { + delete emission[contactId]; + isUpdated = true; + } } - return func.apply(object, arrayPush([this.value()], arguments)); + } + } + } + + // Merge the emission data into state + for (const emission of targetEmissions) { + const target = state[emission.type]; + const requestor = emission.contact && emission.contact._id; + if (target && requestor && !emission.deleted) { + const targetRequestors = target.emissions[emission._id] = target.emissions[emission._id] || {}; + targetRequestors[requestor] = { + pass: !!emission.pass, + groupBy: emission.groupBy, + date: emission.date, + order: emission.contact.reported_date || -1, }; + isUpdated = true; } - }); + } - return object; - } + return isUpdated; + }, + + aggregateStoredTargetEmissions: (state, targetEmissionFilter) => { + const pick = (obj, attrs) => attrs + .reduce((agg, attr) => { + if (Object.hasOwnProperty.call(obj, attr)) { + agg[attr] = obj[attr]; + } + return agg; + }, {}); + + const scoreTarget = target => { + const emissionIds = Object.keys(target.emissions); + const relevantEmissions = emissionIds + // emissions passing the "targetEmissionFilter" + .map(emissionId => { + const requestorIds = Object.keys(target.emissions[emissionId]); + const filteredInstanceIds = requestorIds.filter(requestorId => { + return !targetEmissionFilter || targetEmissionFilter(target.emissions[emissionId][requestorId]); + }); + return pick(target.emissions[emissionId], filteredInstanceIds); + }) + + // if there are multiple emissions with the same id emitted by different contacts, disambiguate them + .map(emissionsByRequestor => emissionOfLatestRequestor(emissionsByRequestor)) + .filter(emission => emission); + + const passingThreshold = target.passesIfGroupCount && target.passesIfGroupCount.gte; + if (!passingThreshold) { + return { + pass: relevantEmissions.filter(emission => emission.pass).length, + total: relevantEmissions.length, + }; + } + + const countPassedEmissionsByGroup = {}; + const countEmissionsByGroup = {}; + + relevantEmissions.forEach(emission => { + const groupBy = emission.groupBy; + if (!groupBy) { + return; + } + if (!countPassedEmissionsByGroup[groupBy]) { + countPassedEmissionsByGroup[groupBy] = 0; + countEmissionsByGroup[groupBy] = 0; + } + countEmissionsByGroup[groupBy]++; + if (emission.pass) { + countPassedEmissionsByGroup[groupBy]++; + } + }); + + const groups = Object.keys(countEmissionsByGroup); + + return { + pass: groups.filter(group => countPassedEmissionsByGroup[group] >= passingThreshold).length, + total: groups.length, + }; + }; + + const aggregateTarget = target => { + const aggregated = pick( + target, + ['id', 'type', 'goal', 'translation_key', 'name', 'icon', 'subtitle_translation_key', 'visible'] + ); + aggregated.value = scoreTarget(target); + + if (aggregated.type === 'percent') { + aggregated.value.percent = aggregated.value.total ? + Math.round(aggregated.value.pass * 100 / aggregated.value.total) : 0; + } + + return aggregated; + }; + + const emissionOfLatestRequestor = emissionsByRequestor => { + return Object.keys(emissionsByRequestor).reduce((previousValue, requestorId) => { + const current = emissionsByRequestor[requestorId]; + if (!previousValue || !previousValue.order || current.order > previousValue.order) { + return current; + } + return previousValue; + }, undefined); + }; + + return Object.keys(state).map(targetId => aggregateTarget(state[targetId])); + }, +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/task-states.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/task-states.js ***! + \************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3602797__) => { + +/** + * @module task-states + * As defined by the FHIR task standard https://www.hl7.org/fhir/task.html#statemachine + */ + +const moment = __nested_webpack_require_3602797__(/*! moment */ "./build/cht-core-4-6/node_modules/moment/moment.js"); + +/** + * Problems: + * If all emissions are converted to documents, heavy users will create thousands of legacy task docs after upgrading + * to this rules-engine. + * In order to purge task documents, we need to guarantee that they won't just be recreated after they are purged. + * The two scenarios above are important for maintaining the client-side performance of the app. + * + * Therefore, we only consider task emissions "timely" if they end within a fixed time period. + * However, if this window is too short then users who don't login frequently may fail to create a task document at all. + * Looking at time-between-reports for active projects, a time window of 60 days will ensure that 99.9% of tasks are + * recorded as docs. + */ +const TIMELY_WINDOW = { + start: 60, // days + end: 180 // days +}; + +// This must be a comparable string format to avoid a bunch of parsing. For example, "2000-01-01" < "2010-11-31" +const formatString = 'YYYY-MM-DD'; +const States = { /** - * Reverts the `_` variable to its previous value and returns a reference to - * the `lodash` function. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Util - * @returns {Function} Returns the `lodash` function. - * @example - * - * var lodash = _.noConflict(); + * Task has been calculated but it is scheduled in the future */ - function noConflict() { - if (root._ === this) { - root._ = oldDash; - } - return this; - } + Draft: 'Draft', /** - * This method returns `undefined`. - * - * @static - * @memberOf _ - * @since 2.3.0 - * @category Util - * @example - * - * _.times(2, _.noop); - * // => [undefined, undefined] + * Task is currently showing to the user */ - function noop() { - // No operation performed. - } + Ready: 'Ready', /** - * Generates a unique ID. If `prefix` is given, the ID is appended to it. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Util - * @param {string} [prefix=''] The value to prefix the ID with. - * @returns {string} Returns the unique ID. - * @example - * - * _.uniqueId('contact_'); - * // => 'contact_104' - * - * _.uniqueId(); - * // => '105' + * Task was not emitted when refreshing the contact + * Task resulted from invalid emissions */ - function uniqueId(prefix) { - var id = ++idCounter; - return toString(prefix) + id; - } - - /*------------------------------------------------------------------------*/ + Cancelled: 'Cancelled', /** - * Computes the maximum value of `array`. If `array` is empty or falsey, - * `undefined` is returned. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Math - * @param {Array} array The array to iterate over. - * @returns {*} Returns the maximum value. - * @example - * - * _.max([4, 2, 8, 6]); - * // => 8 - * - * _.max([]); - * // => undefined + * Task was emitted with { resolved: true } */ - function max(array) { - return (array && array.length) - ? baseExtremum(array, identity, baseGt) - : undefined; - } + Completed: 'Completed', /** - * Computes the minimum value of `array`. If `array` is empty or falsey, - * `undefined` is returned. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Math - * @param {Array} array The array to iterate over. - * @returns {*} Returns the minimum value. - * @example - * - * _.min([4, 2, 8, 6]); - * // => 2 - * - * _.min([]); - * // => undefined + * Task was never terminated and is now outside the allowed time window */ - function min(array) { - return (array && array.length) - ? baseExtremum(array, identity, baseLt) - : undefined; + Failed: 'Failed', +}; + +const getDisplayWindow = (taskEmission) => { + const hasExistingDisplayWindow = taskEmission.startDate || taskEmission.endDate; + if (hasExistingDisplayWindow) { + return { + dueDate: taskEmission.dueDate, + startDate: taskEmission.startDate, + endDate: taskEmission.endDate, + }; } - /*------------------------------------------------------------------------*/ + const dueDate = moment(taskEmission.date); + if (!dueDate.isValid()) { + return { dueDate: NaN, startDate: NaN, endDate: NaN }; + } - // Add methods that return wrapped values in chain sequences. - lodash.assignIn = assignIn; - lodash.before = before; - lodash.bind = bind; - lodash.chain = chain; - lodash.compact = compact; - lodash.concat = concat; - lodash.create = create; - lodash.defaults = defaults; - lodash.defer = defer; - lodash.delay = delay; - lodash.filter = filter; - lodash.flatten = flatten; - lodash.flattenDeep = flattenDeep; - lodash.iteratee = iteratee; - lodash.keys = keys; - lodash.map = map; - lodash.matches = matches; - lodash.mixin = mixin; - lodash.negate = negate; - lodash.once = once; - lodash.pick = pick; - lodash.slice = slice; - lodash.sortBy = sortBy; - lodash.tap = tap; - lodash.thru = thru; - lodash.toArray = toArray; - lodash.values = values; + return { + dueDate: dueDate.format(formatString), + startDate: dueDate.clone().subtract(taskEmission.readyStart || 0, 'days').format(formatString), + endDate: dueDate.clone().add(taskEmission.readyEnd || 0, 'days').format(formatString), + }; +}; - // Add aliases. - lodash.extend = assignIn; +const mostReadyOrder = [States.Ready, States.Draft, States.Completed, States.Failed, States.Cancelled]; +const orderOf = state => { + const order = mostReadyOrder.indexOf(state); + return order >= 0 ? order : mostReadyOrder.length; +}; - // Add methods to `lodash.prototype`. - mixin(lodash, lodash); +module.exports = { + isTerminal: state => [States.Cancelled, States.Completed, States.Failed].includes(state), - /*------------------------------------------------------------------------*/ + isMoreReadyThan: (stateA, stateB) => orderOf(stateA) < orderOf(stateB), - // Add methods that return unwrapped values in chain sequences. - lodash.clone = clone; - lodash.escape = escape; - lodash.every = every; - lodash.find = find; - lodash.forEach = forEach; - lodash.has = has; - lodash.head = head; - lodash.identity = identity; - lodash.indexOf = indexOf; - lodash.isArguments = isArguments; - lodash.isArray = isArray; - lodash.isBoolean = isBoolean; - lodash.isDate = isDate; - lodash.isEmpty = isEmpty; - lodash.isEqual = isEqual; - lodash.isFinite = isFinite; - lodash.isFunction = isFunction; - lodash.isNaN = isNaN; - lodash.isNull = isNull; - lodash.isNumber = isNumber; - lodash.isObject = isObject; - lodash.isRegExp = isRegExp; - lodash.isString = isString; - lodash.isUndefined = isUndefined; - lodash.last = last; - lodash.max = max; - lodash.min = min; - lodash.noConflict = noConflict; - lodash.noop = noop; - lodash.reduce = reduce; - lodash.result = result; - lodash.size = size; - lodash.some = some; - lodash.uniqueId = uniqueId; + compareState: (stateA, stateB) => orderOf(stateA) - orderOf(stateB), - // Add aliases. - lodash.each = forEach; - lodash.first = head; + calculateState: (taskEmission, timestamp) => { + if (!taskEmission) { + return false; + } - mixin(lodash, (function() { - var source = {}; - baseForOwn(lodash, function(func, methodName) { - if (!hasOwnProperty.call(lodash.prototype, methodName)) { - source[methodName] = func; - } - }); - return source; - }()), { 'chain': false }); + if (taskEmission.resolved) { + return States.Completed; + } - /*------------------------------------------------------------------------*/ + if (taskEmission.deleted) { + return States.Cancelled; + } - /** - * The semantic version number. - * - * @static - * @memberOf _ - * @type {string} - */ - lodash.VERSION = VERSION; + // invalid data yields falsey + if (!taskEmission.date && !taskEmission.dueDate) { + return false; + } - // Add `Array` methods to `lodash.prototype`. - baseEach(['pop', 'join', 'replace', 'reverse', 'split', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) { - var func = (/^(?:replace|split)$/.test(methodName) ? String.prototype : arrayProto)[methodName], - chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru', - retUnwrapped = /^(?:pop|join|replace|shift)$/.test(methodName); + const { startDate, endDate } = getDisplayWindow(taskEmission); + if (!startDate || !endDate || startDate > endDate || endDate < startDate) { + return false; + } + + const timestampAsDate = moment(timestamp).format(formatString); + if (startDate > timestampAsDate) { + return States.Draft; + } + + if (endDate < timestampAsDate) { + return States.Failed; + } + + return States.Ready; + }, + + getDisplayWindow, + + states: States, + + isTimely: (taskEmission, timestamp) => { + const { startDate, endDate } = getDisplayWindow(taskEmission); + const earliest = moment(timestamp).subtract(TIMELY_WINDOW.start, 'days'); + const latest = moment(timestamp).add(TIMELY_WINDOW.end, 'days'); + return earliest.isBefore(endDate) && latest.isAfter(startDate); + }, + + setStateOnTaskDoc: (taskDoc, updatedState, timestamp = Date.now(), reason = '') => { + if (!taskDoc) { + return; + } - lodash.prototype[methodName] = function() { - var args = arguments; - if (retUnwrapped && !this.__chain__) { - var value = this.value(); - return func.apply(isArray(value) ? value : [], args); + if (!updatedState) { + taskDoc.state = States.Cancelled; + taskDoc.stateReason = 'invalid'; + } else { + taskDoc.state = updatedState; + if (reason) { + taskDoc.stateReason = reason; } - return this[chainName](function(value) { - return func.apply(isArray(value) ? value : [], args); - }); - }; - }); - - // Add chain sequence methods to the `lodash` wrapper. - lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue; + } - /*--------------------------------------------------------------------------*/ + const stateHistory = taskDoc.stateHistory = taskDoc.stateHistory || []; + const mostRecentState = stateHistory[stateHistory.length - 1]; + if (!mostRecentState || taskDoc.state !== mostRecentState.state) { + const stateChange = { state: taskDoc.state, timestamp }; + stateHistory.push(stateChange); + } - // Some AMD build optimizers, like r.js, check for condition patterns like: - if (true) { - // Expose Lodash on the global object to prevent errors when Lodash is - // loaded by a script tag in the presence of an AMD loader. - // See http://requirejs.org/docs/errors.html#mismatch for more details. - // Use `_.noConflict` to remove Lodash from the global object. - root._ = lodash; + return taskDoc; + }, +}; - // Define as an anonymous module so, through path mapping, it can be - // referenced as the "underscore" module. - !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { - return lodash; - }).call(exports, __webpack_require__, exports, module), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } - // Check for `exports` after `define` in case a build optimizer adds it. - else {} -}.call(this)); +Object.assign(module.exports, States); /***/ }), -/***/ "./node_modules/lodash/eq.js": -/*!***********************************!*\ - !*** ./node_modules/lodash/eq.js ***! - \***********************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/transform-task-emission-to-doc.js": +/*!*******************************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/transform-task-emission-to-doc.js ***! + \*******************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3608031__) => { /** - * Performs a - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * comparison between two values to determine if they are equivalent. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.eq(object, object); - * // => true - * - * _.eq(object, other); - * // => false - * - * _.eq('a', 'a'); - * // => true - * - * _.eq('a', Object('a')); - * // => false - * - * _.eq(NaN, NaN); - * // => true + * @module transform-task-emission-to-doc + * Transforms a task emission into the schema used by task documents + * Minifies all unneeded data from the emission + * Merges emission data into an existing document, or creates a new task document (as appropriate) */ -function eq(value, other) { - return value === other || (value !== value && other !== other); -} -module.exports = eq; +const TaskStates = __nested_webpack_require_3608031__(/*! ./task-states */ "./build/cht-core-4-6/shared-libs/rules-engine/src/task-states.js"); +/** + * @param {Object} taskEmission A task emission from the rules engine + * @param {int} calculatedAt Epoch timestamp at the time the emission was calculated + * @param {Object} existingDoc The most recent taskDocument with the same emission id -/***/ }), + * @returns {Object} result + * @returns {Object} result.taskDoc The result of the transformation + * @returns {Boolean} result.isUpdated True if the document is new or has been altered + */ +module.exports = (taskEmission, calculatedAt, userSettingsId, existingDoc) => { + const emittedState = TaskStates.calculateState(taskEmission, calculatedAt); + const baseFromExistingDoc = !!existingDoc && + (!TaskStates.isTerminal(existingDoc.state) || existingDoc.state === emittedState); -/***/ "./node_modules/lodash/isFunction.js": -/*!*******************************************!*\ - !*** ./node_modules/lodash/isFunction.js ***! - \*******************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + // reduce document churn - don't tweak data on existing docs in terminal states + const baselineStateOfExistingDoc = baseFromExistingDoc && + !TaskStates.isTerminal(existingDoc.state) && + JSON.stringify(existingDoc); + const taskDoc = baseFromExistingDoc ? existingDoc : newTaskDoc(taskEmission, userSettingsId, calculatedAt); + taskDoc.user = userSettingsId; + taskDoc.requester = taskEmission.doc && taskEmission.doc.contact && taskEmission.doc.contact._id; + taskDoc.owner = taskEmission.contact && taskEmission.contact._id; + minifyEmission(taskDoc, taskEmission); + TaskStates.setStateOnTaskDoc(taskDoc, emittedState, calculatedAt); -var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"), - isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"); + const isUpdated = (() => { + if (!baseFromExistingDoc) { + // do not create new documents where the initial state is cancelled (invalid emission) + return taskDoc.state !== TaskStates.Cancelled; + } -/** `Object#toString` result references. */ -var asyncTag = '[object AsyncFunction]', - funcTag = '[object Function]', - genTag = '[object GeneratorFunction]', - proxyTag = '[object Proxy]'; + return baselineStateOfExistingDoc && JSON.stringify(taskDoc) !== baselineStateOfExistingDoc; + })(); -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a function, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - if (!isObject(value)) { - return false; + return { + isUpdated, + taskDoc, + }; +}; + +const minifyEmission = (taskDoc, emission) => { + const minified = ['_id', 'title', 'icon', 'deleted', 'resolved', 'actions', 'priority', 'priorityLabel' ] + .reduce((agg, attr) => { + if (Object.hasOwnProperty.call(emission, attr)) { + agg[attr] = emission[attr]; + } + return agg; + }, {}); + + /* + The declarative configuration "contactLabel" results in a task emission with a contact with only a name attribute. + For backward compatibility, contacts which don't provide an id should not be minified and rehydrated. + */ + if (emission.contact) { + minified.contact = { name: emission.contact.name }; } - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 9 which returns 'object' for typed arrays and other constructors. - var tag = baseGetTag(value); - return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; -} -module.exports = isFunction; + if (emission.date || emission.dueDate) { + const timeWindow = TaskStates.getDisplayWindow(emission); + Object.assign(minified, timeWindow); + } + minified.actions && minified.actions + .filter(action => action && action.content) + .forEach(action => { + if (!minified.forId) { + minified.forId = action.content.contact && action.content.contact._id; + } + delete action.content.contact; + }); + + taskDoc.emission = minified; + return taskDoc; +}; + +const newTaskDoc = (emission, userSettingsId, calculatedAt) => ({ + _id: `task~${userSettingsId}~${emission._id}~${calculatedAt}`, + type: 'task', + authoredOn: calculatedAt, + stateHistory: [], +}); /***/ }), -/***/ "./node_modules/lodash/isObject.js": -/*!*****************************************!*\ - !*** ./node_modules/lodash/isObject.js ***! - \*****************************************/ -/***/ ((module) => { +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/update-temporal-states.js": +/*!***********************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/update-temporal-states.js ***! + \***********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3611978__) => { /** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false + * @module update-temporal-states + * As time elapses, documents change state because the timing window has been reached. + * Eg. Documents with state Draft move to state Ready just because it is now after midnight */ -function isObject(value) { - var type = typeof value; - return value != null && (type == 'object' || type == 'function'); -} +const TaskStates = __nested_webpack_require_3611978__(/*! ./task-states */ "./build/cht-core-4-6/shared-libs/rules-engine/src/task-states.js"); -module.exports = isObject; +/** + * @param {Object[]} taskDocs A list of task documents to evaluate + * @param {int} timestamp=Date.now() Epoch timestamp to use when evaluating the current state of the task documents + */ +module.exports = (taskDocs, timestamp = Date.now()) => { + const docsToCommit = []; + for (const taskDoc of taskDocs) { + let updatedState = TaskStates.calculateState(taskDoc.emission, timestamp); + if (taskDoc.authoredOn > timestamp) { + updatedState = TaskStates.Cancelled; + } + if (!TaskStates.isTerminal(taskDoc.state) && taskDoc.state !== updatedState) { + TaskStates.setStateOnTaskDoc(taskDoc, updatedState, timestamp); + docsToCommit.push(taskDoc); + } + } -/***/ }), + return docsToCommit; +}; -/***/ "./node_modules/lodash/noop.js": -/*!*************************************!*\ - !*** ./node_modules/lodash/noop.js ***! - \*************************************/ -/***/ ((module) => { -/** - * This method returns `undefined`. - * - * @static - * @memberOf _ - * @since 2.3.0 - * @category Util - * @example - * - * _.times(2, _.noop); - * // => [undefined, undefined] - */ -function noop() { - // No operation performed. -} +/***/ }), -module.exports = noop; +/***/ "./cht-bundles/cht-core-4-6/bundle.js": +/*!********************************************!*\ + !*** ./cht-bundles/cht-core-4-6/bundle.js ***! + \********************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3613312__) => { +module.exports = { + ddocs: __nested_webpack_require_3613312__(/*! ../../build/cht-core-4-6-ddocs.json */ "./build/cht-core-4-6-ddocs.json"), + RegistrationUtils: __nested_webpack_require_3613312__(/*! ../../build/cht-core-4-6/shared-libs/registration-utils */ "./build/cht-core-4-6/shared-libs/registration-utils/src/index.js"), + CalendarInterval: __nested_webpack_require_3613312__(/*! ../../build/cht-core-4-6/shared-libs/calendar-interval */ "./build/cht-core-4-6/shared-libs/calendar-interval/src/index.js"), + RulesEngineCore: __nested_webpack_require_3613312__(/*! ../../build/cht-core-4-6/shared-libs/rules-engine */ "./build/cht-core-4-6/shared-libs/rules-engine/src/index.js"), + RulesEmitter: __nested_webpack_require_3613312__(/*! ../../build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter */ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/index.js"), + nootils: __nested_webpack_require_3613312__(/*! ../../build/cht-core-4-6/node_modules/cht-nootils */ "./build/cht-core-4-6/node_modules/cht-nootils/src/nootils.js"), + Lineage: __nested_webpack_require_3613312__(/*! ../../build/cht-core-4-6/shared-libs/lineage */ "./build/cht-core-4-6/shared-libs/lineage/src/index.js"), + ChtScriptApi: __nested_webpack_require_3613312__(/*! ../../build/cht-core-4-6/shared-libs/cht-script-api */ "./build/cht-core-4-6/shared-libs/cht-script-api/src/index.js"), + convertFormXmlToXFormModel: __nested_webpack_require_3613312__(/*! ../../build/cht-core-4-6/api/src/services/generate-xform.js */ "./build/cht-core-4-6/api/src/services/generate-xform.js").generate, +}; -/***/ }), -/***/ "./node_modules/lodash/uniq.js": -/*!*************************************!*\ - !*** ./node_modules/lodash/uniq.js ***! - \*************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ }), -var baseUniq = __webpack_require__(/*! ./_baseUniq */ "./node_modules/lodash/_baseUniq.js"); +/***/ "./cht-bundles/cht-core-4-6/xsl-paths.js": +/*!***********************************************!*\ + !*** ./cht-bundles/cht-core-4-6/xsl-paths.js ***! + \***********************************************/ +/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3615061__) => { -/** - * Creates a duplicate-free version of an array, using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons, in which only the first occurrence of each element - * is kept. The order of result values is determined by the order they occur - * in the array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.uniq([2, 1, 2]); - * // => [2, 1] - */ -function uniq(array) { - return (array && array.length) ? baseUniq(array) : []; -} +const path = __nested_webpack_require_3615061__(/*! path */ "path"); -module.exports = uniq; +module.exports = { + FORM_STYLESHEET: path.join(__dirname, '../dist/cht-core-4-6/xsl/openrosa2html5form.xsl'), + MODEL_STYLESHEET: path.join(__dirname, '../dist/cht-core-4-6/enketo-transformer/xsl/openrosa2xmlmodel.xsl'), +}; /***/ }), @@ -97425,7 +101908,7 @@ module.exports = uniq; /***/ ((module) => { "use strict"; -module.exports = require("buffer");; +module.exports = __webpack_require__(/*! buffer */ "buffer");; /***/ }), @@ -97436,7 +101919,7 @@ module.exports = require("buffer");; /***/ ((module) => { "use strict"; -module.exports = require("child_process");; +module.exports = __webpack_require__(/*! child_process */ "child_process");; /***/ }), @@ -97447,7 +101930,7 @@ module.exports = require("child_process");; /***/ ((module) => { "use strict"; -module.exports = require("events");; +module.exports = __webpack_require__(/*! events */ "events");; /***/ }), @@ -97458,7 +101941,7 @@ module.exports = require("events");; /***/ ((module) => { "use strict"; -module.exports = require("fs");; +module.exports = __webpack_require__(/*! fs */ "fs");; /***/ }), @@ -97469,7 +101952,7 @@ module.exports = require("fs");; /***/ ((module) => { "use strict"; -module.exports = require("http");; +module.exports = __webpack_require__(/*! http */ "http");; /***/ }), @@ -97480,7 +101963,18 @@ module.exports = require("http");; /***/ ((module) => { "use strict"; -module.exports = require("https");; +module.exports = __webpack_require__(/*! https */ "https");; + +/***/ }), + +/***/ "net": +/*!**********************!*\ + !*** external "net" ***! + \**********************/ +/***/ ((module) => { + +"use strict"; +module.exports = __webpack_require__(/*! net */ "net");; /***/ }), @@ -97491,7 +101985,7 @@ module.exports = require("https");; /***/ ((module) => { "use strict"; -module.exports = require("os");; +module.exports = __webpack_require__(/*! os */ "os");; /***/ }), @@ -97502,7 +101996,7 @@ module.exports = require("os");; /***/ ((module) => { "use strict"; -module.exports = require("path");; +module.exports = __webpack_require__(/*! path */ "path");; /***/ }), @@ -97513,7 +102007,7 @@ module.exports = require("path");; /***/ ((module) => { "use strict"; -module.exports = require("stream");; +module.exports = __webpack_require__(/*! stream */ "stream");; /***/ }), @@ -97524,7 +102018,7 @@ module.exports = require("stream");; /***/ ((module) => { "use strict"; -module.exports = require("string_decoder");; +module.exports = __webpack_require__(/*! string_decoder */ "string_decoder");; /***/ }), @@ -97535,7 +102029,7 @@ module.exports = require("string_decoder");; /***/ ((module) => { "use strict"; -module.exports = require("tty");; +module.exports = __webpack_require__(/*! tty */ "tty");; /***/ }), @@ -97546,7 +102040,7 @@ module.exports = require("tty");; /***/ ((module) => { "use strict"; -module.exports = require("util");; +module.exports = __webpack_require__(/*! util */ "util");; /***/ }), @@ -97557,7 +102051,7 @@ module.exports = require("util");; /***/ ((module) => { "use strict"; -module.exports = require("zlib");; +module.exports = __webpack_require__(/*! zlib */ "zlib");; /***/ }) @@ -97567,7 +102061,7 @@ module.exports = require("zlib");; /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function -/******/ function __webpack_require__(moduleId) { +/******/ function __nested_webpack_require_3618261__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { @@ -97581,7 +102075,7 @@ module.exports = require("zlib");; /******/ }; /******/ /******/ // Execute the module function -/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_3618261__); /******/ /******/ // Flag the module as loaded /******/ module.loaded = true; @@ -97591,17 +102085,17 @@ module.exports = require("zlib");; /******/ } /******/ /******/ // expose the module cache -/******/ __webpack_require__.c = __webpack_module_cache__; +/******/ __nested_webpack_require_3618261__.c = __webpack_module_cache__; /******/ /************************************************************************/ /******/ /* webpack/runtime/compat get default export */ /******/ (() => { /******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { +/******/ __nested_webpack_require_3618261__.n = (module) => { /******/ var getter = module && module.__esModule ? /******/ () => (module['default']) : /******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); +/******/ __nested_webpack_require_3618261__.d(getter, { a: getter }); /******/ return getter; /******/ }; /******/ })(); @@ -97609,9 +102103,9 @@ module.exports = require("zlib");; /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { +/******/ __nested_webpack_require_3618261__.d = (exports, definition) => { /******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ if(__nested_webpack_require_3618261__.o(definition, key) && !__nested_webpack_require_3618261__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } @@ -97620,13 +102114,13 @@ module.exports = require("zlib");; /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ __nested_webpack_require_3618261__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { +/******/ __nested_webpack_require_3618261__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } @@ -97636,7 +102130,7 @@ module.exports = require("zlib");; /******/ /******/ /* webpack/runtime/node module decorator */ /******/ (() => { -/******/ __webpack_require__.nmd = (module) => { +/******/ __nested_webpack_require_3618261__.nmd = (module) => { /******/ module.paths = []; /******/ if (!module.children) module.children = []; /******/ return module; @@ -97648,7 +102142,203 @@ module.exports = require("zlib");; /******/ // module cache are used so entry inlining is disabled /******/ // startup /******/ // Load entry module and return exports -/******/ var __webpack_exports__ = __webpack_require__(__webpack_require__.s = "./all-chts-bundle.js"); +/******/ var __webpack_exports__ = __nested_webpack_require_3618261__(__nested_webpack_require_3618261__.s = "./cht-bundles/cht-core-4-6/bundle.js"); +/******/ var __webpack_export_target__ = exports; +/******/ for(var i in __webpack_exports__) __webpack_export_target__[i] = __webpack_exports__[i]; +/******/ if(__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, "__esModule", { value: true }); +/******/ +/******/ })() +; +//# sourceMappingURL=cht-core-bundle.dev.js.map + +/***/ }), + +/***/ "buffer": +/*!*************************!*\ + !*** external "buffer" ***! + \*************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("buffer");; + +/***/ }), + +/***/ "child_process": +/*!********************************!*\ + !*** external "child_process" ***! + \********************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("child_process");; + +/***/ }), + +/***/ "events": +/*!*************************!*\ + !*** external "events" ***! + \*************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("events");; + +/***/ }), + +/***/ "fs": +/*!*********************!*\ + !*** external "fs" ***! + \*********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("fs");; + +/***/ }), + +/***/ "http": +/*!***********************!*\ + !*** external "http" ***! + \***********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("http");; + +/***/ }), + +/***/ "https": +/*!************************!*\ + !*** external "https" ***! + \************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("https");; + +/***/ }), + +/***/ "net": +/*!**********************!*\ + !*** external "net" ***! + \**********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("net");; + +/***/ }), + +/***/ "os": +/*!*********************!*\ + !*** external "os" ***! + \*********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("os");; + +/***/ }), + +/***/ "path": +/*!***********************!*\ + !*** external "path" ***! + \***********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("path");; + +/***/ }), + +/***/ "stream": +/*!*************************!*\ + !*** external "stream" ***! + \*************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("stream");; + +/***/ }), + +/***/ "string_decoder": +/*!*********************************!*\ + !*** external "string_decoder" ***! + \*********************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("string_decoder");; + +/***/ }), + +/***/ "tty": +/*!**********************!*\ + !*** external "tty" ***! + \**********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("tty");; + +/***/ }), + +/***/ "util": +/*!***********************!*\ + !*** external "util" ***! + \***********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("util");; + +/***/ }), + +/***/ "zlib": +/*!***********************!*\ + !*** external "zlib" ***! + \***********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("zlib");; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module is referenced by other modules so it can't be inlined +/******/ var __webpack_exports__ = __webpack_require__("./cht-bundles/all-chts-bundle.js"); /******/ var __webpack_export_target__ = exports; /******/ for(var i in __webpack_exports__) __webpack_export_target__[i] = __webpack_exports__[i]; /******/ if(__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, "__esModule", { value: true }); diff --git a/dist/all-chts-bundle.dev.js.map b/dist/all-chts-bundle.dev.js.map index d678218b..287d3777 100644 --- a/dist/all-chts-bundle.dev.js.map +++ b/dist/all-chts-bundle.dev.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cht-conf-test-harness/./all-chts-bundle.js","webpack://cht-conf-test-harness/./ext/xsl-paths.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/adapters/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/adapters/process.env.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/diagnostics.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/logger/console.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/modifiers/namespace-ansi.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/node/development.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/@dabh/diagnostics/node/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/asyncify.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/eachOf.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/eachOfLimit.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/eachOfSeries.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/forEach.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/internal/asyncEachOfLimit.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/internal/awaitify.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/internal/breakLoop.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/internal/eachOfLimit.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/internal/getIterator.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/internal/initialParams.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/internal/isArrayLike.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/internal/iterator.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/internal/once.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/internal/onlyOnce.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/internal/parallel.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/internal/setImmediate.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/internal/withoutIndex.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/internal/wrapAsync.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/async/series.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/boolbase/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/color-convert/conversions.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/color-convert/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/color-convert/route.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/color-name/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/color-string/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/color/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/colors/lib/colors.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/colors/lib/custom/trap.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/colors/lib/custom/zalgo.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/colors/lib/maps/america.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/colors/lib/maps/rainbow.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/colors/lib/maps/random.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/colors/lib/maps/zebra.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/colors/lib/styles.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/colors/lib/system/has-flag.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/colors/lib/system/supports-colors.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/colors/safe.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/colorspace/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/css-select/lib/attributes.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/css-select/lib/compile.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/css-select/lib/general.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/css-select/lib/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/css-select/lib/procedure.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/aliases.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/filters.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/pseudos.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/css-select/lib/pseudo-selectors/subselects.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/css-select/lib/sort.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/parse.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/stringify.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/css-what/lib/es/types.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/dom-serializer/lib/foreignNames.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/dom-serializer/lib/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/domelementtype/lib/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/domhandler/lib/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/domhandler/lib/node.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/domutils/lib/feeds.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/domutils/lib/helpers.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/domutils/lib/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/domutils/lib/legacy.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/domutils/lib/manipulation.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/domutils/lib/querying.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/domutils/lib/stringify.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/domutils/lib/traversal.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/enabled/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/entities/lib/decode.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/entities/lib/decode_codepoint.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/entities/lib/encode.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/entities/lib/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/fecha/lib/fecha.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/fn.name/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/he/he.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/inherits/inherits.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/inherits/inherits_browser.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/is-arrayish/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/kuler/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/align.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/cli.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/colorize.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/combine.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/errors.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/format.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/json.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/label.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/levels.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/logstash.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/metadata.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/ms.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/node_modules/ms/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/pad-levels.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/pretty-print.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/printf.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/simple.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/splat.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/timestamp.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/logform/uncolorize.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/back.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/matcher.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/nodes/comment.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/nodes/html.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/nodes/node.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/nodes/text.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/nodes/type.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/node-html-parser/dist/esm/valid.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/nth-check/lib/compile.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/nth-check/lib/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/nth-check/lib/parse.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/one-time/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/safe-buffer/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/safe-stable-stringify/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/safe-stable-stringify/stable.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/simple-swizzle/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/stack-trace/lib/stack-trace.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/string_decoder/lib/string_decoder.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/text-hex/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/triple-beam/config/cli.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/triple-beam/config/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/triple-beam/config/npm.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/triple-beam/config/syslog.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/triple-beam/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/util-deprecate/node.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston-transport/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston-transport/legacy.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/errors.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_readable.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/from.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/state.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/stream.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/common.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/config/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/container.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/create-logger.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/exception-handler.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/exception-stream.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/logger.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/profiler.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/rejection-handler.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/tail-file.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/console.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/file.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/http.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/lib/winston/transports/stream.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/is-stream/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/errors.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_passthrough.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/from.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/state.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/stream.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/node_modules/winston/node_modules/readable-stream/readable.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/src/enketo-transformer/markdown.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/src/logger.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/api/src/services/generate-xform.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/af.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-dz.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-kw.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-ly.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-ma.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-sa.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-tn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/az.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/be.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bg.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bm.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bn-bd.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bo.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/br.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bs.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ca.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cs.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cv.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cy.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/da.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de-at.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de-ch.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/dv.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/el.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-au.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-ca.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-gb.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-ie.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-il.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-in.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-nz.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-sg.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/eo.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-do.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-mx.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-us.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/et.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/eu.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fa.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fi.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fil.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fo.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr-ca.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr-ch.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fy.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ga.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gd.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gl.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gom-deva.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gom-latn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gu.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/he.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hi.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hr.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hu.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hy-am.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/id.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/is.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/it-ch.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/it.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ja.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/jv.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ka.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/kk.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/km.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/kn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ko.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ku.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ky.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lb.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lo.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lt.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lv.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/me.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mi.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mk.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ml.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mr.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ms-my.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ms.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mt.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/my.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nb.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ne.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nl-be.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nl.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/oc-lnc.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pa-in.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pl.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pt-br.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pt.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ro.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ru.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sd.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/se.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/si.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sk.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sl.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sq.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sr-cyrl.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sr.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ss.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sv.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sw.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ta.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/te.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tet.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tg.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/th.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tk.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tl-ph.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tlh.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tr.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzl.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzm-latn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzm.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ug-cn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uk.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ur.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uz-latn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uz.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/vi.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/x-pseudo.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/yo.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-cn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-hk.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-mo.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-tw.js","webpack://cht-conf-test-harness//var/home/jlkuester7/git/cht-conf-test-harness/node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale|sync|/^\\.\\/.*$/","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/moment.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/calendar-interval/src/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/cht-script-api/src/auth.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/cht-script-api/src/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/contact-types-utils/src/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/lineage/src/hydration.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/lineage/src/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/lineage/src/minify.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/lineage/src/utils.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/registration-utils/src/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/arguments-extended/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/array-extended/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/charenc/charenc.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/cht-nootils/src/nootils.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/crypt/crypt.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/date-extended/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/declare.js/declare.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/declare.js/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extended/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extender/extender.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/extender/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/function-extended/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/ht/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/is-buffer/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/is-extended/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/leafy/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_DataView.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Hash.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_ListCache.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Map.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_MapCache.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Promise.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Set.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_SetCache.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Stack.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Symbol.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_Uint8Array.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_WeakMap.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayFilter.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayIncludes.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayIncludesWith.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayLikeKeys.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayMap.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arrayPush.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_arraySome.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_assocIndexOf.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseFindIndex.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseGet.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseGetAllKeys.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseGetTag.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseHasIn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIndexOf.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsArguments.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsEqual.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsEqualDeep.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsMatch.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsNaN.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsNative.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIsTypedArray.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseIteratee.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseKeys.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseMatches.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseMatchesProperty.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseProperty.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_basePropertyDeep.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseTimes.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseToString.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseUnary.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_baseUniq.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_cacheHas.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_castPath.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_coreJsData.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_createSet.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_equalArrays.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_equalByTag.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_equalObjects.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_freeGlobal.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getAllKeys.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getMapData.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getMatchData.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getNative.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getRawTag.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getSymbols.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getTag.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_getValue.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hasPath.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashClear.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashDelete.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashGet.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashHas.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_hashSet.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isIndex.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isKey.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isKeyable.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isMasked.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isPrototype.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_isStrictComparable.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheClear.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheDelete.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheGet.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheHas.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_listCacheSet.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheClear.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheDelete.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheGet.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheHas.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapCacheSet.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_mapToArray.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_matchesStrictComparable.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_memoizeCapped.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_nativeCreate.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_nativeKeys.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_nodeUtil.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_objectToString.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_overArg.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_root.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_setCacheAdd.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_setCacheHas.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_setToArray.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackClear.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackDelete.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackGet.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackHas.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stackSet.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_strictIndexOf.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_stringToPath.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_toKey.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/_toSource.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/eq.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/get.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/hasIn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/identity.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArguments.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArray.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isArrayLike.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isBuffer.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isFunction.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isLength.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isObject.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isObjectLike.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isSymbol.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/isTypedArray.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/keys.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/memoize.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/noop.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/property.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/stubArray.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/stubFalse.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/toString.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/lodash/uniqBy.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/md5/md5.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/af.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-dz.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-kw.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-ly.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-ma.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-sa.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-tn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/az.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/be.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bg.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bm.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bn-bd.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bo.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/br.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bs.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ca.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cs.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cv.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cy.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/da.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de-at.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de-ch.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/dv.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/el.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-au.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-ca.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-gb.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-ie.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-il.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-in.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-nz.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-sg.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/eo.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-do.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-mx.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-us.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/et.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/eu.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fa.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fi.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fil.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fo.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr-ca.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr-ch.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fy.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ga.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gd.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gl.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gom-deva.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gom-latn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gu.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/he.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hi.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hr.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hu.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hy-am.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/id.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/is.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/it-ch.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/it.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ja.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/jv.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ka.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/kk.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/km.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/kn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ko.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ku.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ky.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lb.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lo.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lt.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lv.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/me.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mi.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mk.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ml.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mr.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ms-my.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ms.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mt.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/my.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nb.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ne.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nl-be.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nl.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/oc-lnc.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pa-in.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pl.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pt-br.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pt.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ro.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ru.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sd.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/se.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/si.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sk.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sl.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sq.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sr-cyrl.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sr.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ss.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sv.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sw.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ta.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/te.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tet.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tg.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/th.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tk.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tl-ph.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tlh.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tr.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzl.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzm-latn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzm.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ug-cn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uk.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ur.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uz-latn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uz.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/vi.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/x-pseudo.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/yo.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-cn.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-hk.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-mo.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-tw.js","webpack://cht-conf-test-harness//var/home/jlkuester7/git/cht-conf-test-harness/node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale|sync|/^\\.\\/.*$/","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/moment.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/agenda.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/compile/common.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/compile/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/compile/transpile.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/conflict.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/constraint.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/constraintMatcher.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/context.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/executionStrategy.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/extended.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/flow.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/flowContainer.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/linkedList.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nextTick.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/adapterNode.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/aliasNode.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/alphaNode.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/betaNode.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/equalityNode.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/existsFromNode.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/existsNode.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/fromNode.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/fromNotNode.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/joinNode.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/joinReferenceNode.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/leftAdapterNode.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/helpers.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/leftMemory.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/memory.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/rightMemory.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/table.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/misc/tupleEntry.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/node.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/notNode.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/propertyNode.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/rightAdapterNode.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/terminalNode.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/nodes/typeNode.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/constraint/parser.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/nools/nool.parser.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/nools/tokens.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/parser/nools/util.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/pattern.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/rule.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/nools/lib/workingMemory.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/object-extended/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/promise-extended/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/string-extended/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/underscore/underscore-node-f.cjs","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/underscore/underscore-node.cjs","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/src/index.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/src/pouchdb-provider.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/src/provider-wireup.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/src/refresh-rules-emissions.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/src/rules-emitter.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/src/rules-state-store.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/src/target-state.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/src/task-states.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/src/transform-task-emission-to-doc.js","webpack://cht-conf-test-harness/./node_modules/cht-core-4-0/shared-libs/rules-engine/src/update-temporal-states.js","webpack://cht-conf-test-harness/./node_modules/lodash/_Hash.js","webpack://cht-conf-test-harness/./node_modules/lodash/_ListCache.js","webpack://cht-conf-test-harness/./node_modules/lodash/_Map.js","webpack://cht-conf-test-harness/./node_modules/lodash/_MapCache.js","webpack://cht-conf-test-harness/./node_modules/lodash/_Set.js","webpack://cht-conf-test-harness/./node_modules/lodash/_SetCache.js","webpack://cht-conf-test-harness/./node_modules/lodash/_Symbol.js","webpack://cht-conf-test-harness/./node_modules/lodash/_arrayIncludes.js","webpack://cht-conf-test-harness/./node_modules/lodash/_arrayIncludesWith.js","webpack://cht-conf-test-harness/./node_modules/lodash/_assocIndexOf.js","webpack://cht-conf-test-harness/./node_modules/lodash/_baseFindIndex.js","webpack://cht-conf-test-harness/./node_modules/lodash/_baseGetTag.js","webpack://cht-conf-test-harness/./node_modules/lodash/_baseIndexOf.js","webpack://cht-conf-test-harness/./node_modules/lodash/_baseIsNaN.js","webpack://cht-conf-test-harness/./node_modules/lodash/_baseIsNative.js","webpack://cht-conf-test-harness/./node_modules/lodash/_baseUniq.js","webpack://cht-conf-test-harness/./node_modules/lodash/_cacheHas.js","webpack://cht-conf-test-harness/./node_modules/lodash/_coreJsData.js","webpack://cht-conf-test-harness/./node_modules/lodash/_createSet.js","webpack://cht-conf-test-harness/./node_modules/lodash/_freeGlobal.js","webpack://cht-conf-test-harness/./node_modules/lodash/_getMapData.js","webpack://cht-conf-test-harness/./node_modules/lodash/_getNative.js","webpack://cht-conf-test-harness/./node_modules/lodash/_getRawTag.js","webpack://cht-conf-test-harness/./node_modules/lodash/_getValue.js","webpack://cht-conf-test-harness/./node_modules/lodash/_hashClear.js","webpack://cht-conf-test-harness/./node_modules/lodash/_hashDelete.js","webpack://cht-conf-test-harness/./node_modules/lodash/_hashGet.js","webpack://cht-conf-test-harness/./node_modules/lodash/_hashHas.js","webpack://cht-conf-test-harness/./node_modules/lodash/_hashSet.js","webpack://cht-conf-test-harness/./node_modules/lodash/_isKeyable.js","webpack://cht-conf-test-harness/./node_modules/lodash/_isMasked.js","webpack://cht-conf-test-harness/./node_modules/lodash/_listCacheClear.js","webpack://cht-conf-test-harness/./node_modules/lodash/_listCacheDelete.js","webpack://cht-conf-test-harness/./node_modules/lodash/_listCacheGet.js","webpack://cht-conf-test-harness/./node_modules/lodash/_listCacheHas.js","webpack://cht-conf-test-harness/./node_modules/lodash/_listCacheSet.js","webpack://cht-conf-test-harness/./node_modules/lodash/_mapCacheClear.js","webpack://cht-conf-test-harness/./node_modules/lodash/_mapCacheDelete.js","webpack://cht-conf-test-harness/./node_modules/lodash/_mapCacheGet.js","webpack://cht-conf-test-harness/./node_modules/lodash/_mapCacheHas.js","webpack://cht-conf-test-harness/./node_modules/lodash/_mapCacheSet.js","webpack://cht-conf-test-harness/./node_modules/lodash/_nativeCreate.js","webpack://cht-conf-test-harness/./node_modules/lodash/_objectToString.js","webpack://cht-conf-test-harness/./node_modules/lodash/_root.js","webpack://cht-conf-test-harness/./node_modules/lodash/_setCacheAdd.js","webpack://cht-conf-test-harness/./node_modules/lodash/_setCacheHas.js","webpack://cht-conf-test-harness/./node_modules/lodash/_setToArray.js","webpack://cht-conf-test-harness/./node_modules/lodash/_strictIndexOf.js","webpack://cht-conf-test-harness/./node_modules/lodash/_toSource.js","webpack://cht-conf-test-harness/./node_modules/lodash/core.js","webpack://cht-conf-test-harness/./node_modules/lodash/eq.js","webpack://cht-conf-test-harness/./node_modules/lodash/isFunction.js","webpack://cht-conf-test-harness/./node_modules/lodash/isObject.js","webpack://cht-conf-test-harness/./node_modules/lodash/noop.js","webpack://cht-conf-test-harness/./node_modules/lodash/uniq.js","webpack://cht-conf-test-harness/external \"buffer\"","webpack://cht-conf-test-harness/external \"child_process\"","webpack://cht-conf-test-harness/external \"events\"","webpack://cht-conf-test-harness/external \"fs\"","webpack://cht-conf-test-harness/external \"http\"","webpack://cht-conf-test-harness/external \"https\"","webpack://cht-conf-test-harness/external \"os\"","webpack://cht-conf-test-harness/external \"path\"","webpack://cht-conf-test-harness/external \"stream\"","webpack://cht-conf-test-harness/external \"string_decoder\"","webpack://cht-conf-test-harness/external \"tty\"","webpack://cht-conf-test-harness/external \"util\"","webpack://cht-conf-test-harness/external \"zlib\"","webpack://cht-conf-test-harness/webpack/bootstrap","webpack://cht-conf-test-harness/webpack/runtime/compat get default export","webpack://cht-conf-test-harness/webpack/runtime/define property getters","webpack://cht-conf-test-harness/webpack/runtime/hasOwnProperty shorthand","webpack://cht-conf-test-harness/webpack/runtime/make namespace object","webpack://cht-conf-test-harness/webpack/runtime/node module decorator","webpack://cht-conf-test-harness/webpack/startup"],"names":[],"mappings":";;;;;;;;;;AACA;AACA;AACA,WAAW,mBAAO,CAAC,wEAAiC;AACpD,uBAAuB,mBAAO,CAAC,4HAA6C;AAC5E,sBAAsB,mBAAO,CAAC,0HAA4C;AAC1E,qBAAqB,mBAAO,CAAC,gHAAuC;AACpE,kBAAkB,mBAAO,CAAC,0IAAyD;AACnF,aAAa,mBAAO,CAAC,oKAAgE;AACrF,aAAa,mBAAO,CAAC,sGAAkC;AACvD,kBAAkB,mBAAO,CAAC,oHAAyC;;AAEnE,gCAAgC,qJAAmE;AACnG,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;;ACdA,aAAa,mBAAO,CAAC,kBAAM;;AAE3B;AACA;AACA;AACA;;;;;;;;;;;ACLA,cAAc,mBAAO,CAAC,8EAAS;;AAE/B;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,YAAY;;AAEjB;AACA;AACA;;;;;;;;;;;ACjBA,cAAc,mBAAO,CAAC,4FAAI;;AAE1B;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACVD;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;;AAEA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACnNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,+DAA+D;AACtE;AACA;;;;;;;;;;;AClBA,iBAAiB,mBAAO,CAAC,oFAAY;AACrC,YAAY,mBAAO,CAAC,0EAAO;;AAE3B;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACnBA,aAAa,mBAAO,CAAC,qGAAgB;AACrC,UAAU,4CAAqB;;AAE/B;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,+HAA6B;AACxD,gBAAgB,mBAAO,CAAC,uHAAyB;AACjD,gBAAgB,mBAAO,CAAC,2GAAmB;;AAE3C;AACA;AACA;AACA;;;;;;;;;;;ACnCA;AACA;AACA;AACA,IAAI,KAAqC,EAAE,EAE1C;AACD,EAAE,kJAA4C;AAC9C;;;;;;;;;;;;ACPa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,eAAe;;AAEf,qBAAqB,mBAAO,CAAC,iHAA6B;;AAE1D;;AAEA,oBAAoB,mBAAO,CAAC,+GAA4B;;AAExD;;AAEA,iBAAiB,mBAAO,CAAC,yGAAyB;;AAElD,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,8BAA8B,oBAAoB;AAClD,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA,oC;;;;;;;;;;;ACrHa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;;AAEF,mBAAmB,mBAAO,CAAC,6GAA2B;;AAEtD;;AAEA,iBAAiB,mBAAO,CAAC,yGAAyB;;AAElD;;AAEA,mBAAmB,mBAAO,CAAC,2FAAkB;;AAE7C;;AAEA,YAAY,mBAAO,CAAC,+FAAoB;;AAExC;;AAEA,gBAAgB,mBAAO,CAAC,uGAAwB;;AAEhD;;AAEA,iBAAiB,mBAAO,CAAC,yGAAyB;;AAElD;;AAEA,gBAAgB,mBAAO,CAAC,uGAAwB;;AAEhD;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,UAAU,gBAAgB;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,WAAW,oCAAoC;AAC/C,WAAW,cAAc;AACzB;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,6BAA6B;AAC7B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,eAAe;AACf;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe;AACf,oC;;;;;;;;;;;ACxLa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;;AAEF,oBAAoB,mBAAO,CAAC,6GAA2B;;AAEvD;;AAEA,iBAAiB,mBAAO,CAAC,yGAAyB;;AAElD;;AAEA,gBAAgB,mBAAO,CAAC,uGAAwB;;AAEhD;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA,0BAA0B,gCAAgC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,WAAW,oCAAoC;AAC/C,WAAW,OAAO;AAClB,WAAW,cAAc;AACzB;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA,eAAe;AACf,oC;;;;;;;;;;;AC9Ca;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;;AAEF,mBAAmB,mBAAO,CAAC,2FAAkB;;AAE7C;;AAEA,gBAAgB,mBAAO,CAAC,uGAAwB;;AAEhD;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA,0BAA0B,gCAAgC;AAC1D;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,WAAW,oCAAoC;AAC/C,WAAW,cAAc;AACzB;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,eAAe;AACf,oC;;;;;;;;;;;ACtCa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;;AAEF,cAAc,mBAAO,CAAC,iFAAa;;AAEnC;;AAEA,oBAAoB,mBAAO,CAAC,+GAA4B;;AAExD;;AAEA,iBAAiB,mBAAO,CAAC,yGAAyB;;AAElD;;AAEA,gBAAgB,mBAAO,CAAC,uGAAwB;;AAEhD;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oCAAoC;AAC/C,WAAW,cAAc;AACzB;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe;AACf,oC;;;;;;;;;;;AChIa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,eAAe;;AAEf,iBAAiB,mBAAO,CAAC,gGAAgB;;AAEzC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oC;;;;;;;;;;;AC1Ea;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,oC;;;;;;;;;;;AC1Ba;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF;AACA;AACA;AACA,eAAe;AACf,oC;;;;;;;;;;;ACTa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;;AAEF,YAAY,mBAAO,CAAC,sFAAW;;AAE/B;;AAEA,gBAAgB,mBAAO,CAAC,8FAAe;;AAEvC;;AAEA,gBAAgB,mBAAO,CAAC,8FAAe;;AAEvC;;AAEA,iBAAiB,mBAAO,CAAC,gGAAgB;;AAEzC,wBAAwB,mBAAO,CAAC,8GAAuB;;AAEvD;;AAEA,iBAAiB,mBAAO,CAAC,gGAAgB;;AAEzC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oC;;;;;;;;;;;ACzFa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;;AAEF,eAAe;AACf;AACA;;AAEA,oC;;;;;;;;;;;ACVa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;;AAEF,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA,oC;;;;;;;;;;;ACba;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,eAAe;AACf;AACA;AACA;AACA,oC;;;;;;;;;;;ACTa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,eAAe;;AAEf,mBAAmB,mBAAO,CAAC,oGAAkB;;AAE7C;;AAEA,mBAAmB,mBAAO,CAAC,oGAAkB;;AAE7C;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAuB;AACjD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oC;;;;;;;;;;;ACxDa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oC;;;;;;;;;;;AChBa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oC;;;;;;;;;;;ACda;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;;AAEF,mBAAmB,mBAAO,CAAC,oGAAkB;;AAE7C;;AAEA,iBAAiB,mBAAO,CAAC,gGAAgB;;AAEzC;;AAEA,gBAAgB,mBAAO,CAAC,8FAAe;;AAEvC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,eAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL,CAAC;AACD,oC;;;;;;;;;;;ACjCa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,gBAAgB;AAChB,YAAY;AACZ;;AAEA,wBAAwB,yBAAyB;AACjD,sBAAsB,uBAAuB;AAC7C,kBAAkB,mBAAmB;;AAErC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;;AAEA,eAAe,gB;;;;;;;;;;;ACjCF;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,eAAe;AACf;AACA;AACA;AACA,oC;;;;;;;;;;;ACTa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,uBAAuB,GAAG,wBAAwB,GAAG,eAAe;;AAEpE,gBAAgB,mBAAO,CAAC,sFAAgB;;AAExC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe;AACf,eAAe;AACf,wBAAwB;AACxB,uBAAuB,mB;;;;;;;;;;;ACjCV;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,eAAe;;AAEf,iBAAiB,mBAAO,CAAC,uGAAwB;;AAEjD;;AAEA,oBAAoB,mBAAO,CAAC,6FAAmB;;AAE/C;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oCAAoC;AAC/C,qBAAqB,oBAAoB;AACzC;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,IAAI;AACJ;AACA,gCAAgC;AAChC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,IAAI;AACJ;AACA,gCAAgC;AAChC,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,YAAY;AACZ;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oC;;;;;;;;;;ACzLA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,E;;;;;;;;;;ACPA;AACA,kBAAkB,mBAAO,CAAC,oFAAY;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,QAAQ,4BAA4B;AACpC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,6BAA6B;AACpC,WAAW,iCAAiC;AAC5C,UAAU,gCAAgC;AAC1C,WAAW,iCAAiC;AAC5C,OAAO,qCAAqC;AAC5C,SAAS,2CAA2C;AACpD,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE,mDAAmD,cAAc;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO,QAAQ;AAC/B,gBAAgB,OAAO,QAAQ;AAC/B,iBAAiB,OAAO,OAAO;AAC/B,iBAAiB,OAAO,OAAO;AAC/B,gBAAgB,QAAQ,OAAO;AAC/B,gBAAgB,QAAQ,OAAO;AAC/B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,sEAAsE;;AAEtE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+CAA+C,EAAE,UAAU,EAAE;AAC7D;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa;AAC5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACn2BA,kBAAkB,mBAAO,CAAC,gGAAe;AACzC,YAAY,mBAAO,CAAC,oFAAS;;AAE7B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wDAAwD,uCAAuC;AAC/F,sDAAsD,qCAAqC;;AAE3F;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF,CAAC;;AAED;;;;;;;;;;;AC7EA,kBAAkB,mBAAO,CAAC,gGAAe;;AAEzC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;;AAEzB;;AAEA;AACA;AACA;;AAEA,yCAAyC,SAAS;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,SAAS;AAC9C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;AC/FY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACvJA;AACA,iBAAiB,mBAAO,CAAC,oFAAY;AACrC,cAAc,mBAAO,CAAC,4FAAgB;AACtC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA,yBAAyB,IAAI;AAC7B,wBAAwB,EAAE,WAAW,EAAE;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mCAAmC,IAAI;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,IAAI;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACjPa;;AAEb,kBAAkB,mBAAO,CAAC,wFAAc;AACxC,cAAc,mBAAO,CAAC,0FAAe;;AAErC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa,mBAAmB;AAChC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,iBAAiB,cAAc;AAC/B;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,qEAAqE,kCAAkC,EAAE;;AAEzG;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACjeA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,WAAW,mBAAO,CAAC,kBAAM;AACzB,iCAAiC,mBAAO,CAAC,mFAAU;AACnD;AACA;;AAEA,uBAAuB,sJAAiD;;AAExE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,CAAC;;AAED,4CAA4C;;AAE5C;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,mBAAO,CAAC,6FAAe;AACrC,eAAe,mBAAO,CAAC,+FAAgB;;AAEvC;AACA;AACA,sBAAsB,mBAAO,CAAC,+FAAgB;AAC9C,oBAAoB,mBAAO,CAAC,2FAAc;AAC1C,sBAAsB,mBAAO,CAAC,+FAAgB;AAC9C,qBAAqB,mBAAO,CAAC,6FAAe;;AAE5C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;AClNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC5GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACJA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC9FD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;;AAEA;AACA,mBAAmB,IAAI;AACvB;;AAEA;AACA;;;;;;;;;;;;AClCA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEa;;AAEb,SAAS,mBAAO,CAAC,cAAI;AACrB,cAAc,mBAAO,CAAC,iGAAe;;AAErC;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC,GAAG;AACvC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,uFAAc;AACnC;;;;;;;;;;;;ACTa;;AAEb,YAAY,mBAAO,CAAC,0EAAO;AAC3B,UAAU,mBAAO,CAAC,gFAAU;;AAE5B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;AAEA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;AC5Ba;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,sBAAsB;AACtB,iBAAiB,mBAAO,CAAC,gFAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gCAAgC,oDAAoD;AACpF,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;ACvOa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,oBAAoB,GAAG,qBAAqB,GAAG,eAAe;AAC9D,iBAAiB,mBAAO,CAAC,uFAAU;AACnC,iBAAiB,mBAAO,CAAC,gFAAU;AACnC,6BAA6B,mBAAO,CAAC,mFAAQ;AAC7C,kBAAkB,mBAAO,CAAC,6FAAa;AACvC,gBAAgB,mBAAO,CAAC,yFAAW;AACnC,mBAAmB,mBAAO,CAAC,iIAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,6CAA6C,uCAAuC,EAAE;AACtF;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qBAAqB,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACtHa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,8BAA8B;AAC9B,mBAAmB,mBAAO,CAAC,+FAAc;AACzC,yBAAyB,mBAAO,CAAC,iHAAoB;AACrD,iBAAiB,mBAAO,CAAC,uFAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0CAA0C,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;;;;;;;;;;;;AC3IjB;AACb;AACA;AACA;AACA;AACA,cAAc,oCAAoC,aAAa,EAAE;AACjE;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,yCAAyC,6BAA6B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe,GAAG,eAAe,GAAG,eAAe,GAAG,UAAU,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,sBAAsB,GAAG,eAAe;AACpM,4BAA4B,mBAAO,CAAC,oFAAU;AAC9C,iBAAiB,mBAAO,CAAC,gFAAU;AACnC,gBAAgB,mBAAO,CAAC,yFAAW;AACnC,mBAAmB,mBAAO,CAAC,iIAA+B;AAC1D,qCAAqC,gBAAgB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,sBAAsB;AACtB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gCAAgC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,yBAAyB,mBAAO,CAAC,iHAAoB;AACrD,2CAA0C,CAAC,qCAAqC,mCAAmC,EAAE,EAAE,EAAC;AACxH,2CAA0C,CAAC,qCAAqC,mCAAmC,EAAE,EAAE,EAAC;AACxH,2CAA0C,CAAC,qCAAqC,mCAAmC,EAAE,EAAE,EAAC;;;;;;;;;;;;ACpJ3G;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,mBAAmB,GAAG,iBAAiB;AACvC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;;;;;;;;;;;ACpBN;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChCa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe;AACf,kCAAkC,mBAAO,CAAC,sFAAW;AACrD,iBAAiB,mBAAO,CAAC,gFAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,+CAA+C;AACnF;AACA,gCAAgC,6CAA6C;AAC7E,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3Ja;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,6BAA6B,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,gFAAU;AACnC,iBAAiB,mBAAO,CAAC,uFAAU;AACnC,gBAAgB,mBAAO,CAAC,0GAAW;AACnC,2CAA0C,CAAC,qCAAqC,0BAA0B,EAAE,EAAE,EAAC;AAC/G,gBAAgB,mBAAO,CAAC,0GAAW;AACnC,2CAA0C,CAAC,qCAAqC,0BAA0B,EAAE,EAAE,EAAC;AAC/G,gBAAgB,mBAAO,CAAC,0GAAW;AACnC,2CAA0C,CAAC,qCAAqC,0BAA0B,EAAE,EAAE,EAAC;AAC/G,mBAAmB,mBAAO,CAAC,gHAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sCAAsC;AACzE,mCAAmC,oDAAoD;AACvF;AACA;AACA;AACA,6BAA6B;;;;;;;;;;;;ACrDhB;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,wBAAwB,GAAG,eAAe;AAC1C;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA,mCAAmC,4BAA4B,EAAE;AACjE;AACA,KAAK;AACL;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA,uCAAuC,yDAAyD,EAAE;AAClG,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;;;;;;;;;;;ACxFX;AACb;AACA,4EAA4E,OAAO;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,kBAAkB,GAAG,uBAAuB,GAAG,mBAAmB,GAAG,2BAA2B;AAChG,iBAAiB,mBAAO,CAAC,gFAAU;AACnC,kBAAkB,mBAAO,CAAC,8FAAc;AACxC;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,0CAA0C;AACtE;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;AC7Ga;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,iBAAiB,mBAAO,CAAC,uFAAU;AACnC,kBAAkB,mBAAO,CAAC,6FAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACpFwB;AACqB;AACL;;;;;;;;;;;;;;;;;;ACFiB;AACzD,wCAAwC,IAAI;AAC5C,6BAA6B,IAAI;AACjC;AACA,sBAAsB,2DAAuB;AAC7C,0BAA0B,yDAAqB;AAC/C,sBAAsB,uDAAmB;AACzC,wBAAwB,uDAAmB;AAC3C,+BAA+B,uDAAmB;AAClD,qBAAqB,0DAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,aAAa,yDAAqB;AAClC,aAAa,sDAAkB;AAC/B,aAAa,2DAAuB;AACpC,aAAa,uDAAmB;AAChC,aAAa,wDAAoB;AACjC,aAAa,iEAA6B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,kDAAkD,SAAS;AAC3D;AACA,+CAA+C,yBAAyB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,8BAA8B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gDAAgD;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2DAAuB;AACtE;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA,kBAAkB,0DAAsB;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2DAAuB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,2DAAuB;AAC9D;AACA,iCAAiC,OAAO,2DAAuB,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sDAAkB;AAC/C;AACA;AACA;AACA;AACA,6BAA6B,uDAAmB;AAChD;AACA;AACA;AACA;AACA,6BAA6B,wDAAoB;AACjD;AACA;AACA;AACA;AACA,6BAA6B,yDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,6CAA6C,2DAAuB;AACpE;AACA;AACA;AACA,0CAA0C,0DAAsB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAsB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8DAA0B;AACxD;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,KAAK;AACpE;AACA;AACA;AACA;AACA;AACA,+EAA+E,KAAK,IAAI,SAAS;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,OAAO,uDAAmB,cAAc;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iEAA6B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO,0DAAsB;AACpD,uBAAuB,OAAO,oDAAgB,mBAAmB;AACjE;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACnawD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sDAAkB;AAC/B;AACA,aAAa,uDAAmB;AAChC;AACA,aAAa,wDAAoB;AACjC;AACA,aAAa,yDAAqB;AAClC;AACA,aAAa,2DAAuB;AACpC;AACA,aAAa,iEAA6B;AAC1C;AACA,aAAa,0DAAsB;AACnC;AACA;AACA;AACA;AACA;AACA,qBAAqB,8BAA8B;AACnD,aAAa,oDAAgB;AAC7B;AACA,aAAa,8DAA0B;AACvC,wBAAwB,4CAA4C,EAAE;AACtE;AACA,sBAAsB,mDAAmD,GAAG;AAC5E,aAAa,uDAAmB;AAChC,uBAAuB,4CAA4C,EAAE;AACrE;AACA,sBAAsB;AACtB;AACA,4CAA4C,GAAG;AAC/C,aAAa,0DAAsB;AACnC;AACA,iCAAiC,0DAAsB;AACvD;AACA;AACA,2BAA2B,6CAA6C;AACxE;AACA;AACA,iCAAiC,2DAAuB;AACxD;AACA;AACA,2BAA2B,6CAA6C;AACxE;AACA;AACA,iCAAiC,0DAAsB;AACvD,2BAA2B,KAAK;AAChC;AACA,uBAAuB,KAAK,EAAE,6BAA6B,IAAI,uDAAuD,GAAG,gEAAgE;AACzL;AACA;AACA;AACA;AACA;AACA,aAAa,0DAAsB;AACnC;AACA,aAAa,2DAAuB;AACpC;AACA,aAAa,yDAAqB;AAClC;AACA,aAAa,uDAAmB;AAChC;AACA,aAAa,uDAAmB;AAChC;AACA,aAAa,uDAAmB;AAChC;AACA,aAAa,0DAAsB;AACnC;AACA,aAAa,0DAAsB;AACnC;AACA;AACA;AACA;AACA,cAAc,8BAA8B,EAAE,4CAA4C;AAC1F;AACA;AACA;AACA,aAAa;AACb;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA,sBAAsB,sBAAsB,IAAI,cAAc;AAC9D;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC7HO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;;;;;;;;;;;;ACtC9B;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,sBAAsB,GAAG,oBAAoB;AAC7C,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACtGa;AACb;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oCAAoC,aAAa,EAAE,EAAE;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,yCAAyC,6BAA6B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D;AACA;AACA;AACA,+BAA+B,mBAAO,CAAC,gGAAgB;AACvD,iBAAiB,mBAAO,CAAC,oFAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,uGAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU,iBAAiB;AAClE;AACA;AACA;AACA,mCAAmC,UAAU,qBAAqB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClNa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,GAAG,eAAe,GAAG,iBAAiB,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,GAAG,mBAAmB;AACxL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC,mBAAmB,KAAK;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA,iBAAiB;AACjB;AACA,eAAe;AACf;AACA,cAAc;AACd;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA,aAAa;AACb;AACA,eAAe;;;;;;;;;;;;ACtDF;AACb;AACA;AACA;AACA;AACA,cAAc,oCAAoC,aAAa,EAAE;AACjE;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,kBAAkB;AAClB,uBAAuB,mBAAO,CAAC,gGAAgB;AAC/C,aAAa,mBAAO,CAAC,mFAAQ;AAC7B,aAAa,mBAAO,CAAC,mFAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB;AAClB,eAAe;;;;;;;;;;;;AC/KF;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,8EAA8E;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,iBAAiB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,cAAc,GAAG,eAAe,GAAG,aAAa,GAAG,eAAe,GAAG,gBAAgB,GAAG,wBAAwB,GAAG,6BAA6B,GAAG,eAAe,GAAG,YAAY,GAAG,gBAAgB,GAAG,YAAY;AAC5T,uBAAuB,mBAAO,CAAC,gGAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA,CAAC;AACD,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD,8BAA8B;AAC9B;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,2CAA2C,iCAAiC,EAAE;AAC9E;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iCAAiC,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA,2CAA2C,iCAAiC,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,gDAAgD,+BAA+B,EAAE;AACjF,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3ba;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe;AACf,kBAAkB,mBAAO,CAAC,2FAAa;AACvC,eAAe,mBAAO,CAAC,qFAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,iCAAiC;AAClG;AACA;AACA;AACA;AACA;AACA,2DAA2D,8BAA8B;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7La;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,kBAAkB,GAAG,+BAA+B,GAAG,qBAAqB;AAC5E,mBAAmB,mBAAO,CAAC,wFAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,mCAAmC,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB;;;;;;;;;;;;AC5HL;AACb;AACA;AACA,kCAAkC,oCAAoC,aAAa,EAAE,EAAE;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,mBAAmB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,cAAc,GAAG,eAAe,GAAG,aAAa;AAC/G,aAAa,mBAAO,CAAC,2FAAa;AAClC,aAAa,mBAAO,CAAC,2FAAa;AAClC,aAAa,mBAAO,CAAC,iGAAgB;AACrC,aAAa,mBAAO,CAAC,yFAAY;AACjC,aAAa,mBAAO,CAAC,qFAAU;AAC/B,aAAa,mBAAO,CAAC,uFAAW;AAChC,aAAa,mBAAO,CAAC,mFAAS;AAC9B;AACA,mBAAmB,mBAAO,CAAC,wFAAY;AACvC,yCAAwC,CAAC,qCAAqC,2BAA2B,EAAE,EAAE,EAAC;AAC9G,2CAA0C,CAAC,qCAAqC,6BAA6B,EAAE,EAAE,EAAC;AAClH,0CAAyC,CAAC,qCAAqC,4BAA4B,EAAE,EAAE,EAAC;AAChH,6CAA4C,CAAC,qCAAqC,+BAA+B,EAAE,EAAE,EAAC;AACtH,8CAA6C,CAAC,qCAAqC,gCAAgC,EAAE,EAAE,EAAC;AACxH,+CAA8C,CAAC,qCAAqC,iCAAiC,EAAE,EAAE,EAAC;;;;;;;;;;;;AC3B7G;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,4BAA4B,GAAG,4BAA4B,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,mBAAmB;AAChI,mBAAmB,mBAAO,CAAC,wFAAY;AACvC,iBAAiB,mBAAO,CAAC,yFAAY;AACrC;AACA;AACA;AACA,oCAAoC,yDAAyD;AAC7F;AACA;AACA;AACA;AACA,gCAAgC,4DAA4D;AAC5F,KAAK;AACL;AACA;AACA,oCAAoC,wBAAwB;AAC5D;AACA,gCAAgC,2BAA2B;AAC3D,KAAK;AACL;AACA;AACA,oCAAoC,0DAA0D;AAC9F;AACA,gCAAgC,6DAA6D;AAC7F,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qEAAqE;AACrG;AACA,4BAA4B,wEAAwE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C,2BAA2B,kBAAkB;AAC7C;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C,2BAA2B,kBAAkB;AAC7C;AACA;AACA,4BAA4B;;;;;;;;;;;;AC3Hf;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe,GAAG,oBAAoB,GAAG,cAAc,GAAG,mBAAmB,GAAG,sBAAsB,GAAG,qBAAqB;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;;;;;;;;;;;AChIF;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe,GAAG,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,GAAG,YAAY,GAAG,cAAc;AAC5G,mBAAmB,mBAAO,CAAC,wFAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;;;;;;;;;;;AC7HF;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,iBAAiB,GAAG,mBAAmB,GAAG,eAAe,GAAG,oBAAoB,GAAG,oBAAoB;AACvG,mBAAmB,mBAAO,CAAC,wFAAY;AACvC,uCAAuC,mBAAO,CAAC,gGAAgB;AAC/D,uBAAuB,mBAAO,CAAC,gGAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oCAAoC,EAAE;AACnF;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;;;;;;;;;;;ACrFJ;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,0BAA0B,GAAG,0BAA0B,GAAG,eAAe,GAAG,iBAAiB,GAAG,yBAAyB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,mBAAmB;AACzL,mBAAmB,mBAAO,CAAC,wFAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;;;;;;;;;;;;ACpHb;;AAEb;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,sBAAsB;AAC9B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACjCa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,kBAAkB,GAAG,wBAAwB,GAAG,iBAAiB;AACjE,sCAAsC,mBAAO,CAAC,0GAAsB;AACpE,oCAAoC,mBAAO,CAAC,sGAAoB;AAChE,iCAAiC,mBAAO,CAAC,gGAAiB;AAC1D,yCAAyC,mBAAO,CAAC,yGAAoB;AACrE,8DAA8D;AAC9D,iBAAiB;AACjB,wBAAwB;AACxB;AACA;AACA,2BAA2B,qDAAqD;AAChF;AACA,8BAA8B,yBAAyB;AACvD,kBAAkB;AAClB;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,sEAAsE,QAAQ;AAC9E;AACA;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,2BAA2B,0CAA0C;AACrE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpDa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,oCAAoC,mBAAO,CAAC,sGAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;;;;;;;;;;;AC7BF;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,kBAAkB,GAAG,cAAc,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,iBAAiB;AACzG,iCAAiC,mBAAO,CAAC,gGAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,iBAAiB;AACjB,sCAAsC,mBAAO,CAAC,0GAAsB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,KAAK,IAAI;AACT;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,0CAA0C,sBAAsB,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,yDAAyD,wCAAwC,EAAE;AACnG;AACA;;;;;;;;;;;;ACvIa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,uBAAuB,GAAG,yBAAyB,GAAG,yBAAyB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,wBAAwB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,cAAc,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,cAAc,GAAG,oBAAoB,GAAG,cAAc;AAChZ,eAAe,mBAAO,CAAC,qFAAU;AACjC,eAAe,mBAAO,CAAC,qFAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,eAAe,mBAAO,CAAC,qFAAU;AACjC,6CAA4C,CAAC,qCAAqC,2BAA2B,EAAE,EAAE,EAAC;AAClH,8CAA6C,CAAC,qCAAqC,4BAA4B,EAAE,EAAE,EAAC;AACpH,sDAAqD,CAAC,qCAAqC,oCAAoC,EAAE,EAAE,EAAC;AACpI,0CAAyC,CAAC,qCAAqC,wBAAwB,EAAE,EAAE,EAAC;AAC5G,8CAA6C,CAAC,qCAAqC,4BAA4B,EAAE,EAAE,EAAC;AACpH;AACA,+CAA8C,CAAC,qCAAqC,4BAA4B,EAAE,EAAE,EAAC;AACrH,+CAA8C,CAAC,qCAAqC,4BAA4B,EAAE,EAAE,EAAC;AACrH,eAAe,mBAAO,CAAC,qFAAU;AACjC,6CAA4C,CAAC,qCAAqC,2BAA2B,EAAE,EAAE,EAAC;AAClH,8CAA6C,CAAC,qCAAqC,4BAA4B,EAAE,EAAE,EAAC;AACpH,oDAAmD,CAAC,qCAAqC,kCAAkC,EAAE,EAAE,EAAC;AAChI;AACA,+CAA8C,CAAC,qCAAqC,4BAA4B,EAAE,EAAE,EAAC;AACrH,+CAA8C,CAAC,qCAAqC,4BAA4B,EAAE,EAAE,EAAC;AACrH,qDAAoD,CAAC,qCAAqC,kCAAkC,EAAE,EAAE,EAAC;AACjI,qDAAoD,CAAC,qCAAqC,kCAAkC,EAAE,EAAE,EAAC;AACjI,mDAAkD,CAAC,qCAAqC,2BAA2B,EAAE,EAAE,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxDxH,eAAe,IAAI,GAAG,IAAI,aAAa,IAAI;AAC3C;AACA;AACA,uBAAuB,EAAE;AACzB,sBAAsB,EAAE;AACxB;AACA;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA;AACA,sCAAsC;AACtC,uDAAuD,wBAAwB,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB,SAAS;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kCAAkC,EAAE;AAC/D,4BAA4B,+BAA+B,EAAE;AAC7D;AACA;AACA,KAAK;AACL,2BAA2B,iCAAiC,EAAE;AAC9D,4BAA4B,8BAA8B,EAAE;AAC5D;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,2BAA2B,uCAAuC,EAAE;AACpE,4BAA4B,oCAAoC,EAAE;AAClE;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,8BAA8B,sCAAsC,EAAE;AACtE,2BAA2B,8CAA8C,EAAE;AAC3E,4BAA4B,2CAA2C,EAAE;AACzE,2BAA2B,mCAAmC,EAAE;AAChE,4BAA4B,gCAAgC,EAAE;AAC9D,2BAA2B,qCAAqC,EAAE;AAClE,4BAA4B,kCAAkC,EAAE;AAChE,2BAA2B,qCAAqC,EAAE;AAClE,4BAA4B,kCAAkC,EAAE;AAChE;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,6BAA6B,0CAA0C,EAAE;AACzE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,wBAAwB,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iBAAiB,EAAE;AAC/D,iDAAiD,gBAAgB,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,mCAAmC;AAC9E;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA,0BAA0B,+BAA+B;AACzD,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,+CAA+C;AAC/C;AACA;AACA;AACA,KAAK;AACL;AACA,6CAA6C,yBAAyB,EAAE;AACxE;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,KAAK;AAChB,aAAa,UAAU;AACvB;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,uDAAuD,yBAAyB,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,KAAK,EAAC;AACgE;AACrF;;;;;;;;;;;;ACjYa;;AAEb;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;;;;;;;;;;;ACzCA;AACA,CAAC;;AAED;AACA,mBAAmB,KAA0B;;AAE7C;AACA,kBAAkB,KAAyB;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,8iBAA8iB,wZAAwZ,WAAW;;AAEn+B;AACA;AACA,cAAc;AACd,aAAa;AACb,eAAe;AACf,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA,wxfAAwxf,inBAAinB,6BAA6B,yBAAyB;AAC/7gB,kBAAkB,4teAA4te,wKAAwK,2uZAA2uZ,wKAAwK,6gFAA6gF;AACtz9B,wBAAwB;AACxB,yBAAyB;AACzB;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0DAA0D;AAC1D;;AAEA;AACA,8BAA8B;AAC9B;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC,mBAAmB,iBAAiB;AACpC,qBAAqB,MAAM,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,wCAAwC,EAAE;AAC1C,KAAK;AACL;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA,uCAAuC;AACvC,IAAI;AACJ,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE,IAEU;AACZ;AACA,EAAE,mCAAO;AACT;AACA,GAAG;AAAA,kGAAC;AACJ,EAAE,MAAM,YAUN;;AAEF,CAAC;;;;;;;;;;;ACxVD;AACA,aAAa,mBAAO,CAAC,kBAAM;AAC3B;AACA;AACA,CAAC;AACD,EAAE,8IAAiD;AACnD;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACRa;;AAEb;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB;AACxB,wBAAwB;AACxB,wBAAwB;AACxB,wBAAwB;AACxB,wBAAwB;;AAExB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,0BAA0B,EAAE;AAC5B;;;AAGA;AACA;AACA;AACA;;;;;;;;;;;;ACrHa;;AAEb,eAAe,mBAAO,CAAC,gFAAU;;AAEjC;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA,sBAAsB,aAAa;AACnC;AACA,CAAC;;;;;;;;;;;;ACbY;;AAEb,OAAO,YAAY,GAAG,mBAAO,CAAC,oFAAY;AAC1C,OAAO,SAAS,GAAG,mBAAO,CAAC,wFAAc;AACzC,OAAO,mBAAmB,GAAG,mBAAO,CAAC,sFAAa;;;AAGlD;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,WAAW,GAAG,aAAa;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;;;;;;;;;;;;ACnDR;;AAEb,eAAe,mBAAO,CAAC,gFAAa;AACpC,OAAO,iBAAiB,GAAG,mBAAO,CAAC,sFAAa;;AAEhD;AACA;AACA;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK,IAAI;;AAET,0CAA0C,2BAA2B;AACrE;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6DAA6D,SAAS;AACtE;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,iBAAiB;AACxB;AACA;;AAEA;AACA;AACA;AACA,wBAAwB;AACxB,IAAI,qBAAqB;AACzB;;;;;;;;;;;;ACzHa;;AAEb,eAAe,mBAAO,CAAC,gFAAU;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,mCAAmC;AACnC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;;;;;;;;;;;ACjEtB;AACa;;AAEb,eAAe,mBAAO,CAAC,gFAAU;AACjC,OAAO,iBAAiB,GAAG,mBAAO,CAAC,sFAAa;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACtCY;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mCAAmC;;AAE5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnDa;;AAEb;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA,eAAe,sHAAoC;;AAEnD;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA,sHAAoC;;AAEpC;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,mCAAmC,QAAQ,mBAAO,CAAC,8EAAS,EAAE,EAAE;AAChE,oCAAoC,QAAQ,mBAAO,CAAC,gFAAU,EAAE,EAAE;AAClE,iCAAiC,QAAQ,mBAAO,CAAC,0EAAO,EAAE,EAAE;AAC5D,qCAAqC,QAAQ,mBAAO,CAAC,kFAAW,EAAE,EAAE;AACpE,sCAAsC,QAAQ,mBAAO,CAAC,oFAAY,EAAE,EAAE;AACtE,kCAAkC,QAAQ,mBAAO,CAAC,4EAAQ,EAAE,EAAE;AAC9D,mCAAmC,QAAQ,mBAAO,CAAC,8EAAS,EAAE,EAAE;AAChE,sCAAsC,QAAQ,mBAAO,CAAC,oFAAY,EAAE,EAAE;AACtE,sCAAsC,QAAQ,mBAAO,CAAC,oFAAY,EAAE,EAAE;AACtE,gCAAgC,QAAQ,mBAAO,CAAC,wEAAM,EAAE,EAAE;AAC1D,uCAAuC,QAAQ,mBAAO,CAAC,wFAAc,EAAE,EAAE;AACzE,yCAAyC,QAAQ,mBAAO,CAAC,4FAAgB,EAAE,EAAE;AAC7E,oCAAoC,QAAQ,mBAAO,CAAC,gFAAU,EAAE,EAAE;AAClE,oCAAoC,QAAQ,mBAAO,CAAC,gFAAU,EAAE,EAAE;AAClE,mCAAmC,QAAQ,mBAAO,CAAC,8EAAS,EAAE,EAAE;AAChE,uCAAuC,QAAQ,mBAAO,CAAC,sFAAa,EAAE,EAAE;AACxE,wCAAwC,QAAQ,mBAAO,CAAC,wFAAc,EAAE,EAAE;;;;;;;;;;;;ACnD7D;;AAEb,eAAe,mBAAO,CAAC,gFAAU;AACjC,OAAO,UAAU,GAAG,mBAAO,CAAC,sFAAa;AACzC,sBAAsB,mBAAO,CAAC,0GAAuB;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA,wCAAwC;AACxC;AACA;AACA,CAAC;;;;;;;;;;;;AC5BY;;AAEb,eAAe,mBAAO,CAAC,gFAAU;;AAEjC;AACA;AACA;AACA;AACA,IAAI,oBAAoB;AACxB;AACA;AACA;AACA,uBAAuB,WAAW,IAAI,aAAa;AACnD;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;;;;;AClBY;;AAEb,OAAO,YAAY,GAAG,mBAAO,CAAC,oFAAY;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACXa;;AAEb,eAAe,mBAAO,CAAC,gFAAU;AACjC,OAAO,UAAU,GAAG,mBAAO,CAAC,sFAAa;AACzC,sBAAsB,mBAAO,CAAC,0GAAuB;;AAErD;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC5BY;;AAEb,eAAe,mBAAO,CAAC,gFAAU;;AAEjC;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;AACA;AACA;AACA;AACA,GAAG,IAAI;;AAEP;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;AC5DY;;AAEb,eAAe,mBAAO,CAAC,gFAAU;AACjC,WAAW,mBAAO,CAAC,yFAAI;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS;AACX,EAAE,aAAa;AACf,gBAAgB,cAAc;;AAE9B;AACA,CAAC;;;;;;;;;;;ACjBD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACjKA;AACa;;AAEb,OAAO,0BAA0B,GAAG,mBAAO,CAAC,sFAAa;;AAEzD;AACA,sBAAsB,6BAA6B;AACnD;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,uBAAuB,OAAO,EAAE,mBAAmB;AACnD;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK;AACnB,cAAc,OAAO;AACrB,eAAe,KAAK;AACpB;AACA;AACA,sBAAsB,2BAA2B,EAAE,aAAa;AAChE;AACA,yBAAyB,2BAA2B,EAAE,cAAc;AACpE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI,kBAAkB;AACtB;AACA;;AAEA,qBAAqB;AACrB,IAAI,qBAAqB;AACzB;;;;;;;;;;;;AClFa;;AAEb,gBAAgB,+CAAuB;AACvC,eAAe,mBAAO,CAAC,gFAAU;AACjC,OAAO,wBAAwB,GAAG,mBAAO,CAAC,sFAAa;;AAEvD;AACA;AACA;AACA;AACA,IAAI,oBAAoB;AACxB;AACA,wCAAwC;AACxC;AACA,WAAW,sBAAsB;AACjC;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;;;;;AC5BY;;AAEb,OAAO,UAAU,GAAG,mBAAO,CAAC,sFAAa;;AAEzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB,IAAI,qBAAqB;AACzB;;;;;;;;;;;;ACzBA;AACa;;AAEb,eAAe,mBAAO,CAAC,gFAAU;AACjC,OAAO,UAAU,GAAG,mBAAO,CAAC,sFAAa;AACzC,sBAAsB,mBAAO,CAAC,0GAAuB;;AAErD;AACA;AACA;AACA;AACA;AACA,aAAa,iCAAiC;AAC9C;AACA,QAAQ,MAAM,IAAI,QAAQ;AAC1B,QAAQ,MAAM,IAAI,QAAQ,GAAG,qBAAqB;AAClD;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA,GAAG;;AAEH;AACA,6BAA6B;AAC7B,uBAAuB,WAAW,GAAG,QAAQ,GAAG,aAAa,GAAG,gBAAgB;AAChF,GAAG;AACH,uBAAuB,WAAW,GAAG,QAAQ,GAAG,aAAa;AAC7D;;AAEA;AACA,CAAC;;;;;;;;;;;;AChCY;;AAEb,aAAa,mBAAO,CAAC,kBAAM;AAC3B,OAAO,QAAQ,GAAG,mBAAO,CAAC,sFAAa;;AAEvC;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uDAAuD,cAAc;AACrE;AACA;AACA,gBAAgB,KAAK;AACrB,gBAAgB,SAAS;AACzB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,mBAAmB;AAC7B,UAAU,mBAAmB;AAC7B;AACA;AACA;AACA;AACA,qDAAqD,aAAa,GAAG,mBAAmB;AACxF;AACA;AACA;AACA,6BAA6B,aAAa,GAAG,mBAAmB;AAChE,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,QAAQ,wCAAwC,OAAO;AACxE;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa;AAClC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,OAAO;AACtB,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,QAAQ,wCAAwC,OAAO;AAC1E;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnIa;;AAEb,cAAc,mBAAO,CAAC,8EAAO;AAC7B,eAAe,mBAAO,CAAC,gFAAU;;AAEjC;AACA;AACA;AACA;AACA;AACA,MAAM,kBAAkB;AACxB,MAAM,6BAA6B;AACnC;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;AC7BY;;AAEb,eAAe,mBAAO,CAAC,gFAAa;AACpC,eAAe,mBAAO,CAAC,gFAAU;AACjC,OAAO,UAAU,GAAG,mBAAO,CAAC,sFAAa;;AAEzC;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;;;;AC1Bc;AACf;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFyD;AACH;AACF;AACT;AACI;AACI;AACA;;;;;;;;;;;;;;;;;ACNf;AACpC;AACA,qCAAqC,6DAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;ACpGwB;AACI;AACf,0BAA0B,0CAAI;AAC7C;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,wBAAwB,uDAAqB;AAC7C;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBoB;AAC8B;AACxB;AACI;AACA;AACG;AACF;AACK;AACpC,UAAU,SAAS;AACnB;AACA;AACA,qCAAqC,gDAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACe,0BAA0B,0CAAI;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uDAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA,sCAAsC,0BAA0B;AAChE;AACA,yCAAyC,IAAI;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,6BAA6B,0CAAQ;AACrC;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,kCAAkC,uDAAqB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oDAAkB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,GAAG;AACjD,SAAS;AACT,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA,2BAA2B,IAAI,EAAE,MAAM;AACvC;AACA,uBAAuB,IAAI,EAAE,MAAM,GAAG,eAAe,IAAI,IAAI;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mDAAmD;AACnD;AACA,oEAAoE,0CAAQ;AAC5E;AACA,qCAAqC;AACrC,+BAA+B,0CAAI;AACnC;AACA;AACA;AACA;AACA,gEAAgE,0CAAQ;AACxE;AACA;AACA;AACA;AACA;AACA,gCAAgC,0CAAI;AACpC;AACA;AACA;AACA,4DAA4D;AAC5D;AACA,iEAAiE,0CAAQ;AACzE;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,YAAY;AAC5B;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA,uCAAuC,uDAAqB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD,0DAA0D,+BAA+B,QAAQ;AACjG,qBAAqB,gBAAgB,EAAE,MAAM,EAAE,SAAS;AACxD;AACA;AACA,2CAA2C,uDAAqB;AAChE;AACA;AACA,gDAAgD,oDAAkB;AAClE;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA,kCAAkC,oDAAkB;AACpD;AACA;AACA;AACA;AACA;AACA,uCAAuC,uDAAqB;AAC5D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,cAAc;AAC9B;AACA;AACA,eAAe,qDAAS;AACxB;AACA,qBAAqB,6CAAO;AAC5B,SAAS;AACT;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,cAAc;AACd;AACA;AACA;AACA;AACA,oBAAoB;AACpB,sBAAsB;AACtB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,YAAY;AAC5B;AACA;AACA,eAAe,qDAAS;AACxB;AACA,qBAAqB,6CAAO;AAC5B,SAAS;AACT;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,gCAAgC,SAAS,UAAU,aAAa;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qDAAS;AAC/B;AACA;AACA,uBAAuB,6CAAO;AAC9B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA,eAAe,8CAAQ;AACvB;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,GAAG,IAAI;AAClC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,GAAG,IAAI;AAClC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,GAAG,iCAAiC;AAC/D,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,oDAAoD,MAAM;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,QAAQ,yCAAyC;AACjD,QAAQ,yCAAyC;AACjD,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,SAAS,yCAAyC;AAClD,SAAS,yCAAyC;AAClD,SAAS,yCAAyC;AAClD,SAAS,yCAAyC;AAClD,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS;AACT;AACA;AACA,SAAS,yCAAyC;AAClD,SAAS,yCAAyC;AAClD,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,SAAS,+CAA+C;AACxD,SAAS,+CAA+C;AACxD,SAAS,+CAA+C;AACxD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,YAAY;AACxB;AACO,qCAAqC,0CAA0C;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU,GAAG,KAAK,IAAI,UAAU;AAC/C;AACA;AACA;AACA;AACA;AACA,8CAA8C,0CAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,6CAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+CAA+C;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,8CAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0CAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,8CAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,8CAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,gCAAgC,0CAA0C;AACjF;AACA;AACA;AACA;AACA;AACA,0BAA0B,8CAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;;;;;;;;;;;;;;;ACnkCA;AACA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACjB8B;AACJ;AAC1B;AACA;AACA,WAAW,OAAO;AAClB;AACe,uBAAuB,0CAAI;AAC1C;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,wBAAwB,oDAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;ACNkB;AAC1C;AACA;AACA;AACA;AACe,gCAAgC,0CAA0C;AACzF,kBAAkB,uDAAU;AAC5B;AACA;;;;;;;;;;;;ACRa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,GAAG,eAAe;AAClC,iCAAiC,mBAAO,CAAC,gFAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA,iCAAiC,oBAAoB;AACrD;AACA;AACA,uEAAuE,mBAAmB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAA4C;AACxE,4BAA4B,4CAA4C;AACxE;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA,6BAA6B,+BAA+B;AAC5D;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA,gBAAgB;AAChB,mC;;;;;;;;;;;ACxHa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,GAAG,gBAAgB,GAAG,eAAe,GAAG,aAAa;AACrE,iBAAiB,mBAAO,CAAC,uFAAY;AACrC,yCAAwC,CAAC,qCAAqC,yBAAyB,EAAE,EAAE,EAAC;AAC5G,mBAAmB,mBAAO,CAAC,2FAAc;AACzC,2CAA0C,CAAC,qCAAqC,6BAA6B,EAAE,EAAE,EAAC;AAClH,4CAA2C,CAAC,qCAAqC,8BAA8B,EAAE,EAAE,EAAC;AACpH;AACA;AACA,mBAAmB,YAAY,MAAM,cAAc;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,mBAAmB,YAAY,MAAM,eAAe;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,iC;;;;;;;;;;;ACrEa;AACb;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,iC;;;;;;;;;;;AC5Ea;;AAEb,WAAW,mBAAO,CAAC,8EAAS;;AAE5B;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzCA;AACA,aAAa,mBAAO,CAAC,sBAAQ;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,EAAE,cAAc;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7DY;;AAEZ,kBAAkB,mBAAO,CAAC,8FAAU;;AAEpC;AACA;;;;;;;;;;;;ACLY;;AAEZ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA,OAAO;AACP,qBAAqB,mBAAmB,EAAE,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC,qBAAqB,YAAY;AACjC;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,cAAc;AACd;AACA,kBAAkB,YAAY;AAC9B,mBAAmB,YAAY;AAC/B;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,oBAAoB,UAAU,GAAG,eAAe,KAAK,IAAI;AACzD;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC,OAAO;AACP,gBAAgB;AAChB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC,qBAAqB,YAAY;AACjC;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA;AACA,cAAc;AACd;AACA,kBAAkB,YAAY;AAC9B,mBAAmB,YAAY;AAC/B;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA,sBAAsB,UAAU,GAAG,eAAe,KAAK,IAAI;AAC3D;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC,OAAO;AACP,gBAAgB;AAChB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC,qBAAqB,YAAY;AACjC;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,cAAc;AACd;AACA,kBAAkB,YAAY;AAC9B,mBAAmB,YAAY;AAC/B;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,oBAAoB,UAAU,GAAG,eAAe,KAAK,IAAI;AACzD;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC,OAAO;AACP,gBAAgB;AAChB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA;AACA,cAAc;AACd;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA,sBAAsB,UAAU,GAAG,eAAe,IAAI,IAAI;AAC1D;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,cAAc;AACd;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,oBAAoB,UAAU,GAAG,eAAe,IAAI,IAAI;AACxD;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,cAAc;AACd,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,oBAAoB,UAAU,GAAG,eAAe,IAAI,IAAI;AACxD;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC5jBa;;AAEb,iBAAiB,mBAAO,CAAC,sFAAa;;AAEtC;AACA;;AAEA;AACA;;AAEA,mCAAmC,SAAS;AAC5C;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5BA,WAAW;AACX;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8BAA8B,GAAG;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,6BAA6B;AAC7B;AACA;;;;;;;;;;;;ACvIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,aAAa,kHAA6B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,sCAAsC,sCAAsC;AACzG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;ACvSa;;AAEb;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA,UAAU;AACV;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA,UAAU;AACV;AACA,uCAAsC;AACtC,SAAS,mBAAO,CAAC,qFAAO;AACxB,CAAC,EAAC;;AAEF;AACA;AACA,UAAU;AACV;AACA,uCAAsC;AACtC,SAAS,mBAAO,CAAC,qFAAO;AACxB,CAAC,EAAC;;AAEF;AACA;AACA,UAAU;AACV;AACA,0CAAyC;AACzC,SAAS,mBAAO,CAAC,2FAAU;AAC3B,CAAC,EAAC;;;;;;;;;;;;AC/BF;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA,UAAU;AACV;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA,UAAU;AACV;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACrCa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,yCAAwC;AACxC;AACA,CAAC,EAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,2CAA0C;AAC1C;AACA,CAAC,EAAC;;AAEF;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,yCAAwC;AACxC;AACA,CAAC,EAAC;;AAEF;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,2CAA0C;AAC1C,SAAS,mBAAO,CAAC,0FAAU;AAC3B,CAAC,EAAC;;;;;;;;;;;;AC5CF;AACA;AACA;;AAEA,kEAA0C;;;;;;;;;;;;ACL7B;;AAEb,aAAa,mBAAO,CAAC,kBAAM;AAC3B,iBAAiB,mBAAO,CAAC,oKAAyC;AAClE,OAAO,QAAQ,GAAG,mBAAO,CAAC,sFAAa;;AAEvC;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,IAAI,kBAAkB;AACtB,WAAW,SAAS;AACpB;AACA,WAAW,SAAS;AACpB;AACA,8EAA8E;AAC9E,uBAAuB,yDAAyD;;AAEhF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0DAA0D;AAC1D,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,YAAY;AAC9D,WAAW,yBAAyB;AACpC,WAAW,mBAAmB;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;;AAGA;AACA,sJAA0D;;;;;;;;;;;;ACtN7C;;AAEb,aAAa,mBAAO,CAAC,kBAAM;AAC3B,OAAO,QAAQ,GAAG,mBAAO,CAAC,sFAAa;AACvC,wBAAwB,mBAAO,CAAC,mFAAI;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;;AAEA,0FAA0F;AAC1F;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,OAAO,oBAAoB;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACtHa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,MAAM,GAAG,sCAAsC;AACtE;AACA,KAAK;AACL,uBAAuB,MAAM,GAAG,YAAY,MAAM,YAAY;AAC9D,KAAK;AACL,mBAAmB,MAAM,GAAG,YAAY;AACxC;AACA,GAAG;AACH,iBAAiB,MAAM,GAAG,iBAAiB;AAC3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,KAAK,GAAG,WAAW,GAAG,wBAAwB;AAC/D,GAAG;AACH;AACA,kBAAkB,KAAK,IAAI,KAAK,GAAG,WAAW,GAAG,wBAAwB;AACzE;;AAEA,4BAA4B,cAAc;AAC1C;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,oBAAoB;;;;;;;;;;;;ACnHpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA,eAAe,mBAAO,CAAC,+IAAoB;;AAE3C,eAAe,mBAAO,CAAC,+IAAoB;;AAE3C,mBAAO,CAAC,mFAAU;;AAElB;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;AAEH;AACA;AACA,wCAAwC;AACxC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA,CAAC,E;;;;;;;;;;;AC1ID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACa;;AAEb;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,SAAS,wDAA8B;;AAEvC;AACA;AACA;AACA;;AAEA;;;AAGA,aAAa,mBAAO,CAAC,6JAA2B;AAChD;;;AAGA,aAAa,kDAAwB;;AAErC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,gBAAgB,mBAAO,CAAC,kBAAM;;AAE9B;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;;;AAGA,iBAAiB,mBAAO,CAAC,uKAAgC;;AAEzD,kBAAkB,mBAAO,CAAC,+JAA4B;;AAEtD,eAAe,mBAAO,CAAC,2JAA0B;AACjD;;AAEA,qBAAqB,mJAA0B;AAC/C;AACA;AACA;AACA,2FAA2F;;;AAG3F;AACA;AACA;;AAEA,mBAAO,CAAC,mFAAU;;AAElB;AACA;;AAEA;AACA;AACA;AACA,+FAA+F;AAC/F;AACA;AACA;;AAEA,yEAAyE,mFAAmF;AAC5J;;AAEA;AACA,qBAAqB,mBAAO,CAAC,2IAAkB;AAC/C,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA,yEAAyE;AACzE;;AAEA;AACA,kFAAkF;AAClF;;AAEA,0FAA0F;AAC1F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB,+CAA+C;;AAE/C,2CAA2C;;AAE3C,yBAAyB;AACzB;AACA;;AAEA,2DAA2D;;AAE3D,sBAAsB;;AAEtB;AACA;AACA;;AAEA;AACA,wCAAwC,6IAAwC;AAChF;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAO,CAAC,2IAAkB;AAC/C,gEAAgE;AAChE;;AAEA;AACA,mEAAmE;;AAEnE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,EAAE;;;AAGF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,+FAA+F;AAC/F,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;;AAEA;AACA;AACA,4FAA4F;AAC5F,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,gDAAgD;AAChD;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;;AAGF;AACA,sCAAsC,6IAAwC;AAC9E;AACA,wCAAwC;;AAExC,sEAAsE;;AAEtE;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;;;AAGF;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;;;AAGA;AACA;AACA;;AAEA;AACA;AACA,4EAA4E;AAC5E,GAAG;;;AAGH;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;;AAEA;AACA;AACA,6DAA6D;AAC7D;AACA;;AAEA,8BAA8B;;AAE9B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,sBAAsB;;AAEtB,sDAAsD;;AAEtD;;AAEA,uBAAuB;AACvB;;AAEA;AACA;;AAEA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,gDAAgD;;AAEhD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH,0CAA0C;;AAE1C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH,yBAAyB;;AAEzB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;;AAEJ,0CAA0C;;AAE1C;AACA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,SAAS;AAC5B;AACA;AACA,OAAO;AACP;;AAEA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,iEAAiE;;AAEjE;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;;;AAGA;AACA;;AAEA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA,0DAA0D;;AAE1D,4EAA4E;;AAE5E;;AAEA;AACA;AACA;AACA;AACA,GAAG,EAAE;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;;AAGH,iBAAiB,yBAAyB;AAC1C;AACA,GAAG;AACH;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,mBAAO,CAAC,6KAAmC;AACrF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA,mDAAmD,+DAA+D;AAClH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yDAAyD;;AAEzD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,yJAAyB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA,gCAAgC,OAAO;AACvC;AACA;;AAEA;AACA,C;;;;;;;;;;;ACnmCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,mBAAO,CAAC,2FAAgB;AACrC;AACA;;AAEA;;AAEA,aAAa,mBAAO,CAAC,6JAA2B;AAChD;;;AAGA,aAAa,kDAAwB;;AAErC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,mBAAO,CAAC,+JAA4B;;AAEtD,eAAe,mBAAO,CAAC,2JAA0B;AACjD;;AAEA,qBAAqB,mJAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,mBAAO,CAAC,mFAAU;;AAElB;;AAEA;AACA,qBAAqB,mBAAO,CAAC,2IAAkB;AAC/C,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA,yEAAyE;AACzE;;AAEA;AACA,kFAAkF;AAClF;AACA;;AAEA,0FAA0F;;AAE1F,2BAA2B;;AAE3B,yBAAyB;;AAEzB,sBAAsB;;AAEtB,qBAAqB;;AAErB,wBAAwB;;AAExB,yBAAyB;AACzB;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;;AAEA,2DAA2D;AAC3D;AACA;;AAEA,kBAAkB;;AAElB,uBAAuB;;AAEvB,kBAAkB;AAClB;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;;AAEA,gCAAgC;;AAEhC;AACA;AACA,IAAI;;;AAGJ,sBAAsB;;AAEtB;AACA;AACA,kCAAkC;AAClC;;AAEA,qBAAqB;AACrB;;AAEA,2BAA2B;;AAE3B,4BAA4B;;AAE5B,+CAA+C;;AAE/C,2CAA2C;;AAE3C,gCAAgC;AAChC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC,IAAI;AACL;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAO,CAAC,2IAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mEAAmE;;AAEnE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA,4CAA4C;;AAE5C;AACA;AACA,CAAC;AACD;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA+C;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wEAAwE,sDAAsD;AAC9H;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0EAA0E;AAC1E;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,yEAAyE;;AAEzE;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA,E;;;;;;;;;;;ACxrBa;;AAEb;;AAEA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M,eAAe,mBAAO,CAAC,0JAAiB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA,iEAAiE;AACjE;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH,CAAC;;AAED;AACA;;AAEA,yFAAyF;AACzF;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA,mD;;;;;;;;;;;AC9Ma;;AAEb,0CAA0C,gCAAgC,oCAAoC,oDAAoD,8DAA8D,gEAAgE,EAAE,EAAE,gCAAgC,EAAE,aAAa;;AAEnV,gCAAgC,gBAAgB,sBAAsB,OAAO,uDAAuD,aAAa,uDAAuD,2CAA2C,EAAE,EAAE,EAAE,6CAA6C,2EAA2E,EAAE,OAAO,iDAAiD,kFAAkF,EAAE,EAAE,EAAE,EAAE,eAAe;;AAEphB,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE;;AAE3T,6DAA6D,sEAAsE,8DAA8D,oBAAoB;;AAErN,eAAe,mBAAO,CAAC,sBAAQ;AAC/B;;AAEA,gBAAgB,mBAAO,CAAC,kBAAM;AAC9B;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;;AAEL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;AAC1C;;AAEA;AACA;AACA;AACA,2CAA2C;AAC3C,WAAW;AACX;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;AAC3C,WAAW;AACX;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL,GAAG;AACH;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,G;;;;;;;;;;;ACjNY;;AAEb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;;AAGA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF;AACxF;;AAEA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;ACxGA;AACA;AACa;;AAEb,iCAAiC,oLAA2D;;AAE5F;AACA;AACA;AACA;AACA;;AAEA,uEAAuE,aAAa;AACpF;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qB;;;;;;;;;;;ACvGa;;AAEb,4EAA4E,MAAM,0BAA0B,wBAAwB,EAAE,gBAAgB,eAAe,QAAQ,EAAE,iBAAiB,gBAAgB,EAAE,OAAO,4CAA4C,EAAE;;AAEvQ,gCAAgC,qBAAqB,mCAAmC,gDAAgD,gCAAgC,wBAAwB,wEAAwE,EAAE,uBAAuB,uEAAuE,EAAE,kBAAkB,EAAE,EAAE,GAAG;;AAEnY,0CAA0C,gCAAgC,oCAAoC,oDAAoD,8DAA8D,gEAAgE,EAAE,EAAE,gCAAgC,EAAE,aAAa;;AAEnV,gCAAgC,gBAAgB,sBAAsB,OAAO,uDAAuD,aAAa,uDAAuD,2CAA2C,EAAE,EAAE,EAAE,6CAA6C,2EAA2E,EAAE,OAAO,iDAAiD,kFAAkF,EAAE,EAAE,EAAE,EAAE,eAAe;;AAEphB,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M,2BAA2B,8KAAqD;;AAEhF;AACA;;AAEA;AACA;AACA,GAAG,kGAAkG,uFAAuF;;AAE5L;AACA;AACA,GAAG,SAAS;AACZ;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA,sB;;;;;;;;;;;AC/Da;;AAEb,4BAA4B,+KAAsD;;AAElF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA,E;;;;;;;;;;AC1BA,4DAAkC;;;;;;;;;;;;ACAlC;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,gBAAgB,mBAAO,CAAC,8EAAS;AACjC,OAAO,OAAO,GAAG,mBAAO,CAAC,oGAAkB;;AAE3C;AACA;AACA,UAAU;AACV;AACA,yIAAoD;AACpD;AACA;AACA,UAAU;AACV;AACA,4JAAoD;AACpD;AACA;AACA,UAAU;AACV;AACA,gJAA4C;AAC5C;AACA;AACA,UAAU;AACV;AACA,iBAAiB;AACjB;AACA;AACA,UAAU;AACV;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA,8JAAyD;AACzD;AACA;AACA,UAAU;AACV;AACA,0KAAiE;AACjE;AACA;AACA,UAAU;AACV;AACA,0KAAiE;AACjE;AACA;AACA,UAAU;AACV;AACA,mJAAkD;AAClD;AACA;AACA,UAAU;AACV;AACA,2IAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA,yCAAwC;AACxC;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC,EAAC;;AAEF;AACA;AACA;AACA,UAAU;AACV;AACA,8CAA6C;AAC7C;AACA;AACA;AACA,CAAC,EAAC;;AAEF;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA,UAAU;AACV;AACA,2CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,OAAO,SAAS,GAAG,mBAAO,CAAC,kBAAM;;AAEjC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA;AACA,+BAA+B,KAAK;AACpC;AACA,GAAG;AACH;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;;;;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,gBAAgB,mBAAO,CAAC,8EAAS;AACjC,OAAO,UAAU,GAAG,mBAAO,CAAC,sFAAa;;AAEzC;AACA;AACA,UAAU;AACV;AACA,WAAW;;AAEX;AACA;AACA,UAAU;AACV;AACA,WAAW;;AAEX;AACA;AACA,UAAU;AACV;AACA,cAAc;;AAEd;AACA;AACA,UAAU;AACV;AACA,iBAAiB;;;;;;;;;;;;AClCjB;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,qBAAqB,mBAAO,CAAC,0GAAiB;;AAE9C;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ,YAAY;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,OAAO,QAAQ,GAAG,mBAAO,CAAC,sFAAa;AACvC,eAAe,mBAAO,CAAC,kGAAU;AACjC,eAAe,mBAAO,CAAC,4FAAU;AACjC,cAAc,mBAAO,CAAC,uGAAmB;;AAEzC;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA,oCAAoC;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mEAAmE,SAAS;AAC5E;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;ACvGA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,WAAW,mBAAO,CAAC,cAAI;AACvB,qBAAqB,mBAAO,CAAC,oFAAe;AAC5C,cAAc,mBAAO,CAAC,uGAAmB;AACzC,aAAa,mBAAO,CAAC,gFAAU;AAC/B,mBAAmB,mBAAO,CAAC,gGAAa;AACxC,wBAAwB,mBAAO,CAAC,gHAAoB;;AAEpD;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA,SAAS,UAAU;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kCAAkC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,aAAa,UAAU;AACvB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;ACpPA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,OAAO,WAAW,GAAG,mBAAO,CAAC,sHAAiB;;AAE9C;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA,WAAW,mBAAmB;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,OAAO,oBAAoB,GAAG,mBAAO,CAAC,sHAAiB;AACvD,qBAAqB,mBAAO,CAAC,oFAAe;AAC5C,OAAO,eAAe,GAAG,mBAAO,CAAC,sFAAa;AAC9C,iBAAiB,mBAAO,CAAC,uGAAW;AACpC,yBAAyB,mBAAO,CAAC,kHAAqB;AACtD,yBAAyB,mBAAO,CAAC,kHAAqB;AACtD,8BAA8B,mBAAO,CAAC,0GAA0B;AAChE,iBAAiB,mBAAO,CAAC,gGAAY;AACrC,OAAO,OAAO,GAAG,mBAAO,CAAC,4FAAU;AACnC,eAAe,mBAAO,CAAC,kGAAU;;AAEjC;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,WAAW,mBAAmB;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,KAAK;AACR;AACA;AACA;AACA;;AAEA;AACA,2CAA2C,mBAAO,CAAC,kFAAc;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kEAAkE;AAC9E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;AACA,2CAA2C,eAAe;AAC1D;AACA;AACA;AACA,uDAAuD,mBAAmB;AAC1E;AACA;AACA,oBAAoB,sDAAsD;AAC1E,oBAAoB,yDAAyD;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,SAAS;;AAET,4CAA4C,aAAa,GAAG,aAAa;AACzE;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,YAAY;AACjD;;AAEA;AACA;AACA,6DAA6D,mBAAmB;AAChF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,qBAAqB;;AAE7D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO,WAAW;AAC9B,eAAe,OAAO;AACtB;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACpqBA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,WAAW,mBAAO,CAAC,cAAI;AACvB,qBAAqB,mBAAO,CAAC,oFAAe;AAC5C,cAAc,mBAAO,CAAC,uGAAmB;AACzC,aAAa,mBAAO,CAAC,gFAAU;AAC/B,mBAAmB,mBAAO,CAAC,gGAAa;AACxC,wBAAwB,mBAAO,CAAC,gHAAoB;;AAEpD;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,aAAa,UAAU;AACvB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;AC1PA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,WAAW,mBAAO,CAAC,cAAI;AACvB,OAAO,gBAAgB,GAAG,mBAAO,CAAC,sCAAgB;AAClD,OAAO,SAAS,GAAG,mBAAO,CAAC,sHAAiB;;AAE5C;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;AC3HA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,WAAW,mBAAO,CAAC,cAAI;AACvB,OAAO,iBAAiB,GAAG,mBAAO,CAAC,sFAAa;AAChD,wBAAwB,mBAAO,CAAC,kGAAmB;;AAEnD;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ,YAAY;AACjC;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC,cAAc,EAAE,SAAS;AAC1D,OAAO;AACP;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iCAAiC,cAAc,EAAE,SAAS;AAC1D,OAAO;AACP;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,cAAc,EAAE,SAAS;AACxD,KAAK;AACL;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK,IAAI;AACT;AACA;;;;;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,WAAW,mBAAO,CAAC,cAAI;AACvB,aAAa,mBAAO,CAAC,kBAAM;AAC3B,oBAAoB,mBAAO,CAAC,kFAAc;AAC1C,aAAa,mBAAO,CAAC,kBAAM;AAC3B,OAAO,UAAU,GAAG,mBAAO,CAAC,sFAAa;AACzC,OAAO,sBAAsB,GAAG,mBAAO,CAAC,sHAAiB;AACzD,wBAAwB,mBAAO,CAAC,kGAAmB;AACnD,cAAc,mBAAO,CAAC,uGAAmB;AACzC,WAAW,mBAAO,CAAC,cAAI;AACvB,iBAAiB,mBAAO,CAAC,mGAAc;;AAEvC;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA,0BAA0B;AAC1B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,KAAK,OAAO,OAAO;AAC3D;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yCAAyC;AACzC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe;AACf;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,sBAAsB,cAAc,EAAE,SAAS;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,iBAAiB;AACjB;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,SAAS,GAAG,SAAS;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,eAAe,eAAe;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS,EAAE,WAAW,EAAE,IAAI;AACvC,WAAW,SAAS,EAAE,IAAI;;AAE1B;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;AAC7D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA,0BAA0B,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS;AAC9D;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS;AACtD;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA,mCAAmC,SAAS,EAAE,IAAI;AAClD,mCAAmC,SAAS,GAAG,IAAI,EAAE,SAAS;AAC9D;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA;AACA;AACA;;;;;;;;;;;;ACtrBA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,aAAa,mBAAO,CAAC,kBAAM;AAC3B,cAAc,mBAAO,CAAC,oBAAO;AAC7B,OAAO,SAAS,GAAG,mBAAO,CAAC,sHAAiB;AAC5C,wBAAwB,mBAAO,CAAC,kGAAmB;;AAEnD;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ,YAAY;AACjC;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA,qDAAqD,eAAe;AACpE;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,qDAAqD,eAAe;AACpE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,OAAO;AACnB;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA,2DAA2D,cAAc,GAAG,cAAc;AAC1F;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzMA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA,UAAU;AACV;AACA,2CAA0C;AAC1C;AACA;AACA;AACA,WAAW,mBAAO,CAAC,yGAAW;AAC9B;AACA,CAAC,EAAC;;AAEF;AACA;AACA,UAAU;AACV;AACA,wCAAuC;AACvC;AACA;AACA;AACA,WAAW,mBAAO,CAAC,mGAAQ;AAC3B;AACA,CAAC,EAAC;;AAEF;AACA;AACA,UAAU;AACV;AACA,wCAAuC;AACvC;AACA;AACA;AACA,WAAW,mBAAO,CAAC,mGAAQ;AAC3B;AACA,CAAC,EAAC;;AAEF;AACA;AACA,UAAU;AACV;AACA,0CAAyC;AACzC;AACA;AACA;AACA,WAAW,mBAAO,CAAC,uGAAU;AAC7B;AACA,CAAC,EAAC;;;;;;;;;;;;ACvDF;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,iBAAiB,mBAAO,CAAC,uGAAW;AACpC,OAAO,UAAU,GAAG,mBAAO,CAAC,sFAAa;AACzC,WAAW,mBAAO,CAAC,cAAI;AACvB,wBAAwB,mBAAO,CAAC,kGAAmB;;AAEnD;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ,YAAY;AACjC;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;;AAEA,0BAA0B,cAAc,EAAE,SAAS;AACnD;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;;;;;;;;;;;AC9Da;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3Ba;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,MAAM,GAAG,sCAAsC;AACtE;AACA,KAAK;AACL,uBAAuB,MAAM,GAAG,YAAY,MAAM,YAAY;AAC9D,KAAK;AACL,mBAAmB,MAAM,GAAG,YAAY;AACxC;AACA,GAAG;AACH,iBAAiB,MAAM,GAAG,iBAAiB;AAC3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,KAAK,GAAG,WAAW,GAAG,wBAAwB;AAC/D,GAAG;AACH;AACA,kBAAkB,KAAK,IAAI,KAAK,GAAG,WAAW,GAAG,wBAAwB;AACzE;;AAEA,4BAA4B,cAAc;AAC1C;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,oBAAoB;;;;;;;;;;;;ACnHpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA,eAAe,mBAAO,CAAC,qIAAoB;;AAE3C,eAAe,mBAAO,CAAC,qIAAoB;;AAE3C,mBAAO,CAAC,mFAAU;;AAElB;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;AAEH;AACA;AACA,wCAAwC;AACxC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA,CAAC,E;;;;;;;;;;;AC1ID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACa;;AAEb;;AAEA,gBAAgB,mBAAO,CAAC,uIAAqB;;AAE7C,mBAAO,CAAC,mFAAU;;AAElB;AACA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACa;;AAEb;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,SAAS,wDAA8B;;AAEvC;AACA;AACA;AACA;;AAEA;;;AAGA,aAAa,mBAAO,CAAC,mJAA2B;AAChD;;;AAGA,aAAa,kDAAwB;;AAErC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,gBAAgB,mBAAO,CAAC,kBAAM;;AAE9B;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;;;AAGA,iBAAiB,mBAAO,CAAC,6JAAgC;;AAEzD,kBAAkB,mBAAO,CAAC,qJAA4B;;AAEtD,eAAe,mBAAO,CAAC,iJAA0B;AACjD;;AAEA,qBAAqB,yIAA0B;AAC/C;AACA;AACA;AACA,2FAA2F;;;AAG3F;AACA;AACA;;AAEA,mBAAO,CAAC,mFAAU;;AAElB;AACA;;AAEA;AACA;AACA;AACA,+FAA+F;AAC/F;AACA;AACA;;AAEA,yEAAyE,mFAAmF;AAC5J;;AAEA;AACA,qBAAqB,mBAAO,CAAC,iIAAkB;AAC/C,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA,yEAAyE;AACzE;;AAEA;AACA,kFAAkF;AAClF;;AAEA,0FAA0F;AAC1F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB,+CAA+C;;AAE/C,2CAA2C;;AAE3C,yBAAyB;AACzB;AACA;;AAEA,2DAA2D;;AAE3D,sBAAsB;;AAEtB;AACA;AACA;;AAEA;AACA,wCAAwC,6IAAwC;AAChF;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAO,CAAC,iIAAkB;AAC/C,gEAAgE;AAChE;;AAEA;AACA,mEAAmE;;AAEnE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,EAAE;;;AAGF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,+FAA+F;AAC/F,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;;AAEA;AACA;AACA,4FAA4F;AAC5F,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,gDAAgD;AAChD;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;;AAGF;AACA,sCAAsC,6IAAwC;AAC9E;AACA,wCAAwC;;AAExC,sEAAsE;;AAEtE;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;;;AAGF;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;;;AAGA;AACA;AACA;;AAEA;AACA;AACA,4EAA4E;AAC5E,GAAG;;;AAGH;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;;AAEA;AACA;AACA,6DAA6D;AAC7D;AACA;;AAEA,8BAA8B;;AAE9B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,sBAAsB;;AAEtB,sDAAsD;;AAEtD;;AAEA,uBAAuB;AACvB;;AAEA;AACA;;AAEA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,gDAAgD;;AAEhD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH,0CAA0C;;AAE1C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH,yBAAyB;;AAEzB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;;AAEJ,0CAA0C;;AAE1C;AACA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,SAAS;AAC5B;AACA;AACA,OAAO;AACP;;AAEA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,iEAAiE;;AAEjE;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;;;AAGA;AACA;;AAEA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA,0DAA0D;;AAE1D,4EAA4E;;AAE5E;;AAEA;AACA;AACA;AACA;AACA,GAAG,EAAE;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;;AAGH,iBAAiB,yBAAyB;AAC1C;AACA,GAAG;AACH;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,mBAAO,CAAC,mKAAmC;AACrF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA,mDAAmD,+DAA+D;AAClH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yDAAyD;;AAEzD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,+IAAyB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA,gCAAgC,OAAO;AACvC;AACA;;AAEA;AACA,C;;;;;;;;;;;ACnmCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACa;;AAEb;;AAEA,qBAAqB,yIAA0B;AAC/C;AACA;AACA;AACA;;AAEA,aAAa,mBAAO,CAAC,iIAAkB;;AAEvC,mBAAO,CAAC,mFAAU;;AAElB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ,0CAA0C;AAC1C;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA,C;;;;;;;;;;;ACxMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,mBAAO,CAAC,2FAAgB;AACrC;AACA;;AAEA;;AAEA,aAAa,mBAAO,CAAC,mJAA2B;AAChD;;;AAGA,aAAa,kDAAwB;;AAErC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,mBAAO,CAAC,qJAA4B;;AAEtD,eAAe,mBAAO,CAAC,iJAA0B;AACjD;;AAEA,qBAAqB,yIAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,mBAAO,CAAC,mFAAU;;AAElB;;AAEA;AACA,qBAAqB,mBAAO,CAAC,iIAAkB;AAC/C,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA,yEAAyE;AACzE;;AAEA;AACA,kFAAkF;AAClF;AACA;;AAEA,0FAA0F;;AAE1F,2BAA2B;;AAE3B,yBAAyB;;AAEzB,sBAAsB;;AAEtB,qBAAqB;;AAErB,wBAAwB;;AAExB,yBAAyB;AACzB;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;;AAEA,2DAA2D;AAC3D;AACA;;AAEA,kBAAkB;;AAElB,uBAAuB;;AAEvB,kBAAkB;AAClB;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;;AAEA,gCAAgC;;AAEhC;AACA;AACA,IAAI;;;AAGJ,sBAAsB;;AAEtB;AACA;AACA,kCAAkC;AAClC;;AAEA,qBAAqB;AACrB;;AAEA,2BAA2B;;AAE3B,4BAA4B;;AAE5B,+CAA+C;;AAE/C,2CAA2C;;AAE3C,gCAAgC;AAChC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC,IAAI;AACL;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAO,CAAC,iIAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mEAAmE;;AAEnE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA,4CAA4C;;AAE5C;AACA;AACA,CAAC;AACD;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA+C;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wEAAwE,sDAAsD;AAC9H;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0EAA0E;AAC1E;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,yEAAyE;;AAEzE;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA,E;;;;;;;;;;;ACxrBa;;AAEb;;AAEA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M,eAAe,mBAAO,CAAC,gJAAiB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA,iEAAiE;AACjE;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH,CAAC;;AAED;AACA;;AAEA,yFAAyF;AACzF;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA,mD;;;;;;;;;;;AC9Ma;;AAEb,0CAA0C,gCAAgC,oCAAoC,oDAAoD,8DAA8D,gEAAgE,EAAE,EAAE,gCAAgC,EAAE,aAAa;;AAEnV,gCAAgC,gBAAgB,sBAAsB,OAAO,uDAAuD,aAAa,uDAAuD,2CAA2C,EAAE,EAAE,EAAE,6CAA6C,2EAA2E,EAAE,OAAO,iDAAiD,kFAAkF,EAAE,EAAE,EAAE,EAAE,eAAe;;AAEphB,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE;;AAE3T,6DAA6D,sEAAsE,8DAA8D,oBAAoB;;AAErN,eAAe,mBAAO,CAAC,sBAAQ;AAC/B;;AAEA,gBAAgB,mBAAO,CAAC,kBAAM;AAC9B;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;;AAEL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;AAC1C;;AAEA;AACA;AACA;AACA,2CAA2C;AAC3C,WAAW;AACX;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;AAC3C,WAAW;AACX;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL,GAAG;AACH;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,G;;;;;;;;;;;ACjNY;;AAEb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;;AAGA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF;AACxF;;AAEA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;ACxGA;AACA;AACa;;AAEb,iCAAiC,0KAA2D;;AAE5F;AACA;AACA;AACA;AACA;;AAEA,uEAAuE,aAAa;AACpF;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qB;;;;;;;;;;;ACvGa;;AAEb,4EAA4E,MAAM,0BAA0B,wBAAwB,EAAE,gBAAgB,eAAe,QAAQ,EAAE,iBAAiB,gBAAgB,EAAE,OAAO,4CAA4C,EAAE;;AAEvQ,gCAAgC,qBAAqB,mCAAmC,gDAAgD,gCAAgC,wBAAwB,wEAAwE,EAAE,uBAAuB,uEAAuE,EAAE,kBAAkB,EAAE,EAAE,GAAG;;AAEnY,0CAA0C,gCAAgC,oCAAoC,oDAAoD,8DAA8D,gEAAgE,EAAE,EAAE,gCAAgC,EAAE,aAAa;;AAEnV,gCAAgC,gBAAgB,sBAAsB,OAAO,uDAAuD,aAAa,uDAAuD,2CAA2C,EAAE,EAAE,EAAE,6CAA6C,2EAA2E,EAAE,OAAO,iDAAiD,kFAAkF,EAAE,EAAE,EAAE,EAAE,eAAe;;AAEphB,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M,2BAA2B,oKAAqD;;AAEhF;AACA;;AAEA;AACA;AACA,GAAG,kGAAkG,uFAAuF;;AAE5L;AACA;AACA,GAAG,SAAS;AACZ;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA,sB;;;;;;;;;;;AC/DA;AACA;AACa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,+IAAgC;AACrD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,+BAA+B,mBAAO,CAAC,gJAAiB;AACxD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wEAAwE,aAAa;AACrF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA,0B;;;;;;;;;;;AChGa;;AAEb,4BAA4B,qKAAsD;;AAElF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA,E;;;;;;;;;;AC1BA,4DAAkC;;;;;;;;;;;ACAlC,aAAa,mBAAO,CAAC,sBAAQ;AAC7B;AACA;AACA;AACA,EAAE,qBAAqB;AACvB,CAAC;AACD,YAAY,kLAAqD;AACjE,EAAE,cAAc;AAChB,EAAE,gBAAgB;AAClB,EAAE,oLAAuD;AACzD,EAAE,8KAAmD;AACrD,EAAE,uLAAyD;AAC3D,EAAE,6LAA6D;AAC/D,EAAE,gNAAqE;AACvE,EAAE,sMAAgE;AAClE;;;;;;;;;;;;;;;;;;;;;;ACfA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA,WAAW,oBAAoB,WAAW,WAAW,gBAAgB;AACrE;AACA;AACA;AACA;AACA,WAAW,mBAAmB,WAAW,WAAW,eAAe;AACnE;AACA;AACA;AACA;AACA,WAAW,mBAAmB,WAAW,WAAW,eAAe;AACnE;AACA;AACA;AACA,0BAA0B;AAC1B,4BAA4B;AAC5B,4BAA4B;AAC5B,2BAA2B;AAC3B,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB,mBAAmB;AACnB;AACA,yBAAyB,GAAG;AAC5B;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA,cAAc,MAAM,GAAG,2BAA2B,KAAK,MAAM;AAC7D;;AAEA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA,gBAAgB,MAAM;AACtB;;AAEA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;;AAEA,eAAe,MAAM,GAAG,MAAM;AAC9B;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA,gBAAgB,eAAe;AAC/B;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,QAAQ;AACvB;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA,iBAAiB,oBAAoB,GAAG,QAAQ;AAChD;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;;AAEA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AC/LA,OAAO,mCAAmC,GAAG,mBAAO,CAAC,oFAAS;AAC9D,YAAY,aAAoB,IAAI,CAAa;;AAEjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,iCAAiC,eAAe,GAAG,WAAW,IAAI,aAAa,GAAG,6BAA6B;AAC/G;AACA,KAAK;AACL;AACA,CAAC;;AAED;;;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,oCAAe;AAC5C,mBAAmB,mBAAO,CAAC,yGAAkB;AAC7C,eAAe,mBAAO,CAAC,gEAAW;AAClC,iBAAiB,mBAAO,CAAC,0GAAgC;AACzD,OAAO,oCAAoC,GAAG,mBAAO,CAAC,4CAAkB;;AAExE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4DAA4D,aAAa;AACzE;AACA,gEAAgE,aAAa;AAC7E;AACA;AACA;AACA;AACA,8EAA8E,aAAa;AAC3F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0EAA0E,KAAK,iBAAiB,OAAO;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,4BAA4B;AAC5C,kBAAkB;AAClB,kBAAkB;AAClB,iBAAiB;;AAEjB;AACA,SAAS,aAAa;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,MAAM;AACnC;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,MAAM;AAC9B;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,iCAAiC,cAAc;AAC/C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5KA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,cAAc;AACd,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjFD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtKD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrLD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvMD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/GD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7DD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/KD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/JD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3GD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrLD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3GD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/DD;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gCAAgC;AAChC,+BAA+B;AAC/B,+BAA+B;AAC/B,8BAA8B;AAC9B;AACA;AACA;AACA,yDAAyD;AACzD;AACA,0DAA0D;AAC1D;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnID;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9KD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpKD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI,IAAI,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtGD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9JD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8CAA8C,IAAI,IAAI,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9FD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yCAAyC,IAAI;AAC7C;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,IAAI;AAC3D,6DAA6D,IAAI;AACjE,4DAA4D,IAAI;AAChE,kEAAkE,IAAI;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7GD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpND;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrGD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxND;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1JD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpLD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9HD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,gCAAgC;AAChC,aAAa;AACb,+BAA+B;AAC/B,aAAa;AACb,kCAAkC;AAClC,aAAa;AACb,kCAAkC;AAClC,aAAa;AACb,+BAA+B;AAC/B,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChGD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9HD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;ACnGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/DD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/DD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7KD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/DD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7DD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/DD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClID;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/GD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9GD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,0GAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7GD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qI;;;;;;;;;;;ACnSA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAA4D;AAChE,IAAI,CACyB;AAC7B,CAAC,qBAAqB;;AAEtB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uHAAuH,IAAI,wBAAwB,IAAI,uDAAuD,IAAI;AAClN,qEAAqE,IAAI;AACzE,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0CAA0C,YAAY;AACtD;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,IAAI;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,EAAE;AACvB,qBAAqB,EAAE;AACvB,0BAA0B,EAAE;AAC5B;AACA;AACA;AACA,wBAAwB,IAAI;AAC5B,wBAAwB,IAAI;AAC5B,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA,2BAA2B,MAAM,wEAAwE,MAAM,mBAAmB,MAAM,qBAAqB,MAAM,EAAE,IAAI;AACzK;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,8CAA8C;AAC9C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,OAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB;AACpB,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAa;AACzB;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAO;AACxC,gBAAgB,sIAAe,IAAW,OAAO,CAAC;AAClD;AACA,aAAa;AACb;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2CAA2C,EAAE,IAAI,EAAE;AACnD,wCAAwC,EAAE,IAAI,EAAE;AAChD;AACA;AACA,qCAAqC,EAAE;AACvC,+BAA+B,EAAE;AACjC,iCAAiC,EAAE;AACnC,+BAA+B,EAAE;AACjC,6BAA6B,EAAE,IAAI,EAAE;AACrC,4BAA4B,EAAE;AAC9B,mCAAmC,GAAG;AACtC,6BAA6B,EAAE;AAC/B,+BAA+B,EAAE,IAAI,EAAE;AACvC,8BAA8B,EAAE,IAAI,EAAE;AACtC,4BAA4B,EAAE;AAC9B,2BAA2B,EAAE;AAC7B,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,IAAI,0DAA0D,IAAI,qEAAqE,EAAE;AACvM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC,kBAAkB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,qBAAqB;AACxC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,2GAA2G;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,mBAAmB;AACxC;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;ACriLD,eAAe,mBAAO,CAAC,uGAAQ;;AAE/B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,eAAe,6BAA6B;AAC5C;AACA;AACA;;;;;;;;;;;ACpEA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,qCAAqC,OAAO,gBAAgB,MAAM,wBAAwB,YAAY;AACtG;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uBAAuB,kBAAkB;AACzC,qBAAqB,SAAS;AAC9B,kCAAkC,OAAO;AACzC,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,sBAAsB;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gCAAgC,WAAW;AAC3C,qBAAqB,SAAS;AAC9B,kCAAkC,OAAO;AACzC,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACpKA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,kFAAQ;;AAE7B;AACA;AACA,uBAAuB,kBAAkB;AACzC,qBAAqB,SAAS;AAC9B,kCAAkC,OAAO;AACzC,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,WAAW;AAC3C,qBAAqB,SAAS;AAC9B,kCAAkC,OAAO;AACzC,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrGA,UAAU,mBAAO,CAAC,kDAAa;AAC/B,SAAS,mBAAO,CAAC,kDAAa;AAC9B,cAAc,mBAAO,CAAC,6EAAS;;AAE/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,gDAAgD;AAChD;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe,OAAO;AACtB,eAAe,IAAI;AACnB,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,8BAA8B,yEAAyE;AACvG;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP,cAAc;AACd,KAAK;AACL;;AAEA;AACA,cAAc,OAAO;AACrB,cAAc,MAAM;AACpB,cAAc,MAAM;AACpB;AACA;AACA;AACA,8BAA8B,uCAAuC;AACrE;;AAEA;AACA;;AAEA;AACA,8BAA8B,uCAAuC;AACrE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB;AAChB,OAAO;AACP,KAAK;AACL;;AAEA;AACA,cAAc,IAAI;AAClB;AACA;AACA;AACA;AACA;;AAEA,2DAA2D,OAAO;AAClE;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,yDAAyD,GAAG;AAC5D;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC,wCAAwC;;AAExC,qBAAqB;AACrB,mBAAmB;;AAEnB;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA,gBAAgB,mCAAmC;AACnD;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5fA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE,mBAAO,CAAC,qFAAa;AACvB,EAAE,mBAAO,CAAC,+EAAU;AACpB;;;;;;;;;;;ACPA,cAAc,mBAAO,CAAC,6EAAS;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA,mCAAmC,oCAAoC;AACvE;AACA,sCAAsC,MAAM;AAC5C;;AAEA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;AC7DA,yBAAyB,mBAAO,CAAC,4GAA4B;AAC7D,UAAU,mBAAO,CAAC,kDAAa;;AAE/B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC9BA,aAAa,mBAAO,CAAC,kDAAa;;AAElC;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB;;AAExB;AACA;;AAEA,qBAAqB;AACrB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACvFA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,qDAAqD,mBAAO,CAAC,qGAAU,GAAG,mBAAO,CAAC,2GAAa;;AAE/F;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;ACzCD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;;AAEA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,yCAAyC,mBAAO,CAAC,qGAAU,GAAG,mBAAO,CAAC,2GAAa,GAAG,mBAAO,CAAC,yHAAoB;AAClH;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;;;;;;ACrpBD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA,KAAK;;AAEL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChCA,UAAU,mBAAO,CAAC,oHAAY;;AAE9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,yCAAyC,aAAa;AACtD,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;;AAEA,qBAAqB,mBAAmB,EAAE;AAC1C;;AAEA;AACA;;;;;;;;;;;AClHA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,cAAc;AACnC;AACA;AACA,KAAK;;AAEL;AACA;AACA,0BAA0B,OAAO;AACjC;AACA;AACA,KAAK;;AAEL;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA,KAAK;;AAEL;AACA;AACA,iCAAiC,uBAAuB;AACxD;AACA;AACA,KAAK;;AAEL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA,KAAK;;AAEL;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;AC/FD;AACA;;AAEA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,+HAA+H;AAC/H;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA,6BAA6B,IAAI;AACjC,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB,6BAA6B,UAAU;AACvC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;AACrC,aAAa,oCAAoC;AACjD;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE,kEAAkE;AAClE,kEAAkE;AAClE,kEAAkE;AAClE,kEAAkE;AAClE,kEAAkE;AAClE,kEAAkE;AAClE,uBAAuB,KAAK;AAC5B,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,mCAAmC;AACnC,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D,8DAA8D;AAC9D,8DAA8D;AAC9D,8DAA8D;AAC9D,8DAA8D;AAC9D,8DAA8D;AAC9D,8DAA8D;AAC9D;AACA,uBAAuB,KAAK;AAC5B,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;;AAEA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,gDAAgD;AAChD,8CAA8C;AAC9C,+CAA+C;AAC/C;AACA,uBAAuB,KAAK;AAC5B;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA,iDAAiD;AACjD;AACA;AACA,yBAAyB,OAAO;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,qDAAqD;AACrD;AACA,uBAAuB,YAAY;AACnC,uBAAuB,YAAY;AACnC,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;;;AAGb;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,kDAAkD;AAClD;AACA;AACA,oDAAoD;AACpD,qDAAqD;AACrD;AACA;AACA,kDAAkD;AAClD,mDAAmD;AACnD;AACA;AACA,kDAAkD;AAClD,mDAAmD;AACnD;AACA;AACA,iDAAiD;AACjD,kDAAkD;AAClD;AACA;AACA,gDAAgD;AAChD;AACA;AACA,oDAAoD;AACpD;AACA;AACA,iDAAiD;AACjD;AACA;AACA,mDAAmD;AACnD;AACA;AACA,mDAAmD;AACnD;AACA;AACA,wDAAwD;AACxD;AACA,uBAAuB,KAAK;AAC5B,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B;AAC3B,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,4DAA4D;AAC5D,0DAA0D;AAC1D;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA,uBAAuB,KAAK;AAC5B,uBAAuB,KAAK;AAC5B,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE,oDAAoD;AACpD,8CAA8C;AAC9C,kDAAkD;AAClD,kDAAkD;AAClD,qDAAqD;AACrD,qDAAqD;AACrD,qDAAqD;AACrD,qDAAqD;AACrD;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA,+DAA+D;AAC/D,yEAAyE,KAAK;AAC9E;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG,KAAK;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,OAAO;AACpD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,oBAAoB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,qBAAqB;AACrB,sCAAsC;AACtC;AACA,2HAA2H;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,iBAAiB;AACjB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,wCAAwC,mBAAO,CAAC,qGAAU,GAAG,mBAAO,CAAC,2GAAa,GAAG,mBAAO,CAAC,iHAAgB;;AAE7G;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;;;;;;AC36BD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD,wBAAwB;AACxB,4BAA4B;AAC5B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,OAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;;AAGA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,gDAAgD;AAChD;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC;AACA;AACA,6DAA6D,oBAAoB;AACjF,8CAA8C,yBAAyB;AACvE,6DAA6D;AAC7D,uDAAuD;AACvD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;;;AAGA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,8BAA8B;AAC/E,iDAAiD,8BAA8B;AAC/E,4CAA4C,yBAAyB;AACrE,4CAA4C,yBAAyB;AACrE;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC;AACA;AACA,KAAK,MAAM,EAIN;AACL,CAAC;;;;;;;;;;;;;;ACz5BD,mJAAwC,C;;;;;;;;;;ACAxC;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD,OAAO;AAC5D;AACA;AACA,2BAA2B;AAC3B;AACA,SAAS;;AAET;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,4CAA4C,mBAAO,CAAC,qGAAU;;AAE9D;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;;;;;;AC1FD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,oBAAoB,OAAO,EAAE,OAAO,EAAE,OAAO,sBAAsB;AACnE,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,kDAAkD,OAAO;AACzD;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa;AACb;AACA,kCAAkC;AAClC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA,2BAA2B;AAC3B;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA,sDAAsD,qBAAqB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD,OAAO;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,4CAA4C,mBAAO,CAAC,yGAAY;;AAEhE;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC,a;;;;;;;;;;AC3hBD,mJAAyC,C;;;;;;;;;;ACAzC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,4CAA4C,mBAAO,CAAC,qGAAU,GAAG,mBAAO,CAAC,2GAAa,GAAG,mBAAO,CAAC,yHAAoB;;AAErH;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;;;;;;ACzPD;AACA;;AAEA;;;AAGA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,yCAAyC,uBAAuB;AAChE;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;;AAEA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,8DAA8D,QAAQ;AACtE;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA,SAAS;;;AAGT;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,sCAAsC,mBAAO,CAAC,qGAAU,wBAAwB,mBAAO,CAAC,yGAAY,YAAY,mBAAO,CAAC,2GAAa,YAAY,mBAAO,CAAC,iHAAgB;;AAEzK;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;;;;;;AChQD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACpBA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb,+CAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,2DAA2D,eAAe;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,2DAA2D,mBAAmB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,uCAAuC,mBAAO,CAAC,qGAAU;;AAEzD;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;AClfD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uEAAuE,YAAY;AACnF;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,qBAAqB;;;AAGrB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb,SAAS;;AAET;;AAEA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,qBAAqB;;;AAGrB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;;AAGrB;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,kDAAkD;AACxG,6BAA6B;AAC7B;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;;AAE7B;;AAEA;AACA,iCAAiC;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;;AAGrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,yCAAyC,mBAAO,CAAC,qGAAU;AAC3D,qCAAqC,mBAAO,CAAC,yGAAY;AACzD,0BAA0B,mBAAO,CAAC,2GAAa;AAC/C,0BAA0B,mBAAO,CAAC,iHAAgB;AAClD,0BAA0B,mBAAO,CAAC,mHAAiB;AACnD;;AAEA;AACA,KAAK,MAAM,EAeN;;AAEL,CAAC;;;;;;;;;;;;;;;;;ACt5BD,gBAAgB,mBAAO,CAAC,4GAAc;AACtC,WAAW,mBAAO,CAAC,kGAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACNA,gBAAgB,mBAAO,CAAC,4GAAc;AACtC,iBAAiB,mBAAO,CAAC,8GAAe;AACxC,cAAc,mBAAO,CAAC,wGAAY;AAClC,cAAc,mBAAO,CAAC,wGAAY;AAClC,cAAc,mBAAO,CAAC,wGAAY;;AAElC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA,qBAAqB,mBAAO,CAAC,sHAAmB;AAChD,sBAAsB,mBAAO,CAAC,wHAAoB;AAClD,mBAAmB,mBAAO,CAAC,kHAAiB;AAC5C,mBAAmB,mBAAO,CAAC,kHAAiB;AAC5C,mBAAmB,mBAAO,CAAC,kHAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA,gBAAgB,mBAAO,CAAC,4GAAc;AACtC,WAAW,mBAAO,CAAC,kGAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACNA,oBAAoB,mBAAO,CAAC,oHAAkB;AAC9C,qBAAqB,mBAAO,CAAC,sHAAmB;AAChD,kBAAkB,mBAAO,CAAC,gHAAgB;AAC1C,kBAAkB,mBAAO,CAAC,gHAAgB;AAC1C,kBAAkB,mBAAO,CAAC,gHAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA,gBAAgB,mBAAO,CAAC,4GAAc;AACtC,WAAW,mBAAO,CAAC,kGAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACNA,gBAAgB,mBAAO,CAAC,4GAAc;AACtC,WAAW,mBAAO,CAAC,kGAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACNA,eAAe,mBAAO,CAAC,0GAAa;AACpC,kBAAkB,mBAAO,CAAC,gHAAgB;AAC1C,kBAAkB,mBAAO,CAAC,gHAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,gBAAgB,mBAAO,CAAC,4GAAc;AACtC,iBAAiB,mBAAO,CAAC,8GAAe;AACxC,kBAAkB,mBAAO,CAAC,gHAAgB;AAC1C,eAAe,mBAAO,CAAC,0GAAa;AACpC,eAAe,mBAAO,CAAC,0GAAa;AACpC,eAAe,mBAAO,CAAC,0GAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,WAAW,mBAAO,CAAC,kGAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACLA,WAAW,mBAAO,CAAC,kGAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACLA,gBAAgB,mBAAO,CAAC,4GAAc;AACtC,WAAW,mBAAO,CAAC,kGAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,kBAAkB,mBAAO,CAAC,gHAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,gBAAgB,mBAAO,CAAC,4GAAc;AACtC,kBAAkB,mBAAO,CAAC,8GAAe;AACzC,cAAc,mBAAO,CAAC,sGAAW;AACjC,eAAe,mBAAO,CAAC,wGAAY;AACnC,cAAc,mBAAO,CAAC,wGAAY;AAClC,mBAAmB,mBAAO,CAAC,gHAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA,SAAS,mBAAO,CAAC,4FAAM;;AAEvB;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,eAAe,mBAAO,CAAC,0GAAa;AACpC,YAAY,mBAAO,CAAC,oGAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,EAAE;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,gBAAgB,mBAAO,CAAC,4GAAc;AACtC,cAAc,mBAAO,CAAC,sGAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA,aAAa,mBAAO,CAAC,sGAAW;AAChC,gBAAgB,mBAAO,CAAC,4GAAc;AACtC,qBAAqB,mBAAO,CAAC,sHAAmB;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACZA,oBAAoB,mBAAO,CAAC,oHAAkB;AAC9C,gBAAgB,mBAAO,CAAC,4GAAc;AACtC,oBAAoB,mBAAO,CAAC,oHAAkB;;AAE9C;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA,iBAAiB,mBAAO,CAAC,8GAAe;AACxC,mBAAmB,mBAAO,CAAC,gHAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,sBAAsB,mBAAO,CAAC,wHAAoB;AAClD,mBAAmB,mBAAO,CAAC,gHAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA,YAAY,mBAAO,CAAC,oGAAU;AAC9B,kBAAkB,mBAAO,CAAC,gHAAgB;AAC1C,iBAAiB,mBAAO,CAAC,8GAAe;AACxC,mBAAmB,mBAAO,CAAC,kHAAiB;AAC5C,aAAa,mBAAO,CAAC,sGAAW;AAChC,cAAc,mBAAO,CAAC,sGAAW;AACjC,eAAe,mBAAO,CAAC,wGAAY;AACnC,mBAAmB,mBAAO,CAAC,gHAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClFA,YAAY,mBAAO,CAAC,oGAAU;AAC9B,kBAAkB,mBAAO,CAAC,gHAAgB;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACXA,iBAAiB,mBAAO,CAAC,4GAAc;AACvC,eAAe,mBAAO,CAAC,0GAAa;AACpC,eAAe,mBAAO,CAAC,wGAAY;AACnC,eAAe,mBAAO,CAAC,0GAAa;;AAEpC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9CA,iBAAiB,mBAAO,CAAC,8GAAe;AACxC,eAAe,mBAAO,CAAC,wGAAY;AACnC,mBAAmB,mBAAO,CAAC,gHAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3DA,kBAAkB,mBAAO,CAAC,gHAAgB;AAC1C,0BAA0B,mBAAO,CAAC,gIAAwB;AAC1D,eAAe,mBAAO,CAAC,wGAAY;AACnC,cAAc,mBAAO,CAAC,sGAAW;AACjC,eAAe,mBAAO,CAAC,wGAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9BA,kBAAkB,mBAAO,CAAC,gHAAgB;AAC1C,iBAAiB,mBAAO,CAAC,8GAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7BA,kBAAkB,mBAAO,CAAC,gHAAgB;AAC1C,mBAAmB,mBAAO,CAAC,kHAAiB;AAC5C,8BAA8B,mBAAO,CAAC,wIAA4B;;AAElE;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,kBAAkB,mBAAO,CAAC,gHAAgB;AAC1C,UAAU,mBAAO,CAAC,8FAAO;AACzB,YAAY,mBAAO,CAAC,kGAAS;AAC7B,YAAY,mBAAO,CAAC,oGAAU;AAC9B,yBAAyB,mBAAO,CAAC,8HAAuB;AACxD,8BAA8B,mBAAO,CAAC,wIAA4B;AAClE,YAAY,mBAAO,CAAC,oGAAU;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA,cAAc,mBAAO,CAAC,wGAAY;;AAElC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA,aAAa,mBAAO,CAAC,sGAAW;AAChC,eAAe,mBAAO,CAAC,0GAAa;AACpC,cAAc,mBAAO,CAAC,sGAAW;AACjC,eAAe,mBAAO,CAAC,wGAAY;;AAEnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA,eAAe,mBAAO,CAAC,0GAAa;AACpC,oBAAoB,mBAAO,CAAC,oHAAkB;AAC9C,wBAAwB,mBAAO,CAAC,4HAAsB;AACtD,eAAe,mBAAO,CAAC,0GAAa;AACpC,gBAAgB,mBAAO,CAAC,4GAAc;AACtC,iBAAiB,mBAAO,CAAC,8GAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACZA,cAAc,mBAAO,CAAC,sGAAW;AACjC,YAAY,mBAAO,CAAC,oGAAU;AAC9B,mBAAmB,mBAAO,CAAC,kHAAiB;AAC5C,eAAe,mBAAO,CAAC,wGAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA,WAAW,mBAAO,CAAC,kGAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACLA,UAAU,mBAAO,CAAC,gGAAQ;AAC1B,WAAW,mBAAO,CAAC,gGAAQ;AAC3B,iBAAiB,mBAAO,CAAC,8GAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClBA,eAAe,mBAAO,CAAC,0GAAa;AACpC,gBAAgB,mBAAO,CAAC,4GAAc;AACtC,eAAe,mBAAO,CAAC,0GAAa;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClFA,aAAa,mBAAO,CAAC,sGAAW;AAChC,iBAAiB,mBAAO,CAAC,8GAAe;AACxC,SAAS,mBAAO,CAAC,4FAAM;AACvB,kBAAkB,mBAAO,CAAC,gHAAgB;AAC1C,iBAAiB,mBAAO,CAAC,8GAAe;AACxC,iBAAiB,mBAAO,CAAC,8GAAe;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/GA,iBAAiB,mBAAO,CAAC,8GAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxFA;AACA;;AAEA;;;;;;;;;;;ACHA,qBAAqB,mBAAO,CAAC,sHAAmB;AAChD,iBAAiB,mBAAO,CAAC,8GAAe;AACxC,WAAW,mBAAO,CAAC,gGAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,gBAAgB,mBAAO,CAAC,4GAAc;;AAEtC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,yBAAyB,mBAAO,CAAC,8HAAuB;AACxD,WAAW,mBAAO,CAAC,gGAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,mBAAmB,mBAAO,CAAC,kHAAiB;AAC5C,eAAe,mBAAO,CAAC,0GAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA,aAAa,mBAAO,CAAC,sGAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7CA,kBAAkB,mBAAO,CAAC,gHAAgB;AAC1C,gBAAgB,mBAAO,CAAC,0GAAa;;AAErC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;AC7BA,eAAe,mBAAO,CAAC,0GAAa;AACpC,UAAU,mBAAO,CAAC,gGAAQ;AAC1B,cAAc,mBAAO,CAAC,wGAAY;AAClC,UAAU,mBAAO,CAAC,gGAAQ;AAC1B,cAAc,mBAAO,CAAC,wGAAY;AAClC,iBAAiB,mBAAO,CAAC,8GAAe;AACxC,eAAe,mBAAO,CAAC,0GAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACZA,eAAe,mBAAO,CAAC,0GAAa;AACpC,kBAAkB,mBAAO,CAAC,8GAAe;AACzC,cAAc,mBAAO,CAAC,sGAAW;AACjC,cAAc,mBAAO,CAAC,wGAAY;AAClC,eAAe,mBAAO,CAAC,wGAAY;AACnC,YAAY,mBAAO,CAAC,oGAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtCA,mBAAmB,mBAAO,CAAC,kHAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA,mBAAmB,mBAAO,CAAC,kHAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7BA,mBAAmB,mBAAO,CAAC,kHAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA,mBAAmB,mBAAO,CAAC,kHAAiB;;AAE5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,cAAc,mBAAO,CAAC,sGAAW;AACjC,eAAe,mBAAO,CAAC,wGAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA,iBAAiB,mBAAO,CAAC,8GAAe;;AAExC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACjBA,eAAe,mBAAO,CAAC,wGAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACZA,mBAAmB,mBAAO,CAAC,kHAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClCA,mBAAmB,mBAAO,CAAC,kHAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AClBA,mBAAmB,mBAAO,CAAC,kHAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,mBAAmB,mBAAO,CAAC,kHAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,WAAW,mBAAO,CAAC,kGAAS;AAC5B,gBAAgB,mBAAO,CAAC,4GAAc;AACtC,UAAU,mBAAO,CAAC,gGAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,8GAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,8GAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,8GAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,8GAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA,cAAc,mBAAO,CAAC,sGAAW;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,gBAAgB,mBAAO,CAAC,4GAAc;;AAEtC;AACA;;AAEA;;;;;;;;;;;ACLA,cAAc,mBAAO,CAAC,wGAAY;;AAElC;AACA;;AAEA;;;;;;;;;;;;ACLA,iBAAiB,mBAAO,CAAC,8GAAe;;AAExC;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA,iBAAiB,mBAAO,CAAC,8GAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACRA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;ACjBA,gBAAgB,mBAAO,CAAC,4GAAc;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA,gBAAgB,mBAAO,CAAC,4GAAc;AACtC,UAAU,mBAAO,CAAC,gGAAQ;AAC1B,eAAe,mBAAO,CAAC,0GAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA,oBAAoB,mBAAO,CAAC,oHAAkB;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;;;;;;;;;;;AC1BA,eAAe,mBAAO,CAAC,wGAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA,cAAc,mBAAO,CAAC,wGAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB,QAAQ,OAAO,SAAS,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChCA,gBAAgB,mBAAO,CAAC,4GAAc;AACtC,cAAc,mBAAO,CAAC,wGAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,gBAAgB,SAAS,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA,sBAAsB,mBAAO,CAAC,wHAAoB;AAClD,mBAAmB,mBAAO,CAAC,gHAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;;AAEA;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,4GAAc;AACvC,eAAe,mBAAO,CAAC,wGAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,WAAW,mBAAO,CAAC,kGAAS;AAC5B,gBAAgB,mBAAO,CAAC,0GAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrCA,iBAAiB,mBAAO,CAAC,8GAAe;AACxC,eAAe,mBAAO,CAAC,wGAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,iBAAiB,mBAAO,CAAC,8GAAe;AACxC,mBAAmB,mBAAO,CAAC,gHAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,uBAAuB,mBAAO,CAAC,0HAAqB;AACpD,gBAAgB,mBAAO,CAAC,4GAAc;AACtC,eAAe,mBAAO,CAAC,0GAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,oBAAoB,mBAAO,CAAC,oHAAkB;AAC9C,eAAe,mBAAO,CAAC,0GAAa;AACpC,kBAAkB,mBAAO,CAAC,8GAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA,eAAe,mBAAO,CAAC,0GAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA,mBAAmB,mBAAO,CAAC,kHAAiB;AAC5C,uBAAuB,mBAAO,CAAC,0HAAqB;AACpD,YAAY,mBAAO,CAAC,oGAAU;AAC9B,YAAY,mBAAO,CAAC,oGAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA,MAAM,OAAO,SAAS,EAAE;AACxB,MAAM,OAAO,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,mBAAmB,mBAAO,CAAC,kHAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA,mBAAmB,mBAAO,CAAC,kHAAiB;AAC5C,eAAe,mBAAO,CAAC,0GAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS,GAAG,SAAS,GAAG,SAAS;AAC/C,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9BA;AACA,cAAc,mBAAO,CAAC,+FAAO;AAC7B,aAAa,+HAAuB;AACpC,iBAAiB,mBAAO,CAAC,uGAAW;AACpC,YAAY,8HAAsB;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,cAAc;;AAEjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;AC/JD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,cAAc;AACd,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjFD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtKD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrLD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvMD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/GD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7DD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/KD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/JD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3GD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrLD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3GD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/DD;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gCAAgC;AAChC,+BAA+B;AAC/B,+BAA+B;AAC/B,8BAA8B;AAC9B;AACA;AACA;AACA,yDAAyD;AACzD;AACA,0DAA0D;AAC1D;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnID;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9KD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpKD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI,IAAI,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtGD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9JD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8CAA8C,IAAI,IAAI,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9FD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yCAAyC,IAAI;AAC7C;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,IAAI;AAC3D,6DAA6D,IAAI;AACjE,4DAA4D,IAAI;AAChE,kEAAkE,IAAI;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7GD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpND;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrGD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxND;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1JD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpLD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9HD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,gCAAgC;AAChC,aAAa;AACb,+BAA+B;AAC/B,aAAa;AACb,kCAAkC;AAClC,aAAa;AACb,kCAAkC;AAClC,aAAa;AACb,+BAA+B;AAC/B,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChGD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9HD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;ACnGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/DD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/DD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7KD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/DD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7DD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/DD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClID;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/GD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9GD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qGAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7GD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gI;;;;;;;;;;;ACnSA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAA4D;AAChE,IAAI,CACyB;AAC7B,CAAC,qBAAqB;;AAEtB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uHAAuH,IAAI,wBAAwB,IAAI,uDAAuD,IAAI;AAClN,qEAAqE,IAAI;AACzE,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0CAA0C,YAAY;AACtD;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,IAAI;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,EAAE;AACvB,qBAAqB,EAAE;AACvB,0BAA0B,EAAE;AAC5B;AACA;AACA;AACA,wBAAwB,IAAI;AAC5B,wBAAwB,IAAI;AAC5B,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA,2BAA2B,MAAM,wEAAwE,MAAM,mBAAmB,MAAM,qBAAqB,MAAM,EAAE,IAAI;AACzK;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,8CAA8C;AAC9C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,OAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB;AACpB,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAa;AACzB;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAO;AACxC,gBAAgB,iIAAe,IAAW,OAAO,CAAC;AAClD;AACA,aAAa;AACb;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2CAA2C,EAAE,IAAI,EAAE;AACnD,wCAAwC,EAAE,IAAI,EAAE;AAChD;AACA;AACA,qCAAqC,EAAE;AACvC,+BAA+B,EAAE;AACjC,iCAAiC,EAAE;AACnC,+BAA+B,EAAE;AACjC,6BAA6B,EAAE,IAAI,EAAE;AACrC,4BAA4B,EAAE;AAC9B,mCAAmC,GAAG;AACtC,6BAA6B,EAAE;AAC/B,+BAA+B,EAAE,IAAI,EAAE;AACvC,8BAA8B,EAAE,IAAI,EAAE;AACtC,4BAA4B,EAAE;AAC9B,2BAA2B,EAAE;AAC7B,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,IAAI,0DAA0D,IAAI,qEAAqE,EAAE;AACvM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC,kBAAkB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,qBAAqB;AACxC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,2GAA2G;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,mBAAmB;AACxC;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;ACriLD,2BAA2B,mBAAO,CAAC,mGAAO,E;;;;;;;;;;;ACA7B;AACb,WAAW,mBAAO,CAAC,2GAAY;AAC/B;AACA;AACA;AACA;AACA,mBAAmB,wDAA8B;;;AAGjD;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,4DAA4D,yBAAyB;AACrF;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,qCAAqC,mBAAmB,yBAAyB;AACjF;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC,E;;;;;;;;;;;AC7LD;AACa;AACb,WAAW,mBAAO,CAAC,4GAAa;AAChC;AACA;;AAEA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA,KAAK;;AAEL;AACA;AACA,0DAA0D;AAC1D;AACA,KAAK;AACL,0BAA0B,+CAA+C;AACzE;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA,aAAa;;AAEb;AACA;AACA,6DAA6D,2BAA2B,iGAAiG;AACzL;AACA,aAAa;AACb;AACA,+EAA+E;AAC/E;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED,sBAAsB;AACtB,qBAAqB,iB;;;;;;;;;;;ACzErB;AACa;AACb,WAAW,mBAAO,CAAC,4GAAa;AAChC,aAAa,mBAAO,CAAC,8GAAW;AAChC,wBAAwB,mBAAO,CAAC,iIAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAO,CAAC,oGAAS;AAC7B,aAAa,mBAAO,CAAC,+GAAU;AAC/B;AACA;AACA;;;AAGA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,KAAK;AACL;AACA;AACA,4DAA4D;AAC5D;AACA,KAAK;;AAEL;AACA;AACA,0DAA0D;AAC1D;AACA,KAAK;AACL;AACA;AACA,0CAA0C,gCAAgC;AAC1E;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;;AAED,aAAa;AACb;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2GAA2G,sBAAsB;AAC1J;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA,wKAAoD;;;;;;;;;;;;;;ACrMpD,WAAW,mBAAO,CAAC,4GAAa;AAChC;AACA;AACA;AACA;AACA,gBAAgB,8IAA6B;AAC7C,wBAAwB,mBAAO,CAAC,8HAAsB;AACtD,aAAa,mBAAO,CAAC,8GAAW;;AAEhC;AACA;AACA,uEAAuE;AACvE,4BAA4B;;AAE5B;AACA,uEAAuE;AACvE,KAAK;AACL,+CAA+C,oBAAoB,2BAA2B,sBAAsB;AACpH;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,yHAAyH;AACzH;AACA;AACA,6BAA6B;AAC7B,eAAe;AACf;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,KAAK;AACL;AACA;AACA;AACA,4DAA4D;AAC5D;AACA,KAAK;;AAEL;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,KAAK;AACL;AACA;AACA,yDAAyD;AACzD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA,0BAA0B;AAC1B,uCAAuC;AACvC,sCAAsC;AACtC,6CAA6C,kBAAkB,qCAAqC,aAAa,2GAA2G,8BAA8B;AAC1P,qDAAqD,0BAA0B,4BAA4B;AAC3G,yBAAyB,2GAA2G,sBAAsB;AAC1J;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC,kEAAkE;AAClE;AACA;AACA;AACA;AACA,4HAA4H;AAC5H,KAAK;AACL;AACA;AACA;AACA,gEAAgE;AAChE,KAAK;AACL,sCAAsC;;;AAGtC;AACA,iIAAiI,GAAG,eAAe;AACnJ;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,oBAAoB;AACpB;AACA,KAAK;AACL,eAAe,EAAE;AACjB,gBAAgB;AAChB,eAAe,IAAI;AACnB;AACA;;;;;;;;;;;;;AClLA,UAAU,oIAAyB;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB,gBAAgB;AAChB;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;ACtDa;;AAEb,WAAW,mBAAO,CAAC,2GAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,oCAAoC,mBAAO,CAAC,6HAAqB;AACjE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;;AAGA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;AAED,2BAA2B,WAAW,oBAAoB;AAC1D,2BAA2B,WAAW,oBAAoB;;AAE1D;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,aAAa,WAAW,yCAAyC;AACjE,aAAa,WAAW,gCAAgC;AACxD,aAAa,WAAW,kCAAkC;AAC1D,aAAa,WAAW,gCAAgC;AACxD,aAAa,WAAW,kCAAkC;;;AAG1D;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,6FAA6F;AAC7F;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;ACjQY;;AAEb,WAAW,mBAAO,CAAC,2GAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAO,CAAC,+GAAc;;AAElC;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA,2DAA2D,sDAAsD;AACjH;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,mBAAmB;AACnB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB;AACnB;AACA,KAAK;AACL,uHAAuH,YAAY,kEAAkE;AACrM;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA;AACA,KAAK;AACL;;AAEA,wBAAwB;AACxB;AACA;AACA;AACA,KAAK;AACL;;AAEA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;;AAEA,sBAAsB;AACtB;AACA;;AAEA,8BAA8B;AAC9B;AACA,E;;;;;;;;;;;;AC7da;AACb,WAAW,mBAAO,CAAC,2GAAY;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;ACvID,WAAW,mBAAO,CAAC,2GAAY;AAC/B;AACA,eAAe,mBAAO,CAAC,2GAAY;AACnC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,a;;;;;;;;;;ACvGD,UAAU,mBAAO,CAAC,iHAAgB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,qGAAU;AACnC,cAAc,mBAAO,CAAC,+GAAe;AACrC;AACA,cAAc,mBAAO,CAAC,mHAAiB;AACvC,cAAc,mBAAO,CAAC,mHAAiB;AACvC,cAAc,mBAAO,CAAC,qHAAkB;AACxC,cAAc,mBAAO,CAAC,uHAAmB;AACzC,cAAc,mBAAO,CAAC,2GAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAO,CAAC,yFAAI;AACvC,yBAAyB,mBAAO,CAAC,yGAAY;AAC7C,cAAc,mBAAO,CAAC,+FAAO;AAC7B,4BAA4B,mBAAO,CAAC,+GAAc;;;;;;;;;;;;;ACnJrC;AACb,WAAW,mBAAO,CAAC,2GAAY;AAC/B;AACA;AACA,YAAY,mBAAO,CAAC,2GAAS;AAC7B,mBAAmB,wDAA8B;AACjD,SAAS,mBAAO,CAAC,qHAAiB;AAClC;AACA,wBAAwB,mBAAO,CAAC,6HAAqB;AACrD,iBAAiB,mBAAO,CAAC,uGAAU;;AAEnC;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA,CAAC,E;;;;;;;;;;;;ACpHY;AACb,WAAW,mBAAO,CAAC,2GAAY;AAC/B;AACA;AACA;AACA,kBAAkB,0IAAgC;AAClD,yBAAyB,mBAAO,CAAC,2GAAY;AAC7C;AACA,WAAW,mBAAO,CAAC,mGAAQ;AAC3B,WAAW,mBAAO,CAAC,mGAAQ;;AAE3B;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;;AAEA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,CAAC,a;;;;;;;;;;;AC3GD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;AACb,WAAW,mBAAO,CAAC,2GAAY;AAC/B,SAAS,mBAAO,CAAC,cAAI;AACrB,WAAW,mBAAO,CAAC,kBAAM;AACzB,cAAc,mBAAO,CAAC,+GAAW;AACjC,oBAAoB,mBAAO,CAAC,qHAAiB;;AAE7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,YAAY;;AAEZ,eAAe;AACf,eAAe;;AAEf,kBAAkB;AAClB;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA;;AAEA,YAAY;;AAEZ,eAAe;AACf;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,S;;;;;;;;;;;ACzEb,cAAc,mBAAO,CAAC,yGAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB;AACxB;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;AC/ED;AACA,WAAW,mBAAO,CAAC,2GAAY;AAC/B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA,0B;;;;;;;;;;;ACpCA,WAAW,mBAAO,CAAC,yGAAQ;AAC3B,mBAAmB,8IAAmC;;AAEtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,CAAC,a;;;;;;;;;;;ACjCD,gBAAgB,mBAAO,CAAC,mHAAa;;AAErC;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC,a;;;;;;;;;;;;AC9BY;AACb,WAAW,mBAAO,CAAC,yGAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC,a;;;;;;;;;;;ACnBD,WAAW,mBAAO,CAAC,4GAAa;AAChC;AACA,WAAW,mBAAO,CAAC,yGAAQ;AAC3B,iBAAiB,mBAAO,CAAC,+HAAmB,iBAAiB,mBAAO,CAAC,iIAAoB;;AAEzF;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,a;;;;;;;;;;;AC9PD,gBAAgB,mBAAO,CAAC,mHAAa;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC,a;;;;;;;;;;;ACzCD,kBAAkB,mBAAO,CAAC,uHAAe;AACzC,WAAW,mBAAO,CAAC,4GAAa;AAChC,cAAc,mBAAO,CAAC,0GAAY;AAClC;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,OAAO;AAChE;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,CAAC,a;;;;;;;;;;;AClGD,cAAc,mBAAO,CAAC,+GAAW;AACjC,iBAAiB,mBAAO,CAAC,gHAAe;;;AAGxC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,iBAAiB;AACjB,4BAA4B;AAC5B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,aAAa;AACb;AACA;;;AAGA;AACA;AACA,CAAC,a;;;;;;;;;;;AC5KD,eAAe,mBAAO,CAAC,iHAAY;AACnC,WAAW,mBAAO,CAAC,4GAAa;AAChC,iBAAiB,mBAAO,CAAC,gHAAe;AACxC;AACA;AACA;AACA,cAAc,mBAAO,CAAC,0GAAY;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;;AAET;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,2DAA2D;AAC3D;AACA;;AAEA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA,CAAC,a;;;;;;;;;;;ACrND,eAAe,mBAAO,CAAC,iHAAY;AACnC,WAAW,mBAAO,CAAC,4GAAa;AAChC,iBAAiB,mBAAO,CAAC,gHAAe;AACxC;AACA;AACA;AACA,cAAc,mBAAO,CAAC,0GAAY;AAClC;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,OAAO;AAChE;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA,CAAC,a;;;;;;;;;;;AC9JY;AACb,WAAW,mBAAO,CAAC,4GAAa;AAChC;AACA;AACA;AACA,cAAc,mBAAO,CAAC,6GAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,gHAAe;AACzC;AACA;AACA,gBAAgB,mBAAO,CAAC,mHAAa;AACrC,mBAAmB,mBAAO,CAAC,yHAAgB;AAC3C,eAAe,mBAAO,CAAC,iHAAY;AACnC,eAAe,mBAAO,CAAC,iHAAY;AACnC,cAAc,mBAAO,CAAC,+GAAW;AACjC,eAAe,mBAAO,CAAC,iHAAY;AACnC,kBAAkB,mBAAO,CAAC,uHAAe;AACzC,iBAAiB,mBAAO,CAAC,qHAAc;AACvC,qBAAqB,mBAAO,CAAC,6HAAkB;AAC/C,sBAAsB,mBAAO,CAAC,+HAAmB;AACjD,uBAAuB,mBAAO,CAAC,iIAAoB;AACnD,eAAe,mBAAO,CAAC,iHAAY;AACnC,mBAAmB,mBAAO,CAAC,yHAAgB;AAC3C,mBAAmB,mBAAO,CAAC,yHAAgB;;AAE3C;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA,SAAS;;AAET;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA,SAAS;;AAET;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA,SAAS;;AAET;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;AC5PD,eAAe,mBAAO,CAAC,iHAAY;AACnC,wBAAwB,mBAAO,CAAC,mIAAqB;;AAErD;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA,CAAC,a;;;;;;;;;;;AC5DD,WAAW,mBAAO,CAAC,yGAAQ;AAC3B,kBAAkB,mBAAO,CAAC,gHAAe;AACzC;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,a;;;;;;;;;;;AC3GD,WAAW,mBAAO,CAAC,uHAAe;;AAElC;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,CAAC,a;;;;;;;;;;ACjCD,iBAAiB;;AAEjB,wFAAwF,qBAAqB;;AAE7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;ACtJD,aAAa,mBAAO,CAAC,kHAAU;;AAE/B;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC,a;;;;;;;;;;;ACXD,WAAW,mBAAO,CAAC,+GAAgB;AACnC;AACA;AACA,gBAAgB,mJAA8B;AAC9C,YAAY,mBAAO,CAAC,gHAAS;AAC7B,iBAAiB,mBAAO,CAAC,0HAAc;;;AAGvC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB;AACxB;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;;AAEA;;AAEA,CAAC,a;;;;;;;;;;;ACzID,aAAa,mBAAO,CAAC,kHAAU;;AAE/B;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC,a;;;;;;;;;;;ACXD,WAAW,mBAAO,CAAC,+GAAgB;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;;AAET;AACA,yBAAyB,uBAAuB;AAChD;AACA,SAAS;;AAET;AACA,iCAAiC,SAAS;AAC1C;AACA,SAAS;;AAET;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC,a;;;;;;;;;;;AC9KD,WAAW,mBAAO,CAAC,+GAAgB;AACnC;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,a;;;;;;;;;;;AC7CD,WAAW,mBAAO,CAAC,4GAAa;AAChC;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,0GAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA;AACA;AACA,aAAa;AACb;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;;AC5HD,eAAe,mBAAO,CAAC,iHAAY;AACnC,iBAAiB,mBAAO,CAAC,gHAAe;AACxC,cAAc,mBAAO,CAAC,0GAAY;AAClC,kBAAkB,2IAAiC;;;AAGnD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,oBAAoB;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;;AAGA;AACA;AACA,CAAC,a;;;;;;;;;;;AC9QD,gBAAgB,mBAAO,CAAC,mHAAa;AACrC,cAAc,mBAAO,CAAC,0GAAY;AAClC,WAAW,mBAAO,CAAC,4GAAa;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA;;AAEA;;AAEA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;AC9CD,WAAW,mBAAO,CAAC,uHAAe;;AAElC;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC,a;;;;;;;;;;;ACjCD,WAAW,mBAAO,CAAC,yGAAQ;AAC3B,WAAW,mBAAO,CAAC,4GAAa;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC,a;;;;;;;;;;;AClED,gBAAgB,mBAAO,CAAC,mHAAa;AACrC,cAAc,mBAAO,CAAC,0GAAY;;AAElC;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA,iCAAiC,aAAa;AAC9C;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC5CD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,yBAAyB,EAAE;AACzC,MAAM;AACN,WAAW,sxBAAsxB;AACjyB,aAAa,0SAA0S;AACvT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,+KAA+K,EAAE,MAAM,EAAE,SAAS,kBAAkB,UAAU,gBAAgB,OAAO,8BAA8B,4DAA4D,aAAa,oBAAoB,gBAAgB,4BAA4B,sFAAsF,qBAAqB,iBAAiB,4KAA4K,eAAe,OAAO,uFAAuF,4HAA4H,eAAe,aAAa,6BAA6B,qBAAqB,gBAAgB,6HAA6H,EAAE,6HAA6H,EAAE,QAAQ,EAAE,mKAAmK,EAAE,8JAA8J,EAAE,qJAAqJ,EAAE,qJAAqJ,EAAE,qJAAqJ,EAAE,qJAAqJ,EAAE,qJAAqJ,EAAE,qJAAqJ,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,+IAA+I,EAAE,+IAA+I,EAAE,+IAA+I,EAAE,+IAA+I,EAAE,aAAa,EAAE,6CAA6C,EAAE,4HAA4H,EAAE,UAAU,EAAE,yIAAyI,gBAAgB,iBAAiB,gBAAgB,mIAAmI,EAAE,mIAAmI,EAAE,6HAA6H,EAAE,6HAA6H,EAAE,6HAA6H,oDAAoD,OAAO,8BAA8B,4BAA4B,gBAAgB,4BAA4B,gBAAgB,4BAA4B,gBAAgB,4BAA4B,gBAAgB,4BAA4B,gBAAgB,4BAA4B,8BAA8B,qBAAqB,8BAA8B,qBAAqB,gBAAgB,OAAO,gBAAgB,OAAO,gBAAgB,OAAO,gBAAgB,OAAO,iBAAiB,UAAU,EAAE,UAAU,EAAE,+BAA+B,gBAAgB,iBAAiB,6BAA6B,aAAa,iBAAiB,4GAA4G,eAAe,qBAAqB,gBAAgB,qBAAqB;AACt+J,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,okBAAokB,IAAI;AACxkB,aAAa,WAAW;AACxB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,gBAAgB,8CAA8C;AAC3E,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,gDAA0B,CAAC,iDAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;;;ACvyBA;AACA;AACA,2BAA2B,mBAAO,CAAC,oIAAqB;AACxD,qBAAqB,mBAAO,CAAC,oIAAqB;;AAElD,IAAI,uBAAuB;AAC3B;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,IAAI,oBAAoB;AACxB;AACA;AACA,CAAC,I;;;;;;;;;;;AChBY;;AAEb,aAAa,mBAAO,CAAC,uHAAa;AAClC,WAAW,mBAAO,CAAC,+GAAgB;AACnC;AACA,YAAY,mBAAO,CAAC,mHAAW;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,8FAA8F;AAC9F;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA,aAAa;AACb,mBAAmB;AACnB;AACA;AACA;;;;;;;;;;;;;ACpCa;;AAEb,YAAY,mBAAO,CAAC,mHAAW;AAC/B,SAAS,mBAAO,CAAC,cAAI;AACrB,WAAW,mBAAO,CAAC,+GAAgB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,sBAAsB;AACtB;;AAEA;;AAEA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;;AAEL;AACA,mHAAmH;AACnH;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;;AAEL;AACA,+EAA+E;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA,mCAAmC,mGAAmG;AACtI;AACA;AACA;AACA,wCAAwC;AACxC,2BAA2B,iFAAiF;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA+C;AAC/C,yDAAyD,KAAK;AAC9D;AACA,kEAAkE,MAAM;AACxE;AACA,aAAa;AACb,iEAAiE;AACjE;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,mDAAmD;AACnD,6DAA6D,KAAK;AAClE;AACA;AACA,0DAA0D,MAAM;AAChE;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,qEAAqE;AACrE;AACA,aAAa;AACb;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,yDAAyD,KAAK;AAC9D;AACA;AACA,qCAAqC,yCAAyC;AAC9E;AACA,aAAa;AACb,iEAAiE;AACjE;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,6BAA6B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;;AAEA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,6DAA6D,KAAK;AAClE;AACA;AACA,wCAAwC,6CAA6C;AACrF;AACA,iBAAiB;AACjB,qEAAqE;AACrE;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,4BAA4B,uBAAuB;AACnD,yDAAyD,KAAK;AAC9D;AACA,uCAAuC,MAAM;AAC7C;AACA;AACA,aAAa;AACb,iEAAiE;AACjE;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AC5Va;;AAEb,WAAW,mBAAO,CAAC,kBAAM;AACzB;AACA;;AAEA;AACA,MAAM,KAAK;AACX,MAAM,KAAK;AACX;AACA;AACA;AACA;;AAEA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA;;AAEA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,uBAAuB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA,E;;;;;;;;;;;AC7Fa;AACb,WAAW,mBAAO,CAAC,2GAAY;AAC/B;AACA;AACA;AACA;AACA,wBAAwB,mBAAO,CAAC,6HAAqB;AACrD,iBAAiB,mBAAO,CAAC,+GAAc;AACvC;AACA;;AAEA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,aAAa;AAC5F;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,SAAS;;AAET;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,qDAAqD;AACrD,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;ACnJY;AACb,WAAW,mBAAO,CAAC,2GAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,6GAAU;AAC/B,cAAc,mBAAO,CAAC,yGAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,qBAAqB;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,qBAAqB;AACrB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,qBAAqB;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,qBAAqB;AACrB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,qBAAqB;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,qBAAqB;AACrB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,kBAAkB;;;;;;;;;;;;;;;ACvTL;AACb,cAAc,mBAAO,CAAC,yGAAY;AAClC,iBAAiB,mBAAO,CAAC,+GAAc;AACvC,kBAAkB,0IAAgC;AAClD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA,CAAC;;;;;;;;;;;;AChHD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,wDAAwD;AACxD,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA,uBAAuB;AACvB;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA,gGAAgG,eAAe,UAAU,WAAW;AACpI;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,0CAA0C,mBAAO,CAAC,qGAAU,GAAG,mBAAO,CAAC,2GAAa,GAAG,mBAAO,CAAC,iHAAgB;;AAE/G;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;;;;;;ACjND;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iBAAiB;;;AAGjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,iBAAiB;;AAEjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;;AAErB;AACA;;;AAGA;AACA,SAAS;;;AAGT;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iBAAiB;;;AAGjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;;AAGjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;;AAGA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,2CAA2C,mBAAO,CAAC,yGAAY,GAAG,mBAAO,CAAC,qGAAU,GAAG,mBAAO,CAAC,iHAAgB,GAAG,mBAAO,CAAC,2GAAa,GAAG,mBAAO,CAAC,uHAAmB,GAAG,mBAAO,CAAC,yHAAoB;AACpM;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;;;;;;AChfD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;AAGA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,YAAY,wDAAwD,MAAM,0BAA0B;AAC1J;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA,aAAa;AACb,SAAS;AACT;AACA;;;AAGA;;AAEA;AACA,8BAA8B,2BAA2B;AACzD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA,iBAAiB;AACjB;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,aAAa,yBAAyB,uBAAuB;AACrI;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,0CAA0C,mBAAO,CAAC,qGAAU,GAAG,mBAAO,CAAC,2GAAa,GAAG,mBAAO,CAAC,+GAAe,GAAG,mBAAO,CAAC,iHAAgB;;AAEzI;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;;;;;;AC9nBD;AACA;AACA;AACA;;AAEA,8CAA6C,CAAC,cAAc,EAAC;;AAE7D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB,eAAe;AAClC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI,KAAwB;AAC5B;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+CAA+C;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,cAAc;AACd,cAAc;AACd;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,mBAAmB;AACnB;;AAEA;AACA;AACA,GAAG;AACH,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,0BAA0B,EAAE,iBAAiB;AAC7C;AACA;;AAEA;AACA,sBAAsB,8BAA8B;AACpD,yBAAyB;;AAEzB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gDAAgD,iBAAiB;;AAEjE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,4CAA4C,YAAY;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK,eAAe;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,8BAA8B;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0BAA0B;AAClE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,YAAY;AAChD;AACA;AACA,GAAG;AACH;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,8BAA8B;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,kDAAkD;AAClD,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,wCAAwC;AACxC,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,YAAY;AACxD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,4CAA4C,YAAY;AACxD;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,cAAc;AACjC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe;AACf,SAAS;AACT,eAAe;AACf,iBAAiB;AACjB,aAAa;AACb,eAAe;AACf,cAAc;AACd,YAAY;AACZ,eAAe;AACf,aAAa;AACb,aAAa;AACb,aAAa;AACb,eAAe;AACf,eAAe;AACf,gBAAgB;AAChB,gBAAgB;AAChB,eAAe;AACf,cAAc;AACd,gBAAgB;AAChB,gBAAgB;AAChB,aAAa;AACb,aAAa;AACb,kBAAkB;AAClB,YAAY;AACZ,aAAa;AACb,cAAc;AACd,iBAAiB;AACjB,cAAc;AACd,YAAY;AACZ,iBAAiB;AACjB,eAAe;AACf,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,eAAe;AACf,iBAAiB;AACjB,WAAW;AACX,eAAe;AACf,WAAW;AACX,gBAAgB;AAChB,eAAe;AACf,eAAe;AACf,eAAe;AACf,oBAAoB;AACpB,cAAc;AACd,cAAc;AACd,mBAAmB;AACnB,eAAe;AACf,qBAAqB;AACrB,iBAAiB;AACjB,kBAAkB;AAClB,cAAc;AACd,iBAAiB;AACjB,eAAe;AACf,eAAe;AACf,eAAe;AACf,gBAAgB;AAChB,kBAAkB;AAClB,aAAa;AACb,eAAe;AACf,aAAa;AACb,cAAc;AACd,gBAAgB;AAChB,gBAAgB;AAChB,gBAAgB;AAChB,aAAa;AACb,gBAAgB;AAChB,gBAAgB;AAChB,oBAAoB;AACpB,mBAAmB;AACnB,iBAAiB;AACjB,iBAAiB;AACjB,gBAAgB;AAChB,YAAY;AACZ,YAAY;AACZ,mBAAmB;AACnB,WAAW;AACX,iBAAiB;AACjB,eAAe;AACf,WAAW;AACX,eAAe;AACf,WAAW;AACX,aAAa;AACb,cAAc;AACd,YAAY;AACZ,WAAW;AACX,cAAc;AACd,YAAY;AACZ,YAAY;AACZ,aAAa;AACb,eAAe;AACf,iBAAiB;AACjB,YAAY;AACZ,aAAa;AACb,gBAAgB;AAChB,kBAAkB;AAClB,cAAc;AACd,aAAa;AACb,cAAc;AACd,mBAAmB;AACnB,cAAc;AACd,YAAY;AACZ,qBAAqB;AACrB,cAAc;AACd,cAAc;AACd,eAAe;AACf,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,mBAAmB;AACnB,WAAW;AACX,gBAAgB;AAChB,wBAAwB;AACxB,gBAAgB;AAChB,aAAa;AACb,eAAe;AACf,cAAc;AACd,aAAa;AACb,YAAY;AACZ,gBAAgB;AAChB,aAAa;AACb,cAAc;AACd,aAAa;AACb,eAAe;AACf,YAAY;AACZ,WAAW;AACX;;;;;;;;;;;AC7mEA;AACA;AACA;AACA;;AAEA,sBAAsB,mBAAO,CAAC,mIAAyB;;;;AAIvD;AACA;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,mBAAO,CAAC,wGAAoB;AACpD,qBAAqB,mBAAO,CAAC,kGAAiB;AAC9C,wBAAwB,mBAAO,CAAC,0GAAqB;AACrD,yBAAyB,mBAAO,CAAC,sGAAmB;;AAEpD;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;;AAEA;AACA,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,gBAAgB;AACjC;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;;;;;;;;;;AClGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,mBAAO,CAAC,kGAAQ;AAC/B,0BAA0B,mBAAO,CAAC,0GAA2B;AAC7D,eAAe,mBAAO,CAAC,yGAAe;;AAEtC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,cAAc,OAAO,eAAe,OAAO;AAClE;AACA,KAAK;;AAEL;AACA;AACA;AACA,0DAA0D,qBAAqB;AAC/E,4DAA4D,qBAAqB;AACjF;AACA;AACA,yDAAyD,oDAAoD;AAC7G,KAAK;;AAEL;AACA;AACA,6DAA6D,2BAA2B;AACxF;AACA;AACA;;AAEA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;AACA;AACA,4BAA4B,OAAO,GAAG,cAAc,GAAG,eAAe;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;;AAEA,kCAAkC,gBAAgB;AAClD;AACA;AACA,KAAK;;AAEL,2EAA2E,yBAAyB;;AAEpG;AACA,kDAAkD,OAAO,GAAG,UAAU;AACtE,+DAA+D,2BAA2B;AAC1F,KAAK;;AAEL;AACA;AACA,+DAA+D,OAAO;AACtE,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,iCAAiC;AACjC;;AAEA,gCAAgC,uCAAuC;AACvE;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA,gEAAgE,2BAA2B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD,YAAY,IAAI,IAAI;AACxE;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;;;;;;;;;;;AC3KA;AACA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,kGAAQ;AAC/B,0BAA0B,mBAAO,CAAC,0GAA2B;;AAE7D,mBAAmB,mBAAO,CAAC,8FAAe;AAC1C,8BAA8B,mBAAO,CAAC,sHAA2B;AACjE,qBAAqB,mBAAO,CAAC,kGAAiB;AAC9C,wBAAwB,mBAAO,CAAC,0GAAqB;AACrD,6BAA6B,mBAAO,CAAC,oHAA0B;AAC/D,yBAAyB,mBAAO,CAAC,wGAA0B;;AAE3D;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,uCAAuC;AAClD,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT,OAAO;AACP,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,yCAAyC;AACzC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,yBAAyB,SAAS,QAAQ,EAAE;AAC5C;AACA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,2CAA2C,sDAAsD;AACjG;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,mCAAmC,qCAAqC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;;;;;;;;;;ACxTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,mBAAO,CAAC,kGAAiB;AAC9C,mBAAmB,mBAAO,CAAC,8FAAe;AAC1C,mCAAmC,mBAAO,CAAC,oIAAkC;;AAE7E;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,WAAW,IAAI;AACf;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB;AACA,gCAAgC,sCAAsC,uCAAuC,GAAG;AAChH,SAAS,mDAAmD;AAC5D;AACA;AACA;AACA;AACA;AACA,oDAAoD,mCAAmC;AACvF;;AAEA;AACA,SAAS,gCAAgC;AACzC,SAAS,mEAAmE;AAC5E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;;AAEP,uDAAuD;AACvD;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL,GAAG;;AAEH,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AChKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,+FAAO;AAC7B,gBAAgB,mBAAO,CAAC,iHAAa;AACrC,0BAA0B,mBAAO,CAAC,0GAA2B;;AAE7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,2BAA2B,SAAS,oCAAoC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB;AACA,eAAe,gBAAgB;AAC/B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC,kCAAkC;AACtE;AACA,GAAG,IAAI;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;;AAEP;AACA,iCAAiC,iBAAiB;AAClD,iCAAiC,kCAAkC;AACnE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,GAAG,EAAE;AACL;;;;;;;;;;;ACzMA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAO,CAAC,yFAAK;AACzB,yBAAyB,mBAAO,CAAC,wGAA0B;AAC3D,oBAAoB,mBAAO,CAAC,gGAAgB;;AAE5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,kCAAkC;AAC7C;AACA;AACA;AACA,qBAAqB;AACrB,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,aAAa,IAAI;AACjB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,aAAa,oBAAoB;AACjC;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8EAA8E,IAAI;AAClF;;AAEA;AACA;AACA;AACA,CAAC,IAAI;;;;;;;;;;;AC3SL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA,6CAA6C,eAAe,cAAc,EAAE;AAC5E;AACA,OAAO,IAAI;AACX,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,GAAG;AACH;;;;;;;;;;;ACpLA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,kGAAQ;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,WAAW,qBAAqB;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA,WAAW,qBAAqB;AAChC;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;AClKA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,mBAAO,CAAC,8FAAe;;AAE1C;AACA,WAAW,OAAO;AAClB,WAAW,IAAI;AACf,WAAW,OAAO;;AAElB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;;AAET;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA,eAAe,eAAe,GAAG,aAAa,GAAG,aAAa;AAC9D;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACxFD;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,8FAAe;;AAE1C;AACA,WAAW,SAAS;AACpB,WAAW,IAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AC1BA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACNA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACNA,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACLA,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,SAAS,mBAAO,CAAC,yCAAM;;AAEvB;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,aAAa,mBAAO,CAAC,mDAAW;AAChC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,oBAAoB,mBAAO,CAAC,iEAAkB;;AAE9C;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACXA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9CA,eAAe,mBAAO,CAAC,uDAAa;AACpC,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,wBAAwB,mBAAO,CAAC,yEAAsB;AACtD,eAAe,mBAAO,CAAC,uDAAa;AACpC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACZA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACLA,UAAU,mBAAO,CAAC,6CAAQ;AAC1B,WAAW,mBAAO,CAAC,6CAAQ;AAC3B,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClBA;AACA;;AAEA;;;;;;;;;;;ACHA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACZA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7BA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACZA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClCA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AClBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,WAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,UAAU,mBAAO,CAAC,6CAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;;AAEA;;;;;;;;;;;ACLA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACRA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,eAAe;AACf,cAAc;AACd,cAAc;AACd,gBAAgB;AAChB,eAAe;AACf;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,KAA0B;;AAE9C;AACA,kCAAkC,QAAa;;AAE/C;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,EAAE;AACf,aAAa,QAAQ;AACrB;AACA,aAAa,SAAS;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA,kCAAkC,6BAA6B,EAAE;AACjE;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,aAAa;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,aAAa,QAAQ;AACrB;AACA;AACA,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,MAAM;AACnB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB,aAAa,OAAO,WAAW;AAC/B,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+CAA+C;AAClF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,aAAa,EAAE;AACf,aAAa,MAAM;AACnB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,KAAK;AAClB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA,QAAQ,qCAAqC;AAC7C,QAAQ,qCAAqC;AAC7C,QAAQ;AACR;AACA;AACA,qCAAqC,2BAA2B,EAAE;AAClE;AACA;AACA;AACA,yBAAyB,kCAAkC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,EAAE;AACf,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA,QAAQ,+BAA+B;AACvC,QAAQ,+BAA+B;AACvC,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,SAAS;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,SAAS;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,QAAQ,8BAA8B;AACtC,QAAQ;AACR;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,cAAc,OAAO;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,+CAA+C;AACvD,QAAQ;AACR;AACA;AACA;AACA,qBAAqB,oCAAoC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA,QAAQ,8CAA8C;AACtD,QAAQ;AACR;AACA;AACA,kCAAkC,kBAAkB,EAAE;AACtD;AACA;AACA;AACA,sBAAsB,4BAA4B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,EAAE;AACjB;AACA;AACA;AACA,QAAQ,+CAA+C;AACvD,QAAQ,gDAAgD;AACxD,QAAQ;AACR;AACA;AACA,gCAAgC,mBAAmB,EAAE;AACrD;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iBAAiB;AAC7B;AACA;AACA;AACA,QAAQ,mBAAmB;AAC3B,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,EAAE;AACf,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,eAAe,yBAAyB;AACxC;AACA;AACA,MAAM,IAAI;AACV,YAAY,8BAA8B;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oBAAoB;AACjC,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,cAAc,OAAO;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mCAAmC;AAC3C,QAAQ;AACR;AACA;AACA;AACA,oBAAoB,oCAAoC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,yBAAyB;AACtC;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA,QAAQ,8BAA8B;AACtC,QAAQ,8BAA8B;AACtC,QAAQ,8BAA8B;AACtC,QAAQ;AACR;AACA;AACA,mCAAmC,eAAe,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd,KAAK;AACL;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,EAAE;AACf,aAAa,KAAK;AAClB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,KAAK;AAClB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,aAAa,KAAK;AAClB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,EAAE;AACjB;AACA;AACA;AACA,qBAAqB,SAAS,GAAG,SAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA,mBAAmB;AACnB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA,+BAA+B,kBAAkB,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA,gDAAgD,kBAAkB,EAAE;AACpE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA,mBAAmB;AACnB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,MAAM;AACrB;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,YAAY;AACZ;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,YAAY;AACZ;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB,eAAe,OAAO;AACtB;AACA;AACA;AACA,iBAAiB,SAAS,GAAG,SAAS,GAAG,SAAS;AAClD,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,aAAa;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA,mBAAmB,OAAO,SAAS;AACnC,2BAA2B,gBAAgB,SAAS,GAAG;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,qBAAqB;AAClC,eAAe,OAAO;AACtB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,YAAY;AACZ;AACA;AACA,8BAA8B;AAC9B,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,aAAa;AAC1B,aAAa,EAAE;AACf,eAAe,EAAE;AACjB;AACA;AACA,mBAAmB,QAAQ,OAAO,+BAA+B,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,EAAE;AACjB;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,SAAS;AACxB;AACA;AACA;AACA,QAAQ,8CAA8C;AACtD,QAAQ;AACR;AACA;AACA;AACA,iCAAiC,mCAAmC;AACpE,aAAa,8CAA8C;AAC3D;AACA;AACA;AACA,aAAa,4BAA4B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA,QAAQ,yBAAyB;AACjC,QAAQ;AACR;AACA;AACA,kCAAkC,iBAAiB;AACnD,aAAa,yBAAyB;AACtC;AACA;AACA,8CAA8C,SAAS,cAAc,SAAS;AAC9E,aAAa,yBAAyB,GAAG,yBAAyB;AAClE;AACA;AACA,gCAAgC;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,aAAa,OAAO;AACpB,aAAa,OAAO,YAAY;AAChC,aAAa,QAAQ;AACrB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB,GAAG,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,qDAAqD;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG,MAAM,iBAAiB;;AAE1B;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA,MAAM,IAA0E;AAChF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,mCAAO;AACX;AACA,KAAK;AAAA,kGAAC;AACN;AACA;AACA,OAAO,EASJ;AACH,CAAC;;;;;;;;;;;ACpyHD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,oC;;;;;;;;;;;ACAA,2C;;;;;;;;;;;ACAA,oC;;;;;;;;;;;ACAA,gC;;;;;;;;;;;ACAA,kC;;;;;;;;;;;ACAA,mC;;;;;;;;;;;ACAA,gC;;;;;;;;;;;ACAA,kC;;;;;;;;;;;ACAA,oC;;;;;;;;;;;ACAA,4C;;;;;;;;;;;ACAA,iC;;;;;;;;;;;ACAA,kC;;;;;;;;;;;ACAA,kC;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WC5BA;WACA;WACA;WACA;WACA;WACA,gCAAgC,YAAY;WAC5C;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA,wCAAwC,yCAAyC;WACjF;WACA;WACA,E;;;;;WCPA,wF;;;;;WCAA;WACA;WACA;WACA,sDAAsD,kBAAkB;WACxE;WACA,+CAA+C,cAAc;WAC7D,E;;;;;WCNA;WACA;WACA;WACA;WACA,E;;;;;UCJA;UACA;UACA;UACA","file":"all-chts-bundle.dev.js","sourcesContent":["\nmodule.exports = {\n '4.0': {\n ddocs: require('./build/cht-core-4-0-ddocs.json'),\n RegistrationUtils: require('cht-core-4-0/shared-libs/registration-utils'),\n CalendarInterval: require('cht-core-4-0/shared-libs/calendar-interval'),\n RulesEngineCore: require('cht-core-4-0/shared-libs/rules-engine'),\n RulesEmitter: require('cht-core-4-0/shared-libs/rules-engine/src/rules-emitter'),\n nootils: require('cht-core-4-0/shared-libs/rules-engine/node_modules/cht-nootils'),\n Lineage: require('cht-core-4-0/shared-libs/lineage'),\n ChtScriptApi: require('cht-core-4-0/shared-libs/cht-script-api'),\n\n convertFormXmlToXFormModel: require('cht-core-4-0/api/src/services/generate-xform.js').generate,\n },\n};\n","const path = require('path');\n\nmodule.exports = {\n FORM_STYLESHEET: path.join(__dirname, '../ext/xsl/openrosa2html5form.xsl'),\n MODEL_STYLESHEET: path.join(__dirname, '../ext/enketo-transformer/xsl/openrosa2xmlmodel.xsl'),\n};\n","var enabled = require('enabled');\n\n/**\n * Creates a new Adapter.\n *\n * @param {Function} fn Function that returns the value.\n * @returns {Function} The adapter logic.\n * @public\n */\nmodule.exports = function create(fn) {\n return function adapter(namespace) {\n try {\n return enabled(namespace, fn());\n } catch (e) { /* Any failure means that we found nothing */ }\n\n return false;\n };\n}\n","var adapter = require('./');\n\n/**\n * Extracts the values from process.env.\n *\n * @type {Function}\n * @public\n */\nmodule.exports = adapter(function processenv() {\n return process.env.DEBUG || process.env.DIAGNOSTICS;\n});\n","/**\n * Contains all configured adapters for the given environment.\n *\n * @type {Array}\n * @public\n */\nvar adapters = [];\n\n/**\n * Contains all modifier functions.\n *\n * @typs {Array}\n * @public\n */\nvar modifiers = [];\n\n/**\n * Our default logger.\n *\n * @public\n */\nvar logger = function devnull() {};\n\n/**\n * Register a new adapter that will used to find environments.\n *\n * @param {Function} adapter A function that will return the possible env.\n * @returns {Boolean} Indication of a successful add.\n * @public\n */\nfunction use(adapter) {\n if (~adapters.indexOf(adapter)) return false;\n\n adapters.push(adapter);\n return true;\n}\n\n/**\n * Assign a new log method.\n *\n * @param {Function} custom The log method.\n * @public\n */\nfunction set(custom) {\n logger = custom;\n}\n\n/**\n * Check if the namespace is allowed by any of our adapters.\n *\n * @param {String} namespace The namespace that needs to be enabled\n * @returns {Boolean|Promise} Indication if the namespace is enabled by our adapters.\n * @public\n */\nfunction enabled(namespace) {\n var async = [];\n\n for (var i = 0; i < adapters.length; i++) {\n if (adapters[i].async) {\n async.push(adapters[i]);\n continue;\n }\n\n if (adapters[i](namespace)) return true;\n }\n\n if (!async.length) return false;\n\n //\n // Now that we know that we Async functions, we know we run in an ES6\n // environment and can use all the API's that they offer, in this case\n // we want to return a Promise so that we can `await` in React-Native\n // for an async adapter.\n //\n return new Promise(function pinky(resolve) {\n Promise.all(\n async.map(function prebind(fn) {\n return fn(namespace);\n })\n ).then(function resolved(values) {\n resolve(values.some(Boolean));\n });\n });\n}\n\n/**\n * Add a new message modifier to the debugger.\n *\n * @param {Function} fn Modification function.\n * @returns {Boolean} Indication of a successful add.\n * @public\n */\nfunction modify(fn) {\n if (~modifiers.indexOf(fn)) return false;\n\n modifiers.push(fn);\n return true;\n}\n\n/**\n * Write data to the supplied logger.\n *\n * @param {Object} meta Meta information about the log.\n * @param {Array} args Arguments for console.log.\n * @public\n */\nfunction write() {\n logger.apply(logger, arguments);\n}\n\n/**\n * Process the message with the modifiers.\n *\n * @param {Mixed} message The message to be transformed by modifers.\n * @returns {String} Transformed message.\n * @public\n */\nfunction process(message) {\n for (var i = 0; i < modifiers.length; i++) {\n message = modifiers[i].apply(modifiers[i], arguments);\n }\n\n return message;\n}\n\n/**\n * Introduce options to the logger function.\n *\n * @param {Function} fn Calback function.\n * @param {Object} options Properties to introduce on fn.\n * @returns {Function} The passed function\n * @public\n */\nfunction introduce(fn, options) {\n var has = Object.prototype.hasOwnProperty;\n\n for (var key in options) {\n if (has.call(options, key)) {\n fn[key] = options[key];\n }\n }\n\n return fn;\n}\n\n/**\n * Nope, we're not allowed to write messages.\n *\n * @returns {Boolean} false\n * @public\n */\nfunction nope(options) {\n options.enabled = false;\n options.modify = modify;\n options.set = set;\n options.use = use;\n\n return introduce(function diagnopes() {\n return false;\n }, options);\n}\n\n/**\n * Yep, we're allowed to write debug messages.\n *\n * @param {Object} options The options for the process.\n * @returns {Function} The function that does the logging.\n * @public\n */\nfunction yep(options) {\n /**\n * The function that receives the actual debug information.\n *\n * @returns {Boolean} indication that we're logging.\n * @public\n */\n function diagnostics() {\n var args = Array.prototype.slice.call(arguments, 0);\n\n write.call(write, options, process(args, options));\n return true;\n }\n\n options.enabled = true;\n options.modify = modify;\n options.set = set;\n options.use = use;\n\n return introduce(diagnostics, options);\n}\n\n/**\n * Simple helper function to introduce various of helper methods to our given\n * diagnostics function.\n *\n * @param {Function} diagnostics The diagnostics function.\n * @returns {Function} diagnostics\n * @public\n */\nmodule.exports = function create(diagnostics) {\n diagnostics.introduce = introduce;\n diagnostics.enabled = enabled;\n diagnostics.process = process;\n diagnostics.modify = modify;\n diagnostics.write = write;\n diagnostics.nope = nope;\n diagnostics.yep = yep;\n diagnostics.set = set;\n diagnostics.use = use;\n\n return diagnostics;\n}\n","/**\n * An idiot proof logger to be used as default. We've wrapped it in a try/catch\n * statement to ensure the environments without the `console` API do not crash\n * as well as an additional fix for ancient browsers like IE8 where the\n * `console.log` API doesn't have an `apply`, so we need to use the Function's\n * apply functionality to apply the arguments.\n *\n * @param {Object} meta Options of the logger.\n * @param {Array} messages The actuall message that needs to be logged.\n * @public\n */\nmodule.exports = function (meta, messages) {\n //\n // So yea. IE8 doesn't have an apply so we need a work around to puke the\n // arguments in place.\n //\n try { Function.prototype.apply.call(console.log, console, messages); }\n catch (e) {}\n}\n","var colorspace = require('colorspace');\nvar kuler = require('kuler');\n\n/**\n * Prefix the messages with a colored namespace.\n *\n * @param {Array} args The messages array that is getting written.\n * @param {Object} options Options for diagnostics.\n * @returns {Array} Altered messages array.\n * @public\n */\nmodule.exports = function ansiModifier(args, options) {\n var namespace = options.namespace;\n var ansi = options.colors !== false\n ? kuler(namespace +':', colorspace(namespace))\n : namespace +':';\n\n args[0] = ansi +' '+ args[0];\n return args;\n};\n","var create = require('../diagnostics');\nvar tty = require('tty').isatty(1);\n\n/**\n * Create a new diagnostics logger.\n *\n * @param {String} namespace The namespace it should enable.\n * @param {Object} options Additional options.\n * @returns {Function} The logger.\n * @public\n */\nvar diagnostics = create(function dev(namespace, options) {\n options = options || {};\n options.colors = 'colors' in options ? options.colors : tty;\n options.namespace = namespace;\n options.prod = false;\n options.dev = true;\n\n if (!dev.enabled(namespace) && !(options.force || dev.force)) {\n return dev.nope(options);\n }\n \n return dev.yep(options);\n});\n\n//\n// Configure the logger for the given environment.\n//\ndiagnostics.modify(require('../modifiers/namespace-ansi'));\ndiagnostics.use(require('../adapters/process.env'));\ndiagnostics.set(require('../logger/console'));\n\n//\n// Expose the diagnostics logger.\n//\nmodule.exports = diagnostics;\n","//\n// Select the correct build version depending on the environment.\n//\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./production.js');\n} else {\n module.exports = require('./development.js');\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = asyncify;\n\nvar _initialParams = require('./internal/initialParams.js');\n\nvar _initialParams2 = _interopRequireDefault(_initialParams);\n\nvar _setImmediate = require('./internal/setImmediate.js');\n\nvar _setImmediate2 = _interopRequireDefault(_setImmediate);\n\nvar _wrapAsync = require('./internal/wrapAsync.js');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Take a sync function and make it async, passing its return value to a\n * callback. This is useful for plugging sync functions into a waterfall,\n * series, or other async functions. Any arguments passed to the generated\n * function will be passed to the wrapped function (except for the final\n * callback argument). Errors thrown will be passed to the callback.\n *\n * If the function passed to `asyncify` returns a Promise, that promises's\n * resolved/rejected state will be used to call the callback, rather than simply\n * the synchronous return value.\n *\n * This also means you can asyncify ES2017 `async` functions.\n *\n * @name asyncify\n * @static\n * @memberOf module:Utils\n * @method\n * @alias wrapSync\n * @category Util\n * @param {Function} func - The synchronous function, or Promise-returning\n * function to convert to an {@link AsyncFunction}.\n * @returns {AsyncFunction} An asynchronous wrapper of the `func`. To be\n * invoked with `(args..., callback)`.\n * @example\n *\n * // passing a regular synchronous function\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(JSON.parse),\n * function (data, next) {\n * // data is the result of parsing the text.\n * // If there was a parsing error, it would have been caught.\n * }\n * ], callback);\n *\n * // passing a function returning a promise\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(function (contents) {\n * return db.model.create(contents);\n * }),\n * function (model, next) {\n * // `model` is the instantiated model object.\n * // If there was an error, this function would be skipped.\n * }\n * ], callback);\n *\n * // es2017 example, though `asyncify` is not needed if your JS environment\n * // supports async functions out of the box\n * var q = async.queue(async.asyncify(async function(file) {\n * var intermediateStep = await processFile(file);\n * return await somePromise(intermediateStep)\n * }));\n *\n * q.push(files);\n */\nfunction asyncify(func) {\n if ((0, _wrapAsync.isAsync)(func)) {\n return function (...args /*, callback*/) {\n const callback = args.pop();\n const promise = func.apply(this, args);\n return handlePromise(promise, callback);\n };\n }\n\n return (0, _initialParams2.default)(function (args, callback) {\n var result;\n try {\n result = func.apply(this, args);\n } catch (e) {\n return callback(e);\n }\n // if result is Promise object\n if (result && typeof result.then === 'function') {\n return handlePromise(result, callback);\n } else {\n callback(null, result);\n }\n });\n}\n\nfunction handlePromise(promise, callback) {\n return promise.then(value => {\n invokeCallback(callback, null, value);\n }, err => {\n invokeCallback(callback, err && err.message ? err : new Error(err));\n });\n}\n\nfunction invokeCallback(callback, error, value) {\n try {\n callback(error, value);\n } catch (err) {\n (0, _setImmediate2.default)(e => {\n throw e;\n }, err);\n }\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _isArrayLike = require('./internal/isArrayLike.js');\n\nvar _isArrayLike2 = _interopRequireDefault(_isArrayLike);\n\nvar _breakLoop = require('./internal/breakLoop.js');\n\nvar _breakLoop2 = _interopRequireDefault(_breakLoop);\n\nvar _eachOfLimit = require('./eachOfLimit.js');\n\nvar _eachOfLimit2 = _interopRequireDefault(_eachOfLimit);\n\nvar _once = require('./internal/once.js');\n\nvar _once2 = _interopRequireDefault(_once);\n\nvar _onlyOnce = require('./internal/onlyOnce.js');\n\nvar _onlyOnce2 = _interopRequireDefault(_onlyOnce);\n\nvar _wrapAsync = require('./internal/wrapAsync.js');\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nvar _awaitify = require('./internal/awaitify.js');\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// eachOf implementation optimized for array-likes\nfunction eachOfArrayLike(coll, iteratee, callback) {\n callback = (0, _once2.default)(callback);\n var index = 0,\n completed = 0,\n { length } = coll,\n canceled = false;\n if (length === 0) {\n callback(null);\n }\n\n function iteratorCallback(err, value) {\n if (err === false) {\n canceled = true;\n }\n if (canceled === true) return;\n if (err) {\n callback(err);\n } else if (++completed === length || value === _breakLoop2.default) {\n callback(null);\n }\n }\n\n for (; index < length; index++) {\n iteratee(coll[index], index, (0, _onlyOnce2.default)(iteratorCallback));\n }\n}\n\n// a generic version of eachOf which can handle array, object, and iterator cases.\nfunction eachOfGeneric(coll, iteratee, callback) {\n return (0, _eachOfLimit2.default)(coll, Infinity, iteratee, callback);\n}\n\n/**\n * Like [`each`]{@link module:Collections.each}, except that it passes the key (or index) as the second argument\n * to the iteratee.\n *\n * @name eachOf\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEachOf\n * @category Collection\n * @see [async.each]{@link module:Collections.each}\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each\n * item in `coll`.\n * The `key` is the item's key, or index in the case of an array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n * @example\n *\n * // dev.json is a file containing a valid json object config for dev environment\n * // dev.json is a file containing a valid json object config for test environment\n * // prod.json is a file containing a valid json object config for prod environment\n * // invalid.json is a file with a malformed json object\n *\n * let configs = {}; //global variable\n * let validConfigFileMap = {dev: 'dev.json', test: 'test.json', prod: 'prod.json'};\n * let invalidConfigFileMap = {dev: 'dev.json', test: 'test.json', invalid: 'invalid.json'};\n *\n * // asynchronous function that reads a json file and parses the contents as json object\n * function parseFile(file, key, callback) {\n * fs.readFile(file, \"utf8\", function(err, data) {\n * if (err) return calback(err);\n * try {\n * configs[key] = JSON.parse(data);\n * } catch (e) {\n * return callback(e);\n * }\n * callback();\n * });\n * }\n *\n * // Using callbacks\n * async.forEachOf(validConfigFileMap, parseFile, function (err) {\n * if (err) {\n * console.error(err);\n * } else {\n * console.log(configs);\n * // configs is now a map of JSON data, e.g.\n * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json}\n * }\n * });\n *\n * //Error handing\n * async.forEachOf(invalidConfigFileMap, parseFile, function (err) {\n * if (err) {\n * console.error(err);\n * // JSON parse error exception\n * } else {\n * console.log(configs);\n * }\n * });\n *\n * // Using Promises\n * async.forEachOf(validConfigFileMap, parseFile)\n * .then( () => {\n * console.log(configs);\n * // configs is now a map of JSON data, e.g.\n * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json}\n * }).catch( err => {\n * console.error(err);\n * });\n *\n * //Error handing\n * async.forEachOf(invalidConfigFileMap, parseFile)\n * .then( () => {\n * console.log(configs);\n * }).catch( err => {\n * console.error(err);\n * // JSON parse error exception\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.forEachOf(validConfigFileMap, parseFile);\n * console.log(configs);\n * // configs is now a map of JSON data, e.g.\n * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json}\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * //Error handing\n * async () => {\n * try {\n * let result = await async.forEachOf(invalidConfigFileMap, parseFile);\n * console.log(configs);\n * }\n * catch (err) {\n * console.log(err);\n * // JSON parse error exception\n * }\n * }\n *\n */\nfunction eachOf(coll, iteratee, callback) {\n var eachOfImplementation = (0, _isArrayLike2.default)(coll) ? eachOfArrayLike : eachOfGeneric;\n return eachOfImplementation(coll, (0, _wrapAsync2.default)(iteratee), callback);\n}\n\nexports.default = (0, _awaitify2.default)(eachOf, 3);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _eachOfLimit2 = require('./internal/eachOfLimit.js');\n\nvar _eachOfLimit3 = _interopRequireDefault(_eachOfLimit2);\n\nvar _wrapAsync = require('./internal/wrapAsync.js');\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nvar _awaitify = require('./internal/awaitify.js');\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The same as [`eachOf`]{@link module:Collections.eachOf} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name eachOfLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.eachOf]{@link module:Collections.eachOf}\n * @alias forEachOfLimit\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n */\nfunction eachOfLimit(coll, limit, iteratee, callback) {\n return (0, _eachOfLimit3.default)(limit)(coll, (0, _wrapAsync2.default)(iteratee), callback);\n}\n\nexports.default = (0, _awaitify2.default)(eachOfLimit, 4);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _eachOfLimit = require('./eachOfLimit.js');\n\nvar _eachOfLimit2 = _interopRequireDefault(_eachOfLimit);\n\nvar _awaitify = require('./internal/awaitify.js');\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The same as [`eachOf`]{@link module:Collections.eachOf} but runs only a single async operation at a time.\n *\n * @name eachOfSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.eachOf]{@link module:Collections.eachOf}\n * @alias forEachOfSeries\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n */\nfunction eachOfSeries(coll, iteratee, callback) {\n return (0, _eachOfLimit2.default)(coll, 1, iteratee, callback);\n}\nexports.default = (0, _awaitify2.default)(eachOfSeries, 3);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _eachOf = require('./eachOf.js');\n\nvar _eachOf2 = _interopRequireDefault(_eachOf);\n\nvar _withoutIndex = require('./internal/withoutIndex.js');\n\nvar _withoutIndex2 = _interopRequireDefault(_withoutIndex);\n\nvar _wrapAsync = require('./internal/wrapAsync.js');\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nvar _awaitify = require('./internal/awaitify.js');\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Applies the function `iteratee` to each item in `coll`, in parallel.\n * The `iteratee` is called with an item from the list, and a callback for when\n * it has finished. If the `iteratee` passes an error to its `callback`, the\n * main `callback` (for the `each` function) is immediately called with the\n * error.\n *\n * Note, that since this function applies `iteratee` to each item in parallel,\n * there is no guarantee that the iteratee functions will complete in order.\n *\n * @name each\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEach\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to\n * each item in `coll`. Invoked with (item, callback).\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOf`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n * // dir4 does not exist\n *\n * const fileList = [ 'dir1/file2.txt', 'dir2/file3.txt', 'dir/file5.txt'];\n * const withMissingFileList = ['dir1/file1.txt', 'dir4/file2.txt'];\n *\n * // asynchronous function that deletes a file\n * const deleteFile = function(file, callback) {\n * fs.unlink(file, callback);\n * };\n *\n * // Using callbacks\n * async.each(fileList, deleteFile, function(err) {\n * if( err ) {\n * console.log(err);\n * } else {\n * console.log('All files have been deleted successfully');\n * }\n * });\n *\n * // Error Handling\n * async.each(withMissingFileList, deleteFile, function(err){\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4/file2.txt does not exist\n * // dir1/file1.txt could have been deleted\n * });\n *\n * // Using Promises\n * async.each(fileList, deleteFile)\n * .then( () => {\n * console.log('All files have been deleted successfully');\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Error Handling\n * async.each(fileList, deleteFile)\n * .then( () => {\n * console.log('All files have been deleted successfully');\n * }).catch( err => {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4/file2.txt does not exist\n * // dir1/file1.txt could have been deleted\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * await async.each(files, deleteFile);\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // Error Handling\n * async () => {\n * try {\n * await async.each(withMissingFileList, deleteFile);\n * }\n * catch (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4/file2.txt does not exist\n * // dir1/file1.txt could have been deleted\n * }\n * }\n *\n */\nfunction eachLimit(coll, iteratee, callback) {\n return (0, _eachOf2.default)(coll, (0, _withoutIndex2.default)((0, _wrapAsync2.default)(iteratee)), callback);\n}\n\nexports.default = (0, _awaitify2.default)(eachLimit, 3);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = asyncEachOfLimit;\n\nvar _breakLoop = require('./breakLoop.js');\n\nvar _breakLoop2 = _interopRequireDefault(_breakLoop);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// for async generators\nfunction asyncEachOfLimit(generator, limit, iteratee, callback) {\n let done = false;\n let canceled = false;\n let awaiting = false;\n let running = 0;\n let idx = 0;\n\n function replenish() {\n //console.log('replenish')\n if (running >= limit || awaiting || done) return;\n //console.log('replenish awaiting')\n awaiting = true;\n generator.next().then(({ value, done: iterDone }) => {\n //console.log('got value', value)\n if (canceled || done) return;\n awaiting = false;\n if (iterDone) {\n done = true;\n if (running <= 0) {\n //console.log('done nextCb')\n callback(null);\n }\n return;\n }\n running++;\n iteratee(value, idx, iterateeCallback);\n idx++;\n replenish();\n }).catch(handleError);\n }\n\n function iterateeCallback(err, result) {\n //console.log('iterateeCallback')\n running -= 1;\n if (canceled) return;\n if (err) return handleError(err);\n\n if (err === false) {\n done = true;\n canceled = true;\n return;\n }\n\n if (result === _breakLoop2.default || done && running <= 0) {\n done = true;\n //console.log('done iterCb')\n return callback(null);\n }\n replenish();\n }\n\n function handleError(err) {\n if (canceled) return;\n awaiting = false;\n done = true;\n callback(err);\n }\n\n replenish();\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = awaitify;\n// conditionally promisify a function.\n// only return a promise if a callback is omitted\nfunction awaitify(asyncFn, arity = asyncFn.length) {\n if (!arity) throw new Error('arity is undefined');\n function awaitable(...args) {\n if (typeof args[arity - 1] === 'function') {\n return asyncFn.apply(this, args);\n }\n\n return new Promise((resolve, reject) => {\n args[arity - 1] = (err, ...cbArgs) => {\n if (err) return reject(err);\n resolve(cbArgs.length > 1 ? cbArgs : cbArgs[0]);\n };\n asyncFn.apply(this, args);\n });\n }\n\n return awaitable;\n}\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n// A temporary value used to identify if the loop should be broken.\n// See #1064, #1293\nconst breakLoop = {};\nexports.default = breakLoop;\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _once = require('./once.js');\n\nvar _once2 = _interopRequireDefault(_once);\n\nvar _iterator = require('./iterator.js');\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _onlyOnce = require('./onlyOnce.js');\n\nvar _onlyOnce2 = _interopRequireDefault(_onlyOnce);\n\nvar _wrapAsync = require('./wrapAsync.js');\n\nvar _asyncEachOfLimit = require('./asyncEachOfLimit.js');\n\nvar _asyncEachOfLimit2 = _interopRequireDefault(_asyncEachOfLimit);\n\nvar _breakLoop = require('./breakLoop.js');\n\nvar _breakLoop2 = _interopRequireDefault(_breakLoop);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = limit => {\n return (obj, iteratee, callback) => {\n callback = (0, _once2.default)(callback);\n if (limit <= 0) {\n throw new RangeError('concurrency limit cannot be less than 1');\n }\n if (!obj) {\n return callback(null);\n }\n if ((0, _wrapAsync.isAsyncGenerator)(obj)) {\n return (0, _asyncEachOfLimit2.default)(obj, limit, iteratee, callback);\n }\n if ((0, _wrapAsync.isAsyncIterable)(obj)) {\n return (0, _asyncEachOfLimit2.default)(obj[Symbol.asyncIterator](), limit, iteratee, callback);\n }\n var nextElem = (0, _iterator2.default)(obj);\n var done = false;\n var canceled = false;\n var running = 0;\n var looping = false;\n\n function iterateeCallback(err, value) {\n if (canceled) return;\n running -= 1;\n if (err) {\n done = true;\n callback(err);\n } else if (err === false) {\n done = true;\n canceled = true;\n } else if (value === _breakLoop2.default || done && running <= 0) {\n done = true;\n return callback(null);\n } else if (!looping) {\n replenish();\n }\n }\n\n function replenish() {\n looping = true;\n while (running < limit && !done) {\n var elem = nextElem();\n if (elem === null) {\n done = true;\n if (running <= 0) {\n callback(null);\n }\n return;\n }\n running += 1;\n iteratee(elem.value, elem.key, (0, _onlyOnce2.default)(iterateeCallback));\n }\n looping = false;\n }\n\n replenish();\n };\n};\n\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (coll) {\n return coll[Symbol.iterator] && coll[Symbol.iterator]();\n};\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (fn) {\n return function (...args /*, callback*/) {\n var callback = args.pop();\n return fn.call(this, args, callback);\n };\n};\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isArrayLike;\nfunction isArrayLike(value) {\n return value && typeof value.length === 'number' && value.length >= 0 && value.length % 1 === 0;\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createIterator;\n\nvar _isArrayLike = require('./isArrayLike.js');\n\nvar _isArrayLike2 = _interopRequireDefault(_isArrayLike);\n\nvar _getIterator = require('./getIterator.js');\n\nvar _getIterator2 = _interopRequireDefault(_getIterator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createArrayIterator(coll) {\n var i = -1;\n var len = coll.length;\n return function next() {\n return ++i < len ? { value: coll[i], key: i } : null;\n };\n}\n\nfunction createES2015Iterator(iterator) {\n var i = -1;\n return function next() {\n var item = iterator.next();\n if (item.done) return null;\n i++;\n return { value: item.value, key: i };\n };\n}\n\nfunction createObjectIterator(obj) {\n var okeys = obj ? Object.keys(obj) : [];\n var i = -1;\n var len = okeys.length;\n return function next() {\n var key = okeys[++i];\n if (key === '__proto__') {\n return next();\n }\n return i < len ? { value: obj[key], key } : null;\n };\n}\n\nfunction createIterator(coll) {\n if ((0, _isArrayLike2.default)(coll)) {\n return createArrayIterator(coll);\n }\n\n var iterator = (0, _getIterator2.default)(coll);\n return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll);\n}\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = once;\nfunction once(fn) {\n function wrapper(...args) {\n if (fn === null) return;\n var callFn = fn;\n fn = null;\n callFn.apply(this, args);\n }\n Object.assign(wrapper, fn);\n return wrapper;\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = onlyOnce;\nfunction onlyOnce(fn) {\n return function (...args) {\n if (fn === null) throw new Error(\"Callback was already called.\");\n var callFn = fn;\n fn = null;\n callFn.apply(this, args);\n };\n}\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _isArrayLike = require('./isArrayLike.js');\n\nvar _isArrayLike2 = _interopRequireDefault(_isArrayLike);\n\nvar _wrapAsync = require('./wrapAsync.js');\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nvar _awaitify = require('./awaitify.js');\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = (0, _awaitify2.default)((eachfn, tasks, callback) => {\n var results = (0, _isArrayLike2.default)(tasks) ? [] : {};\n\n eachfn(tasks, (task, key, taskCb) => {\n (0, _wrapAsync2.default)(task)((err, ...result) => {\n if (result.length < 2) {\n [result] = result;\n }\n results[key] = result;\n taskCb(err);\n });\n }, err => callback(err, results));\n}, 3);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fallback = fallback;\nexports.wrap = wrap;\n/* istanbul ignore file */\n\nvar hasQueueMicrotask = exports.hasQueueMicrotask = typeof queueMicrotask === 'function' && queueMicrotask;\nvar hasSetImmediate = exports.hasSetImmediate = typeof setImmediate === 'function' && setImmediate;\nvar hasNextTick = exports.hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function';\n\nfunction fallback(fn) {\n setTimeout(fn, 0);\n}\n\nfunction wrap(defer) {\n return (fn, ...args) => defer(() => fn(...args));\n}\n\nvar _defer;\n\nif (hasQueueMicrotask) {\n _defer = queueMicrotask;\n} else if (hasSetImmediate) {\n _defer = setImmediate;\n} else if (hasNextTick) {\n _defer = process.nextTick;\n} else {\n _defer = fallback;\n}\n\nexports.default = wrap(_defer);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _withoutIndex;\nfunction _withoutIndex(iteratee) {\n return (value, index, callback) => iteratee(value, callback);\n}\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isAsyncIterable = exports.isAsyncGenerator = exports.isAsync = undefined;\n\nvar _asyncify = require('../asyncify.js');\n\nvar _asyncify2 = _interopRequireDefault(_asyncify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isAsync(fn) {\n return fn[Symbol.toStringTag] === 'AsyncFunction';\n}\n\nfunction isAsyncGenerator(fn) {\n return fn[Symbol.toStringTag] === 'AsyncGenerator';\n}\n\nfunction isAsyncIterable(obj) {\n return typeof obj[Symbol.asyncIterator] === 'function';\n}\n\nfunction wrapAsync(asyncFn) {\n if (typeof asyncFn !== 'function') throw new Error('expected a function');\n return isAsync(asyncFn) ? (0, _asyncify2.default)(asyncFn) : asyncFn;\n}\n\nexports.default = wrapAsync;\nexports.isAsync = isAsync;\nexports.isAsyncGenerator = isAsyncGenerator;\nexports.isAsyncIterable = isAsyncIterable;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = series;\n\nvar _parallel2 = require('./internal/parallel.js');\n\nvar _parallel3 = _interopRequireDefault(_parallel2);\n\nvar _eachOfSeries = require('./eachOfSeries.js');\n\nvar _eachOfSeries2 = _interopRequireDefault(_eachOfSeries);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Run the functions in the `tasks` collection in series, each one running once\n * the previous function has completed. If any functions in the series pass an\n * error to its callback, no more functions are run, and `callback` is\n * immediately called with the value of the error. Otherwise, `callback`\n * receives an array of results when `tasks` have completed.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function, and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.series}.\n *\n * **Note** that while many implementations preserve the order of object\n * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)\n * explicitly states that\n *\n * > The mechanics and order of enumerating the properties is not specified.\n *\n * So if you rely on the order in which your series of functions are executed,\n * and want this to work on all platforms, consider using an array.\n *\n * @name series\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|AsyncIterable|Object} tasks - A collection containing\n * [async functions]{@link AsyncFunction} to run in series.\n * Each function can complete with any number of optional `result` values.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This function gets a results array (or object)\n * containing all the result arguments passed to the `task` callbacks. Invoked\n * with (err, result).\n * @return {Promise} a promise, if no callback is passed\n * @example\n *\n * //Using Callbacks\n * async.series([\n * function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 'two');\n * }, 100);\n * }\n * ], function(err, results) {\n * console.log(results);\n * // results is equal to ['one','two']\n * });\n *\n * // an example using objects instead of arrays\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * });\n *\n * //Using Promises\n * async.series([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ]).then(results => {\n * console.log(results);\n * // results is equal to ['one','two']\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * // an example using an object instead of an array\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 2);\n * }, 100);\n * }\n * }).then(results => {\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * //Using async/await\n * async () => {\n * try {\n * let results = await async.series([\n * function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 'two');\n * }, 100);\n * }\n * ]);\n * console.log(results);\n * // results is equal to ['one','two']\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // an example using an object instead of an array\n * async () => {\n * try {\n * let results = await async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 2);\n * }, 100);\n * }\n * });\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\nfunction series(tasks, callback) {\n return (0, _parallel3.default)(_eachOfSeries2.default, tasks, callback);\n}\nmodule.exports = exports['default'];","module.exports = {\n\ttrueFunc: function trueFunc(){\n\t\treturn true;\n\t},\n\tfalseFunc: function falseFunc(){\n\t\treturn false;\n\t}\n};","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (obj == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","/*\n\nThe MIT License (MIT)\n\nOriginal Library\n - Copyright (c) Marak Squires\n\nAdditional functionality\n - Copyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n\nvar colors = {};\nmodule['exports'] = colors;\n\ncolors.themes = {};\n\nvar util = require('util');\nvar ansiStyles = colors.styles = require('./styles');\nvar defineProps = Object.defineProperties;\nvar newLineRegex = new RegExp(/[\\r\\n]+/g);\n\ncolors.supportsColor = require('./system/supports-colors').supportsColor;\n\nif (typeof colors.enabled === 'undefined') {\n colors.enabled = colors.supportsColor() !== false;\n}\n\ncolors.enable = function() {\n colors.enabled = true;\n};\n\ncolors.disable = function() {\n colors.enabled = false;\n};\n\ncolors.stripColors = colors.strip = function(str) {\n return ('' + str).replace(/\\x1B\\[\\d+m/g, '');\n};\n\n// eslint-disable-next-line no-unused-vars\nvar stylize = colors.stylize = function stylize(str, style) {\n if (!colors.enabled) {\n return str+'';\n }\n\n var styleMap = ansiStyles[style];\n\n // Stylize should work for non-ANSI styles, too\n if(!styleMap && style in colors){\n // Style maps like trap operate as functions on strings;\n // they don't have properties like open or close.\n return colors[style](str);\n }\n\n return styleMap.open + str + styleMap.close;\n};\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\nvar escapeStringRegexp = function(str) {\n if (typeof str !== 'string') {\n throw new TypeError('Expected a string');\n }\n return str.replace(matchOperatorsRe, '\\\\$&');\n};\n\nfunction build(_styles) {\n var builder = function builder() {\n return applyStyle.apply(builder, arguments);\n };\n builder._styles = _styles;\n // __proto__ is used because we must return a function, but there is\n // no way to create a function with a different prototype.\n builder.__proto__ = proto;\n return builder;\n}\n\nvar styles = (function() {\n var ret = {};\n ansiStyles.grey = ansiStyles.gray;\n Object.keys(ansiStyles).forEach(function(key) {\n ansiStyles[key].closeRe =\n new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');\n ret[key] = {\n get: function() {\n return build(this._styles.concat(key));\n },\n };\n });\n return ret;\n})();\n\nvar proto = defineProps(function colors() {}, styles);\n\nfunction applyStyle() {\n var args = Array.prototype.slice.call(arguments);\n\n var str = args.map(function(arg) {\n // Use weak equality check so we can colorize null/undefined in safe mode\n if (arg != null && arg.constructor === String) {\n return arg;\n } else {\n return util.inspect(arg);\n }\n }).join(' ');\n\n if (!colors.enabled || !str) {\n return str;\n }\n\n var newLinesPresent = str.indexOf('\\n') != -1;\n\n var nestedStyles = this._styles;\n\n var i = nestedStyles.length;\n while (i--) {\n var code = ansiStyles[nestedStyles[i]];\n str = code.open + str.replace(code.closeRe, code.open) + code.close;\n if (newLinesPresent) {\n str = str.replace(newLineRegex, function(match) {\n return code.close + match + code.open;\n });\n }\n }\n\n return str;\n}\n\ncolors.setTheme = function(theme) {\n if (typeof theme === 'string') {\n console.log('colors.setTheme now only accepts an object, not a string. ' +\n 'If you are trying to set a theme from a file, it is now your (the ' +\n 'caller\\'s) responsibility to require the file. The old syntax ' +\n 'looked like colors.setTheme(__dirname + ' +\n '\\'/../themes/generic-logging.js\\'); The new syntax looks like '+\n 'colors.setTheme(require(__dirname + ' +\n '\\'/../themes/generic-logging.js\\'));');\n return;\n }\n for (var style in theme) {\n (function(style) {\n colors[style] = function(str) {\n if (typeof theme[style] === 'object') {\n var out = str;\n for (var i in theme[style]) {\n out = colors[theme[style][i]](out);\n }\n return out;\n }\n return colors[theme[style]](str);\n };\n })(style);\n }\n};\n\nfunction init() {\n var ret = {};\n Object.keys(styles).forEach(function(name) {\n ret[name] = {\n get: function() {\n return build([name]);\n },\n };\n });\n return ret;\n}\n\nvar sequencer = function sequencer(map, str) {\n var exploded = str.split('');\n exploded = exploded.map(map);\n return exploded.join('');\n};\n\n// custom formatter methods\ncolors.trap = require('./custom/trap');\ncolors.zalgo = require('./custom/zalgo');\n\n// maps\ncolors.maps = {};\ncolors.maps.america = require('./maps/america')(colors);\ncolors.maps.zebra = require('./maps/zebra')(colors);\ncolors.maps.rainbow = require('./maps/rainbow')(colors);\ncolors.maps.random = require('./maps/random')(colors);\n\nfor (var map in colors.maps) {\n (function(map) {\n colors[map] = function(str) {\n return sequencer(colors.maps[map], str);\n };\n })(map);\n}\n\ndefineProps(colors, init());\n","module['exports'] = function runTheTrap(text, options) {\n var result = '';\n text = text || 'Run the trap, drop the bass';\n text = text.split('');\n var trap = {\n a: ['\\u0040', '\\u0104', '\\u023a', '\\u0245', '\\u0394', '\\u039b', '\\u0414'],\n b: ['\\u00df', '\\u0181', '\\u0243', '\\u026e', '\\u03b2', '\\u0e3f'],\n c: ['\\u00a9', '\\u023b', '\\u03fe'],\n d: ['\\u00d0', '\\u018a', '\\u0500', '\\u0501', '\\u0502', '\\u0503'],\n e: ['\\u00cb', '\\u0115', '\\u018e', '\\u0258', '\\u03a3', '\\u03be', '\\u04bc',\n '\\u0a6c'],\n f: ['\\u04fa'],\n g: ['\\u0262'],\n h: ['\\u0126', '\\u0195', '\\u04a2', '\\u04ba', '\\u04c7', '\\u050a'],\n i: ['\\u0f0f'],\n j: ['\\u0134'],\n k: ['\\u0138', '\\u04a0', '\\u04c3', '\\u051e'],\n l: ['\\u0139'],\n m: ['\\u028d', '\\u04cd', '\\u04ce', '\\u0520', '\\u0521', '\\u0d69'],\n n: ['\\u00d1', '\\u014b', '\\u019d', '\\u0376', '\\u03a0', '\\u048a'],\n o: ['\\u00d8', '\\u00f5', '\\u00f8', '\\u01fe', '\\u0298', '\\u047a', '\\u05dd',\n '\\u06dd', '\\u0e4f'],\n p: ['\\u01f7', '\\u048e'],\n q: ['\\u09cd'],\n r: ['\\u00ae', '\\u01a6', '\\u0210', '\\u024c', '\\u0280', '\\u042f'],\n s: ['\\u00a7', '\\u03de', '\\u03df', '\\u03e8'],\n t: ['\\u0141', '\\u0166', '\\u0373'],\n u: ['\\u01b1', '\\u054d'],\n v: ['\\u05d8'],\n w: ['\\u0428', '\\u0460', '\\u047c', '\\u0d70'],\n x: ['\\u04b2', '\\u04fe', '\\u04fc', '\\u04fd'],\n y: ['\\u00a5', '\\u04b0', '\\u04cb'],\n z: ['\\u01b5', '\\u0240'],\n };\n text.forEach(function(c) {\n c = c.toLowerCase();\n var chars = trap[c] || [' '];\n var rand = Math.floor(Math.random() * chars.length);\n if (typeof trap[c] !== 'undefined') {\n result += trap[c][rand];\n } else {\n result += c;\n }\n });\n return result;\n};\n","// please no\nmodule['exports'] = function zalgo(text, options) {\n text = text || ' he is here ';\n var soul = {\n 'up': [\n '̍', '̎', '̄', '̅',\n '̿', '̑', '̆', '̐',\n '͒', '͗', '͑', '̇',\n '̈', '̊', '͂', '̓',\n '̈', '͊', '͋', '͌',\n '̃', '̂', '̌', '͐',\n '̀', '́', '̋', '̏',\n '̒', '̓', '̔', '̽',\n '̉', 'ͣ', 'ͤ', 'ͥ',\n 'ͦ', 'ͧ', 'ͨ', 'ͩ',\n 'ͪ', 'ͫ', 'ͬ', 'ͭ',\n 'ͮ', 'ͯ', '̾', '͛',\n '͆', '̚',\n ],\n 'down': [\n '̖', '̗', '̘', '̙',\n '̜', '̝', '̞', '̟',\n '̠', '̤', '̥', '̦',\n '̩', '̪', '̫', '̬',\n '̭', '̮', '̯', '̰',\n '̱', '̲', '̳', '̹',\n '̺', '̻', '̼', 'ͅ',\n '͇', '͈', '͉', '͍',\n '͎', '͓', '͔', '͕',\n '͖', '͙', '͚', '̣',\n ],\n 'mid': [\n '̕', '̛', '̀', '́',\n '͘', '̡', '̢', '̧',\n '̨', '̴', '̵', '̶',\n '͜', '͝', '͞',\n '͟', '͠', '͢', '̸',\n '̷', '͡', ' ҉',\n ],\n };\n var all = [].concat(soul.up, soul.down, soul.mid);\n\n function randomNumber(range) {\n var r = Math.floor(Math.random() * range);\n return r;\n }\n\n function isChar(character) {\n var bool = false;\n all.filter(function(i) {\n bool = (i === character);\n });\n return bool;\n }\n\n\n function heComes(text, options) {\n var result = '';\n var counts;\n var l;\n options = options || {};\n options['up'] =\n typeof options['up'] !== 'undefined' ? options['up'] : true;\n options['mid'] =\n typeof options['mid'] !== 'undefined' ? options['mid'] : true;\n options['down'] =\n typeof options['down'] !== 'undefined' ? options['down'] : true;\n options['size'] =\n typeof options['size'] !== 'undefined' ? options['size'] : 'maxi';\n text = text.split('');\n for (l in text) {\n if (isChar(l)) {\n continue;\n }\n result = result + text[l];\n counts = {'up': 0, 'down': 0, 'mid': 0};\n switch (options.size) {\n case 'mini':\n counts.up = randomNumber(8);\n counts.mid = randomNumber(2);\n counts.down = randomNumber(8);\n break;\n case 'maxi':\n counts.up = randomNumber(16) + 3;\n counts.mid = randomNumber(4) + 1;\n counts.down = randomNumber(64) + 3;\n break;\n default:\n counts.up = randomNumber(8) + 1;\n counts.mid = randomNumber(6) / 2;\n counts.down = randomNumber(8) + 1;\n break;\n }\n\n var arr = ['up', 'mid', 'down'];\n for (var d in arr) {\n var index = arr[d];\n for (var i = 0; i <= counts[index]; i++) {\n if (options[index]) {\n result = result + soul[index][randomNumber(soul[index].length)];\n }\n }\n }\n }\n return result;\n }\n // don't summon him\n return heComes(text, options);\n};\n\n","module['exports'] = function(colors) {\n return function(letter, i, exploded) {\n if (letter === ' ') return letter;\n switch (i%3) {\n case 0: return colors.red(letter);\n case 1: return colors.white(letter);\n case 2: return colors.blue(letter);\n }\n };\n};\n","module['exports'] = function(colors) {\n // RoY G BiV\n var rainbowColors = ['red', 'yellow', 'green', 'blue', 'magenta'];\n return function(letter, i, exploded) {\n if (letter === ' ') {\n return letter;\n } else {\n return colors[rainbowColors[i++ % rainbowColors.length]](letter);\n }\n };\n};\n\n","module['exports'] = function(colors) {\n var available = ['underline', 'inverse', 'grey', 'yellow', 'red', 'green',\n 'blue', 'white', 'cyan', 'magenta', 'brightYellow', 'brightRed',\n 'brightGreen', 'brightBlue', 'brightWhite', 'brightCyan', 'brightMagenta'];\n return function(letter, i, exploded) {\n return letter === ' ' ? letter :\n colors[\n available[Math.round(Math.random() * (available.length - 2))]\n ](letter);\n };\n};\n","module['exports'] = function(colors) {\n return function(letter, i, exploded) {\n return i % 2 === 0 ? letter : colors.inverse(letter);\n };\n};\n","/*\nThe MIT License (MIT)\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n\nvar styles = {};\nmodule['exports'] = styles;\n\nvar codes = {\n reset: [0, 0],\n\n bold: [1, 22],\n dim: [2, 22],\n italic: [3, 23],\n underline: [4, 24],\n inverse: [7, 27],\n hidden: [8, 28],\n strikethrough: [9, 29],\n\n black: [30, 39],\n red: [31, 39],\n green: [32, 39],\n yellow: [33, 39],\n blue: [34, 39],\n magenta: [35, 39],\n cyan: [36, 39],\n white: [37, 39],\n gray: [90, 39],\n grey: [90, 39],\n\n brightRed: [91, 39],\n brightGreen: [92, 39],\n brightYellow: [93, 39],\n brightBlue: [94, 39],\n brightMagenta: [95, 39],\n brightCyan: [96, 39],\n brightWhite: [97, 39],\n\n bgBlack: [40, 49],\n bgRed: [41, 49],\n bgGreen: [42, 49],\n bgYellow: [43, 49],\n bgBlue: [44, 49],\n bgMagenta: [45, 49],\n bgCyan: [46, 49],\n bgWhite: [47, 49],\n bgGray: [100, 49],\n bgGrey: [100, 49],\n\n bgBrightRed: [101, 49],\n bgBrightGreen: [102, 49],\n bgBrightYellow: [103, 49],\n bgBrightBlue: [104, 49],\n bgBrightMagenta: [105, 49],\n bgBrightCyan: [106, 49],\n bgBrightWhite: [107, 49],\n\n // legacy styles for colors pre v1.0.0\n blackBG: [40, 49],\n redBG: [41, 49],\n greenBG: [42, 49],\n yellowBG: [43, 49],\n blueBG: [44, 49],\n magentaBG: [45, 49],\n cyanBG: [46, 49],\n whiteBG: [47, 49],\n\n};\n\nObject.keys(codes).forEach(function(key) {\n var val = codes[key];\n var style = styles[key] = [];\n style.open = '\\u001b[' + val[0] + 'm';\n style.close = '\\u001b[' + val[1] + 'm';\n});\n","/*\nMIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\n\n'use strict';\n\nmodule.exports = function(flag, argv) {\n argv = argv || process.argv;\n\n var terminatorPos = argv.indexOf('--');\n var prefix = /^-{1,2}/.test(flag) ? '' : '--';\n var pos = argv.indexOf(prefix + flag);\n\n return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);\n};\n","/*\nThe MIT License (MIT)\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n\n'use strict';\n\nvar os = require('os');\nvar hasFlag = require('./has-flag.js');\n\nvar env = process.env;\n\nvar forceColor = void 0;\nif (hasFlag('no-color') || hasFlag('no-colors') || hasFlag('color=false')) {\n forceColor = false;\n} else if (hasFlag('color') || hasFlag('colors') || hasFlag('color=true')\n || hasFlag('color=always')) {\n forceColor = true;\n}\nif ('FORCE_COLOR' in env) {\n forceColor = env.FORCE_COLOR.length === 0\n || parseInt(env.FORCE_COLOR, 10) !== 0;\n}\n\nfunction translateLevel(level) {\n if (level === 0) {\n return false;\n }\n\n return {\n level: level,\n hasBasic: true,\n has256: level >= 2,\n has16m: level >= 3,\n };\n}\n\nfunction supportsColor(stream) {\n if (forceColor === false) {\n return 0;\n }\n\n if (hasFlag('color=16m') || hasFlag('color=full')\n || hasFlag('color=truecolor')) {\n return 3;\n }\n\n if (hasFlag('color=256')) {\n return 2;\n }\n\n if (stream && !stream.isTTY && forceColor !== true) {\n return 0;\n }\n\n var min = forceColor ? 1 : 0;\n\n if (process.platform === 'win32') {\n // Node.js 7.5.0 is the first version of Node.js to include a patch to\n // libuv that enables 256 color output on Windows. Anything earlier and it\n // won't work. However, here we target Node.js 8 at minimum as it is an LTS\n // release, and Node.js 7 is not. Windows 10 build 10586 is the first\n // Windows release that supports 256 colors. Windows 10 build 14931 is the\n // first release that supports 16m/TrueColor.\n var osRelease = os.release().split('.');\n if (Number(process.versions.node.split('.')[0]) >= 8\n && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {\n return Number(osRelease[2]) >= 14931 ? 3 : 2;\n }\n\n return 1;\n }\n\n if ('CI' in env) {\n if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(function(sign) {\n return sign in env;\n }) || env.CI_NAME === 'codeship') {\n return 1;\n }\n\n return min;\n }\n\n if ('TEAMCITY_VERSION' in env) {\n return (/^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0\n );\n }\n\n if ('TERM_PROGRAM' in env) {\n var version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n switch (env.TERM_PROGRAM) {\n case 'iTerm.app':\n return version >= 3 ? 3 : 2;\n case 'Hyper':\n return 3;\n case 'Apple_Terminal':\n return 2;\n // No default\n }\n }\n\n if (/-256(color)?$/i.test(env.TERM)) {\n return 2;\n }\n\n if (/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n return 1;\n }\n\n if ('COLORTERM' in env) {\n return 1;\n }\n\n if (env.TERM === 'dumb') {\n return min;\n }\n\n return min;\n}\n\nfunction getSupportLevel(stream) {\n var level = supportsColor(stream);\n return translateLevel(level);\n}\n\nmodule.exports = {\n supportsColor: getSupportLevel,\n stdout: getSupportLevel(process.stdout),\n stderr: getSupportLevel(process.stderr),\n};\n","//\n// Remark: Requiring this file will use the \"safe\" colors API,\n// which will not touch String.prototype.\n//\n// var colors = require('colors/safe');\n// colors.red(\"foo\")\n//\n//\nvar colors = require('./lib/colors');\nmodule['exports'] = colors;\n","'use strict';\n\nvar color = require('color')\n , hex = require('text-hex');\n\n/**\n * Generate a color for a given name. But be reasonably smart about it by\n * understanding name spaces and coloring each namespace a bit lighter so they\n * still have the same base color as the root.\n *\n * @param {string} namespace The namespace\n * @param {string} [delimiter] The delimiter\n * @returns {string} color\n */\nmodule.exports = function colorspace(namespace, delimiter) {\n var split = namespace.split(delimiter || ':');\n var base = hex(split[0]);\n\n if (!split.length) return base;\n\n for (var i = 0, l = split.length - 1; i < l; i++) {\n base = color(base)\n .mix(color(hex(split[i + 1])))\n .saturate(1)\n .hex();\n }\n\n return base;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeRules = void 0;\nvar boolbase_1 = require(\"boolbase\");\n/**\n * All reserved characters in a regex, used for escaping.\n *\n * Taken from XRegExp, (c) 2007-2020 Steven Levithan under the MIT license\n * https://github.com/slevithan/xregexp/blob/95eeebeb8fac8754d54eafe2b4743661ac1cf028/src/xregexp.js#L794\n */\nvar reChars = /[-[\\]{}()*+?.,\\\\^$|#\\s]/g;\nfunction escapeRegex(value) {\n return value.replace(reChars, \"\\\\$&\");\n}\n/**\n * Attributes that are case-insensitive in HTML.\n *\n * @private\n * @see https://html.spec.whatwg.org/multipage/semantics-other.html#case-sensitivity-of-selectors\n */\nvar caseInsensitiveAttributes = new Set([\n \"accept\",\n \"accept-charset\",\n \"align\",\n \"alink\",\n \"axis\",\n \"bgcolor\",\n \"charset\",\n \"checked\",\n \"clear\",\n \"codetype\",\n \"color\",\n \"compact\",\n \"declare\",\n \"defer\",\n \"dir\",\n \"direction\",\n \"disabled\",\n \"enctype\",\n \"face\",\n \"frame\",\n \"hreflang\",\n \"http-equiv\",\n \"lang\",\n \"language\",\n \"link\",\n \"media\",\n \"method\",\n \"multiple\",\n \"nohref\",\n \"noresize\",\n \"noshade\",\n \"nowrap\",\n \"readonly\",\n \"rel\",\n \"rev\",\n \"rules\",\n \"scope\",\n \"scrolling\",\n \"selected\",\n \"shape\",\n \"target\",\n \"text\",\n \"type\",\n \"valign\",\n \"valuetype\",\n \"vlink\",\n]);\nfunction shouldIgnoreCase(selector, options) {\n return typeof selector.ignoreCase === \"boolean\"\n ? selector.ignoreCase\n : selector.ignoreCase === \"quirks\"\n ? !!options.quirksMode\n : !options.xmlMode && caseInsensitiveAttributes.has(selector.name);\n}\n/**\n * Attribute selectors\n */\nexports.attributeRules = {\n equals: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length === value.length &&\n attr.toLowerCase() === value &&\n next(elem));\n };\n }\n return function (elem) {\n return adapter.getAttributeValue(elem, name) === value && next(elem);\n };\n },\n hyphen: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n var len = value.length;\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function hyphenIC(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n (attr.length === len || attr.charAt(len) === \"-\") &&\n attr.substr(0, len).toLowerCase() === value &&\n next(elem));\n };\n }\n return function hyphen(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n (attr.length === len || attr.charAt(len) === \"-\") &&\n attr.substr(0, len) === value &&\n next(elem));\n };\n },\n element: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name, value = data.value;\n if (/\\s/.test(value)) {\n return boolbase_1.falseFunc;\n }\n var regex = new RegExp(\"(?:^|\\\\s)\".concat(escapeRegex(value), \"(?:$|\\\\s)\"), shouldIgnoreCase(data, options) ? \"i\" : \"\");\n return function element(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length >= value.length &&\n regex.test(attr) &&\n next(elem));\n };\n },\n exists: function (next, _a, _b) {\n var name = _a.name;\n var adapter = _b.adapter;\n return function (elem) { return adapter.hasAttrib(elem, name) && next(elem); };\n },\n start: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n var len = value.length;\n if (len === 0) {\n return boolbase_1.falseFunc;\n }\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length >= len &&\n attr.substr(0, len).toLowerCase() === value &&\n next(elem));\n };\n }\n return function (elem) {\n var _a;\n return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.startsWith(value)) &&\n next(elem);\n };\n },\n end: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n var len = -value.length;\n if (len === 0) {\n return boolbase_1.falseFunc;\n }\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var _a;\n return ((_a = adapter\n .getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.substr(len).toLowerCase()) === value && next(elem);\n };\n }\n return function (elem) {\n var _a;\n return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.endsWith(value)) &&\n next(elem);\n };\n },\n any: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name, value = data.value;\n if (value === \"\") {\n return boolbase_1.falseFunc;\n }\n if (shouldIgnoreCase(data, options)) {\n var regex_1 = new RegExp(escapeRegex(value), \"i\");\n return function anyIC(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length >= value.length &&\n regex_1.test(attr) &&\n next(elem));\n };\n }\n return function (elem) {\n var _a;\n return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.includes(value)) &&\n next(elem);\n };\n },\n not: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n if (value === \"\") {\n return function (elem) {\n return !!adapter.getAttributeValue(elem, name) && next(elem);\n };\n }\n else if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return ((attr == null ||\n attr.length !== value.length ||\n attr.toLowerCase() !== value) &&\n next(elem));\n };\n }\n return function (elem) {\n return adapter.getAttributeValue(elem, name) !== value && next(elem);\n };\n },\n};\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compileToken = exports.compileUnsafe = exports.compile = void 0;\nvar css_what_1 = require(\"css-what\");\nvar boolbase_1 = require(\"boolbase\");\nvar sort_1 = __importDefault(require(\"./sort\"));\nvar procedure_1 = require(\"./procedure\");\nvar general_1 = require(\"./general\");\nvar subselects_1 = require(\"./pseudo-selectors/subselects\");\n/**\n * Compiles a selector to an executable function.\n *\n * @param selector Selector to compile.\n * @param options Compilation options.\n * @param context Optional context for the selector.\n */\nfunction compile(selector, options, context) {\n var next = compileUnsafe(selector, options, context);\n return (0, subselects_1.ensureIsTag)(next, options.adapter);\n}\nexports.compile = compile;\nfunction compileUnsafe(selector, options, context) {\n var token = typeof selector === \"string\" ? (0, css_what_1.parse)(selector) : selector;\n return compileToken(token, options, context);\n}\nexports.compileUnsafe = compileUnsafe;\nfunction includesScopePseudo(t) {\n return (t.type === \"pseudo\" &&\n (t.name === \"scope\" ||\n (Array.isArray(t.data) &&\n t.data.some(function (data) { return data.some(includesScopePseudo); }))));\n}\nvar DESCENDANT_TOKEN = { type: css_what_1.SelectorType.Descendant };\nvar FLEXIBLE_DESCENDANT_TOKEN = {\n type: \"_flexibleDescendant\",\n};\nvar SCOPE_TOKEN = {\n type: css_what_1.SelectorType.Pseudo,\n name: \"scope\",\n data: null,\n};\n/*\n * CSS 4 Spec (Draft): 3.3.1. Absolutizing a Scope-relative Selector\n * http://www.w3.org/TR/selectors4/#absolutizing\n */\nfunction absolutize(token, _a, context) {\n var adapter = _a.adapter;\n // TODO Use better check if the context is a document\n var hasContext = !!(context === null || context === void 0 ? void 0 : context.every(function (e) {\n var parent = adapter.isTag(e) && adapter.getParent(e);\n return e === subselects_1.PLACEHOLDER_ELEMENT || (parent && adapter.isTag(parent));\n }));\n for (var _i = 0, token_1 = token; _i < token_1.length; _i++) {\n var t = token_1[_i];\n if (t.length > 0 && (0, procedure_1.isTraversal)(t[0]) && t[0].type !== \"descendant\") {\n // Don't continue in else branch\n }\n else if (hasContext && !t.some(includesScopePseudo)) {\n t.unshift(DESCENDANT_TOKEN);\n }\n else {\n continue;\n }\n t.unshift(SCOPE_TOKEN);\n }\n}\nfunction compileToken(token, options, context) {\n var _a;\n token = token.filter(function (t) { return t.length > 0; });\n token.forEach(sort_1.default);\n context = (_a = options.context) !== null && _a !== void 0 ? _a : context;\n var isArrayContext = Array.isArray(context);\n var finalContext = context && (Array.isArray(context) ? context : [context]);\n absolutize(token, options, finalContext);\n var shouldTestNextSiblings = false;\n var query = token\n .map(function (rules) {\n if (rules.length >= 2) {\n var first = rules[0], second = rules[1];\n if (first.type !== \"pseudo\" || first.name !== \"scope\") {\n // Ignore\n }\n else if (isArrayContext && second.type === \"descendant\") {\n rules[1] = FLEXIBLE_DESCENDANT_TOKEN;\n }\n else if (second.type === \"adjacent\" ||\n second.type === \"sibling\") {\n shouldTestNextSiblings = true;\n }\n }\n return compileRules(rules, options, finalContext);\n })\n .reduce(reduceRules, boolbase_1.falseFunc);\n query.shouldTestNextSiblings = shouldTestNextSiblings;\n return query;\n}\nexports.compileToken = compileToken;\nfunction compileRules(rules, options, context) {\n var _a;\n return rules.reduce(function (previous, rule) {\n return previous === boolbase_1.falseFunc\n ? boolbase_1.falseFunc\n : (0, general_1.compileGeneralSelector)(previous, rule, options, context, compileToken);\n }, (_a = options.rootFunc) !== null && _a !== void 0 ? _a : boolbase_1.trueFunc);\n}\nfunction reduceRules(a, b) {\n if (b === boolbase_1.falseFunc || a === boolbase_1.trueFunc) {\n return a;\n }\n if (a === boolbase_1.falseFunc || b === boolbase_1.trueFunc) {\n return b;\n }\n return function combine(elem) {\n return a(elem) || b(elem);\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compileGeneralSelector = void 0;\nvar attributes_1 = require(\"./attributes\");\nvar pseudo_selectors_1 = require(\"./pseudo-selectors\");\nvar css_what_1 = require(\"css-what\");\n/*\n * All available rules\n */\nfunction compileGeneralSelector(next, selector, options, context, compileToken) {\n var adapter = options.adapter, equals = options.equals;\n switch (selector.type) {\n case css_what_1.SelectorType.PseudoElement: {\n throw new Error(\"Pseudo-elements are not supported by css-select\");\n }\n case css_what_1.SelectorType.ColumnCombinator: {\n throw new Error(\"Column combinators are not yet supported by css-select\");\n }\n case css_what_1.SelectorType.Attribute: {\n if (selector.namespace != null) {\n throw new Error(\"Namespaced attributes are not yet supported by css-select\");\n }\n if (!options.xmlMode || options.lowerCaseAttributeNames) {\n selector.name = selector.name.toLowerCase();\n }\n return attributes_1.attributeRules[selector.action](next, selector, options);\n }\n case css_what_1.SelectorType.Pseudo: {\n return (0, pseudo_selectors_1.compilePseudoSelector)(next, selector, options, context, compileToken);\n }\n // Tags\n case css_what_1.SelectorType.Tag: {\n if (selector.namespace != null) {\n throw new Error(\"Namespaced tag names are not yet supported by css-select\");\n }\n var name_1 = selector.name;\n if (!options.xmlMode || options.lowerCaseTags) {\n name_1 = name_1.toLowerCase();\n }\n return function tag(elem) {\n return adapter.getName(elem) === name_1 && next(elem);\n };\n }\n // Traversal\n case css_what_1.SelectorType.Descendant: {\n if (options.cacheResults === false ||\n typeof WeakSet === \"undefined\") {\n return function descendant(elem) {\n var current = elem;\n while ((current = adapter.getParent(current))) {\n if (adapter.isTag(current) && next(current)) {\n return true;\n }\n }\n return false;\n };\n }\n // @ts-expect-error `ElementNode` is not extending object\n var isFalseCache_1 = new WeakSet();\n return function cachedDescendant(elem) {\n var current = elem;\n while ((current = adapter.getParent(current))) {\n if (!isFalseCache_1.has(current)) {\n if (adapter.isTag(current) && next(current)) {\n return true;\n }\n isFalseCache_1.add(current);\n }\n }\n return false;\n };\n }\n case \"_flexibleDescendant\": {\n // Include element itself, only used while querying an array\n return function flexibleDescendant(elem) {\n var current = elem;\n do {\n if (adapter.isTag(current) && next(current))\n return true;\n } while ((current = adapter.getParent(current)));\n return false;\n };\n }\n case css_what_1.SelectorType.Parent: {\n return function parent(elem) {\n return adapter\n .getChildren(elem)\n .some(function (elem) { return adapter.isTag(elem) && next(elem); });\n };\n }\n case css_what_1.SelectorType.Child: {\n return function child(elem) {\n var parent = adapter.getParent(elem);\n return parent != null && adapter.isTag(parent) && next(parent);\n };\n }\n case css_what_1.SelectorType.Sibling: {\n return function sibling(elem) {\n var siblings = adapter.getSiblings(elem);\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling) && next(currentSibling)) {\n return true;\n }\n }\n return false;\n };\n }\n case css_what_1.SelectorType.Adjacent: {\n if (adapter.prevElementSibling) {\n return function adjacent(elem) {\n var previous = adapter.prevElementSibling(elem);\n return previous != null && next(previous);\n };\n }\n return function adjacent(elem) {\n var siblings = adapter.getSiblings(elem);\n var lastElement;\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling)) {\n lastElement = currentSibling;\n }\n }\n return !!lastElement && next(lastElement);\n };\n }\n case css_what_1.SelectorType.Universal: {\n if (selector.namespace != null && selector.namespace !== \"*\") {\n throw new Error(\"Namespaced universal selectors are not yet supported by css-select\");\n }\n return next;\n }\n }\n}\nexports.compileGeneralSelector = compileGeneralSelector;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.aliases = exports.pseudos = exports.filters = exports.is = exports.selectOne = exports.selectAll = exports.prepareContext = exports._compileToken = exports._compileUnsafe = exports.compile = void 0;\nvar DomUtils = __importStar(require(\"domutils\"));\nvar boolbase_1 = require(\"boolbase\");\nvar compile_1 = require(\"./compile\");\nvar subselects_1 = require(\"./pseudo-selectors/subselects\");\nvar defaultEquals = function (a, b) { return a === b; };\nvar defaultOptions = {\n adapter: DomUtils,\n equals: defaultEquals,\n};\nfunction convertOptionFormats(options) {\n var _a, _b, _c, _d;\n /*\n * We force one format of options to the other one.\n */\n // @ts-expect-error Default options may have incompatible `Node` / `ElementNode`.\n var opts = options !== null && options !== void 0 ? options : defaultOptions;\n // @ts-expect-error Same as above.\n (_a = opts.adapter) !== null && _a !== void 0 ? _a : (opts.adapter = DomUtils);\n // @ts-expect-error `equals` does not exist on `Options`\n (_b = opts.equals) !== null && _b !== void 0 ? _b : (opts.equals = (_d = (_c = opts.adapter) === null || _c === void 0 ? void 0 : _c.equals) !== null && _d !== void 0 ? _d : defaultEquals);\n return opts;\n}\nfunction wrapCompile(func) {\n return function addAdapter(selector, options, context) {\n var opts = convertOptionFormats(options);\n return func(selector, opts, context);\n };\n}\n/**\n * Compiles the query, returns a function.\n */\nexports.compile = wrapCompile(compile_1.compile);\nexports._compileUnsafe = wrapCompile(compile_1.compileUnsafe);\nexports._compileToken = wrapCompile(compile_1.compileToken);\nfunction getSelectorFunc(searchFunc) {\n return function select(query, elements, options) {\n var opts = convertOptionFormats(options);\n if (typeof query !== \"function\") {\n query = (0, compile_1.compileUnsafe)(query, opts, elements);\n }\n var filteredElements = prepareContext(elements, opts.adapter, query.shouldTestNextSiblings);\n return searchFunc(query, filteredElements, opts);\n };\n}\nfunction prepareContext(elems, adapter, shouldTestNextSiblings) {\n if (shouldTestNextSiblings === void 0) { shouldTestNextSiblings = false; }\n /*\n * Add siblings if the query requires them.\n * See https://github.com/fb55/css-select/pull/43#issuecomment-225414692\n */\n if (shouldTestNextSiblings) {\n elems = appendNextSiblings(elems, adapter);\n }\n return Array.isArray(elems)\n ? adapter.removeSubsets(elems)\n : adapter.getChildren(elems);\n}\nexports.prepareContext = prepareContext;\nfunction appendNextSiblings(elem, adapter) {\n // Order matters because jQuery seems to check the children before the siblings\n var elems = Array.isArray(elem) ? elem.slice(0) : [elem];\n var elemsLength = elems.length;\n for (var i = 0; i < elemsLength; i++) {\n var nextSiblings = (0, subselects_1.getNextSiblings)(elems[i], adapter);\n elems.push.apply(elems, nextSiblings);\n }\n return elems;\n}\n/**\n * @template Node The generic Node type for the DOM adapter being used.\n * @template ElementNode The Node type for elements for the DOM adapter being used.\n * @param elems Elements to query. If it is an element, its children will be queried..\n * @param query can be either a CSS selector string or a compiled query function.\n * @param [options] options for querying the document.\n * @see compile for supported selector queries.\n * @returns All matching elements.\n *\n */\nexports.selectAll = getSelectorFunc(function (query, elems, options) {\n return query === boolbase_1.falseFunc || !elems || elems.length === 0\n ? []\n : options.adapter.findAll(query, elems);\n});\n/**\n * @template Node The generic Node type for the DOM adapter being used.\n * @template ElementNode The Node type for elements for the DOM adapter being used.\n * @param elems Elements to query. If it is an element, its children will be queried..\n * @param query can be either a CSS selector string or a compiled query function.\n * @param [options] options for querying the document.\n * @see compile for supported selector queries.\n * @returns the first match, or null if there was no match.\n */\nexports.selectOne = getSelectorFunc(function (query, elems, options) {\n return query === boolbase_1.falseFunc || !elems || elems.length === 0\n ? null\n : options.adapter.findOne(query, elems);\n});\n/**\n * Tests whether or not an element is matched by query.\n *\n * @template Node The generic Node type for the DOM adapter being used.\n * @template ElementNode The Node type for elements for the DOM adapter being used.\n * @param elem The element to test if it matches the query.\n * @param query can be either a CSS selector string or a compiled query function.\n * @param [options] options for querying the document.\n * @see compile for supported selector queries.\n * @returns\n */\nfunction is(elem, query, options) {\n var opts = convertOptionFormats(options);\n return (typeof query === \"function\" ? query : (0, compile_1.compile)(query, opts))(elem);\n}\nexports.is = is;\n/**\n * Alias for selectAll(query, elems, options).\n * @see [compile] for supported selector queries.\n */\nexports.default = exports.selectAll;\n// Export filters, pseudos and aliases to allow users to supply their own.\nvar pseudo_selectors_1 = require(\"./pseudo-selectors\");\nObject.defineProperty(exports, \"filters\", { enumerable: true, get: function () { return pseudo_selectors_1.filters; } });\nObject.defineProperty(exports, \"pseudos\", { enumerable: true, get: function () { return pseudo_selectors_1.pseudos; } });\nObject.defineProperty(exports, \"aliases\", { enumerable: true, get: function () { return pseudo_selectors_1.aliases; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isTraversal = exports.procedure = void 0;\nexports.procedure = {\n universal: 50,\n tag: 30,\n attribute: 1,\n pseudo: 0,\n \"pseudo-element\": 0,\n \"column-combinator\": -1,\n descendant: -1,\n child: -1,\n parent: -1,\n sibling: -1,\n adjacent: -1,\n _flexibleDescendant: -1,\n};\nfunction isTraversal(t) {\n return exports.procedure[t.type] < 0;\n}\nexports.isTraversal = isTraversal;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.aliases = void 0;\n/**\n * Aliases are pseudos that are expressed as selectors.\n */\nexports.aliases = {\n // Links\n \"any-link\": \":is(a, area, link)[href]\",\n link: \":any-link:not(:visited)\",\n // Forms\n // https://html.spec.whatwg.org/multipage/scripting.html#disabled-elements\n disabled: \":is(\\n :is(button, input, select, textarea, optgroup, option)[disabled],\\n optgroup[disabled] > option,\\n fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)\\n )\",\n enabled: \":not(:disabled)\",\n checked: \":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)\",\n required: \":is(input, select, textarea)[required]\",\n optional: \":is(input, select, textarea):not([required])\",\n // JQuery extensions\n // https://html.spec.whatwg.org/multipage/form-elements.html#concept-option-selectedness\n selected: \"option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)\",\n checkbox: \"[type=checkbox]\",\n file: \"[type=file]\",\n password: \"[type=password]\",\n radio: \"[type=radio]\",\n reset: \"[type=reset]\",\n image: \"[type=image]\",\n submit: \"[type=submit]\",\n parent: \":not(:empty)\",\n header: \":is(h1, h2, h3, h4, h5, h6)\",\n button: \":is(button, input[type=button])\",\n input: \":is(input, textarea, select, button)\",\n text: \"input:is(:not([type!='']), [type=text])\",\n};\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filters = void 0;\nvar nth_check_1 = __importDefault(require(\"nth-check\"));\nvar boolbase_1 = require(\"boolbase\");\nfunction getChildFunc(next, adapter) {\n return function (elem) {\n var parent = adapter.getParent(elem);\n return parent != null && adapter.isTag(parent) && next(elem);\n };\n}\nexports.filters = {\n contains: function (next, text, _a) {\n var adapter = _a.adapter;\n return function contains(elem) {\n return next(elem) && adapter.getText(elem).includes(text);\n };\n },\n icontains: function (next, text, _a) {\n var adapter = _a.adapter;\n var itext = text.toLowerCase();\n return function icontains(elem) {\n return (next(elem) &&\n adapter.getText(elem).toLowerCase().includes(itext));\n };\n },\n // Location specific methods\n \"nth-child\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.falseFunc)\n return boolbase_1.falseFunc;\n if (func === boolbase_1.trueFunc)\n return getChildFunc(next, adapter);\n return function nthChild(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = 0; i < siblings.length; i++) {\n if (equals(elem, siblings[i]))\n break;\n if (adapter.isTag(siblings[i])) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n \"nth-last-child\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.falseFunc)\n return boolbase_1.falseFunc;\n if (func === boolbase_1.trueFunc)\n return getChildFunc(next, adapter);\n return function nthLastChild(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = siblings.length - 1; i >= 0; i--) {\n if (equals(elem, siblings[i]))\n break;\n if (adapter.isTag(siblings[i])) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n \"nth-of-type\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.falseFunc)\n return boolbase_1.falseFunc;\n if (func === boolbase_1.trueFunc)\n return getChildFunc(next, adapter);\n return function nthOfType(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === adapter.getName(elem)) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n \"nth-last-of-type\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.falseFunc)\n return boolbase_1.falseFunc;\n if (func === boolbase_1.trueFunc)\n return getChildFunc(next, adapter);\n return function nthLastOfType(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = siblings.length - 1; i >= 0; i--) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === adapter.getName(elem)) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n // TODO determine the actual root element\n root: function (next, _rule, _a) {\n var adapter = _a.adapter;\n return function (elem) {\n var parent = adapter.getParent(elem);\n return (parent == null || !adapter.isTag(parent)) && next(elem);\n };\n },\n scope: function (next, rule, options, context) {\n var equals = options.equals;\n if (!context || context.length === 0) {\n // Equivalent to :root\n return exports.filters.root(next, rule, options);\n }\n if (context.length === 1) {\n // NOTE: can't be unpacked, as :has uses this for side-effects\n return function (elem) { return equals(context[0], elem) && next(elem); };\n }\n return function (elem) { return context.includes(elem) && next(elem); };\n },\n hover: dynamicStatePseudo(\"isHovered\"),\n visited: dynamicStatePseudo(\"isVisited\"),\n active: dynamicStatePseudo(\"isActive\"),\n};\n/**\n * Dynamic state pseudos. These depend on optional Adapter methods.\n *\n * @param name The name of the adapter method to call.\n * @returns Pseudo for the `filters` object.\n */\nfunction dynamicStatePseudo(name) {\n return function dynamicPseudo(next, _rule, _a) {\n var adapter = _a.adapter;\n var func = adapter[name];\n if (typeof func !== \"function\") {\n return boolbase_1.falseFunc;\n }\n return function active(elem) {\n return func(elem) && next(elem);\n };\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compilePseudoSelector = exports.aliases = exports.pseudos = exports.filters = void 0;\n/*\n * Pseudo selectors\n *\n * Pseudo selectors are available in three forms:\n *\n * 1. Filters are called when the selector is compiled and return a function\n * that has to return either false, or the results of `next()`.\n * 2. Pseudos are called on execution. They have to return a boolean.\n * 3. Subselects work like filters, but have an embedded selector that will be run separately.\n *\n * Filters are great if you want to do some pre-processing, or change the call order\n * of `next()` and your code.\n * Pseudos should be used to implement simple checks.\n */\nvar boolbase_1 = require(\"boolbase\");\nvar css_what_1 = require(\"css-what\");\nvar filters_1 = require(\"./filters\");\nObject.defineProperty(exports, \"filters\", { enumerable: true, get: function () { return filters_1.filters; } });\nvar pseudos_1 = require(\"./pseudos\");\nObject.defineProperty(exports, \"pseudos\", { enumerable: true, get: function () { return pseudos_1.pseudos; } });\nvar aliases_1 = require(\"./aliases\");\nObject.defineProperty(exports, \"aliases\", { enumerable: true, get: function () { return aliases_1.aliases; } });\nvar subselects_1 = require(\"./subselects\");\nfunction compilePseudoSelector(next, selector, options, context, compileToken) {\n var name = selector.name, data = selector.data;\n if (Array.isArray(data)) {\n return subselects_1.subselects[name](next, data, options, context, compileToken);\n }\n if (name in aliases_1.aliases) {\n if (data != null) {\n throw new Error(\"Pseudo \".concat(name, \" doesn't have any arguments\"));\n }\n // The alias has to be parsed here, to make sure options are respected.\n var alias = (0, css_what_1.parse)(aliases_1.aliases[name]);\n return subselects_1.subselects.is(next, alias, options, context, compileToken);\n }\n if (name in filters_1.filters) {\n return filters_1.filters[name](next, data, options, context);\n }\n if (name in pseudos_1.pseudos) {\n var pseudo_1 = pseudos_1.pseudos[name];\n (0, pseudos_1.verifyPseudoArgs)(pseudo_1, name, data);\n return pseudo_1 === boolbase_1.falseFunc\n ? boolbase_1.falseFunc\n : next === boolbase_1.trueFunc\n ? function (elem) { return pseudo_1(elem, options, data); }\n : function (elem) { return pseudo_1(elem, options, data) && next(elem); };\n }\n throw new Error(\"unmatched pseudo-class :\".concat(name));\n}\nexports.compilePseudoSelector = compilePseudoSelector;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.verifyPseudoArgs = exports.pseudos = void 0;\n// While filters are precompiled, pseudos get called when they are needed\nexports.pseudos = {\n empty: function (elem, _a) {\n var adapter = _a.adapter;\n return !adapter.getChildren(elem).some(function (elem) {\n // FIXME: `getText` call is potentially expensive.\n return adapter.isTag(elem) || adapter.getText(elem) !== \"\";\n });\n },\n \"first-child\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var firstChild = adapter\n .getSiblings(elem)\n .find(function (elem) { return adapter.isTag(elem); });\n return firstChild != null && equals(elem, firstChild);\n },\n \"last-child\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var siblings = adapter.getSiblings(elem);\n for (var i = siblings.length - 1; i >= 0; i--) {\n if (equals(elem, siblings[i]))\n return true;\n if (adapter.isTag(siblings[i]))\n break;\n }\n return false;\n },\n \"first-of-type\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var siblings = adapter.getSiblings(elem);\n var elemName = adapter.getName(elem);\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n return true;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === elemName) {\n break;\n }\n }\n return false;\n },\n \"last-of-type\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var siblings = adapter.getSiblings(elem);\n var elemName = adapter.getName(elem);\n for (var i = siblings.length - 1; i >= 0; i--) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n return true;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === elemName) {\n break;\n }\n }\n return false;\n },\n \"only-of-type\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var elemName = adapter.getName(elem);\n return adapter\n .getSiblings(elem)\n .every(function (sibling) {\n return equals(elem, sibling) ||\n !adapter.isTag(sibling) ||\n adapter.getName(sibling) !== elemName;\n });\n },\n \"only-child\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n return adapter\n .getSiblings(elem)\n .every(function (sibling) { return equals(elem, sibling) || !adapter.isTag(sibling); });\n },\n};\nfunction verifyPseudoArgs(func, name, subselect) {\n if (subselect === null) {\n if (func.length > 2) {\n throw new Error(\"pseudo-selector :\".concat(name, \" requires an argument\"));\n }\n }\n else if (func.length === 2) {\n throw new Error(\"pseudo-selector :\".concat(name, \" doesn't have any arguments\"));\n }\n}\nexports.verifyPseudoArgs = verifyPseudoArgs;\n","\"use strict\";\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.subselects = exports.getNextSiblings = exports.ensureIsTag = exports.PLACEHOLDER_ELEMENT = void 0;\nvar boolbase_1 = require(\"boolbase\");\nvar procedure_1 = require(\"../procedure\");\n/** Used as a placeholder for :has. Will be replaced with the actual element. */\nexports.PLACEHOLDER_ELEMENT = {};\nfunction ensureIsTag(next, adapter) {\n if (next === boolbase_1.falseFunc)\n return boolbase_1.falseFunc;\n return function (elem) { return adapter.isTag(elem) && next(elem); };\n}\nexports.ensureIsTag = ensureIsTag;\nfunction getNextSiblings(elem, adapter) {\n var siblings = adapter.getSiblings(elem);\n if (siblings.length <= 1)\n return [];\n var elemIndex = siblings.indexOf(elem);\n if (elemIndex < 0 || elemIndex === siblings.length - 1)\n return [];\n return siblings.slice(elemIndex + 1).filter(adapter.isTag);\n}\nexports.getNextSiblings = getNextSiblings;\nvar is = function (next, token, options, context, compileToken) {\n var opts = {\n xmlMode: !!options.xmlMode,\n adapter: options.adapter,\n equals: options.equals,\n };\n var func = compileToken(token, opts, context);\n return function (elem) { return func(elem) && next(elem); };\n};\n/*\n * :not, :has, :is, :matches and :where have to compile selectors\n * doing this in src/pseudos.ts would lead to circular dependencies,\n * so we add them here\n */\nexports.subselects = {\n is: is,\n /**\n * `:matches` and `:where` are aliases for `:is`.\n */\n matches: is,\n where: is,\n not: function (next, token, options, context, compileToken) {\n var opts = {\n xmlMode: !!options.xmlMode,\n adapter: options.adapter,\n equals: options.equals,\n };\n var func = compileToken(token, opts, context);\n if (func === boolbase_1.falseFunc)\n return next;\n if (func === boolbase_1.trueFunc)\n return boolbase_1.falseFunc;\n return function not(elem) {\n return !func(elem) && next(elem);\n };\n },\n has: function (next, subselect, options, _context, compileToken) {\n var adapter = options.adapter;\n var opts = {\n xmlMode: !!options.xmlMode,\n adapter: adapter,\n equals: options.equals,\n };\n // @ts-expect-error Uses an array as a pointer to the current element (side effects)\n var context = subselect.some(function (s) {\n return s.some(procedure_1.isTraversal);\n })\n ? [exports.PLACEHOLDER_ELEMENT]\n : undefined;\n var compiled = compileToken(subselect, opts, context);\n if (compiled === boolbase_1.falseFunc)\n return boolbase_1.falseFunc;\n if (compiled === boolbase_1.trueFunc) {\n return function (elem) {\n return adapter.getChildren(elem).some(adapter.isTag) && next(elem);\n };\n }\n var hasElement = ensureIsTag(compiled, adapter);\n var _a = compiled.shouldTestNextSiblings, shouldTestNextSiblings = _a === void 0 ? false : _a;\n /*\n * `shouldTestNextSiblings` will only be true if the query starts with\n * a traversal (sibling or adjacent). That means we will always have a context.\n */\n if (context) {\n return function (elem) {\n context[0] = elem;\n var childs = adapter.getChildren(elem);\n var nextElements = shouldTestNextSiblings\n ? __spreadArray(__spreadArray([], childs, true), getNextSiblings(elem, adapter), true) : childs;\n return (next(elem) && adapter.existsOne(hasElement, nextElements));\n };\n }\n return function (elem) {\n return next(elem) &&\n adapter.existsOne(hasElement, adapter.getChildren(elem));\n };\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar css_what_1 = require(\"css-what\");\nvar procedure_1 = require(\"./procedure\");\nvar attributes = {\n exists: 10,\n equals: 8,\n not: 7,\n start: 6,\n end: 6,\n any: 5,\n hyphen: 4,\n element: 4,\n};\n/**\n * Sort the parts of the passed selector,\n * as there is potential for optimization\n * (some types of selectors are faster than others)\n *\n * @param arr Selector to sort\n */\nfunction sortByProcedure(arr) {\n var procs = arr.map(getProcedure);\n for (var i = 1; i < arr.length; i++) {\n var procNew = procs[i];\n if (procNew < 0)\n continue;\n for (var j = i - 1; j >= 0 && procNew < procs[j]; j--) {\n var token = arr[j + 1];\n arr[j + 1] = arr[j];\n arr[j] = token;\n procs[j + 1] = procs[j];\n procs[j] = procNew;\n }\n }\n}\nexports.default = sortByProcedure;\nfunction getProcedure(token) {\n var proc = procedure_1.procedure[token.type];\n if (token.type === css_what_1.SelectorType.Attribute) {\n proc = attributes[token.action];\n if (proc === attributes.equals && token.name === \"id\") {\n // Prefer ID selectors (eg. #ID)\n proc = 9;\n }\n if (token.ignoreCase) {\n /*\n * IgnoreCase adds some overhead, prefer \"normal\" token\n * this is a binary operation, to ensure it's still an int\n */\n proc >>= 1;\n }\n }\n else if (token.type === css_what_1.SelectorType.Pseudo) {\n if (!token.data) {\n proc = 3;\n }\n else if (token.name === \"has\" || token.name === \"contains\") {\n proc = 0; // Expensive in any case\n }\n else if (Array.isArray(token.data)) {\n // \"matches\" and \"not\"\n proc = 0;\n for (var i = 0; i < token.data.length; i++) {\n // TODO better handling of complex selectors\n if (token.data[i].length !== 1)\n continue;\n var cur = getProcedure(token.data[i][0]);\n // Avoid executing :has or :contains\n if (cur === 0) {\n proc = 0;\n break;\n }\n if (cur > proc)\n proc = cur;\n }\n if (token.data.length > 1 && proc > 0)\n proc -= 1;\n }\n else {\n proc = 1;\n }\n }\n return proc;\n}\n","export * from \"./types\";\nexport { isTraversal, parse } from \"./parse\";\nexport { stringify } from \"./stringify\";\n","import { SelectorType, AttributeAction, } from \"./types\";\nconst reName = /^[^\\\\#]?(?:\\\\(?:[\\da-f]{1,6}\\s?|.)|[\\w\\-\\u00b0-\\uFFFF])+/;\nconst reEscape = /\\\\([\\da-f]{1,6}\\s?|(\\s)|.)/gi;\nconst actionTypes = new Map([\n [126 /* Tilde */, AttributeAction.Element],\n [94 /* Circumflex */, AttributeAction.Start],\n [36 /* Dollar */, AttributeAction.End],\n [42 /* Asterisk */, AttributeAction.Any],\n [33 /* ExclamationMark */, AttributeAction.Not],\n [124 /* Pipe */, AttributeAction.Hyphen],\n]);\n// Pseudos, whose data property is parsed as well.\nconst unpackPseudos = new Set([\n \"has\",\n \"not\",\n \"matches\",\n \"is\",\n \"where\",\n \"host\",\n \"host-context\",\n]);\n/**\n * Checks whether a specific selector is a traversal.\n * This is useful eg. in swapping the order of elements that\n * are not traversals.\n *\n * @param selector Selector to check.\n */\nexport function isTraversal(selector) {\n switch (selector.type) {\n case SelectorType.Adjacent:\n case SelectorType.Child:\n case SelectorType.Descendant:\n case SelectorType.Parent:\n case SelectorType.Sibling:\n case SelectorType.ColumnCombinator:\n return true;\n default:\n return false;\n }\n}\nconst stripQuotesFromPseudos = new Set([\"contains\", \"icontains\"]);\n// Unescape function taken from https://github.com/jquery/sizzle/blob/master/src/sizzle.js#L152\nfunction funescape(_, escaped, escapedWhitespace) {\n const high = parseInt(escaped, 16) - 0x10000;\n // NaN means non-codepoint\n return high !== high || escapedWhitespace\n ? escaped\n : high < 0\n ? // BMP codepoint\n String.fromCharCode(high + 0x10000)\n : // Supplemental Plane codepoint (surrogate pair)\n String.fromCharCode((high >> 10) | 0xd800, (high & 0x3ff) | 0xdc00);\n}\nfunction unescapeCSS(str) {\n return str.replace(reEscape, funescape);\n}\nfunction isQuote(c) {\n return c === 39 /* SingleQuote */ || c === 34 /* DoubleQuote */;\n}\nfunction isWhitespace(c) {\n return (c === 32 /* Space */ ||\n c === 9 /* Tab */ ||\n c === 10 /* NewLine */ ||\n c === 12 /* FormFeed */ ||\n c === 13 /* CarriageReturn */);\n}\n/**\n * Parses `selector`, optionally with the passed `options`.\n *\n * @param selector Selector to parse.\n * @param options Options for parsing.\n * @returns Returns a two-dimensional array.\n * The first dimension represents selectors separated by commas (eg. `sub1, sub2`),\n * the second contains the relevant tokens for that selector.\n */\nexport function parse(selector) {\n const subselects = [];\n const endIndex = parseSelector(subselects, `${selector}`, 0);\n if (endIndex < selector.length) {\n throw new Error(`Unmatched selector: ${selector.slice(endIndex)}`);\n }\n return subselects;\n}\nfunction parseSelector(subselects, selector, selectorIndex) {\n let tokens = [];\n function getName(offset) {\n const match = selector.slice(selectorIndex + offset).match(reName);\n if (!match) {\n throw new Error(`Expected name, found ${selector.slice(selectorIndex)}`);\n }\n const [name] = match;\n selectorIndex += offset + name.length;\n return unescapeCSS(name);\n }\n function stripWhitespace(offset) {\n selectorIndex += offset;\n while (selectorIndex < selector.length &&\n isWhitespace(selector.charCodeAt(selectorIndex))) {\n selectorIndex++;\n }\n }\n function readValueWithParenthesis() {\n selectorIndex += 1;\n const start = selectorIndex;\n let counter = 1;\n for (; counter > 0 && selectorIndex < selector.length; selectorIndex++) {\n if (selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */ &&\n !isEscaped(selectorIndex)) {\n counter++;\n }\n else if (selector.charCodeAt(selectorIndex) ===\n 41 /* RightParenthesis */ &&\n !isEscaped(selectorIndex)) {\n counter--;\n }\n }\n if (counter) {\n throw new Error(\"Parenthesis not matched\");\n }\n return unescapeCSS(selector.slice(start, selectorIndex - 1));\n }\n function isEscaped(pos) {\n let slashCount = 0;\n while (selector.charCodeAt(--pos) === 92 /* BackSlash */)\n slashCount++;\n return (slashCount & 1) === 1;\n }\n function ensureNotTraversal() {\n if (tokens.length > 0 && isTraversal(tokens[tokens.length - 1])) {\n throw new Error(\"Did not expect successive traversals.\");\n }\n }\n function addTraversal(type) {\n if (tokens.length > 0 &&\n tokens[tokens.length - 1].type === SelectorType.Descendant) {\n tokens[tokens.length - 1].type = type;\n return;\n }\n ensureNotTraversal();\n tokens.push({ type });\n }\n function addSpecialAttribute(name, action) {\n tokens.push({\n type: SelectorType.Attribute,\n name,\n action,\n value: getName(1),\n namespace: null,\n ignoreCase: \"quirks\",\n });\n }\n /**\n * We have finished parsing the current part of the selector.\n *\n * Remove descendant tokens at the end if they exist,\n * and return the last index, so that parsing can be\n * picked up from here.\n */\n function finalizeSubselector() {\n if (tokens.length &&\n tokens[tokens.length - 1].type === SelectorType.Descendant) {\n tokens.pop();\n }\n if (tokens.length === 0) {\n throw new Error(\"Empty sub-selector\");\n }\n subselects.push(tokens);\n }\n stripWhitespace(0);\n if (selector.length === selectorIndex) {\n return selectorIndex;\n }\n loop: while (selectorIndex < selector.length) {\n const firstChar = selector.charCodeAt(selectorIndex);\n switch (firstChar) {\n // Whitespace\n case 32 /* Space */:\n case 9 /* Tab */:\n case 10 /* NewLine */:\n case 12 /* FormFeed */:\n case 13 /* CarriageReturn */: {\n if (tokens.length === 0 ||\n tokens[0].type !== SelectorType.Descendant) {\n ensureNotTraversal();\n tokens.push({ type: SelectorType.Descendant });\n }\n stripWhitespace(1);\n break;\n }\n // Traversals\n case 62 /* GreaterThan */: {\n addTraversal(SelectorType.Child);\n stripWhitespace(1);\n break;\n }\n case 60 /* LessThan */: {\n addTraversal(SelectorType.Parent);\n stripWhitespace(1);\n break;\n }\n case 126 /* Tilde */: {\n addTraversal(SelectorType.Sibling);\n stripWhitespace(1);\n break;\n }\n case 43 /* Plus */: {\n addTraversal(SelectorType.Adjacent);\n stripWhitespace(1);\n break;\n }\n // Special attribute selectors: .class, #id\n case 46 /* Period */: {\n addSpecialAttribute(\"class\", AttributeAction.Element);\n break;\n }\n case 35 /* Hash */: {\n addSpecialAttribute(\"id\", AttributeAction.Equals);\n break;\n }\n case 91 /* LeftSquareBracket */: {\n stripWhitespace(1);\n // Determine attribute name and namespace\n let name;\n let namespace = null;\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */) {\n // Equivalent to no namespace\n name = getName(1);\n }\n else if (selector.startsWith(\"*|\", selectorIndex)) {\n namespace = \"*\";\n name = getName(2);\n }\n else {\n name = getName(0);\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&\n selector.charCodeAt(selectorIndex + 1) !==\n 61 /* Equal */) {\n namespace = name;\n name = getName(1);\n }\n }\n stripWhitespace(0);\n // Determine comparison operation\n let action = AttributeAction.Exists;\n const possibleAction = actionTypes.get(selector.charCodeAt(selectorIndex));\n if (possibleAction) {\n action = possibleAction;\n if (selector.charCodeAt(selectorIndex + 1) !==\n 61 /* Equal */) {\n throw new Error(\"Expected `=`\");\n }\n stripWhitespace(2);\n }\n else if (selector.charCodeAt(selectorIndex) === 61 /* Equal */) {\n action = AttributeAction.Equals;\n stripWhitespace(1);\n }\n // Determine value\n let value = \"\";\n let ignoreCase = null;\n if (action !== \"exists\") {\n if (isQuote(selector.charCodeAt(selectorIndex))) {\n const quote = selector.charCodeAt(selectorIndex);\n let sectionEnd = selectorIndex + 1;\n while (sectionEnd < selector.length &&\n (selector.charCodeAt(sectionEnd) !== quote ||\n isEscaped(sectionEnd))) {\n sectionEnd += 1;\n }\n if (selector.charCodeAt(sectionEnd) !== quote) {\n throw new Error(\"Attribute value didn't end\");\n }\n value = unescapeCSS(selector.slice(selectorIndex + 1, sectionEnd));\n selectorIndex = sectionEnd + 1;\n }\n else {\n const valueStart = selectorIndex;\n while (selectorIndex < selector.length &&\n ((!isWhitespace(selector.charCodeAt(selectorIndex)) &&\n selector.charCodeAt(selectorIndex) !==\n 93 /* RightSquareBracket */) ||\n isEscaped(selectorIndex))) {\n selectorIndex += 1;\n }\n value = unescapeCSS(selector.slice(valueStart, selectorIndex));\n }\n stripWhitespace(0);\n // See if we have a force ignore flag\n const forceIgnore = selector.charCodeAt(selectorIndex) | 0x20;\n // If the forceIgnore flag is set (either `i` or `s`), use that value\n if (forceIgnore === 115 /* LowerS */) {\n ignoreCase = false;\n stripWhitespace(1);\n }\n else if (forceIgnore === 105 /* LowerI */) {\n ignoreCase = true;\n stripWhitespace(1);\n }\n }\n if (selector.charCodeAt(selectorIndex) !==\n 93 /* RightSquareBracket */) {\n throw new Error(\"Attribute selector didn't terminate\");\n }\n selectorIndex += 1;\n const attributeSelector = {\n type: SelectorType.Attribute,\n name,\n action,\n value,\n namespace,\n ignoreCase,\n };\n tokens.push(attributeSelector);\n break;\n }\n case 58 /* Colon */: {\n if (selector.charCodeAt(selectorIndex + 1) === 58 /* Colon */) {\n tokens.push({\n type: SelectorType.PseudoElement,\n name: getName(2).toLowerCase(),\n data: selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */\n ? readValueWithParenthesis()\n : null,\n });\n continue;\n }\n const name = getName(1).toLowerCase();\n let data = null;\n if (selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */) {\n if (unpackPseudos.has(name)) {\n if (isQuote(selector.charCodeAt(selectorIndex + 1))) {\n throw new Error(`Pseudo-selector ${name} cannot be quoted`);\n }\n data = [];\n selectorIndex = parseSelector(data, selector, selectorIndex + 1);\n if (selector.charCodeAt(selectorIndex) !==\n 41 /* RightParenthesis */) {\n throw new Error(`Missing closing parenthesis in :${name} (${selector})`);\n }\n selectorIndex += 1;\n }\n else {\n data = readValueWithParenthesis();\n if (stripQuotesFromPseudos.has(name)) {\n const quot = data.charCodeAt(0);\n if (quot === data.charCodeAt(data.length - 1) &&\n isQuote(quot)) {\n data = data.slice(1, -1);\n }\n }\n data = unescapeCSS(data);\n }\n }\n tokens.push({ type: SelectorType.Pseudo, name, data });\n break;\n }\n case 44 /* Comma */: {\n finalizeSubselector();\n tokens = [];\n stripWhitespace(1);\n break;\n }\n default: {\n if (selector.startsWith(\"/*\", selectorIndex)) {\n const endIndex = selector.indexOf(\"*/\", selectorIndex + 2);\n if (endIndex < 0) {\n throw new Error(\"Comment was not terminated\");\n }\n selectorIndex = endIndex + 2;\n // Remove leading whitespace\n if (tokens.length === 0) {\n stripWhitespace(0);\n }\n break;\n }\n let namespace = null;\n let name;\n if (firstChar === 42 /* Asterisk */) {\n selectorIndex += 1;\n name = \"*\";\n }\n else if (firstChar === 124 /* Pipe */) {\n name = \"\";\n if (selector.charCodeAt(selectorIndex + 1) === 124 /* Pipe */) {\n addTraversal(SelectorType.ColumnCombinator);\n stripWhitespace(2);\n break;\n }\n }\n else if (reName.test(selector.slice(selectorIndex))) {\n name = getName(0);\n }\n else {\n break loop;\n }\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&\n selector.charCodeAt(selectorIndex + 1) !== 124 /* Pipe */) {\n namespace = name;\n if (selector.charCodeAt(selectorIndex + 1) ===\n 42 /* Asterisk */) {\n name = \"*\";\n selectorIndex += 2;\n }\n else {\n name = getName(1);\n }\n }\n tokens.push(name === \"*\"\n ? { type: SelectorType.Universal, namespace }\n : { type: SelectorType.Tag, name, namespace });\n }\n }\n }\n finalizeSubselector();\n return selectorIndex;\n}\n","import { SelectorType, AttributeAction } from \"./types\";\nconst attribValChars = [\"\\\\\", '\"'];\nconst pseudoValChars = [...attribValChars, \"(\", \")\"];\nconst charsToEscapeInAttributeValue = new Set(attribValChars.map((c) => c.charCodeAt(0)));\nconst charsToEscapeInPseudoValue = new Set(pseudoValChars.map((c) => c.charCodeAt(0)));\nconst charsToEscapeInName = new Set([\n ...pseudoValChars,\n \"~\",\n \"^\",\n \"$\",\n \"*\",\n \"+\",\n \"!\",\n \"|\",\n \":\",\n \"[\",\n \"]\",\n \" \",\n \".\",\n].map((c) => c.charCodeAt(0)));\n/**\n * Turns `selector` back into a string.\n *\n * @param selector Selector to stringify.\n */\nexport function stringify(selector) {\n return selector\n .map((token) => token.map(stringifyToken).join(\"\"))\n .join(\", \");\n}\nfunction stringifyToken(token, index, arr) {\n switch (token.type) {\n // Simple types\n case SelectorType.Child:\n return index === 0 ? \"> \" : \" > \";\n case SelectorType.Parent:\n return index === 0 ? \"< \" : \" < \";\n case SelectorType.Sibling:\n return index === 0 ? \"~ \" : \" ~ \";\n case SelectorType.Adjacent:\n return index === 0 ? \"+ \" : \" + \";\n case SelectorType.Descendant:\n return \" \";\n case SelectorType.ColumnCombinator:\n return index === 0 ? \"|| \" : \" || \";\n case SelectorType.Universal:\n // Return an empty string if the selector isn't needed.\n return token.namespace === \"*\" &&\n index + 1 < arr.length &&\n \"name\" in arr[index + 1]\n ? \"\"\n : `${getNamespace(token.namespace)}*`;\n case SelectorType.Tag:\n return getNamespacedName(token);\n case SelectorType.PseudoElement:\n return `::${escapeName(token.name, charsToEscapeInName)}${token.data === null\n ? \"\"\n : `(${escapeName(token.data, charsToEscapeInPseudoValue)})`}`;\n case SelectorType.Pseudo:\n return `:${escapeName(token.name, charsToEscapeInName)}${token.data === null\n ? \"\"\n : `(${typeof token.data === \"string\"\n ? escapeName(token.data, charsToEscapeInPseudoValue)\n : stringify(token.data)})`}`;\n case SelectorType.Attribute: {\n if (token.name === \"id\" &&\n token.action === AttributeAction.Equals &&\n token.ignoreCase === \"quirks\" &&\n !token.namespace) {\n return `#${escapeName(token.value, charsToEscapeInName)}`;\n }\n if (token.name === \"class\" &&\n token.action === AttributeAction.Element &&\n token.ignoreCase === \"quirks\" &&\n !token.namespace) {\n return `.${escapeName(token.value, charsToEscapeInName)}`;\n }\n const name = getNamespacedName(token);\n if (token.action === AttributeAction.Exists) {\n return `[${name}]`;\n }\n return `[${name}${getActionValue(token.action)}=\"${escapeName(token.value, charsToEscapeInAttributeValue)}\"${token.ignoreCase === null ? \"\" : token.ignoreCase ? \" i\" : \" s\"}]`;\n }\n }\n}\nfunction getActionValue(action) {\n switch (action) {\n case AttributeAction.Equals:\n return \"\";\n case AttributeAction.Element:\n return \"~\";\n case AttributeAction.Start:\n return \"^\";\n case AttributeAction.End:\n return \"$\";\n case AttributeAction.Any:\n return \"*\";\n case AttributeAction.Not:\n return \"!\";\n case AttributeAction.Hyphen:\n return \"|\";\n case AttributeAction.Exists:\n throw new Error(\"Shouldn't be here\");\n }\n}\nfunction getNamespacedName(token) {\n return `${getNamespace(token.namespace)}${escapeName(token.name, charsToEscapeInName)}`;\n}\nfunction getNamespace(namespace) {\n return namespace !== null\n ? `${namespace === \"*\"\n ? \"*\"\n : escapeName(namespace, charsToEscapeInName)}|`\n : \"\";\n}\nfunction escapeName(str, charsToEscape) {\n let lastIdx = 0;\n let ret = \"\";\n for (let i = 0; i < str.length; i++) {\n if (charsToEscape.has(str.charCodeAt(i))) {\n ret += `${str.slice(lastIdx, i)}\\\\${str.charAt(i)}`;\n lastIdx = i + 1;\n }\n }\n return ret.length > 0 ? ret + str.slice(lastIdx) : str;\n}\n","export var SelectorType;\n(function (SelectorType) {\n SelectorType[\"Attribute\"] = \"attribute\";\n SelectorType[\"Pseudo\"] = \"pseudo\";\n SelectorType[\"PseudoElement\"] = \"pseudo-element\";\n SelectorType[\"Tag\"] = \"tag\";\n SelectorType[\"Universal\"] = \"universal\";\n // Traversals\n SelectorType[\"Adjacent\"] = \"adjacent\";\n SelectorType[\"Child\"] = \"child\";\n SelectorType[\"Descendant\"] = \"descendant\";\n SelectorType[\"Parent\"] = \"parent\";\n SelectorType[\"Sibling\"] = \"sibling\";\n SelectorType[\"ColumnCombinator\"] = \"column-combinator\";\n})(SelectorType || (SelectorType = {}));\n/**\n * Modes for ignore case.\n *\n * This could be updated to an enum, and the object is\n * the current stand-in that will allow code to be updated\n * without big changes.\n */\nexport const IgnoreCaseMode = {\n Unknown: null,\n QuirksMode: \"quirks\",\n IgnoreCase: true,\n CaseSensitive: false,\n};\nexport var AttributeAction;\n(function (AttributeAction) {\n AttributeAction[\"Any\"] = \"any\";\n AttributeAction[\"Element\"] = \"element\";\n AttributeAction[\"End\"] = \"end\";\n AttributeAction[\"Equals\"] = \"equals\";\n AttributeAction[\"Exists\"] = \"exists\";\n AttributeAction[\"Hyphen\"] = \"hyphen\";\n AttributeAction[\"Not\"] = \"not\";\n AttributeAction[\"Start\"] = \"start\";\n})(AttributeAction || (AttributeAction = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n [\"altglyph\", \"altGlyph\"],\n [\"altglyphdef\", \"altGlyphDef\"],\n [\"altglyphitem\", \"altGlyphItem\"],\n [\"animatecolor\", \"animateColor\"],\n [\"animatemotion\", \"animateMotion\"],\n [\"animatetransform\", \"animateTransform\"],\n [\"clippath\", \"clipPath\"],\n [\"feblend\", \"feBlend\"],\n [\"fecolormatrix\", \"feColorMatrix\"],\n [\"fecomponenttransfer\", \"feComponentTransfer\"],\n [\"fecomposite\", \"feComposite\"],\n [\"feconvolvematrix\", \"feConvolveMatrix\"],\n [\"fediffuselighting\", \"feDiffuseLighting\"],\n [\"fedisplacementmap\", \"feDisplacementMap\"],\n [\"fedistantlight\", \"feDistantLight\"],\n [\"fedropshadow\", \"feDropShadow\"],\n [\"feflood\", \"feFlood\"],\n [\"fefunca\", \"feFuncA\"],\n [\"fefuncb\", \"feFuncB\"],\n [\"fefuncg\", \"feFuncG\"],\n [\"fefuncr\", \"feFuncR\"],\n [\"fegaussianblur\", \"feGaussianBlur\"],\n [\"feimage\", \"feImage\"],\n [\"femerge\", \"feMerge\"],\n [\"femergenode\", \"feMergeNode\"],\n [\"femorphology\", \"feMorphology\"],\n [\"feoffset\", \"feOffset\"],\n [\"fepointlight\", \"fePointLight\"],\n [\"fespecularlighting\", \"feSpecularLighting\"],\n [\"fespotlight\", \"feSpotLight\"],\n [\"fetile\", \"feTile\"],\n [\"feturbulence\", \"feTurbulence\"],\n [\"foreignobject\", \"foreignObject\"],\n [\"glyphref\", \"glyphRef\"],\n [\"lineargradient\", \"linearGradient\"],\n [\"radialgradient\", \"radialGradient\"],\n [\"textpath\", \"textPath\"],\n]);\nexports.attributeNames = new Map([\n [\"definitionurl\", \"definitionURL\"],\n [\"attributename\", \"attributeName\"],\n [\"attributetype\", \"attributeType\"],\n [\"basefrequency\", \"baseFrequency\"],\n [\"baseprofile\", \"baseProfile\"],\n [\"calcmode\", \"calcMode\"],\n [\"clippathunits\", \"clipPathUnits\"],\n [\"diffuseconstant\", \"diffuseConstant\"],\n [\"edgemode\", \"edgeMode\"],\n [\"filterunits\", \"filterUnits\"],\n [\"glyphref\", \"glyphRef\"],\n [\"gradienttransform\", \"gradientTransform\"],\n [\"gradientunits\", \"gradientUnits\"],\n [\"kernelmatrix\", \"kernelMatrix\"],\n [\"kernelunitlength\", \"kernelUnitLength\"],\n [\"keypoints\", \"keyPoints\"],\n [\"keysplines\", \"keySplines\"],\n [\"keytimes\", \"keyTimes\"],\n [\"lengthadjust\", \"lengthAdjust\"],\n [\"limitingconeangle\", \"limitingConeAngle\"],\n [\"markerheight\", \"markerHeight\"],\n [\"markerunits\", \"markerUnits\"],\n [\"markerwidth\", \"markerWidth\"],\n [\"maskcontentunits\", \"maskContentUnits\"],\n [\"maskunits\", \"maskUnits\"],\n [\"numoctaves\", \"numOctaves\"],\n [\"pathlength\", \"pathLength\"],\n [\"patterncontentunits\", \"patternContentUnits\"],\n [\"patterntransform\", \"patternTransform\"],\n [\"patternunits\", \"patternUnits\"],\n [\"pointsatx\", \"pointsAtX\"],\n [\"pointsaty\", \"pointsAtY\"],\n [\"pointsatz\", \"pointsAtZ\"],\n [\"preservealpha\", \"preserveAlpha\"],\n [\"preserveaspectratio\", \"preserveAspectRatio\"],\n [\"primitiveunits\", \"primitiveUnits\"],\n [\"refx\", \"refX\"],\n [\"refy\", \"refY\"],\n [\"repeatcount\", \"repeatCount\"],\n [\"repeatdur\", \"repeatDur\"],\n [\"requiredextensions\", \"requiredExtensions\"],\n [\"requiredfeatures\", \"requiredFeatures\"],\n [\"specularconstant\", \"specularConstant\"],\n [\"specularexponent\", \"specularExponent\"],\n [\"spreadmethod\", \"spreadMethod\"],\n [\"startoffset\", \"startOffset\"],\n [\"stddeviation\", \"stdDeviation\"],\n [\"stitchtiles\", \"stitchTiles\"],\n [\"surfacescale\", \"surfaceScale\"],\n [\"systemlanguage\", \"systemLanguage\"],\n [\"tablevalues\", \"tableValues\"],\n [\"targetx\", \"targetX\"],\n [\"targety\", \"targetY\"],\n [\"textlength\", \"textLength\"],\n [\"viewbox\", \"viewBox\"],\n [\"viewtarget\", \"viewTarget\"],\n [\"xchannelselector\", \"xChannelSelector\"],\n [\"ychannelselector\", \"yChannelSelector\"],\n [\"zoomandpan\", \"zoomAndPan\"],\n]);\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_1 = require(\"./foreignNames\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n if (!attributes)\n return;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return key + \"=\\\"\" + (opts.decodeEntities !== false\n ? entities_1.encodeXML(value)\n : value.replace(/\"/g, \""\")) + \"\\\"\";\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n case ElementType.Directive:\n case ElementType.Doctype:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\" + elem.name;\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \" + attribs;\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"\";\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\" + elem.data + \">\";\n}\nfunction renderText(elem, opts) {\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (opts.decodeEntities !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data = entities_1.encodeXML(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"\";\n}\nfunction renderComment(elem) {\n return \"\";\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for or ...\n const closeMarkup = ``;\n const index = (() => {\n if (options.lowerCaseTagName) {\n return data.toLocaleLowerCase().indexOf(closeMarkup, kMarkupPattern.lastIndex);\n }\n return data.indexOf(closeMarkup, kMarkupPattern.lastIndex);\n })();\n if (element_should_be_ignore(match[2])) {\n let text;\n if (index === -1) {\n // there is no matching ending for the text element.\n text = data.substr(kMarkupPattern.lastIndex);\n }\n else {\n text = data.substring(kMarkupPattern.lastIndex, index);\n }\n if (text.length > 0) {\n currentParent.appendChild(new TextNode(text, currentParent));\n }\n }\n if (index === -1) {\n lastTextPos = kMarkupPattern.lastIndex = data.length + 1;\n }\n else {\n lastTextPos = kMarkupPattern.lastIndex = index + closeMarkup.length;\n match[1] = 'true';\n }\n }\n }\n if (match[1] || match[4] || kSelfClosingElements[match[2]]) {\n // or
          etc.\n while (true) {\n if (currentParent.rawTagName === match[2]) {\n stack.pop();\n currentParent = arr_back(stack);\n break;\n }\n else {\n const tagName = currentParent.tagName;\n // Trying to close current tag, and move on\n if (kElementsClosedByClosing[tagName]) {\n if (kElementsClosedByClosing[tagName][match[2]]) {\n stack.pop();\n currentParent = arr_back(stack);\n continue;\n }\n }\n // Use aggressive strategy to handle unmatching markups.\n break;\n }\n }\n }\n }\n return stack;\n}\n/**\n * Parses HTML and returns a root element\n * Parse a chuck of HTML source.\n */\nexport function parse(data, options = { lowerCaseTagName: false, comment: false }) {\n const stack = base_parse(data, options);\n const [root] = stack;\n while (stack.length > 1) {\n // Handle each error elements.\n const last = stack.pop();\n const oneBefore = arr_back(stack);\n if (last.parentNode && last.parentNode.parentNode) {\n if (last.parentNode === oneBefore && last.tagName === oneBefore.tagName) {\n // Pair error case

          handle : Fixes to

          \n oneBefore.removeChild(last);\n last.childNodes.forEach((child) => {\n oneBefore.parentNode.appendChild(child);\n });\n stack.pop();\n }\n else {\n // Single error

          handle: Just removes

          \n oneBefore.removeChild(last);\n last.childNodes.forEach((child) => {\n oneBefore.appendChild(child);\n });\n }\n }\n else {\n // If it's final element just skip.\n }\n }\n // response.childNodes.forEach((node) => {\n // \tif (node instanceof HTMLElement) {\n // \t\tnode.parentNode = null;\n // \t}\n // });\n return root;\n}\n","/**\n * Node Class as base class for TextNode and HTMLElement.\n */\nexport default class Node {\n constructor(parentNode = null) {\n this.parentNode = parentNode;\n this.childNodes = [];\n }\n get innerText() {\n return this.rawText;\n }\n get textContent() {\n return this.rawText;\n }\n set textContent(val) {\n this.rawText = val;\n }\n}\n","import NodeType from './type';\nimport Node from './node';\n/**\n * TextNode to contain a text element in DOM tree.\n * @param {string} value [description]\n */\nexport default class TextNode extends Node {\n constructor(rawText, parentNode) {\n super(parentNode);\n this.rawText = rawText;\n /**\n * Node Type declaration.\n * @type {Number}\n */\n this.nodeType = NodeType.TEXT_NODE;\n }\n /**\n * Returns text with all whitespace trimmed except single leading/trailing non-breaking space\n */\n get trimmedText() {\n if (this._trimmedText !== undefined)\n return this._trimmedText;\n const text = this.rawText;\n let i = 0;\n let startPos;\n let endPos;\n while (i >= 0 && i < text.length) {\n if (/\\S/.test(text[i])) {\n if (startPos === undefined) {\n startPos = i;\n i = text.length;\n }\n else {\n endPos = i;\n i = void 0;\n }\n }\n if (startPos === undefined)\n i++;\n else\n i--;\n }\n if (startPos === undefined)\n startPos = 0;\n if (endPos === undefined)\n endPos = text.length - 1;\n const hasLeadingSpace = startPos > 0 && /[^\\S\\r\\n]/.test(text[startPos - 1]);\n const hasTrailingSpace = endPos < (text.length - 1) && /[^\\S\\r\\n]/.test(text[endPos + 1]);\n this._trimmedText = (hasLeadingSpace ? ' ' : '') + text.slice(startPos, endPos + 1) + (hasTrailingSpace ? ' ' : '');\n return this._trimmedText;\n }\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n get text() {\n return this.rawText;\n }\n /**\n * Detect if the node contains only white space.\n * @return {bool}\n */\n get isWhitespace() {\n return /^(\\s| )*$/.test(this.rawText);\n }\n toString() {\n return this.text;\n }\n}\n","var NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType[NodeType[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType[NodeType[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n})(NodeType || (NodeType = {}));\nexport default NodeType;\n","import { base_parse } from './nodes/html';\n/**\n * Parses HTML and returns a root element\n * Parse a chuck of HTML source.\n */\nexport default function valid(data, options = { lowerCaseTagName: false, comment: false }) {\n const stack = base_parse(data, options);\n return Boolean(stack.length === 1);\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generate = exports.compile = void 0;\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\n/**\n * Returns a function that checks if an elements index matches the given rule\n * highly optimized to return the fastest solution.\n *\n * @param parsed A tuple [a, b], as returned by `parse`.\n * @returns A highly optimized function that returns whether an index matches the nth-check.\n * @example\n *\n * ```js\n * const check = nthCheck.compile([2, 3]);\n *\n * check(0); // `false`\n * check(1); // `false`\n * check(2); // `true`\n * check(3); // `false`\n * check(4); // `true`\n * check(5); // `false`\n * check(6); // `true`\n * ```\n */\nfunction compile(parsed) {\n var a = parsed[0];\n // Subtract 1 from `b`, to convert from one- to zero-indexed.\n var b = parsed[1] - 1;\n /*\n * When `b <= 0`, `a * n` won't be lead to any matches for `a < 0`.\n * Besides, the specification states that no elements are\n * matched when `a` and `b` are 0.\n *\n * `b < 0` here as we subtracted 1 from `b` above.\n */\n if (b < 0 && a <= 0)\n return boolbase_1.default.falseFunc;\n // When `a` is in the range -1..1, it matches any element (so only `b` is checked).\n if (a === -1)\n return function (index) { return index <= b; };\n if (a === 0)\n return function (index) { return index === b; };\n // When `b <= 0` and `a === 1`, they match any element.\n if (a === 1)\n return b < 0 ? boolbase_1.default.trueFunc : function (index) { return index >= b; };\n /*\n * Otherwise, modulo can be used to check if there is a match.\n *\n * Modulo doesn't care about the sign, so let's use `a`s absolute value.\n */\n var absA = Math.abs(a);\n // Get `b mod a`, + a if this is negative.\n var bMod = ((b % absA) + absA) % absA;\n return a > 1\n ? function (index) { return index >= b && index % absA === bMod; }\n : function (index) { return index <= b && index % absA === bMod; };\n}\nexports.compile = compile;\n/**\n * Returns a function that produces a monotonously increasing sequence of indices.\n *\n * If the sequence has an end, the returned function will return `null` after\n * the last index in the sequence.\n *\n * @param parsed A tuple [a, b], as returned by `parse`.\n * @returns A function that produces a sequence of indices.\n * @example Always increasing (2n+3)\n *\n * ```js\n * const gen = nthCheck.generate([2, 3])\n *\n * gen() // `1`\n * gen() // `3`\n * gen() // `5`\n * gen() // `8`\n * gen() // `11`\n * ```\n *\n * @example With end value (-2n+10)\n *\n * ```js\n *\n * const gen = nthCheck.generate([-2, 5]);\n *\n * gen() // 0\n * gen() // 2\n * gen() // 4\n * gen() // null\n * ```\n */\nfunction generate(parsed) {\n var a = parsed[0];\n // Subtract 1 from `b`, to convert from one- to zero-indexed.\n var b = parsed[1] - 1;\n var n = 0;\n // Make sure to always return an increasing sequence\n if (a < 0) {\n var aPos_1 = -a;\n // Get `b mod a`\n var minValue_1 = ((b % aPos_1) + aPos_1) % aPos_1;\n return function () {\n var val = minValue_1 + aPos_1 * n++;\n return val > b ? null : val;\n };\n }\n if (a === 0)\n return b < 0\n ? // There are no result — always return `null`\n function () { return null; }\n : // Return `b` exactly once\n function () { return (n++ === 0 ? b : null); };\n if (b < 0) {\n b += a * Math.ceil(-b / a);\n }\n return function () { return a * n++ + b; };\n}\nexports.generate = generate;\n//# sourceMappingURL=compile.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sequence = exports.generate = exports.compile = exports.parse = void 0;\nvar parse_js_1 = require(\"./parse.js\");\nObject.defineProperty(exports, \"parse\", { enumerable: true, get: function () { return parse_js_1.parse; } });\nvar compile_js_1 = require(\"./compile.js\");\nObject.defineProperty(exports, \"compile\", { enumerable: true, get: function () { return compile_js_1.compile; } });\nObject.defineProperty(exports, \"generate\", { enumerable: true, get: function () { return compile_js_1.generate; } });\n/**\n * Parses and compiles a formula to a highly optimized function.\n * Combination of {@link parse} and {@link compile}.\n *\n * If the formula doesn't match any elements,\n * it returns [`boolbase`](https://github.com/fb55/boolbase)'s `falseFunc`.\n * Otherwise, a function accepting an _index_ is returned, which returns\n * whether or not the passed _index_ matches the formula.\n *\n * Note: The nth-rule starts counting at `1`, the returned function at `0`.\n *\n * @param formula The formula to compile.\n * @example\n * const check = nthCheck(\"2n+3\");\n *\n * check(0); // `false`\n * check(1); // `false`\n * check(2); // `true`\n * check(3); // `false`\n * check(4); // `true`\n * check(5); // `false`\n * check(6); // `true`\n */\nfunction nthCheck(formula) {\n return (0, compile_js_1.compile)((0, parse_js_1.parse)(formula));\n}\nexports.default = nthCheck;\n/**\n * Parses and compiles a formula to a generator that produces a sequence of indices.\n * Combination of {@link parse} and {@link generate}.\n *\n * @param formula The formula to compile.\n * @returns A function that produces a sequence of indices.\n * @example Always increasing\n *\n * ```js\n * const gen = nthCheck.sequence('2n+3')\n *\n * gen() // `1`\n * gen() // `3`\n * gen() // `5`\n * gen() // `8`\n * gen() // `11`\n * ```\n *\n * @example With end value\n *\n * ```js\n *\n * const gen = nthCheck.sequence('-2n+5');\n *\n * gen() // 0\n * gen() // 2\n * gen() // 4\n * gen() // null\n * ```\n */\nfunction sequence(formula) {\n return (0, compile_js_1.generate)((0, parse_js_1.parse)(formula));\n}\nexports.sequence = sequence;\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Following http://www.w3.org/TR/css3-selectors/#nth-child-pseudo\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parse = void 0;\n// Whitespace as per https://www.w3.org/TR/selectors-3/#lex is \" \\t\\r\\n\\f\"\nvar whitespace = new Set([9, 10, 12, 13, 32]);\nvar ZERO = \"0\".charCodeAt(0);\nvar NINE = \"9\".charCodeAt(0);\n/**\n * Parses an expression.\n *\n * @throws An `Error` if parsing fails.\n * @returns An array containing the integer step size and the integer offset of the nth rule.\n * @example nthCheck.parse(\"2n+3\"); // returns [2, 3]\n */\nfunction parse(formula) {\n formula = formula.trim().toLowerCase();\n if (formula === \"even\") {\n return [2, 0];\n }\n else if (formula === \"odd\") {\n return [2, 1];\n }\n // Parse [ ['-'|'+']? INTEGER? {N} [ S* ['-'|'+'] S* INTEGER ]?\n var idx = 0;\n var a = 0;\n var sign = readSign();\n var number = readNumber();\n if (idx < formula.length && formula.charAt(idx) === \"n\") {\n idx++;\n a = sign * (number !== null && number !== void 0 ? number : 1);\n skipWhitespace();\n if (idx < formula.length) {\n sign = readSign();\n skipWhitespace();\n number = readNumber();\n }\n else {\n sign = number = 0;\n }\n }\n // Throw if there is anything else\n if (number === null || idx < formula.length) {\n throw new Error(\"n-th rule couldn't be parsed ('\".concat(formula, \"')\"));\n }\n return [a, sign * number];\n function readSign() {\n if (formula.charAt(idx) === \"-\") {\n idx++;\n return -1;\n }\n if (formula.charAt(idx) === \"+\") {\n idx++;\n }\n return 1;\n }\n function readNumber() {\n var start = idx;\n var value = 0;\n while (idx < formula.length &&\n formula.charCodeAt(idx) >= ZERO &&\n formula.charCodeAt(idx) <= NINE) {\n value = value * 10 + (formula.charCodeAt(idx) - ZERO);\n idx++;\n }\n // Return `null` if we didn't read anything.\n return idx === start ? null : value;\n }\n function skipWhitespace() {\n while (idx < formula.length &&\n whitespace.has(formula.charCodeAt(idx))) {\n idx++;\n }\n }\n}\nexports.parse = parse;\n//# sourceMappingURL=parse.js.map","'use strict';\n\nvar name = require('fn.name');\n\n/**\n * Wrap callbacks to prevent double execution.\n *\n * @param {Function} fn Function that should only be called once.\n * @returns {Function} A wrapped callback which prevents multiple executions.\n * @public\n */\nmodule.exports = function one(fn) {\n var called = 0\n , value;\n\n /**\n * The function that prevents double execution.\n *\n * @private\n */\n function onetime() {\n if (called) return value;\n\n called = 1;\n value = fn.apply(this, arguments);\n fn = null;\n\n return value;\n }\n\n //\n // To make debugging more easy we want to use the name of the supplied\n // function. So when you look at the functions that are assigned to event\n // listeners you don't see a load of `onetime` functions but actually the\n // names of the functions that this module will call.\n //\n // NOTE: We cannot override the `name` property, as that is `readOnly`\n // property, so displayName will have to do.\n //\n onetime.displayName = name(fn);\n return onetime;\n};\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict'\n\nconst stringify = require('./stable')\n\nmodule.exports = stringify\nstringify.default = stringify\n","'use strict'\n\nmodule.exports = stringify\n\nvar indentation = ''\n// eslint-disable-next-line\nconst strEscapeSequencesRegExp = /[\\x00-\\x1f\\x22\\x5c]/\n// eslint-disable-next-line\nconst strEscapeSequencesReplacer = /[\\x00-\\x1f\\x22\\x5c]/g\n\n// Escaped special characters. Use empty strings to fill up unused entries.\nconst meta = [\n '\\\\u0000', '\\\\u0001', '\\\\u0002', '\\\\u0003', '\\\\u0004',\n '\\\\u0005', '\\\\u0006', '\\\\u0007', '\\\\b', '\\\\t',\n '\\\\n', '\\\\u000b', '\\\\f', '\\\\r', '\\\\u000e',\n '\\\\u000f', '\\\\u0010', '\\\\u0011', '\\\\u0012', '\\\\u0013',\n '\\\\u0014', '\\\\u0015', '\\\\u0016', '\\\\u0017', '\\\\u0018',\n '\\\\u0019', '\\\\u001a', '\\\\u001b', '\\\\u001c', '\\\\u001d',\n '\\\\u001e', '\\\\u001f', '', '', '\\\\\"',\n '', '', '', '', '', '', '', '', '', '',\n '', '', '', '', '', '', '', '', '', '',\n '', '', '', '', '', '', '', '', '', '',\n '', '', '', '', '', '', '', '', '', '',\n '', '', '', '', '', '', '', '', '', '',\n '', '', '', '', '', '', '', '\\\\\\\\'\n]\n\nfunction escapeFn (str) {\n return meta[str.charCodeAt(0)]\n}\n\n// Escape control characters, double quotes and the backslash.\n// Note: it is faster to run this only once for a big string instead of only for\n// the parts that it is necessary for. But this is only true if we do not add\n// extra indentation to the string before.\nfunction strEscape (str) {\n // Some magic numbers that worked out fine while benchmarking with v8 6.0\n if (str.length < 5000 && !strEscapeSequencesRegExp.test(str)) {\n return str\n }\n if (str.length > 100) {\n return str.replace(strEscapeSequencesReplacer, escapeFn)\n }\n var result = ''\n var last = 0\n for (var i = 0; i < str.length; i++) {\n const point = str.charCodeAt(i)\n if (point === 34 || point === 92 || point < 32) {\n if (last === i) {\n result += meta[point]\n } else {\n result += `${str.slice(last, i)}${meta[point]}`\n }\n last = i + 1\n }\n }\n if (last === 0) {\n result = str\n } else if (last !== i) {\n result += str.slice(last)\n }\n return result\n}\n\n// Full version: supports all options\nfunction stringifyFullFn (key, parent, stack, replacer, indent) {\n var i, res, join\n const originalIndentation = indentation\n var value = parent[key]\n\n if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n value = replacer.call(parent, key, value)\n\n switch (typeof value) {\n case 'object':\n if (value === null) {\n return 'null'\n }\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === value) {\n return '\"[Circular]\"'\n }\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n stack.push(value)\n res = '['\n indentation += indent\n res += `\\n${indentation}`\n join = `,\\n${indentation}`\n // Use null as placeholder for non-JSON values.\n for (i = 0; i < value.length - 1; i++) {\n const tmp = stringifyFullFn(i, value, stack, replacer, indent)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyFullFn(i, value, stack, replacer, indent)\n res += tmp !== undefined ? tmp : 'null'\n if (indentation !== '') {\n res += `\\n${originalIndentation}`\n }\n res += ']'\n stack.pop()\n indentation = originalIndentation\n return res\n }\n\n var keys = insertSort(Object.keys(value))\n if (keys.length === 0) {\n return '{}'\n }\n stack.push(value)\n res = '{'\n indentation += indent\n res += `\\n${indentation}`\n join = `,\\n${indentation}`\n var separator = ''\n for (i = 0; i < keys.length; i++) {\n key = keys[i]\n const tmp = stringifyFullFn(key, value, stack, replacer, indent)\n if (tmp !== undefined) {\n res += `${separator}\"${strEscape(key)}\": ${tmp}`\n separator = join\n }\n }\n if (separator !== '') {\n res += `\\n${originalIndentation}`\n } else {\n res = '{'\n }\n res += '}'\n stack.pop()\n indentation = originalIndentation\n return res\n case 'string':\n return `\"${strEscape(value)}\"`\n case 'number':\n // JSON numbers must be finite. Encode non-finite numbers as null.\n return isFinite(value) ? String(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n }\n}\n\nfunction stringifyFullArr (key, value, stack, replacer, indent) {\n var i, res, join\n const originalIndentation = indentation\n\n if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n\n switch (typeof value) {\n case 'object':\n if (value === null) {\n return 'null'\n }\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === value) {\n return '\"[Circular]\"'\n }\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n stack.push(value)\n res = '['\n indentation += indent\n res += `\\n${indentation}`\n join = `,\\n${indentation}`\n // Use null as placeholder for non-JSON values.\n for (i = 0; i < value.length - 1; i++) {\n const tmp = stringifyFullArr(i, value[i], stack, replacer, indent)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyFullArr(i, value[i], stack, replacer, indent)\n res += tmp !== undefined ? tmp : 'null'\n if (indentation !== '') {\n res += `\\n${originalIndentation}`\n }\n res += ']'\n stack.pop()\n indentation = originalIndentation\n return res\n }\n\n if (replacer.length === 0) {\n return '{}'\n }\n stack.push(value)\n res = '{'\n indentation += indent\n res += `\\n${indentation}`\n join = `,\\n${indentation}`\n var separator = ''\n for (i = 0; i < replacer.length; i++) {\n if (typeof replacer[i] === 'string' || typeof replacer[i] === 'number') {\n key = replacer[i]\n const tmp = stringifyFullArr(key, value[key], stack, replacer, indent)\n if (tmp !== undefined) {\n res += `${separator}\"${strEscape(key)}\": ${tmp}`\n separator = join\n }\n }\n }\n if (separator !== '') {\n res += `\\n${originalIndentation}`\n } else {\n res = '{'\n }\n res += '}'\n stack.pop()\n indentation = originalIndentation\n return res\n case 'string':\n return `\"${strEscape(value)}\"`\n case 'number':\n // JSON numbers must be finite. Encode non-finite numbers as null.\n return isFinite(value) ? String(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n }\n}\n\n// Supports only the spacer option\nfunction stringifyIndent (key, value, stack, indent) {\n var i, res, join\n const originalIndentation = indentation\n\n switch (typeof value) {\n case 'object':\n if (value === null) {\n return 'null'\n }\n if (typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n // Prevent calling `toJSON` again.\n if (typeof value !== 'object') {\n return stringifyIndent(key, value, stack, indent)\n }\n if (value === null) {\n return 'null'\n }\n }\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === value) {\n return '\"[Circular]\"'\n }\n }\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n stack.push(value)\n res = '['\n indentation += indent\n res += `\\n${indentation}`\n join = `,\\n${indentation}`\n // Use null as placeholder for non-JSON values.\n for (i = 0; i < value.length - 1; i++) {\n const tmp = stringifyIndent(i, value[i], stack, indent)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyIndent(i, value[i], stack, indent)\n res += tmp !== undefined ? tmp : 'null'\n if (indentation !== '') {\n res += `\\n${originalIndentation}`\n }\n res += ']'\n stack.pop()\n indentation = originalIndentation\n return res\n }\n\n var keys = insertSort(Object.keys(value))\n if (keys.length === 0) {\n return '{}'\n }\n stack.push(value)\n res = '{'\n indentation += indent\n res += `\\n${indentation}`\n join = `,\\n${indentation}`\n var separator = ''\n for (i = 0; i < keys.length; i++) {\n key = keys[i]\n const tmp = stringifyIndent(key, value[key], stack, indent)\n if (tmp !== undefined) {\n res += `${separator}\"${strEscape(key)}\": ${tmp}`\n separator = join\n }\n }\n if (separator !== '') {\n res += `\\n${originalIndentation}`\n } else {\n res = '{'\n }\n res += '}'\n stack.pop()\n indentation = originalIndentation\n return res\n case 'string':\n return `\"${strEscape(value)}\"`\n case 'number':\n // JSON numbers must be finite. Encode non-finite numbers as null.\n return isFinite(value) ? String(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n }\n}\n\n// Supports only the replacer option\nfunction stringifyReplacerArr (key, value, stack, replacer) {\n var i, res\n // If the value has a toJSON method, call it to obtain a replacement value.\n if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n\n switch (typeof value) {\n case 'object':\n if (value === null) {\n return 'null'\n }\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === value) {\n return '\"[Circular]\"'\n }\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n stack.push(value)\n res = '['\n // Use null as placeholder for non-JSON values.\n for (i = 0; i < value.length - 1; i++) {\n const tmp = stringifyReplacerArr(i, value[i], stack, replacer)\n res += tmp !== undefined ? tmp : 'null'\n res += ','\n }\n const tmp = stringifyReplacerArr(i, value[i], stack, replacer)\n res += tmp !== undefined ? tmp : 'null'\n res += ']'\n stack.pop()\n return res\n }\n\n if (replacer.length === 0) {\n return '{}'\n }\n stack.push(value)\n res = '{'\n var separator = ''\n for (i = 0; i < replacer.length; i++) {\n if (typeof replacer[i] === 'string' || typeof replacer[i] === 'number') {\n key = replacer[i]\n const tmp = stringifyReplacerArr(key, value[key], stack, replacer)\n if (tmp !== undefined) {\n res += `${separator}\"${strEscape(key)}\":${tmp}`\n separator = ','\n }\n }\n }\n res += '}'\n stack.pop()\n return res\n case 'string':\n return `\"${strEscape(value)}\"`\n case 'number':\n // JSON numbers must be finite. Encode non-finite numbers as null.\n return isFinite(value) ? String(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n }\n}\n\nfunction stringifyReplacerFn (key, parent, stack, replacer) {\n var i, res\n var value = parent[key]\n // If the value has a toJSON method, call it to obtain a replacement value.\n if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n value = replacer.call(parent, key, value)\n\n switch (typeof value) {\n case 'object':\n if (value === null) {\n return 'null'\n }\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === value) {\n return '\"[Circular]\"'\n }\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n stack.push(value)\n res = '['\n // Use null as placeholder for non-JSON values.\n for (i = 0; i < value.length - 1; i++) {\n const tmp = stringifyReplacerFn(i, value, stack, replacer)\n res += tmp !== undefined ? tmp : 'null'\n res += ','\n }\n const tmp = stringifyReplacerFn(i, value, stack, replacer)\n res += tmp !== undefined ? tmp : 'null'\n res += ']'\n stack.pop()\n return res\n }\n\n var keys = insertSort(Object.keys(value))\n if (keys.length === 0) {\n return '{}'\n }\n stack.push(value)\n res = '{'\n var separator = ''\n for (i = 0; i < keys.length; i++) {\n key = keys[i]\n const tmp = stringifyReplacerFn(key, value, stack, replacer)\n if (tmp !== undefined) {\n res += `${separator}\"${strEscape(key)}\":${tmp}`\n separator = ','\n }\n }\n res += '}'\n stack.pop()\n return res\n case 'string':\n return `\"${strEscape(value)}\"`\n case 'number':\n // JSON numbers must be finite. Encode non-finite numbers as null.\n return isFinite(value) ? String(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n }\n}\n\n// Simple without any options\nfunction stringifySimple (key, value, stack) {\n var i, res\n switch (typeof value) {\n case 'object':\n if (value === null) {\n return 'null'\n }\n if (typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n // Prevent calling `toJSON` again\n if (typeof value !== 'object') {\n return stringifySimple(key, value, stack)\n }\n if (value === null) {\n return 'null'\n }\n }\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === value) {\n return '\"[Circular]\"'\n }\n }\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n stack.push(value)\n res = '['\n // Use null as placeholder for non-JSON values.\n for (i = 0; i < value.length - 1; i++) {\n const tmp = stringifySimple(i, value[i], stack)\n res += tmp !== undefined ? tmp : 'null'\n res += ','\n }\n const tmp = stringifySimple(i, value[i], stack)\n res += tmp !== undefined ? tmp : 'null'\n res += ']'\n stack.pop()\n return res\n }\n\n var keys = insertSort(Object.keys(value))\n if (keys.length === 0) {\n return '{}'\n }\n stack.push(value)\n var separator = ''\n res = '{'\n for (i = 0; i < keys.length; i++) {\n key = keys[i]\n const tmp = stringifySimple(key, value[key], stack)\n if (tmp !== undefined) {\n res += `${separator}\"${strEscape(key)}\":${tmp}`\n separator = ','\n }\n }\n res += '}'\n stack.pop()\n return res\n case 'string':\n return `\"${strEscape(value)}\"`\n case 'number':\n // JSON numbers must be finite. Encode non-finite numbers as null.\n // Convert the numbers implicit to a string instead of explicit.\n return isFinite(value) ? String(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n }\n}\n\nfunction insertSort (arr) {\n for (var i = 1; i < arr.length; i++) {\n const tmp = arr[i]\n var j = i\n while (j !== 0 && arr[j - 1] > tmp) {\n arr[j] = arr[j - 1]\n j--\n }\n arr[j] = tmp\n }\n\n return arr\n}\n\nfunction stringify (value, replacer, spacer) {\n var i\n var indent = ''\n indentation = ''\n\n if (arguments.length > 1) {\n // If the spacer parameter is a number, make an indent string containing that\n // many spaces.\n if (typeof spacer === 'number') {\n for (i = 0; i < spacer; i += 1) {\n indent += ' '\n }\n // If the spacer parameter is a string, it will be used as the indent string.\n } else if (typeof spacer === 'string') {\n indent = spacer\n }\n if (indent !== '') {\n if (replacer !== undefined && replacer !== null) {\n if (typeof replacer === 'function') {\n return stringifyFullFn('', { '': value }, [], replacer, indent)\n }\n if (Array.isArray(replacer)) {\n return stringifyFullArr('', value, [], replacer, indent)\n }\n }\n return stringifyIndent('', value, [], indent)\n }\n if (typeof replacer === 'function') {\n return stringifyReplacerFn('', { '': value }, [], replacer)\n }\n if (Array.isArray(replacer)) {\n return stringifyReplacerArr('', value, [], replacer)\n }\n }\n return stringifySimple('', value, [])\n}\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","exports.get = function(belowFn) {\n var oldLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = Infinity;\n\n var dummyObject = {};\n\n var v8Handler = Error.prepareStackTrace;\n Error.prepareStackTrace = function(dummyObject, v8StackTrace) {\n return v8StackTrace;\n };\n Error.captureStackTrace(dummyObject, belowFn || exports.get);\n\n var v8StackTrace = dummyObject.stack;\n Error.prepareStackTrace = v8Handler;\n Error.stackTraceLimit = oldLimit;\n\n return v8StackTrace;\n};\n\nexports.parse = function(err) {\n if (!err.stack) {\n return [];\n }\n\n var self = this;\n var lines = err.stack.split('\\n').slice(1);\n\n return lines\n .map(function(line) {\n if (line.match(/^\\s*[-]{4,}$/)) {\n return self._createParsedCallSite({\n fileName: line,\n lineNumber: null,\n functionName: null,\n typeName: null,\n methodName: null,\n columnNumber: null,\n 'native': null,\n });\n }\n\n var lineMatch = line.match(/at (?:(.+)\\s+\\()?(?:(.+?):(\\d+)(?::(\\d+))?|([^)]+))\\)?/);\n if (!lineMatch) {\n return;\n }\n\n var object = null;\n var method = null;\n var functionName = null;\n var typeName = null;\n var methodName = null;\n var isNative = (lineMatch[5] === 'native');\n\n if (lineMatch[1]) {\n functionName = lineMatch[1];\n var methodStart = functionName.lastIndexOf('.');\n if (functionName[methodStart-1] == '.')\n methodStart--;\n if (methodStart > 0) {\n object = functionName.substr(0, methodStart);\n method = functionName.substr(methodStart + 1);\n var objectEnd = object.indexOf('.Module');\n if (objectEnd > 0) {\n functionName = functionName.substr(objectEnd + 1);\n object = object.substr(0, objectEnd);\n }\n }\n typeName = null;\n }\n\n if (method) {\n typeName = object;\n methodName = method;\n }\n\n if (method === '') {\n methodName = null;\n functionName = null;\n }\n\n var properties = {\n fileName: lineMatch[2] || null,\n lineNumber: parseInt(lineMatch[3], 10) || null,\n functionName: functionName,\n typeName: typeName,\n methodName: methodName,\n columnNumber: parseInt(lineMatch[4], 10) || null,\n 'native': isNative,\n };\n\n return self._createParsedCallSite(properties);\n })\n .filter(function(callSite) {\n return !!callSite;\n });\n};\n\nfunction CallSite(properties) {\n for (var property in properties) {\n this[property] = properties[property];\n }\n}\n\nvar strProperties = [\n 'this',\n 'typeName',\n 'functionName',\n 'methodName',\n 'fileName',\n 'lineNumber',\n 'columnNumber',\n 'function',\n 'evalOrigin'\n];\nvar boolProperties = [\n 'topLevel',\n 'eval',\n 'native',\n 'constructor'\n];\nstrProperties.forEach(function (property) {\n CallSite.prototype[property] = null;\n CallSite.prototype['get' + property[0].toUpperCase() + property.substr(1)] = function () {\n return this[property];\n }\n});\nboolProperties.forEach(function (property) {\n CallSite.prototype[property] = false;\n CallSite.prototype['is' + property[0].toUpperCase() + property.substr(1)] = function () {\n return this[property];\n }\n});\n\nexports._createParsedCallSite = function(properties) {\n return new CallSite(properties);\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","'use strict';\n\n/***\n * Convert string to hex color.\n *\n * @param {String} str Text to hash and convert to hex.\n * @returns {String}\n * @api public\n */\nmodule.exports = function hex(str) {\n for (\n var i = 0, hash = 0;\n i < str.length;\n hash = str.charCodeAt(i++) + ((hash << 5) - hash)\n );\n\n var color = Math.floor(\n Math.abs(\n (Math.sin(hash) * 10000) % 1 * 16777216\n )\n ).toString(16);\n\n return '#' + Array(6 - color.length + 1).join('0') + color;\n};\n","/**\n * cli.js: Config that conform to commonly used CLI logging levels.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\n/**\n * Default levels for the CLI configuration.\n * @type {Object}\n */\nexports.levels = {\n error: 0,\n warn: 1,\n help: 2,\n data: 3,\n info: 4,\n debug: 5,\n prompt: 6,\n verbose: 7,\n input: 8,\n silly: 9\n};\n\n/**\n * Default colors for the CLI configuration.\n * @type {Object}\n */\nexports.colors = {\n error: 'red',\n warn: 'yellow',\n help: 'cyan',\n data: 'grey',\n info: 'green',\n debug: 'blue',\n prompt: 'grey',\n verbose: 'cyan',\n input: 'grey',\n silly: 'magenta'\n};\n","/**\n * index.js: Default settings for all levels that winston knows about.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\n/**\n * Export config set for the CLI.\n * @type {Object}\n */\nObject.defineProperty(exports, 'cli', {\n value: require('./cli')\n});\n\n/**\n * Export config set for npm.\n * @type {Object}\n */\nObject.defineProperty(exports, 'npm', {\n value: require('./npm')\n});\n\n/**\n * Export config set for the syslog.\n * @type {Object}\n */\nObject.defineProperty(exports, 'syslog', {\n value: require('./syslog')\n});\n","/**\n * npm.js: Config that conform to npm logging levels.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\n/**\n * Default levels for the npm configuration.\n * @type {Object}\n */\nexports.levels = {\n error: 0,\n warn: 1,\n info: 2,\n http: 3,\n verbose: 4,\n debug: 5,\n silly: 6\n};\n\n/**\n * Default levels for the npm configuration.\n * @type {Object}\n */\nexports.colors = {\n error: 'red',\n warn: 'yellow',\n info: 'green',\n http: 'green',\n verbose: 'cyan',\n debug: 'blue',\n silly: 'magenta'\n};\n","/**\n * syslog.js: Config that conform to syslog logging levels.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\n/**\n * Default levels for the syslog configuration.\n * @type {Object}\n */\nexports.levels = {\n emerg: 0,\n alert: 1,\n crit: 2,\n error: 3,\n warning: 4,\n notice: 5,\n info: 6,\n debug: 7\n};\n\n/**\n * Default levels for the syslog configuration.\n * @type {Object}\n */\nexports.colors = {\n emerg: 'red',\n alert: 'yellow',\n crit: 'red',\n error: 'red',\n warning: 'red',\n notice: 'yellow',\n info: 'green',\n debug: 'blue'\n};\n","'use strict';\n\n/**\n * A shareable symbol constant that can be used\n * as a non-enumerable / semi-hidden level identifier\n * to allow the readable level property to be mutable for\n * operations like colorization\n *\n * @type {Symbol}\n */\nObject.defineProperty(exports, 'LEVEL', {\n value: Symbol.for('level')\n});\n\n/**\n * A shareable symbol constant that can be used\n * as a non-enumerable / semi-hidden message identifier\n * to allow the final message property to not have\n * side effects on another.\n *\n * @type {Symbol}\n */\nObject.defineProperty(exports, 'MESSAGE', {\n value: Symbol.for('message')\n});\n\n/**\n * A shareable symbol constant that can be used\n * as a non-enumerable / semi-hidden message identifier\n * to allow the extracted splat property be hidden\n *\n * @type {Symbol}\n */\nObject.defineProperty(exports, 'SPLAT', {\n value: Symbol.for('splat')\n});\n\n/**\n * A shareable object constant that can be used\n * as a standard configuration for winston@3.\n *\n * @type {Object}\n */\nObject.defineProperty(exports, 'configs', {\n value: require('./config')\n});\n","\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = require('util').deprecate;\n","'use strict';\n\nconst util = require('util');\nconst Writable = require('readable-stream/lib/_stream_writable.js');\nconst { LEVEL } = require('triple-beam');\n\n/**\n * Constructor function for the TransportStream. This is the base prototype\n * that all `winston >= 3` transports should inherit from.\n * @param {Object} options - Options for this TransportStream instance\n * @param {String} options.level - Highest level according to RFC5424.\n * @param {Boolean} options.handleExceptions - If true, info with\n * { exception: true } will be written.\n * @param {Function} options.log - Custom log function for simple Transport\n * creation\n * @param {Function} options.close - Called on \"unpipe\" from parent.\n */\nconst TransportStream = module.exports = function TransportStream(options = {}) {\n Writable.call(this, { objectMode: true, highWaterMark: options.highWaterMark });\n\n this.format = options.format;\n this.level = options.level;\n this.handleExceptions = options.handleExceptions;\n this.handleRejections = options.handleRejections;\n this.silent = options.silent;\n\n if (options.log) this.log = options.log;\n if (options.logv) this.logv = options.logv;\n if (options.close) this.close = options.close;\n\n // Get the levels from the source we are piped from.\n this.once('pipe', logger => {\n // Remark (indexzero): this bookkeeping can only support multiple\n // Logger parents with the same `levels`. This comes into play in\n // the `winston.Container` code in which `container.add` takes\n // a fully realized set of options with pre-constructed TransportStreams.\n this.levels = logger.levels;\n this.parent = logger;\n });\n\n // If and/or when the transport is removed from this instance\n this.once('unpipe', src => {\n // Remark (indexzero): this bookkeeping can only support multiple\n // Logger parents with the same `levels`. This comes into play in\n // the `winston.Container` code in which `container.add` takes\n // a fully realized set of options with pre-constructed TransportStreams.\n if (src === this.parent) {\n this.parent = null;\n if (this.close) {\n this.close();\n }\n }\n });\n};\n\n/*\n * Inherit from Writeable using Node.js built-ins\n */\nutil.inherits(TransportStream, Writable);\n\n/**\n * Writes the info object to our transport instance.\n * @param {mixed} info - TODO: add param description.\n * @param {mixed} enc - TODO: add param description.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n * @private\n */\nTransportStream.prototype._write = function _write(info, enc, callback) {\n if (this.silent || (info.exception === true && !this.handleExceptions)) {\n return callback(null);\n }\n\n // Remark: This has to be handled in the base transport now because we\n // cannot conditionally write to our pipe targets as stream. We always\n // prefer any explicit level set on the Transport itself falling back to\n // any level set on the parent.\n const level = this.level || (this.parent && this.parent.level);\n\n if (!level || this.levels[level] >= this.levels[info[LEVEL]]) {\n if (info && !this.format) {\n return this.log(info, callback);\n }\n\n let errState;\n let transformed;\n\n // We trap(and re-throw) any errors generated by the user-provided format, but also\n // guarantee that the streams callback is invoked so that we can continue flowing.\n try {\n transformed = this.format.transform(Object.assign({}, info), this.format.options);\n } catch (err) {\n errState = err;\n }\n\n if (errState || !transformed) {\n // eslint-disable-next-line callback-return\n callback();\n if (errState) throw errState;\n return;\n }\n\n return this.log(transformed, callback);\n }\n\n return callback(null);\n};\n\n/**\n * Writes the batch of info objects (i.e. \"object chunks\") to our transport\n * instance after performing any necessary filtering.\n * @param {mixed} chunks - TODO: add params description.\n * @param {function} callback - TODO: add params description.\n * @returns {mixed} - TODO: add returns description.\n * @private\n */\nTransportStream.prototype._writev = function _writev(chunks, callback) {\n if (this.logv) {\n const infos = chunks.filter(this._accept, this);\n if (!infos.length) {\n return callback(null);\n }\n\n // Remark (indexzero): from a performance perspective if Transport\n // implementers do choose to implement logv should we make it their\n // responsibility to invoke their format?\n return this.logv(infos, callback);\n }\n\n for (let i = 0; i < chunks.length; i++) {\n if (!this._accept(chunks[i])) continue;\n\n if (chunks[i].chunk && !this.format) {\n this.log(chunks[i].chunk, chunks[i].callback);\n continue;\n }\n\n let errState;\n let transformed;\n\n // We trap(and re-throw) any errors generated by the user-provided format, but also\n // guarantee that the streams callback is invoked so that we can continue flowing.\n try {\n transformed = this.format.transform(\n Object.assign({}, chunks[i].chunk),\n this.format.options\n );\n } catch (err) {\n errState = err;\n }\n\n if (errState || !transformed) {\n // eslint-disable-next-line callback-return\n chunks[i].callback();\n if (errState) {\n // eslint-disable-next-line callback-return\n callback(null);\n throw errState;\n }\n } else {\n this.log(transformed, chunks[i].callback);\n }\n }\n\n return callback(null);\n};\n\n/**\n * Predicate function that returns true if the specfied `info` on the\n * WriteReq, `write`, should be passed down into the derived\n * TransportStream's I/O via `.log(info, callback)`.\n * @param {WriteReq} write - winston@3 Node.js WriteReq for the `info` object\n * representing the log message.\n * @returns {Boolean} - Value indicating if the `write` should be accepted &\n * logged.\n */\nTransportStream.prototype._accept = function _accept(write) {\n const info = write.chunk;\n if (this.silent) {\n return false;\n }\n\n // We always prefer any explicit level set on the Transport itself\n // falling back to any level set on the parent.\n const level = this.level || (this.parent && this.parent.level);\n\n // Immediately check the average case: log level filtering.\n if (\n info.exception === true ||\n !level ||\n this.levels[level] >= this.levels[info[LEVEL]]\n ) {\n // Ensure the info object is valid based on `{ exception }`:\n // 1. { handleExceptions: true }: all `info` objects are valid\n // 2. { exception: false }: accepted by all transports.\n if (this.handleExceptions || info.exception !== true) {\n return true;\n }\n }\n\n return false;\n};\n\n/**\n * _nop is short for \"No operation\"\n * @returns {Boolean} Intentionally false.\n */\nTransportStream.prototype._nop = function _nop() {\n // eslint-disable-next-line no-undefined\n return void undefined;\n};\n\n\n// Expose legacy stream\nmodule.exports.LegacyTransportStream = require('./legacy');\n","'use strict';\n\nconst util = require('util');\nconst { LEVEL } = require('triple-beam');\nconst TransportStream = require('./');\n\n/**\n * Constructor function for the LegacyTransportStream. This is an internal\n * wrapper `winston >= 3` uses to wrap older transports implementing\n * log(level, message, meta).\n * @param {Object} options - Options for this TransportStream instance.\n * @param {Transpot} options.transport - winston@2 or older Transport to wrap.\n */\n\nconst LegacyTransportStream = module.exports = function LegacyTransportStream(options = {}) {\n TransportStream.call(this, options);\n if (!options.transport || typeof options.transport.log !== 'function') {\n throw new Error('Invalid transport, must be an object with a log method.');\n }\n\n this.transport = options.transport;\n this.level = this.level || options.transport.level;\n this.handleExceptions = this.handleExceptions || options.transport.handleExceptions;\n\n // Display our deprecation notice.\n this._deprecated();\n\n // Properly bubble up errors from the transport to the\n // LegacyTransportStream instance, but only once no matter how many times\n // this transport is shared.\n function transportError(err) {\n this.emit('error', err, this.transport);\n }\n\n if (!this.transport.__winstonError) {\n this.transport.__winstonError = transportError.bind(this);\n this.transport.on('error', this.transport.__winstonError);\n }\n};\n\n/*\n * Inherit from TransportStream using Node.js built-ins\n */\nutil.inherits(LegacyTransportStream, TransportStream);\n\n/**\n * Writes the info object to our transport instance.\n * @param {mixed} info - TODO: add param description.\n * @param {mixed} enc - TODO: add param description.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n * @private\n */\nLegacyTransportStream.prototype._write = function _write(info, enc, callback) {\n if (this.silent || (info.exception === true && !this.handleExceptions)) {\n return callback(null);\n }\n\n // Remark: This has to be handled in the base transport now because we\n // cannot conditionally write to our pipe targets as stream.\n if (!this.level || this.levels[this.level] >= this.levels[info[LEVEL]]) {\n this.transport.log(info[LEVEL], info.message, info, this._nop);\n }\n\n callback(null);\n};\n\n/**\n * Writes the batch of info objects (i.e. \"object chunks\") to our transport\n * instance after performing any necessary filtering.\n * @param {mixed} chunks - TODO: add params description.\n * @param {function} callback - TODO: add params description.\n * @returns {mixed} - TODO: add returns description.\n * @private\n */\nLegacyTransportStream.prototype._writev = function _writev(chunks, callback) {\n for (let i = 0; i < chunks.length; i++) {\n if (this._accept(chunks[i])) {\n this.transport.log(\n chunks[i].chunk[LEVEL],\n chunks[i].chunk.message,\n chunks[i].chunk,\n this._nop\n );\n chunks[i].callback();\n }\n }\n\n return callback(null);\n};\n\n/**\n * Displays a deprecation notice. Defined as a function so it can be\n * overriden in tests.\n * @returns {undefined}\n */\nLegacyTransportStream.prototype._deprecated = function _deprecated() {\n // eslint-disable-next-line no-console\n console.error([\n `${this.transport.name} is a legacy winston transport. Consider upgrading: `,\n '- Upgrade docs: https://github.com/winstonjs/winston/blob/master/UPGRADE-3.0.md'\n ].join('\\n'));\n};\n\n/**\n * Clean up error handling state on the legacy transport associated\n * with this instance.\n * @returns {undefined}\n */\nLegacyTransportStream.prototype.close = function close() {\n if (this.transport.close) {\n this.transport.close();\n }\n\n if (this.transport.__winstonError) {\n this.transport.removeListener('error', this.transport.__winstonError);\n this.transport.__winstonError = null;\n }\n};\n","'use strict';\n\nconst codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n\n function getMessage (arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message\n } else {\n return message(arg1, arg2, arg3)\n }\n }\n\n class NodeError extends Base {\n constructor (arg1, arg2, arg3) {\n super(getMessage(arg1, arg2, arg3));\n }\n }\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n const len = expected.length;\n expected = expected.map((i) => String(i));\n if (len > 2) {\n return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` +\n expected[len - 1];\n } else if (len === 2) {\n return `one of ${thing} ${expected[0]} or ${expected[1]}`;\n } else {\n return `of ${thing} ${expected[0]}`;\n }\n } else {\n return `of ${thing} ${String(expected)}`;\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n\treturn str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n\tif (this_len === undefined || this_len > str.length) {\n\t\tthis_len = str.length;\n\t}\n\treturn str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"'\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n let determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n let msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`;\n } else {\n const type = includes(name, '.') ? 'property' : 'argument';\n msg = `The \"${name}\" ${type} ${determiner} ${oneOf(expected, 'type')}`;\n }\n\n msg += `. Received type ${typeof actual}`;\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented'\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\n\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","'use strict';\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar ERR_INVALID_ARG_TYPE = require('../../../errors').codes.ERR_INVALID_ARG_TYPE;\n\nfunction from(Readable, iterable, opts) {\n var iterator;\n\n if (iterable && typeof iterable.next === 'function') {\n iterator = iterable;\n } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable);\n\n var readable = new Readable(_objectSpread({\n objectMode: true\n }, opts)); // Reading boolean to protect against _read\n // being called before last iteration completion.\n\n var reading = false;\n\n readable._read = function () {\n if (!reading) {\n reading = true;\n next();\n }\n };\n\n function next() {\n return _next2.apply(this, arguments);\n }\n\n function _next2() {\n _next2 = _asyncToGenerator(function* () {\n try {\n var _ref = yield iterator.next(),\n value = _ref.value,\n done = _ref.done;\n\n if (done) {\n readable.push(null);\n } else if (readable.push((yield value))) {\n next();\n } else {\n reading = false;\n }\n } catch (err) {\n readable.destroy(err);\n }\n });\n return _next2.apply(this, arguments);\n }\n\n return readable;\n}\n\nmodule.exports = from;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('stream');\n","/**\n * winston.js: Top-level include defining Winston.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst logform = require('logform');\nconst { warn } = require('./winston/common');\n\n/**\n * Expose version. Use `require` method for `webpack` support.\n * @type {string}\n */\nexports.version = require('../package.json').version;\n/**\n * Include transports defined by default by winston\n * @type {Array}\n */\nexports.transports = require('./winston/transports');\n/**\n * Expose utility methods\n * @type {Object}\n */\nexports.config = require('./winston/config');\n/**\n * Hoist format-related functionality from logform.\n * @type {Object}\n */\nexports.addColors = logform.levels;\n/**\n * Hoist format-related functionality from logform.\n * @type {Object}\n */\nexports.format = logform.format;\n/**\n * Expose core Logging-related prototypes.\n * @type {function}\n */\nexports.createLogger = require('./winston/create-logger');\n/**\n * Expose core Logging-related prototypes.\n * @type {Object}\n */\nexports.ExceptionHandler = require('./winston/exception-handler');\n/**\n * Expose core Logging-related prototypes.\n * @type {Object}\n */\nexports.RejectionHandler = require('./winston/rejection-handler');\n/**\n * Expose core Logging-related prototypes.\n * @type {Container}\n */\nexports.Container = require('./winston/container');\n/**\n * Expose core Logging-related prototypes.\n * @type {Object}\n */\nexports.Transport = require('winston-transport');\n/**\n * We create and expose a default `Container` to `winston.loggers` so that the\n * programmer may manage multiple `winston.Logger` instances without any\n * additional overhead.\n * @example\n * // some-file1.js\n * const logger = require('winston').loggers.get('something');\n *\n * // some-file2.js\n * const logger = require('winston').loggers.get('something');\n */\nexports.loggers = new exports.Container();\n\n/**\n * We create and expose a 'defaultLogger' so that the programmer may do the\n * following without the need to create an instance of winston.Logger directly:\n * @example\n * const winston = require('winston');\n * winston.log('info', 'some message');\n * winston.error('some error');\n */\nconst defaultLogger = exports.createLogger();\n\n// Pass through the target methods onto `winston.\nObject.keys(exports.config.npm.levels)\n .concat([\n 'log',\n 'query',\n 'stream',\n 'add',\n 'remove',\n 'clear',\n 'profile',\n 'startTimer',\n 'handleExceptions',\n 'unhandleExceptions',\n 'handleRejections',\n 'unhandleRejections',\n 'configure',\n 'child'\n ])\n .forEach(\n method => (exports[method] = (...args) => defaultLogger[method](...args))\n );\n\n/**\n * Define getter / setter for the default logger level which need to be exposed\n * by winston.\n * @type {string}\n */\nObject.defineProperty(exports, 'level', {\n get() {\n return defaultLogger.level;\n },\n set(val) {\n defaultLogger.level = val;\n }\n});\n\n/**\n * Define getter for `exceptions` which replaces `handleExceptions` and\n * `unhandleExceptions`.\n * @type {Object}\n */\nObject.defineProperty(exports, 'exceptions', {\n get() {\n return defaultLogger.exceptions;\n }\n});\n\n/**\n * Define getters / setters for appropriate properties of the default logger\n * which need to be exposed by winston.\n * @type {Logger}\n */\n['exitOnError'].forEach(prop => {\n Object.defineProperty(exports, prop, {\n get() {\n return defaultLogger[prop];\n },\n set(val) {\n defaultLogger[prop] = val;\n }\n });\n});\n\n/**\n * The default transports and exceptionHandlers for the default winston logger.\n * @type {Object}\n */\nObject.defineProperty(exports, 'default', {\n get() {\n return {\n exceptionHandlers: defaultLogger.exceptionHandlers,\n rejectionHandlers: defaultLogger.rejectionHandlers,\n transports: defaultLogger.transports\n };\n }\n});\n\n// Have friendlier breakage notices for properties that were exposed by default\n// on winston < 3.0.\nwarn.deprecated(exports, 'setLevels');\nwarn.forFunctions(exports, 'useFormat', ['cli']);\nwarn.forProperties(exports, 'useFormat', ['padLevels', 'stripColors']);\nwarn.forFunctions(exports, 'deprecated', [\n 'addRewriter',\n 'addFilter',\n 'clone',\n 'extend'\n]);\nwarn.forProperties(exports, 'deprecated', ['emitErrs', 'levelLength']);\n// Throw a useful error when users attempt to run `new winston.Logger`.\nwarn.moved(exports, 'createLogger', 'Logger');\n","/**\n * common.js: Internal helper and utility functions for winston.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst { format } = require('util');\n\n/**\n * Set of simple deprecation notices and a way to expose them for a set of\n * properties.\n * @type {Object}\n * @private\n */\nexports.warn = {\n deprecated(prop) {\n return () => {\n throw new Error(format('{ %s } was removed in winston@3.0.0.', prop));\n };\n },\n useFormat(prop) {\n return () => {\n throw new Error([\n format('{ %s } was removed in winston@3.0.0.', prop),\n 'Use a custom winston.format = winston.format(function) instead.'\n ].join('\\n'));\n };\n },\n forFunctions(obj, type, props) {\n props.forEach(prop => {\n obj[prop] = exports.warn[type](prop);\n });\n },\n moved(obj, movedTo, prop) {\n function movedNotice() {\n return () => {\n throw new Error([\n format('winston.%s was moved in winston@3.0.0.', prop),\n format('Use a winston.%s instead.', movedTo)\n ].join('\\n'));\n };\n }\n\n Object.defineProperty(obj, prop, {\n get: movedNotice,\n set: movedNotice\n });\n },\n forProperties(obj, type, props) {\n props.forEach(prop => {\n const notice = exports.warn[type](prop);\n Object.defineProperty(obj, prop, {\n get: notice,\n set: notice\n });\n });\n }\n};\n","/**\n * index.js: Default settings for all levels that winston knows about.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst logform = require('logform');\nconst { configs } = require('triple-beam');\n\n/**\n * Export config set for the CLI.\n * @type {Object}\n */\nexports.cli = logform.levels(configs.cli);\n\n/**\n * Export config set for npm.\n * @type {Object}\n */\nexports.npm = logform.levels(configs.npm);\n\n/**\n * Export config set for the syslog.\n * @type {Object}\n */\nexports.syslog = logform.levels(configs.syslog);\n\n/**\n * Hoist addColors from logform where it was refactored into in winston@3.\n * @type {Object}\n */\nexports.addColors = logform.levels;\n","/**\n * container.js: Inversion of control container for winston logger instances.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst createLogger = require('./create-logger');\n\n/**\n * Inversion of control container for winston logger instances.\n * @type {Container}\n */\nmodule.exports = class Container {\n /**\n * Constructor function for the Container object responsible for managing a\n * set of `winston.Logger` instances based on string ids.\n * @param {!Object} [options={}] - Default pass-thru options for Loggers.\n */\n constructor(options = {}) {\n this.loggers = new Map();\n this.options = options;\n }\n\n /**\n * Retrieves a `winston.Logger` instance for the specified `id`. If an\n * instance does not exist, one is created.\n * @param {!string} id - The id of the Logger to get.\n * @param {?Object} [options] - Options for the Logger instance.\n * @returns {Logger} - A configured Logger instance with a specified id.\n */\n add(id, options) {\n if (!this.loggers.has(id)) {\n // Remark: Simple shallow clone for configuration options in case we pass\n // in instantiated protoypal objects\n options = Object.assign({}, options || this.options);\n const existing = options.transports || this.options.transports;\n\n // Remark: Make sure if we have an array of transports we slice it to\n // make copies of those references.\n options.transports = existing ? existing.slice() : [];\n\n const logger = createLogger(options);\n logger.on('close', () => this._delete(id));\n this.loggers.set(id, logger);\n }\n\n return this.loggers.get(id);\n }\n\n /**\n * Retreives a `winston.Logger` instance for the specified `id`. If\n * an instance does not exist, one is created.\n * @param {!string} id - The id of the Logger to get.\n * @param {?Object} [options] - Options for the Logger instance.\n * @returns {Logger} - A configured Logger instance with a specified id.\n */\n get(id, options) {\n return this.add(id, options);\n }\n\n /**\n * Check if the container has a logger with the id.\n * @param {?string} id - The id of the Logger instance to find.\n * @returns {boolean} - Boolean value indicating if this instance has a\n * logger with the specified `id`.\n */\n has(id) {\n return !!this.loggers.has(id);\n }\n\n /**\n * Closes a `Logger` instance with the specified `id` if it exists.\n * If no `id` is supplied then all Loggers are closed.\n * @param {?string} id - The id of the Logger instance to close.\n * @returns {undefined}\n */\n close(id) {\n if (id) {\n return this._removeLogger(id);\n }\n\n this.loggers.forEach((val, key) => this._removeLogger(key));\n }\n\n /**\n * Remove a logger based on the id.\n * @param {!string} id - The id of the logger to remove.\n * @returns {undefined}\n * @private\n */\n _removeLogger(id) {\n if (!this.loggers.has(id)) {\n return;\n }\n\n const logger = this.loggers.get(id);\n logger.close();\n this._delete(id);\n }\n\n /**\n * Deletes a `Logger` instance with the specified `id`.\n * @param {!string} id - The id of the Logger instance to delete from\n * container.\n * @returns {undefined}\n * @private\n */\n _delete(id) {\n this.loggers.delete(id);\n }\n};\n","/**\n * create-logger.js: Logger factory for winston logger instances.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst { LEVEL } = require('triple-beam');\nconst config = require('./config');\nconst Logger = require('./logger');\nconst debug = require('@dabh/diagnostics')('winston:create-logger');\n\nfunction isLevelEnabledFunctionName(level) {\n return 'is' + level.charAt(0).toUpperCase() + level.slice(1) + 'Enabled';\n}\n\n/**\n * Create a new instance of a winston Logger. Creates a new\n * prototype for each instance.\n * @param {!Object} opts - Options for the created logger.\n * @returns {Logger} - A newly created logger instance.\n */\nmodule.exports = function (opts = {}) {\n //\n // Default levels: npm\n //\n opts.levels = opts.levels || config.npm.levels;\n\n /**\n * DerivedLogger to attach the logs level methods.\n * @type {DerivedLogger}\n * @extends {Logger}\n */\n class DerivedLogger extends Logger {\n /**\n * Create a new class derived logger for which the levels can be attached to\n * the prototype of. This is a V8 optimization that is well know to increase\n * performance of prototype functions.\n * @param {!Object} options - Options for the created logger.\n */\n constructor(options) {\n super(options);\n }\n }\n\n const logger = new DerivedLogger(opts);\n\n //\n // Create the log level methods for the derived logger.\n //\n Object.keys(opts.levels).forEach(function (level) {\n debug('Define prototype method for \"%s\"', level);\n if (level === 'log') {\n // eslint-disable-next-line no-console\n console.warn('Level \"log\" not defined: conflicts with the method \"log\". Use a different level name.');\n return;\n }\n\n //\n // Define prototype methods for each log level e.g.:\n // logger.log('info', msg) implies these methods are defined:\n // - logger.info(msg)\n // - logger.isInfoEnabled()\n //\n // Remark: to support logger.child this **MUST** be a function\n // so it'll always be called on the instance instead of a fixed\n // place in the prototype chain.\n //\n DerivedLogger.prototype[level] = function (...args) {\n // Prefer any instance scope, but default to \"root\" logger\n const self = this || logger;\n\n // Optimize the hot-path which is the single object.\n if (args.length === 1) {\n const [msg] = args;\n const info = msg && msg.message && msg || { message: msg };\n info.level = info[LEVEL] = level;\n self._addDefaultMeta(info);\n self.write(info);\n return (this || logger);\n }\n\n // When provided nothing assume the empty string\n if (args.length === 0) {\n self.log(level, '');\n return self;\n }\n\n // Otherwise build argument list which could potentially conform to\n // either:\n // . v3 API: log(obj)\n // 2. v1/v2 API: log(level, msg, ... [string interpolate], [{metadata}], [callback])\n return self.log(level, ...args);\n };\n\n DerivedLogger.prototype[isLevelEnabledFunctionName(level)] = function () {\n return (this || logger).isLevelEnabled(level);\n };\n });\n\n return logger;\n};\n","/**\n * exception-handler.js: Object for handling uncaughtException events.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst os = require('os');\nconst asyncForEach = require('async/forEach');\nconst debug = require('@dabh/diagnostics')('winston:exception');\nconst once = require('one-time');\nconst stackTrace = require('stack-trace');\nconst ExceptionStream = require('./exception-stream');\n\n/**\n * Object for handling uncaughtException events.\n * @type {ExceptionHandler}\n */\nmodule.exports = class ExceptionHandler {\n /**\n * TODO: add contructor description\n * @param {!Logger} logger - TODO: add param description\n */\n constructor(logger) {\n if (!logger) {\n throw new Error('Logger is required to handle exceptions');\n }\n\n this.logger = logger;\n this.handlers = new Map();\n }\n\n /**\n * Handles `uncaughtException` events for the current process by adding any\n * handlers passed in.\n * @returns {undefined}\n */\n handle(...args) {\n args.forEach(arg => {\n if (Array.isArray(arg)) {\n return arg.forEach(handler => this._addHandler(handler));\n }\n\n this._addHandler(arg);\n });\n\n if (!this.catcher) {\n this.catcher = this._uncaughtException.bind(this);\n process.on('uncaughtException', this.catcher);\n }\n }\n\n /**\n * Removes any handlers to `uncaughtException` events for the current\n * process. This does not modify the state of the `this.handlers` set.\n * @returns {undefined}\n */\n unhandle() {\n if (this.catcher) {\n process.removeListener('uncaughtException', this.catcher);\n this.catcher = false;\n\n Array.from(this.handlers.values())\n .forEach(wrapper => this.logger.unpipe(wrapper));\n }\n }\n\n /**\n * TODO: add method description\n * @param {Error} err - Error to get information about.\n * @returns {mixed} - TODO: add return description.\n */\n getAllInfo(err) {\n let { message } = err;\n if (!message && typeof err === 'string') {\n message = err;\n }\n\n return {\n error: err,\n // TODO (indexzero): how do we configure this?\n level: 'error',\n message: [\n `uncaughtException: ${(message || '(no error message)')}`,\n err.stack || ' No stack trace'\n ].join('\\n'),\n stack: err.stack,\n exception: true,\n date: new Date().toString(),\n process: this.getProcessInfo(),\n os: this.getOsInfo(),\n trace: this.getTrace(err)\n };\n }\n\n /**\n * Gets all relevant process information for the currently running process.\n * @returns {mixed} - TODO: add return description.\n */\n getProcessInfo() {\n return {\n pid: process.pid,\n uid: process.getuid ? process.getuid() : null,\n gid: process.getgid ? process.getgid() : null,\n cwd: process.cwd(),\n execPath: process.execPath,\n version: process.version,\n argv: process.argv,\n memoryUsage: process.memoryUsage()\n };\n }\n\n /**\n * Gets all relevant OS information for the currently running process.\n * @returns {mixed} - TODO: add return description.\n */\n getOsInfo() {\n return {\n loadavg: os.loadavg(),\n uptime: os.uptime()\n };\n }\n\n /**\n * Gets a stack trace for the specified error.\n * @param {mixed} err - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n */\n getTrace(err) {\n const trace = err ? stackTrace.parse(err) : stackTrace.get();\n return trace.map(site => {\n return {\n column: site.getColumnNumber(),\n file: site.getFileName(),\n function: site.getFunctionName(),\n line: site.getLineNumber(),\n method: site.getMethodName(),\n native: site.isNative()\n };\n });\n }\n\n /**\n * Helper method to add a transport as an exception handler.\n * @param {Transport} handler - The transport to add as an exception handler.\n * @returns {void}\n */\n _addHandler(handler) {\n if (!this.handlers.has(handler)) {\n handler.handleExceptions = true;\n const wrapper = new ExceptionStream(handler);\n this.handlers.set(handler, wrapper);\n this.logger.pipe(wrapper);\n }\n }\n\n /**\n * Logs all relevant information around the `err` and exits the current\n * process.\n * @param {Error} err - Error to handle\n * @returns {mixed} - TODO: add return description.\n * @private\n */\n _uncaughtException(err) {\n const info = this.getAllInfo(err);\n const handlers = this._getExceptionHandlers();\n // Calculate if we should exit on this error\n let doExit = typeof this.logger.exitOnError === 'function'\n ? this.logger.exitOnError(err)\n : this.logger.exitOnError;\n let timeout;\n\n if (!handlers.length && doExit) {\n // eslint-disable-next-line no-console\n console.warn('winston: exitOnError cannot be true with no exception handlers.');\n // eslint-disable-next-line no-console\n console.warn('winston: not exiting process.');\n doExit = false;\n }\n\n function gracefulExit() {\n debug('doExit', doExit);\n debug('process._exiting', process._exiting);\n\n if (doExit && !process._exiting) {\n // Remark: Currently ignoring any exceptions from transports when\n // catching uncaught exceptions.\n if (timeout) {\n clearTimeout(timeout);\n }\n // eslint-disable-next-line no-process-exit\n process.exit(1);\n }\n }\n\n if (!handlers || handlers.length === 0) {\n return process.nextTick(gracefulExit);\n }\n\n // Log to all transports attempting to listen for when they are completed.\n asyncForEach(handlers, (handler, next) => {\n const done = once(next);\n const transport = handler.transport || handler;\n\n // Debug wrapping so that we can inspect what's going on under the covers.\n function onDone(event) {\n return () => {\n debug(event);\n done();\n };\n }\n\n transport._ending = true;\n transport.once('finish', onDone('finished'));\n transport.once('error', onDone('error'));\n }, () => doExit && gracefulExit());\n\n this.logger.log(info);\n\n // If exitOnError is true, then only allow the logging of exceptions to\n // take up to `3000ms`.\n if (doExit) {\n timeout = setTimeout(gracefulExit, 3000);\n }\n }\n\n /**\n * Returns the list of transports and exceptionHandlers for this instance.\n * @returns {Array} - List of transports and exceptionHandlers for this\n * instance.\n * @private\n */\n _getExceptionHandlers() {\n // Remark (indexzero): since `logger.transports` returns all of the pipes\n // from the _readableState of the stream we actually get the join of the\n // explicit handlers and the implicit transports with\n // `handleExceptions: true`\n return this.logger.transports.filter(wrap => {\n const transport = wrap.transport || wrap;\n return transport.handleExceptions;\n });\n }\n};\n","/**\n * exception-stream.js: TODO: add file header handler.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst { Writable } = require('readable-stream');\n\n/**\n * TODO: add class description.\n * @type {ExceptionStream}\n * @extends {Writable}\n */\nmodule.exports = class ExceptionStream extends Writable {\n /**\n * Constructor function for the ExceptionStream responsible for wrapping a\n * TransportStream; only allowing writes of `info` objects with\n * `info.exception` set to true.\n * @param {!TransportStream} transport - Stream to filter to exceptions\n */\n constructor(transport) {\n super({ objectMode: true });\n\n if (!transport) {\n throw new Error('ExceptionStream requires a TransportStream instance.');\n }\n\n // Remark (indexzero): we set `handleExceptions` here because it's the\n // predicate checked in ExceptionHandler.prototype.__getExceptionHandlers\n this.handleExceptions = true;\n this.transport = transport;\n }\n\n /**\n * Writes the info object to our transport instance if (and only if) the\n * `exception` property is set on the info.\n * @param {mixed} info - TODO: add param description.\n * @param {mixed} enc - TODO: add param description.\n * @param {mixed} callback - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n * @private\n */\n _write(info, enc, callback) {\n if (info.exception) {\n return this.transport.log(info, callback);\n }\n\n callback();\n return true;\n }\n};\n","/**\n * logger.js: TODO: add file header description.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst { Stream, Transform } = require('readable-stream');\nconst asyncForEach = require('async/forEach');\nconst { LEVEL, SPLAT } = require('triple-beam');\nconst isStream = require('is-stream');\nconst ExceptionHandler = require('./exception-handler');\nconst RejectionHandler = require('./rejection-handler');\nconst LegacyTransportStream = require('winston-transport/legacy');\nconst Profiler = require('./profiler');\nconst { warn } = require('./common');\nconst config = require('./config');\n\n/**\n * Captures the number of format (i.e. %s strings) in a given string.\n * Based on `util.format`, see Node.js source:\n * https://github.com/nodejs/node/blob/b1c8f15c5f169e021f7c46eb7b219de95fe97603/lib/util.js#L201-L230\n * @type {RegExp}\n */\nconst formatRegExp = /%[scdjifoO%]/g;\n\n/**\n * TODO: add class description.\n * @type {Logger}\n * @extends {Transform}\n */\nclass Logger extends Transform {\n /**\n * Constructor function for the Logger object responsible for persisting log\n * messages and metadata to one or more transports.\n * @param {!Object} options - foo\n */\n constructor(options) {\n super({ objectMode: true });\n this.configure(options);\n }\n\n child(defaultRequestMetadata) {\n const logger = this;\n return Object.create(logger, {\n write: {\n value: function (info) {\n const infoClone = Object.assign(\n {},\n defaultRequestMetadata,\n info\n );\n\n // Object.assign doesn't copy inherited Error\n // properties so we have to do that explicitly\n //\n // Remark (indexzero): we should remove this\n // since the errors format will handle this case.\n //\n if (info instanceof Error) {\n infoClone.stack = info.stack;\n infoClone.message = info.message;\n }\n\n logger.write(infoClone);\n }\n }\n });\n }\n\n /**\n * This will wholesale reconfigure this instance by:\n * 1. Resetting all transports. Older transports will be removed implicitly.\n * 2. Set all other options including levels, colors, rewriters, filters,\n * exceptionHandlers, etc.\n * @param {!Object} options - TODO: add param description.\n * @returns {undefined}\n */\n configure({\n silent,\n format,\n defaultMeta,\n levels,\n level = 'info',\n exitOnError = true,\n transports,\n colors,\n emitErrs,\n formatters,\n padLevels,\n rewriters,\n stripColors,\n exceptionHandlers,\n rejectionHandlers\n } = {}) {\n // Reset transports if we already have them\n if (this.transports.length) {\n this.clear();\n }\n\n this.silent = silent;\n this.format = format || this.format || require('logform/json')();\n\n this.defaultMeta = defaultMeta || null;\n // Hoist other options onto this instance.\n this.levels = levels || this.levels || config.npm.levels;\n this.level = level;\n if (this.exceptions) {\n this.exceptions.unhandle();\n }\n if (this.rejections) {\n this.rejections.unhandle();\n }\n this.exceptions = new ExceptionHandler(this);\n this.rejections = new RejectionHandler(this);\n this.profilers = {};\n this.exitOnError = exitOnError;\n\n // Add all transports we have been provided.\n if (transports) {\n transports = Array.isArray(transports) ? transports : [transports];\n transports.forEach(transport => this.add(transport));\n }\n\n if (\n colors ||\n emitErrs ||\n formatters ||\n padLevels ||\n rewriters ||\n stripColors\n ) {\n throw new Error(\n [\n '{ colors, emitErrs, formatters, padLevels, rewriters, stripColors } were removed in winston@3.0.0.',\n 'Use a custom winston.format(function) instead.',\n 'See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md'\n ].join('\\n')\n );\n }\n\n if (exceptionHandlers) {\n this.exceptions.handle(exceptionHandlers);\n }\n if (rejectionHandlers) {\n this.rejections.handle(rejectionHandlers);\n }\n }\n\n isLevelEnabled(level) {\n const givenLevelValue = getLevelValue(this.levels, level);\n if (givenLevelValue === null) {\n return false;\n }\n\n const configuredLevelValue = getLevelValue(this.levels, this.level);\n if (configuredLevelValue === null) {\n return false;\n }\n\n if (!this.transports || this.transports.length === 0) {\n return configuredLevelValue >= givenLevelValue;\n }\n\n const index = this.transports.findIndex(transport => {\n let transportLevelValue = getLevelValue(this.levels, transport.level);\n if (transportLevelValue === null) {\n transportLevelValue = configuredLevelValue;\n }\n return transportLevelValue >= givenLevelValue;\n });\n return index !== -1;\n }\n\n /* eslint-disable valid-jsdoc */\n /**\n * Ensure backwards compatibility with a `log` method\n * @param {mixed} level - Level the log message is written at.\n * @param {mixed} msg - TODO: add param description.\n * @param {mixed} meta - TODO: add param description.\n * @returns {Logger} - TODO: add return description.\n *\n * @example\n * // Supports the existing API:\n * logger.log('info', 'Hello world', { custom: true });\n * logger.log('info', new Error('Yo, it\\'s on fire'));\n *\n * // Requires winston.format.splat()\n * logger.log('info', '%s %d%%', 'A string', 50, { thisIsMeta: true });\n *\n * // And the new API with a single JSON literal:\n * logger.log({ level: 'info', message: 'Hello world', custom: true });\n * logger.log({ level: 'info', message: new Error('Yo, it\\'s on fire') });\n *\n * // Also requires winston.format.splat()\n * logger.log({\n * level: 'info',\n * message: '%s %d%%',\n * [SPLAT]: ['A string', 50],\n * meta: { thisIsMeta: true }\n * });\n *\n */\n /* eslint-enable valid-jsdoc */\n log(level, msg, ...splat) {\n // eslint-disable-line max-params\n // Optimize for the hotpath of logging JSON literals\n if (arguments.length === 1) {\n // Yo dawg, I heard you like levels ... seriously ...\n // In this context the LHS `level` here is actually the `info` so read\n // this as: info[LEVEL] = info.level;\n level[LEVEL] = level.level;\n this._addDefaultMeta(level);\n this.write(level);\n return this;\n }\n\n // Slightly less hotpath, but worth optimizing for.\n if (arguments.length === 2) {\n if (msg && typeof msg === 'object') {\n msg[LEVEL] = msg.level = level;\n this._addDefaultMeta(msg);\n this.write(msg);\n return this;\n }\n\n msg = { [LEVEL]: level, level, message: msg };\n this._addDefaultMeta(msg);\n this.write(msg);\n return this;\n }\n\n const [meta] = splat;\n if (typeof meta === 'object' && meta !== null) {\n // Extract tokens, if none available default to empty array to\n // ensure consistancy in expected results\n const tokens = msg && msg.match && msg.match(formatRegExp);\n\n if (!tokens) {\n const info = Object.assign({}, this.defaultMeta, meta, {\n [LEVEL]: level,\n [SPLAT]: splat,\n level,\n message: msg\n });\n\n if (meta.message) info.message = `${info.message} ${meta.message}`;\n if (meta.stack) info.stack = meta.stack;\n\n this.write(info);\n return this;\n }\n }\n\n this.write(Object.assign({}, this.defaultMeta, {\n [LEVEL]: level,\n [SPLAT]: splat,\n level,\n message: msg\n }));\n\n return this;\n }\n\n /**\n * Pushes data so that it can be picked up by all of our pipe targets.\n * @param {mixed} info - TODO: add param description.\n * @param {mixed} enc - TODO: add param description.\n * @param {mixed} callback - Continues stream processing.\n * @returns {undefined}\n * @private\n */\n _transform(info, enc, callback) {\n if (this.silent) {\n return callback();\n }\n\n // [LEVEL] is only soft guaranteed to be set here since we are a proper\n // stream. It is likely that `info` came in through `.log(info)` or\n // `.info(info)`. If it is not defined, however, define it.\n // This LEVEL symbol is provided by `triple-beam` and also used in:\n // - logform\n // - winston-transport\n // - abstract-winston-transport\n if (!info[LEVEL]) {\n info[LEVEL] = info.level;\n }\n\n // Remark: really not sure what to do here, but this has been reported as\n // very confusing by pre winston@2.0.0 users as quite confusing when using\n // custom levels.\n if (!this.levels[info[LEVEL]] && this.levels[info[LEVEL]] !== 0) {\n // eslint-disable-next-line no-console\n console.error('[winston] Unknown logger level: %s', info[LEVEL]);\n }\n\n // Remark: not sure if we should simply error here.\n if (!this._readableState.pipes) {\n // eslint-disable-next-line no-console\n console.error(\n '[winston] Attempt to write logs with no transports %j',\n info\n );\n }\n\n // Here we write to the `format` pipe-chain, which on `readable` above will\n // push the formatted `info` Object onto the buffer for this instance. We trap\n // (and re-throw) any errors generated by the user-provided format, but also\n // guarantee that the streams callback is invoked so that we can continue flowing.\n try {\n this.push(this.format.transform(info, this.format.options));\n } catch (ex) {\n throw ex;\n } finally {\n // eslint-disable-next-line callback-return\n callback();\n }\n }\n\n /**\n * Delays the 'finish' event until all transport pipe targets have\n * also emitted 'finish' or are already finished.\n * @param {mixed} callback - Continues stream processing.\n */\n _final(callback) {\n const transports = this.transports.slice();\n asyncForEach(\n transports,\n (transport, next) => {\n if (!transport || transport.finished) return setImmediate(next);\n transport.once('finish', next);\n transport.end();\n },\n callback\n );\n }\n\n /**\n * Adds the transport to this logger instance by piping to it.\n * @param {mixed} transport - TODO: add param description.\n * @returns {Logger} - TODO: add return description.\n */\n add(transport) {\n // Support backwards compatibility with all existing `winston < 3.x.x`\n // transports which meet one of two criteria:\n // 1. They inherit from winston.Transport in < 3.x.x which is NOT a stream.\n // 2. They expose a log method which has a length greater than 2 (i.e. more then\n // just `log(info, callback)`.\n const target =\n !isStream(transport) || transport.log.length > 2\n ? new LegacyTransportStream({ transport })\n : transport;\n\n if (!target._writableState || !target._writableState.objectMode) {\n throw new Error(\n 'Transports must WritableStreams in objectMode. Set { objectMode: true }.'\n );\n }\n\n // Listen for the `error` event and the `warn` event on the new Transport.\n this._onEvent('error', target);\n this._onEvent('warn', target);\n this.pipe(target);\n\n if (transport.handleExceptions) {\n this.exceptions.handle();\n }\n\n if (transport.handleRejections) {\n this.rejections.handle();\n }\n\n return this;\n }\n\n /**\n * Removes the transport from this logger instance by unpiping from it.\n * @param {mixed} transport - TODO: add param description.\n * @returns {Logger} - TODO: add return description.\n */\n remove(transport) {\n if (!transport) return this;\n let target = transport;\n if (!isStream(transport) || transport.log.length > 2) {\n target = this.transports.filter(\n match => match.transport === transport\n )[0];\n }\n\n if (target) {\n this.unpipe(target);\n }\n return this;\n }\n\n /**\n * Removes all transports from this logger instance.\n * @returns {Logger} - TODO: add return description.\n */\n clear() {\n this.unpipe();\n return this;\n }\n\n /**\n * Cleans up resources (streams, event listeners) for all transports\n * associated with this instance (if necessary).\n * @returns {Logger} - TODO: add return description.\n */\n close() {\n this.exceptions.unhandle();\n this.rejections.unhandle();\n this.clear();\n this.emit('close');\n return this;\n }\n\n /**\n * Sets the `target` levels specified on this instance.\n * @param {Object} Target levels to use on this instance.\n */\n setLevels() {\n warn.deprecated('setLevels');\n }\n\n /**\n * Queries the all transports for this instance with the specified `options`.\n * This will aggregate each transport's results into one object containing\n * a property per transport.\n * @param {Object} options - Query options for this instance.\n * @param {function} callback - Continuation to respond to when complete.\n */\n query(options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n options = options || {};\n const results = {};\n const queryObject = Object.assign({}, options.query || {});\n\n // Helper function to query a single transport\n function queryTransport(transport, next) {\n if (options.query && typeof transport.formatQuery === 'function') {\n options.query = transport.formatQuery(queryObject);\n }\n\n transport.query(options, (err, res) => {\n if (err) {\n return next(err);\n }\n\n if (typeof transport.formatResults === 'function') {\n res = transport.formatResults(res, options.format);\n }\n\n next(null, res);\n });\n }\n\n // Helper function to accumulate the results from `queryTransport` into\n // the `results`.\n function addResults(transport, next) {\n queryTransport(transport, (err, result) => {\n // queryTransport could potentially invoke the callback multiple times\n // since Transport code can be unpredictable.\n if (next) {\n result = err || result;\n if (result) {\n results[transport.name] = result;\n }\n\n // eslint-disable-next-line callback-return\n next();\n }\n\n next = null;\n });\n }\n\n // Iterate over the transports in parallel setting the appropriate key in\n // the `results`.\n asyncForEach(\n this.transports.filter(transport => !!transport.query),\n addResults,\n () => callback(null, results)\n );\n }\n\n /**\n * Returns a log stream for all transports. Options object is optional.\n * @param{Object} options={} - Stream options for this instance.\n * @returns {Stream} - TODO: add return description.\n */\n stream(options = {}) {\n const out = new Stream();\n const streams = [];\n\n out._streams = streams;\n out.destroy = () => {\n let i = streams.length;\n while (i--) {\n streams[i].destroy();\n }\n };\n\n // Create a list of all transports for this instance.\n this.transports\n .filter(transport => !!transport.stream)\n .forEach(transport => {\n const str = transport.stream(options);\n if (!str) {\n return;\n }\n\n streams.push(str);\n\n str.on('log', log => {\n log.transport = log.transport || [];\n log.transport.push(transport.name);\n out.emit('log', log);\n });\n\n str.on('error', err => {\n err.transport = err.transport || [];\n err.transport.push(transport.name);\n out.emit('error', err);\n });\n });\n\n return out;\n }\n\n /**\n * Returns an object corresponding to a specific timing. When done is called\n * the timer will finish and log the duration. e.g.:\n * @returns {Profile} - TODO: add return description.\n * @example\n * const timer = winston.startTimer()\n * setTimeout(() => {\n * timer.done({\n * message: 'Logging message'\n * });\n * }, 1000);\n */\n startTimer() {\n return new Profiler(this);\n }\n\n /**\n * Tracks the time inbetween subsequent calls to this method with the same\n * `id` parameter. The second call to this method will log the difference in\n * milliseconds along with the message.\n * @param {string} id Unique id of the profiler\n * @returns {Logger} - TODO: add return description.\n */\n profile(id, ...args) {\n const time = Date.now();\n if (this.profilers[id]) {\n const timeEnd = this.profilers[id];\n delete this.profilers[id];\n\n // Attempt to be kind to users if they are still using older APIs.\n if (typeof args[args.length - 2] === 'function') {\n // eslint-disable-next-line no-console\n console.warn(\n 'Callback function no longer supported as of winston@3.0.0'\n );\n args.pop();\n }\n\n // Set the duration property of the metadata\n const info = typeof args[args.length - 1] === 'object' ? args.pop() : {};\n info.level = info.level || 'info';\n info.durationMs = time - timeEnd;\n info.message = info.message || id;\n return this.write(info);\n }\n\n this.profilers[id] = time;\n return this;\n }\n\n /**\n * Backwards compatibility to `exceptions.handle` in winston < 3.0.0.\n * @returns {undefined}\n * @deprecated\n */\n handleExceptions(...args) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Deprecated: .handleExceptions() will be removed in winston@4. Use .exceptions.handle()'\n );\n this.exceptions.handle(...args);\n }\n\n /**\n * Backwards compatibility to `exceptions.handle` in winston < 3.0.0.\n * @returns {undefined}\n * @deprecated\n */\n unhandleExceptions(...args) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Deprecated: .unhandleExceptions() will be removed in winston@4. Use .exceptions.unhandle()'\n );\n this.exceptions.unhandle(...args);\n }\n\n /**\n * Throw a more meaningful deprecation notice\n * @throws {Error} - TODO: add throws description.\n */\n cli() {\n throw new Error(\n [\n 'Logger.cli() was removed in winston@3.0.0',\n 'Use a custom winston.formats.cli() instead.',\n 'See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md'\n ].join('\\n')\n );\n }\n\n /**\n * Bubbles the `event` that occured on the specified `transport` up\n * from this instance.\n * @param {string} event - The event that occured\n * @param {Object} transport - Transport on which the event occured\n * @private\n */\n _onEvent(event, transport) {\n function transportEvent(err) {\n // https://github.com/winstonjs/winston/issues/1364\n if (event === 'error' && !this.transports.includes(transport)) {\n this.add(transport);\n }\n this.emit(event, err, transport);\n }\n\n if (!transport['__winston' + event]) {\n transport['__winston' + event] = transportEvent.bind(this);\n transport.on(event, transport['__winston' + event]);\n }\n }\n\n _addDefaultMeta(msg) {\n if (this.defaultMeta) {\n Object.assign(msg, this.defaultMeta);\n }\n }\n}\n\nfunction getLevelValue(levels, level) {\n const value = levels[level];\n if (!value && value !== 0) {\n return null;\n }\n return value;\n}\n\n/**\n * Represents the current readableState pipe targets for this Logger instance.\n * @type {Array|Object}\n */\nObject.defineProperty(Logger.prototype, 'transports', {\n configurable: false,\n enumerable: true,\n get() {\n const { pipes } = this._readableState;\n return !Array.isArray(pipes) ? [pipes].filter(Boolean) : pipes;\n }\n});\n\nmodule.exports = Logger;\n","/**\n * profiler.js: TODO: add file header description.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\n/**\n * TODO: add class description.\n * @type {Profiler}\n * @private\n */\nmodule.exports = class Profiler {\n /**\n * Constructor function for the Profiler instance used by\n * `Logger.prototype.startTimer`. When done is called the timer will finish\n * and log the duration.\n * @param {!Logger} logger - TODO: add param description.\n * @private\n */\n constructor(logger) {\n if (!logger) {\n throw new Error('Logger is required for profiling.');\n }\n\n this.logger = logger;\n this.start = Date.now();\n }\n\n /**\n * Ends the current timer (i.e. Profiler) instance and logs the `msg` along\n * with the duration since creation.\n * @returns {mixed} - TODO: add return description.\n * @private\n */\n done(...args) {\n if (typeof args[args.length - 1] === 'function') {\n // eslint-disable-next-line no-console\n console.warn('Callback function no longer supported as of winston@3.0.0');\n args.pop();\n }\n\n const info = typeof args[args.length - 1] === 'object' ? args.pop() : {};\n info.level = info.level || 'info';\n info.durationMs = (Date.now()) - this.start;\n\n return this.logger.write(info);\n }\n};\n","/**\n * exception-handler.js: Object for handling uncaughtException events.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst os = require('os');\nconst asyncForEach = require('async/forEach');\nconst debug = require('@dabh/diagnostics')('winston:rejection');\nconst once = require('one-time');\nconst stackTrace = require('stack-trace');\nconst ExceptionStream = require('./exception-stream');\n\n/**\n * Object for handling unhandledRejection events.\n * @type {RejectionHandler}\n */\nmodule.exports = class RejectionHandler {\n /**\n * TODO: add contructor description\n * @param {!Logger} logger - TODO: add param description\n */\n constructor(logger) {\n if (!logger) {\n throw new Error('Logger is required to handle rejections');\n }\n\n this.logger = logger;\n this.handlers = new Map();\n }\n\n /**\n * Handles `unhandledRejection` events for the current process by adding any\n * handlers passed in.\n * @returns {undefined}\n */\n handle(...args) {\n args.forEach(arg => {\n if (Array.isArray(arg)) {\n return arg.forEach(handler => this._addHandler(handler));\n }\n\n this._addHandler(arg);\n });\n\n if (!this.catcher) {\n this.catcher = this._unhandledRejection.bind(this);\n process.on('unhandledRejection', this.catcher);\n }\n }\n\n /**\n * Removes any handlers to `unhandledRejection` events for the current\n * process. This does not modify the state of the `this.handlers` set.\n * @returns {undefined}\n */\n unhandle() {\n if (this.catcher) {\n process.removeListener('unhandledRejection', this.catcher);\n this.catcher = false;\n\n Array.from(this.handlers.values()).forEach(wrapper =>\n this.logger.unpipe(wrapper)\n );\n }\n }\n\n /**\n * TODO: add method description\n * @param {Error} err - Error to get information about.\n * @returns {mixed} - TODO: add return description.\n */\n getAllInfo(err) {\n let message = null;\n if (err) {\n message = typeof err === 'string' ? err : err.message;\n }\n\n return {\n error: err,\n // TODO (indexzero): how do we configure this?\n level: 'error',\n message: [\n `unhandledRejection: ${message || '(no error message)'}`,\n err && err.stack || ' No stack trace'\n ].join('\\n'),\n stack: err && err.stack,\n exception: true,\n date: new Date().toString(),\n process: this.getProcessInfo(),\n os: this.getOsInfo(),\n trace: this.getTrace(err)\n };\n }\n\n /**\n * Gets all relevant process information for the currently running process.\n * @returns {mixed} - TODO: add return description.\n */\n getProcessInfo() {\n return {\n pid: process.pid,\n uid: process.getuid ? process.getuid() : null,\n gid: process.getgid ? process.getgid() : null,\n cwd: process.cwd(),\n execPath: process.execPath,\n version: process.version,\n argv: process.argv,\n memoryUsage: process.memoryUsage()\n };\n }\n\n /**\n * Gets all relevant OS information for the currently running process.\n * @returns {mixed} - TODO: add return description.\n */\n getOsInfo() {\n return {\n loadavg: os.loadavg(),\n uptime: os.uptime()\n };\n }\n\n /**\n * Gets a stack trace for the specified error.\n * @param {mixed} err - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n */\n getTrace(err) {\n const trace = err ? stackTrace.parse(err) : stackTrace.get();\n return trace.map(site => {\n return {\n column: site.getColumnNumber(),\n file: site.getFileName(),\n function: site.getFunctionName(),\n line: site.getLineNumber(),\n method: site.getMethodName(),\n native: site.isNative()\n };\n });\n }\n\n /**\n * Helper method to add a transport as an exception handler.\n * @param {Transport} handler - The transport to add as an exception handler.\n * @returns {void}\n */\n _addHandler(handler) {\n if (!this.handlers.has(handler)) {\n handler.handleRejections = true;\n const wrapper = new ExceptionStream(handler);\n this.handlers.set(handler, wrapper);\n this.logger.pipe(wrapper);\n }\n }\n\n /**\n * Logs all relevant information around the `err` and exits the current\n * process.\n * @param {Error} err - Error to handle\n * @returns {mixed} - TODO: add return description.\n * @private\n */\n _unhandledRejection(err) {\n const info = this.getAllInfo(err);\n const handlers = this._getRejectionHandlers();\n // Calculate if we should exit on this error\n let doExit =\n typeof this.logger.exitOnError === 'function'\n ? this.logger.exitOnError(err)\n : this.logger.exitOnError;\n let timeout;\n\n if (!handlers.length && doExit) {\n // eslint-disable-next-line no-console\n console.warn('winston: exitOnError cannot be true with no rejection handlers.');\n // eslint-disable-next-line no-console\n console.warn('winston: not exiting process.');\n doExit = false;\n }\n\n function gracefulExit() {\n debug('doExit', doExit);\n debug('process._exiting', process._exiting);\n\n if (doExit && !process._exiting) {\n // Remark: Currently ignoring any rejections from transports when\n // catching unhandled rejections.\n if (timeout) {\n clearTimeout(timeout);\n }\n // eslint-disable-next-line no-process-exit\n process.exit(1);\n }\n }\n\n if (!handlers || handlers.length === 0) {\n return process.nextTick(gracefulExit);\n }\n\n // Log to all transports attempting to listen for when they are completed.\n asyncForEach(\n handlers,\n (handler, next) => {\n const done = once(next);\n const transport = handler.transport || handler;\n\n // Debug wrapping so that we can inspect what's going on under the covers.\n function onDone(event) {\n return () => {\n debug(event);\n done();\n };\n }\n\n transport._ending = true;\n transport.once('finish', onDone('finished'));\n transport.once('error', onDone('error'));\n },\n () => doExit && gracefulExit()\n );\n\n this.logger.log(info);\n\n // If exitOnError is true, then only allow the logging of exceptions to\n // take up to `3000ms`.\n if (doExit) {\n timeout = setTimeout(gracefulExit, 3000);\n }\n }\n\n /**\n * Returns the list of transports and exceptionHandlers for this instance.\n * @returns {Array} - List of transports and exceptionHandlers for this\n * instance.\n * @private\n */\n _getRejectionHandlers() {\n // Remark (indexzero): since `logger.transports` returns all of the pipes\n // from the _readableState of the stream we actually get the join of the\n // explicit handlers and the implicit transports with\n // `handleRejections: true`\n return this.logger.transports.filter(wrap => {\n const transport = wrap.transport || wrap;\n return transport.handleRejections;\n });\n }\n};\n","/**\n * tail-file.js: TODO: add file header description.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst fs = require('fs');\nconst { StringDecoder } = require('string_decoder');\nconst { Stream } = require('readable-stream');\n\n/**\n * Simple no-op function.\n * @returns {undefined}\n */\nfunction noop() {}\n\n/**\n * TODO: add function description.\n * @param {Object} options - Options for tail.\n * @param {function} iter - Iterator function to execute on every line.\n* `tail -f` a file. Options must include file.\n * @returns {mixed} - TODO: add return description.\n */\nmodule.exports = (options, iter) => {\n const buffer = Buffer.alloc(64 * 1024);\n const decode = new StringDecoder('utf8');\n const stream = new Stream();\n let buff = '';\n let pos = 0;\n let row = 0;\n\n if (options.start === -1) {\n delete options.start;\n }\n\n stream.readable = true;\n stream.destroy = () => {\n stream.destroyed = true;\n stream.emit('end');\n stream.emit('close');\n };\n\n fs.open(options.file, 'a+', '0644', (err, fd) => {\n if (err) {\n if (!iter) {\n stream.emit('error', err);\n } else {\n iter(err);\n }\n stream.destroy();\n return;\n }\n\n (function read() {\n if (stream.destroyed) {\n fs.close(fd, noop);\n return;\n }\n\n return fs.read(fd, buffer, 0, buffer.length, pos, (error, bytes) => {\n if (error) {\n if (!iter) {\n stream.emit('error', error);\n } else {\n iter(error);\n }\n stream.destroy();\n return;\n }\n\n if (!bytes) {\n if (buff) {\n // eslint-disable-next-line eqeqeq\n if (options.start == null || row > options.start) {\n if (!iter) {\n stream.emit('line', buff);\n } else {\n iter(null, buff);\n }\n }\n row++;\n buff = '';\n }\n return setTimeout(read, 1000);\n }\n\n let data = decode.write(buffer.slice(0, bytes));\n if (!iter) {\n stream.emit('data', data);\n }\n\n data = (buff + data).split(/\\n+/);\n\n const l = data.length - 1;\n let i = 0;\n\n for (; i < l; i++) {\n // eslint-disable-next-line eqeqeq\n if (options.start == null || row > options.start) {\n if (!iter) {\n stream.emit('line', data[i]);\n } else {\n iter(null, data[i]);\n }\n }\n row++;\n }\n\n buff = data[l];\n pos += bytes;\n return read();\n });\n }());\n });\n\n if (!iter) {\n return stream;\n }\n\n return stream.destroy;\n};\n","/* eslint-disable no-console */\n/*\n * console.js: Transport for outputting to the console.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst os = require('os');\nconst { LEVEL, MESSAGE } = require('triple-beam');\nconst TransportStream = require('winston-transport');\n\n/**\n * Transport for outputting to the console.\n * @type {Console}\n * @extends {TransportStream}\n */\nmodule.exports = class Console extends TransportStream {\n /**\n * Constructor function for the Console transport object responsible for\n * persisting log messages and metadata to a terminal or TTY.\n * @param {!Object} [options={}] - Options for this instance.\n */\n constructor(options = {}) {\n super(options);\n\n // Expose the name of this Transport on the prototype\n this.name = options.name || 'console';\n this.stderrLevels = this._stringArrayToSet(options.stderrLevels);\n this.consoleWarnLevels = this._stringArrayToSet(options.consoleWarnLevels);\n this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL;\n\n this.setMaxListeners(30);\n }\n\n /**\n * Core logging method exposed to Winston.\n * @param {Object} info - TODO: add param description.\n * @param {Function} callback - TODO: add param description.\n * @returns {undefined}\n */\n log(info, callback) {\n setImmediate(() => this.emit('logged', info));\n\n // Remark: what if there is no raw...?\n if (this.stderrLevels[info[LEVEL]]) {\n if (console._stderr) {\n // Node.js maps `process.stderr` to `console._stderr`.\n console._stderr.write(`${info[MESSAGE]}${this.eol}`);\n } else {\n // console.error adds a newline\n console.error(info[MESSAGE]);\n }\n\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n return;\n } else if (this.consoleWarnLevels[info[LEVEL]]) {\n if (console._stderr) {\n // Node.js maps `process.stderr` to `console._stderr`.\n // in Node.js console.warn is an alias for console.error\n console._stderr.write(`${info[MESSAGE]}${this.eol}`);\n } else {\n // console.warn adds a newline\n console.warn(info[MESSAGE]);\n }\n\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n return;\n }\n\n if (console._stdout) {\n // Node.js maps `process.stdout` to `console._stdout`.\n console._stdout.write(`${info[MESSAGE]}${this.eol}`);\n } else {\n // console.log adds a newline.\n console.log(info[MESSAGE]);\n }\n\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n }\n\n /**\n * Returns a Set-like object with strArray's elements as keys (each with the\n * value true).\n * @param {Array} strArray - Array of Set-elements as strings.\n * @param {?string} [errMsg] - Custom error message thrown on invalid input.\n * @returns {Object} - TODO: add return description.\n * @private\n */\n _stringArrayToSet(strArray, errMsg) {\n if (!strArray)\n return {};\n\n errMsg = errMsg || 'Cannot make set from type other than Array of string elements';\n\n if (!Array.isArray(strArray)) {\n throw new Error(errMsg);\n }\n\n return strArray.reduce((set, el) => {\n if (typeof el !== 'string') {\n throw new Error(errMsg);\n }\n set[el] = true;\n\n return set;\n }, {});\n }\n};\n","/* eslint-disable complexity,max-statements */\n/**\n * file.js: Transport for outputting to a local log file.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst fs = require('fs');\nconst path = require('path');\nconst asyncSeries = require('async/series');\nconst zlib = require('zlib');\nconst { MESSAGE } = require('triple-beam');\nconst { Stream, PassThrough } = require('readable-stream');\nconst TransportStream = require('winston-transport');\nconst debug = require('@dabh/diagnostics')('winston:file');\nconst os = require('os');\nconst tailFile = require('../tail-file');\n\n/**\n * Transport for outputting to a local log file.\n * @type {File}\n * @extends {TransportStream}\n */\nmodule.exports = class File extends TransportStream {\n /**\n * Constructor function for the File transport object responsible for\n * persisting log messages and metadata to one or more files.\n * @param {Object} options - Options for this instance.\n */\n constructor(options = {}) {\n super(options);\n\n // Expose the name of this Transport on the prototype.\n this.name = options.name || 'file';\n\n // Helper function which throws an `Error` in the event that any of the\n // rest of the arguments is present in `options`.\n function throwIf(target, ...args) {\n args.slice(1).forEach(name => {\n if (options[name]) {\n throw new Error(`Cannot set ${name} and ${target} together`);\n }\n });\n }\n\n // Setup the base stream that always gets piped to to handle buffering.\n this._stream = new PassThrough();\n this._stream.setMaxListeners(30);\n\n // Bind this context for listener methods.\n this._onError = this._onError.bind(this);\n\n if (options.filename || options.dirname) {\n throwIf('filename or dirname', 'stream');\n this._basename = this.filename = options.filename\n ? path.basename(options.filename)\n : 'winston.log';\n\n this.dirname = options.dirname || path.dirname(options.filename);\n this.options = options.options || { flags: 'a' };\n } else if (options.stream) {\n // eslint-disable-next-line no-console\n console.warn('options.stream will be removed in winston@4. Use winston.transports.Stream');\n throwIf('stream', 'filename', 'maxsize');\n this._dest = this._stream.pipe(this._setupStream(options.stream));\n this.dirname = path.dirname(this._dest.path);\n // We need to listen for drain events when write() returns false. This\n // can make node mad at times.\n } else {\n throw new Error('Cannot log to file without filename or stream.');\n }\n\n this.maxsize = options.maxsize || null;\n this.rotationFormat = options.rotationFormat || false;\n this.zippedArchive = options.zippedArchive || false;\n this.maxFiles = options.maxFiles || null;\n this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL;\n this.tailable = options.tailable || false;\n\n // Internal state variables representing the number of files this instance\n // has created and the current size (in bytes) of the current logfile.\n this._size = 0;\n this._pendingSize = 0;\n this._created = 0;\n this._drain = false;\n this._opening = false;\n this._ending = false;\n\n if (this.dirname) this._createLogDirIfNotExist(this.dirname);\n this.open();\n }\n\n finishIfEnding() {\n if (this._ending) {\n if (this._opening) {\n this.once('open', () => {\n this._stream.once('finish', () => this.emit('finish'));\n setImmediate(() => this._stream.end());\n });\n } else {\n this._stream.once('finish', () => this.emit('finish'));\n setImmediate(() => this._stream.end());\n }\n }\n }\n\n\n /**\n * Core logging method exposed to Winston. Metadata is optional.\n * @param {Object} info - TODO: add param description.\n * @param {Function} callback - TODO: add param description.\n * @returns {undefined}\n */\n log(info, callback = () => {}) {\n // Remark: (jcrugzz) What is necessary about this callback(null, true) now\n // when thinking about 3.x? Should silent be handled in the base\n // TransportStream _write method?\n if (this.silent) {\n callback();\n return true;\n }\n\n // Output stream buffer is full and has asked us to wait for the drain event\n if (this._drain) {\n this._stream.once('drain', () => {\n this._drain = false;\n this.log(info, callback);\n });\n return;\n }\n if (this._rotate) {\n this._stream.once('rotate', () => {\n this._rotate = false;\n this.log(info, callback);\n });\n return;\n }\n\n // Grab the raw string and append the expected EOL.\n const output = `${info[MESSAGE]}${this.eol}`;\n const bytes = Buffer.byteLength(output);\n\n // After we have written to the PassThrough check to see if we need\n // to rotate to the next file.\n //\n // Remark: This gets called too early and does not depict when data\n // has been actually flushed to disk.\n function logged() {\n this._size += bytes;\n this._pendingSize -= bytes;\n\n debug('logged %s %s', this._size, output);\n this.emit('logged', info);\n\n // Do not attempt to rotate files while opening\n if (this._opening) {\n return;\n }\n\n // Check to see if we need to end the stream and create a new one.\n if (!this._needsNewFile()) {\n return;\n }\n\n // End the current stream, ensure it flushes and create a new one.\n // This could potentially be optimized to not run a stat call but its\n // the safest way since we are supporting `maxFiles`.\n this._rotate = true;\n this._endStream(() => this._rotateFile());\n }\n\n // Keep track of the pending bytes being written while files are opening\n // in order to properly rotate the PassThrough this._stream when the file\n // eventually does open.\n this._pendingSize += bytes;\n if (this._opening\n && !this.rotatedWhileOpening\n && this._needsNewFile(this._size + this._pendingSize)) {\n this.rotatedWhileOpening = true;\n }\n\n const written = this._stream.write(output, logged.bind(this));\n if (!written) {\n this._drain = true;\n this._stream.once('drain', () => {\n this._drain = false;\n callback();\n });\n } else {\n callback(); // eslint-disable-line callback-return\n }\n\n debug('written', written, this._drain);\n\n this.finishIfEnding();\n\n return written;\n }\n\n /**\n * Query the transport. Options object is optional.\n * @param {Object} options - Loggly-like query options for this instance.\n * @param {function} callback - Continuation to respond to when complete.\n * TODO: Refactor me.\n */\n query(options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n options = normalizeQuery(options);\n const file = path.join(this.dirname, this.filename);\n let buff = '';\n let results = [];\n let row = 0;\n\n const stream = fs.createReadStream(file, {\n encoding: 'utf8'\n });\n\n stream.on('error', err => {\n if (stream.readable) {\n stream.destroy();\n }\n if (!callback) {\n return;\n }\n\n return err.code !== 'ENOENT' ? callback(err) : callback(null, results);\n });\n\n stream.on('data', data => {\n data = (buff + data).split(/\\n+/);\n const l = data.length - 1;\n let i = 0;\n\n for (; i < l; i++) {\n if (!options.start || row >= options.start) {\n add(data[i]);\n }\n row++;\n }\n\n buff = data[l];\n });\n\n stream.on('close', () => {\n if (buff) {\n add(buff, true);\n }\n if (options.order === 'desc') {\n results = results.reverse();\n }\n\n // eslint-disable-next-line callback-return\n if (callback) callback(null, results);\n });\n\n function add(buff, attempt) {\n try {\n const log = JSON.parse(buff);\n if (check(log)) {\n push(log);\n }\n } catch (e) {\n if (!attempt) {\n stream.emit('error', e);\n }\n }\n }\n\n function push(log) {\n if (\n options.rows &&\n results.length >= options.rows &&\n options.order !== 'desc'\n ) {\n if (stream.readable) {\n stream.destroy();\n }\n return;\n }\n\n if (options.fields) {\n log = options.fields.reduce((obj, key) => {\n obj[key] = log[key];\n return obj;\n }, {});\n }\n\n if (options.order === 'desc') {\n if (results.length >= options.rows) {\n results.shift();\n }\n }\n results.push(log);\n }\n\n function check(log) {\n if (!log) {\n return;\n }\n\n if (typeof log !== 'object') {\n return;\n }\n\n const time = new Date(log.timestamp);\n if (\n (options.from && time < options.from) ||\n (options.until && time > options.until) ||\n (options.level && options.level !== log.level)\n ) {\n return;\n }\n\n return true;\n }\n\n function normalizeQuery(options) {\n options = options || {};\n\n // limit\n options.rows = options.rows || options.limit || 10;\n\n // starting row offset\n options.start = options.start || 0;\n\n // now\n options.until = options.until || new Date();\n if (typeof options.until !== 'object') {\n options.until = new Date(options.until);\n }\n\n // now - 24\n options.from = options.from || (options.until - (24 * 60 * 60 * 1000));\n if (typeof options.from !== 'object') {\n options.from = new Date(options.from);\n }\n\n // 'asc' or 'desc'\n options.order = options.order || 'desc';\n\n return options;\n }\n }\n\n /**\n * Returns a log stream for this transport. Options object is optional.\n * @param {Object} options - Stream options for this instance.\n * @returns {Stream} - TODO: add return description.\n * TODO: Refactor me.\n */\n stream(options = {}) {\n const file = path.join(this.dirname, this.filename);\n const stream = new Stream();\n const tail = {\n file,\n start: options.start\n };\n\n stream.destroy = tailFile(tail, (err, line) => {\n if (err) {\n return stream.emit('error', err);\n }\n\n try {\n stream.emit('data', line);\n line = JSON.parse(line);\n stream.emit('log', line);\n } catch (e) {\n stream.emit('error', e);\n }\n });\n\n return stream;\n }\n\n /**\n * Checks to see the filesize of.\n * @returns {undefined}\n */\n open() {\n // If we do not have a filename then we were passed a stream and\n // don't need to keep track of size.\n if (!this.filename) return;\n if (this._opening) return;\n\n this._opening = true;\n\n // Stat the target file to get the size and create the stream.\n this.stat((err, size) => {\n if (err) {\n return this.emit('error', err);\n }\n debug('stat done: %s { size: %s }', this.filename, size);\n this._size = size;\n this._dest = this._createStream(this._stream);\n this._opening = false;\n this.once('open', () => {\n if (this._stream.eventNames().includes('rotate')) {\n this._stream.emit('rotate');\n } else {\n this._rotate = false;\n }\n });\n });\n }\n\n /**\n * Stat the file and assess information in order to create the proper stream.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n */\n stat(callback) {\n const target = this._getFile();\n const fullpath = path.join(this.dirname, target);\n\n fs.stat(fullpath, (err, stat) => {\n if (err && err.code === 'ENOENT') {\n debug('ENOENT ok', fullpath);\n // Update internally tracked filename with the new target name.\n this.filename = target;\n return callback(null, 0);\n }\n\n if (err) {\n debug(`err ${err.code} ${fullpath}`);\n return callback(err);\n }\n\n if (!stat || this._needsNewFile(stat.size)) {\n // If `stats.size` is greater than the `maxsize` for this\n // instance then try again.\n return this._incFile(() => this.stat(callback));\n }\n\n // Once we have figured out what the filename is, set it\n // and return the size.\n this.filename = target;\n callback(null, stat.size);\n });\n }\n\n /**\n * Closes the stream associated with this instance.\n * @param {function} cb - TODO: add param description.\n * @returns {undefined}\n */\n close(cb) {\n if (!this._stream) {\n return;\n }\n\n this._stream.end(() => {\n if (cb) {\n cb(); // eslint-disable-line callback-return\n }\n this.emit('flush');\n this.emit('closed');\n });\n }\n\n /**\n * TODO: add method description.\n * @param {number} size - TODO: add param description.\n * @returns {undefined}\n */\n _needsNewFile(size) {\n size = size || this._size;\n return this.maxsize && size >= this.maxsize;\n }\n\n /**\n * TODO: add method description.\n * @param {Error} err - TODO: add param description.\n * @returns {undefined}\n */\n _onError(err) {\n this.emit('error', err);\n }\n\n /**\n * TODO: add method description.\n * @param {Stream} stream - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n */\n _setupStream(stream) {\n stream.on('error', this._onError);\n\n return stream;\n }\n\n /**\n * TODO: add method description.\n * @param {Stream} stream - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n */\n _cleanupStream(stream) {\n stream.removeListener('error', this._onError);\n\n return stream;\n }\n\n /**\n * TODO: add method description.\n */\n _rotateFile() {\n this._incFile(() => this.open());\n }\n\n /**\n * Unpipe from the stream that has been marked as full and end it so it\n * flushes to disk.\n *\n * @param {function} callback - Callback for when the current file has closed.\n * @private\n */\n _endStream(callback = () => {}) {\n if (this._dest) {\n this._stream.unpipe(this._dest);\n this._dest.end(() => {\n this._cleanupStream(this._dest);\n callback();\n });\n } else {\n callback(); // eslint-disable-line callback-return\n }\n }\n\n /**\n * Returns the WritableStream for the active file on this instance. If we\n * should gzip the file then a zlib stream is returned.\n *\n * @param {ReadableStream} source – PassThrough to pipe to the file when open.\n * @returns {WritableStream} Stream that writes to disk for the active file.\n */\n _createStream(source) {\n const fullpath = path.join(this.dirname, this.filename);\n\n debug('create stream start', fullpath, this.options);\n const dest = fs.createWriteStream(fullpath, this.options)\n // TODO: What should we do with errors here?\n .on('error', err => debug(err))\n .on('close', () => debug('close', dest.path, dest.bytesWritten))\n .on('open', () => {\n debug('file open ok', fullpath);\n this.emit('open', fullpath);\n source.pipe(dest);\n\n // If rotation occured during the open operation then we immediately\n // start writing to a new PassThrough, begin opening the next file\n // and cleanup the previous source and dest once the source has drained.\n if (this.rotatedWhileOpening) {\n this._stream = new PassThrough();\n this._stream.setMaxListeners(30);\n this._rotateFile();\n this.rotatedWhileOpening = false;\n this._cleanupStream(dest);\n source.end();\n }\n });\n\n debug('create stream ok', fullpath);\n if (this.zippedArchive) {\n const gzip = zlib.createGzip();\n gzip.pipe(dest);\n return gzip;\n }\n\n return dest;\n }\n\n /**\n * TODO: add method description.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n */\n _incFile(callback) {\n debug('_incFile', this.filename);\n const ext = path.extname(this._basename);\n const basename = path.basename(this._basename, ext);\n\n if (!this.tailable) {\n this._created += 1;\n this._checkMaxFilesIncrementing(ext, basename, callback);\n } else {\n this._checkMaxFilesTailable(ext, basename, callback);\n }\n }\n\n /**\n * Gets the next filename to use for this instance in the case that log\n * filesizes are being capped.\n * @returns {string} - TODO: add return description.\n * @private\n */\n _getFile() {\n const ext = path.extname(this._basename);\n const basename = path.basename(this._basename, ext);\n const isRotation = this.rotationFormat\n ? this.rotationFormat()\n : this._created;\n\n // Caveat emptor (indexzero): rotationFormat() was broken by design When\n // combined with max files because the set of files to unlink is never\n // stored.\n const target = !this.tailable && this._created\n ? `${basename}${isRotation}${ext}`\n : `${basename}${ext}`;\n\n return this.zippedArchive && !this.tailable\n ? `${target}.gz`\n : target;\n }\n\n /**\n * Increment the number of files created or checked by this instance.\n * @param {mixed} ext - TODO: add param description.\n * @param {mixed} basename - TODO: add param description.\n * @param {mixed} callback - TODO: add param description.\n * @returns {undefined}\n * @private\n */\n _checkMaxFilesIncrementing(ext, basename, callback) {\n // Check for maxFiles option and delete file.\n if (!this.maxFiles || this._created < this.maxFiles) {\n return setImmediate(callback);\n }\n\n const oldest = this._created - this.maxFiles;\n const isOldest = oldest !== 0 ? oldest : '';\n const isZipped = this.zippedArchive ? '.gz' : '';\n const filePath = `${basename}${isOldest}${ext}${isZipped}`;\n const target = path.join(this.dirname, filePath);\n\n fs.unlink(target, callback);\n }\n\n /**\n * Roll files forward based on integer, up to maxFiles. e.g. if base if\n * file.log and it becomes oversized, roll to file1.log, and allow file.log\n * to be re-used. If file is oversized again, roll file1.log to file2.log,\n * roll file.log to file1.log, and so on.\n * @param {mixed} ext - TODO: add param description.\n * @param {mixed} basename - TODO: add param description.\n * @param {mixed} callback - TODO: add param description.\n * @returns {undefined}\n * @private\n */\n _checkMaxFilesTailable(ext, basename, callback) {\n const tasks = [];\n if (!this.maxFiles) {\n return;\n }\n\n // const isZipped = this.zippedArchive ? '.gz' : '';\n const isZipped = this.zippedArchive ? '.gz' : '';\n for (let x = this.maxFiles - 1; x > 1; x--) {\n tasks.push(function (i, cb) {\n let fileName = `${basename}${(i - 1)}${ext}${isZipped}`;\n const tmppath = path.join(this.dirname, fileName);\n\n fs.exists(tmppath, exists => {\n if (!exists) {\n return cb(null);\n }\n\n fileName = `${basename}${i}${ext}${isZipped}`;\n fs.rename(tmppath, path.join(this.dirname, fileName), cb);\n });\n }.bind(this, x));\n }\n\n asyncSeries(tasks, () => {\n fs.rename(\n path.join(this.dirname, `${basename}${ext}`),\n path.join(this.dirname, `${basename}1${ext}${isZipped}`),\n callback\n );\n });\n }\n\n _createLogDirIfNotExist(dirPath) {\n /* eslint-disable no-sync */\n if (!fs.existsSync(dirPath)) {\n fs.mkdirSync(dirPath, { recursive: true });\n }\n /* eslint-enable no-sync */\n }\n};\n","/**\n * http.js: Transport for outputting to a json-rpcserver.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst http = require('http');\nconst https = require('https');\nconst { Stream } = require('readable-stream');\nconst TransportStream = require('winston-transport');\n\n/**\n * Transport for outputting to a json-rpc server.\n * @type {Stream}\n * @extends {TransportStream}\n */\nmodule.exports = class Http extends TransportStream {\n /**\n * Constructor function for the Http transport object responsible for\n * persisting log messages and metadata to a terminal or TTY.\n * @param {!Object} [options={}] - Options for this instance.\n */\n constructor(options = {}) {\n super(options);\n\n this.options = options;\n this.name = options.name || 'http';\n this.ssl = !!options.ssl;\n this.host = options.host || 'localhost';\n this.port = options.port;\n this.auth = options.auth;\n this.path = options.path || '';\n this.agent = options.agent;\n this.headers = options.headers || {};\n this.headers['content-type'] = 'application/json';\n\n if (!this.port) {\n this.port = this.ssl ? 443 : 80;\n }\n }\n\n /**\n * Core logging method exposed to Winston.\n * @param {Object} info - TODO: add param description.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n */\n log(info, callback) {\n this._request(info, (err, res) => {\n if (res && res.statusCode !== 200) {\n err = new Error(`Invalid HTTP Status Code: ${res.statusCode}`);\n }\n\n if (err) {\n this.emit('warn', err);\n } else {\n this.emit('logged', info);\n }\n });\n\n // Remark: (jcrugzz) Fire and forget here so requests dont cause buffering\n // and block more requests from happening?\n if (callback) {\n setImmediate(callback);\n }\n }\n\n /**\n * Query the transport. Options object is optional.\n * @param {Object} options - Loggly-like query options for this instance.\n * @param {function} callback - Continuation to respond to when complete.\n * @returns {undefined}\n */\n query(options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n options = {\n method: 'query',\n params: this.normalizeQuery(options)\n };\n\n if (options.params.path) {\n options.path = options.params.path;\n delete options.params.path;\n }\n\n if (options.params.auth) {\n options.auth = options.params.auth;\n delete options.params.auth;\n }\n\n this._request(options, (err, res, body) => {\n if (res && res.statusCode !== 200) {\n err = new Error(`Invalid HTTP Status Code: ${res.statusCode}`);\n }\n\n if (err) {\n return callback(err);\n }\n\n if (typeof body === 'string') {\n try {\n body = JSON.parse(body);\n } catch (e) {\n return callback(e);\n }\n }\n\n callback(null, body);\n });\n }\n\n /**\n * Returns a log stream for this transport. Options object is optional.\n * @param {Object} options - Stream options for this instance.\n * @returns {Stream} - TODO: add return description\n */\n stream(options = {}) {\n const stream = new Stream();\n options = {\n method: 'stream',\n params: options\n };\n\n if (options.params.path) {\n options.path = options.params.path;\n delete options.params.path;\n }\n\n if (options.params.auth) {\n options.auth = options.params.auth;\n delete options.params.auth;\n }\n\n let buff = '';\n const req = this._request(options);\n\n stream.destroy = () => req.destroy();\n req.on('data', data => {\n data = (buff + data).split(/\\n+/);\n const l = data.length - 1;\n\n let i = 0;\n for (; i < l; i++) {\n try {\n stream.emit('log', JSON.parse(data[i]));\n } catch (e) {\n stream.emit('error', e);\n }\n }\n\n buff = data[l];\n });\n req.on('error', err => stream.emit('error', err));\n\n return stream;\n }\n\n /**\n * Make a request to a winstond server or any http server which can\n * handle json-rpc.\n * @param {function} options - Options to sent the request.\n * @param {function} callback - Continuation to respond to when complete.\n */\n _request(options, callback) {\n options = options || {};\n\n const auth = options.auth || this.auth;\n const path = options.path || this.path || '';\n\n delete options.auth;\n delete options.path;\n\n // Prepare options for outgoing HTTP request\n const headers = Object.assign({}, this.headers);\n if (auth && auth.bearer) {\n headers.Authorization = `Bearer ${auth.bearer}`;\n }\n const req = (this.ssl ? https : http).request({\n ...this.options,\n method: 'POST',\n host: this.host,\n port: this.port,\n path: `/${path.replace(/^\\//, '')}`,\n headers: headers,\n auth: (auth && auth.username && auth.password) ? (`${auth.username}:${auth.password}`) : '',\n agent: this.agent\n });\n\n req.on('error', callback);\n req.on('response', res => (\n res.on('end', () => callback(null, res)).resume()\n ));\n req.end(Buffer.from(JSON.stringify(options), 'utf8'));\n }\n};\n","/**\n * transports.js: Set of all transports Winston knows about.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\n/**\n * TODO: add property description.\n * @type {Console}\n */\nObject.defineProperty(exports, 'Console', {\n configurable: true,\n enumerable: true,\n get() {\n return require('./console');\n }\n});\n\n/**\n * TODO: add property description.\n * @type {File}\n */\nObject.defineProperty(exports, 'File', {\n configurable: true,\n enumerable: true,\n get() {\n return require('./file');\n }\n});\n\n/**\n * TODO: add property description.\n * @type {Http}\n */\nObject.defineProperty(exports, 'Http', {\n configurable: true,\n enumerable: true,\n get() {\n return require('./http');\n }\n});\n\n/**\n * TODO: add property description.\n * @type {Stream}\n */\nObject.defineProperty(exports, 'Stream', {\n configurable: true,\n enumerable: true,\n get() {\n return require('./stream');\n }\n});\n","/**\n * stream.js: Transport for outputting to any arbitrary stream.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst isStream = require('is-stream');\nconst { MESSAGE } = require('triple-beam');\nconst os = require('os');\nconst TransportStream = require('winston-transport');\n\n/**\n * Transport for outputting to any arbitrary stream.\n * @type {Stream}\n * @extends {TransportStream}\n */\nmodule.exports = class Stream extends TransportStream {\n /**\n * Constructor function for the Console transport object responsible for\n * persisting log messages and metadata to a terminal or TTY.\n * @param {!Object} [options={}] - Options for this instance.\n */\n constructor(options = {}) {\n super(options);\n\n if (!options.stream || !isStream(options.stream)) {\n throw new Error('options.stream is required.');\n }\n\n // We need to listen for drain events when write() returns false. This can\n // make node mad at times.\n this._stream = options.stream;\n this._stream.setMaxListeners(Infinity);\n this.isObjectMode = options.stream._writableState.objectMode;\n this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL;\n }\n\n /**\n * Core logging method exposed to Winston.\n * @param {Object} info - TODO: add param description.\n * @param {Function} callback - TODO: add param description.\n * @returns {undefined}\n */\n log(info, callback) {\n setImmediate(() => this.emit('logged', info));\n if (this.isObjectMode) {\n this._stream.write(info);\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n return;\n }\n\n this._stream.write(`${info[MESSAGE]}${this.eol}`);\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n return;\n }\n};\n","'use strict';\n\nconst isStream = stream =>\n\tstream !== null &&\n\ttypeof stream === 'object' &&\n\ttypeof stream.pipe === 'function';\n\nisStream.writable = stream =>\n\tisStream(stream) &&\n\tstream.writable !== false &&\n\ttypeof stream._write === 'function' &&\n\ttypeof stream._writableState === 'object';\n\nisStream.readable = stream =>\n\tisStream(stream) &&\n\tstream.readable !== false &&\n\ttypeof stream._read === 'function' &&\n\ttypeof stream._readableState === 'object';\n\nisStream.duplex = stream =>\n\tisStream.writable(stream) &&\n\tisStream.readable(stream);\n\nisStream.transform = stream =>\n\tisStream.duplex(stream) &&\n\ttypeof stream._transform === 'function';\n\nmodule.exports = isStream;\n","'use strict';\n\nconst codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n\n function getMessage (arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message\n } else {\n return message(arg1, arg2, arg3)\n }\n }\n\n class NodeError extends Base {\n constructor (arg1, arg2, arg3) {\n super(getMessage(arg1, arg2, arg3));\n }\n }\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n const len = expected.length;\n expected = expected.map((i) => String(i));\n if (len > 2) {\n return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` +\n expected[len - 1];\n } else if (len === 2) {\n return `one of ${thing} ${expected[0]} or ${expected[1]}`;\n } else {\n return `of ${thing} ${expected[0]}`;\n }\n } else {\n return `of ${thing} ${String(expected)}`;\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n\treturn str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n\tif (this_len === undefined || this_len > str.length) {\n\t\tthis_len = str.length;\n\t}\n\treturn str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"'\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n let determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n let msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`;\n } else {\n const type = includes(name, '.') ? 'property' : 'argument';\n msg = `The \"${name}\" ${type} ${determiner} ${oneOf(expected, 'type')}`;\n }\n\n msg += `. Received type ${typeof actual}`;\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented'\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\n\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","'use strict';\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar ERR_INVALID_ARG_TYPE = require('../../../errors').codes.ERR_INVALID_ARG_TYPE;\n\nfunction from(Readable, iterable, opts) {\n var iterator;\n\n if (iterable && typeof iterable.next === 'function') {\n iterator = iterable;\n } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable);\n\n var readable = new Readable(_objectSpread({\n objectMode: true\n }, opts)); // Reading boolean to protect against _read\n // being called before last iteration completion.\n\n var reading = false;\n\n readable._read = function () {\n if (!reading) {\n reading = true;\n next();\n }\n };\n\n function next() {\n return _next2.apply(this, arguments);\n }\n\n function _next2() {\n _next2 = _asyncToGenerator(function* () {\n try {\n var _ref = yield iterator.next(),\n value = _ref.value,\n done = _ref.done;\n\n if (done) {\n readable.push(null);\n } else if (readable.push((yield value))) {\n next();\n } else {\n reading = false;\n }\n } catch (err) {\n readable.destroy(err);\n }\n });\n return _next2.apply(this, arguments);\n }\n\n return readable;\n}\n\nmodule.exports = from;","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('stream');\n","var Stream = require('stream');\nif (process.env.READABLE_STREAM === 'disable' && Stream) {\n module.exports = Stream.Readable;\n Object.assign(module.exports, Stream);\n module.exports.Stream = Stream;\n} else {\n exports = module.exports = require('./lib/_stream_readable.js');\n exports.Stream = Stream || exports;\n exports.Readable = exports;\n exports.Writable = require('./lib/_stream_writable.js');\n exports.Duplex = require('./lib/_stream_duplex.js');\n exports.Transform = require('./lib/_stream_transform.js');\n exports.PassThrough = require('./lib/_stream_passthrough.js');\n exports.finished = require('./lib/internal/streams/end-of-stream.js');\n exports.pipeline = require('./lib/internal/streams/pipeline.js');\n}\n","// identical copy of https://github.com/enketo/enketo-transformer/blob/2.1.5/src/markdown.js\n// committed because of https://github.com/medic/cht-core/issues/7771\n\n/**\n * @module markdown\n */\n\n/**\n * Transforms XForm label and hint textnode content with a subset of Markdown into HTML\n *\n * Supported:\n * - `_`, `__`, `*`, `**`, `[]()`, `#`, `##`, `###`, `####`, `#####`,\n * - span tags and html-encoded span tags,\n * - single-level unordered markdown lists and single-level ordered markdown lists\n * - newline characters\n *\n * Also HTML encodes any unsupported HTML tags for safe use inside web-based clients\n *\n * @static\n * @param {string} text - Text content of a textnode.\n * @return {string} transformed text content of a textnode.\n */\nfunction markdownToHtml(text) {\n // note: in JS $ matches end of line as well as end of string, and ^ both beginning of line and string\n const html = text\n // html encoding of < because libXMLJs Element.text() converts html entities\n .replace(//gm, '>')\n // span\n .replace(\n /<\\s?span([^/\\n]*)>((?:(?!<\\/).)+)<\\/\\s?span\\s?>/gm,\n _createSpan\n )\n // sup\n .replace(\n /<\\s?sup([^/\\n]*)>((?:(?!<\\/).)+)<\\/\\s?sup\\s?>/gm,\n _createSup\n )\n // sub\n .replace(\n /<\\s?sub([^/\\n]*)>((?:(?!<\\/).)+)<\\/\\s?sub\\s?>/gm,\n _createSub\n )\n // \"\\\" will be used as escape character for *, _\n .replace(/&/gm, '&')\n .replace(/\\\\\\\\/gm, '&92;')\n .replace(/\\\\\\*/gm, '&42;')\n .replace(/\\\\_/gm, '&95;')\n .replace(/\\\\#/gm, '&35;')\n // strong\n .replace(/__(.*?)__/gm, '$1')\n .replace(/\\*\\*(.*?)\\*\\*/gm, '$1')\n // emphasis\n .replace(/_([^\\s][^_\\n]*)_/gm, '$1')\n .replace(/\\*([^\\s][^*\\n]*)\\*/gm, '$1')\n // links\n .replace(\n /\\[([^\\]]*)\\]\\(([^)]+)\\)/gm,\n '$1'\n )\n // headers\n .replace(/^\\s*(#{1,6})\\s?([^#][^\\n]*)(\\n|$)/gm, _createHeader)\n // unordered lists\n .replace(/^((\\*|\\+|-) (.*)(\\n|$))+/gm, _createUnorderedList)\n // ordered lists, which have to be preceded by a newline since numbered labels are common\n .replace(/(\\n([0-9]+\\.) (.*))+$/gm, _createOrderedList)\n // newline characters followed by
            tag\n .replace(/\\n(
              )/gm, '$1')\n // reverting escape of special characters\n .replace(/&35;/gm, '#')\n .replace(/&95;/gm, '_')\n .replace(/&92;/gm, '\\\\')\n .replace(/&42;/gm, '*')\n .replace(/&/gm, '&')\n // paragraphs\n .replace(/([^\\n]+)\\n{2,}/gm, _createParagraph)\n // any remaining newline characters\n .replace(/([^\\n]+)\\n/gm, '$1
              ');\n\n return html;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @param {*} hashtags - Before header text. `#` gives `

              `, `####` gives `

              `.\n * @param {string} content - Header text.\n * @return {string} HTML string.\n */\nfunction _createHeader(match, hashtags, content) {\n const level = hashtags.length;\n\n return `${content.replace(/#+$/, '')}`;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @return {string} HTML string.\n */\nfunction _createUnorderedList(match) {\n const items = match.replace(/(\\*|\\+|-)(.*)\\n?/gm, _createItem);\n\n return `
                ${items}
              `;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @return {string} HTML string.\n */\nfunction _createOrderedList(match) {\n const startMatches = match.match(/^\\n?(?[0-9]+)\\./);\n const start =\n startMatches && startMatches.groups && startMatches.groups.start !== '1'\n ? ` start=\"${startMatches.groups.start}\"`\n : '';\n const items = match.replace(/\\n?([0-9]+\\.)(.*)/gm, _createItem);\n\n return `${items}`;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @param {string} bullet - The list item bullet/number.\n * @param {string} content - Item text.\n * @return {string} HTML string.\n */\nfunction _createItem(match, bullet, content) {\n return `
            • ${content.trim()}
            • `;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @param {string} line - The line.\n * @return {string} HTML string.\n */\nfunction _createParagraph(match, line) {\n const trimmed = line.trim();\n if (/^<\\/?(ul|ol|li|h|p|bl)/i.test(trimmed)) {\n return line;\n }\n\n return `

              ${trimmed}

              `;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @param {string} attributes - Attributes to be added for ``\n * @param {string} content - Span text.\n * @return {string} HTML string.\n */\nfunction _createSpan(match, attributes, content) {\n const sanitizedAttributes = _sanitizeAttributes(attributes);\n\n return `${content}`;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @param {string} attributes - The attributes.\n * @param {string} content - Sup text.\n * @return {string} HTML string.\n */\nfunction _createSup(match, attributes, content) {\n // ignore attributes completely\n return `${content}`;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @param {string} attributes - The attributes.\n * @param {string} content - Sub text.\n * @return {string} HTML string.\n */\nfunction _createSub(match, attributes, content) {\n // ignore attributes completely\n return `${content}`;\n}\n\n/**\n * @param {string} attributes - The attributes.\n * @return {string} style\n */\nfunction _sanitizeAttributes(attributes) {\n const styleMatches = attributes.match(/( style=([\"'])[^\"']*\\2)/);\n const style = styleMatches && styleMatches.length ? styleMatches[0] : '';\n\n return style;\n}\n\nmodule.exports = {\n toHtml: markdownToHtml,\n};\n","const { createLogger, format, transports } = require('winston');\nconst env = process.env.NODE_ENV || 'development';\n\nconst cleanUpErrorsFromSymbolProperties = (info) => {\n if (!info) {\n return;\n }\n\n // errors can be passed as \"Symbol('splat')\" properties, when doing: logger.error('message: %o', actualError);\n // see https://github.com/winstonjs/winston/blob/2625f60c5c85b8c4926c65e98a591f8b42e0db9a/README.md#streams-objectmode-and-info-objects\n Object.getOwnPropertySymbols(info).forEach(property => {\n const values = info[property];\n if (Array.isArray(values)) {\n values.forEach(value => cleanUpRequestError(value));\n }\n });\n};\n\nconst cleanUpRequestError = (error) => {\n // These are the error types that we're expecting from request-promise-native\n // https://github.com/request/promise-core/blob/v1.1.4/lib/errors.js\n const requestErrorConstructors = ['RequestError', 'StatusCodeError', 'TransformError'];\n if (error && error.constructor && requestErrorConstructors.includes(error.constructor.name)) {\n // these properties could contain sensitive information, like passwords or auth tokens, and are not safe to log\n delete error.options;\n delete error.request;\n delete error.response;\n }\n};\n\nconst enumerateErrorFormat = format(info => {\n cleanUpErrorsFromSymbolProperties(info);\n cleanUpRequestError(info);\n cleanUpRequestError(info.message);\n\n if (info.message instanceof Error) {\n info.message = Object.assign({\n message: info.message.message,\n stack: info.message.stack\n }, info.message);\n }\n\n if (info instanceof Error) {\n return Object.assign({\n message: info.message,\n stack: info.stack\n }, info);\n }\n\n return info;\n});\n\nconst logger = createLogger({\n format: format.combine(\n enumerateErrorFormat(),\n format.splat(),\n format.simple()\n ),\n transports: [\n new transports.Console({\n // change level if in dev environment versus production\n level: env === 'development' ? 'debug' : 'info',\n format: format.combine(\n // https://github.com/winstonjs/winston/issues/1345\n format(info => {\n info.level = info.level.toUpperCase();\n return info;\n })(),\n format.colorize(),\n format.timestamp({\n format: 'YYYY-MM-DD HH:mm:ss',\n }),\n format.printf(info => `${info.timestamp} ${info.level}: ${info.message} ${info.stack ? info.stack : ''}`)\n ),\n }),\n ],\n});\n\nmodule.exports = logger;\n","/**\n * XForm generation service\n * @module generate-xform\n */\nconst childProcess = require('child_process');\nconst htmlParser = require('node-html-parser');\nconst logger = require('../logger');\nconst markdown = require('../enketo-transformer/markdown');\nconst { FORM_STYLESHEET, MODEL_STYLESHEET } = require('../xsl/xsl-paths');\n\nconst MODEL_ROOT_OPEN = '';\nconst ROOT_CLOSE = '';\nconst JAVAROSA_SRC = / src=\"jr:\\/\\//gi;\nconst MEDIA_SRC_ATTR = ' data-media-src=\"';\nconst XSLTPROC_CMD = 'xsltproc';\n\nconst processErrorHandler = (xsltproc, err, reject) => {\n xsltproc.stdin.end();\n if (err.code === 'EPIPE' // Node v10,v12,v14\n || (err.code === 'ENOENT' && err.syscall === `spawn ${XSLTPROC_CMD}`) // Node v8,v16+\n ) {\n const errMsg = `Unable to continue execution, check that '${XSLTPROC_CMD}' command is available.`;\n logger.error(errMsg);\n return reject(new Error(errMsg));\n }\n logger.error(err);\n return reject(new Error(`Unknown Error: An error occurred when executing '${XSLTPROC_CMD}' command`));\n};\n\nconst transform = (formXml, stylesheet) => {\n return new Promise((resolve, reject) => {\n const xsltproc = childProcess.spawn(XSLTPROC_CMD, [ stylesheet, '-' ]);\n let stdout = '';\n let stderr = '';\n xsltproc.stdout.on('data', data => stdout += data);\n xsltproc.stderr.on('data', data => stderr += data);\n xsltproc.stdin.setEncoding('utf-8');\n xsltproc.stdin.on('error', err => {\n // Errors related with spawned processes and stdin are handled here on Node v10\n return processErrorHandler(xsltproc, err, reject);\n });\n try {\n xsltproc.stdin.write(formXml);\n xsltproc.stdin.end();\n } catch (err) {\n // Errors related with spawned processes and stdin are handled here on Node v12\n return processErrorHandler(xsltproc, err, reject);\n }\n xsltproc.on('close', (code, signal) => {\n if (code !== 0 || signal || stderr.length) {\n let errorMsg = `Error transforming xml. xsltproc returned code \"${code}\", and signal \"${signal}\"`;\n if (stderr.length) {\n errorMsg += '. xsltproc stderr output:\\n' + stderr;\n }\n return reject(new Error(errorMsg));\n }\n if (!stdout) {\n return reject(new Error(`Error transforming xml. xsltproc returned no error but no output.`));\n }\n resolve(stdout);\n });\n xsltproc.on('error', err => {\n // Errors related with spawned processes are handled here on Node v8,v14,v16+\n return processErrorHandler(xsltproc, err, reject);\n });\n });\n};\n\nconst convertDynamicUrls = (original) => original.replace(\n /]+href=\"([^\"]*---output[^\"]*)\"[^>]*>(.*?)<\\/a>/gm,\n '' +\n '$2$1' +\n '');\n\nconst convertEmbeddedHtml = (original) => original\n .replace(/<\\s*(\\/)?\\s*([\\s\\S]*?)\\s*>/gm, '<$1$2>')\n .replace(/"/g, '\"')\n .replace(/'/g, '\\'')\n .replace(/&/g, '&');\n\nconst replaceNode = (currentNode, newNode) => {\n const { parentNode } = currentNode;\n const idx = parentNode.childNodes.findIndex((child) => child === currentNode);\n parentNode.childNodes = [\n ...parentNode.childNodes.slice(0, idx),\n newNode,\n ...parentNode.childNodes.slice(idx + 1),\n ];\n};\n\n// Based on enketo/enketo-transformer\n// https://github.com/enketo/enketo-transformer/blob/377caf14153586b040367f8c2de53c9d794c19d4/src/transformer.js#L430\nconst replaceAllMarkdown = (formString) => {\n const replacements = {};\n const form = htmlParser.parse(formString).querySelector('form');\n\n // First turn all outputs into text so ** can be detected\n form.querySelectorAll('span.or-output').forEach((el, index) => {\n const key = `---output-${index}`;\n const textNode = el.childNodes[0];\n replacements[key] = el.toString();\n textNode.textContent = key;\n replaceNode(el, textNode);\n // Note that we end up in a situation where we likely have sibling text nodes...\n });\n\n // Now render markdown\n const questions = form.querySelectorAll('span.question-label');\n const hints = form.querySelectorAll('span.or-hint');\n questions.concat(hints).forEach((el, index) => {\n const original = el.innerHTML;\n let rendered = markdown.toHtml(original);\n rendered = convertDynamicUrls(rendered);\n rendered = convertEmbeddedHtml(rendered);\n\n if (original !== rendered) {\n const key = `$$$${index}`;\n replacements[key] = rendered;\n el.innerHTML = key;\n }\n });\n\n let result = form.toString();\n\n // Now replace the placeholders with the rendered HTML\n // in reverse order so outputs are done last\n Object.keys(replacements).reverse().forEach(key => {\n const replacement = replacements[key];\n if (replacement) {\n result = result.replace(key, replacement);\n }\n });\n\n return result;\n};\n\nconst generateForm = formXml => {\n return transform(formXml, FORM_STYLESHEET).then(form => {\n form = replaceAllMarkdown(form);\n // rename the media src attributes so the browser doesn't try and\n // request them, instead leaving it to custom code in the Enketo\n // service to load them asynchronously\n return form.replace(JAVAROSA_SRC, MEDIA_SRC_ATTR);\n });\n};\n\nconst generateModel = formXml => {\n return transform(formXml, MODEL_STYLESHEET).then(model => {\n // remove the root node leaving just the model\n model = model.replace(MODEL_ROOT_OPEN, '');\n const index = model.lastIndexOf(ROOT_CLOSE);\n if (index === -1) {\n return model;\n }\n return model.slice(0, index) + model.slice(index + ROOT_CLOSE.length);\n });\n};\n\nconst generate = formXml => {\n return Promise.all([ generateForm(formXml), generateModel(formXml) ])\n .then(([ form, model ]) => ({ form, model }));\n};\n\nmodule.exports = {\n\n /**\n * @param formXml The XML form string\n * @returns a promise with the XML form transformed following\n * the stylesheet rules defined (XSL transformations)\n */\n generate\n\n};\n","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانفي',\n 'فيفري',\n 'مارس',\n 'أفريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Lybia) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split(\n '_'\n ),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n w: 'седмица',\n ww: '%d седмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bnBd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex = /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return esMx;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return es;\n\n})));\n","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split(\n '_'\n ),\n weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰',\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\n","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split(\n '_'\n );\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '૧',\n 2: '૨',\n 3: '૩',\n 4: '૪',\n 5: '૫',\n 6: '૬',\n 7: '૭',\n 8: '૮',\n 9: '૯',\n 0: '૦',\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0',\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n '_'\n ),\n monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return gu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split(\n '_'\n ),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n },\n monthsParse = [\n /^जन/i,\n /^फ़र|फर/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सितं|सित/i,\n /^अक्टू/i,\n /^नव|नवं/i,\n /^दिसं|दिस/i,\n ],\n shortMonthsParse = [\n /^जन/i,\n /^फ़र/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सित/i,\n /^अक्टू/i,\n /^नव/i,\n /^दिस/i,\n ];\n\n var hi = moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n '_'\n ),\n standalone: 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n '_'\n ),\n },\n monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split(\n '_'\n ),\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: shortMonthsParse,\n\n monthsRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsShortRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n monthsShortStrictRegex: /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return hi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(\n ' '\n );\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n","//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\n isFormat: /(წინა|შემდეგ)/,\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function (\n $0,\n $1,\n $2\n ) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n });\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០',\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return km;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: '೭',\n 8: '೮',\n 9: '೯',\n 0: '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n var ky = moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ky;\n\n})));\n","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan : https://github.com/johnideal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n","//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n '_'\n ),\n monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n return mn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀',\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n","//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n w: 'en uke',\n ww: '%d uker',\n M: 'en måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n '_'\n ),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n '_'\n ),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nlBe;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n '_'\n ),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n '_'\n ),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n '_'\n ),\n monthsParse = [\n /^sty/i,\n /^lut/i,\n /^mar/i,\n /^kwi/i,\n /^maj/i,\n /^cze/i,\n /^lip/i,\n /^sie/i,\n /^wrz/i,\n /^paź/i,\n /^lis/i,\n /^gru/i,\n ];\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split(\n '_'\n ),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate,\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida',\n });\n\n return ptBr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделя',\n ww: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split(\n '_'\n ),\n weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['месец', 'месеца', 'месеци'],\n yy: ['година', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'дан',\n dd: translator.translate,\n M: 'месец',\n MM: translator.translate,\n y: 'годину',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jedne minute'],\n mm: ['minut', 'minute', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mesec', 'meseca', 'meseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n '_'\n ),\n standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhTw;\n\n})));\n","var map = {\n\t\"./af\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/cht-core-4-0/shared-libs/calendar-interval/node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","//! moment.js\n//! version : 2.29.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\n })\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n ) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","const moment = require('moment');\n\nconst normalizeStartDate = (intervalStartDate) => {\n intervalStartDate = parseInt(intervalStartDate);\n\n if (isNaN(intervalStartDate) || intervalStartDate <= 0 || intervalStartDate > 31) {\n intervalStartDate = 1;\n }\n\n return intervalStartDate;\n};\n\nconst getMinimumStartDate = (intervalStartDate, relativeDate) => {\n return moment\n .min(\n relativeDate.clone().subtract(1, 'month').date(intervalStartDate).startOf('day'),\n relativeDate.clone().startOf('month')\n )\n .valueOf();\n};\n\nconst getMinimumEndDate = (intervalStartDate, nextMonth, relativeDate) => {\n return moment\n .min(\n relativeDate.clone().add(nextMonth ? 1 : 0, 'month').date(intervalStartDate - 1).endOf('day'),\n relativeDate.clone().add(nextMonth ? 1 : 0, 'month').endOf('month')\n )\n .valueOf();\n};\n\nconst getInterval = (intervalStartDate, referenceDate = moment()) => {\n intervalStartDate = normalizeStartDate(intervalStartDate);\n if (intervalStartDate === 1) {\n return {\n start: referenceDate.startOf('month').valueOf(),\n end: referenceDate.endOf('month').valueOf()\n };\n }\n\n if (intervalStartDate <= referenceDate.date()) {\n return {\n start: referenceDate.date(intervalStartDate).startOf('day').valueOf(),\n end: getMinimumEndDate(intervalStartDate, true, referenceDate)\n };\n }\n\n return {\n start: getMinimumStartDate(intervalStartDate, referenceDate),\n end: getMinimumEndDate(intervalStartDate, false, referenceDate)\n };\n};\n\nmodule.exports = {\n // Returns the timestamps of the start and end of the current calendar interval\n // @param {Number} [intervalStartDate=1] - day of month when interval starts (1 - 31)\n //\n // if `intervalStartDate` exceeds month's day count, the start/end of following/current month is returned\n // f.e. `intervalStartDate` === 31 would generate next intervals :\n // [12-31 -> 01-30], [01-31 -> 02-[28|29]], [03-01 -> 03-30], [03-31 -> 04-30], [05-01 -> 05-30], [05-31 - 06-30]\n getCurrent: (intervalStartDate) => getInterval(intervalStartDate),\n\n /**\n * Returns the timestamps of the start and end of the a calendar interval that contains a reference date\n * @param {Number} [intervalStartDate=1] - day of month when interval starts (1 - 31)\n * @param {Number} timestamp - the reference date the interval should include\n * @returns { start: number, end: number } - timestamps that define the calendar interval\n */\n getInterval: (intervalStartDate, timestamp) => getInterval(intervalStartDate, moment(timestamp)),\n};\n","/**\n * CHT Script API - Auth module\n * Provides tools related to Authentication.\n */\n\nconst ADMIN_ROLE = '_admin';\nconst NATIONAL_ADMIN_ROLE = 'national_admin'; // Deprecated: kept for backwards compatibility: #4525\nconst DISALLOWED_PERMISSION_PREFIX = '!';\n\nconst isAdmin = (userRoles) => {\n if (!Array.isArray(userRoles)) {\n return false;\n }\n\n return [ADMIN_ROLE, NATIONAL_ADMIN_ROLE].some(role => userRoles.includes(role));\n};\n\nconst groupPermissions = (permissions) => {\n const groups = { allowed: [], disallowed: [] };\n\n permissions.forEach(permission => {\n if (permission.indexOf(DISALLOWED_PERMISSION_PREFIX) === 0) {\n // Removing the DISALLOWED_PERMISSION_PREFIX and keeping the permission name.\n groups.disallowed.push(permission.substring(1));\n } else {\n groups.allowed.push(permission);\n }\n });\n\n return groups;\n};\n\nconst debug = (reason, permissions, roles) => {\n // eslint-disable-next-line no-console\n console.debug(`CHT Script API :: ${reason}. User roles: ${roles}. Wanted permissions: ${permissions}`);\n};\n\nconst checkUserHasPermissions = (permissions, userRoles, chtPermissionsSettings, expectedToHave) => {\n return permissions.every(permission => {\n const roles = chtPermissionsSettings[permission];\n\n if (!roles) {\n return !expectedToHave;\n }\n\n return expectedToHave === userRoles.some(role => roles.includes(role));\n });\n};\n\nconst verifyParameters = (permissions, userRoles, chtPermissionsSettings) => {\n if (!Array.isArray(permissions) || !permissions.length) {\n debug('Permissions to verify are not provided or have invalid type');\n return false;\n }\n\n if (!Array.isArray(userRoles)) {\n debug('User roles are not provided or have invalid type');\n return false;\n }\n\n if (!chtPermissionsSettings || !Object.keys(chtPermissionsSettings).length) {\n debug('CHT-Core\\'s configured permissions are not provided');\n return false;\n }\n\n return true;\n};\n\n/**\n * Verify if the user's role has the permission(s).\n * @param permissions {string | string[]} Permission(s) to verify\n * @param userRoles {string[]} Array of user roles.\n * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings.\n * @return {boolean}\n */\nconst hasPermissions = (permissions, userRoles, chtPermissionsSettings) => {\n if (permissions && typeof permissions === 'string') {\n permissions = [ permissions ];\n }\n\n if (!verifyParameters(permissions, userRoles, chtPermissionsSettings)) {\n return false;\n }\n\n const { allowed, disallowed } = groupPermissions(permissions);\n\n if (isAdmin(userRoles)) {\n if (disallowed.length) {\n debug('Disallowed permission(s) found for admin', permissions, userRoles);\n return false;\n }\n // Admin has the permissions automatically.\n return true;\n }\n\n const hasDisallowed = !checkUserHasPermissions(disallowed, userRoles, chtPermissionsSettings, false);\n const hasAllowed = checkUserHasPermissions(allowed, userRoles, chtPermissionsSettings, true);\n\n if (hasDisallowed) {\n debug('Found disallowed permission(s)', permissions, userRoles);\n return false;\n }\n\n if (!hasAllowed) {\n debug('Missing permission(s)', permissions, userRoles);\n return false;\n }\n\n return true;\n};\n\n/**\n * Verify if the user's role has all the permissions of any of the provided groups.\n * @param permissionsGroupList {string[][]} Array of groups of permissions due to the complexity of permission grouping\n * @param userRoles {string[]} Array of user roles.\n * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings.\n * @return {boolean}\n */\nconst hasAnyPermission = (permissionsGroupList, userRoles, chtPermissionsSettings) => {\n if (!verifyParameters(permissionsGroupList, userRoles, chtPermissionsSettings)) {\n return false;\n }\n\n const validGroup = permissionsGroupList.every(permissions => Array.isArray(permissions));\n if (!validGroup) {\n debug('Permission groups to verify are invalid');\n return false;\n }\n\n const allowedGroupList = [];\n const disallowedGroupList = [];\n permissionsGroupList.forEach(permissions => {\n const { allowed, disallowed } = groupPermissions(permissions);\n allowedGroupList.push(allowed);\n disallowedGroupList.push(disallowed);\n });\n\n if (isAdmin(userRoles)) {\n if (disallowedGroupList.every(permissions => permissions.length)) {\n debug('Disallowed permission(s) found for admin', permissionsGroupList, userRoles);\n return false;\n }\n // Admin has the permissions automatically.\n return true;\n }\n\n const hasAnyPermissionGroup = permissionsGroupList.some((permissions, i) => {\n const hasAnyAllowed = checkUserHasPermissions(allowedGroupList[i], userRoles, chtPermissionsSettings, true);\n const hasAnyDisallowed = !checkUserHasPermissions(disallowedGroupList[i], userRoles, chtPermissionsSettings, false);\n // Checking the 'permission group' is valid.\n return hasAnyAllowed && !hasAnyDisallowed;\n });\n\n if (!hasAnyPermissionGroup) {\n debug('No matching permissions', permissionsGroupList, userRoles);\n return false;\n }\n\n return true;\n};\n\nmodule.exports = {\n hasPermissions,\n hasAnyPermission\n};\n","/**\n * CHT Script API - Index\n * Builds and exports a versioned API from feature modules.\n * Whenever possible keep this file clean by defining new features in modules.\n */\nconst auth = require('./auth');\n\n/**\n * Verify if the user's role has the permission(s).\n * @param permissions {string | string[]} Permission(s) to verify\n * @param userRoles {string[]} Array of user roles.\n * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings.\n * @return {boolean}\n */\nconst hasPermissions = (permissions, userRoles, chtPermissionsSettings) => {\n return auth.hasPermissions(permissions, userRoles, chtPermissionsSettings);\n};\n\n/**\n * Verify if the user's role has all the permissions of any of the provided groups.\n * @param permissionsGroupList {string[][]} Array of groups of permissions due to the complexity of permission grouping\n * @param userRoles {string[]} Array of user roles.\n * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings.\n * @return {boolean}\n */\nconst hasAnyPermission = (permissionsGroupList, userRoles, chtPermissionsSettings) => {\n return auth.hasAnyPermission(permissionsGroupList, userRoles, chtPermissionsSettings);\n};\n\nmodule.exports = {\n v1: {\n hasPermissions,\n hasAnyPermission\n }\n};\n","const HARDCODED_PERSON_TYPE = 'person';\nconst HARDCODED_TYPES = [\n 'district_hospital',\n 'health_center',\n 'clinic',\n 'person'\n];\n\nconst getContactTypes = config => {\n return config && Array.isArray(config.contact_types) && config.contact_types || [];\n};\n\nconst getTypeId = (doc) => {\n if (!doc) {\n return;\n }\n return doc.type === 'contact' ? doc.contact_type : doc.type;\n};\n\nconst getTypeById = (config, typeId) => {\n const contactTypes = getContactTypes(config);\n return contactTypes.find(type => type.id === typeId);\n};\n\nconst isPersonType = (type) => {\n return type && (type.person || type.id === HARDCODED_PERSON_TYPE);\n};\n\nconst isPlaceType = (type) => {\n return type && !type.person && type.id !== HARDCODED_PERSON_TYPE;\n};\n\nconst hasParents = (type) => !!(type && type.parents && type.parents.length);\n\nconst isParentOf = (parentType, childType) => {\n if (!parentType || !childType) {\n return false;\n }\n\n const parentTypeId = typeof parentType === 'string' ? parentType : parentType.id;\n return !!(childType && childType.parents && childType.parents.includes(parentTypeId));\n};\n\n// A leaf place type is a contact type that does not have any child place types, but can have child person types\nconst getLeafPlaceTypes = (config) => {\n const types = getContactTypes(config);\n const placeTypes = types.filter(type => !type.person);\n return placeTypes.filter(type => {\n return placeTypes.every(inner => !inner.parents || !inner.parents.includes(type.id));\n });\n};\n\nconst getContactType = (config, contact) => {\n const typeId = getTypeId(contact);\n return typeId && getTypeById(config, typeId);\n};\n\n// returns true if contact's type exists and is a person type OR if contact's type is the hardcoded person type\nconst isPerson = (config, contact) => {\n const typeId = getTypeId(contact);\n const type = getTypeById(config, typeId) || { id: typeId };\n return isPersonType(type);\n};\n\nconst isPlace = (config, contact) => {\n const type = getContactType(config, contact);\n return isPlaceType(type);\n};\n\nconst isHardcodedType = type => HARDCODED_TYPES.includes(type);\n\nconst isOrphan = (type) => !type.parents || !type.parents.length;\n/**\n * Returns an array of child types for the given type id.\n * If parent is falsey, returns the types with no parent.\n */\nconst getChildren = (config, parentType) => {\n const types = getContactTypes(config);\n return types.filter(type => (!parentType && isOrphan(type)) || isParentOf(parentType, type));\n};\n\nconst getPlaceTypes = (config) => getContactTypes(config).filter(isPlaceType);\nconst getPersonTypes = (config) => getContactTypes(config).filter(isPersonType);\n\nmodule.exports = {\n getTypeId,\n getTypeById,\n isPersonType,\n isPlaceType,\n hasParents,\n isParentOf,\n getLeafPlaceTypes,\n getContactType,\n isPerson,\n isPlace,\n isHardcodedType,\n HARDCODED_TYPES,\n getContactTypes,\n getChildren,\n getPlaceTypes,\n getPersonTypes,\n};\n","const _ = require('lodash/core');\n_.uniq = require('lodash/uniq');\nconst utils = require('./utils');\n\nconst deepCopy = obj => JSON.parse(JSON.stringify(obj));\n\nconst selfAndParents = function(self) {\n const parents = [];\n let current = self;\n while (current) {\n if (parents.includes(current)) {\n return parents;\n }\n\n parents.push(current);\n current = current.parent;\n }\n return parents;\n};\n\nconst extractParentIds = current => selfAndParents(current)\n .map(parent => parent._id)\n .filter(id => id);\n\nconst getContactById = (contacts, id) => id && contacts.find(contact => contact && contact._id === id);\n\nconst getContactIds = (contacts) => {\n const ids = [];\n contacts.forEach(doc => {\n if (!doc) {\n return;\n }\n\n const id = utils.getId(doc.contact);\n id && ids.push(id);\n\n if (!utils.validLinkedDocs(doc)) {\n return;\n }\n Object.keys(doc.linked_docs).forEach(key => {\n const id = utils.getId(doc.linked_docs[key]);\n id && ids.push(id);\n });\n });\n\n return _.uniq(ids);\n};\n\nmodule.exports = function(Promise, DB) {\n const fillParentsInDocs = function(doc, lineage) {\n if (!doc || !lineage.length) {\n return doc;\n }\n\n // Parent hierarchy starts at the contact for data_records\n let currentParent;\n if (utils.isReport(doc)) {\n currentParent = doc.contact = lineage.shift() || doc.contact;\n } else {\n // It's a contact\n currentParent = doc;\n }\n\n const parentIds = extractParentIds(currentParent.parent);\n lineage.forEach(function(l, i) {\n currentParent.parent = l ? deepCopy(l) : { _id: parentIds[i] };\n currentParent = currentParent.parent;\n });\n\n return doc;\n };\n\n const fillContactsInDocs = function(docs, contacts) {\n if (!contacts || !contacts.length) {\n return;\n }\n\n docs.forEach(function(doc) {\n if (!doc) {\n return;\n }\n const id = utils.getId(doc.contact);\n const contactDoc = getContactById(contacts, id);\n if (contactDoc) {\n doc.contact = deepCopy(contactDoc);\n }\n\n if (!utils.validLinkedDocs(doc)) {\n return;\n }\n\n Object.keys(doc.linked_docs).forEach(key => {\n const id = utils.getId(doc.linked_docs[key]);\n const contactDoc = getContactById(contacts, id);\n if (contactDoc) {\n doc.linked_docs[key] = deepCopy(contactDoc);\n }\n });\n });\n };\n\n const fetchContacts = function(lineage) {\n const contactIds = getContactIds(lineage);\n\n // Only fetch docs that are new to us\n const lineageContacts = [];\n const contactsToFetch = [];\n contactIds.forEach(function(id) {\n const contact = getContactById(lineage, id);\n if (contact) {\n lineageContacts.push(deepCopy(contact));\n } else {\n contactsToFetch.push(id);\n }\n });\n\n return fetchDocs(contactsToFetch)\n .then(function(fetchedContacts) {\n return lineageContacts.concat(fetchedContacts);\n });\n };\n\n const mergeLineagesIntoDoc = function(lineage, contacts, patientLineage, placeLineage) {\n const doc = lineage.shift();\n fillParentsInDocs(doc, lineage);\n\n if (patientLineage && patientLineage.length) {\n const patientDoc = patientLineage.shift();\n fillParentsInDocs(patientDoc, patientLineage);\n doc.patient = patientDoc;\n }\n\n if (placeLineage && placeLineage.length) {\n const placeDoc = placeLineage.shift();\n fillParentsInDocs(placeDoc, placeLineage);\n doc.place = placeDoc;\n }\n\n return doc;\n };\n\n /*\n * @returns {Object} subjectMaps\n * @returns {Map} subjectMaps.patientUuids - map with [k, v] pairs of [recordUuid, patientUuid]\n * @returns {Map} subjectMaps.placeUuids - map with [k, v] pairs of [recordUuid, placeUuid]\n */\n const fetchSubjectsUuids = (records) => {\n const shortcodes = [];\n const recordToPlaceUuidMap = new Map();\n const recordToPatientUuidMap = new Map();\n\n records.forEach(record => {\n if (!utils.isReport(record)) {\n return;\n }\n\n const patientId = utils.getPatientId(record);\n const placeId = utils.getPlaceId(record);\n recordToPatientUuidMap.set(record._id, patientId);\n recordToPlaceUuidMap.set(record._id, placeId);\n\n shortcodes.push(patientId, placeId);\n });\n\n if (!shortcodes.some(shortcode => shortcode)) {\n return Promise.resolve({ patientUuids: recordToPatientUuidMap, placeUuids: recordToPlaceUuidMap });\n }\n\n return contactUuidByShortcode(shortcodes).then(shortcodeToUuidMap => {\n records.forEach(record => {\n const patientShortcode = recordToPatientUuidMap.get(record._id);\n recordToPatientUuidMap.set(record._id, shortcodeToUuidMap.get(patientShortcode));\n\n const placeShortcode = recordToPlaceUuidMap.get(record._id);\n recordToPlaceUuidMap.set(record._id, shortcodeToUuidMap.get(placeShortcode));\n });\n\n return { patientUuids: recordToPatientUuidMap, placeUuids: recordToPlaceUuidMap };\n });\n };\n\n /*\n * @returns {Object} lineages\n * @returns {Array} lineages.patientLineage\n * @returns {Array} lineages.placeLineage\n */\n const fetchSubjectLineage = (record) => {\n if (!utils.isReport(record)) {\n return Promise.resolve({ patientLineage: [], placeLineage: [] });\n }\n\n const patientId = utils.getPatientId(record);\n const placeId = utils.getPlaceId(record);\n\n if (!patientId && !placeId) {\n return Promise.resolve({ patientLineage: [], placeLineage: [] });\n }\n\n return contactUuidByShortcode([patientId, placeId]).then((shortcodeToUuidMap) => {\n const patientUuid = shortcodeToUuidMap.get(patientId);\n const placeUuid = shortcodeToUuidMap.get(placeId);\n\n return fetchLineageByIds([patientUuid, placeUuid]).then((lineages) => {\n const patientLineage = lineages.find(lineage => lineage[0]._id === patientUuid) || [];\n const placeLineage = lineages.find(lineage => lineage[0]._id === placeUuid) || [];\n\n return { patientLineage, placeLineage };\n });\n });\n };\n\n /*\n * @returns {Map} map with [k, v] pairs of [shortcode, uuid]\n */\n const contactUuidByShortcode = function(shortcodes) {\n const keys = shortcodes\n .filter(shortcode => shortcode)\n .map(shortcode => [ 'shortcode', shortcode ]);\n\n return DB.query('medic-client/contacts_by_reference', { keys })\n .then(function(results) {\n const findIdWithKey = key => {\n const matchingRow = results.rows.find(row => row.key[1] === key);\n return matchingRow && matchingRow.id;\n };\n\n return new Map(shortcodes.map(shortcode => ([ shortcode, findIdWithKey(shortcode) || shortcode, ])));\n });\n };\n\n const fetchLineageById = function(id) {\n const options = {\n startkey: [id],\n endkey: [id, {}],\n include_docs: true\n };\n return DB.query('medic-client/docs_by_id_lineage', options)\n .then(function(result) {\n return result.rows.map(function(row) {\n return row.doc;\n });\n });\n };\n\n const fetchLineageByIds = function(ids) {\n return fetchDocs(ids).then(function(docs) {\n return hydrateDocs(docs).then(function(hydratedDocs) {\n // Returning a list of docs just like fetchLineageById\n const docsList = [];\n hydratedDocs.forEach(function(hdoc) {\n const docLineage = selfAndParents(hdoc);\n docsList.push(docLineage);\n });\n return docsList;\n });\n });\n };\n\n const fetchDoc = function(id) {\n return DB.get(id)\n .catch(function(err) {\n if (err.status === 404) {\n err.statusCode = 404;\n }\n throw err;\n });\n };\n\n const fetchHydratedDoc = function(id, options = {}, callback = undefined) {\n let lineage;\n let patientLineage;\n let placeLineage;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n _.defaults(options, {\n throwWhenMissingLineage: false,\n });\n\n return fetchLineageById(id)\n .then(function(result) {\n lineage = result;\n\n if (lineage.length === 0) {\n if (options.throwWhenMissingLineage) {\n const err = new Error(`Document not found: ${id}`);\n err.code = 404;\n throw err;\n } else {\n // Not a doc that has lineage, just do a normal fetch.\n return fetchDoc(id);\n }\n }\n\n return fetchSubjectLineage(lineage[0])\n .then((lineages = {}) => {\n patientLineage = lineages.patientLineage;\n placeLineage = lineages.placeLineage;\n\n return fetchContacts(lineage.concat(patientLineage, placeLineage));\n })\n .then(function(contacts) {\n fillContactsInDocs(lineage, contacts);\n fillContactsInDocs(patientLineage, contacts);\n fillContactsInDocs(placeLineage, contacts);\n return mergeLineagesIntoDoc(lineage, contacts, patientLineage, placeLineage);\n });\n })\n .then(function(result) {\n if (callback) {\n callback(null, result);\n }\n return result;\n })\n .catch(function(err) {\n if (callback) {\n callback(err);\n } else {\n throw err;\n }\n });\n };\n\n // for data_records, include the first-level contact.\n const collectParentIds = function(docs) {\n const ids = [];\n docs.forEach(function(doc) {\n let parent = doc.parent;\n if (utils.isReport(doc)) {\n const contactId = utils.getId(doc.contact);\n if (!contactId) {\n return;\n }\n ids.push(contactId);\n parent = doc.contact;\n }\n\n ids.push(...extractParentIds(parent));\n });\n return _.uniq(ids);\n };\n\n // for data_records, doesn't include the first-level contact (it counts as a parent).\n const collectLeafContactIds = function(partiallyHydratedDocs) {\n const ids = [];\n partiallyHydratedDocs.forEach(function(doc) {\n const startLineageFrom = utils.isReport(doc) ? doc.contact : doc;\n ids.push(...getContactIds(selfAndParents(startLineageFrom)));\n });\n\n return _.uniq(ids);\n };\n\n const fetchDocs = function(ids) {\n if (!ids || !ids.length) {\n return Promise.resolve([]);\n }\n const keys = _.uniq(ids.filter(id => id));\n if (keys.length === 0) {\n return Promise.resolve([]);\n }\n\n return DB.allDocs({ keys, include_docs: true })\n .then(function(results) {\n return results.rows\n .map(function(row) {\n return row.doc;\n })\n .filter(function(doc) {\n return !!doc;\n });\n });\n };\n\n const hydrateDocs = function(docs) {\n if (!docs.length) {\n return Promise.resolve([]);\n }\n\n const hydratedDocs = deepCopy(docs); // a copy of the original docs which we will incrementally hydrate and return\n const knownDocs = [...hydratedDocs]; // an array of all documents which we have fetched\n\n let patientUuids; // a map of [k, v] pairs with [hydratedDocUuid, patientUuid]\n let placeUuids; // a map of [k, v] pairs with [hydratedDocUuid, placeUuid]\n\n return fetchSubjectsUuids(hydratedDocs)\n .then((subjectMaps) => {\n placeUuids = subjectMaps.placeUuids;\n patientUuids = subjectMaps.patientUuids;\n\n return fetchDocs([...placeUuids.values(), ...patientUuids.values()]);\n })\n .then(subjects => {\n knownDocs.push(...subjects);\n\n const firstRoundIdsToFetch = _.uniq([\n ...collectParentIds(hydratedDocs),\n ...collectLeafContactIds(hydratedDocs),\n\n ...collectParentIds(subjects),\n ...collectLeafContactIds(subjects),\n ]);\n\n return fetchDocs(firstRoundIdsToFetch);\n })\n .then(function(firstRoundFetched) {\n knownDocs.push(...firstRoundFetched);\n const secondRoundIdsToFetch = collectLeafContactIds(firstRoundFetched)\n .filter(id => !knownDocs.some(doc => doc._id === id));\n return fetchDocs(secondRoundIdsToFetch);\n })\n .then(function(secondRoundFetched) {\n knownDocs.push(...secondRoundFetched);\n\n fillContactsInDocs(knownDocs, knownDocs);\n hydratedDocs.forEach((doc) => {\n const reconstructLineage = (docWithLineage, parents) => {\n const parentIds = extractParentIds(docWithLineage);\n return parentIds.map(id => {\n // how can we use hashmaps?\n return getContactById(parents, id);\n });\n };\n\n const isReport = utils.isReport(doc);\n const findParentsFor = isReport ? doc.contact : doc;\n const lineage = reconstructLineage(findParentsFor, knownDocs);\n\n if (isReport) {\n lineage.unshift(doc);\n }\n\n const patientDoc = getContactById(knownDocs, patientUuids.get(doc._id));\n const patientLineage = reconstructLineage(patientDoc, knownDocs);\n\n const placeDoc = getContactById(knownDocs, placeUuids.get(doc._id));\n const placeLineage = reconstructLineage(placeDoc, knownDocs);\n\n mergeLineagesIntoDoc(lineage, knownDocs, patientLineage, placeLineage);\n });\n\n return hydratedDocs;\n });\n };\n\n const fetchHydratedDocs = docIds => {\n if (!Array.isArray(docIds)) {\n return Promise.reject(new Error('Invalid parameter: \"docIds\" must be an array'));\n }\n\n if (!docIds.length) {\n return Promise.resolve([]);\n }\n\n if (docIds.length === 1) {\n return fetchHydratedDoc(docIds[0])\n .then(doc => [doc])\n .catch(err => {\n if (err.status === 404) {\n return [];\n }\n\n throw err;\n });\n }\n\n return DB\n .allDocs({ keys: docIds, include_docs: true })\n .then(result => {\n const docs = result.rows.map(row => row.doc).filter(doc => doc);\n return hydrateDocs(docs);\n });\n };\n\n return {\n /**\n * Given a doc id get a doc and all parents, contact (and parents) and patient (and parents) and place (and parents)\n * @param {String} id The id of the doc to fetch and hydrate\n * @param {Object} [options] Options for the behavior of the hydration\n * @param {Boolean} [options.throwWhenMissingLineage=false] When true, throw if the doc has nothing to hydrate.\n * When false, does a best effort to return the document regardless of content.\n * @returns {Promise} A promise to return the hydrated doc.\n */\n fetchHydratedDoc: (id, options, callback) => fetchHydratedDoc(id, options, callback),\n\n /**\n * Given an array of ids, returns hydrated versions of every requested doc (using hydrateDocs or fetchHydratedDoc)\n * If a doc is not found, it's simply excluded from the results list\n * @param {Object[]} docs The array of docs to hydrate\n * @returns {Promise} A promise to return the hydrated docs\n */\n fetchHydratedDocs: docIds => fetchHydratedDocs(docIds),\n\n /**\n * Given an array of docs bind the parents, contact (and parents) and patient (and parents) and place (and parents)\n * @param {Object[]} docs The array of docs to hydrate\n * @returns {Promise}\n */\n hydrateDocs: docs => hydrateDocs(docs),\n\n fetchLineageById,\n fetchLineageByIds,\n fillContactsInDocs,\n fillParentsInDocs,\n fetchContacts,\n };\n};\n","/**\n * @module lineage\n */\nmodule.exports = (Promise, DB) => Object.assign(\n {},\n require('./hydration')(Promise, DB),\n require('./minify')\n);\n","const utils = require('./utils');\nconst RECURSION_LIMIT = 50;\n\n// Minifies things you would attach to another doc:\n// doc.parent = minify(doc.parent)\n// Not:\n// minify(doc)\nconst minifyLineage = (parent) => {\n if (!parent || !parent._id) {\n return parent;\n }\n\n const docId = parent._id;\n const result = { _id: parent._id };\n let minified = result;\n for (let guard = RECURSION_LIMIT; parent.parent && parent.parent._id; --guard) {\n if (guard === 0) {\n throw Error(`Could not minify ${docId}, possible parent recursion.`);\n }\n\n minified.parent = { _id: parent.parent._id };\n minified = minified.parent;\n parent = parent.parent;\n }\n\n return result;\n};\n\n/**\n * Remove all hyrdrated items and leave just the ids\n * @param {Object} doc The doc to minify\n */\nconst minify = (doc) => {\n if (!doc) {\n return;\n }\n if (doc.parent) {\n doc.parent = minifyLineage(doc.parent);\n }\n if (doc.contact && doc.contact._id) {\n const miniContact = { _id: doc.contact._id };\n if (doc.contact.parent) {\n miniContact.parent = minifyLineage(doc.contact.parent);\n }\n doc.contact = miniContact;\n }\n if (doc.type === 'data_record') {\n delete doc.patient;\n delete doc.place;\n }\n\n if (utils.validLinkedDocs(doc)) {\n Object.keys(doc.linked_docs).forEach(key => {\n doc.linked_docs[key] = utils.getId(doc.linked_docs[key]);\n });\n }\n};\n\nmodule.exports = {\n minify,\n minifyLineage,\n};\n","const contactTypeUtils = require('@medic/contact-types-utils');\nconst _ = require('lodash/core');\n\nconst isContact = doc => {\n if (!doc) {\n return;\n }\n\n return doc.type === 'contact' || contactTypeUtils.HARDCODED_TYPES.includes(doc.type);\n};\n\nconst getId = (item) => item && (typeof item === 'string' ? item : item._id);\n\n// don't process linked docs for non-contact types\n// linked_docs property should be a key-value object\nconst validLinkedDocs = doc => {\n return isContact(doc) && _.isObject(doc.linked_docs) && !_.isArray(doc.linked_docs);\n};\n\nconst isReport = (doc) => doc.type === 'data_record';\nconst getPatientId = (doc) => (doc.fields && (doc.fields.patient_id || doc.fields.patient_uuid)) || doc.patient_id;\nconst getPlaceId = (doc) => (doc.fields && doc.fields.place_id) || doc.place_id;\n\n\nmodule.exports = {\n getId,\n validLinkedDocs,\n isReport,\n getPatientId,\n getPlaceId,\n};\n","const uniq = require('lodash/uniq');\n\nconst formCodeMatches = (conf, form) => {\n return (new RegExp('^[^a-z]*' + conf + '[^a-z]*$', 'i')).test(form);\n};\n\n// Returns whether `doc` is a valid registration against a configuration\n// This is done by checks roughly similar to the `registration` transition filter function\n// Serves as a replacement for checking for `transitions` metadata within the doc itself\nexports.isValidRegistration = (doc, settings) => {\n if (!doc ||\n (doc.errors && doc.errors.length) ||\n !settings ||\n !settings.registrations ||\n doc.type !== 'data_record' ||\n !doc.form) {\n return false;\n }\n\n // Registration transition should be configured for this form\n const registrationConfiguration = settings.registrations.find((conf) => {\n return conf &&\n conf.form &&\n formCodeMatches(conf.form, doc.form);\n });\n if (!registrationConfiguration) {\n return false;\n }\n\n if (doc.content_type === 'xml') {\n return true;\n }\n\n // SMS forms need to be configured\n const form = settings.forms && settings.forms[doc.form];\n if (!form) {\n return false;\n }\n\n // Require a known submitter or the form to be public.\n return Boolean(form.public_form || doc.contact);\n};\n\nexports._formCodeMatches = formCodeMatches;\n\nconst CONTACT_SUBJECT_PROPERTIES = ['_id', 'patient_id', 'place_id'];\nconst REPORT_SUBJECT_PROPERTIES = ['patient_id', 'patient_uuid', 'place_id', 'place_uuid'];\n\nexports.getSubjectIds = (doc) => {\n const subjectIds = [];\n\n if (!doc) {\n return subjectIds;\n }\n\n if (doc.type === 'data_record') {\n REPORT_SUBJECT_PROPERTIES.forEach(prop => {\n if (doc[prop]) {\n subjectIds.push(doc[prop]);\n }\n if (doc.fields && doc.fields[prop]) {\n subjectIds.push(doc.fields[prop]);\n }\n });\n } else {\n CONTACT_SUBJECT_PROPERTIES.forEach(prop => {\n if (doc[prop]) {\n subjectIds.push(doc[prop]);\n }\n });\n }\n\n return uniq(subjectIds);\n};\n\nexports.getSubjectId = report => {\n if (!report) {\n return false;\n }\n for (const prop of REPORT_SUBJECT_PROPERTIES) {\n if (report[prop]) {\n return report[prop];\n }\n if (report.fields && report.fields[prop]) {\n return report.fields[prop];\n }\n }\n};\n","(function () {\n \"use strict\";\n\n function defineArgumentsExtended(extended, is) {\n\n var pSlice = Array.prototype.slice,\n isArguments = is.isArguments;\n\n function argsToArray(args, slice) {\n var i = -1, j = 0, l = args.length, ret = [];\n slice = slice || 0;\n i += slice;\n while (++i < l) {\n ret[j++] = args[i];\n }\n return ret;\n }\n\n\n return extended\n .define(isArguments, {\n toArray: argsToArray\n })\n .expose({\n argsToArray: argsToArray\n });\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineArgumentsExtended(require(\"extended\"), require(\"is-extended\"));\n\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"extended\", \"is-extended\"], function (extended, is) {\n return defineArgumentsExtended(extended, is);\n });\n } else {\n this.argumentsExtended = defineArgumentsExtended(this.extended, this.isExtended);\n }\n\n}).call(this);\n\n","(function () {\n \"use strict\";\n /*global define*/\n\n function defineArray(extended, is, args) {\n\n var isString = is.isString,\n isArray = Array.isArray || is.isArray,\n isDate = is.isDate,\n floor = Math.floor,\n abs = Math.abs,\n mathMax = Math.max,\n mathMin = Math.min,\n arrayProto = Array.prototype,\n arrayIndexOf = arrayProto.indexOf,\n arrayForEach = arrayProto.forEach,\n arrayMap = arrayProto.map,\n arrayReduce = arrayProto.reduce,\n arrayReduceRight = arrayProto.reduceRight,\n arrayFilter = arrayProto.filter,\n arrayEvery = arrayProto.every,\n arraySome = arrayProto.some,\n argsToArray = args.argsToArray;\n\n\n function cross(num, cros) {\n return reduceRight(cros, function (a, b) {\n if (!isArray(b)) {\n b = [b];\n }\n b.unshift(num);\n a.unshift(b);\n return a;\n }, []);\n }\n\n function permute(num, cross, length) {\n var ret = [];\n for (var i = 0; i < cross.length; i++) {\n ret.push([num].concat(rotate(cross, i)).slice(0, length));\n }\n return ret;\n }\n\n\n function intersection(a, b) {\n var ret = [], aOne, i = -1, l;\n l = a.length;\n while (++i < l) {\n aOne = a[i];\n if (indexOf(b, aOne) !== -1) {\n ret.push(aOne);\n }\n }\n return ret;\n }\n\n\n var _sort = (function () {\n\n var isAll = function (arr, test) {\n return every(arr, test);\n };\n\n var defaultCmp = function (a, b) {\n return a - b;\n };\n\n var dateSort = function (a, b) {\n return a.getTime() - b.getTime();\n };\n\n return function _sort(arr, property) {\n var ret = [];\n if (isArray(arr)) {\n ret = arr.slice();\n if (property) {\n if (typeof property === \"function\") {\n ret.sort(property);\n } else {\n ret.sort(function (a, b) {\n var aProp = a[property], bProp = b[property];\n if (isString(aProp) && isString(bProp)) {\n return aProp > bProp ? 1 : aProp < bProp ? -1 : 0;\n } else if (isDate(aProp) && isDate(bProp)) {\n return aProp.getTime() - bProp.getTime();\n } else {\n return aProp - bProp;\n }\n });\n }\n } else {\n if (isAll(ret, isString)) {\n ret.sort();\n } else if (isAll(ret, isDate)) {\n ret.sort(dateSort);\n } else {\n ret.sort(defaultCmp);\n }\n }\n }\n return ret;\n };\n\n })();\n\n function indexOf(arr, searchElement, from) {\n var index = (from || 0) - 1,\n length = arr.length;\n while (++index < length) {\n if (arr[index] === searchElement) {\n return index;\n }\n }\n return -1;\n }\n\n function lastIndexOf(arr, searchElement, from) {\n if (!isArray(arr)) {\n throw new TypeError();\n }\n\n var t = Object(arr);\n var len = t.length >>> 0;\n if (len === 0) {\n return -1;\n }\n\n var n = len;\n if (arguments.length > 2) {\n n = Number(arguments[2]);\n if (n !== n) {\n n = 0;\n } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) {\n n = (n > 0 || -1) * floor(abs(n));\n }\n }\n\n var k = n >= 0 ? mathMin(n, len - 1) : len - abs(n);\n\n for (; k >= 0; k--) {\n if (k in t && t[k] === searchElement) {\n return k;\n }\n }\n return -1;\n }\n\n function filter(arr, iterator, scope) {\n if (arr && arrayFilter && arrayFilter === arr.filter) {\n return arr.filter(iterator, scope);\n }\n if (!isArray(arr) || typeof iterator !== \"function\") {\n throw new TypeError();\n }\n\n var t = Object(arr);\n var len = t.length >>> 0;\n var res = [];\n for (var i = 0; i < len; i++) {\n if (i in t) {\n var val = t[i]; // in case fun mutates this\n if (iterator.call(scope, val, i, t)) {\n res.push(val);\n }\n }\n }\n return res;\n }\n\n function forEach(arr, iterator, scope) {\n if (!isArray(arr) || typeof iterator !== \"function\") {\n throw new TypeError();\n }\n if (arr && arrayForEach && arrayForEach === arr.forEach) {\n arr.forEach(iterator, scope);\n return arr;\n }\n for (var i = 0, len = arr.length; i < len; ++i) {\n iterator.call(scope || arr, arr[i], i, arr);\n }\n\n return arr;\n }\n\n function every(arr, iterator, scope) {\n if (arr && arrayEvery && arrayEvery === arr.every) {\n return arr.every(iterator, scope);\n }\n if (!isArray(arr) || typeof iterator !== \"function\") {\n throw new TypeError();\n }\n var t = Object(arr);\n var len = t.length >>> 0;\n for (var i = 0; i < len; i++) {\n if (i in t && !iterator.call(scope, t[i], i, t)) {\n return false;\n }\n }\n return true;\n }\n\n function some(arr, iterator, scope) {\n if (arr && arraySome && arraySome === arr.some) {\n return arr.some(iterator, scope);\n }\n if (!isArray(arr) || typeof iterator !== \"function\") {\n throw new TypeError();\n }\n var t = Object(arr);\n var len = t.length >>> 0;\n for (var i = 0; i < len; i++) {\n if (i in t && iterator.call(scope, t[i], i, t)) {\n return true;\n }\n }\n return false;\n }\n\n function map(arr, iterator, scope) {\n if (arr && arrayMap && arrayMap === arr.map) {\n return arr.map(iterator, scope);\n }\n if (!isArray(arr) || typeof iterator !== \"function\") {\n throw new TypeError();\n }\n\n var t = Object(arr);\n var len = t.length >>> 0;\n var res = [];\n for (var i = 0; i < len; i++) {\n if (i in t) {\n res.push(iterator.call(scope, t[i], i, t));\n }\n }\n return res;\n }\n\n function reduce(arr, accumulator, curr) {\n var initial = arguments.length > 2;\n if (arr && arrayReduce && arrayReduce === arr.reduce) {\n return initial ? arr.reduce(accumulator, curr) : arr.reduce(accumulator);\n }\n if (!isArray(arr) || typeof accumulator !== \"function\") {\n throw new TypeError();\n }\n var i = 0, l = arr.length >> 0;\n if (arguments.length < 3) {\n if (l === 0) {\n throw new TypeError(\"Array length is 0 and no second argument\");\n }\n curr = arr[0];\n i = 1; // start accumulating at the second element\n } else {\n curr = arguments[2];\n }\n while (i < l) {\n if (i in arr) {\n curr = accumulator.call(undefined, curr, arr[i], i, arr);\n }\n ++i;\n }\n return curr;\n }\n\n function reduceRight(arr, accumulator, curr) {\n var initial = arguments.length > 2;\n if (arr && arrayReduceRight && arrayReduceRight === arr.reduceRight) {\n return initial ? arr.reduceRight(accumulator, curr) : arr.reduceRight(accumulator);\n }\n if (!isArray(arr) || typeof accumulator !== \"function\") {\n throw new TypeError();\n }\n\n var t = Object(arr);\n var len = t.length >>> 0;\n\n // no value to return if no initial value, empty array\n if (len === 0 && arguments.length === 2) {\n throw new TypeError();\n }\n\n var k = len - 1;\n if (arguments.length >= 3) {\n curr = arguments[2];\n } else {\n do {\n if (k in arr) {\n curr = arr[k--];\n break;\n }\n }\n while (true);\n }\n while (k >= 0) {\n if (k in t) {\n curr = accumulator.call(undefined, curr, t[k], k, t);\n }\n k--;\n }\n return curr;\n }\n\n\n function toArray(o) {\n var ret = [];\n if (o !== null) {\n var args = argsToArray(arguments);\n if (args.length === 1) {\n if (isArray(o)) {\n ret = o;\n } else if (is.isHash(o)) {\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n ret.push([i, o[i]]);\n }\n }\n } else {\n ret.push(o);\n }\n } else {\n forEach(args, function (a) {\n ret = ret.concat(toArray(a));\n });\n }\n }\n return ret;\n }\n\n function sum(array) {\n array = array || [];\n if (array.length) {\n return reduce(array, function (a, b) {\n return a + b;\n });\n } else {\n return 0;\n }\n }\n\n function avg(arr) {\n arr = arr || [];\n if (arr.length) {\n var total = sum(arr);\n if (is.isNumber(total)) {\n return total / arr.length;\n } else {\n throw new Error(\"Cannot average an array of non numbers.\");\n }\n } else {\n return 0;\n }\n }\n\n function sort(arr, cmp) {\n return _sort(arr, cmp);\n }\n\n function min(arr, cmp) {\n return _sort(arr, cmp)[0];\n }\n\n function max(arr, cmp) {\n return _sort(arr, cmp)[arr.length - 1];\n }\n\n function difference(arr1) {\n var ret = arr1, args = flatten(argsToArray(arguments, 1));\n if (isArray(arr1)) {\n ret = filter(arr1, function (a) {\n return indexOf(args, a) === -1;\n });\n }\n return ret;\n }\n\n function removeDuplicates(arr) {\n var ret = [], i = -1, l, retLength = 0;\n if (arr) {\n l = arr.length;\n while (++i < l) {\n var item = arr[i];\n if (indexOf(ret, item) === -1) {\n ret[retLength++] = item;\n }\n }\n }\n return ret;\n }\n\n\n function unique(arr) {\n return removeDuplicates(arr);\n }\n\n\n function rotate(arr, numberOfTimes) {\n var ret = arr.slice();\n if (typeof numberOfTimes !== \"number\") {\n numberOfTimes = 1;\n }\n if (numberOfTimes && isArray(arr)) {\n if (numberOfTimes > 0) {\n ret.push(ret.shift());\n numberOfTimes--;\n } else {\n ret.unshift(ret.pop());\n numberOfTimes++;\n }\n return rotate(ret, numberOfTimes);\n } else {\n return ret;\n }\n }\n\n function permutations(arr, length) {\n var ret = [];\n if (isArray(arr)) {\n var copy = arr.slice(0);\n if (typeof length !== \"number\") {\n length = arr.length;\n }\n if (!length) {\n ret = [\n []\n ];\n } else if (length <= arr.length) {\n ret = reduce(arr, function (a, b, i) {\n var ret;\n if (length > 1) {\n ret = permute(b, rotate(copy, i).slice(1), length);\n } else {\n ret = [\n [b]\n ];\n }\n return a.concat(ret);\n }, []);\n }\n }\n return ret;\n }\n\n function zip() {\n var ret = [];\n var arrs = argsToArray(arguments);\n if (arrs.length > 1) {\n var arr1 = arrs.shift();\n if (isArray(arr1)) {\n ret = reduce(arr1, function (a, b, i) {\n var curr = [b];\n for (var j = 0; j < arrs.length; j++) {\n var currArr = arrs[j];\n if (isArray(currArr) && !is.isUndefined(currArr[i])) {\n curr.push(currArr[i]);\n } else {\n curr.push(null);\n }\n }\n a.push(curr);\n return a;\n }, []);\n }\n }\n return ret;\n }\n\n function transpose(arr) {\n var ret = [];\n if (isArray(arr) && arr.length) {\n var last;\n forEach(arr, function (a) {\n if (isArray(a) && (!last || a.length === last.length)) {\n forEach(a, function (b, i) {\n if (!ret[i]) {\n ret[i] = [];\n }\n ret[i].push(b);\n });\n last = a;\n }\n });\n }\n return ret;\n }\n\n function valuesAt(arr, indexes) {\n var ret = [];\n indexes = argsToArray(arguments);\n arr = indexes.shift();\n if (isArray(arr) && indexes.length) {\n for (var i = 0, l = indexes.length; i < l; i++) {\n ret.push(arr[indexes[i]] || null);\n }\n }\n return ret;\n }\n\n function union() {\n var ret = [];\n var arrs = argsToArray(arguments);\n if (arrs.length > 1) {\n for (var i = 0, l = arrs.length; i < l; i++) {\n ret = ret.concat(arrs[i]);\n }\n ret = removeDuplicates(ret);\n }\n return ret;\n }\n\n function intersect() {\n var collect = [], sets, i = -1 , l;\n if (arguments.length > 1) {\n //assume we are intersections all the lists in the array\n sets = argsToArray(arguments);\n } else {\n sets = arguments[0];\n }\n if (isArray(sets)) {\n collect = sets[0];\n i = 0;\n l = sets.length;\n while (++i < l) {\n collect = intersection(collect, sets[i]);\n }\n }\n return removeDuplicates(collect);\n }\n\n function powerSet(arr) {\n var ret = [];\n if (isArray(arr) && arr.length) {\n ret = reduce(arr, function (a, b) {\n var ret = map(a, function (c) {\n return c.concat(b);\n });\n return a.concat(ret);\n }, [\n []\n ]);\n }\n return ret;\n }\n\n function cartesian(a, b) {\n var ret = [];\n if (isArray(a) && isArray(b) && a.length && b.length) {\n ret = cross(a[0], b).concat(cartesian(a.slice(1), b));\n }\n return ret;\n }\n\n function compact(arr) {\n var ret = [];\n if (isArray(arr) && arr.length) {\n ret = filter(arr, function (item) {\n return !is.isUndefinedOrNull(item);\n });\n }\n return ret;\n }\n\n function multiply(arr, times) {\n times = is.isNumber(times) ? times : 1;\n if (!times) {\n //make sure times is greater than zero if it is zero then dont multiply it\n times = 1;\n }\n arr = toArray(arr || []);\n var ret = [], i = 0;\n while (++i <= times) {\n ret = ret.concat(arr);\n }\n return ret;\n }\n\n function flatten(arr) {\n var set;\n var args = argsToArray(arguments);\n if (args.length > 1) {\n //assume we are intersections all the lists in the array\n set = args;\n } else {\n set = toArray(arr);\n }\n return reduce(set, function (a, b) {\n return a.concat(b);\n }, []);\n }\n\n function pluck(arr, prop) {\n prop = prop.split(\".\");\n var result = arr.slice(0);\n forEach(prop, function (prop) {\n var exec = prop.match(/(\\w+)\\(\\)$/);\n result = map(result, function (item) {\n return exec ? item[exec[1]]() : item[prop];\n });\n });\n return result;\n }\n\n function invoke(arr, func, args) {\n args = argsToArray(arguments, 2);\n return map(arr, function (item) {\n var exec = isString(func) ? item[func] : func;\n return exec.apply(item, args);\n });\n }\n\n\n var array = {\n toArray: toArray,\n sum: sum,\n avg: avg,\n sort: sort,\n min: min,\n max: max,\n difference: difference,\n removeDuplicates: removeDuplicates,\n unique: unique,\n rotate: rotate,\n permutations: permutations,\n zip: zip,\n transpose: transpose,\n valuesAt: valuesAt,\n union: union,\n intersect: intersect,\n powerSet: powerSet,\n cartesian: cartesian,\n compact: compact,\n multiply: multiply,\n flatten: flatten,\n pluck: pluck,\n invoke: invoke,\n forEach: forEach,\n map: map,\n filter: filter,\n reduce: reduce,\n reduceRight: reduceRight,\n some: some,\n every: every,\n indexOf: indexOf,\n lastIndexOf: lastIndexOf\n };\n\n return extended.define(isArray, array).expose(array);\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineArray(require(\"extended\"), require(\"is-extended\"), require(\"arguments-extended\"));\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"extended\", \"is-extended\", \"arguments-extended\"], function (extended, is, args) {\n return defineArray(extended, is, args);\n });\n } else {\n this.arrayExtended = defineArray(this.extended, this.isExtended, this.argumentsExtended);\n }\n\n}).call(this);\n\n\n\n\n\n\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","const _ = require('underscore');\n\nconst NO_LMP_DATE_MODIFIER = 4;\n\nmodule.exports = function(settings) {\n const taskSchedules = settings && settings.tasks && settings.tasks.schedules;\n const lib = {\n /**\n * @function\n * In legacy versions, partner code is required to only emit tasks which are ready to be displayed to the user. Utils.isTimely is the mechanism used for this.\n * With the rules-engine improvements in webapp 3.8, this responsibility shifts. Partner code should emit all tasks and the webapp's rules-engine decides what to display.\n * To this end - Utils.isTimely becomes a pass-through in nootils@4.x\n * @returns True\n */\n isTimely: () => true,\n\n addDate: function(date, days) {\n let result;\n if (date) {\n result = new Date(date.getTime());\n } else {\n result = lib.now();\n }\n result.setDate(result.getDate() + days);\n result.setHours(0, 0, 0, 0);\n return result;\n },\n\n getLmpDate: function(doc) {\n const weeks = doc.fields.last_menstrual_period || NO_LMP_DATE_MODIFIER;\n return lib.addDate(new Date(doc.reported_date), weeks * -7);\n },\n\n // TODO getSchedule() can be removed when tasks.json support is dropped\n getSchedule: function(name) {\n return _.findWhere(taskSchedules, { name: name });\n },\n\n getMostRecentTimestamp: function(reports, form, fields) {\n const report = lib.getMostRecentReport(reports, form, fields);\n return report && report.reported_date;\n },\n\n getMostRecentReport: function(reports, forms, fields) {\n if (!Array.isArray(forms)) {\n forms = [forms];\n }\n let result = null;\n reports.forEach(function(report) {\n if (forms.includes(report.form) &&\n !report.deleted &&\n (!result || (report.reported_date > result.reported_date)) &&\n (!fields || (report.fields && lib.fieldsMatch(report, fields)))) {\n result = report;\n }\n });\n return result;\n },\n\n isFormSubmittedInWindow: function(reports, form, start, end, count) {\n let result = false;\n reports.forEach(function(report) {\n if (!result && report.form === form) {\n if (report.reported_date >= start && report.reported_date <= end) {\n if (!count ||\n (count && report.fields && report.fields.follow_up_count > count)) {\n result = true;\n }\n }\n }\n });\n return result;\n },\n\n isFirstReportNewer: function(firstReport, secondReport) {\n if (firstReport && firstReport.reported_date) {\n if (secondReport && secondReport.reported_date) {\n return firstReport.reported_date > secondReport.reported_date;\n }\n return true;\n }\n return null;\n },\n\n isDateValid: function(date) {\n return !isNaN(date.getTime());\n },\n\n /**\n * @function\n * @name getField\n *\n * Gets the value of specified field path.\n * @param {Object} report - The report object.\n * @param {string} field - Period separated json path assuming report.fields as\n * the root node e.g 'dob' (equivalent to report.fields.dob)\n * or 'screening.test_result' equivalent to report.fields.screening.test_result\n */\n getField: function(report, field) {\n return _.propertyOf(report.fields)(field.split('.'));\n },\n\n fieldsMatch: function(report, fieldValues) {\n return Object.keys(fieldValues).every(function(field) {\n return lib.getField(report, field) === fieldValues[field];\n });\n },\n\n MS_IN_DAY: 24*60*60*1000, // 1 day in ms\n\n now: function() { return new Date(); },\n };\n\n return lib;\n};\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","(function () {\n \"use strict\";\n\n function defineDate(extended, is, array) {\n\n function _pad(string, length, ch, end) {\n string = \"\" + string; //check for numbers\n ch = ch || \" \";\n var strLen = string.length;\n while (strLen < length) {\n if (end) {\n string += ch;\n } else {\n string = ch + string;\n }\n strLen++;\n }\n return string;\n }\n\n function _truncate(string, length, end) {\n var ret = string;\n if (is.isString(ret)) {\n if (string.length > length) {\n if (end) {\n var l = string.length;\n ret = string.substring(l - length, l);\n } else {\n ret = string.substring(0, length);\n }\n }\n } else {\n ret = _truncate(\"\" + ret, length);\n }\n return ret;\n }\n\n function every(arr, iterator, scope) {\n if (!is.isArray(arr) || typeof iterator !== \"function\") {\n throw new TypeError();\n }\n var t = Object(arr);\n var len = t.length >>> 0;\n for (var i = 0; i < len; i++) {\n if (i in t && !iterator.call(scope, t[i], i, t)) {\n return false;\n }\n }\n return true;\n }\n\n\n var transforms = (function () {\n var floor = Math.floor, round = Math.round;\n\n var addMap = {\n day: function addDay(date, amount) {\n return [amount, \"Date\", false];\n },\n weekday: function addWeekday(date, amount) {\n // Divide the increment time span into weekspans plus leftover days\n // e.g., 8 days is one 5-day weekspan / and two leftover days\n // Can't have zero leftover days, so numbers divisible by 5 get\n // a days value of 5, and the remaining days make up the number of weeks\n var days, weeks, mod = amount % 5, strt = date.getDay(), adj = 0;\n if (!mod) {\n days = (amount > 0) ? 5 : -5;\n weeks = (amount > 0) ? ((amount - 5) / 5) : ((amount + 5) / 5);\n } else {\n days = mod;\n weeks = parseInt(amount / 5, 10);\n }\n if (strt === 6 && amount > 0) {\n adj = 1;\n } else if (strt === 0 && amount < 0) {\n // Orig date is Sun / negative increment\n // Jump back over Sat\n adj = -1;\n }\n // Get weekday val for the new date\n var trgt = strt + days;\n // New date is on Sat or Sun\n if (trgt === 0 || trgt === 6) {\n adj = (amount > 0) ? 2 : -2;\n }\n // Increment by number of weeks plus leftover days plus\n // weekend adjustments\n return [(7 * weeks) + days + adj, \"Date\", false];\n },\n year: function addYear(date, amount) {\n return [amount, \"FullYear\", true];\n },\n week: function addWeek(date, amount) {\n return [amount * 7, \"Date\", false];\n },\n quarter: function addYear(date, amount) {\n return [amount * 3, \"Month\", true];\n },\n month: function addYear(date, amount) {\n return [amount, \"Month\", true];\n }\n };\n\n function addTransform(interval, date, amount) {\n interval = interval.replace(/s$/, \"\");\n if (addMap.hasOwnProperty(interval)) {\n return addMap[interval](date, amount);\n }\n return [amount, \"UTC\" + interval.charAt(0).toUpperCase() + interval.substring(1) + \"s\", false];\n }\n\n\n var differenceMap = {\n \"quarter\": function quarterDifference(date1, date2, utc) {\n var yearDiff = date2.getFullYear() - date1.getFullYear();\n var m1 = date1[utc ? \"getUTCMonth\" : \"getMonth\"]();\n var m2 = date2[utc ? \"getUTCMonth\" : \"getMonth\"]();\n // Figure out which quarter the months are in\n var q1 = floor(m1 / 3) + 1;\n var q2 = floor(m2 / 3) + 1;\n // Add quarters for any year difference between the dates\n q2 += (yearDiff * 4);\n return q2 - q1;\n },\n\n \"weekday\": function weekdayDifference(date1, date2, utc) {\n var days = differenceTransform(\"day\", date1, date2, utc), weeks;\n var mod = days % 7;\n // Even number of weeks\n if (mod === 0) {\n days = differenceTransform(\"week\", date1, date2, utc) * 5;\n } else {\n // Weeks plus spare change (< 7 days)\n var adj = 0, aDay = date1[utc ? \"getUTCDay\" : \"getDay\"](), bDay = date2[utc ? \"getUTCDay\" : \"getDay\"]();\n weeks = parseInt(days / 7, 10);\n // Mark the date advanced by the number of\n // round weeks (may be zero)\n var dtMark = new Date(+date1);\n dtMark.setDate(dtMark[utc ? \"getUTCDate\" : \"getDate\"]() + (weeks * 7));\n var dayMark = dtMark[utc ? \"getUTCDay\" : \"getDay\"]();\n\n // Spare change days -- 6 or less\n if (days > 0) {\n if (aDay === 6 || bDay === 6) {\n adj = -1;\n } else if (aDay === 0) {\n adj = 0;\n } else if (bDay === 0 || (dayMark + mod) > 5) {\n adj = -2;\n }\n } else if (days < 0) {\n if (aDay === 6) {\n adj = 0;\n } else if (aDay === 0 || bDay === 0) {\n adj = 1;\n } else if (bDay === 6 || (dayMark + mod) < 0) {\n adj = 2;\n }\n }\n days += adj;\n days -= (weeks * 2);\n }\n return days;\n },\n year: function (date1, date2) {\n return date2.getFullYear() - date1.getFullYear();\n },\n month: function (date1, date2, utc) {\n var m1 = date1[utc ? \"getUTCMonth\" : \"getMonth\"]();\n var m2 = date2[utc ? \"getUTCMonth\" : \"getMonth\"]();\n return (m2 - m1) + ((date2.getFullYear() - date1.getFullYear()) * 12);\n },\n week: function (date1, date2, utc) {\n return round(differenceTransform(\"day\", date1, date2, utc) / 7);\n },\n day: function (date1, date2) {\n return 1.1574074074074074e-8 * (date2.getTime() - date1.getTime());\n },\n hour: function (date1, date2) {\n return 2.7777777777777776e-7 * (date2.getTime() - date1.getTime());\n },\n minute: function (date1, date2) {\n return 0.000016666666666666667 * (date2.getTime() - date1.getTime());\n },\n second: function (date1, date2) {\n return 0.001 * (date2.getTime() - date1.getTime());\n },\n millisecond: function (date1, date2) {\n return date2.getTime() - date1.getTime();\n }\n };\n\n\n function differenceTransform(interval, date1, date2, utc) {\n interval = interval.replace(/s$/, \"\");\n return round(differenceMap[interval](date1, date2, utc));\n }\n\n\n return {\n addTransform: addTransform,\n differenceTransform: differenceTransform\n };\n }()),\n addTransform = transforms.addTransform,\n differenceTransform = transforms.differenceTransform;\n\n\n /**\n * @ignore\n * Based on DOJO Date Implementation\n *\n * Dojo is available under *either* the terms of the modified BSD license *or* the\n * Academic Free License version 2.1. As a recipient of Dojo, you may choose which\n * license to receive this code under (except as noted in per-module LICENSE\n * files). Some modules may not be the copyright of the Dojo Foundation. These\n * modules contain explicit declarations of copyright in both the LICENSE files in\n * the directories in which they reside and in the code itself. No external\n * contributions are allowed under licenses which are fundamentally incompatible\n * with the AFL or BSD licenses that Dojo is distributed under.\n *\n */\n\n var floor = Math.floor, round = Math.round, min = Math.min, pow = Math.pow, ceil = Math.ceil, abs = Math.abs;\n var monthNames = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n var monthAbbr = [\"Jan.\", \"Feb.\", \"Mar.\", \"Apr.\", \"May.\", \"Jun.\", \"Jul.\", \"Aug.\", \"Sep.\", \"Oct.\", \"Nov.\", \"Dec.\"];\n var dayNames = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n var dayAbbr = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n var eraNames = [\"Before Christ\", \"Anno Domini\"];\n var eraAbbr = [\"BC\", \"AD\"];\n\n\n function getDayOfYear(/*Date*/dateObject, utc) {\n // summary: gets the day of the year as represented by dateObject\n return date.difference(new Date(dateObject.getFullYear(), 0, 1, dateObject.getHours()), dateObject, null, utc) + 1; // Number\n }\n\n function getWeekOfYear(/*Date*/dateObject, /*Number*/firstDayOfWeek, utc) {\n firstDayOfWeek = firstDayOfWeek || 0;\n var fullYear = dateObject[utc ? \"getUTCFullYear\" : \"getFullYear\"]();\n var firstDayOfYear = new Date(fullYear, 0, 1).getDay(),\n adj = (firstDayOfYear - firstDayOfWeek + 7) % 7,\n week = floor((getDayOfYear(dateObject) + adj - 1) / 7);\n\n // if year starts on the specified day, start counting weeks at 1\n if (firstDayOfYear === firstDayOfWeek) {\n week++;\n }\n\n return week; // Number\n }\n\n function getTimezoneName(/*Date*/dateObject) {\n var str = dateObject.toString();\n var tz = '';\n var pos = str.indexOf('(');\n if (pos > -1) {\n tz = str.substring(++pos, str.indexOf(')'));\n }\n return tz; // String\n }\n\n\n function buildDateEXP(pattern, tokens) {\n return pattern.replace(/([a-z])\\1*/ig,function (match) {\n // Build a simple regexp. Avoid captures, which would ruin the tokens list\n var s,\n c = match.charAt(0),\n l = match.length,\n p2 = '0?',\n p3 = '0{0,2}';\n if (c === 'y') {\n s = '\\\\d{2,4}';\n } else if (c === \"M\") {\n s = (l > 2) ? '\\\\S+?' : '1[0-2]|' + p2 + '[1-9]';\n } else if (c === \"D\") {\n s = '[12][0-9][0-9]|3[0-5][0-9]|36[0-6]|' + p3 + '[1-9][0-9]|' + p2 + '[1-9]';\n } else if (c === \"d\") {\n s = '3[01]|[12]\\\\d|' + p2 + '[1-9]';\n } else if (c === \"w\") {\n s = '[1-4][0-9]|5[0-3]|' + p2 + '[1-9]';\n } else if (c === \"E\") {\n s = '\\\\S+';\n } else if (c === \"h\") {\n s = '1[0-2]|' + p2 + '[1-9]';\n } else if (c === \"K\") {\n s = '1[01]|' + p2 + '\\\\d';\n } else if (c === \"H\") {\n s = '1\\\\d|2[0-3]|' + p2 + '\\\\d';\n } else if (c === \"k\") {\n s = '1\\\\d|2[0-4]|' + p2 + '[1-9]';\n } else if (c === \"m\" || c === \"s\") {\n s = '[0-5]\\\\d';\n } else if (c === \"S\") {\n s = '\\\\d{' + l + '}';\n } else if (c === \"a\") {\n var am = 'AM', pm = 'PM';\n s = am + '|' + pm;\n if (am !== am.toLowerCase()) {\n s += '|' + am.toLowerCase();\n }\n if (pm !== pm.toLowerCase()) {\n s += '|' + pm.toLowerCase();\n }\n s = s.replace(/\\./g, \"\\\\.\");\n } else if (c === 'v' || c === 'z' || c === 'Z' || c === 'G' || c === 'q' || c === 'Q') {\n s = \".*\";\n } else {\n s = c === \" \" ? \"\\\\s*\" : c + \"*\";\n }\n if (tokens) {\n tokens.push(match);\n }\n\n return \"(\" + s + \")\"; // add capture\n }).replace(/[\\xa0 ]/g, \"[\\\\s\\\\xa0]\"); // normalize whitespace. Need explicit handling of \\xa0 for IE.\n }\n\n\n /**\n * @namespace Utilities for Dates\n */\n var date = {\n\n /**@lends date*/\n\n /**\n * Returns the number of days in the month of a date\n *\n * @example\n *\n * dateExtender.getDaysInMonth(new Date(2006, 1, 1)); //28\n * dateExtender.getDaysInMonth(new Date(2004, 1, 1)); //29\n * dateExtender.getDaysInMonth(new Date(2006, 2, 1)); //31\n * dateExtender.getDaysInMonth(new Date(2006, 3, 1)); //30\n * dateExtender.getDaysInMonth(new Date(2006, 4, 1)); //31\n * dateExtender.getDaysInMonth(new Date(2006, 5, 1)); //30\n * dateExtender.getDaysInMonth(new Date(2006, 6, 1)); //31\n * @param {Date} dateObject the date containing the month\n * @return {Number} the number of days in the month\n */\n getDaysInMonth: function (/*Date*/dateObject) {\n //\tsummary:\n //\t\tReturns the number of days in the month used by dateObject\n var month = dateObject.getMonth();\n var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n if (month === 1 && date.isLeapYear(dateObject)) {\n return 29;\n } // Number\n return days[month]; // Number\n },\n\n /**\n * Determines if a date is a leap year\n *\n * @example\n *\n * dateExtender.isLeapYear(new Date(1600, 0, 1)); //true\n * dateExtender.isLeapYear(new Date(2004, 0, 1)); //true\n * dateExtender.isLeapYear(new Date(2000, 0, 1)); //true\n * dateExtender.isLeapYear(new Date(2006, 0, 1)); //false\n * dateExtender.isLeapYear(new Date(1900, 0, 1)); //false\n * dateExtender.isLeapYear(new Date(1800, 0, 1)); //false\n * dateExtender.isLeapYear(new Date(1700, 0, 1)); //false\n *\n * @param {Date} dateObject\n * @returns {Boolean} true if it is a leap year false otherwise\n */\n isLeapYear: function (/*Date*/dateObject, utc) {\n var year = dateObject[utc ? \"getUTCFullYear\" : \"getFullYear\"]();\n return (year % 400 === 0) || (year % 4 === 0 && year % 100 !== 0);\n\n },\n\n /**\n * Determines if a date is on a weekend\n *\n * @example\n *\n * var thursday = new Date(2006, 8, 21);\n * var saturday = new Date(2006, 8, 23);\n * var sunday = new Date(2006, 8, 24);\n * var monday = new Date(2006, 8, 25);\n * dateExtender.isWeekend(thursday)); //false\n * dateExtender.isWeekend(saturday); //true\n * dateExtender.isWeekend(sunday); //true\n * dateExtender.isWeekend(monday)); //false\n *\n * @param {Date} dateObject the date to test\n *\n * @returns {Boolean} true if the date is a weekend\n */\n isWeekend: function (/*Date?*/dateObject, utc) {\n // summary:\n //\tDetermines if the date falls on a weekend, according to local custom.\n var day = (dateObject || new Date())[utc ? \"getUTCDay\" : \"getDay\"]();\n return day === 0 || day === 6;\n },\n\n /**\n * Get the timezone of a date\n *\n * @example\n * //just setting the strLocal to simulate the toString() of a date\n * dt.str = 'Sun Sep 17 2006 22:25:51 GMT-0500 (CDT)';\n * //just setting the strLocal to simulate the locale\n * dt.strLocale = 'Sun 17 Sep 2006 10:25:51 PM CDT';\n * dateExtender.getTimezoneName(dt); //'CDT'\n * dt.str = 'Sun Sep 17 2006 22:57:18 GMT-0500 (CDT)';\n * dt.strLocale = 'Sun Sep 17 22:57:18 2006';\n * dateExtender.getTimezoneName(dt); //'CDT'\n * @param dateObject the date to get the timezone from\n *\n * @returns {String} the timezone of the date\n */\n getTimezoneName: getTimezoneName,\n\n /**\n * Compares two dates\n *\n * @example\n *\n * var d1 = new Date();\n * d1.setHours(0);\n * dateExtender.compare(d1, d1); // 0\n *\n * var d1 = new Date();\n * d1.setHours(0);\n * var d2 = new Date();\n * d2.setFullYear(2005);\n * d2.setHours(12);\n * dateExtender.compare(d1, d2, \"date\"); // 1\n * dateExtender.compare(d1, d2, \"datetime\"); // 1\n *\n * var d1 = new Date();\n * d1.setHours(0);\n * var d2 = new Date();\n * d2.setFullYear(2005);\n * d2.setHours(12);\n * dateExtender.compare(d2, d1, \"date\"); // -1\n * dateExtender.compare(d1, d2, \"time\"); //-1\n *\n * @param {Date|String} date1 the date to comapare\n * @param {Date|String} [date2=new Date()] the date to compare date1 againse\n * @param {\"date\"|\"time\"|\"datetime\"} portion compares the portion specified\n *\n * @returns -1 if date1 is < date2 0 if date1 === date2 1 if date1 > date2\n */\n compare: function (/*Date*/date1, /*Date*/date2, /*String*/portion) {\n date1 = new Date(+date1);\n date2 = new Date(+(date2 || new Date()));\n\n if (portion === \"date\") {\n // Ignore times and compare dates.\n date1.setHours(0, 0, 0, 0);\n date2.setHours(0, 0, 0, 0);\n } else if (portion === \"time\") {\n // Ignore dates and compare times.\n date1.setFullYear(0, 0, 0);\n date2.setFullYear(0, 0, 0);\n }\n return date1 > date2 ? 1 : date1 < date2 ? -1 : 0;\n },\n\n\n /**\n * Adds a specified interval and amount to a date\n *\n * @example\n * var dtA = new Date(2005, 11, 27);\n * dateExtender.add(dtA, \"year\", 1); //new Date(2006, 11, 27);\n * dateExtender.add(dtA, \"years\", 1); //new Date(2006, 11, 27);\n *\n * dtA = new Date(2000, 0, 1);\n * dateExtender.add(dtA, \"quarter\", 1); //new Date(2000, 3, 1);\n * dateExtender.add(dtA, \"quarters\", 1); //new Date(2000, 3, 1);\n *\n * dtA = new Date(2000, 0, 1);\n * dateExtender.add(dtA, \"month\", 1); //new Date(2000, 1, 1);\n * dateExtender.add(dtA, \"months\", 1); //new Date(2000, 1, 1);\n *\n * dtA = new Date(2000, 0, 31);\n * dateExtender.add(dtA, \"month\", 1); //new Date(2000, 1, 29);\n * dateExtender.add(dtA, \"months\", 1); //new Date(2000, 1, 29);\n *\n * dtA = new Date(2000, 0, 1);\n * dateExtender.add(dtA, \"week\", 1); //new Date(2000, 0, 8);\n * dateExtender.add(dtA, \"weeks\", 1); //new Date(2000, 0, 8);\n *\n * dtA = new Date(2000, 0, 1);\n * dateExtender.add(dtA, \"day\", 1); //new Date(2000, 0, 2);\n *\n * dtA = new Date(2000, 0, 1);\n * dateExtender.add(dtA, \"weekday\", 1); //new Date(2000, 0, 3);\n *\n * dtA = new Date(2000, 0, 1, 11);\n * dateExtender.add(dtA, \"hour\", 1); //new Date(2000, 0, 1, 12);\n *\n * dtA = new Date(2000, 11, 31, 23, 59);\n * dateExtender.add(dtA, \"minute\", 1); //new Date(2001, 0, 1, 0, 0);\n *\n * dtA = new Date(2000, 11, 31, 23, 59, 59);\n * dateExtender.add(dtA, \"second\", 1); //new Date(2001, 0, 1, 0, 0, 0);\n *\n * dtA = new Date(2000, 11, 31, 23, 59, 59, 999);\n * dateExtender.add(dtA, \"millisecond\", 1); //new Date(2001, 0, 1, 0, 0, 0, 0);\n *\n * @param {Date} date\n * @param {String} interval the interval to add\n *
                \n *
              • day | days
              • \n *
              • weekday | weekdays
              • \n *
              • year | years
              • \n *
              • week | weeks
              • \n *
              • quarter | quarters
              • \n *
              • months | months
              • \n *
              • hour | hours
              • \n *
              • minute | minutes
              • \n *
              • second | seconds
              • \n *
              • millisecond | milliseconds
              • \n *
              \n * @param {Number} [amount=0] the amount to add\n */\n add: function (/*Date*/date, /*String*/interval, /*int*/amount) {\n var res = addTransform(interval, date, amount || 0);\n amount = res[0];\n var property = res[1];\n var sum = new Date(+date);\n var fixOvershoot = res[2];\n if (property) {\n sum[\"set\" + property](sum[\"get\" + property]() + amount);\n }\n\n if (fixOvershoot && (sum.getDate() < date.getDate())) {\n sum.setDate(0);\n }\n\n return sum; // Date\n },\n\n /**\n * Finds the difference between two dates based on the specified interval\n *\n * @example\n *\n * var dtA, dtB;\n *\n * dtA = new Date(2005, 11, 27);\n * dtB = new Date(2006, 11, 27);\n * dateExtender.difference(dtA, dtB, \"year\"); //1\n *\n * dtA = new Date(2000, 1, 29);\n * dtB = new Date(2001, 2, 1);\n * dateExtender.difference(dtA, dtB, \"quarter\"); //4\n * dateExtender.difference(dtA, dtB, \"month\"); //13\n *\n * dtA = new Date(2000, 1, 1);\n * dtB = new Date(2000, 1, 8);\n * dateExtender.difference(dtA, dtB, \"week\"); //1\n *\n * dtA = new Date(2000, 1, 29);\n * dtB = new Date(2000, 2, 1);\n * dateExtender.difference(dtA, dtB, \"day\"); //1\n *\n * dtA = new Date(2006, 7, 3);\n * dtB = new Date(2006, 7, 11);\n * dateExtender.difference(dtA, dtB, \"weekday\"); //6\n *\n * dtA = new Date(2000, 11, 31, 23);\n * dtB = new Date(2001, 0, 1, 0);\n * dateExtender.difference(dtA, dtB, \"hour\"); //1\n *\n * dtA = new Date(2000, 11, 31, 23, 59);\n * dtB = new Date(2001, 0, 1, 0, 0);\n * dateExtender.difference(dtA, dtB, \"minute\"); //1\n *\n * dtA = new Date(2000, 11, 31, 23, 59, 59);\n * dtB = new Date(2001, 0, 1, 0, 0, 0);\n * dateExtender.difference(dtA, dtB, \"second\"); //1\n *\n * dtA = new Date(2000, 11, 31, 23, 59, 59, 999);\n * dtB = new Date(2001, 0, 1, 0, 0, 0, 0);\n * dateExtender.difference(dtA, dtB, \"millisecond\"); //1\n *\n *\n * @param {Date} date1\n * @param {Date} [date2 = new Date()]\n * @param {String} [interval = \"day\"] the intercal to find the difference of.\n *
                \n *
              • day | days
              • \n *
              • weekday | weekdays
              • \n *
              • year | years
              • \n *
              • week | weeks
              • \n *
              • quarter | quarters
              • \n *
              • months | months
              • \n *
              • hour | hours
              • \n *
              • minute | minutes
              • \n *
              • second | seconds
              • \n *
              • millisecond | milliseconds
              • \n *
              \n */\n difference: function (/*Date*/date1, /*Date?*/date2, /*String*/interval, utc) {\n date2 = date2 || new Date();\n interval = interval || \"day\";\n return differenceTransform(interval, date1, date2, utc);\n },\n\n /**\n * Formats a date to the specidifed format string\n *\n * @example\n *\n * var date = new Date(2006, 7, 11, 0, 55, 12, 345);\n * dateExtender.format(date, \"EEEE, MMMM dd, yyyy\"); //\"Friday, August 11, 2006\"\n * dateExtender.format(date, \"M/dd/yy\"); //\"8/11/06\"\n * dateExtender.format(date, \"E\"); //\"6\"\n * dateExtender.format(date, \"h:m a\"); //\"12:55 AM\"\n * dateExtender.format(date, 'h:m:s'); //\"12:55:12\"\n * dateExtender.format(date, 'h:m:s.SS'); //\"12:55:12.35\"\n * dateExtender.format(date, 'k:m:s.SS'); //\"24:55:12.35\"\n * dateExtender.format(date, 'H:m:s.SS'); //\"0:55:12.35\"\n * dateExtender.format(date, \"ddMMyyyy\"); //\"11082006\"\n *\n * @param date the date to format\n * @param {String} format the format of the date composed of the following options\n *
                \n *
              • G Era designator Text AD
              • \n *
              • y Year Year 1996; 96
              • \n *
              • M Month in year Month July; Jul; 07
              • \n *
              • w Week in year Number 27
              • \n *
              • W Week in month Number 2
              • \n *
              • D Day in year Number 189
              • \n *
              • d Day in month Number 10
              • \n *
              • E Day in week Text Tuesday; Tue
              • \n *
              • a Am/pm marker Text PM
              • \n *
              • H Hour in day (0-23) Number 0
              • \n *
              • k Hour in day (1-24) Number 24
              • \n *
              • K Hour in am/pm (0-11) Number 0
              • \n *
              • h Hour in am/pm (1-12) Number 12
              • \n *
              • m Minute in hour Number 30
              • \n *
              • s Second in minute Number 55
              • \n *
              • S Millisecond Number 978
              • \n *
              • z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
              • \n *
              • Z Time zone RFC 822 time zone -0800
              • \n *
              \n */\n format: function (date, format, utc) {\n utc = utc || false;\n var fullYear, month, day, d, hour, minute, second, millisecond;\n if (utc) {\n fullYear = date.getUTCFullYear();\n month = date.getUTCMonth();\n day = date.getUTCDay();\n d = date.getUTCDate();\n hour = date.getUTCHours();\n minute = date.getUTCMinutes();\n second = date.getUTCSeconds();\n millisecond = date.getUTCMilliseconds();\n } else {\n fullYear = date.getFullYear();\n month = date.getMonth();\n d = date.getDate();\n day = date.getDay();\n hour = date.getHours();\n minute = date.getMinutes();\n second = date.getSeconds();\n millisecond = date.getMilliseconds();\n }\n return format.replace(/([A-Za-z])\\1*/g, function (match) {\n var s, pad,\n c = match.charAt(0),\n l = match.length;\n if (c === 'd') {\n s = \"\" + d;\n pad = true;\n } else if (c === \"H\" && !s) {\n s = \"\" + hour;\n pad = true;\n } else if (c === 'm' && !s) {\n s = \"\" + minute;\n pad = true;\n } else if (c === 's') {\n if (!s) {\n s = \"\" + second;\n }\n pad = true;\n } else if (c === \"G\") {\n s = ((l < 4) ? eraAbbr : eraNames)[fullYear < 0 ? 0 : 1];\n } else if (c === \"y\") {\n s = fullYear;\n if (l > 1) {\n if (l === 2) {\n s = _truncate(\"\" + s, 2, true);\n } else {\n pad = true;\n }\n }\n } else if (c.toUpperCase() === \"Q\") {\n s = ceil((month + 1) / 3);\n pad = true;\n } else if (c === \"M\") {\n if (l < 3) {\n s = month + 1;\n pad = true;\n } else {\n s = (l === 3 ? monthAbbr : monthNames)[month];\n }\n } else if (c === \"w\") {\n s = getWeekOfYear(date, 0, utc);\n pad = true;\n } else if (c === \"D\") {\n s = getDayOfYear(date, utc);\n pad = true;\n } else if (c === \"E\") {\n if (l < 3) {\n s = day + 1;\n pad = true;\n } else {\n s = (l === -3 ? dayAbbr : dayNames)[day];\n }\n } else if (c === 'a') {\n s = (hour < 12) ? 'AM' : 'PM';\n } else if (c === \"h\") {\n s = (hour % 12) || 12;\n pad = true;\n } else if (c === \"K\") {\n s = (hour % 12);\n pad = true;\n } else if (c === \"k\") {\n s = hour || 24;\n pad = true;\n } else if (c === \"S\") {\n s = round(millisecond * pow(10, l - 3));\n pad = true;\n } else if (c === \"z\" || c === \"v\" || c === \"Z\") {\n s = getTimezoneName(date);\n if ((c === \"z\" || c === \"v\") && !s) {\n l = 4;\n }\n if (!s || c === \"Z\") {\n var offset = date.getTimezoneOffset();\n var tz = [\n (offset >= 0 ? \"-\" : \"+\"),\n _pad(floor(abs(offset) / 60), 2, \"0\"),\n _pad(abs(offset) % 60, 2, \"0\")\n ];\n if (l === 4) {\n tz.splice(0, 0, \"GMT\");\n tz.splice(3, 0, \":\");\n }\n s = tz.join(\"\");\n }\n } else {\n s = match;\n }\n if (pad) {\n s = _pad(s, l, '0');\n }\n return s;\n });\n }\n\n };\n\n var numberDate = {};\n\n function addInterval(interval) {\n numberDate[interval + \"sFromNow\"] = function (val) {\n return date.add(new Date(), interval, val);\n };\n numberDate[interval + \"sAgo\"] = function (val) {\n return date.add(new Date(), interval, -val);\n };\n }\n\n var intervals = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\"];\n for (var i = 0, l = intervals.length; i < l; i++) {\n addInterval(intervals[i]);\n }\n\n var stringDate = {\n\n parseDate: function (dateStr, format) {\n if (!format) {\n throw new Error('format required when calling dateExtender.parse');\n }\n var tokens = [], regexp = buildDateEXP(format, tokens),\n re = new RegExp(\"^\" + regexp + \"$\", \"i\"),\n match = re.exec(dateStr);\n if (!match) {\n return null;\n } // null\n var result = [1970, 0, 1, 0, 0, 0, 0], // will get converted to a Date at the end\n amPm = \"\",\n valid = every(match, function (v, i) {\n if (i) {\n var token = tokens[i - 1];\n var l = token.length, type = token.charAt(0);\n if (type === 'y') {\n if (v < 100) {\n v = parseInt(v, 10);\n //choose century to apply, according to a sliding window\n //of 80 years before and 20 years after present year\n var year = '' + new Date().getFullYear(),\n century = year.substring(0, 2) * 100,\n cutoff = min(year.substring(2, 4) + 20, 99);\n result[0] = (v < cutoff) ? century + v : century - 100 + v;\n } else {\n result[0] = v;\n }\n } else if (type === \"M\") {\n if (l > 2) {\n var months = monthNames, j, k;\n if (l === 3) {\n months = monthAbbr;\n }\n //Tolerate abbreviating period in month part\n //Case-insensitive comparison\n v = v.replace(\".\", \"\").toLowerCase();\n var contains = false;\n for (j = 0, k = months.length; j < k && !contains; j++) {\n var s = months[j].replace(\".\", \"\").toLocaleLowerCase();\n if (s === v) {\n v = j;\n contains = true;\n }\n }\n if (!contains) {\n return false;\n }\n } else {\n v--;\n }\n result[1] = v;\n } else if (type === \"E\" || type === \"e\") {\n var days = dayNames;\n if (l === 3) {\n days = dayAbbr;\n }\n //Case-insensitive comparison\n v = v.toLowerCase();\n days = array.map(days, function (d) {\n return d.toLowerCase();\n });\n var d = array.indexOf(days, v);\n if (d === -1) {\n v = parseInt(v, 10);\n if (isNaN(v) || v > days.length) {\n return false;\n }\n } else {\n v = d;\n }\n } else if (type === 'D' || type === \"d\") {\n if (type === \"D\") {\n result[1] = 0;\n }\n result[2] = v;\n } else if (type === \"a\") {\n var am = \"am\";\n var pm = \"pm\";\n var period = /\\./g;\n v = v.replace(period, '').toLowerCase();\n // we might not have seen the hours field yet, so store the state and apply hour change later\n amPm = (v === pm) ? 'p' : (v === am) ? 'a' : '';\n } else if (type === \"k\" || type === \"h\" || type === \"H\" || type === \"K\") {\n if (type === \"k\" && (+v) === 24) {\n v = 0;\n }\n result[3] = v;\n } else if (type === \"m\") {\n result[4] = v;\n } else if (type === \"s\") {\n result[5] = v;\n } else if (type === \"S\") {\n result[6] = v;\n }\n }\n return true;\n });\n if (valid) {\n var hours = +result[3];\n //account for am/pm\n if (amPm === 'p' && hours < 12) {\n result[3] = hours + 12; //e.g., 3pm -> 15\n } else if (amPm === 'a' && hours === 12) {\n result[3] = 0; //12am -> 0\n }\n var dateObject = new Date(result[0], result[1], result[2], result[3], result[4], result[5], result[6]); // Date\n var dateToken = (array.indexOf(tokens, 'd') !== -1),\n monthToken = (array.indexOf(tokens, 'M') !== -1),\n month = result[1],\n day = result[2],\n dateMonth = dateObject.getMonth(),\n dateDay = dateObject.getDate();\n if ((monthToken && dateMonth > month) || (dateToken && dateDay > day)) {\n return null;\n }\n return dateObject; // Date\n } else {\n return null;\n }\n }\n };\n\n\n var ret = extended.define(is.isDate, date).define(is.isString, stringDate).define(is.isNumber, numberDate);\n for (i in date) {\n if (date.hasOwnProperty(i)) {\n ret[i] = date[i];\n }\n }\n\n for (i in stringDate) {\n if (stringDate.hasOwnProperty(i)) {\n ret[i] = stringDate[i];\n }\n }\n for (i in numberDate) {\n if (numberDate.hasOwnProperty(i)) {\n ret[i] = numberDate[i];\n }\n }\n return ret;\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineDate(require(\"extended\"), require(\"is-extended\"), require(\"array-extended\"));\n\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"extended\", \"is-extended\", \"array-extended\"], function (extended, is, arr) {\n return defineDate(extended, is, arr);\n });\n } else {\n this.dateExtended = defineDate(this.extended, this.isExtended, this.arrayExtended);\n }\n\n}).call(this);\n\n\n\n\n\n\n","(function () {\n\n /**\n * @projectName declare\n * @github http://github.com/doug-martin/declare.js\n * @header\n *\n * Declare is a library designed to allow writing object oriented code the same way in both the browser and node.js.\n *\n * ##Installation\n *\n * `npm install declare.js`\n *\n * Or [download the source](https://raw.github.com/doug-martin/declare.js/master/declare.js) ([minified](https://raw.github.com/doug-martin/declare.js/master/declare-min.js))\n *\n * ###Requirejs\n *\n * To use with requirejs place the `declare` source in the root scripts directory\n *\n * ```\n *\n * define([\"declare\"], function(declare){\n * return declare({\n * instance : {\n * hello : function(){\n * return \"world\";\n * }\n * }\n * });\n * });\n *\n * ```\n *\n *\n * ##Usage\n *\n * declare.js provides\n *\n * Class methods\n *\n * * `as(module | object, name)` : exports the object to module or the object with the name\n * * `mixin(mixin)` : mixes in an object but does not inherit directly from the object. **Note** this does not return a new class but changes the original class.\n * * `extend(proto)` : extend a class with the given properties. A shortcut to `declare(Super, {})`;\n *\n * Instance methods\n *\n * * `_super(arguments)`: calls the super of the current method, you can pass in either the argments object or an array with arguments you want passed to super\n * * `_getSuper()`: returns a this methods direct super.\n * * `_static` : use to reference class properties and methods.\n * * `get(prop)` : gets a property invoking the getter if it exists otherwise it just returns the named property on the object.\n * * `set(prop, val)` : sets a property invoking the setter if it exists otherwise it just sets the named property on the object.\n *\n *\n * ###Declaring a new Class\n *\n * Creating a new class with declare is easy!\n *\n * ```\n *\n * var Mammal = declare({\n * //define your instance methods and properties\n * instance : {\n *\n * //will be called whenever a new instance is created\n * constructor: function(options) {\n * options = options || {};\n * this._super(arguments);\n * this._type = options.type || \"mammal\";\n * },\n *\n * speak : function() {\n * return \"A mammal of type \" + this._type + \" sounds like\";\n * },\n *\n * //Define your getters\n * getters : {\n *\n * //can be accessed by using the get method. (mammal.get(\"type\"))\n * type : function() {\n * return this._type;\n * }\n * },\n *\n * //Define your setters\n * setters : {\n *\n * //can be accessed by using the set method. (mammal.set(\"type\", \"mammalType\"))\n * type : function(t) {\n * this._type = t;\n * }\n * }\n * },\n *\n * //Define your static methods\n * static : {\n *\n * //Mammal.soundOff(); //\"Im a mammal!!\"\n * soundOff : function() {\n * return \"Im a mammal!!\";\n * }\n * }\n * });\n *\n *\n * ```\n *\n * You can use Mammal just like you would any other class.\n *\n * ```\n * Mammal.soundOff(\"Im a mammal!!\");\n *\n * var myMammal = new Mammal({type : \"mymammal\"});\n * myMammal.speak(); // \"A mammal of type mymammal sounds like\"\n * myMammal.get(\"type\"); //\"mymammal\"\n * myMammal.set(\"type\", \"mammal\");\n * myMammal.get(\"type\"); //\"mammal\"\n *\n *\n * ```\n *\n * ###Extending a class\n *\n * If you want to just extend a single class use the .extend method.\n *\n * ```\n *\n * var Wolf = Mammal.extend({\n *\n * //define your instance method\n * instance: {\n *\n * //You can override super constructors just be sure to call `_super`\n * constructor: function(options) {\n * options = options || {};\n * this._super(arguments); //call our super constructor.\n * this._sound = \"growl\";\n * this._color = options.color || \"grey\";\n * },\n *\n * //override Mammals `speak` method by appending our own data to it.\n * speak : function() {\n * return this._super(arguments) + \" a \" + this._sound;\n * },\n *\n * //add new getters for sound and color\n * getters : {\n *\n * //new Wolf().get(\"type\")\n * //notice color is read only as we did not define a setter\n * color : function() {\n * return this._color;\n * },\n *\n * //new Wolf().get(\"sound\")\n * sound : function() {\n * return this._sound;\n * }\n * },\n *\n * setters : {\n *\n * //new Wolf().set(\"sound\", \"howl\")\n * sound : function(s) {\n * this._sound = s;\n * }\n * }\n *\n * },\n *\n * static : {\n *\n * //You can override super static methods also! And you can still use _super\n * soundOff : function() {\n * //You can even call super in your statics!!!\n * //should return \"I'm a mammal!! that growls\"\n * return this._super(arguments) + \" that growls\";\n * }\n * }\n * });\n *\n * Wolf.soundOff(); //Im a mammal!! that growls\n *\n * var myWolf = new Wolf();\n * myWolf instanceof Mammal //true\n * myWolf instanceof Wolf //true\n *\n * ```\n *\n * You can also extend a class by using the declare method and just pass in the super class.\n *\n * ```\n * //Typical hierarchical inheritance\n * // Mammal->Wolf->Dog\n * var Dog = declare(Wolf, {\n * instance: {\n * constructor: function(options) {\n * options = options || {};\n * this._super(arguments);\n * //override Wolfs initialization of sound to woof.\n * this._sound = \"woof\";\n *\n * },\n *\n * speak : function() {\n * //Should return \"A mammal of type mammal sounds like a growl thats domesticated\"\n * return this._super(arguments) + \" thats domesticated\";\n * }\n * },\n *\n * static : {\n * soundOff : function() {\n * //should return \"I'm a mammal!! that growls but now barks\"\n * return this._super(arguments) + \" but now barks\";\n * }\n * }\n * });\n *\n * Dog.soundOff(); //Im a mammal!! that growls but now barks\n *\n * var myDog = new Dog();\n * myDog instanceof Mammal //true\n * myDog instanceof Wolf //true\n * myDog instanceof Dog //true\n *\n *\n * //Notice you still get the extend method.\n *\n * // Mammal->Wolf->Dog->Breed\n * var Breed = Dog.extend({\n * instance: {\n *\n * //initialize outside of constructor\n * _pitch : \"high\",\n *\n * constructor: function(options) {\n * options = options || {};\n * this._super(arguments);\n * this.breed = options.breed || \"lab\";\n * },\n *\n * speak : function() {\n * //Should return \"A mammal of type mammal sounds like a\n * //growl thats domesticated with a high pitch!\"\n * return this._super(arguments) + \" with a \" + this._pitch + \" pitch!\";\n * },\n *\n * getters : {\n * pitch : function() {\n * return this._pitch;\n * }\n * }\n * },\n *\n * static : {\n * soundOff : function() {\n * //should return \"I'M A MAMMAL!! THAT GROWLS BUT NOW BARKS!\"\n * return this._super(arguments).toUpperCase() + \"!\";\n * }\n * }\n * });\n *\n *\n * Breed.soundOff()//\"IM A MAMMAL!! THAT GROWLS BUT NOW BARKS!\"\n *\n * var myBreed = new Breed({color : \"gold\", type : \"lab\"}),\n * myBreed instanceof Dog //true\n * myBreed instanceof Wolf //true\n * myBreed instanceof Mammal //true\n * myBreed.speak() //\"A mammal of type lab sounds like a woof thats domesticated with a high pitch!\"\n * myBreed.get(\"type\") //\"lab\"\n * myBreed.get(\"color\") //\"gold\"\n * myBreed.get(\"sound\")\" //\"woof\"\n * ```\n *\n * ###Multiple Inheritance / Mixins\n *\n * declare also allows the use of multiple super classes.\n * This is useful if you have generic classes that provide functionality but shouldnt be used on their own.\n *\n * Lets declare a mixin that allows us to watch for property changes.\n *\n * ```\n * //Notice that we set up the functions outside of declare because we can reuse them\n *\n * function _set(prop, val) {\n * //get the old value\n * var oldVal = this.get(prop);\n * //call super to actually set the property\n * var ret = this._super(arguments);\n * //call our handlers\n * this.__callHandlers(prop, oldVal, val);\n * return ret;\n * }\n *\n * function _callHandlers(prop, oldVal, newVal) {\n * //get our handlers for the property\n * var handlers = this.__watchers[prop], l;\n * //if the handlers exist and their length does not equal 0 then we call loop through them\n * if (handlers && (l = handlers.length) !== 0) {\n * for (var i = 0; i < l; i++) {\n * //call the handler\n * handlers[i].call(null, prop, oldVal, newVal);\n * }\n * }\n * }\n *\n *\n * //the watch function\n * function _watch(prop, handler) {\n * if (\"function\" !== typeof handler) {\n * //if its not a function then its an invalid handler\n * throw new TypeError(\"Invalid handler.\");\n * }\n * if (!this.__watchers[prop]) {\n * //create the watchers if it doesnt exist\n * this.__watchers[prop] = [handler];\n * } else {\n * //otherwise just add it to the handlers array\n * this.__watchers[prop].push(handler);\n * }\n * }\n *\n * function _unwatch(prop, handler) {\n * if (\"function\" !== typeof handler) {\n * throw new TypeError(\"Invalid handler.\");\n * }\n * var handlers = this.__watchers[prop], index;\n * if (handlers && (index = handlers.indexOf(handler)) !== -1) {\n * //remove the handler if it is found\n * handlers.splice(index, 1);\n * }\n * }\n *\n * declare({\n * instance:{\n * constructor:function () {\n * this._super(arguments);\n * //set up our watchers\n * this.__watchers = {};\n * },\n *\n * //override the default set function so we can watch values\n * \"set\":_set,\n * //set up our callhandlers function\n * __callHandlers:_callHandlers,\n * //add the watch function\n * watch:_watch,\n * //add the unwatch function\n * unwatch:_unwatch\n * },\n *\n * \"static\":{\n *\n * init:function () {\n * this._super(arguments);\n * this.__watchers = {};\n * },\n * //override the default set function so we can watch values\n * \"set\":_set,\n * //set our callHandlers function\n * __callHandlers:_callHandlers,\n * //add the watch\n * watch:_watch,\n * //add the unwatch function\n * unwatch:_unwatch\n * }\n * })\n *\n * ```\n *\n * Now lets use the mixin\n *\n * ```\n * var WatchDog = declare([Dog, WatchMixin]);\n *\n * var watchDog = new WatchDog();\n * //create our handler\n * function watch(id, oldVal, newVal) {\n * console.log(\"watchdog's %s was %s, now %s\", id, oldVal, newVal);\n * }\n *\n * //watch for property changes\n * watchDog.watch(\"type\", watch);\n * watchDog.watch(\"color\", watch);\n * watchDog.watch(\"sound\", watch);\n *\n * //now set the properties each handler will be called\n * watchDog.set(\"type\", \"newDog\");\n * watchDog.set(\"color\", \"newColor\");\n * watchDog.set(\"sound\", \"newSound\");\n *\n *\n * //unwatch the property changes\n * watchDog.unwatch(\"type\", watch);\n * watchDog.unwatch(\"color\", watch);\n * watchDog.unwatch(\"sound\", watch);\n *\n * //no handlers will be called this time\n * watchDog.set(\"type\", \"newDog\");\n * watchDog.set(\"color\", \"newColor\");\n * watchDog.set(\"sound\", \"newSound\");\n *\n *\n * ```\n *\n * ###Accessing static methods and properties witin an instance.\n *\n * To access static properties on an instance use the `_static` property which is a reference to your constructor.\n *\n * For example if your in your constructor and you want to have configurable default values.\n *\n * ```\n * consturctor : function constructor(opts){\n * this.opts = opts || {};\n * this._type = opts.type || this._static.DEFAULT_TYPE;\n * }\n * ```\n *\n *\n *\n * ###Creating a new instance of within an instance.\n *\n * Often times you want to create a new instance of an object within an instance. If your subclassed however you cannot return a new instance of the parent class as it will not be the right sub class. `declare` provides a way around this by setting the `_static` property on each isntance of the class.\n *\n * Lets add a reproduce method `Mammal`\n *\n * ```\n * reproduce : function(options){\n * return new this._static(options);\n * }\n * ```\n *\n * Now in each subclass you can call reproduce and get the proper type.\n *\n * ```\n * var myDog = new Dog();\n * var myDogsChild = myDog.reproduce();\n *\n * myDogsChild instanceof Dog; //true\n * ```\n *\n * ###Using the `as`\n *\n * `declare` also provides an `as` method which allows you to add your class to an object or if your using node.js you can pass in `module` and the class will be exported as the module.\n *\n * ```\n * var animals = {};\n *\n * Mammal.as(animals, \"Dog\");\n * Wolf.as(animals, \"Wolf\");\n * Dog.as(animals, \"Dog\");\n * Breed.as(animals, \"Breed\");\n *\n * var myDog = new animals.Dog();\n *\n * ```\n *\n * Or in node\n *\n * ```\n * Mammal.as(exports, \"Dog\");\n * Wolf.as(exports, \"Wolf\");\n * Dog.as(exports, \"Dog\");\n * Breed.as(exports, \"Breed\");\n *\n * ```\n *\n * To export a class as the `module` in node\n *\n * ```\n * Mammal.as(module);\n * ```\n *\n *\n */\n function createDeclared() {\n var arraySlice = Array.prototype.slice, classCounter = 0, Base, forceNew = new Function();\n\n var SUPER_REGEXP = /(super)/g;\n\n function argsToArray(args, slice) {\n slice = slice || 0;\n return arraySlice.call(args, slice);\n }\n\n function isArray(obj) {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n }\n\n function isObject(obj) {\n var undef;\n return obj !== null && obj !== undef && typeof obj === \"object\";\n }\n\n function isHash(obj) {\n var ret = isObject(obj);\n return ret && obj.constructor === Object;\n }\n\n var isArguments = function _isArguments(object) {\n return Object.prototype.toString.call(object) === '[object Arguments]';\n };\n\n if (!isArguments(arguments)) {\n isArguments = function _isArguments(obj) {\n return !!(obj && obj.hasOwnProperty(\"callee\"));\n };\n }\n\n function indexOf(arr, item) {\n if (arr && arr.length) {\n for (var i = 0, l = arr.length; i < l; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n }\n return -1;\n }\n\n function merge(target, source, exclude) {\n var name, s;\n for (name in source) {\n if (source.hasOwnProperty(name) && indexOf(exclude, name) === -1) {\n s = source[name];\n if (!(name in target) || (target[name] !== s)) {\n target[name] = s;\n }\n }\n }\n return target;\n }\n\n function callSuper(args, a) {\n var meta = this.__meta,\n supers = meta.supers,\n l = supers.length, superMeta = meta.superMeta, pos = superMeta.pos;\n if (l > pos) {\n args = !args ? [] : (!isArguments(args) && !isArray(args)) ? [args] : args;\n var name = superMeta.name, f = superMeta.f, m;\n do {\n m = supers[pos][name];\n if (\"function\" === typeof m && (m = m._f || m) !== f) {\n superMeta.pos = 1 + pos;\n return m.apply(this, args);\n }\n } while (l > ++pos);\n }\n\n return null;\n }\n\n function getSuper() {\n var meta = this.__meta,\n supers = meta.supers,\n l = supers.length, superMeta = meta.superMeta, pos = superMeta.pos;\n if (l > pos) {\n var name = superMeta.name, f = superMeta.f, m;\n do {\n m = supers[pos][name];\n if (\"function\" === typeof m && (m = m._f || m) !== f) {\n superMeta.pos = 1 + pos;\n return m.bind(this);\n }\n } while (l > ++pos);\n }\n return null;\n }\n\n function getter(name) {\n var getters = this.__getters__;\n if (getters.hasOwnProperty(name)) {\n return getters[name].apply(this);\n } else {\n return this[name];\n }\n }\n\n function setter(name, val) {\n var setters = this.__setters__;\n if (isHash(name)) {\n for (var i in name) {\n var prop = name[i];\n if (setters.hasOwnProperty(i)) {\n setters[name].call(this, prop);\n } else {\n this[i] = prop;\n }\n }\n } else {\n if (setters.hasOwnProperty(name)) {\n return setters[name].apply(this, argsToArray(arguments, 1));\n } else {\n return this[name] = val;\n }\n }\n }\n\n\n function defaultFunction() {\n var meta = this.__meta || {},\n supers = meta.supers,\n l = supers.length, superMeta = meta.superMeta, pos = superMeta.pos;\n if (l > pos) {\n var name = superMeta.name, f = superMeta.f, m;\n do {\n m = supers[pos][name];\n if (\"function\" === typeof m && (m = m._f || m) !== f) {\n superMeta.pos = 1 + pos;\n return m.apply(this, arguments);\n }\n } while (l > ++pos);\n }\n return null;\n }\n\n\n function functionWrapper(f, name) {\n if (f.toString().match(SUPER_REGEXP)) {\n var wrapper = function wrapper() {\n var ret, meta = this.__meta || {};\n var orig = meta.superMeta;\n meta.superMeta = {f: f, pos: 0, name: name};\n switch (arguments.length) {\n case 0:\n ret = f.call(this);\n break;\n case 1:\n ret = f.call(this, arguments[0]);\n break;\n case 2:\n ret = f.call(this, arguments[0], arguments[1]);\n break;\n\n case 3:\n ret = f.call(this, arguments[0], arguments[1], arguments[2]);\n break;\n default:\n ret = f.apply(this, arguments);\n }\n meta.superMeta = orig;\n return ret;\n };\n wrapper._f = f;\n return wrapper;\n } else {\n f._f = f;\n return f;\n }\n }\n\n function defineMixinProps(child, proto) {\n\n var operations = proto.setters || {}, __setters = child.__setters__, __getters = child.__getters__;\n for (var i in operations) {\n if (!__setters.hasOwnProperty(i)) { //make sure that the setter isnt already there\n __setters[i] = operations[i];\n }\n }\n operations = proto.getters || {};\n for (i in operations) {\n if (!__getters.hasOwnProperty(i)) { //make sure that the setter isnt already there\n __getters[i] = operations[i];\n }\n }\n for (var j in proto) {\n if (j !== \"getters\" && j !== \"setters\") {\n var p = proto[j];\n if (\"function\" === typeof p) {\n if (!child.hasOwnProperty(j)) {\n child[j] = functionWrapper(defaultFunction, j);\n }\n } else {\n child[j] = p;\n }\n }\n }\n }\n\n function mixin() {\n var args = argsToArray(arguments), l = args.length;\n var child = this.prototype;\n var childMeta = child.__meta, thisMeta = this.__meta, bases = child.__meta.bases, staticBases = bases.slice(),\n staticSupers = thisMeta.supers || [], supers = childMeta.supers || [];\n for (var i = 0; i < l; i++) {\n var m = args[i], mProto = m.prototype;\n var protoMeta = mProto.__meta, meta = m.__meta;\n !protoMeta && (protoMeta = (mProto.__meta = {proto: mProto || {}}));\n !meta && (meta = (m.__meta = {proto: m.__proto__ || {}}));\n defineMixinProps(child, protoMeta.proto || {});\n defineMixinProps(this, meta.proto || {});\n //copy the bases for static,\n\n mixinSupers(m.prototype, supers, bases);\n mixinSupers(m, staticSupers, staticBases);\n }\n return this;\n }\n\n function mixinSupers(sup, arr, bases) {\n var meta = sup.__meta;\n !meta && (meta = (sup.__meta = {}));\n var unique = sup.__meta.unique;\n !unique && (meta.unique = \"declare\" + ++classCounter);\n //check it we already have this super mixed into our prototype chain\n //if true then we have already looped their supers!\n if (indexOf(bases, unique) === -1) {\n //add their id to our bases\n bases.push(unique);\n var supers = sup.__meta.supers || [], i = supers.length - 1 || 0;\n while (i >= 0) {\n mixinSupers(supers[i--], arr, bases);\n }\n arr.unshift(sup);\n }\n }\n\n function defineProps(child, proto) {\n var operations = proto.setters,\n __setters = child.__setters__,\n __getters = child.__getters__;\n if (operations) {\n for (var i in operations) {\n __setters[i] = operations[i];\n }\n }\n operations = proto.getters || {};\n if (operations) {\n for (i in operations) {\n __getters[i] = operations[i];\n }\n }\n for (i in proto) {\n if (i != \"getters\" && i != \"setters\") {\n var f = proto[i];\n if (\"function\" === typeof f) {\n var meta = f.__meta || {};\n if (!meta.isConstructor) {\n child[i] = functionWrapper(f, i);\n } else {\n child[i] = f;\n }\n } else {\n child[i] = f;\n }\n }\n }\n\n }\n\n function _export(obj, name) {\n if (obj && name) {\n obj[name] = this;\n } else {\n obj.exports = obj = this;\n }\n return this;\n }\n\n function extend(proto) {\n return declare(this, proto);\n }\n\n function getNew(ctor) {\n // create object with correct prototype using a do-nothing\n // constructor\n forceNew.prototype = ctor.prototype;\n var t = new forceNew();\n forceNew.prototype = null;\t// clean up\n return t;\n }\n\n\n function __declare(child, sup, proto) {\n var childProto = {}, supers = [];\n var unique = \"declare\" + ++classCounter, bases = [], staticBases = [];\n var instanceSupers = [], staticSupers = [];\n var meta = {\n supers: instanceSupers,\n unique: unique,\n bases: bases,\n superMeta: {\n f: null,\n pos: 0,\n name: null\n }\n };\n var childMeta = {\n supers: staticSupers,\n unique: unique,\n bases: staticBases,\n isConstructor: true,\n superMeta: {\n f: null,\n pos: 0,\n name: null\n }\n };\n\n if (isHash(sup) && !proto) {\n proto = sup;\n sup = Base;\n }\n\n if (\"function\" === typeof sup || isArray(sup)) {\n supers = isArray(sup) ? sup : [sup];\n sup = supers.shift();\n child.__meta = childMeta;\n childProto = getNew(sup);\n childProto.__meta = meta;\n childProto.__getters__ = merge({}, childProto.__getters__ || {});\n childProto.__setters__ = merge({}, childProto.__setters__ || {});\n child.__getters__ = merge({}, child.__getters__ || {});\n child.__setters__ = merge({}, child.__setters__ || {});\n mixinSupers(sup.prototype, instanceSupers, bases);\n mixinSupers(sup, staticSupers, staticBases);\n } else {\n child.__meta = childMeta;\n childProto.__meta = meta;\n childProto.__getters__ = childProto.__getters__ || {};\n childProto.__setters__ = childProto.__setters__ || {};\n child.__getters__ = child.__getters__ || {};\n child.__setters__ = child.__setters__ || {};\n }\n child.prototype = childProto;\n if (proto) {\n var instance = meta.proto = proto.instance || {};\n var stat = childMeta.proto = proto.static || {};\n stat.init = stat.init || defaultFunction;\n defineProps(childProto, instance);\n defineProps(child, stat);\n if (!instance.hasOwnProperty(\"constructor\")) {\n childProto.constructor = instance.constructor = functionWrapper(defaultFunction, \"constructor\");\n } else {\n childProto.constructor = functionWrapper(instance.constructor, \"constructor\");\n }\n } else {\n meta.proto = {};\n childMeta.proto = {};\n child.init = functionWrapper(defaultFunction, \"init\");\n childProto.constructor = functionWrapper(defaultFunction, \"constructor\");\n }\n if (supers.length) {\n mixin.apply(child, supers);\n }\n if (sup) {\n //do this so we mixin our super methods directly but do not ov\n merge(child, merge(merge({}, sup), child));\n }\n childProto._super = child._super = callSuper;\n childProto._getSuper = child._getSuper = getSuper;\n childProto._static = child;\n }\n\n function declare(sup, proto) {\n function declared() {\n switch (arguments.length) {\n case 0:\n this.constructor.call(this);\n break;\n case 1:\n this.constructor.call(this, arguments[0]);\n break;\n case 2:\n this.constructor.call(this, arguments[0], arguments[1]);\n break;\n case 3:\n this.constructor.call(this, arguments[0], arguments[1], arguments[2]);\n break;\n default:\n this.constructor.apply(this, arguments);\n }\n }\n\n __declare(declared, sup, proto);\n return declared.init() || declared;\n }\n\n function singleton(sup, proto) {\n var retInstance;\n\n function declaredSingleton() {\n if (!retInstance) {\n this.constructor.apply(this, arguments);\n retInstance = this;\n }\n return retInstance;\n }\n\n __declare(declaredSingleton, sup, proto);\n return declaredSingleton.init() || declaredSingleton;\n }\n\n Base = declare({\n instance: {\n \"get\": getter,\n \"set\": setter\n },\n\n \"static\": {\n \"get\": getter,\n \"set\": setter,\n mixin: mixin,\n extend: extend,\n as: _export\n }\n });\n\n declare.singleton = singleton;\n return declare;\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = createDeclared();\n }\n } else if (\"function\" === typeof define && define.amd) {\n define(createDeclared);\n } else {\n this.declare = createDeclared();\n }\n}());\n\n\n\n","module.exports = require(\"./declare.js\");","(function () {\n \"use strict\";\n /*global extender is, dateExtended*/\n\n function defineExtended(extender) {\n\n\n var merge = (function merger() {\n function _merge(target, source) {\n var name, s;\n for (name in source) {\n if (source.hasOwnProperty(name)) {\n s = source[name];\n if (!(name in target) || (target[name] !== s)) {\n target[name] = s;\n }\n }\n }\n return target;\n }\n\n return function merge(obj) {\n if (!obj) {\n obj = {};\n }\n for (var i = 1, l = arguments.length; i < l; i++) {\n _merge(obj, arguments[i]);\n }\n return obj; // Object\n };\n }());\n\n function getExtended() {\n\n var loaded = {};\n\n\n //getInitial instance;\n var extended = extender.define();\n extended.expose({\n register: function register(alias, extendWith) {\n if (!extendWith) {\n extendWith = alias;\n alias = null;\n }\n var type = typeof extendWith;\n if (alias) {\n extended[alias] = extendWith;\n } else if (extendWith && type === \"function\") {\n extended.extend(extendWith);\n } else if (type === \"object\") {\n extended.expose(extendWith);\n } else {\n throw new TypeError(\"extended.register must be called with an extender function\");\n }\n return extended;\n },\n\n define: function () {\n return extender.define.apply(extender, arguments);\n }\n });\n\n return extended;\n }\n\n function extended() {\n return getExtended();\n }\n\n extended.define = function define() {\n return extender.define.apply(extender, arguments);\n };\n\n return extended;\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineExtended(require(\"extender\"));\n\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"extender\"], function (extender) {\n return defineExtended(extender);\n });\n } else {\n this.extended = defineExtended(this.extender);\n }\n\n}).call(this);\n\n\n\n\n\n\n","(function () {\n /*jshint strict:false*/\n\n\n /**\n *\n * @projectName extender\n * @github http://github.com/doug-martin/extender\n * @header\n * [![build status](https://secure.travis-ci.org/doug-martin/extender.png)](http://travis-ci.org/doug-martin/extender)\n * # Extender\n *\n * `extender` is a library that helps in making chainable APIs, by creating a function that accepts different values and returns an object decorated with functions based on the type.\n *\n * ## Why Is Extender Different?\n *\n * Extender is different than normal chaining because is does more than return `this`. It decorates your values in a type safe manner.\n *\n * For example if you return an array from a string based method then the returned value will be decorated with array methods and not the string methods. This allow you as the developer to focus on your API and not worrying about how to properly build and connect your API.\n *\n *\n * ## Installation\n *\n * ```\n * npm install extender\n * ```\n *\n * Or [download the source](https://raw.github.com/doug-martin/extender/master/extender.js) ([minified](https://raw.github.com/doug-martin/extender/master/extender-min.js))\n *\n * **Note** `extender` depends on [`declare.js`](http://doug-martin.github.com/declare.js/).\n *\n * ### Requirejs\n *\n * To use with requirejs place the `extend` source in the root scripts directory\n *\n * ```javascript\n *\n * define([\"extender\"], function(extender){\n * });\n *\n * ```\n *\n *\n * ## Usage\n *\n * **`extender.define(tester, decorations)`**\n *\n * To create your own extender call the `extender.define` function.\n *\n * This function accepts an optional tester which is used to determine a value should be decorated with the specified `decorations`\n *\n * ```javascript\n * function isString(obj) {\n * return !isUndefinedOrNull(obj) && (typeof obj === \"string\" || obj instanceof String);\n * }\n *\n *\n * var myExtender = extender.define(isString, {\n *\t\tmultiply: function (str, times) {\n *\t\t\tvar ret = str;\n *\t\t\tfor (var i = 1; i < times; i++) {\n *\t\t\t\tret += str;\n *\t\t\t}\n *\t\t\treturn ret;\n *\t\t},\n *\t\ttoArray: function (str, delim) {\n *\t\t\tdelim = delim || \"\";\n *\t\t\treturn str.split(delim);\n *\t\t}\n *\t});\n *\n * myExtender(\"hello\").multiply(2).value(); //hellohello\n *\n * ```\n *\n * If you do not specify a tester function and just pass in an object of `functions` then all values passed in will be decorated with methods.\n *\n * ```javascript\n *\n * function isUndefined(obj) {\n * var undef;\n * return obj === undef;\n * }\n *\n * function isUndefinedOrNull(obj) {\n *\tvar undef;\n * return obj === undef || obj === null;\n * }\n *\n * function isArray(obj) {\n * return Object.prototype.toString.call(obj) === \"[object Array]\";\n * }\n *\n * function isBoolean(obj) {\n * var undef, type = typeof obj;\n * return !isUndefinedOrNull(obj) && type === \"boolean\" || type === \"Boolean\";\n * }\n *\n * function isString(obj) {\n * return !isUndefinedOrNull(obj) && (typeof obj === \"string\" || obj instanceof String);\n * }\n *\n * var myExtender = extender.define({\n *\tisUndefined : isUndefined,\n *\tisUndefinedOrNull : isUndefinedOrNull,\n *\tisArray : isArray,\n *\tisBoolean : isBoolean,\n *\tisString : isString\n * });\n *\n * ```\n *\n * To use\n *\n * ```\n * var undef;\n * myExtender(\"hello\").isUndefined().value(); //false\n * myExtender(undef).isUndefined().value(); //true\n * ```\n *\n * You can also chain extenders so that they accept multiple types and decorates accordingly.\n *\n * ```javascript\n * myExtender\n * .define(isArray, {\n *\t\tpluck: function (arr, m) {\n *\t\t\tvar ret = [];\n *\t\t\tfor (var i = 0, l = arr.length; i < l; i++) {\n *\t\t\t\tret.push(arr[i][m]);\n *\t\t\t}\n *\t\t\treturn ret;\n *\t\t}\n *\t})\n * .define(isBoolean, {\n *\t\tinvert: function (val) {\n *\t\t\treturn !val;\n *\t\t}\n *\t});\n *\n * myExtender([{a: \"a\"},{a: \"b\"},{a: \"c\"}]).pluck(\"a\").value(); //[\"a\", \"b\", \"c\"]\n * myExtender(\"I love javascript!\").toArray(/\\s+/).pluck(\"0\"); //[\"I\", \"l\", \"j\"]\n *\n * ```\n *\n * Notice that we reuse the same extender as defined above.\n *\n * **Return Values**\n *\n * When creating an extender if you return a value from one of the decoration functions then that value will also be decorated. If you do not return any values then the extender will be returned.\n *\n * **Default decoration methods**\n *\n * By default every value passed into an extender is decorated with the following methods.\n *\n * * `value` : The value this extender represents.\n * * `eq(otherValue)` : Tests strict equality of the currently represented value to the `otherValue`\n * * `neq(oterValue)` : Tests strict inequality of the currently represented value.\n * * `print` : logs the current value to the console.\n *\n * **Extender initialization**\n *\n * When creating an extender you can also specify a constructor which will be invoked with the current value.\n *\n * ```javascript\n * myExtender.define(isString, {\n *\tconstructor : function(val){\n * //set our value to the string trimmed\n *\t\tthis._value = val.trimRight().trimLeft();\n *\t}\n * });\n * ```\n *\n * **`noWrap`**\n *\n * `extender` also allows you to specify methods that should not have the value wrapped providing a cleaner exit function other than `value()`.\n *\n * For example suppose you have an API that allows you to build a validator, rather than forcing the user to invoke the `value` method you could add a method called `validator` which makes more syntactic sense.\n *\n * ```\n *\n * var myValidator = extender.define({\n * //chainable validation methods\n * //...\n * //end chainable validation methods\n *\n * noWrap : {\n * validator : function(){\n * //return your validator\n * }\n * }\n * });\n *\n * myValidator().isNotNull().isEmailAddress().validator(); //now you dont need to call .value()\n *\n *\n * ```\n * **`extender.extend(extendr)`**\n *\n * You may also compose extenders through the use of `extender.extend(extender)`, which will return an entirely new extender that is the composition of extenders.\n *\n * Suppose you have the following two extenders.\n *\n * ```javascript\n * var myExtender = extender\n * .define({\n * isFunction: is.function,\n * isNumber: is.number,\n * isString: is.string,\n * isDate: is.date,\n * isArray: is.array,\n * isBoolean: is.boolean,\n * isUndefined: is.undefined,\n * isDefined: is.defined,\n * isUndefinedOrNull: is.undefinedOrNull,\n * isNull: is.null,\n * isArguments: is.arguments,\n * isInstanceOf: is.instanceOf,\n * isRegExp: is.regExp\n * });\n * var myExtender2 = extender.define(is.array, {\n * pluck: function (arr, m) {\n * var ret = [];\n * for (var i = 0, l = arr.length; i < l; i++) {\n * ret.push(arr[i][m]);\n * }\n * return ret;\n * },\n *\n * noWrap: {\n * pluckPlain: function (arr, m) {\n * var ret = [];\n * for (var i = 0, l = arr.length; i < l; i++) {\n * ret.push(arr[i][m]);\n * }\n * return ret;\n * }\n * }\n * });\n *\n *\n * ```\n *\n * And you do not want to alter either of them but instead what to create a third that is the union of the two.\n *\n *\n * ```javascript\n * var composed = extender.extend(myExtender).extend(myExtender2);\n * ```\n * So now you can use the new extender with the joined functionality if `myExtender` and `myExtender2`.\n *\n * ```javascript\n * var extended = composed([\n * {a: \"a\"},\n * {a: \"b\"},\n * {a: \"c\"}\n * ]);\n * extended.isArray().value(); //true\n * extended.pluck(\"a\").value(); // [\"a\", \"b\", \"c\"]);\n *\n * ```\n *\n * **Note** `myExtender` and `myExtender2` will **NOT** be altered.\n *\n * **`extender.expose(methods)`**\n *\n * The `expose` method allows you to add methods to your extender that are not wrapped or automatically chained by exposing them on the extender directly.\n *\n * ```\n * var isMethods = {\n * isFunction: is.function,\n * isNumber: is.number,\n * isString: is.string,\n * isDate: is.date,\n * isArray: is.array,\n * isBoolean: is.boolean,\n * isUndefined: is.undefined,\n * isDefined: is.defined,\n * isUndefinedOrNull: is.undefinedOrNull,\n * isNull: is.null,\n * isArguments: is.arguments,\n * isInstanceOf: is.instanceOf,\n * isRegExp: is.regExp\n * };\n *\n * var myExtender = extender.define(isMethods).expose(isMethods);\n *\n * myExtender.isArray([]); //true\n * myExtender([]).isArray([]).value(); //true\n *\n * ```\n *\n *\n * **Using `instanceof`**\n *\n * When using extenders you can test if a value is an `instanceof` of an extender by using the instanceof operator.\n *\n * ```javascript\n * var str = myExtender(\"hello\");\n *\n * str instanceof myExtender; //true\n * ```\n *\n * ## Examples\n *\n * To see more examples click [here](https://github.com/doug-martin/extender/tree/master/examples)\n */\n function defineExtender(declare) {\n\n\n var slice = Array.prototype.slice, undef;\n\n function indexOf(arr, item) {\n if (arr && arr.length) {\n for (var i = 0, l = arr.length; i < l; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n }\n return -1;\n }\n\n function isArray(obj) {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n }\n\n var merge = (function merger() {\n function _merge(target, source, exclude) {\n var name, s;\n for (name in source) {\n if (source.hasOwnProperty(name) && indexOf(exclude, name) === -1) {\n s = source[name];\n if (!(name in target) || (target[name] !== s)) {\n target[name] = s;\n }\n }\n }\n return target;\n }\n\n return function merge(obj) {\n if (!obj) {\n obj = {};\n }\n var l = arguments.length;\n var exclude = arguments[arguments.length - 1];\n if (isArray(exclude)) {\n l--;\n } else {\n exclude = [];\n }\n for (var i = 1; i < l; i++) {\n _merge(obj, arguments[i], exclude);\n }\n return obj; // Object\n };\n }());\n\n\n function extender(supers) {\n supers = supers || [];\n var Base = declare({\n instance: {\n constructor: function (value) {\n this._value = value;\n },\n\n value: function () {\n return this._value;\n },\n\n eq: function eq(val) {\n return this[\"__extender__\"](this._value === val);\n },\n\n neq: function neq(other) {\n return this[\"__extender__\"](this._value !== other);\n },\n print: function () {\n console.log(this._value);\n return this;\n }\n }\n }), defined = [];\n\n function addMethod(proto, name, func) {\n if (\"function\" !== typeof func) {\n throw new TypeError(\"when extending type you must provide a function\");\n }\n var extendedMethod;\n if (name === \"constructor\") {\n extendedMethod = function () {\n this._super(arguments);\n func.apply(this, arguments);\n };\n } else {\n extendedMethod = function extendedMethod() {\n var args = slice.call(arguments);\n args.unshift(this._value);\n var ret = func.apply(this, args);\n return ret !== undef ? this[\"__extender__\"](ret) : this;\n };\n }\n proto[name] = extendedMethod;\n }\n\n function addNoWrapMethod(proto, name, func) {\n if (\"function\" !== typeof func) {\n throw new TypeError(\"when extending type you must provide a function\");\n }\n var extendedMethod;\n if (name === \"constructor\") {\n extendedMethod = function () {\n this._super(arguments);\n func.apply(this, arguments);\n };\n } else {\n extendedMethod = function extendedMethod() {\n var args = slice.call(arguments);\n args.unshift(this._value);\n return func.apply(this, args);\n };\n }\n proto[name] = extendedMethod;\n }\n\n function decorateProto(proto, decoration, nowrap) {\n for (var i in decoration) {\n if (decoration.hasOwnProperty(i)) {\n if (i !== \"getters\" && i !== \"setters\") {\n if (i === \"noWrap\") {\n decorateProto(proto, decoration[i], true);\n } else if (nowrap) {\n addNoWrapMethod(proto, i, decoration[i]);\n } else {\n addMethod(proto, i, decoration[i]);\n }\n } else {\n proto[i] = decoration[i];\n }\n }\n }\n }\n\n function _extender(obj) {\n var ret = obj, i, l;\n if (!(obj instanceof Base)) {\n var OurBase = Base;\n for (i = 0, l = defined.length; i < l; i++) {\n var definer = defined[i];\n if (definer[0](obj)) {\n OurBase = OurBase.extend({instance: definer[1]});\n }\n }\n ret = new OurBase(obj);\n ret[\"__extender__\"] = _extender;\n }\n return ret;\n }\n\n function always() {\n return true;\n }\n\n function define(tester, decorate) {\n if (arguments.length) {\n if (typeof tester === \"object\") {\n decorate = tester;\n tester = always;\n }\n decorate = decorate || {};\n var proto = {};\n decorateProto(proto, decorate);\n //handle browsers like which skip over the constructor while looping\n if (!proto.hasOwnProperty(\"constructor\")) {\n if (decorate.hasOwnProperty(\"constructor\")) {\n addMethod(proto, \"constructor\", decorate.constructor);\n } else {\n proto.constructor = function () {\n this._super(arguments);\n };\n }\n }\n defined.push([tester, proto]);\n }\n return _extender;\n }\n\n function extend(supr) {\n if (supr && supr.hasOwnProperty(\"__defined__\")) {\n _extender[\"__defined__\"] = defined = defined.concat(supr[\"__defined__\"]);\n }\n merge(_extender, supr, [\"define\", \"extend\", \"expose\", \"__defined__\"]);\n return _extender;\n }\n\n _extender.define = define;\n _extender.extend = extend;\n _extender.expose = function expose() {\n var methods;\n for (var i = 0, l = arguments.length; i < l; i++) {\n methods = arguments[i];\n if (typeof methods === \"object\") {\n merge(_extender, methods, [\"define\", \"extend\", \"expose\", \"__defined__\"]);\n }\n }\n return _extender;\n };\n _extender[\"__defined__\"] = defined;\n\n\n return _extender;\n }\n\n return {\n define: function () {\n return extender().define.apply(extender, arguments);\n },\n\n extend: function (supr) {\n return extender().define().extend(supr);\n }\n };\n\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineExtender(require(\"declare.js\"));\n\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"declare\"], function (declare) {\n return defineExtender(declare);\n });\n } else {\n this.extender = defineExtender(this.declare);\n }\n\n}).call(this);","module.exports = require(\"./extender.js\");","(function () {\n \"use strict\";\n\n function defineFunction(extended, is, args) {\n\n var isArray = is.isArray,\n isObject = is.isObject,\n isString = is.isString,\n isFunction = is.isFunction,\n argsToArray = args.argsToArray;\n\n function spreadArgs(f, args, scope) {\n var ret;\n switch ((args || []).length) {\n case 0:\n ret = f.call(scope);\n break;\n case 1:\n ret = f.call(scope, args[0]);\n break;\n case 2:\n ret = f.call(scope, args[0], args[1]);\n break;\n case 3:\n ret = f.call(scope, args[0], args[1], args[2]);\n break;\n default:\n ret = f.apply(scope, args);\n }\n return ret;\n }\n\n function hitch(scope, method, args) {\n args = argsToArray(arguments, 2);\n if ((isString(method) && !(method in scope))) {\n throw new Error(method + \" property not defined in scope\");\n } else if (!isString(method) && !isFunction(method)) {\n throw new Error(method + \" is not a function\");\n }\n if (isString(method)) {\n return function () {\n var func = scope[method];\n if (isFunction(func)) {\n return spreadArgs(func, args.concat(argsToArray(arguments)), scope);\n } else {\n return func;\n }\n };\n } else {\n if (args.length) {\n return function () {\n return spreadArgs(method, args.concat(argsToArray(arguments)), scope);\n };\n } else {\n\n return function () {\n return spreadArgs(method, arguments, scope);\n };\n }\n }\n }\n\n\n function applyFirst(method, args) {\n args = argsToArray(arguments, 1);\n if (!isString(method) && !isFunction(method)) {\n throw new Error(method + \" must be the name of a property or function to execute\");\n }\n if (isString(method)) {\n return function () {\n var scopeArgs = argsToArray(arguments), scope = scopeArgs.shift();\n var func = scope[method];\n if (isFunction(func)) {\n scopeArgs = args.concat(scopeArgs);\n return spreadArgs(func, scopeArgs, scope);\n } else {\n return func;\n }\n };\n } else {\n return function () {\n var scopeArgs = argsToArray(arguments), scope = scopeArgs.shift();\n scopeArgs = args.concat(scopeArgs);\n return spreadArgs(method, scopeArgs, scope);\n };\n }\n }\n\n\n function hitchIgnore(scope, method, args) {\n args = argsToArray(arguments, 2);\n if ((isString(method) && !(method in scope))) {\n throw new Error(method + \" property not defined in scope\");\n } else if (!isString(method) && !isFunction(method)) {\n throw new Error(method + \" is not a function\");\n }\n if (isString(method)) {\n return function () {\n var func = scope[method];\n if (isFunction(func)) {\n return spreadArgs(func, args, scope);\n } else {\n return func;\n }\n };\n } else {\n return function () {\n return spreadArgs(method, args, scope);\n };\n }\n }\n\n\n function hitchAll(scope) {\n var funcs = argsToArray(arguments, 1);\n if (!isObject(scope) && !isFunction(scope)) {\n throw new TypeError(\"scope must be an object\");\n }\n if (funcs.length === 1 && isArray(funcs[0])) {\n funcs = funcs[0];\n }\n if (!funcs.length) {\n funcs = [];\n for (var k in scope) {\n if (scope.hasOwnProperty(k) && isFunction(scope[k])) {\n funcs.push(k);\n }\n }\n }\n for (var i = 0, l = funcs.length; i < l; i++) {\n scope[funcs[i]] = hitch(scope, scope[funcs[i]]);\n }\n return scope;\n }\n\n\n function partial(method, args) {\n args = argsToArray(arguments, 1);\n if (!isString(method) && !isFunction(method)) {\n throw new Error(method + \" must be the name of a property or function to execute\");\n }\n if (isString(method)) {\n return function () {\n var func = this[method];\n if (isFunction(func)) {\n var scopeArgs = args.concat(argsToArray(arguments));\n return spreadArgs(func, scopeArgs, this);\n } else {\n return func;\n }\n };\n } else {\n return function () {\n var scopeArgs = args.concat(argsToArray(arguments));\n return spreadArgs(method, scopeArgs, this);\n };\n }\n }\n\n function curryFunc(f, execute) {\n return function () {\n var args = argsToArray(arguments);\n return execute ? spreadArgs(f, arguments, this) : function () {\n return spreadArgs(f, args.concat(argsToArray(arguments)), this);\n };\n };\n }\n\n\n function curry(depth, cb, scope) {\n var f;\n if (scope) {\n f = hitch(scope, cb);\n } else {\n f = cb;\n }\n if (depth) {\n var len = depth - 1;\n for (var i = len; i >= 0; i--) {\n f = curryFunc(f, i === len);\n }\n }\n return f;\n }\n\n return extended\n .define(isObject, {\n bind: hitch,\n bindAll: hitchAll,\n bindIgnore: hitchIgnore,\n curry: function (scope, depth, fn) {\n return curry(depth, fn, scope);\n }\n })\n .define(isFunction, {\n bind: function (fn, obj) {\n return spreadArgs(hitch, [obj, fn].concat(argsToArray(arguments, 2)), this);\n },\n bindIgnore: function (fn, obj) {\n return spreadArgs(hitchIgnore, [obj, fn].concat(argsToArray(arguments, 2)), this);\n },\n partial: partial,\n applyFirst: applyFirst,\n curry: function (fn, num, scope) {\n return curry(num, fn, scope);\n },\n noWrap: {\n f: function () {\n return this.value();\n }\n }\n })\n .define(isString, {\n bind: function (str, scope) {\n return hitch(scope, str);\n },\n bindIgnore: function (str, scope) {\n return hitchIgnore(scope, str);\n },\n partial: partial,\n applyFirst: applyFirst,\n curry: function (fn, depth, scope) {\n return curry(depth, fn, scope);\n }\n })\n .expose({\n bind: hitch,\n bindAll: hitchAll,\n bindIgnore: hitchIgnore,\n partial: partial,\n applyFirst: applyFirst,\n curry: curry\n });\n\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineFunction(require(\"extended\"), require(\"is-extended\"), require(\"arguments-extended\"));\n\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"extended\", \"is-extended\", \"arguments-extended\"], function (extended, is, args) {\n return defineFunction(extended, is, args);\n });\n } else {\n this.functionExtended = defineFunction(this.extended, this.isExtended, this.argumentsExtended);\n }\n\n}).call(this);\n\n\n\n\n\n\n","(function () {\n \"use strict\";\n\n function defineHt(_) {\n\n\n var hashFunction = function (key) {\n if (typeof key === \"string\") {\n return key;\n } else if (typeof key === \"object\") {\n return key.hashCode ? key.hashCode() : \"\" + key;\n } else {\n return \"\" + key;\n }\n };\n\n var Bucket = _.declare({\n\n instance: {\n\n constructor: function () {\n this.__entries = [];\n this.__keys = [];\n this.__values = [];\n },\n\n pushValue: function (key, value) {\n this.__keys.push(key);\n this.__values.push(value);\n this.__entries.push({key: key, value: value});\n return value;\n },\n\n remove: function (key) {\n var ret = null, map = this.__entries, val, keys = this.__keys, vals = this.__values;\n var i = map.length - 1;\n for (; i >= 0; i--) {\n if (!!(val = map[i]) && val.key === key) {\n map.splice(i, 1);\n keys.splice(i, 1);\n vals.splice(i, 1);\n return val.value;\n }\n }\n return ret;\n },\n\n \"set\": function (key, value) {\n var ret = null, map = this.__entries, vals = this.__values;\n var i = map.length - 1;\n for (; i >= 0; i--) {\n var val = map[i];\n if (val && key === val.key) {\n vals[i] = value;\n val.value = value;\n ret = value;\n break;\n }\n }\n if (!ret) {\n map.push({key: key, value: value});\n }\n return ret;\n },\n\n find: function (key) {\n var ret = null, map = this.__entries, val;\n var i = map.length - 1;\n for (; i >= 0; i--) {\n val = map[i];\n if (val && key === val.key) {\n ret = val.value;\n break;\n }\n }\n return ret;\n },\n\n getEntrySet: function () {\n return this.__entries;\n },\n\n getKeys: function () {\n return this.__keys;\n },\n\n getValues: function (arr) {\n return this.__values;\n }\n }\n });\n\n return _.declare({\n\n instance: {\n\n constructor: function () {\n this.__map = {};\n },\n\n entrySet: function () {\n var ret = [], map = this.__map;\n for (var i in map) {\n if (map.hasOwnProperty(i)) {\n ret = ret.concat(map[i].getEntrySet());\n }\n }\n return ret;\n },\n\n put: function (key, value) {\n var hash = hashFunction(key);\n var bucket = null;\n if (!(bucket = this.__map[hash])) {\n bucket = (this.__map[hash] = new Bucket());\n }\n bucket.pushValue(key, value);\n return value;\n },\n\n remove: function (key) {\n var hash = hashFunction(key), ret = null;\n var bucket = this.__map[hash];\n if (bucket) {\n ret = bucket.remove(key);\n }\n return ret;\n },\n\n \"get\": function (key) {\n var hash = hashFunction(key), ret = null, bucket;\n if (!!(bucket = this.__map[hash])) {\n ret = bucket.find(key);\n }\n return ret;\n },\n\n \"set\": function (key, value) {\n var hash = hashFunction(key), ret = null, bucket = null, map = this.__map;\n if (!!(bucket = map[hash])) {\n ret = bucket.set(key, value);\n } else {\n ret = (map[hash] = new Bucket()).pushValue(key, value);\n }\n return ret;\n },\n\n contains: function (key) {\n var hash = hashFunction(key), ret = false, bucket = null;\n if (!!(bucket = this.__map[hash])) {\n ret = !!(bucket.find(key));\n }\n return ret;\n },\n\n concat: function (hashTable) {\n if (hashTable instanceof this._static) {\n var ret = new this._static();\n var otherEntrySet = hashTable.entrySet().concat(this.entrySet());\n for (var i = otherEntrySet.length - 1; i >= 0; i--) {\n var e = otherEntrySet[i];\n ret.put(e.key, e.value);\n }\n return ret;\n } else {\n throw new TypeError(\"When joining hashtables the joining arg must be a HashTable\");\n }\n },\n\n filter: function (cb, scope) {\n var es = this.entrySet(), ret = new this._static();\n es = _.filter(es, cb, scope);\n for (var i = es.length - 1; i >= 0; i--) {\n var e = es[i];\n ret.put(e.key, e.value);\n }\n return ret;\n },\n\n forEach: function (cb, scope) {\n var es = this.entrySet();\n _.forEach(es, cb, scope);\n },\n\n every: function (cb, scope) {\n var es = this.entrySet();\n return _.every(es, cb, scope);\n },\n\n map: function (cb, scope) {\n var es = this.entrySet();\n return _.map(es, cb, scope);\n },\n\n some: function (cb, scope) {\n var es = this.entrySet();\n return _.some(es, cb, scope);\n },\n\n reduce: function (cb, scope) {\n var es = this.entrySet();\n return _.reduce(es, cb, scope);\n },\n\n reduceRight: function (cb, scope) {\n var es = this.entrySet();\n return _.reduceRight(es, cb, scope);\n },\n\n clear: function () {\n this.__map = {};\n },\n\n keys: function () {\n var ret = [], map = this.__map;\n for (var i in map) {\n //if (map.hasOwnProperty(i)) {\n ret = ret.concat(map[i].getKeys());\n //}\n }\n return ret;\n },\n\n values: function () {\n var ret = [], map = this.__map;\n for (var i in map) {\n //if (map.hasOwnProperty(i)) {\n ret = ret.concat(map[i].getValues());\n //}\n }\n return ret;\n },\n\n isEmpty: function () {\n return this.keys().length === 0;\n }\n }\n\n });\n\n\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineHt(require(\"extended\")().register(\"declare\", require(\"declare.js\")).register(require(\"is-extended\")).register(require(\"array-extended\")));\n\n }\n } else if (\"function\" === typeof define) {\n define([\"extended\", \"declare\", \"is-extended\", \"array-extended\"], function (extended, declare, is, array) {\n return defineHt(extended().register(\"declare\", declare).register(is).register(array));\n });\n } else {\n this.Ht = defineHt(this.extended().register(\"declare\", this.declare).register(this.isExtended).register(this.arrayExtended));\n }\n\n}).call(this);\n\n\n\n\n\n\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","(function () {\n \"use strict\";\n\n function defineIsa(extended) {\n\n var pSlice = Array.prototype.slice;\n\n var hasOwn = Object.prototype.hasOwnProperty;\n var toStr = Object.prototype.toString;\n\n function argsToArray(args, slice) {\n var i = -1, j = 0, l = args.length, ret = [];\n slice = slice || 0;\n i += slice;\n while (++i < l) {\n ret[j++] = args[i];\n }\n return ret;\n }\n\n function keys(obj) {\n var ret = [];\n for (var i in obj) {\n if (hasOwn.call(obj, i)) {\n ret.push(i);\n }\n }\n return ret;\n }\n\n //taken from node js assert.js\n //https://github.com/joyent/node/blob/master/lib/assert.js\n function deepEqual(actual, expected) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (typeof Buffer !== \"undefined\" && Buffer.isBuffer(actual) && Buffer.isBuffer(expected)) {\n if (actual.length !== expected.length) {\n return false;\n }\n for (var i = 0; i < actual.length; i++) {\n if (actual[i] !== expected[i]) {\n return false;\n }\n }\n return true;\n\n // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (isDate(actual) && isDate(expected)) {\n return actual.getTime() === expected.getTime();\n\n // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (isRegExp(actual) && isRegExp(expected)) {\n return actual.source === expected.source &&\n actual.global === expected.global &&\n actual.multiline === expected.multiline &&\n actual.lastIndex === expected.lastIndex &&\n actual.ignoreCase === expected.ignoreCase;\n\n // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (isString(actual) && isString(expected) && actual !== expected) {\n return false;\n } else if (typeof actual !== 'object' && typeof expected !== 'object') {\n return actual === expected;\n\n // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected);\n }\n }\n\n\n function objEquiv(a, b) {\n var key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) {\n return false;\n }\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) {\n return false;\n }\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b);\n }\n try {\n var ka = keys(a),\n kb = keys(b),\n i;\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length !== kb.length) {\n return false;\n }\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] !== kb[i]) {\n return false;\n }\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n return true;\n }\n\n\n var isFunction = function (obj) {\n return toStr.call(obj) === '[object Function]';\n };\n\n //ie hack\n if (\"undefined\" !== typeof window && !isFunction(window.alert)) {\n (function (alert) {\n isFunction = function (obj) {\n return toStr.call(obj) === '[object Function]' || obj === alert;\n };\n }(window.alert));\n }\n\n function isObject(obj) {\n var undef;\n return obj !== null && typeof obj === \"object\";\n }\n\n function isHash(obj) {\n var ret = isObject(obj);\n return ret && obj.constructor === Object && !obj.nodeType && !obj.setInterval;\n }\n\n function isEmpty(object) {\n if (isArguments(object)) {\n return object.length === 0;\n } else if (isObject(object)) {\n return keys(object).length === 0;\n } else if (isString(object) || isArray(object)) {\n return object.length === 0;\n }\n return true;\n }\n\n function isBoolean(obj) {\n return obj === true || obj === false || toStr.call(obj) === \"[object Boolean]\";\n }\n\n function isUndefined(obj) {\n return typeof obj === 'undefined';\n }\n\n function isDefined(obj) {\n return !isUndefined(obj);\n }\n\n function isUndefinedOrNull(obj) {\n return isUndefined(obj) || isNull(obj);\n }\n\n function isNull(obj) {\n return obj === null;\n }\n\n\n var isArguments = function _isArguments(object) {\n return toStr.call(object) === '[object Arguments]';\n };\n\n if (!isArguments(arguments)) {\n isArguments = function _isArguments(obj) {\n return !!(obj && hasOwn.call(obj, \"callee\"));\n };\n }\n\n\n function isInstanceOf(obj, clazz) {\n if (isFunction(clazz)) {\n return obj instanceof clazz;\n } else {\n return false;\n }\n }\n\n function isRegExp(obj) {\n return toStr.call(obj) === '[object RegExp]';\n }\n\n var isArray = Array.isArray || function isArray(obj) {\n return toStr.call(obj) === \"[object Array]\";\n };\n\n function isDate(obj) {\n return toStr.call(obj) === '[object Date]';\n }\n\n function isString(obj) {\n return toStr.call(obj) === '[object String]';\n }\n\n function isNumber(obj) {\n return toStr.call(obj) === '[object Number]';\n }\n\n function isTrue(obj) {\n return obj === true;\n }\n\n function isFalse(obj) {\n return obj === false;\n }\n\n function isNotNull(obj) {\n return !isNull(obj);\n }\n\n function isEq(obj, obj2) {\n /*jshint eqeqeq:false*/\n return obj == obj2;\n }\n\n function isNeq(obj, obj2) {\n /*jshint eqeqeq:false*/\n return obj != obj2;\n }\n\n function isSeq(obj, obj2) {\n return obj === obj2;\n }\n\n function isSneq(obj, obj2) {\n return obj !== obj2;\n }\n\n function isIn(obj, arr) {\n if ((isArray(arr) && Array.prototype.indexOf) || isString(arr)) {\n return arr.indexOf(obj) > -1;\n } else if (isArray(arr)) {\n for (var i = 0, l = arr.length; i < l; i++) {\n if (isEq(obj, arr[i])) {\n return true;\n }\n }\n }\n return false;\n }\n\n function isNotIn(obj, arr) {\n return !isIn(obj, arr);\n }\n\n function isLt(obj, obj2) {\n return obj < obj2;\n }\n\n function isLte(obj, obj2) {\n return obj <= obj2;\n }\n\n function isGt(obj, obj2) {\n return obj > obj2;\n }\n\n function isGte(obj, obj2) {\n return obj >= obj2;\n }\n\n function isLike(obj, reg) {\n if (isString(reg)) {\n return (\"\" + obj).match(reg) !== null;\n } else if (isRegExp(reg)) {\n return reg.test(obj);\n }\n return false;\n }\n\n function isNotLike(obj, reg) {\n return !isLike(obj, reg);\n }\n\n function contains(arr, obj) {\n return isIn(obj, arr);\n }\n\n function notContains(arr, obj) {\n return !isIn(obj, arr);\n }\n\n function containsAt(arr, obj, index) {\n if (isArray(arr) && arr.length > index) {\n return isEq(arr[index], obj);\n }\n return false;\n }\n\n function notContainsAt(arr, obj, index) {\n if (isArray(arr)) {\n return !isEq(arr[index], obj);\n }\n return false;\n }\n\n function has(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n function notHas(obj, prop) {\n return !has(obj, prop);\n }\n\n function length(obj, l) {\n if (has(obj, \"length\")) {\n return obj.length === l;\n }\n return false;\n }\n\n function notLength(obj, l) {\n if (has(obj, \"length\")) {\n return obj.length !== l;\n }\n return false;\n }\n\n var isa = {\n isFunction: isFunction,\n isObject: isObject,\n isEmpty: isEmpty,\n isHash: isHash,\n isNumber: isNumber,\n isString: isString,\n isDate: isDate,\n isArray: isArray,\n isBoolean: isBoolean,\n isUndefined: isUndefined,\n isDefined: isDefined,\n isUndefinedOrNull: isUndefinedOrNull,\n isNull: isNull,\n isArguments: isArguments,\n instanceOf: isInstanceOf,\n isRegExp: isRegExp,\n deepEqual: deepEqual,\n isTrue: isTrue,\n isFalse: isFalse,\n isNotNull: isNotNull,\n isEq: isEq,\n isNeq: isNeq,\n isSeq: isSeq,\n isSneq: isSneq,\n isIn: isIn,\n isNotIn: isNotIn,\n isLt: isLt,\n isLte: isLte,\n isGt: isGt,\n isGte: isGte,\n isLike: isLike,\n isNotLike: isNotLike,\n contains: contains,\n notContains: notContains,\n has: has,\n notHas: notHas,\n isLength: length,\n isNotLength: notLength,\n containsAt: containsAt,\n notContainsAt: notContainsAt\n };\n\n var tester = {\n constructor: function () {\n this._testers = [];\n },\n\n noWrap: {\n tester: function () {\n var testers = this._testers;\n return function tester(value) {\n var isa = false;\n for (var i = 0, l = testers.length; i < l && !isa; i++) {\n isa = testers[i](value);\n }\n return isa;\n };\n }\n }\n };\n\n var switcher = {\n constructor: function () {\n this._cases = [];\n this.__default = null;\n },\n\n def: function (val, fn) {\n this.__default = fn;\n },\n\n noWrap: {\n switcher: function () {\n var testers = this._cases, __default = this.__default;\n return function tester() {\n var handled = false, args = argsToArray(arguments), caseRet;\n for (var i = 0, l = testers.length; i < l && !handled; i++) {\n caseRet = testers[i](args);\n if (caseRet.length > 1) {\n if (caseRet[1] || caseRet[0]) {\n return caseRet[1];\n }\n }\n }\n if (!handled && __default) {\n return __default.apply(this, args);\n }\n };\n }\n }\n };\n\n function addToTester(func) {\n tester[func] = function isaTester() {\n this._testers.push(isa[func]);\n };\n }\n\n function addToSwitcher(func) {\n switcher[func] = function isaTester() {\n var args = argsToArray(arguments, 1), isFunc = isa[func], handler, doBreak = true;\n if (args.length <= isFunc.length - 1) {\n throw new TypeError(\"A handler must be defined when calling using switch\");\n } else {\n handler = args.pop();\n if (isBoolean(handler)) {\n doBreak = handler;\n handler = args.pop();\n }\n }\n if (!isFunction(handler)) {\n throw new TypeError(\"handler must be defined\");\n }\n this._cases.push(function (testArgs) {\n if (isFunc.apply(isa, testArgs.concat(args))) {\n return [doBreak, handler.apply(this, testArgs)];\n }\n return [false];\n });\n };\n }\n\n for (var i in isa) {\n if (hasOwn.call(isa, i)) {\n addToSwitcher(i);\n addToTester(i);\n }\n }\n\n var is = extended.define(isa).expose(isa);\n is.tester = extended.define(tester);\n is.switcher = extended.define(switcher);\n return is;\n\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineIsa(require(\"extended\"));\n\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"extended\"], function (extended) {\n return defineIsa(extended);\n });\n } else {\n this.isExtended = defineIsa(this.extended);\n }\n\n}).call(this);\n\n","(function () {\n \"use strict\";\n\n function defineLeafy(_) {\n\n function compare(a, b) {\n var ret = 0;\n if (a > b) {\n return 1;\n } else if (a < b) {\n return -1;\n } else if (!b) {\n return 1;\n }\n return ret;\n }\n\n var multiply = _.multiply;\n\n var Tree = _.declare({\n\n instance: {\n\n /**\n * Prints a node\n * @param node node to print\n * @param level the current level the node is at, Used for formatting\n */\n __printNode: function (node, level) {\n //console.log(level);\n var str = [];\n if (_.isUndefinedOrNull(node)) {\n str.push(multiply('\\t', level));\n str.push(\"~\");\n console.log(str.join(\"\"));\n } else {\n this.__printNode(node.right, level + 1);\n str.push(multiply('\\t', level));\n str.push(node.data + \"\\n\");\n console.log(str.join(\"\"));\n this.__printNode(node.left, level + 1);\n }\n },\n\n constructor: function (options) {\n options = options || {};\n this.compare = options.compare || compare;\n this.__root = null;\n },\n\n insert: function () {\n throw new Error(\"Not Implemented\");\n },\n\n remove: function () {\n throw new Error(\"Not Implemented\");\n },\n\n clear: function () {\n this.__root = null;\n },\n\n isEmpty: function () {\n return !(this.__root);\n },\n\n traverseWithCondition: function (node, order, callback) {\n var cont = true;\n if (node) {\n order = order || Tree.PRE_ORDER;\n if (order === Tree.PRE_ORDER) {\n cont = callback(node.data);\n if (cont) {\n cont = this.traverseWithCondition(node.left, order, callback);\n if (cont) {\n cont = this.traverseWithCondition(node.right, order, callback);\n }\n\n }\n } else if (order === Tree.IN_ORDER) {\n cont = this.traverseWithCondition(node.left, order, callback);\n if (cont) {\n cont = callback(node.data);\n if (cont) {\n cont = this.traverseWithCondition(node.right, order, callback);\n }\n }\n } else if (order === Tree.POST_ORDER) {\n cont = this.traverseWithCondition(node.left, order, callback);\n if (cont) {\n if (cont) {\n cont = this.traverseWithCondition(node.right, order, callback);\n }\n if (cont) {\n cont = callback(node.data);\n }\n }\n } else if (order === Tree.REVERSE_ORDER) {\n cont = this.traverseWithCondition(node.right, order, callback);\n if (cont) {\n cont = callback(node.data);\n if (cont) {\n cont = this.traverseWithCondition(node.left, order, callback);\n }\n }\n }\n }\n return cont;\n },\n\n traverse: function (node, order, callback) {\n if (node) {\n order = order || Tree.PRE_ORDER;\n if (order === Tree.PRE_ORDER) {\n callback(node.data);\n this.traverse(node.left, order, callback);\n this.traverse(node.right, order, callback);\n } else if (order === Tree.IN_ORDER) {\n this.traverse(node.left, order, callback);\n callback(node.data);\n this.traverse(node.right, order, callback);\n } else if (order === Tree.POST_ORDER) {\n this.traverse(node.left, order, callback);\n this.traverse(node.right, order, callback);\n callback(node.data);\n } else if (order === Tree.REVERSE_ORDER) {\n this.traverse(node.right, order, callback);\n callback(node.data);\n this.traverse(node.left, order, callback);\n\n }\n }\n },\n\n forEach: function (cb, scope, order) {\n if (typeof cb !== \"function\") {\n throw new TypeError();\n }\n order = order || Tree.IN_ORDER;\n scope = scope || this;\n this.traverse(this.__root, order, function (node) {\n cb.call(scope, node, this);\n });\n },\n\n map: function (cb, scope, order) {\n if (typeof cb !== \"function\") {\n throw new TypeError();\n }\n\n order = order || Tree.IN_ORDER;\n scope = scope || this;\n var ret = new this._static();\n this.traverse(this.__root, order, function (node) {\n ret.insert(cb.call(scope, node, this));\n });\n return ret;\n },\n\n filter: function (cb, scope, order) {\n if (typeof cb !== \"function\") {\n throw new TypeError();\n }\n\n order = order || Tree.IN_ORDER;\n scope = scope || this;\n var ret = new this._static();\n this.traverse(this.__root, order, function (node) {\n if (cb.call(scope, node, this)) {\n ret.insert(node);\n }\n });\n return ret;\n },\n\n reduce: function (fun, accumulator, order) {\n var arr = this.toArray(order);\n var args = [arr, fun];\n if (!_.isUndefinedOrNull(accumulator)) {\n args.push(accumulator);\n }\n return _.reduce.apply(_, args);\n },\n\n reduceRight: function (fun, accumulator, order) {\n var arr = this.toArray(order);\n var args = [arr, fun];\n if (!_.isUndefinedOrNull(accumulator)) {\n args.push(accumulator);\n }\n return _.reduceRight.apply(_, args);\n },\n\n every: function (cb, scope, order) {\n if (typeof cb !== \"function\") {\n throw new TypeError();\n }\n order = order || Tree.IN_ORDER;\n scope = scope || this;\n var ret = false;\n this.traverseWithCondition(this.__root, order, function (node) {\n ret = cb.call(scope, node, this);\n return ret;\n });\n return ret;\n },\n\n some: function (cb, scope, order) {\n if (typeof cb !== \"function\") {\n throw new TypeError();\n }\n\n order = order || Tree.IN_ORDER;\n scope = scope || this;\n var ret;\n this.traverseWithCondition(this.__root, order, function (node) {\n ret = cb.call(scope, node, this);\n return !ret;\n });\n return ret;\n },\n\n toArray: function (order) {\n order = order || Tree.IN_ORDER;\n var arr = [];\n this.traverse(this.__root, order, function (node) {\n arr.push(node);\n });\n return arr;\n },\n\n contains: function (value) {\n var ret = false;\n var root = this.__root;\n while (root !== null) {\n var cmp = this.compare(value, root.data);\n if (cmp) {\n root = root[(cmp === -1) ? \"left\" : \"right\"];\n } else {\n ret = true;\n root = null;\n }\n }\n return ret;\n },\n\n find: function (value) {\n var ret;\n var root = this.__root;\n while (root) {\n var cmp = this.compare(value, root.data);\n if (cmp) {\n root = root[(cmp === -1) ? \"left\" : \"right\"];\n } else {\n ret = root.data;\n break;\n }\n }\n return ret;\n },\n\n findLessThan: function (value, exclusive) {\n //find a better way!!!!\n var ret = [], compare = this.compare;\n this.traverseWithCondition(this.__root, Tree.IN_ORDER, function (v) {\n var cmp = compare(value, v);\n if ((!exclusive && cmp === 0) || cmp === 1) {\n ret.push(v);\n return true;\n } else {\n return false;\n }\n });\n return ret;\n },\n\n findGreaterThan: function (value, exclusive) {\n //find a better way!!!!\n var ret = [], compare = this.compare;\n this.traverse(this.__root, Tree.REVERSE_ORDER, function (v) {\n var cmp = compare(value, v);\n if ((!exclusive && cmp === 0) || cmp === -1) {\n ret.push(v);\n return true;\n } else {\n return false;\n }\n });\n return ret;\n },\n\n print: function () {\n this.__printNode(this.__root, 0);\n }\n },\n\n \"static\": {\n PRE_ORDER: \"pre_order\",\n IN_ORDER: \"in_order\",\n POST_ORDER: \"post_order\",\n REVERSE_ORDER: \"reverse_order\"\n }\n });\n\n var AVLTree = (function () {\n var abs = Math.abs;\n\n\n var makeNode = function (data) {\n return {\n data: data,\n balance: 0,\n left: null,\n right: null\n };\n };\n\n var rotateSingle = function (root, dir, otherDir) {\n var save = root[otherDir];\n root[otherDir] = save[dir];\n save[dir] = root;\n return save;\n };\n\n\n var rotateDouble = function (root, dir, otherDir) {\n root[otherDir] = rotateSingle(root[otherDir], otherDir, dir);\n return rotateSingle(root, dir, otherDir);\n };\n\n var adjustBalance = function (root, dir, bal) {\n var otherDir = dir === \"left\" ? \"right\" : \"left\";\n var n = root[dir], nn = n[otherDir];\n if (nn.balance === 0) {\n root.balance = n.balance = 0;\n } else if (nn.balance === bal) {\n root.balance = -bal;\n n.balance = 0;\n } else { /* nn.balance == -bal */\n root.balance = 0;\n n.balance = bal;\n }\n nn.balance = 0;\n };\n\n var insertAdjustBalance = function (root, dir) {\n var otherDir = dir === \"left\" ? \"right\" : \"left\";\n\n var n = root[dir];\n var bal = dir === \"right\" ? -1 : +1;\n\n if (n.balance === bal) {\n root.balance = n.balance = 0;\n root = rotateSingle(root, otherDir, dir);\n } else {\n adjustBalance(root, dir, bal);\n root = rotateDouble(root, otherDir, dir);\n }\n\n return root;\n\n };\n\n var removeAdjustBalance = function (root, dir, done) {\n var otherDir = dir === \"left\" ? \"right\" : \"left\";\n var n = root[otherDir];\n var bal = dir === \"right\" ? -1 : 1;\n if (n.balance === -bal) {\n root.balance = n.balance = 0;\n root = rotateSingle(root, dir, otherDir);\n } else if (n.balance === bal) {\n adjustBalance(root, otherDir, -bal);\n root = rotateDouble(root, dir, otherDir);\n } else { /* n.balance == 0 */\n root.balance = -bal;\n n.balance = bal;\n root = rotateSingle(root, dir, otherDir);\n done.done = true;\n }\n return root;\n };\n\n function insert(tree, data, cmp) {\n /* Empty tree case */\n var root = tree.__root;\n if (root === null || root === undefined) {\n tree.__root = makeNode(data);\n } else {\n var it = root, upd = [], up = [], top = 0, dir;\n while (true) {\n dir = upd[top] = cmp(data, it.data) === -1 ? \"left\" : \"right\";\n up[top++] = it;\n if (!it[dir]) {\n it[dir] = makeNode(data);\n break;\n }\n it = it[dir];\n }\n if (!it[dir]) {\n return null;\n }\n while (--top >= 0) {\n up[top].balance += upd[top] === \"right\" ? -1 : 1;\n if (up[top].balance === 0) {\n break;\n } else if (abs(up[top].balance) > 1) {\n up[top] = insertAdjustBalance(up[top], upd[top]);\n if (top !== 0) {\n up[top - 1][upd[top - 1]] = up[top];\n } else {\n tree.__root = up[0];\n }\n break;\n }\n }\n }\n }\n\n function remove(tree, data, cmp) {\n var root = tree.__root;\n if (root !== null && root !== undefined) {\n var it = root, top = 0, up = [], upd = [], done = {done: false}, dir, compare;\n while (true) {\n if (!it) {\n return;\n } else if ((compare = cmp(data, it.data)) === 0) {\n break;\n }\n dir = upd[top] = compare === -1 ? \"left\" : \"right\";\n up[top++] = it;\n it = it[dir];\n }\n var l = it.left, r = it.right;\n if (!l || !r) {\n dir = !l ? \"right\" : \"left\";\n if (top !== 0) {\n up[top - 1][upd[top - 1]] = it[dir];\n } else {\n tree.__root = it[dir];\n }\n } else {\n var heir = l;\n upd[top] = \"left\";\n up[top++] = it;\n while (heir.right) {\n upd[top] = \"right\";\n up[top++] = heir;\n heir = heir.right;\n }\n it.data = heir.data;\n up[top - 1][up[top - 1] === it ? \"left\" : \"right\"] = heir.left;\n }\n while (--top >= 0 && !done.done) {\n up[top].balance += upd[top] === \"left\" ? -1 : +1;\n if (abs(up[top].balance) === 1) {\n break;\n } else if (abs(up[top].balance) > 1) {\n up[top] = removeAdjustBalance(up[top], upd[top], done);\n if (top !== 0) {\n up[top - 1][upd[top - 1]] = up[top];\n } else {\n tree.__root = up[0];\n }\n }\n }\n }\n }\n\n\n return Tree.extend({\n instance: {\n\n insert: function (data) {\n insert(this, data, this.compare);\n },\n\n\n remove: function (data) {\n remove(this, data, this.compare);\n },\n\n __printNode: function (node, level) {\n var str = [];\n if (!node) {\n str.push(multiply('\\t', level));\n str.push(\"~\");\n console.log(str.join(\"\"));\n } else {\n this.__printNode(node.right, level + 1);\n str.push(multiply('\\t', level));\n str.push(node.data + \":\" + node.balance + \"\\n\");\n console.log(str.join(\"\"));\n this.__printNode(node.left, level + 1);\n }\n }\n\n }\n });\n }());\n\n var AnderssonTree = (function () {\n\n var nil = {level: 0, data: null};\n\n function makeNode(data, level) {\n return {\n data: data,\n level: level,\n left: nil,\n right: nil\n };\n }\n\n function skew(root) {\n if (root.level !== 0 && root.left.level === root.level) {\n var save = root.left;\n root.left = save.right;\n save.right = root;\n root = save;\n }\n return root;\n }\n\n function split(root) {\n if (root.level !== 0 && root.right.right.level === root.level) {\n var save = root.right;\n root.right = save.left;\n save.left = root;\n root = save;\n root.level++;\n }\n return root;\n }\n\n function insert(root, data, compare) {\n if (root === nil) {\n root = makeNode(data, 1);\n }\n else {\n var dir = compare(data, root.data) === -1 ? \"left\" : \"right\";\n root[dir] = insert(root[dir], data, compare);\n root = skew(root);\n root = split(root);\n }\n return root;\n }\n\n var remove = function (root, data, compare) {\n var rLeft, rRight;\n if (root !== nil) {\n var cmp = compare(data, root.data);\n if (cmp === 0) {\n rLeft = root.left, rRight = root.right;\n if (rLeft !== nil && rRight !== nil) {\n var heir = rLeft;\n while (heir.right !== nil) {\n heir = heir.right;\n }\n root.data = heir.data;\n root.left = remove(rLeft, heir.data, compare);\n } else {\n root = root[rLeft === nil ? \"right\" : \"left\"];\n }\n } else {\n var dir = cmp === -1 ? \"left\" : \"right\";\n root[dir] = remove(root[dir], data, compare);\n }\n }\n if (root !== nil) {\n var rLevel = root.level;\n var rLeftLevel = root.left.level, rRightLevel = root.right.level;\n if (rLeftLevel < rLevel - 1 || rRightLevel < rLevel - 1) {\n if (rRightLevel > --root.level) {\n root.right.level = root.level;\n }\n root = skew(root);\n root = split(root);\n }\n }\n return root;\n };\n\n return Tree.extend({\n\n instance: {\n\n isEmpty: function () {\n return this.__root === nil || this._super(arguments);\n },\n\n insert: function (data) {\n if (!this.__root) {\n this.__root = nil;\n }\n this.__root = insert(this.__root, data, this.compare);\n },\n\n remove: function (data) {\n this.__root = remove(this.__root, data, this.compare);\n },\n\n\n traverseWithCondition: function (node) {\n var cont = true;\n if (node !== nil) {\n return this._super(arguments);\n }\n return cont;\n },\n\n\n traverse: function (node) {\n if (node !== nil) {\n this._super(arguments);\n }\n },\n\n contains: function () {\n if (this.__root !== nil) {\n return this._super(arguments);\n }\n return false;\n },\n\n __printNode: function (node, level) {\n var str = [];\n if (!node || !node.data) {\n str.push(multiply('\\t', level));\n str.push(\"~\");\n console.log(str.join(\"\"));\n } else {\n this.__printNode(node.right, level + 1);\n str.push(multiply('\\t', level));\n str.push(node.data + \":\" + node.level + \"\\n\");\n console.log(str.join(\"\"));\n this.__printNode(node.left, level + 1);\n }\n }\n\n }\n\n });\n }());\n\n var BinaryTree = Tree.extend({\n instance: {\n insert: function (data) {\n if (!this.__root) {\n this.__root = {\n data: data,\n parent: null,\n left: null,\n right: null\n };\n return this.__root;\n }\n var compare = this.compare;\n var root = this.__root;\n while (root !== null) {\n var cmp = compare(data, root.data);\n if (cmp) {\n var leaf = (cmp === -1) ? \"left\" : \"right\";\n var next = root[leaf];\n if (!next) {\n return (root[leaf] = {data: data, parent: root, left: null, right: null});\n } else {\n root = next;\n }\n } else {\n return;\n }\n }\n },\n\n remove: function (data) {\n if (this.__root !== null) {\n var head = {right: this.__root}, it = head;\n var p, f = null;\n var dir = \"right\";\n while (it[dir] !== null) {\n p = it;\n it = it[dir];\n var cmp = this.compare(data, it.data);\n if (!cmp) {\n f = it;\n }\n dir = (cmp === -1 ? \"left\" : \"right\");\n }\n if (f !== null) {\n f.data = it.data;\n p[p.right === it ? \"right\" : \"left\"] = it[it.left === null ? \"right\" : \"left\"];\n }\n this.__root = head.right;\n }\n\n }\n }\n });\n\n var RedBlackTree = (function () {\n var RED = \"RED\", BLACK = \"BLACK\";\n\n var isRed = function (node) {\n return node !== null && node.red;\n };\n\n var makeNode = function (data) {\n return {\n data: data,\n red: true,\n left: null,\n right: null\n };\n };\n\n var insert = function (root, data, compare) {\n if (!root) {\n return makeNode(data);\n\n } else {\n var cmp = compare(data, root.data);\n if (cmp) {\n var dir = cmp === -1 ? \"left\" : \"right\";\n var otherDir = dir === \"left\" ? \"right\" : \"left\";\n root[dir] = insert(root[dir], data, compare);\n var node = root[dir];\n\n if (isRed(node)) {\n\n var sibling = root[otherDir];\n if (isRed(sibling)) {\n /* Case 1 */\n root.red = true;\n node.red = false;\n sibling.red = false;\n } else {\n\n if (isRed(node[dir])) {\n\n root = rotateSingle(root, otherDir);\n } else if (isRed(node[otherDir])) {\n\n root = rotateDouble(root, otherDir);\n }\n }\n\n }\n }\n }\n return root;\n };\n\n var rotateSingle = function (root, dir) {\n var otherDir = dir === \"left\" ? \"right\" : \"left\";\n var save = root[otherDir];\n root[otherDir] = save[dir];\n save[dir] = root;\n root.red = true;\n save.red = false;\n return save;\n };\n\n var rotateDouble = function (root, dir) {\n var otherDir = dir === \"left\" ? \"right\" : \"left\";\n root[otherDir] = rotateSingle(root[otherDir], otherDir);\n return rotateSingle(root, dir);\n };\n\n\n var remove = function (root, data, done, compare) {\n if (!root) {\n done.done = true;\n } else {\n var dir;\n if (compare(data, root.data) === 0) {\n if (!root.left || !root.right) {\n var save = root[!root.left ? \"right\" : \"left\"];\n /* Case 0 */\n if (isRed(root)) {\n done.done = true;\n } else if (isRed(save)) {\n save.red = false;\n done.done = true;\n }\n return save;\n }\n else {\n var heir = root.right, p;\n while (heir.left !== null) {\n p = heir;\n heir = heir.left;\n }\n if (p) {\n p.left = null;\n }\n root.data = heir.data;\n data = heir.data;\n }\n }\n dir = compare(data, root.data) === -1 ? \"left\" : \"right\";\n root[dir] = remove(root[dir], data, done, compare);\n if (!done.done) {\n root = removeBalance(root, dir, done);\n }\n }\n return root;\n };\n\n var removeBalance = function (root, dir, done) {\n var notDir = dir === \"left\" ? \"right\" : \"left\";\n var p = root, s = p[notDir];\n if (isRed(s)) {\n root = rotateSingle(root, dir);\n s = p[notDir];\n }\n if (s !== null) {\n if (!isRed(s.left) && !isRed(s.right)) {\n if (isRed(p)) {\n done.done = true;\n }\n p.red = 0;\n s.red = 1;\n } else {\n var save = p.red, newRoot = ( root === p );\n p = (isRed(s[notDir]) ? rotateSingle : rotateDouble)(p, dir);\n p.red = save;\n p.left.red = p.right.red = 0;\n if (newRoot) {\n root = p;\n } else {\n root[dir] = p;\n }\n done.done = true;\n }\n }\n return root;\n };\n\n return Tree.extend({\n instance: {\n insert: function (data) {\n this.__root = insert(this.__root, data, this.compare);\n this.__root.red = false;\n },\n\n remove: function (data) {\n var done = {done: false};\n var root = remove(this.__root, data, done, this.compare);\n if (root !== null) {\n root.red = 0;\n }\n this.__root = root;\n return data;\n },\n\n\n __printNode: function (node, level) {\n var str = [];\n if (!node) {\n str.push(multiply('\\t', level));\n str.push(\"~\");\n console.log(str.join(\"\"));\n } else {\n this.__printNode(node.right, level + 1);\n str.push(multiply('\\t', level));\n str.push((node.red ? RED : BLACK) + \":\" + node.data + \"\\n\");\n console.log(str.join(\"\"));\n this.__printNode(node.left, level + 1);\n }\n }\n\n }\n });\n\n }());\n\n\n return {\n Tree: Tree,\n AVLTree: AVLTree,\n AnderssonTree: AnderssonTree,\n BinaryTree: BinaryTree,\n RedBlackTree: RedBlackTree,\n IN_ORDER: Tree.IN_ORDER,\n PRE_ORDER: Tree.PRE_ORDER,\n POST_ORDER: Tree.POST_ORDER,\n REVERSE_ORDER: Tree.REVERSE_ORDER\n\n };\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineLeafy(require(\"extended\")()\n .register(\"declare\", require(\"declare.js\"))\n .register(require(\"is-extended\"))\n .register(require(\"array-extended\"))\n .register(require(\"string-extended\"))\n );\n\n }\n } else if (\"function\" === typeof define) {\n define([\"extended\", \"declare.js\", \"is-extended\", \"array-extended\", \"string-extended\"], function (extended, declare, is, array, string) {\n return defineLeafy(extended()\n .register(\"declare\", declare)\n .register(is)\n .register(array)\n .register(string)\n );\n });\n } else {\n this.leafy = defineLeafy(this.extended()\n .register(\"declare\", this.declare)\n .register(this.isExtended)\n .register(this.arrayExtended)\n .register(this.stringExtended));\n }\n\n}).call(this);\n\n\n\n\n\n\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانفي',\n 'فيفري',\n 'مارس',\n 'أفريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Lybia) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split(\n '_'\n ),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n w: 'седмица',\n ww: '%d седмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bnBd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex = /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return esMx;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return es;\n\n})));\n","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split(\n '_'\n ),\n weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰',\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\n","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split(\n '_'\n );\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '૧',\n 2: '૨',\n 3: '૩',\n 4: '૪',\n 5: '૫',\n 6: '૬',\n 7: '૭',\n 8: '૮',\n 9: '૯',\n 0: '૦',\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0',\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n '_'\n ),\n monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return gu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split(\n '_'\n ),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n },\n monthsParse = [\n /^जन/i,\n /^फ़र|फर/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सितं|सित/i,\n /^अक्टू/i,\n /^नव|नवं/i,\n /^दिसं|दिस/i,\n ],\n shortMonthsParse = [\n /^जन/i,\n /^फ़र/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सित/i,\n /^अक्टू/i,\n /^नव/i,\n /^दिस/i,\n ];\n\n var hi = moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n '_'\n ),\n standalone: 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n '_'\n ),\n },\n monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split(\n '_'\n ),\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: shortMonthsParse,\n\n monthsRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsShortRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n monthsShortStrictRegex: /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return hi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(\n ' '\n );\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n","//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\n isFormat: /(წინა|შემდეგ)/,\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function (\n $0,\n $1,\n $2\n ) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n });\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០',\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return km;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: '೭',\n 8: '೮',\n 9: '೯',\n 0: '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n var ky = moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ky;\n\n})));\n","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan : https://github.com/johnideal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n","//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n '_'\n ),\n monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n return mn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀',\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n","//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n w: 'en uke',\n ww: '%d uker',\n M: 'en måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n '_'\n ),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n '_'\n ),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nlBe;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n '_'\n ),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n '_'\n ),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n '_'\n ),\n monthsParse = [\n /^sty/i,\n /^lut/i,\n /^mar/i,\n /^kwi/i,\n /^maj/i,\n /^cze/i,\n /^lip/i,\n /^sie/i,\n /^wrz/i,\n /^paź/i,\n /^lis/i,\n /^gru/i,\n ];\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split(\n '_'\n ),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate,\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida',\n });\n\n return ptBr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделя',\n ww: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split(\n '_'\n ),\n weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['месец', 'месеца', 'месеци'],\n yy: ['година', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'дан',\n dd: translator.translate,\n M: 'месец',\n MM: translator.translate,\n y: 'годину',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jedne minute'],\n mm: ['minut', 'minute', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mesec', 'meseca', 'meseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n '_'\n ),\n standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhTw;\n\n})));\n","var map = {\n\t\"./af\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/cht-core-4-0/shared-libs/rules-engine/node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","//! moment.js\n//! version : 2.29.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\n })\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n ) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","module.exports = exports = require(\"./lib\");","\"use strict\";\nvar extd = require(\"./extended\"),\n declare = extd.declare,\n AVLTree = extd.AVLTree,\n LinkedList = extd.LinkedList,\n isPromise = extd.isPromiseLike,\n EventEmitter = require(\"events\").EventEmitter;\n\n\nvar FactHash = declare({\n instance: {\n constructor: function () {\n this.memory = {};\n this.memoryValues = new LinkedList();\n },\n\n clear: function () {\n this.memoryValues.clear();\n this.memory = {};\n },\n\n\n remove: function (v) {\n var hashCode = v.hashCode,\n memory = this.memory,\n ret = memory[hashCode];\n if (ret) {\n this.memoryValues.remove(ret);\n delete memory[hashCode];\n }\n return ret;\n },\n\n insert: function (insert) {\n var hashCode = insert.hashCode;\n if (hashCode in this.memory) {\n throw new Error(\"Activation already in agenda \" + insert.rule.name + \" agenda\");\n }\n this.memoryValues.push((this.memory[hashCode] = insert));\n }\n }\n});\n\n\nvar DEFAULT_AGENDA_GROUP = \"main\";\nmodule.exports = declare(EventEmitter, {\n\n instance: {\n constructor: function (flow, conflictResolution) {\n this.agendaGroups = {};\n this.agendaGroupStack = [DEFAULT_AGENDA_GROUP];\n this.rules = {};\n this.flow = flow;\n this.comparator = conflictResolution;\n this.setFocus(DEFAULT_AGENDA_GROUP).addAgendaGroup(DEFAULT_AGENDA_GROUP);\n },\n\n addAgendaGroup: function (groupName) {\n if (!extd.has(this.agendaGroups, groupName)) {\n this.agendaGroups[groupName] = new AVLTree({compare: this.comparator});\n }\n },\n\n getAgendaGroup: function (groupName) {\n return this.agendaGroups[groupName || DEFAULT_AGENDA_GROUP];\n },\n\n setFocus: function (agendaGroup) {\n if (agendaGroup !== this.getFocused() && this.agendaGroups[agendaGroup]) {\n this.agendaGroupStack.push(agendaGroup);\n this.emit(\"focused\", agendaGroup);\n }\n return this;\n },\n\n getFocused: function () {\n var ags = this.agendaGroupStack;\n return ags[ags.length - 1];\n },\n\n getFocusedAgenda: function () {\n return this.agendaGroups[this.getFocused()];\n },\n\n register: function (node) {\n var agendaGroup = node.rule.agendaGroup;\n this.rules[node.name] = {tree: new AVLTree({compare: this.comparator}), factTable: new FactHash()};\n if (agendaGroup) {\n this.addAgendaGroup(agendaGroup);\n }\n },\n\n isEmpty: function () {\n var agendaGroupStack = this.agendaGroupStack, changed = false;\n while (this.getFocusedAgenda().isEmpty() && this.getFocused() !== DEFAULT_AGENDA_GROUP) {\n agendaGroupStack.pop();\n changed = true;\n }\n if (changed) {\n this.emit(\"focused\", this.getFocused());\n }\n return this.getFocusedAgenda().isEmpty();\n },\n\n fireNext: function () {\n var agendaGroupStack = this.agendaGroupStack, ret = false;\n while (this.getFocusedAgenda().isEmpty() && this.getFocused() !== DEFAULT_AGENDA_GROUP) {\n agendaGroupStack.pop();\n }\n if (!this.getFocusedAgenda().isEmpty()) {\n var activation = this.pop();\n this.emit(\"fire\", activation.rule.name, activation.match.factHash);\n var fired = activation.rule.fire(this.flow, activation.match);\n if (isPromise(fired)) {\n ret = fired.then(function () {\n //return true if an activation fired\n return true;\n });\n } else {\n ret = true;\n }\n }\n //return false if activation not fired\n return ret;\n },\n\n pop: function () {\n var tree = this.getFocusedAgenda(), root = tree.__root;\n while (root.right) {\n root = root.right;\n }\n var v = root.data;\n tree.remove(v);\n var rule = this.rules[v.name];\n rule.tree.remove(v);\n rule.factTable.remove(v);\n return v;\n },\n\n peek: function () {\n var tree = this.getFocusedAgenda(), root = tree.__root;\n while (root.right) {\n root = root.right;\n }\n return root.data;\n },\n\n modify: function (node, context) {\n this.retract(node, context);\n this.insert(node, context);\n },\n\n retract: function (node, retract) {\n var rule = this.rules[node.name];\n retract.rule = node;\n var activation = rule.factTable.remove(retract);\n if (activation) {\n this.getAgendaGroup(node.rule.agendaGroup).remove(activation);\n rule.tree.remove(activation);\n }\n },\n\n insert: function (node, insert) {\n var rule = this.rules[node.name], nodeRule = node.rule, agendaGroup = nodeRule.agendaGroup;\n rule.tree.insert(insert);\n this.getAgendaGroup(agendaGroup).insert(insert);\n if (nodeRule.autoFocus) {\n this.setFocus(agendaGroup);\n }\n\n rule.factTable.insert(insert);\n },\n\n dispose: function () {\n for (var i in this.agendaGroups) {\n this.agendaGroups[i].clear();\n }\n var rules = this.rules;\n for (i in rules) {\n if (i in rules) {\n rules[i].tree.clear();\n rules[i].factTable.clear();\n\n }\n }\n this.rules = {};\n }\n }\n\n});","/*jshint evil:true*/\n\"use strict\";\nvar extd = require(\"../extended\"),\n forEach = extd.forEach,\n isString = extd.isString;\n\nexports.modifiers = [\"assert\", \"modify\", \"retract\", \"emit\", \"halt\", \"focus\", \"getFacts\"];\n\nvar createFunction = function (body, defined, scope, scopeNames, definedNames) {\n var declares = [];\n forEach(definedNames, function (i) {\n if (body.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= defined.\" + i + \";\");\n }\n });\n\n forEach(scopeNames, function (i) {\n if (body.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= scope.\" + i + \";\");\n }\n });\n body = [\"((function(){\", declares.join(\"\"), \"\\n\\treturn \", body, \"\\n})())\"].join(\"\");\n try {\n return eval(body);\n } catch (e) {\n throw new Error(\"Invalid action : \" + body + \"\\n\" + e.message);\n }\n};\n\nvar createDefined = (function () {\n\n var _createDefined = function (action, defined, scope) {\n if (isString(action)) {\n var declares = [];\n extd(defined).keys().forEach(function (i) {\n if (action.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= defined.\" + i + \";\");\n }\n });\n\n extd(scope).keys().forEach(function (i) {\n if (action.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= function(){var prop = scope.\" + i + \"; return __objToStr__.call(prop) === '[object Function]' ? prop.apply(void 0, arguments) : prop;};\");\n }\n });\n if (declares.length) {\n declares.unshift(\"var __objToStr__ = Object.prototype.toString;\");\n }\n action = [declares.join(\"\"), \"return \", action, \";\"].join(\"\");\n action = new Function(\"defined\", \"scope\", action)(defined, scope);\n }\n var ret = action.hasOwnProperty(\"constructor\") && \"function\" === typeof action.constructor ? action.constructor : function (opts) {\n opts = opts || {};\n for (var i in opts) {\n if (i in action) {\n this[i] = opts[i];\n }\n }\n };\n var proto = ret.prototype;\n for (var i in action) {\n proto[i] = action[i];\n }\n return ret;\n\n };\n\n return function (options, defined, scope) {\n return _createDefined(options.properties, defined, scope);\n };\n})();\n\nexports.createFunction = createFunction;\nexports.createDefined = createDefined;","/*jshint evil:true*/\n\"use strict\";\nvar extd = require(\"../extended\"),\n parser = require(\"../parser\"),\n constraintMatcher = require(\"../constraintMatcher.js\"),\n indexOf = extd.indexOf,\n forEach = extd.forEach,\n removeDuplicates = extd.removeDuplicates,\n map = extd.map,\n obj = extd.hash,\n keys = obj.keys,\n merge = extd.merge,\n rules = require(\"../rule\"),\n common = require(\"./common\"),\n modifiers = common.modifiers,\n createDefined = common.createDefined,\n createFunction = common.createFunction;\n\n\n/**\n * @private\n * Parses an action from a rule definition\n * @param {String} action the body of the action to execute\n * @param {Array} identifiers array of identifiers collected\n * @param {Object} defined an object of defined\n * @param scope\n * @return {Object}\n */\nvar parseAction = function (action, identifiers, defined, scope) {\n var declares = [];\n forEach(identifiers, function (i) {\n if (action.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= facts.\" + i + \";\");\n }\n });\n extd(defined).keys().forEach(function (i) {\n if (action.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= defined.\" + i + \";\");\n }\n });\n\n extd(scope).keys().forEach(function (i) {\n if (action.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= scope.\" + i + \";\");\n }\n });\n extd(modifiers).forEach(function (i) {\n if (action.indexOf(i) !== -1) {\n declares.push(\"if(!\" + i + \"){ var \" + i + \"= flow.\" + i + \";}\");\n }\n });\n var params = [\"facts\", 'flow'];\n if (/next\\(.*\\)/.test(action)) {\n params.push(\"next\");\n }\n action = declares.join(\"\") + action;\n try {\n return new Function(\"defined, scope\", \"return \" + new Function(params.join(\",\"), action).toString())(defined, scope);\n } catch (e) {\n throw new Error(\"Invalid action : \" + action + \"\\n\" + e.message);\n }\n};\n\nvar createRuleFromObject = (function () {\n var __resolveRule = function (rule, identifiers, conditions, defined, name) {\n var condition = [], definedClass = rule[0], alias = rule[1], constraint = rule[2], refs = rule[3];\n if (extd.isHash(constraint)) {\n refs = constraint;\n constraint = null;\n }\n if (definedClass && !!(definedClass = defined[definedClass])) {\n condition.push(definedClass);\n } else {\n throw new Error(\"Invalid class \" + rule[0] + \" for rule \" + name);\n }\n condition.push(alias, constraint, refs);\n conditions.push(condition);\n identifiers.push(alias);\n if (constraint) {\n forEach(constraintMatcher.getIdentifiers(parser.parseConstraint(constraint)), function (i) {\n identifiers.push(i);\n });\n }\n if (extd.isObject(refs)) {\n for (var j in refs) {\n var ident = refs[j];\n if (indexOf(identifiers, ident) === -1) {\n identifiers.push(ident);\n }\n }\n }\n };\n\n function parseRule(rule, conditions, identifiers, defined, name) {\n if (rule.length) {\n var r0 = rule[0];\n if (r0 === \"not\" || r0 === \"exists\") {\n var temp = [];\n rule.shift();\n __resolveRule(rule, identifiers, temp, defined, name);\n var cond = temp[0];\n cond.unshift(r0);\n conditions.push(cond);\n } else if (r0 === \"or\") {\n var conds = [r0];\n rule.shift();\n forEach(rule, function (cond) {\n parseRule(cond, conds, identifiers, defined, name);\n });\n conditions.push(conds);\n } else {\n __resolveRule(rule, identifiers, conditions, defined, name);\n identifiers = removeDuplicates(identifiers);\n }\n }\n\n }\n\n return function (obj, defined, scope) {\n var name = obj.name;\n if (extd.isEmpty(obj)) {\n throw new Error(\"Rule is empty\");\n }\n var options = obj.options || {};\n options.scope = scope;\n var constraints = obj.constraints || [], l = constraints.length;\n if (!l) {\n constraints = [\"true\"];\n }\n var action = obj.action;\n if (extd.isUndefined(action)) {\n throw new Error(\"No action was defined for rule \" + name);\n }\n var conditions = [], identifiers = [];\n forEach(constraints, function (rule) {\n parseRule(rule, conditions, identifiers, defined, name);\n });\n return rules.createRule(name, options, conditions, parseAction(action, identifiers, defined, scope));\n };\n})();\n\nexports.parse = function (src, file) {\n //parse flow from file\n return parser.parseRuleSet(src, file);\n\n};\nexports.compile = function (flowObj, options, cb, Container) {\n if (extd.isFunction(options)) {\n cb = options;\n options = {};\n } else {\n options = options || {};\n }\n var name = flowObj.name || options.name;\n //if !name throw an error\n if (!name) {\n throw new Error(\"Name must be present in JSON or options\");\n }\n var flow = new Container(name);\n var defined = merge({Array: Array, String: String, Number: Number, Boolean: Boolean, RegExp: RegExp, Date: Date, Object: Object}, options.define || {});\n if (typeof Buffer !== \"undefined\") {\n defined.Buffer = Buffer;\n }\n var scope = merge({console: console}, options.scope);\n //add the anything added to the scope as a property\n forEach(flowObj.scope, function (s) {\n scope[s.name] = true;\n });\n //add any defined classes in the parsed flowObj to defined\n forEach(flowObj.define, function (d) {\n defined[d.name] = createDefined(d, defined, scope);\n });\n\n //expose any defined classes to the flow.\n extd(defined).forEach(function (cls, name) {\n flow.addDefined(name, cls);\n });\n\n var scopeNames = extd(flowObj.scope).pluck(\"name\").union(extd(scope).keys().value()).value();\n var definedNames = map(keys(defined), function (s) {\n return s;\n });\n forEach(flowObj.scope, function (s) {\n scope[s.name] = createFunction(s.body, defined, scope, scopeNames, definedNames);\n });\n var rules = flowObj.rules;\n if (rules.length) {\n forEach(rules, function (rule) {\n flow.__rules = flow.__rules.concat(createRuleFromObject(rule, defined, scope));\n });\n }\n if (cb) {\n cb.call(flow, flow);\n }\n return flow;\n};\n\nexports.transpile = require(\"./transpile\").transpile;\n\n\n\n","var extd = require(\"../extended\"),\n forEach = extd.forEach,\n indexOf = extd.indexOf,\n merge = extd.merge,\n isString = extd.isString,\n modifiers = require(\"./common\").modifiers,\n constraintMatcher = require(\"../constraintMatcher\"),\n parser = require(\"../parser\");\n\nfunction definedToJs(options) {\n /*jshint evil:true*/\n options = isString(options) ? new Function(\"return \" + options + \";\")() : options;\n var ret = [\"(function(){\"], value;\n\n if (options.hasOwnProperty(\"constructor\") && \"function\" === typeof options.constructor) {\n ret.push(\"var Defined = \" + options.constructor.toString() + \";\");\n } else {\n ret.push(\"var Defined = function(opts){ for(var i in opts){if(opts.hasOwnProperty(i)){this[i] = opts[i];}}};\");\n }\n ret.push(\"var proto = Defined.prototype;\");\n for (var key in options) {\n if (options.hasOwnProperty(key)) {\n value = options[key];\n ret.push(\"proto.\" + key + \" = \" + (extd.isFunction(value) ? value.toString() : extd.format(\"%j\", value)) + \";\");\n }\n }\n ret.push(\"return Defined;\");\n ret.push(\"}())\");\n return ret.join(\"\");\n\n}\n\nfunction actionToJs(action, identifiers, defined, scope) {\n var declares = [], usedVars = {};\n forEach(identifiers, function (i) {\n if (action.indexOf(i) !== -1) {\n usedVars[i] = true;\n declares.push(\"var \" + i + \"= facts.\" + i + \";\");\n }\n });\n extd(defined).keys().forEach(function (i) {\n if (action.indexOf(i) !== -1 && !usedVars[i]) {\n usedVars[i] = true;\n declares.push(\"var \" + i + \"= defined.\" + i + \";\");\n }\n });\n\n extd(scope).keys().forEach(function (i) {\n if (action.indexOf(i) !== -1 && !usedVars[i]) {\n usedVars[i] = true;\n declares.push(\"var \" + i + \"= scope.\" + i + \";\");\n }\n });\n extd(modifiers).forEach(function (i) {\n if (action.indexOf(i) !== -1 && !usedVars[i]) {\n declares.push(\"var \" + i + \"= flow.\" + i + \";\");\n }\n });\n var params = [\"facts\", 'flow'];\n if (/next\\(.*\\)/.test(action)) {\n params.push(\"next\");\n }\n action = declares.join(\"\") + action;\n try {\n return [\"function(\", params.join(\",\"), \"){\", action, \"}\"].join(\"\");\n } catch (e) {\n throw new Error(\"Invalid action : \" + action + \"\\n\" + e.message);\n }\n}\n\nfunction parseConstraintModifier(constraint, ret) {\n if (constraint.length && extd.isString(constraint[0])) {\n var modifier = constraint[0].match(\" *(from)\");\n if (modifier) {\n modifier = modifier[0];\n switch (modifier) {\n case \"from\":\n ret.push(', \"', constraint.shift(), '\"');\n break;\n default:\n throw new Error(\"Unrecognized modifier \" + modifier);\n }\n }\n }\n}\n\nfunction parseConstraintHash(constraint, ret, identifiers) {\n if (constraint.length && extd.isHash(constraint[0])) {\n //ret of options\n var refs = constraint.shift();\n extd(refs).values().forEach(function (ident) {\n if (indexOf(identifiers, ident) === -1) {\n identifiers.push(ident);\n }\n });\n ret.push(',' + extd.format('%j', [refs]));\n }\n}\n\nfunction constraintsToJs(constraint, identifiers) {\n constraint = constraint.slice(0);\n var ret = [];\n if (constraint[0] === \"or\") {\n ret.push('[\"' + constraint.shift() + '\"');\n ret.push(extd.map(constraint,function (c) {\n return constraintsToJs(c, identifiers);\n }).join(\",\") + \"]\");\n return ret;\n } else if (constraint[0] === \"not\" || constraint[0] === \"exists\") {\n ret.push('\"', constraint.shift(), '\", ');\n }\n identifiers.push(constraint[1]);\n ret.push(constraint[0], ', \"' + constraint[1].replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + '\"');\n constraint.splice(0, 2);\n if (constraint.length) {\n //constraint\n var c = constraint.shift();\n if (extd.isString(c) && c) {\n ret.push(',\"' + c.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\"), '\"');\n forEach(constraintMatcher.getIdentifiers(parser.parseConstraint(c)), function (i) {\n identifiers.push(i);\n });\n } else {\n ret.push(',\"true\"');\n constraint.unshift(c);\n }\n }\n parseConstraintModifier(constraint, ret);\n parseConstraintHash(constraint, ret, identifiers);\n return '[' + ret.join(\"\") + ']';\n}\n\nexports.transpile = function (flowObj, options) {\n options = options || {};\n var ret = [];\n ret.push(\"(function(){\");\n ret.push(\"return function(options){\");\n ret.push(\"options = options || {};\");\n ret.push(\"var bind = function(scope, fn){return function(){return fn.apply(scope, arguments);};}, defined = {Array: Array, String: String, Number: Number, Boolean: Boolean, RegExp: RegExp, Date: Date, Object: Object}, scope = options.scope || {};\");\n ret.push(\"var optDefined = options.defined || {}; for(var i in optDefined){defined[i] = optDefined[i];}\");\n var defined = merge({Array: Array, String: String, Number: Number, Boolean: Boolean, RegExp: RegExp, Date: Date, Object: Object}, options.define || {});\n if (typeof Buffer !== \"undefined\") {\n defined.Buffer = Buffer;\n }\n var scope = merge({console: console}, options.scope);\n ret.push([\"return nools.flow('\", options.name, \"', function(){\"].join(\"\"));\n //add any defined classes in the parsed flowObj to defined\n ret.push(extd(flowObj.define || []).map(function (defined) {\n var name = defined.name;\n defined[name] = {};\n return [\"var\", name, \"= defined.\" + name, \"= this.addDefined('\" + name + \"',\", definedToJs(defined.properties) + \");\"].join(\" \");\n }).value().join(\"\\n\"));\n ret.push(extd(flowObj.scope || []).map(function (s) {\n var name = s.name;\n scope[name] = {};\n return [\"var\", name, \"= scope.\" + name, \"= \", s.body, \";\"].join(\" \");\n }).value().join(\"\\n\"));\n ret.push(\"scope.console = console;\\n\");\n\n\n ret.push(extd(flowObj.rules || []).map(function (rule) {\n var identifiers = [], ret = [\"this.rule('\", rule.name.replace(/'/g, \"\\\\'\"), \"'\"], options = extd.merge(rule.options || {}, {scope: \"scope\"});\n ret.push(\",\", extd.format(\"%j\", [options]).replace(/(:\"scope\")/, \":scope\"));\n if (rule.constraints && !extd.isEmpty(rule.constraints)) {\n ret.push(\", [\");\n ret.push(extd(rule.constraints).map(function (c) {\n return constraintsToJs(c, identifiers);\n }).value().join(\",\"));\n ret.push(\"]\");\n }\n ret.push(\",\", actionToJs(rule.action, identifiers, defined, scope));\n ret.push(\");\");\n return ret.join(\"\");\n }).value().join(\"\"));\n ret.push(\"});\");\n ret.push(\"};\");\n ret.push(\"}());\");\n return ret.join(\"\");\n};\n\n\n","var map = require(\"./extended\").map;\n\nfunction salience(a, b) {\n return a.rule.priority - b.rule.priority;\n}\n\nfunction bucketCounter(a, b) {\n return a.counter - b.counter;\n}\n\nfunction factRecency(a, b) {\n /*jshint noempty: false*/\n\n var i = 0;\n var aMatchRecency = a.match.recency,\n bMatchRecency = b.match.recency, aLength = aMatchRecency.length - 1, bLength = bMatchRecency.length - 1;\n while (aMatchRecency[i] === bMatchRecency[i] && i < aLength && i < bLength && i++) {\n }\n var ret = aMatchRecency[i] - bMatchRecency[i];\n if (!ret) {\n ret = aLength - bLength;\n }\n return ret;\n}\n\nfunction activationRecency(a, b) {\n return a.recency - b.recency;\n}\n\nvar strategies = {\n salience: salience,\n bucketCounter: bucketCounter,\n factRecency: factRecency,\n activationRecency: activationRecency\n};\n\nexports.strategies = strategies;\nexports.strategy = function (strats) {\n strats = map(strats, function (s) {\n return strategies[s];\n });\n var stratsLength = strats.length;\n\n return function (a, b) {\n var i = -1, ret = 0;\n var equal = (a === b) || (a.name === b.name && a.hashCode === b.hashCode);\n if (!equal) {\n while (++i < stratsLength && !ret) {\n ret = strats[i](a, b);\n }\n ret = ret > 0 ? 1 : -1;\n }\n return ret;\n };\n};","\"use strict\";\n\nvar extd = require(\"./extended\"),\n deepEqual = extd.deepEqual,\n merge = extd.merge,\n instanceOf = extd.instanceOf,\n filter = extd.filter,\n declare = extd.declare,\n constraintMatcher;\n\nvar id = 0;\nvar Constraint = declare({\n\n type: null,\n\n instance: {\n constructor: function (constraint) {\n if (!constraintMatcher) {\n constraintMatcher = require(\"./constraintMatcher\");\n }\n this.id = id++;\n this.constraint = constraint;\n extd.bindAll(this, [\"assert\"]);\n },\n \"assert\": function () {\n throw new Error(\"not implemented\");\n },\n\n getIndexableProperties: function () {\n return [];\n },\n\n equal: function (constraint) {\n return instanceOf(constraint, this._static) && this.get(\"alias\") === constraint.get(\"alias\") && extd.deepEqual(this.constraint, constraint.constraint);\n },\n\n getters: {\n variables: function () {\n return [this.get(\"alias\")];\n }\n }\n\n\n }\n});\n\nConstraint.extend({\n instance: {\n\n type: \"object\",\n\n constructor: function (type) {\n this._super([type]);\n },\n\n \"assert\": function (param) {\n return param instanceof this.constraint || param.constructor === this.constraint;\n },\n\n equal: function (constraint) {\n return instanceOf(constraint, this._static) && this.constraint === constraint.constraint;\n }\n }\n}).as(exports, \"ObjectConstraint\");\n\nvar EqualityConstraint = Constraint.extend({\n\n instance: {\n\n type: \"equality\",\n\n constructor: function (constraint, options) {\n this._super([constraint]);\n options = options || {};\n this.pattern = options.pattern;\n this._matcher = constraintMatcher.getMatcher(constraint, options, true);\n },\n\n \"assert\": function (values) {\n return this._matcher(values);\n }\n }\n}).as(exports, \"EqualityConstraint\");\n\nEqualityConstraint.extend({instance: {type: \"inequality\"}}).as(exports, \"InequalityConstraint\");\nEqualityConstraint.extend({instance: {type: \"comparison\"}}).as(exports, \"ComparisonConstraint\");\n\nConstraint.extend({\n\n instance: {\n\n type: \"equality\",\n\n constructor: function () {\n this._super([\n [true]\n ]);\n },\n\n equal: function (constraint) {\n return instanceOf(constraint, this._static) && this.get(\"alias\") === constraint.get(\"alias\");\n },\n\n\n \"assert\": function () {\n return true;\n }\n }\n}).as(exports, \"TrueConstraint\");\n\nvar ReferenceConstraint = Constraint.extend({\n\n instance: {\n\n type: \"reference\",\n\n constructor: function (constraint, options) {\n this.cache = {};\n this._super([constraint]);\n options = options || {};\n this.values = [];\n this.pattern = options.pattern;\n this._options = options;\n this._matcher = constraintMatcher.getMatcher(constraint, options, false);\n },\n\n \"assert\": function (fact, fh) {\n try {\n return this._matcher(fact, fh);\n } catch (e) {\n throw new Error(\"Error with evaluating pattern \" + this.pattern + \" \" + e.message);\n }\n\n },\n\n merge: function (that) {\n var ret = this;\n if (that instanceof ReferenceConstraint) {\n ret = new this._static([this.constraint, that.constraint, \"and\"], merge({}, this._options, this._options));\n ret._alias = this._alias || that._alias;\n ret.vars = this.vars.concat(that.vars);\n }\n return ret;\n },\n\n equal: function (constraint) {\n return instanceOf(constraint, this._static) && extd.deepEqual(this.constraint, constraint.constraint);\n },\n\n\n getters: {\n variables: function () {\n return this.vars;\n },\n\n alias: function () {\n return this._alias;\n }\n },\n\n setters: {\n alias: function (alias) {\n this._alias = alias;\n this.vars = filter(constraintMatcher.getIdentifiers(this.constraint), function (v) {\n return v !== alias;\n });\n }\n }\n }\n\n}).as(exports, \"ReferenceConstraint\");\n\n\nReferenceConstraint.extend({\n instance: {\n type: \"reference_equality\",\n op: \"eq\",\n getIndexableProperties: function () {\n return constraintMatcher.getIndexableProperties(this.constraint);\n }\n }\n}).as(exports, \"ReferenceEqualityConstraint\")\n .extend({instance: {type: \"reference_inequality\", op: \"neq\"}}).as(exports, \"ReferenceInequalityConstraint\")\n .extend({instance: {type: \"reference_gt\", op: \"gt\"}}).as(exports, \"ReferenceGTConstraint\")\n .extend({instance: {type: \"reference_gte\", op: \"gte\"}}).as(exports, \"ReferenceGTEConstraint\")\n .extend({instance: {type: \"reference_lt\", op: \"lt\"}}).as(exports, \"ReferenceLTConstraint\")\n .extend({instance: {type: \"reference_lte\", op: \"lte\"}}).as(exports, \"ReferenceLTEConstraint\");\n\n\nConstraint.extend({\n instance: {\n\n type: \"hash\",\n\n constructor: function (hash) {\n this._super([hash]);\n },\n\n equal: function (constraint) {\n return extd.instanceOf(constraint, this._static) && this.get(\"alias\") === constraint.get(\"alias\") && extd.deepEqual(this.constraint, constraint.constraint);\n },\n\n \"assert\": function () {\n return true;\n },\n\n getters: {\n variables: function () {\n return this.constraint;\n }\n }\n\n }\n}).as(exports, \"HashConstraint\");\n\nConstraint.extend({\n instance: {\n constructor: function (constraints, options) {\n this.type = \"from\";\n this.constraints = constraintMatcher.getSourceMatcher(constraints, (options || {}), true);\n extd.bindAll(this, [\"assert\"]);\n },\n\n equal: function (constraint) {\n return instanceOf(constraint, this._static) && this.get(\"alias\") === constraint.get(\"alias\") && deepEqual(this.constraints, constraint.constraints);\n },\n\n \"assert\": function (fact, fh) {\n return this.constraints(fact, fh);\n },\n\n getters: {\n variables: function () {\n return this.constraint;\n }\n }\n\n }\n}).as(exports, \"FromConstraint\");\n\nConstraint.extend({\n instance: {\n constructor: function (func, options) {\n this.type = \"custom\";\n this.fn = func;\n this.options = options;\n extd.bindAll(this, [\"assert\"]);\n },\n\n equal: function (constraint) {\n return instanceOf(constraint, this._static) && this.fn === constraint.constraint;\n },\n\n \"assert\": function (fact, fh) {\n return this.fn(fact, fh);\n }\n }\n}).as(exports, \"CustomConstraint\");\n\n\n","\"use strict\";\n\nvar extd = require(\"./extended\"),\n isArray = extd.isArray,\n forEach = extd.forEach,\n some = extd.some,\n indexOf = extd.indexOf,\n isNumber = extd.isNumber,\n removeDups = extd.removeDuplicates,\n atoms = require(\"./constraint\");\n\nfunction getProps(val) {\n return extd(val).map(function mapper(val) {\n return isArray(val) ? isArray(val[0]) ? getProps(val).value() : val.reverse().join(\".\") : val;\n }).flatten().filter(function (v) {\n return !!v;\n });\n}\n\nvar definedFuncs = {\n indexOf: extd.indexOf,\n now: function () {\n return new Date();\n },\n\n Date: function (y, m, d, h, min, s, ms) {\n var date = new Date();\n if (isNumber(y)) {\n date.setYear(y);\n }\n if (isNumber(m)) {\n date.setMonth(m);\n }\n if (isNumber(d)) {\n date.setDate(d);\n }\n if (isNumber(h)) {\n date.setHours(h);\n }\n if (isNumber(min)) {\n date.setMinutes(min);\n }\n if (isNumber(s)) {\n date.setSeconds(s);\n }\n if (isNumber(ms)) {\n date.setMilliseconds(ms);\n }\n return date;\n },\n\n lengthOf: function (arr, length) {\n return arr.length === length;\n },\n\n isTrue: function (val) {\n return val === true;\n },\n\n isFalse: function (val) {\n return val === false;\n },\n\n isNotNull: function (actual) {\n return actual !== null;\n },\n\n dateCmp: function (dt1, dt2) {\n return extd.compare(dt1, dt2);\n }\n\n};\n\nforEach([\"years\", \"days\", \"months\", \"hours\", \"minutes\", \"seconds\"], function (k) {\n definedFuncs[k + \"FromNow\"] = extd[k + \"FromNow\"];\n definedFuncs[k + \"Ago\"] = extd[k + \"Ago\"];\n});\n\n\nforEach([\"isArray\", \"isNumber\", \"isHash\", \"isObject\", \"isDate\", \"isBoolean\", \"isString\", \"isRegExp\", \"isNull\", \"isEmpty\",\n \"isUndefined\", \"isDefined\", \"isUndefinedOrNull\", \"isPromiseLike\", \"isFunction\", \"deepEqual\"], function (k) {\n var m = extd[k];\n definedFuncs[k] = function () {\n return m.apply(extd, arguments);\n };\n});\n\n\nvar lang = {\n\n equal: function (c1, c2) {\n var ret = false;\n if (c1 === c2) {\n ret = true;\n } else {\n if (c1[2] === c2[2]) {\n if (indexOf([\"string\", \"number\", \"boolean\", \"regexp\", \"identifier\", \"null\"], c1[2]) !== -1) {\n ret = c1[0] === c2[0];\n } else if (c1[2] === \"unary\" || c1[2] === \"logicalNot\") {\n ret = this.equal(c1[0], c2[0]);\n } else {\n ret = this.equal(c1[0], c2[0]) && this.equal(c1[1], c2[1]);\n }\n }\n }\n return ret;\n },\n\n __getProperties: function (rule) {\n var ret = [];\n if (rule) {\n var rule2 = rule[2];\n if (!rule2) {\n return ret;\n }\n if (rule2 !== \"prop\" &&\n rule2 !== \"identifier\" &&\n rule2 !== \"string\" &&\n rule2 !== \"number\" &&\n rule2 !== \"boolean\" &&\n rule2 !== \"regexp\" &&\n rule2 !== \"unary\" &&\n rule2 !== \"unary\") {\n ret[0] = this.__getProperties(rule[0]);\n ret[1] = this.__getProperties(rule[1]);\n } else if (rule2 === \"identifier\") {\n //at the bottom\n ret = [rule[0]];\n } else {\n ret = lang.__getProperties(rule[1]).concat(lang.__getProperties(rule[0]));\n }\n }\n return ret;\n },\n\n getIndexableProperties: function (rule) {\n if (rule[2] === \"composite\") {\n return this.getIndexableProperties(rule[0]);\n } else if (/^(\\w+(\\['[^']*'])*) *([!=]==?|[<>]=?) (\\w+(\\['[^']*'])*)$/.test(this.parse(rule))) {\n return getProps(this.__getProperties(rule)).flatten().value();\n } else {\n return [];\n }\n },\n\n getIdentifiers: function (rule) {\n var ret = [];\n var rule2 = rule[2];\n\n if (rule2 === \"identifier\") {\n //its an identifier so stop\n return [rule[0]];\n } else if (rule2 === \"function\") {\n ret = ret.concat(this.getIdentifiers(rule[0])).concat(this.getIdentifiers(rule[1]));\n } else if (rule2 !== \"string\" &&\n rule2 !== \"number\" &&\n rule2 !== \"boolean\" &&\n rule2 !== \"regexp\" &&\n rule2 !== \"unary\" &&\n rule2 !== \"unary\") {\n //its an expression so keep going\n if (rule2 === \"prop\") {\n ret = ret.concat(this.getIdentifiers(rule[0]));\n if (rule[1]) {\n var propChain = rule[1];\n //go through the member variables and collect any identifiers that may be in functions\n while (isArray(propChain)) {\n if (propChain[2] === \"function\") {\n ret = ret.concat(this.getIdentifiers(propChain[1]));\n break;\n } else {\n propChain = propChain[1];\n }\n }\n }\n\n } else {\n if (rule[0]) {\n ret = ret.concat(this.getIdentifiers(rule[0]));\n }\n if (rule[1]) {\n ret = ret.concat(this.getIdentifiers(rule[1]));\n }\n }\n }\n //remove dups and return\n return removeDups(ret);\n },\n\n toConstraints: function (rule, options) {\n var ret = [],\n alias = options.alias,\n scope = options.scope || {};\n\n var rule2 = rule[2];\n\n\n if (rule2 === \"and\") {\n ret = ret.concat(this.toConstraints(rule[0], options)).concat(this.toConstraints(rule[1], options));\n } else if (\n rule2 === \"composite\" ||\n rule2 === \"or\" ||\n rule2 === \"lt\" ||\n rule2 === \"gt\" ||\n rule2 === \"lte\" ||\n rule2 === \"gte\" ||\n rule2 === \"like\" ||\n rule2 === \"notLike\" ||\n rule2 === \"eq\" ||\n rule2 === \"neq\" ||\n rule2 === \"seq\" ||\n rule2 === \"sneq\" ||\n rule2 === \"in\" ||\n rule2 === \"notIn\" ||\n rule2 === \"prop\" ||\n rule2 === \"propLookup\" ||\n rule2 === \"function\" ||\n rule2 === \"logicalNot\") {\n var isReference = some(this.getIdentifiers(rule), function (i) {\n return i !== alias && !(i in definedFuncs) && !(i in scope);\n });\n switch (rule2) {\n case \"eq\":\n ret.push(new atoms[isReference ? \"ReferenceEqualityConstraint\" : \"EqualityConstraint\"](rule, options));\n break;\n case \"seq\":\n ret.push(new atoms[isReference ? \"ReferenceEqualityConstraint\" : \"EqualityConstraint\"](rule, options));\n break;\n case \"neq\":\n ret.push(new atoms[isReference ? \"ReferenceInequalityConstraint\" : \"InequalityConstraint\"](rule, options));\n break;\n case \"sneq\":\n ret.push(new atoms[isReference ? \"ReferenceInequalityConstraint\" : \"InequalityConstraint\"](rule, options));\n break;\n case \"gt\":\n ret.push(new atoms[isReference ? \"ReferenceGTConstraint\" : \"ComparisonConstraint\"](rule, options));\n break;\n case \"gte\":\n ret.push(new atoms[isReference ? \"ReferenceGTEConstraint\" : \"ComparisonConstraint\"](rule, options));\n break;\n case \"lt\":\n ret.push(new atoms[isReference ? \"ReferenceLTConstraint\" : \"ComparisonConstraint\"](rule, options));\n break;\n case \"lte\":\n ret.push(new atoms[isReference ? \"ReferenceLTEConstraint\" : \"ComparisonConstraint\"](rule, options));\n break;\n default:\n ret.push(new atoms[isReference ? \"ReferenceConstraint\" : \"ComparisonConstraint\"](rule, options));\n }\n\n }\n return ret;\n },\n\n\n parse: function (rule) {\n return this[rule[2]](rule[0], rule[1]);\n },\n\n composite: function (lhs) {\n return this.parse(lhs);\n },\n\n and: function (lhs, rhs) {\n return [\"(\", this.parse(lhs), \"&&\", this.parse(rhs), \")\"].join(\" \");\n },\n\n or: function (lhs, rhs) {\n return [\"(\", this.parse(lhs), \"||\", this.parse(rhs), \")\"].join(\" \");\n },\n\n prop: function (name, prop) {\n if (prop[2] === \"function\") {\n return [this.parse(name), this.parse(prop)].join(\".\");\n } else {\n return [this.parse(name), \"['\", this.parse(prop), \"']\"].join(\"\");\n }\n },\n\n propLookup: function (name, prop) {\n if (prop[2] === \"function\") {\n return [this.parse(name), this.parse(prop)].join(\".\");\n } else {\n return [this.parse(name), \"[\", this.parse(prop), \"]\"].join(\"\");\n }\n },\n\n unary: function (lhs) {\n return -1 * this.parse(lhs);\n },\n\n plus: function (lhs, rhs) {\n return [this.parse(lhs), \"+\", this.parse(rhs)].join(\" \");\n },\n minus: function (lhs, rhs) {\n return [this.parse(lhs), \"-\", this.parse(rhs)].join(\" \");\n },\n\n mult: function (lhs, rhs) {\n return [this.parse(lhs), \"*\", this.parse(rhs)].join(\" \");\n },\n\n div: function (lhs, rhs) {\n return [this.parse(lhs), \"/\", this.parse(rhs)].join(\" \");\n },\n\n mod: function (lhs, rhs) {\n return [this.parse(lhs), \"%\", this.parse(rhs)].join(\" \");\n },\n\n lt: function (lhs, rhs) {\n return [this.parse(lhs), \"<\", this.parse(rhs)].join(\" \");\n },\n gt: function (lhs, rhs) {\n return [this.parse(lhs), \">\", this.parse(rhs)].join(\" \");\n },\n lte: function (lhs, rhs) {\n return [this.parse(lhs), \"<=\", this.parse(rhs)].join(\" \");\n },\n gte: function (lhs, rhs) {\n return [this.parse(lhs), \">=\", this.parse(rhs)].join(\" \");\n },\n like: function (lhs, rhs) {\n return [this.parse(rhs), \".test(\", this.parse(lhs), \")\"].join(\"\");\n },\n notLike: function (lhs, rhs) {\n return [\"!\", this.parse(rhs), \".test(\", this.parse(lhs), \")\"].join(\"\");\n },\n eq: function (lhs, rhs) {\n return [this.parse(lhs), \"==\", this.parse(rhs)].join(\" \");\n },\n\n seq: function (lhs, rhs) {\n return [this.parse(lhs), \"===\", this.parse(rhs)].join(\" \");\n },\n\n neq: function (lhs, rhs) {\n return [this.parse(lhs), \"!=\", this.parse(rhs)].join(\" \");\n },\n\n sneq: function (lhs, rhs) {\n return [this.parse(lhs), \"!==\", this.parse(rhs)].join(\" \");\n },\n\n \"in\": function (lhs, rhs) {\n return [\"(indexOf(\", this.parse(rhs), \",\", this.parse(lhs), \")) != -1\"].join(\"\");\n },\n\n \"notIn\": function (lhs, rhs) {\n return [\"(indexOf(\", this.parse(rhs), \",\", this.parse(lhs), \")) == -1\"].join(\"\");\n },\n\n \"arguments\": function (lhs, rhs) {\n var ret = [];\n if (lhs) {\n ret.push(this.parse(lhs));\n }\n if (rhs) {\n ret.push(this.parse(rhs));\n }\n return ret.join(\",\");\n },\n\n \"array\": function (lhs) {\n var args = [];\n if (lhs) {\n args = this.parse(lhs);\n if (isArray(args)) {\n return args;\n } else {\n return [\"[\", args, \"]\"].join(\"\");\n }\n }\n return [\"[\", args.join(\",\"), \"]\"].join(\"\");\n },\n\n \"function\": function (lhs, rhs) {\n var args = this.parse(rhs);\n return [this.parse(lhs), \"(\", args, \")\"].join(\"\");\n },\n\n \"string\": function (lhs) {\n return \"'\" + lhs + \"'\";\n },\n\n \"number\": function (lhs) {\n return lhs;\n },\n\n \"boolean\": function (lhs) {\n return lhs;\n },\n\n regexp: function (lhs) {\n return lhs;\n },\n\n identifier: function (lhs) {\n return lhs;\n },\n\n \"null\": function () {\n return \"null\";\n },\n\n logicalNot: function (lhs) {\n return [\"!(\", this.parse(lhs), \")\"].join(\"\");\n }\n};\n\nvar matcherCount = 0;\nvar toJs = exports.toJs = function (rule, scope, alias, equality, wrap) {\n /*jshint evil:true*/\n var js = lang.parse(rule);\n scope = scope || {};\n var vars = lang.getIdentifiers(rule);\n var closureVars = [\"var indexOf = definedFuncs.indexOf; var hasOwnProperty = Object.prototype.hasOwnProperty;\"], funcVars = [];\n extd(vars).filter(function (v) {\n var ret = [\"var \", v, \" = \"];\n if (definedFuncs.hasOwnProperty(v)) {\n ret.push(\"definedFuncs['\", v, \"']\");\n } else if (scope.hasOwnProperty(v)) {\n ret.push(\"scope['\", v, \"']\");\n } else {\n return true;\n }\n ret.push(\";\");\n closureVars.push(ret.join(\"\"));\n return false;\n }).forEach(function (v) {\n var ret = [\"var \", v, \" = \"];\n if (equality || v !== alias) {\n ret.push(\"fact.\" + v);\n } else if (v === alias) {\n ret.push(\"hash.\", v, \"\");\n }\n ret.push(\";\");\n funcVars.push(ret.join(\"\"));\n });\n var closureBody = closureVars.join(\"\") + \"return function matcher\" + (matcherCount++) + (!equality ? \"(fact, hash){\" : \"(fact){\") + funcVars.join(\"\") + \" return \" + (wrap ? wrap(js) : js) + \";}\";\n var f = new Function(\"definedFuncs, scope\", closureBody)(definedFuncs, scope);\n //console.log(f.toString());\n return f;\n};\n\nexports.getMatcher = function (rule, options, equality) {\n options = options || {};\n return toJs(rule, options.scope, options.alias, equality, function (src) {\n return \"!!(\" + src + \")\";\n });\n};\n\nexports.getSourceMatcher = function (rule, options, equality) {\n options = options || {};\n return toJs(rule, options.scope, options.alias, equality, function (src) {\n return src;\n });\n};\n\nexports.toConstraints = function (constraint, options) {\n if (typeof constraint === 'function') {\n return [new atoms.CustomConstraint(constraint, options)];\n }\n //constraint.split(\"&&\")\n return lang.toConstraints(constraint, options);\n};\n\nexports.equal = function (c1, c2) {\n return lang.equal(c1, c2);\n};\n\nexports.getIdentifiers = function (constraint) {\n return lang.getIdentifiers(constraint);\n};\n\nexports.getIndexableProperties = function (constraint) {\n return lang.getIndexableProperties(constraint);\n};","\"use strict\";\nvar extd = require(\"./extended\"),\n isBoolean = extd.isBoolean,\n declare = extd.declare,\n indexOf = extd.indexOf,\n pPush = Array.prototype.push;\n\nfunction createContextHash(paths, hashCode) {\n var ret = \"\",\n i = -1,\n l = paths.length;\n while (++i < l) {\n ret += paths[i].id + \":\";\n }\n ret += hashCode;\n return ret;\n}\n\nfunction merge(h1, h2, aliases) {\n var i = -1, l = aliases.length, alias;\n while (++i < l) {\n alias = aliases[i];\n h1[alias] = h2[alias];\n }\n}\n\nfunction unionRecency(arr, arr1, arr2) {\n pPush.apply(arr, arr1);\n var i = -1, l = arr2.length, val, j = arr.length;\n while (++i < l) {\n val = arr2[i];\n if (indexOf(arr, val) === -1) {\n arr[j++] = val;\n }\n }\n}\n\nvar Match = declare({\n instance: {\n\n isMatch: true,\n hashCode: \"\",\n facts: null,\n factIds: null,\n factHash: null,\n recency: null,\n aliases: null,\n\n constructor: function () {\n this.facts = [];\n this.factIds = [];\n this.factHash = {};\n this.recency = [];\n this.aliases = [];\n },\n\n addFact: function (assertable) {\n pPush.call(this.facts, assertable);\n pPush.call(this.recency, assertable.recency);\n pPush.call(this.factIds, assertable.id);\n this.hashCode = this.factIds.join(\":\");\n return this;\n },\n\n merge: function (mr) {\n var ret = new Match();\n ret.isMatch = mr.isMatch;\n pPush.apply(ret.facts, this.facts);\n pPush.apply(ret.facts, mr.facts);\n pPush.apply(ret.aliases, this.aliases);\n pPush.apply(ret.aliases, mr.aliases);\n ret.hashCode = this.hashCode + \":\" + mr.hashCode;\n merge(ret.factHash, this.factHash, this.aliases);\n merge(ret.factHash, mr.factHash, mr.aliases);\n unionRecency(ret.recency, this.recency, mr.recency);\n return ret;\n }\n }\n});\n\nvar Context = declare({\n instance: {\n match: null,\n factHash: null,\n aliases: null,\n fact: null,\n hashCode: null,\n paths: null,\n pathsHash: null,\n\n constructor: function (fact, paths, mr) {\n this.fact = fact;\n if (mr) {\n this.match = mr;\n } else {\n this.match = new Match().addFact(fact);\n }\n this.factHash = this.match.factHash;\n this.aliases = this.match.aliases;\n this.hashCode = this.match.hashCode;\n if (paths) {\n this.paths = paths;\n this.pathsHash = createContextHash(paths, this.hashCode);\n } else {\n this.pathsHash = this.hashCode;\n }\n },\n\n \"set\": function (key, value) {\n this.factHash[key] = value;\n this.aliases.push(key);\n return this;\n },\n\n isMatch: function (isMatch) {\n if (isBoolean(isMatch)) {\n this.match.isMatch = isMatch;\n } else {\n return this.match.isMatch;\n }\n return this;\n },\n\n mergeMatch: function (merge) {\n var match = this.match = this.match.merge(merge);\n this.factHash = match.factHash;\n this.hashCode = match.hashCode;\n this.aliases = match.aliases;\n return this;\n },\n\n clone: function (fact, paths, match) {\n return new Context(fact || this.fact, paths || this.path, match || this.match);\n }\n }\n}).as(module);\n\n\n","var extd = require(\"./extended\"),\n Promise = extd.Promise,\n nextTick = require(\"./nextTick\"),\n isPromiseLike = extd.isPromiseLike;\n\nPromise.extend({\n instance: {\n\n looping: false,\n\n constructor: function (flow, matchUntilHalt) {\n this._super([]);\n this.flow = flow;\n this.agenda = flow.agenda;\n this.rootNode = flow.rootNode;\n this.matchUntilHalt = !!(matchUntilHalt);\n extd.bindAll(this, [\"onAlter\", \"callNext\"]);\n },\n\n halt: function () {\n this.__halted = true;\n if (!this.looping) {\n this.callback();\n }\n },\n\n onAlter: function () {\n this.flowAltered = true;\n if (!this.looping && this.matchUntilHalt && !this.__halted) {\n this.callNext();\n }\n },\n\n setup: function () {\n var flow = this.flow;\n this.rootNode.resetCounter();\n flow.on(\"assert\", this.onAlter);\n flow.on(\"modify\", this.onAlter);\n flow.on(\"retract\", this.onAlter);\n },\n\n tearDown: function () {\n var flow = this.flow;\n flow.removeListener(\"assert\", this.onAlter);\n flow.removeListener(\"modify\", this.onAlter);\n flow.removeListener(\"retract\", this.onAlter);\n },\n\n __handleAsyncNext: function (next) {\n var self = this, agenda = self.agenda;\n return next.then(function () {\n self.looping = false;\n if (!agenda.isEmpty()) {\n if (self.flowAltered) {\n self.rootNode.incrementCounter();\n self.flowAltered = false;\n }\n if (!self.__halted) {\n self.callNext();\n } else {\n self.callback();\n }\n } else if (!self.matchUntilHalt || self.__halted) {\n self.callback();\n }\n self = null;\n }, this.errback);\n },\n\n __handleSyncNext: function (next) {\n this.looping = false;\n if (!this.agenda.isEmpty()) {\n if (this.flowAltered) {\n this.rootNode.incrementCounter();\n this.flowAltered = false;\n }\n }\n if (next && !this.__halted) {\n nextTick(this.callNext);\n } else if (!this.matchUntilHalt || this.__halted) {\n this.callback();\n }\n return next;\n },\n\n callback: function () {\n this.tearDown();\n this._super(arguments);\n },\n\n\n callNext: function () {\n this.looping = true;\n var next = this.agenda.fireNext();\n return isPromiseLike(next) ? this.__handleAsyncNext(next) : this.__handleSyncNext(next);\n },\n\n execute: function () {\n this.setup();\n this.callNext();\n return this;\n }\n }\n}).as(module);","var arr = require(\"array-extended\"),\n unique = arr.unique,\n indexOf = arr.indexOf,\n map = arr.map,\n pSlice = Array.prototype.slice,\n pSplice = Array.prototype.splice;\n\nfunction plucked(prop) {\n var exec = prop.match(/(\\w+)\\(\\)$/);\n if (exec) {\n prop = exec[1];\n return function (item) {\n return item[prop]();\n };\n } else {\n return function (item) {\n return item[prop];\n };\n }\n}\n\nfunction plucker(prop) {\n prop = prop.split(\".\");\n if (prop.length === 1) {\n return plucked(prop[0]);\n } else {\n var pluckers = map(prop, function (prop) {\n return plucked(prop);\n });\n var l = pluckers.length;\n return function (item) {\n var i = -1, res = item;\n while (++i < l) {\n res = pluckers[i](res);\n }\n return res;\n };\n }\n}\n\nfunction intersection(a, b) {\n a = pSlice.call(a);\n var aOne, i = -1, l;\n l = a.length;\n while (++i < l) {\n aOne = a[i];\n if (indexOf(b, aOne) === -1) {\n pSplice.call(a, i--, 1);\n l--;\n }\n }\n return a;\n}\n\nfunction inPlaceIntersection(a, b) {\n var aOne, i = -1, l;\n l = a.length;\n while (++i < l) {\n aOne = a[i];\n if (indexOf(b, aOne) === -1) {\n pSplice.call(a, i--, 1);\n l--;\n }\n }\n return a;\n}\n\nfunction inPlaceDifference(a, b) {\n var aOne, i = -1, l;\n l = a.length;\n while (++i < l) {\n aOne = a[i];\n if (indexOf(b, aOne) !== -1) {\n pSplice.call(a, i--, 1);\n l--;\n }\n }\n return a;\n}\n\nfunction diffArr(arr1, arr2) {\n var ret = [], i = -1, j, l2 = arr2.length, l1 = arr1.length, a, found;\n if (l2 > l1) {\n ret = arr1.slice();\n while (++i < l2) {\n a = arr2[i];\n j = -1;\n l1 = ret.length;\n while (++j < l1) {\n if (ret[j] === a) {\n ret.splice(j, 1);\n break;\n }\n }\n }\n } else {\n while (++i < l1) {\n a = arr1[i];\n j = -1;\n found = false;\n while (++j < l2) {\n if (arr2[j] === a) {\n found = true;\n break;\n }\n }\n if (!found) {\n ret.push(a);\n }\n }\n }\n return ret;\n}\n\nfunction diffHash(h1, h2) {\n var ret = {};\n for (var i in h1) {\n if (!hasOwnProperty.call(h2, i)) {\n ret[i] = h1[i];\n }\n }\n return ret;\n}\n\n\nfunction union(arr1, arr2) {\n return unique(arr1.concat(arr2));\n}\n\nmodule.exports = require(\"extended\")()\n .register(require(\"date-extended\"))\n .register(arr)\n .register(require(\"object-extended\"))\n .register(require(\"string-extended\"))\n .register(require(\"promise-extended\"))\n .register(require(\"function-extended\"))\n .register(require(\"is-extended\"))\n .register(\"intersection\", intersection)\n .register(\"inPlaceIntersection\", inPlaceIntersection)\n .register(\"inPlaceDifference\", inPlaceDifference)\n .register(\"diffArr\", diffArr)\n .register(\"diffHash\", diffHash)\n .register(\"unionArr\", union)\n .register(\"plucker\", plucker)\n .register(\"HashTable\", require(\"ht\"))\n .register(\"declare\", require(\"declare.js\"))\n .register(require(\"leafy\"))\n .register(\"LinkedList\", require(\"./linkedList\"));\n\n","\"use strict\";\nvar extd = require(\"./extended\"),\n bind = extd.bind,\n declare = extd.declare,\n nodes = require(\"./nodes\"),\n EventEmitter = require(\"events\").EventEmitter,\n wm = require(\"./workingMemory\"),\n WorkingMemory = wm.WorkingMemory,\n ExecutionStragegy = require(\"./executionStrategy\"),\n AgendaTree = require(\"./agenda\");\n\nmodule.exports = declare(EventEmitter, {\n\n instance: {\n\n name: null,\n\n executionStrategy: null,\n\n constructor: function (name, conflictResolutionStrategy) {\n this.env = null;\n this.name = name;\n this.__rules = {};\n this.conflictResolutionStrategy = conflictResolutionStrategy;\n this.workingMemory = new WorkingMemory();\n this.agenda = new AgendaTree(this, conflictResolutionStrategy);\n this.agenda.on(\"fire\", bind(this, \"emit\", \"fire\"));\n this.agenda.on(\"focused\", bind(this, \"emit\", \"focused\"));\n this.rootNode = new nodes.RootNode(this.workingMemory, this.agenda);\n extd.bindAll(this, \"halt\", \"assert\", \"retract\", \"modify\", \"focus\",\n \"emit\", \"getFacts\", \"getFact\");\n },\n\n getFacts: function (Type) {\n var ret;\n if (Type) {\n ret = this.workingMemory.getFactsByType(Type);\n } else {\n ret = this.workingMemory.getFacts();\n }\n return ret;\n },\n\n getFact: function (Type) {\n var ret;\n if (Type) {\n ret = this.workingMemory.getFactsByType(Type);\n } else {\n ret = this.workingMemory.getFacts();\n }\n return ret && ret[0];\n },\n\n focus: function (focused) {\n this.agenda.setFocus(focused);\n return this;\n },\n\n halt: function () {\n this.executionStrategy.halt();\n return this;\n },\n\n dispose: function () {\n this.workingMemory.dispose();\n this.agenda.dispose();\n this.rootNode.dispose();\n },\n\n assert: function (fact) {\n this.rootNode.assertFact(this.workingMemory.assertFact(fact));\n this.emit(\"assert\", fact);\n return fact;\n },\n\n // This method is called to remove an existing fact from working memory\n retract: function (fact) {\n //fact = this.workingMemory.getFact(fact);\n this.rootNode.retractFact(this.workingMemory.retractFact(fact));\n this.emit(\"retract\", fact);\n return fact;\n },\n\n // This method is called to alter an existing fact. It is essentially a\n // retract followed by an assert.\n modify: function (fact, cb) {\n //fact = this.workingMemory.getFact(fact);\n if (\"function\" === typeof cb) {\n cb.call(fact, fact);\n }\n this.rootNode.modifyFact(this.workingMemory.modifyFact(fact));\n this.emit(\"modify\", fact);\n return fact;\n },\n\n print: function () {\n this.rootNode.print();\n },\n\n containsRule: function (name) {\n return this.rootNode.containsRule(name);\n },\n\n rule: function (rule) {\n this.rootNode.assertRule(rule);\n },\n\n matchUntilHalt: function (cb) {\n return (this.executionStrategy = new ExecutionStragegy(this, true)).execute().classic(cb).promise();\n },\n\n match: function (cb) {\n return (this.executionStrategy = new ExecutionStragegy(this)).execute().classic(cb).promise();\n }\n\n }\n});","\"use strict\";\nvar extd = require(\"./extended\"),\n instanceOf = extd.instanceOf,\n forEach = extd.forEach,\n declare = extd.declare,\n InitialFact = require(\"./pattern\").InitialFact,\n conflictStrategies = require(\"./conflict\"),\n conflictResolution = conflictStrategies.strategy([\"salience\", \"activationRecency\"]),\n rule = require(\"./rule\"),\n Flow = require(\"./flow\");\n\nvar flows = {};\nvar FlowContainer = declare({\n\n instance: {\n\n constructor: function (name, cb) {\n this.name = name;\n this.cb = cb;\n this.__rules = [];\n this.__defined = {};\n this.conflictResolutionStrategy = conflictResolution;\n if (cb) {\n cb.call(this, this);\n }\n if (!flows.hasOwnProperty(name)) {\n flows[name] = this;\n } else {\n throw new Error(\"Flow with \" + name + \" already defined\");\n }\n },\n\n conflictResolution: function (strategies) {\n this.conflictResolutionStrategy = conflictStrategies.strategy(strategies);\n return this;\n },\n\n getDefined: function (name) {\n var ret = this.__defined[name.toLowerCase()];\n if (!ret) {\n throw new Error(name + \" flow class is not defined\");\n }\n return ret;\n },\n\n addDefined: function (name, cls) {\n //normalize\n this.__defined[name.toLowerCase()] = cls;\n return cls;\n },\n\n rule: function () {\n this.__rules = this.__rules.concat(rule.createRule.apply(rule, arguments));\n return this;\n },\n\n getSession: function () {\n var flow = new Flow(this.name, this.conflictResolutionStrategy);\n forEach(this.__rules, function (rule) {\n flow.rule(rule);\n });\n flow.assert(new InitialFact());\n for (var i = 0, l = arguments.length; i < l; i++) {\n flow.assert(arguments[i]);\n }\n return flow;\n },\n\n containsRule: function (name) {\n return extd.some(this.__rules, function (rule) {\n return rule.name === name;\n });\n }\n\n },\n\n \"static\": {\n getFlow: function (name) {\n return flows[name];\n },\n\n hasFlow: function (name) {\n return extd.has(flows, name);\n },\n\n deleteFlow: function (name) {\n if (instanceOf(name, FlowContainer)) {\n name = name.name;\n }\n delete flows[name];\n return FlowContainer;\n },\n\n deleteFlows: function () {\n for (var name in flows) {\n if (name in flows) {\n delete flows[name];\n }\n }\n return FlowContainer;\n },\n\n create: function (name, cb) {\n return new FlowContainer(name, cb);\n }\n }\n\n}).as(module);","/**\n *\n * @projectName nools\n * @github https://github.com/C2FO/nools\n * @includeDoc [Examples] ../docs-md/examples.md\n * @includeDoc [Change Log] ../history.md\n * @header [../readme.md]\n */\n\n\"use strict\";\nvar extd = require(\"./extended\"),\n fs = require(\"fs\"),\n path = require(\"path\"),\n compile = require(\"./compile\"),\n FlowContainer = require(\"./flowContainer\");\n\nfunction isNoolsFile(file) {\n return (/\\.nools$/).test(file);\n}\n\nfunction parse(source) {\n var ret;\n if (isNoolsFile(source)) {\n ret = compile.parse(fs.readFileSync(source, \"utf8\"), source);\n } else {\n ret = compile.parse(source);\n }\n return ret;\n}\n\nexports.Flow = FlowContainer;\n\nexports.getFlow = FlowContainer.getFlow;\nexports.hasFlow = FlowContainer.hasFlow;\n\nexports.deleteFlow = function (name) {\n FlowContainer.deleteFlow(name);\n return this;\n};\n\nexports.deleteFlows = function () {\n FlowContainer.deleteFlows();\n return this;\n};\n\nexports.flow = FlowContainer.create;\n\nexports.compile = function (file, options, cb) {\n if (extd.isFunction(options)) {\n cb = options;\n options = {};\n } else {\n options = options || {};\n }\n if (extd.isString(file)) {\n options.name = options.name || (isNoolsFile(file) ? path.basename(file, path.extname(file)) : null);\n file = parse(file);\n }\n if (!options.name) {\n throw new Error(\"Name required when compiling nools source\");\n }\n return compile.compile(file, options, cb, FlowContainer);\n};\n\nexports.transpile = function (file, options) {\n options = options || {};\n if (extd.isString(file)) {\n options.name = options.name || (isNoolsFile(file) ? path.basename(file, path.extname(file)) : null);\n file = parse(file);\n }\n return compile.transpile(file, options);\n};\n\nexports.parse = parse;","var declare = require(\"declare.js\");\ndeclare({\n\n instance: {\n constructor: function () {\n this.head = null;\n this.tail = null;\n this.length = null;\n },\n\n push: function (data) {\n var tail = this.tail, head = this.head, node = {data: data, prev: tail, next: null};\n if (tail) {\n this.tail.next = node;\n }\n this.tail = node;\n if (!head) {\n this.head = node;\n }\n this.length++;\n return node;\n },\n\n remove: function (node) {\n if (node.prev) {\n node.prev.next = node.next;\n } else {\n this.head = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n } else {\n this.tail = node.prev;\n }\n //node.data = node.prev = node.next = null;\n this.length--;\n },\n\n forEach: function (cb) {\n var head = {next: this.head};\n while ((head = head.next)) {\n cb(head.data);\n }\n },\n\n toArray: function () {\n var head = {next: this.head}, ret = [];\n while ((head = head.next)) {\n ret.push(head);\n }\n return ret;\n },\n\n removeByData: function (data) {\n var head = {next: this.head};\n while ((head = head.next)) {\n if (head.data === data) {\n this.remove(head);\n break;\n }\n }\n },\n\n getByData: function (data) {\n var head = {next: this.head};\n while ((head = head.next)) {\n if (head.data === data) {\n return head;\n }\n }\n },\n\n clear: function () {\n this.head = this.tail = null;\n this.length = 0;\n }\n\n }\n\n}).as(module);\n","/*global setImmediate, window, MessageChannel*/\nvar extd = require(\"./extended\");\nvar nextTick;\nif (typeof setImmediate === \"function\") {\n // In IE10, or use https://github.com/NobleJS/setImmediate\n if (typeof window !== \"undefined\") {\n nextTick = extd.bind(window, setImmediate);\n } else {\n nextTick = setImmediate;\n }\n} else if (typeof process !== \"undefined\") {\n // node\n nextTick = process.nextTick;\n} else if (typeof MessageChannel !== \"undefined\") {\n // modern browsers\n // http://www.nonblocking.io/2011/06/windownexttick.html\n var channel = new MessageChannel();\n // linked list of tasks (single, with head node)\n var head = {}, tail = head;\n channel.port1.onmessage = function () {\n head = head.next;\n var task = head.task;\n delete head.task;\n task();\n };\n nextTick = function (task) {\n tail = tail.next = {task: task};\n channel.port2.postMessage(0);\n };\n} else {\n // old browsers\n nextTick = function (task) {\n setTimeout(task, 0);\n };\n}\n\nmodule.exports = nextTick;","var Node = require(\"./node\"),\n intersection = require(\"../extended\").intersection;\n\nNode.extend({\n instance: {\n\n __propagatePaths: function (method, context) {\n var entrySet = this.__entrySet, i = entrySet.length, entry, outNode, paths, continuingPaths;\n while (--i > -1) {\n entry = entrySet[i];\n outNode = entry.key;\n paths = entry.value;\n if ((continuingPaths = intersection(paths, context.paths)).length) {\n outNode[method](context.clone(null, continuingPaths, null));\n }\n }\n },\n\n __propagateNoPaths: function (method, context) {\n var entrySet = this.__entrySet, i = entrySet.length;\n while (--i > -1) {\n entrySet[i].key[method](context);\n }\n },\n\n __propagate: function (method, context) {\n if (context.paths) {\n this.__propagatePaths(method, context);\n } else {\n this.__propagateNoPaths(method, context);\n }\n }\n }\n}).as(module);","var AlphaNode = require(\"./alphaNode\");\n\nAlphaNode.extend({\n instance: {\n\n constructor: function () {\n this._super(arguments);\n this.alias = this.constraint.get(\"alias\");\n },\n\n toString: function () {\n return \"AliasNode\" + this.__count;\n },\n\n assert: function (context) {\n return this.__propagate(\"assert\", context.set(this.alias, context.fact.object));\n },\n\n modify: function (context) {\n return this.__propagate(\"modify\", context.set(this.alias, context.fact.object));\n },\n\n retract: function (context) {\n return this.__propagate(\"retract\", context.set(this.alias, context.fact.object));\n },\n\n equal: function (other) {\n return other instanceof this._static && this.alias === other.alias;\n }\n }\n}).as(module);","\"use strict\";\nvar Node = require(\"./node\");\n\nNode.extend({\n instance: {\n constructor: function (constraint) {\n this._super([]);\n this.constraint = constraint;\n this.constraintAssert = this.constraint.assert;\n },\n\n toString: function () {\n return \"AlphaNode \" + this.__count;\n },\n\n equal: function (constraint) {\n return this.constraint.equal(constraint.constraint);\n }\n }\n}).as(module);","var extd = require(\"../extended\"),\n keys = extd.hash.keys,\n Node = require(\"./node\"),\n LeftMemory = require(\"./misc/leftMemory\"), RightMemory = require(\"./misc/rightMemory\");\n\nNode.extend({\n\n instance: {\n\n nodeType: \"BetaNode\",\n\n constructor: function () {\n this._super([]);\n this.leftMemory = {};\n this.rightMemory = {};\n this.leftTuples = new LeftMemory();\n this.rightTuples = new RightMemory();\n },\n\n __propagate: function (method, context) {\n var entrySet = this.__entrySet, i = entrySet.length, entry, outNode;\n while (--i > -1) {\n entry = entrySet[i];\n outNode = entry.key;\n outNode[method](context);\n }\n },\n\n dispose: function () {\n this.leftMemory = {};\n this.rightMemory = {};\n this.leftTuples.clear();\n this.rightTuples.clear();\n },\n\n disposeLeft: function (fact) {\n this.leftMemory = {};\n this.leftTuples.clear();\n this.propagateDispose(fact);\n },\n\n disposeRight: function (fact) {\n this.rightMemory = {};\n this.rightTuples.clear();\n this.propagateDispose(fact);\n },\n\n hashCode: function () {\n return this.nodeType + \" \" + this.__count;\n },\n\n toString: function () {\n return this.nodeType + \" \" + this.__count;\n },\n\n retractLeft: function (context) {\n context = this.removeFromLeftMemory(context).data;\n var rightMatches = context.rightMatches,\n hashCodes = keys(rightMatches),\n i = -1,\n l = hashCodes.length;\n while (++i < l) {\n this.__propagate(\"retract\", rightMatches[hashCodes[i]].clone());\n }\n },\n\n retractRight: function (context) {\n context = this.removeFromRightMemory(context).data;\n var leftMatches = context.leftMatches,\n hashCodes = keys(leftMatches),\n i = -1,\n l = hashCodes.length;\n while (++i < l) {\n this.__propagate(\"retract\", leftMatches[hashCodes[i]].clone());\n }\n },\n\n assertLeft: function (context) {\n this.__addToLeftMemory(context);\n var rm = this.rightTuples.getRightMemory(context), i = -1, l = rm.length;\n while (++i < l) {\n this.propagateFromLeft(context, rm[i].data);\n }\n },\n\n assertRight: function (context) {\n this.__addToRightMemory(context);\n var lm = this.leftTuples.getLeftMemory(context), i = -1, l = lm.length;\n while (++i < l) {\n this.propagateFromRight(context, lm[i].data);\n }\n },\n\n modifyLeft: function (context) {\n var previousContext = this.removeFromLeftMemory(context).data;\n this.__addToLeftMemory(context);\n var rm = this.rightTuples.getRightMemory(context), l = rm.length, i = -1, rightMatches;\n if (!l) {\n this.propagateRetractModifyFromLeft(previousContext);\n } else {\n rightMatches = previousContext.rightMatches;\n while (++i < l) {\n this.propagateAssertModifyFromLeft(context, rightMatches, rm[i].data);\n }\n\n }\n },\n\n modifyRight: function (context) {\n var previousContext = this.removeFromRightMemory(context).data;\n this.__addToRightMemory(context);\n var lm = this.leftTuples.getLeftMemory(context);\n if (!lm.length) {\n this.propagateRetractModifyFromRight(previousContext);\n } else {\n var leftMatches = previousContext.leftMatches, i = -1, l = lm.length;\n while (++i < l) {\n this.propagateAssertModifyFromRight(context, leftMatches, lm[i].data);\n }\n }\n },\n\n propagateFromLeft: function (context, rc) {\n this.__propagate(\"assert\", this.__addToMemoryMatches(rc, context, context.clone(null, null, context.match.merge(rc.match))));\n },\n\n propagateFromRight: function (context, lc) {\n this.__propagate(\"assert\", this.__addToMemoryMatches(context, lc, lc.clone(null, null, lc.match.merge(context.match))));\n },\n\n propagateRetractModifyFromLeft: function (context) {\n var rightMatches = context.rightMatches,\n hashCodes = keys(rightMatches),\n l = hashCodes.length,\n i = -1;\n while (++i < l) {\n this.__propagate(\"retract\", rightMatches[hashCodes[i]].clone());\n }\n },\n\n propagateRetractModifyFromRight: function (context) {\n var leftMatches = context.leftMatches,\n hashCodes = keys(leftMatches),\n l = hashCodes.length,\n i = -1;\n while (++i < l) {\n this.__propagate(\"retract\", leftMatches[hashCodes[i]].clone());\n }\n },\n\n propagateAssertModifyFromLeft: function (context, rightMatches, rm) {\n var factId = rm.hashCode;\n if (factId in rightMatches) {\n this.__propagate(\"modify\", this.__addToMemoryMatches(rm, context, context.clone(null, null, context.match.merge(rm.match))));\n } else {\n this.propagateFromLeft(context, rm);\n }\n },\n\n propagateAssertModifyFromRight: function (context, leftMatches, lm) {\n var factId = lm.hashCode;\n if (factId in leftMatches) {\n this.__propagate(\"modify\", this.__addToMemoryMatches(context, lm, context.clone(null, null, lm.match.merge(context.match))));\n } else {\n this.propagateFromRight(context, lm);\n }\n },\n\n removeFromRightMemory: function (context) {\n var hashCode = context.hashCode, ret;\n context = this.rightMemory[hashCode] || null;\n var tuples = this.rightTuples;\n if (context) {\n var leftMemory = this.leftMemory;\n ret = context.data;\n var leftMatches = ret.leftMatches;\n tuples.remove(context);\n var hashCodes = keys(leftMatches), i = -1, l = hashCodes.length;\n while (++i < l) {\n delete leftMemory[hashCodes[i]].data.rightMatches[hashCode];\n }\n delete this.rightMemory[hashCode];\n }\n return context;\n },\n\n removeFromLeftMemory: function (context) {\n var hashCode = context.hashCode;\n context = this.leftMemory[hashCode] || null;\n if (context) {\n var rightMemory = this.rightMemory;\n var rightMatches = context.data.rightMatches;\n this.leftTuples.remove(context);\n var hashCodes = keys(rightMatches), i = -1, l = hashCodes.length;\n while (++i < l) {\n delete rightMemory[hashCodes[i]].data.leftMatches[hashCode];\n }\n delete this.leftMemory[hashCode];\n }\n return context;\n },\n\n getRightMemoryMatches: function (context) {\n var lm = this.leftMemory[context.hashCode], ret = {};\n if (lm) {\n ret = lm.rightMatches;\n }\n return ret;\n },\n\n __addToMemoryMatches: function (rightContext, leftContext, createdContext) {\n var rightFactId = rightContext.hashCode,\n rm = this.rightMemory[rightFactId],\n lm, leftFactId = leftContext.hashCode;\n if (rm) {\n rm = rm.data;\n if (leftFactId in rm.leftMatches) {\n throw new Error(\"Duplicate left fact entry\");\n }\n rm.leftMatches[leftFactId] = createdContext;\n }\n lm = this.leftMemory[leftFactId];\n if (lm) {\n lm = lm.data;\n if (rightFactId in lm.rightMatches) {\n throw new Error(\"Duplicate right fact entry\");\n }\n lm.rightMatches[rightFactId] = createdContext;\n }\n return createdContext;\n },\n\n __addToRightMemory: function (context) {\n var hashCode = context.hashCode, rm = this.rightMemory;\n if (hashCode in rm) {\n return false;\n }\n rm[hashCode] = this.rightTuples.push(context);\n context.leftMatches = {};\n return true;\n },\n\n\n __addToLeftMemory: function (context) {\n var hashCode = context.hashCode, lm = this.leftMemory;\n if (hashCode in lm) {\n return false;\n }\n lm[hashCode] = this.leftTuples.push(context);\n context.rightMatches = {};\n return true;\n }\n }\n\n}).as(module);","var AlphaNode = require(\"./alphaNode\");\n\nAlphaNode.extend({\n instance: {\n\n constructor: function () {\n this.memory = {};\n this._super(arguments);\n this.constraintAssert = this.constraint.assert;\n },\n\n assert: function (context) {\n if ((this.memory[context.pathsHash] = this.constraintAssert(context.factHash))) {\n this.__propagate(\"assert\", context);\n }\n },\n\n modify: function (context) {\n var memory = this.memory,\n hashCode = context.pathsHash,\n wasMatch = memory[hashCode];\n if ((memory[hashCode] = this.constraintAssert(context.factHash))) {\n this.__propagate(wasMatch ? \"modify\" : \"assert\", context);\n } else if (wasMatch) {\n this.__propagate(\"retract\", context);\n }\n },\n\n retract: function (context) {\n var hashCode = context.pathsHash,\n memory = this.memory;\n if (memory[hashCode]) {\n this.__propagate(\"retract\", context);\n }\n delete memory[hashCode];\n },\n\n toString: function () {\n return \"EqualityNode\" + this.__count;\n }\n }\n}).as(module);","var FromNotNode = require(\"./fromNotNode\"),\n extd = require(\"../extended\"),\n Context = require(\"../context\"),\n isDefined = extd.isDefined,\n isArray = extd.isArray;\n\nFromNotNode.extend({\n instance: {\n\n nodeType: \"ExistsFromNode\",\n\n retractLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context);\n if (ctx) {\n ctx = ctx.data;\n if (ctx.blocked) {\n this.__propagate(\"retract\", ctx.clone());\n }\n }\n },\n\n __modify: function (context, leftContext) {\n var leftContextBlocked = leftContext.blocked;\n var fh = context.factHash, o = this.from(fh);\n if (isArray(o)) {\n for (var i = 0, l = o.length; i < l; i++) {\n if (this.__isMatch(context, o[i], true)) {\n context.blocked = true;\n break;\n }\n }\n } else if (isDefined(o)) {\n context.blocked = this.__isMatch(context, o, true);\n }\n var newContextBlocked = context.blocked;\n if (newContextBlocked) {\n if (leftContextBlocked) {\n this.__propagate(\"modify\", context.clone());\n } else {\n this.__propagate(\"assert\", context.clone());\n }\n } else if (leftContextBlocked) {\n this.__propagate(\"retract\", context.clone());\n }\n\n },\n\n __findMatches: function (context) {\n var fh = context.factHash, o = this.from(fh), isMatch = false;\n if (isArray(o)) {\n for (var i = 0, l = o.length; i < l; i++) {\n if (this.__isMatch(context, o[i], true)) {\n context.blocked = true;\n this.__propagate(\"assert\", context.clone());\n return;\n }\n }\n } else if (isDefined(o) && (this.__isMatch(context, o, true))) {\n context.blocked = true;\n this.__propagate(\"assert\", context.clone());\n }\n return isMatch;\n },\n\n __isMatch: function (oc, o, add) {\n var ret = false;\n if (this.type(o)) {\n var createdFact = this.workingMemory.getFactHandle(o);\n var context = new Context(createdFact, null, null)\n .mergeMatch(oc.match)\n .set(this.alias, o);\n if (add) {\n var fm = this.fromMemory[createdFact.id];\n if (!fm) {\n fm = this.fromMemory[createdFact.id] = {};\n }\n fm[oc.hashCode] = oc;\n }\n var fh = context.factHash;\n var eqConstraints = this.__equalityConstraints;\n for (var i = 0, l = eqConstraints.length; i < l; i++) {\n if (eqConstraints[i](fh)) {\n ret = true;\n } else {\n ret = false;\n break;\n }\n }\n }\n return ret;\n },\n\n assertLeft: function (context) {\n this.__addToLeftMemory(context);\n this.__findMatches(context);\n }\n\n }\n}).as(module);","var NotNode = require(\"./notNode\"),\n LinkedList = require(\"../linkedList\");\n\n\nNotNode.extend({\n instance: {\n\n nodeType: \"ExistsNode\",\n\n blockedContext: function (leftContext, rightContext) {\n leftContext.blocker = rightContext;\n this.removeFromLeftMemory(leftContext);\n this.addToLeftBlockedMemory(rightContext.blocking.push(leftContext));\n this.__propagate(\"assert\", this.__cloneContext(leftContext));\n },\n\n notBlockedContext: function (leftContext, propagate) {\n this.__addToLeftMemory(leftContext);\n propagate && this.__propagate(\"retract\", this.__cloneContext(leftContext));\n },\n\n propagateFromLeft: function (leftContext) {\n this.notBlockedContext(leftContext, false);\n },\n\n\n retractLeft: function (context) {\n var ctx;\n if (!this.removeFromLeftMemory(context)) {\n if ((ctx = this.removeFromLeftBlockedMemory(context))) {\n this.__propagate(\"retract\", this.__cloneContext(ctx.data));\n } else {\n throw new Error();\n }\n }\n },\n \n modifyLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context),\n leftContext,\n thisConstraint = this.constraint,\n rightTuples = this.rightTuples,\n l = rightTuples.length,\n isBlocked = false,\n node, rc, blocker;\n if (!ctx) {\n //blocked before\n ctx = this.removeFromLeftBlockedMemory(context);\n isBlocked = true;\n }\n if (ctx) {\n leftContext = ctx.data;\n\n if (leftContext && leftContext.blocker) {\n //we were blocked before so only check nodes previous to our blocker\n blocker = this.rightMemory[leftContext.blocker.hashCode];\n }\n if (blocker) {\n if (thisConstraint.isMatch(context, rc = blocker.data)) {\n //propogate as a modify or assert\n this.__propagate(!isBlocked ? \"assert\" : \"modify\", this.__cloneContext(leftContext));\n context.blocker = rc;\n this.addToLeftBlockedMemory(rc.blocking.push(context));\n context = null;\n }\n if (context) {\n node = {next: blocker.next};\n }\n } else {\n node = {next: rightTuples.head};\n }\n if (context && l) {\n node = {next: rightTuples.head};\n //we were propagated before\n while ((node = node.next)) {\n if (thisConstraint.isMatch(context, rc = node.data)) {\n //we cant be proagated so retract previous\n\n //we were asserted before so retract\n this.__propagate(!isBlocked ? \"assert\" : \"modify\", this.__cloneContext(leftContext));\n\n this.addToLeftBlockedMemory(rc.blocking.push(context));\n context.blocker = rc;\n context = null;\n break;\n }\n }\n }\n if (context) {\n //we can still be propogated\n this.__addToLeftMemory(context);\n if (isBlocked) {\n //we were blocked so retract\n this.__propagate(\"retract\", this.__cloneContext(context));\n }\n\n }\n } else {\n throw new Error();\n }\n\n },\n\n modifyRight: function (context) {\n var ctx = this.removeFromRightMemory(context);\n if (ctx) {\n var rightContext = ctx.data,\n leftTuples = this.leftTuples,\n leftTuplesLength = leftTuples.length,\n leftContext,\n thisConstraint = this.constraint,\n node,\n blocking = rightContext.blocking;\n this.__addToRightMemory(context);\n context.blocking = new LinkedList();\n if (leftTuplesLength || blocking.length) {\n if (blocking.length) {\n var rc;\n //check old blocked contexts\n //check if the same contexts blocked before are still blocked\n var blockingNode = {next: blocking.head};\n while ((blockingNode = blockingNode.next)) {\n leftContext = blockingNode.data;\n leftContext.blocker = null;\n if (thisConstraint.isMatch(leftContext, context)) {\n leftContext.blocker = context;\n this.addToLeftBlockedMemory(context.blocking.push(leftContext));\n this.__propagate(\"assert\", this.__cloneContext(leftContext));\n leftContext = null;\n } else {\n //we arent blocked anymore\n leftContext.blocker = null;\n node = ctx;\n while ((node = node.next)) {\n if (thisConstraint.isMatch(leftContext, rc = node.data)) {\n leftContext.blocker = rc;\n this.addToLeftBlockedMemory(rc.blocking.push(leftContext));\n this.__propagate(\"assert\", this.__cloneContext(leftContext));\n leftContext = null;\n break;\n }\n }\n if (leftContext) {\n this.__addToLeftMemory(leftContext);\n }\n }\n }\n }\n\n if (leftTuplesLength) {\n //check currently left tuples in memory\n node = {next: leftTuples.head};\n while ((node = node.next)) {\n leftContext = node.data;\n if (thisConstraint.isMatch(leftContext, context)) {\n this.__propagate(\"assert\", this.__cloneContext(leftContext));\n this.removeFromLeftMemory(leftContext);\n this.addToLeftBlockedMemory(context.blocking.push(leftContext));\n leftContext.blocker = context;\n }\n }\n }\n\n\n }\n } else {\n throw new Error();\n }\n\n\n }\n }\n}).as(module);","var JoinNode = require(\"./joinNode\"),\n extd = require(\"../extended\"),\n constraint = require(\"../constraint\"),\n EqualityConstraint = constraint.EqualityConstraint,\n HashConstraint = constraint.HashConstraint,\n ReferenceConstraint = constraint.ReferenceConstraint,\n Context = require(\"../context\"),\n isDefined = extd.isDefined,\n isEmpty = extd.isEmpty,\n forEach = extd.forEach,\n isArray = extd.isArray;\n\nvar DEFAULT_MATCH = {\n isMatch: function () {\n return false;\n }\n};\n\nJoinNode.extend({\n instance: {\n\n nodeType: \"FromNode\",\n\n constructor: function (pattern, wm) {\n this._super(arguments);\n this.workingMemory = wm;\n this.fromMemory = {};\n this.pattern = pattern;\n this.type = pattern.get(\"constraints\")[0].assert;\n this.alias = pattern.get(\"alias\");\n this.from = pattern.from.assert;\n var eqConstraints = this.__equalityConstraints = [];\n var vars = [];\n forEach(this.constraints = this.pattern.get(\"constraints\").slice(1), function (c) {\n if (c instanceof EqualityConstraint || c instanceof ReferenceConstraint) {\n eqConstraints.push(c.assert);\n } else if (c instanceof HashConstraint) {\n vars = vars.concat(c.get(\"variables\"));\n }\n });\n this.__variables = vars;\n },\n\n __createMatches: function (context) {\n var fh = context.factHash, o = this.from(fh);\n if (isArray(o)) {\n for (var i = 0, l = o.length; i < l; i++) {\n this.__checkMatch(context, o[i], true);\n }\n } else if (isDefined(o)) {\n this.__checkMatch(context, o, true);\n }\n },\n\n __checkMatch: function (context, o, propogate) {\n var newContext;\n if ((newContext = this.__createMatch(context, o)).isMatch() && propogate) {\n this.__propagate(\"assert\", newContext.clone());\n }\n return newContext;\n },\n\n __createMatch: function (lc, o) {\n if (this.type(o)) {\n var createdFact = this.workingMemory.getFactHandle(o, true),\n createdContext,\n rc = new Context(createdFact, null, null)\n .set(this.alias, o),\n createdFactId = createdFact.id;\n var fh = rc.factHash, lcFh = lc.factHash;\n for (var key in lcFh) {\n fh[key] = lcFh[key];\n }\n var eqConstraints = this.__equalityConstraints, vars = this.__variables, i = -1, l = eqConstraints.length;\n while (++i < l) {\n if (!eqConstraints[i](fh, fh)) {\n createdContext = DEFAULT_MATCH;\n break;\n }\n }\n var fm = this.fromMemory[createdFactId];\n if (!fm) {\n fm = this.fromMemory[createdFactId] = {};\n }\n if (!createdContext) {\n var prop;\n i = -1;\n l = vars.length;\n while (++i < l) {\n prop = vars[i];\n fh[prop] = o[prop];\n }\n lc.fromMatches[createdFact.id] = createdContext = rc.clone(createdFact, null, lc.match.merge(rc.match));\n }\n fm[lc.hashCode] = [lc, createdContext];\n return createdContext;\n }\n return DEFAULT_MATCH;\n },\n\n retractRight: function () {\n throw new Error(\"Shouldnt have gotten here\");\n },\n\n removeFromFromMemory: function (context) {\n var factId = context.fact.id;\n var fm = this.fromMemory[factId];\n if (fm) {\n var entry;\n for (var i in fm) {\n entry = fm[i];\n if (entry[1] === context) {\n delete fm[i];\n if (isEmpty(fm)) {\n delete this.fromMemory[factId];\n }\n break;\n }\n }\n }\n\n },\n\n retractLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context);\n if (ctx) {\n ctx = ctx.data;\n var fromMatches = ctx.fromMatches;\n for (var i in fromMatches) {\n this.removeFromFromMemory(fromMatches[i]);\n this.__propagate(\"retract\", fromMatches[i].clone());\n }\n }\n },\n\n modifyLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context), newContext, i, l, factId, fact;\n if (ctx) {\n this.__addToLeftMemory(context);\n\n var leftContext = ctx.data,\n fromMatches = (context.fromMatches = {}),\n rightMatches = leftContext.fromMatches,\n o = this.from(context.factHash);\n\n if (isArray(o)) {\n for (i = 0, l = o.length; i < l; i++) {\n newContext = this.__checkMatch(context, o[i], false);\n if (newContext.isMatch()) {\n factId = newContext.fact.id;\n if (factId in rightMatches) {\n this.__propagate(\"modify\", newContext.clone());\n } else {\n this.__propagate(\"assert\", newContext.clone());\n }\n }\n }\n } else if (isDefined(o)) {\n newContext = this.__checkMatch(context, o, false);\n if (newContext.isMatch()) {\n factId = newContext.fact.id;\n if (factId in rightMatches) {\n this.__propagate(\"modify\", newContext.clone());\n } else {\n this.__propagate(\"assert\", newContext.clone());\n }\n }\n }\n for (i in rightMatches) {\n if (!(i in fromMatches)) {\n this.removeFromFromMemory(rightMatches[i]);\n this.__propagate(\"retract\", rightMatches[i].clone());\n }\n }\n } else {\n this.assertLeft(context);\n }\n fact = context.fact;\n factId = fact.id;\n var fm = this.fromMemory[factId];\n this.fromMemory[factId] = {};\n if (fm) {\n var lc, entry, cc, createdIsMatch, factObject = fact.object;\n for (i in fm) {\n entry = fm[i];\n lc = entry[0];\n cc = entry[1];\n createdIsMatch = cc.isMatch();\n if (lc.hashCode !== context.hashCode) {\n newContext = this.__createMatch(lc, factObject, false);\n if (createdIsMatch) {\n this.__propagate(\"retract\", cc.clone());\n }\n if (newContext.isMatch()) {\n this.__propagate(createdIsMatch ? \"modify\" : \"assert\", newContext.clone());\n }\n\n }\n }\n }\n },\n\n assertLeft: function (context) {\n this.__addToLeftMemory(context);\n context.fromMatches = {};\n this.__createMatches(context);\n },\n\n assertRight: function () {\n throw new Error(\"Shouldnt have gotten here\");\n }\n\n }\n}).as(module);","var JoinNode = require(\"./joinNode\"),\n extd = require(\"../extended\"),\n constraint = require(\"../constraint\"),\n EqualityConstraint = constraint.EqualityConstraint,\n HashConstraint = constraint.HashConstraint,\n ReferenceConstraint = constraint.ReferenceConstraint,\n Context = require(\"../context\"),\n isDefined = extd.isDefined,\n forEach = extd.forEach,\n isArray = extd.isArray;\n\nJoinNode.extend({\n instance: {\n\n nodeType: \"FromNotNode\",\n\n constructor: function (pattern, workingMemory) {\n this._super(arguments);\n this.workingMemory = workingMemory;\n this.pattern = pattern;\n this.type = pattern.get(\"constraints\")[0].assert;\n this.alias = pattern.get(\"alias\");\n this.from = pattern.from.assert;\n this.fromMemory = {};\n var eqConstraints = this.__equalityConstraints = [];\n var vars = [];\n forEach(this.constraints = this.pattern.get(\"constraints\").slice(1), function (c) {\n if (c instanceof EqualityConstraint || c instanceof ReferenceConstraint) {\n eqConstraints.push(c.assert);\n } else if (c instanceof HashConstraint) {\n vars = vars.concat(c.get(\"variables\"));\n }\n });\n this.__variables = vars;\n\n },\n\n retractLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context);\n if (ctx) {\n ctx = ctx.data;\n if (!ctx.blocked) {\n this.__propagate(\"retract\", ctx.clone());\n }\n }\n },\n\n __modify: function (context, leftContext) {\n var leftContextBlocked = leftContext.blocked;\n var fh = context.factHash, o = this.from(fh);\n if (isArray(o)) {\n for (var i = 0, l = o.length; i < l; i++) {\n if (this.__isMatch(context, o[i], true)) {\n context.blocked = true;\n break;\n }\n }\n } else if (isDefined(o)) {\n context.blocked = this.__isMatch(context, o, true);\n }\n var newContextBlocked = context.blocked;\n if (!newContextBlocked) {\n if (leftContextBlocked) {\n this.__propagate(\"assert\", context.clone());\n } else {\n this.__propagate(\"modify\", context.clone());\n }\n } else if (!leftContextBlocked) {\n this.__propagate(\"retract\", leftContext.clone());\n }\n\n },\n\n modifyLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context);\n if (ctx) {\n this.__addToLeftMemory(context);\n this.__modify(context, ctx.data);\n } else {\n throw new Error();\n }\n var fm = this.fromMemory[context.fact.id];\n this.fromMemory[context.fact.id] = {};\n if (fm) {\n for (var i in fm) {\n // update any contexts associated with this fact\n if (i !== context.hashCode) {\n var lc = fm[i];\n ctx = this.removeFromLeftMemory(lc);\n if (ctx) {\n lc = lc.clone();\n lc.blocked = false;\n this.__addToLeftMemory(lc);\n this.__modify(lc, ctx.data);\n }\n }\n }\n }\n },\n\n __findMatches: function (context) {\n var fh = context.factHash, o = this.from(fh), isMatch = false;\n if (isArray(o)) {\n for (var i = 0, l = o.length; i < l; i++) {\n if (this.__isMatch(context, o[i], true)) {\n context.blocked = true;\n return;\n }\n }\n this.__propagate(\"assert\", context.clone());\n } else if (isDefined(o) && !(context.blocked = this.__isMatch(context, o, true))) {\n this.__propagate(\"assert\", context.clone());\n }\n return isMatch;\n },\n\n __isMatch: function (oc, o, add) {\n var ret = false;\n if (this.type(o)) {\n var createdFact = this.workingMemory.getFactHandle(o);\n var context = new Context(createdFact, null)\n .mergeMatch(oc.match)\n .set(this.alias, o);\n if (add) {\n var fm = this.fromMemory[createdFact.id];\n if (!fm) {\n fm = this.fromMemory[createdFact.id] = {};\n }\n fm[oc.hashCode] = oc;\n }\n var fh = context.factHash;\n var eqConstraints = this.__equalityConstraints;\n for (var i = 0, l = eqConstraints.length; i < l; i++) {\n if (eqConstraints[i](fh, fh)) {\n ret = true;\n } else {\n ret = false;\n break;\n }\n }\n }\n return ret;\n },\n\n assertLeft: function (context) {\n this.__addToLeftMemory(context);\n this.__findMatches(context);\n },\n\n assertRight: function () {\n throw new Error(\"Shouldnt have gotten here\");\n },\n\n retractRight: function () {\n throw new Error(\"Shouldnt have gotten here\");\n }\n\n }\n}).as(module);","\"use strict\";\nvar extd = require(\"../extended\"),\n forEach = extd.forEach,\n some = extd.some,\n declare = extd.declare,\n pattern = require(\"../pattern.js\"),\n ObjectPattern = pattern.ObjectPattern,\n FromPattern = pattern.FromPattern,\n FromNotPattern = pattern.FromNotPattern,\n ExistsPattern = pattern.ExistsPattern,\n FromExistsPattern = pattern.FromExistsPattern,\n NotPattern = pattern.NotPattern,\n CompositePattern = pattern.CompositePattern,\n InitialFactPattern = pattern.InitialFactPattern,\n constraints = require(\"../constraint\"),\n HashConstraint = constraints.HashConstraint,\n ReferenceConstraint = constraints.ReferenceConstraint,\n AliasNode = require(\"./aliasNode\"),\n EqualityNode = require(\"./equalityNode\"),\n JoinNode = require(\"./joinNode\"),\n BetaNode = require(\"./betaNode\"),\n NotNode = require(\"./notNode\"),\n FromNode = require(\"./fromNode\"),\n FromNotNode = require(\"./fromNotNode\"),\n ExistsNode = require(\"./existsNode\"),\n ExistsFromNode = require(\"./existsFromNode\"),\n LeftAdapterNode = require(\"./leftAdapterNode\"),\n RightAdapterNode = require(\"./rightAdapterNode\"),\n TypeNode = require(\"./typeNode\"),\n TerminalNode = require(\"./terminalNode\"),\n PropertyNode = require(\"./propertyNode\");\n\nfunction hasRefernceConstraints(pattern) {\n return some(pattern.constraints || [], function (c) {\n return c instanceof ReferenceConstraint;\n });\n}\n\ndeclare({\n instance: {\n constructor: function (wm, agendaTree) {\n this.terminalNodes = [];\n this.joinNodes = [];\n this.nodes = [];\n this.constraints = [];\n this.typeNodes = [];\n this.__ruleCount = 0;\n this.bucket = {\n counter: 0,\n recency: 0\n };\n this.agendaTree = agendaTree;\n this.workingMemory = wm;\n },\n\n assertRule: function (rule) {\n var terminalNode = new TerminalNode(this.bucket, this.__ruleCount++, rule, this.agendaTree);\n this.__addToNetwork(rule, rule.pattern, terminalNode);\n this.__mergeJoinNodes();\n this.terminalNodes.push(terminalNode);\n },\n\n resetCounter: function () {\n this.bucket.counter = 0;\n },\n\n incrementCounter: function () {\n this.bucket.counter++;\n },\n\n assertFact: function (fact) {\n var typeNodes = this.typeNodes, i = typeNodes.length - 1;\n for (; i >= 0; i--) {\n typeNodes[i].assert(fact);\n }\n },\n\n retractFact: function (fact) {\n var typeNodes = this.typeNodes, i = typeNodes.length - 1;\n for (; i >= 0; i--) {\n typeNodes[i].retract(fact);\n }\n },\n\n modifyFact: function (fact) {\n var typeNodes = this.typeNodes, i = typeNodes.length - 1;\n for (; i >= 0; i--) {\n typeNodes[i].modify(fact);\n }\n },\n\n\n containsRule: function (name) {\n return some(this.terminalNodes, function (n) {\n return n.rule.name === name;\n });\n },\n\n dispose: function () {\n var typeNodes = this.typeNodes, i = typeNodes.length - 1;\n for (; i >= 0; i--) {\n typeNodes[i].dispose();\n }\n },\n\n __mergeJoinNodes: function () {\n var joinNodes = this.joinNodes;\n for (var i = 0; i < joinNodes.length; i++) {\n var j1 = joinNodes[i], j2 = joinNodes[i + 1];\n if (j1 && j2 && (j1.constraint && j2.constraint && j1.constraint.equal(j2.constraint))) {\n j1.merge(j2);\n joinNodes.splice(i + 1, 1);\n }\n }\n },\n\n __checkEqual: function (node) {\n var constraints = this.constraints, i = constraints.length - 1;\n for (; i >= 0; i--) {\n var n = constraints[i];\n if (node.equal(n)) {\n return n;\n }\n }\n constraints.push(node);\n return node;\n },\n\n __createTypeNode: function (rule, pattern) {\n var ret = new TypeNode(pattern.get(\"constraints\")[0]);\n var constraints = this.typeNodes, i = constraints.length - 1;\n for (; i >= 0; i--) {\n var n = constraints[i];\n if (ret.equal(n)) {\n return n;\n }\n }\n constraints.push(ret);\n return ret;\n },\n\n __createEqualityNode: function (rule, constraint) {\n return this.__checkEqual(new EqualityNode(constraint)).addRule(rule);\n },\n\n __createPropertyNode: function (rule, constraint) {\n return this.__checkEqual(new PropertyNode(constraint)).addRule(rule);\n },\n\n __createAliasNode: function (rule, pattern) {\n return this.__checkEqual(new AliasNode(pattern)).addRule(rule);\n },\n\n __createAdapterNode: function (rule, side) {\n return (side === \"left\" ? new LeftAdapterNode() : new RightAdapterNode()).addRule(rule);\n },\n\n __createJoinNode: function (rule, pattern, outNode, side) {\n var joinNode;\n if (pattern.rightPattern instanceof NotPattern) {\n joinNode = new NotNode();\n } else if (pattern.rightPattern instanceof FromExistsPattern) {\n joinNode = new ExistsFromNode(pattern.rightPattern, this.workingMemory);\n } else if (pattern.rightPattern instanceof ExistsPattern) {\n joinNode = new ExistsNode();\n } else if (pattern.rightPattern instanceof FromNotPattern) {\n joinNode = new FromNotNode(pattern.rightPattern, this.workingMemory);\n } else if (pattern.rightPattern instanceof FromPattern) {\n joinNode = new FromNode(pattern.rightPattern, this.workingMemory);\n } else if (pattern instanceof CompositePattern && !hasRefernceConstraints(pattern.leftPattern) && !hasRefernceConstraints(pattern.rightPattern)) {\n joinNode = new BetaNode();\n this.joinNodes.push(joinNode);\n } else {\n joinNode = new JoinNode();\n this.joinNodes.push(joinNode);\n }\n joinNode[\"__rule__\"] = rule;\n var parentNode = joinNode;\n if (outNode instanceof BetaNode) {\n var adapterNode = this.__createAdapterNode(rule, side);\n parentNode.addOutNode(adapterNode, pattern);\n parentNode = adapterNode;\n }\n parentNode.addOutNode(outNode, pattern);\n return joinNode.addRule(rule);\n },\n\n __addToNetwork: function (rule, pattern, outNode, side) {\n if (pattern instanceof ObjectPattern) {\n if (!(pattern instanceof InitialFactPattern) && (!side || side === \"left\")) {\n this.__createBetaNode(rule, new CompositePattern(new InitialFactPattern(), pattern), outNode, side);\n } else {\n this.__createAlphaNode(rule, pattern, outNode, side);\n }\n } else if (pattern instanceof CompositePattern) {\n this.__createBetaNode(rule, pattern, outNode, side);\n }\n },\n\n __createBetaNode: function (rule, pattern, outNode, side) {\n var joinNode = this.__createJoinNode(rule, pattern, outNode, side);\n this.__addToNetwork(rule, pattern.rightPattern, joinNode, \"right\");\n this.__addToNetwork(rule, pattern.leftPattern, joinNode, \"left\");\n outNode.addParentNode(joinNode);\n return joinNode;\n },\n\n\n __createAlphaNode: function (rule, pattern, outNode, side) {\n var typeNode, parentNode;\n if (!(pattern instanceof FromPattern)) {\n\n var constraints = pattern.get(\"constraints\");\n typeNode = this.__createTypeNode(rule, pattern);\n var aliasNode = this.__createAliasNode(rule, pattern);\n typeNode.addOutNode(aliasNode, pattern);\n aliasNode.addParentNode(typeNode);\n parentNode = aliasNode;\n var i = constraints.length - 1;\n for (; i > 0; i--) {\n var constraint = constraints[i], node;\n if (constraint instanceof HashConstraint) {\n node = this.__createPropertyNode(rule, constraint);\n } else if (constraint instanceof ReferenceConstraint) {\n outNode.constraint.addConstraint(constraint);\n continue;\n } else {\n node = this.__createEqualityNode(rule, constraint);\n }\n parentNode.addOutNode(node, pattern);\n node.addParentNode(parentNode);\n parentNode = node;\n }\n\n if (outNode instanceof BetaNode) {\n var adapterNode = this.__createAdapterNode(rule, side);\n adapterNode.addParentNode(parentNode);\n parentNode.addOutNode(adapterNode, pattern);\n parentNode = adapterNode;\n }\n outNode.addParentNode(parentNode);\n parentNode.addOutNode(outNode, pattern);\n return typeNode;\n }\n },\n\n print: function () {\n forEach(this.terminalNodes, function (t) {\n t.print(\" \");\n });\n }\n }\n}).as(exports, \"RootNode\");\n\n\n\n\n\n","var BetaNode = require(\"./betaNode\"),\n JoinReferenceNode = require(\"./joinReferenceNode\");\n\nBetaNode.extend({\n\n instance: {\n constructor: function () {\n this._super(arguments);\n this.constraint = new JoinReferenceNode(this.leftTuples, this.rightTuples);\n },\n\n nodeType: \"JoinNode\",\n\n propagateFromLeft: function (context, rm) {\n var mr;\n if ((mr = this.constraint.match(context, rm)).isMatch) {\n this.__propagate(\"assert\", this.__addToMemoryMatches(rm, context, context.clone(null, null, mr)));\n }\n return this;\n },\n\n propagateFromRight: function (context, lm) {\n var mr;\n if ((mr = this.constraint.match(lm, context)).isMatch) {\n this.__propagate(\"assert\", this.__addToMemoryMatches(context, lm, context.clone(null, null, mr)));\n }\n return this;\n },\n\n propagateAssertModifyFromLeft: function (context, rightMatches, rm) {\n var factId = rm.hashCode, mr;\n if (factId in rightMatches) {\n mr = this.constraint.match(context, rm);\n var mrIsMatch = mr.isMatch;\n if (!mrIsMatch) {\n this.__propagate(\"retract\", rightMatches[factId].clone());\n } else {\n this.__propagate(\"modify\", this.__addToMemoryMatches(rm, context, context.clone(null, null, mr)));\n }\n } else {\n this.propagateFromLeft(context, rm);\n }\n },\n\n propagateAssertModifyFromRight: function (context, leftMatches, lm) {\n var factId = lm.hashCode, mr;\n if (factId in leftMatches) {\n mr = this.constraint.match(lm, context);\n var mrIsMatch = mr.isMatch;\n if (!mrIsMatch) {\n this.__propagate(\"retract\", leftMatches[factId].clone());\n } else {\n this.__propagate(\"modify\", this.__addToMemoryMatches(context, lm, context.clone(null, null, mr)));\n }\n } else {\n this.propagateFromRight(context, lm);\n }\n }\n }\n\n}).as(module);","var Node = require(\"./node\"),\n constraints = require(\"../constraint\"),\n ReferenceEqualityConstraint = constraints.ReferenceEqualityConstraint;\n\nvar DEFUALT_CONSTRAINT = {\n isDefault: true,\n assert: function () {\n return true;\n },\n\n equal: function () {\n return false;\n }\n};\n\nvar inversions = {\n \"gt\": \"lte\",\n \"gte\": \"lte\",\n \"lt\": \"gte\",\n \"lte\": \"gte\",\n \"eq\": \"eq\",\n \"neq\": \"neq\"\n};\n\nfunction normalizeRightIndexConstraint(rightIndex, indexes, op) {\n if (rightIndex === indexes[1]) {\n op = inversions[op];\n }\n return op;\n}\n\nfunction normalizeLeftIndexConstraint(leftIndex, indexes, op) {\n if (leftIndex === indexes[1]) {\n op = inversions[op];\n }\n return op;\n}\n\nNode.extend({\n\n instance: {\n\n constraint: DEFUALT_CONSTRAINT,\n\n constructor: function (leftMemory, rightMemory) {\n this._super(arguments);\n this.constraint = DEFUALT_CONSTRAINT;\n this.constraintAssert = DEFUALT_CONSTRAINT.assert;\n this.rightIndexes = [];\n this.leftIndexes = [];\n this.constraintLength = 0;\n this.leftMemory = leftMemory;\n this.rightMemory = rightMemory;\n },\n\n addConstraint: function (constraint) {\n if (constraint instanceof ReferenceEqualityConstraint) {\n var identifiers = constraint.getIndexableProperties();\n var alias = constraint.get(\"alias\");\n if (identifiers.length === 2 && alias) {\n var leftIndex, rightIndex, i = -1, indexes = [];\n while (++i < 2) {\n var index = identifiers[i];\n if (index.match(new RegExp(\"^\" + alias + \"(\\\\.?)\")) === null) {\n indexes.push(index);\n leftIndex = index;\n } else {\n indexes.push(index);\n rightIndex = index;\n }\n }\n if (leftIndex && rightIndex) {\n var leftOp = normalizeLeftIndexConstraint(leftIndex, indexes, constraint.op),\n rightOp = normalizeRightIndexConstraint(rightIndex, indexes, constraint.op);\n this.rightMemory.addIndex(rightIndex, leftIndex, rightOp);\n this.leftMemory.addIndex(leftIndex, rightIndex, leftOp);\n }\n }\n }\n if (this.constraint.isDefault) {\n this.constraint = constraint;\n this.isDefault = false;\n } else {\n this.constraint = this.constraint.merge(constraint);\n }\n this.constraintAssert = this.constraint.assert;\n\n },\n\n equal: function (constraint) {\n return this.constraint.equal(constraint.constraint);\n },\n\n isMatch: function (lc, rc) {\n return this.constraintAssert(lc.factHash, rc.factHash);\n },\n\n match: function (lc, rc) {\n var ret = {isMatch: false};\n if (this.constraintAssert(lc.factHash, rc.factHash)) {\n ret = lc.match.merge(rc.match);\n }\n return ret;\n }\n\n }\n\n}).as(module);","var Node = require(\"./adapterNode\");\n\nNode.extend({\n instance: {\n propagateAssert: function (context) {\n this.__propagate(\"assertLeft\", context);\n },\n\n propagateRetract: function (context) {\n this.__propagate(\"retractLeft\", context);\n },\n\n propagateResolve: function (context) {\n this.__propagate(\"retractResolve\", context);\n },\n\n propagateModify: function (context) {\n this.__propagate(\"modifyLeft\", context);\n },\n\n retractResolve: function (match) {\n this.__propagate(\"retractResolve\", match);\n },\n\n dispose: function (context) {\n this.propagateDispose(context);\n },\n\n toString: function () {\n return \"LeftAdapterNode \" + this.__count;\n }\n }\n\n}).as(module);","exports.getMemory = (function () {\n\n var pPush = Array.prototype.push, NPL = 0, EMPTY_ARRAY = [], NOT_POSSIBLES_HASH = {}, POSSIBLES_HASH = {}, PL = 0;\n\n function mergePossibleTuples(ret, a, l) {\n var val, j = 0, i = -1;\n if (PL < l) {\n while (PL && ++i < l) {\n if (POSSIBLES_HASH[(val = a[i]).hashCode]) {\n ret[j++] = val;\n PL--;\n }\n }\n } else {\n pPush.apply(ret, a);\n }\n PL = 0;\n POSSIBLES_HASH = {};\n }\n\n\n function mergeNotPossibleTuples(ret, a, l) {\n var val, j = 0, i = -1;\n if (NPL < l) {\n while (++i < l) {\n if (!NPL) {\n ret[j++] = a[i];\n } else if (!NOT_POSSIBLES_HASH[(val = a[i]).hashCode]) {\n ret[j++] = val;\n } else {\n NPL--;\n }\n }\n }\n NPL = 0;\n NOT_POSSIBLES_HASH = {};\n }\n\n function mergeBothTuples(ret, a, l) {\n if (PL === l) {\n mergeNotPossibles(ret, a, l);\n } else if (NPL < l) {\n var val, j = 0, i = -1, hashCode;\n while (++i < l) {\n if (!NOT_POSSIBLES_HASH[(hashCode = (val = a[i]).hashCode)] && POSSIBLES_HASH[hashCode]) {\n ret[j++] = val;\n }\n }\n }\n NPL = 0;\n NOT_POSSIBLES_HASH = {};\n PL = 0;\n POSSIBLES_HASH = {};\n }\n\n function mergePossiblesAndNotPossibles(a, l) {\n var ret = EMPTY_ARRAY;\n if (l) {\n if (NPL || PL) {\n ret = [];\n if (!NPL) {\n mergePossibleTuples(ret, a, l);\n } else if (!PL) {\n mergeNotPossibleTuples(ret, a, l);\n } else {\n mergeBothTuples(ret, a, l);\n }\n } else {\n ret = a;\n }\n }\n return ret;\n }\n\n function getRangeTuples(op, currEntry, val) {\n var ret;\n if (op === \"gt\") {\n ret = currEntry.findGT(val);\n } else if (op === \"gte\") {\n ret = currEntry.findGTE(val);\n } else if (op === \"lt\") {\n ret = currEntry.findLT(val);\n } else if (op === \"lte\") {\n ret = currEntry.findLTE(val);\n }\n return ret;\n }\n\n function mergeNotPossibles(tuples, tl) {\n if (tl) {\n var j = -1, hashCode;\n while (++j < tl) {\n hashCode = tuples[j].hashCode;\n if (!NOT_POSSIBLES_HASH[hashCode]) {\n NOT_POSSIBLES_HASH[hashCode] = true;\n NPL++;\n }\n }\n }\n }\n\n function mergePossibles(tuples, tl) {\n if (tl) {\n var j = -1, hashCode;\n while (++j < tl) {\n hashCode = tuples[j].hashCode;\n if (!POSSIBLES_HASH[hashCode]) {\n POSSIBLES_HASH[hashCode] = true;\n PL++;\n }\n }\n }\n }\n\n return function _getMemory(entry, factHash, indexes) {\n var i = -1, l = indexes.length,\n ret = entry.tuples,\n rl = ret.length,\n intersected = false,\n tables = entry.tables,\n index, val, op, nextEntry, currEntry, tuples, tl;\n while (++i < l && rl) {\n index = indexes[i];\n val = index[3](factHash);\n op = index[4];\n currEntry = tables[index[0]];\n if (op === \"eq\" || op === \"seq\") {\n if ((nextEntry = currEntry.get(val))) {\n rl = (ret = (entry = nextEntry).tuples).length;\n tables = nextEntry.tables;\n } else {\n rl = (ret = EMPTY_ARRAY).length;\n }\n } else if (op === \"neq\" || op === \"sneq\") {\n if ((nextEntry = currEntry.get(val))) {\n tl = (tuples = nextEntry.tuples).length;\n mergeNotPossibles(tuples, tl);\n }\n } else if (!intersected) {\n rl = (ret = getRangeTuples(op, currEntry, val)).length;\n intersected = true;\n } else if ((tl = (tuples = getRangeTuples(op, currEntry, val)).length)) {\n mergePossibles(tuples, tl);\n } else {\n ret = tuples;\n rl = tl;\n }\n }\n return mergePossiblesAndNotPossibles(ret, rl);\n };\n}());","var Memory = require(\"./memory\");\n\nMemory.extend({\n\n instance: {\n\n getLeftMemory: function (tuple) {\n return this.getMemory(tuple);\n }\n }\n\n}).as(module);","var extd = require(\"../../extended\"),\n plucker = extd.plucker,\n declare = extd.declare,\n getMemory = require(\"./helpers\").getMemory,\n Table = require(\"./table\"),\n TupleEntry = require(\"./tupleEntry\");\n\n\nvar id = 0;\ndeclare({\n\n instance: {\n length: 0,\n\n constructor: function () {\n this.head = null;\n this.tail = null;\n this.indexes = [];\n this.tables = new TupleEntry(null, new Table(), false);\n },\n\n push: function (data) {\n var tail = this.tail, head = this.head, node = {data: data, tuples: [], hashCode: id++, prev: tail, next: null};\n if (tail) {\n this.tail.next = node;\n }\n this.tail = node;\n if (!head) {\n this.head = node;\n }\n this.length++;\n this.__index(node);\n this.tables.addNode(node);\n return node;\n },\n\n remove: function (node) {\n if (node.prev) {\n node.prev.next = node.next;\n } else {\n this.head = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n } else {\n this.tail = node.prev;\n }\n this.tables.removeNode(node);\n this.__removeFromIndex(node);\n this.length--;\n },\n\n forEach: function (cb) {\n var head = {next: this.head};\n while ((head = head.next)) {\n cb(head.data);\n }\n },\n\n toArray: function () {\n return this.tables.tuples.slice();\n },\n\n clear: function () {\n this.head = this.tail = null;\n this.length = 0;\n this.clearIndexes();\n },\n\n clearIndexes: function () {\n this.tables = {};\n this.indexes.length = 0;\n },\n\n __index: function (node) {\n var data = node.data,\n factHash = data.factHash,\n indexes = this.indexes,\n entry = this.tables,\n i = -1, l = indexes.length,\n tuples, index, val, path, tables, currEntry, prevLookup;\n while (++i < l) {\n index = indexes[i];\n val = index[2](factHash);\n path = index[0];\n tables = entry.tables;\n if (!(tuples = (currEntry = tables[path] || (tables[path] = new Table())).get(val))) {\n tuples = new TupleEntry(val, currEntry, true);\n currEntry.set(val, tuples);\n }\n if (currEntry !== prevLookup) {\n node.tuples.push(tuples.addNode(node));\n }\n prevLookup = currEntry;\n if (index[4] === \"eq\") {\n entry = tuples;\n }\n }\n },\n\n __removeFromIndex: function (node) {\n var tuples = node.tuples, i = tuples.length;\n while (--i >= 0) {\n tuples[i].removeNode(node);\n }\n node.tuples.length = 0;\n },\n\n getMemory: function (tuple) {\n var ret;\n if (!this.length) {\n ret = [];\n } else {\n ret = getMemory(this.tables, tuple.factHash, this.indexes);\n }\n return ret;\n },\n\n __createIndexTree: function () {\n var table = this.tables.tables = {};\n var indexes = this.indexes;\n table[indexes[0][0]] = new Table();\n },\n\n\n addIndex: function (primary, lookup, op) {\n this.indexes.push([primary, lookup, plucker(primary), plucker(lookup), op || \"eq\"]);\n this.indexes.sort(function (a, b) {\n var aOp = a[4], bOp = b[4];\n return aOp === bOp ? 0 : aOp > bOp ? 1 : aOp === bOp ? 0 : -1;\n });\n this.__createIndexTree();\n\n }\n\n }\n\n}).as(module);","var Memory = require(\"./memory\");\n\nMemory.extend({\n\n instance: {\n\n getRightMemory: function (tuple) {\n return this.getMemory(tuple);\n }\n }\n\n}).as(module);","var extd = require(\"../../extended\"),\n pPush = Array.prototype.push,\n HashTable = extd.HashTable,\n AVLTree = extd.AVLTree;\n\nfunction compare(a, b) {\n /*jshint eqeqeq: false*/\n a = a.key;\n b = b.key;\n var ret;\n if (a == b) {\n ret = 0;\n } else if (a > b) {\n ret = 1;\n } else if (a < b) {\n ret = -1;\n } else {\n ret = 1;\n }\n return ret;\n}\n\nfunction compareGT(v1, v2) {\n return compare(v1, v2) === 1;\n}\nfunction compareGTE(v1, v2) {\n return compare(v1, v2) !== -1;\n}\n\nfunction compareLT(v1, v2) {\n return compare(v1, v2) === -1;\n}\nfunction compareLTE(v1, v2) {\n return compare(v1, v2) !== 1;\n}\n\nvar STACK = [],\n VALUE = {key: null};\nfunction traverseInOrder(tree, key, comparator) {\n VALUE.key = key;\n var ret = [];\n var i = 0, current = tree.__root, v;\n while (true) {\n if (current) {\n current = (STACK[i++] = current).left;\n } else {\n if (i > 0) {\n v = (current = STACK[--i]).data;\n if (comparator(v, VALUE)) {\n pPush.apply(ret, v.value.tuples);\n current = current.right;\n } else {\n break;\n }\n } else {\n break;\n }\n }\n }\n STACK.length = 0;\n return ret;\n}\n\nfunction traverseReverseOrder(tree, key, comparator) {\n VALUE.key = key;\n var ret = [];\n var i = 0, current = tree.__root, v;\n while (true) {\n if (current) {\n current = (STACK[i++] = current).right;\n } else {\n if (i > 0) {\n v = (current = STACK[--i]).data;\n if (comparator(v, VALUE)) {\n pPush.apply(ret, v.value.tuples);\n current = current.left;\n } else {\n break;\n }\n } else {\n break;\n }\n }\n }\n STACK.length = 0;\n return ret;\n}\n\nAVLTree.extend({\n instance: {\n\n constructor: function () {\n this._super([\n {\n compare: compare\n }\n ]);\n this.gtCache = new HashTable();\n this.gteCache = new HashTable();\n this.ltCache = new HashTable();\n this.lteCache = new HashTable();\n this.hasGTCache = false;\n this.hasGTECache = false;\n this.hasLTCache = false;\n this.hasLTECache = false;\n },\n\n clearCache: function () {\n this.hasGTCache && this.gtCache.clear() && (this.hasGTCache = false);\n this.hasGTECache && this.gteCache.clear() && (this.hasGTECache = false);\n this.hasLTCache && this.ltCache.clear() && (this.hasLTCache = false);\n this.hasLTECache && this.lteCache.clear() && (this.hasLTECache = false);\n },\n\n contains: function (key) {\n return this._super([\n {key: key}\n ]);\n },\n\n \"set\": function (key, value) {\n this.insert({key: key, value: value});\n this.clearCache();\n },\n\n \"get\": function (key) {\n var ret = this.find({key: key});\n return ret && ret.value;\n },\n\n \"remove\": function (key) {\n this.clearCache();\n return this._super([\n {key: key}\n ]);\n },\n\n findGT: function (key) {\n var ret = this.gtCache.get(key);\n if (!ret) {\n this.hasGTCache = true;\n this.gtCache.put(key, (ret = traverseReverseOrder(this, key, compareGT)));\n }\n return ret;\n },\n\n findGTE: function (key) {\n var ret = this.gteCache.get(key);\n if (!ret) {\n this.hasGTECache = true;\n this.gteCache.put(key, (ret = traverseReverseOrder(this, key, compareGTE)));\n }\n return ret;\n },\n\n findLT: function (key) {\n var ret = this.ltCache.get(key);\n if (!ret) {\n this.hasLTCache = true;\n this.ltCache.put(key, (ret = traverseInOrder(this, key, compareLT)));\n }\n return ret;\n },\n\n findLTE: function (key) {\n var ret = this.lteCache.get(key);\n if (!ret) {\n this.hasLTECache = true;\n this.lteCache.put(key, (ret = traverseInOrder(this, key, compareLTE)));\n }\n return ret;\n }\n\n }\n}).as(module);","var extd = require(\"../../extended\"),\n indexOf = extd.indexOf;\n// HashSet = require(\"./hashSet\");\n\n\nvar TUPLE_ID = 0;\nextd.declare({\n\n instance: {\n tuples: null,\n tupleMap: null,\n hashCode: null,\n tables: null,\n entry: null,\n constructor: function (val, entry, canRemove) {\n this.val = val;\n this.canRemove = canRemove;\n this.tuples = [];\n this.tupleMap = {};\n this.hashCode = TUPLE_ID++;\n this.tables = {};\n this.length = 0;\n this.entry = entry;\n },\n\n addNode: function (node) {\n this.tuples[this.length++] = node;\n if (this.length > 1) {\n this.entry.clearCache();\n }\n return this;\n },\n\n removeNode: function (node) {\n var tuples = this.tuples, index = indexOf(tuples, node);\n if (index !== -1) {\n tuples.splice(index, 1);\n this.length--;\n this.entry.clearCache();\n }\n if (this.canRemove && !this.length) {\n this.entry.remove(this.val);\n }\n }\n }\n}).as(module);","var extd = require(\"../extended\"),\n forEach = extd.forEach,\n indexOf = extd.indexOf,\n intersection = extd.intersection,\n declare = extd.declare,\n HashTable = extd.HashTable,\n Context = require(\"../context\");\n\nvar count = 0;\ndeclare({\n instance: {\n constructor: function () {\n this.nodes = new HashTable();\n this.rules = [];\n this.parentNodes = [];\n this.__count = count++;\n this.__entrySet = [];\n },\n\n addRule: function (rule) {\n if (indexOf(this.rules, rule) === -1) {\n this.rules.push(rule);\n }\n return this;\n },\n\n merge: function (that) {\n that.nodes.forEach(function (entry) {\n var patterns = entry.value, node = entry.key;\n for (var i = 0, l = patterns.length; i < l; i++) {\n this.addOutNode(node, patterns[i]);\n }\n that.nodes.remove(node);\n }, this);\n var thatParentNodes = that.parentNodes;\n for (var i = 0, l = that.parentNodes.l; i < l; i++) {\n var parentNode = thatParentNodes[i];\n this.addParentNode(parentNode);\n parentNode.nodes.remove(that);\n }\n return this;\n },\n\n resolve: function (mr1, mr2) {\n return mr1.hashCode === mr2.hashCode;\n },\n\n print: function (tab) {\n console.log(tab + this.toString());\n forEach(this.parentNodes, function (n) {\n n.print(\" \" + tab);\n });\n },\n\n addOutNode: function (outNode, pattern) {\n if (!this.nodes.contains(outNode)) {\n this.nodes.put(outNode, []);\n }\n this.nodes.get(outNode).push(pattern);\n this.__entrySet = this.nodes.entrySet();\n },\n\n addParentNode: function (n) {\n if (indexOf(this.parentNodes, n) === -1) {\n this.parentNodes.push(n);\n }\n },\n\n shareable: function () {\n return false;\n },\n\n __propagate: function (method, context) {\n var entrySet = this.__entrySet, i = entrySet.length, entry, outNode, paths, continuingPaths;\n while (--i > -1) {\n entry = entrySet[i];\n outNode = entry.key;\n paths = entry.value;\n\n if ((continuingPaths = intersection(paths, context.paths)).length) {\n outNode[method](new Context(context.fact, continuingPaths, context.match));\n }\n\n }\n },\n\n dispose: function (assertable) {\n this.propagateDispose(assertable);\n },\n\n retract: function (assertable) {\n this.propagateRetract(assertable);\n },\n\n propagateDispose: function (assertable, outNodes) {\n outNodes = outNodes || this.nodes;\n var entrySet = this.__entrySet, i = entrySet.length - 1;\n for (; i >= 0; i--) {\n var entry = entrySet[i], outNode = entry.key;\n outNode.dispose(assertable);\n }\n },\n\n propagateAssert: function (assertable) {\n this.__propagate(\"assert\", assertable);\n },\n\n propagateRetract: function (assertable) {\n this.__propagate(\"retract\", assertable);\n },\n\n assert: function (assertable) {\n this.propagateAssert(assertable);\n },\n\n modify: function (assertable) {\n this.propagateModify(assertable);\n },\n\n propagateModify: function (assertable) {\n this.__propagate(\"modify\", assertable);\n }\n }\n\n}).as(module);\n","var JoinNode = require(\"./joinNode\"),\n LinkedList = require(\"../linkedList\"),\n Context = require(\"../context\"),\n InitialFact = require(\"../pattern\").InitialFact;\n\n\nJoinNode.extend({\n instance: {\n\n nodeType: \"NotNode\",\n\n constructor: function () {\n this._super(arguments);\n this.leftTupleMemory = {};\n //use this ensure a unique match for and propagated context.\n this.notMatch = new Context(new InitialFact()).match;\n },\n\n __cloneContext: function (context) {\n return context.clone(null, null, context.match.merge(this.notMatch));\n },\n\n\n retractRight: function (context) {\n var ctx = this.removeFromRightMemory(context),\n rightContext = ctx.data,\n blocking = rightContext.blocking;\n if (blocking.length) {\n //if we are blocking left contexts\n var leftContext, thisConstraint = this.constraint, blockingNode = {next: blocking.head}, rc;\n while ((blockingNode = blockingNode.next)) {\n leftContext = blockingNode.data;\n this.removeFromLeftBlockedMemory(leftContext);\n var rm = this.rightTuples.getRightMemory(leftContext), l = rm.length, i;\n i = -1;\n while (++i < l) {\n if (thisConstraint.isMatch(leftContext, rc = rm[i].data)) {\n this.blockedContext(leftContext, rc);\n leftContext = null;\n break;\n }\n }\n if (leftContext) {\n this.notBlockedContext(leftContext, true);\n }\n }\n blocking.clear();\n }\n\n },\n\n blockedContext: function (leftContext, rightContext, propagate) {\n leftContext.blocker = rightContext;\n this.removeFromLeftMemory(leftContext);\n this.addToLeftBlockedMemory(rightContext.blocking.push(leftContext));\n propagate && this.__propagate(\"retract\", this.__cloneContext(leftContext));\n },\n\n notBlockedContext: function (leftContext, propagate) {\n this.__addToLeftMemory(leftContext);\n propagate && this.__propagate(\"assert\", this.__cloneContext(leftContext));\n },\n\n propagateFromLeft: function (leftContext) {\n this.notBlockedContext(leftContext, true);\n },\n\n propagateFromRight: function (leftContext) {\n this.notBlockedContext(leftContext, true);\n },\n\n blockFromAssertRight: function (leftContext, rightContext) {\n this.blockedContext(leftContext, rightContext, true);\n },\n\n blockFromAssertLeft: function (leftContext, rightContext) {\n this.blockedContext(leftContext, rightContext, false);\n },\n\n\n retractLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context);\n if (ctx) {\n ctx = ctx.data;\n this.__propagate(\"retract\", this.__cloneContext(ctx));\n } else {\n if (!this.removeFromLeftBlockedMemory(context)) {\n throw new Error();\n }\n }\n },\n\n assertLeft: function (context) {\n var values = this.rightTuples.getRightMemory(context),\n thisConstraint = this.constraint, rc, i = -1, l = values.length;\n while (++i < l) {\n if (thisConstraint.isMatch(context, rc = values[i].data)) {\n this.blockFromAssertLeft(context, rc);\n context = null;\n i = l;\n }\n }\n if (context) {\n this.propagateFromLeft(context);\n }\n },\n\n assertRight: function (context) {\n this.__addToRightMemory(context);\n context.blocking = new LinkedList();\n var fl = this.leftTuples.getLeftMemory(context).slice(),\n i = -1, l = fl.length,\n leftContext, thisConstraint = this.constraint;\n while (++i < l) {\n leftContext = fl[i].data;\n if (thisConstraint.isMatch(leftContext, context)) {\n this.blockFromAssertRight(leftContext, context);\n }\n }\n },\n\n addToLeftBlockedMemory: function (context) {\n var data = context.data, hashCode = data.hashCode;\n var ctx = this.leftMemory[hashCode];\n this.leftTupleMemory[hashCode] = context;\n if (ctx) {\n this.leftTuples.remove(ctx);\n }\n return this;\n },\n\n removeFromLeftBlockedMemory: function (context) {\n var ret = this.leftTupleMemory[context.hashCode] || null;\n if (ret) {\n delete this.leftTupleMemory[context.hashCode];\n ret.data.blocker.blocking.remove(ret);\n }\n return ret;\n },\n\n modifyLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context),\n leftContext,\n thisConstraint = this.constraint,\n rightTuples = this.rightTuples.getRightMemory(context),\n l = rightTuples.length,\n isBlocked = false,\n i, rc, blocker;\n if (!ctx) {\n //blocked before\n ctx = this.removeFromLeftBlockedMemory(context);\n isBlocked = true;\n }\n if (ctx) {\n leftContext = ctx.data;\n\n if (leftContext && leftContext.blocker) {\n //we were blocked before so only check nodes previous to our blocker\n blocker = this.rightMemory[leftContext.blocker.hashCode];\n leftContext.blocker = null;\n }\n if (blocker) {\n if (thisConstraint.isMatch(context, rc = blocker.data)) {\n //we cant be proagated so retract previous\n if (!isBlocked) {\n //we were asserted before so retract\n this.__propagate(\"retract\", this.__cloneContext(leftContext));\n }\n context.blocker = rc;\n this.addToLeftBlockedMemory(rc.blocking.push(context));\n context = null;\n }\n }\n if (context && l) {\n i = -1;\n //we were propogated before\n while (++i < l) {\n if (thisConstraint.isMatch(context, rc = rightTuples[i].data)) {\n //we cant be proagated so retract previous\n if (!isBlocked) {\n //we were asserted before so retract\n this.__propagate(\"retract\", this.__cloneContext(leftContext));\n }\n this.addToLeftBlockedMemory(rc.blocking.push(context));\n context.blocker = rc;\n context = null;\n break;\n }\n }\n }\n if (context) {\n //we can still be propogated\n this.__addToLeftMemory(context);\n if (!isBlocked) {\n //we weren't blocked before so modify\n this.__propagate(\"modify\", this.__cloneContext(context));\n } else {\n //we were blocked before but aren't now\n this.__propagate(\"assert\", this.__cloneContext(context));\n }\n\n }\n } else {\n throw new Error();\n }\n\n },\n\n modifyRight: function (context) {\n var ctx = this.removeFromRightMemory(context);\n if (ctx) {\n var rightContext = ctx.data,\n leftTuples = this.leftTuples.getLeftMemory(context).slice(),\n leftTuplesLength = leftTuples.length,\n leftContext,\n thisConstraint = this.constraint,\n i, node,\n blocking = rightContext.blocking;\n this.__addToRightMemory(context);\n context.blocking = new LinkedList();\n\n var rc;\n //check old blocked contexts\n //check if the same contexts blocked before are still blocked\n var blockingNode = {next: blocking.head};\n while ((blockingNode = blockingNode.next)) {\n leftContext = blockingNode.data;\n leftContext.blocker = null;\n if (thisConstraint.isMatch(leftContext, context)) {\n leftContext.blocker = context;\n this.addToLeftBlockedMemory(context.blocking.push(leftContext));\n leftContext = null;\n } else {\n //we arent blocked anymore\n leftContext.blocker = null;\n node = ctx;\n while ((node = node.next)) {\n if (thisConstraint.isMatch(leftContext, rc = node.data)) {\n leftContext.blocker = rc;\n this.addToLeftBlockedMemory(rc.blocking.push(leftContext));\n leftContext = null;\n break;\n }\n }\n if (leftContext) {\n this.__addToLeftMemory(leftContext);\n this.__propagate(\"assert\", this.__cloneContext(leftContext));\n }\n }\n }\n if (leftTuplesLength) {\n //check currently left tuples in memory\n i = -1;\n while (++i < leftTuplesLength) {\n leftContext = leftTuples[i].data;\n if (thisConstraint.isMatch(leftContext, context)) {\n this.__propagate(\"retract\", this.__cloneContext(leftContext));\n this.removeFromLeftMemory(leftContext);\n this.addToLeftBlockedMemory(context.blocking.push(leftContext));\n leftContext.blocker = context;\n }\n }\n }\n } else {\n throw new Error();\n }\n\n\n }\n }\n}).as(module);","var AlphaNode = require(\"./alphaNode\"),\n Context = require(\"../context\"),\n extd = require(\"../extended\");\n\nAlphaNode.extend({\n instance: {\n\n constructor: function () {\n this._super(arguments);\n this.alias = this.constraint.get(\"alias\");\n this.varLength = (this.variables = extd(this.constraint.get(\"variables\")).toArray().value()).length;\n },\n\n assert: function (context) {\n var c = new Context(context.fact, context.paths);\n var variables = this.variables, o = context.fact.object, item;\n c.set(this.alias, o);\n for (var i = 0, l = this.varLength; i < l; i++) {\n item = variables[i];\n c.set(item[1], o[item[0]]);\n }\n\n this.__propagate(\"assert\", c);\n\n },\n\n retract: function (context) {\n this.__propagate(\"retract\", new Context(context.fact, context.paths));\n },\n\n modify: function (context) {\n var c = new Context(context.fact, context.paths);\n var variables = this.variables, o = context.fact.object, item;\n c.set(this.alias, o);\n for (var i = 0, l = this.varLength; i < l; i++) {\n item = variables[i];\n c.set(item[1], o[item[0]]);\n }\n this.__propagate(\"modify\", c);\n },\n\n\n toString: function () {\n return \"PropertyNode\" + this.__count;\n }\n }\n}).as(module);\n\n\n","var Node = require(\"./adapterNode\");\n\nNode.extend({\n instance: {\n\n retractResolve: function (match) {\n this.__propagate(\"retractResolve\", match);\n },\n\n dispose: function (context) {\n this.propagateDispose(context);\n },\n\n propagateAssert: function (context) {\n this.__propagate(\"assertRight\", context);\n },\n\n propagateRetract: function (context) {\n this.__propagate(\"retractRight\", context);\n },\n\n propagateResolve: function (context) {\n this.__propagate(\"retractResolve\", context);\n },\n\n propagateModify: function (context) {\n this.__propagate(\"modifyRight\", context);\n },\n\n toString: function () {\n return \"RightAdapterNode \" + this.__count;\n }\n }\n}).as(module);","var Node = require(\"./node\"),\n extd = require(\"../extended\"),\n bind = extd.bind;\n\nNode.extend({\n instance: {\n constructor: function (bucket, index, rule, agenda) {\n this._super([]);\n this.resolve = bind(this, this.resolve);\n this.rule = rule;\n this.index = index;\n this.name = this.rule.name;\n this.agenda = agenda;\n this.bucket = bucket;\n agenda.register(this);\n },\n\n __assertModify: function (context) {\n var match = context.match;\n if (match.isMatch) {\n var rule = this.rule, bucket = this.bucket;\n this.agenda.insert(this, {\n rule: rule,\n hashCode: context.hashCode,\n index: this.index,\n name: rule.name,\n recency: bucket.recency++,\n match: match,\n counter: bucket.counter\n });\n }\n },\n\n assert: function (context) {\n this.__assertModify(context);\n },\n\n modify: function (context) {\n this.agenda.retract(this, context);\n this.__assertModify(context);\n },\n\n retract: function (context) {\n this.agenda.retract(this, context);\n },\n\n retractRight: function (context) {\n this.agenda.retract(this, context);\n },\n\n retractLeft: function (context) {\n this.agenda.retract(this, context);\n },\n\n assertLeft: function (context) {\n this.__assertModify(context);\n },\n\n assertRight: function (context) {\n this.__assertModify(context);\n },\n\n toString: function () {\n return \"TerminalNode \" + this.rule.name;\n }\n }\n}).as(module);","var AlphaNode = require(\"./alphaNode\"),\n Context = require(\"../context\");\n\nAlphaNode.extend({\n instance: {\n\n assert: function (fact) {\n if (this.constraintAssert(fact.object)) {\n this.__propagate(\"assert\", fact);\n }\n },\n\n modify: function (fact) {\n if (this.constraintAssert(fact.object)) {\n this.__propagate(\"modify\", fact);\n }\n },\n\n retract: function (fact) {\n if (this.constraintAssert(fact.object)) {\n this.__propagate(\"retract\", fact);\n }\n },\n\n toString: function () {\n return \"TypeNode\" + this.__count;\n },\n\n dispose: function () {\n var es = this.__entrySet, i = es.length - 1;\n for (; i >= 0; i--) {\n var e = es[i], outNode = e.key, paths = e.value;\n outNode.dispose({paths: paths});\n }\n },\n\n __propagate: function (method, fact) {\n var es = this.__entrySet, i = -1, l = es.length;\n while (++i < l) {\n var e = es[i], outNode = e.key, paths = e.value;\n outNode[method](new Context(fact, paths));\n }\n }\n }\n}).as(module);\n\n","/* parser generated by jison 0.4.17 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,29],$V1=[1,30],$V2=[1,26],$V3=[1,24],$V4=[1,16],$V5=[1,18],$V6=[1,19],$V7=[1,20],$V8=[1,21],$V9=[1,22],$Va=[5,38,49],$Vb=[1,33],$Vc=[5,36,38,49],$Vd=[5,8,11,12,13,15,17,19,20,21,22,24,25,26,27,28,29,36,38,49],$Ve=[2,2],$Vf=[5,24,25,26,27,28,29,36,38,49],$Vg=[1,42],$Vh=[1,43],$Vi=[1,44],$Vj=[1,45],$Vk=[5,8,11,12,13,15,17,19,20,21,22,24,25,26,27,28,29,31,33,36,38,40,46,49],$Vl=[1,46],$Vm=[1,47],$Vn=[1,48],$Vo=[5,19,20,21,22,24,25,26,27,28,29,36,38,49],$Vp=[1,50],$Vq=[5,8,11,12,13,15,17,19,20,21,22,24,25,26,27,28,29,31,33,36,38,40,43,44,46,48,49],$Vr=[5,17,19,20,21,22,24,25,26,27,28,29,36,38,49],$Vs=[1,55],$Vt=[1,54],$Vu=[5,8,15,17,19,20,21,22,24,25,26,27,28,29,36,38,49],$Vv=[1,56],$Vw=[1,57],$Vx=[1,58],$Vy=[1,87],$Vz=[40,46,49];\nvar parser = {trace: function trace() { },\nyy: {},\nsymbols_: {\"error\":2,\"expressions\":3,\"EXPRESSION\":4,\"EOF\":5,\"UNARY_EXPRESSION\":6,\"LITERAL_EXPRESSION\":7,\"-\":8,\"!\":9,\"MULTIPLICATIVE_EXPRESSION\":10,\"*\":11,\"/\":12,\"%\":13,\"ADDITIVE_EXPRESSION\":14,\"+\":15,\"EXPONENT_EXPRESSION\":16,\"^\":17,\"RELATIONAL_EXPRESSION\":18,\"<\":19,\">\":20,\"<=\":21,\">=\":22,\"EQUALITY_EXPRESSION\":23,\"==\":24,\"===\":25,\"!=\":26,\"!==\":27,\"=~\":28,\"!=~\":29,\"IN_EXPRESSION\":30,\"in\":31,\"ARRAY_EXPRESSION\":32,\"notIn\":33,\"OBJECT_EXPRESSION\":34,\"AND_EXPRESSION\":35,\"&&\":36,\"OR_EXPRESSION\":37,\"||\":38,\"ARGUMENT_LIST\":39,\",\":40,\"IDENTIFIER_EXPRESSION\":41,\"IDENTIFIER\":42,\".\":43,\"[\":44,\"STRING_EXPRESSION\":45,\"]\":46,\"NUMBER_EXPRESSION\":47,\"(\":48,\")\":49,\"STRING\":50,\"NUMBER\":51,\"REGEXP_EXPRESSION\":52,\"REGEXP\":53,\"BOOLEAN_EXPRESSION\":54,\"BOOLEAN\":55,\"NULL_EXPRESSION\":56,\"NULL\":57,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",5:\"EOF\",8:\"-\",9:\"!\",11:\"*\",12:\"/\",13:\"%\",15:\"+\",17:\"^\",19:\"<\",20:\">\",21:\"<=\",22:\">=\",24:\"==\",25:\"===\",26:\"!=\",27:\"!==\",28:\"=~\",29:\"!=~\",31:\"in\",33:\"notIn\",36:\"&&\",38:\"||\",40:\",\",42:\"IDENTIFIER\",43:\".\",44:\"[\",46:\"]\",48:\"(\",49:\")\",50:\"STRING\",51:\"NUMBER\",53:\"REGEXP\",55:\"BOOLEAN\",57:\"NULL\"},\nproductions_: [0,[3,2],[6,1],[6,2],[6,2],[10,1],[10,3],[10,3],[10,3],[14,1],[14,3],[14,3],[16,1],[16,3],[18,1],[18,3],[18,3],[18,3],[18,3],[23,1],[23,3],[23,3],[23,3],[23,3],[23,3],[23,3],[30,1],[30,3],[30,3],[30,3],[30,3],[35,1],[35,3],[37,1],[37,3],[39,1],[39,3],[41,1],[34,1],[34,3],[34,4],[34,4],[34,4],[34,3],[34,4],[45,1],[47,1],[52,1],[54,1],[56,1],[32,2],[32,3],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,3],[4,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\nreturn $$[$0-1];\nbreak;\ncase 3:\nthis.$ = [$$[$0], null, 'unary'];\nbreak;\ncase 4:\nthis.$ = [$$[$0], null, 'logicalNot'];\nbreak;\ncase 6:\nthis.$ = [$$[$0-2], $$[$0], 'mult'];\nbreak;\ncase 7:\nthis.$ = [$$[$0-2], $$[$0], 'div'];\nbreak;\ncase 8:\nthis.$ = [$$[$0-2], $$[$0], 'mod'];\nbreak;\ncase 10:\nthis.$ = [$$[$0-2], $$[$0], 'plus'];\nbreak;\ncase 11:\nthis.$ = [$$[$0-2], $$[$0], 'minus'];\nbreak;\ncase 13:\nthis.$ = [$$[$0-2], $$[$0], 'pow'];\nbreak;\ncase 15:\nthis.$ = [$$[$0-2], $$[$0], 'lt'];\nbreak;\ncase 16:\nthis.$ = [$$[$0-2], $$[$0], 'gt'];\nbreak;\ncase 17:\nthis.$ = [$$[$0-2], $$[$0], 'lte'];\nbreak;\ncase 18:\nthis.$ = [$$[$0-2], $$[$0], 'gte'];\nbreak;\ncase 20:\nthis.$ = [$$[$0-2], $$[$0], 'eq'];\nbreak;\ncase 21:\nthis.$ = [$$[$0-2], $$[$0], 'seq'];\nbreak;\ncase 22:\nthis.$ = [$$[$0-2], $$[$0], 'neq'];\nbreak;\ncase 23:\nthis.$ = [$$[$0-2], $$[$0], 'sneq'];\nbreak;\ncase 24:\nthis.$ = [$$[$0-2], $$[$0], 'like'];\nbreak;\ncase 25:\nthis.$ = [$$[$0-2], $$[$0], 'notLike'];\nbreak;\ncase 27: case 29:\nthis.$ = [$$[$0-2], $$[$0], 'in'];\nbreak;\ncase 28: case 30:\nthis.$ = [$$[$0-2], $$[$0], 'notIn'];\nbreak;\ncase 32:\nthis.$ = [$$[$0-2], $$[$0], 'and'];\nbreak;\ncase 34:\nthis.$ = [$$[$0-2], $$[$0], 'or'];\nbreak;\ncase 36:\nthis.$ = [$$[$0-2], $$[$0], 'arguments']\nbreak;\ncase 37:\nthis.$ = [String(yytext), null, 'identifier'];\nbreak;\ncase 39:\nthis.$ = [$$[$0-2],$$[$0], 'prop'];\nbreak;\ncase 40: case 41: case 42:\nthis.$ = [$$[$0-3],$$[$0-1], 'propLookup'];\nbreak;\ncase 43:\nthis.$ = [$$[$0-2], [null, null, 'arguments'], 'function']\nbreak;\ncase 44:\nthis.$ = [$$[$0-3], $$[$0-1], 'function']\nbreak;\ncase 45:\nthis.$ = [String(yytext.replace(/^['|\"]|['|\"]$/g, '')), null, 'string'];\nbreak;\ncase 46:\nthis.$ = [Number(yytext), null, 'number'];\nbreak;\ncase 47:\nthis.$ = [yytext, null, 'regexp'];\nbreak;\ncase 48:\nthis.$ = [yytext.replace(/^\\s+/, '') == 'true', null, 'boolean'];\nbreak;\ncase 49:\nthis.$ = [null, null, 'null'];\nbreak;\ncase 50:\nthis.$ = [null, null, 'array'];\nbreak;\ncase 51:\nthis.$ = [$$[$0-1], null, 'array'];\nbreak;\ncase 59:\nthis.$ = [$$[$0-1], null, 'composite']\nbreak;\n}\n},\ntable: [{3:1,4:2,6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:5,32:15,34:14,35:4,37:3,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{1:[3]},{5:[1,31]},o([5,49],[2,60],{38:[1,32]}),o($Va,[2,33],{36:$Vb}),o($Vc,[2,31]),o($Vc,[2,26],{24:[1,34],25:[1,35],26:[1,36],27:[1,37],28:[1,38],29:[1,39]}),o($Vd,$Ve,{31:[1,40],33:[1,41]}),o($Vf,[2,19],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vk,[2,52]),o($Vk,[2,53]),o($Vk,[2,54]),o($Vk,[2,55]),o($Vk,[2,56]),o($Vk,[2,57],{43:$Vl,44:$Vm,48:$Vn}),o($Vk,[2,58]),{4:49,6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:5,32:15,34:14,35:4,37:3,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vo,[2,14],{17:$Vp}),o($Vk,[2,45]),o($Vk,[2,46]),o($Vk,[2,47]),o($Vk,[2,48]),o($Vk,[2,49]),o($Vq,[2,38]),{7:53,32:15,34:14,39:52,41:23,42:$V2,44:$V3,45:9,46:[1,51],47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vr,[2,12],{8:$Vs,15:$Vt}),o($Vq,[2,37]),o($Vu,[2,9],{11:$Vv,12:$Vw,13:$Vx}),o($Vd,[2,5]),{6:59,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:61,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{1:[2,1]},{6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:5,32:15,34:14,35:62,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:63,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:64,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:65,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:66,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:67,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:68,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:69,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{32:70,34:71,41:23,42:$V2,44:$V3},{32:72,34:73,41:23,42:$V2,44:$V3},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:74,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:75,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:76,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:77,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{41:78,42:$V2},{34:81,41:23,42:$V2,45:79,47:80,50:$V5,51:$V6},{7:53,32:15,34:14,39:83,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,49:[1,82],50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{49:[1,84]},{6:28,7:60,8:$V0,9:$V1,10:27,14:85,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vk,[2,50]),{40:$Vy,46:[1,86]},o($Vz,[2,35]),{6:28,7:60,8:$V0,9:$V1,10:88,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:89,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:90,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:91,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:92,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vd,[2,3]),o($Vd,$Ve),o($Vd,[2,4]),o($Va,[2,34],{36:$Vb}),o($Vc,[2,32]),o($Vf,[2,20],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,21],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,22],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,23],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,24],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,25],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vc,[2,27]),o($Vc,[2,29],{43:$Vl,44:$Vm,48:$Vn}),o($Vc,[2,28]),o($Vc,[2,30],{43:$Vl,44:$Vm,48:$Vn}),o($Vo,[2,15],{17:$Vp}),o($Vo,[2,16],{17:$Vp}),o($Vo,[2,17],{17:$Vp}),o($Vo,[2,18],{17:$Vp}),o($Vq,[2,39]),{46:[1,93]},{46:[1,94]},{43:$Vl,44:$Vm,46:[1,95],48:$Vn},o($Vq,[2,43]),{40:$Vy,49:[1,96]},o($Vk,[2,59]),o($Vr,[2,13],{8:$Vs,15:$Vt}),o($Vk,[2,51]),{7:97,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vu,[2,10],{11:$Vv,12:$Vw,13:$Vx}),o($Vu,[2,11],{11:$Vv,12:$Vw,13:$Vx}),o($Vd,[2,6]),o($Vd,[2,7]),o($Vd,[2,8]),o($Vq,[2,40]),o($Vq,[2,41]),o($Vq,[2,42]),o($Vq,[2,44]),o($Vz,[2,36])],\ndefaultActions: {31:[2,1]},\nparseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n function _parseError (msg, hash) {\n this.message = msg;\n this.hash = hash;\n }\n _parseError.prototype = Error;\n\n throw new _parseError(str, hash);\n }\n},\nparse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n _token_stack:\n var lex = function () {\n var token;\n token = lexer.lex() || EOF;\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n return token;\n };\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n}};\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0,0];\n }\n this.offset = 0;\n return this;\n },\n\n// consumes and returns one char from the input\ninput:function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n\n }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function (match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n\n// return next match that has a token\nlex:function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin(condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n\n// alias for begin(condition)\npushState:function pushState(condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:return 31;\nbreak;\ncase 1:return 33;\nbreak;\ncase 2:return 'from';\nbreak;\ncase 3:return 24;\nbreak;\ncase 4:return 25;\nbreak;\ncase 5:return 26;\nbreak;\ncase 6:return 27;\nbreak;\ncase 7:return 21;\nbreak;\ncase 8:return 19;\nbreak;\ncase 9:return 22;\nbreak;\ncase 10:return 20;\nbreak;\ncase 11:return 28;\nbreak;\ncase 12:return 29;\nbreak;\ncase 13:return 36;\nbreak;\ncase 14:return 38;\nbreak;\ncase 15:return 57;\nbreak;\ncase 16:return 55;\nbreak;\ncase 17:/* skip whitespace */\nbreak;\ncase 18:return 51;\nbreak;\ncase 19:return 50;\nbreak;\ncase 20:return 50;\nbreak;\ncase 21:return 42;\nbreak;\ncase 22:return 53;\nbreak;\ncase 23:return 43;\nbreak;\ncase 24:return 11;\nbreak;\ncase 25:return 12;\nbreak;\ncase 26:return 13;\nbreak;\ncase 27:return 40;\nbreak;\ncase 28:return 8;\nbreak;\ncase 29:return 28;\nbreak;\ncase 30:return 29;\nbreak;\ncase 31:return 25;\nbreak;\ncase 32:return 24;\nbreak;\ncase 33:return 27;\nbreak;\ncase 34:return 26;\nbreak;\ncase 35:return 21;\nbreak;\ncase 36:return 22;\nbreak;\ncase 37:return 20;\nbreak;\ncase 38:return 19;\nbreak;\ncase 39:return 36;\nbreak;\ncase 40:return 38;\nbreak;\ncase 41:return 15;\nbreak;\ncase 42:return 17;\nbreak;\ncase 43:return 48;\nbreak;\ncase 44:return 46;\nbreak;\ncase 45:return 44;\nbreak;\ncase 46:return 49;\nbreak;\ncase 47:return 9;\nbreak;\ncase 48:return 5;\nbreak;\n}\n},\nrules: [/^(?:\\s+in\\b)/,/^(?:\\s+notIn\\b)/,/^(?:\\s+from\\b)/,/^(?:\\s+(eq|EQ)\\b)/,/^(?:\\s+(seq|SEQ)\\b)/,/^(?:\\s+(neq|NEQ)\\b)/,/^(?:\\s+(sneq|SNEQ)\\b)/,/^(?:\\s+(lte|LTE)\\b)/,/^(?:\\s+(lt|LT)\\b)/,/^(?:\\s+(gte|GTE)\\b)/,/^(?:\\s+(gt|GT)\\b)/,/^(?:\\s+(like|LIKE)\\b)/,/^(?:\\s+(notLike|NOT_LIKE)\\b)/,/^(?:\\s+(and|AND)\\b)/,/^(?:\\s+(or|OR)\\b)/,/^(?:\\s*(null)\\b)/,/^(?:\\s*(true|false)\\b)/,/^(?:\\s+)/,/^(?:-?[0-9]+(?:\\.[0-9]+)?\\b)/,/^(?:'[^']*')/,/^(?:\"[^\"]*\")/,/^(?:([a-zA-Z_$][0-9a-zA-Z_$]*))/,/^(?:^\\/((?![\\s=])[^[\\/\\n\\\\]*(?:(?:\\\\[\\s\\S]|\\[[^\\]\\n\\\\]*(?:\\\\[\\s\\S][^\\]\\n\\\\]*)*])[^[\\/\\n\\\\]*)*\\/[imgy]{0,4})(?!\\w))/,/^(?:\\.)/,/^(?:\\*)/,/^(?:\\/)/,/^(?:\\%)/,/^(?:,)/,/^(?:-)/,/^(?:=~)/,/^(?:!=~)/,/^(?:===)/,/^(?:==)/,/^(?:!==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:&&)/,/^(?:\\|\\|)/,/^(?:\\+)/,/^(?:\\^)/,/^(?:\\()/,/^(?:\\])/,/^(?:\\[)/,/^(?:\\))/,/^(?:!)/,/^(?:$)/],\nconditions: {\"INITIAL\":{\"rules\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain(args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","(function () {\n \"use strict\";\n var constraintParser = require(\"./constraint/parser\"),\n noolParser = require(\"./nools/nool.parser\");\n\n exports.parseConstraint = function (expression) {\n try {\n return constraintParser.parse(expression);\n } catch (e) {\n throw new Error(\"Invalid expression '\" + expression + \"'\");\n }\n };\n\n exports.parseRuleSet = function (source, file) {\n return noolParser.parse(source, file);\n };\n})();","\"use strict\";\n\nvar tokens = require(\"./tokens.js\"),\n extd = require(\"../../extended\"),\n keys = extd.hash.keys,\n utils = require(\"./util.js\");\n\nvar parse = function (src, keywords, context) {\n var orig = src;\n src = src.replace(/\\/\\/(.*)/g, \"\").replace(/\\r\\n|\\r|\\n/g, \" \");\n\n var blockTypes = new RegExp(\"^(\" + keys(keywords).join(\"|\") + \")\"), index;\n while (src && (index = utils.findNextTokenIndex(src)) !== -1) {\n src = src.substr(index);\n var blockType = src.match(blockTypes);\n if (blockType !== null) {\n blockType = blockType[1];\n if (blockType in keywords) {\n try {\n src = keywords[blockType](src, context, parse).replace(/^\\s*|\\s*$/g, \"\");\n } catch (e) {\n throw new Error(\"Invalid \" + blockType + \" definition \\n\" + e.message + \"; \\nstarting at : \" + orig);\n }\n } else {\n throw new Error(\"Unknown token\" + blockType);\n }\n } else {\n throw new Error(\"Error parsing \" + src);\n }\n }\n};\n\nexports.parse = function (src, file) {\n var context = {define: [], rules: [], scope: [], loaded: [], file: file};\n parse(src, tokens, context);\n return context;\n};\n\n","\"use strict\";\n\nvar utils = require(\"./util.js\"),\n fs = require(\"fs\"),\n extd = require(\"../../extended\"),\n filter = extd.filter,\n indexOf = extd.indexOf,\n predicates = [\"not\", \"or\", \"exists\"],\n predicateRegExp = new RegExp(\"^(\" + predicates.join(\"|\") + \") *\\\\((.*)\\\\)$\", \"m\"),\n predicateBeginExp = new RegExp(\" *(\" + predicates.join(\"|\") + \") *\\\\(\", \"g\");\n\nvar isWhiteSpace = function (str) {\n return str.replace(/[\\s|\\n|\\r|\\t]/g, \"\").length === 0;\n};\n\nvar joinFunc = function (m, str) {\n return \"; \" + str;\n};\n\nvar splitRuleLineByPredicateExpressions = function (ruleLine) {\n var str = ruleLine.replace(/,\\s*(\\$?\\w+\\s*:)/g, joinFunc);\n var parts = filter(str.split(predicateBeginExp), function (str) {\n return str !== \"\";\n }),\n l = parts.length, ret = [];\n\n if (l) {\n for (var i = 0; i < l; i++) {\n if (indexOf(predicates, parts[i]) !== -1) {\n ret.push([parts[i], \"(\", parts[++i].replace(/, *$/, \"\")].join(\"\"));\n } else {\n ret.push(parts[i].replace(/, *$/, \"\"));\n }\n }\n } else {\n return str;\n }\n return ret.join(\";\");\n};\n\nvar ruleTokens = {\n\n salience: (function () {\n var salienceRegexp = /^(salience|priority)\\s*:\\s*(-?\\d+)\\s*[,;]?/;\n return function (src, context) {\n if (salienceRegexp.test(src)) {\n var parts = src.match(salienceRegexp),\n priority = parseInt(parts[2], 10);\n if (!isNaN(priority)) {\n context.options.priority = priority;\n } else {\n throw new Error(\"Invalid salience/priority \" + parts[2]);\n }\n return src.replace(parts[0], \"\");\n } else {\n throw new Error(\"invalid format\");\n }\n };\n })(),\n\n agendaGroup: (function () {\n var agendaGroupRegexp = /^(agenda-group|agendaGroup)\\s*:\\s*([a-zA-Z_$][0-9a-zA-Z_$]*|\"[^\"]*\"|'[^']*')\\s*[,;]?/;\n return function (src, context) {\n if (agendaGroupRegexp.test(src)) {\n var parts = src.match(agendaGroupRegexp),\n agendaGroup = parts[2];\n if (agendaGroup) {\n context.options.agendaGroup = agendaGroup.replace(/^[\"']|[\"']$/g, \"\");\n } else {\n throw new Error(\"Invalid agenda-group \" + parts[2]);\n }\n return src.replace(parts[0], \"\");\n } else {\n throw new Error(\"invalid format\");\n }\n };\n })(),\n\n autoFocus: (function () {\n var autoFocusRegexp = /^(auto-focus|autoFocus)\\s*:\\s*(true|false)\\s*[,;]?/;\n return function (src, context) {\n if (autoFocusRegexp.test(src)) {\n var parts = src.match(autoFocusRegexp),\n autoFocus = parts[2];\n if (autoFocus) {\n context.options.autoFocus = autoFocus === \"true\" ? true : false;\n } else {\n throw new Error(\"Invalid auto-focus \" + parts[2]);\n }\n return src.replace(parts[0], \"\");\n } else {\n throw new Error(\"invalid format\");\n }\n };\n })(),\n\n \"agenda-group\": function () {\n return this.agendaGroup.apply(this, arguments);\n },\n\n \"auto-focus\": function () {\n return this.autoFocus.apply(this, arguments);\n },\n\n priority: function () {\n return this.salience.apply(this, arguments);\n },\n\n when: (function () {\n /*jshint evil:true*/\n\n var ruleRegExp = /^(\\$?\\w+) *: *(\\w+)(.*)/;\n\n var constraintRegExp = /(\\{ *(?:[\"']?\\$?\\w+[\"']?\\s*:\\s*[\"']?\\$?\\w+[\"']? *(?:, *[\"']?\\$?\\w+[\"']?\\s*:\\s*[\"']?\\$?\\w+[\"']?)*)+ *\\})/;\n var fromRegExp = /(\\bfrom\\s+.*)/;\n var parseRules = function (str) {\n var rules = [];\n var ruleLines = str.split(\";\"), l = ruleLines.length, ruleLine;\n for (var i = 0; i < l && (ruleLine = ruleLines[i].replace(/^\\s*|\\s*$/g, \"\").replace(/\\n/g, \"\")); i++) {\n if (!isWhiteSpace(ruleLine)) {\n var rule = [];\n if (predicateRegExp.test(ruleLine)) {\n var m = ruleLine.match(predicateRegExp);\n var pred = m[1].replace(/^\\s*|\\s*$/g, \"\");\n rule.push(pred);\n ruleLine = m[2].replace(/^\\s*|\\s*$/g, \"\");\n if (pred === \"or\") {\n rule = rule.concat(parseRules(splitRuleLineByPredicateExpressions(ruleLine)));\n rules.push(rule);\n continue;\n }\n\n }\n var parts = ruleLine.match(ruleRegExp);\n if (parts && parts.length) {\n rule.push(parts[2], parts[1]);\n var constraints = parts[3].replace(/^\\s*|\\s*$/g, \"\");\n var hashParts = constraints.match(constraintRegExp), from = null, fromMatch;\n if (hashParts) {\n var hash = hashParts[1], constraint = constraints.replace(hash, \"\");\n if (fromRegExp.test(constraint)) {\n fromMatch = constraint.match(fromRegExp);\n from = fromMatch[0];\n constraint = constraint.replace(fromMatch[0], \"\");\n }\n if (constraint) {\n rule.push(constraint.replace(/^\\s*|\\s*$/g, \"\"));\n }\n if (hash) {\n rule.push(eval(\"(\" + hash.replace(/(\\$?\\w+)\\s*:\\s*(\\$?\\w+)/g, '\"$1\" : \"$2\"') + \")\"));\n }\n } else if (constraints && !isWhiteSpace(constraints)) {\n if (fromRegExp.test(constraints)) {\n fromMatch = constraints.match(fromRegExp);\n from = fromMatch[0];\n constraints = constraints.replace(fromMatch[0], \"\");\n }\n rule.push(constraints);\n }\n if (from) {\n rule.push(from);\n }\n rules.push(rule);\n } else {\n throw new Error(\"Invalid constraint \" + ruleLine);\n }\n }\n }\n return rules;\n };\n\n return function (orig, context) {\n var src = orig.replace(/^when\\s*/, \"\").replace(/^\\s*|\\s*$/g, \"\");\n if (utils.findNextToken(src) === \"{\") {\n var body = utils.getTokensBetween(src, \"{\", \"}\", true).join(\"\");\n src = src.replace(body, \"\");\n context.constraints = parseRules(body.replace(/^\\{\\s*|\\}\\s*$/g, \"\"));\n return src;\n } else {\n throw new Error(\"unexpected token : expected : '{' found : '\" + utils.findNextToken(src) + \"'\");\n }\n };\n })(),\n\n then: (function () {\n return function (orig, context) {\n if (!context.action) {\n var src = orig.replace(/^then\\s*/, \"\").replace(/^\\s*|\\s*$/g, \"\");\n if (utils.findNextToken(src) === \"{\") {\n var body = utils.getTokensBetween(src, \"{\", \"}\", true).join(\"\");\n src = src.replace(body, \"\");\n if (!context.action) {\n context.action = body.replace(/^\\{\\s*|\\}\\s*$/g, \"\");\n }\n if (!isWhiteSpace(src)) {\n throw new Error(\"Error parsing then block \" + orig);\n }\n return src;\n } else {\n throw new Error(\"unexpected token : expected : '{' found : '\" + utils.findNextToken(src) + \"'\");\n }\n } else {\n throw new Error(\"action already defined for rule\" + context.name);\n }\n\n };\n })()\n};\n\nvar topLevelTokens = {\n \"/\": function (orig) {\n if (orig.match(/^\\/\\*/)) {\n // Block Comment parse\n return orig.replace(/\\/\\*.*?\\*\\//, \"\");\n } else {\n return orig;\n }\n },\n\n \"define\": function (orig, context) {\n var src = orig.replace(/^define\\s*/, \"\");\n var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*)/);\n if (name) {\n src = src.replace(name[0], \"\").replace(/^\\s*|\\s*$/g, \"\");\n if (utils.findNextToken(src) === \"{\") {\n name = name[1];\n var body = utils.getTokensBetween(src, \"{\", \"}\", true).join(\"\");\n src = src.replace(body, \"\");\n //should\n context.define.push({name: name, properties: \"(\" + body + \")\"});\n return src;\n } else {\n throw new Error(\"unexpected token : expected : '{' found : '\" + utils.findNextToken(src) + \"'\");\n }\n } else {\n throw new Error(\"missing name\");\n }\n },\n\n \"import\": function (orig, context, parse) {\n if (typeof window !== 'undefined') {\n throw new Error(\"import cannot be used in a browser\");\n }\n var src = orig.replace(/^import\\s*/, \"\");\n if (utils.findNextToken(src) === \"(\") {\n var file = utils.getParamList(src);\n src = src.replace(file, \"\").replace(/^\\s*|\\s*$/g, \"\");\n utils.findNextToken(src) === \";\" && (src = src.replace(/\\s*;/, \"\"));\n file = file.replace(/[\\(|\\)]/g, \"\").split(\",\");\n if (file.length === 1) {\n file = utils.resolve(context.file || process.cwd(), file[0].replace(/[\"|']/g, \"\"));\n if (indexOf(context.loaded, file) === -1) {\n var origFile = context.file;\n context.file = file;\n parse(fs.readFileSync(file, \"utf8\"), topLevelTokens, context);\n context.loaded.push(file);\n context.file = origFile;\n }\n return src;\n } else {\n throw new Error(\"import accepts a single file\");\n }\n } else {\n throw new Error(\"unexpected token : expected : '(' found : '\" + utils.findNextToken(src) + \"'\");\n }\n\n },\n\n //define a global\n \"global\": function (orig, context) {\n var src = orig.replace(/^global\\s*/, \"\");\n var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*\\s*)/);\n if (name) {\n src = src.replace(name[0], \"\").replace(/^\\s*|\\s*$/g, \"\");\n if (utils.findNextToken(src) === \"=\") {\n name = name[1].replace(/^\\s+|\\s+$/g, '');\n var fullbody = utils.getTokensBetween(src, \"=\", \";\", true).join(\"\");\n var body = fullbody.substring(1, fullbody.length - 1);\n body = body.replace(/^\\s+|\\s+$/g, '');\n if (/^require\\(/.test(body)) {\n var file = utils.getParamList(body.replace(\"require\")).replace(/[\\(|\\)]/g, \"\").split(\",\");\n if (file.length === 1) {\n //handle relative require calls\n file = file[0].replace(/[\"|']/g, \"\");\n body = [\"require('\", utils.resolve(context.file || process.cwd(), file) , \"')\"].join(\"\");\n }\n }\n context.scope.push({name: name, body: body});\n src = src.replace(fullbody, \"\");\n return src;\n } else {\n throw new Error(\"unexpected token : expected : '=' found : '\" + utils.findNextToken(src) + \"'\");\n }\n } else {\n throw new Error(\"missing name\");\n }\n },\n\n //define a function\n \"function\": function (orig, context) {\n var src = orig.replace(/^function\\s*/, \"\");\n //parse the function name\n var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*)\\s*/);\n if (name) {\n src = src.replace(name[0], \"\");\n if (utils.findNextToken(src) === \"(\") {\n name = name[1];\n var params = utils.getParamList(src);\n src = src.replace(params, \"\").replace(/^\\s*|\\s*$/g, \"\");\n if (utils.findNextToken(src) === \"{\") {\n var body = utils.getTokensBetween(src, \"{\", \"}\", true).join(\"\");\n src = src.replace(body, \"\");\n //should\n context.scope.push({name: name, body: \"function\" + params + body});\n return src;\n } else {\n throw new Error(\"unexpected token : expected : '{' found : '\" + utils.findNextToken(src) + \"'\");\n }\n } else {\n throw new Error(\"unexpected token : expected : '(' found : '\" + utils.findNextToken(src) + \"'\");\n }\n } else {\n throw new Error(\"missing name\");\n }\n },\n\n \"rule\": function (orig, context, parse) {\n var src = orig.replace(/^rule\\s*/, \"\");\n var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*|\"[^\"]*\"|'[^']*')/);\n if (name) {\n src = src.replace(name[0], \"\").replace(/^\\s*|\\s*$/g, \"\");\n if (utils.findNextToken(src) === \"{\") {\n name = name[1].replace(/^[\"']|[\"']$/g, \"\");\n var rule = {name: name, options: {}, constraints: null, action: null};\n var body = utils.getTokensBetween(src, \"{\", \"}\", true).join(\"\");\n src = src.replace(body, \"\");\n parse(body.replace(/^\\{\\s*|\\}\\s*$/g, \"\"), ruleTokens, rule);\n context.rules.push(rule);\n return src;\n } else {\n throw new Error(\"unexpected token : expected : '{' found : '\" + utils.findNextToken(src) + \"'\");\n }\n } else {\n throw new Error(\"missing name\");\n }\n\n }\n};\nmodule.exports = topLevelTokens;\n\n","\"use strict\";\n\nvar path = require(\"path\");\nvar WHITE_SPACE_REG = /[\\s|\\n|\\r|\\t]/,\n pathSep = path.sep || ( process.platform === 'win32' ? '\\\\' : '/' );\n\nvar TOKEN_INVERTS = {\n \"{\": \"}\",\n \"}\": \"{\",\n \"(\": \")\",\n \")\": \"(\",\n \"[\": \"]\"\n};\n\nvar getTokensBetween = exports.getTokensBetween = function (str, start, stop, includeStartEnd) {\n var depth = 0, ret = [];\n if (!start) {\n start = TOKEN_INVERTS[stop];\n depth = 1;\n }\n if (!stop) {\n stop = TOKEN_INVERTS[start];\n }\n str = Object(str);\n var startPushing = false, token, cursor = 0, found = false;\n while ((token = str.charAt(cursor++))) {\n if (token === start) {\n depth++;\n if (!startPushing) {\n startPushing = true;\n if (includeStartEnd) {\n ret.push(token);\n }\n } else {\n ret.push(token);\n }\n } else if (token === stop && cursor) {\n depth--;\n if (depth === 0) {\n if (includeStartEnd) {\n ret.push(token);\n }\n found = true;\n break;\n }\n ret.push(token);\n } else if (startPushing) {\n ret.push(token);\n }\n }\n if (!found) {\n throw new Error(\"Unable to match \" + start + \" in \" + str);\n }\n return ret;\n};\n\nexports.getParamList = function (str) {\n return getTokensBetween(str, \"(\", \")\", true).join(\"\");\n};\n\nexports.resolve = function (from, to) {\n if (process.platform === 'win32') {\n to = to.replace(/\\//g, '\\\\');\n }\n if (path.extname(from) !== '') {\n from = path.dirname(from);\n }\n if (to.split(pathSep).length === 1) {\n return to;\n }\n return path.resolve(from, to).replace(/\\\\/g, '/');\n\n};\n\nvar findNextTokenIndex = exports.findNextTokenIndex = function (str, startIndex, endIndex) {\n startIndex = startIndex || 0;\n endIndex = endIndex || str.length;\n var ret = -1, l = str.length;\n if (!endIndex || endIndex > l) {\n endIndex = l;\n }\n for (; startIndex < endIndex; startIndex++) {\n var c = str.charAt(startIndex);\n if (!WHITE_SPACE_REG.test(c)) {\n ret = startIndex;\n break;\n }\n }\n return ret;\n};\n\nexports.findNextToken = function (str, startIndex, endIndex) {\n return str.charAt(findNextTokenIndex(str, startIndex, endIndex));\n};","\"use strict\";\nvar extd = require(\"./extended\"),\n isEmpty = extd.isEmpty,\n merge = extd.merge,\n forEach = extd.forEach,\n declare = extd.declare,\n constraintMatcher = require(\"./constraintMatcher\"),\n constraint = require(\"./constraint\"),\n EqualityConstraint = constraint.EqualityConstraint,\n FromConstraint = constraint.FromConstraint;\n\nvar id = 0;\nvar Pattern = declare({});\n\nvar ObjectPattern = Pattern.extend({\n instance: {\n constructor: function (type, alias, conditions, store, options) {\n options = options || {};\n this.id = id++;\n this.type = type;\n this.alias = alias;\n this.conditions = conditions;\n this.pattern = options.pattern;\n var constraints = [new constraint.ObjectConstraint(type)];\n var constrnts = constraintMatcher.toConstraints(conditions, merge({alias: alias}, options));\n if (constrnts.length) {\n constraints = constraints.concat(constrnts);\n } else {\n var cnstrnt = new constraint.TrueConstraint();\n constraints.push(cnstrnt);\n }\n if (store && !isEmpty(store)) {\n var atm = new constraint.HashConstraint(store);\n constraints.push(atm);\n }\n\n forEach(constraints, function (constraint) {\n constraint.set(\"alias\", alias);\n });\n this.constraints = constraints;\n },\n\n getSpecificity: function () {\n var constraints = this.constraints, specificity = 0;\n for (var i = 0, l = constraints.length; i < l; i++) {\n if (constraints[i] instanceof EqualityConstraint) {\n specificity++;\n }\n }\n return specificity;\n },\n\n hasConstraint: function (type) {\n return extd.some(this.constraints, function (c) {\n return c instanceof type;\n });\n },\n\n hashCode: function () {\n return [this.type, this.alias, extd.format(\"%j\", this.conditions)].join(\":\");\n },\n\n toString: function () {\n return extd.format(\"%j\", this.constraints);\n }\n }\n}).as(exports, \"ObjectPattern\");\n\nvar FromPattern = ObjectPattern.extend({\n instance: {\n constructor: function (type, alias, conditions, store, from, options) {\n this._super([type, alias, conditions, store, options]);\n this.from = new FromConstraint(from, options);\n },\n\n hasConstraint: function (type) {\n return extd.some(this.constraints, function (c) {\n return c instanceof type;\n });\n },\n\n getSpecificity: function () {\n return this._super(arguments) + 1;\n },\n\n hashCode: function () {\n return [this.type, this.alias, extd.format(\"%j\", this.conditions), this.from.from].join(\":\");\n },\n\n toString: function () {\n return extd.format(\"%j from %s\", this.constraints, this.from.from);\n }\n }\n}).as(exports, \"FromPattern\");\n\n\nFromPattern.extend().as(exports, \"FromNotPattern\");\nObjectPattern.extend().as(exports, \"NotPattern\");\nObjectPattern.extend().as(exports, \"ExistsPattern\");\nFromPattern.extend().as(exports, \"FromExistsPattern\");\n\nPattern.extend({\n\n instance: {\n constructor: function (left, right) {\n this.id = id++;\n this.leftPattern = left;\n this.rightPattern = right;\n },\n\n hashCode: function () {\n return [this.leftPattern.hashCode(), this.rightPattern.hashCode()].join(\":\");\n },\n\n getSpecificity: function () {\n return this.rightPattern.getSpecificity() + this.leftPattern.getSpecificity();\n },\n\n getters: {\n constraints: function () {\n return this.leftPattern.constraints.concat(this.rightPattern.constraints);\n }\n }\n }\n\n}).as(exports, \"CompositePattern\");\n\n\nvar InitialFact = declare({\n instance: {\n constructor: function () {\n this.id = id++;\n this.recency = 0;\n }\n }\n}).as(exports, \"InitialFact\");\n\nObjectPattern.extend({\n instance: {\n constructor: function () {\n this._super([InitialFact, \"__i__\", [], {}]);\n },\n\n assert: function () {\n return true;\n }\n }\n}).as(exports, \"InitialFactPattern\");\n\n\n\n","\"use strict\";\nvar extd = require(\"./extended\"),\n isArray = extd.isArray,\n Promise = extd.Promise,\n declare = extd.declare,\n isHash = extd.isHash,\n isString = extd.isString,\n format = extd.format,\n parser = require(\"./parser\"),\n pattern = require(\"./pattern\"),\n ObjectPattern = pattern.ObjectPattern,\n FromPattern = pattern.FromPattern,\n NotPattern = pattern.NotPattern,\n ExistsPattern = pattern.ExistsPattern,\n FromNotPattern = pattern.FromNotPattern,\n FromExistsPattern = pattern.FromExistsPattern,\n CompositePattern = pattern.CompositePattern;\n\nvar parseConstraint = function (constraint) {\n if (typeof constraint === 'function') {\n // No parsing is needed for constraint functions\n return constraint;\n }\n return parser.parseConstraint(constraint);\n};\n\nvar parseExtra = extd\n .switcher()\n .isUndefinedOrNull(function () {\n return null;\n })\n .isLike(/^from +/, function (s) {\n return {from: s.replace(/^from +/, \"\").replace(/^\\s*|\\s*$/g, \"\")};\n })\n .def(function (o) {\n throw new Error(\"invalid rule constraint option \" + o);\n })\n .switcher();\n\nvar normailizeConstraint = extd\n .switcher()\n .isLength(1, function (c) {\n throw new Error(\"invalid rule constraint \" + format(\"%j\", [c]));\n })\n .isLength(2, function (c) {\n c.push(\"true\");\n return c;\n })\n //handle case where c[2] is a hash rather than a constraint string\n .isLength(3, function (c) {\n if (isString(c[2]) && /^from +/.test(c[2])) {\n var extra = c[2];\n c.splice(2, 0, \"true\");\n c[3] = null;\n c[4] = parseExtra(extra);\n } else if (isHash(c[2])) {\n c.splice(2, 0, \"true\");\n }\n return c;\n })\n //handle case where c[3] is a from clause rather than a hash for references\n .isLength(4, function (c) {\n if (isString(c[3])) {\n c.splice(3, 0, null);\n c[4] = parseExtra(c[4]);\n }\n return c;\n })\n .def(function (c) {\n if (c.length === 5) {\n c[4] = parseExtra(c[4]);\n }\n return c;\n })\n .switcher();\n\nvar getParamType = function getParamType(type, scope) {\n scope = scope || {};\n var getParamTypeSwitch = extd\n .switcher()\n .isEq(\"string\", function () {\n return String;\n })\n .isEq(\"date\", function () {\n return Date;\n })\n .isEq(\"array\", function () {\n return Array;\n })\n .isEq(\"boolean\", function () {\n return Boolean;\n })\n .isEq(\"regexp\", function () {\n return RegExp;\n })\n .isEq(\"number\", function () {\n return Number;\n })\n .isEq(\"object\", function () {\n return Object;\n })\n .isEq(\"hash\", function () {\n return Object;\n })\n .def(function (param) {\n throw new TypeError(\"invalid param type \" + param);\n })\n .switcher();\n\n var _getParamType = extd\n .switcher()\n .isString(function (param) {\n var t = scope[param];\n if (!t) {\n return getParamTypeSwitch(param.toLowerCase());\n } else {\n return t;\n }\n })\n .isFunction(function (func) {\n return func;\n })\n .deepEqual([], function () {\n return Array;\n })\n .def(function (param) {\n throw new Error(\"invalid param type \" + param);\n })\n .switcher();\n\n return _getParamType(type);\n};\n\nvar parsePattern = extd\n .switcher()\n .containsAt(\"or\", 0, function (condition) {\n condition.shift();\n return extd(condition).map(function (cond) {\n cond.scope = condition.scope;\n return parsePattern(cond);\n }).flatten().value();\n })\n .containsAt(\"not\", 0, function (condition) {\n condition.shift();\n condition = normailizeConstraint(condition);\n if (condition[4] && condition[4].from) {\n return [\n new FromNotPattern(\n getParamType(condition[0], condition.scope),\n condition[1] || \"m\",\n parseConstraint(condition[2] || \"true\"),\n condition[3] || {},\n parseConstraint(condition[4].from),\n {scope: condition.scope, pattern: condition[2]}\n )\n ];\n } else {\n return [\n new NotPattern(\n getParamType(condition[0], condition.scope),\n condition[1] || \"m\",\n parseConstraint(condition[2] || \"true\"),\n condition[3] || {},\n {scope: condition.scope, pattern: condition[2]}\n )\n ];\n }\n })\n .containsAt(\"exists\", 0, function (condition) {\n condition.shift();\n condition = normailizeConstraint(condition);\n if (condition[4] && condition[4].from) {\n return [\n new FromExistsPattern(\n getParamType(condition[0], condition.scope),\n condition[1] || \"m\",\n parseConstraint(condition[2] || \"true\"),\n condition[3] || {},\n parseConstraint(condition[4].from),\n {scope: condition.scope, pattern: condition[2]}\n )\n ];\n } else {\n return [\n new ExistsPattern(\n getParamType(condition[0], condition.scope),\n condition[1] || \"m\",\n parseConstraint(condition[2] || \"true\"),\n condition[3] || {},\n {scope: condition.scope, pattern: condition[2]}\n )\n ];\n }\n })\n .def(function (condition) {\n if (typeof condition === 'function') {\n return [condition];\n }\n condition = normailizeConstraint(condition);\n if (condition[4] && condition[4].from) {\n return [\n new FromPattern(\n getParamType(condition[0], condition.scope),\n condition[1] || \"m\",\n parseConstraint(condition[2] || \"true\"),\n condition[3] || {},\n parseConstraint(condition[4].from),\n {scope: condition.scope, pattern: condition[2]}\n )\n ];\n } else {\n return [\n new ObjectPattern(\n getParamType(condition[0], condition.scope),\n condition[1] || \"m\",\n parseConstraint(condition[2] || \"true\"),\n condition[3] || {},\n {scope: condition.scope, pattern: condition[2]}\n )\n ];\n }\n }).switcher();\n\nvar Rule = declare({\n instance: {\n constructor: function (name, options, pattern, cb) {\n this.name = name;\n this.pattern = pattern;\n this.cb = cb;\n if (options.agendaGroup) {\n this.agendaGroup = options.agendaGroup;\n this.autoFocus = extd.isBoolean(options.autoFocus) ? options.autoFocus : false;\n }\n this.priority = options.priority || options.salience || 0;\n },\n\n fire: function (flow, match) {\n var ret = new Promise(), cb = this.cb;\n try {\n if (cb.length === 3) {\n cb.call(flow, match.factHash, flow, ret.resolve);\n } else {\n ret = cb.call(flow, match.factHash, flow);\n }\n } catch (e) {\n ret.errback(e);\n }\n return ret;\n }\n }\n});\n\nfunction createRule(name, options, conditions, cb) {\n if (isArray(options)) {\n cb = conditions;\n conditions = options;\n } else {\n options = options || {};\n }\n var isRules = extd.every(conditions, function (cond) {\n return isArray(cond);\n });\n if (isRules && conditions.length === 1) {\n conditions = conditions[0];\n isRules = false;\n }\n var rules = [];\n var scope = options.scope || {};\n conditions.scope = scope;\n if (isRules) {\n var _mergePatterns = function (patt, i) {\n if (!patterns[i]) {\n patterns[i] = i === 0 ? [] : patterns[i - 1].slice();\n //remove dup\n if (i !== 0) {\n patterns[i].pop();\n }\n patterns[i].push(patt);\n } else {\n extd(patterns).forEach(function (p) {\n p.push(patt);\n });\n }\n\n };\n var l = conditions.length, patterns = [], condition;\n for (var i = 0; i < l; i++) {\n condition = conditions[i];\n condition.scope = scope;\n extd.forEach(parsePattern(condition), _mergePatterns);\n\n }\n rules = extd.map(patterns, function (patterns) {\n var compPat = null;\n for (var i = 0; i < patterns.length; i++) {\n if (compPat === null) {\n compPat = new CompositePattern(patterns[i++], patterns[i]);\n } else {\n compPat = new CompositePattern(compPat, patterns[i]);\n }\n }\n return new Rule(name, options, compPat, cb);\n });\n } else {\n rules = extd.map(parsePattern(conditions), function (cond) {\n return new Rule(name, options, cond, cb);\n });\n }\n return rules;\n}\n\nexports.createRule = createRule;\n\n\n\n","\"use strict\";\nvar declare = require(\"declare.js\"),\n LinkedList = require(\"./linkedList\"),\n InitialFact = require(\"./pattern\").InitialFact,\n id = 0;\n\nvar Fact = declare({\n\n instance: {\n constructor: function (obj) {\n this.object = obj;\n this.recency = 0;\n this.id = id++;\n },\n\n equals: function (fact) {\n return fact === this.object;\n },\n\n hashCode: function () {\n return this.id;\n }\n }\n\n});\n\ndeclare({\n\n instance: {\n\n constructor: function () {\n this.recency = 0;\n this.facts = new LinkedList();\n },\n\n dispose: function () {\n this.facts.clear();\n },\n\n getFacts: function () {\n var head = {next: this.facts.head}, ret = [], i = 0, val;\n while ((head = head.next)) {\n if (!((val = head.data.object) instanceof InitialFact)) {\n ret[i++] = val;\n }\n }\n return ret;\n },\n\n getFactsByType: function (Type) {\n var head = {next: this.facts.head}, ret = [], i = 0;\n while ((head = head.next)) {\n var val = head.data.object;\n if (!(val instanceof InitialFact) && (val instanceof Type || val.constructor === Type)) {\n ret[i++] = val;\n }\n }\n return ret;\n },\n\n getFactHandle: function (o) {\n var head = {next: this.facts.head}, ret;\n while ((head = head.next)) {\n var existingFact = head.data;\n if (existingFact.equals(o)) {\n return existingFact;\n }\n }\n if (!ret) {\n ret = new Fact(o);\n ret.recency = this.recency++;\n //this.facts.push(ret);\n }\n return ret;\n },\n\n modifyFact: function (fact) {\n var head = {next: this.facts.head};\n while ((head = head.next)) {\n var existingFact = head.data;\n if (existingFact.equals(fact)) {\n existingFact.recency = this.recency++;\n return existingFact;\n }\n }\n //if we made it here we did not find the fact\n throw new Error(\"the fact to modify does not exist\");\n },\n\n assertFact: function (fact) {\n var ret = new Fact(fact);\n ret.recency = this.recency++;\n this.facts.push(ret);\n return ret;\n },\n\n retractFact: function (fact) {\n var facts = this.facts, head = {next: facts.head};\n while ((head = head.next)) {\n var existingFact = head.data;\n if (existingFact.equals(fact)) {\n facts.remove(head);\n return existingFact;\n }\n }\n //if we made it here we did not find the fact\n throw new Error(\"the fact to remove does not exist\");\n\n\n }\n }\n\n}).as(exports, \"WorkingMemory\");\n\n","(function () {\n \"use strict\";\n /*global extended isExtended*/\n\n function defineObject(extended, is, arr) {\n\n var deepEqual = is.deepEqual,\n isString = is.isString,\n isHash = is.isHash,\n difference = arr.difference,\n hasOwn = Object.prototype.hasOwnProperty,\n isFunction = is.isFunction;\n\n function _merge(target, source) {\n var name, s;\n for (name in source) {\n if (hasOwn.call(source, name)) {\n s = source[name];\n if (!(name in target) || (target[name] !== s)) {\n target[name] = s;\n }\n }\n }\n return target;\n }\n\n function _deepMerge(target, source) {\n var name, s, t;\n for (name in source) {\n if (hasOwn.call(source, name)) {\n s = source[name];\n t = target[name];\n if (!deepEqual(t, s)) {\n if (isHash(t) && isHash(s)) {\n target[name] = _deepMerge(t, s);\n } else if (isHash(s)) {\n target[name] = _deepMerge({}, s);\n } else {\n target[name] = s;\n }\n }\n }\n }\n return target;\n }\n\n\n function merge(obj) {\n if (!obj) {\n obj = {};\n }\n for (var i = 1, l = arguments.length; i < l; i++) {\n _merge(obj, arguments[i]);\n }\n return obj; // Object\n }\n\n function deepMerge(obj) {\n if (!obj) {\n obj = {};\n }\n for (var i = 1, l = arguments.length; i < l; i++) {\n _deepMerge(obj, arguments[i]);\n }\n return obj; // Object\n }\n\n\n function extend(parent, child) {\n var proto = parent.prototype || parent;\n merge(proto, child);\n return parent;\n }\n\n function forEach(hash, iterator, scope) {\n if (!isHash(hash) || !isFunction(iterator)) {\n throw new TypeError();\n }\n var objKeys = keys(hash), key;\n for (var i = 0, len = objKeys.length; i < len; ++i) {\n key = objKeys[i];\n iterator.call(scope || hash, hash[key], key, hash);\n }\n return hash;\n }\n\n function filter(hash, iterator, scope) {\n if (!isHash(hash) || !isFunction(iterator)) {\n throw new TypeError();\n }\n var objKeys = keys(hash), key, value, ret = {};\n for (var i = 0, len = objKeys.length; i < len; ++i) {\n key = objKeys[i];\n value = hash[key];\n if (iterator.call(scope || hash, value, key, hash)) {\n ret[key] = value;\n }\n }\n return ret;\n }\n\n function values(hash) {\n if (!isHash(hash)) {\n throw new TypeError();\n }\n var objKeys = keys(hash), ret = [];\n for (var i = 0, len = objKeys.length; i < len; ++i) {\n ret.push(hash[objKeys[i]]);\n }\n return ret;\n }\n\n\n function keys(hash) {\n if (!isHash(hash)) {\n throw new TypeError();\n }\n var ret = [];\n for (var i in hash) {\n if (hasOwn.call(hash, i)) {\n ret.push(i);\n }\n }\n return ret;\n }\n\n function invert(hash) {\n if (!isHash(hash)) {\n throw new TypeError();\n }\n var objKeys = keys(hash), key, ret = {};\n for (var i = 0, len = objKeys.length; i < len; ++i) {\n key = objKeys[i];\n ret[hash[key]] = key;\n }\n return ret;\n }\n\n function toArray(hash) {\n if (!isHash(hash)) {\n throw new TypeError();\n }\n var objKeys = keys(hash), key, ret = [];\n for (var i = 0, len = objKeys.length; i < len; ++i) {\n key = objKeys[i];\n ret.push([key, hash[key]]);\n }\n return ret;\n }\n\n function omit(hash, omitted) {\n if (!isHash(hash)) {\n throw new TypeError();\n }\n if (isString(omitted)) {\n omitted = [omitted];\n }\n var objKeys = difference(keys(hash), omitted), key, ret = {};\n for (var i = 0, len = objKeys.length; i < len; ++i) {\n key = objKeys[i];\n ret[key] = hash[key];\n }\n return ret;\n }\n\n var hash = {\n forEach: forEach,\n filter: filter,\n invert: invert,\n values: values,\n toArray: toArray,\n keys: keys,\n omit: omit\n };\n\n\n var obj = {\n extend: extend,\n merge: merge,\n deepMerge: deepMerge,\n omit: omit\n };\n\n var ret = extended.define(is.isObject, obj).define(isHash, hash).define(is.isFunction, {extend: extend}).expose({hash: hash}).expose(obj);\n var orig = ret.extend;\n ret.extend = function __extend() {\n if (arguments.length === 1) {\n return orig.extend.apply(ret, arguments);\n } else {\n extend.apply(null, arguments);\n }\n };\n return ret;\n\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineObject(require(\"extended\"), require(\"is-extended\"), require(\"array-extended\"));\n\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"extended\", \"is-extended\", \"array-extended\"], function (extended, is, array) {\n return defineObject(extended, is, array);\n });\n } else {\n this.objectExtended = defineObject(this.extended, this.isExtended, this.arrayExtended);\n }\n\n}).call(this);\n\n\n\n\n\n\n","(function () {\n \"use strict\";\n /*global setImmediate, MessageChannel*/\n\n\n function definePromise(declare, extended, array, is, fn, args) {\n\n var forEach = array.forEach,\n isUndefinedOrNull = is.isUndefinedOrNull,\n isArray = is.isArray,\n isFunction = is.isFunction,\n isBoolean = is.isBoolean,\n bind = fn.bind,\n bindIgnore = fn.bindIgnore,\n argsToArray = args.argsToArray;\n\n function createHandler(fn, promise) {\n return function _handler() {\n try {\n when(fn.apply(null, arguments))\n .addCallback(promise)\n .addErrback(promise);\n } catch (e) {\n promise.errback(e);\n }\n };\n }\n\n var nextTick;\n if (typeof setImmediate === \"function\") {\n // In IE10, or use https://github.com/NobleJS/setImmediate\n if (typeof window !== \"undefined\") {\n nextTick = setImmediate.bind(window);\n } else {\n nextTick = setImmediate;\n }\n } else if (typeof process !== \"undefined\") {\n // node\n nextTick = function (cb) {\n process.nextTick(cb);\n };\n } else if (typeof MessageChannel !== \"undefined\") {\n // modern browsers\n // http://www.nonblocking.io/2011/06/windownexttick.html\n var channel = new MessageChannel();\n // linked list of tasks (single, with head node)\n var head = {}, tail = head;\n channel.port1.onmessage = function () {\n head = head.next;\n var task = head.task;\n delete head.task;\n task();\n };\n nextTick = function (task) {\n tail = tail.next = {task: task};\n channel.port2.postMessage(0);\n };\n } else {\n // old browsers\n nextTick = function (task) {\n setTimeout(task, 0);\n };\n }\n\n\n //noinspection JSHint\n var Promise = declare({\n instance: {\n __fired: false,\n\n __results: null,\n\n __error: null,\n\n __errorCbs: null,\n\n __cbs: null,\n\n constructor: function () {\n this.__errorCbs = [];\n this.__cbs = [];\n fn.bindAll(this, [\"callback\", \"errback\", \"resolve\", \"classic\", \"__resolve\", \"addCallback\", \"addErrback\"]);\n },\n\n __resolve: function () {\n if (!this.__fired) {\n this.__fired = true;\n var cbs = this.__error ? this.__errorCbs : this.__cbs,\n len = cbs.length, i,\n results = this.__error || this.__results;\n for (i = 0; i < len; i++) {\n this.__callNextTick(cbs[i], results);\n }\n\n }\n },\n\n __callNextTick: function (cb, results) {\n nextTick(function () {\n cb.apply(this, results);\n });\n },\n\n addCallback: function (cb) {\n if (cb) {\n if (isPromiseLike(cb) && cb.callback) {\n cb = cb.callback;\n }\n if (this.__fired && this.__results) {\n this.__callNextTick(cb, this.__results);\n } else {\n this.__cbs.push(cb);\n }\n }\n return this;\n },\n\n\n addErrback: function (cb) {\n if (cb) {\n if (isPromiseLike(cb) && cb.errback) {\n cb = cb.errback;\n }\n if (this.__fired && this.__error) {\n this.__callNextTick(cb, this.__error);\n } else {\n this.__errorCbs.push(cb);\n }\n }\n return this;\n },\n\n callback: function (args) {\n if (!this.__fired) {\n this.__results = arguments;\n this.__resolve();\n }\n return this.promise();\n },\n\n errback: function (args) {\n if (!this.__fired) {\n this.__error = arguments;\n this.__resolve();\n }\n return this.promise();\n },\n\n resolve: function (err, args) {\n if (err) {\n this.errback(err);\n } else {\n this.callback.apply(this, argsToArray(arguments, 1));\n }\n return this;\n },\n\n classic: function (cb) {\n if (\"function\" === typeof cb) {\n this.addErrback(function (err) {\n cb(err);\n });\n this.addCallback(function () {\n cb.apply(this, [null].concat(argsToArray(arguments)));\n });\n }\n return this;\n },\n\n then: function (callback, errback) {\n\n var promise = new Promise(), errorHandler = promise;\n if (isFunction(errback)) {\n errorHandler = createHandler(errback, promise);\n }\n this.addErrback(errorHandler);\n if (isFunction(callback)) {\n this.addCallback(createHandler(callback, promise));\n } else {\n this.addCallback(promise);\n }\n\n return promise.promise();\n },\n\n both: function (callback) {\n return this.then(callback, callback);\n },\n\n promise: function () {\n var ret = {\n then: bind(this, \"then\"),\n both: bind(this, \"both\"),\n promise: function () {\n return ret;\n }\n };\n forEach([\"addCallback\", \"addErrback\", \"classic\"], function (action) {\n ret[action] = bind(this, function () {\n this[action].apply(this, arguments);\n return ret;\n });\n }, this);\n\n return ret;\n }\n\n\n }\n });\n\n\n var PromiseList = Promise.extend({\n instance: {\n\n /*@private*/\n __results: null,\n\n /*@private*/\n __errors: null,\n\n /*@private*/\n __promiseLength: 0,\n\n /*@private*/\n __defLength: 0,\n\n /*@private*/\n __firedLength: 0,\n\n normalizeResults: false,\n\n constructor: function (defs, normalizeResults) {\n this.__errors = [];\n this.__results = [];\n this.normalizeResults = isBoolean(normalizeResults) ? normalizeResults : false;\n this._super(arguments);\n if (defs && defs.length) {\n this.__defLength = defs.length;\n forEach(defs, this.__addPromise, this);\n } else {\n this.__resolve();\n }\n },\n\n __addPromise: function (promise, i) {\n promise.then(\n bind(this, function () {\n var args = argsToArray(arguments);\n args.unshift(i);\n this.callback.apply(this, args);\n }),\n bind(this, function () {\n var args = argsToArray(arguments);\n args.unshift(i);\n this.errback.apply(this, args);\n })\n );\n },\n\n __resolve: function () {\n if (!this.__fired) {\n this.__fired = true;\n var cbs = this.__errors.length ? this.__errorCbs : this.__cbs,\n len = cbs.length, i,\n results = this.__errors.length ? this.__errors : this.__results;\n for (i = 0; i < len; i++) {\n this.__callNextTick(cbs[i], results);\n }\n\n }\n },\n\n __callNextTick: function (cb, results) {\n nextTick(function () {\n cb.apply(null, [results]);\n });\n },\n\n addCallback: function (cb) {\n if (cb) {\n if (isPromiseLike(cb) && cb.callback) {\n cb = bind(cb, \"callback\");\n }\n if (this.__fired && !this.__errors.length) {\n this.__callNextTick(cb, this.__results);\n } else {\n this.__cbs.push(cb);\n }\n }\n return this;\n },\n\n addErrback: function (cb) {\n if (cb) {\n if (isPromiseLike(cb) && cb.errback) {\n cb = bind(cb, \"errback\");\n }\n if (this.__fired && this.__errors.length) {\n this.__callNextTick(cb, this.__errors);\n } else {\n this.__errorCbs.push(cb);\n }\n }\n return this;\n },\n\n\n callback: function (i) {\n if (this.__fired) {\n throw new Error(\"Already fired!\");\n }\n var args = argsToArray(arguments);\n if (this.normalizeResults) {\n args = args.slice(1);\n args = args.length === 1 ? args.pop() : args;\n }\n this.__results[i] = args;\n this.__firedLength++;\n if (this.__firedLength === this.__defLength) {\n this.__resolve();\n }\n return this.promise();\n },\n\n\n errback: function (i) {\n if (this.__fired) {\n throw new Error(\"Already fired!\");\n }\n var args = argsToArray(arguments);\n if (this.normalizeResults) {\n args = args.slice(1);\n args = args.length === 1 ? args.pop() : args;\n }\n this.__errors[i] = args;\n this.__firedLength++;\n if (this.__firedLength === this.__defLength) {\n this.__resolve();\n }\n return this.promise();\n }\n\n }\n });\n\n\n function callNext(list, results, propogate) {\n var ret = new Promise().callback();\n forEach(list, function (listItem) {\n ret = ret.then(propogate ? listItem : bindIgnore(null, listItem));\n if (!propogate) {\n ret = ret.then(function (res) {\n results.push(res);\n return results;\n });\n }\n });\n return ret;\n }\n\n function isPromiseLike(obj) {\n return !isUndefinedOrNull(obj) && (isFunction(obj.then));\n }\n\n function wrapThenPromise(p) {\n var ret = new Promise();\n p.then(bind(ret, \"callback\"), bind(ret, \"errback\"));\n return ret.promise();\n }\n\n function when(args) {\n var p;\n args = argsToArray(arguments);\n if (!args.length) {\n p = new Promise().callback(args).promise();\n } else if (args.length === 1) {\n args = args.pop();\n if (isPromiseLike(args)) {\n if (args.addCallback && args.addErrback) {\n p = new Promise();\n args.addCallback(p.callback);\n args.addErrback(p.errback);\n } else {\n p = wrapThenPromise(args);\n }\n } else if (isArray(args) && array.every(args, isPromiseLike)) {\n p = new PromiseList(args, true).promise();\n } else {\n p = new Promise().callback(args);\n }\n } else {\n p = new PromiseList(array.map(args, function (a) {\n return when(a);\n }), true).promise();\n }\n return p;\n\n }\n\n function wrap(fn, scope) {\n return function _wrap() {\n var ret = new Promise();\n var args = argsToArray(arguments);\n args.push(ret.resolve);\n fn.apply(scope || this, args);\n return ret.promise();\n };\n }\n\n function serial(list) {\n if (isArray(list)) {\n return callNext(list, [], false);\n } else {\n throw new Error(\"When calling promise.serial the first argument must be an array\");\n }\n }\n\n\n function chain(list) {\n if (isArray(list)) {\n return callNext(list, [], true);\n } else {\n throw new Error(\"When calling promise.serial the first argument must be an array\");\n }\n }\n\n\n function wait(args, fn) {\n args = argsToArray(arguments);\n var resolved = false;\n fn = args.pop();\n var p = when(args);\n return function waiter() {\n if (!resolved) {\n args = arguments;\n return p.then(bind(this, function doneWaiting() {\n resolved = true;\n return fn.apply(this, args);\n }));\n } else {\n return when(fn.apply(this, arguments));\n }\n };\n }\n\n function createPromise() {\n return new Promise();\n }\n\n function createPromiseList(promises) {\n return new PromiseList(promises, true).promise();\n }\n\n function createRejected(val) {\n return createPromise().errback(val);\n }\n\n function createResolved(val) {\n return createPromise().callback(val);\n }\n\n\n return extended\n .define({\n isPromiseLike: isPromiseLike\n }).expose({\n isPromiseLike: isPromiseLike,\n when: when,\n wrap: wrap,\n wait: wait,\n serial: serial,\n chain: chain,\n Promise: Promise,\n PromiseList: PromiseList,\n promise: createPromise,\n defer: createPromise,\n deferredList: createPromiseList,\n reject: createRejected,\n resolve: createResolved\n });\n\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = definePromise(require(\"declare.js\"), require(\"extended\"), require(\"array-extended\"), require(\"is-extended\"), require(\"function-extended\"), require(\"arguments-extended\"));\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"declare\", \"extended\", \"array-extended\", \"is-extended\", \"function-extended\", \"arguments-extended\"], function (declare, extended, array, is, fn, args) {\n return definePromise(declare, extended, array, is, fn, args);\n });\n } else {\n this.promiseExtended = definePromise(this.declare, this.extended, this.arrayExtended, this.isExtended, this.functionExtended, this.argumentsExtended);\n }\n\n}).call(this);\n\n\n\n\n\n\n","(function () {\n \"use strict\";\n\n function defineString(extended, is, date, arr) {\n\n var stringify;\n if (typeof JSON === \"undefined\") {\n /*\n json2.js\n 2012-10-08\n\n Public Domain.\n\n NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n */\n\n (function () {\n function f(n) {\n // Format integers to have at least two digits.\n return n < 10 ? '0' + n : n;\n }\n\n var isPrimitive = is.tester().isString().isNumber().isBoolean().tester();\n\n function toJSON(obj) {\n if (is.isDate(obj)) {\n return isFinite(obj.valueOf()) ? obj.getUTCFullYear() + '-' +\n f(obj.getUTCMonth() + 1) + '-' +\n f(obj.getUTCDate()) + 'T' +\n f(obj.getUTCHours()) + ':' +\n f(obj.getUTCMinutes()) + ':' +\n f(obj.getUTCSeconds()) + 'Z'\n : null;\n } else if (isPrimitive(obj)) {\n return obj.valueOf();\n }\n return obj;\n }\n\n var cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n gap,\n indent,\n meta = { // table of character substitutions\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\'\n },\n rep;\n\n\n function quote(string) {\n escapable.lastIndex = 0;\n return escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\n var c = meta[a];\n return typeof c === 'string' ? c : '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n }) + '\"' : '\"' + string + '\"';\n }\n\n\n function str(key, holder) {\n\n var i, k, v, length, mind = gap, partial, value = holder[key];\n if (value) {\n value = toJSON(value);\n }\n if (typeof rep === 'function') {\n value = rep.call(holder, key, value);\n }\n switch (typeof value) {\n case 'string':\n return quote(value);\n case 'number':\n return isFinite(value) ? String(value) : 'null';\n case 'boolean':\n case 'null':\n return String(value);\n case 'object':\n if (!value) {\n return 'null';\n }\n gap += indent;\n partial = [];\n if (Object.prototype.toString.apply(value) === '[object Array]') {\n length = value.length;\n for (i = 0; i < length; i += 1) {\n partial[i] = str(i, value) || 'null';\n }\n v = partial.length === 0 ? '[]' : gap ? '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']' : '[' + partial.join(',') + ']';\n gap = mind;\n return v;\n }\n if (rep && typeof rep === 'object') {\n length = rep.length;\n for (i = 0; i < length; i += 1) {\n if (typeof rep[i] === 'string') {\n k = rep[i];\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n } else {\n for (k in value) {\n if (Object.prototype.hasOwnProperty.call(value, k)) {\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n }\n v = partial.length === 0 ? '{}' : gap ? '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}' : '{' + partial.join(',') + '}';\n gap = mind;\n return v;\n }\n }\n\n stringify = function (value, replacer, space) {\n var i;\n gap = '';\n indent = '';\n if (typeof space === 'number') {\n for (i = 0; i < space; i += 1) {\n indent += ' ';\n }\n } else if (typeof space === 'string') {\n indent = space;\n }\n rep = replacer;\n if (replacer && typeof replacer !== 'function' &&\n (typeof replacer !== 'object' ||\n typeof replacer.length !== 'number')) {\n throw new Error('JSON.stringify');\n }\n return str('', {'': value});\n };\n }());\n } else {\n stringify = JSON.stringify;\n }\n\n\n var isHash = is.isHash, aSlice = Array.prototype.slice;\n\n var FORMAT_REGEX = /%((?:-?\\+?.?\\d*)?|(?:\\[[^\\[|\\]]*\\]))?([sjdDZ])/g;\n var INTERP_REGEX = /\\{(?:\\[([^\\[|\\]]*)\\])?(\\w+)\\}/g;\n var STR_FORMAT = /(-?)(\\+?)([A-Z|a-z|\\W]?)([1-9][0-9]*)?$/;\n var OBJECT_FORMAT = /([1-9][0-9]*)$/g;\n\n function formatString(string, format) {\n var ret = string;\n if (STR_FORMAT.test(format)) {\n var match = format.match(STR_FORMAT);\n var isLeftJustified = match[1], padChar = match[3], width = match[4];\n if (width) {\n width = parseInt(width, 10);\n if (ret.length < width) {\n ret = pad(ret, width, padChar, isLeftJustified);\n } else {\n ret = truncate(ret, width);\n }\n }\n }\n return ret;\n }\n\n function formatNumber(number, format) {\n var ret;\n if (is.isNumber(number)) {\n ret = \"\" + number;\n if (STR_FORMAT.test(format)) {\n var match = format.match(STR_FORMAT);\n var isLeftJustified = match[1], signed = match[2], padChar = match[3], width = match[4];\n if (signed) {\n ret = (number > 0 ? \"+\" : \"\") + ret;\n }\n if (width) {\n width = parseInt(width, 10);\n if (ret.length < width) {\n ret = pad(ret, width, padChar || \"0\", isLeftJustified);\n } else {\n ret = truncate(ret, width);\n }\n }\n\n }\n } else {\n throw new Error(\"stringExtended.format : when using %d the parameter must be a number!\");\n }\n return ret;\n }\n\n function formatObject(object, format) {\n var ret, match = format.match(OBJECT_FORMAT), spacing = 0;\n if (match) {\n spacing = parseInt(match[0], 10);\n if (isNaN(spacing)) {\n spacing = 0;\n }\n }\n try {\n ret = stringify(object, null, spacing);\n } catch (e) {\n throw new Error(\"stringExtended.format : Unable to parse json from \", object);\n }\n return ret;\n }\n\n\n var styles = {\n //styles\n bold: 1,\n bright: 1,\n italic: 3,\n underline: 4,\n blink: 5,\n inverse: 7,\n crossedOut: 9,\n\n red: 31,\n green: 32,\n yellow: 33,\n blue: 34,\n magenta: 35,\n cyan: 36,\n white: 37,\n\n redBackground: 41,\n greenBackground: 42,\n yellowBackground: 43,\n blueBackground: 44,\n magentaBackground: 45,\n cyanBackground: 46,\n whiteBackground: 47,\n\n encircled: 52,\n overlined: 53,\n grey: 90,\n black: 90\n };\n\n var characters = {\n SMILEY: \"☺\",\n SOLID_SMILEY: \"☻\",\n HEART: \"♥\",\n DIAMOND: \"♦\",\n CLOVE: \"♣\",\n SPADE: \"♠\",\n DOT: \"•\",\n SQUARE_CIRCLE: \"◘\",\n CIRCLE: \"○\",\n FILLED_SQUARE_CIRCLE: \"◙\",\n MALE: \"♂\",\n FEMALE: \"♀\",\n EIGHT_NOTE: \"♪\",\n DOUBLE_EIGHTH_NOTE: \"♫\",\n SUN: \"☼\",\n PLAY: \"►\",\n REWIND: \"◄\",\n UP_DOWN: \"↕\",\n PILCROW: \"¶\",\n SECTION: \"§\",\n THICK_MINUS: \"▬\",\n SMALL_UP_DOWN: \"↨\",\n UP_ARROW: \"↑\",\n DOWN_ARROW: \"↓\",\n RIGHT_ARROW: \"→\",\n LEFT_ARROW: \"←\",\n RIGHT_ANGLE: \"∟\",\n LEFT_RIGHT_ARROW: \"↔\",\n TRIANGLE: \"▲\",\n DOWN_TRIANGLE: \"▼\",\n HOUSE: \"⌂\",\n C_CEDILLA: \"Ç\",\n U_UMLAUT: \"ü\",\n E_ACCENT: \"é\",\n A_LOWER_CIRCUMFLEX: \"â\",\n A_LOWER_UMLAUT: \"ä\",\n A_LOWER_GRAVE_ACCENT: \"à\",\n A_LOWER_CIRCLE_OVER: \"å\",\n C_LOWER_CIRCUMFLEX: \"ç\",\n E_LOWER_CIRCUMFLEX: \"ê\",\n E_LOWER_UMLAUT: \"ë\",\n E_LOWER_GRAVE_ACCENT: \"è\",\n I_LOWER_UMLAUT: \"ï\",\n I_LOWER_CIRCUMFLEX: \"î\",\n I_LOWER_GRAVE_ACCENT: \"ì\",\n A_UPPER_UMLAUT: \"Ä\",\n A_UPPER_CIRCLE: \"Å\",\n E_UPPER_ACCENT: \"É\",\n A_E_LOWER: \"æ\",\n A_E_UPPER: \"Æ\",\n O_LOWER_CIRCUMFLEX: \"ô\",\n O_LOWER_UMLAUT: \"ö\",\n O_LOWER_GRAVE_ACCENT: \"ò\",\n U_LOWER_CIRCUMFLEX: \"û\",\n U_LOWER_GRAVE_ACCENT: \"ù\",\n Y_LOWER_UMLAUT: \"ÿ\",\n O_UPPER_UMLAUT: \"Ö\",\n U_UPPER_UMLAUT: \"Ü\",\n CENTS: \"¢\",\n POUND: \"£\",\n YEN: \"¥\",\n CURRENCY: \"¤\",\n PTS: \"₧\",\n FUNCTION: \"ƒ\",\n A_LOWER_ACCENT: \"á\",\n I_LOWER_ACCENT: \"í\",\n O_LOWER_ACCENT: \"ó\",\n U_LOWER_ACCENT: \"ú\",\n N_LOWER_TILDE: \"ñ\",\n N_UPPER_TILDE: \"Ñ\",\n A_SUPER: \"ª\",\n O_SUPER: \"º\",\n UPSIDEDOWN_QUESTION: \"¿\",\n SIDEWAYS_L: \"⌐\",\n NEGATION: \"¬\",\n ONE_HALF: \"½\",\n ONE_FOURTH: \"¼\",\n UPSIDEDOWN_EXCLAMATION: \"¡\",\n DOUBLE_LEFT: \"«\",\n DOUBLE_RIGHT: \"»\",\n LIGHT_SHADED_BOX: \"░\",\n MEDIUM_SHADED_BOX: \"▒\",\n DARK_SHADED_BOX: \"▓\",\n VERTICAL_LINE: \"│\",\n MAZE__SINGLE_RIGHT_T: \"┤\",\n MAZE_SINGLE_RIGHT_TOP: \"┐\",\n MAZE_SINGLE_RIGHT_BOTTOM_SMALL: \"┘\",\n MAZE_SINGLE_LEFT_TOP_SMALL: \"┌\",\n MAZE_SINGLE_LEFT_BOTTOM_SMALL: \"└\",\n MAZE_SINGLE_LEFT_T: \"├\",\n MAZE_SINGLE_BOTTOM_T: \"┴\",\n MAZE_SINGLE_TOP_T: \"┬\",\n MAZE_SINGLE_CENTER: \"┼\",\n MAZE_SINGLE_HORIZONTAL_LINE: \"─\",\n MAZE_SINGLE_RIGHT_DOUBLECENTER_T: \"╡\",\n MAZE_SINGLE_RIGHT_DOUBLE_BL: \"╛\",\n MAZE_SINGLE_RIGHT_DOUBLE_T: \"╢\",\n MAZE_SINGLE_RIGHT_DOUBLEBOTTOM_TOP: \"╖\",\n MAZE_SINGLE_RIGHT_DOUBLELEFT_TOP: \"╕\",\n MAZE_SINGLE_LEFT_DOUBLE_T: \"╞\",\n MAZE_SINGLE_BOTTOM_DOUBLE_T: \"╧\",\n MAZE_SINGLE_TOP_DOUBLE_T: \"╤\",\n MAZE_SINGLE_TOP_DOUBLECENTER_T: \"╥\",\n MAZE_SINGLE_BOTTOM_DOUBLECENTER_T: \"╨\",\n MAZE_SINGLE_LEFT_DOUBLERIGHT_BOTTOM: \"╘\",\n MAZE_SINGLE_LEFT_DOUBLERIGHT_TOP: \"╒\",\n MAZE_SINGLE_LEFT_DOUBLEBOTTOM_TOP: \"╓\",\n MAZE_SINGLE_LEFT_DOUBLETOP_BOTTOM: \"╙\",\n MAZE_SINGLE_LEFT_TOP: \"Γ\",\n MAZE_SINGLE_RIGHT_BOTTOM: \"╜\",\n MAZE_SINGLE_LEFT_CENTER: \"╟\",\n MAZE_SINGLE_DOUBLECENTER_CENTER: \"╫\",\n MAZE_SINGLE_DOUBLECROSS_CENTER: \"╪\",\n MAZE_DOUBLE_LEFT_CENTER: \"╣\",\n MAZE_DOUBLE_VERTICAL: \"║\",\n MAZE_DOUBLE_RIGHT_TOP: \"╗\",\n MAZE_DOUBLE_RIGHT_BOTTOM: \"╝\",\n MAZE_DOUBLE_LEFT_BOTTOM: \"╚\",\n MAZE_DOUBLE_LEFT_TOP: \"╔\",\n MAZE_DOUBLE_BOTTOM_T: \"╩\",\n MAZE_DOUBLE_TOP_T: \"╦\",\n MAZE_DOUBLE_LEFT_T: \"╠\",\n MAZE_DOUBLE_HORIZONTAL: \"═\",\n MAZE_DOUBLE_CROSS: \"╬\",\n SOLID_RECTANGLE: \"█\",\n THICK_LEFT_VERTICAL: \"▌\",\n THICK_RIGHT_VERTICAL: \"▐\",\n SOLID_SMALL_RECTANGLE_BOTTOM: \"▄\",\n SOLID_SMALL_RECTANGLE_TOP: \"▀\",\n PHI_UPPER: \"Φ\",\n INFINITY: \"∞\",\n INTERSECTION: \"∩\",\n DEFINITION: \"≡\",\n PLUS_MINUS: \"±\",\n GT_EQ: \"≥\",\n LT_EQ: \"≤\",\n THEREFORE: \"⌠\",\n SINCE: \"∵\",\n DOESNOT_EXIST: \"∄\",\n EXISTS: \"∃\",\n FOR_ALL: \"∀\",\n EXCLUSIVE_OR: \"⊕\",\n BECAUSE: \"⌡\",\n DIVIDE: \"÷\",\n APPROX: \"≈\",\n DEGREE: \"°\",\n BOLD_DOT: \"∙\",\n DOT_SMALL: \"·\",\n CHECK: \"√\",\n ITALIC_X: \"✗\",\n SUPER_N: \"ⁿ\",\n SQUARED: \"²\",\n CUBED: \"³\",\n SOLID_BOX: \"■\",\n PERMILE: \"‰\",\n REGISTERED_TM: \"®\",\n COPYRIGHT: \"©\",\n TRADEMARK: \"™\",\n BETA: \"β\",\n GAMMA: \"γ\",\n ZETA: \"ζ\",\n ETA: \"η\",\n IOTA: \"ι\",\n KAPPA: \"κ\",\n LAMBDA: \"λ\",\n NU: \"ν\",\n XI: \"ξ\",\n OMICRON: \"ο\",\n RHO: \"ρ\",\n UPSILON: \"υ\",\n CHI_LOWER: \"φ\",\n CHI_UPPER: \"χ\",\n PSI: \"ψ\",\n ALPHA: \"α\",\n ESZETT: \"ß\",\n PI: \"π\",\n SIGMA_UPPER: \"Σ\",\n SIGMA_LOWER: \"σ\",\n MU: \"µ\",\n TAU: \"τ\",\n THETA: \"Θ\",\n OMEGA: \"Ω\",\n DELTA: \"δ\",\n PHI_LOWER: \"φ\",\n EPSILON: \"ε\"\n };\n\n function pad(string, length, ch, end) {\n string = \"\" + string; //check for numbers\n ch = ch || \" \";\n var strLen = string.length;\n while (strLen < length) {\n if (end) {\n string += ch;\n } else {\n string = ch + string;\n }\n strLen++;\n }\n return string;\n }\n\n function truncate(string, length, end) {\n var ret = string;\n if (is.isString(ret)) {\n if (string.length > length) {\n if (end) {\n var l = string.length;\n ret = string.substring(l - length, l);\n } else {\n ret = string.substring(0, length);\n }\n }\n } else {\n ret = truncate(\"\" + ret, length);\n }\n return ret;\n }\n\n function format(str, obj) {\n if (obj instanceof Array) {\n var i = 0, len = obj.length;\n //find the matches\n return str.replace(FORMAT_REGEX, function (m, format, type) {\n var replacer, ret;\n if (i < len) {\n replacer = obj[i++];\n } else {\n //we are out of things to replace with so\n //just return the match?\n return m;\n }\n if (m === \"%s\" || m === \"%d\" || m === \"%D\") {\n //fast path!\n ret = replacer + \"\";\n } else if (m === \"%Z\") {\n ret = replacer.toUTCString();\n } else if (m === \"%j\") {\n try {\n ret = stringify(replacer);\n } catch (e) {\n throw new Error(\"stringExtended.format : Unable to parse json from \", replacer);\n }\n } else {\n format = format.replace(/^\\[|\\]$/g, \"\");\n switch (type) {\n case \"s\":\n ret = formatString(replacer, format);\n break;\n case \"d\":\n ret = formatNumber(replacer, format);\n break;\n case \"j\":\n ret = formatObject(replacer, format);\n break;\n case \"D\":\n ret = date.format(replacer, format);\n break;\n case \"Z\":\n ret = date.format(replacer, format, true);\n break;\n }\n }\n return ret;\n });\n } else if (isHash(obj)) {\n return str.replace(INTERP_REGEX, function (m, format, value) {\n value = obj[value];\n if (!is.isUndefined(value)) {\n if (format) {\n if (is.isString(value)) {\n return formatString(value, format);\n } else if (is.isNumber(value)) {\n return formatNumber(value, format);\n } else if (is.isDate(value)) {\n return date.format(value, format);\n } else if (is.isObject(value)) {\n return formatObject(value, format);\n }\n } else {\n return \"\" + value;\n }\n }\n return m;\n });\n } else {\n var args = aSlice.call(arguments).slice(1);\n return format(str, args);\n }\n }\n\n function toArray(testStr, delim) {\n var ret = [];\n if (testStr) {\n if (testStr.indexOf(delim) > 0) {\n ret = testStr.replace(/\\s+/g, \"\").split(delim);\n }\n else {\n ret.push(testStr);\n }\n }\n return ret;\n }\n\n function multiply(str, times) {\n var ret = [];\n if (times) {\n for (var i = 0; i < times; i++) {\n ret.push(str);\n }\n }\n return ret.join(\"\");\n }\n\n\n function style(str, options) {\n var ret, i, l;\n if (options) {\n if (is.isArray(str)) {\n ret = [];\n for (i = 0, l = str.length; i < l; i++) {\n ret.push(style(str[i], options));\n }\n } else if (options instanceof Array) {\n ret = str;\n for (i = 0, l = options.length; i < l; i++) {\n ret = style(ret, options[i]);\n }\n } else if (options in styles) {\n ret = '\\x1B[' + styles[options] + 'm' + str + '\\x1B[0m';\n }\n }\n return ret;\n }\n\n function escape(str, except) {\n return str.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, function (ch) {\n if (except && arr.indexOf(except, ch) !== -1) {\n return ch;\n }\n return \"\\\\\" + ch;\n });\n }\n\n function trim(str) {\n return str.replace(/^\\s*|\\s*$/g, \"\");\n }\n\n function trimLeft(str) {\n return str.replace(/^\\s*/, \"\");\n }\n\n function trimRight(str) {\n return str.replace(/\\s*$/, \"\");\n }\n\n function isEmpty(str) {\n return str.length === 0;\n }\n\n\n var string = {\n toArray: toArray,\n pad: pad,\n truncate: truncate,\n multiply: multiply,\n format: format,\n style: style,\n escape: escape,\n trim: trim,\n trimLeft: trimLeft,\n trimRight: trimRight,\n isEmpty: isEmpty\n };\n return extended.define(is.isString, string).define(is.isArray, {style: style}).expose(string).expose({characters: characters});\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineString(require(\"extended\"), require(\"is-extended\"), require(\"date-extended\"), require(\"array-extended\"));\n\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"extended\", \"is-extended\", \"date-extended\", \"array-extended\"], function (extended, is, date, arr) {\n return defineString(extended, is, date, arr);\n });\n } else {\n this.stringExtended = defineString(this.extended, this.isExtended, this.dateExtended, this.arrayExtended);\n }\n\n}).call(this);\n\n\n\n\n\n\n","// Underscore.js 1.13.1\n// https://underscorejs.org\n// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// Current version.\nvar VERSION = '1.13.1';\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nvar root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global ||\n Function('return this')() ||\n {};\n\n// Save bytes in the minified (but not gzipped) version:\nvar ArrayProto = Array.prototype, ObjProto = Object.prototype;\nvar SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nvar push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n// Modern feature detection.\nvar supportsArrayBuffer = typeof ArrayBuffer !== 'undefined',\n supportsDataView = typeof DataView !== 'undefined';\n\n// All **ECMAScript 5+** native function implementations that we hope to use\n// are declared here.\nvar nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create,\n nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;\n\n// Create references to these builtin functions because we override them.\nvar _isNaN = isNaN,\n _isFinite = isFinite;\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nvar hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n// The largest integer that can be represented exactly.\nvar MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n\n// Some functions take a variable number of arguments, or a few expected\n// arguments at the beginning and then a variable number of values to operate\n// on. This helper accumulates all remaining arguments past the function’s\n// argument length (or an explicit `startIndex`), into an array that becomes\n// the last argument. Similar to ES6’s \"rest parameter\".\nfunction restArguments(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n}\n\n// Is a given variable an object?\nfunction isObject(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n}\n\n// Is a given value equal to null?\nfunction isNull(obj) {\n return obj === null;\n}\n\n// Is a given variable undefined?\nfunction isUndefined(obj) {\n return obj === void 0;\n}\n\n// Is a given value a boolean?\nfunction isBoolean(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n}\n\n// Is a given value a DOM element?\nfunction isElement(obj) {\n return !!(obj && obj.nodeType === 1);\n}\n\n// Internal function for creating a `toString`-based type tester.\nfunction tagTester(name) {\n var tag = '[object ' + name + ']';\n return function(obj) {\n return toString.call(obj) === tag;\n };\n}\n\nvar isString = tagTester('String');\n\nvar isNumber = tagTester('Number');\n\nvar isDate = tagTester('Date');\n\nvar isRegExp = tagTester('RegExp');\n\nvar isError = tagTester('Error');\n\nvar isSymbol = tagTester('Symbol');\n\nvar isArrayBuffer = tagTester('ArrayBuffer');\n\nvar isFunction = tagTester('Function');\n\n// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old\n// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = root.document && root.document.childNodes;\nif (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n}\n\nvar isFunction$1 = isFunction;\n\nvar hasObjectTag = tagTester('Object');\n\n// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`.\n// In IE 11, the most common among them, this problem also applies to\n// `Map`, `WeakMap` and `Set`.\nvar hasStringTagBug = (\n supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8)))\n ),\n isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map));\n\nvar isDataView = tagTester('DataView');\n\n// In IE 10 - Edge 13, we need a different heuristic\n// to determine whether an object is a `DataView`.\nfunction ie10IsDataView(obj) {\n return obj != null && isFunction$1(obj.getInt8) && isArrayBuffer(obj.buffer);\n}\n\nvar isDataView$1 = (hasStringTagBug ? ie10IsDataView : isDataView);\n\n// Is a given value an array?\n// Delegates to ECMA5's native `Array.isArray`.\nvar isArray = nativeIsArray || tagTester('Array');\n\n// Internal function to check whether `key` is an own property name of `obj`.\nfunction has$1(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n}\n\nvar isArguments = tagTester('Arguments');\n\n// Define a fallback version of the method in browsers (ahem, IE < 9), where\n// there isn't any inspectable \"Arguments\" type.\n(function() {\n if (!isArguments(arguments)) {\n isArguments = function(obj) {\n return has$1(obj, 'callee');\n };\n }\n}());\n\nvar isArguments$1 = isArguments;\n\n// Is a given object a finite number?\nfunction isFinite$1(obj) {\n return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj));\n}\n\n// Is the given value `NaN`?\nfunction isNaN$1(obj) {\n return isNumber(obj) && _isNaN(obj);\n}\n\n// Predicate-generating function. Often useful outside of Underscore.\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n// Common internal logic for `isArrayLike` and `isBufferLike`.\nfunction createSizePropertyCheck(getSizeProperty) {\n return function(collection) {\n var sizeProperty = getSizeProperty(collection);\n return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX;\n }\n}\n\n// Internal helper to generate a function to obtain property `key` from `obj`.\nfunction shallowProperty(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n}\n\n// Internal helper to obtain the `byteLength` property of an object.\nvar getByteLength = shallowProperty('byteLength');\n\n// Internal helper to determine whether we should spend extensive checks against\n// `ArrayBuffer` et al.\nvar isBufferLike = createSizePropertyCheck(getByteLength);\n\n// Is a given value a typed array?\nvar typedArrayPattern = /\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;\nfunction isTypedArray(obj) {\n // `ArrayBuffer.isView` is the most future-proof, so use it when available.\n // Otherwise, fall back on the above regular expression.\n return nativeIsView ? (nativeIsView(obj) && !isDataView$1(obj)) :\n isBufferLike(obj) && typedArrayPattern.test(toString.call(obj));\n}\n\nvar isTypedArray$1 = supportsArrayBuffer ? isTypedArray : constant(false);\n\n// Internal helper to obtain the `length` property of an object.\nvar getLength = shallowProperty('length');\n\n// Internal helper to create a simple lookup structure.\n// `collectNonEnumProps` used to depend on `_.contains`, but this led to\n// circular imports. `emulatedSet` is a one-off solution that only works for\n// arrays of strings.\nfunction emulatedSet(keys) {\n var hash = {};\n for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;\n return {\n contains: function(key) { return hash[key]; },\n push: function(key) {\n hash[key] = true;\n return keys.push(key);\n }\n };\n}\n\n// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't\n// be iterated by `for key in ...` and thus missed. Extends `keys` in place if\n// needed.\nfunction collectNonEnumProps(obj, keys) {\n keys = emulatedSet(keys);\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = isFunction$1(constructor) && constructor.prototype || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (has$1(obj, prop) && !keys.contains(prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) {\n keys.push(prop);\n }\n }\n}\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nfunction keys(obj) {\n if (!isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (has$1(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n\n// Is a given array, string, or object empty?\n// An \"empty\" object has no enumerable own-properties.\nfunction isEmpty(obj) {\n if (obj == null) return true;\n // Skip the more expensive `toString`-based type checks if `obj` has no\n // `.length`.\n var length = getLength(obj);\n if (typeof length == 'number' && (\n isArray(obj) || isString(obj) || isArguments$1(obj)\n )) return length === 0;\n return getLength(keys(obj)) === 0;\n}\n\n// Returns whether an object has a given set of `key:value` pairs.\nfunction isMatch(object, attrs) {\n var _keys = keys(attrs), length = _keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = _keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n}\n\n// If Underscore is called as a function, it returns a wrapped object that can\n// be used OO-style. This wrapper holds altered versions of all functions added\n// through `_.mixin`. Wrapped objects may be chained.\nfunction _$1(obj) {\n if (obj instanceof _$1) return obj;\n if (!(this instanceof _$1)) return new _$1(obj);\n this._wrapped = obj;\n}\n\n_$1.VERSION = VERSION;\n\n// Extracts the result from a wrapped and chained object.\n_$1.prototype.value = function() {\n return this._wrapped;\n};\n\n// Provide unwrapping proxies for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_$1.prototype.valueOf = _$1.prototype.toJSON = _$1.prototype.value;\n\n_$1.prototype.toString = function() {\n return String(this._wrapped);\n};\n\n// Internal function to wrap or shallow-copy an ArrayBuffer,\n// typed array or DataView to a new view, reusing the buffer.\nfunction toBufferView(bufferSource) {\n return new Uint8Array(\n bufferSource.buffer || bufferSource,\n bufferSource.byteOffset || 0,\n getByteLength(bufferSource)\n );\n}\n\n// We use this string twice, so give it a name for minification.\nvar tagDataView = '[object DataView]';\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction eq(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) return b !== b;\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n return deepEq(a, b, aStack, bStack);\n}\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction deepEq(a, b, aStack, bStack) {\n // Unwrap any wrapped objects.\n if (a instanceof _$1) a = a._wrapped;\n if (b instanceof _$1) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n // Work around a bug in IE 10 - Edge 13.\n if (hasStringTagBug && className == '[object Object]' && isDataView$1(a)) {\n if (!isDataView$1(b)) return false;\n className = tagDataView;\n }\n switch (className) {\n // These types are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case '[object Symbol]':\n return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);\n case '[object ArrayBuffer]':\n case tagDataView:\n // Coerce to typed array so we can fall through.\n return deepEq(toBufferView(a), toBufferView(b), aStack, bStack);\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays && isTypedArray$1(a)) {\n var byteLength = getByteLength(a);\n if (byteLength !== getByteLength(b)) return false;\n if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true;\n areArrays = true;\n }\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction$1(aCtor) && aCtor instanceof aCtor &&\n isFunction$1(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var _keys = keys(a), key;\n length = _keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = _keys[length];\n if (!(has$1(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\n\n// Perform a deep comparison to check if two objects are equal.\nfunction isEqual(a, b) {\n return eq(a, b);\n}\n\n// Retrieve all the enumerable property names of an object.\nfunction allKeys(obj) {\n if (!isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n\n// Since the regular `Object.prototype.toString` type tests don't work for\n// some types in IE 11, we use a fingerprinting heuristic instead, based\n// on the methods. It's not great, but it's the best we got.\n// The fingerprint method lists are defined below.\nfunction ie11fingerprint(methods) {\n var length = getLength(methods);\n return function(obj) {\n if (obj == null) return false;\n // `Map`, `WeakMap` and `Set` have no enumerable keys.\n var keys = allKeys(obj);\n if (getLength(keys)) return false;\n for (var i = 0; i < length; i++) {\n if (!isFunction$1(obj[methods[i]])) return false;\n }\n // If we are testing against `WeakMap`, we need to ensure that\n // `obj` doesn't have a `forEach` method in order to distinguish\n // it from a regular `Map`.\n return methods !== weakMapMethods || !isFunction$1(obj[forEachName]);\n };\n}\n\n// In the interest of compact minification, we write\n// each string in the fingerprints only once.\nvar forEachName = 'forEach',\n hasName = 'has',\n commonInit = ['clear', 'delete'],\n mapTail = ['get', hasName, 'set'];\n\n// `Map`, `WeakMap` and `Set` each have slightly different\n// combinations of the above sublists.\nvar mapMethods = commonInit.concat(forEachName, mapTail),\n weakMapMethods = commonInit.concat(mapTail),\n setMethods = ['add'].concat(commonInit, forEachName, hasName);\n\nvar isMap = isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map');\n\nvar isWeakMap = isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap');\n\nvar isSet = isIE11 ? ie11fingerprint(setMethods) : tagTester('Set');\n\nvar isWeakSet = tagTester('WeakSet');\n\n// Retrieve the values of an object's properties.\nfunction values(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[_keys[i]];\n }\n return values;\n}\n\n// Convert an object into a list of `[key, value]` pairs.\n// The opposite of `_.object` with one argument.\nfunction pairs(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [_keys[i], obj[_keys[i]]];\n }\n return pairs;\n}\n\n// Invert the keys and values of an object. The values must be serializable.\nfunction invert(obj) {\n var result = {};\n var _keys = keys(obj);\n for (var i = 0, length = _keys.length; i < length; i++) {\n result[obj[_keys[i]]] = _keys[i];\n }\n return result;\n}\n\n// Return a sorted list of the function names available on the object.\nfunction functions(obj) {\n var names = [];\n for (var key in obj) {\n if (isFunction$1(obj[key])) names.push(key);\n }\n return names.sort();\n}\n\n// An internal function for creating assigner functions.\nfunction createAssigner(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n}\n\n// Extend a given object with all the properties in passed-in object(s).\nvar extend = createAssigner(allKeys);\n\n// Assigns a given object with all the own properties in the passed-in\n// object(s).\n// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\nvar extendOwn = createAssigner(keys);\n\n// Fill in a given object with default properties.\nvar defaults = createAssigner(allKeys, true);\n\n// Create a naked function reference for surrogate-prototype-swapping.\nfunction ctor() {\n return function(){};\n}\n\n// An internal function for creating a new object that inherits from another.\nfunction baseCreate(prototype) {\n if (!isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n var Ctor = ctor();\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n}\n\n// Creates an object that inherits from the given prototype object.\n// If additional properties are provided then they will be added to the\n// created object.\nfunction create(prototype, props) {\n var result = baseCreate(prototype);\n if (props) extendOwn(result, props);\n return result;\n}\n\n// Create a (shallow-cloned) duplicate of an object.\nfunction clone(obj) {\n if (!isObject(obj)) return obj;\n return isArray(obj) ? obj.slice() : extend({}, obj);\n}\n\n// Invokes `interceptor` with the `obj` and then returns `obj`.\n// The primary purpose of this method is to \"tap into\" a method chain, in\n// order to perform operations on intermediate results within the chain.\nfunction tap(obj, interceptor) {\n interceptor(obj);\n return obj;\n}\n\n// Normalize a (deep) property `path` to array.\n// Like `_.iteratee`, this function can be customized.\nfunction toPath$1(path) {\n return isArray(path) ? path : [path];\n}\n_$1.toPath = toPath$1;\n\n// Internal wrapper for `_.toPath` to enable minification.\n// Similar to `cb` for `_.iteratee`.\nfunction toPath(path) {\n return _$1.toPath(path);\n}\n\n// Internal function to obtain a nested property in `obj` along `path`.\nfunction deepGet(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n}\n\n// Get the value of the (deep) property on `path` from `object`.\n// If any property in `path` does not exist or if the value is\n// `undefined`, return `defaultValue` instead.\n// The `path` is normalized through `_.toPath`.\nfunction get(object, path, defaultValue) {\n var value = deepGet(object, toPath(path));\n return isUndefined(value) ? defaultValue : value;\n}\n\n// Shortcut function for checking if an object has a given property directly on\n// itself (in other words, not on a prototype). Unlike the internal `has`\n// function, this public version can also traverse nested properties.\nfunction has(obj, path) {\n path = toPath(path);\n var length = path.length;\n for (var i = 0; i < length; i++) {\n var key = path[i];\n if (!has$1(obj, key)) return false;\n obj = obj[key];\n }\n return !!length;\n}\n\n// Keep the identity function around for default iteratees.\nfunction identity(value) {\n return value;\n}\n\n// Returns a predicate for checking whether an object has a given set of\n// `key:value` pairs.\nfunction matcher(attrs) {\n attrs = extendOwn({}, attrs);\n return function(obj) {\n return isMatch(obj, attrs);\n };\n}\n\n// Creates a function that, when passed an object, will traverse that object’s\n// properties down the given `path`, specified as an array of keys or indices.\nfunction property(path) {\n path = toPath(path);\n return function(obj) {\n return deepGet(obj, path);\n };\n}\n\n// Internal function that returns an efficient (for current engines) version\n// of the passed-in callback, to be repeatedly applied in other Underscore\n// functions.\nfunction optimizeCb(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n}\n\n// An internal function to generate callbacks that can be applied to each\n// element in a collection, returning the desired result — either `_.identity`,\n// an arbitrary callback, a property matcher, or a property accessor.\nfunction baseIteratee(value, context, argCount) {\n if (value == null) return identity;\n if (isFunction$1(value)) return optimizeCb(value, context, argCount);\n if (isObject(value) && !isArray(value)) return matcher(value);\n return property(value);\n}\n\n// External wrapper for our callback generator. Users may customize\n// `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n// This abstraction hides the internal-only `argCount` argument.\nfunction iteratee(value, context) {\n return baseIteratee(value, context, Infinity);\n}\n_$1.iteratee = iteratee;\n\n// The function we call internally to generate a callback. It invokes\n// `_.iteratee` if overridden, otherwise `baseIteratee`.\nfunction cb(value, context, argCount) {\n if (_$1.iteratee !== iteratee) return _$1.iteratee(value, context);\n return baseIteratee(value, context, argCount);\n}\n\n// Returns the results of applying the `iteratee` to each element of `obj`.\n// In contrast to `_.map` it returns an object.\nfunction mapObject(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = keys(obj),\n length = _keys.length,\n results = {};\n for (var index = 0; index < length; index++) {\n var currentKey = _keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n\n// Predicate-generating function. Often useful outside of Underscore.\nfunction noop(){}\n\n// Generates a function for a given object that returns a given property.\nfunction propertyOf(obj) {\n if (obj == null) return noop;\n return function(path) {\n return get(obj, path);\n };\n}\n\n// Run a function **n** times.\nfunction times(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n}\n\n// Return a random integer between `min` and `max` (inclusive).\nfunction random(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n}\n\n// A (possibly faster) way to get the current timestamp as an integer.\nvar now = Date.now || function() {\n return new Date().getTime();\n};\n\n// Internal helper to generate functions for escaping and unescaping strings\n// to/from HTML interpolation.\nfunction createEscaper(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n}\n\n// Internal list of HTML entities for escaping.\nvar escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n};\n\n// Function for escaping strings to HTML interpolation.\nvar _escape = createEscaper(escapeMap);\n\n// Internal list of HTML entities for unescaping.\nvar unescapeMap = invert(escapeMap);\n\n// Function for unescaping strings from HTML interpolation.\nvar _unescape = createEscaper(unescapeMap);\n\n// By default, Underscore uses ERB-style template delimiters. Change the\n// following template settings to use alternative delimiters.\nvar templateSettings = _$1.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n};\n\n// When customizing `_.templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/;\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\nvar escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\nfunction escapeChar(match) {\n return '\\\\' + escapes[match];\n}\n\n// In order to prevent third-party code injection through\n// `_.templateSettings.variable`, we test it against the following regular\n// expression. It is intentionally a bit more liberal than just matching valid\n// identifiers, but still prevents possible loopholes through defaults or\n// destructuring assignment.\nvar bareIdentifier = /^\\s*(\\w|\\$)+\\s*$/;\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\n// NB: `oldSettings` only exists for backwards compatibility.\nfunction template(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = defaults({}, settings, _$1.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offset.\n return match;\n });\n source += \"';\\n\";\n\n var argument = settings.variable;\n if (argument) {\n // Insure against third-party code injection. (CVE-2021-23358)\n if (!bareIdentifier.test(argument)) throw new Error(\n 'variable is not a bare identifier: ' + argument\n );\n } else {\n // If a variable is not specified, place data values in local scope.\n source = 'with(obj||{}){\\n' + source + '}\\n';\n argument = 'obj';\n }\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n var render;\n try {\n render = new Function(argument, '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _$1);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n}\n\n// Traverses the children of `obj` along `path`. If a child is a function, it\n// is invoked with its parent as context. Returns the value of the final\n// child, or `fallback` if any child is undefined.\nfunction result(obj, path, fallback) {\n path = toPath(path);\n var length = path.length;\n if (!length) {\n return isFunction$1(fallback) ? fallback.call(obj) : fallback;\n }\n for (var i = 0; i < length; i++) {\n var prop = obj == null ? void 0 : obj[path[i]];\n if (prop === void 0) {\n prop = fallback;\n i = length; // Ensure we don't continue iterating.\n }\n obj = isFunction$1(prop) ? prop.call(obj) : prop;\n }\n return obj;\n}\n\n// Generate a unique integer id (unique within the entire client session).\n// Useful for temporary DOM ids.\nvar idCounter = 0;\nfunction uniqueId(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n}\n\n// Start chaining a wrapped Underscore object.\nfunction chain(obj) {\n var instance = _$1(obj);\n instance._chain = true;\n return instance;\n}\n\n// Internal function to execute `sourceFunc` bound to `context` with optional\n// `args`. Determines whether to execute a function as a constructor or as a\n// normal function.\nfunction executeBound(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (isObject(result)) return result;\n return self;\n}\n\n// Partially apply a function by creating a version that has had some of its\n// arguments pre-filled, without changing its dynamic `this` context. `_` acts\n// as a placeholder by default, allowing any combination of arguments to be\n// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\nvar partial = restArguments(function(func, boundArgs) {\n var placeholder = partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n});\n\npartial.placeholder = _$1;\n\n// Create a function bound to a given object (assigning `this`, and arguments,\n// optionally).\nvar bind = restArguments(function(func, context, args) {\n if (!isFunction$1(func)) throw new TypeError('Bind must be called on a function');\n var bound = restArguments(function(callArgs) {\n return executeBound(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n});\n\n// Internal helper for collection methods to determine whether a collection\n// should be iterated as an array or as an object.\n// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\nvar isArrayLike = createSizePropertyCheck(getLength);\n\n// Internal implementation of a recursive `flatten` function.\nfunction flatten$1(input, depth, strict, output) {\n output = output || [];\n if (!depth && depth !== 0) {\n depth = Infinity;\n } else if (depth <= 0) {\n return output.concat(input);\n }\n var idx = output.length;\n for (var i = 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (isArray(value) || isArguments$1(value))) {\n // Flatten current level of array or arguments object.\n if (depth > 1) {\n flatten$1(value, depth - 1, strict, output);\n idx = output.length;\n } else {\n var j = 0, len = value.length;\n while (j < len) output[idx++] = value[j++];\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n}\n\n// Bind a number of an object's methods to that object. Remaining arguments\n// are the method names to be bound. Useful for ensuring that all callbacks\n// defined on an object belong to it.\nvar bindAll = restArguments(function(obj, keys) {\n keys = flatten$1(keys, false, false);\n var index = keys.length;\n if (index < 1) throw new Error('bindAll must be passed function names');\n while (index--) {\n var key = keys[index];\n obj[key] = bind(obj[key], obj);\n }\n return obj;\n});\n\n// Memoize an expensive function by storing its results.\nfunction memoize(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!has$1(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n}\n\n// Delays a function for the given number of milliseconds, and then calls\n// it with the arguments supplied.\nvar delay = restArguments(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n});\n\n// Defers a function, scheduling it to run after the current call stack has\n// cleared.\nvar defer = partial(delay, _$1, 1);\n\n// Returns a function, that, when invoked, will only be triggered at most once\n// during a given window of time. Normally, the throttled function will run\n// as much as it can, without ever going more than once per `wait` duration;\n// but if you'd like to disable the execution on the leading edge, pass\n// `{leading: false}`. To disable execution on the trailing edge, ditto.\nfunction throttle(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function() {\n previous = options.leading === false ? 0 : now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function() {\n var _now = now();\n if (!previous && options.leading === false) previous = _now;\n var remaining = wait - (_now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = _now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n\n// When a sequence of calls of the returned function ends, the argument\n// function is triggered. The end of a sequence is defined by the `wait`\n// parameter. If `immediate` is passed, the argument function will be\n// triggered at the beginning of the sequence instead of at the end.\nfunction debounce(func, wait, immediate) {\n var timeout, previous, args, result, context;\n\n var later = function() {\n var passed = now() - previous;\n if (wait > passed) {\n timeout = setTimeout(later, wait - passed);\n } else {\n timeout = null;\n if (!immediate) result = func.apply(context, args);\n // This check is needed because `func` can recursively invoke `debounced`.\n if (!timeout) args = context = null;\n }\n };\n\n var debounced = restArguments(function(_args) {\n context = this;\n args = _args;\n previous = now();\n if (!timeout) {\n timeout = setTimeout(later, wait);\n if (immediate) result = func.apply(context, args);\n }\n return result;\n });\n\n debounced.cancel = function() {\n clearTimeout(timeout);\n timeout = args = context = null;\n };\n\n return debounced;\n}\n\n// Returns the first function passed as an argument to the second,\n// allowing you to adjust arguments, run code before and after, and\n// conditionally execute the original function.\nfunction wrap(func, wrapper) {\n return partial(wrapper, func);\n}\n\n// Returns a negated version of the passed-in predicate.\nfunction negate(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n}\n\n// Returns a function that is the composition of a list of functions, each\n// consuming the return value of the function that follows.\nfunction compose() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n\n// Returns a function that will only be executed on and after the Nth call.\nfunction after(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n\n// Returns a function that will only be executed up to (but not including) the\n// Nth call.\nfunction before(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n}\n\n// Returns a function that will be executed at most one time, no matter how\n// often you call it. Useful for lazy initialization.\nvar once = partial(before, 2);\n\n// Returns the first key on an object that passes a truth test.\nfunction findKey(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = keys(obj), key;\n for (var i = 0, length = _keys.length; i < length; i++) {\n key = _keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n}\n\n// Internal function to generate `_.findIndex` and `_.findLastIndex`.\nfunction createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n}\n\n// Returns the first index on an array-like that passes a truth test.\nvar findIndex = createPredicateIndexFinder(1);\n\n// Returns the last index on an array-like that passes a truth test.\nvar findLastIndex = createPredicateIndexFinder(-1);\n\n// Use a comparator function to figure out the smallest index at which\n// an object should be inserted so as to maintain order. Uses binary search.\nfunction sortedIndex(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n}\n\n// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.\nfunction createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), isNaN$1);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n}\n\n// Return the position of the first occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n// If the array is large and already in sort order, pass `true`\n// for **isSorted** to use binary search.\nvar indexOf = createIndexFinder(1, findIndex, sortedIndex);\n\n// Return the position of the last occurrence of an item in an array,\n// or -1 if the item is not included in the array.\nvar lastIndexOf = createIndexFinder(-1, findLastIndex);\n\n// Return the first value which passes a truth test.\nfunction find(obj, predicate, context) {\n var keyFinder = isArrayLike(obj) ? findIndex : findKey;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n}\n\n// Convenience version of a common use case of `_.find`: getting the first\n// object containing specific `key:value` pairs.\nfunction findWhere(obj, attrs) {\n return find(obj, matcher(attrs));\n}\n\n// The cornerstone for collection functions, an `each`\n// implementation, aka `forEach`.\n// Handles raw objects in addition to array-likes. Treats all\n// sparse array-likes as if they were dense.\nfunction each(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var _keys = keys(obj);\n for (i = 0, length = _keys.length; i < length; i++) {\n iteratee(obj[_keys[i]], _keys[i], obj);\n }\n }\n return obj;\n}\n\n// Return the results of applying the iteratee to each element.\nfunction map(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n\n// Internal helper to create a reducing function, iterating left or right.\nfunction createReduce(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[_keys ? _keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = _keys ? _keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n };\n}\n\n// **Reduce** builds up a single result from a list of values, aka `inject`,\n// or `foldl`.\nvar reduce = createReduce(1);\n\n// The right-associative version of reduce, also known as `foldr`.\nvar reduceRight = createReduce(-1);\n\n// Return all the elements that pass a truth test.\nfunction filter(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n}\n\n// Return all the elements for which a truth test fails.\nfunction reject(obj, predicate, context) {\n return filter(obj, negate(cb(predicate)), context);\n}\n\n// Determine whether all of the elements pass a truth test.\nfunction every(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n}\n\n// Determine if at least one element in the object passes a truth test.\nfunction some(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n}\n\n// Determine if the array or object contains a given item (using `===`).\nfunction contains(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return indexOf(obj, item, fromIndex) >= 0;\n}\n\n// Invoke a method (with arguments) on every item in a collection.\nvar invoke = restArguments(function(obj, path, args) {\n var contextPath, func;\n if (isFunction$1(path)) {\n func = path;\n } else {\n path = toPath(path);\n contextPath = path.slice(0, -1);\n path = path[path.length - 1];\n }\n return map(obj, function(context) {\n var method = func;\n if (!method) {\n if (contextPath && contextPath.length) {\n context = deepGet(context, contextPath);\n }\n if (context == null) return void 0;\n method = context[path];\n }\n return method == null ? method : method.apply(context, args);\n });\n});\n\n// Convenience version of a common use case of `_.map`: fetching a property.\nfunction pluck(obj, key) {\n return map(obj, property(key));\n}\n\n// Convenience version of a common use case of `_.filter`: selecting only\n// objects containing specific `key:value` pairs.\nfunction where(obj, attrs) {\n return filter(obj, matcher(attrs));\n}\n\n// Return the maximum element (or element-based computation).\nfunction max(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n\n// Return the minimum element (or element-based computation).\nfunction min(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n\n// Sample **n** random values from a collection using the modern version of the\n// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n// If **n** is not specified, returns a single random element.\n// The internal `guard` argument allows it to work with `_.map`.\nfunction sample(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n return obj[random(obj.length - 1)];\n }\n var sample = isArrayLike(obj) ? clone(obj) : values(obj);\n var length = getLength(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = random(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n}\n\n// Shuffle a collection.\nfunction shuffle(obj) {\n return sample(obj, Infinity);\n}\n\n// Sort the object's values by a criterion produced by an iteratee.\nfunction sortBy(obj, iteratee, context) {\n var index = 0;\n iteratee = cb(iteratee, context);\n return pluck(map(obj, function(value, key, list) {\n return {\n value: value,\n index: index++,\n criteria: iteratee(value, key, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n}\n\n// An internal function used for aggregate \"group by\" operations.\nfunction group(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = cb(iteratee, context);\n each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n}\n\n// Groups the object's values by a criterion. Pass either a string attribute\n// to group by, or a function that returns the criterion.\nvar groupBy = group(function(result, value, key) {\n if (has$1(result, key)) result[key].push(value); else result[key] = [value];\n});\n\n// Indexes the object's values by a criterion, similar to `_.groupBy`, but for\n// when you know that your index values will be unique.\nvar indexBy = group(function(result, value, key) {\n result[key] = value;\n});\n\n// Counts instances of an object that group by a certain criterion. Pass\n// either a string attribute to count by, or a function that returns the\n// criterion.\nvar countBy = group(function(result, value, key) {\n if (has$1(result, key)) result[key]++; else result[key] = 1;\n});\n\n// Split a collection into two arrays: one whose elements all pass the given\n// truth test, and one whose elements all do not pass the truth test.\nvar partition = group(function(result, value, pass) {\n result[pass ? 0 : 1].push(value);\n}, true);\n\n// Safely create a real, live array from anything iterable.\nvar reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\nfunction toArray(obj) {\n if (!obj) return [];\n if (isArray(obj)) return slice.call(obj);\n if (isString(obj)) {\n // Keep surrogate pair characters together.\n return obj.match(reStrSymbol);\n }\n if (isArrayLike(obj)) return map(obj, identity);\n return values(obj);\n}\n\n// Return the number of elements in a collection.\nfunction size(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : keys(obj).length;\n}\n\n// Internal `_.pick` helper function to determine whether `key` is an enumerable\n// property name of `obj`.\nfunction keyInObj(value, key, obj) {\n return key in obj;\n}\n\n// Return a copy of the object only containing the allowed properties.\nvar pick = restArguments(function(obj, keys) {\n var result = {}, iteratee = keys[0];\n if (obj == null) return result;\n if (isFunction$1(iteratee)) {\n if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n keys = allKeys(obj);\n } else {\n iteratee = keyInObj;\n keys = flatten$1(keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n});\n\n// Return a copy of the object without the disallowed properties.\nvar omit = restArguments(function(obj, keys) {\n var iteratee = keys[0], context;\n if (isFunction$1(iteratee)) {\n iteratee = negate(iteratee);\n if (keys.length > 1) context = keys[1];\n } else {\n keys = map(flatten$1(keys, false, false), String);\n iteratee = function(value, key) {\n return !contains(keys, key);\n };\n }\n return pick(obj, iteratee, context);\n});\n\n// Returns everything but the last entry of the array. Especially useful on\n// the arguments object. Passing **n** will return all the values in\n// the array, excluding the last N.\nfunction initial(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n}\n\n// Get the first element of an array. Passing **n** will return the first N\n// values in the array. The **guard** check allows it to work with `_.map`.\nfunction first(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[0];\n return initial(array, array.length - n);\n}\n\n// Returns everything but the first entry of the `array`. Especially useful on\n// the `arguments` object. Passing an **n** will return the rest N values in the\n// `array`.\nfunction rest(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n}\n\n// Get the last element of an array. Passing **n** will return the last N\n// values in the array.\nfunction last(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[array.length - 1];\n return rest(array, Math.max(0, array.length - n));\n}\n\n// Trim out all falsy values from an array.\nfunction compact(array) {\n return filter(array, Boolean);\n}\n\n// Flatten out an array, either recursively (by default), or up to `depth`.\n// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively.\nfunction flatten(array, depth) {\n return flatten$1(array, depth, false);\n}\n\n// Take the difference between one array and a number of other arrays.\n// Only the elements present in just the first array will remain.\nvar difference = restArguments(function(array, rest) {\n rest = flatten$1(rest, true, true);\n return filter(array, function(value){\n return !contains(rest, value);\n });\n});\n\n// Return a version of the array that does not contain the specified value(s).\nvar without = restArguments(function(array, otherArrays) {\n return difference(array, otherArrays);\n});\n\n// Produce a duplicate-free version of the array. If the array has already\n// been sorted, you have the option of using a faster algorithm.\n// The faster algorithm will not work with an iteratee if the iteratee\n// is not a one-to-one function, so providing an iteratee will disable\n// the faster algorithm.\nfunction uniq(array, isSorted, iteratee, context) {\n if (!isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n}\n\n// Produce an array that contains the union: each distinct element from all of\n// the passed-in arrays.\nvar union = restArguments(function(arrays) {\n return uniq(flatten$1(arrays, true, true));\n});\n\n// Produce an array that contains every item shared between all the\n// passed-in arrays.\nfunction intersection(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (contains(result, item)) continue;\n var j;\n for (j = 1; j < argsLength; j++) {\n if (!contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n}\n\n// Complement of zip. Unzip accepts an array of arrays and groups\n// each array's elements on shared indices.\nfunction unzip(array) {\n var length = array && max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = pluck(array, index);\n }\n return result;\n}\n\n// Zip together multiple lists into a single array -- elements that share\n// an index go together.\nvar zip = restArguments(unzip);\n\n// Converts lists into objects. Pass either a single array of `[key, value]`\n// pairs, or two parallel arrays of the same length -- one of keys, and one of\n// the corresponding values. Passing by pairs is the reverse of `_.pairs`.\nfunction object(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n}\n\n// Generate an integer Array containing an arithmetic progression. A port of\n// the native Python `range()` function. See\n// [the Python documentation](https://docs.python.org/library/functions.html#range).\nfunction range(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n if (!step) {\n step = stop < start ? -1 : 1;\n }\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n}\n\n// Chunk a single array into multiple arrays, each containing `count` or fewer\n// items.\nfunction chunk(array, count) {\n if (count == null || count < 1) return [];\n var result = [];\n var i = 0, length = array.length;\n while (i < length) {\n result.push(slice.call(array, i, i += count));\n }\n return result;\n}\n\n// Helper function to continue chaining intermediate results.\nfunction chainResult(instance, obj) {\n return instance._chain ? _$1(obj).chain() : obj;\n}\n\n// Add your own custom functions to the Underscore object.\nfunction mixin(obj) {\n each(functions(obj), function(name) {\n var func = _$1[name] = obj[name];\n _$1.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return chainResult(this, func.apply(_$1, args));\n };\n });\n return _$1;\n}\n\n// Add all mutator `Array` functions to the wrapper.\neach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _$1.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) {\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) {\n delete obj[0];\n }\n }\n return chainResult(this, obj);\n };\n});\n\n// Add all accessor `Array` functions to the wrapper.\neach(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _$1.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) obj = method.apply(obj, arguments);\n return chainResult(this, obj);\n };\n});\n\n// Named Exports\n\nvar allExports = {\n __proto__: null,\n VERSION: VERSION,\n restArguments: restArguments,\n isObject: isObject,\n isNull: isNull,\n isUndefined: isUndefined,\n isBoolean: isBoolean,\n isElement: isElement,\n isString: isString,\n isNumber: isNumber,\n isDate: isDate,\n isRegExp: isRegExp,\n isError: isError,\n isSymbol: isSymbol,\n isArrayBuffer: isArrayBuffer,\n isDataView: isDataView$1,\n isArray: isArray,\n isFunction: isFunction$1,\n isArguments: isArguments$1,\n isFinite: isFinite$1,\n isNaN: isNaN$1,\n isTypedArray: isTypedArray$1,\n isEmpty: isEmpty,\n isMatch: isMatch,\n isEqual: isEqual,\n isMap: isMap,\n isWeakMap: isWeakMap,\n isSet: isSet,\n isWeakSet: isWeakSet,\n keys: keys,\n allKeys: allKeys,\n values: values,\n pairs: pairs,\n invert: invert,\n functions: functions,\n methods: functions,\n extend: extend,\n extendOwn: extendOwn,\n assign: extendOwn,\n defaults: defaults,\n create: create,\n clone: clone,\n tap: tap,\n get: get,\n has: has,\n mapObject: mapObject,\n identity: identity,\n constant: constant,\n noop: noop,\n toPath: toPath$1,\n property: property,\n propertyOf: propertyOf,\n matcher: matcher,\n matches: matcher,\n times: times,\n random: random,\n now: now,\n escape: _escape,\n unescape: _unescape,\n templateSettings: templateSettings,\n template: template,\n result: result,\n uniqueId: uniqueId,\n chain: chain,\n iteratee: iteratee,\n partial: partial,\n bind: bind,\n bindAll: bindAll,\n memoize: memoize,\n delay: delay,\n defer: defer,\n throttle: throttle,\n debounce: debounce,\n wrap: wrap,\n negate: negate,\n compose: compose,\n after: after,\n before: before,\n once: once,\n findKey: findKey,\n findIndex: findIndex,\n findLastIndex: findLastIndex,\n sortedIndex: sortedIndex,\n indexOf: indexOf,\n lastIndexOf: lastIndexOf,\n find: find,\n detect: find,\n findWhere: findWhere,\n each: each,\n forEach: each,\n map: map,\n collect: map,\n reduce: reduce,\n foldl: reduce,\n inject: reduce,\n reduceRight: reduceRight,\n foldr: reduceRight,\n filter: filter,\n select: filter,\n reject: reject,\n every: every,\n all: every,\n some: some,\n any: some,\n contains: contains,\n includes: contains,\n include: contains,\n invoke: invoke,\n pluck: pluck,\n where: where,\n max: max,\n min: min,\n shuffle: shuffle,\n sample: sample,\n sortBy: sortBy,\n groupBy: groupBy,\n indexBy: indexBy,\n countBy: countBy,\n partition: partition,\n toArray: toArray,\n size: size,\n pick: pick,\n omit: omit,\n first: first,\n head: first,\n take: first,\n initial: initial,\n last: last,\n rest: rest,\n tail: rest,\n drop: rest,\n compact: compact,\n flatten: flatten,\n without: without,\n uniq: uniq,\n unique: uniq,\n union: union,\n intersection: intersection,\n difference: difference,\n unzip: unzip,\n transpose: unzip,\n zip: zip,\n object: object,\n range: range,\n chunk: chunk,\n mixin: mixin,\n 'default': _$1\n};\n\n// Default Export\n\n// Add all of the Underscore functions to the wrapper object.\nvar _ = mixin(allExports);\n// Legacy Node.js API.\n_._ = _;\n\nexports.VERSION = VERSION;\nexports._ = _;\nexports._escape = _escape;\nexports._unescape = _unescape;\nexports.after = after;\nexports.allKeys = allKeys;\nexports.before = before;\nexports.bind = bind;\nexports.bindAll = bindAll;\nexports.chain = chain;\nexports.chunk = chunk;\nexports.clone = clone;\nexports.compact = compact;\nexports.compose = compose;\nexports.constant = constant;\nexports.contains = contains;\nexports.countBy = countBy;\nexports.create = create;\nexports.debounce = debounce;\nexports.defaults = defaults;\nexports.defer = defer;\nexports.delay = delay;\nexports.difference = difference;\nexports.each = each;\nexports.every = every;\nexports.extend = extend;\nexports.extendOwn = extendOwn;\nexports.filter = filter;\nexports.find = find;\nexports.findIndex = findIndex;\nexports.findKey = findKey;\nexports.findLastIndex = findLastIndex;\nexports.findWhere = findWhere;\nexports.first = first;\nexports.flatten = flatten;\nexports.functions = functions;\nexports.get = get;\nexports.groupBy = groupBy;\nexports.has = has;\nexports.identity = identity;\nexports.indexBy = indexBy;\nexports.indexOf = indexOf;\nexports.initial = initial;\nexports.intersection = intersection;\nexports.invert = invert;\nexports.invoke = invoke;\nexports.isArguments = isArguments$1;\nexports.isArray = isArray;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isBoolean = isBoolean;\nexports.isDataView = isDataView$1;\nexports.isDate = isDate;\nexports.isElement = isElement;\nexports.isEmpty = isEmpty;\nexports.isEqual = isEqual;\nexports.isError = isError;\nexports.isFinite = isFinite$1;\nexports.isFunction = isFunction$1;\nexports.isMap = isMap;\nexports.isMatch = isMatch;\nexports.isNaN = isNaN$1;\nexports.isNull = isNull;\nexports.isNumber = isNumber;\nexports.isObject = isObject;\nexports.isRegExp = isRegExp;\nexports.isSet = isSet;\nexports.isString = isString;\nexports.isSymbol = isSymbol;\nexports.isTypedArray = isTypedArray$1;\nexports.isUndefined = isUndefined;\nexports.isWeakMap = isWeakMap;\nexports.isWeakSet = isWeakSet;\nexports.iteratee = iteratee;\nexports.keys = keys;\nexports.last = last;\nexports.lastIndexOf = lastIndexOf;\nexports.map = map;\nexports.mapObject = mapObject;\nexports.matcher = matcher;\nexports.max = max;\nexports.memoize = memoize;\nexports.min = min;\nexports.mixin = mixin;\nexports.negate = negate;\nexports.noop = noop;\nexports.now = now;\nexports.object = object;\nexports.omit = omit;\nexports.once = once;\nexports.pairs = pairs;\nexports.partial = partial;\nexports.partition = partition;\nexports.pick = pick;\nexports.pluck = pluck;\nexports.property = property;\nexports.propertyOf = propertyOf;\nexports.random = random;\nexports.range = range;\nexports.reduce = reduce;\nexports.reduceRight = reduceRight;\nexports.reject = reject;\nexports.rest = rest;\nexports.restArguments = restArguments;\nexports.result = result;\nexports.sample = sample;\nexports.shuffle = shuffle;\nexports.size = size;\nexports.some = some;\nexports.sortBy = sortBy;\nexports.sortedIndex = sortedIndex;\nexports.tap = tap;\nexports.template = template;\nexports.templateSettings = templateSettings;\nexports.throttle = throttle;\nexports.times = times;\nexports.toArray = toArray;\nexports.toPath = toPath$1;\nexports.union = union;\nexports.uniq = uniq;\nexports.uniqueId = uniqueId;\nexports.unzip = unzip;\nexports.values = values;\nexports.where = where;\nexports.without = without;\nexports.wrap = wrap;\nexports.zip = zip;\n//# sourceMappingURL=underscore-node-f.cjs.map\n","// Underscore.js 1.13.1\n// https://underscorejs.org\n// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\nvar underscoreNodeF = require('./underscore-node-f.cjs');\n\n\n\nmodule.exports = underscoreNodeF._;\n//# sourceMappingURL=underscore-node.cjs.map\n","/**\n * @module rules-engine\n *\n * Business logic for interacting with rules documents\n */\n\nconst pouchdbProvider = require('./pouchdb-provider');\nconst rulesEmitter = require('./rules-emitter');\nconst rulesStateStore = require('./rules-state-store');\nconst wireupToProvider = require('./provider-wireup');\n\n/**\n * @param {Object} db Medic pouchdb database\n */\nmodule.exports = db => {\n const provider = pouchdbProvider(db);\n return {\n /**\n * @param {Object} settings Settings for the behavior of the rules engine\n * @param {Object} settings.rules Rules code from settings doc\n * @param {Object[]} settings.taskSchedules Task schedules from settings doc\n * @param {Object[]} settings.targets Target definitions from settings doc\n * @param {Boolean} settings.enableTasks Flag to enable tasks\n * @param {Boolean} settings.enableTargets Flag to enable targets\n * @param {Object} settings.contact User's hydrated contact document\n * @param {Object} settings.user User's settings document\n */\n initialize: (settings) => wireupToProvider.initialize(provider, settings),\n\n /**\n * @returns {Boolean} True if the rules engine is enabled and ready for use\n */\n isEnabled: () => rulesEmitter.isEnabled() && rulesEmitter.isLatestNoolsSchema(),\n\n /**\n * Refreshes all rules documents for a set of contacts and returns their task documents\n *\n * @param {string[]} contactIds An array of contact ids. If undefined, returns tasks for all contacts\n * @returns {Promise} All the fresh task docs owned by contactIds\n */\n fetchTasksFor: contactIds => wireupToProvider.fetchTasksFor(provider, contactIds),\n\n /**\n * Returns a breakdown of tasks by state and title for the provided list of contacts\n *\n * @param {string[]} contactIds An array of contact ids. If undefined, returns breakdown for all contacts\n * @returns {Promise} The breakdown of tasks counts by state and title\n */\n fetchTasksBreakdown: contactIds => wireupToProvider.fetchTasksBreakdown(provider, contactIds),\n\n /**\n * Refreshes all rules documents and returns the latest target document\n *\n * @param {Object} filterInterval Target emissions with date within the interval will be aggregated into the\n * target scores\n * @param {Integer} filterInterval.start Start timestamp of interval\n * @param {Integer} filterInterval.end End timestamp of interval\n * @returns {Promise} Array of fresh targets\n */\n fetchTargets: filterInterval => wireupToProvider.fetchTargets(provider, filterInterval),\n\n /**\n * Indicate that the task documents associated with a given subjectId are dirty.\n *\n * @param {string[]} subjectIds An array of subject ids\n *\n * @returns {Promise} To mark the subjectIds as dirty\n */\n updateEmissionsFor: subjectIds => wireupToProvider.updateEmissionsFor(provider, subjectIds),\n\n /**\n * Determines if either the settings or user's hydrated contact document have changed in a way which will impact\n * the result of rules calculations.\n * If they have changed in a meaningful way, the calculation state of all contacts is reset\n *\n * @param {Object} settings Updated settings\n * @param {Object} settings.rules Rules code from settings doc\n * @param {Object[]} settings.taskSchedules Task schedules from settings doc\n * @param {Object[]} settings.targets Target definitions from settings doc\n * @param {Boolean} settings.enableTasks Flag to enable tasks\n * @param {Boolean} settings.enableTargets Flag to enable targets\n * @param {Object} settings.contact User's hydrated contact document\n * @param {Object} settings.user User's user-settings document\n */\n rulesConfigChange: (settings) => {\n const cacheIsReset = rulesStateStore.rulesConfigChange(settings);\n if (cacheIsReset) {\n rulesEmitter.shutdown();\n rulesEmitter.initialize(settings);\n }\n },\n\n /**\n * Returns a list of UUIDs of tracked contacts that are marked as dirty\n * @returns {Array} list of dirty contacts UUIDs\n */\n getDirtyContacts: () => rulesStateStore.getDirtyContacts(),\n };\n};\n","/**\n * @module pouchdb-provider\n *\n * Wireup for accessing rules document data via medic pouch db\n */\n\n// TODO work out how to pass in the logger from node/browser\n/* eslint-disable no-console */\nconst moment = require('moment');\nconst registrationUtils = require('@medic/registration-utils');\nconst uniqBy = require('lodash/uniqBy');\n\nconst RULES_STATE_DOCID = '_local/rulesStateStore';\nconst docsOf = (query) => {\n return query.then(result => {\n const rows = uniqBy(result.rows, 'id');\n return rows.map(row => row.doc).filter(existing => existing);\n });\n};\n\nconst rowsOf = (query) => query.then(result => uniqBy(result.rows, 'id'));\n\nconst medicPouchProvider = db => {\n const self = {\n // PouchDB.query slows down when provided with a large keys array.\n // For users with ~1000 contacts it is ~50x faster to provider a start/end key instead of specifying all ids\n allTasks: prefix => {\n const options = { startkey: `${prefix}-`, endkey: `${prefix}-\\ufff0`, include_docs: true };\n return docsOf(db.query('medic-client/tasks_by_contact', options));\n },\n\n allTaskData: userSettingsDoc => {\n const userSettingsId = userSettingsDoc && userSettingsDoc._id;\n return Promise.all([\n docsOf(db.query('medic-client/contacts_by_type', { include_docs: true })),\n docsOf(db.query('medic-client/reports_by_subject', { include_docs: true })),\n self.allTasks('requester'),\n ])\n .then(([contactDocs, reportDocs, taskDocs]) => ({ contactDocs, reportDocs, taskDocs, userSettingsId }));\n },\n\n contactsBySubjectId: subjectIds => {\n const keys = subjectIds.map(key => ['shortcode', key]);\n return db.query('medic-client/contacts_by_reference', { keys, include_docs: true })\n .then(results => {\n const shortcodeIds = results.rows.map(result => result.doc._id);\n const idsThatArentShortcodes = subjectIds.filter(id => !results.rows.map(row => row.key[1]).includes(id));\n\n return [...shortcodeIds, ...idsThatArentShortcodes];\n });\n },\n\n stateChangeCallback: docUpdateClosure(db),\n\n commitTargetDoc: (targets, userContactDoc, userSettingsDoc, docTag, force = false) => {\n const userContactId = userContactDoc && userContactDoc._id;\n const userSettingsId = userSettingsDoc && userSettingsDoc._id;\n const _id = `target~${docTag}~${userContactId}~${userSettingsId}`;\n const createNew = () => ({\n _id,\n type: 'target',\n user: userSettingsId,\n owner: userContactId,\n reporting_period: docTag,\n });\n\n const today = moment().startOf('day').valueOf();\n return db.get(_id)\n .catch(createNew)\n .then(existingDoc => {\n if (existingDoc.updated_date === today && !force) {\n return false;\n }\n\n existingDoc.targets = targets;\n existingDoc.updated_date = today;\n return db.put(existingDoc);\n });\n },\n\n commitTaskDocs: taskDocs => {\n if (!taskDocs || taskDocs.length === 0) {\n return Promise.resolve([]);\n }\n\n console.debug(`Committing ${taskDocs.length} task document updates`);\n return db.bulkDocs(taskDocs)\n .catch(err => console.error('Error committing task documents', err));\n },\n\n existingRulesStateStore: () => db.get(RULES_STATE_DOCID).catch(() => ({ _id: RULES_STATE_DOCID })),\n\n tasksByRelation: (contactIds, prefix) => {\n const keys = contactIds.map(contactId => `${prefix}-${contactId}`);\n return docsOf(db.query('medic-client/tasks_by_contact', { keys, include_docs: true }));\n },\n\n allTaskRowsByOwner: (contactIds) => {\n const keys = contactIds.map(contactId => (['owner', 'all', contactId]));\n return rowsOf(db.query('medic-client/tasks_by_contact', { keys }));\n },\n\n allTaskRows: () => {\n const options = {\n startkey: ['owner', 'all'],\n endkey: ['owner', 'all', '\\ufff0'],\n };\n\n return rowsOf(db.query('medic-client/tasks_by_contact', options));\n },\n\n taskDataFor: (contactIds, userSettingsDoc) => {\n if (!contactIds || contactIds.length === 0) {\n return Promise.resolve({});\n }\n\n return docsOf(db.allDocs({ keys: contactIds, include_docs: true }))\n .then(contactDocs => {\n const subjectIds = contactDocs.reduce((agg, contactDoc) => {\n registrationUtils.getSubjectIds(contactDoc).forEach(subjectId => agg.add(subjectId));\n return agg;\n }, new Set(contactIds));\n\n const keys = Array.from(subjectIds);\n return Promise.all([\n docsOf(db.query('medic-client/reports_by_subject', { keys, include_docs: true })),\n self.tasksByRelation(contactIds, 'requester'),\n ])\n .then(([reportDocs, taskDocs]) => {\n // tighten the connection between reports and contacts\n // a report will only be allowed to generate tasks for a single contact!\n reportDocs = reportDocs.filter(report => {\n const subjectId = registrationUtils.getSubjectId(report);\n return subjectIds.has(subjectId);\n });\n\n return {\n userSettingsId: userSettingsDoc && userSettingsDoc._id,\n contactDocs,\n reportDocs,\n taskDocs,\n };\n });\n });\n },\n };\n\n return self;\n};\n\nmedicPouchProvider.RULES_STATE_DOCID = RULES_STATE_DOCID;\n\nconst docUpdateClosure = db => {\n // previousResult helps avoid conflict errors if this functions is used asynchronously\n let previousResult = Promise.resolve();\n return (baseDoc, assigned) => {\n Object.assign(baseDoc, assigned);\n\n previousResult = previousResult\n .then(() => db.put(baseDoc))\n .then(updatedDoc => (baseDoc._rev = updatedDoc.rev))\n .catch(err => console.error(`Error updating ${baseDoc._id}: ${err}`))\n .then(() => {\n // unsure of how browsers handle long promise chains, so break the chain when possible\n previousResult = Promise.resolve();\n });\n\n return previousResult;\n };\n};\n\nmodule.exports = medicPouchProvider;\n","/**\n * @module wireup\n *\n * Wireup a data provider to the rules-engine\n */\n\nconst moment = require('moment');\nconst registrationUtils = require('@medic/registration-utils');\n\nconst TaskStates = require('./task-states');\nconst refreshRulesEmissions = require('./refresh-rules-emissions');\nconst rulesEmitter = require('./rules-emitter');\nconst rulesStateStore = require('./rules-state-store');\nconst updateTemporalStates = require('./update-temporal-states');\nconst calendarInterval = require('@medic/calendar-interval');\n\nlet wireupOptions;\n\nmodule.exports = {\n /**\n * @param {Object} provider A data provider\n * @param {Object} settings Settings for the behavior of the provider\n * @param {Object} settings.rules Rules code from settings doc\n * @param {Object[]} settings.taskSchedules Task schedules from settings doc\n * @param {Object[]} settings.targets Target definitions from settings doc\n * @param {Boolean} settings.enableTasks Flag to enable tasks\n * @param {Boolean} settings.enableTargets Flag to enable targets\n * @param {number} settings.monthStartDate reporting interval start date\n * @param {Object} userDoc User's hydrated contact document\n */\n initialize: (provider, settings) => {\n const isEnabled = rulesEmitter.initialize(settings);\n if (!isEnabled) {\n return Promise.resolve();\n }\n\n const { enableTasks=true, enableTargets=true } = settings;\n wireupOptions = { enableTasks, enableTargets };\n\n return provider\n .existingRulesStateStore()\n .then(existingStateDoc => {\n if (!rulesEmitter.isLatestNoolsSchema()) {\n throw Error('Rules Engine: Updates to the nools schema are required');\n }\n\n const contactClosure = updatedState => provider.stateChangeCallback(\n existingStateDoc,\n { rulesStateStore: updatedState }\n );\n const needsBuilding = rulesStateStore.load(existingStateDoc.rulesStateStore, settings, contactClosure);\n return handleIntervalTurnover(provider, settings).then(() => {\n if (!needsBuilding) {\n return;\n }\n\n rulesStateStore.build(settings, contactClosure);\n });\n });\n },\n\n /**\n * Refreshes the rules emissions for all contacts\n * Fetches all tasks in non-terminal state owned by the contacts\n * Updates the temporal states of the task documents\n * Commits those changes (async)\n *\n * @param {Object} provider A data provider\n * @param {string[]} contactIds An array of contact ids. If undefined, returns tasks for all contacts\n * @returns {Promise} All the fresh task docs owned by contacts\n */\n fetchTasksFor: (provider, contactIds) => {\n if (!rulesEmitter.isEnabled() || !wireupOptions.enableTasks) {\n return disabledResponse();\n }\n\n return enqueue(() => {\n const calculationTimestamp = Date.now();\n return refreshRulesEmissionForContacts(provider, calculationTimestamp, contactIds)\n .then(() => contactIds ? provider.tasksByRelation(contactIds, 'owner') : provider.allTasks('owner'))\n .then(tasksToDisplay => {\n const docsToCommit = updateTemporalStates(tasksToDisplay, calculationTimestamp);\n provider.commitTaskDocs(docsToCommit);\n return tasksToDisplay.filter(taskDoc => taskDoc.state === TaskStates.Ready);\n });\n });\n },\n\n /**\n * Returns a breakdown of task counts by state and title for the provided contacts, or all contacts\n * Does NOT refresh rules emissions\n * @param {Object} provider A data provider\n * @param {string[]} contactIds An array of contact ids. If undefined, returns breakdown for all contacts\n * @return {Promise<{\n * Ready: number,\n * Draft: number,\n * Failed: number,\n * Completed: number,\n * Cancelled: number,\n *}>}\n */\n fetchTasksBreakdown: (provider, contactIds) => {\n const tasksByState = Object.assign({}, TaskStates.states);\n Object\n .keys(tasksByState)\n .forEach(state => tasksByState[state] = 0);\n\n if (!rulesEmitter.isEnabled() || !wireupOptions.enableTasks) {\n return Promise.resolve(tasksByState);\n }\n\n const getTasks = contactIds ? provider.allTaskRowsByOwner(contactIds) : provider.allTaskRows();\n\n return getTasks.then(taskRows => {\n taskRows.forEach(({ value: { state } }) => {\n if (Object.hasOwnProperty.call(tasksByState, state)) {\n tasksByState[state]++;\n }\n });\n\n return tasksByState;\n });\n },\n\n /**\n * Refreshes the rules emissions for all contacts\n *\n * @param {Object} provider A data provider\n * @param {Object} filterInterval Target emissions with date within the interval will be aggregated into the target\n * scores\n * @param {Integer} filterInterval.start Start timestamp of interval\n * @param {Integer} filterInterval.end End timestamp of interval\n * @returns {Promise} The fresh aggregate target doc\n */\n fetchTargets: (provider, filterInterval) => {\n if (!rulesEmitter.isEnabled() || !wireupOptions.enableTargets) {\n return disabledResponse();\n }\n\n const calculationTimestamp = Date.now();\n const targetEmissionFilter = filterInterval && (emission => {\n // 4th parameter of isBetween represents inclusivity. By default or using ( is exclusive, [ is inclusive\n return moment(emission.date).isBetween(filterInterval.start, filterInterval.end, null, '[]');\n });\n\n return enqueue(() => {\n return refreshRulesEmissionForContacts(provider, calculationTimestamp)\n .then(() => {\n const targets = rulesStateStore.aggregateStoredTargetEmissions(targetEmissionFilter);\n return storeTargetsDoc(provider, targets, filterInterval).then(() => targets);\n });\n });\n },\n\n /**\n * Indicate that the rules emissions associated with a given subjectId are dirty\n *\n * @param {Object} provider A data provider\n * @param {string[]} subjectIds An array of subject ids\n *\n * @returns {Promise} To complete the transaction marking the subjectIds as dirty\n */\n updateEmissionsFor: (provider, subjectIds) => {\n if (!subjectIds) {\n subjectIds = [];\n }\n\n if (subjectIds && !Array.isArray(subjectIds)) {\n subjectIds = [subjectIds];\n }\n\n // this function accepts subject ids, but rulesStateStore accepts a contact id, so a conversion is required\n return provider.contactsBySubjectId(subjectIds)\n .then(contactIds => rulesStateStore.markDirty(contactIds));\n },\n};\n\nlet refreshQueue = Promise.resolve();\nconst enqueue = callback => {\n const listeners = [];\n const eventQueue = [];\n const emit = evtName => {\n // we have to emit `queued` immediately, but there are no listeners listening at this point\n // eventQueue will keep a list of listener-less events. when listeners are registered, we check if they\n // have events in eventQueue, and call their callback immediately for each matching queued event.\n if (!listeners[evtName]) {\n return eventQueue.push(evtName);\n }\n listeners[evtName].forEach(callback => callback());\n };\n\n emit('queued');\n refreshQueue = refreshQueue.then(() => {\n emit('running');\n return callback();\n });\n\n refreshQueue.on = (evtName, callback) => {\n listeners[evtName] = listeners[evtName] || [];\n listeners[evtName].push(callback);\n eventQueue.forEach(queuedEvent => queuedEvent === evtName && callback());\n return refreshQueue;\n };\n\n return refreshQueue;\n};\n\nconst disabledResponse = () => {\n const p = Promise.resolve([]);\n p.on = () => p;\n return p;\n};\n\nconst refreshRulesEmissionForContacts = (provider, calculationTimestamp, contactIds) => {\n const refreshAndSave = (freshData, updatedContactIds) => (\n refreshRulesEmissions(freshData, calculationTimestamp, wireupOptions)\n .then(refreshed => Promise.all([\n rulesStateStore.storeTargetEmissions(updatedContactIds, refreshed.targetEmissions),\n provider.commitTaskDocs(refreshed.updatedTaskDocs),\n ]))\n );\n\n const refreshForAllContacts = (calculationTimestamp) => (\n provider.allTaskData(rulesStateStore.currentUserSettings())\n .then(freshData => (\n refreshAndSave(freshData)\n .then(() => {\n const contactIds = freshData.contactDocs.map(doc => doc._id);\n\n const subjectIds = freshData.contactDocs.reduce((agg, contactDoc) => {\n registrationUtils.getSubjectIds(contactDoc).forEach(subjectId => agg.add(subjectId));\n return agg;\n }, new Set());\n\n const headlessSubjectIds = freshData.reportDocs\n .map(doc => registrationUtils.getSubjectId(doc))\n .filter(subjectId => !subjectIds.has(subjectId));\n\n rulesStateStore.markAllFresh(calculationTimestamp, [...contactIds, ...headlessSubjectIds]);\n })\n ))\n );\n\n const refreshForKnownContacts = (calculationTimestamp, contactIds) => {\n const dirtyContactIds = contactIds.filter(contactId => rulesStateStore.isDirty(contactId));\n return provider.taskDataFor(dirtyContactIds, rulesStateStore.currentUserSettings())\n .then(freshData => refreshAndSave(freshData, dirtyContactIds))\n .then(() => {\n rulesStateStore.markFresh(calculationTimestamp, dirtyContactIds);\n });\n };\n\n return handleIntervalTurnover(provider, { monthStartDate: rulesStateStore.getMonthStartDate() }).then(() => {\n if (contactIds) {\n return refreshForKnownContacts(calculationTimestamp, contactIds);\n }\n\n // If the contact state store does not contain all contacts, build up that list (contact doc ids + headless ids in\n // reports/tasks)\n if (!rulesStateStore.hasAllContacts()) {\n return refreshForAllContacts(calculationTimestamp);\n }\n\n // Once the contact state store has all contacts, trust it and only refresh those marked dirty\n return refreshForKnownContacts(calculationTimestamp, rulesStateStore.getContactIds());\n });\n};\n\nconst storeTargetsDoc = (provider, targets, filterInterval, force = false) => {\n const targetDocTag = filterInterval ? moment(filterInterval.end).format('YYYY-MM') : 'latest';\n const minifyTarget = target => ({ id: target.id, value: target.value });\n\n return provider.commitTargetDoc(\n targets.map(minifyTarget),\n rulesStateStore.currentUserContact(),\n rulesStateStore.currentUserSettings(),\n targetDocTag,\n force\n );\n};\n\n// Because we only save the `target` document once per day (when we calculate targets for the first time),\n// we're losing all updates to targets that happened in the last day of the reporting period.\n// This function takes the last saved state (which may be stale) and generates the targets doc for the corresponding\n// reporting interval (that includes the date when the state was calculated).\n// We don't recalculate the state prior to this because we support targets that count events infinitely to emit `now`,\n// which means that they would all be excluded from the emission filter (being outside the past reporting interval).\n// https://github.com/medic/cht-core/issues/6209\nconst handleIntervalTurnover = (provider, { monthStartDate }) => {\n if (!rulesStateStore.isLoaded() || !wireupOptions.enableTargets) {\n return Promise.resolve();\n }\n\n const stateCalculatedAt = rulesStateStore.stateLastUpdatedAt();\n if (!stateCalculatedAt) {\n return Promise.resolve();\n }\n\n const currentInterval = calendarInterval.getCurrent(monthStartDate);\n // 4th parameter of isBetween represents inclusivity. By default or using ( is exclusive, [ is inclusive\n if (moment(stateCalculatedAt).isBetween(currentInterval.start, currentInterval.end, null, '[]')) {\n return Promise.resolve();\n }\n\n const filterInterval = calendarInterval.getInterval(monthStartDate, stateCalculatedAt);\n const targetEmissionFilter = (emission => {\n // 4th parameter of isBetween represents inclusivity. By default or using ( is exclusive, [ is inclusive\n return moment(emission.date).isBetween(filterInterval.start, filterInterval.end, null, '[]');\n });\n\n const targets = rulesStateStore.aggregateStoredTargetEmissions(targetEmissionFilter);\n return storeTargetsDoc(provider, targets, filterInterval, true);\n};\n","/**\n * @module refresh-rules-emissions\n * Uses rules-emitter to calculate the fresh emissions for a set of contacts, their reports, and their tasks\n * Creates or updates one task document per unique emission id\n * Cancels task documents in non-terminal states if they were not emitted\n *\n * @requires rules-emitter to be initialized\n */\n\nconst rulesEmitter = require('./rules-emitter');\nconst TaskStates = require('./task-states');\nconst transformTaskEmissionToDoc = require('./transform-task-emission-to-doc');\n\n/**\n * @param {Object[]} freshData.contactDocs A set of contact documents\n * @param {Object[]} freshData.reportDocs All of the contacts' reports\n * @param {Object[]} freshData.taskDocs All of the contacts' task documents (must be linked by requester to a contact)\n * @param {Object[]} freshData.userSettingsId The id of the user's settings document\n *\n * @param {int} calculationTimestamp Timestamp for the round of rules calculations\n *\n * @param {Object=} [options] Options for the behavior when refreshing rules\n * @param {Boolean} [options.enableTasks=true] Flag to enable tasks\n * @param {Boolean} [options.enableTargets=true] Flag to enable targets\n *\n * @returns {Object} result\n * @returns {Object[]} result.targetEmissions Array of raw target emissions\n * @returns {Object[]} result.updatedTaskDocs Array of updated task documents\n */\nmodule.exports = (freshData = {}, calculationTimestamp = Date.now(), { enableTasks=true, enableTargets=true }={}) => {\n const { contactDocs = [], reportDocs = [], taskDocs = [] } = freshData;\n return rulesEmitter.getEmissionsFor(contactDocs, reportDocs, taskDocs)\n .then(emissions => Promise.all([\n enableTasks ? getUpdatedTaskDocs(emissions.tasks, freshData, calculationTimestamp, enableTasks) : [],\n enableTargets ? emissions.targets : [],\n ]))\n .then(([updatedTaskDocs, targetEmissions]) => ({ updatedTaskDocs, targetEmissions }));\n};\n\nconst getUpdatedTaskDocs = (taskEmissions, freshData, calculationTimestamp) => {\n const { taskDocs = [], userSettingsId } = freshData;\n const { winners: emissionIdToLatestDocMap, duplicates: duplicateTaskDocs } = disambiguateTaskDocs(\n taskDocs,\n calculationTimestamp\n );\n\n const timelyEmissions = taskEmissions.filter(emission => TaskStates.isTimely(emission, calculationTimestamp));\n const taskTransforms = disambiguateEmissions(timelyEmissions, calculationTimestamp)\n .map(taskEmission => {\n const existingDoc = emissionIdToLatestDocMap[taskEmission._id];\n return transformTaskEmissionToDoc(taskEmission, calculationTimestamp, userSettingsId, existingDoc);\n });\n\n const freshTaskDocs = taskTransforms.map(doc => doc.taskDoc);\n const cancelledDocs = getCancellationUpdates(freshTaskDocs, freshData.taskDocs, calculationTimestamp);\n const cancelledDuplicatedDocs = getDeduplicationUpdates(duplicateTaskDocs, calculationTimestamp);\n const updatedTaskDocs = taskTransforms.filter(doc => doc.isUpdated).map(result => result.taskDoc);\n return [...updatedTaskDocs, ...cancelledDocs, ...cancelledDuplicatedDocs];\n};\n\n/**\n * Examine the existing task documents which were previously emitted by the same contact\n * Cancel any doc that is in a non-terminal state and does not have an emission to keep it alive\n */\nconst getCancellationUpdates = (freshDocs, existingTaskDocs = [], calculatedAt = 0) => {\n const existingNonTerminalTaskDocs = existingTaskDocs.filter(doc => !TaskStates.isTerminal(doc.state));\n const currentEmissionIds = new Set(freshDocs.map(doc => doc.emission._id));\n\n return existingNonTerminalTaskDocs\n .filter(doc => !currentEmissionIds.has(doc.emission._id))\n .map(doc => TaskStates.setStateOnTaskDoc(doc, TaskStates.Cancelled, calculatedAt));\n};\n\n/**\n * All duplicate task docs that are not in a terminal state are \"Cancelled\" with a \"duplicate\" reason\n * @param {Array} duplicatedTaskDocs - array of task docs that exist in the local DB\n * @param {number} calculatedAt - Timestamp for the round of rules calculations\n * @returns {Array} - task docs with updated state\n */\nconst getDeduplicationUpdates = (duplicatedTaskDocs, calculatedAt) => {\n return duplicatedTaskDocs\n .filter(doc => !TaskStates.isTerminal(doc.state))\n .map(doc => TaskStates.setStateOnTaskDoc(doc, TaskStates.Cancelled, calculatedAt, 'duplicate'));\n};\n\n/*\nIt is possible to receive multiple emissions with the same id. When this happens, we need to pick one winner.\nWe pick the \"most ready\" emission.\n*/\nconst disambiguateEmissions = (taskEmissions, forTime) => {\n const winners = taskEmissions.reduce((agg, emission) => {\n if (!agg[emission._id]) {\n agg[emission._id] = emission;\n } else {\n const incomingState = TaskStates.calculateState(emission, forTime) || TaskStates.Cancelled;\n const currentState = TaskStates.calculateState(agg[emission._id], forTime) || TaskStates.Cancelled;\n if (TaskStates.isMoreReadyThan(incomingState, currentState)) {\n agg[emission._id] = emission;\n }\n }\n return agg;\n }, {});\n\n return Object.keys(winners).map(key => winners[key]); // Object.values()\n};\n\n/**\n * It's possible to have multiple task docs with the same emission id. (For example, when the same account logs in\n * on multiple devices). When this happens, we pick the \"most ready\" most recent task. However, tasks that are authored\n * in the future are discarded.\n * @param {Array} taskDocs - An array of already exiting task documents\n * @param {number} forTime - current calculation timestamp\n * @returns {Object} result\n * @returns {Object} result.winners - A map of emission id to task pairs\n * @returns {Array} result.duplicates - A list of task documents that are duplicates and need to be cancelled\n */\nconst disambiguateTaskDocs = (taskDocs, forTime) => {\n const duplicates = [];\n const winners = {};\n\n const taskDocsByEmissionId = mapEmissionIdToTaskDocs(taskDocs, forTime);\n\n Object.keys(taskDocsByEmissionId).forEach(emissionId => {\n taskDocsByEmissionId[emissionId].forEach(taskDoc => {\n if (!winners[emissionId]) {\n winners[emissionId] = taskDoc;\n return;\n }\n\n const stateComparison = TaskStates.compareState(taskDoc.state, winners[emissionId].state);\n if (\n // if taskDoc is more ready\n stateComparison < 0 ||\n // or taskDoc is more recent, when having the same state\n (stateComparison === 0 && taskDoc.authoredOn > winners[emissionId].authoredOn)\n ) {\n duplicates.push(winners[emissionId]);\n winners[emissionId] = taskDoc;\n } else {\n duplicates.push(taskDoc);\n }\n });\n });\n\n return { winners, duplicates };\n};\n\nconst mapEmissionIdToTaskDocs = (taskDocs, maxTimestamp) => {\n const tasksByEmission = {};\n taskDocs\n // mitigate the fallout of a user who rewinds their system-clock after creating task docs\n .filter(doc => doc.authoredOn <= maxTimestamp)\n .forEach(doc => {\n const emissionId = doc.emission._id;\n if (!tasksByEmission[emissionId]) {\n tasksByEmission[emissionId] = [];\n }\n tasksByEmission[emissionId].push(doc);\n });\n return tasksByEmission;\n};\n","/**\n * @module rules-emitter\n * Encapsulates interactions with the nools library\n * Handles marshaling of documents into nools facts\n * Promisifies the execution of partner \"rules\" code\n * Ensures memory allocated by nools is freed after each run\n */\nconst nools = require('nools');\nconst nootils = require('cht-nootils');\nconst registrationUtils = require('@medic/registration-utils');\n\nlet flow;\n\n/**\n* Sets the rules emitter to an uninitialized state.\n*/\nconst shutdown = () => {\n nools.deleteFlows();\n flow = undefined;\n};\n\nmodule.exports = {\n /**\n * Initializes the rules emitter\n *\n * @param {Object} settings Settings for the behavior of the rules emitter\n * @param {Object} settings.rules Rules code from settings doc\n * @param {Object[]} settings.taskSchedules Task schedules from settings doc\n * @param {Object} settings.contact The logged in user's contact document\n * @returns {Boolean} Success\n */\n initialize: (settings) => {\n if (flow) {\n throw Error('Attempted to initialize the rules emitter multiple times.');\n }\n\n if (!settings.rules) {\n return false;\n }\n\n shutdown();\n\n try {\n const settingsDoc = { tasks: { schedules: settings.taskSchedules } };\n const nootilsInstance = nootils(settingsDoc);\n flow = nools.compile(settings.rules, {\n name: 'medic',\n scope: {\n Utils: nootilsInstance,\n user: settings.contact,\n cht: settings.chtScriptApi,\n },\n });\n } catch (err) {\n shutdown();\n throw err;\n }\n\n return !!flow;\n },\n\n /**\n * When upgrading to version 3.8, partners are required to make schema changes in their partner code\n * TODO: Add link to documentation\n *\n * @returns True if the schema changes are in place\n */\n isLatestNoolsSchema: () => {\n if (!flow) {\n throw Error('task emitter is not enabled -- cannot determine schema version');\n }\n\n const Task = flow.getDefined('task');\n const Target = flow.getDefined('target');\n const hasProperty = (obj, attr) => Object.hasOwnProperty.call(obj, attr);\n return hasProperty(Task.prototype, 'readyStart') &&\n hasProperty(Task.prototype, 'readyEnd') &&\n hasProperty(Target.prototype, 'contact');\n },\n\n /**\n * Runs the partner's rules code for a set of documents and returns all emissions from nools\n *\n * @param {Object[]} contactDocs A set of contact documents\n * @param {Object[]} reportDocs All of the contacts' reports\n * @param {Object[]} taskDocs All of the contacts' task documents (must be linked by requester to a contact)\n *\n * @returns {Promise} emissions The raw emissions from nools\n * @returns {Object[]} emissions.tasks Array of task emissions\n * @returns {Object[]} emissions.targets Array of target emissions\n */\n getEmissionsFor: (contactDocs, reportDocs = [], taskDocs = []) => {\n if (!flow) {\n throw Error('task emitter is not enabled -- cannot get emissions');\n }\n\n if (!Array.isArray(contactDocs)) {\n throw Error('invalid argument: contactDocs is expected to be an array');\n }\n\n if (!Array.isArray(reportDocs)) {\n throw Error('invalid argument: reportDocs is expected to be an array');\n }\n\n if (!Array.isArray(taskDocs)) {\n throw Error('invalid argument: taskDocs is expected to be an array');\n }\n\n const session = startSession();\n try {\n const facts = marshalDocsIntoNoolsFacts(contactDocs, reportDocs, taskDocs);\n facts.forEach(session.assert);\n } catch (err) {\n session.dispose();\n throw err;\n }\n\n return session.match();\n },\n\n /**\n * @returns True if the rules emitter is initialized and ready for use\n */\n isEnabled: () => !!flow,\n\n shutdown,\n};\n\nconst startSession = function() {\n if (!flow) {\n throw Error('Failed to start task session. Not initialized');\n }\n\n const session = flow.getSession();\n const tasks = [];\n const targets = [];\n session.on('task', task => tasks.push(task));\n session.on('target', target => targets.push(target));\n\n return {\n assert: session.assert.bind(session),\n dispose: session.dispose.bind(session),\n\n // session.match can return a thenable but not a promise. so wrap it in a real promise\n match: () => new Promise((resolve, reject) => {\n session.match(err => {\n session.dispose();\n if (err) {\n return reject(err);\n }\n\n resolve({ tasks, targets });\n });\n }),\n };\n};\n\nconst marshalDocsIntoNoolsFacts = (contactDocs, reportDocs, taskDocs) => {\n const Contact = flow.getDefined('contact');\n\n const factByContactId = contactDocs.reduce((agg, contact) => {\n agg[contact._id] = new Contact({ contact, reports: [], tasks: [] });\n return agg;\n }, {});\n\n const factBySubjectId = contactDocs.reduce((agg, contactDoc) => {\n const subjectIds = registrationUtils.getSubjectIds(contactDoc);\n for (const subjectId of subjectIds) {\n if (!agg[subjectId]) {\n agg[subjectId] = factByContactId[contactDoc._id];\n }\n }\n return agg;\n }, {});\n\n const addHeadlessContact = (contactId) => {\n const contact = contactId ? { _id: contactId } : undefined;\n const newFact = new Contact({ contact, reports: [], tasks: [] });\n factByContactId[contactId] = factBySubjectId[contactId] = newFact;\n return newFact;\n };\n\n for (const report of reportDocs) {\n const subjectIdInReport = registrationUtils.getSubjectId(report);\n const factOfPatient = factBySubjectId[subjectIdInReport] || addHeadlessContact(subjectIdInReport);\n factOfPatient.reports.push(report);\n }\n\n if (Object.hasOwnProperty.call(Contact.prototype, 'tasks')) {\n for (const task of taskDocs) {\n const sourceId = task.requester;\n const factOfPatient = factBySubjectId[sourceId] || addHeadlessContact(sourceId);\n factOfPatient.tasks.push(task);\n }\n }\n\n\n return Object.keys(factByContactId).map(key => {\n factByContactId[key].reports = factByContactId[key].reports.sort((a, b) => a.reported_date - b.reported_date);\n return factByContactId[key];\n }); // Object.values(factByContactId)\n};\n","/**\n * @module rules-state-store\n * In-memory datastore containing\n * 1. Details on the state of each contact's rules calculations\n * 2. Target emissions @see target-state\n */\nconst md5 = require('md5');\nconst calendarInterval = require('@medic/calendar-interval');\nconst targetState = require('./target-state');\n\nconst EXPIRE_CALCULATION_AFTER_MS = 7 * 24 * 60 * 60 * 1000;\nlet state;\nlet currentUserContact;\nlet currentUserSettings;\nlet onStateChange;\n\nconst self = {\n /**\n * Initializes the rules-state-store from an existing state. If existing state is invalid, builds an empty state.\n *\n * @param {Object} existingState State object previously passed to the stateChangeCallback\n * @param {Object} settings Settings for the behavior of the rules store\n * @param {Object} settings.contact User's hydrated contact document\n * @param {Object} settings.user User's user-settings document\n * @param {Object} stateChangeCallback Callback which is invoked whenever the state changes.\n * Receives the updated state as the only parameter.\n * @returns {Boolean} that represents whether or not the state needs to be rebuilt\n */\n load: (existingState, settings, stateChangeCallback) => {\n if (state) {\n throw Error('Attempted to initialize the rules-state-store multiple times.');\n }\n\n state = existingState;\n currentUserContact = settings.contact;\n currentUserSettings = settings.user;\n setOnChangeState(stateChangeCallback);\n\n const rulesConfigHash = hashRulesConfig(settings);\n if (state && state.rulesConfigHash !== rulesConfigHash) {\n state.stale = true;\n }\n\n return !state || state.stale;\n },\n\n /**\n * Initializes an empty rules-state-store.\n *\n * @param {Object} settings Settings for the behavior of the rules store\n * @param {Object} settings.contact User's hydrated contact document\n * @param {Object} settings.user User's user-settings document\n * @param {number} settings.monthStartDate reporting interval start date\n * @param {Object} stateChangeCallback Callback which is invoked whenever the state changes.\n * Receives the updated state as the only parameter.\n */\n build: (settings, stateChangeCallback) => {\n if (state && !state.stale) {\n throw Error('Attempted to initialize the rules-state-store multiple times.');\n }\n\n state = {\n rulesConfigHash: hashRulesConfig(settings),\n contactState: {},\n targetState: targetState.createEmptyState(settings.targets),\n monthStartDate: settings.monthStartDate,\n };\n currentUserContact = settings.contact;\n currentUserSettings = settings.user;\n\n setOnChangeState(stateChangeCallback);\n return onStateChange(state);\n },\n\n /**\n * \"Dirty\" indicates that the contact's task documents are not up to date. They should be refreshed before being used.\n *\n * The dirty state can be due to:\n * 1. The time of a contact's most recent task calculation is unknown\n * 2. The contact's most recent task calculation expires\n * 3. The contact is explicitly marked as dirty\n * 4. Configurations impacting rules calculations have changed\n *\n * @param {string} contactId The id of the contact to test for dirtiness\n * @returns {Boolean} True if dirty\n */\n isDirty: contactId => {\n if (!contactId) {\n return false;\n }\n\n if (!state.contactState[contactId]) {\n return true;\n }\n\n const now = Date.now();\n const { calculatedAt, expireAt, isDirty } = state.contactState[contactId];\n return !expireAt ||\n isDirty ||\n calculatedAt > now || /* system clock changed */\n expireAt < now; /* isExpired */\n },\n\n /**\n * Determines if either the settings document or user's hydrated contact document have changed in a way which\n * will impact the result of rules calculations.\n * If they have changed in a meaningful way, the calculation state of all contacts is reset\n *\n * @param {Object} settings Settings for the behavior of the rules store\n * @returns {Boolean} True if the state of all contacts has been reset\n */\n rulesConfigChange: (settings) => {\n const rulesConfigHash = hashRulesConfig(settings);\n if (state.rulesConfigHash !== rulesConfigHash) {\n state = {\n rulesConfigHash,\n contactState: {},\n targetState: targetState.createEmptyState(settings.targets),\n monthStartDate: settings.monthStartDate,\n };\n currentUserContact = settings.contact;\n currentUserSettings = settings.user;\n\n onStateChange(state);\n return true;\n }\n\n return false;\n },\n\n /**\n * @param {int} calculatedAt Timestamp of the calculation\n * @param {string[]} contactIds Array of contact ids to be marked as freshly calculated\n */\n markFresh: (calculatedAt, contactIds) => {\n if (!Array.isArray(contactIds)) {\n contactIds = [contactIds];\n }\n contactIds = contactIds.filter(id => id);\n\n if (contactIds.length === 0) {\n return;\n }\n\n const reportingInterval = calendarInterval.getCurrent(state.monthStartDate);\n const defaultExpiry = calculatedAt + EXPIRE_CALCULATION_AFTER_MS;\n\n for (const contactId of contactIds) {\n state.contactState[contactId] = {\n calculatedAt,\n expireAt: Math.min(reportingInterval.end, defaultExpiry),\n };\n }\n\n return onStateChange(state);\n },\n\n /**\n * @param {string[]} contactIds Array of contact ids to be marked as dirty\n */\n markDirty: contactIds => {\n if (!Array.isArray(contactIds)) {\n contactIds = [contactIds];\n }\n contactIds = contactIds.filter(id => id);\n\n if (contactIds.length === 0) {\n return;\n }\n\n for (const contactId of contactIds) {\n if (!state.contactState[contactId]) {\n state.contactState[contactId] = {};\n }\n\n state.contactState[contactId].isDirty = true;\n }\n\n return onStateChange(state);\n },\n\n /**\n * @returns {string[]} The id of all contacts tracked by the store\n */\n getContactIds: () => Object.keys(state.contactState),\n\n /**\n * The rules system supports the concept of \"headless\" reports and \"headless\" task documents. In these scenarios,\n * a report exists on a user's device while the associated contact document of that report is not on the device.\n * A common scenario associated with this case is during supervisor workflows where supervisors sync reports with the\n * needs_signoff attribute but not the associated patient.\n *\n * In these cases, getting a list of \"all the contacts with rules\" requires us to look not just through contact\n * docs, but also through reports. To avoid this costly operation, the rules-state-store maintains a flag which\n * indicates if the contact ids in the store can serve as a trustworthy authority.\n *\n * markAllFresh should be called when the list of contact ids within the store is the complete set of contacts with\n * rules\n */\n markAllFresh: (calculatedAt, contactIds) => {\n state.allContactIds = true;\n return self.markFresh(calculatedAt, contactIds);\n },\n\n /**\n * @returns True if markAllFresh has been called on the current store state.\n */\n hasAllContacts: () => !!state.allContactIds,\n\n /**\n * @returns {string} User contact document\n */\n currentUserContact: () => currentUserContact,\n\n /**\n * @returns {string} User settings document\n */\n currentUserSettings: () => currentUserSettings,\n\n /**\n * @returns {number} The timestamp when the current loaded state was last updated\n */\n stateLastUpdatedAt: () => state.calculatedAt,\n\n /**\n * @returns {number} current monthStartDate\n */\n getMonthStartDate: () => state.monthStartDate,\n\n /**\n * @returns {boolean} whether or not the state is loaded\n */\n isLoaded: () => !!state,\n\n /**\n * Store a set of target emissions which were emitted by refreshing a set of contacts\n *\n * @param {string[]} contactIds An array of contact ids which produced these targetEmissions by being refreshed.\n * If undefined, all contacts are updated.\n * @param {Object[]} targetEmissions An array of target emissions (the result of the rules-emitter).\n */\n storeTargetEmissions: (contactIds, targetEmissions) => {\n const isUpdated = targetState.storeTargetEmissions(state.targetState, contactIds, targetEmissions);\n if (isUpdated) {\n return onStateChange(state);\n }\n },\n\n /**\n * Aggregates the stored target emissions into target models\n *\n * @param {Function(emission)=} targetEmissionFilter Filter function to filter which target emissions should\n * be aggregated\n * @example aggregateStoredTargetEmissions(emission => emission.date > moment().startOf('month').valueOf())\n *\n * @returns {Object[]} result\n * @returns {string} result[n].* All attributes of the target as defined in the settings doc\n * @returns {Integer} result[n].total The total number of unique target emission ids matching instanceFilter\n * @returns {Integer} result[n].pass The number of unique target emission ids matching instanceFilter with the\n * latest emission with truthy \"pass\"\n * @returns {Integer} result[n].percent The percentage of pass/total\n */\n aggregateStoredTargetEmissions: targetEmissionFilter => targetState.aggregateStoredTargetEmissions(\n state.targetState,\n targetEmissionFilter\n ),\n\n /**\n * Returns a list of UUIDs of tracked contacts that are marked as dirty\n * @returns {Array} list of dirty contacts UUIDs\n */\n getDirtyContacts: () => self.getContactIds().filter(self.isDirty),\n};\n\nconst hashRulesConfig = (settings) => {\n const asString = JSON.stringify(settings);\n return md5(asString);\n};\n\nconst setOnChangeState = (stateChangeCallback) => {\n onStateChange = (state) => {\n state.calculatedAt = new Date().getTime();\n\n if (stateChangeCallback && typeof stateChangeCallback === 'function') {\n return stateChangeCallback(state);\n }\n };\n};\n\n// ensure all exported functions are only ever called after initialization\nmodule.exports = Object.keys(self).reduce((agg, key) => {\n agg[key] = (...args) => {\n if (!['build', 'load', 'isLoaded'].includes(key) && (!state || !state.contactState)) {\n throw Error(`Invalid operation: Attempted to invoke rules-state-store.${key} before call to build or load`);\n }\n\n return self[key](...args);\n };\n return agg;\n}, {});\n","/**\n * @module target-state\n *\n * Stores raw target-emissions in a minified, efficient, deterministic structure\n * Handles removal of \"cancelled\" target emissions\n * Aggregates target emissions into targets\n */\n\n/** @summary state\n * Functions in this module all accept a \"state\" parameter or return a \"state\" object.\n * This state has the following structure:\n *\n * @example\n * {\n * target.id: {\n * id: 'target_id',\n * type: 'count',\n * goal: 0,\n * ..\n *\n * emissions: {\n * emission.id: {\n * requestor.id: {\n * pass: boolean,\n * date: timestamp,\n * order: timestamp,\n * },\n * ..\n * },\n * ..\n * }\n * },\n * ..\n * }\n */\n\nmodule.exports = {\n /**\n * Builds an empty target-state.\n *\n * @param {Object[]} targets An array of target definitions\n */\n createEmptyState: (targets=[]) => {\n return targets\n .reduce((agg, definition) => {\n agg[definition.id] = Object.assign({}, definition, { emissions: {} });\n return agg;\n }, {});\n },\n\n storeTargetEmissions: (state, contactIds, targetEmissions) => {\n let isUpdated = false;\n if (!Array.isArray(targetEmissions)) {\n throw Error('targetEmissions argument must be an array');\n }\n\n // Remove all emissions that were previously emitted by the contact (\"cancelled emissions\")\n if (!contactIds) {\n for (const targetId of Object.keys(state)) {\n state[targetId].emissions = {};\n }\n } else {\n for (const contactId of contactIds) {\n for (const targetId of Object.keys(state)) {\n for (const emissionId of Object.keys(state[targetId].emissions)) {\n const emission = state[targetId].emissions[emissionId];\n if (emission[contactId]) {\n delete emission[contactId];\n isUpdated = true;\n }\n }\n }\n }\n }\n\n // Merge the emission data into state\n for (const emission of targetEmissions) {\n const target = state[emission.type];\n const requestor = emission.contact && emission.contact._id;\n if (target && requestor && !emission.deleted) {\n const targetRequestors = target.emissions[emission._id] = target.emissions[emission._id] || {};\n targetRequestors[requestor] = {\n pass: !!emission.pass,\n groupBy: emission.groupBy,\n date: emission.date,\n order: emission.contact.reported_date || -1,\n };\n isUpdated = true;\n }\n }\n\n return isUpdated;\n },\n\n aggregateStoredTargetEmissions: (state, targetEmissionFilter) => {\n const pick = (obj, attrs) => attrs\n .reduce((agg, attr) => {\n if (Object.hasOwnProperty.call(obj, attr)) {\n agg[attr] = obj[attr];\n }\n return agg;\n }, {});\n\n const scoreTarget = target => {\n const emissionIds = Object.keys(target.emissions);\n const relevantEmissions = emissionIds\n // emissions passing the \"targetEmissionFilter\"\n .map(emissionId => {\n const requestorIds = Object.keys(target.emissions[emissionId]);\n const filteredInstanceIds = requestorIds.filter(requestorId => {\n return !targetEmissionFilter || targetEmissionFilter(target.emissions[emissionId][requestorId]);\n });\n return pick(target.emissions[emissionId], filteredInstanceIds);\n })\n\n // if there are multiple emissions with the same id emitted by different contacts, disambiguate them\n .map(emissionsByRequestor => emissionOfLatestRequestor(emissionsByRequestor))\n .filter(emission => emission);\n\n const passingThreshold = target.passesIfGroupCount && target.passesIfGroupCount.gte;\n if (!passingThreshold) {\n return {\n pass: relevantEmissions.filter(emission => emission.pass).length,\n total: relevantEmissions.length,\n };\n }\n\n const countPassedEmissionsByGroup = {};\n const countEmissionsByGroup = {};\n\n relevantEmissions.forEach(emission => {\n const groupBy = emission.groupBy;\n if (!groupBy) {\n return;\n }\n if (!countPassedEmissionsByGroup[groupBy]) {\n countPassedEmissionsByGroup[groupBy] = 0;\n countEmissionsByGroup[groupBy] = 0;\n }\n countEmissionsByGroup[groupBy]++;\n if (emission.pass) {\n countPassedEmissionsByGroup[groupBy]++;\n }\n });\n\n const groups = Object.keys(countEmissionsByGroup);\n\n return {\n pass: groups.filter(group => countPassedEmissionsByGroup[group] >= passingThreshold).length,\n total: groups.length,\n };\n };\n\n const aggregateTarget = target => {\n const aggregated = pick(\n target,\n ['id', 'type', 'goal', 'translation_key', 'name', 'icon', 'subtitle_translation_key', 'visible']\n );\n aggregated.value = scoreTarget(target);\n\n if (aggregated.type === 'percent') {\n aggregated.value.percent = aggregated.value.total ?\n Math.round(aggregated.value.pass * 100 / aggregated.value.total) : 0;\n }\n\n return aggregated;\n };\n\n const emissionOfLatestRequestor = emissionsByRequestor => {\n return Object.keys(emissionsByRequestor).reduce((previousValue, requestorId) => {\n const current = emissionsByRequestor[requestorId];\n if (!previousValue || !previousValue.order || current.order > previousValue.order) {\n return current;\n }\n return previousValue;\n }, undefined);\n };\n\n return Object.keys(state).map(targetId => aggregateTarget(state[targetId]));\n },\n};\n","/**\n * @module task-states\n * As defined by the FHIR task standard https://www.hl7.org/fhir/task.html#statemachine\n */\n\nconst moment = require('moment');\n\n/**\n * Problems:\n * If all emissions are converted to documents, heavy users will create thousands of legacy task docs after upgrading\n * to this rules-engine.\n * In order to purge task documents, we need to guarantee that they won't just be recreated after they are purged.\n * The two scenarios above are important for maintaining the client-side performance of the app.\n *\n * Therefore, we only consider task emissions \"timely\" if they end within a fixed time period.\n * However, if this window is too short then users who don't login frequently may fail to create a task document at all.\n * Looking at time-between-reports for active projects, a time window of 60 days will ensure that 99.9% of tasks are\n * recorded as docs.\n */\nconst TIMELY_WINDOW = {\n start: 60, // days\n end: 180 // days\n};\n\n// This must be a comparable string format to avoid a bunch of parsing. For example, \"2000-01-01\" < \"2010-11-31\"\nconst formatString = 'YYYY-MM-DD';\n\nconst States = {\n /**\n * Task has been calculated but it is scheduled in the future\n */\n Draft: 'Draft',\n\n /**\n * Task is currently showing to the user\n */\n Ready: 'Ready',\n\n /**\n * Task was not emitted when refreshing the contact\n * Task resulted from invalid emissions\n */\n Cancelled: 'Cancelled',\n\n /**\n * Task was emitted with { resolved: true }\n */\n Completed: 'Completed',\n\n /**\n * Task was never terminated and is now outside the allowed time window\n */\n Failed: 'Failed',\n};\n\nconst getDisplayWindow = (taskEmission) => {\n const hasExistingDisplayWindow = taskEmission.startDate || taskEmission.endDate;\n if (hasExistingDisplayWindow) {\n return {\n dueDate: taskEmission.dueDate,\n startDate: taskEmission.startDate,\n endDate: taskEmission.endDate,\n };\n }\n\n const dueDate = moment(taskEmission.date);\n if (!dueDate.isValid()) {\n return { dueDate: NaN, startDate: NaN, endDate: NaN };\n }\n\n return {\n dueDate: dueDate.format(formatString),\n startDate: dueDate.clone().subtract(taskEmission.readyStart || 0, 'days').format(formatString),\n endDate: dueDate.clone().add(taskEmission.readyEnd || 0, 'days').format(formatString),\n };\n};\n\nconst mostReadyOrder = [States.Ready, States.Draft, States.Completed, States.Failed, States.Cancelled];\nconst orderOf = state => {\n const order = mostReadyOrder.indexOf(state);\n return order >= 0 ? order : mostReadyOrder.length;\n};\n\nmodule.exports = {\n isTerminal: state => [States.Cancelled, States.Completed, States.Failed].includes(state),\n\n isMoreReadyThan: (stateA, stateB) => orderOf(stateA) < orderOf(stateB),\n\n compareState: (stateA, stateB) => orderOf(stateA) - orderOf(stateB),\n\n calculateState: (taskEmission, timestamp) => {\n if (!taskEmission) {\n return false;\n }\n\n if (taskEmission.resolved) {\n return States.Completed;\n }\n\n if (taskEmission.deleted) {\n return States.Cancelled;\n }\n\n // invalid data yields falsey\n if (!taskEmission.date && !taskEmission.dueDate) {\n return false;\n }\n\n const { startDate, endDate } = getDisplayWindow(taskEmission);\n if (!startDate || !endDate || startDate > endDate || endDate < startDate) {\n return false;\n }\n\n const timestampAsDate = moment(timestamp).format(formatString);\n if (startDate > timestampAsDate) {\n return States.Draft;\n }\n\n if (endDate < timestampAsDate) {\n return States.Failed;\n }\n\n return States.Ready;\n },\n\n getDisplayWindow,\n\n states: States,\n\n isTimely: (taskEmission, timestamp) => {\n const { startDate, endDate } = getDisplayWindow(taskEmission);\n const earliest = moment(timestamp).subtract(TIMELY_WINDOW.start, 'days');\n const latest = moment(timestamp).add(TIMELY_WINDOW.end, 'days');\n return earliest.isBefore(endDate) && latest.isAfter(startDate);\n },\n\n setStateOnTaskDoc: (taskDoc, updatedState, timestamp = Date.now(), reason = '') => {\n if (!taskDoc) {\n return;\n }\n\n if (!updatedState) {\n taskDoc.state = States.Cancelled;\n taskDoc.stateReason = 'invalid';\n } else {\n taskDoc.state = updatedState;\n if (reason) {\n taskDoc.stateReason = reason;\n }\n }\n\n const stateHistory = taskDoc.stateHistory = taskDoc.stateHistory || [];\n const mostRecentState = stateHistory[stateHistory.length - 1];\n if (!mostRecentState || taskDoc.state !== mostRecentState.state) {\n const stateChange = { state: taskDoc.state, timestamp };\n stateHistory.push(stateChange);\n }\n\n return taskDoc;\n },\n};\n\nObject.assign(module.exports, States);\n","/**\n * @module transform-task-emission-to-doc\n * Transforms a task emission into the schema used by task documents\n * Minifies all unneeded data from the emission\n * Merges emission data into an existing document, or creates a new task document (as appropriate)\n */\n\nconst TaskStates = require('./task-states');\n\n/**\n * @param {Object} taskEmission A task emission from the rules engine\n * @param {int} calculatedAt Epoch timestamp at the time the emission was calculated\n * @param {Object} existingDoc The most recent taskDocument with the same emission id\n\n * @returns {Object} result\n * @returns {Object} result.taskDoc The result of the transformation\n * @returns {Boolean} result.isUpdated True if the document is new or has been altered\n */\nmodule.exports = (taskEmission, calculatedAt, userSettingsId, existingDoc) => {\n const emittedState = TaskStates.calculateState(taskEmission, calculatedAt);\n const baseFromExistingDoc = !!existingDoc &&\n (!TaskStates.isTerminal(existingDoc.state) || existingDoc.state === emittedState);\n\n // reduce document churn - don't tweak data on existing docs in terminal states\n const baselineStateOfExistingDoc = baseFromExistingDoc &&\n !TaskStates.isTerminal(existingDoc.state) &&\n JSON.stringify(existingDoc);\n const taskDoc = baseFromExistingDoc ? existingDoc : newTaskDoc(taskEmission, userSettingsId, calculatedAt);\n taskDoc.user = userSettingsId;\n taskDoc.requester = taskEmission.doc && taskEmission.doc.contact && taskEmission.doc.contact._id;\n taskDoc.owner = taskEmission.contact && taskEmission.contact._id;\n minifyEmission(taskDoc, taskEmission);\n TaskStates.setStateOnTaskDoc(taskDoc, emittedState, calculatedAt);\n\n const isUpdated = (() => {\n if (!baseFromExistingDoc) {\n // do not create new documents where the initial state is cancelled (invalid emission)\n return taskDoc.state !== TaskStates.Cancelled;\n }\n\n return baselineStateOfExistingDoc && JSON.stringify(taskDoc) !== baselineStateOfExistingDoc;\n })();\n\n return {\n isUpdated,\n taskDoc,\n };\n};\n\nconst minifyEmission = (taskDoc, emission) => {\n const minified = ['_id', 'title', 'icon', 'deleted', 'resolved', 'actions', 'priority', 'priorityLabel' ]\n .reduce((agg, attr) => {\n if (Object.hasOwnProperty.call(emission, attr)) {\n agg[attr] = emission[attr];\n }\n return agg;\n }, {});\n\n /*\n The declarative configuration \"contactLabel\" results in a task emission with a contact with only a name attribute.\n For backward compatibility, contacts which don't provide an id should not be minified and rehydrated.\n */\n if (emission.contact) {\n minified.contact = { name: emission.contact.name };\n }\n\n if (emission.date || emission.dueDate) {\n const timeWindow = TaskStates.getDisplayWindow(emission);\n Object.assign(minified, timeWindow);\n }\n minified.actions && minified.actions\n .filter(action => action && action.content)\n .forEach(action => {\n if (!minified.forId) {\n minified.forId = action.content.contact && action.content.contact._id;\n }\n delete action.content.contact;\n });\n\n taskDoc.emission = minified;\n return taskDoc;\n};\n\nconst newTaskDoc = (emission, userSettingsId, calculatedAt) => ({\n _id: `task~${userSettingsId}~${emission._id}~${calculatedAt}`,\n type: 'task',\n authoredOn: calculatedAt,\n stateHistory: [],\n});\n","/**\n * @module update-temporal-states\n * As time elapses, documents change state because the timing window has been reached.\n * Eg. Documents with state Draft move to state Ready just because it is now after midnight\n */\nconst TaskStates = require('./task-states');\n\n/**\n * @param {Object[]} taskDocs A list of task documents to evaluate\n * @param {int} timestamp=Date.now() Epoch timestamp to use when evaluating the current state of the task documents\n */\nmodule.exports = (taskDocs, timestamp = Date.now()) => {\n const docsToCommit = [];\n for (const taskDoc of taskDocs) {\n let updatedState = TaskStates.calculateState(taskDoc.emission, timestamp);\n if (taskDoc.authoredOn > timestamp) {\n updatedState = TaskStates.Cancelled;\n }\n\n if (!TaskStates.isTerminal(taskDoc.state) && taskDoc.state !== updatedState) {\n TaskStates.setStateOnTaskDoc(taskDoc, updatedState, timestamp);\n docsToCommit.push(taskDoc);\n }\n }\n\n return docsToCommit;\n};\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * @license\n * Lodash (Custom Build) \n * Build: `lodash core -o ./dist/lodash.core.js`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Error message constants. */\n var FUNC_ERROR_TEXT = 'Expected a function';\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_PARTIAL_FLAG = 32;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n stringTag = '[object String]';\n\n /** Used to match HTML entities and HTML characters. */\n var reUnescapedHtml = /[&<>\"']/g,\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n array.push.apply(array, values);\n return array;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return baseMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /*--------------------------------------------------------------------------*/\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n objectProto = Object.prototype;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Built-in value references. */\n var objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeIsFinite = root.isFinite,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n return value instanceof LodashWrapper\n ? value\n : new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n }\n\n LodashWrapper.prototype = baseCreate(lodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n object[key] = value;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !false)\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return baseFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n return objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n var baseIsArguments = noop;\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : baseGetTag(object),\n othTag = othIsArr ? arrayTag : baseGetTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n stack || (stack = []);\n var objStack = find(stack, function(entry) {\n return entry[0] == object;\n });\n var othStack = find(stack, function(entry) {\n return entry[0] == other;\n });\n if (objStack && othStack) {\n return objStack[1] == other;\n }\n stack.push([object, other]);\n stack.push([other, object]);\n if (isSameTag && !objIsObj) {\n var result = (objIsArr)\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n stack.pop();\n return result;\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n var result = equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n stack.pop();\n return result;\n }\n }\n if (!isSameTag) {\n return false;\n }\n var result = equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n stack.pop();\n return result;\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(func) {\n if (typeof func == 'function') {\n return func;\n }\n if (func == null) {\n return identity;\n }\n return (typeof func == 'object' ? baseMatches : baseProperty)(func);\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var props = nativeKeys(source);\n return function(object) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length];\n if (!(key in object &&\n baseIsEqual(source[key], object[key], COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG)\n )) {\n return false;\n }\n }\n return true;\n };\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, props) {\n object = Object(object);\n return reduce(props, function(result, key) {\n if (key in object) {\n result[key] = object[key];\n }\n return result;\n }, {});\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source) {\n return baseSlice(source, 0, source.length);\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n return reduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = false;\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = false;\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return fn.apply(isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? [] : undefined;\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n var compared;\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!baseSome(other, function(othValue, othIndex) {\n if (!indexOf(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n var compared;\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return func.apply(this, otherArgs);\n };\n }\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = identity;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n return baseFilter(array, Boolean);\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (typeof fromIndex == 'number') {\n fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : fromIndex;\n } else {\n fromIndex = 0;\n }\n var index = (fromIndex || 0) - 1,\n isReflexive = value === value;\n\n while (++index < length) {\n var other = array[index];\n if ((isReflexive ? other === value : other !== other)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n start = start == null ? 0 : +start;\n end = end === undefined ? length : +end;\n return length ? baseSlice(array, start, end) : [];\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n predicate = guard ? undefined : predicate;\n return baseEvery(collection, baseIteratee(predicate));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n return baseFilter(collection, baseIteratee(predicate));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n return baseEach(collection, baseIteratee(iteratee));\n }\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n return baseMap(collection, baseIteratee(iteratee));\n }\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n return baseReduce(collection, baseIteratee(iteratee), accumulator, arguments.length < 3, baseEach);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n collection = isArrayLike(collection) ? collection : nativeKeys(collection);\n return collection.length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n predicate = guard ? undefined : predicate;\n return baseSome(collection, baseIteratee(predicate));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n function sortBy(collection, iteratee) {\n var index = 0;\n iteratee = baseIteratee(iteratee);\n\n return baseMap(baseMap(collection, function(value, key, collection) {\n return { 'value': value, 'index': index++, 'criteria': iteratee(value, key, collection) };\n }).sort(function(object, other) {\n return compareAscending(object.criteria, other.criteria) || (object.index - other.index);\n }), baseProperty('value'));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n return createPartial(func, WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG, thisArg, partials);\n });\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n if (!isObject(value)) {\n return value;\n }\n return isArray(value) ? copyArray(value) : copyObject(value, nativeKeys(value));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = baseIsDate;\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (isArrayLike(value) &&\n (isArray(value) || isString(value) ||\n isFunction(value.splice) || isArguments(value))) {\n return !value.length;\n }\n return !nativeKeys(value).length;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = baseIsRegExp;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!isArrayLike(value)) {\n return values(value);\n }\n return value.length ? copyArray(value) : [];\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n var toInteger = Number;\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n var toNumber = Number;\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n if (typeof value == 'string') {\n return value;\n }\n return value == null ? '' : (value + '');\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n copyObject(source, nativeKeys(source), object);\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, nativeKeysIn(source), object);\n });\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : assign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasOwnProperty.call(object, path);\n }\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n var keys = nativeKeys;\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n var keysIn = nativeKeysIn;\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n var value = object == null ? undefined : object[path];\n if (value === undefined) {\n value = defaultValue;\n }\n return isFunction(value) ? value.call(object) : value;\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\n function identity(value) {\n return value;\n }\n\n /**\n * Creates a function that invokes `func` with the arguments of the created\n * function. If `func` is a property name, the created function returns the\n * property value for a given element. If `func` is an array or object, the\n * created function returns `true` for elements that contain the equivalent\n * source properties, otherwise it returns `false`.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Util\n * @param {*} [func=_.identity] The value to convert to a callback.\n * @returns {Function} Returns the callback.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));\n * // => [{ 'user': 'barney', 'age': 36, 'active': true }]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, _.iteratee(['user', 'fred']));\n * // => [{ 'user': 'fred', 'age': 40 }]\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, _.iteratee('user'));\n * // => ['barney', 'fred']\n *\n * // Create custom iteratee shorthands.\n * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {\n * return !_.isRegExp(func) ? iteratee(func) : function(string) {\n * return func.test(string);\n * };\n * });\n *\n * _.filter(['abc', 'def'], /ef/);\n * // => ['def']\n */\n var iteratee = baseIteratee;\n\n /**\n * Creates a function that performs a partial deep comparison between a given\n * object and `source`, returning `true` if the given object has equivalent\n * property values, else `false`.\n *\n * **Note:** The created function is equivalent to `_.isMatch` with `source`\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));\n * // => [{ 'a': 4, 'b': 5, 'c': 6 }]\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\n function matches(source) {\n return baseMatches(assign({}, source));\n }\n\n /**\n * Adds all own enumerable string keyed function properties of a source\n * object to the destination object. If `object` is a function, then methods\n * are added to its prototype as well.\n *\n * **Note:** Use `_.runInContext` to create a pristine `lodash` function to\n * avoid conflicts caused by modifying the original.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Function|Object} [object=lodash] The destination object.\n * @param {Object} source The object of functions to add.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.chain=true] Specify whether mixins are chainable.\n * @returns {Function|Object} Returns `object`.\n * @example\n *\n * function vowels(string) {\n * return _.filter(string, function(v) {\n * return /[aeiou]/i.test(v);\n * });\n * }\n *\n * _.mixin({ 'vowels': vowels });\n * _.vowels('fred');\n * // => ['e']\n *\n * _('fred').vowels().value();\n * // => ['e']\n *\n * _.mixin({ 'vowels': vowels }, { 'chain': false });\n * _('fred').vowels();\n * // => ['e']\n */\n function mixin(object, source, options) {\n var props = keys(source),\n methodNames = baseFunctions(source, props);\n\n if (options == null &&\n !(isObject(source) && (methodNames.length || !props.length))) {\n options = source;\n source = object;\n object = this;\n methodNames = baseFunctions(source, keys(source));\n }\n var chain = !(isObject(options) && 'chain' in options) || !!options.chain,\n isFunc = isFunction(object);\n\n baseEach(methodNames, function(methodName) {\n var func = source[methodName];\n object[methodName] = func;\n if (isFunc) {\n object.prototype[methodName] = function() {\n var chainAll = this.__chain__;\n if (chain || chainAll) {\n var result = object(this.__wrapped__),\n actions = result.__actions__ = copyArray(this.__actions__);\n\n actions.push({ 'func': func, 'args': arguments, 'thisArg': object });\n result.__chain__ = chainAll;\n return result;\n }\n return func.apply(object, arrayPush([this.value()], arguments));\n };\n }\n });\n\n return object;\n }\n\n /**\n * Reverts the `_` variable to its previous value and returns a reference to\n * the `lodash` function.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @returns {Function} Returns the `lodash` function.\n * @example\n *\n * var lodash = _.noConflict();\n */\n function noConflict() {\n if (root._ === this) {\n root._ = oldDash;\n }\n return this;\n }\n\n /**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\n function noop() {\n // No operation performed.\n }\n\n /**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\n function uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\n function max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n }\n\n /**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\n function min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n }\n\n /*------------------------------------------------------------------------*/\n\n // Add methods that return wrapped values in chain sequences.\n lodash.assignIn = assignIn;\n lodash.before = before;\n lodash.bind = bind;\n lodash.chain = chain;\n lodash.compact = compact;\n lodash.concat = concat;\n lodash.create = create;\n lodash.defaults = defaults;\n lodash.defer = defer;\n lodash.delay = delay;\n lodash.filter = filter;\n lodash.flatten = flatten;\n lodash.flattenDeep = flattenDeep;\n lodash.iteratee = iteratee;\n lodash.keys = keys;\n lodash.map = map;\n lodash.matches = matches;\n lodash.mixin = mixin;\n lodash.negate = negate;\n lodash.once = once;\n lodash.pick = pick;\n lodash.slice = slice;\n lodash.sortBy = sortBy;\n lodash.tap = tap;\n lodash.thru = thru;\n lodash.toArray = toArray;\n lodash.values = values;\n\n // Add aliases.\n lodash.extend = assignIn;\n\n // Add methods to `lodash.prototype`.\n mixin(lodash, lodash);\n\n /*------------------------------------------------------------------------*/\n\n // Add methods that return unwrapped values in chain sequences.\n lodash.clone = clone;\n lodash.escape = escape;\n lodash.every = every;\n lodash.find = find;\n lodash.forEach = forEach;\n lodash.has = has;\n lodash.head = head;\n lodash.identity = identity;\n lodash.indexOf = indexOf;\n lodash.isArguments = isArguments;\n lodash.isArray = isArray;\n lodash.isBoolean = isBoolean;\n lodash.isDate = isDate;\n lodash.isEmpty = isEmpty;\n lodash.isEqual = isEqual;\n lodash.isFinite = isFinite;\n lodash.isFunction = isFunction;\n lodash.isNaN = isNaN;\n lodash.isNull = isNull;\n lodash.isNumber = isNumber;\n lodash.isObject = isObject;\n lodash.isRegExp = isRegExp;\n lodash.isString = isString;\n lodash.isUndefined = isUndefined;\n lodash.last = last;\n lodash.max = max;\n lodash.min = min;\n lodash.noConflict = noConflict;\n lodash.noop = noop;\n lodash.reduce = reduce;\n lodash.result = result;\n lodash.size = size;\n lodash.some = some;\n lodash.uniqueId = uniqueId;\n\n // Add aliases.\n lodash.each = forEach;\n lodash.first = head;\n\n mixin(lodash, (function() {\n var source = {};\n baseForOwn(lodash, function(func, methodName) {\n if (!hasOwnProperty.call(lodash.prototype, methodName)) {\n source[methodName] = func;\n }\n });\n return source;\n }()), { 'chain': false });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The semantic version number.\n *\n * @static\n * @memberOf _\n * @type {string}\n */\n lodash.VERSION = VERSION;\n\n // Add `Array` methods to `lodash.prototype`.\n baseEach(['pop', 'join', 'replace', 'reverse', 'split', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) {\n var func = (/^(?:replace|split)$/.test(methodName) ? String.prototype : arrayProto)[methodName],\n chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru',\n retUnwrapped = /^(?:pop|join|replace|shift)$/.test(methodName);\n\n lodash.prototype[methodName] = function() {\n var args = arguments;\n if (retUnwrapped && !this.__chain__) {\n var value = this.value();\n return func.apply(isArray(value) ? value : [], args);\n }\n return this[chainName](function(value) {\n return func.apply(isArray(value) ? value : [], args);\n });\n };\n });\n\n // Add chain sequence methods to the `lodash` wrapper.\n lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;\n\n /*--------------------------------------------------------------------------*/\n\n // Some AMD build optimizers, like r.js, check for condition patterns like:\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n // Expose Lodash on the global object to prevent errors when Lodash is\n // loaded by a script tag in the presence of an AMD loader.\n // See http://requirejs.org/docs/errors.html#mismatch for more details.\n // Use `_.noConflict` to remove Lodash from the global object.\n root._ = lodash;\n\n // Define as an anonymous module so, through path mapping, it can be\n // referenced as the \"underscore\" module.\n define(function() {\n return lodash;\n });\n }\n // Check for `exports` after `define` in case a build optimizer adds it.\n else if (freeModule) {\n // Export for Node.js.\n (freeModule.exports = lodash)._ = lodash;\n // Export for CommonJS support.\n freeExports._ = lodash;\n }\n else {\n // Export to the global object.\n root._ = lodash;\n }\n}.call(this));\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","module.exports = require(\"buffer\");;","module.exports = require(\"child_process\");;","module.exports = require(\"events\");;","module.exports = require(\"fs\");;","module.exports = require(\"http\");;","module.exports = require(\"https\");;","module.exports = require(\"os\");;","module.exports = require(\"path\");;","module.exports = require(\"stream\");;","module.exports = require(\"string_decoder\");;","module.exports = require(\"tty\");;","module.exports = require(\"util\");;","module.exports = require(\"zlib\");;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the module cache\n__webpack_require__.c = __webpack_module_cache__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// module cache are used so entry inlining is disabled\n// startup\n// Load entry module and return exports\nvar __webpack_exports__ = __webpack_require__(__webpack_require__.s = \"./all-chts-bundle.js\");\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://cht-conf-test-harness/./cht-bundles/all-chts-bundle.js","webpack://cht-conf-test-harness/./dist/cht-core-4-6/cht-core-bundle.dev.js","webpack://cht-conf-test-harness/external \"buffer\"","webpack://cht-conf-test-harness/external \"child_process\"","webpack://cht-conf-test-harness/external \"events\"","webpack://cht-conf-test-harness/external \"fs\"","webpack://cht-conf-test-harness/external \"http\"","webpack://cht-conf-test-harness/external \"https\"","webpack://cht-conf-test-harness/external \"net\"","webpack://cht-conf-test-harness/external \"os\"","webpack://cht-conf-test-harness/external \"path\"","webpack://cht-conf-test-harness/external \"stream\"","webpack://cht-conf-test-harness/external \"string_decoder\"","webpack://cht-conf-test-harness/external \"tty\"","webpack://cht-conf-test-harness/external \"util\"","webpack://cht-conf-test-harness/external \"zlib\"","webpack://cht-conf-test-harness/webpack/bootstrap","webpack://cht-conf-test-harness/webpack/startup"],"names":[],"mappings":";;;;;;;;;AAAA;AACA,SAAS,mBAAO,CAAC,4FAA0C;AAC3D;;;;;;;;;;;ACFA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,SAAS,wBAAwB,sBAAsB,4EAA4E,0BAA0B,2CAA2C,kHAAkH,4BAA4B,4BAA4B,QAAQ,OAAO,qDAAqD,4BAA4B,gBAAgB,QAAQ,+BAA+B,4DAA4D,gBAAgB,QAAQ,yCAAyC,qCAAqC,uDAAuD,kCAAkC,UAAU,EAAE,QAAQ,wEAAwE,+CAA+C,QAAQ,OAAO,yFAAyF,aAAa,oCAAoC,6CAA6C,wBAAwB,gCAAgC,QAAQ,MAAM,OAAO,qCAAqC,MAAM,yBAAyB,sCAAsC,+BAA+B,qGAAqG,+CAA+C,yCAAyC,QAAQ,EAAE,MAAM,IAAI,EAAE,6BAA6B,sBAAsB,6HAA6H,uGAAuG,uDAAuD,kBAAkB,QAAQ,6FAA6F,MAAM,+NAA+N,mDAAmD,MAAM,IAAI,oBAAoB,uBAAuB,sBAAsB,kMAAkM,mDAAmD,yEAAyE,sBAAsB,gCAAgC,QAAQ,MAAM,IAAI,EAAE,sBAAsB,sBAAsB,qBAAqB,qGAAqG,4CAA4C,yBAAyB,QAAQ,MAAM,IAAI,EAAE,sBAAsB,sBAAsB,sFAAsF,aAAa,oCAAoC,6CAA6C,wBAAwB,gCAAgC,QAAQ,MAAM,OAAO,qCAAqC,MAAM,sBAAsB,8BAA8B,sEAAsE,sBAAsB,yBAAyB,sCAAsC,UAAU,8BAA8B,QAAQ,MAAM,IAAI,EAAE,0BAA0B,sBAAsB,8OAA8O,qDAAqD,0DAA0D,SAAS,6BAA6B,oDAAoD,QAAQ,4BAA4B,sDAAsD,QAAQ,yBAAyB,uNAAuN,QAAQ,MAAM,IAAI,EAAE,8BAA8B,sBAAsB,4EAA4E,0BAA0B,iDAAiD,kHAAkH,4BAA4B,oCAAoC,QAAQ,OAAO,2DAA2D,4BAA4B,gBAAgB,QAAQ,+BAA+B,4DAA4D,gBAAgB,QAAQ,yCAAyC,qCAAqC,uDAAuD,wCAAwC,UAAU,EAAE,QAAQ,wEAAwE,qDAAqD,QAAQ,OAAO,yFAAyF,aAAa,cAAc,oCAAoC,+BAA+B,iCAAiC,wBAAwB,oBAAoB,QAAQ,MAAM,OAAO,uBAAuB,iCAAiC,MAAM,sBAAsB,sCAAsC,+BAA+B,qGAAqG,+CAA+C,+CAA+C,QAAQ,EAAE,MAAM,IAAI,EAAE,qBAAqB,sBAAsB,sFAAsF,aAAa,cAAc,oCAAoC,+BAA+B,iCAAiC,wBAAwB,oBAAoB,QAAQ,MAAM,OAAO,uBAAuB,iCAAiC,MAAM,sBAAsB,sCAAsC,+BAA+B,qGAAqG,6BAA6B,MAAM,IAAI,EAAE,yBAAyB,wCAAwC,wCAAwC,iDAAiD,MAAM,IAAI,EAAE,gBAAgB,sBAAsB,yCAAyC,gDAAgD,uDAAuD,EAAE,cAAc,MAAM,wBAAwB,IAAI,EAAE,uBAAuB,sBAAsB,oDAAoD,uCAAuC,qCAAqC,mBAAmB,EAAE,kCAAkC,QAAQ,OAAO,sGAAsG,6CAA6C,4CAA4C,MAAM,qDAAqD,4CAA4C,mCAAmC,MAAM,IAAI,EAAE,6BAA6B,sBAAsB,yDAAyD,6DAA6D,wCAAwC,sGAAsG,EAAE,OAAO,wDAAwD,4CAA4C,+DAA+D,2DAA2D,wBAAwB,2DAA2D,YAAY,UAAU,EAAE,QAAQ,4BAA4B,qEAAqE,QAAQ,MAAM,IAAI,mCAAmC,mBAAmB,WAAW,qCAAqC,sCAAsC,wBAAwB,QAAQ,MAAM,EAAE,mBAAmB,IAAI,EAAE,wBAAwB,4UAA4U,6EAA6E,uEAAuE,6FAA6F,cAAc,MAAM,wBAAwB,+BAA+B,MAAM,sBAAsB,6BAA6B,MAAM,IAAI,EAAE,oBAAoB,sBAAsB,oDAAoD,2CAA2C,MAAM,IAAI,wBAAwB,iBAAiB,IAAI,EAAE,oBAAoB,sBAAsB,oDAAoD,oDAAoD,MAAM,IAAI,EAAE,wBAAwB,sBAAsB,wEAAwE,0BAA0B,2CAA2C,kHAAkH,4BAA4B,4BAA4B,QAAQ,OAAO,4DAA4D,4BAA4B,gBAAgB,QAAQ,+BAA+B,4DAA4D,gBAAgB,QAAQ,yCAAyC,qCAAqC,uDAAuD,yCAAyC,UAAU,EAAE,QAAQ,wEAAwE,sDAAsD,QAAQ,OAAO,uDAAuD,+CAA+C,qDAAqD,QAAQ,EAAE,wBAAwB,wDAAwD,8DAA8D,UAAU,EAAE,QAAQ,4CAA4C,oFAAoF,QAAQ,MAAM,IAAI,EAAE,qBAAqB,sBAAsB,oDAAoD,qDAAqD,sBAAsB,yBAAyB,kDAAkD,UAAU,8BAA8B,QAAQ,MAAM,IAAI,EAAE,uBAAuB,sBAAsB,oDAAoD,6CAA6C,0BAA0B,+CAA+C,UAAU,SAAS,yCAAyC,oCAAoC,mCAAmC,2BAA2B,+CAA+C,6CAA6C,4CAA4C,iDAAiD,+CAA+C,QAAQ,MAAM,IAAI,EAAE,wBAAwB,sBAAsB,oDAAoD,yEAAyE,MAAM,IAAI,EAAE,4BAA4B,sBAAsB,oDAAoD,+CAA+C,MAAM,IAAI,EAAE,qBAAqB,sBAAsB,iCAAiC,gGAAgG,kDAAkD,iCAAiC,kCAAkC,QAAQ,8BAA8B,8CAA8C,QAAQ,6CAA6C,mBAAmB,EAAE,MAAM,IAAI,EAAE,8BAA8B,sBAAsB,+EAA+E,+EAA+E,yDAAyD,wDAAwD,4CAA4C,2DAA2D,uBAAuB,EAAE,QAAQ,qBAAqB,+BAA+B,sBAAsB,0BAA0B,mEAAmE,kBAAkB,EAAE,UAAU,gCAAgC,QAAQ,MAAM,IAAI,EAAE,mBAAmB,sBAAsB,6HAA6H,+GAA+G,wGAAwG,6DAA6D,MAAM,IAAI,GAAG,2DAA2D,wWAAwW,cAAc,iBAAiB,EAAE,OAAO,kKAAkK,8CAA8C,gCAAgC,mDAAmD,iCAAiC,gGAAgG,QAAQ,sBAAsB,oGAAoG,QAAQ,qDAAqD,iFAAiF,QAAQ,OAAO,qDAAqD,8CAA8C,gCAAgC,oDAAoD,8DAA8D,6CAA6C,kFAAkF,QAAQ,uBAAuB,sFAAsF,QAAQ,qDAAqD,uDAAuD,QAAQ,8EAA8E,6EAA6E,QAAQ,kEAAkE,uDAAuD,QAAQ,0FAA0F,2CAA2C,QAAQ,gDAAgD,6CAA6C,QAAQ,OAAO,iDAAiD,+DAA+D,MAAM,oCAAoC,4BAA4B,MAAM,6CAA6C,oCAAoC,MAAM,+JAA+J,IAAI,+BAA+B;;AAE98gB,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;AAE7D;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,WAAW,gCAAmB;AAC9B,iCAAiC,gCAAmB;AACpD;AACA;;AAEA,uBAAuB,gCAAmB;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,CAAC;;AAED,4CAA4C;;AAE5C;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,gCAAmB;AACjC,eAAe,gCAAmB;;AAElC;AACA;AACA,sBAAsB,gCAAmB;AACzC,oBAAoB,gCAAmB;AACvC,sBAAsB,gCAAmB;AACzC,qBAAqB,gCAAmB;;AAExC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;AAIA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;;AAEA;AACA,mBAAmB,IAAI;AACvB;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;AAE7D;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA,SAAS,gCAAmB;AAC5B,cAAc,gCAAmB;;AAEjC;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC,GAAG;AACvC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gCAAmB;AAChC;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;AAE7D,cAAc,gCAAmB;;AAEjC;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,YAAY;;AAEjB;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;AAE7D,cAAc,gCAAmB;;AAEjC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;;AAEA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,+DAA+D;AACtE;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;AAE7D,iBAAiB,gCAAmB;AACpC,YAAY,gCAAmB;;AAE/B;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;AAE7D,aAAa,gCAAmB;AAChC,UAAU,gCAAmB;;AAE7B;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA,mBAAmB,gCAAmB;AACtC,gBAAgB,gCAAmB;AACnC,gBAAgB,gCAAmB;;AAEnC;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;AAE7D;AACA;AACA;AACA,IAAI,KAAK,EAAE,EAAE;AACb,mBAAmB,gCAAmB;AACtC;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,gCAAmB;;AAE5C;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,qBAAqB,gCAAmB;;AAExC;;AAEA,oBAAoB,gCAAmB;;AAEvC;;AAEA,iBAAiB,gCAAmB;;AAEpC,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,8BAA8B,oBAAoB;AAClD,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,gCAAmB;;AAE5C;;;AAGA;AACA;AACA,CAAC;;AAED,mBAAmB,gCAAmB;;AAEtC;;AAEA,iBAAiB,gCAAmB;;AAEpC;;AAEA,mBAAmB,gCAAmB;;AAEtC;;AAEA,YAAY,gCAAmB;;AAE/B;;AAEA,gBAAgB,gCAAmB;;AAEnC;;AAEA,iBAAiB,gCAAmB;;AAEpC;;AAEA,gBAAgB,gCAAmB;;AAEnC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,UAAU,gBAAgB;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,WAAW,oCAAoC;AAC/C,WAAW,cAAc;AACzB;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,6BAA6B;AAC7B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,eAAe;AACf;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,gCAAmB;;AAE5C;;;AAGA;AACA;AACA,CAAC;;AAED,oBAAoB,gCAAmB;;AAEvC;;AAEA,iBAAiB,gCAAmB;;AAEpC;;AAEA,gBAAgB,gCAAmB;;AAEnC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA,0BAA0B,gCAAgC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,WAAW,oCAAoC;AAC/C,WAAW,OAAO;AAClB,WAAW,cAAc;AACzB;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,gCAAmB;;AAE5C;;;AAGA;AACA;AACA,CAAC;;AAED,mBAAmB,gCAAmB;;AAEtC;;AAEA,gBAAgB,gCAAmB;;AAEnC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA,0BAA0B,gCAAgC;AAC1D;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,WAAW,oCAAoC;AAC/C,WAAW,cAAc;AACzB;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,gCAAmB;;AAE5C;;;AAGA;AACA;AACA,CAAC;;AAED,cAAc,gCAAmB;;AAEjC;;AAEA,oBAAoB,gCAAmB;;AAEvC;;AAEA,iBAAiB,gCAAmB;;AAEpC;;AAEA,gBAAgB,gCAAmB;;AAEnC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oCAAoC;AAC/C,WAAW,cAAc;AACzB;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,gCAAmB;;AAE5C;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,iBAAiB,gCAAmB;;AAEpC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,gCAAmB;;AAE5C;;;AAGA;AACA;AACA,CAAC;;AAED,YAAY,gCAAmB;;AAE/B;;AAEA,gBAAgB,gCAAmB;;AAEnC;;AAEA,gBAAgB,gCAAmB;;AAEnC;;AAEA,iBAAiB,gCAAmB;;AAEpC,wBAAwB,gCAAmB;;AAE3C;;AAEA,iBAAiB,gCAAmB;;AAEpC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,gCAAmB;;AAE5C;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,mBAAmB,gCAAmB;;AAEtC;;AAEA,mBAAmB,gCAAmB;;AAEtC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAuB;AACjD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,gCAAmB;;AAE5C;;;AAGA;AACA;AACA,CAAC;;AAED,mBAAmB,gCAAmB;;AAEtC;;AAEA,iBAAiB,gCAAmB;;AAEpC;;AAEA,gBAAgB,gCAAmB;;AAEnC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL,CAAC;AACD;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;;AAEA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;AAE7D;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,gBAAgB,gCAAmB;;AAEnC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,gCAAmB;;AAE5C;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,iBAAiB,gCAAmB;;AAEpC;;AAEA,oBAAoB,gCAAmB;;AAEvC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oCAAoC;AAC/C,qBAAqB,oBAAoB;AACzC;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,IAAI;AACJ;AACA,gCAAgC;AAChC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,IAAI;AACJ;AACA,gCAAgC;AAChC,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,YAAY;AACZ;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;;AAEA,aAAa,gCAAmB;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;AACA,kBAAkB,iCAAmB;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,QAAQ,4BAA4B;AACpC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,6BAA6B;AACpC,WAAW,iCAAiC;AAC5C,UAAU,gCAAgC;AAC1C,WAAW,iCAAiC;AAC5C,OAAO,qCAAqC;AAC5C,SAAS,2CAA2C;AACpD,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE,mDAAmD,cAAc;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO,QAAQ;AAC/B,gBAAgB,OAAO,QAAQ;AAC/B,iBAAiB,OAAO,OAAO;AAC/B,iBAAiB,OAAO,OAAO;AAC/B,gBAAgB,QAAQ,OAAO;AAC/B,gBAAgB,QAAQ,OAAO;AAC/B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,sEAAsE;;AAEtE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+CAA+C,EAAE,UAAU,EAAE;AAC7D;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa;AAC5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D,kBAAkB,iCAAmB;AACrC,YAAY,iCAAmB;;AAE/B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wDAAwD,uCAAuC;AAC/F,sDAAsD,qCAAqC;;AAE3F;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF,CAAC;;AAED;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D,kBAAkB,iCAAmB;;AAErC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;;AAEzB;;AAEA;AACA;AACA;;AAEA,yCAAyC,SAAS;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,SAAS;AAC9C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;AAIA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;AACA,iBAAiB,iCAAmB;AACpC,cAAc,iCAAmB;AACjC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA,yBAAyB,IAAI;AAC7B,wBAAwB,EAAE,WAAW,EAAE;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mCAAmC,IAAI;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,IAAI;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;;AAGA,kBAAkB,iCAAmB;AACrC,cAAc,iCAAmB;;AAEjC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa,mBAAmB;AAChC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,iBAAiB,cAAc;AAC/B;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,qEAAqE,kCAAkC,EAAE;;AAEzG;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;;AAGA,YAAY,iCAAmB;AAC/B,UAAU,iCAAmB;;AAE7B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;AAEA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;AAEA,+CAA+C,cAAc;AAC7D;AACA,iBAAiB,iCAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gCAAgC,oDAAoD;AACpF,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,iCAAmB;;AAErE;;AAEA;AACA,4CAA4C;AAC5C;AACA,+CAA+C,cAAc;AAC7D;AACA,iBAAiB,iCAAmB;AACpC,iBAAiB,iCAAmB;AACpC,6BAA6B,iCAAmB;AAChD,kBAAkB,iCAAmB;AACrC,gBAAgB,iCAAmB;AACnC,mBAAmB,iCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uCAAuC,EAAE;AACtF;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qBAAqB,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;AAEA,+CAA+C,cAAc;AAC7D;AACA,mBAAmB,iCAAmB;AACtC,yBAAyB,iCAAmB;AAC5C,iBAAiB,iCAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0CAA0C,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,iCAAmB;;AAErE;;AAEA;AACA;AACA;AACA;AACA,cAAc,oCAAoC,aAAa,EAAE;AACjE;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,yCAAyC,6BAA6B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,cAAc;AAC7D;AACA,4BAA4B,iCAAmB;AAC/C,iBAAiB,iCAAmB;AACpC,gBAAgB,iCAAmB;AACnC,mBAAmB,iCAAmB;AACtC,qCAAqC,gBAAgB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gCAAgC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iCAAmB;AAC5C,4CAA4C,qCAAqC,mCAAmC,EAAE,EAAE;AACxH,4CAA4C,qCAAqC,mCAAmC,EAAE,EAAE;AACxH,4CAA4C,qCAAqC,mCAAmC,EAAE,EAAE;;;AAGxH,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;AAEA,+CAA+C,cAAc;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;AAEA,+CAA+C,cAAc;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,iCAAmB;;AAErE;;AAEA;AACA,4CAA4C;AAC5C;AACA,+CAA+C,cAAc;AAC7D;AACA,kCAAkC,iCAAmB;AACrD,iBAAiB,iCAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,+CAA+C;AACnF;AACA,gCAAgC,6CAA6C;AAC7E,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;AAEA,+CAA+C,cAAc;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iCAAmB;AACpC,iBAAiB,iCAAmB;AACpC,gBAAgB,iCAAmB;AACnC,4CAA4C,qCAAqC,0BAA0B,EAAE,EAAE;AAC/G,gBAAgB,iCAAmB;AACnC,4CAA4C,qCAAqC,0BAA0B,EAAE,EAAE;AAC/G,gBAAgB,iCAAmB;AACnC,4CAA4C,qCAAqC,0BAA0B,EAAE,EAAE;AAC/G,mBAAmB,iCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sCAAsC;AACzE,mCAAmC,oDAAoD;AACvF;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;AAEA,+CAA+C,cAAc;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA,mCAAmC,4BAA4B,EAAE;AACjE;AACA,KAAK;AACL;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA,uCAAuC,yDAAyD,EAAE;AAClG,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,iCAAmB;;AAErE;;AAEA;AACA,4EAA4E,OAAO;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,cAAc;AAC7D;AACA,iBAAiB,iCAAmB;AACpC,kBAAkB,iCAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,4BAA4B,0CAA0C;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;AAEA,+CAA+C,cAAc;AAC7D,iBAAiB,iCAAmB;AACpC,kBAAkB,iCAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,sDAAsD,iCAAmB;;AAEzE;AACA,iCAAmB;AACnB,qBAAqB,iCAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,+DAA+D,iCAAmB;AAClF,+DAA+D,iCAAmB;AAClF,mEAAmE,iCAAmB;;;;;;AAMtF,OAAO;;AAEP;AACA;AACA;AACA;AACA,sDAAsD,iCAAmB;;AAEzE;AACA,iCAAmB;AACnB,qBAAqB,iCAAmB;AACxC;AACA;AACA,sBAAsB;AACtB,+DAA+D,iCAAmB;;AAElF,wCAAwC,IAAI;AAC5C,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,SAAS;AAC3D;AACA,+CAA+C,yBAAyB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,8BAA8B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gDAAgD;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oEAAoE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,KAAK;AACpE;AACA;AACA;AACA;AACA;AACA,+EAA+E,KAAK,IAAI,SAAS;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4EAA4E;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,uBAAuB,8EAA8E;AACrG;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,sDAAsD,iCAAmB;;AAEzE;AACA,iCAAmB;AACnB,qBAAqB,iCAAmB;AACxC;AACA,sBAAsB;AACtB,+DAA+D,iCAAmB;;AAElF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA,wBAAwB,4CAA4C,EAAE;AACtE;AACA,sBAAsB,mDAAmD,GAAG;AAC5E;AACA,uBAAuB,4CAA4C,EAAE;AACrE;AACA,sBAAsB;AACtB;AACA,4CAA4C,GAAG;AAC/C;AACA;AACA;AACA;AACA;AACA,2BAA2B,6CAA6C;AACxE;AACA;AACA;AACA;AACA;AACA,2BAA2B,6CAA6C;AACxE;AACA;AACA;AACA,2BAA2B,KAAK;AAChC;AACA,uBAAuB,KAAK,EAAE,6BAA6B,IAAI,uDAAuD,GAAG,gEAAgE;AACzL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8BAA8B,EAAE,4CAA4C;AAC1F;AACA;AACA;AACA,aAAa;AACb;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA,sBAAsB,sBAAsB,IAAI,cAAc;AAC9D;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,sDAAsD,iCAAmB;;AAEzE;AACA,iCAAmB;AACnB,qBAAqB,iCAAmB;AACxC;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;;;AAG3C,OAAO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,iCAAmB;;AAE5C;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,iCAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,iCAAmB;;;AAG5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAmB;;AAEtC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc;AACd;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B,4BAA4B;AAC5B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,iCAAmB;AACtC,CAAC;AACD,mBAAmB,iCAAmB;AACtC;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,iCAAmB;;AAE5C;AACA;AACA;;AAEA,UAAU,iCAAmB;AAC7B,WAAW,iCAAmB;;AAE9B;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,iCAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,2CAA2C,yBAAyB;;AAEpE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC,IAAI;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,iCAAmB;AAClC,2CAA2C,mBAAmB;AAC9D;AACA;;AAEA;AACA;AACA,gBAAgB,iCAAmB;AACnC;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,eAAe,iCAAmB;;AAElC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC;;AAEvC;AACA,4CAA4C;AAC5C;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,WAAW;AAC5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,kBAAkB;AAC1B;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,iCAAiC;AAC5D,cAAc,oBAAoB;AAClC;;AAEA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;AAEA,+CAA+C,cAAc;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,iCAAmB;;AAErE;;AAEA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oCAAoC,aAAa,EAAE,EAAE;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,yCAAyC,6BAA6B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,cAAc;AAC7D;AACA;AACA;AACA,+BAA+B,iCAAmB;AAClD,iBAAiB,iCAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iCAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU,iBAAiB;AAClE;AACA;AACA;AACA,mCAAmC,UAAU,qBAAqB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;AAEA,+CAA+C,cAAc;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gEAAgE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,iCAAmB;;AAErE;;AAEA;AACA;AACA;AACA;AACA,cAAc,oCAAoC,aAAa,EAAE;AACjE;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,+CAA+C,cAAc;AAC7D;AACA,uBAAuB,iCAAmB;AAC1C,aAAa,iCAAmB;AAChC,aAAa,iCAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,iCAAmB;;AAErE;;AAEA;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,8EAA8E;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,cAAc;AAC7D;AACA,uBAAuB,iCAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD,8BAA8B;AAC9B;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,2CAA2C,iCAAiC,EAAE;AAC9E;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iCAAiC,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA,2CAA2C,iCAAiC,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,+BAA+B,EAAE;AACjF,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;AAEA,+CAA+C,cAAc;AAC7D;AACA,kBAAkB,iCAAmB;AACrC,eAAe,iCAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,iCAAiC;AAClG;AACA;AACA;AACA;AACA;AACA,2DAA2D,8BAA8B;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;AAEA,+CAA+C,cAAc;AAC7D;AACA,mBAAmB,iCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,mCAAmC,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,iCAAmB;;AAErE;;AAEA;AACA;AACA,kCAAkC,oCAAoC,aAAa,EAAE,EAAE;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,+CAA+C,cAAc;AAC7D;AACA,aAAa,iCAAmB;AAChC,aAAa,iCAAmB;AAChC,aAAa,iCAAmB;AAChC,aAAa,iCAAmB;AAChC,aAAa,iCAAmB;AAChC,aAAa,iCAAmB;AAChC,aAAa,iCAAmB;AAChC;AACA,mBAAmB,iCAAmB;AACtC,0CAA0C,qCAAqC,2BAA2B,EAAE,EAAE;AAC9G,4CAA4C,qCAAqC,6BAA6B,EAAE,EAAE;AAClH,2CAA2C,qCAAqC,4BAA4B,EAAE,EAAE;AAChH,8CAA8C,qCAAqC,+BAA+B,EAAE,EAAE;AACtH,+CAA+C,qCAAqC,gCAAgC,EAAE,EAAE;AACxH,gDAAgD,qCAAqC,iCAAiC,EAAE,EAAE;;;AAG1H,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;AAEA,+CAA+C,cAAc;AAC7D;AACA,mBAAmB,iCAAmB;AACtC,iBAAiB,iCAAmB;AACpC;AACA;AACA;AACA,oCAAoC,yDAAyD;AAC7F;AACA;AACA;AACA;AACA,gCAAgC,4DAA4D;AAC5F,KAAK;AACL;AACA;AACA,oCAAoC,wBAAwB;AAC5D;AACA,gCAAgC,2BAA2B;AAC3D,KAAK;AACL;AACA;AACA,oCAAoC,0DAA0D;AAC9F;AACA,gCAAgC,6DAA6D;AAC7F,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qEAAqE;AACrG;AACA,4BAA4B,wEAAwE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C,2BAA2B,kBAAkB;AAC7C;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;AAEA,+CAA+C,cAAc;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;AAEA,+CAA+C,cAAc;AAC7D;AACA,mBAAmB,iCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,iCAAmB;;AAErE;;AAEA;AACA,4CAA4C;AAC5C;AACA,+CAA+C,cAAc;AAC7D;AACA,mBAAmB,iCAAmB;AACtC,uCAAuC,iCAAmB;AAC1D,uBAAuB,iCAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oCAAoC,EAAE;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;AAEA,+CAA+C,cAAc;AAC7D;AACA,mBAAmB,iCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,iBAAiB,kBAAkB;AACnC;;AAEA;AACA;;AAEA;;AAEA,mBAAmB,gBAAgB;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,iBAAiB;AACpC;AACA;;AAEA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,sBAAsB;AAC9B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,iCAAmB;;AAErE;;AAEA;AACA,4CAA4C;AAC5C;AACA,+CAA+C,cAAc;AAC7D;AACA,sCAAsC,iCAAmB;AACzD,oCAAoC,iCAAmB;AACvD,iCAAiC,iCAAmB;AACpD,yCAAyC,iCAAmB;AAC5D,8DAA8D;AAC9D;AACA;AACA;AACA;AACA,2BAA2B,qDAAqD;AAChF;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,sEAAsE,QAAQ;AAC9E;AACA;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,2BAA2B,0CAA0C;AACrE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,iCAAmB;;AAErE;;AAEA;AACA,4CAA4C;AAC5C;AACA,+CAA+C,cAAc;AAC7D,oCAAoC,iCAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,iCAAmB;;AAErE;;AAEA;AACA,4CAA4C;AAC5C;AACA,+CAA+C,cAAc;AAC7D;AACA,iCAAiC,iCAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,sCAAsC,iCAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,KAAK,IAAI;AACT;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,0CAA0C,sBAAsB,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,wCAAwC,EAAE;AACnG;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;AAEA,+CAA+C,cAAc;AAC7D;AACA,eAAe,iCAAmB;AAClC,eAAe,iCAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAmB;AAClC,8CAA8C,qCAAqC,2BAA2B,EAAE,EAAE;AAClH,+CAA+C,qCAAqC,4BAA4B,EAAE,EAAE;AACpH,uDAAuD,qCAAqC,oCAAoC,EAAE,EAAE;AACpI,2CAA2C,qCAAqC,wBAAwB,EAAE,EAAE;AAC5G,+CAA+C,qCAAqC,4BAA4B,EAAE,EAAE;AACpH;AACA,gDAAgD,qCAAqC,4BAA4B,EAAE,EAAE;AACrH,gDAAgD,qCAAqC,4BAA4B,EAAE,EAAE;AACrH,eAAe,iCAAmB;AAClC,8CAA8C,qCAAqC,2BAA2B,EAAE,EAAE;AAClH,+CAA+C,qCAAqC,4BAA4B,EAAE,EAAE;AACpH,qDAAqD,qCAAqC,kCAAkC,EAAE,EAAE;AAChI;AACA,gDAAgD,qCAAqC,4BAA4B,EAAE,EAAE;AACrH,gDAAgD,qCAAqC,4BAA4B,EAAE,EAAE;AACrH,sDAAsD,qCAAqC,kCAAkC,EAAE,EAAE;AACjI,sDAAsD,qCAAqC,kCAAkC,EAAE,EAAE;AACjI,oDAAoD,qCAAqC,2BAA2B,EAAE,EAAE;;;AAGxH,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,ySAAyS;;AAEvU,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,y/VAAy/V,gIAAgI,0qSAA0qS,gIAAgI,o4DAAo4D,spMAAspM;;AAE394B,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,0uCAA0uC;;AAExwC,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,qDAAqD;;AAEnF,OAAO;;AAEP;AACA;AACA;AACA;AACA,sDAAsD,iCAAmB;;AAEzE;AACA,iCAAmB;AACnB,qBAAqB,iCAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,eAAe,IAAI,GAAG,IAAI,aAAa,IAAI;AAC3C;AACA;AACA,uBAAuB,EAAE;AACzB,sBAAsB,EAAE;AACxB;AACA;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA;AACA,sCAAsC;AACtC,uDAAuD,wBAAwB,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB,SAAS;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kCAAkC,EAAE;AAC/D,4BAA4B,+BAA+B,EAAE;AAC7D;AACA;AACA,KAAK;AACL,2BAA2B,iCAAiC,EAAE;AAC9D,4BAA4B,8BAA8B,EAAE;AAC5D;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,2BAA2B,uCAAuC,EAAE;AACpE,4BAA4B,oCAAoC,EAAE;AAClE;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,8BAA8B,sCAAsC,EAAE;AACtE,2BAA2B,8CAA8C,EAAE;AAC3E,4BAA4B,2CAA2C,EAAE;AACzE,2BAA2B,mCAAmC,EAAE;AAChE,4BAA4B,gCAAgC,EAAE;AAC9D,2BAA2B,qCAAqC,EAAE;AAClE,4BAA4B,kCAAkC,EAAE;AAChE,2BAA2B,qCAAqC,EAAE;AAClE,4BAA4B,kCAAkC,EAAE;AAChE;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,6BAA6B,0CAA0C,EAAE;AACzE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,wBAAwB,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iBAAiB,EAAE;AAC/D,iDAAiD,gBAAgB,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,mCAAmC;AAC9E;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA,0BAA0B,+BAA+B;AACzD,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,+CAA+C;AAC/C;AACA;AACA;AACA,KAAK;AACL;AACA,6CAA6C,yBAAyB,EAAE;AACxE;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,KAAK;AAChB,aAAa,UAAU;AACvB;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,uDAAuD,yBAAyB,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,SAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,iCAAiC,iCAAmB;;AAEpD,gCAAgC,iCAAmB;AACnD,kCAAkC;AAClC,CAAC;;AAED;AACA,oBAAoB,KAAI;;AAExB;AACA,mBAAmB,KAAI;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,8iBAA8iB,wZAAwZ,WAAW;;AAEn+B;AACA;AACA,cAAc;AACd,aAAa;AACb,eAAe;AACf,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA,wxfAAwxf,inBAAinB,6BAA6B,yBAAyB;AAC/7gB,kBAAkB,4teAA4te,wKAAwK,2uZAA2uZ,wKAAwK,6gFAA6gF;AACtz9B,wBAAwB;AACxB,yBAAyB;AACzB;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0DAA0D;AAC1D;;AAEA;AACA,8BAA8B;AAC9B;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC,mBAAmB,iBAAiB;AACpC,qBAAqB,MAAM,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,wCAAwC,EAAE;AAC1C,KAAK;AACL;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA,uCAAuC;AACvC,IAAI;AACJ,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE,IAAI;AACN;AACA;AACA;AACA,GAAG,gBAAgB,iCAAmB;AACtC;AACA,EAAE,MAAM,YAAY;;AAEpB,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;AACA,aAAa,iCAAmB;AAChC;AACA;AACA;AACA,CAAC;AACD;AACA,mBAAmB,iCAAmB;AACtC;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB;AACxB,wBAAwB;AACxB,wBAAwB;AACxB,wBAAwB;AACxB,wBAAwB;;AAExB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,0BAA0B,EAAE;AAC5B;;;AAGA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;;AAGA,eAAe,iCAAmB;;AAElC;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA,sBAAsB,aAAa;AACnC;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;;AAGA,OAAO,YAAY,GAAG,iCAAmB;AACzC,OAAO,SAAS,GAAG,iCAAmB;AACtC,OAAO,mBAAmB,GAAG,iCAAmB;;;AAGhD;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,WAAW,GAAG,aAAa;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;;AAGA,eAAe,iCAAmB;AAClC,OAAO,iBAAiB,GAAG,iCAAmB;;AAE9C;AACA;AACA;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK,IAAI;;AAET,0CAA0C,2BAA2B;AACrE;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6DAA6D,SAAS;AACtE;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,iBAAiB;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;;AAGA,eAAe,iCAAmB;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,mCAAmC;AACnC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;AACA;;;AAGA,eAAe,iCAAmB;AAClC,OAAO,iBAAiB,GAAG,iCAAmB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mCAAmC;;AAE5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;;AAGA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA,gCAAgC,iCAAmB;;AAEnD;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA,iBAAiB,iCAAmB;;AAEpC;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,mCAAmC,QAAQ,iCAAmB,0EAA0E,EAAE;AAC1I,oCAAoC,QAAQ,iCAAmB,4EAA4E,EAAE;AAC7I,iCAAiC,QAAQ,iCAAmB,sEAAsE,EAAE;AACpI,qCAAqC,QAAQ,iCAAmB,8EAA8E,EAAE;AAChJ,sCAAsC,QAAQ,iCAAmB,gFAAgF,EAAE;AACnJ,kCAAkC,QAAQ,iCAAmB,wEAAwE,EAAE;AACvI,mCAAmC,QAAQ,iCAAmB,0EAA0E,EAAE;AAC1I,sCAAsC,QAAQ,iCAAmB,gFAAgF,EAAE;AACnJ,sCAAsC,QAAQ,iCAAmB,gFAAgF,EAAE;AACnJ,gCAAgC,QAAQ,iCAAmB,oEAAoE,EAAE;AACjI,uCAAuC,QAAQ,iCAAmB,oFAAoF,EAAE;AACxJ,yCAAyC,QAAQ,iCAAmB,wFAAwF,EAAE;AAC9J,oCAAoC,QAAQ,iCAAmB,4EAA4E,EAAE;AAC7I,oCAAoC,QAAQ,iCAAmB,4EAA4E,EAAE;AAC7I,mCAAmC,QAAQ,iCAAmB,0EAA0E,EAAE;AAC1I,uCAAuC,QAAQ,iCAAmB,kFAAkF,EAAE;AACtJ,wCAAwC,QAAQ,iCAAmB,oFAAoF,EAAE;;;AAGzJ,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;;AAGA,eAAe,iCAAmB;AAClC,OAAO,UAAU,GAAG,iCAAmB;AACvC,kBAAkB,iCAAmB;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;;AAGA,eAAe,iCAAmB;;AAElC;AACA;AACA;AACA;AACA,IAAI,oBAAoB;AACxB;AACA;AACA;AACA,uBAAuB,WAAW,IAAI,aAAa;AACnD;AACA;;AAEA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;;AAGA,OAAO,YAAY,GAAG,iCAAmB;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;;AAGA,eAAe,iCAAmB;AAClC,OAAO,UAAU,GAAG,iCAAmB;AACvC,sBAAsB,iCAAmB;;AAEzC;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;;AAGA,eAAe,iCAAmB;;AAElC;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;AACA;AACA;AACA;AACA,GAAG,IAAI;;AAEP;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,iCAAmB;;AAErE;;;AAGA,eAAe,iCAAmB;AAClC,WAAW,iCAAmB;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;;AAE9B;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;AACA;;;AAGA,OAAO,0BAA0B,GAAG,iCAAmB;;AAEvD;AACA,sBAAsB,6BAA6B;AACnD;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,uBAAuB,OAAO,EAAE,mBAAmB;AACnD;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK;AACnB,cAAc,OAAO;AACrB,eAAe,KAAK;AACpB;AACA;AACA,sBAAsB,2BAA2B,EAAE,aAAa;AAChE;AACA,yBAAyB,2BAA2B,EAAE,cAAc;AACpE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI,kBAAkB;AACtB;AACA;;AAEA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;;AAGA,gBAAgB,iCAAmB;AACnC,eAAe,iCAAmB;AAClC,OAAO,wBAAwB,GAAG,iCAAmB;;AAErD;AACA;AACA;AACA;AACA,IAAI,oBAAoB;AACxB;AACA,wCAAwC;AACxC;AACA,WAAW,sBAAsB;AACjC;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;;AAGA,OAAO,UAAU,GAAG,iCAAmB;;AAEvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;AACA;;;AAGA,eAAe,iCAAmB;AAClC,OAAO,UAAU,GAAG,iCAAmB;AACvC,sBAAsB,iCAAmB;;AAEzC;AACA;AACA;AACA;AACA;AACA,aAAa,iCAAiC;AAC9C;AACA,QAAQ,MAAM,IAAI,QAAQ;AAC1B,QAAQ,MAAM,IAAI,QAAQ,GAAG,qBAAqB;AAClD;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA,GAAG;;AAEH;AACA,6BAA6B;AAC7B,uBAAuB,WAAW,GAAG,QAAQ,GAAG,aAAa,GAAG,gBAAgB;AAChF,GAAG;AACH,uBAAuB,WAAW,GAAG,QAAQ,GAAG,aAAa;AAC7D;;AAEA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;;AAGA,aAAa,iCAAmB;AAChC,OAAO,QAAQ,GAAG,iCAAmB;;AAErC;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uDAAuD,cAAc;AACrE;AACA;AACA,gBAAgB,KAAK;AACrB,gBAAgB,SAAS;AACzB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,mBAAmB;AAC7B,UAAU,mBAAmB;AAC7B;AACA;AACA;AACA;AACA,qDAAqD,aAAa,GAAG,mBAAmB;AACxF;AACA;AACA;AACA,6BAA6B,aAAa,GAAG,mBAAmB;AAChE,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,QAAQ,wCAAwC,OAAO;AACxE;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa;AAClC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,OAAO;AACtB,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,QAAQ,wCAAwC,OAAO;AAC1E;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;;AAGA,cAAc,iCAAmB;AACjC,eAAe,iCAAmB;;AAElC;AACA;AACA;AACA;AACA;AACA,MAAM,kBAAkB;AACxB,MAAM,6BAA6B;AACnC;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,iCAAmB;;AAE7D;;;AAGA,eAAe,iCAAmB;AAClC,eAAe,iCAAmB;AAClC,OAAO,UAAU,GAAG,iCAAmB;;AAEvC;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,cAAc;AACd,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gCAAgC;AAChC,+BAA+B;AAC/B,+BAA+B;AAC/B,8BAA8B;AAC9B;AACA;AACA;AACA,yDAAyD;AACzD;AACA,0DAA0D;AAC1D;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI,IAAI,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8CAA8C,IAAI,IAAI,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yCAAyC,IAAI;AAC7C;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,IAAI;AAC3D,6DAA6D,IAAI;AACjE,4DAA4D,IAAI;AAChE,kEAAkE,IAAI;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,gCAAgC;AAChC,aAAa;AACb,+BAA+B;AAC/B,aAAa;AACb,kCAAkC;AAClC,aAAa;AACb,kCAAkC;AAClC,aAAa;AACb,+BAA+B;AAC/B,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,iCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,iCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,QAAQ,kCAAmB;AAC3B;AACA;AACA,KAAK,kCAAmB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,kCAAmB;;AAErE,gCAAgC,kCAAmB;AACnD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,KAAK,KAAI;AACT,IAAI,CAAC;AACL,CAAC,qBAAqB;;AAEtB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wGAAwG,IAAI,wBAAwB,IAAI,uDAAuD,IAAI;AACnM,qEAAqE,IAAI;AACzE,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0CAA0C,YAAY;AACtD;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,IAAI;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,EAAE;AACvB,qBAAqB,EAAE;AACvB,0BAA0B,EAAE;AAC5B;AACA;AACA;AACA,wBAAwB,IAAI;AAC5B,wBAAwB,IAAI;AAC5B,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA,mBAAmB,MAAM,wEAAwE,MAAM,mBAAmB,MAAM,qBAAqB,MAAM,EAAE,IAAI;AACjK;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,OAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB;AACpB,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kCAAmB;AACnC;AACA,aAAa;AACb;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA;AACA,qCAAqC,EAAE;AACvC,+BAA+B,EAAE;AACjC,iCAAiC,EAAE;AACnC,+BAA+B,EAAE;AACjC,6BAA6B,EAAE,IAAI,EAAE;AACrC,4BAA4B,EAAE;AAC9B,mCAAmC,GAAG;AACtC,6BAA6B,EAAE;AAC/B,+BAA+B,EAAE,IAAI,EAAE;AACvC,8BAA8B,EAAE,IAAI,EAAE;AACtC,4BAA4B,EAAE;AAC9B,2BAA2B,EAAE;AAC7B,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,IAAI,0DAA0D,IAAI,qEAAqE,EAAE;AACjM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gBAAgB;AACnC;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC,kBAAkB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,cAAc;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,2GAA2G;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,mBAAmB;AACxC;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,WAAW,kCAAmB;AAC9B,YAAY,kCAAmB;AAC/B,gBAAgB,kCAAmB;AACnC,iBAAiB,kCAAmB;AACpC,gBAAgB,kCAAmB;;AAEnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,OAAO;AAClB,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8DAA8D,GAAG;AACjE;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,gBAAgB;AAC3B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,sDAAsD,kCAAmB;;AAEzE;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,sDAAsD,kCAAmB;;AAEzE;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,uEAAuE,kCAAmB;AAC1F,oEAAoE,kCAAmB;AACvF,+DAA+D,kCAAmB;AAClF,oEAAoE,kCAAmB;AACvF,oEAAoE,kCAAmB;AACvF,oEAAoE,kCAAmB;;;;;;;;;;AAUvF,OAAO;;AAEP;AACA;AACA;AACA;AACA,sDAAsD,kCAAmB;;AAEzE;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,oEAAoE,kCAAmB;;AAEvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,sDAAsD,kCAAmB;;AAEzE;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,8DAA8D,kCAAmB;AACjF,8DAA8D,kCAAmB;;;AAGjF;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,sDAAsD,kCAAmB;;AAEzE;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA;AACA;AACA,sBAAsB;AACtB,2DAA2D,kCAAmB;AAC9E,gFAAgF,kCAAmB;AACnG,mEAAmE,kCAAmB;AACtF,wFAAwF,kCAAmB;AAC3G,8DAA8D,kCAAmB;AACjF,8DAA8D,kCAAmB;AACjF,8DAA8D,kCAAmB;AACjF,iEAAiE,kCAAmB;AACpF,8DAA8D,kCAAmB;AACjF,iEAAiE,kCAAmB;;;;;;;;;AASpF,UAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA,sCAAsC,0BAA0B;AAChE;AACA,yCAAyC,IAAI;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,GAAG;AACjD,SAAS;AACT,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA,2BAA2B,IAAI,EAAE,MAAM;AACvC;AACA,uBAAuB,IAAI,EAAE,MAAM,GAAG,eAAe,IAAI,IAAI;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,YAAY;AAC5B;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD,0DAA0D,+BAA+B,QAAQ;AACjG,qBAAqB,gBAAgB,EAAE,MAAM,EAAE,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,cAAc;AACd;AACA;AACA;AACA;AACA,oBAAoB;AACpB,sBAAsB;AACtB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,gCAAgC,SAAS,UAAU,aAAa;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,GAAG,IAAI;AAClC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,GAAG,IAAI;AAClC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,GAAG,iCAAiC;AAC/D,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,oDAAoD,MAAM;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,QAAQ,yCAAyC;AACjD,QAAQ,yCAAyC;AACjD,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,SAAS,yCAAyC;AAClD,SAAS,yCAAyC;AAClD,SAAS,yCAAyC;AAClD,SAAS,yCAAyC;AAClD,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS;AACT;AACA;AACA,SAAS,yCAAyC;AAClD,SAAS,yCAAyC;AAClD,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,SAAS,+CAA+C;AACxD,SAAS,+CAA+C;AACxD,SAAS,+CAA+C;AACxD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,YAAY;AACxB;AACA,qCAAqC,0CAA0C;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU,GAAG,KAAK,IAAI,UAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+CAA+C;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0CAA0C;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,sDAAsD,kCAAmB;;AAEzE;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,sDAAsD,kCAAmB;;AAEzE;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,8DAA8D,kCAAmB;AACjF,8DAA8D,kCAAmB;;;AAGjF;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,sDAAsD,kCAAmB;;AAEzE;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,sDAAsD,kCAAmB;;AAEzE;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,oEAAoE,kCAAmB;;AAEvF;AACA;AACA;AACA;AACA,gCAAgC,0CAA0C;AAC1E;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,kCAAmB;;AAErE;;AAEA;AACA,4CAA4C;AAC5C;AACA,+CAA+C,cAAc;AAC7D;AACA,iCAAiC,kCAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA,iCAAiC,oBAAoB;AACrD;AACA;AACA,uEAAuE,mBAAmB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAA4C;AACxE,4BAA4B,4CAA4C;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA,6BAA6B,+BAA+B;AAC5D;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;AAEA,+CAA+C,cAAc;AAC7D;AACA,iBAAiB,kCAAmB;AACpC,0CAA0C,qCAAqC,yBAAyB,EAAE,EAAE;AAC5G,mBAAmB,kCAAmB;AACtC,4CAA4C,qCAAqC,6BAA6B,EAAE,EAAE;AAClH,6CAA6C,qCAAqC,8BAA8B,EAAE,EAAE;AACpH;AACA;AACA,mBAAmB,YAAY,MAAM,cAAc;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY,MAAM,eAAe;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,+CAA+C,cAAc;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,YAAY,kCAAmB;;AAE/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,kBAAkB;AACrC;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,SAAS;AACrB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB;AACA;;AAEA;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;;AAGA,WAAW,kCAAmB;;AAE9B;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,kCAAmB;;AAE5C;AACA,aAAa,kCAAmB;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO,iBAAiB;;AAExB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO,KAAK,sBAAsB;AAChD;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA,mBAAmB,mBAAmB,EAAE,YAAY;AACpD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB,KAAK,mBAAmB;AAC9D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW,EAAE,SAAS;AACzC,iBAAiB,oBAAoB;AACrC,cAAc,UAAU,GAAG,EAAE,IAAI,WAAW,EAAE,SAAS;AACvD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,aAAa;AAC1F,yDAAyD,iBAAiB;AAC1E;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,yBAAyB,YAAY;AACrC;AACA;AACA;AACA,gBAAgB,kCAAkC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,OAAO,0BAA0B;AAC5D;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA,qBAAqB,IAAI;AACzB;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA,sBAAsB,UAAU,GAAG,eAAe,IAAI,WAAW,EAAE,IAAI;AACvE;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU,QAAQ,WAAW,GAAG,0BAA0B;AAC9E;AACA;AACA;AACA,qBAAqB,YAAY,EAAE,IAAI,IAAI,oBAAoB;AAC/D;AACA;AACA,iBAAiB,EAAE,KAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,yBAAyB,YAAY;AACrC;AACA;AACA;AACA,gBAAgB,kCAAkC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,OAAO,0BAA0B;AAC5D;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU,GAAG,eAAe,IAAI,WAAW,EAAE,IAAI;AACvE;AACA;AACA;AACA;AACA,qBAAqB,YAAY,EAAE,IAAI,IAAI,oBAAoB;AAC/D;AACA;AACA,iBAAiB,EAAE,KAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,YAAY;AACrC,6BAA6B,YAAY;AACzC;AACA;AACA,gBAAgB,kCAAkC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,OAAO,0BAA0B;AAC5D;AACA,sBAAsB,oBAAoB;AAC1C;AACA,qBAAqB,IAAI;AACzB;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA,sBAAsB,UAAU,GAAG,eAAe,KAAK,IAAI;AAC3D;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU,UAAU,0BAA0B;AAClE;AACA;AACA;AACA,qBAAqB,YAAY,EAAE,IAAI,IAAI,oBAAoB;AAC/D;AACA;AACA,iBAAiB,EAAE,KAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kCAAkC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA,qBAAqB,IAAI;AACzB;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA,sBAAsB,UAAU,GAAG,eAAe,IAAI,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU,SAAS,0BAA0B;AACjE;AACA;AACA,iBAAiB,EAAE,KAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;;AAGA,iBAAiB,kCAAmB;;AAEpC;AACA;;AAEA;AACA;;AAEA,mCAAmC,SAAS;AAC5C;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8BAA8B,GAAG;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;;AAEA,aAAa,kCAAmB;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,sCAAsC,sCAAsC;AACzG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA,UAAU;AACV;AACA;AACA,SAAS,kCAAmB;AAC5B,CAAC;;AAED;AACA;AACA,UAAU;AACV;AACA;AACA,SAAS,kCAAmB;AAC5B,CAAC;;AAED;AACA;AACA,UAAU;AACV;AACA;AACA,SAAS,kCAAmB;AAC5B,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,SAAS,kCAAmB;AAC5B,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;;AAG7D;AACA;AACA;;AAEA,iBAAiB,kCAAmB;;;AAGpC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;;AAGA,aAAa,kCAAmB;AAChC,iBAAiB,kCAAmB;AACpC,OAAO,QAAQ,GAAG,kCAAmB;;AAErC;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,IAAI,kBAAkB;AACtB,WAAW,SAAS;AACpB;AACA,WAAW,SAAS;AACpB;AACA,8EAA8E;AAC9E,uBAAuB,yDAAyD;;AAEhF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0DAA0D;AAC1D,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,YAAY;AAC9D,WAAW,yBAAyB;AACpC,WAAW,mBAAmB;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;;AAGA;AACA,uCAAuC,kCAAmB;;;AAG1D,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;;AAGA,aAAa,kCAAmB;AAChC,OAAO,QAAQ,GAAG,kCAAmB;AACrC,wBAAwB,kCAAmB;;AAE3C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;;AAEA,0FAA0F;AAC1F;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,OAAO,oBAAoB;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,MAAM,GAAG,sCAAsC;AACtE;AACA,KAAK;AACL,uBAAuB,MAAM,GAAG,YAAY,MAAM,YAAY;AAC9D,KAAK;AACL,mBAAmB,MAAM,GAAG,YAAY;AACxC;AACA,GAAG;AACH,iBAAiB,MAAM,GAAG,iBAAiB;AAC3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,KAAK,GAAG,WAAW,GAAG,wBAAwB;AAC/D,GAAG;AACH;AACA,kBAAkB,KAAK,IAAI,KAAK,GAAG,WAAW,GAAG,wBAAwB;AACzE;;AAEA,4BAA4B,cAAc;AAC1C;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,kCAAmB;AAClC,eAAe,kCAAmB;AAClC,kCAAmB;AACnB;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS,kCAAmB;AAC5B;AACA;AACA;AACA;;AAEA;AACA,aAAa,kCAAmB;AAChC;;AAEA,aAAa,kCAAmB;AAChC,8IAA8I;AAC9I;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,kCAAmB;AACnC;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA,iBAAiB,kCAAmB;AACpC,kBAAkB,kCAAmB;AACrC,eAAe,kCAAmB;AAClC;AACA,qBAAqB,kCAAmB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kCAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yEAAyE,mFAAmF;AAC5J;AACA;AACA,qBAAqB,kCAAmB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kCAAmB;AAC3D;AACA;AACA;AACA;AACA;AACA,qBAAqB,kCAAmB;AACxC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+FAA+F;AAC/F,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,4FAA4F;AAC5F,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,kCAAmB;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA,mDAAmD,+DAA+D;AAClH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kCAAmB;AAChC;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa,kCAAmB;AAChC;AACA;;AAEA;AACA,aAAa,kCAAmB;AAChC;;AAEA,aAAa,kCAAmB;AAChC,8IAA8I;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kCAAmB;AACrC,eAAe,kCAAmB;AAClC;AACA,qBAAqB,kCAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAmB;AACnB;AACA;AACA,qBAAqB,kCAAmB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,qBAAqB,kCAAmB;;AAExC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,sDAAsD;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;;AAGA;AACA,2CAA2C,2BAA2B,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;AAC1O,8BAA8B,uCAAuC,oDAAoD;AACzH,oCAAoC,+DAA+D,sCAAsC,0BAA0B,+CAA+C,yCAAyC,qEAAqE,EAAE,qDAAqD;AACvX,eAAe,kCAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA;AACA,yFAAyF;AACzF;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;;AAGA,0CAA0C,gCAAgC,oCAAoC,oDAAoD,6DAA6D,gEAAgE,EAAE,mCAAmC,EAAE,aAAa;AACnV,gCAAgC,gBAAgB,sBAAsB,OAAO,uDAAuD,6DAA6D,2CAA2C,EAAE,mKAAmK,kFAAkF,EAAE,EAAE,EAAE,eAAe;AACxf,2CAA2C,2BAA2B,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;AAC1O,iDAAiD,0CAA0C,0DAA0D,EAAE;AACvJ,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2EAA2E,EAAE;AAC3U,6DAA6D,sEAAsE,8DAA8D,kDAAkD,kBAAkB,EAAE,oBAAoB;AAC3R,8BAA8B,uCAAuC,oDAAoD;AACzH,oCAAoC,+DAA+D,sCAAsC,0BAA0B,+CAA+C,yCAAyC,qEAAqE,EAAE,qDAAqD;AACvX,eAAe,kCAAmB;AAClC;AACA,gBAAgB,kCAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA,yDAAyD,cAAc;AACvE;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wFAAwF;AACxF;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;;;;AAIA,iCAAiC,kCAAmB;AACpD;AACA;AACA;AACA;AACA;AACA,uEAAuE,aAAa;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;;AAGA,4EAA4E,MAAM,0BAA0B,wBAAwB,EAAE,gBAAgB,eAAe,QAAQ,EAAE,iBAAiB,gBAAgB,EAAE,OAAO,4CAA4C,EAAE;AACvQ,gCAAgC,qBAAqB,mCAAmC,gDAAgD,gCAAgC,wBAAwB,wEAAwE,EAAE,uBAAuB,uEAAuE,EAAE,kBAAkB,EAAE,EAAE,GAAG;AACnY,0CAA0C,gCAAgC,oCAAoC,oDAAoD,6DAA6D,gEAAgE,EAAE,mCAAmC,EAAE,aAAa;AACnV,gCAAgC,gBAAgB,sBAAsB,OAAO,uDAAuD,6DAA6D,2CAA2C,EAAE,mKAAmK,kFAAkF,EAAE,EAAE,EAAE,eAAe;AACxf,2CAA2C,2BAA2B,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;AAC1O,8BAA8B,uCAAuC,oDAAoD;AACzH,oCAAoC,+DAA+D,sCAAsC,0BAA0B,+CAA+C,yCAAyC,qEAAqE,EAAE,qDAAqD;AACvX,2BAA2B,kCAAmB;AAC9C;AACA;AACA;AACA;AACA,GAAG,kGAAkG,uFAAuF;AAC5L;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;;AAGA,4BAA4B,kCAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,iBAAiB,kCAAmB;;;AAGpC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,gBAAgB,kCAAmB;AACnC,OAAO,OAAO,GAAG,kCAAmB;;AAEpC;AACA;AACA,UAAU;AACV;AACA,kBAAkB,kCAAmB;AACrC;AACA;AACA,UAAU;AACV;AACA,qBAAqB,kCAAmB;AACxC;AACA;AACA,UAAU;AACV;AACA,iBAAiB,kCAAmB;AACpC;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,uBAAuB,kCAAmB;AAC1C;AACA;AACA,UAAU;AACV;AACA,iBAAiB,kCAAmB;AACpC;AACA;AACA,UAAU;AACV;AACA,2BAA2B,kCAAmB;AAC9C;AACA;AACA,UAAU;AACV;AACA,2BAA2B,kCAAmB;AAC9C;AACA;AACA,UAAU;AACV;AACA,oBAAoB,kCAAmB;AACvC;AACA;AACA,UAAU;AACV;AACA,oBAAoB,kCAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,OAAO,SAAS,GAAG,kCAAmB;;AAEtC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA,GAAG;AACH;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,gBAAgB,kCAAmB;AACnC,OAAO,UAAU,GAAG,kCAAmB;;AAEvC;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,qBAAqB,kCAAmB;;AAExC;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ,YAAY;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,OAAO,QAAQ,GAAG,kCAAmB;AACrC,eAAe,kCAAmB;AAClC,eAAe,kCAAmB;AAClC,cAAc,kCAAmB;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA,oCAAoC;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mEAAmE,SAAS;AAC5E;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,WAAW,kCAAmB;AAC9B,qBAAqB,kCAAmB;AACxC,cAAc,kCAAmB;AACjC,aAAa,kCAAmB;AAChC,mBAAmB,kCAAmB;AACtC,wBAAwB,kCAAmB;;AAE3C;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kCAAkC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,aAAa,UAAU;AACvB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,OAAO,WAAW,GAAG,kCAAmB;;AAExC;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA,WAAW,mBAAmB;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,OAAO,oBAAoB,GAAG,kCAAmB;AACjD,qBAAqB,kCAAmB;AACxC,OAAO,eAAe,GAAG,kCAAmB;AAC5C,iBAAiB,kCAAmB;AACpC,yBAAyB,kCAAmB;AAC5C,yBAAyB,kCAAmB;AAC5C,8BAA8B,kCAAmB;AACjD,iBAAiB,kCAAmB;AACpC,OAAO,OAAO,GAAG,kCAAmB;AACpC,eAAe,kCAAmB;;AAElC;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,WAAW,mBAAmB;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,KAAK;AACR;AACA;AACA;AACA;;AAEA;AACA,2CAA2C,kCAAmB;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kEAAkE;AAC9E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;AACA,2CAA2C,eAAe;AAC1D;AACA;AACA;AACA,uDAAuD,mBAAmB;AAC1E;AACA;AACA,oBAAoB,sDAAsD;AAC1E,oBAAoB,yDAAyD;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,SAAS;;AAET,4CAA4C,aAAa,GAAG,aAAa;AACzE;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,YAAY;AACjD;;AAEA;AACA;AACA,6DAA6D,mBAAmB;AAChF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,qBAAqB;;AAE7D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO,WAAW;AAC9B,eAAe,OAAO;AACtB;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA,CAAC;;AAED;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,WAAW,kCAAmB;AAC9B,qBAAqB,kCAAmB;AACxC,cAAc,kCAAmB;AACjC,aAAa,kCAAmB;AAChC,mBAAmB,kCAAmB;AACtC,wBAAwB,kCAAmB;;AAE3C;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,aAAa,UAAU;AACvB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,WAAW,kCAAmB;AAC9B,OAAO,gBAAgB,GAAG,kCAAmB;AAC7C,OAAO,SAAS,GAAG,kCAAmB;;AAEtC;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,WAAW,kCAAmB;AAC9B,OAAO,iBAAiB,GAAG,kCAAmB;AAC9C,wBAAwB,kCAAmB;;AAE3C;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ,YAAY;AACjC;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC,cAAc,EAAE,SAAS;AAC1D,OAAO;AACP;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iCAAiC,cAAc,EAAE,SAAS;AAC1D,OAAO;AACP;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,cAAc,EAAE,SAAS;AACxD,KAAK;AACL;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK,IAAI;AACT;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,WAAW,kCAAmB;AAC9B,aAAa,kCAAmB;AAChC,oBAAoB,kCAAmB;AACvC,aAAa,kCAAmB;AAChC,OAAO,UAAU,GAAG,kCAAmB;AACvC,OAAO,sBAAsB,GAAG,kCAAmB;AACnD,wBAAwB,kCAAmB;AAC3C,cAAc,kCAAmB;AACjC,WAAW,kCAAmB;AAC9B,iBAAiB,kCAAmB;;AAEpC;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA,0BAA0B;AAC1B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,KAAK,OAAO,OAAO;AAC3D;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yCAAyC;AACzC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe;AACf;AACA,8BAA8B,EAAE;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,sBAAsB,cAAc,EAAE,SAAS;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,iBAAiB;AACjB;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,SAAS,GAAG,SAAS;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,eAAe,eAAe;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS,EAAE,WAAW,EAAE,IAAI;AACvC,WAAW,SAAS,EAAE,IAAI;;AAE1B;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;AAC7D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA,0BAA0B,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS;AAC9D;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS;AACtD;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA,mCAAmC,SAAS,EAAE,IAAI;AAClD,mCAAmC,SAAS,GAAG,IAAI,EAAE,SAAS;AAC9D;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,aAAa,kCAAmB;AAChC,cAAc,kCAAmB;AACjC,OAAO,SAAS,GAAG,kCAAmB;AACtC,wBAAwB,kCAAmB;AAC3C,sBAAsB,kCAAmB;;AAEzC;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ,YAAY;AACjC;AACA;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA,qDAAqD,eAAe;AACpE;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qDAAqD,eAAe;AACpE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,OAAO;AACnB;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,oCAAoC;AACpC;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA,2DAA2D,cAAc,GAAG,cAAc;AAC1F;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,WAAW,kCAAmB;AAC9B;AACA,CAAC;;AAED;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,WAAW,kCAAmB;AAC9B;AACA,CAAC;;AAED;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,WAAW,kCAAmB;AAC9B;AACA,CAAC;;AAED;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,WAAW,kCAAmB;AAC9B;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,iBAAiB,kCAAmB;AACpC,OAAO,UAAU,GAAG,kCAAmB;AACvC,WAAW,kCAAmB;AAC9B,wBAAwB,kCAAmB;;AAE3C;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ,YAAY;AACjC;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;;AAEA,0BAA0B,cAAc,EAAE,SAAS;AACnD;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,MAAM,GAAG,sCAAsC;AACtE;AACA,KAAK;AACL,uBAAuB,MAAM,GAAG,YAAY,MAAM,YAAY;AAC9D,KAAK;AACL,mBAAmB,MAAM,GAAG,YAAY;AACxC;AACA,GAAG;AACH,iBAAiB,MAAM,GAAG,iBAAiB;AAC3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,KAAK,GAAG,WAAW,GAAG,wBAAwB;AAC/D,GAAG;AACH;AACA,kBAAkB,KAAK,IAAI,KAAK,GAAG,WAAW,GAAG,wBAAwB;AACzE;;AAEA,4BAA4B,cAAc;AAC1C;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,kCAAmB;AAClC,eAAe,kCAAmB;AAClC,kCAAmB;AACnB;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;AAIA;AACA,gBAAgB,kCAAmB;AACnC,kCAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS,kCAAmB;AAC5B;AACA;AACA;AACA;;AAEA;AACA,aAAa,kCAAmB;AAChC;;AAEA,aAAa,kCAAmB;AAChC,8IAA8I;AAC9I;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,kCAAmB;AACnC;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA,iBAAiB,kCAAmB;AACpC,kBAAkB,kCAAmB;AACrC,eAAe,kCAAmB;AAClC;AACA,qBAAqB,kCAAmB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kCAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yEAAyE,mFAAmF;AAC5J;AACA;AACA,qBAAqB,kCAAmB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kCAAmB;AAC3D;AACA;AACA;AACA;AACA;AACA,qBAAqB,kCAAmB;AACxC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+FAA+F;AAC/F,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,4FAA4F;AAC5F,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,kCAAmB;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA,mDAAmD,+DAA+D;AAClH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kCAAmB;AAChC;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA,qBAAqB,kCAAmB;AACxC;AACA;AACA;AACA;AACA,aAAa,kCAAmB;AAChC,kCAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa,kCAAmB;AAChC;AACA;;AAEA;AACA,aAAa,kCAAmB;AAChC;;AAEA,aAAa,kCAAmB;AAChC,8IAA8I;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kCAAmB;AACrC,eAAe,kCAAmB;AAClC;AACA,qBAAqB,kCAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAmB;AACnB;AACA;AACA,qBAAqB,kCAAmB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,qBAAqB,kCAAmB;;AAExC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,sDAAsD;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;;AAGA;AACA,2CAA2C,2BAA2B,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;AAC1O,8BAA8B,uCAAuC,oDAAoD;AACzH,oCAAoC,+DAA+D,sCAAsC,0BAA0B,+CAA+C,yCAAyC,qEAAqE,EAAE,qDAAqD;AACvX,eAAe,kCAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA;AACA,yFAAyF;AACzF;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;;AAGA,0CAA0C,gCAAgC,oCAAoC,oDAAoD,6DAA6D,gEAAgE,EAAE,mCAAmC,EAAE,aAAa;AACnV,gCAAgC,gBAAgB,sBAAsB,OAAO,uDAAuD,6DAA6D,2CAA2C,EAAE,mKAAmK,kFAAkF,EAAE,EAAE,EAAE,eAAe;AACxf,2CAA2C,2BAA2B,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;AAC1O,iDAAiD,0CAA0C,0DAA0D,EAAE;AACvJ,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2EAA2E,EAAE;AAC3U,6DAA6D,sEAAsE,8DAA8D,kDAAkD,kBAAkB,EAAE,oBAAoB;AAC3R,8BAA8B,uCAAuC,oDAAoD;AACzH,oCAAoC,+DAA+D,sCAAsC,0BAA0B,+CAA+C,yCAAyC,qEAAqE,EAAE,qDAAqD;AACvX,eAAe,kCAAmB;AAClC;AACA,gBAAgB,kCAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA,yDAAyD,cAAc;AACvE;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wFAAwF;AACxF;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;;;;AAIA,iCAAiC,kCAAmB;AACpD;AACA;AACA;AACA;AACA;AACA,uEAAuE,aAAa;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;;AAGA,4EAA4E,MAAM,0BAA0B,wBAAwB,EAAE,gBAAgB,eAAe,QAAQ,EAAE,iBAAiB,gBAAgB,EAAE,OAAO,4CAA4C,EAAE;AACvQ,gCAAgC,qBAAqB,mCAAmC,gDAAgD,gCAAgC,wBAAwB,wEAAwE,EAAE,uBAAuB,uEAAuE,EAAE,kBAAkB,EAAE,EAAE,GAAG;AACnY,0CAA0C,gCAAgC,oCAAoC,oDAAoD,6DAA6D,gEAAgE,EAAE,mCAAmC,EAAE,aAAa;AACnV,gCAAgC,gBAAgB,sBAAsB,OAAO,uDAAuD,6DAA6D,2CAA2C,EAAE,mKAAmK,kFAAkF,EAAE,EAAE,EAAE,eAAe;AACxf,2CAA2C,2BAA2B,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;AAC1O,8BAA8B,uCAAuC,oDAAoD;AACzH,oCAAoC,+DAA+D,sCAAsC,0BAA0B,+CAA+C,yCAAyC,qEAAqE,EAAE,qDAAqD;AACvX,2BAA2B,kCAAmB;AAC9C;AACA;AACA;AACA;AACA,GAAG,kGAAkG,uFAAuF;AAC5L;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kCAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,+BAA+B,kCAAmB;AAClD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,aAAa;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;;AAGA,4BAA4B,kCAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,iBAAiB,kCAAmB;;;AAGpC,OAAO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,kCAAmB;;AAE5C,aAAa,kCAAmB;AAChC;AACA;AACA;AACA;AACA,CAAC;AACD,6BAA6B,kCAAmB;AAChD;AACA;AACA,qBAAqB,kCAAmB;AACxC,mBAAmB,kCAAmB;AACtC,sBAAsB,kCAAmB;AACzC,wBAAwB,kCAAmB;AAC3C,qBAAqB,kCAAmB;AACxC,qBAAqB,kCAAmB;AACxC;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,qNAAqN,8DAA8D,gIAAgI,yQAAyQ,oBAAoB,2YAA2Y,wFAAwF,qVAAqV,YAAY,mBAAmB,iBAAiB;;AAEtjD,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA,WAAW,oBAAoB,WAAW,WAAW,gBAAgB;AACrE;AACA;AACA;AACA;AACA,WAAW,mBAAmB,WAAW,WAAW,eAAe;AACnE;AACA;AACA;AACA;AACA,WAAW,mBAAmB,WAAW,WAAW,eAAe;AACnE;AACA;AACA;AACA,0BAA0B;AAC1B,4BAA4B;AAC5B,4BAA4B;AAC5B,2BAA2B;AAC3B,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB,mBAAmB;AACnB;AACA,yBAAyB,GAAG;AAC5B;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA,cAAc,MAAM,GAAG,2BAA2B,KAAK,MAAM;AAC7D;;AAEA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA,gBAAgB,MAAM;AACtB;;AAEA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;;AAEA,eAAe,MAAM,GAAG,MAAM;AAC9B;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA,gBAAgB,eAAe;AAC/B;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,QAAQ;AACvB;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA,iBAAiB,oBAAoB,GAAG,QAAQ;AAChD;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;;AAEA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,OAAO,mCAAmC,GAAG,kCAAmB;AAChE,6BAA6B,CAAC;AAC9B,eAAe,kCAAmB;AAClC,eAAe,kCAAmB;AAClC;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,0BAA0B,sBAAsB;AAChD,iCAAiC,eAAe,GAAG,WAAW,IAAI,aAAa,GAAG,6BAA6B;AAC/G;AACA,KAAK;AACL;AACA,CAAC;;AAED;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA,qBAAqB,kCAAmB;AACxC,aAAa,kCAAmB;AAChC,mBAAmB,kCAAmB;AACtC,eAAe,kCAAmB;AAClC;AACA;AACA,iBAAiB,kCAAmB;;AAEpC;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,oCAAoC,GAAG,kCAAmB;AACjE;;AAEA;AACA;AACA;AACA,4DAA4D,aAAa;AACzE;AACA,gEAAgE,aAAa;AAC7E;AACA;AACA;AACA;AACA,8EAA8E,aAAa;AAC3F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0EAA0E,KAAK,iBAAiB,OAAO;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,4BAA4B;AAC5C,kBAAkB;AAClB,kBAAkB;AAClB,iBAAiB;;AAEjB;AACA,SAAS,aAAa;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,MAAM;AACnC;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,MAAM;AAC9B;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,cAAc;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mEAAmE,QAAQ;AAC3E;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA,gCAAgC,kCAAkC;AAClE;AACA;AACA;AACA;AACA,gDAAgD,MAAM;AACtD;AACA;AACA,qCAAqC,MAAM;AAC3C,OAAO;AACP,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,gCAAgC,cAAc,cAAc,+BAA+B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;;AAEP,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,kCAAmB;;AAErE;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;;AAEA,QAAQ,IAAI;AACZ,aAAa,KAAI;AACjB,qDAAqD,kCAAmB,yEAAyE,kCAAmB;;AAEpK;AACA,KAAK,MAAM,EAAE;;AAEb,CAAC;;;;AAID,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,kCAAmB;;AAErE;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;;AAEA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,IAAI;AACZ,aAAa,KAAI;AACjB,yCAAyC,kCAAmB,yEAAyE,kCAAmB,+EAA+E,kCAAmB;AAC1P;AACA,KAAK,MAAM,EAAE;;AAEb,CAAC;;;;;;;;;AASD,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA,KAAK;;AAEL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,UAAU,kCAAmB;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,yCAAyC,aAAa;AACtD,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;;AAEA,qBAAqB,mBAAmB,EAAE;AAC1C;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,cAAc;AACnC;AACA;AACA,KAAK;;AAEL;AACA;AACA,0BAA0B,OAAO;AACjC;AACA;AACA,KAAK;;AAEL;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA,KAAK;;AAEL;AACA;AACA,iCAAiC,uBAAuB;AACxD;AACA;AACA,KAAK;;AAEL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA,KAAK;;AAEL;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,kCAAmB;;AAErE;AACA;;AAEA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,+HAA+H;AAC/H;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA,6BAA6B,IAAI;AACjC,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB,6BAA6B,UAAU;AACvC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;AACrC,aAAa,oCAAoC;AACjD;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE,kEAAkE;AAClE,kEAAkE;AAClE,kEAAkE;AAClE,kEAAkE;AAClE,kEAAkE;AAClE,kEAAkE;AAClE,uBAAuB,KAAK;AAC5B,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,mCAAmC;AACnC,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D,8DAA8D;AAC9D,8DAA8D;AAC9D,8DAA8D;AAC9D,8DAA8D;AAC9D,8DAA8D;AAC9D,8DAA8D;AAC9D;AACA,uBAAuB,KAAK;AAC5B,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;;AAEA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,gDAAgD;AAChD,8CAA8C;AAC9C,+CAA+C;AAC/C;AACA,uBAAuB,KAAK;AAC5B;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA,iDAAiD;AACjD;AACA;AACA,yBAAyB,OAAO;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,qDAAqD;AACrD;AACA,uBAAuB,YAAY;AACnC,uBAAuB,YAAY;AACnC,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;;;AAGb;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,kDAAkD;AAClD;AACA;AACA,oDAAoD;AACpD,qDAAqD;AACrD;AACA;AACA,kDAAkD;AAClD,mDAAmD;AACnD;AACA;AACA,kDAAkD;AAClD,mDAAmD;AACnD;AACA;AACA,iDAAiD;AACjD,kDAAkD;AAClD;AACA;AACA,gDAAgD;AAChD;AACA;AACA,oDAAoD;AACpD;AACA;AACA,iDAAiD;AACjD;AACA;AACA,mDAAmD;AACnD;AACA;AACA,mDAAmD;AACnD;AACA;AACA,wDAAwD;AACxD;AACA,uBAAuB,KAAK;AAC5B,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B;AAC3B,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,4DAA4D;AAC5D,0DAA0D;AAC1D;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA,uBAAuB,KAAK;AAC5B,uBAAuB,KAAK;AAC5B,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE,oDAAoD;AACpD,8CAA8C;AAC9C,kDAAkD;AAClD,kDAAkD;AAClD,qDAAqD;AACrD,qDAAqD;AACrD,qDAAqD;AACrD,qDAAqD;AACrD;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA,+DAA+D;AAC/D,yEAAyE,KAAK;AAC9E;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG,KAAK;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,OAAO;AACpD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,oBAAoB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,qBAAqB;AACrB,sCAAsC;AACtC;AACA,2HAA2H;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,iBAAiB;AACjB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,IAAI;AACZ,aAAa,KAAI;AACjB,wCAAwC,kCAAmB,yEAAyE,kCAAmB,+EAA+E,kCAAmB;;AAEzP;AACA,KAAK,MAAM,EAAE;;AAEb,CAAC;;;;;;;;;AASD,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD,wBAAwB;AACxB,4BAA4B;AAC5B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,OAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;;AAGA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,gDAAgD;AAChD;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC;AACA;AACA,6DAA6D,oBAAoB;AACjF,8CAA8C,yBAAyB;AACvE,6DAA6D;AAC7D,uDAAuD;AACvD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;;;AAGA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,8BAA8B;AAC/E,iDAAiD,8BAA8B;AAC/E,4CAA4C,yBAAyB;AACrE,4CAA4C,yBAAyB;AACrE;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA,QAAQ,IAAI;AACZ,aAAa,KAAI;AACjB;AACA;AACA,KAAK,MAAM,EAAE;AACb,CAAC;;;;;;AAMD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,iBAAiB,kCAAmB;;AAEpC,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,kCAAmB;;AAErE;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD,OAAO;AAC5D;AACA;AACA,2BAA2B;AAC3B;AACA,SAAS;;AAET;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,IAAI;AACZ,aAAa,KAAI;AACjB,4CAA4C,kCAAmB;;AAE/D;AACA,KAAK,MAAM,EAAE;;AAEb,CAAC;;;;;;;;;AASD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,kCAAmB;;AAErE;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,oBAAoB,OAAO,EAAE,OAAO,EAAE,OAAO,sBAAsB;AACnE,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,kDAAkD,OAAO;AACzD;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa;AACb;AACA,kCAAkC;AAClC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA,2BAA2B;AAC3B;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA,sDAAsD,qBAAqB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD,OAAO;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,IAAI;AACZ,aAAa,KAAI;AACjB,4CAA4C,kCAAmB;;AAE/D;AACA,KAAK,MAAM,EAAE;;AAEb,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,iBAAiB,kCAAmB;;AAEpC,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,kCAAmB;;AAErE;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;;AAEA,QAAQ,IAAI;AACZ,aAAa,KAAI;AACjB,4CAA4C,kCAAmB,yEAAyE,kCAAmB,+EAA+E,kCAAmB;;AAE7P;AACA,KAAK,MAAM,EAAE;;AAEb,CAAC;;;;;;;;;AASD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,kCAAmB;;AAErE;AACA;;AAEA;;;AAGA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,yCAAyC,uBAAuB;AAChE;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;;AAEA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,8DAA8D,QAAQ;AACtE;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA,SAAS;;;AAGT;;AAEA,QAAQ,IAAI;AACZ,aAAa,KAAI;AACjB,sCAAsC,kCAAmB,8FAA8F,kCAAmB,sFAAsF,kCAAmB,wFAAwF,kCAAmB;;AAE9X;AACA,KAAK,MAAM,EAAE;;AAEb,CAAC;;;;;;;;;AASD,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,kCAAmB;;AAErE;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb,+CAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,2DAA2D,eAAe;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,2DAA2D,mBAAmB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,IAAI;AACZ,aAAa,KAAI;AACjB,uCAAuC,kCAAmB;;AAE1D;AACA,KAAK,MAAM,EAAE;;AAEb,CAAC;;;;AAID,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,kCAAmB;;AAErE;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uEAAuE,YAAY;AACnF;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,qBAAqB;;;AAGrB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb,SAAS;;AAET;;AAEA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,qBAAqB;;;AAGrB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;;AAGrB;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,kDAAkD;AACxG,6BAA6B;AAC7B;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;;AAE7B;;AAEA;AACA,iCAAiC;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;;AAGrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,IAAI;AACZ,aAAa,KAAI;AACjB,yCAAyC,kCAAmB;AAC5D,qCAAqC,kCAAmB;AACxD,0BAA0B,kCAAmB;AAC7C,0BAA0B,kCAAmB;AAC7C,0BAA0B,kCAAmB;AAC7C;;AAEA;AACA,KAAK,MAAM,EAAE;;AAEb,CAAC;;;;;;;;;AASD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gBAAgB,kCAAmB;AACnC,WAAW,kCAAmB;;AAE9B;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gBAAgB,kCAAmB;AACnC,iBAAiB,kCAAmB;AACpC,cAAc,kCAAmB;AACjC,cAAc,kCAAmB;AACjC,cAAc,kCAAmB;;AAEjC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,qBAAqB,kCAAmB;AACxC,sBAAsB,kCAAmB;AACzC,mBAAmB,kCAAmB;AACtC,mBAAmB,kCAAmB;AACtC,mBAAmB,kCAAmB;;AAEtC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gBAAgB,kCAAmB;AACnC,WAAW,kCAAmB;;AAE9B;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,oBAAoB,kCAAmB;AACvC,qBAAqB,kCAAmB;AACxC,kBAAkB,kCAAmB;AACrC,kBAAkB,kCAAmB;AACrC,kBAAkB,kCAAmB;;AAErC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gBAAgB,kCAAmB;AACnC,WAAW,kCAAmB;;AAE9B;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gBAAgB,kCAAmB;AACnC,WAAW,kCAAmB;;AAE9B;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,eAAe,kCAAmB;AAClC,kBAAkB,kCAAmB;AACrC,kBAAkB,kCAAmB;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gBAAgB,kCAAmB;AACnC,iBAAiB,kCAAmB;AACpC,kBAAkB,kCAAmB;AACrC,eAAe,kCAAmB;AAClC,eAAe,kCAAmB;AAClC,eAAe,kCAAmB;;AAElC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,WAAW,kCAAmB;;AAE9B;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,WAAW,kCAAmB;;AAE9B;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gBAAgB,kCAAmB;AACnC,WAAW,kCAAmB;;AAE9B;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,kBAAkB,kCAAmB;;AAErC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gBAAgB,kCAAmB;AACnC,kBAAkB,kCAAmB;AACrC,cAAc,kCAAmB;AACjC,eAAe,kCAAmB;AAClC,cAAc,kCAAmB;AACjC,mBAAmB,kCAAmB;;AAEtC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,SAAS,kCAAmB;;AAE5B;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,eAAe,kCAAmB;AAClC,YAAY,kCAAmB;;AAE/B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,EAAE;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gBAAgB,kCAAmB;AACnC,cAAc,kCAAmB;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,aAAa,kCAAmB;AAChC,gBAAgB,kCAAmB;AACnC,qBAAqB,kCAAmB;;AAExC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,oBAAoB,kCAAmB;AACvC,gBAAgB,kCAAmB;AACnC,oBAAoB,kCAAmB;;AAEvC;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,iBAAiB,kCAAmB;AACpC,mBAAmB,kCAAmB;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,sBAAsB,kCAAmB;AACzC,mBAAmB,kCAAmB;;AAEtC;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,YAAY,kCAAmB;AAC/B,kBAAkB,kCAAmB;AACrC,iBAAiB,kCAAmB;AACpC,mBAAmB,kCAAmB;AACtC,aAAa,kCAAmB;AAChC,cAAc,kCAAmB;AACjC,eAAe,kCAAmB;AAClC,mBAAmB,kCAAmB;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,YAAY,kCAAmB;AAC/B,kBAAkB,kCAAmB;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,iBAAiB,kCAAmB;AACpC,eAAe,kCAAmB;AAClC,eAAe,kCAAmB;AAClC,eAAe,kCAAmB;;AAElC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,iBAAiB,kCAAmB;AACpC,eAAe,kCAAmB;AAClC,mBAAmB,kCAAmB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,kBAAkB,kCAAmB;AACrC,0BAA0B,kCAAmB;AAC7C,eAAe,kCAAmB;AAClC,cAAc,kCAAmB;AACjC,eAAe,kCAAmB;;AAElC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,kBAAkB,kCAAmB;AACrC,iBAAiB,kCAAmB;;AAEpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,kBAAkB,kCAAmB;AACrC,mBAAmB,kCAAmB;AACtC,8BAA8B,kCAAmB;;AAEjD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,kBAAkB,kCAAmB;AACrC,UAAU,kCAAmB;AAC7B,YAAY,kCAAmB;AAC/B,YAAY,kCAAmB;AAC/B,yBAAyB,kCAAmB;AAC5C,8BAA8B,kCAAmB;AACjD,YAAY,kCAAmB;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,cAAc,kCAAmB;;AAEjC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,aAAa,kCAAmB;AAChC,eAAe,kCAAmB;AAClC,cAAc,kCAAmB;AACjC,eAAe,kCAAmB;;AAElC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,eAAe,kCAAmB;AAClC,oBAAoB,kCAAmB;AACvC,wBAAwB,kCAAmB;AAC3C,eAAe,kCAAmB;AAClC,gBAAgB,kCAAmB;AACnC,iBAAiB,kCAAmB;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,cAAc,kCAAmB;AACjC,YAAY,kCAAmB;AAC/B,mBAAmB,kCAAmB;AACtC,eAAe,kCAAmB;;AAElC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,WAAW,kCAAmB;;AAE9B;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,UAAU,kCAAmB;AAC7B,WAAW,kCAAmB;AAC9B,iBAAiB,kCAAmB;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,eAAe,kCAAmB;AAClC,gBAAgB,kCAAmB;AACnC,eAAe,kCAAmB;;AAElC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,aAAa,kCAAmB;AAChC,iBAAiB,kCAAmB;AACpC,SAAS,kCAAmB;AAC5B,kBAAkB,kCAAmB;AACrC,iBAAiB,kCAAmB;AACpC,iBAAiB,kCAAmB;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,iBAAiB,kCAAmB;;AAEpC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,qBAAqB,kCAAmB;AACxC,iBAAiB,kCAAmB;AACpC,WAAW,kCAAmB;;AAE9B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gBAAgB,kCAAmB;;AAEnC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,yBAAyB,kCAAmB;AAC5C,WAAW,kCAAmB;;AAE9B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,mBAAmB,kCAAmB;AACtC,eAAe,kCAAmB;;AAElC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,aAAa,kCAAmB;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,kBAAkB,kCAAmB;AACrC,gBAAgB,kCAAmB;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,eAAe,kCAAmB;AAClC,UAAU,kCAAmB;AAC7B,cAAc,kCAAmB;AACjC,UAAU,kCAAmB;AAC7B,cAAc,kCAAmB;AACjC,iBAAiB,kCAAmB;AACpC,eAAe,kCAAmB;;AAElC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,eAAe,kCAAmB;AAClC,kBAAkB,kCAAmB;AACrC,cAAc,kCAAmB;AACjC,cAAc,kCAAmB;AACjC,eAAe,kCAAmB;AAClC,YAAY,kCAAmB;;AAE/B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,mBAAmB,kCAAmB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,mBAAmB,kCAAmB;;AAEtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,mBAAmB,kCAAmB;;AAEtC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,mBAAmB,kCAAmB;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,cAAc,kCAAmB;AACjC,eAAe,kCAAmB;;AAElC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,iBAAiB,kCAAmB;;AAEpC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,eAAe,kCAAmB;;AAElC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,mBAAmB,kCAAmB;;AAEtC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,mBAAmB,kCAAmB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,mBAAmB,kCAAmB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,mBAAmB,kCAAmB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,WAAW,kCAAmB;AAC9B,gBAAgB,kCAAmB;AACnC,UAAU,kCAAmB;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,iBAAiB,kCAAmB;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,iBAAiB,kCAAmB;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,iBAAiB,kCAAmB;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,iBAAiB,kCAAmB;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,cAAc,kCAAmB;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gBAAgB,kCAAmB;;AAEnC;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,cAAc,kCAAmB;;AAEjC;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,kCAAmB;;AAE5C,gCAAgC,kCAAmB;AACnD,iBAAiB,kCAAmB;;AAEpC;AACA,mBAAmB,KAAI;;AAEvB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,iBAAiB,kCAAmB;;AAEpC;AACA;;AAEA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gBAAgB,kCAAmB;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gBAAgB,kCAAmB;AACnC,UAAU,kCAAmB;AAC7B,eAAe,kCAAmB;;AAElC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,oBAAoB,kCAAmB;;AAEvC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,eAAe,kCAAmB;;AAElC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,iCAAiC,kCAAmB;;AAEpD,gCAAgC,kCAAmB;AACnD,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,eAAe;AACf,cAAc;AACd,cAAc;AACd,gBAAgB;AAChB,eAAe;AACf;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,KAAI;;AAEzB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,EAAE;AACf,aAAa,QAAQ;AACrB;AACA,aAAa,SAAS;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA,kCAAkC,6BAA6B,EAAE;AACjE;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,aAAa;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,aAAa,QAAQ;AACrB;AACA;AACA,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,MAAM;AACnB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB,aAAa,OAAO,WAAW;AAC/B,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+CAA+C;AAClF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,aAAa,EAAE;AACf,aAAa,MAAM;AACnB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,KAAK;AAClB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA,QAAQ,qCAAqC;AAC7C,QAAQ,qCAAqC;AAC7C,QAAQ;AACR;AACA;AACA,qCAAqC,2BAA2B,EAAE;AAClE;AACA;AACA;AACA,yBAAyB,kCAAkC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,EAAE;AACf,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA,QAAQ,+BAA+B;AACvC,QAAQ,+BAA+B;AACvC,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,SAAS;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,SAAS;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,QAAQ,8BAA8B;AACtC,QAAQ;AACR;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,cAAc,OAAO;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,+CAA+C;AACvD,QAAQ;AACR;AACA;AACA;AACA,qBAAqB,oCAAoC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA,QAAQ,8CAA8C;AACtD,QAAQ;AACR;AACA;AACA,kCAAkC,kBAAkB,EAAE;AACtD;AACA;AACA;AACA,sBAAsB,4BAA4B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,EAAE;AACjB;AACA;AACA;AACA,QAAQ,+CAA+C;AACvD,QAAQ,gDAAgD;AACxD,QAAQ;AACR;AACA;AACA,gCAAgC,mBAAmB,EAAE;AACrD;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iBAAiB;AAC7B;AACA;AACA;AACA,QAAQ,mBAAmB;AAC3B,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,EAAE;AACf,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,eAAe,yBAAyB;AACxC;AACA;AACA,MAAM,IAAI;AACV,YAAY,8BAA8B;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oBAAoB;AACjC,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,cAAc,OAAO;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mCAAmC;AAC3C,QAAQ;AACR;AACA;AACA;AACA,oBAAoB,oCAAoC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,yBAAyB;AACtC;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA,QAAQ,8BAA8B;AACtC,QAAQ,8BAA8B;AACtC,QAAQ,8BAA8B;AACtC,QAAQ;AACR;AACA;AACA,mCAAmC,eAAe,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd,KAAK;AACL;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,EAAE;AACf,aAAa,KAAK;AAClB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,KAAK;AAClB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,aAAa,KAAK;AAClB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,EAAE;AACjB;AACA;AACA;AACA,qBAAqB,SAAS,GAAG,SAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA,mBAAmB;AACnB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA,+BAA+B,kBAAkB,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA,gDAAgD,kBAAkB,EAAE;AACpE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA,mBAAmB;AACnB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,MAAM;AACrB;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,YAAY;AACZ;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,YAAY;AACZ;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB,eAAe,OAAO;AACtB;AACA;AACA;AACA,iBAAiB,SAAS,GAAG,SAAS,GAAG,SAAS;AAClD,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,aAAa;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA,mBAAmB,OAAO,SAAS;AACnC,2BAA2B,gBAAgB,SAAS,GAAG;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,qBAAqB;AAClC,eAAe,OAAO;AACtB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,YAAY;AACZ;AACA;AACA,8BAA8B;AAC9B,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,aAAa;AAC1B,aAAa,EAAE;AACf,eAAe,EAAE;AACjB;AACA;AACA,mBAAmB,QAAQ,OAAO,+BAA+B,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,EAAE;AACjB;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,SAAS;AACxB;AACA;AACA;AACA,QAAQ,8CAA8C;AACtD,QAAQ;AACR;AACA;AACA;AACA,iCAAiC,mCAAmC;AACpE,aAAa,8CAA8C;AAC3D;AACA;AACA;AACA,aAAa,4BAA4B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA,QAAQ,yBAAyB;AACjC,QAAQ;AACR;AACA;AACA,kCAAkC,iBAAiB;AACnD,aAAa,yBAAyB;AACtC;AACA;AACA,8CAA8C,SAAS,cAAc,SAAS;AAC9E,aAAa,yBAAyB,GAAG,yBAAyB;AAClE;AACA;AACA,gCAAgC;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,aAAa,OAAO;AACpB,aAAa,OAAO,YAAY;AAChC,aAAa,QAAQ;AACrB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB,GAAG,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,qDAAqD;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG,MAAM,iBAAiB;;AAE1B;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA,MAAM,IAAI;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK,gBAAgB,kCAAmB;AACxC;AACA;AACA;AACA,OAAO,EAAE;AACT,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,cAAc,kCAAmB;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB,QAAQ,OAAO,SAAS,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gBAAgB,kCAAmB;AACnC,cAAc,kCAAmB;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,gBAAgB,SAAS,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,sBAAsB,kCAAmB;AACzC,mBAAmB,kCAAmB;;AAEtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,iBAAiB,kCAAmB;AACpC,eAAe,kCAAmB;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,kCAAmB;;AAE5C,gCAAgC,kCAAmB;AACnD,WAAW,kCAAmB;AAC9B,gBAAgB,kCAAmB;;AAEnC;AACA,mBAAmB,KAAI;;AAEvB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,iBAAiB,kCAAmB;AACpC,eAAe,kCAAmB;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,iBAAiB,kCAAmB;AACpC,mBAAmB,kCAAmB;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,uBAAuB,kCAAmB;AAC1C,gBAAgB,kCAAmB;AACnC,eAAe,kCAAmB;;AAElC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,oBAAoB,kCAAmB;AACvC,eAAe,kCAAmB;AAClC,kBAAkB,kCAAmB;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,eAAe,kCAAmB;;AAElC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,mBAAmB,kCAAmB;AACtC,uBAAuB,kCAAmB;AAC1C,YAAY,kCAAmB;AAC/B,YAAY,kCAAmB;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA,MAAM,OAAO,SAAS,EAAE;AACxB,MAAM,OAAO,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,mBAAmB,kCAAmB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,eAAe,kCAAmB;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,mBAAmB,kCAAmB;AACtC,eAAe,kCAAmB;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS,GAAG,SAAS,GAAG,SAAS;AAC/C,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA,cAAc,kCAAmB;AACjC,aAAa,kCAAmB;AAChC,iBAAiB,kCAAmB;AACpC,YAAY,kCAAmB;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,cAAc;;AAEjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,cAAc;AACd,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gCAAgC;AAChC,+BAA+B;AAC/B,+BAA+B;AAC/B,8BAA8B;AAC9B;AACA;AACA;AACA,yDAAyD;AACzD;AACA,0DAA0D;AAC1D;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI,IAAI,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8CAA8C,IAAI,IAAI,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yCAAyC,IAAI;AAC7C;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,IAAI;AAC3D,6DAA6D,IAAI;AACjE,4DAA4D,IAAI;AAChE,kEAAkE,IAAI;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,gCAAgC;AAChC,aAAa;AACb,+BAA+B;AAC/B,aAAa;AACb,kCAAkC;AAClC,aAAa;AACb,kCAAkC;AAClC,aAAa;AACb,+BAA+B;AAC/B,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,mEAAmE,kCAAmB;;AAEtF;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAAI,WAAW,kCAAmB;AACtC,GAAG,CAAC;AACJ,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,QAAQ,kCAAmB;AAC3B;AACA;AACA,KAAK,kCAAmB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,kCAAmB;;AAErE,gCAAgC,kCAAmB;AACnD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,KAAK,KAAI;AACT,IAAI,CAAC;AACL,CAAC,qBAAqB;;AAEtB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wGAAwG,IAAI,wBAAwB,IAAI,uDAAuD,IAAI;AACnM,qEAAqE,IAAI;AACzE,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0CAA0C,YAAY;AACtD;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,IAAI;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,EAAE;AACvB,qBAAqB,EAAE;AACvB,0BAA0B,EAAE;AAC5B;AACA;AACA;AACA,wBAAwB,IAAI;AAC5B,wBAAwB,IAAI;AAC5B,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA,mBAAmB,MAAM,wEAAwE,MAAM,mBAAmB,MAAM,qBAAqB,MAAM,EAAE,IAAI;AACjK;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,OAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB;AACpB,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kCAAmB;AACnC;AACA,aAAa;AACb;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA;AACA,qCAAqC,EAAE;AACvC,+BAA+B,EAAE;AACjC,iCAAiC,EAAE;AACnC,+BAA+B,EAAE;AACjC,6BAA6B,EAAE,IAAI,EAAE;AACrC,4BAA4B,EAAE;AAC9B,mCAAmC,GAAG;AACtC,6BAA6B,EAAE;AAC/B,+BAA+B,EAAE,IAAI,EAAE;AACvC,8BAA8B,EAAE,IAAI,EAAE;AACtC,4BAA4B,EAAE;AAC9B,2BAA2B,EAAE;AAC7B,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,IAAI,0DAA0D,IAAI,qEAAqE,EAAE;AACjM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gBAAgB;AACnC;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC,kBAAkB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,cAAc;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,2GAA2G;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,mBAAmB;AACxC;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,kCAAmB;;AAE5C,2BAA2B,kCAAmB;;AAE9C,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;AAEA,WAAW,kCAAmB;AAC9B;AACA;AACA;AACA;AACA,mBAAmB,kCAAmB;;;AAGtC;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,4DAA4D,yBAAyB;AACrF;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,qCAAqC,mBAAmB,yBAAyB;AACjF;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;;AAEA,WAAW,kCAAmB;AAC9B;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA,KAAK;;AAEL;AACA;AACA,0DAA0D;AAC1D;AACA,KAAK;AACL,0BAA0B,+CAA+C;AACzE;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA,aAAa;;AAEb;AACA;AACA,6DAA6D,2BAA2B,iGAAiG;AACzL;AACA,aAAa;AACb;AACA,+EAA+E;AAC/E;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;;AAEA,WAAW,kCAAmB;AAC9B,aAAa,kCAAmB;AAChC,wBAAwB,kCAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kCAAmB;AAC/B,aAAa,kCAAmB;AAChC;AACA;AACA;;;AAGA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,KAAK;AACL;AACA;AACA,4DAA4D;AAC5D;AACA,KAAK;;AAEL;AACA;AACA,0DAA0D;AAC1D;AACA,KAAK;AACL;AACA;AACA,0CAA0C,gCAAgC;AAC1E;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2GAA2G,sBAAsB;AAC1J;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,kCAAmB;;;;;;AAMvC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,WAAW,kCAAmB;AAC9B;AACA;AACA;AACA;AACA,gBAAgB,kCAAmB;AACnC,wBAAwB,kCAAmB;AAC3C,aAAa,kCAAmB;;AAEhC;AACA;AACA,uEAAuE;AACvE,4BAA4B;;AAE5B;AACA,uEAAuE;AACvE,KAAK;AACL,+CAA+C,oBAAoB,2BAA2B,sBAAsB;AACpH;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,yHAAyH;AACzH;AACA;AACA,6BAA6B;AAC7B,eAAe;AACf;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,KAAK;AACL;AACA;AACA;AACA,4DAA4D;AAC5D;AACA,KAAK;;AAEL;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,KAAK;AACL;AACA;AACA,yDAAyD;AACzD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B,uCAAuC;AACvC,sCAAsC;AACtC,6CAA6C,kBAAkB,qCAAqC,aAAa,2GAA2G,8BAA8B;AAC1P,qDAAqD,0BAA0B,4BAA4B;AAC3G,yBAAyB,2GAA2G,sBAAsB;AAC1J;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC,kEAAkE;AAClE;AACA;AACA;AACA;AACA,4HAA4H;AAC5H,KAAK;AACL;AACA;AACA;AACA,gEAAgE;AAChE,KAAK;AACL,sCAAsC;;;AAGtC;AACA,iIAAiI,GAAG,eAAe;AACnJ;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,oBAAoB;AACpB;AACA,KAAK;AACL,eAAe,EAAE;AACjB,gBAAgB;AAChB,eAAe,IAAI;AACnB;AACA;;;;;AAKA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,UAAU,kCAAmB;;AAE7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;;AAGA,WAAW,kCAAmB;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,oCAAoC,kCAAmB;AACvD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;;AAGA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;AAED,2BAA2B,WAAW,oBAAoB;AAC1D,2BAA2B,WAAW,oBAAoB;;AAE1D;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,aAAa,WAAW,yCAAyC;AACjE,aAAa,WAAW,gCAAgC;AACxD,aAAa,WAAW,kCAAkC;AAC1D,aAAa,WAAW,gCAAgC;AACxD,aAAa,WAAW,kCAAkC;;;AAG1D;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,6FAA6F;AAC7F;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;;AAGA,WAAW,kCAAmB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kCAAmB;;AAE/B;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,sDAAsD;AACjH;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,mBAAmB;AACnB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB;AACnB;AACA,KAAK;AACL,uHAAuH,YAAY,kEAAkE;AACrM;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA,gCAAgC,kCAAmB;;AAEnD,WAAW,kCAAmB;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,WAAW,kCAAmB;AAC9B;AACA,eAAe,kCAAmB;AAClC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,UAAU,kCAAmB;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA,iBAAiB,kCAAmB;AACpC,cAAc,kCAAmB;AACjC;AACA,cAAc,kCAAmB;AACjC,cAAc,kCAAmB;AACjC,cAAc,kCAAmB;AACjC,cAAc,kCAAmB;AACjC,cAAc,kCAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kCAAmB;AAC9C,yBAAyB,kCAAmB;AAC5C,cAAc,kCAAmB;AACjC,4BAA4B,kCAAmB;;;;AAI/C,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;AAEA,WAAW,kCAAmB;AAC9B;AACA;AACA,YAAY,kCAAmB;AAC/B,mBAAmB,kCAAmB;AACtC,SAAS,kCAAmB;AAC5B;AACA,wBAAwB,kCAAmB;AAC3C,iBAAiB,kCAAmB;;AAEpC;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA,gCAAgC,kCAAmB;;AAEnD,WAAW,kCAAmB;AAC9B;AACA;AACA;AACA,kBAAkB,kCAAmB;AACrC,yBAAyB,kCAAmB;AAC5C;AACA,WAAW,kCAAmB;AAC9B,WAAW,kCAAmB;;AAE9B;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;;AAEA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,WAAW,kCAAmB;AAC9B,SAAS,kCAAmB;AAC5B,WAAW,kCAAmB;AAC9B,cAAc,kCAAmB;AACjC,oBAAoB,kCAAmB;;AAEvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,cAAc,kCAAmB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB;AACxB;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA,WAAW,kCAAmB;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,WAAW,kCAAmB;AAC9B,mBAAmB,kCAAmB;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,gBAAgB,kCAAmB;;AAEnC;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA,gCAAgC,kCAAmB;;AAEnD,WAAW,kCAAmB;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,WAAW,kCAAmB;AAC9B;AACA,WAAW,kCAAmB;AAC9B,iBAAiB,kCAAmB,iHAAiH,kCAAmB;;AAExK;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,gBAAgB,kCAAmB;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,kBAAkB,kCAAmB;AACrC,WAAW,kCAAmB;AAC9B,cAAc,kCAAmB;AACjC;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,OAAO;AAChE;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,cAAc,kCAAmB;AACjC,iBAAiB,kCAAmB;;;AAGpC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,iBAAiB;AACjB,4BAA4B;AAC5B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,aAAa;AACb;AACA;;;AAGA;AACA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,eAAe,kCAAmB;AAClC,WAAW,kCAAmB;AAC9B,iBAAiB,kCAAmB;AACpC;AACA;AACA;AACA,cAAc,kCAAmB;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;;AAET;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,2DAA2D;AAC3D;AACA;;AAEA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,eAAe,kCAAmB;AAClC,WAAW,kCAAmB;AAC9B,iBAAiB,kCAAmB;AACpC;AACA;AACA;AACA,cAAc,kCAAmB;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,OAAO;AAChE;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;AAEA,WAAW,kCAAmB;AAC9B;AACA;AACA;AACA,cAAc,kCAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kCAAmB;AACrC;AACA;AACA,gBAAgB,kCAAmB;AACnC,mBAAmB,kCAAmB;AACtC,eAAe,kCAAmB;AAClC,eAAe,kCAAmB;AAClC,cAAc,kCAAmB;AACjC,eAAe,kCAAmB;AAClC,kBAAkB,kCAAmB;AACrC,iBAAiB,kCAAmB;AACpC,qBAAqB,kCAAmB;AACxC,sBAAsB,kCAAmB;AACzC,uBAAuB,kCAAmB;AAC1C,eAAe,kCAAmB;AAClC,mBAAmB,kCAAmB;AACtC,mBAAmB,kCAAmB;;AAEtC;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA,SAAS;;AAET;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA,SAAS;;AAET;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA,SAAS;;AAET;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,CAAC;;;;;;;;AAQD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,eAAe,kCAAmB;AAClC,wBAAwB,kCAAmB;;AAE3C;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,WAAW,kCAAmB;AAC9B,kBAAkB,kCAAmB;AACrC;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,WAAW,kCAAmB;;AAE9B;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;;AAEA,wFAAwF,qBAAqB;;AAE7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,aAAa,kCAAmB;;AAEhC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,WAAW,kCAAmB;AAC9B;AACA;AACA,gBAAgB,kCAAmB;AACnC,YAAY,kCAAmB;AAC/B,iBAAiB,kCAAmB;;;AAGpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB;AACxB;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;;AAEA;;AAEA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,aAAa,kCAAmB;;AAEhC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,WAAW,kCAAmB;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;;AAET;AACA,yBAAyB,uBAAuB;AAChD;AACA,SAAS;;AAET;AACA,iCAAiC,SAAS;AAC1C;AACA,SAAS;;AAET;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,WAAW,kCAAmB;AAC9B;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,WAAW,kCAAmB;AAC9B;AACA;AACA;AACA;AACA;AACA,cAAc,kCAAmB;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA;AACA;AACA,aAAa;AACb;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,eAAe,kCAAmB;AAClC,iBAAiB,kCAAmB;AACpC,cAAc,kCAAmB;AACjC,kBAAkB,kCAAmB;;;AAGrC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,oBAAoB;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;;AAGA;AACA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,gBAAgB,kCAAmB;AACnC,cAAc,kCAAmB;AACjC,WAAW,kCAAmB;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA;;AAEA;;AAEA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,WAAW,kCAAmB;;AAE9B;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,WAAW,kCAAmB;AAC9B,WAAW,kCAAmB;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,gCAAgC,kCAAmB;AACnD,gBAAgB,kCAAmB;AACnC,cAAc,kCAAmB;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA,iCAAiC,aAAa;AAC9C;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;AAID,OAAO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,kCAAmB;;AAE5C,gCAAgC,kCAAmB;AACnD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,yBAAyB,EAAE;AACzC,MAAM;AACN,WAAW,sxBAAsxB;AACjyB,aAAa,0SAA0S;AACvT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,+KAA+K,EAAE,MAAM,EAAE,SAAS,kBAAkB,UAAU,gBAAgB,OAAO,8BAA8B,4DAA4D,aAAa,oBAAoB,gBAAgB,4BAA4B,sFAAsF,qBAAqB,iBAAiB,4KAA4K,eAAe,OAAO,uFAAuF,4HAA4H,eAAe,aAAa,6BAA6B,qBAAqB,gBAAgB,6HAA6H,EAAE,6HAA6H,EAAE,QAAQ,EAAE,mKAAmK,EAAE,8JAA8J,EAAE,qJAAqJ,EAAE,qJAAqJ,EAAE,qJAAqJ,EAAE,qJAAqJ,EAAE,qJAAqJ,EAAE,qJAAqJ,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,+IAA+I,EAAE,+IAA+I,EAAE,+IAA+I,EAAE,+IAA+I,EAAE,aAAa,EAAE,6CAA6C,EAAE,4HAA4H,EAAE,UAAU,EAAE,yIAAyI,gBAAgB,iBAAiB,gBAAgB,mIAAmI,EAAE,mIAAmI,EAAE,6HAA6H,EAAE,6HAA6H,EAAE,6HAA6H,oDAAoD,OAAO,8BAA8B,4BAA4B,gBAAgB,4BAA4B,gBAAgB,4BAA4B,gBAAgB,4BAA4B,gBAAgB,4BAA4B,gBAAgB,4BAA4B,8BAA8B,qBAAqB,8BAA8B,qBAAqB,gBAAgB,OAAO,gBAAgB,OAAO,gBAAgB,OAAO,gBAAgB,OAAO,iBAAiB,UAAU,EAAE,UAAU,EAAE,+BAA+B,gBAAgB,iBAAiB,6BAA6B,aAAa,iBAAiB,4GAA4G,eAAe,qBAAqB,gBAAgB,qBAAqB;AACt+J,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,okBAAokB,IAAI;AACxkB,aAAa,WAAW;AACxB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAI;AACR;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,kCAAmB,8BAA8B,kCAAmB;AACrF;AACA;AACA,KAAK,KAAI,IAAI,kCAAmB,GAAG,kCAAmB;AACtD;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA,2BAA2B,kCAAmB;AAC9C,qBAAqB,kCAAmB;;AAExC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;;AAGA,aAAa,kCAAmB;AAChC,WAAW,kCAAmB;AAC9B;AACA,YAAY,kCAAmB;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,8FAA8F;AAC9F;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA;;;;AAIA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;;AAGA,YAAY,kCAAmB;AAC/B,SAAS,kCAAmB;AAC5B,WAAW,kCAAmB;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,sBAAsB;AACtB;;AAEA;;AAEA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;;AAEL;AACA,mHAAmH;AACnH;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;;AAEL;AACA,+EAA+E;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA,mCAAmC,mGAAmG;AACtI;AACA;AACA;AACA,wCAAwC;AACxC,2BAA2B,iFAAiF;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA+C;AAC/C,yDAAyD,KAAK;AAC9D;AACA,kEAAkE,MAAM;AACxE;AACA,aAAa;AACb,iEAAiE;AACjE;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,mDAAmD;AACnD,6DAA6D,KAAK;AAClE;AACA;AACA,0DAA0D,MAAM;AAChE;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,qEAAqE;AACrE;AACA,aAAa;AACb;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,yDAAyD,KAAK;AAC9D;AACA;AACA,qCAAqC,yCAAyC;AAC9E;AACA,aAAa;AACb,iEAAiE;AACjE;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,6BAA6B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;;AAEA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,6DAA6D,KAAK;AAClE;AACA;AACA,wCAAwC,6CAA6C;AACrF;AACA,iBAAiB;AACjB,qEAAqE;AACrE;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,4BAA4B,uBAAuB;AACnD,yDAAyD,KAAK;AAC9D;AACA,uCAAuC,MAAM;AAC7C;AACA;AACA,aAAa;AACb,iEAAiE;AACjE;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;;;AAIA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;;AAGA,WAAW,kCAAmB;AAC9B;AACA;;AAEA;AACA,MAAM,KAAK;AACX,MAAM,KAAK;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,uBAAuB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;AAEA,WAAW,kCAAmB;AAC9B;AACA;AACA;AACA;AACA,wBAAwB,kCAAmB;AAC3C,iBAAiB,kCAAmB;AACpC;AACA;;AAEA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,aAAa;AAC5F;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,SAAS;;AAET;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,qDAAqD;AACrD,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;;;;;AAMD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;AAEA,WAAW,kCAAmB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kCAAmB;AAChC,cAAc,kCAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,qBAAqB;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,qBAAqB;AACrB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,qBAAqB;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,qBAAqB;AACrB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,qBAAqB;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,qBAAqB;AACrB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;;;;;AAMA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;;AAEA,cAAc,kCAAmB;AACjC,iBAAiB,kCAAmB;AACpC,kBAAkB,kCAAmB;AACrC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA,CAAC;;;;AAID,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,kCAAmB;;AAErE;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,wDAAwD;AACxD,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA,uBAAuB;AACvB;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA,gGAAgG,eAAe,UAAU,WAAW;AACpI;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,IAAI;AACZ,aAAa,KAAI;AACjB,0CAA0C,kCAAmB,yEAAyE,kCAAmB,+EAA+E,kCAAmB;;AAE3P;AACA,KAAK,MAAM,EAAE;;AAEb,CAAC;;;;;;;;;AASD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,kCAAmB;;AAErE;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iBAAiB;;;AAGjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,iBAAiB;;AAEjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;;AAErB;AACA;;;AAGA;AACA,SAAS;;;AAGT;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iBAAiB;;;AAGjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;;AAGjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;;AAGA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;;AAEA,QAAQ,IAAI;AACZ,aAAa,KAAI;AACjB,2CAA2C,kCAAmB,6EAA6E,kCAAmB,yEAAyE,kCAAmB,qFAAqF,kCAAmB,+EAA+E,kCAAmB,2FAA2F,kCAAmB;AACljB;AACA,KAAK,MAAM,EAAE;;AAEb,CAAC;;;;;;;;;AASD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,kCAAmB;;AAErE;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;AAGA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,YAAY,wDAAwD,MAAM,0BAA0B;AAC1J;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA,aAAa;AACb,SAAS;AACT;AACA;;;AAGA;;AAEA;AACA,8BAA8B,2BAA2B;AACzD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA,iBAAiB;AACjB;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,aAAa,yBAAyB,uBAAuB;AACrI;;AAEA,QAAQ,IAAI;AACZ,aAAa,KAAI;AACjB,0CAA0C,kCAAmB,yEAAyE,kCAAmB,+EAA+E,kCAAmB,mFAAmF,kCAAmB;;AAEjW;AACA,KAAK,MAAM,EAAE;;AAEb,CAAC;;;;;;;;;AASD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,qEAAqE,kCAAmB;AACxF,kEAAkE,kCAAmB;;;;AAIrF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,qEAAqE,kCAAmB;AACxF,uEAAuE,kCAAmB;AAC1F,qEAAqE,kCAAmB;AACxF,oEAAoE,kCAAmB;AACvF,oEAAoE,kCAAmB;AACvF,qEAAqE,kCAAmB;AACxF,uEAAuE,kCAAmB;;;;;;;;;AAS1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,uEAAuE,kCAAmB;AAC1F,yEAAyE,kCAAmB;AAC5F,qEAAqE,kCAAmB;;;;;AAKxF;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,uEAAuE,kCAAmB;;;AAG1F;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;AACrF,uEAAuE,kCAAmB;AAC1F,gEAAgE,kCAAmB;;;;;AAKnF;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA,6BAA6B,2BAA2B,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,iEAAiE,kCAAmB;;;AAGpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;AACzF,kEAAkE,kCAAmB;AACrF,kEAAkE,kCAAmB;;;;;AAKrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0BAA0B;AAClE;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,+DAA+D,kCAAmB;AAClF,sEAAsE,kCAAmB;;;;AAIzF;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,8BAA8B;AACxC;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,wEAAwE,kCAAmB;AAC3F,iEAAiE,kCAAmB;AACpF,uEAAuE,kCAAmB;;;;;AAK1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,8BAA8B;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;;;AAGrF;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA,aAAa;AACb,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,cAAc;AACd,cAAc;AACd,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,uEAAuE,kCAAmB;AAC1F,qEAAqE,kCAAmB;;;;AAIxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;AACzF,wEAAwE,kCAAmB;AAC3F,oEAAoE,kCAAmB;AACvF,wEAAwE,kCAAmB;;;;;;AAM3F;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,yFAAyF,YAAY;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,4EAA4E,kCAAmB;;;AAG/F;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,4EAA4E,kCAAmB;;;AAG/F;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,+DAA+D,kCAAmB;AAClF,iEAAiE,kCAAmB;;;;AAIpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;;;AAGrF;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;;;AAGzF;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,oFAAoF,kCAAmB;AACvG,sEAAsE,kCAAmB;;;;AAIzF;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,oFAAoF,kCAAmB;AACvG,0EAA0E,kCAAmB;;;;AAI7F;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;AACzF,uEAAuE,kCAAmB;AAC1F,oEAAoE,kCAAmB;;;;;AAKvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB,eAAe;AAClC;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;AACrF,yEAAyE,kCAAmB;;;;AAI5F;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;;;AAGrF;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,0EAA0E,kCAAmB;;;AAG7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,uEAAuE,kCAAmB;AAC1F,mEAAmE,kCAAmB;;;;AAItF;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,mEAAmE,kCAAmB;AACtF,sEAAsE,kCAAmB;;;;AAIzF;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,qEAAqE,kCAAmB;AACxF,kEAAkE,kCAAmB;AACrF,gFAAgF,kCAAmB;;;;;AAKnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,0EAA0E,kCAAmB;AAC7F,uEAAuE,kCAAmB;AAC1F,yEAAyE,kCAAmB;;;;;AAK5F;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,0EAA0E,kCAAmB;AAC7F,oEAAoE,kCAAmB;AACvF,iEAAiE,kCAAmB;;;;;AAKpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,uEAAuE,kCAAmB;;;AAG1F;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;;;AAGrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,qEAAqE,kCAAmB;AACxF,oEAAoE,kCAAmB;AACvF,mEAAmE,kCAAmB;;;;;AAKtF;AACA;AACA;AACA,yIAAyI;AACzI;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,mEAAmE,kCAAmB;;;AAGtF;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,wEAAwE,kCAAmB;AAC3F,mEAAmE,kCAAmB;AACtF,oEAAoE,kCAAmB;;;;;AAKvF;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;AACrF,gEAAgE,kCAAmB;;;;AAInF;AACA;AACA;AACA;AACA,mFAAmF;AACnF,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,uEAAuE,kCAAmB;AAC1F,sEAAsE,kCAAmB;;;;AAIzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,0EAA0E,kCAAmB;AAC7F,gEAAgE,kCAAmB;;;;AAInF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,2EAA2E,kCAAmB;AAC9F,oEAAoE,kCAAmB;;;;AAIvF;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,oEAAoE,kCAAmB;AACvF,kEAAkE,kCAAmB;AACrF,uEAAuE,kCAAmB;;;;;AAK1F;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,0EAA0E,kCAAmB;;;AAG7F;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,0EAA0E,kCAAmB;AAC7F,oEAAoE,kCAAmB;AACvF,mEAAmE,kCAAmB;AACtF,qEAAqE,kCAAmB;;;;;;AAMxF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,uEAAuE,kCAAmB;AAC1F,wEAAwE,kCAAmB;AAC3F,iEAAiE,kCAAmB;;;;;AAKpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,YAAY;AAChD;AACA;AACA,GAAG;AACH;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,0EAA0E,kCAAmB;AAC7F,sEAAsE,kCAAmB;;;;AAIzF;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,+DAA+D,kCAAmB;AAClF,wEAAwE,kCAAmB;AAC3F,iEAAiE,kCAAmB;;;;;AAKpF;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,2EAA2E,kCAAmB;AAC9F,oEAAoE,kCAAmB;;;;AAIvF;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,2EAA2E,kCAAmB;AAC9F,iEAAiE,kCAAmB;;;;AAIpF;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,+DAA+D,kCAAmB;AAClF,iEAAiE,kCAAmB;;;;AAIpF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,wEAAwE,kCAAmB;AAC3F,sEAAsE,kCAAmB;AACzF,oEAAoE,kCAAmB;;;;;AAKvF;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,uFAAuF,kCAAmB;;;AAG1G;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,+DAA+D,kCAAmB;AAClF,iEAAiE,kCAAmB;;;;AAIpF;AACA;AACA;AACA;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,uFAAuF,kCAAmB;;;AAG1G;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,iEAAiE,kCAAmB;AACpF,oEAAoE,kCAAmB;;;;AAIvF;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,oEAAoE,kCAAmB;;;AAGvF;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,oEAAoE,kCAAmB;;;AAGvF;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,uEAAuE,kCAAmB;;;AAG1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,mEAAmE,kCAAmB;AACtF,oEAAoE,kCAAmB;AACvF,wEAAwE,kCAAmB;;;;;AAK3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;AACrF,gEAAgE,kCAAmB;;;;AAInF;AACA;AACA;AACA,6FAA6F;AAC7F,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,gEAAgE,kCAAmB;AACnF,mEAAmE,kCAAmB;;;;AAItF;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,0EAA0E,kCAAmB;AAC7F,kEAAkE,kCAAmB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,IAAI;AAC3C;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;AACrF,0EAA0E,kCAAmB;AAC7F,qEAAqE,kCAAmB;AACxF,mEAAmE,kCAAmB;AACtF,wEAAwE,kCAAmB;AAC3F,sEAAsE,kCAAmB;AACzF,sEAAsE,kCAAmB;AACzF,qEAAqE,kCAAmB;AACxF,qEAAqE,kCAAmB;AACxF,mEAAmE,kCAAmB;AACtF,sEAAsE,kCAAmB;AACzF,qEAAqE,kCAAmB;AACxF,sEAAsE,kCAAmB;AACzF,2EAA2E,kCAAmB;AAC9F,wEAAwE,kCAAmB;AAC3F,qEAAqE,kCAAmB;AACxF,wEAAwE,kCAAmB;AAC3F,yEAAyE,kCAAmB;AAC5F,sEAAsE,kCAAmB;AACzF,mEAAmE,kCAAmB;AACtF,0EAA0E,kCAAmB;AAC7F,qEAAqE,kCAAmB;AACxF,qEAAqE,kCAAmB;AACxF,qEAAqE,kCAAmB;AACxF,mEAAmE,kCAAmB;AACtF,uEAAuE,kCAAmB;AAC1F,mEAAmE,kCAAmB;AACtF,uEAAuE,kCAAmB;AAC1F,kEAAkE,kCAAmB;AACrF,qEAAqE,kCAAmB;AACxF,oEAAoE,kCAAmB;AACvF,mEAAmE,kCAAmB;AACtF,oEAAoE,kCAAmB;AACvF,uEAAuE,kCAAmB;AAC1F,oEAAoE,kCAAmB;AACvF,uEAAuE,kCAAmB;AAC1F,sEAAsE,kCAAmB;AACzF,oEAAoE,kCAAmB;AACvF,mEAAmE,kCAAmB;AACtF,iEAAiE,kCAAmB;AACpF,iEAAiE,kCAAmB;AACpF,iEAAiE,kCAAmB;AACpF,uEAAuE,kCAAmB;AAC1F,sEAAsE,kCAAmB;AACzF,sEAAsE,kCAAmB;AACzF,kEAAkE,kCAAmB;AACrF,oEAAoE,kCAAmB;AACvF,sEAAsE,kCAAmB;AACzF,wEAAwE,kCAAmB;AAC3F,qEAAqE,kCAAmB;AACxF,mEAAmE,kCAAmB;AACtF,oEAAoE,kCAAmB;AACvF,iEAAiE,kCAAmB;AACpF,oEAAoE,kCAAmB;AACvF,sEAAsE,kCAAmB;AACzF,8EAA8E,kCAAmB;AACjG,sEAAsE,kCAAmB;AACzF,oEAAoE,kCAAmB;AACvF,sEAAsE,kCAAmB;AACzF,mEAAmE,kCAAmB;AACtF,sEAAsE,kCAAmB;AACzF,qEAAqE,kCAAmB;AACxF,kEAAkE,kCAAmB;AACrF,qEAAqE,kCAAmB;AACxF,qEAAqE,kCAAmB;AACxF,mEAAmE,kCAAmB;AACtF,mEAAmE,kCAAmB;AACtF,sEAAsE,kCAAmB;AACzF,sEAAsE,kCAAmB;AACzF,kEAAkE,kCAAmB;AACrF,oEAAoE,kCAAmB;AACvF,qEAAqE,kCAAmB;AACxF,mEAAmE,kCAAmB;AACtF,oEAAoE,kCAAmB;AACvF,kEAAkE,kCAAmB;AACrF,qEAAqE,kCAAmB;AACxF,uEAAuE,kCAAmB;AAC1F,2EAA2E,kCAAmB;AAC9F,yEAAyE,kCAAmB;AAC5F,qEAAqE,kCAAmB;AACxF,yEAAyE,kCAAmB;AAC5F,kEAAkE,kCAAmB;AACrF,uEAAuE,kCAAmB;AAC1F,kEAAkE,kCAAmB;AACrF,iEAAiE,kCAAmB;AACpF,oEAAoE,kCAAmB;AACvF,yEAAyE,kCAAmB;AAC5F,oEAAoE,kCAAmB;AACvF,oEAAoE,kCAAmB;AACvF,mEAAmE,kCAAmB;AACtF,kEAAkE,kCAAmB;AACrF,sEAAsE,kCAAmB;AACzF,oEAAoE,kCAAmB;AACvF,mEAAmE,kCAAmB;AACtF,mEAAmE,kCAAmB;AACtF,iEAAiE,kCAAmB;AACpF,iEAAiE,kCAAmB;AACpF,qEAAqE,kCAAmB;AACxF,oEAAoE,kCAAmB;AACvF,oEAAoE,kCAAmB;AACvF,sEAAsE,kCAAmB;AACzF,sEAAsE,kCAAmB;AACzF,sEAAsE,kCAAmB;AACzF,wEAAwE,kCAAmB;AAC3F,sEAAsE,kCAAmB;AACzF,mEAAmE,kCAAmB;AACtF,mEAAmE,kCAAmB;AACtF,mEAAmE,kCAAmB;AACtF,oEAAoE,kCAAmB;AACvF,sEAAsE,kCAAmB;AACzF,mEAAmE,kCAAmB;AACtF,mEAAmE,kCAAmB;AACtF,sEAAsE,kCAAmB;AACzF,sEAAsE,kCAAmB;AACzF,sEAAsE,kCAAmB;AACzF,mEAAmE,kCAAmB;AACtF,oEAAoE,kCAAmB;AACvF,2EAA2E,kCAAmB;AAC9F,yEAAyE,kCAAmB;AAC5F,oEAAoE,kCAAmB;AACvF,kEAAkE,kCAAmB;AACrF,qEAAqE,kCAAmB;AACxF,oEAAoE,kCAAmB;AACvF,oEAAoE,kCAAmB;AACvF,oEAAoE,kCAAmB;AACvF,uFAAuF,kCAAmB;AAC1G;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA;;;;;;;;;;;;;;;;;AAiBA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AAoBA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AAgBA;AACA;AACA;AACA;;;;;;;;;;AAUA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AAkBA;AACA;AACA;AACA;;;;;AAKA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;;;AAGrF;AACA;AACA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,wEAAwE,kCAAmB;AAC3F,sEAAsE,kCAAmB;AACzF,8EAA8E,kCAAmB;;;;;AAKjG;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;;;AAGrF;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;AACzF,qEAAqE,kCAAmB;;;;AAIxF;AACA;AACA;AACA;AACA;AACA,yFAAyF,YAAY;AACrG;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,iEAAiE,kCAAmB;;;AAGpF;AACA;AACA;AACA;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,0EAA0E,kCAAmB;AAC7F,uEAAuE,kCAAmB;AAC1F,gEAAgE,kCAAmB;AACnF,oEAAoE,kCAAmB;AACvF,mEAAmE,kCAAmB;;;;;;;AAOtF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;AACzF,gEAAgE,kCAAmB;;;;AAInF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;AACrF,sEAAsE,kCAAmB;;;;AAIzF;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;;;AAGzF;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;;;AAGrF;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;AACzF,uEAAuE,kCAAmB;AAC1F,0EAA0E,kCAAmB;AAC7F,yEAAyE,kCAAmB;;;;;;AAM5F;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;;;AAGzF;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;AACzF,oEAAoE,kCAAmB;AACvF,qEAAqE,kCAAmB;AACxF,wEAAwE,kCAAmB;AAC3F,iEAAiE,kCAAmB;;;;;;;AAOpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,uEAAuE,kCAAmB;AAC1F,kEAAkE,kCAAmB;AACrF,0EAA0E,kCAAmB;AAC7F,yEAAyE,kCAAmB;AAC5F,uEAAuE,kCAAmB;AAC1F,yEAAyE,kCAAmB;AAC5F,uEAAuE,kCAAmB;AAC1F,iEAAiE,kCAAmB;AACpF,gEAAgE,kCAAmB;AACnF,yEAAyE,kCAAmB;;;;;;;;;;;;AAY5F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;;;AAGzF;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;AACrF,qEAAqE,kCAAmB;;;;AAIxF;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;AACzF,kEAAkE,kCAAmB;;;;AAIrF;;AAEA;AACA;AACA;AACA,KAAK,KAAI;AACT;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;AACzF,yEAAyE,kCAAmB;AAC5F,8EAA8E,kCAAmB;;;;;AAKjG;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,iEAAiE,kCAAmB;;;AAGpF;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;AACrF,qEAAqE,kCAAmB;;;;AAIxF;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;;;AAGzF;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;;;AAGzF;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;AACzF,yEAAyE,kCAAmB;AAC5F,8EAA8E,kCAAmB;;;;;AAKjG;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;;;AAGzF;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;;;AAGzF;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;AACrF,uEAAuE,kCAAmB;AAC1F,qEAAqE,kCAAmB;AACxF,yEAAyE,kCAAmB;;;;;;AAM5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;AACzF,yEAAyE,kCAAmB;AAC5F,8EAA8E,kCAAmB;;;;;AAKjG;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;;;AAGzF;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,uEAAuE,kCAAmB;AAC1F,yEAAyE,kCAAmB;;;;AAI5F;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,qEAAqE,kCAAmB;AACxF,kEAAkE,kCAAmB;AACrF,gEAAgE,kCAAmB;AACnF,gFAAgF,kCAAmB;;;;;;AAMnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,iEAAiE,kCAAmB;;;AAGpF;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,0EAA0E,kCAAmB;AAC7F,8EAA8E,kCAAmB;;;;AAIjG;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,+DAA+D,kCAAmB;AAClF,wEAAwE,kCAAmB;AAC3F,iEAAiE,kCAAmB;;;;;AAKpF;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,+DAA+D,kCAAmB;AAClF,iEAAiE,kCAAmB;;;;AAIpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;AACzF,oEAAoE,kCAAmB;;;;AAIvF;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,wEAAwE,kCAAmB;AAC3F,mEAAmE,kCAAmB;AACtF,+DAA+D,kCAAmB;AAClF,iEAAiE,kCAAmB;;;;;;AAMpF;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,gEAAgE,kCAAmB;;;AAGnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,wEAAwE,kCAAmB;AAC3F,mEAAmE,kCAAmB;AACtF,+DAA+D,kCAAmB;AAClF,iEAAiE,kCAAmB;;;;;;AAMpF;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,uEAAuE,kCAAmB;AAC1F,iEAAiE,kCAAmB;AACpF,sEAAsE,kCAAmB;AACzF,kEAAkE,kCAAmB;AACrF,wEAAwE,kCAAmB;;;;;;;AAO3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;;;AAGzF;AACA;AACA;AACA;AACA;AACA,wFAAwF,YAAY;AACpG;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,0EAA0E,kCAAmB;AAC7F,uEAAuE,kCAAmB;AAC1F,mEAAmE,kCAAmB;AACtF,gEAAgE,kCAAmB;AACnF,oEAAoE,kCAAmB;AACvF,qEAAqE,kCAAmB;AACxF,iEAAiE,kCAAmB;;;;;;;;;AASpF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,oEAAoE,kCAAmB;AACvF,mEAAmE,kCAAmB;;;;AAItF;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,iEAAiE,kCAAmB;;;AAGpF;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,0EAA0E,kCAAmB;AAC7F,yEAAyE,kCAAmB;AAC5F,uEAAuE,kCAAmB;;;;;AAK1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;;;AAGrF;AACA;AACA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,0EAA0E,kCAAmB;AAC7F,uEAAuE,kCAAmB;AAC1F,uEAAuE,kCAAmB;AAC1F,oEAAoE,kCAAmB;AACvF,qEAAqE,kCAAmB;AACxF,oEAAoE,kCAAmB;;;;;;;;AAQvF;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,gEAAgE,kCAAmB;AACnF,qEAAqE,kCAAmB;;;;AAIxF;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,oEAAoE,kCAAmB;AACvF,mEAAmE,kCAAmB;;;;AAItF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,iEAAiE,kCAAmB;AACpF,gEAAgE,kCAAmB;;;;AAInF;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,cAAc;AACjC;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,yEAAyE,kCAAmB;;;AAG5F;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,yEAAyE,kCAAmB;;;AAG5F;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,mEAAmE,kCAAmB;AACtF,mEAAmE,kCAAmB;AACtF,+DAA+D,kCAAmB;;;;;AAKlF;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;;;AAGrF;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,uEAAuE,kCAAmB;AAC1F,mEAAmE,kCAAmB;;;;AAItF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,wEAAwE,kCAAmB;AAC3F,mEAAmE,kCAAmB;AACtF,sEAAsE,kCAAmB;AACzF,mEAAmE,kCAAmB;AACtF,oEAAoE,kCAAmB;;;;;;;AAOvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,mEAAmE,kCAAmB;;;AAGtF;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,wEAAwE,kCAAmB;AAC3F,iEAAiE,kCAAmB;;;;AAIpF;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,+DAA+D,kCAAmB;AAClF,wEAAwE,kCAAmB;AAC3F,iEAAiE,kCAAmB;;;;;AAKpF;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,+DAA+D,kCAAmB;AAClF,kEAAkE,kCAAmB;AACrF,gEAAgE,kCAAmB;;;;;AAKnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,+DAA+D,kCAAmB;AAClF,sEAAsE,kCAAmB;;;;AAIzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,qEAAqE,kCAAmB;AACxF,uEAAuE,kCAAmB;AAC1F,6EAA6E,kCAAmB;;;;;AAKhG;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;;AAErE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,mBAAmB;AACnB;;AAEA;AACA;AACA,GAAG;AACH,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,0BAA0B,EAAE,iBAAiB;AAC7C;AACA;;AAEA;AACA,sBAAsB,8BAA8B;AACpD,yBAAyB;;AAEzB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gDAAgD,iBAAiB;;AAEjE;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,uEAAuE,kCAAmB;;;AAG1F;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,gEAAgE,kCAAmB;;;AAGnF;AACA;AACA;AACA;AACA,KAAK,eAAe;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,uEAAuE,kCAAmB;;;AAG1F;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,oEAAoE,kCAAmB;AACvF,kEAAkE,kCAAmB;AACrF,qEAAqE,kCAAmB;AACxF,wEAAwE,kCAAmB;AAC3F,gEAAgE,kCAAmB;AACnF,qEAAqE,kCAAmB;AACxF,mEAAmE,kCAAmB;;;;;;;;;AAStF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,uEAAuE,kCAAmB;AAC1F,oEAAoE,kCAAmB;;;;AAIvF;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,uEAAuE,kCAAmB;AAC1F,iEAAiE,kCAAmB;AACpF,kEAAkE,kCAAmB;AACrF,wEAAwE,kCAAmB;;;;;;AAM3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,kEAAkE,kCAAmB;;;AAGrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,0EAA0E,kCAAmB;AAC7F,wEAAwE,kCAAmB;;;;AAI3F;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,0EAA0E,kCAAmB;AAC7F,iEAAiE,kCAAmB;AACpF,oEAAoE,kCAAmB;;;;;AAKvF;AACA;AACA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,sEAAsE,kCAAmB;AACzF,+DAA+D,kCAAmB;AAClF,sEAAsE,kCAAmB;AACzF,qEAAqE,kCAAmB;;;;;;AAMxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,YAAY;AACrG;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,gEAAgE,kCAAmB;AACnF,sEAAsE,kCAAmB;AACzF,kEAAkE,kCAAmB;;;;;AAKrF;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,iEAAiE,kCAAmB;;;AAGpF;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,mEAAmE,kCAAmB;AACtF,oEAAoE,kCAAmB;;;;AAIvF;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,0EAA0E,kCAAmB;AAC7F,uEAAuE,kCAAmB;;;;AAI1F;AACA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,oEAAoE,kCAAmB;;;AAGvF;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kEAAkE,kCAAmB;;AAErF;AACA,kCAAmB;AACnB,qBAAqB,kCAAmB;AACxC;AACA,sBAAsB;AACtB,0EAA0E,kCAAmB;AAC7F,kEAAkE,kCAAmB;;;;AAIrF;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,eAAe,kCAAmB;;AAElC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,eAAe,6BAA6B;AAC5C;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uBAAuB,kBAAkB;AACzC,qBAAqB,SAAS;AAC9B,kCAAkC,OAAO;AACzC,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,sBAAsB;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gCAAgC,WAAW;AAC3C,qBAAqB,SAAS;AAC9B,kCAAkC,OAAO;AACzC,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA,aAAa,kCAAmB;;AAEhC;AACA;AACA,uBAAuB,kBAAkB;AACzC,qBAAqB,SAAS;AAC9B,kCAAkC,OAAO;AACzC,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,WAAW;AAC3C,qBAAqB,SAAS;AAC9B,kCAAkC,OAAO;AACzC,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,UAAU,kCAAmB;AAC7B,SAAS,kCAAmB;AAC5B,cAAc,kCAAmB;;AAEjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,gDAAgD;AAChD;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe,OAAO;AACtB,eAAe,IAAI;AACnB,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,8BAA8B,yEAAyE;AACvG;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP,cAAc;AACd,KAAK;AACL;;AAEA;AACA,cAAc,OAAO;AACrB,cAAc,MAAM;AACpB,cAAc,MAAM;AACpB;AACA;AACA;AACA,8BAA8B,uCAAuC;AACrE;;AAEA;AACA;;AAEA;AACA,8BAA8B,uCAAuC;AACrE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB;AAChB,OAAO;AACP,KAAK;AACL;;AAEA;AACA,cAAc,IAAI;AAClB;AACA;AACA;AACA;AACA;;AAEA,2DAA2D,OAAO;AAClE;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,yDAAyD,GAAG;AAC5D;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC,wCAAwC;;AAExC,qBAAqB;AACrB,mBAAmB;;AAEnB;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA,gBAAgB,mCAAmC;AACnD;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE,kCAAmB;AACrB,EAAE,kCAAmB;AACrB;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,cAAc,kCAAmB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA,mCAAmC,oCAAoC;AACvE;AACA,sCAAsC,MAAM;AAC5C;;AAEA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,yBAAyB,kCAAmB;AAC5C,UAAU,kCAAmB;;AAE7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,aAAa,kCAAmB;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,kCAAmB;AAC3C,qBAAqB,kCAAmB;AACxC,wBAAwB,kCAAmB;AAC3C,yBAAyB,kCAAmB;;AAE5C;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;;AAEA;AACA,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,gBAAgB;AACjC;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,kCAAmB;AAClC,0BAA0B,kCAAmB;AAC7C,eAAe,kCAAmB;;AAElC;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,cAAc,OAAO,eAAe,OAAO;AAClE;AACA,KAAK;;AAEL;AACA;AACA;AACA,yDAAyD,qBAAqB;AAC9E,2DAA2D,qBAAqB;AAChF;AACA;AACA,yDAAyD,oDAAoD;AAC7G,KAAK;;AAEL;AACA;AACA,4DAA4D,2BAA2B;AACvF;AACA;AACA;;AAEA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,2FAA2F;AAC3F;AACA;AACA,4BAA4B,OAAO,GAAG,cAAc,GAAG,eAAe;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL,2EAA2E,yBAAyB;;AAEpG;AACA,kDAAkD,OAAO,GAAG,UAAU;AACtE,+DAA+D,2BAA2B;AAC1F,KAAK;;AAEL;AACA;AACA,+DAA+D,OAAO;AACtE,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,iCAAiC;AACjC;;AAEA,gCAAgC,uCAAuC;AACvE;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,iEAAiE,2BAA2B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD,YAAY,IAAI,IAAI;AACxE;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;;AAEA,eAAe,kCAAmB;AAClC,0BAA0B,kCAAmB;;AAE7C,mBAAmB,kCAAmB;AACtC,8BAA8B,kCAAmB;AACjD,qBAAqB,kCAAmB;AACxC,wBAAwB,kCAAmB;AAC3C,6BAA6B,kCAAmB;AAChD,yBAAyB,kCAAmB;;AAE5C;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA,aAAa,aAAa;AAC1B,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,uCAAuC;AAClD,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT,OAAO;AACP,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,yCAAyC;AACzC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,yBAAyB,SAAS,QAAQ,EAAE;AAC5C;AACA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,2CAA2C,sDAAsD;AACjG;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,mCAAmC,qCAAqC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,kCAAmB;AACxC,mBAAmB,kCAAmB;AACtC,mCAAmC,kCAAmB;;AAEtD;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,WAAW,IAAI;AACf;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB;AACA,gCAAgC,sCAAsC,uCAAuC,GAAG;AAChH,SAAS,mDAAmD;AAC5D;AACA;AACA;AACA;AACA;AACA,oDAAoD,mCAAmC;AACvF;;AAEA;AACA,SAAS,gCAAgC;AACzC,SAAS,mEAAmE;AAC5E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;;AAEP,uDAAuD;AACvD;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL,GAAG;;AAEH,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,eAAe,yBAAyB;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,GAAG;;AAEH;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,kCAAmB;;AAEjC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;AACH;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA,gBAAgB,kCAAmB;AACnC,0BAA0B,kCAAmB;;AAE7C,0BAA0B,kCAAmB;AAC7C,qBAAqB,kCAAmB;;AAExC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB;AACA,aAAa,aAAa;AAC1B,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,SAAS,oCAAoC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB;AACA,eAAe,gBAAgB;AAC/B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oCAAoC,kCAAkC;AACtE;AACA,GAAG,IAAI;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;;AAEP;AACA,iCAAiC,iBAAiB;AAClD,iCAAiC,kCAAkC;AACnE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG,EAAE;AACL;;AAEA,qCAAqC;AACrC,SAAS,qCAAqC;AAC9C;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kCAAmB;AAC/B,yBAAyB,kCAAmB;AAC5C,oBAAoB,kCAAmB;;AAEvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,kCAAkC;AAC7C;AACA;AACA;AACA,qBAAqB;AACrB,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,aAAa,IAAI;AACjB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,aAAa,oBAAoB;AACjC;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8EAA8E,IAAI;AAClF;;AAEA;AACA;AACA;AACA,CAAC,IAAI;;;AAGL,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA,6CAA6C,eAAe,cAAc,EAAE;AAC5E;AACA,OAAO,IAAI;AACX,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,GAAG;AACH;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;;AAEA,eAAe,kCAAmB;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,WAAW,qBAAqB;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA,WAAW,qBAAqB;AAChC;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,kCAAmB;;AAEtC;AACA,WAAW,OAAO;AAClB,WAAW,IAAI;AACf,WAAW,OAAO;;AAElB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;;AAET;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA,eAAe,eAAe,GAAG,aAAa,GAAG,aAAa;AAC9D;AACA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAmB;;AAEtC;AACA,WAAW,SAAS;AACpB,WAAW,IAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D;AACA,SAAS,kCAAmB;AAC5B,qBAAqB,kCAAmB;AACxC,oBAAoB,kCAAmB;AACvC,mBAAmB,kCAAmB;AACtC,gBAAgB,kCAAmB;AACnC,WAAW,kCAAmB;AAC9B,WAAW,kCAAmB;AAC9B,gBAAgB,kCAAmB;AACnC,8BAA8B,kCAAmB;AACjD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,kCAAmB;;AAE7D,aAAa,kCAAmB;;AAEhC;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAO,CAAC,sBAAQ;;AAEjC,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAO,CAAC,oCAAe;;AAExC,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAO,CAAC,sBAAQ;;AAEjC,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAO,CAAC,cAAI;;AAE7B,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAO,CAAC,kBAAM;;AAE/B,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAO,CAAC,oBAAO;;AAEhC,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAO,CAAC,gBAAK;;AAE9B,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAO,CAAC,cAAI;;AAE7B,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAO,CAAC,kBAAM;;AAE/B,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAO,CAAC,sBAAQ;;AAEjC,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAO,CAAC,sCAAgB;;AAEzC,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAO,CAAC,gBAAK;;AAE9B,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAO,CAAC,kBAAM;;AAE/B,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAO,CAAC,kBAAM;;AAE/B,OAAO;;AAEP,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,kCAAmB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,kCAAmB;AAC7B;AACA;AACA;AACA;AACA;AACA,WAAW,kCAAmB;AAC9B;AACA;AACA;AACA,YAAY,kCAAmB,YAAY,YAAY;AACvD;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW,kCAAmB;AAC9B;AACA,gBAAgB,kCAAmB,wBAAwB,kCAAmB;AAC9E,mDAAmD,yCAAyC;AAC5F;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW,kCAAmB;AAC9B,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW,kCAAmB;AAC9B;AACA,iEAAiE,kBAAkB;AACnF;AACA,0DAA0D,cAAc;AACxE;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW,kCAAmB;AAC9B;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kCAAmB,CAAC,kCAAmB;AAC3E;AACA;AACA,6GAA6G,cAAc;AAC3H;AACA,UAAU;AACV;AACA,+C;;;;;;;;;;;ACjvnGA,oC;;;;;;;;;;;ACAA,2C;;;;;;;;;;;ACAA,oC;;;;;;;;;;;ACAA,gC;;;;;;;;;;;ACAA,kC;;;;;;;;;;;ACAA,mC;;;;;;;;;;;ACAA,iC;;;;;;;;;;;ACAA,gC;;;;;;;;;;;ACAA,kC;;;;;;;;;;;ACAA,oC;;;;;;;;;;;ACAA,4C;;;;;;;;;;;ACAA,iC;;;;;;;;;;;ACAA,kC;;;;;;;;;;;ACAA,kC;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;UCtBA;UACA;UACA;UACA","file":"all-chts-bundle.dev.js","sourcesContent":["module.exports = {\n '4.6': require('../dist/cht-core-4-6/cht-core-bundle.dev'),\n};\n","/******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./build/cht-core-4-6-ddocs.json\":\n/*!***************************************!*\\\n !*** ./build/cht-core-4-6-ddocs.json ***!\n \\***************************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = JSON.parse('[{\"views\":{\"contacts_by_freetext\":{\"map\":\"function(doc) {\\\\n var skip = [ \\'_id\\', \\'_rev\\', \\'type\\', \\'refid\\', \\'geolocation\\' ];\\\\n\\\\n var usedKeys = [];\\\\n var emitMaybe = function(key, value) {\\\\n if (usedKeys.indexOf(key) === -1 && // Not already used\\\\n key.length > 2 // Not too short\\\\n ) {\\\\n usedKeys.push(key);\\\\n emit([key], value);\\\\n }\\\\n };\\\\n\\\\n var emitField = function(key, value, order) {\\\\n if (!key || !value) {\\\\n return;\\\\n }\\\\n key = key.toLowerCase();\\\\n if (skip.indexOf(key) !== -1 || /_date$/.test(key)) {\\\\n return;\\\\n }\\\\n if (typeof value === \\'string\\') {\\\\n value = value.toLowerCase();\\\\n value.split(/\\\\\\\\s+/).forEach(function(word) {\\\\n emitMaybe(word, order);\\\\n });\\\\n }\\\\n if (typeof value === \\'number\\' || typeof value === \\'string\\') {\\\\n emitMaybe(key + \\':\\' + value, order);\\\\n }\\\\n };\\\\n\\\\n var types = [ \\'district_hospital\\', \\'health_center\\', \\'clinic\\', \\'person\\' ];\\\\n var idx;\\\\n if (doc.type === \\'contact\\') {\\\\n idx = types.indexOf(doc.contact_type);\\\\n if (idx === -1) {\\\\n idx = doc.contact_type;\\\\n }\\\\n } else {\\\\n idx = types.indexOf(doc.type);\\\\n }\\\\n\\\\n if (idx !== -1) {\\\\n var dead = !!doc.date_of_death;\\\\n var muted = !!doc.muted;\\\\n var order = dead + \\' \\' + muted + \\' \\' + idx + \\' \\' + (doc.name && doc.name.toLowerCase());\\\\n Object.keys(doc).forEach(function(key) {\\\\n emitField(key, doc[key], order);\\\\n });\\\\n }\\\\n}\"},\"contacts_by_last_visited\":{\"map\":\"function(doc) {\\\\n if (doc.type === \\'data_record\\' &&\\\\n doc.form &&\\\\n doc.fields &&\\\\n doc.fields.visited_contact_uuid) {\\\\n\\\\n var date = doc.fields.visited_date ? Date.parse(doc.fields.visited_date) : doc.reported_date;\\\\n if (typeof date !== \\'number\\' || isNaN(date)) {\\\\n date = 0;\\\\n }\\\\n // Is a visit report about a family\\\\n emit(doc.fields.visited_contact_uuid, date);\\\\n } else if (doc.type === \\'contact\\' ||\\\\n doc.type === \\'clinic\\' ||\\\\n doc.type === \\'health_center\\' ||\\\\n doc.type === \\'district_hospital\\' ||\\\\n doc.type === \\'person\\') {\\\\n // Is a contact type\\\\n emit(doc._id, 0);\\\\n }\\\\n}\",\"reduce\":\"_stats\"},\"contacts_by_parent\":{\"map\":\"function(doc) {\\\\n if (doc.type === \\'contact\\' ||\\\\n doc.type === \\'clinic\\' ||\\\\n doc.type === \\'health_center\\' ||\\\\n doc.type === \\'district_hospital\\' ||\\\\n doc.type === \\'person\\') {\\\\n var parentId = doc.parent && doc.parent._id;\\\\n var type = doc.type === \\'contact\\' ? doc.contact_type : doc.type;\\\\n if (parentId) {\\\\n emit([parentId, type]);\\\\n }\\\\n }\\\\n}\"},\"contacts_by_phone\":{\"map\":\"function(doc) {\\\\n if (doc.phone) {\\\\n var types = [ \\'contact\\', \\'district_hospital\\', \\'health_center\\', \\'clinic\\', \\'person\\' ];\\\\n if (types.indexOf(doc.type) !== -1) {\\\\n emit(doc.phone);\\\\n }\\\\n }\\\\n}\"},\"contacts_by_place\":{\"map\":\"function(doc) {\\\\n var types = [ \\'district_hospital\\', \\'health_center\\', \\'clinic\\', \\'person\\' ];\\\\n var idx;\\\\n if (doc.type === \\'contact\\') {\\\\n idx = types.indexOf(doc.contact_type);\\\\n if (idx === -1) {\\\\n idx = doc.contact_type;\\\\n }\\\\n } else {\\\\n idx = types.indexOf(doc.type);\\\\n }\\\\n if (idx !== -1) {\\\\n var place = doc.parent;\\\\n var order = idx + \\' \\' + (doc.name && doc.name.toLowerCase());\\\\n while (place) {\\\\n if (place._id) {\\\\n emit([ place._id ], order);\\\\n }\\\\n place = place.parent;\\\\n }\\\\n }\\\\n}\"},\"contacts_by_reference\":{\"map\":\"function(doc) {\\\\n if (doc.type === \\'contact\\' ||\\\\n doc.type === \\'clinic\\' ||\\\\n doc.type === \\'health_center\\' ||\\\\n doc.type === \\'district_hospital\\' ||\\\\n doc.type === \\'national_office\\' ||\\\\n doc.type === \\'person\\') {\\\\n\\\\n var emitReference = function(prefix, key) {\\\\n emit([ prefix, String(key) ], doc.reported_date);\\\\n };\\\\n\\\\n if (doc.place_id) {\\\\n emitReference(\\'shortcode\\', doc.place_id);\\\\n }\\\\n if (doc.patient_id) {\\\\n emitReference(\\'shortcode\\', doc.patient_id);\\\\n }\\\\n if (doc.rc_code) {\\\\n // need String because rewriter wraps everything in quotes\\\\n // keep refid case-insenstive since data is usually coming from SMS\\\\n emitReference(\\'external\\', String(doc.rc_code).toUpperCase());\\\\n }\\\\n }\\\\n}\"},\"contacts_by_type_freetext\":{\"map\":\"function(doc) {\\\\n var skip = [ \\'_id\\', \\'_rev\\', \\'type\\', \\'refid\\', \\'geolocation\\' ];\\\\n\\\\n var usedKeys = [];\\\\n var emitMaybe = function(type, key, value) {\\\\n if (usedKeys.indexOf(key) === -1 && // Not already used\\\\n key.length > 2 // Not too short\\\\n ) {\\\\n usedKeys.push(key);\\\\n emit([ type, key ], value);\\\\n }\\\\n };\\\\n\\\\n var emitField = function(type, key, value, order) {\\\\n if (!key || !value) {\\\\n return;\\\\n }\\\\n key = key.toLowerCase();\\\\n if (skip.indexOf(key) !== -1 || /_date$/.test(key)) {\\\\n return;\\\\n }\\\\n if (typeof value === \\'string\\') {\\\\n value = value.toLowerCase();\\\\n value.split(/\\\\\\\\s+/).forEach(function(word) {\\\\n emitMaybe(type, word, order);\\\\n });\\\\n }\\\\n if (typeof value === \\'number\\' || typeof value === \\'string\\') {\\\\n emitMaybe(type, key + \\':\\' + value, order);\\\\n }\\\\n };\\\\n\\\\n var types = [ \\'district_hospital\\', \\'health_center\\', \\'clinic\\', \\'person\\' ];\\\\n var idx;\\\\n var type;\\\\n if (doc.type === \\'contact\\') {\\\\n type = doc.contact_type;\\\\n idx = types.indexOf(type);\\\\n if (idx === -1) {\\\\n idx = type;\\\\n }\\\\n } else {\\\\n type = doc.type;\\\\n idx = types.indexOf(type);\\\\n }\\\\n if (idx !== -1) {\\\\n var dead = !!doc.date_of_death;\\\\n var muted = !!doc.muted;\\\\n var order = dead + \\' \\' + muted + \\' \\' + idx + \\' \\' + (doc.name && doc.name.toLowerCase());\\\\n Object.keys(doc).forEach(function(key) {\\\\n emitField(type, key, doc[key], order);\\\\n });\\\\n }\\\\n}\"},\"contacts_by_type\":{\"map\":\"function(doc) {\\\\n var types = [ \\'district_hospital\\', \\'health_center\\', \\'clinic\\', \\'person\\' ];\\\\n var idx;\\\\n var type;\\\\n if (doc.type === \\'contact\\') {\\\\n type = doc.contact_type;\\\\n idx = types.indexOf(type);\\\\n if (idx === -1) {\\\\n idx = type;\\\\n }\\\\n } else {\\\\n type = doc.type;\\\\n idx = types.indexOf(type);\\\\n }\\\\n if (idx !== -1) {\\\\n var dead = !!doc.date_of_death;\\\\n var muted = !!doc.muted;\\\\n var order = dead + \\' \\' + muted + \\' \\' + idx + \\' \\' + (doc.name && doc.name.toLowerCase());\\\\n emit([ type ], order);\\\\n }\\\\n}\"},\"data_records_by_type\":{\"reduce\":\"_count\",\"map\":\"function(doc) {\\\\n if (doc.type === \\'data_record\\') {\\\\n emit(doc.form ? \\'report\\' : \\'message\\');\\\\n }\\\\n}\"},\"doc_by_type\":{\"map\":\"function(doc) {\\\\n if (doc.type === \\'translations\\') {\\\\n emit([ \\'translations\\', doc.enabled ], {\\\\n code: doc.code,\\\\n name: doc.name\\\\n });\\\\n return;\\\\n }\\\\n emit([ doc.type ]);\\\\n}\"},\"docs_by_id_lineage\":{\"map\":\"function(doc) {\\\\n\\\\n var emitLineage = function(contact, depth) {\\\\n while (contact && contact._id) {\\\\n emit([ doc._id, depth++ ], { _id: contact._id });\\\\n contact = contact.parent;\\\\n }\\\\n };\\\\n\\\\n var types = [ \\'contact\\', \\'district_hospital\\', \\'health_center\\', \\'clinic\\', \\'person\\' ];\\\\n\\\\n if (types.indexOf(doc.type) !== -1) {\\\\n // contact\\\\n emitLineage(doc, 0);\\\\n } else if (doc.type === \\'data_record\\' && doc.form) {\\\\n // report\\\\n emit([ doc._id, 0 ]);\\\\n emitLineage(doc.contact, 1);\\\\n }\\\\n}\"},\"messages_by_contact_date\":{\"map\":\"function(doc) {\\\\n\\\\n var emitMessage = function(doc, contact, phone) {\\\\n var id = (contact && contact._id) || phone || doc._id;\\\\n emit([ id, doc.reported_date ], {\\\\n id: doc._id,\\\\n date: doc.reported_date,\\\\n contact: contact && contact._id\\\\n });\\\\n };\\\\n\\\\n if (doc.type === \\'data_record\\' && !doc.form) {\\\\n if (doc.kujua_message && doc.tasks) {\\\\n // outgoing\\\\n doc.tasks.forEach(function(task) {\\\\n var message = task.messages && task.messages[0];\\\\n if(message) {\\\\n emitMessage(doc, message.contact, message.to);\\\\n }\\\\n });\\\\n } else if (doc.sms_message) {\\\\n // incoming\\\\n emitMessage(doc, doc.contact, doc.from);\\\\n }\\\\n }\\\\n}\",\"reduce\":\"function(key, values) {\\\\n var latest = { date: 0 };\\\\n values.forEach(function(value) {\\\\n if (value.date > latest.date) {\\\\n latest = value;\\\\n }\\\\n });\\\\n return latest;\\\\n}\"},\"registered_patients\":{\"map\":\"// NB: This returns *registrations* for contacts. If contacts are created by\\\\n// means other then sending in a registration report (eg created in the UI)\\\\n// they will not show up in this view.\\\\n//\\\\n// For a view with all patients by their shortcode, use:\\\\n// medic/docs_by_shortcode\\\\nfunction(doc) {\\\\n var patientId = doc.patient_id || (doc.fields && doc.fields.patient_id);\\\\n var placeId = doc.place_id || (doc.fields && doc.fields.place_id);\\\\n\\\\n if (!doc.form || doc.type !== \\'data_record\\' || (doc.errors && doc.errors.length)) {\\\\n return;\\\\n }\\\\n\\\\n if (patientId) {\\\\n emit(String(patientId));\\\\n }\\\\n\\\\n if (placeId) {\\\\n emit(String(placeId));\\\\n }\\\\n}\"},\"reports_by_form\":{\"map\":\"function(doc) {\\\\n if (doc.type === \\'data_record\\' && doc.form) {\\\\n emit([doc.form], doc.reported_date);\\\\n }\\\\n}\",\"reduce\":\"function() {\\\\n return true;\\\\n}\"},\"reports_by_date\":{\"map\":\"function(doc) {\\\\n if (doc.type === \\'data_record\\' && doc.form) {\\\\n emit([doc.reported_date], doc.reported_date);\\\\n }\\\\n}\"},\"reports_by_freetext\":{\"map\":\"function(doc) {\\\\n var skip = [ \\'_id\\', \\'_rev\\', \\'type\\', \\'refid\\', \\'content\\' ];\\\\n\\\\n var usedKeys = [];\\\\n var emitMaybe = function(key, value) {\\\\n if (usedKeys.indexOf(key) === -1 && // Not already used\\\\n key.length > 2 // Not too short\\\\n ) {\\\\n usedKeys.push(key);\\\\n emit([key], value);\\\\n }\\\\n };\\\\n\\\\n var emitField = function(key, value, reportedDate) {\\\\n if (!key || !value) {\\\\n return;\\\\n }\\\\n key = key.toLowerCase();\\\\n if (skip.indexOf(key) !== -1 || /_date$/.test(key)) {\\\\n return;\\\\n }\\\\n if (typeof value === \\'string\\') {\\\\n value = value.toLowerCase();\\\\n value.split(/\\\\\\\\s+/).forEach(function(word) {\\\\n emitMaybe(word, reportedDate);\\\\n });\\\\n }\\\\n if (typeof value === \\'number\\' || typeof value === \\'string\\') {\\\\n emitMaybe(key + \\':\\' + value, reportedDate);\\\\n }\\\\n };\\\\n\\\\n if (doc.type === \\'data_record\\' && doc.form) {\\\\n Object.keys(doc).forEach(function(key) {\\\\n emitField(key, doc[key], doc.reported_date);\\\\n });\\\\n if (doc.fields) {\\\\n Object.keys(doc.fields).forEach(function(key) {\\\\n emitField(key, doc.fields[key], doc.reported_date);\\\\n });\\\\n }\\\\n if (doc.contact && doc.contact._id) {\\\\n emitMaybe(\\'contact:\\' + doc.contact._id.toLowerCase(), doc.reported_date);\\\\n }\\\\n }\\\\n}\"},\"reports_by_place\":{\"map\":\"function(doc) {\\\\n if (doc.type === \\'data_record\\' && doc.form) {\\\\n var place = doc.contact && doc.contact.parent;\\\\n while (place) {\\\\n if (place._id) {\\\\n emit([ place._id ], doc.reported_date);\\\\n }\\\\n place = place.parent;\\\\n }\\\\n }\\\\n}\"},\"reports_by_subject\":{\"map\":\"function(doc) {\\\\n if (doc.type === \\'data_record\\' && doc.form) {\\\\n var emitField = function(obj, field) {\\\\n if (obj[field]) {\\\\n emit(obj[field], doc.reported_date);\\\\n }\\\\n };\\\\n\\\\n emitField(doc, \\'patient_id\\');\\\\n emitField(doc, \\'place_id\\');\\\\n emitField(doc, \\'case_id\\');\\\\n\\\\n if (doc.fields) {\\\\n emitField(doc.fields, \\'patient_id\\');\\\\n emitField(doc.fields, \\'place_id\\');\\\\n emitField(doc.fields, \\'case_id\\');\\\\n emitField(doc.fields, \\'patient_uuid\\');\\\\n emitField(doc.fields, \\'place_uuid\\');\\\\n }\\\\n }\\\\n}\"},\"reports_by_validity\":{\"map\":\"function(doc) {\\\\n if (doc.type === \\'data_record\\' && doc.form) {\\\\n emit([!doc.errors || doc.errors.length === 0], doc.reported_date);\\\\n }\\\\n}\"},\"reports_by_verification\":{\"map\":\"function(doc) {\\\\n if (doc.type === \\'data_record\\' && doc.form) {\\\\n emit([doc.verified], doc.reported_date);\\\\n }\\\\n}\"},\"tasks_by_contact\":{\"map\":\"function(doc) {\\\\n if (doc.type === \\'task\\') {\\\\n var isTerminalState = [\\'Cancelled\\', \\'Completed\\', \\'Failed\\'].indexOf(doc.state) >= 0;\\\\n var owner = (doc.owner || \\'_unassigned\\');\\\\n\\\\n if (!isTerminalState) {\\\\n emit(\\'owner-\\' + owner);\\\\n }\\\\n\\\\n if (doc.requester) {\\\\n emit(\\'requester-\\' + doc.requester);\\\\n }\\\\n\\\\n emit([\\'owner\\', \\'all\\', owner], { state: doc.state });\\\\n }\\\\n}\"},\"total_clinics_by_facility\":{\"map\":\"function(doc) {\\\\n var districtId = doc.parent && doc.parent.parent && doc.parent.parent._id;\\\\n if (doc.type === \\'clinic\\' || (doc.type === \\'contact\\' && districtId)) {\\\\n var healthCenterId = doc.parent && doc.parent._id;\\\\n emit([ districtId, healthCenterId, doc._id, 0 ]);\\\\n if (doc.contact && doc.contact._id) {\\\\n emit([ districtId, healthCenterId, doc._id, 1 ], { _id: doc.contact._id });\\\\n }\\\\n var index = 2;\\\\n var parent = doc.parent;\\\\n while(parent) {\\\\n if (parent._id) {\\\\n emit([ districtId, healthCenterId, doc._id, index++ ], { _id: parent._id });\\\\n }\\\\n parent = parent.parent;\\\\n }\\\\n }\\\\n}\"},\"visits_by_date\":{\"map\":\"function(doc) {\\\\n if (doc.type === \\'data_record\\' &&\\\\n doc.form &&\\\\n doc.fields &&\\\\n doc.fields.visited_contact_uuid) {\\\\n\\\\n var visited_date = doc.fields.visited_date ? Date.parse(doc.fields.visited_date) : doc.reported_date;\\\\n\\\\n // Is a visit report about a family\\\\n emit(visited_date, doc.fields.visited_contact_uuid);\\\\n emit([doc.fields.visited_contact_uuid, visited_date]);\\\\n }\\\\n}\"}},\"validate_doc_update\":\"function(newDoc, oldDoc, userCtx) {\\\\n /*\\\\n LOCAL DOCUMENT VALIDATION\\\\n\\\\n This is for validating document structure, irrespective of authority, so it\\\\n can be run both on couchdb and pouchdb (where you are technically admin).\\\\n\\\\n For validations around authority check lib/validate_doc_update.js, which is\\\\n only run on the server.\\\\n */\\\\n\\\\n var _err = function(msg) {\\\\n throw({ forbidden: msg });\\\\n };\\\\n\\\\n /**\\\\n * Ensure that type=\\'form\\' documents are created with correctly formatted _id\\\\n * property.\\\\n */\\\\n var validateForm = function(newDoc) {\\\\n var id_parts = newDoc._id.split(\\':\\');\\\\n var prefix = id_parts[0];\\\\n var form_id = id_parts.slice(1).join(\\':\\');\\\\n if (prefix !== \\'form\\') {\\\\n _err(\\'_id property must be prefixed with \\\\\"form:\\\\\". e.g. \\\\\"form:registration\\\\\"\\');\\\\n }\\\\n if (!form_id) {\\\\n _err(\\'_id property must define a value after \\\\\"form:\\\\\". e.g. \\\\\"form:registration\\\\\"\\');\\\\n }\\\\n if (newDoc._id !== newDoc._id.toLowerCase()) {\\\\n _err(\\'_id property must be lower case. e.g. \\\\\"form:registration\\\\\"\\');\\\\n }\\\\n };\\\\n\\\\n var validateUserSettings = function(newDoc) {\\\\n var id_parts = newDoc._id.split(\\':\\');\\\\n var prefix = id_parts[0];\\\\n var username = id_parts.slice(1).join(\\':\\');\\\\n var idExample = \\' e.g. \\\\\"org.couchdb.user:sally\\\\\"\\';\\\\n if (prefix !== \\'org.couchdb.user\\') {\\\\n _err(\\'_id must be prefixed with \\\\\"org.couchdb.user:\\\\\".\\' + idExample);\\\\n }\\\\n if (!username) {\\\\n _err(\\'_id must define a value after \\\\\"org.couchdb.user:\\\\\".\\' + idExample);\\\\n }\\\\n if (newDoc._id !== newDoc._id.toLowerCase()) {\\\\n _err(\\'_id must be lower case.\\' + idExample);\\\\n }\\\\n if (typeof newDoc.name === \\'undefined\\' || newDoc.name !== username) {\\\\n _err(\\'name property must be equivalent to username.\\' + idExample);\\\\n }\\\\n if (newDoc.name.toLowerCase() !== username.toLowerCase()) {\\\\n _err(\\'name must be equivalent to username\\');\\\\n }\\\\n if (typeof newDoc.known !== \\'undefined\\' && typeof newDoc.known !== \\'boolean\\') {\\\\n _err(\\'known is not a boolean.\\');\\\\n }\\\\n if (typeof newDoc.roles !== \\'object\\') {\\\\n _err(\\'roles is a required array\\');\\\\n }\\\\n };\\\\n\\\\n if (userCtx.facility_id === newDoc._id) {\\\\n _err(\\'You are not authorized to edit your own place\\');\\\\n }\\\\n if (newDoc.type === \\'form\\') {\\\\n validateForm(newDoc);\\\\n }\\\\n if (newDoc.type === \\'user-settings\\') {\\\\n validateUserSettings(newDoc);\\\\n }\\\\n\\\\n log(\\\\n \\'medic-client validate_doc_update passed for User \\\\\"\\' + userCtx.name +\\\\n \\'\\\\\" changing document \\\\\"\\' + newDoc._id + \\'\\\\\"\\'\\\\n );\\\\n}\",\"_id\":\"_design/medic-client\"}]');\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/colors.js\":\n/*!**************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/colors.js ***!\n \\**************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/*\n\nThe MIT License (MIT)\n\nOriginal Library\n - Copyright (c) Marak Squires\n\nAdditional functionality\n - Copyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n\nvar colors = {};\nmodule['exports'] = colors;\n\ncolors.themes = {};\n\nvar util = __webpack_require__(/*! util */ \"util\");\nvar ansiStyles = colors.styles = __webpack_require__(/*! ./styles */ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/styles.js\");\nvar defineProps = Object.defineProperties;\nvar newLineRegex = new RegExp(/[\\r\\n]+/g);\n\ncolors.supportsColor = __webpack_require__(/*! ./system/supports-colors */ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/supports-colors.js\").supportsColor;\n\nif (typeof colors.enabled === 'undefined') {\n colors.enabled = colors.supportsColor() !== false;\n}\n\ncolors.enable = function() {\n colors.enabled = true;\n};\n\ncolors.disable = function() {\n colors.enabled = false;\n};\n\ncolors.stripColors = colors.strip = function(str) {\n return ('' + str).replace(/\\x1B\\[\\d+m/g, '');\n};\n\n// eslint-disable-next-line no-unused-vars\nvar stylize = colors.stylize = function stylize(str, style) {\n if (!colors.enabled) {\n return str+'';\n }\n\n var styleMap = ansiStyles[style];\n\n // Stylize should work for non-ANSI styles, too\n if (!styleMap && style in colors) {\n // Style maps like trap operate as functions on strings;\n // they don't have properties like open or close.\n return colors[style](str);\n }\n\n return styleMap.open + str + styleMap.close;\n};\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\nvar escapeStringRegexp = function(str) {\n if (typeof str !== 'string') {\n throw new TypeError('Expected a string');\n }\n return str.replace(matchOperatorsRe, '\\\\$&');\n};\n\nfunction build(_styles) {\n var builder = function builder() {\n return applyStyle.apply(builder, arguments);\n };\n builder._styles = _styles;\n // __proto__ is used because we must return a function, but there is\n // no way to create a function with a different prototype.\n builder.__proto__ = proto;\n return builder;\n}\n\nvar styles = (function() {\n var ret = {};\n ansiStyles.grey = ansiStyles.gray;\n Object.keys(ansiStyles).forEach(function(key) {\n ansiStyles[key].closeRe =\n new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');\n ret[key] = {\n get: function() {\n return build(this._styles.concat(key));\n },\n };\n });\n return ret;\n})();\n\nvar proto = defineProps(function colors() {}, styles);\n\nfunction applyStyle() {\n var args = Array.prototype.slice.call(arguments);\n\n var str = args.map(function(arg) {\n // Use weak equality check so we can colorize null/undefined in safe mode\n if (arg != null && arg.constructor === String) {\n return arg;\n } else {\n return util.inspect(arg);\n }\n }).join(' ');\n\n if (!colors.enabled || !str) {\n return str;\n }\n\n var newLinesPresent = str.indexOf('\\n') != -1;\n\n var nestedStyles = this._styles;\n\n var i = nestedStyles.length;\n while (i--) {\n var code = ansiStyles[nestedStyles[i]];\n str = code.open + str.replace(code.closeRe, code.open) + code.close;\n if (newLinesPresent) {\n str = str.replace(newLineRegex, function(match) {\n return code.close + match + code.open;\n });\n }\n }\n\n return str;\n}\n\ncolors.setTheme = function(theme) {\n if (typeof theme === 'string') {\n console.log('colors.setTheme now only accepts an object, not a string. ' +\n 'If you are trying to set a theme from a file, it is now your (the ' +\n 'caller\\'s) responsibility to require the file. The old syntax ' +\n 'looked like colors.setTheme(__dirname + ' +\n '\\'/../themes/generic-logging.js\\'); The new syntax looks like '+\n 'colors.setTheme(require(__dirname + ' +\n '\\'/../themes/generic-logging.js\\'));');\n return;\n }\n for (var style in theme) {\n (function(style) {\n colors[style] = function(str) {\n if (typeof theme[style] === 'object') {\n var out = str;\n for (var i in theme[style]) {\n out = colors[theme[style][i]](out);\n }\n return out;\n }\n return colors[theme[style]](str);\n };\n })(style);\n }\n};\n\nfunction init() {\n var ret = {};\n Object.keys(styles).forEach(function(name) {\n ret[name] = {\n get: function() {\n return build([name]);\n },\n };\n });\n return ret;\n}\n\nvar sequencer = function sequencer(map, str) {\n var exploded = str.split('');\n exploded = exploded.map(map);\n return exploded.join('');\n};\n\n// custom formatter methods\ncolors.trap = __webpack_require__(/*! ./custom/trap */ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/trap.js\");\ncolors.zalgo = __webpack_require__(/*! ./custom/zalgo */ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/zalgo.js\");\n\n// maps\ncolors.maps = {};\ncolors.maps.america = __webpack_require__(/*! ./maps/america */ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/america.js\")(colors);\ncolors.maps.zebra = __webpack_require__(/*! ./maps/zebra */ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/zebra.js\")(colors);\ncolors.maps.rainbow = __webpack_require__(/*! ./maps/rainbow */ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/rainbow.js\")(colors);\ncolors.maps.random = __webpack_require__(/*! ./maps/random */ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/random.js\")(colors);\n\nfor (var map in colors.maps) {\n (function(map) {\n colors[map] = function(str) {\n return sequencer(colors.maps[map], str);\n };\n })(map);\n}\n\ndefineProps(colors, init());\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/trap.js\":\n/*!*******************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/trap.js ***!\n \\*******************************************************************************/\n/***/ ((module) => {\n\nmodule['exports'] = function runTheTrap(text, options) {\n var result = '';\n text = text || 'Run the trap, drop the bass';\n text = text.split('');\n var trap = {\n a: ['\\u0040', '\\u0104', '\\u023a', '\\u0245', '\\u0394', '\\u039b', '\\u0414'],\n b: ['\\u00df', '\\u0181', '\\u0243', '\\u026e', '\\u03b2', '\\u0e3f'],\n c: ['\\u00a9', '\\u023b', '\\u03fe'],\n d: ['\\u00d0', '\\u018a', '\\u0500', '\\u0501', '\\u0502', '\\u0503'],\n e: ['\\u00cb', '\\u0115', '\\u018e', '\\u0258', '\\u03a3', '\\u03be', '\\u04bc',\n '\\u0a6c'],\n f: ['\\u04fa'],\n g: ['\\u0262'],\n h: ['\\u0126', '\\u0195', '\\u04a2', '\\u04ba', '\\u04c7', '\\u050a'],\n i: ['\\u0f0f'],\n j: ['\\u0134'],\n k: ['\\u0138', '\\u04a0', '\\u04c3', '\\u051e'],\n l: ['\\u0139'],\n m: ['\\u028d', '\\u04cd', '\\u04ce', '\\u0520', '\\u0521', '\\u0d69'],\n n: ['\\u00d1', '\\u014b', '\\u019d', '\\u0376', '\\u03a0', '\\u048a'],\n o: ['\\u00d8', '\\u00f5', '\\u00f8', '\\u01fe', '\\u0298', '\\u047a', '\\u05dd',\n '\\u06dd', '\\u0e4f'],\n p: ['\\u01f7', '\\u048e'],\n q: ['\\u09cd'],\n r: ['\\u00ae', '\\u01a6', '\\u0210', '\\u024c', '\\u0280', '\\u042f'],\n s: ['\\u00a7', '\\u03de', '\\u03df', '\\u03e8'],\n t: ['\\u0141', '\\u0166', '\\u0373'],\n u: ['\\u01b1', '\\u054d'],\n v: ['\\u05d8'],\n w: ['\\u0428', '\\u0460', '\\u047c', '\\u0d70'],\n x: ['\\u04b2', '\\u04fe', '\\u04fc', '\\u04fd'],\n y: ['\\u00a5', '\\u04b0', '\\u04cb'],\n z: ['\\u01b5', '\\u0240'],\n };\n text.forEach(function(c) {\n c = c.toLowerCase();\n var chars = trap[c] || [' '];\n var rand = Math.floor(Math.random() * chars.length);\n if (typeof trap[c] !== 'undefined') {\n result += trap[c][rand];\n } else {\n result += c;\n }\n });\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/zalgo.js\":\n/*!********************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/zalgo.js ***!\n \\********************************************************************************/\n/***/ ((module) => {\n\n// please no\nmodule['exports'] = function zalgo(text, options) {\n text = text || ' he is here ';\n var soul = {\n 'up': [\n '̍', '̎', '̄', '̅',\n '̿', '̑', '̆', '̐',\n '͒', '͗', '͑', '̇',\n '̈', '̊', '͂', '̓',\n '̈', '͊', '͋', '͌',\n '̃', '̂', '̌', '͐',\n '̀', '́', '̋', '̏',\n '̒', '̓', '̔', '̽',\n '̉', 'ͣ', 'ͤ', 'ͥ',\n 'ͦ', 'ͧ', 'ͨ', 'ͩ',\n 'ͪ', 'ͫ', 'ͬ', 'ͭ',\n 'ͮ', 'ͯ', '̾', '͛',\n '͆', '̚',\n ],\n 'down': [\n '̖', '̗', '̘', '̙',\n '̜', '̝', '̞', '̟',\n '̠', '̤', '̥', '̦',\n '̩', '̪', '̫', '̬',\n '̭', '̮', '̯', '̰',\n '̱', '̲', '̳', '̹',\n '̺', '̻', '̼', 'ͅ',\n '͇', '͈', '͉', '͍',\n '͎', '͓', '͔', '͕',\n '͖', '͙', '͚', '̣',\n ],\n 'mid': [\n '̕', '̛', '̀', '́',\n '͘', '̡', '̢', '̧',\n '̨', '̴', '̵', '̶',\n '͜', '͝', '͞',\n '͟', '͠', '͢', '̸',\n '̷', '͡', ' ҉',\n ],\n };\n var all = [].concat(soul.up, soul.down, soul.mid);\n\n function randomNumber(range) {\n var r = Math.floor(Math.random() * range);\n return r;\n }\n\n function isChar(character) {\n var bool = false;\n all.filter(function(i) {\n bool = (i === character);\n });\n return bool;\n }\n\n\n function heComes(text, options) {\n var result = '';\n var counts;\n var l;\n options = options || {};\n options['up'] =\n typeof options['up'] !== 'undefined' ? options['up'] : true;\n options['mid'] =\n typeof options['mid'] !== 'undefined' ? options['mid'] : true;\n options['down'] =\n typeof options['down'] !== 'undefined' ? options['down'] : true;\n options['size'] =\n typeof options['size'] !== 'undefined' ? options['size'] : 'maxi';\n text = text.split('');\n for (l in text) {\n if (isChar(l)) {\n continue;\n }\n result = result + text[l];\n counts = {'up': 0, 'down': 0, 'mid': 0};\n switch (options.size) {\n case 'mini':\n counts.up = randomNumber(8);\n counts.mid = randomNumber(2);\n counts.down = randomNumber(8);\n break;\n case 'maxi':\n counts.up = randomNumber(16) + 3;\n counts.mid = randomNumber(4) + 1;\n counts.down = randomNumber(64) + 3;\n break;\n default:\n counts.up = randomNumber(8) + 1;\n counts.mid = randomNumber(6) / 2;\n counts.down = randomNumber(8) + 1;\n break;\n }\n\n var arr = ['up', 'mid', 'down'];\n for (var d in arr) {\n var index = arr[d];\n for (var i = 0; i <= counts[index]; i++) {\n if (options[index]) {\n result = result + soul[index][randomNumber(soul[index].length)];\n }\n }\n }\n }\n return result;\n }\n // don't summon him\n return heComes(text, options);\n};\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/america.js\":\n/*!********************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/america.js ***!\n \\********************************************************************************/\n/***/ ((module) => {\n\nmodule['exports'] = function(colors) {\n return function(letter, i, exploded) {\n if (letter === ' ') return letter;\n switch (i%3) {\n case 0: return colors.red(letter);\n case 1: return colors.white(letter);\n case 2: return colors.blue(letter);\n }\n };\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/rainbow.js\":\n/*!********************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/rainbow.js ***!\n \\********************************************************************************/\n/***/ ((module) => {\n\nmodule['exports'] = function(colors) {\n // RoY G BiV\n var rainbowColors = ['red', 'yellow', 'green', 'blue', 'magenta'];\n return function(letter, i, exploded) {\n if (letter === ' ') {\n return letter;\n } else {\n return colors[rainbowColors[i++ % rainbowColors.length]](letter);\n }\n };\n};\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/random.js\":\n/*!*******************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/random.js ***!\n \\*******************************************************************************/\n/***/ ((module) => {\n\nmodule['exports'] = function(colors) {\n var available = ['underline', 'inverse', 'grey', 'yellow', 'red', 'green',\n 'blue', 'white', 'cyan', 'magenta', 'brightYellow', 'brightRed',\n 'brightGreen', 'brightBlue', 'brightWhite', 'brightCyan', 'brightMagenta'];\n return function(letter, i, exploded) {\n return letter === ' ' ? letter :\n colors[\n available[Math.round(Math.random() * (available.length - 2))]\n ](letter);\n };\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/zebra.js\":\n/*!******************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/zebra.js ***!\n \\******************************************************************************/\n/***/ ((module) => {\n\nmodule['exports'] = function(colors) {\n return function(letter, i, exploded) {\n return i % 2 === 0 ? letter : colors.inverse(letter);\n };\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/styles.js\":\n/*!**************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/styles.js ***!\n \\**************************************************************************/\n/***/ ((module) => {\n\n/*\nThe MIT License (MIT)\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n\nvar styles = {};\nmodule['exports'] = styles;\n\nvar codes = {\n reset: [0, 0],\n\n bold: [1, 22],\n dim: [2, 22],\n italic: [3, 23],\n underline: [4, 24],\n inverse: [7, 27],\n hidden: [8, 28],\n strikethrough: [9, 29],\n\n black: [30, 39],\n red: [31, 39],\n green: [32, 39],\n yellow: [33, 39],\n blue: [34, 39],\n magenta: [35, 39],\n cyan: [36, 39],\n white: [37, 39],\n gray: [90, 39],\n grey: [90, 39],\n\n brightRed: [91, 39],\n brightGreen: [92, 39],\n brightYellow: [93, 39],\n brightBlue: [94, 39],\n brightMagenta: [95, 39],\n brightCyan: [96, 39],\n brightWhite: [97, 39],\n\n bgBlack: [40, 49],\n bgRed: [41, 49],\n bgGreen: [42, 49],\n bgYellow: [43, 49],\n bgBlue: [44, 49],\n bgMagenta: [45, 49],\n bgCyan: [46, 49],\n bgWhite: [47, 49],\n bgGray: [100, 49],\n bgGrey: [100, 49],\n\n bgBrightRed: [101, 49],\n bgBrightGreen: [102, 49],\n bgBrightYellow: [103, 49],\n bgBrightBlue: [104, 49],\n bgBrightMagenta: [105, 49],\n bgBrightCyan: [106, 49],\n bgBrightWhite: [107, 49],\n\n // legacy styles for colors pre v1.0.0\n blackBG: [40, 49],\n redBG: [41, 49],\n greenBG: [42, 49],\n yellowBG: [43, 49],\n blueBG: [44, 49],\n magentaBG: [45, 49],\n cyanBG: [46, 49],\n whiteBG: [47, 49],\n\n};\n\nObject.keys(codes).forEach(function(key) {\n var val = codes[key];\n var style = styles[key] = [];\n style.open = '\\u001b[' + val[0] + 'm';\n style.close = '\\u001b[' + val[1] + 'm';\n});\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/has-flag.js\":\n/*!***********************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/has-flag.js ***!\n \\***********************************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\n/*\nMIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\n\n\n\nmodule.exports = function(flag, argv) {\n argv = argv || process.argv;\n\n var terminatorPos = argv.indexOf('--');\n var prefix = /^-{1,2}/.test(flag) ? '' : '--';\n var pos = argv.indexOf(prefix + flag);\n\n return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/supports-colors.js\":\n/*!******************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/supports-colors.js ***!\n \\******************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n/*\nThe MIT License (MIT)\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n\n\n\nvar os = __webpack_require__(/*! os */ \"os\");\nvar hasFlag = __webpack_require__(/*! ./has-flag.js */ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/has-flag.js\");\n\nvar env = process.env;\n\nvar forceColor = void 0;\nif (hasFlag('no-color') || hasFlag('no-colors') || hasFlag('color=false')) {\n forceColor = false;\n} else if (hasFlag('color') || hasFlag('colors') || hasFlag('color=true')\n || hasFlag('color=always')) {\n forceColor = true;\n}\nif ('FORCE_COLOR' in env) {\n forceColor = env.FORCE_COLOR.length === 0\n || parseInt(env.FORCE_COLOR, 10) !== 0;\n}\n\nfunction translateLevel(level) {\n if (level === 0) {\n return false;\n }\n\n return {\n level: level,\n hasBasic: true,\n has256: level >= 2,\n has16m: level >= 3,\n };\n}\n\nfunction supportsColor(stream) {\n if (forceColor === false) {\n return 0;\n }\n\n if (hasFlag('color=16m') || hasFlag('color=full')\n || hasFlag('color=truecolor')) {\n return 3;\n }\n\n if (hasFlag('color=256')) {\n return 2;\n }\n\n if (stream && !stream.isTTY && forceColor !== true) {\n return 0;\n }\n\n var min = forceColor ? 1 : 0;\n\n if (process.platform === 'win32') {\n // Node.js 7.5.0 is the first version of Node.js to include a patch to\n // libuv that enables 256 color output on Windows. Anything earlier and it\n // won't work. However, here we target Node.js 8 at minimum as it is an LTS\n // release, and Node.js 7 is not. Windows 10 build 10586 is the first\n // Windows release that supports 256 colors. Windows 10 build 14931 is the\n // first release that supports 16m/TrueColor.\n var osRelease = os.release().split('.');\n if (Number(process.versions.node.split('.')[0]) >= 8\n && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {\n return Number(osRelease[2]) >= 14931 ? 3 : 2;\n }\n\n return 1;\n }\n\n if ('CI' in env) {\n if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(function(sign) {\n return sign in env;\n }) || env.CI_NAME === 'codeship') {\n return 1;\n }\n\n return min;\n }\n\n if ('TEAMCITY_VERSION' in env) {\n return (/^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0\n );\n }\n\n if ('TERM_PROGRAM' in env) {\n var version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n switch (env.TERM_PROGRAM) {\n case 'iTerm.app':\n return version >= 3 ? 3 : 2;\n case 'Hyper':\n return 3;\n case 'Apple_Terminal':\n return 2;\n // No default\n }\n }\n\n if (/-256(color)?$/i.test(env.TERM)) {\n return 2;\n }\n\n if (/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n return 1;\n }\n\n if ('COLORTERM' in env) {\n return 1;\n }\n\n if (env.TERM === 'dumb') {\n return min;\n }\n\n return min;\n}\n\nfunction getSupportLevel(stream) {\n var level = supportsColor(stream);\n return translateLevel(level);\n}\n\nmodule.exports = {\n supportsColor: getSupportLevel,\n stdout: getSupportLevel(process.stdout),\n stderr: getSupportLevel(process.stderr),\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/@colors/colors/safe.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/safe.js ***!\n \\********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n//\n// Remark: Requiring this file will use the \"safe\" colors API,\n// which will not touch String.prototype.\n//\n// var colors = require('colors/safe');\n// colors.red(\"foo\")\n//\n//\nvar colors = __webpack_require__(/*! ./lib/colors */ \"./build/cht-core-4-6/api/node_modules/@colors/colors/lib/colors.js\");\nmodule['exports'] = colors;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/index.js\":\n/*!*********************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/index.js ***!\n \\*********************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar enabled = __webpack_require__(/*! enabled */ \"./build/cht-core-4-6/api/node_modules/enabled/index.js\");\n\n/**\n * Creates a new Adapter.\n *\n * @param {Function} fn Function that returns the value.\n * @returns {Function} The adapter logic.\n * @public\n */\nmodule.exports = function create(fn) {\n return function adapter(namespace) {\n try {\n return enabled(namespace, fn());\n } catch (e) { /* Any failure means that we found nothing */ }\n\n return false;\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/process.env.js\":\n/*!***************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/process.env.js ***!\n \\***************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar adapter = __webpack_require__(/*! ./ */ \"./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/index.js\");\n\n/**\n * Extracts the values from process.env.\n *\n * @type {Function}\n * @public\n */\nmodule.exports = adapter(function processenv() {\n return process.env.DEBUG || process.env.DIAGNOSTICS;\n});\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/diagnostics.js\":\n/*!******************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/diagnostics.js ***!\n \\******************************************************************************/\n/***/ ((module) => {\n\n/**\n * Contains all configured adapters for the given environment.\n *\n * @type {Array}\n * @public\n */\nvar adapters = [];\n\n/**\n * Contains all modifier functions.\n *\n * @typs {Array}\n * @public\n */\nvar modifiers = [];\n\n/**\n * Our default logger.\n *\n * @public\n */\nvar logger = function devnull() {};\n\n/**\n * Register a new adapter that will used to find environments.\n *\n * @param {Function} adapter A function that will return the possible env.\n * @returns {Boolean} Indication of a successful add.\n * @public\n */\nfunction use(adapter) {\n if (~adapters.indexOf(adapter)) return false;\n\n adapters.push(adapter);\n return true;\n}\n\n/**\n * Assign a new log method.\n *\n * @param {Function} custom The log method.\n * @public\n */\nfunction set(custom) {\n logger = custom;\n}\n\n/**\n * Check if the namespace is allowed by any of our adapters.\n *\n * @param {String} namespace The namespace that needs to be enabled\n * @returns {Boolean|Promise} Indication if the namespace is enabled by our adapters.\n * @public\n */\nfunction enabled(namespace) {\n var async = [];\n\n for (var i = 0; i < adapters.length; i++) {\n if (adapters[i].async) {\n async.push(adapters[i]);\n continue;\n }\n\n if (adapters[i](namespace)) return true;\n }\n\n if (!async.length) return false;\n\n //\n // Now that we know that we Async functions, we know we run in an ES6\n // environment and can use all the API's that they offer, in this case\n // we want to return a Promise so that we can `await` in React-Native\n // for an async adapter.\n //\n return new Promise(function pinky(resolve) {\n Promise.all(\n async.map(function prebind(fn) {\n return fn(namespace);\n })\n ).then(function resolved(values) {\n resolve(values.some(Boolean));\n });\n });\n}\n\n/**\n * Add a new message modifier to the debugger.\n *\n * @param {Function} fn Modification function.\n * @returns {Boolean} Indication of a successful add.\n * @public\n */\nfunction modify(fn) {\n if (~modifiers.indexOf(fn)) return false;\n\n modifiers.push(fn);\n return true;\n}\n\n/**\n * Write data to the supplied logger.\n *\n * @param {Object} meta Meta information about the log.\n * @param {Array} args Arguments for console.log.\n * @public\n */\nfunction write() {\n logger.apply(logger, arguments);\n}\n\n/**\n * Process the message with the modifiers.\n *\n * @param {Mixed} message The message to be transformed by modifers.\n * @returns {String} Transformed message.\n * @public\n */\nfunction process(message) {\n for (var i = 0; i < modifiers.length; i++) {\n message = modifiers[i].apply(modifiers[i], arguments);\n }\n\n return message;\n}\n\n/**\n * Introduce options to the logger function.\n *\n * @param {Function} fn Calback function.\n * @param {Object} options Properties to introduce on fn.\n * @returns {Function} The passed function\n * @public\n */\nfunction introduce(fn, options) {\n var has = Object.prototype.hasOwnProperty;\n\n for (var key in options) {\n if (has.call(options, key)) {\n fn[key] = options[key];\n }\n }\n\n return fn;\n}\n\n/**\n * Nope, we're not allowed to write messages.\n *\n * @returns {Boolean} false\n * @public\n */\nfunction nope(options) {\n options.enabled = false;\n options.modify = modify;\n options.set = set;\n options.use = use;\n\n return introduce(function diagnopes() {\n return false;\n }, options);\n}\n\n/**\n * Yep, we're allowed to write debug messages.\n *\n * @param {Object} options The options for the process.\n * @returns {Function} The function that does the logging.\n * @public\n */\nfunction yep(options) {\n /**\n * The function that receives the actual debug information.\n *\n * @returns {Boolean} indication that we're logging.\n * @public\n */\n function diagnostics() {\n var args = Array.prototype.slice.call(arguments, 0);\n\n write.call(write, options, process(args, options));\n return true;\n }\n\n options.enabled = true;\n options.modify = modify;\n options.set = set;\n options.use = use;\n\n return introduce(diagnostics, options);\n}\n\n/**\n * Simple helper function to introduce various of helper methods to our given\n * diagnostics function.\n *\n * @param {Function} diagnostics The diagnostics function.\n * @returns {Function} diagnostics\n * @public\n */\nmodule.exports = function create(diagnostics) {\n diagnostics.introduce = introduce;\n diagnostics.enabled = enabled;\n diagnostics.process = process;\n diagnostics.modify = modify;\n diagnostics.write = write;\n diagnostics.nope = nope;\n diagnostics.yep = yep;\n diagnostics.set = set;\n diagnostics.use = use;\n\n return diagnostics;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/logger/console.js\":\n/*!*********************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/logger/console.js ***!\n \\*********************************************************************************/\n/***/ ((module) => {\n\n/**\n * An idiot proof logger to be used as default. We've wrapped it in a try/catch\n * statement to ensure the environments without the `console` API do not crash\n * as well as an additional fix for ancient browsers like IE8 where the\n * `console.log` API doesn't have an `apply`, so we need to use the Function's\n * apply functionality to apply the arguments.\n *\n * @param {Object} meta Options of the logger.\n * @param {Array} messages The actuall message that needs to be logged.\n * @public\n */\nmodule.exports = function (meta, messages) {\n //\n // So yea. IE8 doesn't have an apply so we need a work around to puke the\n // arguments in place.\n //\n try { Function.prototype.apply.call(console.log, console, messages); }\n catch (e) {}\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/modifiers/namespace-ansi.js\":\n/*!*******************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/modifiers/namespace-ansi.js ***!\n \\*******************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar colorspace = __webpack_require__(/*! colorspace */ \"./build/cht-core-4-6/api/node_modules/colorspace/index.js\");\nvar kuler = __webpack_require__(/*! kuler */ \"./build/cht-core-4-6/api/node_modules/kuler/index.js\");\n\n/**\n * Prefix the messages with a colored namespace.\n *\n * @param {Array} args The messages array that is getting written.\n * @param {Object} options Options for diagnostics.\n * @returns {Array} Altered messages array.\n * @public\n */\nmodule.exports = function ansiModifier(args, options) {\n var namespace = options.namespace;\n var ansi = options.colors !== false\n ? kuler(namespace +':', colorspace(namespace))\n : namespace +':';\n\n args[0] = ansi +' '+ args[0];\n return args;\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/development.js\":\n/*!***********************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/development.js ***!\n \\***********************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar create = __webpack_require__(/*! ../diagnostics */ \"./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/diagnostics.js\");\nvar tty = __webpack_require__(/*! tty */ \"tty\").isatty(1);\n\n/**\n * Create a new diagnostics logger.\n *\n * @param {String} namespace The namespace it should enable.\n * @param {Object} options Additional options.\n * @returns {Function} The logger.\n * @public\n */\nvar diagnostics = create(function dev(namespace, options) {\n options = options || {};\n options.colors = 'colors' in options ? options.colors : tty;\n options.namespace = namespace;\n options.prod = false;\n options.dev = true;\n\n if (!dev.enabled(namespace) && !(options.force || dev.force)) {\n return dev.nope(options);\n }\n \n return dev.yep(options);\n});\n\n//\n// Configure the logger for the given environment.\n//\ndiagnostics.modify(__webpack_require__(/*! ../modifiers/namespace-ansi */ \"./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/modifiers/namespace-ansi.js\"));\ndiagnostics.use(__webpack_require__(/*! ../adapters/process.env */ \"./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/process.env.js\"));\ndiagnostics.set(__webpack_require__(/*! ../logger/console */ \"./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/logger/console.js\"));\n\n//\n// Expose the diagnostics logger.\n//\nmodule.exports = diagnostics;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/index.js\":\n/*!*****************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/index.js ***!\n \\*****************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n//\n// Select the correct build version depending on the environment.\n//\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./development.js */ \"./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/development.js\");\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/asyncify.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/asyncify.js ***!\n \\***************************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = asyncify;\n\nvar _initialParams = __webpack_require__(/*! ./internal/initialParams.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/initialParams.js\");\n\nvar _initialParams2 = _interopRequireDefault(_initialParams);\n\nvar _setImmediate = __webpack_require__(/*! ./internal/setImmediate.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/setImmediate.js\");\n\nvar _setImmediate2 = _interopRequireDefault(_setImmediate);\n\nvar _wrapAsync = __webpack_require__(/*! ./internal/wrapAsync.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Take a sync function and make it async, passing its return value to a\n * callback. This is useful for plugging sync functions into a waterfall,\n * series, or other async functions. Any arguments passed to the generated\n * function will be passed to the wrapped function (except for the final\n * callback argument). Errors thrown will be passed to the callback.\n *\n * If the function passed to `asyncify` returns a Promise, that promises's\n * resolved/rejected state will be used to call the callback, rather than simply\n * the synchronous return value.\n *\n * This also means you can asyncify ES2017 `async` functions.\n *\n * @name asyncify\n * @static\n * @memberOf module:Utils\n * @method\n * @alias wrapSync\n * @category Util\n * @param {Function} func - The synchronous function, or Promise-returning\n * function to convert to an {@link AsyncFunction}.\n * @returns {AsyncFunction} An asynchronous wrapper of the `func`. To be\n * invoked with `(args..., callback)`.\n * @example\n *\n * // passing a regular synchronous function\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(JSON.parse),\n * function (data, next) {\n * // data is the result of parsing the text.\n * // If there was a parsing error, it would have been caught.\n * }\n * ], callback);\n *\n * // passing a function returning a promise\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(function (contents) {\n * return db.model.create(contents);\n * }),\n * function (model, next) {\n * // `model` is the instantiated model object.\n * // If there was an error, this function would be skipped.\n * }\n * ], callback);\n *\n * // es2017 example, though `asyncify` is not needed if your JS environment\n * // supports async functions out of the box\n * var q = async.queue(async.asyncify(async function(file) {\n * var intermediateStep = await processFile(file);\n * return await somePromise(intermediateStep)\n * }));\n *\n * q.push(files);\n */\nfunction asyncify(func) {\n if ((0, _wrapAsync.isAsync)(func)) {\n return function (...args /*, callback*/) {\n const callback = args.pop();\n const promise = func.apply(this, args);\n return handlePromise(promise, callback);\n };\n }\n\n return (0, _initialParams2.default)(function (args, callback) {\n var result;\n try {\n result = func.apply(this, args);\n } catch (e) {\n return callback(e);\n }\n // if result is Promise object\n if (result && typeof result.then === 'function') {\n return handlePromise(result, callback);\n } else {\n callback(null, result);\n }\n });\n}\n\nfunction handlePromise(promise, callback) {\n return promise.then(value => {\n invokeCallback(callback, null, value);\n }, err => {\n invokeCallback(callback, err && (err instanceof Error || err.message) ? err : new Error(err));\n });\n}\n\nfunction invokeCallback(callback, error, value) {\n try {\n callback(error, value);\n } catch (err) {\n (0, _setImmediate2.default)(e => {\n throw e;\n }, err);\n }\n}\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/eachOf.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/eachOf.js ***!\n \\*************************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _isArrayLike = __webpack_require__(/*! ./internal/isArrayLike.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/isArrayLike.js\");\n\nvar _isArrayLike2 = _interopRequireDefault(_isArrayLike);\n\nvar _breakLoop = __webpack_require__(/*! ./internal/breakLoop.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/breakLoop.js\");\n\nvar _breakLoop2 = _interopRequireDefault(_breakLoop);\n\nvar _eachOfLimit = __webpack_require__(/*! ./eachOfLimit.js */ \"./build/cht-core-4-6/api/node_modules/async/eachOfLimit.js\");\n\nvar _eachOfLimit2 = _interopRequireDefault(_eachOfLimit);\n\nvar _once = __webpack_require__(/*! ./internal/once.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/once.js\");\n\nvar _once2 = _interopRequireDefault(_once);\n\nvar _onlyOnce = __webpack_require__(/*! ./internal/onlyOnce.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/onlyOnce.js\");\n\nvar _onlyOnce2 = _interopRequireDefault(_onlyOnce);\n\nvar _wrapAsync = __webpack_require__(/*! ./internal/wrapAsync.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js\");\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nvar _awaitify = __webpack_require__(/*! ./internal/awaitify.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js\");\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// eachOf implementation optimized for array-likes\nfunction eachOfArrayLike(coll, iteratee, callback) {\n callback = (0, _once2.default)(callback);\n var index = 0,\n completed = 0,\n { length } = coll,\n canceled = false;\n if (length === 0) {\n callback(null);\n }\n\n function iteratorCallback(err, value) {\n if (err === false) {\n canceled = true;\n }\n if (canceled === true) return;\n if (err) {\n callback(err);\n } else if (++completed === length || value === _breakLoop2.default) {\n callback(null);\n }\n }\n\n for (; index < length; index++) {\n iteratee(coll[index], index, (0, _onlyOnce2.default)(iteratorCallback));\n }\n}\n\n// a generic version of eachOf which can handle array, object, and iterator cases.\nfunction eachOfGeneric(coll, iteratee, callback) {\n return (0, _eachOfLimit2.default)(coll, Infinity, iteratee, callback);\n}\n\n/**\n * Like [`each`]{@link module:Collections.each}, except that it passes the key (or index) as the second argument\n * to the iteratee.\n *\n * @name eachOf\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEachOf\n * @category Collection\n * @see [async.each]{@link module:Collections.each}\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each\n * item in `coll`.\n * The `key` is the item's key, or index in the case of an array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n * @example\n *\n * // dev.json is a file containing a valid json object config for dev environment\n * // dev.json is a file containing a valid json object config for test environment\n * // prod.json is a file containing a valid json object config for prod environment\n * // invalid.json is a file with a malformed json object\n *\n * let configs = {}; //global variable\n * let validConfigFileMap = {dev: 'dev.json', test: 'test.json', prod: 'prod.json'};\n * let invalidConfigFileMap = {dev: 'dev.json', test: 'test.json', invalid: 'invalid.json'};\n *\n * // asynchronous function that reads a json file and parses the contents as json object\n * function parseFile(file, key, callback) {\n * fs.readFile(file, \"utf8\", function(err, data) {\n * if (err) return calback(err);\n * try {\n * configs[key] = JSON.parse(data);\n * } catch (e) {\n * return callback(e);\n * }\n * callback();\n * });\n * }\n *\n * // Using callbacks\n * async.forEachOf(validConfigFileMap, parseFile, function (err) {\n * if (err) {\n * console.error(err);\n * } else {\n * console.log(configs);\n * // configs is now a map of JSON data, e.g.\n * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json}\n * }\n * });\n *\n * //Error handing\n * async.forEachOf(invalidConfigFileMap, parseFile, function (err) {\n * if (err) {\n * console.error(err);\n * // JSON parse error exception\n * } else {\n * console.log(configs);\n * }\n * });\n *\n * // Using Promises\n * async.forEachOf(validConfigFileMap, parseFile)\n * .then( () => {\n * console.log(configs);\n * // configs is now a map of JSON data, e.g.\n * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json}\n * }).catch( err => {\n * console.error(err);\n * });\n *\n * //Error handing\n * async.forEachOf(invalidConfigFileMap, parseFile)\n * .then( () => {\n * console.log(configs);\n * }).catch( err => {\n * console.error(err);\n * // JSON parse error exception\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.forEachOf(validConfigFileMap, parseFile);\n * console.log(configs);\n * // configs is now a map of JSON data, e.g.\n * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json}\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * //Error handing\n * async () => {\n * try {\n * let result = await async.forEachOf(invalidConfigFileMap, parseFile);\n * console.log(configs);\n * }\n * catch (err) {\n * console.log(err);\n * // JSON parse error exception\n * }\n * }\n *\n */\nfunction eachOf(coll, iteratee, callback) {\n var eachOfImplementation = (0, _isArrayLike2.default)(coll) ? eachOfArrayLike : eachOfGeneric;\n return eachOfImplementation(coll, (0, _wrapAsync2.default)(iteratee), callback);\n}\n\nexports.default = (0, _awaitify2.default)(eachOf, 3);\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/eachOfLimit.js\":\n/*!******************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/eachOfLimit.js ***!\n \\******************************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _eachOfLimit2 = __webpack_require__(/*! ./internal/eachOfLimit.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/eachOfLimit.js\");\n\nvar _eachOfLimit3 = _interopRequireDefault(_eachOfLimit2);\n\nvar _wrapAsync = __webpack_require__(/*! ./internal/wrapAsync.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js\");\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nvar _awaitify = __webpack_require__(/*! ./internal/awaitify.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js\");\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The same as [`eachOf`]{@link module:Collections.eachOf} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name eachOfLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.eachOf]{@link module:Collections.eachOf}\n * @alias forEachOfLimit\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n */\nfunction eachOfLimit(coll, limit, iteratee, callback) {\n return (0, _eachOfLimit3.default)(limit)(coll, (0, _wrapAsync2.default)(iteratee), callback);\n}\n\nexports.default = (0, _awaitify2.default)(eachOfLimit, 4);\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/eachOfSeries.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/eachOfSeries.js ***!\n \\*******************************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _eachOfLimit = __webpack_require__(/*! ./eachOfLimit.js */ \"./build/cht-core-4-6/api/node_modules/async/eachOfLimit.js\");\n\nvar _eachOfLimit2 = _interopRequireDefault(_eachOfLimit);\n\nvar _awaitify = __webpack_require__(/*! ./internal/awaitify.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js\");\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The same as [`eachOf`]{@link module:Collections.eachOf} but runs only a single async operation at a time.\n *\n * @name eachOfSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.eachOf]{@link module:Collections.eachOf}\n * @alias forEachOfSeries\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n */\nfunction eachOfSeries(coll, iteratee, callback) {\n return (0, _eachOfLimit2.default)(coll, 1, iteratee, callback);\n}\nexports.default = (0, _awaitify2.default)(eachOfSeries, 3);\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/forEach.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/forEach.js ***!\n \\**************************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _eachOf = __webpack_require__(/*! ./eachOf.js */ \"./build/cht-core-4-6/api/node_modules/async/eachOf.js\");\n\nvar _eachOf2 = _interopRequireDefault(_eachOf);\n\nvar _withoutIndex = __webpack_require__(/*! ./internal/withoutIndex.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/withoutIndex.js\");\n\nvar _withoutIndex2 = _interopRequireDefault(_withoutIndex);\n\nvar _wrapAsync = __webpack_require__(/*! ./internal/wrapAsync.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js\");\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nvar _awaitify = __webpack_require__(/*! ./internal/awaitify.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js\");\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Applies the function `iteratee` to each item in `coll`, in parallel.\n * The `iteratee` is called with an item from the list, and a callback for when\n * it has finished. If the `iteratee` passes an error to its `callback`, the\n * main `callback` (for the `each` function) is immediately called with the\n * error.\n *\n * Note, that since this function applies `iteratee` to each item in parallel,\n * there is no guarantee that the iteratee functions will complete in order.\n *\n * @name each\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEach\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to\n * each item in `coll`. Invoked with (item, callback).\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOf`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n * // dir4 does not exist\n *\n * const fileList = [ 'dir1/file2.txt', 'dir2/file3.txt', 'dir/file5.txt'];\n * const withMissingFileList = ['dir1/file1.txt', 'dir4/file2.txt'];\n *\n * // asynchronous function that deletes a file\n * const deleteFile = function(file, callback) {\n * fs.unlink(file, callback);\n * };\n *\n * // Using callbacks\n * async.each(fileList, deleteFile, function(err) {\n * if( err ) {\n * console.log(err);\n * } else {\n * console.log('All files have been deleted successfully');\n * }\n * });\n *\n * // Error Handling\n * async.each(withMissingFileList, deleteFile, function(err){\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4/file2.txt does not exist\n * // dir1/file1.txt could have been deleted\n * });\n *\n * // Using Promises\n * async.each(fileList, deleteFile)\n * .then( () => {\n * console.log('All files have been deleted successfully');\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Error Handling\n * async.each(fileList, deleteFile)\n * .then( () => {\n * console.log('All files have been deleted successfully');\n * }).catch( err => {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4/file2.txt does not exist\n * // dir1/file1.txt could have been deleted\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * await async.each(files, deleteFile);\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // Error Handling\n * async () => {\n * try {\n * await async.each(withMissingFileList, deleteFile);\n * }\n * catch (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4/file2.txt does not exist\n * // dir1/file1.txt could have been deleted\n * }\n * }\n *\n */\nfunction eachLimit(coll, iteratee, callback) {\n return (0, _eachOf2.default)(coll, (0, _withoutIndex2.default)((0, _wrapAsync2.default)(iteratee)), callback);\n}\n\nexports.default = (0, _awaitify2.default)(eachLimit, 3);\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/internal/asyncEachOfLimit.js\":\n/*!********************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/internal/asyncEachOfLimit.js ***!\n \\********************************************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = asyncEachOfLimit;\n\nvar _breakLoop = __webpack_require__(/*! ./breakLoop.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/breakLoop.js\");\n\nvar _breakLoop2 = _interopRequireDefault(_breakLoop);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// for async generators\nfunction asyncEachOfLimit(generator, limit, iteratee, callback) {\n let done = false;\n let canceled = false;\n let awaiting = false;\n let running = 0;\n let idx = 0;\n\n function replenish() {\n //console.log('replenish')\n if (running >= limit || awaiting || done) return;\n //console.log('replenish awaiting')\n awaiting = true;\n generator.next().then(({ value, done: iterDone }) => {\n //console.log('got value', value)\n if (canceled || done) return;\n awaiting = false;\n if (iterDone) {\n done = true;\n if (running <= 0) {\n //console.log('done nextCb')\n callback(null);\n }\n return;\n }\n running++;\n iteratee(value, idx, iterateeCallback);\n idx++;\n replenish();\n }).catch(handleError);\n }\n\n function iterateeCallback(err, result) {\n //console.log('iterateeCallback')\n running -= 1;\n if (canceled) return;\n if (err) return handleError(err);\n\n if (err === false) {\n done = true;\n canceled = true;\n return;\n }\n\n if (result === _breakLoop2.default || done && running <= 0) {\n done = true;\n //console.log('done iterCb')\n return callback(null);\n }\n replenish();\n }\n\n function handleError(err) {\n if (canceled) return;\n awaiting = false;\n done = true;\n callback(err);\n }\n\n replenish();\n}\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js ***!\n \\************************************************************************/\n/***/ ((module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = awaitify;\n// conditionally promisify a function.\n// only return a promise if a callback is omitted\nfunction awaitify(asyncFn, arity) {\n if (!arity) arity = asyncFn.length;\n if (!arity) throw new Error('arity is undefined');\n function awaitable(...args) {\n if (typeof args[arity - 1] === 'function') {\n return asyncFn.apply(this, args);\n }\n\n return new Promise((resolve, reject) => {\n args[arity - 1] = (err, ...cbArgs) => {\n if (err) return reject(err);\n resolve(cbArgs.length > 1 ? cbArgs : cbArgs[0]);\n };\n asyncFn.apply(this, args);\n });\n }\n\n return awaitable;\n}\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/internal/breakLoop.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/internal/breakLoop.js ***!\n \\*************************************************************************/\n/***/ ((module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n// A temporary value used to identify if the loop should be broken.\n// See #1064, #1293\nconst breakLoop = {};\nexports.default = breakLoop;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/internal/eachOfLimit.js\":\n/*!***************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/internal/eachOfLimit.js ***!\n \\***************************************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _once = __webpack_require__(/*! ./once.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/once.js\");\n\nvar _once2 = _interopRequireDefault(_once);\n\nvar _iterator = __webpack_require__(/*! ./iterator.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/iterator.js\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _onlyOnce = __webpack_require__(/*! ./onlyOnce.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/onlyOnce.js\");\n\nvar _onlyOnce2 = _interopRequireDefault(_onlyOnce);\n\nvar _wrapAsync = __webpack_require__(/*! ./wrapAsync.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js\");\n\nvar _asyncEachOfLimit = __webpack_require__(/*! ./asyncEachOfLimit.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/asyncEachOfLimit.js\");\n\nvar _asyncEachOfLimit2 = _interopRequireDefault(_asyncEachOfLimit);\n\nvar _breakLoop = __webpack_require__(/*! ./breakLoop.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/breakLoop.js\");\n\nvar _breakLoop2 = _interopRequireDefault(_breakLoop);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = limit => {\n return (obj, iteratee, callback) => {\n callback = (0, _once2.default)(callback);\n if (limit <= 0) {\n throw new RangeError('concurrency limit cannot be less than 1');\n }\n if (!obj) {\n return callback(null);\n }\n if ((0, _wrapAsync.isAsyncGenerator)(obj)) {\n return (0, _asyncEachOfLimit2.default)(obj, limit, iteratee, callback);\n }\n if ((0, _wrapAsync.isAsyncIterable)(obj)) {\n return (0, _asyncEachOfLimit2.default)(obj[Symbol.asyncIterator](), limit, iteratee, callback);\n }\n var nextElem = (0, _iterator2.default)(obj);\n var done = false;\n var canceled = false;\n var running = 0;\n var looping = false;\n\n function iterateeCallback(err, value) {\n if (canceled) return;\n running -= 1;\n if (err) {\n done = true;\n callback(err);\n } else if (err === false) {\n done = true;\n canceled = true;\n } else if (value === _breakLoop2.default || done && running <= 0) {\n done = true;\n return callback(null);\n } else if (!looping) {\n replenish();\n }\n }\n\n function replenish() {\n looping = true;\n while (running < limit && !done) {\n var elem = nextElem();\n if (elem === null) {\n done = true;\n if (running <= 0) {\n callback(null);\n }\n return;\n }\n running += 1;\n iteratee(elem.value, elem.key, (0, _onlyOnce2.default)(iterateeCallback));\n }\n looping = false;\n }\n\n replenish();\n };\n};\n\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/internal/getIterator.js\":\n/*!***************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/internal/getIterator.js ***!\n \\***************************************************************************/\n/***/ ((module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nexports.default = function (coll) {\n return coll[Symbol.iterator] && coll[Symbol.iterator]();\n};\n\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/internal/initialParams.js\":\n/*!*****************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/internal/initialParams.js ***!\n \\*****************************************************************************/\n/***/ ((module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nexports.default = function (fn) {\n return function (...args /*, callback*/) {\n var callback = args.pop();\n return fn.call(this, args, callback);\n };\n};\n\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/internal/isArrayLike.js\":\n/*!***************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/internal/isArrayLike.js ***!\n \\***************************************************************************/\n/***/ ((module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = isArrayLike;\nfunction isArrayLike(value) {\n return value && typeof value.length === 'number' && value.length >= 0 && value.length % 1 === 0;\n}\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/internal/iterator.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/internal/iterator.js ***!\n \\************************************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = createIterator;\n\nvar _isArrayLike = __webpack_require__(/*! ./isArrayLike.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/isArrayLike.js\");\n\nvar _isArrayLike2 = _interopRequireDefault(_isArrayLike);\n\nvar _getIterator = __webpack_require__(/*! ./getIterator.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/getIterator.js\");\n\nvar _getIterator2 = _interopRequireDefault(_getIterator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createArrayIterator(coll) {\n var i = -1;\n var len = coll.length;\n return function next() {\n return ++i < len ? { value: coll[i], key: i } : null;\n };\n}\n\nfunction createES2015Iterator(iterator) {\n var i = -1;\n return function next() {\n var item = iterator.next();\n if (item.done) return null;\n i++;\n return { value: item.value, key: i };\n };\n}\n\nfunction createObjectIterator(obj) {\n var okeys = obj ? Object.keys(obj) : [];\n var i = -1;\n var len = okeys.length;\n return function next() {\n var key = okeys[++i];\n if (key === '__proto__') {\n return next();\n }\n return i < len ? { value: obj[key], key } : null;\n };\n}\n\nfunction createIterator(coll) {\n if ((0, _isArrayLike2.default)(coll)) {\n return createArrayIterator(coll);\n }\n\n var iterator = (0, _getIterator2.default)(coll);\n return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll);\n}\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/internal/once.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/internal/once.js ***!\n \\********************************************************************/\n/***/ ((module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = once;\nfunction once(fn) {\n function wrapper(...args) {\n if (fn === null) return;\n var callFn = fn;\n fn = null;\n callFn.apply(this, args);\n }\n Object.assign(wrapper, fn);\n return wrapper;\n}\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/internal/onlyOnce.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/internal/onlyOnce.js ***!\n \\************************************************************************/\n/***/ ((module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = onlyOnce;\nfunction onlyOnce(fn) {\n return function (...args) {\n if (fn === null) throw new Error(\"Callback was already called.\");\n var callFn = fn;\n fn = null;\n callFn.apply(this, args);\n };\n}\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/internal/parallel.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/internal/parallel.js ***!\n \\************************************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _isArrayLike = __webpack_require__(/*! ./isArrayLike.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/isArrayLike.js\");\n\nvar _isArrayLike2 = _interopRequireDefault(_isArrayLike);\n\nvar _wrapAsync = __webpack_require__(/*! ./wrapAsync.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js\");\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nvar _awaitify = __webpack_require__(/*! ./awaitify.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js\");\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = (0, _awaitify2.default)((eachfn, tasks, callback) => {\n var results = (0, _isArrayLike2.default)(tasks) ? [] : {};\n\n eachfn(tasks, (task, key, taskCb) => {\n (0, _wrapAsync2.default)(task)((err, ...result) => {\n if (result.length < 2) {\n [result] = result;\n }\n results[key] = result;\n taskCb(err);\n });\n }, err => callback(err, results));\n}, 3);\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/internal/setImmediate.js\":\n/*!****************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/internal/setImmediate.js ***!\n \\****************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.fallback = fallback;\nexports.wrap = wrap;\n/* istanbul ignore file */\n\nvar hasQueueMicrotask = exports.hasQueueMicrotask = typeof queueMicrotask === 'function' && queueMicrotask;\nvar hasSetImmediate = exports.hasSetImmediate = typeof setImmediate === 'function' && setImmediate;\nvar hasNextTick = exports.hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function';\n\nfunction fallback(fn) {\n setTimeout(fn, 0);\n}\n\nfunction wrap(defer) {\n return (fn, ...args) => defer(() => fn(...args));\n}\n\nvar _defer;\n\nif (hasQueueMicrotask) {\n _defer = queueMicrotask;\n} else if (hasSetImmediate) {\n _defer = setImmediate;\n} else if (hasNextTick) {\n _defer = process.nextTick;\n} else {\n _defer = fallback;\n}\n\nexports.default = wrap(_defer);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/internal/withoutIndex.js\":\n/*!****************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/internal/withoutIndex.js ***!\n \\****************************************************************************/\n/***/ ((module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = _withoutIndex;\nfunction _withoutIndex(iteratee) {\n return (value, index, callback) => iteratee(value, callback);\n}\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js ***!\n \\*************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isAsyncIterable = exports.isAsyncGenerator = exports.isAsync = undefined;\n\nvar _asyncify = __webpack_require__(/*! ../asyncify.js */ \"./build/cht-core-4-6/api/node_modules/async/asyncify.js\");\n\nvar _asyncify2 = _interopRequireDefault(_asyncify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isAsync(fn) {\n return fn[Symbol.toStringTag] === 'AsyncFunction';\n}\n\nfunction isAsyncGenerator(fn) {\n return fn[Symbol.toStringTag] === 'AsyncGenerator';\n}\n\nfunction isAsyncIterable(obj) {\n return typeof obj[Symbol.asyncIterator] === 'function';\n}\n\nfunction wrapAsync(asyncFn) {\n if (typeof asyncFn !== 'function') throw new Error('expected a function');\n return isAsync(asyncFn) ? (0, _asyncify2.default)(asyncFn) : asyncFn;\n}\n\nexports.default = wrapAsync;\nexports.isAsync = isAsync;\nexports.isAsyncGenerator = isAsyncGenerator;\nexports.isAsyncIterable = isAsyncIterable;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/async/series.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/async/series.js ***!\n \\*************************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = series;\n\nvar _parallel2 = __webpack_require__(/*! ./internal/parallel.js */ \"./build/cht-core-4-6/api/node_modules/async/internal/parallel.js\");\n\nvar _parallel3 = _interopRequireDefault(_parallel2);\n\nvar _eachOfSeries = __webpack_require__(/*! ./eachOfSeries.js */ \"./build/cht-core-4-6/api/node_modules/async/eachOfSeries.js\");\n\nvar _eachOfSeries2 = _interopRequireDefault(_eachOfSeries);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Run the functions in the `tasks` collection in series, each one running once\n * the previous function has completed. If any functions in the series pass an\n * error to its callback, no more functions are run, and `callback` is\n * immediately called with the value of the error. Otherwise, `callback`\n * receives an array of results when `tasks` have completed.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function, and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.series}.\n *\n * **Note** that while many implementations preserve the order of object\n * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)\n * explicitly states that\n *\n * > The mechanics and order of enumerating the properties is not specified.\n *\n * So if you rely on the order in which your series of functions are executed,\n * and want this to work on all platforms, consider using an array.\n *\n * @name series\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|AsyncIterable|Object} tasks - A collection containing\n * [async functions]{@link AsyncFunction} to run in series.\n * Each function can complete with any number of optional `result` values.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This function gets a results array (or object)\n * containing all the result arguments passed to the `task` callbacks. Invoked\n * with (err, result).\n * @return {Promise} a promise, if no callback is passed\n * @example\n *\n * //Using Callbacks\n * async.series([\n * function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 'two');\n * }, 100);\n * }\n * ], function(err, results) {\n * console.log(results);\n * // results is equal to ['one','two']\n * });\n *\n * // an example using objects instead of arrays\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * });\n *\n * //Using Promises\n * async.series([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ]).then(results => {\n * console.log(results);\n * // results is equal to ['one','two']\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * // an example using an object instead of an array\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 2);\n * }, 100);\n * }\n * }).then(results => {\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * //Using async/await\n * async () => {\n * try {\n * let results = await async.series([\n * function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 'two');\n * }, 100);\n * }\n * ]);\n * console.log(results);\n * // results is equal to ['one','two']\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // an example using an object instead of an array\n * async () => {\n * try {\n * let results = await async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 2);\n * }, 100);\n * }\n * });\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\nfunction series(tasks, callback) {\n return (0, _parallel3.default)(_eachOfSeries2.default, tasks, callback);\n}\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/basic-auth/index.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/basic-auth/index.js ***!\n \\*****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n/*!\n * basic-auth\n * Copyright(c) 2013 TJ Holowaychuk\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./build/cht-core-4-6/api/node_modules/safe-buffer/index.js\").Buffer\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = auth\nmodule.exports.parse = parse\n\n/**\n * RegExp for basic auth credentials\n *\n * credentials = auth-scheme 1*SP token68\n * auth-scheme = \"Basic\" ; case insensitive\n * token68 = 1*( ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\" / \"+\" / \"/\" ) *\"=\"\n * @private\n */\n\nvar CREDENTIALS_REGEXP = /^ *(?:[Bb][Aa][Ss][Ii][Cc]) +([A-Za-z0-9._~+/-]+=*) *$/\n\n/**\n * RegExp for basic auth user/pass\n *\n * user-pass = userid \":\" password\n * userid = *\n * password = *TEXT\n * @private\n */\n\nvar USER_PASS_REGEXP = /^([^:]*):(.*)$/\n\n/**\n * Parse the Authorization header field of a request.\n *\n * @param {object} req\n * @return {object} with .name and .pass\n * @public\n */\n\nfunction auth (req) {\n if (!req) {\n throw new TypeError('argument req is required')\n }\n\n if (typeof req !== 'object') {\n throw new TypeError('argument req is required to be an object')\n }\n\n // get header\n var header = getAuthorization(req)\n\n // parse header\n return parse(header)\n}\n\n/**\n * Decode base64 string.\n * @private\n */\n\nfunction decodeBase64 (str) {\n return Buffer.from(str, 'base64').toString()\n}\n\n/**\n * Get the Authorization header from request object.\n * @private\n */\n\nfunction getAuthorization (req) {\n if (!req.headers || typeof req.headers !== 'object') {\n throw new TypeError('argument req is required to have headers property')\n }\n\n return req.headers.authorization\n}\n\n/**\n * Parse basic auth to object.\n *\n * @param {string} string\n * @return {object}\n * @public\n */\n\nfunction parse (string) {\n if (typeof string !== 'string') {\n return undefined\n }\n\n // parse header\n var match = CREDENTIALS_REGEXP.exec(string)\n\n if (!match) {\n return undefined\n }\n\n // decode user pass\n var userPass = USER_PASS_REGEXP.exec(decodeBase64(match[1]))\n\n if (!userPass) {\n return undefined\n }\n\n // return credentials object\n return new Credentials(userPass[1], userPass[2])\n}\n\n/**\n * Object to represent user credentials.\n * @private\n */\n\nfunction Credentials (name, pass) {\n this.name = name\n this.pass = pass\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/boolbase/index.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/boolbase/index.js ***!\n \\***************************************************************/\n/***/ ((module) => {\n\nmodule.exports = {\n\ttrueFunc: function trueFunc(){\n\t\treturn true;\n\t},\n\tfalseFunc: function falseFunc(){\n\t\treturn false;\n\t}\n};\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/color-convert/conversions.js\":\n/*!**************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/color-convert/conversions.js ***!\n \\**************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* MIT license */\nvar cssKeywords = __webpack_require__(/*! color-name */ \"./build/cht-core-4-6/api/node_modules/color-name/index.js\");\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/color-convert/index.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/color-convert/index.js ***!\n \\********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar conversions = __webpack_require__(/*! ./conversions */ \"./build/cht-core-4-6/api/node_modules/color-convert/conversions.js\");\nvar route = __webpack_require__(/*! ./route */ \"./build/cht-core-4-6/api/node_modules/color-convert/route.js\");\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/color-convert/route.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/color-convert/route.js ***!\n \\********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar conversions = __webpack_require__(/*! ./conversions */ \"./build/cht-core-4-6/api/node_modules/color-convert/conversions.js\");\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/color-name/index.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/color-name/index.js ***!\n \\*****************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\n\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/color-string/index.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/color-string/index.js ***!\n \\*******************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* MIT license */\nvar colorNames = __webpack_require__(/*! color-name */ \"./build/cht-core-4-6/api/node_modules/color-name/index.js\");\nvar swizzle = __webpack_require__(/*! simple-swizzle */ \"./build/cht-core-4-6/api/node_modules/simple-swizzle/index.js\");\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/color/index.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/color/index.js ***!\n \\************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nvar colorString = __webpack_require__(/*! color-string */ \"./build/cht-core-4-6/api/node_modules/color-string/index.js\");\nvar convert = __webpack_require__(/*! color-convert */ \"./build/cht-core-4-6/api/node_modules/color-convert/index.js\");\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (obj == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/colorspace/index.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/colorspace/index.js ***!\n \\*****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nvar color = __webpack_require__(/*! color */ \"./build/cht-core-4-6/api/node_modules/color/index.js\")\n , hex = __webpack_require__(/*! text-hex */ \"./build/cht-core-4-6/api/node_modules/text-hex/index.js\");\n\n/**\n * Generate a color for a given name. But be reasonably smart about it by\n * understanding name spaces and coloring each namespace a bit lighter so they\n * still have the same base color as the root.\n *\n * @param {string} namespace The namespace\n * @param {string} [delimiter] The delimiter\n * @returns {string} color\n */\nmodule.exports = function colorspace(namespace, delimiter) {\n var split = namespace.split(delimiter || ':');\n var base = hex(split[0]);\n\n if (!split.length) return base;\n\n for (var i = 0, l = split.length - 1; i < l; i++) {\n base = color(base)\n .mix(color(hex(split[i + 1])))\n .saturate(1)\n .hex();\n }\n\n return base;\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/css-select/lib/attributes.js\":\n/*!**************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/attributes.js ***!\n \\**************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.attributeRules = void 0;\nvar boolbase_1 = __webpack_require__(/*! boolbase */ \"./build/cht-core-4-6/api/node_modules/boolbase/index.js\");\n/**\n * All reserved characters in a regex, used for escaping.\n *\n * Taken from XRegExp, (c) 2007-2020 Steven Levithan under the MIT license\n * https://github.com/slevithan/xregexp/blob/95eeebeb8fac8754d54eafe2b4743661ac1cf028/src/xregexp.js#L794\n */\nvar reChars = /[-[\\]{}()*+?.,\\\\^$|#\\s]/g;\nfunction escapeRegex(value) {\n return value.replace(reChars, \"\\\\$&\");\n}\n/**\n * Attributes that are case-insensitive in HTML.\n *\n * @private\n * @see https://html.spec.whatwg.org/multipage/semantics-other.html#case-sensitivity-of-selectors\n */\nvar caseInsensitiveAttributes = new Set([\n \"accept\",\n \"accept-charset\",\n \"align\",\n \"alink\",\n \"axis\",\n \"bgcolor\",\n \"charset\",\n \"checked\",\n \"clear\",\n \"codetype\",\n \"color\",\n \"compact\",\n \"declare\",\n \"defer\",\n \"dir\",\n \"direction\",\n \"disabled\",\n \"enctype\",\n \"face\",\n \"frame\",\n \"hreflang\",\n \"http-equiv\",\n \"lang\",\n \"language\",\n \"link\",\n \"media\",\n \"method\",\n \"multiple\",\n \"nohref\",\n \"noresize\",\n \"noshade\",\n \"nowrap\",\n \"readonly\",\n \"rel\",\n \"rev\",\n \"rules\",\n \"scope\",\n \"scrolling\",\n \"selected\",\n \"shape\",\n \"target\",\n \"text\",\n \"type\",\n \"valign\",\n \"valuetype\",\n \"vlink\",\n]);\nfunction shouldIgnoreCase(selector, options) {\n return typeof selector.ignoreCase === \"boolean\"\n ? selector.ignoreCase\n : selector.ignoreCase === \"quirks\"\n ? !!options.quirksMode\n : !options.xmlMode && caseInsensitiveAttributes.has(selector.name);\n}\n/**\n * Attribute selectors\n */\nexports.attributeRules = {\n equals: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length === value.length &&\n attr.toLowerCase() === value &&\n next(elem));\n };\n }\n return function (elem) {\n return adapter.getAttributeValue(elem, name) === value && next(elem);\n };\n },\n hyphen: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n var len = value.length;\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function hyphenIC(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n (attr.length === len || attr.charAt(len) === \"-\") &&\n attr.substr(0, len).toLowerCase() === value &&\n next(elem));\n };\n }\n return function hyphen(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n (attr.length === len || attr.charAt(len) === \"-\") &&\n attr.substr(0, len) === value &&\n next(elem));\n };\n },\n element: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name, value = data.value;\n if (/\\s/.test(value)) {\n return boolbase_1.falseFunc;\n }\n var regex = new RegExp(\"(?:^|\\\\s)\".concat(escapeRegex(value), \"(?:$|\\\\s)\"), shouldIgnoreCase(data, options) ? \"i\" : \"\");\n return function element(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length >= value.length &&\n regex.test(attr) &&\n next(elem));\n };\n },\n exists: function (next, _a, _b) {\n var name = _a.name;\n var adapter = _b.adapter;\n return function (elem) { return adapter.hasAttrib(elem, name) && next(elem); };\n },\n start: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n var len = value.length;\n if (len === 0) {\n return boolbase_1.falseFunc;\n }\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length >= len &&\n attr.substr(0, len).toLowerCase() === value &&\n next(elem));\n };\n }\n return function (elem) {\n var _a;\n return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.startsWith(value)) &&\n next(elem);\n };\n },\n end: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n var len = -value.length;\n if (len === 0) {\n return boolbase_1.falseFunc;\n }\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var _a;\n return ((_a = adapter\n .getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.substr(len).toLowerCase()) === value && next(elem);\n };\n }\n return function (elem) {\n var _a;\n return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.endsWith(value)) &&\n next(elem);\n };\n },\n any: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name, value = data.value;\n if (value === \"\") {\n return boolbase_1.falseFunc;\n }\n if (shouldIgnoreCase(data, options)) {\n var regex_1 = new RegExp(escapeRegex(value), \"i\");\n return function anyIC(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length >= value.length &&\n regex_1.test(attr) &&\n next(elem));\n };\n }\n return function (elem) {\n var _a;\n return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.includes(value)) &&\n next(elem);\n };\n },\n not: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n if (value === \"\") {\n return function (elem) {\n return !!adapter.getAttributeValue(elem, name) && next(elem);\n };\n }\n else if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return ((attr == null ||\n attr.length !== value.length ||\n attr.toLowerCase() !== value) &&\n next(elem));\n };\n }\n return function (elem) {\n return adapter.getAttributeValue(elem, name) !== value && next(elem);\n };\n },\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/css-select/lib/compile.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/compile.js ***!\n \\***********************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.compileToken = exports.compileUnsafe = exports.compile = void 0;\nvar css_what_1 = __webpack_require__(/*! css-what */ \"./build/cht-core-4-6/api/node_modules/css-what/lib/es/index.js\");\nvar boolbase_1 = __webpack_require__(/*! boolbase */ \"./build/cht-core-4-6/api/node_modules/boolbase/index.js\");\nvar sort_1 = __importDefault(__webpack_require__(/*! ./sort */ \"./build/cht-core-4-6/api/node_modules/css-select/lib/sort.js\"));\nvar procedure_1 = __webpack_require__(/*! ./procedure */ \"./build/cht-core-4-6/api/node_modules/css-select/lib/procedure.js\");\nvar general_1 = __webpack_require__(/*! ./general */ \"./build/cht-core-4-6/api/node_modules/css-select/lib/general.js\");\nvar subselects_1 = __webpack_require__(/*! ./pseudo-selectors/subselects */ \"./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/subselects.js\");\n/**\n * Compiles a selector to an executable function.\n *\n * @param selector Selector to compile.\n * @param options Compilation options.\n * @param context Optional context for the selector.\n */\nfunction compile(selector, options, context) {\n var next = compileUnsafe(selector, options, context);\n return (0, subselects_1.ensureIsTag)(next, options.adapter);\n}\nexports.compile = compile;\nfunction compileUnsafe(selector, options, context) {\n var token = typeof selector === \"string\" ? (0, css_what_1.parse)(selector) : selector;\n return compileToken(token, options, context);\n}\nexports.compileUnsafe = compileUnsafe;\nfunction includesScopePseudo(t) {\n return (t.type === \"pseudo\" &&\n (t.name === \"scope\" ||\n (Array.isArray(t.data) &&\n t.data.some(function (data) { return data.some(includesScopePseudo); }))));\n}\nvar DESCENDANT_TOKEN = { type: css_what_1.SelectorType.Descendant };\nvar FLEXIBLE_DESCENDANT_TOKEN = {\n type: \"_flexibleDescendant\",\n};\nvar SCOPE_TOKEN = {\n type: css_what_1.SelectorType.Pseudo,\n name: \"scope\",\n data: null,\n};\n/*\n * CSS 4 Spec (Draft): 3.3.1. Absolutizing a Scope-relative Selector\n * http://www.w3.org/TR/selectors4/#absolutizing\n */\nfunction absolutize(token, _a, context) {\n var adapter = _a.adapter;\n // TODO Use better check if the context is a document\n var hasContext = !!(context === null || context === void 0 ? void 0 : context.every(function (e) {\n var parent = adapter.isTag(e) && adapter.getParent(e);\n return e === subselects_1.PLACEHOLDER_ELEMENT || (parent && adapter.isTag(parent));\n }));\n for (var _i = 0, token_1 = token; _i < token_1.length; _i++) {\n var t = token_1[_i];\n if (t.length > 0 && (0, procedure_1.isTraversal)(t[0]) && t[0].type !== \"descendant\") {\n // Don't continue in else branch\n }\n else if (hasContext && !t.some(includesScopePseudo)) {\n t.unshift(DESCENDANT_TOKEN);\n }\n else {\n continue;\n }\n t.unshift(SCOPE_TOKEN);\n }\n}\nfunction compileToken(token, options, context) {\n var _a;\n token = token.filter(function (t) { return t.length > 0; });\n token.forEach(sort_1.default);\n context = (_a = options.context) !== null && _a !== void 0 ? _a : context;\n var isArrayContext = Array.isArray(context);\n var finalContext = context && (Array.isArray(context) ? context : [context]);\n absolutize(token, options, finalContext);\n var shouldTestNextSiblings = false;\n var query = token\n .map(function (rules) {\n if (rules.length >= 2) {\n var first = rules[0], second = rules[1];\n if (first.type !== \"pseudo\" || first.name !== \"scope\") {\n // Ignore\n }\n else if (isArrayContext && second.type === \"descendant\") {\n rules[1] = FLEXIBLE_DESCENDANT_TOKEN;\n }\n else if (second.type === \"adjacent\" ||\n second.type === \"sibling\") {\n shouldTestNextSiblings = true;\n }\n }\n return compileRules(rules, options, finalContext);\n })\n .reduce(reduceRules, boolbase_1.falseFunc);\n query.shouldTestNextSiblings = shouldTestNextSiblings;\n return query;\n}\nexports.compileToken = compileToken;\nfunction compileRules(rules, options, context) {\n var _a;\n return rules.reduce(function (previous, rule) {\n return previous === boolbase_1.falseFunc\n ? boolbase_1.falseFunc\n : (0, general_1.compileGeneralSelector)(previous, rule, options, context, compileToken);\n }, (_a = options.rootFunc) !== null && _a !== void 0 ? _a : boolbase_1.trueFunc);\n}\nfunction reduceRules(a, b) {\n if (b === boolbase_1.falseFunc || a === boolbase_1.trueFunc) {\n return a;\n }\n if (a === boolbase_1.falseFunc || b === boolbase_1.trueFunc) {\n return b;\n }\n return function combine(elem) {\n return a(elem) || b(elem);\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/css-select/lib/general.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/general.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.compileGeneralSelector = void 0;\nvar attributes_1 = __webpack_require__(/*! ./attributes */ \"./build/cht-core-4-6/api/node_modules/css-select/lib/attributes.js\");\nvar pseudo_selectors_1 = __webpack_require__(/*! ./pseudo-selectors */ \"./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/index.js\");\nvar css_what_1 = __webpack_require__(/*! css-what */ \"./build/cht-core-4-6/api/node_modules/css-what/lib/es/index.js\");\n/*\n * All available rules\n */\nfunction compileGeneralSelector(next, selector, options, context, compileToken) {\n var adapter = options.adapter, equals = options.equals;\n switch (selector.type) {\n case css_what_1.SelectorType.PseudoElement: {\n throw new Error(\"Pseudo-elements are not supported by css-select\");\n }\n case css_what_1.SelectorType.ColumnCombinator: {\n throw new Error(\"Column combinators are not yet supported by css-select\");\n }\n case css_what_1.SelectorType.Attribute: {\n if (selector.namespace != null) {\n throw new Error(\"Namespaced attributes are not yet supported by css-select\");\n }\n if (!options.xmlMode || options.lowerCaseAttributeNames) {\n selector.name = selector.name.toLowerCase();\n }\n return attributes_1.attributeRules[selector.action](next, selector, options);\n }\n case css_what_1.SelectorType.Pseudo: {\n return (0, pseudo_selectors_1.compilePseudoSelector)(next, selector, options, context, compileToken);\n }\n // Tags\n case css_what_1.SelectorType.Tag: {\n if (selector.namespace != null) {\n throw new Error(\"Namespaced tag names are not yet supported by css-select\");\n }\n var name_1 = selector.name;\n if (!options.xmlMode || options.lowerCaseTags) {\n name_1 = name_1.toLowerCase();\n }\n return function tag(elem) {\n return adapter.getName(elem) === name_1 && next(elem);\n };\n }\n // Traversal\n case css_what_1.SelectorType.Descendant: {\n if (options.cacheResults === false ||\n typeof WeakSet === \"undefined\") {\n return function descendant(elem) {\n var current = elem;\n while ((current = adapter.getParent(current))) {\n if (adapter.isTag(current) && next(current)) {\n return true;\n }\n }\n return false;\n };\n }\n // @ts-expect-error `ElementNode` is not extending object\n var isFalseCache_1 = new WeakSet();\n return function cachedDescendant(elem) {\n var current = elem;\n while ((current = adapter.getParent(current))) {\n if (!isFalseCache_1.has(current)) {\n if (adapter.isTag(current) && next(current)) {\n return true;\n }\n isFalseCache_1.add(current);\n }\n }\n return false;\n };\n }\n case \"_flexibleDescendant\": {\n // Include element itself, only used while querying an array\n return function flexibleDescendant(elem) {\n var current = elem;\n do {\n if (adapter.isTag(current) && next(current))\n return true;\n } while ((current = adapter.getParent(current)));\n return false;\n };\n }\n case css_what_1.SelectorType.Parent: {\n return function parent(elem) {\n return adapter\n .getChildren(elem)\n .some(function (elem) { return adapter.isTag(elem) && next(elem); });\n };\n }\n case css_what_1.SelectorType.Child: {\n return function child(elem) {\n var parent = adapter.getParent(elem);\n return parent != null && adapter.isTag(parent) && next(parent);\n };\n }\n case css_what_1.SelectorType.Sibling: {\n return function sibling(elem) {\n var siblings = adapter.getSiblings(elem);\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling) && next(currentSibling)) {\n return true;\n }\n }\n return false;\n };\n }\n case css_what_1.SelectorType.Adjacent: {\n if (adapter.prevElementSibling) {\n return function adjacent(elem) {\n var previous = adapter.prevElementSibling(elem);\n return previous != null && next(previous);\n };\n }\n return function adjacent(elem) {\n var siblings = adapter.getSiblings(elem);\n var lastElement;\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling)) {\n lastElement = currentSibling;\n }\n }\n return !!lastElement && next(lastElement);\n };\n }\n case css_what_1.SelectorType.Universal: {\n if (selector.namespace != null && selector.namespace !== \"*\") {\n throw new Error(\"Namespaced universal selectors are not yet supported by css-select\");\n }\n return next;\n }\n }\n}\nexports.compileGeneralSelector = compileGeneralSelector;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/css-select/lib/index.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/index.js ***!\n \\*********************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.aliases = exports.pseudos = exports.filters = exports.is = exports.selectOne = exports.selectAll = exports.prepareContext = exports._compileToken = exports._compileUnsafe = exports.compile = void 0;\nvar DomUtils = __importStar(__webpack_require__(/*! domutils */ \"./build/cht-core-4-6/api/node_modules/domutils/lib/index.js\"));\nvar boolbase_1 = __webpack_require__(/*! boolbase */ \"./build/cht-core-4-6/api/node_modules/boolbase/index.js\");\nvar compile_1 = __webpack_require__(/*! ./compile */ \"./build/cht-core-4-6/api/node_modules/css-select/lib/compile.js\");\nvar subselects_1 = __webpack_require__(/*! ./pseudo-selectors/subselects */ \"./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/subselects.js\");\nvar defaultEquals = function (a, b) { return a === b; };\nvar defaultOptions = {\n adapter: DomUtils,\n equals: defaultEquals,\n};\nfunction convertOptionFormats(options) {\n var _a, _b, _c, _d;\n /*\n * We force one format of options to the other one.\n */\n // @ts-expect-error Default options may have incompatible `Node` / `ElementNode`.\n var opts = options !== null && options !== void 0 ? options : defaultOptions;\n // @ts-expect-error Same as above.\n (_a = opts.adapter) !== null && _a !== void 0 ? _a : (opts.adapter = DomUtils);\n // @ts-expect-error `equals` does not exist on `Options`\n (_b = opts.equals) !== null && _b !== void 0 ? _b : (opts.equals = (_d = (_c = opts.adapter) === null || _c === void 0 ? void 0 : _c.equals) !== null && _d !== void 0 ? _d : defaultEquals);\n return opts;\n}\nfunction wrapCompile(func) {\n return function addAdapter(selector, options, context) {\n var opts = convertOptionFormats(options);\n return func(selector, opts, context);\n };\n}\n/**\n * Compiles the query, returns a function.\n */\nexports.compile = wrapCompile(compile_1.compile);\nexports._compileUnsafe = wrapCompile(compile_1.compileUnsafe);\nexports._compileToken = wrapCompile(compile_1.compileToken);\nfunction getSelectorFunc(searchFunc) {\n return function select(query, elements, options) {\n var opts = convertOptionFormats(options);\n if (typeof query !== \"function\") {\n query = (0, compile_1.compileUnsafe)(query, opts, elements);\n }\n var filteredElements = prepareContext(elements, opts.adapter, query.shouldTestNextSiblings);\n return searchFunc(query, filteredElements, opts);\n };\n}\nfunction prepareContext(elems, adapter, shouldTestNextSiblings) {\n if (shouldTestNextSiblings === void 0) { shouldTestNextSiblings = false; }\n /*\n * Add siblings if the query requires them.\n * See https://github.com/fb55/css-select/pull/43#issuecomment-225414692\n */\n if (shouldTestNextSiblings) {\n elems = appendNextSiblings(elems, adapter);\n }\n return Array.isArray(elems)\n ? adapter.removeSubsets(elems)\n : adapter.getChildren(elems);\n}\nexports.prepareContext = prepareContext;\nfunction appendNextSiblings(elem, adapter) {\n // Order matters because jQuery seems to check the children before the siblings\n var elems = Array.isArray(elem) ? elem.slice(0) : [elem];\n var elemsLength = elems.length;\n for (var i = 0; i < elemsLength; i++) {\n var nextSiblings = (0, subselects_1.getNextSiblings)(elems[i], adapter);\n elems.push.apply(elems, nextSiblings);\n }\n return elems;\n}\n/**\n * @template Node The generic Node type for the DOM adapter being used.\n * @template ElementNode The Node type for elements for the DOM adapter being used.\n * @param elems Elements to query. If it is an element, its children will be queried..\n * @param query can be either a CSS selector string or a compiled query function.\n * @param [options] options for querying the document.\n * @see compile for supported selector queries.\n * @returns All matching elements.\n *\n */\nexports.selectAll = getSelectorFunc(function (query, elems, options) {\n return query === boolbase_1.falseFunc || !elems || elems.length === 0\n ? []\n : options.adapter.findAll(query, elems);\n});\n/**\n * @template Node The generic Node type for the DOM adapter being used.\n * @template ElementNode The Node type for elements for the DOM adapter being used.\n * @param elems Elements to query. If it is an element, its children will be queried..\n * @param query can be either a CSS selector string or a compiled query function.\n * @param [options] options for querying the document.\n * @see compile for supported selector queries.\n * @returns the first match, or null if there was no match.\n */\nexports.selectOne = getSelectorFunc(function (query, elems, options) {\n return query === boolbase_1.falseFunc || !elems || elems.length === 0\n ? null\n : options.adapter.findOne(query, elems);\n});\n/**\n * Tests whether or not an element is matched by query.\n *\n * @template Node The generic Node type for the DOM adapter being used.\n * @template ElementNode The Node type for elements for the DOM adapter being used.\n * @param elem The element to test if it matches the query.\n * @param query can be either a CSS selector string or a compiled query function.\n * @param [options] options for querying the document.\n * @see compile for supported selector queries.\n * @returns\n */\nfunction is(elem, query, options) {\n var opts = convertOptionFormats(options);\n return (typeof query === \"function\" ? query : (0, compile_1.compile)(query, opts))(elem);\n}\nexports.is = is;\n/**\n * Alias for selectAll(query, elems, options).\n * @see [compile] for supported selector queries.\n */\nexports.default = exports.selectAll;\n// Export filters, pseudos and aliases to allow users to supply their own.\nvar pseudo_selectors_1 = __webpack_require__(/*! ./pseudo-selectors */ \"./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/index.js\");\nObject.defineProperty(exports, \"filters\", ({ enumerable: true, get: function () { return pseudo_selectors_1.filters; } }));\nObject.defineProperty(exports, \"pseudos\", ({ enumerable: true, get: function () { return pseudo_selectors_1.pseudos; } }));\nObject.defineProperty(exports, \"aliases\", ({ enumerable: true, get: function () { return pseudo_selectors_1.aliases; } }));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/css-select/lib/procedure.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/procedure.js ***!\n \\*************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.isTraversal = exports.procedure = void 0;\nexports.procedure = {\n universal: 50,\n tag: 30,\n attribute: 1,\n pseudo: 0,\n \"pseudo-element\": 0,\n \"column-combinator\": -1,\n descendant: -1,\n child: -1,\n parent: -1,\n sibling: -1,\n adjacent: -1,\n _flexibleDescendant: -1,\n};\nfunction isTraversal(t) {\n return exports.procedure[t.type] < 0;\n}\nexports.isTraversal = isTraversal;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/aliases.js\":\n/*!****************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/aliases.js ***!\n \\****************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.aliases = void 0;\n/**\n * Aliases are pseudos that are expressed as selectors.\n */\nexports.aliases = {\n // Links\n \"any-link\": \":is(a, area, link)[href]\",\n link: \":any-link:not(:visited)\",\n // Forms\n // https://html.spec.whatwg.org/multipage/scripting.html#disabled-elements\n disabled: \":is(\\n :is(button, input, select, textarea, optgroup, option)[disabled],\\n optgroup[disabled] > option,\\n fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)\\n )\",\n enabled: \":not(:disabled)\",\n checked: \":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)\",\n required: \":is(input, select, textarea)[required]\",\n optional: \":is(input, select, textarea):not([required])\",\n // JQuery extensions\n // https://html.spec.whatwg.org/multipage/form-elements.html#concept-option-selectedness\n selected: \"option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)\",\n checkbox: \"[type=checkbox]\",\n file: \"[type=file]\",\n password: \"[type=password]\",\n radio: \"[type=radio]\",\n reset: \"[type=reset]\",\n image: \"[type=image]\",\n submit: \"[type=submit]\",\n parent: \":not(:empty)\",\n header: \":is(h1, h2, h3, h4, h5, h6)\",\n button: \":is(button, input[type=button])\",\n input: \":is(input, textarea, select, button)\",\n text: \"input:is(:not([type!='']), [type=text])\",\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/filters.js\":\n/*!****************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/filters.js ***!\n \\****************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.filters = void 0;\nvar nth_check_1 = __importDefault(__webpack_require__(/*! nth-check */ \"./build/cht-core-4-6/api/node_modules/nth-check/lib/index.js\"));\nvar boolbase_1 = __webpack_require__(/*! boolbase */ \"./build/cht-core-4-6/api/node_modules/boolbase/index.js\");\nfunction getChildFunc(next, adapter) {\n return function (elem) {\n var parent = adapter.getParent(elem);\n return parent != null && adapter.isTag(parent) && next(elem);\n };\n}\nexports.filters = {\n contains: function (next, text, _a) {\n var adapter = _a.adapter;\n return function contains(elem) {\n return next(elem) && adapter.getText(elem).includes(text);\n };\n },\n icontains: function (next, text, _a) {\n var adapter = _a.adapter;\n var itext = text.toLowerCase();\n return function icontains(elem) {\n return (next(elem) &&\n adapter.getText(elem).toLowerCase().includes(itext));\n };\n },\n // Location specific methods\n \"nth-child\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.falseFunc)\n return boolbase_1.falseFunc;\n if (func === boolbase_1.trueFunc)\n return getChildFunc(next, adapter);\n return function nthChild(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = 0; i < siblings.length; i++) {\n if (equals(elem, siblings[i]))\n break;\n if (adapter.isTag(siblings[i])) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n \"nth-last-child\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.falseFunc)\n return boolbase_1.falseFunc;\n if (func === boolbase_1.trueFunc)\n return getChildFunc(next, adapter);\n return function nthLastChild(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = siblings.length - 1; i >= 0; i--) {\n if (equals(elem, siblings[i]))\n break;\n if (adapter.isTag(siblings[i])) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n \"nth-of-type\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.falseFunc)\n return boolbase_1.falseFunc;\n if (func === boolbase_1.trueFunc)\n return getChildFunc(next, adapter);\n return function nthOfType(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === adapter.getName(elem)) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n \"nth-last-of-type\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.falseFunc)\n return boolbase_1.falseFunc;\n if (func === boolbase_1.trueFunc)\n return getChildFunc(next, adapter);\n return function nthLastOfType(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = siblings.length - 1; i >= 0; i--) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === adapter.getName(elem)) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n // TODO determine the actual root element\n root: function (next, _rule, _a) {\n var adapter = _a.adapter;\n return function (elem) {\n var parent = adapter.getParent(elem);\n return (parent == null || !adapter.isTag(parent)) && next(elem);\n };\n },\n scope: function (next, rule, options, context) {\n var equals = options.equals;\n if (!context || context.length === 0) {\n // Equivalent to :root\n return exports.filters.root(next, rule, options);\n }\n if (context.length === 1) {\n // NOTE: can't be unpacked, as :has uses this for side-effects\n return function (elem) { return equals(context[0], elem) && next(elem); };\n }\n return function (elem) { return context.includes(elem) && next(elem); };\n },\n hover: dynamicStatePseudo(\"isHovered\"),\n visited: dynamicStatePseudo(\"isVisited\"),\n active: dynamicStatePseudo(\"isActive\"),\n};\n/**\n * Dynamic state pseudos. These depend on optional Adapter methods.\n *\n * @param name The name of the adapter method to call.\n * @returns Pseudo for the `filters` object.\n */\nfunction dynamicStatePseudo(name) {\n return function dynamicPseudo(next, _rule, _a) {\n var adapter = _a.adapter;\n var func = adapter[name];\n if (typeof func !== \"function\") {\n return boolbase_1.falseFunc;\n }\n return function active(elem) {\n return func(elem) && next(elem);\n };\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/index.js\":\n/*!**************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/index.js ***!\n \\**************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.compilePseudoSelector = exports.aliases = exports.pseudos = exports.filters = void 0;\n/*\n * Pseudo selectors\n *\n * Pseudo selectors are available in three forms:\n *\n * 1. Filters are called when the selector is compiled and return a function\n * that has to return either false, or the results of `next()`.\n * 2. Pseudos are called on execution. They have to return a boolean.\n * 3. Subselects work like filters, but have an embedded selector that will be run separately.\n *\n * Filters are great if you want to do some pre-processing, or change the call order\n * of `next()` and your code.\n * Pseudos should be used to implement simple checks.\n */\nvar boolbase_1 = __webpack_require__(/*! boolbase */ \"./build/cht-core-4-6/api/node_modules/boolbase/index.js\");\nvar css_what_1 = __webpack_require__(/*! css-what */ \"./build/cht-core-4-6/api/node_modules/css-what/lib/es/index.js\");\nvar filters_1 = __webpack_require__(/*! ./filters */ \"./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/filters.js\");\nObject.defineProperty(exports, \"filters\", ({ enumerable: true, get: function () { return filters_1.filters; } }));\nvar pseudos_1 = __webpack_require__(/*! ./pseudos */ \"./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/pseudos.js\");\nObject.defineProperty(exports, \"pseudos\", ({ enumerable: true, get: function () { return pseudos_1.pseudos; } }));\nvar aliases_1 = __webpack_require__(/*! ./aliases */ \"./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/aliases.js\");\nObject.defineProperty(exports, \"aliases\", ({ enumerable: true, get: function () { return aliases_1.aliases; } }));\nvar subselects_1 = __webpack_require__(/*! ./subselects */ \"./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/subselects.js\");\nfunction compilePseudoSelector(next, selector, options, context, compileToken) {\n var name = selector.name, data = selector.data;\n if (Array.isArray(data)) {\n return subselects_1.subselects[name](next, data, options, context, compileToken);\n }\n if (name in aliases_1.aliases) {\n if (data != null) {\n throw new Error(\"Pseudo \".concat(name, \" doesn't have any arguments\"));\n }\n // The alias has to be parsed here, to make sure options are respected.\n var alias = (0, css_what_1.parse)(aliases_1.aliases[name]);\n return subselects_1.subselects.is(next, alias, options, context, compileToken);\n }\n if (name in filters_1.filters) {\n return filters_1.filters[name](next, data, options, context);\n }\n if (name in pseudos_1.pseudos) {\n var pseudo_1 = pseudos_1.pseudos[name];\n (0, pseudos_1.verifyPseudoArgs)(pseudo_1, name, data);\n return pseudo_1 === boolbase_1.falseFunc\n ? boolbase_1.falseFunc\n : next === boolbase_1.trueFunc\n ? function (elem) { return pseudo_1(elem, options, data); }\n : function (elem) { return pseudo_1(elem, options, data) && next(elem); };\n }\n throw new Error(\"unmatched pseudo-class :\".concat(name));\n}\nexports.compilePseudoSelector = compilePseudoSelector;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/pseudos.js\":\n/*!****************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/pseudos.js ***!\n \\****************************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.verifyPseudoArgs = exports.pseudos = void 0;\n// While filters are precompiled, pseudos get called when they are needed\nexports.pseudos = {\n empty: function (elem, _a) {\n var adapter = _a.adapter;\n return !adapter.getChildren(elem).some(function (elem) {\n // FIXME: `getText` call is potentially expensive.\n return adapter.isTag(elem) || adapter.getText(elem) !== \"\";\n });\n },\n \"first-child\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var firstChild = adapter\n .getSiblings(elem)\n .find(function (elem) { return adapter.isTag(elem); });\n return firstChild != null && equals(elem, firstChild);\n },\n \"last-child\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var siblings = adapter.getSiblings(elem);\n for (var i = siblings.length - 1; i >= 0; i--) {\n if (equals(elem, siblings[i]))\n return true;\n if (adapter.isTag(siblings[i]))\n break;\n }\n return false;\n },\n \"first-of-type\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var siblings = adapter.getSiblings(elem);\n var elemName = adapter.getName(elem);\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n return true;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === elemName) {\n break;\n }\n }\n return false;\n },\n \"last-of-type\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var siblings = adapter.getSiblings(elem);\n var elemName = adapter.getName(elem);\n for (var i = siblings.length - 1; i >= 0; i--) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n return true;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === elemName) {\n break;\n }\n }\n return false;\n },\n \"only-of-type\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var elemName = adapter.getName(elem);\n return adapter\n .getSiblings(elem)\n .every(function (sibling) {\n return equals(elem, sibling) ||\n !adapter.isTag(sibling) ||\n adapter.getName(sibling) !== elemName;\n });\n },\n \"only-child\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n return adapter\n .getSiblings(elem)\n .every(function (sibling) { return equals(elem, sibling) || !adapter.isTag(sibling); });\n },\n};\nfunction verifyPseudoArgs(func, name, subselect) {\n if (subselect === null) {\n if (func.length > 2) {\n throw new Error(\"pseudo-selector :\".concat(name, \" requires an argument\"));\n }\n }\n else if (func.length === 2) {\n throw new Error(\"pseudo-selector :\".concat(name, \" doesn't have any arguments\"));\n }\n}\nexports.verifyPseudoArgs = verifyPseudoArgs;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/subselects.js\":\n/*!*******************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/subselects.js ***!\n \\*******************************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.subselects = exports.getNextSiblings = exports.ensureIsTag = exports.PLACEHOLDER_ELEMENT = void 0;\nvar boolbase_1 = __webpack_require__(/*! boolbase */ \"./build/cht-core-4-6/api/node_modules/boolbase/index.js\");\nvar procedure_1 = __webpack_require__(/*! ../procedure */ \"./build/cht-core-4-6/api/node_modules/css-select/lib/procedure.js\");\n/** Used as a placeholder for :has. Will be replaced with the actual element. */\nexports.PLACEHOLDER_ELEMENT = {};\nfunction ensureIsTag(next, adapter) {\n if (next === boolbase_1.falseFunc)\n return boolbase_1.falseFunc;\n return function (elem) { return adapter.isTag(elem) && next(elem); };\n}\nexports.ensureIsTag = ensureIsTag;\nfunction getNextSiblings(elem, adapter) {\n var siblings = adapter.getSiblings(elem);\n if (siblings.length <= 1)\n return [];\n var elemIndex = siblings.indexOf(elem);\n if (elemIndex < 0 || elemIndex === siblings.length - 1)\n return [];\n return siblings.slice(elemIndex + 1).filter(adapter.isTag);\n}\nexports.getNextSiblings = getNextSiblings;\nvar is = function (next, token, options, context, compileToken) {\n var opts = {\n xmlMode: !!options.xmlMode,\n adapter: options.adapter,\n equals: options.equals,\n };\n var func = compileToken(token, opts, context);\n return function (elem) { return func(elem) && next(elem); };\n};\n/*\n * :not, :has, :is, :matches and :where have to compile selectors\n * doing this in src/pseudos.ts would lead to circular dependencies,\n * so we add them here\n */\nexports.subselects = {\n is: is,\n /**\n * `:matches` and `:where` are aliases for `:is`.\n */\n matches: is,\n where: is,\n not: function (next, token, options, context, compileToken) {\n var opts = {\n xmlMode: !!options.xmlMode,\n adapter: options.adapter,\n equals: options.equals,\n };\n var func = compileToken(token, opts, context);\n if (func === boolbase_1.falseFunc)\n return next;\n if (func === boolbase_1.trueFunc)\n return boolbase_1.falseFunc;\n return function not(elem) {\n return !func(elem) && next(elem);\n };\n },\n has: function (next, subselect, options, _context, compileToken) {\n var adapter = options.adapter;\n var opts = {\n xmlMode: !!options.xmlMode,\n adapter: adapter,\n equals: options.equals,\n };\n // @ts-expect-error Uses an array as a pointer to the current element (side effects)\n var context = subselect.some(function (s) {\n return s.some(procedure_1.isTraversal);\n })\n ? [exports.PLACEHOLDER_ELEMENT]\n : undefined;\n var compiled = compileToken(subselect, opts, context);\n if (compiled === boolbase_1.falseFunc)\n return boolbase_1.falseFunc;\n if (compiled === boolbase_1.trueFunc) {\n return function (elem) {\n return adapter.getChildren(elem).some(adapter.isTag) && next(elem);\n };\n }\n var hasElement = ensureIsTag(compiled, adapter);\n var _a = compiled.shouldTestNextSiblings, shouldTestNextSiblings = _a === void 0 ? false : _a;\n /*\n * `shouldTestNextSiblings` will only be true if the query starts with\n * a traversal (sibling or adjacent). That means we will always have a context.\n */\n if (context) {\n return function (elem) {\n context[0] = elem;\n var childs = adapter.getChildren(elem);\n var nextElements = shouldTestNextSiblings\n ? __spreadArray(__spreadArray([], childs, true), getNextSiblings(elem, adapter), true) : childs;\n return (next(elem) && adapter.existsOne(hasElement, nextElements));\n };\n }\n return function (elem) {\n return next(elem) &&\n adapter.existsOne(hasElement, adapter.getChildren(elem));\n };\n },\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/css-select/lib/sort.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/sort.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar css_what_1 = __webpack_require__(/*! css-what */ \"./build/cht-core-4-6/api/node_modules/css-what/lib/es/index.js\");\nvar procedure_1 = __webpack_require__(/*! ./procedure */ \"./build/cht-core-4-6/api/node_modules/css-select/lib/procedure.js\");\nvar attributes = {\n exists: 10,\n equals: 8,\n not: 7,\n start: 6,\n end: 6,\n any: 5,\n hyphen: 4,\n element: 4,\n};\n/**\n * Sort the parts of the passed selector,\n * as there is potential for optimization\n * (some types of selectors are faster than others)\n *\n * @param arr Selector to sort\n */\nfunction sortByProcedure(arr) {\n var procs = arr.map(getProcedure);\n for (var i = 1; i < arr.length; i++) {\n var procNew = procs[i];\n if (procNew < 0)\n continue;\n for (var j = i - 1; j >= 0 && procNew < procs[j]; j--) {\n var token = arr[j + 1];\n arr[j + 1] = arr[j];\n arr[j] = token;\n procs[j + 1] = procs[j];\n procs[j] = procNew;\n }\n }\n}\nexports.default = sortByProcedure;\nfunction getProcedure(token) {\n var proc = procedure_1.procedure[token.type];\n if (token.type === css_what_1.SelectorType.Attribute) {\n proc = attributes[token.action];\n if (proc === attributes.equals && token.name === \"id\") {\n // Prefer ID selectors (eg. #ID)\n proc = 9;\n }\n if (token.ignoreCase) {\n /*\n * IgnoreCase adds some overhead, prefer \"normal\" token\n * this is a binary operation, to ensure it's still an int\n */\n proc >>= 1;\n }\n }\n else if (token.type === css_what_1.SelectorType.Pseudo) {\n if (!token.data) {\n proc = 3;\n }\n else if (token.name === \"has\" || token.name === \"contains\") {\n proc = 0; // Expensive in any case\n }\n else if (Array.isArray(token.data)) {\n // \"matches\" and \"not\"\n proc = 0;\n for (var i = 0; i < token.data.length; i++) {\n // TODO better handling of complex selectors\n if (token.data[i].length !== 1)\n continue;\n var cur = getProcedure(token.data[i][0]);\n // Avoid executing :has or :contains\n if (cur === 0) {\n proc = 0;\n break;\n }\n if (cur > proc)\n proc = cur;\n }\n if (token.data.length > 1 && proc > 0)\n proc -= 1;\n }\n else {\n proc = 1;\n }\n }\n return proc;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/css-what/lib/es/index.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/css-what/lib/es/index.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"AttributeAction\": () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction),\n/* harmony export */ \"IgnoreCaseMode\": () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_0__.IgnoreCaseMode),\n/* harmony export */ \"SelectorType\": () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType),\n/* harmony export */ \"isTraversal\": () => (/* reexport safe */ _parse__WEBPACK_IMPORTED_MODULE_1__.isTraversal),\n/* harmony export */ \"parse\": () => (/* reexport safe */ _parse__WEBPACK_IMPORTED_MODULE_1__.parse),\n/* harmony export */ \"stringify\": () => (/* reexport safe */ _stringify__WEBPACK_IMPORTED_MODULE_2__.stringify)\n/* harmony export */ });\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types */ \"./build/cht-core-4-6/api/node_modules/css-what/lib/es/types.js\");\n/* harmony import */ var _parse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parse */ \"./build/cht-core-4-6/api/node_modules/css-what/lib/es/parse.js\");\n/* harmony import */ var _stringify__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./stringify */ \"./build/cht-core-4-6/api/node_modules/css-what/lib/es/stringify.js\");\n\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/css-what/lib/es/parse.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/css-what/lib/es/parse.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"isTraversal\": () => (/* binding */ isTraversal),\n/* harmony export */ \"parse\": () => (/* binding */ parse)\n/* harmony export */ });\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types */ \"./build/cht-core-4-6/api/node_modules/css-what/lib/es/types.js\");\n\nconst reName = /^[^\\\\#]?(?:\\\\(?:[\\da-f]{1,6}\\s?|.)|[\\w\\-\\u00b0-\\uFFFF])+/;\nconst reEscape = /\\\\([\\da-f]{1,6}\\s?|(\\s)|.)/gi;\nconst actionTypes = new Map([\n [126 /* Tilde */, _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Element],\n [94 /* Circumflex */, _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Start],\n [36 /* Dollar */, _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.End],\n [42 /* Asterisk */, _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Any],\n [33 /* ExclamationMark */, _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Not],\n [124 /* Pipe */, _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Hyphen],\n]);\n// Pseudos, whose data property is parsed as well.\nconst unpackPseudos = new Set([\n \"has\",\n \"not\",\n \"matches\",\n \"is\",\n \"where\",\n \"host\",\n \"host-context\",\n]);\n/**\n * Checks whether a specific selector is a traversal.\n * This is useful eg. in swapping the order of elements that\n * are not traversals.\n *\n * @param selector Selector to check.\n */\nfunction isTraversal(selector) {\n switch (selector.type) {\n case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Adjacent:\n case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Child:\n case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Descendant:\n case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Parent:\n case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Sibling:\n case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.ColumnCombinator:\n return true;\n default:\n return false;\n }\n}\nconst stripQuotesFromPseudos = new Set([\"contains\", \"icontains\"]);\n// Unescape function taken from https://github.com/jquery/sizzle/blob/master/src/sizzle.js#L152\nfunction funescape(_, escaped, escapedWhitespace) {\n const high = parseInt(escaped, 16) - 0x10000;\n // NaN means non-codepoint\n return high !== high || escapedWhitespace\n ? escaped\n : high < 0\n ? // BMP codepoint\n String.fromCharCode(high + 0x10000)\n : // Supplemental Plane codepoint (surrogate pair)\n String.fromCharCode((high >> 10) | 0xd800, (high & 0x3ff) | 0xdc00);\n}\nfunction unescapeCSS(str) {\n return str.replace(reEscape, funescape);\n}\nfunction isQuote(c) {\n return c === 39 /* SingleQuote */ || c === 34 /* DoubleQuote */;\n}\nfunction isWhitespace(c) {\n return (c === 32 /* Space */ ||\n c === 9 /* Tab */ ||\n c === 10 /* NewLine */ ||\n c === 12 /* FormFeed */ ||\n c === 13 /* CarriageReturn */);\n}\n/**\n * Parses `selector`, optionally with the passed `options`.\n *\n * @param selector Selector to parse.\n * @param options Options for parsing.\n * @returns Returns a two-dimensional array.\n * The first dimension represents selectors separated by commas (eg. `sub1, sub2`),\n * the second contains the relevant tokens for that selector.\n */\nfunction parse(selector) {\n const subselects = [];\n const endIndex = parseSelector(subselects, `${selector}`, 0);\n if (endIndex < selector.length) {\n throw new Error(`Unmatched selector: ${selector.slice(endIndex)}`);\n }\n return subselects;\n}\nfunction parseSelector(subselects, selector, selectorIndex) {\n let tokens = [];\n function getName(offset) {\n const match = selector.slice(selectorIndex + offset).match(reName);\n if (!match) {\n throw new Error(`Expected name, found ${selector.slice(selectorIndex)}`);\n }\n const [name] = match;\n selectorIndex += offset + name.length;\n return unescapeCSS(name);\n }\n function stripWhitespace(offset) {\n selectorIndex += offset;\n while (selectorIndex < selector.length &&\n isWhitespace(selector.charCodeAt(selectorIndex))) {\n selectorIndex++;\n }\n }\n function readValueWithParenthesis() {\n selectorIndex += 1;\n const start = selectorIndex;\n let counter = 1;\n for (; counter > 0 && selectorIndex < selector.length; selectorIndex++) {\n if (selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */ &&\n !isEscaped(selectorIndex)) {\n counter++;\n }\n else if (selector.charCodeAt(selectorIndex) ===\n 41 /* RightParenthesis */ &&\n !isEscaped(selectorIndex)) {\n counter--;\n }\n }\n if (counter) {\n throw new Error(\"Parenthesis not matched\");\n }\n return unescapeCSS(selector.slice(start, selectorIndex - 1));\n }\n function isEscaped(pos) {\n let slashCount = 0;\n while (selector.charCodeAt(--pos) === 92 /* BackSlash */)\n slashCount++;\n return (slashCount & 1) === 1;\n }\n function ensureNotTraversal() {\n if (tokens.length > 0 && isTraversal(tokens[tokens.length - 1])) {\n throw new Error(\"Did not expect successive traversals.\");\n }\n }\n function addTraversal(type) {\n if (tokens.length > 0 &&\n tokens[tokens.length - 1].type === _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Descendant) {\n tokens[tokens.length - 1].type = type;\n return;\n }\n ensureNotTraversal();\n tokens.push({ type });\n }\n function addSpecialAttribute(name, action) {\n tokens.push({\n type: _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Attribute,\n name,\n action,\n value: getName(1),\n namespace: null,\n ignoreCase: \"quirks\",\n });\n }\n /**\n * We have finished parsing the current part of the selector.\n *\n * Remove descendant tokens at the end if they exist,\n * and return the last index, so that parsing can be\n * picked up from here.\n */\n function finalizeSubselector() {\n if (tokens.length &&\n tokens[tokens.length - 1].type === _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Descendant) {\n tokens.pop();\n }\n if (tokens.length === 0) {\n throw new Error(\"Empty sub-selector\");\n }\n subselects.push(tokens);\n }\n stripWhitespace(0);\n if (selector.length === selectorIndex) {\n return selectorIndex;\n }\n loop: while (selectorIndex < selector.length) {\n const firstChar = selector.charCodeAt(selectorIndex);\n switch (firstChar) {\n // Whitespace\n case 32 /* Space */:\n case 9 /* Tab */:\n case 10 /* NewLine */:\n case 12 /* FormFeed */:\n case 13 /* CarriageReturn */: {\n if (tokens.length === 0 ||\n tokens[0].type !== _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Descendant) {\n ensureNotTraversal();\n tokens.push({ type: _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Descendant });\n }\n stripWhitespace(1);\n break;\n }\n // Traversals\n case 62 /* GreaterThan */: {\n addTraversal(_types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Child);\n stripWhitespace(1);\n break;\n }\n case 60 /* LessThan */: {\n addTraversal(_types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Parent);\n stripWhitespace(1);\n break;\n }\n case 126 /* Tilde */: {\n addTraversal(_types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Sibling);\n stripWhitespace(1);\n break;\n }\n case 43 /* Plus */: {\n addTraversal(_types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Adjacent);\n stripWhitespace(1);\n break;\n }\n // Special attribute selectors: .class, #id\n case 46 /* Period */: {\n addSpecialAttribute(\"class\", _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Element);\n break;\n }\n case 35 /* Hash */: {\n addSpecialAttribute(\"id\", _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Equals);\n break;\n }\n case 91 /* LeftSquareBracket */: {\n stripWhitespace(1);\n // Determine attribute name and namespace\n let name;\n let namespace = null;\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */) {\n // Equivalent to no namespace\n name = getName(1);\n }\n else if (selector.startsWith(\"*|\", selectorIndex)) {\n namespace = \"*\";\n name = getName(2);\n }\n else {\n name = getName(0);\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&\n selector.charCodeAt(selectorIndex + 1) !==\n 61 /* Equal */) {\n namespace = name;\n name = getName(1);\n }\n }\n stripWhitespace(0);\n // Determine comparison operation\n let action = _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Exists;\n const possibleAction = actionTypes.get(selector.charCodeAt(selectorIndex));\n if (possibleAction) {\n action = possibleAction;\n if (selector.charCodeAt(selectorIndex + 1) !==\n 61 /* Equal */) {\n throw new Error(\"Expected `=`\");\n }\n stripWhitespace(2);\n }\n else if (selector.charCodeAt(selectorIndex) === 61 /* Equal */) {\n action = _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Equals;\n stripWhitespace(1);\n }\n // Determine value\n let value = \"\";\n let ignoreCase = null;\n if (action !== \"exists\") {\n if (isQuote(selector.charCodeAt(selectorIndex))) {\n const quote = selector.charCodeAt(selectorIndex);\n let sectionEnd = selectorIndex + 1;\n while (sectionEnd < selector.length &&\n (selector.charCodeAt(sectionEnd) !== quote ||\n isEscaped(sectionEnd))) {\n sectionEnd += 1;\n }\n if (selector.charCodeAt(sectionEnd) !== quote) {\n throw new Error(\"Attribute value didn't end\");\n }\n value = unescapeCSS(selector.slice(selectorIndex + 1, sectionEnd));\n selectorIndex = sectionEnd + 1;\n }\n else {\n const valueStart = selectorIndex;\n while (selectorIndex < selector.length &&\n ((!isWhitespace(selector.charCodeAt(selectorIndex)) &&\n selector.charCodeAt(selectorIndex) !==\n 93 /* RightSquareBracket */) ||\n isEscaped(selectorIndex))) {\n selectorIndex += 1;\n }\n value = unescapeCSS(selector.slice(valueStart, selectorIndex));\n }\n stripWhitespace(0);\n // See if we have a force ignore flag\n const forceIgnore = selector.charCodeAt(selectorIndex) | 0x20;\n // If the forceIgnore flag is set (either `i` or `s`), use that value\n if (forceIgnore === 115 /* LowerS */) {\n ignoreCase = false;\n stripWhitespace(1);\n }\n else if (forceIgnore === 105 /* LowerI */) {\n ignoreCase = true;\n stripWhitespace(1);\n }\n }\n if (selector.charCodeAt(selectorIndex) !==\n 93 /* RightSquareBracket */) {\n throw new Error(\"Attribute selector didn't terminate\");\n }\n selectorIndex += 1;\n const attributeSelector = {\n type: _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Attribute,\n name,\n action,\n value,\n namespace,\n ignoreCase,\n };\n tokens.push(attributeSelector);\n break;\n }\n case 58 /* Colon */: {\n if (selector.charCodeAt(selectorIndex + 1) === 58 /* Colon */) {\n tokens.push({\n type: _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.PseudoElement,\n name: getName(2).toLowerCase(),\n data: selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */\n ? readValueWithParenthesis()\n : null,\n });\n continue;\n }\n const name = getName(1).toLowerCase();\n let data = null;\n if (selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */) {\n if (unpackPseudos.has(name)) {\n if (isQuote(selector.charCodeAt(selectorIndex + 1))) {\n throw new Error(`Pseudo-selector ${name} cannot be quoted`);\n }\n data = [];\n selectorIndex = parseSelector(data, selector, selectorIndex + 1);\n if (selector.charCodeAt(selectorIndex) !==\n 41 /* RightParenthesis */) {\n throw new Error(`Missing closing parenthesis in :${name} (${selector})`);\n }\n selectorIndex += 1;\n }\n else {\n data = readValueWithParenthesis();\n if (stripQuotesFromPseudos.has(name)) {\n const quot = data.charCodeAt(0);\n if (quot === data.charCodeAt(data.length - 1) &&\n isQuote(quot)) {\n data = data.slice(1, -1);\n }\n }\n data = unescapeCSS(data);\n }\n }\n tokens.push({ type: _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Pseudo, name, data });\n break;\n }\n case 44 /* Comma */: {\n finalizeSubselector();\n tokens = [];\n stripWhitespace(1);\n break;\n }\n default: {\n if (selector.startsWith(\"/*\", selectorIndex)) {\n const endIndex = selector.indexOf(\"*/\", selectorIndex + 2);\n if (endIndex < 0) {\n throw new Error(\"Comment was not terminated\");\n }\n selectorIndex = endIndex + 2;\n // Remove leading whitespace\n if (tokens.length === 0) {\n stripWhitespace(0);\n }\n break;\n }\n let namespace = null;\n let name;\n if (firstChar === 42 /* Asterisk */) {\n selectorIndex += 1;\n name = \"*\";\n }\n else if (firstChar === 124 /* Pipe */) {\n name = \"\";\n if (selector.charCodeAt(selectorIndex + 1) === 124 /* Pipe */) {\n addTraversal(_types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.ColumnCombinator);\n stripWhitespace(2);\n break;\n }\n }\n else if (reName.test(selector.slice(selectorIndex))) {\n name = getName(0);\n }\n else {\n break loop;\n }\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&\n selector.charCodeAt(selectorIndex + 1) !== 124 /* Pipe */) {\n namespace = name;\n if (selector.charCodeAt(selectorIndex + 1) ===\n 42 /* Asterisk */) {\n name = \"*\";\n selectorIndex += 2;\n }\n else {\n name = getName(1);\n }\n }\n tokens.push(name === \"*\"\n ? { type: _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Universal, namespace }\n : { type: _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Tag, name, namespace });\n }\n }\n }\n finalizeSubselector();\n return selectorIndex;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/css-what/lib/es/stringify.js\":\n/*!**************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/css-what/lib/es/stringify.js ***!\n \\**************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"stringify\": () => (/* binding */ stringify)\n/* harmony export */ });\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types */ \"./build/cht-core-4-6/api/node_modules/css-what/lib/es/types.js\");\n\nconst attribValChars = [\"\\\\\", '\"'];\nconst pseudoValChars = [...attribValChars, \"(\", \")\"];\nconst charsToEscapeInAttributeValue = new Set(attribValChars.map((c) => c.charCodeAt(0)));\nconst charsToEscapeInPseudoValue = new Set(pseudoValChars.map((c) => c.charCodeAt(0)));\nconst charsToEscapeInName = new Set([\n ...pseudoValChars,\n \"~\",\n \"^\",\n \"$\",\n \"*\",\n \"+\",\n \"!\",\n \"|\",\n \":\",\n \"[\",\n \"]\",\n \" \",\n \".\",\n].map((c) => c.charCodeAt(0)));\n/**\n * Turns `selector` back into a string.\n *\n * @param selector Selector to stringify.\n */\nfunction stringify(selector) {\n return selector\n .map((token) => token.map(stringifyToken).join(\"\"))\n .join(\", \");\n}\nfunction stringifyToken(token, index, arr) {\n switch (token.type) {\n // Simple types\n case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Child:\n return index === 0 ? \"> \" : \" > \";\n case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Parent:\n return index === 0 ? \"< \" : \" < \";\n case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Sibling:\n return index === 0 ? \"~ \" : \" ~ \";\n case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Adjacent:\n return index === 0 ? \"+ \" : \" + \";\n case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Descendant:\n return \" \";\n case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.ColumnCombinator:\n return index === 0 ? \"|| \" : \" || \";\n case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Universal:\n // Return an empty string if the selector isn't needed.\n return token.namespace === \"*\" &&\n index + 1 < arr.length &&\n \"name\" in arr[index + 1]\n ? \"\"\n : `${getNamespace(token.namespace)}*`;\n case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Tag:\n return getNamespacedName(token);\n case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.PseudoElement:\n return `::${escapeName(token.name, charsToEscapeInName)}${token.data === null\n ? \"\"\n : `(${escapeName(token.data, charsToEscapeInPseudoValue)})`}`;\n case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Pseudo:\n return `:${escapeName(token.name, charsToEscapeInName)}${token.data === null\n ? \"\"\n : `(${typeof token.data === \"string\"\n ? escapeName(token.data, charsToEscapeInPseudoValue)\n : stringify(token.data)})`}`;\n case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Attribute: {\n if (token.name === \"id\" &&\n token.action === _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Equals &&\n token.ignoreCase === \"quirks\" &&\n !token.namespace) {\n return `#${escapeName(token.value, charsToEscapeInName)}`;\n }\n if (token.name === \"class\" &&\n token.action === _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Element &&\n token.ignoreCase === \"quirks\" &&\n !token.namespace) {\n return `.${escapeName(token.value, charsToEscapeInName)}`;\n }\n const name = getNamespacedName(token);\n if (token.action === _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Exists) {\n return `[${name}]`;\n }\n return `[${name}${getActionValue(token.action)}=\"${escapeName(token.value, charsToEscapeInAttributeValue)}\"${token.ignoreCase === null ? \"\" : token.ignoreCase ? \" i\" : \" s\"}]`;\n }\n }\n}\nfunction getActionValue(action) {\n switch (action) {\n case _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Equals:\n return \"\";\n case _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Element:\n return \"~\";\n case _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Start:\n return \"^\";\n case _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.End:\n return \"$\";\n case _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Any:\n return \"*\";\n case _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Not:\n return \"!\";\n case _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Hyphen:\n return \"|\";\n case _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Exists:\n throw new Error(\"Shouldn't be here\");\n }\n}\nfunction getNamespacedName(token) {\n return `${getNamespace(token.namespace)}${escapeName(token.name, charsToEscapeInName)}`;\n}\nfunction getNamespace(namespace) {\n return namespace !== null\n ? `${namespace === \"*\"\n ? \"*\"\n : escapeName(namespace, charsToEscapeInName)}|`\n : \"\";\n}\nfunction escapeName(str, charsToEscape) {\n let lastIdx = 0;\n let ret = \"\";\n for (let i = 0; i < str.length; i++) {\n if (charsToEscape.has(str.charCodeAt(i))) {\n ret += `${str.slice(lastIdx, i)}\\\\${str.charAt(i)}`;\n lastIdx = i + 1;\n }\n }\n return ret.length > 0 ? ret + str.slice(lastIdx) : str;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/css-what/lib/es/types.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/css-what/lib/es/types.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SelectorType\": () => (/* binding */ SelectorType),\n/* harmony export */ \"IgnoreCaseMode\": () => (/* binding */ IgnoreCaseMode),\n/* harmony export */ \"AttributeAction\": () => (/* binding */ AttributeAction)\n/* harmony export */ });\nvar SelectorType;\n(function (SelectorType) {\n SelectorType[\"Attribute\"] = \"attribute\";\n SelectorType[\"Pseudo\"] = \"pseudo\";\n SelectorType[\"PseudoElement\"] = \"pseudo-element\";\n SelectorType[\"Tag\"] = \"tag\";\n SelectorType[\"Universal\"] = \"universal\";\n // Traversals\n SelectorType[\"Adjacent\"] = \"adjacent\";\n SelectorType[\"Child\"] = \"child\";\n SelectorType[\"Descendant\"] = \"descendant\";\n SelectorType[\"Parent\"] = \"parent\";\n SelectorType[\"Sibling\"] = \"sibling\";\n SelectorType[\"ColumnCombinator\"] = \"column-combinator\";\n})(SelectorType || (SelectorType = {}));\n/**\n * Modes for ignore case.\n *\n * This could be updated to an enum, and the object is\n * the current stand-in that will allow code to be updated\n * without big changes.\n */\nconst IgnoreCaseMode = {\n Unknown: null,\n QuirksMode: \"quirks\",\n IgnoreCase: true,\n CaseSensitive: false,\n};\nvar AttributeAction;\n(function (AttributeAction) {\n AttributeAction[\"Any\"] = \"any\";\n AttributeAction[\"Element\"] = \"element\";\n AttributeAction[\"End\"] = \"end\";\n AttributeAction[\"Equals\"] = \"equals\";\n AttributeAction[\"Exists\"] = \"exists\";\n AttributeAction[\"Hyphen\"] = \"hyphen\";\n AttributeAction[\"Not\"] = \"not\";\n AttributeAction[\"Start\"] = \"start\";\n})(AttributeAction || (AttributeAction = {}));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/debug/src/browser.js\":\n/*!******************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/debug/src/browser.js ***!\n \\******************************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\n/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = __webpack_require__(/*! ./debug */ \"./build/cht-core-4-6/api/node_modules/debug/src/debug.js\");\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/debug/src/debug.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/debug/src/debug.js ***!\n \\****************************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\n\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = __webpack_require__(/*! ms */ \"./build/cht-core-4-6/api/node_modules/ms/index.js\");\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/debug/src/index.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/debug/src/index.js ***!\n \\****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\n * Detect Electron renderer process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process !== 'undefined' && process.type === 'renderer') {\n module.exports = __webpack_require__(/*! ./browser.js */ \"./build/cht-core-4-6/api/node_modules/debug/src/browser.js\");\n} else {\n module.exports = __webpack_require__(/*! ./node.js */ \"./build/cht-core-4-6/api/node_modules/debug/src/node.js\");\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/debug/src/node.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/debug/src/node.js ***!\n \\***************************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\n/**\n * Module dependencies.\n */\n\nvar tty = __webpack_require__(/*! tty */ \"tty\");\nvar util = __webpack_require__(/*! util */ \"util\");\n\n/**\n * This is the Node.js implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = __webpack_require__(/*! ./debug */ \"./build/cht-core-4-6/api/node_modules/debug/src/debug.js\");\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n // camel-case\n var prop = key\n .substring(6)\n .toLowerCase()\n .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });\n\n // coerce string value into JS value\n var val = process.env[key];\n if (/^(yes|on|true|enabled)$/i.test(val)) val = true;\n else if (/^(no|off|false|disabled)$/i.test(val)) val = false;\n else if (val === 'null') val = null;\n else val = Number(val);\n\n obj[prop] = val;\n return obj;\n}, {});\n\n/**\n * The file descriptor to write the `debug()` calls to.\n * Set the `DEBUG_FD` env variable to override with another value. i.e.:\n *\n * $ DEBUG_FD=3 node script.js 3>debug.log\n */\n\nvar fd = parseInt(process.env.DEBUG_FD, 10) || 2;\n\nif (1 !== fd && 2 !== fd) {\n util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')()\n}\n\nvar stream = 1 === fd ? process.stdout :\n 2 === fd ? process.stderr :\n createWritableStdioStream(fd);\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n return 'colors' in exports.inspectOpts\n ? Boolean(exports.inspectOpts.colors)\n : tty.isatty(fd);\n}\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nexports.formatters.o = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts)\n .split('\\n').map(function(str) {\n return str.trim()\n }).join(' ');\n};\n\n/**\n * Map %o to `util.inspect()`, allowing multiple lines if needed.\n */\n\nexports.formatters.O = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts);\n};\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var name = this.namespace;\n var useColors = this.useColors;\n\n if (useColors) {\n var c = this.color;\n var prefix = ' \\u001b[3' + c + ';1m' + name + ' ' + '\\u001b[0m';\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n args.push('\\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\\u001b[0m');\n } else {\n args[0] = new Date().toUTCString()\n + ' ' + name + ' ' + args[0];\n }\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to `stream`.\n */\n\nfunction log() {\n return stream.write(util.format.apply(util, arguments) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n if (null == namespaces) {\n // If you set a process.env field to null or undefined, it gets cast to the\n // string 'null' or 'undefined'. Just delete instead.\n delete process.env.DEBUG;\n } else {\n process.env.DEBUG = namespaces;\n }\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n return process.env.DEBUG;\n}\n\n/**\n * Copied from `node/src/node.js`.\n *\n * XXX: It's lame that node doesn't expose this API out-of-the-box. It also\n * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.\n */\n\nfunction createWritableStdioStream (fd) {\n var stream;\n var tty_wrap = process.binding('tty_wrap');\n\n // Note stream._type is used for test-module-load-list.js\n\n switch (tty_wrap.guessHandleType(fd)) {\n case 'TTY':\n stream = new tty.WriteStream(fd);\n stream._type = 'tty';\n\n // Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n case 'FILE':\n var fs = __webpack_require__(/*! fs */ \"fs\");\n stream = new fs.SyncWriteStream(fd, { autoClose: false });\n stream._type = 'fs';\n break;\n\n case 'PIPE':\n case 'TCP':\n var net = __webpack_require__(/*! net */ \"net\");\n stream = new net.Socket({\n fd: fd,\n readable: false,\n writable: true\n });\n\n // FIXME Should probably have an option in net.Socket to create a\n // stream from an existing fd which is writable only. But for now\n // we'll just add this hack and set the `readable` member to false.\n // Test: ./node test/fixtures/echo.js < /etc/passwd\n stream.readable = false;\n stream.read = null;\n stream._type = 'pipe';\n\n // FIXME Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n default:\n // Probably an error on in uv_guess_handle()\n throw new Error('Implement me. Unknown stream file type!');\n }\n\n // For supporting legacy API we put the FD here.\n stream.fd = fd;\n\n stream._isStdio = true;\n\n return stream;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init (debug) {\n debug.inspectOpts = {};\n\n var keys = Object.keys(exports.inspectOpts);\n for (var i = 0; i < keys.length; i++) {\n debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n }\n}\n\n/**\n * Enable namespaces listed in `process.env.DEBUG` initially.\n */\n\nexports.enable(load());\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/depd/index.js\":\n/*!***********************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/depd/index.js ***!\n \\***********************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/*!\n * depd\n * Copyright(c) 2014-2018 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar relative = __webpack_require__(/*! path */ \"path\").relative\n\n/**\n * Module exports.\n */\n\nmodule.exports = depd\n\n/**\n * Get the path to base files on.\n */\n\nvar basePath = process.cwd()\n\n/**\n * Determine if namespace is contained in the string.\n */\n\nfunction containsNamespace (str, namespace) {\n var vals = str.split(/[ ,]+/)\n var ns = String(namespace).toLowerCase()\n\n for (var i = 0; i < vals.length; i++) {\n var val = vals[i]\n\n // namespace contained\n if (val && (val === '*' || val.toLowerCase() === ns)) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Convert a data descriptor to accessor descriptor.\n */\n\nfunction convertDataDescriptorToAccessor (obj, prop, message) {\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop)\n var value = descriptor.value\n\n descriptor.get = function getter () { return value }\n\n if (descriptor.writable) {\n descriptor.set = function setter (val) { return (value = val) }\n }\n\n delete descriptor.value\n delete descriptor.writable\n\n Object.defineProperty(obj, prop, descriptor)\n\n return descriptor\n}\n\n/**\n * Create arguments string to keep arity.\n */\n\nfunction createArgumentsString (arity) {\n var str = ''\n\n for (var i = 0; i < arity; i++) {\n str += ', arg' + i\n }\n\n return str.substr(2)\n}\n\n/**\n * Create stack string from stack.\n */\n\nfunction createStackString (stack) {\n var str = this.name + ': ' + this.namespace\n\n if (this.message) {\n str += ' deprecated ' + this.message\n }\n\n for (var i = 0; i < stack.length; i++) {\n str += '\\n at ' + stack[i].toString()\n }\n\n return str\n}\n\n/**\n * Create deprecate for namespace in caller.\n */\n\nfunction depd (namespace) {\n if (!namespace) {\n throw new TypeError('argument namespace is required')\n }\n\n var stack = getStack()\n var site = callSiteLocation(stack[1])\n var file = site[0]\n\n function deprecate (message) {\n // call to self as log\n log.call(deprecate, message)\n }\n\n deprecate._file = file\n deprecate._ignored = isignored(namespace)\n deprecate._namespace = namespace\n deprecate._traced = istraced(namespace)\n deprecate._warned = Object.create(null)\n\n deprecate.function = wrapfunction\n deprecate.property = wrapproperty\n\n return deprecate\n}\n\n/**\n * Determine if event emitter has listeners of a given type.\n *\n * The way to do this check is done three different ways in Node.js >= 0.8\n * so this consolidates them into a minimal set using instance methods.\n *\n * @param {EventEmitter} emitter\n * @param {string} type\n * @returns {boolean}\n * @private\n */\n\nfunction eehaslisteners (emitter, type) {\n var count = typeof emitter.listenerCount !== 'function'\n ? emitter.listeners(type).length\n : emitter.listenerCount(type)\n\n return count > 0\n}\n\n/**\n * Determine if namespace is ignored.\n */\n\nfunction isignored (namespace) {\n if (process.noDeprecation) {\n // --no-deprecation support\n return true\n }\n\n var str = process.env.NO_DEPRECATION || ''\n\n // namespace ignored\n return containsNamespace(str, namespace)\n}\n\n/**\n * Determine if namespace is traced.\n */\n\nfunction istraced (namespace) {\n if (process.traceDeprecation) {\n // --trace-deprecation support\n return true\n }\n\n var str = process.env.TRACE_DEPRECATION || ''\n\n // namespace traced\n return containsNamespace(str, namespace)\n}\n\n/**\n * Display deprecation message.\n */\n\nfunction log (message, site) {\n var haslisteners = eehaslisteners(process, 'deprecation')\n\n // abort early if no destination\n if (!haslisteners && this._ignored) {\n return\n }\n\n var caller\n var callFile\n var callSite\n var depSite\n var i = 0\n var seen = false\n var stack = getStack()\n var file = this._file\n\n if (site) {\n // provided site\n depSite = site\n callSite = callSiteLocation(stack[1])\n callSite.name = depSite.name\n file = callSite[0]\n } else {\n // get call site\n i = 2\n depSite = callSiteLocation(stack[i])\n callSite = depSite\n }\n\n // get caller of deprecated thing in relation to file\n for (; i < stack.length; i++) {\n caller = callSiteLocation(stack[i])\n callFile = caller[0]\n\n if (callFile === file) {\n seen = true\n } else if (callFile === this._file) {\n file = this._file\n } else if (seen) {\n break\n }\n }\n\n var key = caller\n ? depSite.join(':') + '__' + caller.join(':')\n : undefined\n\n if (key !== undefined && key in this._warned) {\n // already warned\n return\n }\n\n this._warned[key] = true\n\n // generate automatic message from call site\n var msg = message\n if (!msg) {\n msg = callSite === depSite || !callSite.name\n ? defaultMessage(depSite)\n : defaultMessage(callSite)\n }\n\n // emit deprecation if listeners exist\n if (haslisteners) {\n var err = DeprecationError(this._namespace, msg, stack.slice(i))\n process.emit('deprecation', err)\n return\n }\n\n // format and write message\n var format = process.stderr.isTTY\n ? formatColor\n : formatPlain\n var output = format.call(this, msg, caller, stack.slice(i))\n process.stderr.write(output + '\\n', 'utf8')\n}\n\n/**\n * Get call site location as array.\n */\n\nfunction callSiteLocation (callSite) {\n var file = callSite.getFileName() || ''\n var line = callSite.getLineNumber()\n var colm = callSite.getColumnNumber()\n\n if (callSite.isEval()) {\n file = callSite.getEvalOrigin() + ', ' + file\n }\n\n var site = [file, line, colm]\n\n site.callSite = callSite\n site.name = callSite.getFunctionName()\n\n return site\n}\n\n/**\n * Generate a default message from the site.\n */\n\nfunction defaultMessage (site) {\n var callSite = site.callSite\n var funcName = site.name\n\n // make useful anonymous name\n if (!funcName) {\n funcName = ''\n }\n\n var context = callSite.getThis()\n var typeName = context && callSite.getTypeName()\n\n // ignore useless type name\n if (typeName === 'Object') {\n typeName = undefined\n }\n\n // make useful type name\n if (typeName === 'Function') {\n typeName = context.name || typeName\n }\n\n return typeName && callSite.getMethodName()\n ? typeName + '.' + funcName\n : funcName\n}\n\n/**\n * Format deprecation message without color.\n */\n\nfunction formatPlain (msg, caller, stack) {\n var timestamp = new Date().toUTCString()\n\n var formatted = timestamp +\n ' ' + this._namespace +\n ' deprecated ' + msg\n\n // add stack trace\n if (this._traced) {\n for (var i = 0; i < stack.length; i++) {\n formatted += '\\n at ' + stack[i].toString()\n }\n\n return formatted\n }\n\n if (caller) {\n formatted += ' at ' + formatLocation(caller)\n }\n\n return formatted\n}\n\n/**\n * Format deprecation message with color.\n */\n\nfunction formatColor (msg, caller, stack) {\n var formatted = '\\x1b[36;1m' + this._namespace + '\\x1b[22;39m' + // bold cyan\n ' \\x1b[33;1mdeprecated\\x1b[22;39m' + // bold yellow\n ' \\x1b[0m' + msg + '\\x1b[39m' // reset\n\n // add stack trace\n if (this._traced) {\n for (var i = 0; i < stack.length; i++) {\n formatted += '\\n \\x1b[36mat ' + stack[i].toString() + '\\x1b[39m' // cyan\n }\n\n return formatted\n }\n\n if (caller) {\n formatted += ' \\x1b[36m' + formatLocation(caller) + '\\x1b[39m' // cyan\n }\n\n return formatted\n}\n\n/**\n * Format call site location.\n */\n\nfunction formatLocation (callSite) {\n return relative(basePath, callSite[0]) +\n ':' + callSite[1] +\n ':' + callSite[2]\n}\n\n/**\n * Get the stack as array of call sites.\n */\n\nfunction getStack () {\n var limit = Error.stackTraceLimit\n var obj = {}\n var prep = Error.prepareStackTrace\n\n Error.prepareStackTrace = prepareObjectStackTrace\n Error.stackTraceLimit = Math.max(10, limit)\n\n // capture the stack\n Error.captureStackTrace(obj)\n\n // slice this function off the top\n var stack = obj.stack.slice(1)\n\n Error.prepareStackTrace = prep\n Error.stackTraceLimit = limit\n\n return stack\n}\n\n/**\n * Capture call site stack from v8.\n */\n\nfunction prepareObjectStackTrace (obj, stack) {\n return stack\n}\n\n/**\n * Return a wrapped function in a deprecation message.\n */\n\nfunction wrapfunction (fn, message) {\n if (typeof fn !== 'function') {\n throw new TypeError('argument fn must be a function')\n }\n\n var args = createArgumentsString(fn.length)\n var stack = getStack()\n var site = callSiteLocation(stack[1])\n\n site.name = fn.name\n\n // eslint-disable-next-line no-new-func\n var deprecatedfn = new Function('fn', 'log', 'deprecate', 'message', 'site',\n '\"use strict\"\\n' +\n 'return function (' + args + ') {' +\n 'log.call(deprecate, message, site)\\n' +\n 'return fn.apply(this, arguments)\\n' +\n '}')(fn, log, this, message, site)\n\n return deprecatedfn\n}\n\n/**\n * Wrap property in a deprecation message.\n */\n\nfunction wrapproperty (obj, prop, message) {\n if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n throw new TypeError('argument obj must be object')\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop)\n\n if (!descriptor) {\n throw new TypeError('must call property on owner object')\n }\n\n if (!descriptor.configurable) {\n throw new TypeError('property must be configurable')\n }\n\n var deprecate = this\n var stack = getStack()\n var site = callSiteLocation(stack[1])\n\n // set site name\n site.name = prop\n\n // convert data descriptor\n if ('value' in descriptor) {\n descriptor = convertDataDescriptorToAccessor(obj, prop, message)\n }\n\n var get = descriptor.get\n var set = descriptor.set\n\n // wrap getter\n if (typeof get === 'function') {\n descriptor.get = function getter () {\n log.call(deprecate, message, site)\n return get.apply(this, arguments)\n }\n }\n\n // wrap setter\n if (typeof set === 'function') {\n descriptor.set = function setter () {\n log.call(deprecate, message, site)\n return set.apply(this, arguments)\n }\n }\n\n Object.defineProperty(obj, prop, descriptor)\n}\n\n/**\n * Create DeprecationError for deprecation\n */\n\nfunction DeprecationError (namespace, message, stack) {\n var error = new Error()\n var stackString\n\n Object.defineProperty(error, 'constructor', {\n value: DeprecationError\n })\n\n Object.defineProperty(error, 'message', {\n configurable: true,\n enumerable: false,\n value: message,\n writable: true\n })\n\n Object.defineProperty(error, 'name', {\n enumerable: false,\n configurable: true,\n value: 'DeprecationError',\n writable: true\n })\n\n Object.defineProperty(error, 'namespace', {\n configurable: true,\n enumerable: false,\n value: namespace,\n writable: true\n })\n\n Object.defineProperty(error, 'stack', {\n configurable: true,\n enumerable: false,\n get: function () {\n if (stackString !== undefined) {\n return stackString\n }\n\n // prepare stack trace\n return (stackString = createStackString.call(this, stack))\n },\n set: function setter (val) {\n stackString = val\n }\n })\n\n return error\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/dom-serializer/lib/foreignNames.js\":\n/*!********************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/dom-serializer/lib/foreignNames.js ***!\n \\********************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n [\"altglyph\", \"altGlyph\"],\n [\"altglyphdef\", \"altGlyphDef\"],\n [\"altglyphitem\", \"altGlyphItem\"],\n [\"animatecolor\", \"animateColor\"],\n [\"animatemotion\", \"animateMotion\"],\n [\"animatetransform\", \"animateTransform\"],\n [\"clippath\", \"clipPath\"],\n [\"feblend\", \"feBlend\"],\n [\"fecolormatrix\", \"feColorMatrix\"],\n [\"fecomponenttransfer\", \"feComponentTransfer\"],\n [\"fecomposite\", \"feComposite\"],\n [\"feconvolvematrix\", \"feConvolveMatrix\"],\n [\"fediffuselighting\", \"feDiffuseLighting\"],\n [\"fedisplacementmap\", \"feDisplacementMap\"],\n [\"fedistantlight\", \"feDistantLight\"],\n [\"fedropshadow\", \"feDropShadow\"],\n [\"feflood\", \"feFlood\"],\n [\"fefunca\", \"feFuncA\"],\n [\"fefuncb\", \"feFuncB\"],\n [\"fefuncg\", \"feFuncG\"],\n [\"fefuncr\", \"feFuncR\"],\n [\"fegaussianblur\", \"feGaussianBlur\"],\n [\"feimage\", \"feImage\"],\n [\"femerge\", \"feMerge\"],\n [\"femergenode\", \"feMergeNode\"],\n [\"femorphology\", \"feMorphology\"],\n [\"feoffset\", \"feOffset\"],\n [\"fepointlight\", \"fePointLight\"],\n [\"fespecularlighting\", \"feSpecularLighting\"],\n [\"fespotlight\", \"feSpotLight\"],\n [\"fetile\", \"feTile\"],\n [\"feturbulence\", \"feTurbulence\"],\n [\"foreignobject\", \"foreignObject\"],\n [\"glyphref\", \"glyphRef\"],\n [\"lineargradient\", \"linearGradient\"],\n [\"radialgradient\", \"radialGradient\"],\n [\"textpath\", \"textPath\"],\n]);\nexports.attributeNames = new Map([\n [\"definitionurl\", \"definitionURL\"],\n [\"attributename\", \"attributeName\"],\n [\"attributetype\", \"attributeType\"],\n [\"basefrequency\", \"baseFrequency\"],\n [\"baseprofile\", \"baseProfile\"],\n [\"calcmode\", \"calcMode\"],\n [\"clippathunits\", \"clipPathUnits\"],\n [\"diffuseconstant\", \"diffuseConstant\"],\n [\"edgemode\", \"edgeMode\"],\n [\"filterunits\", \"filterUnits\"],\n [\"glyphref\", \"glyphRef\"],\n [\"gradienttransform\", \"gradientTransform\"],\n [\"gradientunits\", \"gradientUnits\"],\n [\"kernelmatrix\", \"kernelMatrix\"],\n [\"kernelunitlength\", \"kernelUnitLength\"],\n [\"keypoints\", \"keyPoints\"],\n [\"keysplines\", \"keySplines\"],\n [\"keytimes\", \"keyTimes\"],\n [\"lengthadjust\", \"lengthAdjust\"],\n [\"limitingconeangle\", \"limitingConeAngle\"],\n [\"markerheight\", \"markerHeight\"],\n [\"markerunits\", \"markerUnits\"],\n [\"markerwidth\", \"markerWidth\"],\n [\"maskcontentunits\", \"maskContentUnits\"],\n [\"maskunits\", \"maskUnits\"],\n [\"numoctaves\", \"numOctaves\"],\n [\"pathlength\", \"pathLength\"],\n [\"patterncontentunits\", \"patternContentUnits\"],\n [\"patterntransform\", \"patternTransform\"],\n [\"patternunits\", \"patternUnits\"],\n [\"pointsatx\", \"pointsAtX\"],\n [\"pointsaty\", \"pointsAtY\"],\n [\"pointsatz\", \"pointsAtZ\"],\n [\"preservealpha\", \"preserveAlpha\"],\n [\"preserveaspectratio\", \"preserveAspectRatio\"],\n [\"primitiveunits\", \"primitiveUnits\"],\n [\"refx\", \"refX\"],\n [\"refy\", \"refY\"],\n [\"repeatcount\", \"repeatCount\"],\n [\"repeatdur\", \"repeatDur\"],\n [\"requiredextensions\", \"requiredExtensions\"],\n [\"requiredfeatures\", \"requiredFeatures\"],\n [\"specularconstant\", \"specularConstant\"],\n [\"specularexponent\", \"specularExponent\"],\n [\"spreadmethod\", \"spreadMethod\"],\n [\"startoffset\", \"startOffset\"],\n [\"stddeviation\", \"stdDeviation\"],\n [\"stitchtiles\", \"stitchTiles\"],\n [\"surfacescale\", \"surfaceScale\"],\n [\"systemlanguage\", \"systemLanguage\"],\n [\"tablevalues\", \"tableValues\"],\n [\"targetx\", \"targetX\"],\n [\"targety\", \"targetY\"],\n [\"textlength\", \"textLength\"],\n [\"viewbox\", \"viewBox\"],\n [\"viewtarget\", \"viewTarget\"],\n [\"xchannelselector\", \"xChannelSelector\"],\n [\"ychannelselector\", \"yChannelSelector\"],\n [\"zoomandpan\", \"zoomAndPan\"],\n]);\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/dom-serializer/lib/index.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/dom-serializer/lib/index.js ***!\n \\*************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(__webpack_require__(/*! domelementtype */ \"./build/cht-core-4-6/api/node_modules/domelementtype/lib/index.js\"));\nvar entities_1 = __webpack_require__(/*! entities */ \"./build/cht-core-4-6/api/node_modules/entities/lib/index.js\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_1 = __webpack_require__(/*! ./foreignNames */ \"./build/cht-core-4-6/api/node_modules/dom-serializer/lib/foreignNames.js\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n if (!attributes)\n return;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return key + \"=\\\"\" + (opts.decodeEntities !== false\n ? entities_1.encodeXML(value)\n : value.replace(/\"/g, \""\")) + \"\\\"\";\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n case ElementType.Directive:\n case ElementType.Doctype:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\" + elem.name;\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \" + attribs;\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"\";\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\" + elem.data + \">\";\n}\nfunction renderText(elem, opts) {\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (opts.decodeEntities !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data = entities_1.encodeXML(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"\";\n}\nfunction renderComment(elem) {\n return \"\";\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/domelementtype/lib/index.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/domelementtype/lib/index.js ***!\n \\*************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for or ...\n const closeMarkup = ``;\n const index = (() => {\n if (options.lowerCaseTagName) {\n return data.toLocaleLowerCase().indexOf(closeMarkup, kMarkupPattern.lastIndex);\n }\n return data.indexOf(closeMarkup, kMarkupPattern.lastIndex);\n })();\n if (element_should_be_ignore(match[2])) {\n let text;\n if (index === -1) {\n // there is no matching ending for the text element.\n text = data.substr(kMarkupPattern.lastIndex);\n }\n else {\n text = data.substring(kMarkupPattern.lastIndex, index);\n }\n if (text.length > 0) {\n currentParent.appendChild(new _text__WEBPACK_IMPORTED_MODULE_4__.default(text, currentParent));\n }\n }\n if (index === -1) {\n lastTextPos = kMarkupPattern.lastIndex = data.length + 1;\n }\n else {\n lastTextPos = kMarkupPattern.lastIndex = index + closeMarkup.length;\n match[1] = 'true';\n }\n }\n }\n if (match[1] || match[4] || kSelfClosingElements[match[2]]) {\n // or
              etc.\n while (true) {\n if (currentParent.rawTagName === match[2]) {\n stack.pop();\n currentParent = (0,_back__WEBPACK_IMPORTED_MODULE_6__.default)(stack);\n break;\n }\n else {\n const tagName = currentParent.tagName;\n // Trying to close current tag, and move on\n if (kElementsClosedByClosing[tagName]) {\n if (kElementsClosedByClosing[tagName][match[2]]) {\n stack.pop();\n currentParent = (0,_back__WEBPACK_IMPORTED_MODULE_6__.default)(stack);\n continue;\n }\n }\n // Use aggressive strategy to handle unmatching markups.\n break;\n }\n }\n }\n }\n return stack;\n}\n/**\n * Parses HTML and returns a root element\n * Parse a chuck of HTML source.\n */\nfunction parse(data, options = { lowerCaseTagName: false, comment: false }) {\n const stack = base_parse(data, options);\n const [root] = stack;\n while (stack.length > 1) {\n // Handle each error elements.\n const last = stack.pop();\n const oneBefore = (0,_back__WEBPACK_IMPORTED_MODULE_6__.default)(stack);\n if (last.parentNode && last.parentNode.parentNode) {\n if (last.parentNode === oneBefore && last.tagName === oneBefore.tagName) {\n // Pair error case

              handle : Fixes to

              \n oneBefore.removeChild(last);\n last.childNodes.forEach((child) => {\n oneBefore.parentNode.appendChild(child);\n });\n stack.pop();\n }\n else {\n // Single error

              handle: Just removes

              \n oneBefore.removeChild(last);\n last.childNodes.forEach((child) => {\n oneBefore.appendChild(child);\n });\n }\n }\n else {\n // If it's final element just skip.\n }\n }\n // response.childNodes.forEach((node) => {\n // \tif (node instanceof HTMLElement) {\n // \t\tnode.parentNode = null;\n // \t}\n // });\n return root;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/node.js\":\n/*!*************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/node.js ***!\n \\*************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Node)\n/* harmony export */ });\n/**\n * Node Class as base class for TextNode and HTMLElement.\n */\nclass Node {\n constructor(parentNode = null) {\n this.parentNode = parentNode;\n this.childNodes = [];\n }\n get innerText() {\n return this.rawText;\n }\n get textContent() {\n return this.rawText;\n }\n set textContent(val) {\n this.rawText = val;\n }\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/text.js\":\n/*!*************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/text.js ***!\n \\*************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ TextNode)\n/* harmony export */ });\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./type */ \"./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/type.js\");\n/* harmony import */ var _node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node */ \"./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/node.js\");\n\n\n/**\n * TextNode to contain a text element in DOM tree.\n * @param {string} value [description]\n */\nclass TextNode extends _node__WEBPACK_IMPORTED_MODULE_0__.default {\n constructor(rawText, parentNode) {\n super(parentNode);\n this.rawText = rawText;\n /**\n * Node Type declaration.\n * @type {Number}\n */\n this.nodeType = _type__WEBPACK_IMPORTED_MODULE_1__.default.TEXT_NODE;\n }\n /**\n * Returns text with all whitespace trimmed except single leading/trailing non-breaking space\n */\n get trimmedText() {\n if (this._trimmedText !== undefined)\n return this._trimmedText;\n const text = this.rawText;\n let i = 0;\n let startPos;\n let endPos;\n while (i >= 0 && i < text.length) {\n if (/\\S/.test(text[i])) {\n if (startPos === undefined) {\n startPos = i;\n i = text.length;\n }\n else {\n endPos = i;\n i = void 0;\n }\n }\n if (startPos === undefined)\n i++;\n else\n i--;\n }\n if (startPos === undefined)\n startPos = 0;\n if (endPos === undefined)\n endPos = text.length - 1;\n const hasLeadingSpace = startPos > 0 && /[^\\S\\r\\n]/.test(text[startPos - 1]);\n const hasTrailingSpace = endPos < (text.length - 1) && /[^\\S\\r\\n]/.test(text[endPos + 1]);\n this._trimmedText = (hasLeadingSpace ? ' ' : '') + text.slice(startPos, endPos + 1) + (hasTrailingSpace ? ' ' : '');\n return this._trimmedText;\n }\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n get text() {\n return this.rawText;\n }\n /**\n * Detect if the node contains only white space.\n * @return {bool}\n */\n get isWhitespace() {\n return /^(\\s| )*$/.test(this.rawText);\n }\n toString() {\n return this.text;\n }\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/type.js\":\n/*!*************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/type.js ***!\n \\*************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nvar NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType[NodeType[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType[NodeType[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n})(NodeType || (NodeType = {}));\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NodeType);\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/valid.js\":\n/*!********************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/valid.js ***!\n \\********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ valid)\n/* harmony export */ });\n/* harmony import */ var _nodes_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./nodes/html */ \"./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/html.js\");\n\n/**\n * Parses HTML and returns a root element\n * Parse a chuck of HTML source.\n */\nfunction valid(data, options = { lowerCaseTagName: false, comment: false }) {\n const stack = (0,_nodes_html__WEBPACK_IMPORTED_MODULE_0__.base_parse)(data, options);\n return Boolean(stack.length === 1);\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/nth-check/lib/compile.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/nth-check/lib/compile.js ***!\n \\**********************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.generate = exports.compile = void 0;\nvar boolbase_1 = __importDefault(__webpack_require__(/*! boolbase */ \"./build/cht-core-4-6/api/node_modules/boolbase/index.js\"));\n/**\n * Returns a function that checks if an elements index matches the given rule\n * highly optimized to return the fastest solution.\n *\n * @param parsed A tuple [a, b], as returned by `parse`.\n * @returns A highly optimized function that returns whether an index matches the nth-check.\n * @example\n *\n * ```js\n * const check = nthCheck.compile([2, 3]);\n *\n * check(0); // `false`\n * check(1); // `false`\n * check(2); // `true`\n * check(3); // `false`\n * check(4); // `true`\n * check(5); // `false`\n * check(6); // `true`\n * ```\n */\nfunction compile(parsed) {\n var a = parsed[0];\n // Subtract 1 from `b`, to convert from one- to zero-indexed.\n var b = parsed[1] - 1;\n /*\n * When `b <= 0`, `a * n` won't be lead to any matches for `a < 0`.\n * Besides, the specification states that no elements are\n * matched when `a` and `b` are 0.\n *\n * `b < 0` here as we subtracted 1 from `b` above.\n */\n if (b < 0 && a <= 0)\n return boolbase_1.default.falseFunc;\n // When `a` is in the range -1..1, it matches any element (so only `b` is checked).\n if (a === -1)\n return function (index) { return index <= b; };\n if (a === 0)\n return function (index) { return index === b; };\n // When `b <= 0` and `a === 1`, they match any element.\n if (a === 1)\n return b < 0 ? boolbase_1.default.trueFunc : function (index) { return index >= b; };\n /*\n * Otherwise, modulo can be used to check if there is a match.\n *\n * Modulo doesn't care about the sign, so let's use `a`s absolute value.\n */\n var absA = Math.abs(a);\n // Get `b mod a`, + a if this is negative.\n var bMod = ((b % absA) + absA) % absA;\n return a > 1\n ? function (index) { return index >= b && index % absA === bMod; }\n : function (index) { return index <= b && index % absA === bMod; };\n}\nexports.compile = compile;\n/**\n * Returns a function that produces a monotonously increasing sequence of indices.\n *\n * If the sequence has an end, the returned function will return `null` after\n * the last index in the sequence.\n *\n * @param parsed A tuple [a, b], as returned by `parse`.\n * @returns A function that produces a sequence of indices.\n * @example Always increasing (2n+3)\n *\n * ```js\n * const gen = nthCheck.generate([2, 3])\n *\n * gen() // `1`\n * gen() // `3`\n * gen() // `5`\n * gen() // `8`\n * gen() // `11`\n * ```\n *\n * @example With end value (-2n+10)\n *\n * ```js\n *\n * const gen = nthCheck.generate([-2, 5]);\n *\n * gen() // 0\n * gen() // 2\n * gen() // 4\n * gen() // null\n * ```\n */\nfunction generate(parsed) {\n var a = parsed[0];\n // Subtract 1 from `b`, to convert from one- to zero-indexed.\n var b = parsed[1] - 1;\n var n = 0;\n // Make sure to always return an increasing sequence\n if (a < 0) {\n var aPos_1 = -a;\n // Get `b mod a`\n var minValue_1 = ((b % aPos_1) + aPos_1) % aPos_1;\n return function () {\n var val = minValue_1 + aPos_1 * n++;\n return val > b ? null : val;\n };\n }\n if (a === 0)\n return b < 0\n ? // There are no result — always return `null`\n function () { return null; }\n : // Return `b` exactly once\n function () { return (n++ === 0 ? b : null); };\n if (b < 0) {\n b += a * Math.ceil(-b / a);\n }\n return function () { return a * n++ + b; };\n}\nexports.generate = generate;\n//# sourceMappingURL=compile.js.map\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/nth-check/lib/index.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/nth-check/lib/index.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.sequence = exports.generate = exports.compile = exports.parse = void 0;\nvar parse_js_1 = __webpack_require__(/*! ./parse.js */ \"./build/cht-core-4-6/api/node_modules/nth-check/lib/parse.js\");\nObject.defineProperty(exports, \"parse\", ({ enumerable: true, get: function () { return parse_js_1.parse; } }));\nvar compile_js_1 = __webpack_require__(/*! ./compile.js */ \"./build/cht-core-4-6/api/node_modules/nth-check/lib/compile.js\");\nObject.defineProperty(exports, \"compile\", ({ enumerable: true, get: function () { return compile_js_1.compile; } }));\nObject.defineProperty(exports, \"generate\", ({ enumerable: true, get: function () { return compile_js_1.generate; } }));\n/**\n * Parses and compiles a formula to a highly optimized function.\n * Combination of {@link parse} and {@link compile}.\n *\n * If the formula doesn't match any elements,\n * it returns [`boolbase`](https://github.com/fb55/boolbase)'s `falseFunc`.\n * Otherwise, a function accepting an _index_ is returned, which returns\n * whether or not the passed _index_ matches the formula.\n *\n * Note: The nth-rule starts counting at `1`, the returned function at `0`.\n *\n * @param formula The formula to compile.\n * @example\n * const check = nthCheck(\"2n+3\");\n *\n * check(0); // `false`\n * check(1); // `false`\n * check(2); // `true`\n * check(3); // `false`\n * check(4); // `true`\n * check(5); // `false`\n * check(6); // `true`\n */\nfunction nthCheck(formula) {\n return (0, compile_js_1.compile)((0, parse_js_1.parse)(formula));\n}\nexports.default = nthCheck;\n/**\n * Parses and compiles a formula to a generator that produces a sequence of indices.\n * Combination of {@link parse} and {@link generate}.\n *\n * @param formula The formula to compile.\n * @returns A function that produces a sequence of indices.\n * @example Always increasing\n *\n * ```js\n * const gen = nthCheck.sequence('2n+3')\n *\n * gen() // `1`\n * gen() // `3`\n * gen() // `5`\n * gen() // `8`\n * gen() // `11`\n * ```\n *\n * @example With end value\n *\n * ```js\n *\n * const gen = nthCheck.sequence('-2n+5');\n *\n * gen() // 0\n * gen() // 2\n * gen() // 4\n * gen() // null\n * ```\n */\nfunction sequence(formula) {\n return (0, compile_js_1.generate)((0, parse_js_1.parse)(formula));\n}\nexports.sequence = sequence;\n//# sourceMappingURL=index.js.map\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/nth-check/lib/parse.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/nth-check/lib/parse.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n// Following http://www.w3.org/TR/css3-selectors/#nth-child-pseudo\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.parse = void 0;\n// Whitespace as per https://www.w3.org/TR/selectors-3/#lex is \" \\t\\r\\n\\f\"\nvar whitespace = new Set([9, 10, 12, 13, 32]);\nvar ZERO = \"0\".charCodeAt(0);\nvar NINE = \"9\".charCodeAt(0);\n/**\n * Parses an expression.\n *\n * @throws An `Error` if parsing fails.\n * @returns An array containing the integer step size and the integer offset of the nth rule.\n * @example nthCheck.parse(\"2n+3\"); // returns [2, 3]\n */\nfunction parse(formula) {\n formula = formula.trim().toLowerCase();\n if (formula === \"even\") {\n return [2, 0];\n }\n else if (formula === \"odd\") {\n return [2, 1];\n }\n // Parse [ ['-'|'+']? INTEGER? {N} [ S* ['-'|'+'] S* INTEGER ]?\n var idx = 0;\n var a = 0;\n var sign = readSign();\n var number = readNumber();\n if (idx < formula.length && formula.charAt(idx) === \"n\") {\n idx++;\n a = sign * (number !== null && number !== void 0 ? number : 1);\n skipWhitespace();\n if (idx < formula.length) {\n sign = readSign();\n skipWhitespace();\n number = readNumber();\n }\n else {\n sign = number = 0;\n }\n }\n // Throw if there is anything else\n if (number === null || idx < formula.length) {\n throw new Error(\"n-th rule couldn't be parsed ('\".concat(formula, \"')\"));\n }\n return [a, sign * number];\n function readSign() {\n if (formula.charAt(idx) === \"-\") {\n idx++;\n return -1;\n }\n if (formula.charAt(idx) === \"+\") {\n idx++;\n }\n return 1;\n }\n function readNumber() {\n var start = idx;\n var value = 0;\n while (idx < formula.length &&\n formula.charCodeAt(idx) >= ZERO &&\n formula.charCodeAt(idx) <= NINE) {\n value = value * 10 + (formula.charCodeAt(idx) - ZERO);\n idx++;\n }\n // Return `null` if we didn't read anything.\n return idx === start ? null : value;\n }\n function skipWhitespace() {\n while (idx < formula.length &&\n whitespace.has(formula.charCodeAt(idx))) {\n idx++;\n }\n }\n}\nexports.parse = parse;\n//# sourceMappingURL=parse.js.map\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/on-finished/index.js\":\n/*!******************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/on-finished/index.js ***!\n \\******************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n/*!\n * on-finished\n * Copyright(c) 2013 Jonathan Ong\n * Copyright(c) 2014 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = onFinished\nmodule.exports.isFinished = isFinished\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar first = __webpack_require__(/*! ee-first */ \"./build/cht-core-4-6/api/node_modules/ee-first/index.js\")\n\n/**\n * Variables.\n * @private\n */\n\n/* istanbul ignore next */\nvar defer = typeof setImmediate === 'function'\n ? setImmediate\n : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) }\n\n/**\n * Invoke callback when the response has finished, useful for\n * cleaning up resources afterwards.\n *\n * @param {object} msg\n * @param {function} listener\n * @return {object}\n * @public\n */\n\nfunction onFinished(msg, listener) {\n if (isFinished(msg) !== false) {\n defer(listener, null, msg)\n return msg\n }\n\n // attach the listener to the message\n attachListener(msg, listener)\n\n return msg\n}\n\n/**\n * Determine if message is already finished.\n *\n * @param {object} msg\n * @return {boolean}\n * @public\n */\n\nfunction isFinished(msg) {\n var socket = msg.socket\n\n if (typeof msg.finished === 'boolean') {\n // OutgoingMessage\n return Boolean(msg.finished || (socket && !socket.writable))\n }\n\n if (typeof msg.complete === 'boolean') {\n // IncomingMessage\n return Boolean(msg.upgrade || !socket || !socket.readable || (msg.complete && !msg.readable))\n }\n\n // don't know\n return undefined\n}\n\n/**\n * Attach a finished listener to the message.\n *\n * @param {object} msg\n * @param {function} callback\n * @private\n */\n\nfunction attachFinishedListener(msg, callback) {\n var eeMsg\n var eeSocket\n var finished = false\n\n function onFinish(error) {\n eeMsg.cancel()\n eeSocket.cancel()\n\n finished = true\n callback(error)\n }\n\n // finished on first message event\n eeMsg = eeSocket = first([[msg, 'end', 'finish']], onFinish)\n\n function onSocket(socket) {\n // remove listener\n msg.removeListener('socket', onSocket)\n\n if (finished) return\n if (eeMsg !== eeSocket) return\n\n // finished on first socket event\n eeSocket = first([[socket, 'error', 'close']], onFinish)\n }\n\n if (msg.socket) {\n // socket already assigned\n onSocket(msg.socket)\n return\n }\n\n // wait for socket to be assigned\n msg.on('socket', onSocket)\n\n if (msg.socket === undefined) {\n // node.js 0.8 patch\n patchAssignSocket(msg, onSocket)\n }\n}\n\n/**\n * Attach the listener to the message.\n *\n * @param {object} msg\n * @return {function}\n * @private\n */\n\nfunction attachListener(msg, listener) {\n var attached = msg.__onFinished\n\n // create a private single listener with queue\n if (!attached || !attached.queue) {\n attached = msg.__onFinished = createListener(msg)\n attachFinishedListener(msg, attached)\n }\n\n attached.queue.push(listener)\n}\n\n/**\n * Create listener on message.\n *\n * @param {object} msg\n * @return {function}\n * @private\n */\n\nfunction createListener(msg) {\n function listener(err) {\n if (msg.__onFinished === listener) msg.__onFinished = null\n if (!listener.queue) return\n\n var queue = listener.queue\n listener.queue = null\n\n for (var i = 0; i < queue.length; i++) {\n queue[i](err, msg)\n }\n }\n\n listener.queue = []\n\n return listener\n}\n\n/**\n * Patch ServerResponse.prototype.assignSocket for node.js 0.8.\n *\n * @param {ServerResponse} res\n * @param {function} callback\n * @private\n */\n\nfunction patchAssignSocket(res, callback) {\n var assignSocket = res.assignSocket\n\n if (typeof assignSocket !== 'function') return\n\n // res.on('socket', callback) is broken in 0.8\n res.assignSocket = function _assignSocket(socket) {\n assignSocket.call(this, socket)\n callback(socket)\n }\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/on-headers/index.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/on-headers/index.js ***!\n \\*****************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\n/*!\n * on-headers\n * Copyright(c) 2014 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = onHeaders\n\n/**\n * Create a replacement writeHead method.\n *\n * @param {function} prevWriteHead\n * @param {function} listener\n * @private\n */\n\nfunction createWriteHead (prevWriteHead, listener) {\n var fired = false\n\n // return function with core name and argument list\n return function writeHead (statusCode) {\n // set headers from arguments\n var args = setWriteHeadHeaders.apply(this, arguments)\n\n // fire listener\n if (!fired) {\n fired = true\n listener.call(this)\n\n // pass-along an updated status code\n if (typeof args[0] === 'number' && this.statusCode !== args[0]) {\n args[0] = this.statusCode\n args.length = 1\n }\n }\n\n return prevWriteHead.apply(this, args)\n }\n}\n\n/**\n * Execute a listener when a response is about to write headers.\n *\n * @param {object} res\n * @return {function} listener\n * @public\n */\n\nfunction onHeaders (res, listener) {\n if (!res) {\n throw new TypeError('argument res is required')\n }\n\n if (typeof listener !== 'function') {\n throw new TypeError('argument listener must be a function')\n }\n\n res.writeHead = createWriteHead(res.writeHead, listener)\n}\n\n/**\n * Set headers contained in array on the response object.\n *\n * @param {object} res\n * @param {array} headers\n * @private\n */\n\nfunction setHeadersFromArray (res, headers) {\n for (var i = 0; i < headers.length; i++) {\n res.setHeader(headers[i][0], headers[i][1])\n }\n}\n\n/**\n * Set headers contained in object on the response object.\n *\n * @param {object} res\n * @param {object} headers\n * @private\n */\n\nfunction setHeadersFromObject (res, headers) {\n var keys = Object.keys(headers)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n if (k) res.setHeader(k, headers[k])\n }\n}\n\n/**\n * Set headers and other properties on the response object.\n *\n * @param {number} statusCode\n * @private\n */\n\nfunction setWriteHeadHeaders (statusCode) {\n var length = arguments.length\n var headerIndex = length > 1 && typeof arguments[1] === 'string'\n ? 2\n : 1\n\n var headers = length >= headerIndex + 1\n ? arguments[headerIndex]\n : undefined\n\n this.statusCode = statusCode\n\n if (Array.isArray(headers)) {\n // handle array case\n setHeadersFromArray(this, headers)\n } else if (headers) {\n // handle object case\n setHeadersFromObject(this, headers)\n }\n\n // copy leading arguments\n var args = new Array(Math.min(length, headerIndex))\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n\n return args\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/one-time/index.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/one-time/index.js ***!\n \\***************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nvar name = __webpack_require__(/*! fn.name */ \"./build/cht-core-4-6/api/node_modules/fn.name/index.js\");\n\n/**\n * Wrap callbacks to prevent double execution.\n *\n * @param {Function} fn Function that should only be called once.\n * @returns {Function} A wrapped callback which prevents multiple executions.\n * @public\n */\nmodule.exports = function one(fn) {\n var called = 0\n , value;\n\n /**\n * The function that prevents double execution.\n *\n * @private\n */\n function onetime() {\n if (called) return value;\n\n called = 1;\n value = fn.apply(this, arguments);\n fn = null;\n\n return value;\n }\n\n //\n // To make debugging more easy we want to use the name of the supplied\n // function. So when you look at the functions that are assigned to event\n // listeners you don't see a load of `onetime` functions but actually the\n // names of the functions that this module will call.\n //\n // NOTE: We cannot override the `name` property, as that is `readOnly`\n // property, so displayName will have to do.\n //\n onetime.displayName = name(fn);\n return onetime;\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/safe-buffer/index.js\":\n/*!******************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/safe-buffer/index.js ***!\n \\******************************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\n/* eslint-disable node/no-deprecated-api */\nvar buffer = __webpack_require__(/*! buffer */ \"buffer\")\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/safe-stable-stringify/index.js\":\n/*!****************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/safe-stable-stringify/index.js ***!\n \\****************************************************************************/\n/***/ ((module, exports) => {\n\n\"use strict\";\n\n\nconst { hasOwnProperty } = Object.prototype\n\nconst stringify = configure()\n\n// @ts-expect-error\nstringify.configure = configure\n// @ts-expect-error\nstringify.stringify = stringify\n\n// @ts-expect-error\nstringify.default = stringify\n\n// @ts-expect-error used for named export\nexports.stringify = stringify\n// @ts-expect-error used for named export\nexports.configure = configure\n\nmodule.exports = stringify\n\n// eslint-disable-next-line no-control-regex\nconst strEscapeSequencesRegExp = /[\\u0000-\\u001f\\u0022\\u005c\\ud800-\\udfff]|[\\ud800-\\udbff](?![\\udc00-\\udfff])|(?:[^\\ud800-\\udbff]|^)[\\udc00-\\udfff]/\nconst strEscapeSequencesReplacer = new RegExp(strEscapeSequencesRegExp, 'g')\n\n// Escaped special characters. Use empty strings to fill up unused entries.\nconst meta = [\n '\\\\u0000', '\\\\u0001', '\\\\u0002', '\\\\u0003', '\\\\u0004',\n '\\\\u0005', '\\\\u0006', '\\\\u0007', '\\\\b', '\\\\t',\n '\\\\n', '\\\\u000b', '\\\\f', '\\\\r', '\\\\u000e',\n '\\\\u000f', '\\\\u0010', '\\\\u0011', '\\\\u0012', '\\\\u0013',\n '\\\\u0014', '\\\\u0015', '\\\\u0016', '\\\\u0017', '\\\\u0018',\n '\\\\u0019', '\\\\u001a', '\\\\u001b', '\\\\u001c', '\\\\u001d',\n '\\\\u001e', '\\\\u001f', '', '', '\\\\\"',\n '', '', '', '', '', '', '', '', '', '',\n '', '', '', '', '', '', '', '', '', '',\n '', '', '', '', '', '', '', '', '', '',\n '', '', '', '', '', '', '', '', '', '',\n '', '', '', '', '', '', '', '', '', '',\n '', '', '', '', '', '', '', '\\\\\\\\'\n]\n\nfunction escapeFn (str) {\n if (str.length === 2) {\n const charCode = str.charCodeAt(1)\n return `${str[0]}\\\\u${charCode.toString(16)}`\n }\n const charCode = str.charCodeAt(0)\n return meta.length > charCode\n ? meta[charCode]\n : `\\\\u${charCode.toString(16)}`\n}\n\n// Escape C0 control characters, double quotes, the backslash and every code\n// unit with a numeric value in the inclusive range 0xD800 to 0xDFFF.\nfunction strEscape (str) {\n // Some magic numbers that worked out fine while benchmarking with v8 8.0\n if (str.length < 5000 && !strEscapeSequencesRegExp.test(str)) {\n return str\n }\n if (str.length > 100) {\n return str.replace(strEscapeSequencesReplacer, escapeFn)\n }\n let result = ''\n let last = 0\n for (let i = 0; i < str.length; i++) {\n const point = str.charCodeAt(i)\n if (point === 34 || point === 92 || point < 32) {\n result += `${str.slice(last, i)}${meta[point]}`\n last = i + 1\n } else if (point >= 0xd800 && point <= 0xdfff) {\n if (point <= 0xdbff && i + 1 < str.length) {\n const nextPoint = str.charCodeAt(i + 1)\n if (nextPoint >= 0xdc00 && nextPoint <= 0xdfff) {\n i++\n continue\n }\n }\n result += `${str.slice(last, i)}\\\\u${point.toString(16)}`\n last = i + 1\n }\n }\n result += str.slice(last)\n return result\n}\n\nfunction insertSort (array) {\n // Insertion sort is very efficient for small input sizes but it has a bad\n // worst case complexity. Thus, use native array sort for bigger values.\n if (array.length > 2e2) {\n return array.sort()\n }\n for (let i = 1; i < array.length; i++) {\n const currentValue = array[i]\n let position = i\n while (position !== 0 && array[position - 1] > currentValue) {\n array[position] = array[position - 1]\n position--\n }\n array[position] = currentValue\n }\n return array\n}\n\nconst typedArrayPrototypeGetSymbolToStringTag =\n Object.getOwnPropertyDescriptor(\n Object.getPrototypeOf(\n Object.getPrototypeOf(\n new Int8Array()\n )\n ),\n Symbol.toStringTag\n ).get\n\nfunction isTypedArrayWithEntries (value) {\n return typedArrayPrototypeGetSymbolToStringTag.call(value) !== undefined && value.length !== 0\n}\n\nfunction stringifyTypedArray (array, separator, maximumBreadth) {\n if (array.length < maximumBreadth) {\n maximumBreadth = array.length\n }\n const whitespace = separator === ',' ? '' : ' '\n let res = `\"0\":${whitespace}${array[0]}`\n for (let i = 1; i < maximumBreadth; i++) {\n res += `${separator}\"${i}\":${whitespace}${array[i]}`\n }\n return res\n}\n\nfunction getCircularValueOption (options) {\n if (hasOwnProperty.call(options, 'circularValue')) {\n const circularValue = options.circularValue\n if (typeof circularValue === 'string') {\n return `\"${circularValue}\"`\n }\n if (circularValue == null) {\n return circularValue\n }\n if (circularValue === Error || circularValue === TypeError) {\n return {\n toString () {\n throw new TypeError('Converting circular structure to JSON')\n }\n }\n }\n throw new TypeError('The \"circularValue\" argument must be of type string or the value null or undefined')\n }\n return '\"[Circular]\"'\n}\n\nfunction getBooleanOption (options, key) {\n let value\n if (hasOwnProperty.call(options, key)) {\n value = options[key]\n if (typeof value !== 'boolean') {\n throw new TypeError(`The \"${key}\" argument must be of type boolean`)\n }\n }\n return value === undefined ? true : value\n}\n\nfunction getPositiveIntegerOption (options, key) {\n let value\n if (hasOwnProperty.call(options, key)) {\n value = options[key]\n if (typeof value !== 'number') {\n throw new TypeError(`The \"${key}\" argument must be of type number`)\n }\n if (!Number.isInteger(value)) {\n throw new TypeError(`The \"${key}\" argument must be an integer`)\n }\n if (value < 1) {\n throw new RangeError(`The \"${key}\" argument must be >= 1`)\n }\n }\n return value === undefined ? Infinity : value\n}\n\nfunction getItemCount (number) {\n if (number === 1) {\n return '1 item'\n }\n return `${number} items`\n}\n\nfunction getUniqueReplacerSet (replacerArray) {\n const replacerSet = new Set()\n for (const value of replacerArray) {\n if (typeof value === 'string' || typeof value === 'number') {\n replacerSet.add(String(value))\n }\n }\n return replacerSet\n}\n\nfunction getStrictOption (options) {\n if (hasOwnProperty.call(options, 'strict')) {\n const value = options.strict\n if (typeof value !== 'boolean') {\n throw new TypeError('The \"strict\" argument must be of type boolean')\n }\n if (value) {\n return (value) => {\n let message = `Object can not safely be stringified. Received type ${typeof value}`\n if (typeof value !== 'function') message += ` (${value.toString()})`\n throw new Error(message)\n }\n }\n }\n}\n\nfunction configure (options) {\n options = { ...options }\n const fail = getStrictOption(options)\n if (fail) {\n if (options.bigint === undefined) {\n options.bigint = false\n }\n if (!('circularValue' in options)) {\n options.circularValue = Error\n }\n }\n const circularValue = getCircularValueOption(options)\n const bigint = getBooleanOption(options, 'bigint')\n const deterministic = getBooleanOption(options, 'deterministic')\n const maximumDepth = getPositiveIntegerOption(options, 'maximumDepth')\n const maximumBreadth = getPositiveIntegerOption(options, 'maximumBreadth')\n\n function stringifyFnReplacer (key, parent, stack, replacer, spacer, indentation) {\n let value = parent[key]\n\n if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n value = replacer.call(parent, key, value)\n\n switch (typeof value) {\n case 'string':\n return `\"${strEscape(value)}\"`\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n\n let res = ''\n let join = ','\n const originalIndentation = indentation\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n if (spacer !== '') {\n indentation += spacer\n res += `\\n${indentation}`\n join = `,\\n${indentation}`\n }\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifyFnReplacer(i, value, stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyFnReplacer(i, value, stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n if (spacer !== '') {\n res += `\\n${originalIndentation}`\n }\n stack.pop()\n return `[${res}]`\n }\n\n let keys = Object.keys(value)\n const keyLength = keys.length\n if (keyLength === 0) {\n return '{}'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Object]\"'\n }\n let whitespace = ''\n let separator = ''\n if (spacer !== '') {\n indentation += spacer\n join = `,\\n${indentation}`\n whitespace = ' '\n }\n let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n if (isTypedArrayWithEntries(value)) {\n res += stringifyTypedArray(value, join, maximumBreadth)\n keys = keys.slice(value.length)\n maximumPropertiesToStringify -= value.length\n separator = join\n }\n if (deterministic) {\n keys = insertSort(keys)\n }\n stack.push(value)\n for (let i = 0; i < maximumPropertiesToStringify; i++) {\n const key = keys[i]\n const tmp = stringifyFnReplacer(key, value, stack, replacer, spacer, indentation)\n if (tmp !== undefined) {\n res += `${separator}\"${strEscape(key)}\":${whitespace}${tmp}`\n separator = join\n }\n }\n if (keyLength > maximumBreadth) {\n const removedKeys = keyLength - maximumBreadth\n res += `${separator}\"...\":${whitespace}\"${getItemCount(removedKeys)} not stringified\"`\n separator = join\n }\n if (spacer !== '' && separator.length > 1) {\n res = `\\n${indentation}${res}\\n${originalIndentation}`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringifyArrayReplacer (key, value, stack, replacer, spacer, indentation) {\n if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n\n switch (typeof value) {\n case 'string':\n return `\"${strEscape(value)}\"`\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n\n const originalIndentation = indentation\n let res = ''\n let join = ','\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n if (spacer !== '') {\n indentation += spacer\n res += `\\n${indentation}`\n join = `,\\n${indentation}`\n }\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifyArrayReplacer(i, value[i], stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyArrayReplacer(i, value[i], stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n if (spacer !== '') {\n res += `\\n${originalIndentation}`\n }\n stack.pop()\n return `[${res}]`\n }\n if (replacer.size === 0) {\n return '{}'\n }\n stack.push(value)\n let whitespace = ''\n if (spacer !== '') {\n indentation += spacer\n join = `,\\n${indentation}`\n whitespace = ' '\n }\n let separator = ''\n for (const key of replacer) {\n const tmp = stringifyArrayReplacer(key, value[key], stack, replacer, spacer, indentation)\n if (tmp !== undefined) {\n res += `${separator}\"${strEscape(key)}\":${whitespace}${tmp}`\n separator = join\n }\n }\n if (spacer !== '' && separator.length > 1) {\n res = `\\n${indentation}${res}\\n${originalIndentation}`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringifyIndent (key, value, stack, spacer, indentation) {\n switch (typeof value) {\n case 'string':\n return `\"${strEscape(value)}\"`\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n // Prevent calling `toJSON` again.\n if (typeof value !== 'object') {\n return stringifyIndent(key, value, stack, spacer, indentation)\n }\n if (value === null) {\n return 'null'\n }\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n const originalIndentation = indentation\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n indentation += spacer\n let res = `\\n${indentation}`\n const join = `,\\n${indentation}`\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifyIndent(i, value[i], stack, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyIndent(i, value[i], stack, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n res += `\\n${originalIndentation}`\n stack.pop()\n return `[${res}]`\n }\n\n let keys = Object.keys(value)\n const keyLength = keys.length\n if (keyLength === 0) {\n return '{}'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Object]\"'\n }\n indentation += spacer\n const join = `,\\n${indentation}`\n let res = ''\n let separator = ''\n let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n if (isTypedArrayWithEntries(value)) {\n res += stringifyTypedArray(value, join, maximumBreadth)\n keys = keys.slice(value.length)\n maximumPropertiesToStringify -= value.length\n separator = join\n }\n if (deterministic) {\n keys = insertSort(keys)\n }\n stack.push(value)\n for (let i = 0; i < maximumPropertiesToStringify; i++) {\n const key = keys[i]\n const tmp = stringifyIndent(key, value[key], stack, spacer, indentation)\n if (tmp !== undefined) {\n res += `${separator}\"${strEscape(key)}\": ${tmp}`\n separator = join\n }\n }\n if (keyLength > maximumBreadth) {\n const removedKeys = keyLength - maximumBreadth\n res += `${separator}\"...\": \"${getItemCount(removedKeys)} not stringified\"`\n separator = join\n }\n if (separator !== '') {\n res = `\\n${indentation}${res}\\n${originalIndentation}`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringifySimple (key, value, stack) {\n switch (typeof value) {\n case 'string':\n return `\"${strEscape(value)}\"`\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n // Prevent calling `toJSON` again\n if (typeof value !== 'object') {\n return stringifySimple(key, value, stack)\n }\n if (value === null) {\n return 'null'\n }\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n\n let res = ''\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifySimple(i, value[i], stack)\n res += tmp !== undefined ? tmp : 'null'\n res += ','\n }\n const tmp = stringifySimple(i, value[i], stack)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `,\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n stack.pop()\n return `[${res}]`\n }\n\n let keys = Object.keys(value)\n const keyLength = keys.length\n if (keyLength === 0) {\n return '{}'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Object]\"'\n }\n let separator = ''\n let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n if (isTypedArrayWithEntries(value)) {\n res += stringifyTypedArray(value, ',', maximumBreadth)\n keys = keys.slice(value.length)\n maximumPropertiesToStringify -= value.length\n separator = ','\n }\n if (deterministic) {\n keys = insertSort(keys)\n }\n stack.push(value)\n for (let i = 0; i < maximumPropertiesToStringify; i++) {\n const key = keys[i]\n const tmp = stringifySimple(key, value[key], stack)\n if (tmp !== undefined) {\n res += `${separator}\"${strEscape(key)}\":${tmp}`\n separator = ','\n }\n }\n if (keyLength > maximumBreadth) {\n const removedKeys = keyLength - maximumBreadth\n res += `${separator}\"...\":\"${getItemCount(removedKeys)} not stringified\"`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringify (value, replacer, space) {\n if (arguments.length > 1) {\n let spacer = ''\n if (typeof space === 'number') {\n spacer = ' '.repeat(Math.min(space, 10))\n } else if (typeof space === 'string') {\n spacer = space.slice(0, 10)\n }\n if (replacer != null) {\n if (typeof replacer === 'function') {\n return stringifyFnReplacer('', { '': value }, [], replacer, spacer, '')\n }\n if (Array.isArray(replacer)) {\n return stringifyArrayReplacer('', value, [], getUniqueReplacerSet(replacer), spacer, '')\n }\n }\n if (spacer.length !== 0) {\n return stringifyIndent('', value, [], spacer, '')\n }\n }\n return stringifySimple('', value, [])\n }\n\n return stringify\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/simple-swizzle/index.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/simple-swizzle/index.js ***!\n \\*********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nvar isArrayish = __webpack_require__(/*! is-arrayish */ \"./build/cht-core-4-6/api/node_modules/is-arrayish/index.js\");\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/stack-trace/lib/stack-trace.js\":\n/*!****************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/stack-trace/lib/stack-trace.js ***!\n \\****************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\nexports.get = function(belowFn) {\n var oldLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = Infinity;\n\n var dummyObject = {};\n\n var v8Handler = Error.prepareStackTrace;\n Error.prepareStackTrace = function(dummyObject, v8StackTrace) {\n return v8StackTrace;\n };\n Error.captureStackTrace(dummyObject, belowFn || exports.get);\n\n var v8StackTrace = dummyObject.stack;\n Error.prepareStackTrace = v8Handler;\n Error.stackTraceLimit = oldLimit;\n\n return v8StackTrace;\n};\n\nexports.parse = function(err) {\n if (!err.stack) {\n return [];\n }\n\n var self = this;\n var lines = err.stack.split('\\n').slice(1);\n\n return lines\n .map(function(line) {\n if (line.match(/^\\s*[-]{4,}$/)) {\n return self._createParsedCallSite({\n fileName: line,\n lineNumber: null,\n functionName: null,\n typeName: null,\n methodName: null,\n columnNumber: null,\n 'native': null,\n });\n }\n\n var lineMatch = line.match(/at (?:(.+)\\s+\\()?(?:(.+?):(\\d+)(?::(\\d+))?|([^)]+))\\)?/);\n if (!lineMatch) {\n return;\n }\n\n var object = null;\n var method = null;\n var functionName = null;\n var typeName = null;\n var methodName = null;\n var isNative = (lineMatch[5] === 'native');\n\n if (lineMatch[1]) {\n functionName = lineMatch[1];\n var methodStart = functionName.lastIndexOf('.');\n if (functionName[methodStart-1] == '.')\n methodStart--;\n if (methodStart > 0) {\n object = functionName.substr(0, methodStart);\n method = functionName.substr(methodStart + 1);\n var objectEnd = object.indexOf('.Module');\n if (objectEnd > 0) {\n functionName = functionName.substr(objectEnd + 1);\n object = object.substr(0, objectEnd);\n }\n }\n typeName = null;\n }\n\n if (method) {\n typeName = object;\n methodName = method;\n }\n\n if (method === '') {\n methodName = null;\n functionName = null;\n }\n\n var properties = {\n fileName: lineMatch[2] || null,\n lineNumber: parseInt(lineMatch[3], 10) || null,\n functionName: functionName,\n typeName: typeName,\n methodName: methodName,\n columnNumber: parseInt(lineMatch[4], 10) || null,\n 'native': isNative,\n };\n\n return self._createParsedCallSite(properties);\n })\n .filter(function(callSite) {\n return !!callSite;\n });\n};\n\nfunction CallSite(properties) {\n for (var property in properties) {\n this[property] = properties[property];\n }\n}\n\nvar strProperties = [\n 'this',\n 'typeName',\n 'functionName',\n 'methodName',\n 'fileName',\n 'lineNumber',\n 'columnNumber',\n 'function',\n 'evalOrigin'\n];\nvar boolProperties = [\n 'topLevel',\n 'eval',\n 'native',\n 'constructor'\n];\nstrProperties.forEach(function (property) {\n CallSite.prototype[property] = null;\n CallSite.prototype['get' + property[0].toUpperCase() + property.substr(1)] = function () {\n return this[property];\n }\n});\nboolProperties.forEach(function (property) {\n CallSite.prototype[property] = false;\n CallSite.prototype['is' + property[0].toUpperCase() + property.substr(1)] = function () {\n return this[property];\n }\n});\n\nexports._createParsedCallSite = function(properties) {\n return new CallSite(properties);\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/string_decoder/lib/string_decoder.js\":\n/*!**********************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/string_decoder/lib/string_decoder.js ***!\n \\**********************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\n/**/\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./build/cht-core-4-6/api/node_modules/safe-buffer/index.js\").Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/text-hex/index.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/text-hex/index.js ***!\n \\***************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\n\n\n/***\n * Convert string to hex color.\n *\n * @param {String} str Text to hash and convert to hex.\n * @returns {String}\n * @api public\n */\nmodule.exports = function hex(str) {\n for (\n var i = 0, hash = 0;\n i < str.length;\n hash = str.charCodeAt(i++) + ((hash << 5) - hash)\n );\n\n var color = Math.floor(\n Math.abs(\n (Math.sin(hash) * 10000) % 1 * 16777216\n )\n ).toString(16);\n\n return '#' + Array(6 - color.length + 1).join('0') + color;\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/triple-beam/config/cli.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/triple-beam/config/cli.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n/**\n * cli.js: Config that conform to commonly used CLI logging levels.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\n/**\n * Default levels for the CLI configuration.\n * @type {Object}\n */\nexports.levels = {\n error: 0,\n warn: 1,\n help: 2,\n data: 3,\n info: 4,\n debug: 5,\n prompt: 6,\n verbose: 7,\n input: 8,\n silly: 9\n};\n\n/**\n * Default colors for the CLI configuration.\n * @type {Object}\n */\nexports.colors = {\n error: 'red',\n warn: 'yellow',\n help: 'cyan',\n data: 'grey',\n info: 'green',\n debug: 'blue',\n prompt: 'grey',\n verbose: 'cyan',\n input: 'grey',\n silly: 'magenta'\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/triple-beam/config/index.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/triple-beam/config/index.js ***!\n \\*************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n/**\n * index.js: Default settings for all levels that winston knows about.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\n/**\n * Export config set for the CLI.\n * @type {Object}\n */\nObject.defineProperty(exports, \"cli\", ({\n value: __webpack_require__(/*! ./cli */ \"./build/cht-core-4-6/api/node_modules/triple-beam/config/cli.js\")\n}));\n\n/**\n * Export config set for npm.\n * @type {Object}\n */\nObject.defineProperty(exports, \"npm\", ({\n value: __webpack_require__(/*! ./npm */ \"./build/cht-core-4-6/api/node_modules/triple-beam/config/npm.js\")\n}));\n\n/**\n * Export config set for the syslog.\n * @type {Object}\n */\nObject.defineProperty(exports, \"syslog\", ({\n value: __webpack_require__(/*! ./syslog */ \"./build/cht-core-4-6/api/node_modules/triple-beam/config/syslog.js\")\n}));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/triple-beam/config/npm.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/triple-beam/config/npm.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n/**\n * npm.js: Config that conform to npm logging levels.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\n/**\n * Default levels for the npm configuration.\n * @type {Object}\n */\nexports.levels = {\n error: 0,\n warn: 1,\n info: 2,\n http: 3,\n verbose: 4,\n debug: 5,\n silly: 6\n};\n\n/**\n * Default levels for the npm configuration.\n * @type {Object}\n */\nexports.colors = {\n error: 'red',\n warn: 'yellow',\n info: 'green',\n http: 'green',\n verbose: 'cyan',\n debug: 'blue',\n silly: 'magenta'\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/triple-beam/config/syslog.js\":\n/*!**************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/triple-beam/config/syslog.js ***!\n \\**************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n/**\n * syslog.js: Config that conform to syslog logging levels.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\n/**\n * Default levels for the syslog configuration.\n * @type {Object}\n */\nexports.levels = {\n emerg: 0,\n alert: 1,\n crit: 2,\n error: 3,\n warning: 4,\n notice: 5,\n info: 6,\n debug: 7\n};\n\n/**\n * Default levels for the syslog configuration.\n * @type {Object}\n */\nexports.colors = {\n emerg: 'red',\n alert: 'yellow',\n crit: 'red',\n error: 'red',\n warning: 'red',\n notice: 'yellow',\n info: 'green',\n debug: 'blue'\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/triple-beam/index.js\":\n/*!******************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/triple-beam/index.js ***!\n \\******************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\n\n/**\n * A shareable symbol constant that can be used\n * as a non-enumerable / semi-hidden level identifier\n * to allow the readable level property to be mutable for\n * operations like colorization\n *\n * @type {Symbol}\n */\nObject.defineProperty(exports, \"LEVEL\", ({\n value: Symbol.for('level')\n}));\n\n/**\n * A shareable symbol constant that can be used\n * as a non-enumerable / semi-hidden message identifier\n * to allow the final message property to not have\n * side effects on another.\n *\n * @type {Symbol}\n */\nObject.defineProperty(exports, \"MESSAGE\", ({\n value: Symbol.for('message')\n}));\n\n/**\n * A shareable symbol constant that can be used\n * as a non-enumerable / semi-hidden message identifier\n * to allow the extracted splat property be hidden\n *\n * @type {Symbol}\n */\nObject.defineProperty(exports, \"SPLAT\", ({\n value: Symbol.for('splat')\n}));\n\n/**\n * A shareable object constant that can be used\n * as a standard configuration for winston@3.\n *\n * @type {Object}\n */\nObject.defineProperty(exports, \"configs\", ({\n value: __webpack_require__(/*! ./config */ \"./build/cht-core-4-6/api/node_modules/triple-beam/config/index.js\")\n}));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/util-deprecate/node.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/util-deprecate/node.js ***!\n \\********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = __webpack_require__(/*! util */ \"util\").deprecate;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston-transport/index.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston-transport/index.js ***!\n \\************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nconst util = __webpack_require__(/*! util */ \"util\");\nconst Writable = __webpack_require__(/*! readable-stream/lib/_stream_writable.js */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js\");\nconst { LEVEL } = __webpack_require__(/*! triple-beam */ \"./build/cht-core-4-6/api/node_modules/triple-beam/index.js\");\n\n/**\n * Constructor function for the TransportStream. This is the base prototype\n * that all `winston >= 3` transports should inherit from.\n * @param {Object} options - Options for this TransportStream instance\n * @param {String} options.level - Highest level according to RFC5424.\n * @param {Boolean} options.handleExceptions - If true, info with\n * { exception: true } will be written.\n * @param {Function} options.log - Custom log function for simple Transport\n * creation\n * @param {Function} options.close - Called on \"unpipe\" from parent.\n */\nconst TransportStream = module.exports = function TransportStream(options = {}) {\n Writable.call(this, { objectMode: true, highWaterMark: options.highWaterMark });\n\n this.format = options.format;\n this.level = options.level;\n this.handleExceptions = options.handleExceptions;\n this.handleRejections = options.handleRejections;\n this.silent = options.silent;\n\n if (options.log) this.log = options.log;\n if (options.logv) this.logv = options.logv;\n if (options.close) this.close = options.close;\n\n // Get the levels from the source we are piped from.\n this.once('pipe', logger => {\n // Remark (indexzero): this bookkeeping can only support multiple\n // Logger parents with the same `levels`. This comes into play in\n // the `winston.Container` code in which `container.add` takes\n // a fully realized set of options with pre-constructed TransportStreams.\n this.levels = logger.levels;\n this.parent = logger;\n });\n\n // If and/or when the transport is removed from this instance\n this.once('unpipe', src => {\n // Remark (indexzero): this bookkeeping can only support multiple\n // Logger parents with the same `levels`. This comes into play in\n // the `winston.Container` code in which `container.add` takes\n // a fully realized set of options with pre-constructed TransportStreams.\n if (src === this.parent) {\n this.parent = null;\n if (this.close) {\n this.close();\n }\n }\n });\n};\n\n/*\n * Inherit from Writeable using Node.js built-ins\n */\nutil.inherits(TransportStream, Writable);\n\n/**\n * Writes the info object to our transport instance.\n * @param {mixed} info - TODO: add param description.\n * @param {mixed} enc - TODO: add param description.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n * @private\n */\nTransportStream.prototype._write = function _write(info, enc, callback) {\n if (this.silent || (info.exception === true && !this.handleExceptions)) {\n return callback(null);\n }\n\n // Remark: This has to be handled in the base transport now because we\n // cannot conditionally write to our pipe targets as stream. We always\n // prefer any explicit level set on the Transport itself falling back to\n // any level set on the parent.\n const level = this.level || (this.parent && this.parent.level);\n\n if (!level || this.levels[level] >= this.levels[info[LEVEL]]) {\n if (info && !this.format) {\n return this.log(info, callback);\n }\n\n let errState;\n let transformed;\n\n // We trap(and re-throw) any errors generated by the user-provided format, but also\n // guarantee that the streams callback is invoked so that we can continue flowing.\n try {\n transformed = this.format.transform(Object.assign({}, info), this.format.options);\n } catch (err) {\n errState = err;\n }\n\n if (errState || !transformed) {\n // eslint-disable-next-line callback-return\n callback();\n if (errState) throw errState;\n return;\n }\n\n return this.log(transformed, callback);\n }\n this._writableState.sync = false;\n return callback(null);\n};\n\n/**\n * Writes the batch of info objects (i.e. \"object chunks\") to our transport\n * instance after performing any necessary filtering.\n * @param {mixed} chunks - TODO: add params description.\n * @param {function} callback - TODO: add params description.\n * @returns {mixed} - TODO: add returns description.\n * @private\n */\nTransportStream.prototype._writev = function _writev(chunks, callback) {\n if (this.logv) {\n const infos = chunks.filter(this._accept, this);\n if (!infos.length) {\n return callback(null);\n }\n\n // Remark (indexzero): from a performance perspective if Transport\n // implementers do choose to implement logv should we make it their\n // responsibility to invoke their format?\n return this.logv(infos, callback);\n }\n\n for (let i = 0; i < chunks.length; i++) {\n if (!this._accept(chunks[i])) continue;\n\n if (chunks[i].chunk && !this.format) {\n this.log(chunks[i].chunk, chunks[i].callback);\n continue;\n }\n\n let errState;\n let transformed;\n\n // We trap(and re-throw) any errors generated by the user-provided format, but also\n // guarantee that the streams callback is invoked so that we can continue flowing.\n try {\n transformed = this.format.transform(\n Object.assign({}, chunks[i].chunk),\n this.format.options\n );\n } catch (err) {\n errState = err;\n }\n\n if (errState || !transformed) {\n // eslint-disable-next-line callback-return\n chunks[i].callback();\n if (errState) {\n // eslint-disable-next-line callback-return\n callback(null);\n throw errState;\n }\n } else {\n this.log(transformed, chunks[i].callback);\n }\n }\n\n return callback(null);\n};\n\n/**\n * Predicate function that returns true if the specfied `info` on the\n * WriteReq, `write`, should be passed down into the derived\n * TransportStream's I/O via `.log(info, callback)`.\n * @param {WriteReq} write - winston@3 Node.js WriteReq for the `info` object\n * representing the log message.\n * @returns {Boolean} - Value indicating if the `write` should be accepted &\n * logged.\n */\nTransportStream.prototype._accept = function _accept(write) {\n const info = write.chunk;\n if (this.silent) {\n return false;\n }\n\n // We always prefer any explicit level set on the Transport itself\n // falling back to any level set on the parent.\n const level = this.level || (this.parent && this.parent.level);\n\n // Immediately check the average case: log level filtering.\n if (\n info.exception === true ||\n !level ||\n this.levels[level] >= this.levels[info[LEVEL]]\n ) {\n // Ensure the info object is valid based on `{ exception }`:\n // 1. { handleExceptions: true }: all `info` objects are valid\n // 2. { exception: false }: accepted by all transports.\n if (this.handleExceptions || info.exception !== true) {\n return true;\n }\n }\n\n return false;\n};\n\n/**\n * _nop is short for \"No operation\"\n * @returns {Boolean} Intentionally false.\n */\nTransportStream.prototype._nop = function _nop() {\n // eslint-disable-next-line no-undefined\n return void undefined;\n};\n\n\n// Expose legacy stream\nmodule.exports.LegacyTransportStream = __webpack_require__(/*! ./legacy */ \"./build/cht-core-4-6/api/node_modules/winston-transport/legacy.js\");\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston-transport/legacy.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston-transport/legacy.js ***!\n \\*************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nconst util = __webpack_require__(/*! util */ \"util\");\nconst { LEVEL } = __webpack_require__(/*! triple-beam */ \"./build/cht-core-4-6/api/node_modules/triple-beam/index.js\");\nconst TransportStream = __webpack_require__(/*! ./ */ \"./build/cht-core-4-6/api/node_modules/winston-transport/index.js\");\n\n/**\n * Constructor function for the LegacyTransportStream. This is an internal\n * wrapper `winston >= 3` uses to wrap older transports implementing\n * log(level, message, meta).\n * @param {Object} options - Options for this TransportStream instance.\n * @param {Transpot} options.transport - winston@2 or older Transport to wrap.\n */\n\nconst LegacyTransportStream = module.exports = function LegacyTransportStream(options = {}) {\n TransportStream.call(this, options);\n if (!options.transport || typeof options.transport.log !== 'function') {\n throw new Error('Invalid transport, must be an object with a log method.');\n }\n\n this.transport = options.transport;\n this.level = this.level || options.transport.level;\n this.handleExceptions = this.handleExceptions || options.transport.handleExceptions;\n\n // Display our deprecation notice.\n this._deprecated();\n\n // Properly bubble up errors from the transport to the\n // LegacyTransportStream instance, but only once no matter how many times\n // this transport is shared.\n function transportError(err) {\n this.emit('error', err, this.transport);\n }\n\n if (!this.transport.__winstonError) {\n this.transport.__winstonError = transportError.bind(this);\n this.transport.on('error', this.transport.__winstonError);\n }\n};\n\n/*\n * Inherit from TransportStream using Node.js built-ins\n */\nutil.inherits(LegacyTransportStream, TransportStream);\n\n/**\n * Writes the info object to our transport instance.\n * @param {mixed} info - TODO: add param description.\n * @param {mixed} enc - TODO: add param description.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n * @private\n */\nLegacyTransportStream.prototype._write = function _write(info, enc, callback) {\n if (this.silent || (info.exception === true && !this.handleExceptions)) {\n return callback(null);\n }\n\n // Remark: This has to be handled in the base transport now because we\n // cannot conditionally write to our pipe targets as stream.\n if (!this.level || this.levels[this.level] >= this.levels[info[LEVEL]]) {\n this.transport.log(info[LEVEL], info.message, info, this._nop);\n }\n\n callback(null);\n};\n\n/**\n * Writes the batch of info objects (i.e. \"object chunks\") to our transport\n * instance after performing any necessary filtering.\n * @param {mixed} chunks - TODO: add params description.\n * @param {function} callback - TODO: add params description.\n * @returns {mixed} - TODO: add returns description.\n * @private\n */\nLegacyTransportStream.prototype._writev = function _writev(chunks, callback) {\n for (let i = 0; i < chunks.length; i++) {\n if (this._accept(chunks[i])) {\n this.transport.log(\n chunks[i].chunk[LEVEL],\n chunks[i].chunk.message,\n chunks[i].chunk,\n this._nop\n );\n chunks[i].callback();\n }\n }\n\n return callback(null);\n};\n\n/**\n * Displays a deprecation notice. Defined as a function so it can be\n * overriden in tests.\n * @returns {undefined}\n */\nLegacyTransportStream.prototype._deprecated = function _deprecated() {\n // eslint-disable-next-line no-console\n console.error([\n `${this.transport.name} is a legacy winston transport. Consider upgrading: `,\n '- Upgrade docs: https://github.com/winstonjs/winston/blob/master/UPGRADE-3.0.md'\n ].join('\\n'));\n};\n\n/**\n * Clean up error handling state on the legacy transport associated\n * with this instance.\n * @returns {undefined}\n */\nLegacyTransportStream.prototype.close = function close() {\n if (this.transport.close) {\n this.transport.close();\n }\n\n if (this.transport.__winstonError) {\n this.transport.removeListener('error', this.transport.__winstonError);\n this.transport.__winstonError = null;\n }\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js\":\n/*!******************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js ***!\n \\******************************************************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\n\n\nconst codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n\n function getMessage (arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message\n } else {\n return message(arg1, arg2, arg3)\n }\n }\n\n class NodeError extends Base {\n constructor (arg1, arg2, arg3) {\n super(getMessage(arg1, arg2, arg3));\n }\n }\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n const len = expected.length;\n expected = expected.map((i) => String(i));\n if (len > 2) {\n return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` +\n expected[len - 1];\n } else if (len === 2) {\n return `one of ${thing} ${expected[0]} or ${expected[1]}`;\n } else {\n return `of ${thing} ${expected[0]}`;\n }\n } else {\n return `of ${thing} ${String(expected)}`;\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n\treturn str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n\tif (this_len === undefined || this_len > str.length) {\n\t\tthis_len = str.length;\n\t}\n\treturn str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"'\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n let determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n let msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`;\n } else {\n const type = includes(name, '.') ? 'property' : 'argument';\n msg = `The \"${name}\" ${type} ${determiner} ${oneOf(expected, 'type')}`;\n }\n\n msg += `. Received type ${typeof actual}`;\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented'\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\n\nmodule.exports.codes = codes;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js\":\n/*!******************************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js ***!\n \\******************************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = __webpack_require__(/*! ./_stream_readable */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_readable.js\");\nvar Writable = __webpack_require__(/*! ./_stream_writable */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js\");\n__webpack_require__(/*! inherits */ \"./build/cht-core-4-6/api/node_modules/inherits/inherits.js\")(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_readable.js\":\n/*!********************************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_readable.js ***!\n \\********************************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = __webpack_require__(/*! events */ \"events\").EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/stream.js\");\n/**/\n\nvar Buffer = __webpack_require__(/*! buffer */ \"buffer\").Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = __webpack_require__(/*! util */ \"util\");\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = __webpack_require__(/*! ./internal/streams/buffer_list */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/buffer_list.js\");\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/destroy.js\");\nvar _require = __webpack_require__(/*! ./internal/streams/state */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/state.js\"),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js\").codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n__webpack_require__(/*! inherits */ \"./build/cht-core-4-6/api/node_modules/inherits/inherits.js\")(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js\");\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./build/cht-core-4-6/api/node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js\");\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./build/cht-core-4-6/api/node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = __webpack_require__(/*! ./internal/streams/async_iterator */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/async_iterator.js\");\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = __webpack_require__(/*! ./internal/streams/from */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/from.js\");\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js\":\n/*!********************************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js ***!\n \\********************************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: __webpack_require__(/*! util-deprecate */ \"./build/cht-core-4-6/api/node_modules/util-deprecate/node.js\")\n};\n/**/\n\n/**/\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/stream.js\");\n/**/\n\nvar Buffer = __webpack_require__(/*! buffer */ \"buffer\").Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/destroy.js\");\nvar _require = __webpack_require__(/*! ./internal/streams/state */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/state.js\"),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js\").codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n__webpack_require__(/*! inherits */ \"./build/cht-core-4-6/api/node_modules/inherits/inherits.js\")(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js\");\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js\");\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/async_iterator.js\":\n/*!***********************************************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/async_iterator.js ***!\n \\***********************************************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = __webpack_require__(/*! ./end-of-stream */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/buffer_list.js\":\n/*!********************************************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/buffer_list.js ***!\n \\********************************************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = __webpack_require__(/*! buffer */ \"buffer\"),\n Buffer = _require.Buffer;\nvar _require2 = __webpack_require__(/*! util */ \"util\"),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/destroy.js\":\n/*!****************************************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/destroy.js ***!\n \\****************************************************************************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\n\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\":\n/*!**********************************************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***!\n \\**********************************************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n\n\nvar ERR_STREAM_PREMATURE_CLOSE = __webpack_require__(/*! ../../../errors */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js\").codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/from.js\":\n/*!*************************************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/from.js ***!\n \\*************************************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar ERR_INVALID_ARG_TYPE = __webpack_require__(/*! ../../../errors */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js\").codes.ERR_INVALID_ARG_TYPE;\nfunction from(Readable, iterable, opts) {\n var iterator;\n if (iterable && typeof iterable.next === 'function') {\n iterator = iterable;\n } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable);\n var readable = new Readable(_objectSpread({\n objectMode: true\n }, opts));\n // Reading boolean to protect against _read\n // being called before last iteration completion.\n var reading = false;\n readable._read = function () {\n if (!reading) {\n reading = true;\n next();\n }\n };\n function next() {\n return _next2.apply(this, arguments);\n }\n function _next2() {\n _next2 = _asyncToGenerator(function* () {\n try {\n var _yield$iterator$next = yield iterator.next(),\n value = _yield$iterator$next.value,\n done = _yield$iterator$next.done;\n if (done) {\n readable.push(null);\n } else if (readable.push(yield value)) {\n next();\n } else {\n reading = false;\n }\n } catch (err) {\n readable.destroy(err);\n }\n });\n return _next2.apply(this, arguments);\n }\n return readable;\n}\nmodule.exports = from;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/state.js\":\n/*!**************************************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/state.js ***!\n \\**************************************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nvar ERR_INVALID_OPT_VALUE = __webpack_require__(/*! ../../../errors */ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js\").codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/stream.js\":\n/*!***************************************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/stream.js ***!\n \\***************************************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports = __webpack_require__(/*! stream */ \"stream\");\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n/**\n * winston.js: Top-level include defining Winston.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\nconst logform = __webpack_require__(/*! logform */ \"./build/cht-core-4-6/api/node_modules/logform/index.js\");\nconst { warn } = __webpack_require__(/*! ./winston/common */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/common.js\");\n\n/**\n * Expose version. Use `require` method for `webpack` support.\n * @type {string}\n */\nexports.version = __webpack_require__(/*! ../package.json */ \"./build/cht-core-4-6/api/node_modules/winston/package.json\").version;\n/**\n * Include transports defined by default by winston\n * @type {Array}\n */\nexports.transports = __webpack_require__(/*! ./winston/transports */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/index.js\");\n/**\n * Expose utility methods\n * @type {Object}\n */\nexports.config = __webpack_require__(/*! ./winston/config */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/config/index.js\");\n/**\n * Hoist format-related functionality from logform.\n * @type {Object}\n */\nexports.addColors = logform.levels;\n/**\n * Hoist format-related functionality from logform.\n * @type {Object}\n */\nexports.format = logform.format;\n/**\n * Expose core Logging-related prototypes.\n * @type {function}\n */\nexports.createLogger = __webpack_require__(/*! ./winston/create-logger */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/create-logger.js\");\n/**\n * Expose core Logging-related prototypes.\n * @type {function}\n */\nexports.Logger = __webpack_require__(/*! ./winston/logger */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/logger.js\");\n/**\n * Expose core Logging-related prototypes.\n * @type {Object}\n */\nexports.ExceptionHandler = __webpack_require__(/*! ./winston/exception-handler */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-handler.js\");\n/**\n * Expose core Logging-related prototypes.\n * @type {Object}\n */\nexports.RejectionHandler = __webpack_require__(/*! ./winston/rejection-handler */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/rejection-handler.js\");\n/**\n * Expose core Logging-related prototypes.\n * @type {Container}\n */\nexports.Container = __webpack_require__(/*! ./winston/container */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/container.js\");\n/**\n * Expose core Logging-related prototypes.\n * @type {Object}\n */\nexports.Transport = __webpack_require__(/*! winston-transport */ \"./build/cht-core-4-6/api/node_modules/winston-transport/index.js\");\n/**\n * We create and expose a default `Container` to `winston.loggers` so that the\n * programmer may manage multiple `winston.Logger` instances without any\n * additional overhead.\n * @example\n * // some-file1.js\n * const logger = require('winston').loggers.get('something');\n *\n * // some-file2.js\n * const logger = require('winston').loggers.get('something');\n */\nexports.loggers = new exports.Container();\n\n/**\n * We create and expose a 'defaultLogger' so that the programmer may do the\n * following without the need to create an instance of winston.Logger directly:\n * @example\n * const winston = require('winston');\n * winston.log('info', 'some message');\n * winston.error('some error');\n */\nconst defaultLogger = exports.createLogger();\n\n// Pass through the target methods onto `winston.\nObject.keys(exports.config.npm.levels)\n .concat([\n 'log',\n 'query',\n 'stream',\n 'add',\n 'remove',\n 'clear',\n 'profile',\n 'startTimer',\n 'handleExceptions',\n 'unhandleExceptions',\n 'handleRejections',\n 'unhandleRejections',\n 'configure',\n 'child'\n ])\n .forEach(\n method => (exports[method] = (...args) => defaultLogger[method](...args))\n );\n\n/**\n * Define getter / setter for the default logger level which need to be exposed\n * by winston.\n * @type {string}\n */\nObject.defineProperty(exports, \"level\", ({\n get() {\n return defaultLogger.level;\n },\n set(val) {\n defaultLogger.level = val;\n }\n}));\n\n/**\n * Define getter for `exceptions` which replaces `handleExceptions` and\n * `unhandleExceptions`.\n * @type {Object}\n */\nObject.defineProperty(exports, \"exceptions\", ({\n get() {\n return defaultLogger.exceptions;\n }\n}));\n\n/**\n * Define getters / setters for appropriate properties of the default logger\n * which need to be exposed by winston.\n * @type {Logger}\n */\n['exitOnError'].forEach(prop => {\n Object.defineProperty(exports, prop, {\n get() {\n return defaultLogger[prop];\n },\n set(val) {\n defaultLogger[prop] = val;\n }\n });\n});\n\n/**\n * The default transports and exceptionHandlers for the default winston logger.\n * @type {Object}\n */\nObject.defineProperty(exports, \"default\", ({\n get() {\n return {\n exceptionHandlers: defaultLogger.exceptionHandlers,\n rejectionHandlers: defaultLogger.rejectionHandlers,\n transports: defaultLogger.transports\n };\n }\n}));\n\n// Have friendlier breakage notices for properties that were exposed by default\n// on winston < 3.0.\nwarn.deprecated(exports, 'setLevels');\nwarn.forFunctions(exports, 'useFormat', ['cli']);\nwarn.forProperties(exports, 'useFormat', ['padLevels', 'stripColors']);\nwarn.forFunctions(exports, 'deprecated', [\n 'addRewriter',\n 'addFilter',\n 'clone',\n 'extend'\n]);\nwarn.forProperties(exports, 'deprecated', ['emitErrs', 'levelLength']);\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/common.js\":\n/*!***************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/common.js ***!\n \\***************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n/**\n * common.js: Internal helper and utility functions for winston.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\nconst { format } = __webpack_require__(/*! util */ \"util\");\n\n/**\n * Set of simple deprecation notices and a way to expose them for a set of\n * properties.\n * @type {Object}\n * @private\n */\nexports.warn = {\n deprecated(prop) {\n return () => {\n throw new Error(format('{ %s } was removed in winston@3.0.0.', prop));\n };\n },\n useFormat(prop) {\n return () => {\n throw new Error([\n format('{ %s } was removed in winston@3.0.0.', prop),\n 'Use a custom winston.format = winston.format(function) instead.'\n ].join('\\n'));\n };\n },\n forFunctions(obj, type, props) {\n props.forEach(prop => {\n obj[prop] = exports.warn[type](prop);\n });\n },\n forProperties(obj, type, props) {\n props.forEach(prop => {\n const notice = exports.warn[type](prop);\n Object.defineProperty(obj, prop, {\n get: notice,\n set: notice\n });\n });\n }\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/config/index.js\":\n/*!*********************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/config/index.js ***!\n \\*********************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n/**\n * index.js: Default settings for all levels that winston knows about.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\nconst logform = __webpack_require__(/*! logform */ \"./build/cht-core-4-6/api/node_modules/logform/index.js\");\nconst { configs } = __webpack_require__(/*! triple-beam */ \"./build/cht-core-4-6/api/node_modules/triple-beam/index.js\");\n\n/**\n * Export config set for the CLI.\n * @type {Object}\n */\nexports.cli = logform.levels(configs.cli);\n\n/**\n * Export config set for npm.\n * @type {Object}\n */\nexports.npm = logform.levels(configs.npm);\n\n/**\n * Export config set for the syslog.\n * @type {Object}\n */\nexports.syslog = logform.levels(configs.syslog);\n\n/**\n * Hoist addColors from logform where it was refactored into in winston@3.\n * @type {Object}\n */\nexports.addColors = logform.levels;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/container.js\":\n/*!******************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/container.js ***!\n \\******************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n/**\n * container.js: Inversion of control container for winston logger instances.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\nconst createLogger = __webpack_require__(/*! ./create-logger */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/create-logger.js\");\n\n/**\n * Inversion of control container for winston logger instances.\n * @type {Container}\n */\nmodule.exports = class Container {\n /**\n * Constructor function for the Container object responsible for managing a\n * set of `winston.Logger` instances based on string ids.\n * @param {!Object} [options={}] - Default pass-thru options for Loggers.\n */\n constructor(options = {}) {\n this.loggers = new Map();\n this.options = options;\n }\n\n /**\n * Retrieves a `winston.Logger` instance for the specified `id`. If an\n * instance does not exist, one is created.\n * @param {!string} id - The id of the Logger to get.\n * @param {?Object} [options] - Options for the Logger instance.\n * @returns {Logger} - A configured Logger instance with a specified id.\n */\n add(id, options) {\n if (!this.loggers.has(id)) {\n // Remark: Simple shallow clone for configuration options in case we pass\n // in instantiated protoypal objects\n options = Object.assign({}, options || this.options);\n const existing = options.transports || this.options.transports;\n\n // Remark: Make sure if we have an array of transports we slice it to\n // make copies of those references.\n if (existing) {\n options.transports = Array.isArray(existing) ? existing.slice() : [existing];\n } else {\n options.transports = [];\n }\n\n const logger = createLogger(options);\n logger.on('close', () => this._delete(id));\n this.loggers.set(id, logger);\n }\n\n return this.loggers.get(id);\n }\n\n /**\n * Retreives a `winston.Logger` instance for the specified `id`. If\n * an instance does not exist, one is created.\n * @param {!string} id - The id of the Logger to get.\n * @param {?Object} [options] - Options for the Logger instance.\n * @returns {Logger} - A configured Logger instance with a specified id.\n */\n get(id, options) {\n return this.add(id, options);\n }\n\n /**\n * Check if the container has a logger with the id.\n * @param {?string} id - The id of the Logger instance to find.\n * @returns {boolean} - Boolean value indicating if this instance has a\n * logger with the specified `id`.\n */\n has(id) {\n return !!this.loggers.has(id);\n }\n\n /**\n * Closes a `Logger` instance with the specified `id` if it exists.\n * If no `id` is supplied then all Loggers are closed.\n * @param {?string} id - The id of the Logger instance to close.\n * @returns {undefined}\n */\n close(id) {\n if (id) {\n return this._removeLogger(id);\n }\n\n this.loggers.forEach((val, key) => this._removeLogger(key));\n }\n\n /**\n * Remove a logger based on the id.\n * @param {!string} id - The id of the logger to remove.\n * @returns {undefined}\n * @private\n */\n _removeLogger(id) {\n if (!this.loggers.has(id)) {\n return;\n }\n\n const logger = this.loggers.get(id);\n logger.close();\n this._delete(id);\n }\n\n /**\n * Deletes a `Logger` instance with the specified `id`.\n * @param {!string} id - The id of the Logger instance to delete from\n * container.\n * @returns {undefined}\n * @private\n */\n _delete(id) {\n this.loggers.delete(id);\n }\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/create-logger.js\":\n/*!**********************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/create-logger.js ***!\n \\**********************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n/**\n * create-logger.js: Logger factory for winston logger instances.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\nconst { LEVEL } = __webpack_require__(/*! triple-beam */ \"./build/cht-core-4-6/api/node_modules/triple-beam/index.js\");\nconst config = __webpack_require__(/*! ./config */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/config/index.js\");\nconst Logger = __webpack_require__(/*! ./logger */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/logger.js\");\nconst debug = __webpack_require__(/*! @dabh/diagnostics */ \"./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/index.js\")('winston:create-logger');\n\nfunction isLevelEnabledFunctionName(level) {\n return 'is' + level.charAt(0).toUpperCase() + level.slice(1) + 'Enabled';\n}\n\n/**\n * Create a new instance of a winston Logger. Creates a new\n * prototype for each instance.\n * @param {!Object} opts - Options for the created logger.\n * @returns {Logger} - A newly created logger instance.\n */\nmodule.exports = function (opts = {}) {\n //\n // Default levels: npm\n //\n opts.levels = opts.levels || config.npm.levels;\n\n /**\n * DerivedLogger to attach the logs level methods.\n * @type {DerivedLogger}\n * @extends {Logger}\n */\n class DerivedLogger extends Logger {\n /**\n * Create a new class derived logger for which the levels can be attached to\n * the prototype of. This is a V8 optimization that is well know to increase\n * performance of prototype functions.\n * @param {!Object} options - Options for the created logger.\n */\n constructor(options) {\n super(options);\n }\n }\n\n const logger = new DerivedLogger(opts);\n\n //\n // Create the log level methods for the derived logger.\n //\n Object.keys(opts.levels).forEach(function (level) {\n debug('Define prototype method for \"%s\"', level);\n if (level === 'log') {\n // eslint-disable-next-line no-console\n console.warn('Level \"log\" not defined: conflicts with the method \"log\". Use a different level name.');\n return;\n }\n\n //\n // Define prototype methods for each log level e.g.:\n // logger.log('info', msg) implies these methods are defined:\n // - logger.info(msg)\n // - logger.isInfoEnabled()\n //\n // Remark: to support logger.child this **MUST** be a function\n // so it'll always be called on the instance instead of a fixed\n // place in the prototype chain.\n //\n DerivedLogger.prototype[level] = function (...args) {\n // Prefer any instance scope, but default to \"root\" logger\n const self = this || logger;\n\n // Optimize the hot-path which is the single object.\n if (args.length === 1) {\n const [msg] = args;\n const info = msg && msg.message && msg || { message: msg };\n info.level = info[LEVEL] = level;\n self._addDefaultMeta(info);\n self.write(info);\n return (this || logger);\n }\n\n // When provided nothing assume the empty string\n if (args.length === 0) {\n self.log(level, '');\n return self;\n }\n\n // Otherwise build argument list which could potentially conform to\n // either:\n // . v3 API: log(obj)\n // 2. v1/v2 API: log(level, msg, ... [string interpolate], [{metadata}], [callback])\n return self.log(level, ...args);\n };\n\n DerivedLogger.prototype[isLevelEnabledFunctionName(level)] = function () {\n return (this || logger).isLevelEnabled(level);\n };\n });\n\n return logger;\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-handler.js\":\n/*!**************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-handler.js ***!\n \\**************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n/**\n * exception-handler.js: Object for handling uncaughtException events.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\nconst os = __webpack_require__(/*! os */ \"os\");\nconst asyncForEach = __webpack_require__(/*! async/forEach */ \"./build/cht-core-4-6/api/node_modules/async/forEach.js\");\nconst debug = __webpack_require__(/*! @dabh/diagnostics */ \"./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/index.js\")('winston:exception');\nconst once = __webpack_require__(/*! one-time */ \"./build/cht-core-4-6/api/node_modules/one-time/index.js\");\nconst stackTrace = __webpack_require__(/*! stack-trace */ \"./build/cht-core-4-6/api/node_modules/stack-trace/lib/stack-trace.js\");\nconst ExceptionStream = __webpack_require__(/*! ./exception-stream */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-stream.js\");\n\n/**\n * Object for handling uncaughtException events.\n * @type {ExceptionHandler}\n */\nmodule.exports = class ExceptionHandler {\n /**\n * TODO: add contructor description\n * @param {!Logger} logger - TODO: add param description\n */\n constructor(logger) {\n if (!logger) {\n throw new Error('Logger is required to handle exceptions');\n }\n\n this.logger = logger;\n this.handlers = new Map();\n }\n\n /**\n * Handles `uncaughtException` events for the current process by adding any\n * handlers passed in.\n * @returns {undefined}\n */\n handle(...args) {\n args.forEach(arg => {\n if (Array.isArray(arg)) {\n return arg.forEach(handler => this._addHandler(handler));\n }\n\n this._addHandler(arg);\n });\n\n if (!this.catcher) {\n this.catcher = this._uncaughtException.bind(this);\n process.on('uncaughtException', this.catcher);\n }\n }\n\n /**\n * Removes any handlers to `uncaughtException` events for the current\n * process. This does not modify the state of the `this.handlers` set.\n * @returns {undefined}\n */\n unhandle() {\n if (this.catcher) {\n process.removeListener('uncaughtException', this.catcher);\n this.catcher = false;\n\n Array.from(this.handlers.values())\n .forEach(wrapper => this.logger.unpipe(wrapper));\n }\n }\n\n /**\n * TODO: add method description\n * @param {Error} err - Error to get information about.\n * @returns {mixed} - TODO: add return description.\n */\n getAllInfo(err) {\n let message = null;\n if (err) {\n message = typeof err === 'string' ? err : err.message;\n }\n\n return {\n error: err,\n // TODO (indexzero): how do we configure this?\n level: 'error',\n message: [\n `uncaughtException: ${(message || '(no error message)')}`,\n err && err.stack || ' No stack trace'\n ].join('\\n'),\n stack: err && err.stack,\n exception: true,\n date: new Date().toString(),\n process: this.getProcessInfo(),\n os: this.getOsInfo(),\n trace: this.getTrace(err)\n };\n }\n\n /**\n * Gets all relevant process information for the currently running process.\n * @returns {mixed} - TODO: add return description.\n */\n getProcessInfo() {\n return {\n pid: process.pid,\n uid: process.getuid ? process.getuid() : null,\n gid: process.getgid ? process.getgid() : null,\n cwd: process.cwd(),\n execPath: process.execPath,\n version: process.version,\n argv: process.argv,\n memoryUsage: process.memoryUsage()\n };\n }\n\n /**\n * Gets all relevant OS information for the currently running process.\n * @returns {mixed} - TODO: add return description.\n */\n getOsInfo() {\n return {\n loadavg: os.loadavg(),\n uptime: os.uptime()\n };\n }\n\n /**\n * Gets a stack trace for the specified error.\n * @param {mixed} err - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n */\n getTrace(err) {\n const trace = err ? stackTrace.parse(err) : stackTrace.get();\n return trace.map(site => {\n return {\n column: site.getColumnNumber(),\n file: site.getFileName(),\n function: site.getFunctionName(),\n line: site.getLineNumber(),\n method: site.getMethodName(),\n native: site.isNative()\n };\n });\n }\n\n /**\n * Helper method to add a transport as an exception handler.\n * @param {Transport} handler - The transport to add as an exception handler.\n * @returns {void}\n */\n _addHandler(handler) {\n if (!this.handlers.has(handler)) {\n handler.handleExceptions = true;\n const wrapper = new ExceptionStream(handler);\n this.handlers.set(handler, wrapper);\n this.logger.pipe(wrapper);\n }\n }\n\n /**\n * Logs all relevant information around the `err` and exits the current\n * process.\n * @param {Error} err - Error to handle\n * @returns {mixed} - TODO: add return description.\n * @private\n */\n _uncaughtException(err) {\n const info = this.getAllInfo(err);\n const handlers = this._getExceptionHandlers();\n // Calculate if we should exit on this error\n let doExit = typeof this.logger.exitOnError === 'function'\n ? this.logger.exitOnError(err)\n : this.logger.exitOnError;\n let timeout;\n\n if (!handlers.length && doExit) {\n // eslint-disable-next-line no-console\n console.warn('winston: exitOnError cannot be true with no exception handlers.');\n // eslint-disable-next-line no-console\n console.warn('winston: not exiting process.');\n doExit = false;\n }\n\n function gracefulExit() {\n debug('doExit', doExit);\n debug('process._exiting', process._exiting);\n\n if (doExit && !process._exiting) {\n // Remark: Currently ignoring any exceptions from transports when\n // catching uncaught exceptions.\n if (timeout) {\n clearTimeout(timeout);\n }\n // eslint-disable-next-line no-process-exit\n process.exit(1);\n }\n }\n\n if (!handlers || handlers.length === 0) {\n return process.nextTick(gracefulExit);\n }\n\n // Log to all transports attempting to listen for when they are completed.\n asyncForEach(handlers, (handler, next) => {\n const done = once(next);\n const transport = handler.transport || handler;\n\n // Debug wrapping so that we can inspect what's going on under the covers.\n function onDone(event) {\n return () => {\n debug(event);\n done();\n };\n }\n\n transport._ending = true;\n transport.once('finish', onDone('finished'));\n transport.once('error', onDone('error'));\n }, () => doExit && gracefulExit());\n\n this.logger.log(info);\n\n // If exitOnError is true, then only allow the logging of exceptions to\n // take up to `3000ms`.\n if (doExit) {\n timeout = setTimeout(gracefulExit, 3000);\n }\n }\n\n /**\n * Returns the list of transports and exceptionHandlers for this instance.\n * @returns {Array} - List of transports and exceptionHandlers for this\n * instance.\n * @private\n */\n _getExceptionHandlers() {\n // Remark (indexzero): since `logger.transports` returns all of the pipes\n // from the _readableState of the stream we actually get the join of the\n // explicit handlers and the implicit transports with\n // `handleExceptions: true`\n return this.logger.transports.filter(wrap => {\n const transport = wrap.transport || wrap;\n return transport.handleExceptions;\n });\n }\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-stream.js\":\n/*!*************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-stream.js ***!\n \\*************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n/**\n * exception-stream.js: TODO: add file header handler.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\nconst { Writable } = __webpack_require__(/*! readable-stream */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js\");\n\n/**\n * TODO: add class description.\n * @type {ExceptionStream}\n * @extends {Writable}\n */\nmodule.exports = class ExceptionStream extends Writable {\n /**\n * Constructor function for the ExceptionStream responsible for wrapping a\n * TransportStream; only allowing writes of `info` objects with\n * `info.exception` set to true.\n * @param {!TransportStream} transport - Stream to filter to exceptions\n */\n constructor(transport) {\n super({ objectMode: true });\n\n if (!transport) {\n throw new Error('ExceptionStream requires a TransportStream instance.');\n }\n\n // Remark (indexzero): we set `handleExceptions` here because it's the\n // predicate checked in ExceptionHandler.prototype.__getExceptionHandlers\n this.handleExceptions = true;\n this.transport = transport;\n }\n\n /**\n * Writes the info object to our transport instance if (and only if) the\n * `exception` property is set on the info.\n * @param {mixed} info - TODO: add param description.\n * @param {mixed} enc - TODO: add param description.\n * @param {mixed} callback - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n * @private\n */\n _write(info, enc, callback) {\n if (info.exception) {\n return this.transport.log(info, callback);\n }\n\n callback();\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/logger.js\":\n/*!***************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/logger.js ***!\n \\***************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n/**\n * logger.js: TODO: add file header description.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\nconst { Stream, Transform } = __webpack_require__(/*! readable-stream */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js\");\nconst asyncForEach = __webpack_require__(/*! async/forEach */ \"./build/cht-core-4-6/api/node_modules/async/forEach.js\");\nconst { LEVEL, SPLAT } = __webpack_require__(/*! triple-beam */ \"./build/cht-core-4-6/api/node_modules/triple-beam/index.js\");\nconst isStream = __webpack_require__(/*! is-stream */ \"./build/cht-core-4-6/api/node_modules/is-stream/index.js\");\nconst ExceptionHandler = __webpack_require__(/*! ./exception-handler */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-handler.js\");\nconst RejectionHandler = __webpack_require__(/*! ./rejection-handler */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/rejection-handler.js\");\nconst LegacyTransportStream = __webpack_require__(/*! winston-transport/legacy */ \"./build/cht-core-4-6/api/node_modules/winston-transport/legacy.js\");\nconst Profiler = __webpack_require__(/*! ./profiler */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/profiler.js\");\nconst { warn } = __webpack_require__(/*! ./common */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/common.js\");\nconst config = __webpack_require__(/*! ./config */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/config/index.js\");\n\n/**\n * Captures the number of format (i.e. %s strings) in a given string.\n * Based on `util.format`, see Node.js source:\n * https://github.com/nodejs/node/blob/b1c8f15c5f169e021f7c46eb7b219de95fe97603/lib/util.js#L201-L230\n * @type {RegExp}\n */\nconst formatRegExp = /%[scdjifoO%]/g;\n\n/**\n * TODO: add class description.\n * @type {Logger}\n * @extends {Transform}\n */\nclass Logger extends Transform {\n /**\n * Constructor function for the Logger object responsible for persisting log\n * messages and metadata to one or more transports.\n * @param {!Object} options - foo\n */\n constructor(options) {\n super({ objectMode: true });\n this.configure(options);\n }\n\n child(defaultRequestMetadata) {\n const logger = this;\n return Object.create(logger, {\n write: {\n value: function (info) {\n const infoClone = Object.assign(\n {},\n defaultRequestMetadata,\n info\n );\n\n // Object.assign doesn't copy inherited Error\n // properties so we have to do that explicitly\n //\n // Remark (indexzero): we should remove this\n // since the errors format will handle this case.\n //\n if (info instanceof Error) {\n infoClone.stack = info.stack;\n infoClone.message = info.message;\n }\n\n logger.write(infoClone);\n }\n }\n });\n }\n\n /**\n * This will wholesale reconfigure this instance by:\n * 1. Resetting all transports. Older transports will be removed implicitly.\n * 2. Set all other options including levels, colors, rewriters, filters,\n * exceptionHandlers, etc.\n * @param {!Object} options - TODO: add param description.\n * @returns {undefined}\n */\n configure({\n silent,\n format,\n defaultMeta,\n levels,\n level = 'info',\n exitOnError = true,\n transports,\n colors,\n emitErrs,\n formatters,\n padLevels,\n rewriters,\n stripColors,\n exceptionHandlers,\n rejectionHandlers\n } = {}) {\n // Reset transports if we already have them\n if (this.transports.length) {\n this.clear();\n }\n\n this.silent = silent;\n this.format = format || this.format || __webpack_require__(/*! logform/json */ \"./build/cht-core-4-6/api/node_modules/logform/json.js\")();\n\n this.defaultMeta = defaultMeta || null;\n // Hoist other options onto this instance.\n this.levels = levels || this.levels || config.npm.levels;\n this.level = level;\n if (this.exceptions) {\n this.exceptions.unhandle();\n }\n if (this.rejections) {\n this.rejections.unhandle();\n }\n this.exceptions = new ExceptionHandler(this);\n this.rejections = new RejectionHandler(this);\n this.profilers = {};\n this.exitOnError = exitOnError;\n\n // Add all transports we have been provided.\n if (transports) {\n transports = Array.isArray(transports) ? transports : [transports];\n transports.forEach(transport => this.add(transport));\n }\n\n if (\n colors ||\n emitErrs ||\n formatters ||\n padLevels ||\n rewriters ||\n stripColors\n ) {\n throw new Error(\n [\n '{ colors, emitErrs, formatters, padLevels, rewriters, stripColors } were removed in winston@3.0.0.',\n 'Use a custom winston.format(function) instead.',\n 'See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md'\n ].join('\\n')\n );\n }\n\n if (exceptionHandlers) {\n this.exceptions.handle(exceptionHandlers);\n }\n if (rejectionHandlers) {\n this.rejections.handle(rejectionHandlers);\n }\n }\n\n isLevelEnabled(level) {\n const givenLevelValue = getLevelValue(this.levels, level);\n if (givenLevelValue === null) {\n return false;\n }\n\n const configuredLevelValue = getLevelValue(this.levels, this.level);\n if (configuredLevelValue === null) {\n return false;\n }\n\n if (!this.transports || this.transports.length === 0) {\n return configuredLevelValue >= givenLevelValue;\n }\n\n const index = this.transports.findIndex(transport => {\n let transportLevelValue = getLevelValue(this.levels, transport.level);\n if (transportLevelValue === null) {\n transportLevelValue = configuredLevelValue;\n }\n return transportLevelValue >= givenLevelValue;\n });\n return index !== -1;\n }\n\n /* eslint-disable valid-jsdoc */\n /**\n * Ensure backwards compatibility with a `log` method\n * @param {mixed} level - Level the log message is written at.\n * @param {mixed} msg - TODO: add param description.\n * @param {mixed} meta - TODO: add param description.\n * @returns {Logger} - TODO: add return description.\n *\n * @example\n * // Supports the existing API:\n * logger.log('info', 'Hello world', { custom: true });\n * logger.log('info', new Error('Yo, it\\'s on fire'));\n *\n * // Requires winston.format.splat()\n * logger.log('info', '%s %d%%', 'A string', 50, { thisIsMeta: true });\n *\n * // And the new API with a single JSON literal:\n * logger.log({ level: 'info', message: 'Hello world', custom: true });\n * logger.log({ level: 'info', message: new Error('Yo, it\\'s on fire') });\n *\n * // Also requires winston.format.splat()\n * logger.log({\n * level: 'info',\n * message: '%s %d%%',\n * [SPLAT]: ['A string', 50],\n * meta: { thisIsMeta: true }\n * });\n *\n */\n /* eslint-enable valid-jsdoc */\n log(level, msg, ...splat) {\n // eslint-disable-line max-params\n // Optimize for the hotpath of logging JSON literals\n if (arguments.length === 1) {\n // Yo dawg, I heard you like levels ... seriously ...\n // In this context the LHS `level` here is actually the `info` so read\n // this as: info[LEVEL] = info.level;\n level[LEVEL] = level.level;\n this._addDefaultMeta(level);\n this.write(level);\n return this;\n }\n\n // Slightly less hotpath, but worth optimizing for.\n if (arguments.length === 2) {\n if (msg && typeof msg === 'object') {\n msg[LEVEL] = msg.level = level;\n this._addDefaultMeta(msg);\n this.write(msg);\n return this;\n }\n\n msg = { [LEVEL]: level, level, message: msg };\n this._addDefaultMeta(msg);\n this.write(msg);\n return this;\n }\n\n const [meta] = splat;\n if (typeof meta === 'object' && meta !== null) {\n // Extract tokens, if none available default to empty array to\n // ensure consistancy in expected results\n const tokens = msg && msg.match && msg.match(formatRegExp);\n\n if (!tokens) {\n const info = Object.assign({}, this.defaultMeta, meta, {\n [LEVEL]: level,\n [SPLAT]: splat,\n level,\n message: msg\n });\n\n if (meta.message) info.message = `${info.message} ${meta.message}`;\n if (meta.stack) info.stack = meta.stack;\n\n this.write(info);\n return this;\n }\n }\n\n this.write(Object.assign({}, this.defaultMeta, {\n [LEVEL]: level,\n [SPLAT]: splat,\n level,\n message: msg\n }));\n\n return this;\n }\n\n /**\n * Pushes data so that it can be picked up by all of our pipe targets.\n * @param {mixed} info - TODO: add param description.\n * @param {mixed} enc - TODO: add param description.\n * @param {mixed} callback - Continues stream processing.\n * @returns {undefined}\n * @private\n */\n _transform(info, enc, callback) {\n if (this.silent) {\n return callback();\n }\n\n // [LEVEL] is only soft guaranteed to be set here since we are a proper\n // stream. It is likely that `info` came in through `.log(info)` or\n // `.info(info)`. If it is not defined, however, define it.\n // This LEVEL symbol is provided by `triple-beam` and also used in:\n // - logform\n // - winston-transport\n // - abstract-winston-transport\n if (!info[LEVEL]) {\n info[LEVEL] = info.level;\n }\n\n // Remark: really not sure what to do here, but this has been reported as\n // very confusing by pre winston@2.0.0 users as quite confusing when using\n // custom levels.\n if (!this.levels[info[LEVEL]] && this.levels[info[LEVEL]] !== 0) {\n // eslint-disable-next-line no-console\n console.error('[winston] Unknown logger level: %s', info[LEVEL]);\n }\n\n // Remark: not sure if we should simply error here.\n if (!this._readableState.pipes) {\n // eslint-disable-next-line no-console\n console.error(\n '[winston] Attempt to write logs with no transports, which can increase memory usage: %j',\n info\n );\n }\n\n // Here we write to the `format` pipe-chain, which on `readable` above will\n // push the formatted `info` Object onto the buffer for this instance. We trap\n // (and re-throw) any errors generated by the user-provided format, but also\n // guarantee that the streams callback is invoked so that we can continue flowing.\n try {\n this.push(this.format.transform(info, this.format.options));\n } finally {\n this._writableState.sync = false;\n // eslint-disable-next-line callback-return\n callback();\n }\n }\n\n /**\n * Delays the 'finish' event until all transport pipe targets have\n * also emitted 'finish' or are already finished.\n * @param {mixed} callback - Continues stream processing.\n */\n _final(callback) {\n const transports = this.transports.slice();\n asyncForEach(\n transports,\n (transport, next) => {\n if (!transport || transport.finished) return setImmediate(next);\n transport.once('finish', next);\n transport.end();\n },\n callback\n );\n }\n\n /**\n * Adds the transport to this logger instance by piping to it.\n * @param {mixed} transport - TODO: add param description.\n * @returns {Logger} - TODO: add return description.\n */\n add(transport) {\n // Support backwards compatibility with all existing `winston < 3.x.x`\n // transports which meet one of two criteria:\n // 1. They inherit from winston.Transport in < 3.x.x which is NOT a stream.\n // 2. They expose a log method which has a length greater than 2 (i.e. more then\n // just `log(info, callback)`.\n const target =\n !isStream(transport) || transport.log.length > 2\n ? new LegacyTransportStream({ transport })\n : transport;\n\n if (!target._writableState || !target._writableState.objectMode) {\n throw new Error(\n 'Transports must WritableStreams in objectMode. Set { objectMode: true }.'\n );\n }\n\n // Listen for the `error` event and the `warn` event on the new Transport.\n this._onEvent('error', target);\n this._onEvent('warn', target);\n this.pipe(target);\n\n if (transport.handleExceptions) {\n this.exceptions.handle();\n }\n\n if (transport.handleRejections) {\n this.rejections.handle();\n }\n\n return this;\n }\n\n /**\n * Removes the transport from this logger instance by unpiping from it.\n * @param {mixed} transport - TODO: add param description.\n * @returns {Logger} - TODO: add return description.\n */\n remove(transport) {\n if (!transport) return this;\n let target = transport;\n if (!isStream(transport) || transport.log.length > 2) {\n target = this.transports.filter(\n match => match.transport === transport\n )[0];\n }\n\n if (target) {\n this.unpipe(target);\n }\n return this;\n }\n\n /**\n * Removes all transports from this logger instance.\n * @returns {Logger} - TODO: add return description.\n */\n clear() {\n this.unpipe();\n return this;\n }\n\n /**\n * Cleans up resources (streams, event listeners) for all transports\n * associated with this instance (if necessary).\n * @returns {Logger} - TODO: add return description.\n */\n close() {\n this.exceptions.unhandle();\n this.rejections.unhandle();\n this.clear();\n this.emit('close');\n return this;\n }\n\n /**\n * Sets the `target` levels specified on this instance.\n * @param {Object} Target levels to use on this instance.\n */\n setLevels() {\n warn.deprecated('setLevels');\n }\n\n /**\n * Queries the all transports for this instance with the specified `options`.\n * This will aggregate each transport's results into one object containing\n * a property per transport.\n * @param {Object} options - Query options for this instance.\n * @param {function} callback - Continuation to respond to when complete.\n */\n query(options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n options = options || {};\n const results = {};\n const queryObject = Object.assign({}, options.query || {});\n\n // Helper function to query a single transport\n function queryTransport(transport, next) {\n if (options.query && typeof transport.formatQuery === 'function') {\n options.query = transport.formatQuery(queryObject);\n }\n\n transport.query(options, (err, res) => {\n if (err) {\n return next(err);\n }\n\n if (typeof transport.formatResults === 'function') {\n res = transport.formatResults(res, options.format);\n }\n\n next(null, res);\n });\n }\n\n // Helper function to accumulate the results from `queryTransport` into\n // the `results`.\n function addResults(transport, next) {\n queryTransport(transport, (err, result) => {\n // queryTransport could potentially invoke the callback multiple times\n // since Transport code can be unpredictable.\n if (next) {\n result = err || result;\n if (result) {\n results[transport.name] = result;\n }\n\n // eslint-disable-next-line callback-return\n next();\n }\n\n next = null;\n });\n }\n\n // Iterate over the transports in parallel setting the appropriate key in\n // the `results`.\n asyncForEach(\n this.transports.filter(transport => !!transport.query),\n addResults,\n () => callback(null, results)\n );\n }\n\n /**\n * Returns a log stream for all transports. Options object is optional.\n * @param{Object} options={} - Stream options for this instance.\n * @returns {Stream} - TODO: add return description.\n */\n stream(options = {}) {\n const out = new Stream();\n const streams = [];\n\n out._streams = streams;\n out.destroy = () => {\n let i = streams.length;\n while (i--) {\n streams[i].destroy();\n }\n };\n\n // Create a list of all transports for this instance.\n this.transports\n .filter(transport => !!transport.stream)\n .forEach(transport => {\n const str = transport.stream(options);\n if (!str) {\n return;\n }\n\n streams.push(str);\n\n str.on('log', log => {\n log.transport = log.transport || [];\n log.transport.push(transport.name);\n out.emit('log', log);\n });\n\n str.on('error', err => {\n err.transport = err.transport || [];\n err.transport.push(transport.name);\n out.emit('error', err);\n });\n });\n\n return out;\n }\n\n /**\n * Returns an object corresponding to a specific timing. When done is called\n * the timer will finish and log the duration. e.g.:\n * @returns {Profile} - TODO: add return description.\n * @example\n * const timer = winston.startTimer()\n * setTimeout(() => {\n * timer.done({\n * message: 'Logging message'\n * });\n * }, 1000);\n */\n startTimer() {\n return new Profiler(this);\n }\n\n /**\n * Tracks the time inbetween subsequent calls to this method with the same\n * `id` parameter. The second call to this method will log the difference in\n * milliseconds along with the message.\n * @param {string} id Unique id of the profiler\n * @returns {Logger} - TODO: add return description.\n */\n profile(id, ...args) {\n const time = Date.now();\n if (this.profilers[id]) {\n const timeEnd = this.profilers[id];\n delete this.profilers[id];\n\n // Attempt to be kind to users if they are still using older APIs.\n if (typeof args[args.length - 2] === 'function') {\n // eslint-disable-next-line no-console\n console.warn(\n 'Callback function no longer supported as of winston@3.0.0'\n );\n args.pop();\n }\n\n // Set the duration property of the metadata\n const info = typeof args[args.length - 1] === 'object' ? args.pop() : {};\n info.level = info.level || 'info';\n info.durationMs = time - timeEnd;\n info.message = info.message || id;\n return this.write(info);\n }\n\n this.profilers[id] = time;\n return this;\n }\n\n /**\n * Backwards compatibility to `exceptions.handle` in winston < 3.0.0.\n * @returns {undefined}\n * @deprecated\n */\n handleExceptions(...args) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Deprecated: .handleExceptions() will be removed in winston@4. Use .exceptions.handle()'\n );\n this.exceptions.handle(...args);\n }\n\n /**\n * Backwards compatibility to `exceptions.handle` in winston < 3.0.0.\n * @returns {undefined}\n * @deprecated\n */\n unhandleExceptions(...args) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Deprecated: .unhandleExceptions() will be removed in winston@4. Use .exceptions.unhandle()'\n );\n this.exceptions.unhandle(...args);\n }\n\n /**\n * Throw a more meaningful deprecation notice\n * @throws {Error} - TODO: add throws description.\n */\n cli() {\n throw new Error(\n [\n 'Logger.cli() was removed in winston@3.0.0',\n 'Use a custom winston.formats.cli() instead.',\n 'See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md'\n ].join('\\n')\n );\n }\n\n /**\n * Bubbles the `event` that occured on the specified `transport` up\n * from this instance.\n * @param {string} event - The event that occured\n * @param {Object} transport - Transport on which the event occured\n * @private\n */\n _onEvent(event, transport) {\n function transportEvent(err) {\n // https://github.com/winstonjs/winston/issues/1364\n if (event === 'error' && !this.transports.includes(transport)) {\n this.add(transport);\n }\n this.emit(event, err, transport);\n }\n\n if (!transport['__winston' + event]) {\n transport['__winston' + event] = transportEvent.bind(this);\n transport.on(event, transport['__winston' + event]);\n }\n }\n\n _addDefaultMeta(msg) {\n if (this.defaultMeta) {\n Object.assign(msg, this.defaultMeta);\n }\n }\n}\n\nfunction getLevelValue(levels, level) {\n const value = levels[level];\n if (!value && value !== 0) {\n return null;\n }\n return value;\n}\n\n/**\n * Represents the current readableState pipe targets for this Logger instance.\n * @type {Array|Object}\n */\nObject.defineProperty(Logger.prototype, 'transports', {\n configurable: false,\n enumerable: true,\n get() {\n const { pipes } = this._readableState;\n return !Array.isArray(pipes) ? [pipes].filter(Boolean) : pipes;\n }\n});\n\nmodule.exports = Logger;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/profiler.js\":\n/*!*****************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/profiler.js ***!\n \\*****************************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\n/**\n * profiler.js: TODO: add file header description.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\n/**\n * TODO: add class description.\n * @type {Profiler}\n * @private\n */\nmodule.exports = class Profiler {\n /**\n * Constructor function for the Profiler instance used by\n * `Logger.prototype.startTimer`. When done is called the timer will finish\n * and log the duration.\n * @param {!Logger} logger - TODO: add param description.\n * @private\n */\n constructor(logger) {\n if (!logger) {\n throw new Error('Logger is required for profiling.');\n }\n\n this.logger = logger;\n this.start = Date.now();\n }\n\n /**\n * Ends the current timer (i.e. Profiler) instance and logs the `msg` along\n * with the duration since creation.\n * @returns {mixed} - TODO: add return description.\n * @private\n */\n done(...args) {\n if (typeof args[args.length - 1] === 'function') {\n // eslint-disable-next-line no-console\n console.warn('Callback function no longer supported as of winston@3.0.0');\n args.pop();\n }\n\n const info = typeof args[args.length - 1] === 'object' ? args.pop() : {};\n info.level = info.level || 'info';\n info.durationMs = (Date.now()) - this.start;\n\n return this.logger.write(info);\n }\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/rejection-handler.js\":\n/*!**************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/rejection-handler.js ***!\n \\**************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n/**\n * exception-handler.js: Object for handling uncaughtException events.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\nconst os = __webpack_require__(/*! os */ \"os\");\nconst asyncForEach = __webpack_require__(/*! async/forEach */ \"./build/cht-core-4-6/api/node_modules/async/forEach.js\");\nconst debug = __webpack_require__(/*! @dabh/diagnostics */ \"./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/index.js\")('winston:rejection');\nconst once = __webpack_require__(/*! one-time */ \"./build/cht-core-4-6/api/node_modules/one-time/index.js\");\nconst stackTrace = __webpack_require__(/*! stack-trace */ \"./build/cht-core-4-6/api/node_modules/stack-trace/lib/stack-trace.js\");\nconst ExceptionStream = __webpack_require__(/*! ./exception-stream */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-stream.js\");\n\n/**\n * Object for handling unhandledRejection events.\n * @type {RejectionHandler}\n */\nmodule.exports = class RejectionHandler {\n /**\n * TODO: add contructor description\n * @param {!Logger} logger - TODO: add param description\n */\n constructor(logger) {\n if (!logger) {\n throw new Error('Logger is required to handle rejections');\n }\n\n this.logger = logger;\n this.handlers = new Map();\n }\n\n /**\n * Handles `unhandledRejection` events for the current process by adding any\n * handlers passed in.\n * @returns {undefined}\n */\n handle(...args) {\n args.forEach(arg => {\n if (Array.isArray(arg)) {\n return arg.forEach(handler => this._addHandler(handler));\n }\n\n this._addHandler(arg);\n });\n\n if (!this.catcher) {\n this.catcher = this._unhandledRejection.bind(this);\n process.on('unhandledRejection', this.catcher);\n }\n }\n\n /**\n * Removes any handlers to `unhandledRejection` events for the current\n * process. This does not modify the state of the `this.handlers` set.\n * @returns {undefined}\n */\n unhandle() {\n if (this.catcher) {\n process.removeListener('unhandledRejection', this.catcher);\n this.catcher = false;\n\n Array.from(this.handlers.values()).forEach(wrapper =>\n this.logger.unpipe(wrapper)\n );\n }\n }\n\n /**\n * TODO: add method description\n * @param {Error} err - Error to get information about.\n * @returns {mixed} - TODO: add return description.\n */\n getAllInfo(err) {\n let message = null;\n if (err) {\n message = typeof err === 'string' ? err : err.message;\n }\n\n return {\n error: err,\n // TODO (indexzero): how do we configure this?\n level: 'error',\n message: [\n `unhandledRejection: ${message || '(no error message)'}`,\n err && err.stack || ' No stack trace'\n ].join('\\n'),\n stack: err && err.stack,\n exception: true,\n date: new Date().toString(),\n process: this.getProcessInfo(),\n os: this.getOsInfo(),\n trace: this.getTrace(err)\n };\n }\n\n /**\n * Gets all relevant process information for the currently running process.\n * @returns {mixed} - TODO: add return description.\n */\n getProcessInfo() {\n return {\n pid: process.pid,\n uid: process.getuid ? process.getuid() : null,\n gid: process.getgid ? process.getgid() : null,\n cwd: process.cwd(),\n execPath: process.execPath,\n version: process.version,\n argv: process.argv,\n memoryUsage: process.memoryUsage()\n };\n }\n\n /**\n * Gets all relevant OS information for the currently running process.\n * @returns {mixed} - TODO: add return description.\n */\n getOsInfo() {\n return {\n loadavg: os.loadavg(),\n uptime: os.uptime()\n };\n }\n\n /**\n * Gets a stack trace for the specified error.\n * @param {mixed} err - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n */\n getTrace(err) {\n const trace = err ? stackTrace.parse(err) : stackTrace.get();\n return trace.map(site => {\n return {\n column: site.getColumnNumber(),\n file: site.getFileName(),\n function: site.getFunctionName(),\n line: site.getLineNumber(),\n method: site.getMethodName(),\n native: site.isNative()\n };\n });\n }\n\n /**\n * Helper method to add a transport as an exception handler.\n * @param {Transport} handler - The transport to add as an exception handler.\n * @returns {void}\n */\n _addHandler(handler) {\n if (!this.handlers.has(handler)) {\n handler.handleRejections = true;\n const wrapper = new ExceptionStream(handler);\n this.handlers.set(handler, wrapper);\n this.logger.pipe(wrapper);\n }\n }\n\n /**\n * Logs all relevant information around the `err` and exits the current\n * process.\n * @param {Error} err - Error to handle\n * @returns {mixed} - TODO: add return description.\n * @private\n */\n _unhandledRejection(err) {\n const info = this.getAllInfo(err);\n const handlers = this._getRejectionHandlers();\n // Calculate if we should exit on this error\n let doExit =\n typeof this.logger.exitOnError === 'function'\n ? this.logger.exitOnError(err)\n : this.logger.exitOnError;\n let timeout;\n\n if (!handlers.length && doExit) {\n // eslint-disable-next-line no-console\n console.warn('winston: exitOnError cannot be true with no rejection handlers.');\n // eslint-disable-next-line no-console\n console.warn('winston: not exiting process.');\n doExit = false;\n }\n\n function gracefulExit() {\n debug('doExit', doExit);\n debug('process._exiting', process._exiting);\n\n if (doExit && !process._exiting) {\n // Remark: Currently ignoring any rejections from transports when\n // catching unhandled rejections.\n if (timeout) {\n clearTimeout(timeout);\n }\n // eslint-disable-next-line no-process-exit\n process.exit(1);\n }\n }\n\n if (!handlers || handlers.length === 0) {\n return process.nextTick(gracefulExit);\n }\n\n // Log to all transports attempting to listen for when they are completed.\n asyncForEach(\n handlers,\n (handler, next) => {\n const done = once(next);\n const transport = handler.transport || handler;\n\n // Debug wrapping so that we can inspect what's going on under the covers.\n function onDone(event) {\n return () => {\n debug(event);\n done();\n };\n }\n\n transport._ending = true;\n transport.once('finish', onDone('finished'));\n transport.once('error', onDone('error'));\n },\n () => doExit && gracefulExit()\n );\n\n this.logger.log(info);\n\n // If exitOnError is true, then only allow the logging of exceptions to\n // take up to `3000ms`.\n if (doExit) {\n timeout = setTimeout(gracefulExit, 3000);\n }\n }\n\n /**\n * Returns the list of transports and exceptionHandlers for this instance.\n * @returns {Array} - List of transports and exceptionHandlers for this\n * instance.\n * @private\n */\n _getRejectionHandlers() {\n // Remark (indexzero): since `logger.transports` returns all of the pipes\n // from the _readableState of the stream we actually get the join of the\n // explicit handlers and the implicit transports with\n // `handleRejections: true`\n return this.logger.transports.filter(wrap => {\n const transport = wrap.transport || wrap;\n return transport.handleRejections;\n });\n }\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/tail-file.js\":\n/*!******************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/tail-file.js ***!\n \\******************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n/**\n * tail-file.js: TODO: add file header description.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\nconst { StringDecoder } = __webpack_require__(/*! string_decoder */ \"string_decoder\");\nconst { Stream } = __webpack_require__(/*! readable-stream */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js\");\n\n/**\n * Simple no-op function.\n * @returns {undefined}\n */\nfunction noop() {}\n\n/**\n * TODO: add function description.\n * @param {Object} options - Options for tail.\n * @param {function} iter - Iterator function to execute on every line.\n* `tail -f` a file. Options must include file.\n * @returns {mixed} - TODO: add return description.\n */\nmodule.exports = (options, iter) => {\n const buffer = Buffer.alloc(64 * 1024);\n const decode = new StringDecoder('utf8');\n const stream = new Stream();\n let buff = '';\n let pos = 0;\n let row = 0;\n\n if (options.start === -1) {\n delete options.start;\n }\n\n stream.readable = true;\n stream.destroy = () => {\n stream.destroyed = true;\n stream.emit('end');\n stream.emit('close');\n };\n\n fs.open(options.file, 'a+', '0644', (err, fd) => {\n if (err) {\n if (!iter) {\n stream.emit('error', err);\n } else {\n iter(err);\n }\n stream.destroy();\n return;\n }\n\n (function read() {\n if (stream.destroyed) {\n fs.close(fd, noop);\n return;\n }\n\n return fs.read(fd, buffer, 0, buffer.length, pos, (error, bytes) => {\n if (error) {\n if (!iter) {\n stream.emit('error', error);\n } else {\n iter(error);\n }\n stream.destroy();\n return;\n }\n\n if (!bytes) {\n if (buff) {\n // eslint-disable-next-line eqeqeq\n if (options.start == null || row > options.start) {\n if (!iter) {\n stream.emit('line', buff);\n } else {\n iter(null, buff);\n }\n }\n row++;\n buff = '';\n }\n return setTimeout(read, 1000);\n }\n\n let data = decode.write(buffer.slice(0, bytes));\n if (!iter) {\n stream.emit('data', data);\n }\n\n data = (buff + data).split(/\\n+/);\n\n const l = data.length - 1;\n let i = 0;\n\n for (; i < l; i++) {\n // eslint-disable-next-line eqeqeq\n if (options.start == null || row > options.start) {\n if (!iter) {\n stream.emit('line', data[i]);\n } else {\n iter(null, data[i]);\n }\n }\n row++;\n }\n\n buff = data[l];\n pos += bytes;\n return read();\n });\n }());\n });\n\n if (!iter) {\n return stream;\n }\n\n return stream.destroy;\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/console.js\":\n/*!***************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/console.js ***!\n \\***************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n/* eslint-disable no-console */\n/*\n * console.js: Transport for outputting to the console.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\nconst os = __webpack_require__(/*! os */ \"os\");\nconst { LEVEL, MESSAGE } = __webpack_require__(/*! triple-beam */ \"./build/cht-core-4-6/api/node_modules/triple-beam/index.js\");\nconst TransportStream = __webpack_require__(/*! winston-transport */ \"./build/cht-core-4-6/api/node_modules/winston-transport/index.js\");\n\n/**\n * Transport for outputting to the console.\n * @type {Console}\n * @extends {TransportStream}\n */\nmodule.exports = class Console extends TransportStream {\n /**\n * Constructor function for the Console transport object responsible for\n * persisting log messages and metadata to a terminal or TTY.\n * @param {!Object} [options={}] - Options for this instance.\n */\n constructor(options = {}) {\n super(options);\n\n // Expose the name of this Transport on the prototype\n this.name = options.name || 'console';\n this.stderrLevels = this._stringArrayToSet(options.stderrLevels);\n this.consoleWarnLevels = this._stringArrayToSet(options.consoleWarnLevels);\n this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL;\n\n this.setMaxListeners(30);\n }\n\n /**\n * Core logging method exposed to Winston.\n * @param {Object} info - TODO: add param description.\n * @param {Function} callback - TODO: add param description.\n * @returns {undefined}\n */\n log(info, callback) {\n setImmediate(() => this.emit('logged', info));\n\n // Remark: what if there is no raw...?\n if (this.stderrLevels[info[LEVEL]]) {\n if (console._stderr) {\n // Node.js maps `process.stderr` to `console._stderr`.\n console._stderr.write(`${info[MESSAGE]}${this.eol}`);\n } else {\n // console.error adds a newline\n console.error(info[MESSAGE]);\n }\n\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n return;\n } else if (this.consoleWarnLevels[info[LEVEL]]) {\n if (console._stderr) {\n // Node.js maps `process.stderr` to `console._stderr`.\n // in Node.js console.warn is an alias for console.error\n console._stderr.write(`${info[MESSAGE]}${this.eol}`);\n } else {\n // console.warn adds a newline\n console.warn(info[MESSAGE]);\n }\n\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n return;\n }\n\n if (console._stdout) {\n // Node.js maps `process.stdout` to `console._stdout`.\n console._stdout.write(`${info[MESSAGE]}${this.eol}`);\n } else {\n // console.log adds a newline.\n console.log(info[MESSAGE]);\n }\n\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n }\n\n /**\n * Returns a Set-like object with strArray's elements as keys (each with the\n * value true).\n * @param {Array} strArray - Array of Set-elements as strings.\n * @param {?string} [errMsg] - Custom error message thrown on invalid input.\n * @returns {Object} - TODO: add return description.\n * @private\n */\n _stringArrayToSet(strArray, errMsg) {\n if (!strArray)\n return {};\n\n errMsg = errMsg || 'Cannot make set from type other than Array of string elements';\n\n if (!Array.isArray(strArray)) {\n throw new Error(errMsg);\n }\n\n return strArray.reduce((set, el) => {\n if (typeof el !== 'string') {\n throw new Error(errMsg);\n }\n set[el] = true;\n\n return set;\n }, {});\n }\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/file.js\":\n/*!************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/file.js ***!\n \\************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n/* eslint-disable complexity,max-statements */\n/**\n * file.js: Transport for outputting to a local log file.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\nconst path = __webpack_require__(/*! path */ \"path\");\nconst asyncSeries = __webpack_require__(/*! async/series */ \"./build/cht-core-4-6/api/node_modules/async/series.js\");\nconst zlib = __webpack_require__(/*! zlib */ \"zlib\");\nconst { MESSAGE } = __webpack_require__(/*! triple-beam */ \"./build/cht-core-4-6/api/node_modules/triple-beam/index.js\");\nconst { Stream, PassThrough } = __webpack_require__(/*! readable-stream */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js\");\nconst TransportStream = __webpack_require__(/*! winston-transport */ \"./build/cht-core-4-6/api/node_modules/winston-transport/index.js\");\nconst debug = __webpack_require__(/*! @dabh/diagnostics */ \"./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/index.js\")('winston:file');\nconst os = __webpack_require__(/*! os */ \"os\");\nconst tailFile = __webpack_require__(/*! ../tail-file */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/tail-file.js\");\n\n/**\n * Transport for outputting to a local log file.\n * @type {File}\n * @extends {TransportStream}\n */\nmodule.exports = class File extends TransportStream {\n /**\n * Constructor function for the File transport object responsible for\n * persisting log messages and metadata to one or more files.\n * @param {Object} options - Options for this instance.\n */\n constructor(options = {}) {\n super(options);\n\n // Expose the name of this Transport on the prototype.\n this.name = options.name || 'file';\n\n // Helper function which throws an `Error` in the event that any of the\n // rest of the arguments is present in `options`.\n function throwIf(target, ...args) {\n args.slice(1).forEach(name => {\n if (options[name]) {\n throw new Error(`Cannot set ${name} and ${target} together`);\n }\n });\n }\n\n // Setup the base stream that always gets piped to to handle buffering.\n this._stream = new PassThrough();\n this._stream.setMaxListeners(30);\n\n // Bind this context for listener methods.\n this._onError = this._onError.bind(this);\n\n if (options.filename || options.dirname) {\n throwIf('filename or dirname', 'stream');\n this._basename = this.filename = options.filename\n ? path.basename(options.filename)\n : 'winston.log';\n\n this.dirname = options.dirname || path.dirname(options.filename);\n this.options = options.options || { flags: 'a' };\n } else if (options.stream) {\n // eslint-disable-next-line no-console\n console.warn('options.stream will be removed in winston@4. Use winston.transports.Stream');\n throwIf('stream', 'filename', 'maxsize');\n this._dest = this._stream.pipe(this._setupStream(options.stream));\n this.dirname = path.dirname(this._dest.path);\n // We need to listen for drain events when write() returns false. This\n // can make node mad at times.\n } else {\n throw new Error('Cannot log to file without filename or stream.');\n }\n\n this.maxsize = options.maxsize || null;\n this.rotationFormat = options.rotationFormat || false;\n this.zippedArchive = options.zippedArchive || false;\n this.maxFiles = options.maxFiles || null;\n this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL;\n this.tailable = options.tailable || false;\n this.lazy = options.lazy || false;\n\n // Internal state variables representing the number of files this instance\n // has created and the current size (in bytes) of the current logfile.\n this._size = 0;\n this._pendingSize = 0;\n this._created = 0;\n this._drain = false;\n this._opening = false;\n this._ending = false;\n this._fileExist = false;\n\n if (this.dirname) this._createLogDirIfNotExist(this.dirname);\n if (!this.lazy) this.open();\n }\n\n finishIfEnding() {\n if (this._ending) {\n if (this._opening) {\n this.once('open', () => {\n this._stream.once('finish', () => this.emit('finish'));\n setImmediate(() => this._stream.end());\n });\n } else {\n this._stream.once('finish', () => this.emit('finish'));\n setImmediate(() => this._stream.end());\n }\n }\n }\n\n /**\n * Core logging method exposed to Winston. Metadata is optional.\n * @param {Object} info - TODO: add param description.\n * @param {Function} callback - TODO: add param description.\n * @returns {undefined}\n */\n log(info, callback = () => { }) {\n // Remark: (jcrugzz) What is necessary about this callback(null, true) now\n // when thinking about 3.x? Should silent be handled in the base\n // TransportStream _write method?\n if (this.silent) {\n callback();\n return true;\n }\n\n\n // Output stream buffer is full and has asked us to wait for the drain event\n if (this._drain) {\n this._stream.once('drain', () => {\n this._drain = false;\n this.log(info, callback);\n });\n return;\n }\n if (this._rotate) {\n this._stream.once('rotate', () => {\n this._rotate = false;\n this.log(info, callback);\n });\n return;\n }\n if (this.lazy) {\n if (!this._fileExist) {\n if (!this._opening) {\n this.open();\n }\n this.once('open', () => {\n this._fileExist = true;\n this.log(info, callback);\n return;\n });\n return;\n }\n if (this._needsNewFile(this._pendingSize)) {\n this._dest.once('close', () => {\n if (!this._opening) {\n this.open();\n }\n this.once('open', () => {\n this.log(info, callback);\n return;\n });\n return;\n });\n return;\n }\n }\n\n // Grab the raw string and append the expected EOL.\n const output = `${info[MESSAGE]}${this.eol}`;\n const bytes = Buffer.byteLength(output);\n\n // After we have written to the PassThrough check to see if we need\n // to rotate to the next file.\n //\n // Remark: This gets called too early and does not depict when data\n // has been actually flushed to disk.\n function logged() {\n this._size += bytes;\n this._pendingSize -= bytes;\n\n debug('logged %s %s', this._size, output);\n this.emit('logged', info);\n\n // Do not attempt to rotate files while rotating\n if (this._rotate) {\n return;\n }\n\n // Do not attempt to rotate files while opening\n if (this._opening) {\n return;\n }\n\n // Check to see if we need to end the stream and create a new one.\n if (!this._needsNewFile()) {\n return;\n }\n if (this.lazy) {\n this._endStream(() => {this.emit('fileclosed')});\n return;\n }\n\n // End the current stream, ensure it flushes and create a new one.\n // This could potentially be optimized to not run a stat call but its\n // the safest way since we are supporting `maxFiles`.\n this._rotate = true;\n this._endStream(() => this._rotateFile());\n }\n\n // Keep track of the pending bytes being written while files are opening\n // in order to properly rotate the PassThrough this._stream when the file\n // eventually does open.\n this._pendingSize += bytes;\n if (this._opening\n && !this.rotatedWhileOpening\n && this._needsNewFile(this._size + this._pendingSize)) {\n this.rotatedWhileOpening = true;\n }\n\n const written = this._stream.write(output, logged.bind(this));\n if (!written) {\n this._drain = true;\n this._stream.once('drain', () => {\n this._drain = false;\n callback();\n });\n } else {\n callback(); // eslint-disable-line callback-return\n }\n\n debug('written', written, this._drain);\n\n this.finishIfEnding();\n\n return written;\n }\n\n /**\n * Query the transport. Options object is optional.\n * @param {Object} options - Loggly-like query options for this instance.\n * @param {function} callback - Continuation to respond to when complete.\n * TODO: Refactor me.\n */\n query(options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n options = normalizeQuery(options);\n const file = path.join(this.dirname, this.filename);\n let buff = '';\n let results = [];\n let row = 0;\n\n const stream = fs.createReadStream(file, {\n encoding: 'utf8'\n });\n\n stream.on('error', err => {\n if (stream.readable) {\n stream.destroy();\n }\n if (!callback) {\n return;\n }\n\n return err.code !== 'ENOENT' ? callback(err) : callback(null, results);\n });\n\n stream.on('data', data => {\n data = (buff + data).split(/\\n+/);\n const l = data.length - 1;\n let i = 0;\n\n for (; i < l; i++) {\n if (!options.start || row >= options.start) {\n add(data[i]);\n }\n row++;\n }\n\n buff = data[l];\n });\n\n stream.on('close', () => {\n if (buff) {\n add(buff, true);\n }\n if (options.order === 'desc') {\n results = results.reverse();\n }\n\n // eslint-disable-next-line callback-return\n if (callback) callback(null, results);\n });\n\n function add(buff, attempt) {\n try {\n const log = JSON.parse(buff);\n if (check(log)) {\n push(log);\n }\n } catch (e) {\n if (!attempt) {\n stream.emit('error', e);\n }\n }\n }\n\n function push(log) {\n if (\n options.rows &&\n results.length >= options.rows &&\n options.order !== 'desc'\n ) {\n if (stream.readable) {\n stream.destroy();\n }\n return;\n }\n\n if (options.fields) {\n log = options.fields.reduce((obj, key) => {\n obj[key] = log[key];\n return obj;\n }, {});\n }\n\n if (options.order === 'desc') {\n if (results.length >= options.rows) {\n results.shift();\n }\n }\n results.push(log);\n }\n\n function check(log) {\n if (!log) {\n return;\n }\n\n if (typeof log !== 'object') {\n return;\n }\n\n const time = new Date(log.timestamp);\n if (\n (options.from && time < options.from) ||\n (options.until && time > options.until) ||\n (options.level && options.level !== log.level)\n ) {\n return;\n }\n\n return true;\n }\n\n function normalizeQuery(options) {\n options = options || {};\n\n // limit\n options.rows = options.rows || options.limit || 10;\n\n // starting row offset\n options.start = options.start || 0;\n\n // now\n options.until = options.until || new Date();\n if (typeof options.until !== 'object') {\n options.until = new Date(options.until);\n }\n\n // now - 24\n options.from = options.from || (options.until - (24 * 60 * 60 * 1000));\n if (typeof options.from !== 'object') {\n options.from = new Date(options.from);\n }\n\n // 'asc' or 'desc'\n options.order = options.order || 'desc';\n\n return options;\n }\n }\n\n /**\n * Returns a log stream for this transport. Options object is optional.\n * @param {Object} options - Stream options for this instance.\n * @returns {Stream} - TODO: add return description.\n * TODO: Refactor me.\n */\n stream(options = {}) {\n const file = path.join(this.dirname, this.filename);\n const stream = new Stream();\n const tail = {\n file,\n start: options.start\n };\n\n stream.destroy = tailFile(tail, (err, line) => {\n if (err) {\n return stream.emit('error', err);\n }\n\n try {\n stream.emit('data', line);\n line = JSON.parse(line);\n stream.emit('log', line);\n } catch (e) {\n stream.emit('error', e);\n }\n });\n\n return stream;\n }\n\n /**\n * Checks to see the filesize of.\n * @returns {undefined}\n */\n open() {\n // If we do not have a filename then we were passed a stream and\n // don't need to keep track of size.\n if (!this.filename) return;\n if (this._opening) return;\n\n this._opening = true;\n\n // Stat the target file to get the size and create the stream.\n this.stat((err, size) => {\n if (err) {\n return this.emit('error', err);\n }\n debug('stat done: %s { size: %s }', this.filename, size);\n this._size = size;\n this._dest = this._createStream(this._stream);\n this._opening = false;\n this.once('open', () => {\n if (this._stream.eventNames().includes('rotate')) {\n this._stream.emit('rotate');\n } else {\n this._rotate = false;\n }\n });\n });\n }\n\n /**\n * Stat the file and assess information in order to create the proper stream.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n */\n stat(callback) {\n const target = this._getFile();\n const fullpath = path.join(this.dirname, target);\n\n fs.stat(fullpath, (err, stat) => {\n if (err && err.code === 'ENOENT') {\n debug('ENOENT ok', fullpath);\n // Update internally tracked filename with the new target name.\n this.filename = target;\n return callback(null, 0);\n }\n\n if (err) {\n debug(`err ${err.code} ${fullpath}`);\n return callback(err);\n }\n\n if (!stat || this._needsNewFile(stat.size)) {\n // If `stats.size` is greater than the `maxsize` for this\n // instance then try again.\n return this._incFile(() => this.stat(callback));\n }\n\n // Once we have figured out what the filename is, set it\n // and return the size.\n this.filename = target;\n callback(null, stat.size);\n });\n }\n\n /**\n * Closes the stream associated with this instance.\n * @param {function} cb - TODO: add param description.\n * @returns {undefined}\n */\n close(cb) {\n if (!this._stream) {\n return;\n }\n\n this._stream.end(() => {\n if (cb) {\n cb(); // eslint-disable-line callback-return\n }\n this.emit('flush');\n this.emit('closed');\n });\n }\n\n /**\n * TODO: add method description.\n * @param {number} size - TODO: add param description.\n * @returns {undefined}\n */\n _needsNewFile(size) {\n size = size || this._size;\n return this.maxsize && size >= this.maxsize;\n }\n\n /**\n * TODO: add method description.\n * @param {Error} err - TODO: add param description.\n * @returns {undefined}\n */\n _onError(err) {\n this.emit('error', err);\n }\n\n /**\n * TODO: add method description.\n * @param {Stream} stream - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n */\n _setupStream(stream) {\n stream.on('error', this._onError);\n\n return stream;\n }\n\n /**\n * TODO: add method description.\n * @param {Stream} stream - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n */\n _cleanupStream(stream) {\n stream.removeListener('error', this._onError);\n stream.destroy();\n return stream;\n }\n\n /**\n * TODO: add method description.\n */\n _rotateFile() {\n this._incFile(() => this.open());\n }\n\n /**\n * Unpipe from the stream that has been marked as full and end it so it\n * flushes to disk.\n *\n * @param {function} callback - Callback for when the current file has closed.\n * @private\n */\n _endStream(callback = () => { }) {\n if (this._dest) {\n this._stream.unpipe(this._dest);\n this._dest.end(() => {\n this._cleanupStream(this._dest);\n callback();\n });\n } else {\n callback(); // eslint-disable-line callback-return\n }\n }\n\n /**\n * Returns the WritableStream for the active file on this instance. If we\n * should gzip the file then a zlib stream is returned.\n *\n * @param {ReadableStream} source –PassThrough to pipe to the file when open.\n * @returns {WritableStream} Stream that writes to disk for the active file.\n */\n _createStream(source) {\n const fullpath = path.join(this.dirname, this.filename);\n\n debug('create stream start', fullpath, this.options);\n const dest = fs.createWriteStream(fullpath, this.options)\n // TODO: What should we do with errors here?\n .on('error', err => debug(err))\n .on('close', () => debug('close', dest.path, dest.bytesWritten))\n .on('open', () => {\n debug('file open ok', fullpath);\n this.emit('open', fullpath);\n source.pipe(dest);\n\n // If rotation occured during the open operation then we immediately\n // start writing to a new PassThrough, begin opening the next file\n // and cleanup the previous source and dest once the source has drained.\n if (this.rotatedWhileOpening) {\n this._stream = new PassThrough();\n this._stream.setMaxListeners(30);\n this._rotateFile();\n this.rotatedWhileOpening = false;\n this._cleanupStream(dest);\n source.end();\n }\n });\n\n debug('create stream ok', fullpath);\n if (this.zippedArchive) {\n const gzip = zlib.createGzip();\n gzip.pipe(dest);\n return gzip;\n }\n\n return dest;\n }\n\n /**\n * TODO: add method description.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n */\n _incFile(callback) {\n debug('_incFile', this.filename);\n const ext = path.extname(this._basename);\n const basename = path.basename(this._basename, ext);\n\n if (!this.tailable) {\n this._created += 1;\n this._checkMaxFilesIncrementing(ext, basename, callback);\n } else {\n this._checkMaxFilesTailable(ext, basename, callback);\n }\n }\n\n /**\n * Gets the next filename to use for this instance in the case that log\n * filesizes are being capped.\n * @returns {string} - TODO: add return description.\n * @private\n */\n _getFile() {\n const ext = path.extname(this._basename);\n const basename = path.basename(this._basename, ext);\n const isRotation = this.rotationFormat\n ? this.rotationFormat()\n : this._created;\n\n // Caveat emptor (indexzero): rotationFormat() was broken by design When\n // combined with max files because the set of files to unlink is never\n // stored.\n const target = !this.tailable && this._created\n ? `${basename}${isRotation}${ext}`\n : `${basename}${ext}`;\n\n return this.zippedArchive && !this.tailable\n ? `${target}.gz`\n : target;\n }\n\n /**\n * Increment the number of files created or checked by this instance.\n * @param {mixed} ext - TODO: add param description.\n * @param {mixed} basename - TODO: add param description.\n * @param {mixed} callback - TODO: add param description.\n * @returns {undefined}\n * @private\n */\n _checkMaxFilesIncrementing(ext, basename, callback) {\n // Check for maxFiles option and delete file.\n if (!this.maxFiles || this._created < this.maxFiles) {\n return setImmediate(callback);\n }\n\n const oldest = this._created - this.maxFiles;\n const isOldest = oldest !== 0 ? oldest : '';\n const isZipped = this.zippedArchive ? '.gz' : '';\n const filePath = `${basename}${isOldest}${ext}${isZipped}`;\n const target = path.join(this.dirname, filePath);\n\n fs.unlink(target, callback);\n }\n\n /**\n * Roll files forward based on integer, up to maxFiles. e.g. if base if\n * file.log and it becomes oversized, roll to file1.log, and allow file.log\n * to be re-used. If file is oversized again, roll file1.log to file2.log,\n * roll file.log to file1.log, and so on.\n * @param {mixed} ext - TODO: add param description.\n * @param {mixed} basename - TODO: add param description.\n * @param {mixed} callback - TODO: add param description.\n * @returns {undefined}\n * @private\n */\n _checkMaxFilesTailable(ext, basename, callback) {\n const tasks = [];\n if (!this.maxFiles) {\n return;\n }\n\n // const isZipped = this.zippedArchive ? '.gz' : '';\n const isZipped = this.zippedArchive ? '.gz' : '';\n for (let x = this.maxFiles - 1; x > 1; x--) {\n tasks.push(function (i, cb) {\n let fileName = `${basename}${(i - 1)}${ext}${isZipped}`;\n const tmppath = path.join(this.dirname, fileName);\n\n fs.exists(tmppath, exists => {\n if (!exists) {\n return cb(null);\n }\n\n fileName = `${basename}${i}${ext}${isZipped}`;\n fs.rename(tmppath, path.join(this.dirname, fileName), cb);\n });\n }.bind(this, x));\n }\n\n asyncSeries(tasks, () => {\n fs.rename(\n path.join(this.dirname, `${basename}${ext}`),\n path.join(this.dirname, `${basename}1${ext}${isZipped}`),\n callback\n );\n });\n }\n\n _createLogDirIfNotExist(dirPath) {\n /* eslint-disable no-sync */\n if (!fs.existsSync(dirPath)) {\n fs.mkdirSync(dirPath, { recursive: true });\n }\n /* eslint-enable no-sync */\n }\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/http.js\":\n/*!************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/http.js ***!\n \\************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n/**\n * http.js: Transport for outputting to a json-rpcserver.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\nconst http = __webpack_require__(/*! http */ \"http\");\nconst https = __webpack_require__(/*! https */ \"https\");\nconst { Stream } = __webpack_require__(/*! readable-stream */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js\");\nconst TransportStream = __webpack_require__(/*! winston-transport */ \"./build/cht-core-4-6/api/node_modules/winston-transport/index.js\");\nconst jsonStringify = __webpack_require__(/*! safe-stable-stringify */ \"./build/cht-core-4-6/api/node_modules/safe-stable-stringify/index.js\");\n\n/**\n * Transport for outputting to a json-rpc server.\n * @type {Stream}\n * @extends {TransportStream}\n */\nmodule.exports = class Http extends TransportStream {\n /**\n * Constructor function for the Http transport object responsible for\n * persisting log messages and metadata to a terminal or TTY.\n * @param {!Object} [options={}] - Options for this instance.\n */\n // eslint-disable-next-line max-statements\n constructor(options = {}) {\n super(options);\n\n this.options = options;\n this.name = options.name || 'http';\n this.ssl = !!options.ssl;\n this.host = options.host || 'localhost';\n this.port = options.port;\n this.auth = options.auth;\n this.path = options.path || '';\n this.agent = options.agent;\n this.headers = options.headers || {};\n this.headers['content-type'] = 'application/json';\n this.batch = options.batch || false;\n this.batchInterval = options.batchInterval || 5000;\n this.batchCount = options.batchCount || 10;\n this.batchOptions = [];\n this.batchTimeoutID = -1;\n this.batchCallback = {};\n\n if (!this.port) {\n this.port = this.ssl ? 443 : 80;\n }\n }\n\n /**\n * Core logging method exposed to Winston.\n * @param {Object} info - TODO: add param description.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n */\n log(info, callback) {\n this._request(info, null, null, (err, res) => {\n if (res && res.statusCode !== 200) {\n err = new Error(`Invalid HTTP Status Code: ${res.statusCode}`);\n }\n\n if (err) {\n this.emit('warn', err);\n } else {\n this.emit('logged', info);\n }\n });\n\n // Remark: (jcrugzz) Fire and forget here so requests dont cause buffering\n // and block more requests from happening?\n if (callback) {\n setImmediate(callback);\n }\n }\n\n /**\n * Query the transport. Options object is optional.\n * @param {Object} options - Loggly-like query options for this instance.\n * @param {function} callback - Continuation to respond to when complete.\n * @returns {undefined}\n */\n query(options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n options = {\n method: 'query',\n params: this.normalizeQuery(options)\n };\n\n const auth = options.params.auth || null;\n delete options.params.auth;\n\n const path = options.params.path || null;\n delete options.params.path;\n\n this._request(options, auth, path, (err, res, body) => {\n if (res && res.statusCode !== 200) {\n err = new Error(`Invalid HTTP Status Code: ${res.statusCode}`);\n }\n\n if (err) {\n return callback(err);\n }\n\n if (typeof body === 'string') {\n try {\n body = JSON.parse(body);\n } catch (e) {\n return callback(e);\n }\n }\n\n callback(null, body);\n });\n }\n\n /**\n * Returns a log stream for this transport. Options object is optional.\n * @param {Object} options - Stream options for this instance.\n * @returns {Stream} - TODO: add return description\n */\n stream(options = {}) {\n const stream = new Stream();\n options = {\n method: 'stream',\n params: options\n };\n\n const path = options.params.path || null;\n delete options.params.path;\n\n const auth = options.params.auth || null;\n delete options.params.auth;\n\n let buff = '';\n const req = this._request(options, auth, path);\n\n stream.destroy = () => req.destroy();\n req.on('data', data => {\n data = (buff + data).split(/\\n+/);\n const l = data.length - 1;\n\n let i = 0;\n for (; i < l; i++) {\n try {\n stream.emit('log', JSON.parse(data[i]));\n } catch (e) {\n stream.emit('error', e);\n }\n }\n\n buff = data[l];\n });\n req.on('error', err => stream.emit('error', err));\n\n return stream;\n }\n\n /**\n * Make a request to a winstond server or any http server which can\n * handle json-rpc.\n * @param {function} options - Options to sent the request.\n * @param {Object?} auth - authentication options\n * @param {string} path - request path\n * @param {function} callback - Continuation to respond to when complete.\n */\n _request(options, auth, path, callback) {\n options = options || {};\n\n auth = auth || this.auth;\n path = path || this.path || '';\n\n if (this.batch) {\n this._doBatch(options, callback, auth, path);\n } else {\n this._doRequest(options, callback, auth, path);\n }\n }\n\n /**\n * Send or memorize the options according to batch configuration\n * @param {function} options - Options to sent the request.\n * @param {function} callback - Continuation to respond to when complete.\n * @param {Object?} auth - authentication options\n * @param {string} path - request path\n */\n _doBatch(options, callback, auth, path) {\n this.batchOptions.push(options);\n if (this.batchOptions.length === 1) {\n // First message stored, it's time to start the timeout!\n const me = this;\n this.batchCallback = callback;\n this.batchTimeoutID = setTimeout(function () {\n // timeout is reached, send all messages to endpoint\n me.batchTimeoutID = -1;\n me._doBatchRequest(me.batchCallback, auth, path);\n }, this.batchInterval);\n }\n if (this.batchOptions.length === this.batchCount) {\n // max batch count is reached, send all messages to endpoint\n this._doBatchRequest(this.batchCallback, auth, path);\n }\n }\n\n /**\n * Initiate a request with the memorized batch options, stop the batch timeout\n * @param {function} callback - Continuation to respond to when complete.\n * @param {Object?} auth - authentication options\n * @param {string} path - request path\n */\n _doBatchRequest(callback, auth, path) {\n if (this.batchTimeoutID > 0) {\n clearTimeout(this.batchTimeoutID);\n this.batchTimeoutID = -1;\n }\n const batchOptionsCopy = this.batchOptions.slice();\n this.batchOptions = [];\n this._doRequest(batchOptionsCopy, callback, auth, path);\n }\n\n /**\n * Make a request to a winstond server or any http server which can\n * handle json-rpc.\n * @param {function} options - Options to sent the request.\n * @param {function} callback - Continuation to respond to when complete.\n * @param {Object?} auth - authentication options\n * @param {string} path - request path\n */\n _doRequest(options, callback, auth, path) {\n // Prepare options for outgoing HTTP request\n const headers = Object.assign({}, this.headers);\n if (auth && auth.bearer) {\n headers.Authorization = `Bearer ${auth.bearer}`;\n }\n const req = (this.ssl ? https : http).request({\n ...this.options,\n method: 'POST',\n host: this.host,\n port: this.port,\n path: `/${path.replace(/^\\//, '')}`,\n headers: headers,\n auth: (auth && auth.username && auth.password) ? (`${auth.username}:${auth.password}`) : '',\n agent: this.agent\n });\n\n req.on('error', callback);\n req.on('response', res => (\n res.on('end', () => callback(null, res)).resume()\n ));\n req.end(Buffer.from(jsonStringify(options, this.options.replacer), 'utf8'));\n }\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/index.js\":\n/*!*************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/index.js ***!\n \\*************************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n/**\n * transports.js: Set of all transports Winston knows about.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\n/**\n * TODO: add property description.\n * @type {Console}\n */\nObject.defineProperty(exports, \"Console\", ({\n configurable: true,\n enumerable: true,\n get() {\n return __webpack_require__(/*! ./console */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/console.js\");\n }\n}));\n\n/**\n * TODO: add property description.\n * @type {File}\n */\nObject.defineProperty(exports, \"File\", ({\n configurable: true,\n enumerable: true,\n get() {\n return __webpack_require__(/*! ./file */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/file.js\");\n }\n}));\n\n/**\n * TODO: add property description.\n * @type {Http}\n */\nObject.defineProperty(exports, \"Http\", ({\n configurable: true,\n enumerable: true,\n get() {\n return __webpack_require__(/*! ./http */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/http.js\");\n }\n}));\n\n/**\n * TODO: add property description.\n * @type {Stream}\n */\nObject.defineProperty(exports, \"Stream\", ({\n configurable: true,\n enumerable: true,\n get() {\n return __webpack_require__(/*! ./stream */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/stream.js\");\n }\n}));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/stream.js\":\n/*!**************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/stream.js ***!\n \\**************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n/**\n * stream.js: Transport for outputting to any arbitrary stream.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n\n\nconst isStream = __webpack_require__(/*! is-stream */ \"./build/cht-core-4-6/api/node_modules/is-stream/index.js\");\nconst { MESSAGE } = __webpack_require__(/*! triple-beam */ \"./build/cht-core-4-6/api/node_modules/triple-beam/index.js\");\nconst os = __webpack_require__(/*! os */ \"os\");\nconst TransportStream = __webpack_require__(/*! winston-transport */ \"./build/cht-core-4-6/api/node_modules/winston-transport/index.js\");\n\n/**\n * Transport for outputting to any arbitrary stream.\n * @type {Stream}\n * @extends {TransportStream}\n */\nmodule.exports = class Stream extends TransportStream {\n /**\n * Constructor function for the Console transport object responsible for\n * persisting log messages and metadata to a terminal or TTY.\n * @param {!Object} [options={}] - Options for this instance.\n */\n constructor(options = {}) {\n super(options);\n\n if (!options.stream || !isStream(options.stream)) {\n throw new Error('options.stream is required.');\n }\n\n // We need to listen for drain events when write() returns false. This can\n // make node mad at times.\n this._stream = options.stream;\n this._stream.setMaxListeners(Infinity);\n this.isObjectMode = options.stream._writableState.objectMode;\n this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL;\n }\n\n /**\n * Core logging method exposed to Winston.\n * @param {Object} info - TODO: add param description.\n * @param {Function} callback - TODO: add param description.\n * @returns {undefined}\n */\n log(info, callback) {\n setImmediate(() => this.emit('logged', info));\n if (this.isObjectMode) {\n this._stream.write(info);\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n return;\n }\n\n this._stream.write(`${info[MESSAGE]}${this.eol}`);\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n return;\n }\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js\":\n/*!********************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js ***!\n \\********************************************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\n\n\nconst codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n\n function getMessage (arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message\n } else {\n return message(arg1, arg2, arg3)\n }\n }\n\n class NodeError extends Base {\n constructor (arg1, arg2, arg3) {\n super(getMessage(arg1, arg2, arg3));\n }\n }\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n const len = expected.length;\n expected = expected.map((i) => String(i));\n if (len > 2) {\n return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` +\n expected[len - 1];\n } else if (len === 2) {\n return `one of ${thing} ${expected[0]} or ${expected[1]}`;\n } else {\n return `of ${thing} ${expected[0]}`;\n }\n } else {\n return `of ${thing} ${String(expected)}`;\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n\treturn str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n\tif (this_len === undefined || this_len > str.length) {\n\t\tthis_len = str.length;\n\t}\n\treturn str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"'\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n let determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n let msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`;\n } else {\n const type = includes(name, '.') ? 'property' : 'argument';\n msg = `The \"${name}\" ${type} ${determiner} ${oneOf(expected, 'type')}`;\n }\n\n msg += `. Received type ${typeof actual}`;\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented'\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\n\nmodule.exports.codes = codes;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js\":\n/*!********************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js ***!\n \\********************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = __webpack_require__(/*! ./_stream_readable */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js\");\nvar Writable = __webpack_require__(/*! ./_stream_writable */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js\");\n__webpack_require__(/*! inherits */ \"./build/cht-core-4-6/api/node_modules/inherits/inherits.js\")(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_passthrough.js\":\n/*!*************************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_passthrough.js ***!\n \\*************************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n\n\nmodule.exports = PassThrough;\nvar Transform = __webpack_require__(/*! ./_stream_transform */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js\");\n__webpack_require__(/*! inherits */ \"./build/cht-core-4-6/api/node_modules/inherits/inherits.js\")(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js\":\n/*!**********************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js ***!\n \\**********************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = __webpack_require__(/*! events */ \"events\").EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/stream.js\");\n/**/\n\nvar Buffer = __webpack_require__(/*! buffer */ \"buffer\").Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = __webpack_require__(/*! util */ \"util\");\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = __webpack_require__(/*! ./internal/streams/buffer_list */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/buffer_list.js\");\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/destroy.js\");\nvar _require = __webpack_require__(/*! ./internal/streams/state */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/state.js\"),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js\").codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n__webpack_require__(/*! inherits */ \"./build/cht-core-4-6/api/node_modules/inherits/inherits.js\")(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js\");\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./build/cht-core-4-6/api/node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js\");\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./build/cht-core-4-6/api/node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = __webpack_require__(/*! ./internal/streams/async_iterator */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/async_iterator.js\");\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = __webpack_require__(/*! ./internal/streams/from */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/from.js\");\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js\":\n/*!***********************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js ***!\n \\***********************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\n\nmodule.exports = Transform;\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js\").codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = __webpack_require__(/*! ./_stream_duplex */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js\");\n__webpack_require__(/*! inherits */ \"./build/cht-core-4-6/api/node_modules/inherits/inherits.js\")(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js\":\n/*!**********************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js ***!\n \\**********************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: __webpack_require__(/*! util-deprecate */ \"./build/cht-core-4-6/api/node_modules/util-deprecate/node.js\")\n};\n/**/\n\n/**/\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/stream.js\");\n/**/\n\nvar Buffer = __webpack_require__(/*! buffer */ \"buffer\").Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/destroy.js\");\nvar _require = __webpack_require__(/*! ./internal/streams/state */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/state.js\"),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js\").codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n__webpack_require__(/*! inherits */ \"./build/cht-core-4-6/api/node_modules/inherits/inherits.js\")(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js\");\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js\");\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/async_iterator.js\":\n/*!*************************************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/async_iterator.js ***!\n \\*************************************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = __webpack_require__(/*! ./end-of-stream */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/buffer_list.js\":\n/*!**********************************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/buffer_list.js ***!\n \\**********************************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = __webpack_require__(/*! buffer */ \"buffer\"),\n Buffer = _require.Buffer;\nvar _require2 = __webpack_require__(/*! util */ \"util\"),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/destroy.js\":\n/*!******************************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/destroy.js ***!\n \\******************************************************************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\n\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\":\n/*!************************************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***!\n \\************************************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n\n\nvar ERR_STREAM_PREMATURE_CLOSE = __webpack_require__(/*! ../../../errors */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js\").codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/from.js\":\n/*!***************************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/from.js ***!\n \\***************************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar ERR_INVALID_ARG_TYPE = __webpack_require__(/*! ../../../errors */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js\").codes.ERR_INVALID_ARG_TYPE;\nfunction from(Readable, iterable, opts) {\n var iterator;\n if (iterable && typeof iterable.next === 'function') {\n iterator = iterable;\n } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable);\n var readable = new Readable(_objectSpread({\n objectMode: true\n }, opts));\n // Reading boolean to protect against _read\n // being called before last iteration completion.\n var reading = false;\n readable._read = function () {\n if (!reading) {\n reading = true;\n next();\n }\n };\n function next() {\n return _next2.apply(this, arguments);\n }\n function _next2() {\n _next2 = _asyncToGenerator(function* () {\n try {\n var _yield$iterator$next = yield iterator.next(),\n value = _yield$iterator$next.value,\n done = _yield$iterator$next.done;\n if (done) {\n readable.push(null);\n } else if (readable.push(yield value)) {\n next();\n } else {\n reading = false;\n }\n } catch (err) {\n readable.destroy(err);\n }\n });\n return _next2.apply(this, arguments);\n }\n return readable;\n}\nmodule.exports = from;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/pipeline.js\":\n/*!*******************************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/pipeline.js ***!\n \\*******************************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = __webpack_require__(/*! ../../../errors */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js\").codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = __webpack_require__(/*! ./end-of-stream */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/state.js\":\n/*!****************************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/state.js ***!\n \\****************************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nvar ERR_INVALID_OPT_VALUE = __webpack_require__(/*! ../../../errors */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js\").codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/stream.js\":\n/*!*****************************************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/stream.js ***!\n \\*****************************************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports = __webpack_require__(/*! stream */ \"stream\");\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js\":\n/*!**********************************************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js ***!\n \\**********************************************************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\nvar Stream = __webpack_require__(/*! stream */ \"stream\");\nif (process.env.READABLE_STREAM === 'disable' && Stream) {\n module.exports = Stream.Readable;\n Object.assign(module.exports, Stream);\n module.exports.Stream = Stream;\n} else {\n exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js\");\n exports.Stream = Stream || exports;\n exports.Readable = exports;\n exports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js\");\n exports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js\");\n exports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js\");\n exports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_passthrough.js\");\n exports.finished = __webpack_require__(/*! ./lib/internal/streams/end-of-stream.js */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\n exports.pipeline = __webpack_require__(/*! ./lib/internal/streams/pipeline.js */ \"./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/pipeline.js\");\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/node_modules/winston/package.json\":\n/*!******************************************************************!*\\\n !*** ./build/cht-core-4-6/api/node_modules/winston/package.json ***!\n \\******************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = JSON.parse('{\"name\":\"winston\",\"description\":\"A logger for just about everything.\",\"version\":\"3.10.0\",\"author\":\"Charlie Robbins \",\"maintainers\":[\"David Hyde \"],\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/winstonjs/winston.git\"},\"keywords\":[\"winston\",\"logger\",\"logging\",\"logs\",\"sysadmin\",\"bunyan\",\"pino\",\"loglevel\",\"tools\",\"json\",\"stream\"],\"dependencies\":{\"@dabh/diagnostics\":\"^2.0.2\",\"@colors/colors\":\"1.5.0\",\"async\":\"^3.2.3\",\"is-stream\":\"^2.0.0\",\"logform\":\"^2.4.0\",\"one-time\":\"^1.0.0\",\"readable-stream\":\"^3.4.0\",\"safe-stable-stringify\":\"^2.3.1\",\"stack-trace\":\"0.0.x\",\"triple-beam\":\"^1.3.0\",\"winston-transport\":\"^4.5.0\"},\"devDependencies\":{\"@babel/cli\":\"^7.17.0\",\"@babel/core\":\"^7.17.2\",\"@babel/preset-env\":\"^7.16.7\",\"@dabh/eslint-config-populist\":\"^5.0.0\",\"@types/node\":\"^20.3.1\",\"abstract-winston-transport\":\"^0.5.1\",\"assume\":\"^2.2.0\",\"cross-spawn-async\":\"^2.2.5\",\"eslint\":\"^8.9.0\",\"hock\":\"^1.4.1\",\"mocha\":\"8.1.3\",\"nyc\":\"^15.1.0\",\"rimraf\":\"^3.0.2\",\"split2\":\"^4.1.0\",\"std-mocks\":\"^1.0.1\",\"through2\":\"^4.0.2\",\"winston-compat\":\"^0.1.5\"},\"main\":\"./lib/winston.js\",\"browser\":\"./dist/winston\",\"types\":\"./index.d.ts\",\"scripts\":{\"lint\":\"eslint lib/*.js lib/winston/*.js lib/winston/**/*.js --resolve-plugins-relative-to ./node_modules/@dabh/eslint-config-populist\",\"test\":\"mocha\",\"test:coverage\":\"nyc npm run test:unit\",\"test:unit\":\"mocha test/unit\",\"test:integration\":\"mocha test/integration\",\"build\":\"rimraf dist && babel lib -d dist\",\"prepublishOnly\":\"npm run build\"},\"engines\":{\"node\":\">= 12.0.0\"},\"license\":\"MIT\"}');\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/src/enketo-transformer/markdown.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/api/src/enketo-transformer/markdown.js ***!\n \\*******************************************************************/\n/***/ ((module) => {\n\n// identical copy of https://github.com/enketo/enketo-transformer/blob/2.1.5/src/markdown.js\n// committed because of https://github.com/medic/cht-core/issues/7771\n\n/**\n * @module markdown\n */\n\n/**\n * Transforms XForm label and hint textnode content with a subset of Markdown into HTML\n *\n * Supported:\n * - `_`, `__`, `*`, `**`, `[]()`, `#`, `##`, `###`, `####`, `#####`,\n * - span tags and html-encoded span tags,\n * - single-level unordered markdown lists and single-level ordered markdown lists\n * - newline characters\n *\n * Also HTML encodes any unsupported HTML tags for safe use inside web-based clients\n *\n * @static\n * @param {string} text - Text content of a textnode.\n * @return {string} transformed text content of a textnode.\n */\nfunction markdownToHtml(text) {\n // note: in JS $ matches end of line as well as end of string, and ^ both beginning of line and string\n const html = text\n // html encoding of < because libXMLJs Element.text() converts html entities\n .replace(//gm, '>')\n // span\n .replace(\n /<\\s?span([^/\\n]*)>((?:(?!<\\/).)+)<\\/\\s?span\\s?>/gm,\n _createSpan\n )\n // sup\n .replace(\n /<\\s?sup([^/\\n]*)>((?:(?!<\\/).)+)<\\/\\s?sup\\s?>/gm,\n _createSup\n )\n // sub\n .replace(\n /<\\s?sub([^/\\n]*)>((?:(?!<\\/).)+)<\\/\\s?sub\\s?>/gm,\n _createSub\n )\n // \"\\\" will be used as escape character for *, _\n .replace(/&/gm, '&')\n .replace(/\\\\\\\\/gm, '&92;')\n .replace(/\\\\\\*/gm, '&42;')\n .replace(/\\\\_/gm, '&95;')\n .replace(/\\\\#/gm, '&35;')\n // strong\n .replace(/__(.*?)__/gm, '$1')\n .replace(/\\*\\*(.*?)\\*\\*/gm, '$1')\n // emphasis\n .replace(/_([^\\s][^_\\n]*)_/gm, '$1')\n .replace(/\\*([^\\s][^*\\n]*)\\*/gm, '$1')\n // links\n .replace(\n /\\[([^\\]]*)\\]\\(([^)]+)\\)/gm,\n '$1'\n )\n // headers\n .replace(/^\\s*(#{1,6})\\s?([^#][^\\n]*)(\\n|$)/gm, _createHeader)\n // unordered lists\n .replace(/^((\\*|\\+|-) (.*)(\\n|$))+/gm, _createUnorderedList)\n // ordered lists, which have to be preceded by a newline since numbered labels are common\n .replace(/(\\n([0-9]+\\.) (.*))+$/gm, _createOrderedList)\n // newline characters followed by
                tag\n .replace(/\\n(
                  )/gm, '$1')\n // reverting escape of special characters\n .replace(/&35;/gm, '#')\n .replace(/&95;/gm, '_')\n .replace(/&92;/gm, '\\\\')\n .replace(/&42;/gm, '*')\n .replace(/&/gm, '&')\n // paragraphs\n .replace(/([^\\n]+)\\n{2,}/gm, _createParagraph)\n // any remaining newline characters\n .replace(/([^\\n]+)\\n/gm, '$1
                  ');\n\n return html;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @param {*} hashtags - Before header text. `#` gives `

                  `, `####` gives `

                  `.\n * @param {string} content - Header text.\n * @return {string} HTML string.\n */\nfunction _createHeader(match, hashtags, content) {\n const level = hashtags.length;\n\n return `${content.replace(/#+$/, '')}`;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @return {string} HTML string.\n */\nfunction _createUnorderedList(match) {\n const items = match.replace(/(\\*|\\+|-)(.*)\\n?/gm, _createItem);\n\n return `
                    ${items}
                  `;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @return {string} HTML string.\n */\nfunction _createOrderedList(match) {\n const startMatches = match.match(/^\\n?(?[0-9]+)\\./);\n const start =\n startMatches && startMatches.groups && startMatches.groups.start !== '1'\n ? ` start=\"${startMatches.groups.start}\"`\n : '';\n const items = match.replace(/\\n?([0-9]+\\.)(.*)/gm, _createItem);\n\n return `${items}`;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @param {string} bullet - The list item bullet/number.\n * @param {string} content - Item text.\n * @return {string} HTML string.\n */\nfunction _createItem(match, bullet, content) {\n return `
                • ${content.trim()}
                • `;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @param {string} line - The line.\n * @return {string} HTML string.\n */\nfunction _createParagraph(match, line) {\n const trimmed = line.trim();\n if (/^<\\/?(ul|ol|li|h|p|bl)/i.test(trimmed)) {\n return line;\n }\n\n return `

                  ${trimmed}

                  `;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @param {string} attributes - Attributes to be added for ``\n * @param {string} content - Span text.\n * @return {string} HTML string.\n */\nfunction _createSpan(match, attributes, content) {\n const sanitizedAttributes = _sanitizeAttributes(attributes);\n\n return `${content}`;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @param {string} attributes - The attributes.\n * @param {string} content - Sup text.\n * @return {string} HTML string.\n */\nfunction _createSup(match, attributes, content) {\n // ignore attributes completely\n return `${content}`;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @param {string} attributes - The attributes.\n * @param {string} content - Sub text.\n * @return {string} HTML string.\n */\nfunction _createSub(match, attributes, content) {\n // ignore attributes completely\n return `${content}`;\n}\n\n/**\n * @param {string} attributes - The attributes.\n * @return {string} style\n */\nfunction _sanitizeAttributes(attributes) {\n const styleMatches = attributes.match(/( style=([\"'])[^\"']*\\2)/);\n const style = styleMatches && styleMatches.length ? styleMatches[0] : '';\n\n return style;\n}\n\nmodule.exports = {\n toHtml: markdownToHtml,\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/src/logger.js\":\n/*!**********************************************!*\\\n !*** ./build/cht-core-4-6/api/src/logger.js ***!\n \\**********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst { createLogger, format, transports } = __webpack_require__(/*! winston */ \"./build/cht-core-4-6/api/node_modules/winston/lib/winston.js\");\nconst env = \"development\" || 0;\nconst morgan = __webpack_require__(/*! morgan */ \"./build/cht-core-4-6/api/node_modules/morgan/index.js\");\nconst moment = __webpack_require__(/*! moment */ \"./build/cht-core-4-6/api/node_modules/moment/moment.js\");\nconst DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ss.SSS';\nmorgan.token('date', () => moment().format(DATE_FORMAT));\n\n\nconst cleanUpErrorsFromSymbolProperties = (info) => {\n if (!info) {\n return;\n }\n\n // errors can be passed as \"Symbol('splat')\" properties, when doing: logger.error('message: %o', actualError);\n // see https://github.com/winstonjs/winston/blob/2625f60c5c85b8c4926c65e98a591f8b42e0db9a/README.md#streams-objectmode-and-info-objects\n Object.getOwnPropertySymbols(info).forEach(property => {\n const values = info[property];\n if (Array.isArray(values)) {\n values.forEach(value => cleanUpRequestError(value));\n }\n });\n};\n\nconst cleanUpRequestError = (error) => {\n // These are the error types that we're expecting from request-promise-native\n // https://github.com/request/promise-core/blob/v1.1.4/lib/errors.js\n const requestErrorConstructors = ['RequestError', 'StatusCodeError', 'TransformError'];\n if (error && error.constructor && requestErrorConstructors.includes(error.constructor.name)) {\n // these properties could contain sensitive information, like passwords or auth tokens, and are not safe to log\n delete error.options;\n delete error.request;\n delete error.response;\n }\n};\n\nconst enumerateErrorFormat = format(info => {\n cleanUpErrorsFromSymbolProperties(info);\n cleanUpRequestError(info);\n cleanUpRequestError(info.message);\n\n if (info.message instanceof Error) {\n info.message = Object.assign({\n message: info.message.message,\n stack: info.message.stack\n }, info.message);\n }\n\n if (info instanceof Error) {\n return Object.assign({\n message: info.message,\n stack: info.stack\n }, info);\n }\n\n return info;\n});\n\nconst logger = createLogger({\n format: format.combine(\n enumerateErrorFormat(),\n format.splat(),\n format.simple()\n ),\n transports: [\n new transports.Console({\n // change level if in dev environment versus production\n level: env === 'development' ? 'debug' : 'info',\n format: format.combine(\n // https://github.com/winstonjs/winston/issues/1345\n format(info => {\n info.level = info.level.toUpperCase();\n return info;\n })(),\n format.timestamp({ format: DATE_FORMAT }),\n format.printf(info => `${info.timestamp} ${info.level}: ${info.message} ${info.stack ? info.stack : ''}`)\n ),\n }),\n ],\n});\n\nmodule.exports = logger;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/api/src/services/generate-xform.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/api/src/services/generate-xform.js ***!\n \\***************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\n * XForm generation service\n * @module generate-xform\n */\nconst childProcess = __webpack_require__(/*! child_process */ \"child_process\");\nconst path = __webpack_require__(/*! path */ \"path\");\nconst htmlParser = __webpack_require__(/*! node-html-parser */ \"./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/index.js\");\nconst logger = __webpack_require__(/*! ../logger */ \"./build/cht-core-4-6/api/src/logger.js\");\n// const db = require('../db');\n// const formsService = require('./forms');\nconst markdown = __webpack_require__(/*! ../enketo-transformer/markdown */ \"./build/cht-core-4-6/api/src/enketo-transformer/markdown.js\");\n\nconst MODEL_ROOT_OPEN = '';\nconst ROOT_CLOSE = '';\nconst JAVAROSA_SRC = / src=\"jr:\\/\\//gi;\nconst MEDIA_SRC_ATTR = ' data-media-src=\"';\n\n// const FORM_STYLESHEET = path.join(__dirname, '../xsl/openrosa2html5form.xsl');\n// const MODEL_STYLESHEET = path.join(__dirname, '../enketo-transformer/xsl/openrosa2xmlmodel.xsl');\nconst { FORM_STYLESHEET, MODEL_STYLESHEET } = __webpack_require__(/*! ../xsl/xsl-paths */ \"./cht-bundles/cht-core-4-6/xsl-paths.js\");\nconst XSLTPROC_CMD = 'xsltproc';\n\nconst processErrorHandler = (xsltproc, err, reject) => {\n xsltproc.stdin.end();\n if (err.code === 'EPIPE' // Node v10,v12,v14\n || (err.code === 'ENOENT' && err.syscall === `spawn ${XSLTPROC_CMD}`) // Node v8,v16+\n ) {\n const errMsg = `Unable to continue execution, check that '${XSLTPROC_CMD}' command is available.`;\n logger.error(errMsg);\n return reject(new Error(errMsg));\n }\n logger.error(err);\n return reject(new Error(`Unknown Error: An error occurred when executing '${XSLTPROC_CMD}' command`));\n};\n\nconst transform = (formXml, stylesheet) => {\n return new Promise((resolve, reject) => {\n const xsltproc = childProcess.spawn(XSLTPROC_CMD, [ stylesheet, '-' ]);\n let stdout = '';\n let stderr = '';\n xsltproc.stdout.on('data', data => stdout += data);\n xsltproc.stderr.on('data', data => stderr += data);\n xsltproc.stdin.setEncoding('utf-8');\n xsltproc.stdin.on('error', err => {\n // Errors related with spawned processes and stdin are handled here on Node v10\n return processErrorHandler(xsltproc, err, reject);\n });\n try {\n xsltproc.stdin.write(formXml);\n xsltproc.stdin.end();\n } catch (err) {\n // Errors related with spawned processes and stdin are handled here on Node v12\n return processErrorHandler(xsltproc, err, reject);\n }\n xsltproc.on('close', (code, signal) => {\n if (code !== 0 || signal || stderr.length) {\n let errorMsg = `Error transforming xml. xsltproc returned code \"${code}\", and signal \"${signal}\"`;\n if (stderr.length) {\n errorMsg += '. xsltproc stderr output:\\n' + stderr;\n }\n return reject(new Error(errorMsg));\n }\n if (!stdout) {\n return reject(new Error(`Error transforming xml. xsltproc returned no error but no output.`));\n }\n resolve(stdout);\n });\n xsltproc.on('error', err => {\n // Errors related with spawned processes are handled here on Node v8,v14,v16+\n return processErrorHandler(xsltproc, err, reject);\n });\n });\n};\n\nconst convertDynamicUrls = (original) => original.replace(\n /]+href=\"([^\"]*---output[^\"]*)\"[^>]*>(.*?)<\\/a>/gm,\n '' +\n '$2$1' +\n ''\n);\n\nconst convertEmbeddedHtml = (original) => original\n .replace(/<\\s*(\\/)?\\s*([\\s\\S]*?)\\s*>/gm, '<$1$2>')\n .replace(/"/g, '\"')\n .replace(/'/g, '\\'')\n .replace(/&/g, '&');\n\nconst replaceNode = (currentNode, newNode) => {\n const { parentNode } = currentNode;\n const idx = parentNode.childNodes.findIndex((child) => child === currentNode);\n parentNode.childNodes = [\n ...parentNode.childNodes.slice(0, idx),\n newNode,\n ...parentNode.childNodes.slice(idx + 1),\n ];\n};\n\n// Based on enketo/enketo-transformer\n// https://github.com/enketo/enketo-transformer/blob/377caf14153586b040367f8c2de53c9d794c19d4/src/transformer.js#L430\nconst replaceAllMarkdown = (formString) => {\n const replacements = {};\n const form = htmlParser.parse(formString).querySelector('form');\n\n // First turn all outputs into text so ** can be detected\n form.querySelectorAll('span.or-output').forEach((el, index) => {\n const key = `---output-${index}`;\n const textNode = el.childNodes[0];\n replacements[key] = el.toString();\n textNode.textContent = key;\n replaceNode(el, textNode);\n // Note that we end up in a situation where we likely have sibling text nodes...\n });\n\n // Now render markdown\n const questions = form.querySelectorAll('span.question-label');\n const hints = form.querySelectorAll('span.or-hint');\n questions.concat(hints).forEach((el, index) => {\n const original = el.innerHTML;\n let rendered = markdown.toHtml(original);\n rendered = convertDynamicUrls(rendered);\n rendered = convertEmbeddedHtml(rendered);\n\n if (original !== rendered) {\n const key = `$$$${index}`;\n replacements[key] = rendered;\n el.innerHTML = key;\n }\n });\n\n let result = form.toString();\n\n // Now replace the placeholders with the rendered HTML\n // in reverse order so outputs are done last\n Object.keys(replacements).reverse().forEach(key => {\n const replacement = replacements[key];\n if (replacement) {\n result = result.replace(key, replacement);\n }\n });\n\n return result;\n};\n\nconst generateForm = formXml => {\n return transform(formXml, FORM_STYLESHEET).then(form => {\n form = replaceAllMarkdown(form);\n // rename the media src attributes so the browser doesn't try and\n // request them, instead leaving it to custom code in the Enketo\n // service to load them asynchronously\n return form.replace(JAVAROSA_SRC, MEDIA_SRC_ATTR);\n });\n};\n\nconst generateModel = formXml => {\n return transform(formXml, MODEL_STYLESHEET).then(model => {\n // remove the root node leaving just the model\n model = model.replace(MODEL_ROOT_OPEN, '');\n const index = model.lastIndexOf(ROOT_CLOSE);\n if (index === -1) {\n return model;\n }\n return model.slice(0, index) + model.slice(index + ROOT_CLOSE.length);\n });\n};\n\nconst getEnketoForm = doc => {\n const collect = doc.context && doc.context.collect;\n return !collect && formsService.getXFormAttachment(doc);\n};\n\nconst generate = formXml => {\n return Promise.all([ generateForm(formXml), generateModel(formXml) ])\n .then(([ form, model ]) => ({ form, model }));\n};\n\nconst updateAttachment = (doc, updated, name, type) => {\n const attachmentData = doc._attachments &&\n doc._attachments[name] &&\n doc._attachments[name].data &&\n doc._attachments[name].data.toString();\n if (attachmentData === updated) {\n return false;\n }\n doc._attachments[name] = {\n data: Buffer.from(updated),\n content_type: type\n };\n return true;\n};\n\nconst updateAttachmentsIfRequired = (doc, updated) => {\n const formUpdated = updateAttachment(doc, updated.form, 'form.html', 'text/html');\n const modelUpdated = updateAttachment(doc, updated.model, 'model.xml', 'text/xml');\n return formUpdated || modelUpdated;\n};\n\nconst updateAttachments = (accumulator, doc) => {\n return accumulator.then(results => {\n const form = getEnketoForm(doc);\n if (!form) {\n results.push(null); // not an enketo form - no update required\n return results;\n }\n logger.debug(`Generating html and xml model for enketo form \"${doc._id}\"`);\n return module.exports.generate(form.data.toString()).then(result => {\n results.push(result);\n return results;\n });\n });\n};\n\n// Returns array of docs that need saving.\nconst updateAllAttachments = docs => {\n // spawn the child processes in series so we don't smash the server\n return docs.reduce(updateAttachments, Promise.resolve([])).then(results => {\n return docs.filter((doc, i) => {\n return results[i] && updateAttachmentsIfRequired(doc, results[i]);\n });\n });\n};\n\nmodule.exports = {\n\n /**\n * Updates the model and form attachments of the given form if necessary.\n * @param {string} docId - The db id of the doc defining the form.\n */\n update: docId => {\n return db.medic.get(docId, { attachments: true, binary: true })\n .then(doc => updateAllAttachments([ doc ]))\n .then(docs => {\n const doc = docs.length && docs[0];\n if (doc) {\n logger.info(`Updating form with ID \"${docId}\"`);\n return db.medic.put(doc);\n }\n logger.info(`Form with ID \"${docId}\" does not need to be updated.`);\n });\n },\n\n /**\n * Updates the model and form attachments for all forms if necessary.\n */\n updateAll: () => {\n return formsService\n .getFormDocs()\n .then(docs => {\n if (!docs.length) {\n return [];\n }\n return updateAllAttachments(docs);\n })\n .then(toSave => {\n logger.info(`Updating ${toSave.length} enketo form${toSave.length === 1 ? '' : 's'}`);\n if (!toSave.length) {\n return;\n }\n return db.saveDocs(db.medic, toSave).then(results => {\n const failures = results.filter(result => !result.ok);\n if (failures.length) {\n logger.error('Bulk save failed with: %o', failures);\n throw new Error('Failed to save updated xforms to the database');\n }\n });\n });\n\n },\n\n /**\n * @param formXml The XML form string\n * @returns a promise with the XML form transformed following\n * the stylesheet rules defined (XSL transformations)\n */\n generate\n\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/arguments-extended/index.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/arguments-extended/index.js ***!\n \\*********************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n(function () {\n \"use strict\";\n\n function defineArgumentsExtended(extended, is) {\n\n var pSlice = Array.prototype.slice,\n isArguments = is.isArguments;\n\n function argsToArray(args, slice) {\n var i = -1, j = 0, l = args.length, ret = [];\n slice = slice || 0;\n i += slice;\n while (++i < l) {\n ret[j++] = args[i];\n }\n return ret;\n }\n\n\n return extended\n .define(isArguments, {\n toArray: argsToArray\n })\n .expose({\n argsToArray: argsToArray\n });\n }\n\n if (true) {\n if ( true && module.exports) {\n module.exports = defineArgumentsExtended(__webpack_require__(/*! extended */ \"./build/cht-core-4-6/node_modules/extended/index.js\"), __webpack_require__(/*! is-extended */ \"./build/cht-core-4-6/node_modules/is-extended/index.js\"));\n\n }\n } else {}\n\n}).call(this);\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/array-extended/index.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/array-extended/index.js ***!\n \\*****************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n(function () {\n \"use strict\";\n /*global define*/\n\n function defineArray(extended, is, args) {\n\n var isString = is.isString,\n isArray = Array.isArray || is.isArray,\n isDate = is.isDate,\n floor = Math.floor,\n abs = Math.abs,\n mathMax = Math.max,\n mathMin = Math.min,\n arrayProto = Array.prototype,\n arrayIndexOf = arrayProto.indexOf,\n arrayForEach = arrayProto.forEach,\n arrayMap = arrayProto.map,\n arrayReduce = arrayProto.reduce,\n arrayReduceRight = arrayProto.reduceRight,\n arrayFilter = arrayProto.filter,\n arrayEvery = arrayProto.every,\n arraySome = arrayProto.some,\n argsToArray = args.argsToArray;\n\n\n function cross(num, cros) {\n return reduceRight(cros, function (a, b) {\n if (!isArray(b)) {\n b = [b];\n }\n b.unshift(num);\n a.unshift(b);\n return a;\n }, []);\n }\n\n function permute(num, cross, length) {\n var ret = [];\n for (var i = 0; i < cross.length; i++) {\n ret.push([num].concat(rotate(cross, i)).slice(0, length));\n }\n return ret;\n }\n\n\n function intersection(a, b) {\n var ret = [], aOne, i = -1, l;\n l = a.length;\n while (++i < l) {\n aOne = a[i];\n if (indexOf(b, aOne) !== -1) {\n ret.push(aOne);\n }\n }\n return ret;\n }\n\n\n var _sort = (function () {\n\n var isAll = function (arr, test) {\n return every(arr, test);\n };\n\n var defaultCmp = function (a, b) {\n return a - b;\n };\n\n var dateSort = function (a, b) {\n return a.getTime() - b.getTime();\n };\n\n return function _sort(arr, property) {\n var ret = [];\n if (isArray(arr)) {\n ret = arr.slice();\n if (property) {\n if (typeof property === \"function\") {\n ret.sort(property);\n } else {\n ret.sort(function (a, b) {\n var aProp = a[property], bProp = b[property];\n if (isString(aProp) && isString(bProp)) {\n return aProp > bProp ? 1 : aProp < bProp ? -1 : 0;\n } else if (isDate(aProp) && isDate(bProp)) {\n return aProp.getTime() - bProp.getTime();\n } else {\n return aProp - bProp;\n }\n });\n }\n } else {\n if (isAll(ret, isString)) {\n ret.sort();\n } else if (isAll(ret, isDate)) {\n ret.sort(dateSort);\n } else {\n ret.sort(defaultCmp);\n }\n }\n }\n return ret;\n };\n\n })();\n\n function indexOf(arr, searchElement, from) {\n var index = (from || 0) - 1,\n length = arr.length;\n while (++index < length) {\n if (arr[index] === searchElement) {\n return index;\n }\n }\n return -1;\n }\n\n function lastIndexOf(arr, searchElement, from) {\n if (!isArray(arr)) {\n throw new TypeError();\n }\n\n var t = Object(arr);\n var len = t.length >>> 0;\n if (len === 0) {\n return -1;\n }\n\n var n = len;\n if (arguments.length > 2) {\n n = Number(arguments[2]);\n if (n !== n) {\n n = 0;\n } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) {\n n = (n > 0 || -1) * floor(abs(n));\n }\n }\n\n var k = n >= 0 ? mathMin(n, len - 1) : len - abs(n);\n\n for (; k >= 0; k--) {\n if (k in t && t[k] === searchElement) {\n return k;\n }\n }\n return -1;\n }\n\n function filter(arr, iterator, scope) {\n if (arr && arrayFilter && arrayFilter === arr.filter) {\n return arr.filter(iterator, scope);\n }\n if (!isArray(arr) || typeof iterator !== \"function\") {\n throw new TypeError();\n }\n\n var t = Object(arr);\n var len = t.length >>> 0;\n var res = [];\n for (var i = 0; i < len; i++) {\n if (i in t) {\n var val = t[i]; // in case fun mutates this\n if (iterator.call(scope, val, i, t)) {\n res.push(val);\n }\n }\n }\n return res;\n }\n\n function forEach(arr, iterator, scope) {\n if (!isArray(arr) || typeof iterator !== \"function\") {\n throw new TypeError();\n }\n if (arr && arrayForEach && arrayForEach === arr.forEach) {\n arr.forEach(iterator, scope);\n return arr;\n }\n for (var i = 0, len = arr.length; i < len; ++i) {\n iterator.call(scope || arr, arr[i], i, arr);\n }\n\n return arr;\n }\n\n function every(arr, iterator, scope) {\n if (arr && arrayEvery && arrayEvery === arr.every) {\n return arr.every(iterator, scope);\n }\n if (!isArray(arr) || typeof iterator !== \"function\") {\n throw new TypeError();\n }\n var t = Object(arr);\n var len = t.length >>> 0;\n for (var i = 0; i < len; i++) {\n if (i in t && !iterator.call(scope, t[i], i, t)) {\n return false;\n }\n }\n return true;\n }\n\n function some(arr, iterator, scope) {\n if (arr && arraySome && arraySome === arr.some) {\n return arr.some(iterator, scope);\n }\n if (!isArray(arr) || typeof iterator !== \"function\") {\n throw new TypeError();\n }\n var t = Object(arr);\n var len = t.length >>> 0;\n for (var i = 0; i < len; i++) {\n if (i in t && iterator.call(scope, t[i], i, t)) {\n return true;\n }\n }\n return false;\n }\n\n function map(arr, iterator, scope) {\n if (arr && arrayMap && arrayMap === arr.map) {\n return arr.map(iterator, scope);\n }\n if (!isArray(arr) || typeof iterator !== \"function\") {\n throw new TypeError();\n }\n\n var t = Object(arr);\n var len = t.length >>> 0;\n var res = [];\n for (var i = 0; i < len; i++) {\n if (i in t) {\n res.push(iterator.call(scope, t[i], i, t));\n }\n }\n return res;\n }\n\n function reduce(arr, accumulator, curr) {\n var initial = arguments.length > 2;\n if (arr && arrayReduce && arrayReduce === arr.reduce) {\n return initial ? arr.reduce(accumulator, curr) : arr.reduce(accumulator);\n }\n if (!isArray(arr) || typeof accumulator !== \"function\") {\n throw new TypeError();\n }\n var i = 0, l = arr.length >> 0;\n if (arguments.length < 3) {\n if (l === 0) {\n throw new TypeError(\"Array length is 0 and no second argument\");\n }\n curr = arr[0];\n i = 1; // start accumulating at the second element\n } else {\n curr = arguments[2];\n }\n while (i < l) {\n if (i in arr) {\n curr = accumulator.call(undefined, curr, arr[i], i, arr);\n }\n ++i;\n }\n return curr;\n }\n\n function reduceRight(arr, accumulator, curr) {\n var initial = arguments.length > 2;\n if (arr && arrayReduceRight && arrayReduceRight === arr.reduceRight) {\n return initial ? arr.reduceRight(accumulator, curr) : arr.reduceRight(accumulator);\n }\n if (!isArray(arr) || typeof accumulator !== \"function\") {\n throw new TypeError();\n }\n\n var t = Object(arr);\n var len = t.length >>> 0;\n\n // no value to return if no initial value, empty array\n if (len === 0 && arguments.length === 2) {\n throw new TypeError();\n }\n\n var k = len - 1;\n if (arguments.length >= 3) {\n curr = arguments[2];\n } else {\n do {\n if (k in arr) {\n curr = arr[k--];\n break;\n }\n }\n while (true);\n }\n while (k >= 0) {\n if (k in t) {\n curr = accumulator.call(undefined, curr, t[k], k, t);\n }\n k--;\n }\n return curr;\n }\n\n\n function toArray(o) {\n var ret = [];\n if (o !== null) {\n var args = argsToArray(arguments);\n if (args.length === 1) {\n if (isArray(o)) {\n ret = o;\n } else if (is.isHash(o)) {\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n ret.push([i, o[i]]);\n }\n }\n } else {\n ret.push(o);\n }\n } else {\n forEach(args, function (a) {\n ret = ret.concat(toArray(a));\n });\n }\n }\n return ret;\n }\n\n function sum(array) {\n array = array || [];\n if (array.length) {\n return reduce(array, function (a, b) {\n return a + b;\n });\n } else {\n return 0;\n }\n }\n\n function avg(arr) {\n arr = arr || [];\n if (arr.length) {\n var total = sum(arr);\n if (is.isNumber(total)) {\n return total / arr.length;\n } else {\n throw new Error(\"Cannot average an array of non numbers.\");\n }\n } else {\n return 0;\n }\n }\n\n function sort(arr, cmp) {\n return _sort(arr, cmp);\n }\n\n function min(arr, cmp) {\n return _sort(arr, cmp)[0];\n }\n\n function max(arr, cmp) {\n return _sort(arr, cmp)[arr.length - 1];\n }\n\n function difference(arr1) {\n var ret = arr1, args = flatten(argsToArray(arguments, 1));\n if (isArray(arr1)) {\n ret = filter(arr1, function (a) {\n return indexOf(args, a) === -1;\n });\n }\n return ret;\n }\n\n function removeDuplicates(arr) {\n var ret = [], i = -1, l, retLength = 0;\n if (arr) {\n l = arr.length;\n while (++i < l) {\n var item = arr[i];\n if (indexOf(ret, item) === -1) {\n ret[retLength++] = item;\n }\n }\n }\n return ret;\n }\n\n\n function unique(arr) {\n return removeDuplicates(arr);\n }\n\n\n function rotate(arr, numberOfTimes) {\n var ret = arr.slice();\n if (typeof numberOfTimes !== \"number\") {\n numberOfTimes = 1;\n }\n if (numberOfTimes && isArray(arr)) {\n if (numberOfTimes > 0) {\n ret.push(ret.shift());\n numberOfTimes--;\n } else {\n ret.unshift(ret.pop());\n numberOfTimes++;\n }\n return rotate(ret, numberOfTimes);\n } else {\n return ret;\n }\n }\n\n function permutations(arr, length) {\n var ret = [];\n if (isArray(arr)) {\n var copy = arr.slice(0);\n if (typeof length !== \"number\") {\n length = arr.length;\n }\n if (!length) {\n ret = [\n []\n ];\n } else if (length <= arr.length) {\n ret = reduce(arr, function (a, b, i) {\n var ret;\n if (length > 1) {\n ret = permute(b, rotate(copy, i).slice(1), length);\n } else {\n ret = [\n [b]\n ];\n }\n return a.concat(ret);\n }, []);\n }\n }\n return ret;\n }\n\n function zip() {\n var ret = [];\n var arrs = argsToArray(arguments);\n if (arrs.length > 1) {\n var arr1 = arrs.shift();\n if (isArray(arr1)) {\n ret = reduce(arr1, function (a, b, i) {\n var curr = [b];\n for (var j = 0; j < arrs.length; j++) {\n var currArr = arrs[j];\n if (isArray(currArr) && !is.isUndefined(currArr[i])) {\n curr.push(currArr[i]);\n } else {\n curr.push(null);\n }\n }\n a.push(curr);\n return a;\n }, []);\n }\n }\n return ret;\n }\n\n function transpose(arr) {\n var ret = [];\n if (isArray(arr) && arr.length) {\n var last;\n forEach(arr, function (a) {\n if (isArray(a) && (!last || a.length === last.length)) {\n forEach(a, function (b, i) {\n if (!ret[i]) {\n ret[i] = [];\n }\n ret[i].push(b);\n });\n last = a;\n }\n });\n }\n return ret;\n }\n\n function valuesAt(arr, indexes) {\n var ret = [];\n indexes = argsToArray(arguments);\n arr = indexes.shift();\n if (isArray(arr) && indexes.length) {\n for (var i = 0, l = indexes.length; i < l; i++) {\n ret.push(arr[indexes[i]] || null);\n }\n }\n return ret;\n }\n\n function union() {\n var ret = [];\n var arrs = argsToArray(arguments);\n if (arrs.length > 1) {\n for (var i = 0, l = arrs.length; i < l; i++) {\n ret = ret.concat(arrs[i]);\n }\n ret = removeDuplicates(ret);\n }\n return ret;\n }\n\n function intersect() {\n var collect = [], sets, i = -1 , l;\n if (arguments.length > 1) {\n //assume we are intersections all the lists in the array\n sets = argsToArray(arguments);\n } else {\n sets = arguments[0];\n }\n if (isArray(sets)) {\n collect = sets[0];\n i = 0;\n l = sets.length;\n while (++i < l) {\n collect = intersection(collect, sets[i]);\n }\n }\n return removeDuplicates(collect);\n }\n\n function powerSet(arr) {\n var ret = [];\n if (isArray(arr) && arr.length) {\n ret = reduce(arr, function (a, b) {\n var ret = map(a, function (c) {\n return c.concat(b);\n });\n return a.concat(ret);\n }, [\n []\n ]);\n }\n return ret;\n }\n\n function cartesian(a, b) {\n var ret = [];\n if (isArray(a) && isArray(b) && a.length && b.length) {\n ret = cross(a[0], b).concat(cartesian(a.slice(1), b));\n }\n return ret;\n }\n\n function compact(arr) {\n var ret = [];\n if (isArray(arr) && arr.length) {\n ret = filter(arr, function (item) {\n return !is.isUndefinedOrNull(item);\n });\n }\n return ret;\n }\n\n function multiply(arr, times) {\n times = is.isNumber(times) ? times : 1;\n if (!times) {\n //make sure times is greater than zero if it is zero then dont multiply it\n times = 1;\n }\n arr = toArray(arr || []);\n var ret = [], i = 0;\n while (++i <= times) {\n ret = ret.concat(arr);\n }\n return ret;\n }\n\n function flatten(arr) {\n var set;\n var args = argsToArray(arguments);\n if (args.length > 1) {\n //assume we are intersections all the lists in the array\n set = args;\n } else {\n set = toArray(arr);\n }\n return reduce(set, function (a, b) {\n return a.concat(b);\n }, []);\n }\n\n function pluck(arr, prop) {\n prop = prop.split(\".\");\n var result = arr.slice(0);\n forEach(prop, function (prop) {\n var exec = prop.match(/(\\w+)\\(\\)$/);\n result = map(result, function (item) {\n return exec ? item[exec[1]]() : item[prop];\n });\n });\n return result;\n }\n\n function invoke(arr, func, args) {\n args = argsToArray(arguments, 2);\n return map(arr, function (item) {\n var exec = isString(func) ? item[func] : func;\n return exec.apply(item, args);\n });\n }\n\n\n var array = {\n toArray: toArray,\n sum: sum,\n avg: avg,\n sort: sort,\n min: min,\n max: max,\n difference: difference,\n removeDuplicates: removeDuplicates,\n unique: unique,\n rotate: rotate,\n permutations: permutations,\n zip: zip,\n transpose: transpose,\n valuesAt: valuesAt,\n union: union,\n intersect: intersect,\n powerSet: powerSet,\n cartesian: cartesian,\n compact: compact,\n multiply: multiply,\n flatten: flatten,\n pluck: pluck,\n invoke: invoke,\n forEach: forEach,\n map: map,\n filter: filter,\n reduce: reduce,\n reduceRight: reduceRight,\n some: some,\n every: every,\n indexOf: indexOf,\n lastIndexOf: lastIndexOf\n };\n\n return extended.define(isArray, array).expose(array);\n }\n\n if (true) {\n if ( true && module.exports) {\n module.exports = defineArray(__webpack_require__(/*! extended */ \"./build/cht-core-4-6/node_modules/extended/index.js\"), __webpack_require__(/*! is-extended */ \"./build/cht-core-4-6/node_modules/is-extended/index.js\"), __webpack_require__(/*! arguments-extended */ \"./build/cht-core-4-6/node_modules/arguments-extended/index.js\"));\n }\n } else {}\n\n}).call(this);\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/charenc/charenc.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/charenc/charenc.js ***!\n \\************************************************************/\n/***/ ((module) => {\n\nvar charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/cht-nootils/src/nootils.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/cht-nootils/src/nootils.js ***!\n \\********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst _ = __webpack_require__(/*! underscore */ \"./build/cht-core-4-6/node_modules/underscore/modules/index-all.js\");\n\nconst NO_LMP_DATE_MODIFIER = 4;\n\nmodule.exports = function(settings) {\n const taskSchedules = settings && settings.tasks && settings.tasks.schedules;\n const lib = {\n /**\n * @function\n * In legacy versions, partner code is required to only emit tasks which are ready to be displayed to the user. Utils.isTimely is the mechanism used for this.\n * With the rules-engine improvements in webapp 3.8, this responsibility shifts. Partner code should emit all tasks and the webapp's rules-engine decides what to display.\n * To this end - Utils.isTimely becomes a pass-through in nootils@4.x\n * @returns True\n */\n isTimely: () => true,\n\n addDate: function(date, days) {\n let result;\n if (date) {\n result = new Date(date.getTime());\n } else {\n result = lib.now();\n }\n result.setDate(result.getDate() + days);\n result.setHours(0, 0, 0, 0);\n return result;\n },\n\n getLmpDate: function(doc) {\n const weeks = doc.fields.last_menstrual_period || NO_LMP_DATE_MODIFIER;\n return lib.addDate(new Date(doc.reported_date), weeks * -7);\n },\n\n // TODO getSchedule() can be removed when tasks.json support is dropped\n getSchedule: function(name) {\n return _.findWhere(taskSchedules, { name: name });\n },\n\n getMostRecentTimestamp: function(reports, form, fields) {\n const report = lib.getMostRecentReport(reports, form, fields);\n return report && report.reported_date;\n },\n\n getMostRecentReport: function(reports, forms, fields) {\n if (!Array.isArray(forms)) {\n forms = [forms];\n }\n let result = null;\n reports.forEach(function(report) {\n if (forms.includes(report.form) &&\n !report.deleted &&\n (!result || (report.reported_date > result.reported_date)) &&\n (!fields || (report.fields && lib.fieldsMatch(report, fields)))) {\n result = report;\n }\n });\n return result;\n },\n\n isFormSubmittedInWindow: function(reports, form, start, end, count) {\n let result = false;\n reports.forEach(function(report) {\n if (!result && report.form === form) {\n if (report.reported_date >= start && report.reported_date <= end) {\n if (!count ||\n (count && report.fields && report.fields.follow_up_count > count)) {\n result = true;\n }\n }\n }\n });\n return result;\n },\n\n isFirstReportNewer: function(firstReport, secondReport) {\n if (firstReport && firstReport.reported_date) {\n if (secondReport && secondReport.reported_date) {\n return firstReport.reported_date > secondReport.reported_date;\n }\n return true;\n }\n return null;\n },\n\n isDateValid: function(date) {\n return !isNaN(date.getTime());\n },\n\n /**\n * @function\n * @name getField\n *\n * Gets the value of specified field path.\n * @param {Object} report - The report object.\n * @param {string} field - Period separated json path assuming report.fields as\n * the root node e.g 'dob' (equivalent to report.fields.dob)\n * or 'screening.test_result' equivalent to report.fields.screening.test_result\n */\n getField: function(report, field) {\n return _.propertyOf(report.fields)(field.split('.'));\n },\n\n fieldsMatch: function(report, fieldValues) {\n return Object.keys(fieldValues).every(function(field) {\n return lib.getField(report, field) === fieldValues[field];\n });\n },\n\n MS_IN_DAY: 24*60*60*1000, // 1 day in ms\n\n now: function() { return new Date(); },\n };\n\n return lib;\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/crypt/crypt.js\":\n/*!********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/crypt/crypt.js ***!\n \\********************************************************/\n/***/ ((module) => {\n\n(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/date-extended/index.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/date-extended/index.js ***!\n \\****************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n(function () {\n \"use strict\";\n\n function defineDate(extended, is, array) {\n\n function _pad(string, length, ch, end) {\n string = \"\" + string; //check for numbers\n ch = ch || \" \";\n var strLen = string.length;\n while (strLen < length) {\n if (end) {\n string += ch;\n } else {\n string = ch + string;\n }\n strLen++;\n }\n return string;\n }\n\n function _truncate(string, length, end) {\n var ret = string;\n if (is.isString(ret)) {\n if (string.length > length) {\n if (end) {\n var l = string.length;\n ret = string.substring(l - length, l);\n } else {\n ret = string.substring(0, length);\n }\n }\n } else {\n ret = _truncate(\"\" + ret, length);\n }\n return ret;\n }\n\n function every(arr, iterator, scope) {\n if (!is.isArray(arr) || typeof iterator !== \"function\") {\n throw new TypeError();\n }\n var t = Object(arr);\n var len = t.length >>> 0;\n for (var i = 0; i < len; i++) {\n if (i in t && !iterator.call(scope, t[i], i, t)) {\n return false;\n }\n }\n return true;\n }\n\n\n var transforms = (function () {\n var floor = Math.floor, round = Math.round;\n\n var addMap = {\n day: function addDay(date, amount) {\n return [amount, \"Date\", false];\n },\n weekday: function addWeekday(date, amount) {\n // Divide the increment time span into weekspans plus leftover days\n // e.g., 8 days is one 5-day weekspan / and two leftover days\n // Can't have zero leftover days, so numbers divisible by 5 get\n // a days value of 5, and the remaining days make up the number of weeks\n var days, weeks, mod = amount % 5, strt = date.getDay(), adj = 0;\n if (!mod) {\n days = (amount > 0) ? 5 : -5;\n weeks = (amount > 0) ? ((amount - 5) / 5) : ((amount + 5) / 5);\n } else {\n days = mod;\n weeks = parseInt(amount / 5, 10);\n }\n if (strt === 6 && amount > 0) {\n adj = 1;\n } else if (strt === 0 && amount < 0) {\n // Orig date is Sun / negative increment\n // Jump back over Sat\n adj = -1;\n }\n // Get weekday val for the new date\n var trgt = strt + days;\n // New date is on Sat or Sun\n if (trgt === 0 || trgt === 6) {\n adj = (amount > 0) ? 2 : -2;\n }\n // Increment by number of weeks plus leftover days plus\n // weekend adjustments\n return [(7 * weeks) + days + adj, \"Date\", false];\n },\n year: function addYear(date, amount) {\n return [amount, \"FullYear\", true];\n },\n week: function addWeek(date, amount) {\n return [amount * 7, \"Date\", false];\n },\n quarter: function addYear(date, amount) {\n return [amount * 3, \"Month\", true];\n },\n month: function addYear(date, amount) {\n return [amount, \"Month\", true];\n }\n };\n\n function addTransform(interval, date, amount) {\n interval = interval.replace(/s$/, \"\");\n if (addMap.hasOwnProperty(interval)) {\n return addMap[interval](date, amount);\n }\n return [amount, \"UTC\" + interval.charAt(0).toUpperCase() + interval.substring(1) + \"s\", false];\n }\n\n\n var differenceMap = {\n \"quarter\": function quarterDifference(date1, date2, utc) {\n var yearDiff = date2.getFullYear() - date1.getFullYear();\n var m1 = date1[utc ? \"getUTCMonth\" : \"getMonth\"]();\n var m2 = date2[utc ? \"getUTCMonth\" : \"getMonth\"]();\n // Figure out which quarter the months are in\n var q1 = floor(m1 / 3) + 1;\n var q2 = floor(m2 / 3) + 1;\n // Add quarters for any year difference between the dates\n q2 += (yearDiff * 4);\n return q2 - q1;\n },\n\n \"weekday\": function weekdayDifference(date1, date2, utc) {\n var days = differenceTransform(\"day\", date1, date2, utc), weeks;\n var mod = days % 7;\n // Even number of weeks\n if (mod === 0) {\n days = differenceTransform(\"week\", date1, date2, utc) * 5;\n } else {\n // Weeks plus spare change (< 7 days)\n var adj = 0, aDay = date1[utc ? \"getUTCDay\" : \"getDay\"](), bDay = date2[utc ? \"getUTCDay\" : \"getDay\"]();\n weeks = parseInt(days / 7, 10);\n // Mark the date advanced by the number of\n // round weeks (may be zero)\n var dtMark = new Date(+date1);\n dtMark.setDate(dtMark[utc ? \"getUTCDate\" : \"getDate\"]() + (weeks * 7));\n var dayMark = dtMark[utc ? \"getUTCDay\" : \"getDay\"]();\n\n // Spare change days -- 6 or less\n if (days > 0) {\n if (aDay === 6 || bDay === 6) {\n adj = -1;\n } else if (aDay === 0) {\n adj = 0;\n } else if (bDay === 0 || (dayMark + mod) > 5) {\n adj = -2;\n }\n } else if (days < 0) {\n if (aDay === 6) {\n adj = 0;\n } else if (aDay === 0 || bDay === 0) {\n adj = 1;\n } else if (bDay === 6 || (dayMark + mod) < 0) {\n adj = 2;\n }\n }\n days += adj;\n days -= (weeks * 2);\n }\n return days;\n },\n year: function (date1, date2) {\n return date2.getFullYear() - date1.getFullYear();\n },\n month: function (date1, date2, utc) {\n var m1 = date1[utc ? \"getUTCMonth\" : \"getMonth\"]();\n var m2 = date2[utc ? \"getUTCMonth\" : \"getMonth\"]();\n return (m2 - m1) + ((date2.getFullYear() - date1.getFullYear()) * 12);\n },\n week: function (date1, date2, utc) {\n return round(differenceTransform(\"day\", date1, date2, utc) / 7);\n },\n day: function (date1, date2) {\n return 1.1574074074074074e-8 * (date2.getTime() - date1.getTime());\n },\n hour: function (date1, date2) {\n return 2.7777777777777776e-7 * (date2.getTime() - date1.getTime());\n },\n minute: function (date1, date2) {\n return 0.000016666666666666667 * (date2.getTime() - date1.getTime());\n },\n second: function (date1, date2) {\n return 0.001 * (date2.getTime() - date1.getTime());\n },\n millisecond: function (date1, date2) {\n return date2.getTime() - date1.getTime();\n }\n };\n\n\n function differenceTransform(interval, date1, date2, utc) {\n interval = interval.replace(/s$/, \"\");\n return round(differenceMap[interval](date1, date2, utc));\n }\n\n\n return {\n addTransform: addTransform,\n differenceTransform: differenceTransform\n };\n }()),\n addTransform = transforms.addTransform,\n differenceTransform = transforms.differenceTransform;\n\n\n /**\n * @ignore\n * Based on DOJO Date Implementation\n *\n * Dojo is available under *either* the terms of the modified BSD license *or* the\n * Academic Free License version 2.1. As a recipient of Dojo, you may choose which\n * license to receive this code under (except as noted in per-module LICENSE\n * files). Some modules may not be the copyright of the Dojo Foundation. These\n * modules contain explicit declarations of copyright in both the LICENSE files in\n * the directories in which they reside and in the code itself. No external\n * contributions are allowed under licenses which are fundamentally incompatible\n * with the AFL or BSD licenses that Dojo is distributed under.\n *\n */\n\n var floor = Math.floor, round = Math.round, min = Math.min, pow = Math.pow, ceil = Math.ceil, abs = Math.abs;\n var monthNames = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n var monthAbbr = [\"Jan.\", \"Feb.\", \"Mar.\", \"Apr.\", \"May.\", \"Jun.\", \"Jul.\", \"Aug.\", \"Sep.\", \"Oct.\", \"Nov.\", \"Dec.\"];\n var dayNames = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n var dayAbbr = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n var eraNames = [\"Before Christ\", \"Anno Domini\"];\n var eraAbbr = [\"BC\", \"AD\"];\n\n\n function getDayOfYear(/*Date*/dateObject, utc) {\n // summary: gets the day of the year as represented by dateObject\n return date.difference(new Date(dateObject.getFullYear(), 0, 1, dateObject.getHours()), dateObject, null, utc) + 1; // Number\n }\n\n function getWeekOfYear(/*Date*/dateObject, /*Number*/firstDayOfWeek, utc) {\n firstDayOfWeek = firstDayOfWeek || 0;\n var fullYear = dateObject[utc ? \"getUTCFullYear\" : \"getFullYear\"]();\n var firstDayOfYear = new Date(fullYear, 0, 1).getDay(),\n adj = (firstDayOfYear - firstDayOfWeek + 7) % 7,\n week = floor((getDayOfYear(dateObject) + adj - 1) / 7);\n\n // if year starts on the specified day, start counting weeks at 1\n if (firstDayOfYear === firstDayOfWeek) {\n week++;\n }\n\n return week; // Number\n }\n\n function getTimezoneName(/*Date*/dateObject) {\n var str = dateObject.toString();\n var tz = '';\n var pos = str.indexOf('(');\n if (pos > -1) {\n tz = str.substring(++pos, str.indexOf(')'));\n }\n return tz; // String\n }\n\n\n function buildDateEXP(pattern, tokens) {\n return pattern.replace(/([a-z])\\1*/ig,function (match) {\n // Build a simple regexp. Avoid captures, which would ruin the tokens list\n var s,\n c = match.charAt(0),\n l = match.length,\n p2 = '0?',\n p3 = '0{0,2}';\n if (c === 'y') {\n s = '\\\\d{2,4}';\n } else if (c === \"M\") {\n s = (l > 2) ? '\\\\S+?' : '1[0-2]|' + p2 + '[1-9]';\n } else if (c === \"D\") {\n s = '[12][0-9][0-9]|3[0-5][0-9]|36[0-6]|' + p3 + '[1-9][0-9]|' + p2 + '[1-9]';\n } else if (c === \"d\") {\n s = '3[01]|[12]\\\\d|' + p2 + '[1-9]';\n } else if (c === \"w\") {\n s = '[1-4][0-9]|5[0-3]|' + p2 + '[1-9]';\n } else if (c === \"E\") {\n s = '\\\\S+';\n } else if (c === \"h\") {\n s = '1[0-2]|' + p2 + '[1-9]';\n } else if (c === \"K\") {\n s = '1[01]|' + p2 + '\\\\d';\n } else if (c === \"H\") {\n s = '1\\\\d|2[0-3]|' + p2 + '\\\\d';\n } else if (c === \"k\") {\n s = '1\\\\d|2[0-4]|' + p2 + '[1-9]';\n } else if (c === \"m\" || c === \"s\") {\n s = '[0-5]\\\\d';\n } else if (c === \"S\") {\n s = '\\\\d{' + l + '}';\n } else if (c === \"a\") {\n var am = 'AM', pm = 'PM';\n s = am + '|' + pm;\n if (am !== am.toLowerCase()) {\n s += '|' + am.toLowerCase();\n }\n if (pm !== pm.toLowerCase()) {\n s += '|' + pm.toLowerCase();\n }\n s = s.replace(/\\./g, \"\\\\.\");\n } else if (c === 'v' || c === 'z' || c === 'Z' || c === 'G' || c === 'q' || c === 'Q') {\n s = \".*\";\n } else {\n s = c === \" \" ? \"\\\\s*\" : c + \"*\";\n }\n if (tokens) {\n tokens.push(match);\n }\n\n return \"(\" + s + \")\"; // add capture\n }).replace(/[\\xa0 ]/g, \"[\\\\s\\\\xa0]\"); // normalize whitespace. Need explicit handling of \\xa0 for IE.\n }\n\n\n /**\n * @namespace Utilities for Dates\n */\n var date = {\n\n /**@lends date*/\n\n /**\n * Returns the number of days in the month of a date\n *\n * @example\n *\n * dateExtender.getDaysInMonth(new Date(2006, 1, 1)); //28\n * dateExtender.getDaysInMonth(new Date(2004, 1, 1)); //29\n * dateExtender.getDaysInMonth(new Date(2006, 2, 1)); //31\n * dateExtender.getDaysInMonth(new Date(2006, 3, 1)); //30\n * dateExtender.getDaysInMonth(new Date(2006, 4, 1)); //31\n * dateExtender.getDaysInMonth(new Date(2006, 5, 1)); //30\n * dateExtender.getDaysInMonth(new Date(2006, 6, 1)); //31\n * @param {Date} dateObject the date containing the month\n * @return {Number} the number of days in the month\n */\n getDaysInMonth: function (/*Date*/dateObject) {\n //\tsummary:\n //\t\tReturns the number of days in the month used by dateObject\n var month = dateObject.getMonth();\n var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n if (month === 1 && date.isLeapYear(dateObject)) {\n return 29;\n } // Number\n return days[month]; // Number\n },\n\n /**\n * Determines if a date is a leap year\n *\n * @example\n *\n * dateExtender.isLeapYear(new Date(1600, 0, 1)); //true\n * dateExtender.isLeapYear(new Date(2004, 0, 1)); //true\n * dateExtender.isLeapYear(new Date(2000, 0, 1)); //true\n * dateExtender.isLeapYear(new Date(2006, 0, 1)); //false\n * dateExtender.isLeapYear(new Date(1900, 0, 1)); //false\n * dateExtender.isLeapYear(new Date(1800, 0, 1)); //false\n * dateExtender.isLeapYear(new Date(1700, 0, 1)); //false\n *\n * @param {Date} dateObject\n * @returns {Boolean} true if it is a leap year false otherwise\n */\n isLeapYear: function (/*Date*/dateObject, utc) {\n var year = dateObject[utc ? \"getUTCFullYear\" : \"getFullYear\"]();\n return (year % 400 === 0) || (year % 4 === 0 && year % 100 !== 0);\n\n },\n\n /**\n * Determines if a date is on a weekend\n *\n * @example\n *\n * var thursday = new Date(2006, 8, 21);\n * var saturday = new Date(2006, 8, 23);\n * var sunday = new Date(2006, 8, 24);\n * var monday = new Date(2006, 8, 25);\n * dateExtender.isWeekend(thursday)); //false\n * dateExtender.isWeekend(saturday); //true\n * dateExtender.isWeekend(sunday); //true\n * dateExtender.isWeekend(monday)); //false\n *\n * @param {Date} dateObject the date to test\n *\n * @returns {Boolean} true if the date is a weekend\n */\n isWeekend: function (/*Date?*/dateObject, utc) {\n // summary:\n //\tDetermines if the date falls on a weekend, according to local custom.\n var day = (dateObject || new Date())[utc ? \"getUTCDay\" : \"getDay\"]();\n return day === 0 || day === 6;\n },\n\n /**\n * Get the timezone of a date\n *\n * @example\n * //just setting the strLocal to simulate the toString() of a date\n * dt.str = 'Sun Sep 17 2006 22:25:51 GMT-0500 (CDT)';\n * //just setting the strLocal to simulate the locale\n * dt.strLocale = 'Sun 17 Sep 2006 10:25:51 PM CDT';\n * dateExtender.getTimezoneName(dt); //'CDT'\n * dt.str = 'Sun Sep 17 2006 22:57:18 GMT-0500 (CDT)';\n * dt.strLocale = 'Sun Sep 17 22:57:18 2006';\n * dateExtender.getTimezoneName(dt); //'CDT'\n * @param dateObject the date to get the timezone from\n *\n * @returns {String} the timezone of the date\n */\n getTimezoneName: getTimezoneName,\n\n /**\n * Compares two dates\n *\n * @example\n *\n * var d1 = new Date();\n * d1.setHours(0);\n * dateExtender.compare(d1, d1); // 0\n *\n * var d1 = new Date();\n * d1.setHours(0);\n * var d2 = new Date();\n * d2.setFullYear(2005);\n * d2.setHours(12);\n * dateExtender.compare(d1, d2, \"date\"); // 1\n * dateExtender.compare(d1, d2, \"datetime\"); // 1\n *\n * var d1 = new Date();\n * d1.setHours(0);\n * var d2 = new Date();\n * d2.setFullYear(2005);\n * d2.setHours(12);\n * dateExtender.compare(d2, d1, \"date\"); // -1\n * dateExtender.compare(d1, d2, \"time\"); //-1\n *\n * @param {Date|String} date1 the date to comapare\n * @param {Date|String} [date2=new Date()] the date to compare date1 againse\n * @param {\"date\"|\"time\"|\"datetime\"} portion compares the portion specified\n *\n * @returns -1 if date1 is < date2 0 if date1 === date2 1 if date1 > date2\n */\n compare: function (/*Date*/date1, /*Date*/date2, /*String*/portion) {\n date1 = new Date(+date1);\n date2 = new Date(+(date2 || new Date()));\n\n if (portion === \"date\") {\n // Ignore times and compare dates.\n date1.setHours(0, 0, 0, 0);\n date2.setHours(0, 0, 0, 0);\n } else if (portion === \"time\") {\n // Ignore dates and compare times.\n date1.setFullYear(0, 0, 0);\n date2.setFullYear(0, 0, 0);\n }\n return date1 > date2 ? 1 : date1 < date2 ? -1 : 0;\n },\n\n\n /**\n * Adds a specified interval and amount to a date\n *\n * @example\n * var dtA = new Date(2005, 11, 27);\n * dateExtender.add(dtA, \"year\", 1); //new Date(2006, 11, 27);\n * dateExtender.add(dtA, \"years\", 1); //new Date(2006, 11, 27);\n *\n * dtA = new Date(2000, 0, 1);\n * dateExtender.add(dtA, \"quarter\", 1); //new Date(2000, 3, 1);\n * dateExtender.add(dtA, \"quarters\", 1); //new Date(2000, 3, 1);\n *\n * dtA = new Date(2000, 0, 1);\n * dateExtender.add(dtA, \"month\", 1); //new Date(2000, 1, 1);\n * dateExtender.add(dtA, \"months\", 1); //new Date(2000, 1, 1);\n *\n * dtA = new Date(2000, 0, 31);\n * dateExtender.add(dtA, \"month\", 1); //new Date(2000, 1, 29);\n * dateExtender.add(dtA, \"months\", 1); //new Date(2000, 1, 29);\n *\n * dtA = new Date(2000, 0, 1);\n * dateExtender.add(dtA, \"week\", 1); //new Date(2000, 0, 8);\n * dateExtender.add(dtA, \"weeks\", 1); //new Date(2000, 0, 8);\n *\n * dtA = new Date(2000, 0, 1);\n * dateExtender.add(dtA, \"day\", 1); //new Date(2000, 0, 2);\n *\n * dtA = new Date(2000, 0, 1);\n * dateExtender.add(dtA, \"weekday\", 1); //new Date(2000, 0, 3);\n *\n * dtA = new Date(2000, 0, 1, 11);\n * dateExtender.add(dtA, \"hour\", 1); //new Date(2000, 0, 1, 12);\n *\n * dtA = new Date(2000, 11, 31, 23, 59);\n * dateExtender.add(dtA, \"minute\", 1); //new Date(2001, 0, 1, 0, 0);\n *\n * dtA = new Date(2000, 11, 31, 23, 59, 59);\n * dateExtender.add(dtA, \"second\", 1); //new Date(2001, 0, 1, 0, 0, 0);\n *\n * dtA = new Date(2000, 11, 31, 23, 59, 59, 999);\n * dateExtender.add(dtA, \"millisecond\", 1); //new Date(2001, 0, 1, 0, 0, 0, 0);\n *\n * @param {Date} date\n * @param {String} interval the interval to add\n *
                    \n *
                  • day | days
                  • \n *
                  • weekday | weekdays
                  • \n *
                  • year | years
                  • \n *
                  • week | weeks
                  • \n *
                  • quarter | quarters
                  • \n *
                  • months | months
                  • \n *
                  • hour | hours
                  • \n *
                  • minute | minutes
                  • \n *
                  • second | seconds
                  • \n *
                  • millisecond | milliseconds
                  • \n *
                  \n * @param {Number} [amount=0] the amount to add\n */\n add: function (/*Date*/date, /*String*/interval, /*int*/amount) {\n var res = addTransform(interval, date, amount || 0);\n amount = res[0];\n var property = res[1];\n var sum = new Date(+date);\n var fixOvershoot = res[2];\n if (property) {\n sum[\"set\" + property](sum[\"get\" + property]() + amount);\n }\n\n if (fixOvershoot && (sum.getDate() < date.getDate())) {\n sum.setDate(0);\n }\n\n return sum; // Date\n },\n\n /**\n * Finds the difference between two dates based on the specified interval\n *\n * @example\n *\n * var dtA, dtB;\n *\n * dtA = new Date(2005, 11, 27);\n * dtB = new Date(2006, 11, 27);\n * dateExtender.difference(dtA, dtB, \"year\"); //1\n *\n * dtA = new Date(2000, 1, 29);\n * dtB = new Date(2001, 2, 1);\n * dateExtender.difference(dtA, dtB, \"quarter\"); //4\n * dateExtender.difference(dtA, dtB, \"month\"); //13\n *\n * dtA = new Date(2000, 1, 1);\n * dtB = new Date(2000, 1, 8);\n * dateExtender.difference(dtA, dtB, \"week\"); //1\n *\n * dtA = new Date(2000, 1, 29);\n * dtB = new Date(2000, 2, 1);\n * dateExtender.difference(dtA, dtB, \"day\"); //1\n *\n * dtA = new Date(2006, 7, 3);\n * dtB = new Date(2006, 7, 11);\n * dateExtender.difference(dtA, dtB, \"weekday\"); //6\n *\n * dtA = new Date(2000, 11, 31, 23);\n * dtB = new Date(2001, 0, 1, 0);\n * dateExtender.difference(dtA, dtB, \"hour\"); //1\n *\n * dtA = new Date(2000, 11, 31, 23, 59);\n * dtB = new Date(2001, 0, 1, 0, 0);\n * dateExtender.difference(dtA, dtB, \"minute\"); //1\n *\n * dtA = new Date(2000, 11, 31, 23, 59, 59);\n * dtB = new Date(2001, 0, 1, 0, 0, 0);\n * dateExtender.difference(dtA, dtB, \"second\"); //1\n *\n * dtA = new Date(2000, 11, 31, 23, 59, 59, 999);\n * dtB = new Date(2001, 0, 1, 0, 0, 0, 0);\n * dateExtender.difference(dtA, dtB, \"millisecond\"); //1\n *\n *\n * @param {Date} date1\n * @param {Date} [date2 = new Date()]\n * @param {String} [interval = \"day\"] the intercal to find the difference of.\n *
                    \n *
                  • day | days
                  • \n *
                  • weekday | weekdays
                  • \n *
                  • year | years
                  • \n *
                  • week | weeks
                  • \n *
                  • quarter | quarters
                  • \n *
                  • months | months
                  • \n *
                  • hour | hours
                  • \n *
                  • minute | minutes
                  • \n *
                  • second | seconds
                  • \n *
                  • millisecond | milliseconds
                  • \n *
                  \n */\n difference: function (/*Date*/date1, /*Date?*/date2, /*String*/interval, utc) {\n date2 = date2 || new Date();\n interval = interval || \"day\";\n return differenceTransform(interval, date1, date2, utc);\n },\n\n /**\n * Formats a date to the specidifed format string\n *\n * @example\n *\n * var date = new Date(2006, 7, 11, 0, 55, 12, 345);\n * dateExtender.format(date, \"EEEE, MMMM dd, yyyy\"); //\"Friday, August 11, 2006\"\n * dateExtender.format(date, \"M/dd/yy\"); //\"8/11/06\"\n * dateExtender.format(date, \"E\"); //\"6\"\n * dateExtender.format(date, \"h:m a\"); //\"12:55 AM\"\n * dateExtender.format(date, 'h:m:s'); //\"12:55:12\"\n * dateExtender.format(date, 'h:m:s.SS'); //\"12:55:12.35\"\n * dateExtender.format(date, 'k:m:s.SS'); //\"24:55:12.35\"\n * dateExtender.format(date, 'H:m:s.SS'); //\"0:55:12.35\"\n * dateExtender.format(date, \"ddMMyyyy\"); //\"11082006\"\n *\n * @param date the date to format\n * @param {String} format the format of the date composed of the following options\n *
                    \n *
                  • G Era designator Text AD
                  • \n *
                  • y Year Year 1996; 96
                  • \n *
                  • M Month in year Month July; Jul; 07
                  • \n *
                  • w Week in year Number 27
                  • \n *
                  • W Week in month Number 2
                  • \n *
                  • D Day in year Number 189
                  • \n *
                  • d Day in month Number 10
                  • \n *
                  • E Day in week Text Tuesday; Tue
                  • \n *
                  • a Am/pm marker Text PM
                  • \n *
                  • H Hour in day (0-23) Number 0
                  • \n *
                  • k Hour in day (1-24) Number 24
                  • \n *
                  • K Hour in am/pm (0-11) Number 0
                  • \n *
                  • h Hour in am/pm (1-12) Number 12
                  • \n *
                  • m Minute in hour Number 30
                  • \n *
                  • s Second in minute Number 55
                  • \n *
                  • S Millisecond Number 978
                  • \n *
                  • z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
                  • \n *
                  • Z Time zone RFC 822 time zone -0800
                  • \n *
                  \n */\n format: function (date, format, utc) {\n utc = utc || false;\n var fullYear, month, day, d, hour, minute, second, millisecond;\n if (utc) {\n fullYear = date.getUTCFullYear();\n month = date.getUTCMonth();\n day = date.getUTCDay();\n d = date.getUTCDate();\n hour = date.getUTCHours();\n minute = date.getUTCMinutes();\n second = date.getUTCSeconds();\n millisecond = date.getUTCMilliseconds();\n } else {\n fullYear = date.getFullYear();\n month = date.getMonth();\n d = date.getDate();\n day = date.getDay();\n hour = date.getHours();\n minute = date.getMinutes();\n second = date.getSeconds();\n millisecond = date.getMilliseconds();\n }\n return format.replace(/([A-Za-z])\\1*/g, function (match) {\n var s, pad,\n c = match.charAt(0),\n l = match.length;\n if (c === 'd') {\n s = \"\" + d;\n pad = true;\n } else if (c === \"H\" && !s) {\n s = \"\" + hour;\n pad = true;\n } else if (c === 'm' && !s) {\n s = \"\" + minute;\n pad = true;\n } else if (c === 's') {\n if (!s) {\n s = \"\" + second;\n }\n pad = true;\n } else if (c === \"G\") {\n s = ((l < 4) ? eraAbbr : eraNames)[fullYear < 0 ? 0 : 1];\n } else if (c === \"y\") {\n s = fullYear;\n if (l > 1) {\n if (l === 2) {\n s = _truncate(\"\" + s, 2, true);\n } else {\n pad = true;\n }\n }\n } else if (c.toUpperCase() === \"Q\") {\n s = ceil((month + 1) / 3);\n pad = true;\n } else if (c === \"M\") {\n if (l < 3) {\n s = month + 1;\n pad = true;\n } else {\n s = (l === 3 ? monthAbbr : monthNames)[month];\n }\n } else if (c === \"w\") {\n s = getWeekOfYear(date, 0, utc);\n pad = true;\n } else if (c === \"D\") {\n s = getDayOfYear(date, utc);\n pad = true;\n } else if (c === \"E\") {\n if (l < 3) {\n s = day + 1;\n pad = true;\n } else {\n s = (l === -3 ? dayAbbr : dayNames)[day];\n }\n } else if (c === 'a') {\n s = (hour < 12) ? 'AM' : 'PM';\n } else if (c === \"h\") {\n s = (hour % 12) || 12;\n pad = true;\n } else if (c === \"K\") {\n s = (hour % 12);\n pad = true;\n } else if (c === \"k\") {\n s = hour || 24;\n pad = true;\n } else if (c === \"S\") {\n s = round(millisecond * pow(10, l - 3));\n pad = true;\n } else if (c === \"z\" || c === \"v\" || c === \"Z\") {\n s = getTimezoneName(date);\n if ((c === \"z\" || c === \"v\") && !s) {\n l = 4;\n }\n if (!s || c === \"Z\") {\n var offset = date.getTimezoneOffset();\n var tz = [\n (offset >= 0 ? \"-\" : \"+\"),\n _pad(floor(abs(offset) / 60), 2, \"0\"),\n _pad(abs(offset) % 60, 2, \"0\")\n ];\n if (l === 4) {\n tz.splice(0, 0, \"GMT\");\n tz.splice(3, 0, \":\");\n }\n s = tz.join(\"\");\n }\n } else {\n s = match;\n }\n if (pad) {\n s = _pad(s, l, '0');\n }\n return s;\n });\n }\n\n };\n\n var numberDate = {};\n\n function addInterval(interval) {\n numberDate[interval + \"sFromNow\"] = function (val) {\n return date.add(new Date(), interval, val);\n };\n numberDate[interval + \"sAgo\"] = function (val) {\n return date.add(new Date(), interval, -val);\n };\n }\n\n var intervals = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\"];\n for (var i = 0, l = intervals.length; i < l; i++) {\n addInterval(intervals[i]);\n }\n\n var stringDate = {\n\n parseDate: function (dateStr, format) {\n if (!format) {\n throw new Error('format required when calling dateExtender.parse');\n }\n var tokens = [], regexp = buildDateEXP(format, tokens),\n re = new RegExp(\"^\" + regexp + \"$\", \"i\"),\n match = re.exec(dateStr);\n if (!match) {\n return null;\n } // null\n var result = [1970, 0, 1, 0, 0, 0, 0], // will get converted to a Date at the end\n amPm = \"\",\n valid = every(match, function (v, i) {\n if (i) {\n var token = tokens[i - 1];\n var l = token.length, type = token.charAt(0);\n if (type === 'y') {\n if (v < 100) {\n v = parseInt(v, 10);\n //choose century to apply, according to a sliding window\n //of 80 years before and 20 years after present year\n var year = '' + new Date().getFullYear(),\n century = year.substring(0, 2) * 100,\n cutoff = min(year.substring(2, 4) + 20, 99);\n result[0] = (v < cutoff) ? century + v : century - 100 + v;\n } else {\n result[0] = v;\n }\n } else if (type === \"M\") {\n if (l > 2) {\n var months = monthNames, j, k;\n if (l === 3) {\n months = monthAbbr;\n }\n //Tolerate abbreviating period in month part\n //Case-insensitive comparison\n v = v.replace(\".\", \"\").toLowerCase();\n var contains = false;\n for (j = 0, k = months.length; j < k && !contains; j++) {\n var s = months[j].replace(\".\", \"\").toLocaleLowerCase();\n if (s === v) {\n v = j;\n contains = true;\n }\n }\n if (!contains) {\n return false;\n }\n } else {\n v--;\n }\n result[1] = v;\n } else if (type === \"E\" || type === \"e\") {\n var days = dayNames;\n if (l === 3) {\n days = dayAbbr;\n }\n //Case-insensitive comparison\n v = v.toLowerCase();\n days = array.map(days, function (d) {\n return d.toLowerCase();\n });\n var d = array.indexOf(days, v);\n if (d === -1) {\n v = parseInt(v, 10);\n if (isNaN(v) || v > days.length) {\n return false;\n }\n } else {\n v = d;\n }\n } else if (type === 'D' || type === \"d\") {\n if (type === \"D\") {\n result[1] = 0;\n }\n result[2] = v;\n } else if (type === \"a\") {\n var am = \"am\";\n var pm = \"pm\";\n var period = /\\./g;\n v = v.replace(period, '').toLowerCase();\n // we might not have seen the hours field yet, so store the state and apply hour change later\n amPm = (v === pm) ? 'p' : (v === am) ? 'a' : '';\n } else if (type === \"k\" || type === \"h\" || type === \"H\" || type === \"K\") {\n if (type === \"k\" && (+v) === 24) {\n v = 0;\n }\n result[3] = v;\n } else if (type === \"m\") {\n result[4] = v;\n } else if (type === \"s\") {\n result[5] = v;\n } else if (type === \"S\") {\n result[6] = v;\n }\n }\n return true;\n });\n if (valid) {\n var hours = +result[3];\n //account for am/pm\n if (amPm === 'p' && hours < 12) {\n result[3] = hours + 12; //e.g., 3pm -> 15\n } else if (amPm === 'a' && hours === 12) {\n result[3] = 0; //12am -> 0\n }\n var dateObject = new Date(result[0], result[1], result[2], result[3], result[4], result[5], result[6]); // Date\n var dateToken = (array.indexOf(tokens, 'd') !== -1),\n monthToken = (array.indexOf(tokens, 'M') !== -1),\n month = result[1],\n day = result[2],\n dateMonth = dateObject.getMonth(),\n dateDay = dateObject.getDate();\n if ((monthToken && dateMonth > month) || (dateToken && dateDay > day)) {\n return null;\n }\n return dateObject; // Date\n } else {\n return null;\n }\n }\n };\n\n\n var ret = extended.define(is.isDate, date).define(is.isString, stringDate).define(is.isNumber, numberDate);\n for (i in date) {\n if (date.hasOwnProperty(i)) {\n ret[i] = date[i];\n }\n }\n\n for (i in stringDate) {\n if (stringDate.hasOwnProperty(i)) {\n ret[i] = stringDate[i];\n }\n }\n for (i in numberDate) {\n if (numberDate.hasOwnProperty(i)) {\n ret[i] = numberDate[i];\n }\n }\n return ret;\n }\n\n if (true) {\n if ( true && module.exports) {\n module.exports = defineDate(__webpack_require__(/*! extended */ \"./build/cht-core-4-6/node_modules/extended/index.js\"), __webpack_require__(/*! is-extended */ \"./build/cht-core-4-6/node_modules/is-extended/index.js\"), __webpack_require__(/*! array-extended */ \"./build/cht-core-4-6/node_modules/array-extended/index.js\"));\n\n }\n } else {}\n\n}).call(this);\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/declare.js/declare.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/declare.js/declare.js ***!\n \\***************************************************************/\n/***/ ((module) => {\n\n(function () {\n\n /**\n * @projectName declare\n * @github http://github.com/doug-martin/declare.js\n * @header\n *\n * Declare is a library designed to allow writing object oriented code the same way in both the browser and node.js.\n *\n * ##Installation\n *\n * `npm install declare.js`\n *\n * Or [download the source](https://raw.github.com/doug-martin/declare.js/master/declare.js) ([minified](https://raw.github.com/doug-martin/declare.js/master/declare-min.js))\n *\n * ###Requirejs\n *\n * To use with requirejs place the `declare` source in the root scripts directory\n *\n * ```\n *\n * define([\"declare\"], function(declare){\n * return declare({\n * instance : {\n * hello : function(){\n * return \"world\";\n * }\n * }\n * });\n * });\n *\n * ```\n *\n *\n * ##Usage\n *\n * declare.js provides\n *\n * Class methods\n *\n * * `as(module | object, name)` : exports the object to module or the object with the name\n * * `mixin(mixin)` : mixes in an object but does not inherit directly from the object. **Note** this does not return a new class but changes the original class.\n * * `extend(proto)` : extend a class with the given properties. A shortcut to `declare(Super, {})`;\n *\n * Instance methods\n *\n * * `_super(arguments)`: calls the super of the current method, you can pass in either the argments object or an array with arguments you want passed to super\n * * `_getSuper()`: returns a this methods direct super.\n * * `_static` : use to reference class properties and methods.\n * * `get(prop)` : gets a property invoking the getter if it exists otherwise it just returns the named property on the object.\n * * `set(prop, val)` : sets a property invoking the setter if it exists otherwise it just sets the named property on the object.\n *\n *\n * ###Declaring a new Class\n *\n * Creating a new class with declare is easy!\n *\n * ```\n *\n * var Mammal = declare({\n * //define your instance methods and properties\n * instance : {\n *\n * //will be called whenever a new instance is created\n * constructor: function(options) {\n * options = options || {};\n * this._super(arguments);\n * this._type = options.type || \"mammal\";\n * },\n *\n * speak : function() {\n * return \"A mammal of type \" + this._type + \" sounds like\";\n * },\n *\n * //Define your getters\n * getters : {\n *\n * //can be accessed by using the get method. (mammal.get(\"type\"))\n * type : function() {\n * return this._type;\n * }\n * },\n *\n * //Define your setters\n * setters : {\n *\n * //can be accessed by using the set method. (mammal.set(\"type\", \"mammalType\"))\n * type : function(t) {\n * this._type = t;\n * }\n * }\n * },\n *\n * //Define your static methods\n * static : {\n *\n * //Mammal.soundOff(); //\"Im a mammal!!\"\n * soundOff : function() {\n * return \"Im a mammal!!\";\n * }\n * }\n * });\n *\n *\n * ```\n *\n * You can use Mammal just like you would any other class.\n *\n * ```\n * Mammal.soundOff(\"Im a mammal!!\");\n *\n * var myMammal = new Mammal({type : \"mymammal\"});\n * myMammal.speak(); // \"A mammal of type mymammal sounds like\"\n * myMammal.get(\"type\"); //\"mymammal\"\n * myMammal.set(\"type\", \"mammal\");\n * myMammal.get(\"type\"); //\"mammal\"\n *\n *\n * ```\n *\n * ###Extending a class\n *\n * If you want to just extend a single class use the .extend method.\n *\n * ```\n *\n * var Wolf = Mammal.extend({\n *\n * //define your instance method\n * instance: {\n *\n * //You can override super constructors just be sure to call `_super`\n * constructor: function(options) {\n * options = options || {};\n * this._super(arguments); //call our super constructor.\n * this._sound = \"growl\";\n * this._color = options.color || \"grey\";\n * },\n *\n * //override Mammals `speak` method by appending our own data to it.\n * speak : function() {\n * return this._super(arguments) + \" a \" + this._sound;\n * },\n *\n * //add new getters for sound and color\n * getters : {\n *\n * //new Wolf().get(\"type\")\n * //notice color is read only as we did not define a setter\n * color : function() {\n * return this._color;\n * },\n *\n * //new Wolf().get(\"sound\")\n * sound : function() {\n * return this._sound;\n * }\n * },\n *\n * setters : {\n *\n * //new Wolf().set(\"sound\", \"howl\")\n * sound : function(s) {\n * this._sound = s;\n * }\n * }\n *\n * },\n *\n * static : {\n *\n * //You can override super static methods also! And you can still use _super\n * soundOff : function() {\n * //You can even call super in your statics!!!\n * //should return \"I'm a mammal!! that growls\"\n * return this._super(arguments) + \" that growls\";\n * }\n * }\n * });\n *\n * Wolf.soundOff(); //Im a mammal!! that growls\n *\n * var myWolf = new Wolf();\n * myWolf instanceof Mammal //true\n * myWolf instanceof Wolf //true\n *\n * ```\n *\n * You can also extend a class by using the declare method and just pass in the super class.\n *\n * ```\n * //Typical hierarchical inheritance\n * // Mammal->Wolf->Dog\n * var Dog = declare(Wolf, {\n * instance: {\n * constructor: function(options) {\n * options = options || {};\n * this._super(arguments);\n * //override Wolfs initialization of sound to woof.\n * this._sound = \"woof\";\n *\n * },\n *\n * speak : function() {\n * //Should return \"A mammal of type mammal sounds like a growl thats domesticated\"\n * return this._super(arguments) + \" thats domesticated\";\n * }\n * },\n *\n * static : {\n * soundOff : function() {\n * //should return \"I'm a mammal!! that growls but now barks\"\n * return this._super(arguments) + \" but now barks\";\n * }\n * }\n * });\n *\n * Dog.soundOff(); //Im a mammal!! that growls but now barks\n *\n * var myDog = new Dog();\n * myDog instanceof Mammal //true\n * myDog instanceof Wolf //true\n * myDog instanceof Dog //true\n *\n *\n * //Notice you still get the extend method.\n *\n * // Mammal->Wolf->Dog->Breed\n * var Breed = Dog.extend({\n * instance: {\n *\n * //initialize outside of constructor\n * _pitch : \"high\",\n *\n * constructor: function(options) {\n * options = options || {};\n * this._super(arguments);\n * this.breed = options.breed || \"lab\";\n * },\n *\n * speak : function() {\n * //Should return \"A mammal of type mammal sounds like a\n * //growl thats domesticated with a high pitch!\"\n * return this._super(arguments) + \" with a \" + this._pitch + \" pitch!\";\n * },\n *\n * getters : {\n * pitch : function() {\n * return this._pitch;\n * }\n * }\n * },\n *\n * static : {\n * soundOff : function() {\n * //should return \"I'M A MAMMAL!! THAT GROWLS BUT NOW BARKS!\"\n * return this._super(arguments).toUpperCase() + \"!\";\n * }\n * }\n * });\n *\n *\n * Breed.soundOff()//\"IM A MAMMAL!! THAT GROWLS BUT NOW BARKS!\"\n *\n * var myBreed = new Breed({color : \"gold\", type : \"lab\"}),\n * myBreed instanceof Dog //true\n * myBreed instanceof Wolf //true\n * myBreed instanceof Mammal //true\n * myBreed.speak() //\"A mammal of type lab sounds like a woof thats domesticated with a high pitch!\"\n * myBreed.get(\"type\") //\"lab\"\n * myBreed.get(\"color\") //\"gold\"\n * myBreed.get(\"sound\")\" //\"woof\"\n * ```\n *\n * ###Multiple Inheritance / Mixins\n *\n * declare also allows the use of multiple super classes.\n * This is useful if you have generic classes that provide functionality but shouldnt be used on their own.\n *\n * Lets declare a mixin that allows us to watch for property changes.\n *\n * ```\n * //Notice that we set up the functions outside of declare because we can reuse them\n *\n * function _set(prop, val) {\n * //get the old value\n * var oldVal = this.get(prop);\n * //call super to actually set the property\n * var ret = this._super(arguments);\n * //call our handlers\n * this.__callHandlers(prop, oldVal, val);\n * return ret;\n * }\n *\n * function _callHandlers(prop, oldVal, newVal) {\n * //get our handlers for the property\n * var handlers = this.__watchers[prop], l;\n * //if the handlers exist and their length does not equal 0 then we call loop through them\n * if (handlers && (l = handlers.length) !== 0) {\n * for (var i = 0; i < l; i++) {\n * //call the handler\n * handlers[i].call(null, prop, oldVal, newVal);\n * }\n * }\n * }\n *\n *\n * //the watch function\n * function _watch(prop, handler) {\n * if (\"function\" !== typeof handler) {\n * //if its not a function then its an invalid handler\n * throw new TypeError(\"Invalid handler.\");\n * }\n * if (!this.__watchers[prop]) {\n * //create the watchers if it doesnt exist\n * this.__watchers[prop] = [handler];\n * } else {\n * //otherwise just add it to the handlers array\n * this.__watchers[prop].push(handler);\n * }\n * }\n *\n * function _unwatch(prop, handler) {\n * if (\"function\" !== typeof handler) {\n * throw new TypeError(\"Invalid handler.\");\n * }\n * var handlers = this.__watchers[prop], index;\n * if (handlers && (index = handlers.indexOf(handler)) !== -1) {\n * //remove the handler if it is found\n * handlers.splice(index, 1);\n * }\n * }\n *\n * declare({\n * instance:{\n * constructor:function () {\n * this._super(arguments);\n * //set up our watchers\n * this.__watchers = {};\n * },\n *\n * //override the default set function so we can watch values\n * \"set\":_set,\n * //set up our callhandlers function\n * __callHandlers:_callHandlers,\n * //add the watch function\n * watch:_watch,\n * //add the unwatch function\n * unwatch:_unwatch\n * },\n *\n * \"static\":{\n *\n * init:function () {\n * this._super(arguments);\n * this.__watchers = {};\n * },\n * //override the default set function so we can watch values\n * \"set\":_set,\n * //set our callHandlers function\n * __callHandlers:_callHandlers,\n * //add the watch\n * watch:_watch,\n * //add the unwatch function\n * unwatch:_unwatch\n * }\n * })\n *\n * ```\n *\n * Now lets use the mixin\n *\n * ```\n * var WatchDog = declare([Dog, WatchMixin]);\n *\n * var watchDog = new WatchDog();\n * //create our handler\n * function watch(id, oldVal, newVal) {\n * console.log(\"watchdog's %s was %s, now %s\", id, oldVal, newVal);\n * }\n *\n * //watch for property changes\n * watchDog.watch(\"type\", watch);\n * watchDog.watch(\"color\", watch);\n * watchDog.watch(\"sound\", watch);\n *\n * //now set the properties each handler will be called\n * watchDog.set(\"type\", \"newDog\");\n * watchDog.set(\"color\", \"newColor\");\n * watchDog.set(\"sound\", \"newSound\");\n *\n *\n * //unwatch the property changes\n * watchDog.unwatch(\"type\", watch);\n * watchDog.unwatch(\"color\", watch);\n * watchDog.unwatch(\"sound\", watch);\n *\n * //no handlers will be called this time\n * watchDog.set(\"type\", \"newDog\");\n * watchDog.set(\"color\", \"newColor\");\n * watchDog.set(\"sound\", \"newSound\");\n *\n *\n * ```\n *\n * ###Accessing static methods and properties witin an instance.\n *\n * To access static properties on an instance use the `_static` property which is a reference to your constructor.\n *\n * For example if your in your constructor and you want to have configurable default values.\n *\n * ```\n * consturctor : function constructor(opts){\n * this.opts = opts || {};\n * this._type = opts.type || this._static.DEFAULT_TYPE;\n * }\n * ```\n *\n *\n *\n * ###Creating a new instance of within an instance.\n *\n * Often times you want to create a new instance of an object within an instance. If your subclassed however you cannot return a new instance of the parent class as it will not be the right sub class. `declare` provides a way around this by setting the `_static` property on each isntance of the class.\n *\n * Lets add a reproduce method `Mammal`\n *\n * ```\n * reproduce : function(options){\n * return new this._static(options);\n * }\n * ```\n *\n * Now in each subclass you can call reproduce and get the proper type.\n *\n * ```\n * var myDog = new Dog();\n * var myDogsChild = myDog.reproduce();\n *\n * myDogsChild instanceof Dog; //true\n * ```\n *\n * ###Using the `as`\n *\n * `declare` also provides an `as` method which allows you to add your class to an object or if your using node.js you can pass in `module` and the class will be exported as the module.\n *\n * ```\n * var animals = {};\n *\n * Mammal.as(animals, \"Dog\");\n * Wolf.as(animals, \"Wolf\");\n * Dog.as(animals, \"Dog\");\n * Breed.as(animals, \"Breed\");\n *\n * var myDog = new animals.Dog();\n *\n * ```\n *\n * Or in node\n *\n * ```\n * Mammal.as(exports, \"Dog\");\n * Wolf.as(exports, \"Wolf\");\n * Dog.as(exports, \"Dog\");\n * Breed.as(exports, \"Breed\");\n *\n * ```\n *\n * To export a class as the `module` in node\n *\n * ```\n * Mammal.as(module);\n * ```\n *\n *\n */\n function createDeclared() {\n var arraySlice = Array.prototype.slice, classCounter = 0, Base, forceNew = new Function();\n\n var SUPER_REGEXP = /(super)/g;\n\n function argsToArray(args, slice) {\n slice = slice || 0;\n return arraySlice.call(args, slice);\n }\n\n function isArray(obj) {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n }\n\n function isObject(obj) {\n var undef;\n return obj !== null && obj !== undef && typeof obj === \"object\";\n }\n\n function isHash(obj) {\n var ret = isObject(obj);\n return ret && obj.constructor === Object;\n }\n\n var isArguments = function _isArguments(object) {\n return Object.prototype.toString.call(object) === '[object Arguments]';\n };\n\n if (!isArguments(arguments)) {\n isArguments = function _isArguments(obj) {\n return !!(obj && obj.hasOwnProperty(\"callee\"));\n };\n }\n\n function indexOf(arr, item) {\n if (arr && arr.length) {\n for (var i = 0, l = arr.length; i < l; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n }\n return -1;\n }\n\n function merge(target, source, exclude) {\n var name, s;\n for (name in source) {\n if (source.hasOwnProperty(name) && indexOf(exclude, name) === -1) {\n s = source[name];\n if (!(name in target) || (target[name] !== s)) {\n target[name] = s;\n }\n }\n }\n return target;\n }\n\n function callSuper(args, a) {\n var meta = this.__meta,\n supers = meta.supers,\n l = supers.length, superMeta = meta.superMeta, pos = superMeta.pos;\n if (l > pos) {\n args = !args ? [] : (!isArguments(args) && !isArray(args)) ? [args] : args;\n var name = superMeta.name, f = superMeta.f, m;\n do {\n m = supers[pos][name];\n if (\"function\" === typeof m && (m = m._f || m) !== f) {\n superMeta.pos = 1 + pos;\n return m.apply(this, args);\n }\n } while (l > ++pos);\n }\n\n return null;\n }\n\n function getSuper() {\n var meta = this.__meta,\n supers = meta.supers,\n l = supers.length, superMeta = meta.superMeta, pos = superMeta.pos;\n if (l > pos) {\n var name = superMeta.name, f = superMeta.f, m;\n do {\n m = supers[pos][name];\n if (\"function\" === typeof m && (m = m._f || m) !== f) {\n superMeta.pos = 1 + pos;\n return m.bind(this);\n }\n } while (l > ++pos);\n }\n return null;\n }\n\n function getter(name) {\n var getters = this.__getters__;\n if (getters.hasOwnProperty(name)) {\n return getters[name].apply(this);\n } else {\n return this[name];\n }\n }\n\n function setter(name, val) {\n var setters = this.__setters__;\n if (isHash(name)) {\n for (var i in name) {\n var prop = name[i];\n if (setters.hasOwnProperty(i)) {\n setters[name].call(this, prop);\n } else {\n this[i] = prop;\n }\n }\n } else {\n if (setters.hasOwnProperty(name)) {\n return setters[name].apply(this, argsToArray(arguments, 1));\n } else {\n return this[name] = val;\n }\n }\n }\n\n\n function defaultFunction() {\n var meta = this.__meta || {},\n supers = meta.supers,\n l = supers.length, superMeta = meta.superMeta, pos = superMeta.pos;\n if (l > pos) {\n var name = superMeta.name, f = superMeta.f, m;\n do {\n m = supers[pos][name];\n if (\"function\" === typeof m && (m = m._f || m) !== f) {\n superMeta.pos = 1 + pos;\n return m.apply(this, arguments);\n }\n } while (l > ++pos);\n }\n return null;\n }\n\n\n function functionWrapper(f, name) {\n if (f.toString().match(SUPER_REGEXP)) {\n var wrapper = function wrapper() {\n var ret, meta = this.__meta || {};\n var orig = meta.superMeta;\n meta.superMeta = {f: f, pos: 0, name: name};\n switch (arguments.length) {\n case 0:\n ret = f.call(this);\n break;\n case 1:\n ret = f.call(this, arguments[0]);\n break;\n case 2:\n ret = f.call(this, arguments[0], arguments[1]);\n break;\n\n case 3:\n ret = f.call(this, arguments[0], arguments[1], arguments[2]);\n break;\n default:\n ret = f.apply(this, arguments);\n }\n meta.superMeta = orig;\n return ret;\n };\n wrapper._f = f;\n return wrapper;\n } else {\n f._f = f;\n return f;\n }\n }\n\n function defineMixinProps(child, proto) {\n\n var operations = proto.setters || {}, __setters = child.__setters__, __getters = child.__getters__;\n for (var i in operations) {\n if (!__setters.hasOwnProperty(i)) { //make sure that the setter isnt already there\n __setters[i] = operations[i];\n }\n }\n operations = proto.getters || {};\n for (i in operations) {\n if (!__getters.hasOwnProperty(i)) { //make sure that the setter isnt already there\n __getters[i] = operations[i];\n }\n }\n for (var j in proto) {\n if (j !== \"getters\" && j !== \"setters\") {\n var p = proto[j];\n if (\"function\" === typeof p) {\n if (!child.hasOwnProperty(j)) {\n child[j] = functionWrapper(defaultFunction, j);\n }\n } else {\n child[j] = p;\n }\n }\n }\n }\n\n function mixin() {\n var args = argsToArray(arguments), l = args.length;\n var child = this.prototype;\n var childMeta = child.__meta, thisMeta = this.__meta, bases = child.__meta.bases, staticBases = bases.slice(),\n staticSupers = thisMeta.supers || [], supers = childMeta.supers || [];\n for (var i = 0; i < l; i++) {\n var m = args[i], mProto = m.prototype;\n var protoMeta = mProto.__meta, meta = m.__meta;\n !protoMeta && (protoMeta = (mProto.__meta = {proto: mProto || {}}));\n !meta && (meta = (m.__meta = {proto: m.__proto__ || {}}));\n defineMixinProps(child, protoMeta.proto || {});\n defineMixinProps(this, meta.proto || {});\n //copy the bases for static,\n\n mixinSupers(m.prototype, supers, bases);\n mixinSupers(m, staticSupers, staticBases);\n }\n return this;\n }\n\n function mixinSupers(sup, arr, bases) {\n var meta = sup.__meta;\n !meta && (meta = (sup.__meta = {}));\n var unique = sup.__meta.unique;\n !unique && (meta.unique = \"declare\" + ++classCounter);\n //check it we already have this super mixed into our prototype chain\n //if true then we have already looped their supers!\n if (indexOf(bases, unique) === -1) {\n //add their id to our bases\n bases.push(unique);\n var supers = sup.__meta.supers || [], i = supers.length - 1 || 0;\n while (i >= 0) {\n mixinSupers(supers[i--], arr, bases);\n }\n arr.unshift(sup);\n }\n }\n\n function defineProps(child, proto) {\n var operations = proto.setters,\n __setters = child.__setters__,\n __getters = child.__getters__;\n if (operations) {\n for (var i in operations) {\n __setters[i] = operations[i];\n }\n }\n operations = proto.getters || {};\n if (operations) {\n for (i in operations) {\n __getters[i] = operations[i];\n }\n }\n for (i in proto) {\n if (i != \"getters\" && i != \"setters\") {\n var f = proto[i];\n if (\"function\" === typeof f) {\n var meta = f.__meta || {};\n if (!meta.isConstructor) {\n child[i] = functionWrapper(f, i);\n } else {\n child[i] = f;\n }\n } else {\n child[i] = f;\n }\n }\n }\n\n }\n\n function _export(obj, name) {\n if (obj && name) {\n obj[name] = this;\n } else {\n obj.exports = obj = this;\n }\n return this;\n }\n\n function extend(proto) {\n return declare(this, proto);\n }\n\n function getNew(ctor) {\n // create object with correct prototype using a do-nothing\n // constructor\n forceNew.prototype = ctor.prototype;\n var t = new forceNew();\n forceNew.prototype = null;\t// clean up\n return t;\n }\n\n\n function __declare(child, sup, proto) {\n var childProto = {}, supers = [];\n var unique = \"declare\" + ++classCounter, bases = [], staticBases = [];\n var instanceSupers = [], staticSupers = [];\n var meta = {\n supers: instanceSupers,\n unique: unique,\n bases: bases,\n superMeta: {\n f: null,\n pos: 0,\n name: null\n }\n };\n var childMeta = {\n supers: staticSupers,\n unique: unique,\n bases: staticBases,\n isConstructor: true,\n superMeta: {\n f: null,\n pos: 0,\n name: null\n }\n };\n\n if (isHash(sup) && !proto) {\n proto = sup;\n sup = Base;\n }\n\n if (\"function\" === typeof sup || isArray(sup)) {\n supers = isArray(sup) ? sup : [sup];\n sup = supers.shift();\n child.__meta = childMeta;\n childProto = getNew(sup);\n childProto.__meta = meta;\n childProto.__getters__ = merge({}, childProto.__getters__ || {});\n childProto.__setters__ = merge({}, childProto.__setters__ || {});\n child.__getters__ = merge({}, child.__getters__ || {});\n child.__setters__ = merge({}, child.__setters__ || {});\n mixinSupers(sup.prototype, instanceSupers, bases);\n mixinSupers(sup, staticSupers, staticBases);\n } else {\n child.__meta = childMeta;\n childProto.__meta = meta;\n childProto.__getters__ = childProto.__getters__ || {};\n childProto.__setters__ = childProto.__setters__ || {};\n child.__getters__ = child.__getters__ || {};\n child.__setters__ = child.__setters__ || {};\n }\n child.prototype = childProto;\n if (proto) {\n var instance = meta.proto = proto.instance || {};\n var stat = childMeta.proto = proto.static || {};\n stat.init = stat.init || defaultFunction;\n defineProps(childProto, instance);\n defineProps(child, stat);\n if (!instance.hasOwnProperty(\"constructor\")) {\n childProto.constructor = instance.constructor = functionWrapper(defaultFunction, \"constructor\");\n } else {\n childProto.constructor = functionWrapper(instance.constructor, \"constructor\");\n }\n } else {\n meta.proto = {};\n childMeta.proto = {};\n child.init = functionWrapper(defaultFunction, \"init\");\n childProto.constructor = functionWrapper(defaultFunction, \"constructor\");\n }\n if (supers.length) {\n mixin.apply(child, supers);\n }\n if (sup) {\n //do this so we mixin our super methods directly but do not ov\n merge(child, merge(merge({}, sup), child));\n }\n childProto._super = child._super = callSuper;\n childProto._getSuper = child._getSuper = getSuper;\n childProto._static = child;\n }\n\n function declare(sup, proto) {\n function declared() {\n switch (arguments.length) {\n case 0:\n this.constructor.call(this);\n break;\n case 1:\n this.constructor.call(this, arguments[0]);\n break;\n case 2:\n this.constructor.call(this, arguments[0], arguments[1]);\n break;\n case 3:\n this.constructor.call(this, arguments[0], arguments[1], arguments[2]);\n break;\n default:\n this.constructor.apply(this, arguments);\n }\n }\n\n __declare(declared, sup, proto);\n return declared.init() || declared;\n }\n\n function singleton(sup, proto) {\n var retInstance;\n\n function declaredSingleton() {\n if (!retInstance) {\n this.constructor.apply(this, arguments);\n retInstance = this;\n }\n return retInstance;\n }\n\n __declare(declaredSingleton, sup, proto);\n return declaredSingleton.init() || declaredSingleton;\n }\n\n Base = declare({\n instance: {\n \"get\": getter,\n \"set\": setter\n },\n\n \"static\": {\n \"get\": getter,\n \"set\": setter,\n mixin: mixin,\n extend: extend,\n as: _export\n }\n });\n\n declare.singleton = singleton;\n return declare;\n }\n\n if (true) {\n if ( true && module.exports) {\n module.exports = createDeclared();\n }\n } else {}\n}());\n\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/declare.js/index.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/declare.js/index.js ***!\n \\*************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports = __webpack_require__(/*! ./declare.js */ \"./build/cht-core-4-6/node_modules/declare.js/declare.js\");\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/extended/index.js\":\n/*!***********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/extended/index.js ***!\n \\***********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n(function () {\n \"use strict\";\n /*global extender is, dateExtended*/\n\n function defineExtended(extender) {\n\n\n var merge = (function merger() {\n function _merge(target, source) {\n var name, s;\n for (name in source) {\n if (source.hasOwnProperty(name)) {\n s = source[name];\n if (!(name in target) || (target[name] !== s)) {\n target[name] = s;\n }\n }\n }\n return target;\n }\n\n return function merge(obj) {\n if (!obj) {\n obj = {};\n }\n for (var i = 1, l = arguments.length; i < l; i++) {\n _merge(obj, arguments[i]);\n }\n return obj; // Object\n };\n }());\n\n function getExtended() {\n\n var loaded = {};\n\n\n //getInitial instance;\n var extended = extender.define();\n extended.expose({\n register: function register(alias, extendWith) {\n if (!extendWith) {\n extendWith = alias;\n alias = null;\n }\n var type = typeof extendWith;\n if (alias) {\n extended[alias] = extendWith;\n } else if (extendWith && type === \"function\") {\n extended.extend(extendWith);\n } else if (type === \"object\") {\n extended.expose(extendWith);\n } else {\n throw new TypeError(\"extended.register must be called with an extender function\");\n }\n return extended;\n },\n\n define: function () {\n return extender.define.apply(extender, arguments);\n }\n });\n\n return extended;\n }\n\n function extended() {\n return getExtended();\n }\n\n extended.define = function define() {\n return extender.define.apply(extender, arguments);\n };\n\n return extended;\n }\n\n if (true) {\n if ( true && module.exports) {\n module.exports = defineExtended(__webpack_require__(/*! extender */ \"./build/cht-core-4-6/node_modules/extender/index.js\"));\n\n }\n } else {}\n\n}).call(this);\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/extender/extender.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/extender/extender.js ***!\n \\**************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n(function () {\n /*jshint strict:false*/\n\n\n /**\n *\n * @projectName extender\n * @github http://github.com/doug-martin/extender\n * @header\n * [![build status](https://secure.travis-ci.org/doug-martin/extender.png)](http://travis-ci.org/doug-martin/extender)\n * # Extender\n *\n * `extender` is a library that helps in making chainable APIs, by creating a function that accepts different values and returns an object decorated with functions based on the type.\n *\n * ## Why Is Extender Different?\n *\n * Extender is different than normal chaining because is does more than return `this`. It decorates your values in a type safe manner.\n *\n * For example if you return an array from a string based method then the returned value will be decorated with array methods and not the string methods. This allow you as the developer to focus on your API and not worrying about how to properly build and connect your API.\n *\n *\n * ## Installation\n *\n * ```\n * npm install extender\n * ```\n *\n * Or [download the source](https://raw.github.com/doug-martin/extender/master/extender.js) ([minified](https://raw.github.com/doug-martin/extender/master/extender-min.js))\n *\n * **Note** `extender` depends on [`declare.js`](http://doug-martin.github.com/declare.js/).\n *\n * ### Requirejs\n *\n * To use with requirejs place the `extend` source in the root scripts directory\n *\n * ```javascript\n *\n * define([\"extender\"], function(extender){\n * });\n *\n * ```\n *\n *\n * ## Usage\n *\n * **`extender.define(tester, decorations)`**\n *\n * To create your own extender call the `extender.define` function.\n *\n * This function accepts an optional tester which is used to determine a value should be decorated with the specified `decorations`\n *\n * ```javascript\n * function isString(obj) {\n * return !isUndefinedOrNull(obj) && (typeof obj === \"string\" || obj instanceof String);\n * }\n *\n *\n * var myExtender = extender.define(isString, {\n *\t\tmultiply: function (str, times) {\n *\t\t\tvar ret = str;\n *\t\t\tfor (var i = 1; i < times; i++) {\n *\t\t\t\tret += str;\n *\t\t\t}\n *\t\t\treturn ret;\n *\t\t},\n *\t\ttoArray: function (str, delim) {\n *\t\t\tdelim = delim || \"\";\n *\t\t\treturn str.split(delim);\n *\t\t}\n *\t});\n *\n * myExtender(\"hello\").multiply(2).value(); //hellohello\n *\n * ```\n *\n * If you do not specify a tester function and just pass in an object of `functions` then all values passed in will be decorated with methods.\n *\n * ```javascript\n *\n * function isUndefined(obj) {\n * var undef;\n * return obj === undef;\n * }\n *\n * function isUndefinedOrNull(obj) {\n *\tvar undef;\n * return obj === undef || obj === null;\n * }\n *\n * function isArray(obj) {\n * return Object.prototype.toString.call(obj) === \"[object Array]\";\n * }\n *\n * function isBoolean(obj) {\n * var undef, type = typeof obj;\n * return !isUndefinedOrNull(obj) && type === \"boolean\" || type === \"Boolean\";\n * }\n *\n * function isString(obj) {\n * return !isUndefinedOrNull(obj) && (typeof obj === \"string\" || obj instanceof String);\n * }\n *\n * var myExtender = extender.define({\n *\tisUndefined : isUndefined,\n *\tisUndefinedOrNull : isUndefinedOrNull,\n *\tisArray : isArray,\n *\tisBoolean : isBoolean,\n *\tisString : isString\n * });\n *\n * ```\n *\n * To use\n *\n * ```\n * var undef;\n * myExtender(\"hello\").isUndefined().value(); //false\n * myExtender(undef).isUndefined().value(); //true\n * ```\n *\n * You can also chain extenders so that they accept multiple types and decorates accordingly.\n *\n * ```javascript\n * myExtender\n * .define(isArray, {\n *\t\tpluck: function (arr, m) {\n *\t\t\tvar ret = [];\n *\t\t\tfor (var i = 0, l = arr.length; i < l; i++) {\n *\t\t\t\tret.push(arr[i][m]);\n *\t\t\t}\n *\t\t\treturn ret;\n *\t\t}\n *\t})\n * .define(isBoolean, {\n *\t\tinvert: function (val) {\n *\t\t\treturn !val;\n *\t\t}\n *\t});\n *\n * myExtender([{a: \"a\"},{a: \"b\"},{a: \"c\"}]).pluck(\"a\").value(); //[\"a\", \"b\", \"c\"]\n * myExtender(\"I love javascript!\").toArray(/\\s+/).pluck(\"0\"); //[\"I\", \"l\", \"j\"]\n *\n * ```\n *\n * Notice that we reuse the same extender as defined above.\n *\n * **Return Values**\n *\n * When creating an extender if you return a value from one of the decoration functions then that value will also be decorated. If you do not return any values then the extender will be returned.\n *\n * **Default decoration methods**\n *\n * By default every value passed into an extender is decorated with the following methods.\n *\n * * `value` : The value this extender represents.\n * * `eq(otherValue)` : Tests strict equality of the currently represented value to the `otherValue`\n * * `neq(oterValue)` : Tests strict inequality of the currently represented value.\n * * `print` : logs the current value to the console.\n *\n * **Extender initialization**\n *\n * When creating an extender you can also specify a constructor which will be invoked with the current value.\n *\n * ```javascript\n * myExtender.define(isString, {\n *\tconstructor : function(val){\n * //set our value to the string trimmed\n *\t\tthis._value = val.trimRight().trimLeft();\n *\t}\n * });\n * ```\n *\n * **`noWrap`**\n *\n * `extender` also allows you to specify methods that should not have the value wrapped providing a cleaner exit function other than `value()`.\n *\n * For example suppose you have an API that allows you to build a validator, rather than forcing the user to invoke the `value` method you could add a method called `validator` which makes more syntactic sense.\n *\n * ```\n *\n * var myValidator = extender.define({\n * //chainable validation methods\n * //...\n * //end chainable validation methods\n *\n * noWrap : {\n * validator : function(){\n * //return your validator\n * }\n * }\n * });\n *\n * myValidator().isNotNull().isEmailAddress().validator(); //now you dont need to call .value()\n *\n *\n * ```\n * **`extender.extend(extendr)`**\n *\n * You may also compose extenders through the use of `extender.extend(extender)`, which will return an entirely new extender that is the composition of extenders.\n *\n * Suppose you have the following two extenders.\n *\n * ```javascript\n * var myExtender = extender\n * .define({\n * isFunction: is.function,\n * isNumber: is.number,\n * isString: is.string,\n * isDate: is.date,\n * isArray: is.array,\n * isBoolean: is.boolean,\n * isUndefined: is.undefined,\n * isDefined: is.defined,\n * isUndefinedOrNull: is.undefinedOrNull,\n * isNull: is.null,\n * isArguments: is.arguments,\n * isInstanceOf: is.instanceOf,\n * isRegExp: is.regExp\n * });\n * var myExtender2 = extender.define(is.array, {\n * pluck: function (arr, m) {\n * var ret = [];\n * for (var i = 0, l = arr.length; i < l; i++) {\n * ret.push(arr[i][m]);\n * }\n * return ret;\n * },\n *\n * noWrap: {\n * pluckPlain: function (arr, m) {\n * var ret = [];\n * for (var i = 0, l = arr.length; i < l; i++) {\n * ret.push(arr[i][m]);\n * }\n * return ret;\n * }\n * }\n * });\n *\n *\n * ```\n *\n * And you do not want to alter either of them but instead what to create a third that is the union of the two.\n *\n *\n * ```javascript\n * var composed = extender.extend(myExtender).extend(myExtender2);\n * ```\n * So now you can use the new extender with the joined functionality if `myExtender` and `myExtender2`.\n *\n * ```javascript\n * var extended = composed([\n * {a: \"a\"},\n * {a: \"b\"},\n * {a: \"c\"}\n * ]);\n * extended.isArray().value(); //true\n * extended.pluck(\"a\").value(); // [\"a\", \"b\", \"c\"]);\n *\n * ```\n *\n * **Note** `myExtender` and `myExtender2` will **NOT** be altered.\n *\n * **`extender.expose(methods)`**\n *\n * The `expose` method allows you to add methods to your extender that are not wrapped or automatically chained by exposing them on the extender directly.\n *\n * ```\n * var isMethods = {\n * isFunction: is.function,\n * isNumber: is.number,\n * isString: is.string,\n * isDate: is.date,\n * isArray: is.array,\n * isBoolean: is.boolean,\n * isUndefined: is.undefined,\n * isDefined: is.defined,\n * isUndefinedOrNull: is.undefinedOrNull,\n * isNull: is.null,\n * isArguments: is.arguments,\n * isInstanceOf: is.instanceOf,\n * isRegExp: is.regExp\n * };\n *\n * var myExtender = extender.define(isMethods).expose(isMethods);\n *\n * myExtender.isArray([]); //true\n * myExtender([]).isArray([]).value(); //true\n *\n * ```\n *\n *\n * **Using `instanceof`**\n *\n * When using extenders you can test if a value is an `instanceof` of an extender by using the instanceof operator.\n *\n * ```javascript\n * var str = myExtender(\"hello\");\n *\n * str instanceof myExtender; //true\n * ```\n *\n * ## Examples\n *\n * To see more examples click [here](https://github.com/doug-martin/extender/tree/master/examples)\n */\n function defineExtender(declare) {\n\n\n var slice = Array.prototype.slice, undef;\n\n function indexOf(arr, item) {\n if (arr && arr.length) {\n for (var i = 0, l = arr.length; i < l; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n }\n return -1;\n }\n\n function isArray(obj) {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n }\n\n var merge = (function merger() {\n function _merge(target, source, exclude) {\n var name, s;\n for (name in source) {\n if (source.hasOwnProperty(name) && indexOf(exclude, name) === -1) {\n s = source[name];\n if (!(name in target) || (target[name] !== s)) {\n target[name] = s;\n }\n }\n }\n return target;\n }\n\n return function merge(obj) {\n if (!obj) {\n obj = {};\n }\n var l = arguments.length;\n var exclude = arguments[arguments.length - 1];\n if (isArray(exclude)) {\n l--;\n } else {\n exclude = [];\n }\n for (var i = 1; i < l; i++) {\n _merge(obj, arguments[i], exclude);\n }\n return obj; // Object\n };\n }());\n\n\n function extender(supers) {\n supers = supers || [];\n var Base = declare({\n instance: {\n constructor: function (value) {\n this._value = value;\n },\n\n value: function () {\n return this._value;\n },\n\n eq: function eq(val) {\n return this[\"__extender__\"](this._value === val);\n },\n\n neq: function neq(other) {\n return this[\"__extender__\"](this._value !== other);\n },\n print: function () {\n console.log(this._value);\n return this;\n }\n }\n }), defined = [];\n\n function addMethod(proto, name, func) {\n if (\"function\" !== typeof func) {\n throw new TypeError(\"when extending type you must provide a function\");\n }\n var extendedMethod;\n if (name === \"constructor\") {\n extendedMethod = function () {\n this._super(arguments);\n func.apply(this, arguments);\n };\n } else {\n extendedMethod = function extendedMethod() {\n var args = slice.call(arguments);\n args.unshift(this._value);\n var ret = func.apply(this, args);\n return ret !== undef ? this[\"__extender__\"](ret) : this;\n };\n }\n proto[name] = extendedMethod;\n }\n\n function addNoWrapMethod(proto, name, func) {\n if (\"function\" !== typeof func) {\n throw new TypeError(\"when extending type you must provide a function\");\n }\n var extendedMethod;\n if (name === \"constructor\") {\n extendedMethod = function () {\n this._super(arguments);\n func.apply(this, arguments);\n };\n } else {\n extendedMethod = function extendedMethod() {\n var args = slice.call(arguments);\n args.unshift(this._value);\n return func.apply(this, args);\n };\n }\n proto[name] = extendedMethod;\n }\n\n function decorateProto(proto, decoration, nowrap) {\n for (var i in decoration) {\n if (decoration.hasOwnProperty(i)) {\n if (i !== \"getters\" && i !== \"setters\") {\n if (i === \"noWrap\") {\n decorateProto(proto, decoration[i], true);\n } else if (nowrap) {\n addNoWrapMethod(proto, i, decoration[i]);\n } else {\n addMethod(proto, i, decoration[i]);\n }\n } else {\n proto[i] = decoration[i];\n }\n }\n }\n }\n\n function _extender(obj) {\n var ret = obj, i, l;\n if (!(obj instanceof Base)) {\n var OurBase = Base;\n for (i = 0, l = defined.length; i < l; i++) {\n var definer = defined[i];\n if (definer[0](obj)) {\n OurBase = OurBase.extend({instance: definer[1]});\n }\n }\n ret = new OurBase(obj);\n ret[\"__extender__\"] = _extender;\n }\n return ret;\n }\n\n function always() {\n return true;\n }\n\n function define(tester, decorate) {\n if (arguments.length) {\n if (typeof tester === \"object\") {\n decorate = tester;\n tester = always;\n }\n decorate = decorate || {};\n var proto = {};\n decorateProto(proto, decorate);\n //handle browsers like which skip over the constructor while looping\n if (!proto.hasOwnProperty(\"constructor\")) {\n if (decorate.hasOwnProperty(\"constructor\")) {\n addMethod(proto, \"constructor\", decorate.constructor);\n } else {\n proto.constructor = function () {\n this._super(arguments);\n };\n }\n }\n defined.push([tester, proto]);\n }\n return _extender;\n }\n\n function extend(supr) {\n if (supr && supr.hasOwnProperty(\"__defined__\")) {\n _extender[\"__defined__\"] = defined = defined.concat(supr[\"__defined__\"]);\n }\n merge(_extender, supr, [\"define\", \"extend\", \"expose\", \"__defined__\"]);\n return _extender;\n }\n\n _extender.define = define;\n _extender.extend = extend;\n _extender.expose = function expose() {\n var methods;\n for (var i = 0, l = arguments.length; i < l; i++) {\n methods = arguments[i];\n if (typeof methods === \"object\") {\n merge(_extender, methods, [\"define\", \"extend\", \"expose\", \"__defined__\"]);\n }\n }\n return _extender;\n };\n _extender[\"__defined__\"] = defined;\n\n\n return _extender;\n }\n\n return {\n define: function () {\n return extender().define.apply(extender, arguments);\n },\n\n extend: function (supr) {\n return extender().define().extend(supr);\n }\n };\n\n }\n\n if (true) {\n if ( true && module.exports) {\n module.exports = defineExtender(__webpack_require__(/*! declare.js */ \"./build/cht-core-4-6/node_modules/declare.js/index.js\"));\n\n }\n } else {}\n\n}).call(this);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/extender/index.js\":\n/*!***********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/extender/index.js ***!\n \\***********************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports = __webpack_require__(/*! ./extender.js */ \"./build/cht-core-4-6/node_modules/extender/extender.js\");\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/function-extended/index.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/function-extended/index.js ***!\n \\********************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n(function () {\n \"use strict\";\n\n function defineFunction(extended, is, args) {\n\n var isArray = is.isArray,\n isObject = is.isObject,\n isString = is.isString,\n isFunction = is.isFunction,\n argsToArray = args.argsToArray;\n\n function spreadArgs(f, args, scope) {\n var ret;\n switch ((args || []).length) {\n case 0:\n ret = f.call(scope);\n break;\n case 1:\n ret = f.call(scope, args[0]);\n break;\n case 2:\n ret = f.call(scope, args[0], args[1]);\n break;\n case 3:\n ret = f.call(scope, args[0], args[1], args[2]);\n break;\n default:\n ret = f.apply(scope, args);\n }\n return ret;\n }\n\n function hitch(scope, method, args) {\n args = argsToArray(arguments, 2);\n if ((isString(method) && !(method in scope))) {\n throw new Error(method + \" property not defined in scope\");\n } else if (!isString(method) && !isFunction(method)) {\n throw new Error(method + \" is not a function\");\n }\n if (isString(method)) {\n return function () {\n var func = scope[method];\n if (isFunction(func)) {\n return spreadArgs(func, args.concat(argsToArray(arguments)), scope);\n } else {\n return func;\n }\n };\n } else {\n if (args.length) {\n return function () {\n return spreadArgs(method, args.concat(argsToArray(arguments)), scope);\n };\n } else {\n\n return function () {\n return spreadArgs(method, arguments, scope);\n };\n }\n }\n }\n\n\n function applyFirst(method, args) {\n args = argsToArray(arguments, 1);\n if (!isString(method) && !isFunction(method)) {\n throw new Error(method + \" must be the name of a property or function to execute\");\n }\n if (isString(method)) {\n return function () {\n var scopeArgs = argsToArray(arguments), scope = scopeArgs.shift();\n var func = scope[method];\n if (isFunction(func)) {\n scopeArgs = args.concat(scopeArgs);\n return spreadArgs(func, scopeArgs, scope);\n } else {\n return func;\n }\n };\n } else {\n return function () {\n var scopeArgs = argsToArray(arguments), scope = scopeArgs.shift();\n scopeArgs = args.concat(scopeArgs);\n return spreadArgs(method, scopeArgs, scope);\n };\n }\n }\n\n\n function hitchIgnore(scope, method, args) {\n args = argsToArray(arguments, 2);\n if ((isString(method) && !(method in scope))) {\n throw new Error(method + \" property not defined in scope\");\n } else if (!isString(method) && !isFunction(method)) {\n throw new Error(method + \" is not a function\");\n }\n if (isString(method)) {\n return function () {\n var func = scope[method];\n if (isFunction(func)) {\n return spreadArgs(func, args, scope);\n } else {\n return func;\n }\n };\n } else {\n return function () {\n return spreadArgs(method, args, scope);\n };\n }\n }\n\n\n function hitchAll(scope) {\n var funcs = argsToArray(arguments, 1);\n if (!isObject(scope) && !isFunction(scope)) {\n throw new TypeError(\"scope must be an object\");\n }\n if (funcs.length === 1 && isArray(funcs[0])) {\n funcs = funcs[0];\n }\n if (!funcs.length) {\n funcs = [];\n for (var k in scope) {\n if (scope.hasOwnProperty(k) && isFunction(scope[k])) {\n funcs.push(k);\n }\n }\n }\n for (var i = 0, l = funcs.length; i < l; i++) {\n scope[funcs[i]] = hitch(scope, scope[funcs[i]]);\n }\n return scope;\n }\n\n\n function partial(method, args) {\n args = argsToArray(arguments, 1);\n if (!isString(method) && !isFunction(method)) {\n throw new Error(method + \" must be the name of a property or function to execute\");\n }\n if (isString(method)) {\n return function () {\n var func = this[method];\n if (isFunction(func)) {\n var scopeArgs = args.concat(argsToArray(arguments));\n return spreadArgs(func, scopeArgs, this);\n } else {\n return func;\n }\n };\n } else {\n return function () {\n var scopeArgs = args.concat(argsToArray(arguments));\n return spreadArgs(method, scopeArgs, this);\n };\n }\n }\n\n function curryFunc(f, execute) {\n return function () {\n var args = argsToArray(arguments);\n return execute ? spreadArgs(f, arguments, this) : function () {\n return spreadArgs(f, args.concat(argsToArray(arguments)), this);\n };\n };\n }\n\n\n function curry(depth, cb, scope) {\n var f;\n if (scope) {\n f = hitch(scope, cb);\n } else {\n f = cb;\n }\n if (depth) {\n var len = depth - 1;\n for (var i = len; i >= 0; i--) {\n f = curryFunc(f, i === len);\n }\n }\n return f;\n }\n\n return extended\n .define(isObject, {\n bind: hitch,\n bindAll: hitchAll,\n bindIgnore: hitchIgnore,\n curry: function (scope, depth, fn) {\n return curry(depth, fn, scope);\n }\n })\n .define(isFunction, {\n bind: function (fn, obj) {\n return spreadArgs(hitch, [obj, fn].concat(argsToArray(arguments, 2)), this);\n },\n bindIgnore: function (fn, obj) {\n return spreadArgs(hitchIgnore, [obj, fn].concat(argsToArray(arguments, 2)), this);\n },\n partial: partial,\n applyFirst: applyFirst,\n curry: function (fn, num, scope) {\n return curry(num, fn, scope);\n },\n noWrap: {\n f: function () {\n return this.value();\n }\n }\n })\n .define(isString, {\n bind: function (str, scope) {\n return hitch(scope, str);\n },\n bindIgnore: function (str, scope) {\n return hitchIgnore(scope, str);\n },\n partial: partial,\n applyFirst: applyFirst,\n curry: function (fn, depth, scope) {\n return curry(depth, fn, scope);\n }\n })\n .expose({\n bind: hitch,\n bindAll: hitchAll,\n bindIgnore: hitchIgnore,\n partial: partial,\n applyFirst: applyFirst,\n curry: curry\n });\n\n }\n\n if (true) {\n if ( true && module.exports) {\n module.exports = defineFunction(__webpack_require__(/*! extended */ \"./build/cht-core-4-6/node_modules/extended/index.js\"), __webpack_require__(/*! is-extended */ \"./build/cht-core-4-6/node_modules/is-extended/index.js\"), __webpack_require__(/*! arguments-extended */ \"./build/cht-core-4-6/node_modules/arguments-extended/index.js\"));\n\n }\n } else {}\n\n}).call(this);\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/ht/index.js\":\n/*!*****************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/ht/index.js ***!\n \\*****************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n(function () {\n \"use strict\";\n\n function defineHt(_) {\n\n\n var hashFunction = function (key) {\n if (typeof key === \"string\") {\n return key;\n } else if (typeof key === \"object\") {\n return key.hashCode ? key.hashCode() : \"\" + key;\n } else {\n return \"\" + key;\n }\n };\n\n var Bucket = _.declare({\n\n instance: {\n\n constructor: function () {\n this.__entries = [];\n this.__keys = [];\n this.__values = [];\n },\n\n pushValue: function (key, value) {\n this.__keys.push(key);\n this.__values.push(value);\n this.__entries.push({key: key, value: value});\n return value;\n },\n\n remove: function (key) {\n var ret = null, map = this.__entries, val, keys = this.__keys, vals = this.__values;\n var i = map.length - 1;\n for (; i >= 0; i--) {\n if (!!(val = map[i]) && val.key === key) {\n map.splice(i, 1);\n keys.splice(i, 1);\n vals.splice(i, 1);\n return val.value;\n }\n }\n return ret;\n },\n\n \"set\": function (key, value) {\n var ret = null, map = this.__entries, vals = this.__values;\n var i = map.length - 1;\n for (; i >= 0; i--) {\n var val = map[i];\n if (val && key === val.key) {\n vals[i] = value;\n val.value = value;\n ret = value;\n break;\n }\n }\n if (!ret) {\n map.push({key: key, value: value});\n }\n return ret;\n },\n\n find: function (key) {\n var ret = null, map = this.__entries, val;\n var i = map.length - 1;\n for (; i >= 0; i--) {\n val = map[i];\n if (val && key === val.key) {\n ret = val.value;\n break;\n }\n }\n return ret;\n },\n\n getEntrySet: function () {\n return this.__entries;\n },\n\n getKeys: function () {\n return this.__keys;\n },\n\n getValues: function (arr) {\n return this.__values;\n }\n }\n });\n\n return _.declare({\n\n instance: {\n\n constructor: function () {\n this.__map = {};\n },\n\n entrySet: function () {\n var ret = [], map = this.__map;\n for (var i in map) {\n if (map.hasOwnProperty(i)) {\n ret = ret.concat(map[i].getEntrySet());\n }\n }\n return ret;\n },\n\n put: function (key, value) {\n var hash = hashFunction(key);\n var bucket = null;\n if (!(bucket = this.__map[hash])) {\n bucket = (this.__map[hash] = new Bucket());\n }\n bucket.pushValue(key, value);\n return value;\n },\n\n remove: function (key) {\n var hash = hashFunction(key), ret = null;\n var bucket = this.__map[hash];\n if (bucket) {\n ret = bucket.remove(key);\n }\n return ret;\n },\n\n \"get\": function (key) {\n var hash = hashFunction(key), ret = null, bucket;\n if (!!(bucket = this.__map[hash])) {\n ret = bucket.find(key);\n }\n return ret;\n },\n\n \"set\": function (key, value) {\n var hash = hashFunction(key), ret = null, bucket = null, map = this.__map;\n if (!!(bucket = map[hash])) {\n ret = bucket.set(key, value);\n } else {\n ret = (map[hash] = new Bucket()).pushValue(key, value);\n }\n return ret;\n },\n\n contains: function (key) {\n var hash = hashFunction(key), ret = false, bucket = null;\n if (!!(bucket = this.__map[hash])) {\n ret = !!(bucket.find(key));\n }\n return ret;\n },\n\n concat: function (hashTable) {\n if (hashTable instanceof this._static) {\n var ret = new this._static();\n var otherEntrySet = hashTable.entrySet().concat(this.entrySet());\n for (var i = otherEntrySet.length - 1; i >= 0; i--) {\n var e = otherEntrySet[i];\n ret.put(e.key, e.value);\n }\n return ret;\n } else {\n throw new TypeError(\"When joining hashtables the joining arg must be a HashTable\");\n }\n },\n\n filter: function (cb, scope) {\n var es = this.entrySet(), ret = new this._static();\n es = _.filter(es, cb, scope);\n for (var i = es.length - 1; i >= 0; i--) {\n var e = es[i];\n ret.put(e.key, e.value);\n }\n return ret;\n },\n\n forEach: function (cb, scope) {\n var es = this.entrySet();\n _.forEach(es, cb, scope);\n },\n\n every: function (cb, scope) {\n var es = this.entrySet();\n return _.every(es, cb, scope);\n },\n\n map: function (cb, scope) {\n var es = this.entrySet();\n return _.map(es, cb, scope);\n },\n\n some: function (cb, scope) {\n var es = this.entrySet();\n return _.some(es, cb, scope);\n },\n\n reduce: function (cb, scope) {\n var es = this.entrySet();\n return _.reduce(es, cb, scope);\n },\n\n reduceRight: function (cb, scope) {\n var es = this.entrySet();\n return _.reduceRight(es, cb, scope);\n },\n\n clear: function () {\n this.__map = {};\n },\n\n keys: function () {\n var ret = [], map = this.__map;\n for (var i in map) {\n //if (map.hasOwnProperty(i)) {\n ret = ret.concat(map[i].getKeys());\n //}\n }\n return ret;\n },\n\n values: function () {\n var ret = [], map = this.__map;\n for (var i in map) {\n //if (map.hasOwnProperty(i)) {\n ret = ret.concat(map[i].getValues());\n //}\n }\n return ret;\n },\n\n isEmpty: function () {\n return this.keys().length === 0;\n }\n }\n\n });\n\n\n }\n\n if (true) {\n if ( true && module.exports) {\n module.exports = defineHt(__webpack_require__(/*! extended */ \"./build/cht-core-4-6/node_modules/extended/index.js\")().register(\"declare\", __webpack_require__(/*! declare.js */ \"./build/cht-core-4-6/node_modules/declare.js/index.js\")).register(__webpack_require__(/*! is-extended */ \"./build/cht-core-4-6/node_modules/is-extended/index.js\")).register(__webpack_require__(/*! array-extended */ \"./build/cht-core-4-6/node_modules/array-extended/index.js\")));\n\n }\n } else {}\n\n}).call(this);\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/is-buffer/index.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/is-buffer/index.js ***!\n \\************************************************************/\n/***/ ((module) => {\n\n/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/is-extended/index.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/is-extended/index.js ***!\n \\**************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n(function () {\n \"use strict\";\n\n function defineIsa(extended) {\n\n var pSlice = Array.prototype.slice;\n\n var hasOwn = Object.prototype.hasOwnProperty;\n var toStr = Object.prototype.toString;\n\n function argsToArray(args, slice) {\n var i = -1, j = 0, l = args.length, ret = [];\n slice = slice || 0;\n i += slice;\n while (++i < l) {\n ret[j++] = args[i];\n }\n return ret;\n }\n\n function keys(obj) {\n var ret = [];\n for (var i in obj) {\n if (hasOwn.call(obj, i)) {\n ret.push(i);\n }\n }\n return ret;\n }\n\n //taken from node js assert.js\n //https://github.com/joyent/node/blob/master/lib/assert.js\n function deepEqual(actual, expected) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (typeof Buffer !== \"undefined\" && Buffer.isBuffer(actual) && Buffer.isBuffer(expected)) {\n if (actual.length !== expected.length) {\n return false;\n }\n for (var i = 0; i < actual.length; i++) {\n if (actual[i] !== expected[i]) {\n return false;\n }\n }\n return true;\n\n // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (isDate(actual) && isDate(expected)) {\n return actual.getTime() === expected.getTime();\n\n // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (isRegExp(actual) && isRegExp(expected)) {\n return actual.source === expected.source &&\n actual.global === expected.global &&\n actual.multiline === expected.multiline &&\n actual.lastIndex === expected.lastIndex &&\n actual.ignoreCase === expected.ignoreCase;\n\n // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (isString(actual) && isString(expected) && actual !== expected) {\n return false;\n } else if (typeof actual !== 'object' && typeof expected !== 'object') {\n return actual === expected;\n\n // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected);\n }\n }\n\n\n function objEquiv(a, b) {\n var key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) {\n return false;\n }\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) {\n return false;\n }\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b);\n }\n try {\n var ka = keys(a),\n kb = keys(b),\n i;\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length !== kb.length) {\n return false;\n }\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] !== kb[i]) {\n return false;\n }\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n return true;\n }\n\n\n var isFunction = function (obj) {\n return toStr.call(obj) === '[object Function]';\n };\n\n //ie hack\n if (\"undefined\" !== typeof window && !isFunction(window.alert)) {\n (function (alert) {\n isFunction = function (obj) {\n return toStr.call(obj) === '[object Function]' || obj === alert;\n };\n }(window.alert));\n }\n\n function isObject(obj) {\n var undef;\n return obj !== null && typeof obj === \"object\";\n }\n\n function isHash(obj) {\n var ret = isObject(obj);\n return ret && obj.constructor === Object && !obj.nodeType && !obj.setInterval;\n }\n\n function isEmpty(object) {\n if (isArguments(object)) {\n return object.length === 0;\n } else if (isObject(object)) {\n return keys(object).length === 0;\n } else if (isString(object) || isArray(object)) {\n return object.length === 0;\n }\n return true;\n }\n\n function isBoolean(obj) {\n return obj === true || obj === false || toStr.call(obj) === \"[object Boolean]\";\n }\n\n function isUndefined(obj) {\n return typeof obj === 'undefined';\n }\n\n function isDefined(obj) {\n return !isUndefined(obj);\n }\n\n function isUndefinedOrNull(obj) {\n return isUndefined(obj) || isNull(obj);\n }\n\n function isNull(obj) {\n return obj === null;\n }\n\n\n var isArguments = function _isArguments(object) {\n return toStr.call(object) === '[object Arguments]';\n };\n\n if (!isArguments(arguments)) {\n isArguments = function _isArguments(obj) {\n return !!(obj && hasOwn.call(obj, \"callee\"));\n };\n }\n\n\n function isInstanceOf(obj, clazz) {\n if (isFunction(clazz)) {\n return obj instanceof clazz;\n } else {\n return false;\n }\n }\n\n function isRegExp(obj) {\n return toStr.call(obj) === '[object RegExp]';\n }\n\n var isArray = Array.isArray || function isArray(obj) {\n return toStr.call(obj) === \"[object Array]\";\n };\n\n function isDate(obj) {\n return toStr.call(obj) === '[object Date]';\n }\n\n function isString(obj) {\n return toStr.call(obj) === '[object String]';\n }\n\n function isNumber(obj) {\n return toStr.call(obj) === '[object Number]';\n }\n\n function isTrue(obj) {\n return obj === true;\n }\n\n function isFalse(obj) {\n return obj === false;\n }\n\n function isNotNull(obj) {\n return !isNull(obj);\n }\n\n function isEq(obj, obj2) {\n /*jshint eqeqeq:false*/\n return obj == obj2;\n }\n\n function isNeq(obj, obj2) {\n /*jshint eqeqeq:false*/\n return obj != obj2;\n }\n\n function isSeq(obj, obj2) {\n return obj === obj2;\n }\n\n function isSneq(obj, obj2) {\n return obj !== obj2;\n }\n\n function isIn(obj, arr) {\n if ((isArray(arr) && Array.prototype.indexOf) || isString(arr)) {\n return arr.indexOf(obj) > -1;\n } else if (isArray(arr)) {\n for (var i = 0, l = arr.length; i < l; i++) {\n if (isEq(obj, arr[i])) {\n return true;\n }\n }\n }\n return false;\n }\n\n function isNotIn(obj, arr) {\n return !isIn(obj, arr);\n }\n\n function isLt(obj, obj2) {\n return obj < obj2;\n }\n\n function isLte(obj, obj2) {\n return obj <= obj2;\n }\n\n function isGt(obj, obj2) {\n return obj > obj2;\n }\n\n function isGte(obj, obj2) {\n return obj >= obj2;\n }\n\n function isLike(obj, reg) {\n if (isString(reg)) {\n return (\"\" + obj).match(reg) !== null;\n } else if (isRegExp(reg)) {\n return reg.test(obj);\n }\n return false;\n }\n\n function isNotLike(obj, reg) {\n return !isLike(obj, reg);\n }\n\n function contains(arr, obj) {\n return isIn(obj, arr);\n }\n\n function notContains(arr, obj) {\n return !isIn(obj, arr);\n }\n\n function containsAt(arr, obj, index) {\n if (isArray(arr) && arr.length > index) {\n return isEq(arr[index], obj);\n }\n return false;\n }\n\n function notContainsAt(arr, obj, index) {\n if (isArray(arr)) {\n return !isEq(arr[index], obj);\n }\n return false;\n }\n\n function has(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n function notHas(obj, prop) {\n return !has(obj, prop);\n }\n\n function length(obj, l) {\n if (has(obj, \"length\")) {\n return obj.length === l;\n }\n return false;\n }\n\n function notLength(obj, l) {\n if (has(obj, \"length\")) {\n return obj.length !== l;\n }\n return false;\n }\n\n var isa = {\n isFunction: isFunction,\n isObject: isObject,\n isEmpty: isEmpty,\n isHash: isHash,\n isNumber: isNumber,\n isString: isString,\n isDate: isDate,\n isArray: isArray,\n isBoolean: isBoolean,\n isUndefined: isUndefined,\n isDefined: isDefined,\n isUndefinedOrNull: isUndefinedOrNull,\n isNull: isNull,\n isArguments: isArguments,\n instanceOf: isInstanceOf,\n isRegExp: isRegExp,\n deepEqual: deepEqual,\n isTrue: isTrue,\n isFalse: isFalse,\n isNotNull: isNotNull,\n isEq: isEq,\n isNeq: isNeq,\n isSeq: isSeq,\n isSneq: isSneq,\n isIn: isIn,\n isNotIn: isNotIn,\n isLt: isLt,\n isLte: isLte,\n isGt: isGt,\n isGte: isGte,\n isLike: isLike,\n isNotLike: isNotLike,\n contains: contains,\n notContains: notContains,\n has: has,\n notHas: notHas,\n isLength: length,\n isNotLength: notLength,\n containsAt: containsAt,\n notContainsAt: notContainsAt\n };\n\n var tester = {\n constructor: function () {\n this._testers = [];\n },\n\n noWrap: {\n tester: function () {\n var testers = this._testers;\n return function tester(value) {\n var isa = false;\n for (var i = 0, l = testers.length; i < l && !isa; i++) {\n isa = testers[i](value);\n }\n return isa;\n };\n }\n }\n };\n\n var switcher = {\n constructor: function () {\n this._cases = [];\n this.__default = null;\n },\n\n def: function (val, fn) {\n this.__default = fn;\n },\n\n noWrap: {\n switcher: function () {\n var testers = this._cases, __default = this.__default;\n return function tester() {\n var handled = false, args = argsToArray(arguments), caseRet;\n for (var i = 0, l = testers.length; i < l && !handled; i++) {\n caseRet = testers[i](args);\n if (caseRet.length > 1) {\n if (caseRet[1] || caseRet[0]) {\n return caseRet[1];\n }\n }\n }\n if (!handled && __default) {\n return __default.apply(this, args);\n }\n };\n }\n }\n };\n\n function addToTester(func) {\n tester[func] = function isaTester() {\n this._testers.push(isa[func]);\n };\n }\n\n function addToSwitcher(func) {\n switcher[func] = function isaTester() {\n var args = argsToArray(arguments, 1), isFunc = isa[func], handler, doBreak = true;\n if (args.length <= isFunc.length - 1) {\n throw new TypeError(\"A handler must be defined when calling using switch\");\n } else {\n handler = args.pop();\n if (isBoolean(handler)) {\n doBreak = handler;\n handler = args.pop();\n }\n }\n if (!isFunction(handler)) {\n throw new TypeError(\"handler must be defined\");\n }\n this._cases.push(function (testArgs) {\n if (isFunc.apply(isa, testArgs.concat(args))) {\n return [doBreak, handler.apply(this, testArgs)];\n }\n return [false];\n });\n };\n }\n\n for (var i in isa) {\n if (hasOwn.call(isa, i)) {\n addToSwitcher(i);\n addToTester(i);\n }\n }\n\n var is = extended.define(isa).expose(isa);\n is.tester = extended.define(tester);\n is.switcher = extended.define(switcher);\n return is;\n\n }\n\n if (true) {\n if ( true && module.exports) {\n module.exports = defineIsa(__webpack_require__(/*! extended */ \"./build/cht-core-4-6/node_modules/extended/index.js\"));\n\n }\n } else {}\n\n}).call(this);\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/leafy/index.js\":\n/*!********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/leafy/index.js ***!\n \\********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n(function () {\n \"use strict\";\n\n function defineLeafy(_) {\n\n function compare(a, b) {\n var ret = 0;\n if (a > b) {\n return 1;\n } else if (a < b) {\n return -1;\n } else if (!b) {\n return 1;\n }\n return ret;\n }\n\n var multiply = _.multiply;\n\n var Tree = _.declare({\n\n instance: {\n\n /**\n * Prints a node\n * @param node node to print\n * @param level the current level the node is at, Used for formatting\n */\n __printNode: function (node, level) {\n //console.log(level);\n var str = [];\n if (_.isUndefinedOrNull(node)) {\n str.push(multiply('\\t', level));\n str.push(\"~\");\n console.log(str.join(\"\"));\n } else {\n this.__printNode(node.right, level + 1);\n str.push(multiply('\\t', level));\n str.push(node.data + \"\\n\");\n console.log(str.join(\"\"));\n this.__printNode(node.left, level + 1);\n }\n },\n\n constructor: function (options) {\n options = options || {};\n this.compare = options.compare || compare;\n this.__root = null;\n },\n\n insert: function () {\n throw new Error(\"Not Implemented\");\n },\n\n remove: function () {\n throw new Error(\"Not Implemented\");\n },\n\n clear: function () {\n this.__root = null;\n },\n\n isEmpty: function () {\n return !(this.__root);\n },\n\n traverseWithCondition: function (node, order, callback) {\n var cont = true;\n if (node) {\n order = order || Tree.PRE_ORDER;\n if (order === Tree.PRE_ORDER) {\n cont = callback(node.data);\n if (cont) {\n cont = this.traverseWithCondition(node.left, order, callback);\n if (cont) {\n cont = this.traverseWithCondition(node.right, order, callback);\n }\n\n }\n } else if (order === Tree.IN_ORDER) {\n cont = this.traverseWithCondition(node.left, order, callback);\n if (cont) {\n cont = callback(node.data);\n if (cont) {\n cont = this.traverseWithCondition(node.right, order, callback);\n }\n }\n } else if (order === Tree.POST_ORDER) {\n cont = this.traverseWithCondition(node.left, order, callback);\n if (cont) {\n if (cont) {\n cont = this.traverseWithCondition(node.right, order, callback);\n }\n if (cont) {\n cont = callback(node.data);\n }\n }\n } else if (order === Tree.REVERSE_ORDER) {\n cont = this.traverseWithCondition(node.right, order, callback);\n if (cont) {\n cont = callback(node.data);\n if (cont) {\n cont = this.traverseWithCondition(node.left, order, callback);\n }\n }\n }\n }\n return cont;\n },\n\n traverse: function (node, order, callback) {\n if (node) {\n order = order || Tree.PRE_ORDER;\n if (order === Tree.PRE_ORDER) {\n callback(node.data);\n this.traverse(node.left, order, callback);\n this.traverse(node.right, order, callback);\n } else if (order === Tree.IN_ORDER) {\n this.traverse(node.left, order, callback);\n callback(node.data);\n this.traverse(node.right, order, callback);\n } else if (order === Tree.POST_ORDER) {\n this.traverse(node.left, order, callback);\n this.traverse(node.right, order, callback);\n callback(node.data);\n } else if (order === Tree.REVERSE_ORDER) {\n this.traverse(node.right, order, callback);\n callback(node.data);\n this.traverse(node.left, order, callback);\n\n }\n }\n },\n\n forEach: function (cb, scope, order) {\n if (typeof cb !== \"function\") {\n throw new TypeError();\n }\n order = order || Tree.IN_ORDER;\n scope = scope || this;\n this.traverse(this.__root, order, function (node) {\n cb.call(scope, node, this);\n });\n },\n\n map: function (cb, scope, order) {\n if (typeof cb !== \"function\") {\n throw new TypeError();\n }\n\n order = order || Tree.IN_ORDER;\n scope = scope || this;\n var ret = new this._static();\n this.traverse(this.__root, order, function (node) {\n ret.insert(cb.call(scope, node, this));\n });\n return ret;\n },\n\n filter: function (cb, scope, order) {\n if (typeof cb !== \"function\") {\n throw new TypeError();\n }\n\n order = order || Tree.IN_ORDER;\n scope = scope || this;\n var ret = new this._static();\n this.traverse(this.__root, order, function (node) {\n if (cb.call(scope, node, this)) {\n ret.insert(node);\n }\n });\n return ret;\n },\n\n reduce: function (fun, accumulator, order) {\n var arr = this.toArray(order);\n var args = [arr, fun];\n if (!_.isUndefinedOrNull(accumulator)) {\n args.push(accumulator);\n }\n return _.reduce.apply(_, args);\n },\n\n reduceRight: function (fun, accumulator, order) {\n var arr = this.toArray(order);\n var args = [arr, fun];\n if (!_.isUndefinedOrNull(accumulator)) {\n args.push(accumulator);\n }\n return _.reduceRight.apply(_, args);\n },\n\n every: function (cb, scope, order) {\n if (typeof cb !== \"function\") {\n throw new TypeError();\n }\n order = order || Tree.IN_ORDER;\n scope = scope || this;\n var ret = false;\n this.traverseWithCondition(this.__root, order, function (node) {\n ret = cb.call(scope, node, this);\n return ret;\n });\n return ret;\n },\n\n some: function (cb, scope, order) {\n if (typeof cb !== \"function\") {\n throw new TypeError();\n }\n\n order = order || Tree.IN_ORDER;\n scope = scope || this;\n var ret;\n this.traverseWithCondition(this.__root, order, function (node) {\n ret = cb.call(scope, node, this);\n return !ret;\n });\n return ret;\n },\n\n toArray: function (order) {\n order = order || Tree.IN_ORDER;\n var arr = [];\n this.traverse(this.__root, order, function (node) {\n arr.push(node);\n });\n return arr;\n },\n\n contains: function (value) {\n var ret = false;\n var root = this.__root;\n while (root !== null) {\n var cmp = this.compare(value, root.data);\n if (cmp) {\n root = root[(cmp === -1) ? \"left\" : \"right\"];\n } else {\n ret = true;\n root = null;\n }\n }\n return ret;\n },\n\n find: function (value) {\n var ret;\n var root = this.__root;\n while (root) {\n var cmp = this.compare(value, root.data);\n if (cmp) {\n root = root[(cmp === -1) ? \"left\" : \"right\"];\n } else {\n ret = root.data;\n break;\n }\n }\n return ret;\n },\n\n findLessThan: function (value, exclusive) {\n //find a better way!!!!\n var ret = [], compare = this.compare;\n this.traverseWithCondition(this.__root, Tree.IN_ORDER, function (v) {\n var cmp = compare(value, v);\n if ((!exclusive && cmp === 0) || cmp === 1) {\n ret.push(v);\n return true;\n } else {\n return false;\n }\n });\n return ret;\n },\n\n findGreaterThan: function (value, exclusive) {\n //find a better way!!!!\n var ret = [], compare = this.compare;\n this.traverse(this.__root, Tree.REVERSE_ORDER, function (v) {\n var cmp = compare(value, v);\n if ((!exclusive && cmp === 0) || cmp === -1) {\n ret.push(v);\n return true;\n } else {\n return false;\n }\n });\n return ret;\n },\n\n print: function () {\n this.__printNode(this.__root, 0);\n }\n },\n\n \"static\": {\n PRE_ORDER: \"pre_order\",\n IN_ORDER: \"in_order\",\n POST_ORDER: \"post_order\",\n REVERSE_ORDER: \"reverse_order\"\n }\n });\n\n var AVLTree = (function () {\n var abs = Math.abs;\n\n\n var makeNode = function (data) {\n return {\n data: data,\n balance: 0,\n left: null,\n right: null\n };\n };\n\n var rotateSingle = function (root, dir, otherDir) {\n var save = root[otherDir];\n root[otherDir] = save[dir];\n save[dir] = root;\n return save;\n };\n\n\n var rotateDouble = function (root, dir, otherDir) {\n root[otherDir] = rotateSingle(root[otherDir], otherDir, dir);\n return rotateSingle(root, dir, otherDir);\n };\n\n var adjustBalance = function (root, dir, bal) {\n var otherDir = dir === \"left\" ? \"right\" : \"left\";\n var n = root[dir], nn = n[otherDir];\n if (nn.balance === 0) {\n root.balance = n.balance = 0;\n } else if (nn.balance === bal) {\n root.balance = -bal;\n n.balance = 0;\n } else { /* nn.balance == -bal */\n root.balance = 0;\n n.balance = bal;\n }\n nn.balance = 0;\n };\n\n var insertAdjustBalance = function (root, dir) {\n var otherDir = dir === \"left\" ? \"right\" : \"left\";\n\n var n = root[dir];\n var bal = dir === \"right\" ? -1 : +1;\n\n if (n.balance === bal) {\n root.balance = n.balance = 0;\n root = rotateSingle(root, otherDir, dir);\n } else {\n adjustBalance(root, dir, bal);\n root = rotateDouble(root, otherDir, dir);\n }\n\n return root;\n\n };\n\n var removeAdjustBalance = function (root, dir, done) {\n var otherDir = dir === \"left\" ? \"right\" : \"left\";\n var n = root[otherDir];\n var bal = dir === \"right\" ? -1 : 1;\n if (n.balance === -bal) {\n root.balance = n.balance = 0;\n root = rotateSingle(root, dir, otherDir);\n } else if (n.balance === bal) {\n adjustBalance(root, otherDir, -bal);\n root = rotateDouble(root, dir, otherDir);\n } else { /* n.balance == 0 */\n root.balance = -bal;\n n.balance = bal;\n root = rotateSingle(root, dir, otherDir);\n done.done = true;\n }\n return root;\n };\n\n function insert(tree, data, cmp) {\n /* Empty tree case */\n var root = tree.__root;\n if (root === null || root === undefined) {\n tree.__root = makeNode(data);\n } else {\n var it = root, upd = [], up = [], top = 0, dir;\n while (true) {\n dir = upd[top] = cmp(data, it.data) === -1 ? \"left\" : \"right\";\n up[top++] = it;\n if (!it[dir]) {\n it[dir] = makeNode(data);\n break;\n }\n it = it[dir];\n }\n if (!it[dir]) {\n return null;\n }\n while (--top >= 0) {\n up[top].balance += upd[top] === \"right\" ? -1 : 1;\n if (up[top].balance === 0) {\n break;\n } else if (abs(up[top].balance) > 1) {\n up[top] = insertAdjustBalance(up[top], upd[top]);\n if (top !== 0) {\n up[top - 1][upd[top - 1]] = up[top];\n } else {\n tree.__root = up[0];\n }\n break;\n }\n }\n }\n }\n\n function remove(tree, data, cmp) {\n var root = tree.__root;\n if (root !== null && root !== undefined) {\n var it = root, top = 0, up = [], upd = [], done = {done: false}, dir, compare;\n while (true) {\n if (!it) {\n return;\n } else if ((compare = cmp(data, it.data)) === 0) {\n break;\n }\n dir = upd[top] = compare === -1 ? \"left\" : \"right\";\n up[top++] = it;\n it = it[dir];\n }\n var l = it.left, r = it.right;\n if (!l || !r) {\n dir = !l ? \"right\" : \"left\";\n if (top !== 0) {\n up[top - 1][upd[top - 1]] = it[dir];\n } else {\n tree.__root = it[dir];\n }\n } else {\n var heir = l;\n upd[top] = \"left\";\n up[top++] = it;\n while (heir.right) {\n upd[top] = \"right\";\n up[top++] = heir;\n heir = heir.right;\n }\n it.data = heir.data;\n up[top - 1][up[top - 1] === it ? \"left\" : \"right\"] = heir.left;\n }\n while (--top >= 0 && !done.done) {\n up[top].balance += upd[top] === \"left\" ? -1 : +1;\n if (abs(up[top].balance) === 1) {\n break;\n } else if (abs(up[top].balance) > 1) {\n up[top] = removeAdjustBalance(up[top], upd[top], done);\n if (top !== 0) {\n up[top - 1][upd[top - 1]] = up[top];\n } else {\n tree.__root = up[0];\n }\n }\n }\n }\n }\n\n\n return Tree.extend({\n instance: {\n\n insert: function (data) {\n insert(this, data, this.compare);\n },\n\n\n remove: function (data) {\n remove(this, data, this.compare);\n },\n\n __printNode: function (node, level) {\n var str = [];\n if (!node) {\n str.push(multiply('\\t', level));\n str.push(\"~\");\n console.log(str.join(\"\"));\n } else {\n this.__printNode(node.right, level + 1);\n str.push(multiply('\\t', level));\n str.push(node.data + \":\" + node.balance + \"\\n\");\n console.log(str.join(\"\"));\n this.__printNode(node.left, level + 1);\n }\n }\n\n }\n });\n }());\n\n var AnderssonTree = (function () {\n\n var nil = {level: 0, data: null};\n\n function makeNode(data, level) {\n return {\n data: data,\n level: level,\n left: nil,\n right: nil\n };\n }\n\n function skew(root) {\n if (root.level !== 0 && root.left.level === root.level) {\n var save = root.left;\n root.left = save.right;\n save.right = root;\n root = save;\n }\n return root;\n }\n\n function split(root) {\n if (root.level !== 0 && root.right.right.level === root.level) {\n var save = root.right;\n root.right = save.left;\n save.left = root;\n root = save;\n root.level++;\n }\n return root;\n }\n\n function insert(root, data, compare) {\n if (root === nil) {\n root = makeNode(data, 1);\n }\n else {\n var dir = compare(data, root.data) === -1 ? \"left\" : \"right\";\n root[dir] = insert(root[dir], data, compare);\n root = skew(root);\n root = split(root);\n }\n return root;\n }\n\n var remove = function (root, data, compare) {\n var rLeft, rRight;\n if (root !== nil) {\n var cmp = compare(data, root.data);\n if (cmp === 0) {\n rLeft = root.left, rRight = root.right;\n if (rLeft !== nil && rRight !== nil) {\n var heir = rLeft;\n while (heir.right !== nil) {\n heir = heir.right;\n }\n root.data = heir.data;\n root.left = remove(rLeft, heir.data, compare);\n } else {\n root = root[rLeft === nil ? \"right\" : \"left\"];\n }\n } else {\n var dir = cmp === -1 ? \"left\" : \"right\";\n root[dir] = remove(root[dir], data, compare);\n }\n }\n if (root !== nil) {\n var rLevel = root.level;\n var rLeftLevel = root.left.level, rRightLevel = root.right.level;\n if (rLeftLevel < rLevel - 1 || rRightLevel < rLevel - 1) {\n if (rRightLevel > --root.level) {\n root.right.level = root.level;\n }\n root = skew(root);\n root = split(root);\n }\n }\n return root;\n };\n\n return Tree.extend({\n\n instance: {\n\n isEmpty: function () {\n return this.__root === nil || this._super(arguments);\n },\n\n insert: function (data) {\n if (!this.__root) {\n this.__root = nil;\n }\n this.__root = insert(this.__root, data, this.compare);\n },\n\n remove: function (data) {\n this.__root = remove(this.__root, data, this.compare);\n },\n\n\n traverseWithCondition: function (node) {\n var cont = true;\n if (node !== nil) {\n return this._super(arguments);\n }\n return cont;\n },\n\n\n traverse: function (node) {\n if (node !== nil) {\n this._super(arguments);\n }\n },\n\n contains: function () {\n if (this.__root !== nil) {\n return this._super(arguments);\n }\n return false;\n },\n\n __printNode: function (node, level) {\n var str = [];\n if (!node || !node.data) {\n str.push(multiply('\\t', level));\n str.push(\"~\");\n console.log(str.join(\"\"));\n } else {\n this.__printNode(node.right, level + 1);\n str.push(multiply('\\t', level));\n str.push(node.data + \":\" + node.level + \"\\n\");\n console.log(str.join(\"\"));\n this.__printNode(node.left, level + 1);\n }\n }\n\n }\n\n });\n }());\n\n var BinaryTree = Tree.extend({\n instance: {\n insert: function (data) {\n if (!this.__root) {\n this.__root = {\n data: data,\n parent: null,\n left: null,\n right: null\n };\n return this.__root;\n }\n var compare = this.compare;\n var root = this.__root;\n while (root !== null) {\n var cmp = compare(data, root.data);\n if (cmp) {\n var leaf = (cmp === -1) ? \"left\" : \"right\";\n var next = root[leaf];\n if (!next) {\n return (root[leaf] = {data: data, parent: root, left: null, right: null});\n } else {\n root = next;\n }\n } else {\n return;\n }\n }\n },\n\n remove: function (data) {\n if (this.__root !== null) {\n var head = {right: this.__root}, it = head;\n var p, f = null;\n var dir = \"right\";\n while (it[dir] !== null) {\n p = it;\n it = it[dir];\n var cmp = this.compare(data, it.data);\n if (!cmp) {\n f = it;\n }\n dir = (cmp === -1 ? \"left\" : \"right\");\n }\n if (f !== null) {\n f.data = it.data;\n p[p.right === it ? \"right\" : \"left\"] = it[it.left === null ? \"right\" : \"left\"];\n }\n this.__root = head.right;\n }\n\n }\n }\n });\n\n var RedBlackTree = (function () {\n var RED = \"RED\", BLACK = \"BLACK\";\n\n var isRed = function (node) {\n return node !== null && node.red;\n };\n\n var makeNode = function (data) {\n return {\n data: data,\n red: true,\n left: null,\n right: null\n };\n };\n\n var insert = function (root, data, compare) {\n if (!root) {\n return makeNode(data);\n\n } else {\n var cmp = compare(data, root.data);\n if (cmp) {\n var dir = cmp === -1 ? \"left\" : \"right\";\n var otherDir = dir === \"left\" ? \"right\" : \"left\";\n root[dir] = insert(root[dir], data, compare);\n var node = root[dir];\n\n if (isRed(node)) {\n\n var sibling = root[otherDir];\n if (isRed(sibling)) {\n /* Case 1 */\n root.red = true;\n node.red = false;\n sibling.red = false;\n } else {\n\n if (isRed(node[dir])) {\n\n root = rotateSingle(root, otherDir);\n } else if (isRed(node[otherDir])) {\n\n root = rotateDouble(root, otherDir);\n }\n }\n\n }\n }\n }\n return root;\n };\n\n var rotateSingle = function (root, dir) {\n var otherDir = dir === \"left\" ? \"right\" : \"left\";\n var save = root[otherDir];\n root[otherDir] = save[dir];\n save[dir] = root;\n root.red = true;\n save.red = false;\n return save;\n };\n\n var rotateDouble = function (root, dir) {\n var otherDir = dir === \"left\" ? \"right\" : \"left\";\n root[otherDir] = rotateSingle(root[otherDir], otherDir);\n return rotateSingle(root, dir);\n };\n\n\n var remove = function (root, data, done, compare) {\n if (!root) {\n done.done = true;\n } else {\n var dir;\n if (compare(data, root.data) === 0) {\n if (!root.left || !root.right) {\n var save = root[!root.left ? \"right\" : \"left\"];\n /* Case 0 */\n if (isRed(root)) {\n done.done = true;\n } else if (isRed(save)) {\n save.red = false;\n done.done = true;\n }\n return save;\n }\n else {\n var heir = root.right, p;\n while (heir.left !== null) {\n p = heir;\n heir = heir.left;\n }\n if (p) {\n p.left = null;\n }\n root.data = heir.data;\n data = heir.data;\n }\n }\n dir = compare(data, root.data) === -1 ? \"left\" : \"right\";\n root[dir] = remove(root[dir], data, done, compare);\n if (!done.done) {\n root = removeBalance(root, dir, done);\n }\n }\n return root;\n };\n\n var removeBalance = function (root, dir, done) {\n var notDir = dir === \"left\" ? \"right\" : \"left\";\n var p = root, s = p[notDir];\n if (isRed(s)) {\n root = rotateSingle(root, dir);\n s = p[notDir];\n }\n if (s !== null) {\n if (!isRed(s.left) && !isRed(s.right)) {\n if (isRed(p)) {\n done.done = true;\n }\n p.red = 0;\n s.red = 1;\n } else {\n var save = p.red, newRoot = ( root === p );\n p = (isRed(s[notDir]) ? rotateSingle : rotateDouble)(p, dir);\n p.red = save;\n p.left.red = p.right.red = 0;\n if (newRoot) {\n root = p;\n } else {\n root[dir] = p;\n }\n done.done = true;\n }\n }\n return root;\n };\n\n return Tree.extend({\n instance: {\n insert: function (data) {\n this.__root = insert(this.__root, data, this.compare);\n this.__root.red = false;\n },\n\n remove: function (data) {\n var done = {done: false};\n var root = remove(this.__root, data, done, this.compare);\n if (root !== null) {\n root.red = 0;\n }\n this.__root = root;\n return data;\n },\n\n\n __printNode: function (node, level) {\n var str = [];\n if (!node) {\n str.push(multiply('\\t', level));\n str.push(\"~\");\n console.log(str.join(\"\"));\n } else {\n this.__printNode(node.right, level + 1);\n str.push(multiply('\\t', level));\n str.push((node.red ? RED : BLACK) + \":\" + node.data + \"\\n\");\n console.log(str.join(\"\"));\n this.__printNode(node.left, level + 1);\n }\n }\n\n }\n });\n\n }());\n\n\n return {\n Tree: Tree,\n AVLTree: AVLTree,\n AnderssonTree: AnderssonTree,\n BinaryTree: BinaryTree,\n RedBlackTree: RedBlackTree,\n IN_ORDER: Tree.IN_ORDER,\n PRE_ORDER: Tree.PRE_ORDER,\n POST_ORDER: Tree.POST_ORDER,\n REVERSE_ORDER: Tree.REVERSE_ORDER\n\n };\n }\n\n if (true) {\n if ( true && module.exports) {\n module.exports = defineLeafy(__webpack_require__(/*! extended */ \"./build/cht-core-4-6/node_modules/extended/index.js\")()\n .register(\"declare\", __webpack_require__(/*! declare.js */ \"./build/cht-core-4-6/node_modules/declare.js/index.js\"))\n .register(__webpack_require__(/*! is-extended */ \"./build/cht-core-4-6/node_modules/is-extended/index.js\"))\n .register(__webpack_require__(/*! array-extended */ \"./build/cht-core-4-6/node_modules/array-extended/index.js\"))\n .register(__webpack_require__(/*! string-extended */ \"./build/cht-core-4-6/node_modules/string-extended/index.js\"))\n );\n\n }\n } else {}\n\n}).call(this);\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_DataView.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_DataView.js ***!\n \\*************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar getNative = __webpack_require__(/*! ./_getNative */ \"./build/cht-core-4-6/node_modules/lodash/_getNative.js\"),\n root = __webpack_require__(/*! ./_root */ \"./build/cht-core-4-6/node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_Hash.js\":\n/*!*********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_Hash.js ***!\n \\*********************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar hashClear = __webpack_require__(/*! ./_hashClear */ \"./build/cht-core-4-6/node_modules/lodash/_hashClear.js\"),\n hashDelete = __webpack_require__(/*! ./_hashDelete */ \"./build/cht-core-4-6/node_modules/lodash/_hashDelete.js\"),\n hashGet = __webpack_require__(/*! ./_hashGet */ \"./build/cht-core-4-6/node_modules/lodash/_hashGet.js\"),\n hashHas = __webpack_require__(/*! ./_hashHas */ \"./build/cht-core-4-6/node_modules/lodash/_hashHas.js\"),\n hashSet = __webpack_require__(/*! ./_hashSet */ \"./build/cht-core-4-6/node_modules/lodash/_hashSet.js\");\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_ListCache.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_ListCache.js ***!\n \\**************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar listCacheClear = __webpack_require__(/*! ./_listCacheClear */ \"./build/cht-core-4-6/node_modules/lodash/_listCacheClear.js\"),\n listCacheDelete = __webpack_require__(/*! ./_listCacheDelete */ \"./build/cht-core-4-6/node_modules/lodash/_listCacheDelete.js\"),\n listCacheGet = __webpack_require__(/*! ./_listCacheGet */ \"./build/cht-core-4-6/node_modules/lodash/_listCacheGet.js\"),\n listCacheHas = __webpack_require__(/*! ./_listCacheHas */ \"./build/cht-core-4-6/node_modules/lodash/_listCacheHas.js\"),\n listCacheSet = __webpack_require__(/*! ./_listCacheSet */ \"./build/cht-core-4-6/node_modules/lodash/_listCacheSet.js\");\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_Map.js\":\n/*!********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_Map.js ***!\n \\********************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar getNative = __webpack_require__(/*! ./_getNative */ \"./build/cht-core-4-6/node_modules/lodash/_getNative.js\"),\n root = __webpack_require__(/*! ./_root */ \"./build/cht-core-4-6/node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_MapCache.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_MapCache.js ***!\n \\*************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar mapCacheClear = __webpack_require__(/*! ./_mapCacheClear */ \"./build/cht-core-4-6/node_modules/lodash/_mapCacheClear.js\"),\n mapCacheDelete = __webpack_require__(/*! ./_mapCacheDelete */ \"./build/cht-core-4-6/node_modules/lodash/_mapCacheDelete.js\"),\n mapCacheGet = __webpack_require__(/*! ./_mapCacheGet */ \"./build/cht-core-4-6/node_modules/lodash/_mapCacheGet.js\"),\n mapCacheHas = __webpack_require__(/*! ./_mapCacheHas */ \"./build/cht-core-4-6/node_modules/lodash/_mapCacheHas.js\"),\n mapCacheSet = __webpack_require__(/*! ./_mapCacheSet */ \"./build/cht-core-4-6/node_modules/lodash/_mapCacheSet.js\");\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_Promise.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_Promise.js ***!\n \\************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar getNative = __webpack_require__(/*! ./_getNative */ \"./build/cht-core-4-6/node_modules/lodash/_getNative.js\"),\n root = __webpack_require__(/*! ./_root */ \"./build/cht-core-4-6/node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_Set.js\":\n/*!********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_Set.js ***!\n \\********************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar getNative = __webpack_require__(/*! ./_getNative */ \"./build/cht-core-4-6/node_modules/lodash/_getNative.js\"),\n root = __webpack_require__(/*! ./_root */ \"./build/cht-core-4-6/node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_SetCache.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_SetCache.js ***!\n \\*************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar MapCache = __webpack_require__(/*! ./_MapCache */ \"./build/cht-core-4-6/node_modules/lodash/_MapCache.js\"),\n setCacheAdd = __webpack_require__(/*! ./_setCacheAdd */ \"./build/cht-core-4-6/node_modules/lodash/_setCacheAdd.js\"),\n setCacheHas = __webpack_require__(/*! ./_setCacheHas */ \"./build/cht-core-4-6/node_modules/lodash/_setCacheHas.js\");\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_Stack.js\":\n/*!**********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_Stack.js ***!\n \\**********************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar ListCache = __webpack_require__(/*! ./_ListCache */ \"./build/cht-core-4-6/node_modules/lodash/_ListCache.js\"),\n stackClear = __webpack_require__(/*! ./_stackClear */ \"./build/cht-core-4-6/node_modules/lodash/_stackClear.js\"),\n stackDelete = __webpack_require__(/*! ./_stackDelete */ \"./build/cht-core-4-6/node_modules/lodash/_stackDelete.js\"),\n stackGet = __webpack_require__(/*! ./_stackGet */ \"./build/cht-core-4-6/node_modules/lodash/_stackGet.js\"),\n stackHas = __webpack_require__(/*! ./_stackHas */ \"./build/cht-core-4-6/node_modules/lodash/_stackHas.js\"),\n stackSet = __webpack_require__(/*! ./_stackSet */ \"./build/cht-core-4-6/node_modules/lodash/_stackSet.js\");\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_Symbol.js\":\n/*!***********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_Symbol.js ***!\n \\***********************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar root = __webpack_require__(/*! ./_root */ \"./build/cht-core-4-6/node_modules/lodash/_root.js\");\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_Uint8Array.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_Uint8Array.js ***!\n \\***************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar root = __webpack_require__(/*! ./_root */ \"./build/cht-core-4-6/node_modules/lodash/_root.js\");\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_WeakMap.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_WeakMap.js ***!\n \\************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar getNative = __webpack_require__(/*! ./_getNative */ \"./build/cht-core-4-6/node_modules/lodash/_getNative.js\"),\n root = __webpack_require__(/*! ./_root */ \"./build/cht-core-4-6/node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_arrayFilter.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_arrayFilter.js ***!\n \\****************************************************************/\n/***/ ((module) => {\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_arrayIncludes.js\":\n/*!******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_arrayIncludes.js ***!\n \\******************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseIndexOf = __webpack_require__(/*! ./_baseIndexOf */ \"./build/cht-core-4-6/node_modules/lodash/_baseIndexOf.js\");\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_arrayIncludesWith.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_arrayIncludesWith.js ***!\n \\**********************************************************************/\n/***/ ((module) => {\n\n/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_arrayLikeKeys.js\":\n/*!******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_arrayLikeKeys.js ***!\n \\******************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseTimes = __webpack_require__(/*! ./_baseTimes */ \"./build/cht-core-4-6/node_modules/lodash/_baseTimes.js\"),\n isArguments = __webpack_require__(/*! ./isArguments */ \"./build/cht-core-4-6/node_modules/lodash/isArguments.js\"),\n isArray = __webpack_require__(/*! ./isArray */ \"./build/cht-core-4-6/node_modules/lodash/isArray.js\"),\n isBuffer = __webpack_require__(/*! ./isBuffer */ \"./build/cht-core-4-6/node_modules/lodash/isBuffer.js\"),\n isIndex = __webpack_require__(/*! ./_isIndex */ \"./build/cht-core-4-6/node_modules/lodash/_isIndex.js\"),\n isTypedArray = __webpack_require__(/*! ./isTypedArray */ \"./build/cht-core-4-6/node_modules/lodash/isTypedArray.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_arrayMap.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_arrayMap.js ***!\n \\*************************************************************/\n/***/ ((module) => {\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_arrayPush.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_arrayPush.js ***!\n \\**************************************************************/\n/***/ ((module) => {\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_arraySome.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_arraySome.js ***!\n \\**************************************************************/\n/***/ ((module) => {\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_assocIndexOf.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_assocIndexOf.js ***!\n \\*****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar eq = __webpack_require__(/*! ./eq */ \"./build/cht-core-4-6/node_modules/lodash/eq.js\");\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseFindIndex.js\":\n/*!******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseFindIndex.js ***!\n \\******************************************************************/\n/***/ ((module) => {\n\n/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseGet.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseGet.js ***!\n \\************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar castPath = __webpack_require__(/*! ./_castPath */ \"./build/cht-core-4-6/node_modules/lodash/_castPath.js\"),\n toKey = __webpack_require__(/*! ./_toKey */ \"./build/cht-core-4-6/node_modules/lodash/_toKey.js\");\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseGetAllKeys.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseGetAllKeys.js ***!\n \\*******************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar arrayPush = __webpack_require__(/*! ./_arrayPush */ \"./build/cht-core-4-6/node_modules/lodash/_arrayPush.js\"),\n isArray = __webpack_require__(/*! ./isArray */ \"./build/cht-core-4-6/node_modules/lodash/isArray.js\");\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js ***!\n \\***************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar Symbol = __webpack_require__(/*! ./_Symbol */ \"./build/cht-core-4-6/node_modules/lodash/_Symbol.js\"),\n getRawTag = __webpack_require__(/*! ./_getRawTag */ \"./build/cht-core-4-6/node_modules/lodash/_getRawTag.js\"),\n objectToString = __webpack_require__(/*! ./_objectToString */ \"./build/cht-core-4-6/node_modules/lodash/_objectToString.js\");\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseHasIn.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseHasIn.js ***!\n \\**************************************************************/\n/***/ ((module) => {\n\n/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseIndexOf.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseIndexOf.js ***!\n \\****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseFindIndex = __webpack_require__(/*! ./_baseFindIndex */ \"./build/cht-core-4-6/node_modules/lodash/_baseFindIndex.js\"),\n baseIsNaN = __webpack_require__(/*! ./_baseIsNaN */ \"./build/cht-core-4-6/node_modules/lodash/_baseIsNaN.js\"),\n strictIndexOf = __webpack_require__(/*! ./_strictIndexOf */ \"./build/cht-core-4-6/node_modules/lodash/_strictIndexOf.js\");\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseIsArguments.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsArguments.js ***!\n \\********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js\"),\n isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./build/cht-core-4-6/node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseIsEqual.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsEqual.js ***!\n \\****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseIsEqualDeep = __webpack_require__(/*! ./_baseIsEqualDeep */ \"./build/cht-core-4-6/node_modules/lodash/_baseIsEqualDeep.js\"),\n isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./build/cht-core-4-6/node_modules/lodash/isObjectLike.js\");\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseIsEqualDeep.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsEqualDeep.js ***!\n \\********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar Stack = __webpack_require__(/*! ./_Stack */ \"./build/cht-core-4-6/node_modules/lodash/_Stack.js\"),\n equalArrays = __webpack_require__(/*! ./_equalArrays */ \"./build/cht-core-4-6/node_modules/lodash/_equalArrays.js\"),\n equalByTag = __webpack_require__(/*! ./_equalByTag */ \"./build/cht-core-4-6/node_modules/lodash/_equalByTag.js\"),\n equalObjects = __webpack_require__(/*! ./_equalObjects */ \"./build/cht-core-4-6/node_modules/lodash/_equalObjects.js\"),\n getTag = __webpack_require__(/*! ./_getTag */ \"./build/cht-core-4-6/node_modules/lodash/_getTag.js\"),\n isArray = __webpack_require__(/*! ./isArray */ \"./build/cht-core-4-6/node_modules/lodash/isArray.js\"),\n isBuffer = __webpack_require__(/*! ./isBuffer */ \"./build/cht-core-4-6/node_modules/lodash/isBuffer.js\"),\n isTypedArray = __webpack_require__(/*! ./isTypedArray */ \"./build/cht-core-4-6/node_modules/lodash/isTypedArray.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseIsMatch.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsMatch.js ***!\n \\****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar Stack = __webpack_require__(/*! ./_Stack */ \"./build/cht-core-4-6/node_modules/lodash/_Stack.js\"),\n baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ \"./build/cht-core-4-6/node_modules/lodash/_baseIsEqual.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseIsNaN.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsNaN.js ***!\n \\**************************************************************/\n/***/ ((module) => {\n\n/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseIsNative.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsNative.js ***!\n \\*****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar isFunction = __webpack_require__(/*! ./isFunction */ \"./build/cht-core-4-6/node_modules/lodash/isFunction.js\"),\n isMasked = __webpack_require__(/*! ./_isMasked */ \"./build/cht-core-4-6/node_modules/lodash/_isMasked.js\"),\n isObject = __webpack_require__(/*! ./isObject */ \"./build/cht-core-4-6/node_modules/lodash/isObject.js\"),\n toSource = __webpack_require__(/*! ./_toSource */ \"./build/cht-core-4-6/node_modules/lodash/_toSource.js\");\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseIsTypedArray.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsTypedArray.js ***!\n \\*********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js\"),\n isLength = __webpack_require__(/*! ./isLength */ \"./build/cht-core-4-6/node_modules/lodash/isLength.js\"),\n isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./build/cht-core-4-6/node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseIteratee.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseIteratee.js ***!\n \\*****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseMatches = __webpack_require__(/*! ./_baseMatches */ \"./build/cht-core-4-6/node_modules/lodash/_baseMatches.js\"),\n baseMatchesProperty = __webpack_require__(/*! ./_baseMatchesProperty */ \"./build/cht-core-4-6/node_modules/lodash/_baseMatchesProperty.js\"),\n identity = __webpack_require__(/*! ./identity */ \"./build/cht-core-4-6/node_modules/lodash/identity.js\"),\n isArray = __webpack_require__(/*! ./isArray */ \"./build/cht-core-4-6/node_modules/lodash/isArray.js\"),\n property = __webpack_require__(/*! ./property */ \"./build/cht-core-4-6/node_modules/lodash/property.js\");\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseKeys.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseKeys.js ***!\n \\*************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar isPrototype = __webpack_require__(/*! ./_isPrototype */ \"./build/cht-core-4-6/node_modules/lodash/_isPrototype.js\"),\n nativeKeys = __webpack_require__(/*! ./_nativeKeys */ \"./build/cht-core-4-6/node_modules/lodash/_nativeKeys.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseMatches.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseMatches.js ***!\n \\****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseIsMatch = __webpack_require__(/*! ./_baseIsMatch */ \"./build/cht-core-4-6/node_modules/lodash/_baseIsMatch.js\"),\n getMatchData = __webpack_require__(/*! ./_getMatchData */ \"./build/cht-core-4-6/node_modules/lodash/_getMatchData.js\"),\n matchesStrictComparable = __webpack_require__(/*! ./_matchesStrictComparable */ \"./build/cht-core-4-6/node_modules/lodash/_matchesStrictComparable.js\");\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseMatchesProperty.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseMatchesProperty.js ***!\n \\************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ \"./build/cht-core-4-6/node_modules/lodash/_baseIsEqual.js\"),\n get = __webpack_require__(/*! ./get */ \"./build/cht-core-4-6/node_modules/lodash/get.js\"),\n hasIn = __webpack_require__(/*! ./hasIn */ \"./build/cht-core-4-6/node_modules/lodash/hasIn.js\"),\n isKey = __webpack_require__(/*! ./_isKey */ \"./build/cht-core-4-6/node_modules/lodash/_isKey.js\"),\n isStrictComparable = __webpack_require__(/*! ./_isStrictComparable */ \"./build/cht-core-4-6/node_modules/lodash/_isStrictComparable.js\"),\n matchesStrictComparable = __webpack_require__(/*! ./_matchesStrictComparable */ \"./build/cht-core-4-6/node_modules/lodash/_matchesStrictComparable.js\"),\n toKey = __webpack_require__(/*! ./_toKey */ \"./build/cht-core-4-6/node_modules/lodash/_toKey.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseProperty.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseProperty.js ***!\n \\*****************************************************************/\n/***/ ((module) => {\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_basePropertyDeep.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_basePropertyDeep.js ***!\n \\*********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseGet = __webpack_require__(/*! ./_baseGet */ \"./build/cht-core-4-6/node_modules/lodash/_baseGet.js\");\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseTimes.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseTimes.js ***!\n \\**************************************************************/\n/***/ ((module) => {\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseToString.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseToString.js ***!\n \\*****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar Symbol = __webpack_require__(/*! ./_Symbol */ \"./build/cht-core-4-6/node_modules/lodash/_Symbol.js\"),\n arrayMap = __webpack_require__(/*! ./_arrayMap */ \"./build/cht-core-4-6/node_modules/lodash/_arrayMap.js\"),\n isArray = __webpack_require__(/*! ./isArray */ \"./build/cht-core-4-6/node_modules/lodash/isArray.js\"),\n isSymbol = __webpack_require__(/*! ./isSymbol */ \"./build/cht-core-4-6/node_modules/lodash/isSymbol.js\");\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseUnary.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseUnary.js ***!\n \\**************************************************************/\n/***/ ((module) => {\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_baseUniq.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_baseUniq.js ***!\n \\*************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar SetCache = __webpack_require__(/*! ./_SetCache */ \"./build/cht-core-4-6/node_modules/lodash/_SetCache.js\"),\n arrayIncludes = __webpack_require__(/*! ./_arrayIncludes */ \"./build/cht-core-4-6/node_modules/lodash/_arrayIncludes.js\"),\n arrayIncludesWith = __webpack_require__(/*! ./_arrayIncludesWith */ \"./build/cht-core-4-6/node_modules/lodash/_arrayIncludesWith.js\"),\n cacheHas = __webpack_require__(/*! ./_cacheHas */ \"./build/cht-core-4-6/node_modules/lodash/_cacheHas.js\"),\n createSet = __webpack_require__(/*! ./_createSet */ \"./build/cht-core-4-6/node_modules/lodash/_createSet.js\"),\n setToArray = __webpack_require__(/*! ./_setToArray */ \"./build/cht-core-4-6/node_modules/lodash/_setToArray.js\");\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_cacheHas.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_cacheHas.js ***!\n \\*************************************************************/\n/***/ ((module) => {\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_castPath.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_castPath.js ***!\n \\*************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar isArray = __webpack_require__(/*! ./isArray */ \"./build/cht-core-4-6/node_modules/lodash/isArray.js\"),\n isKey = __webpack_require__(/*! ./_isKey */ \"./build/cht-core-4-6/node_modules/lodash/_isKey.js\"),\n stringToPath = __webpack_require__(/*! ./_stringToPath */ \"./build/cht-core-4-6/node_modules/lodash/_stringToPath.js\"),\n toString = __webpack_require__(/*! ./toString */ \"./build/cht-core-4-6/node_modules/lodash/toString.js\");\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_coreJsData.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_coreJsData.js ***!\n \\***************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar root = __webpack_require__(/*! ./_root */ \"./build/cht-core-4-6/node_modules/lodash/_root.js\");\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_createSet.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_createSet.js ***!\n \\**************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar Set = __webpack_require__(/*! ./_Set */ \"./build/cht-core-4-6/node_modules/lodash/_Set.js\"),\n noop = __webpack_require__(/*! ./noop */ \"./build/cht-core-4-6/node_modules/lodash/noop.js\"),\n setToArray = __webpack_require__(/*! ./_setToArray */ \"./build/cht-core-4-6/node_modules/lodash/_setToArray.js\");\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_equalArrays.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_equalArrays.js ***!\n \\****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar SetCache = __webpack_require__(/*! ./_SetCache */ \"./build/cht-core-4-6/node_modules/lodash/_SetCache.js\"),\n arraySome = __webpack_require__(/*! ./_arraySome */ \"./build/cht-core-4-6/node_modules/lodash/_arraySome.js\"),\n cacheHas = __webpack_require__(/*! ./_cacheHas */ \"./build/cht-core-4-6/node_modules/lodash/_cacheHas.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_equalByTag.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_equalByTag.js ***!\n \\***************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar Symbol = __webpack_require__(/*! ./_Symbol */ \"./build/cht-core-4-6/node_modules/lodash/_Symbol.js\"),\n Uint8Array = __webpack_require__(/*! ./_Uint8Array */ \"./build/cht-core-4-6/node_modules/lodash/_Uint8Array.js\"),\n eq = __webpack_require__(/*! ./eq */ \"./build/cht-core-4-6/node_modules/lodash/eq.js\"),\n equalArrays = __webpack_require__(/*! ./_equalArrays */ \"./build/cht-core-4-6/node_modules/lodash/_equalArrays.js\"),\n mapToArray = __webpack_require__(/*! ./_mapToArray */ \"./build/cht-core-4-6/node_modules/lodash/_mapToArray.js\"),\n setToArray = __webpack_require__(/*! ./_setToArray */ \"./build/cht-core-4-6/node_modules/lodash/_setToArray.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_equalObjects.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_equalObjects.js ***!\n \\*****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar getAllKeys = __webpack_require__(/*! ./_getAllKeys */ \"./build/cht-core-4-6/node_modules/lodash/_getAllKeys.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_freeGlobal.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_freeGlobal.js ***!\n \\***************************************************************/\n/***/ ((module) => {\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_getAllKeys.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_getAllKeys.js ***!\n \\***************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseGetAllKeys = __webpack_require__(/*! ./_baseGetAllKeys */ \"./build/cht-core-4-6/node_modules/lodash/_baseGetAllKeys.js\"),\n getSymbols = __webpack_require__(/*! ./_getSymbols */ \"./build/cht-core-4-6/node_modules/lodash/_getSymbols.js\"),\n keys = __webpack_require__(/*! ./keys */ \"./build/cht-core-4-6/node_modules/lodash/keys.js\");\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_getMapData.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_getMapData.js ***!\n \\***************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar isKeyable = __webpack_require__(/*! ./_isKeyable */ \"./build/cht-core-4-6/node_modules/lodash/_isKeyable.js\");\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_getMatchData.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_getMatchData.js ***!\n \\*****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar isStrictComparable = __webpack_require__(/*! ./_isStrictComparable */ \"./build/cht-core-4-6/node_modules/lodash/_isStrictComparable.js\"),\n keys = __webpack_require__(/*! ./keys */ \"./build/cht-core-4-6/node_modules/lodash/keys.js\");\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_getNative.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_getNative.js ***!\n \\**************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseIsNative = __webpack_require__(/*! ./_baseIsNative */ \"./build/cht-core-4-6/node_modules/lodash/_baseIsNative.js\"),\n getValue = __webpack_require__(/*! ./_getValue */ \"./build/cht-core-4-6/node_modules/lodash/_getValue.js\");\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_getRawTag.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_getRawTag.js ***!\n \\**************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar Symbol = __webpack_require__(/*! ./_Symbol */ \"./build/cht-core-4-6/node_modules/lodash/_Symbol.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_getSymbols.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_getSymbols.js ***!\n \\***************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar arrayFilter = __webpack_require__(/*! ./_arrayFilter */ \"./build/cht-core-4-6/node_modules/lodash/_arrayFilter.js\"),\n stubArray = __webpack_require__(/*! ./stubArray */ \"./build/cht-core-4-6/node_modules/lodash/stubArray.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_getTag.js\":\n/*!***********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_getTag.js ***!\n \\***********************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar DataView = __webpack_require__(/*! ./_DataView */ \"./build/cht-core-4-6/node_modules/lodash/_DataView.js\"),\n Map = __webpack_require__(/*! ./_Map */ \"./build/cht-core-4-6/node_modules/lodash/_Map.js\"),\n Promise = __webpack_require__(/*! ./_Promise */ \"./build/cht-core-4-6/node_modules/lodash/_Promise.js\"),\n Set = __webpack_require__(/*! ./_Set */ \"./build/cht-core-4-6/node_modules/lodash/_Set.js\"),\n WeakMap = __webpack_require__(/*! ./_WeakMap */ \"./build/cht-core-4-6/node_modules/lodash/_WeakMap.js\"),\n baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js\"),\n toSource = __webpack_require__(/*! ./_toSource */ \"./build/cht-core-4-6/node_modules/lodash/_toSource.js\");\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_getValue.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_getValue.js ***!\n \\*************************************************************/\n/***/ ((module) => {\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_hasPath.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_hasPath.js ***!\n \\************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar castPath = __webpack_require__(/*! ./_castPath */ \"./build/cht-core-4-6/node_modules/lodash/_castPath.js\"),\n isArguments = __webpack_require__(/*! ./isArguments */ \"./build/cht-core-4-6/node_modules/lodash/isArguments.js\"),\n isArray = __webpack_require__(/*! ./isArray */ \"./build/cht-core-4-6/node_modules/lodash/isArray.js\"),\n isIndex = __webpack_require__(/*! ./_isIndex */ \"./build/cht-core-4-6/node_modules/lodash/_isIndex.js\"),\n isLength = __webpack_require__(/*! ./isLength */ \"./build/cht-core-4-6/node_modules/lodash/isLength.js\"),\n toKey = __webpack_require__(/*! ./_toKey */ \"./build/cht-core-4-6/node_modules/lodash/_toKey.js\");\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_hashClear.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_hashClear.js ***!\n \\**************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"./build/cht-core-4-6/node_modules/lodash/_nativeCreate.js\");\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_hashDelete.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_hashDelete.js ***!\n \\***************************************************************/\n/***/ ((module) => {\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_hashGet.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_hashGet.js ***!\n \\************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"./build/cht-core-4-6/node_modules/lodash/_nativeCreate.js\");\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_hashHas.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_hashHas.js ***!\n \\************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"./build/cht-core-4-6/node_modules/lodash/_nativeCreate.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_hashSet.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_hashSet.js ***!\n \\************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"./build/cht-core-4-6/node_modules/lodash/_nativeCreate.js\");\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_isIndex.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_isIndex.js ***!\n \\************************************************************/\n/***/ ((module) => {\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_isKey.js\":\n/*!**********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_isKey.js ***!\n \\**********************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar isArray = __webpack_require__(/*! ./isArray */ \"./build/cht-core-4-6/node_modules/lodash/isArray.js\"),\n isSymbol = __webpack_require__(/*! ./isSymbol */ \"./build/cht-core-4-6/node_modules/lodash/isSymbol.js\");\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_isKeyable.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_isKeyable.js ***!\n \\**************************************************************/\n/***/ ((module) => {\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_isMasked.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_isMasked.js ***!\n \\*************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar coreJsData = __webpack_require__(/*! ./_coreJsData */ \"./build/cht-core-4-6/node_modules/lodash/_coreJsData.js\");\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_isPrototype.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_isPrototype.js ***!\n \\****************************************************************/\n/***/ ((module) => {\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_isStrictComparable.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_isStrictComparable.js ***!\n \\***********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar isObject = __webpack_require__(/*! ./isObject */ \"./build/cht-core-4-6/node_modules/lodash/isObject.js\");\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_listCacheClear.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_listCacheClear.js ***!\n \\*******************************************************************/\n/***/ ((module) => {\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_listCacheDelete.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_listCacheDelete.js ***!\n \\********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"./build/cht-core-4-6/node_modules/lodash/_assocIndexOf.js\");\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_listCacheGet.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_listCacheGet.js ***!\n \\*****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"./build/cht-core-4-6/node_modules/lodash/_assocIndexOf.js\");\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_listCacheHas.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_listCacheHas.js ***!\n \\*****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"./build/cht-core-4-6/node_modules/lodash/_assocIndexOf.js\");\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_listCacheSet.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_listCacheSet.js ***!\n \\*****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"./build/cht-core-4-6/node_modules/lodash/_assocIndexOf.js\");\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_mapCacheClear.js\":\n/*!******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_mapCacheClear.js ***!\n \\******************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar Hash = __webpack_require__(/*! ./_Hash */ \"./build/cht-core-4-6/node_modules/lodash/_Hash.js\"),\n ListCache = __webpack_require__(/*! ./_ListCache */ \"./build/cht-core-4-6/node_modules/lodash/_ListCache.js\"),\n Map = __webpack_require__(/*! ./_Map */ \"./build/cht-core-4-6/node_modules/lodash/_Map.js\");\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_mapCacheDelete.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_mapCacheDelete.js ***!\n \\*******************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar getMapData = __webpack_require__(/*! ./_getMapData */ \"./build/cht-core-4-6/node_modules/lodash/_getMapData.js\");\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_mapCacheGet.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_mapCacheGet.js ***!\n \\****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar getMapData = __webpack_require__(/*! ./_getMapData */ \"./build/cht-core-4-6/node_modules/lodash/_getMapData.js\");\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_mapCacheHas.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_mapCacheHas.js ***!\n \\****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar getMapData = __webpack_require__(/*! ./_getMapData */ \"./build/cht-core-4-6/node_modules/lodash/_getMapData.js\");\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_mapCacheSet.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_mapCacheSet.js ***!\n \\****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar getMapData = __webpack_require__(/*! ./_getMapData */ \"./build/cht-core-4-6/node_modules/lodash/_getMapData.js\");\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_mapToArray.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_mapToArray.js ***!\n \\***************************************************************/\n/***/ ((module) => {\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_matchesStrictComparable.js\":\n/*!****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_matchesStrictComparable.js ***!\n \\****************************************************************************/\n/***/ ((module) => {\n\n/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_memoizeCapped.js\":\n/*!******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_memoizeCapped.js ***!\n \\******************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar memoize = __webpack_require__(/*! ./memoize */ \"./build/cht-core-4-6/node_modules/lodash/memoize.js\");\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_nativeCreate.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_nativeCreate.js ***!\n \\*****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar getNative = __webpack_require__(/*! ./_getNative */ \"./build/cht-core-4-6/node_modules/lodash/_getNative.js\");\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_nativeKeys.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_nativeKeys.js ***!\n \\***************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar overArg = __webpack_require__(/*! ./_overArg */ \"./build/cht-core-4-6/node_modules/lodash/_overArg.js\");\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_nodeUtil.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_nodeUtil.js ***!\n \\*************************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar freeGlobal = __webpack_require__(/*! ./_freeGlobal */ \"./build/cht-core-4-6/node_modules/lodash/_freeGlobal.js\");\n\n/** Detect free variable `exports`. */\nvar freeExports = true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && \"object\" == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_objectToString.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_objectToString.js ***!\n \\*******************************************************************/\n/***/ ((module) => {\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_overArg.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_overArg.js ***!\n \\************************************************************/\n/***/ ((module) => {\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_root.js\":\n/*!*********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_root.js ***!\n \\*********************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar freeGlobal = __webpack_require__(/*! ./_freeGlobal */ \"./build/cht-core-4-6/node_modules/lodash/_freeGlobal.js\");\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_setCacheAdd.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_setCacheAdd.js ***!\n \\****************************************************************/\n/***/ ((module) => {\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_setCacheHas.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_setCacheHas.js ***!\n \\****************************************************************/\n/***/ ((module) => {\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_setToArray.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_setToArray.js ***!\n \\***************************************************************/\n/***/ ((module) => {\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_stackClear.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_stackClear.js ***!\n \\***************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar ListCache = __webpack_require__(/*! ./_ListCache */ \"./build/cht-core-4-6/node_modules/lodash/_ListCache.js\");\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_stackDelete.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_stackDelete.js ***!\n \\****************************************************************/\n/***/ ((module) => {\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_stackGet.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_stackGet.js ***!\n \\*************************************************************/\n/***/ ((module) => {\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_stackHas.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_stackHas.js ***!\n \\*************************************************************/\n/***/ ((module) => {\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_stackSet.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_stackSet.js ***!\n \\*************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar ListCache = __webpack_require__(/*! ./_ListCache */ \"./build/cht-core-4-6/node_modules/lodash/_ListCache.js\"),\n Map = __webpack_require__(/*! ./_Map */ \"./build/cht-core-4-6/node_modules/lodash/_Map.js\"),\n MapCache = __webpack_require__(/*! ./_MapCache */ \"./build/cht-core-4-6/node_modules/lodash/_MapCache.js\");\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_strictIndexOf.js\":\n/*!******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_strictIndexOf.js ***!\n \\******************************************************************/\n/***/ ((module) => {\n\n/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_stringToPath.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_stringToPath.js ***!\n \\*****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar memoizeCapped = __webpack_require__(/*! ./_memoizeCapped */ \"./build/cht-core-4-6/node_modules/lodash/_memoizeCapped.js\");\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_toKey.js\":\n/*!**********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_toKey.js ***!\n \\**********************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar isSymbol = __webpack_require__(/*! ./isSymbol */ \"./build/cht-core-4-6/node_modules/lodash/isSymbol.js\");\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/_toSource.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/_toSource.js ***!\n \\*************************************************************/\n/***/ ((module) => {\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/core.js\":\n/*!********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/core.js ***!\n \\********************************************************/\n/***/ (function(module, exports, __webpack_require__) {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar __WEBPACK_AMD_DEFINE_RESULT__;/**\n * @license\n * Lodash (Custom Build) \n * Build: `lodash core -o ./dist/lodash.core.js`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Error message constants. */\n var FUNC_ERROR_TEXT = 'Expected a function';\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_PARTIAL_FLAG = 32;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n stringTag = '[object String]';\n\n /** Used to match HTML entities and HTML characters. */\n var reUnescapedHtml = /[&<>\"']/g,\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = true && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && \"object\" == 'object' && module && !module.nodeType && module;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n array.push.apply(array, values);\n return array;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return baseMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /*--------------------------------------------------------------------------*/\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n objectProto = Object.prototype;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Built-in value references. */\n var objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeIsFinite = root.isFinite,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n return value instanceof LodashWrapper\n ? value\n : new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n }\n\n LodashWrapper.prototype = baseCreate(lodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n object[key] = value;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !false)\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return baseFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n return objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n var baseIsArguments = noop;\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : baseGetTag(object),\n othTag = othIsArr ? arrayTag : baseGetTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n stack || (stack = []);\n var objStack = find(stack, function(entry) {\n return entry[0] == object;\n });\n var othStack = find(stack, function(entry) {\n return entry[0] == other;\n });\n if (objStack && othStack) {\n return objStack[1] == other;\n }\n stack.push([object, other]);\n stack.push([other, object]);\n if (isSameTag && !objIsObj) {\n var result = (objIsArr)\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n stack.pop();\n return result;\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n var result = equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n stack.pop();\n return result;\n }\n }\n if (!isSameTag) {\n return false;\n }\n var result = equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n stack.pop();\n return result;\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(func) {\n if (typeof func == 'function') {\n return func;\n }\n if (func == null) {\n return identity;\n }\n return (typeof func == 'object' ? baseMatches : baseProperty)(func);\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var props = nativeKeys(source);\n return function(object) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length];\n if (!(key in object &&\n baseIsEqual(source[key], object[key], COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG)\n )) {\n return false;\n }\n }\n return true;\n };\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, props) {\n object = Object(object);\n return reduce(props, function(result, key) {\n if (key in object) {\n result[key] = object[key];\n }\n return result;\n }, {});\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source) {\n return baseSlice(source, 0, source.length);\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n return reduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = false;\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = false;\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return fn.apply(isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? [] : undefined;\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n var compared;\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!baseSome(other, function(othValue, othIndex) {\n if (!indexOf(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n var compared;\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return func.apply(this, otherArgs);\n };\n }\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = identity;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n return baseFilter(array, Boolean);\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (typeof fromIndex == 'number') {\n fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : fromIndex;\n } else {\n fromIndex = 0;\n }\n var index = (fromIndex || 0) - 1,\n isReflexive = value === value;\n\n while (++index < length) {\n var other = array[index];\n if ((isReflexive ? other === value : other !== other)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n start = start == null ? 0 : +start;\n end = end === undefined ? length : +end;\n return length ? baseSlice(array, start, end) : [];\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n predicate = guard ? undefined : predicate;\n return baseEvery(collection, baseIteratee(predicate));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n return baseFilter(collection, baseIteratee(predicate));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n return baseEach(collection, baseIteratee(iteratee));\n }\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n return baseMap(collection, baseIteratee(iteratee));\n }\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n return baseReduce(collection, baseIteratee(iteratee), accumulator, arguments.length < 3, baseEach);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n collection = isArrayLike(collection) ? collection : nativeKeys(collection);\n return collection.length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n predicate = guard ? undefined : predicate;\n return baseSome(collection, baseIteratee(predicate));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n function sortBy(collection, iteratee) {\n var index = 0;\n iteratee = baseIteratee(iteratee);\n\n return baseMap(baseMap(collection, function(value, key, collection) {\n return { 'value': value, 'index': index++, 'criteria': iteratee(value, key, collection) };\n }).sort(function(object, other) {\n return compareAscending(object.criteria, other.criteria) || (object.index - other.index);\n }), baseProperty('value'));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n return createPartial(func, WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG, thisArg, partials);\n });\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n if (!isObject(value)) {\n return value;\n }\n return isArray(value) ? copyArray(value) : copyObject(value, nativeKeys(value));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = baseIsDate;\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (isArrayLike(value) &&\n (isArray(value) || isString(value) ||\n isFunction(value.splice) || isArguments(value))) {\n return !value.length;\n }\n return !nativeKeys(value).length;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = baseIsRegExp;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!isArrayLike(value)) {\n return values(value);\n }\n return value.length ? copyArray(value) : [];\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n var toInteger = Number;\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n var toNumber = Number;\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n if (typeof value == 'string') {\n return value;\n }\n return value == null ? '' : (value + '');\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n copyObject(source, nativeKeys(source), object);\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, nativeKeysIn(source), object);\n });\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : assign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasOwnProperty.call(object, path);\n }\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n var keys = nativeKeys;\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n var keysIn = nativeKeysIn;\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n var value = object == null ? undefined : object[path];\n if (value === undefined) {\n value = defaultValue;\n }\n return isFunction(value) ? value.call(object) : value;\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\n function identity(value) {\n return value;\n }\n\n /**\n * Creates a function that invokes `func` with the arguments of the created\n * function. If `func` is a property name, the created function returns the\n * property value for a given element. If `func` is an array or object, the\n * created function returns `true` for elements that contain the equivalent\n * source properties, otherwise it returns `false`.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Util\n * @param {*} [func=_.identity] The value to convert to a callback.\n * @returns {Function} Returns the callback.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));\n * // => [{ 'user': 'barney', 'age': 36, 'active': true }]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, _.iteratee(['user', 'fred']));\n * // => [{ 'user': 'fred', 'age': 40 }]\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, _.iteratee('user'));\n * // => ['barney', 'fred']\n *\n * // Create custom iteratee shorthands.\n * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {\n * return !_.isRegExp(func) ? iteratee(func) : function(string) {\n * return func.test(string);\n * };\n * });\n *\n * _.filter(['abc', 'def'], /ef/);\n * // => ['def']\n */\n var iteratee = baseIteratee;\n\n /**\n * Creates a function that performs a partial deep comparison between a given\n * object and `source`, returning `true` if the given object has equivalent\n * property values, else `false`.\n *\n * **Note:** The created function is equivalent to `_.isMatch` with `source`\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));\n * // => [{ 'a': 4, 'b': 5, 'c': 6 }]\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\n function matches(source) {\n return baseMatches(assign({}, source));\n }\n\n /**\n * Adds all own enumerable string keyed function properties of a source\n * object to the destination object. If `object` is a function, then methods\n * are added to its prototype as well.\n *\n * **Note:** Use `_.runInContext` to create a pristine `lodash` function to\n * avoid conflicts caused by modifying the original.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Function|Object} [object=lodash] The destination object.\n * @param {Object} source The object of functions to add.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.chain=true] Specify whether mixins are chainable.\n * @returns {Function|Object} Returns `object`.\n * @example\n *\n * function vowels(string) {\n * return _.filter(string, function(v) {\n * return /[aeiou]/i.test(v);\n * });\n * }\n *\n * _.mixin({ 'vowels': vowels });\n * _.vowels('fred');\n * // => ['e']\n *\n * _('fred').vowels().value();\n * // => ['e']\n *\n * _.mixin({ 'vowels': vowels }, { 'chain': false });\n * _('fred').vowels();\n * // => ['e']\n */\n function mixin(object, source, options) {\n var props = keys(source),\n methodNames = baseFunctions(source, props);\n\n if (options == null &&\n !(isObject(source) && (methodNames.length || !props.length))) {\n options = source;\n source = object;\n object = this;\n methodNames = baseFunctions(source, keys(source));\n }\n var chain = !(isObject(options) && 'chain' in options) || !!options.chain,\n isFunc = isFunction(object);\n\n baseEach(methodNames, function(methodName) {\n var func = source[methodName];\n object[methodName] = func;\n if (isFunc) {\n object.prototype[methodName] = function() {\n var chainAll = this.__chain__;\n if (chain || chainAll) {\n var result = object(this.__wrapped__),\n actions = result.__actions__ = copyArray(this.__actions__);\n\n actions.push({ 'func': func, 'args': arguments, 'thisArg': object });\n result.__chain__ = chainAll;\n return result;\n }\n return func.apply(object, arrayPush([this.value()], arguments));\n };\n }\n });\n\n return object;\n }\n\n /**\n * Reverts the `_` variable to its previous value and returns a reference to\n * the `lodash` function.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @returns {Function} Returns the `lodash` function.\n * @example\n *\n * var lodash = _.noConflict();\n */\n function noConflict() {\n if (root._ === this) {\n root._ = oldDash;\n }\n return this;\n }\n\n /**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\n function noop() {\n // No operation performed.\n }\n\n /**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\n function uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\n function max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n }\n\n /**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\n function min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n }\n\n /*------------------------------------------------------------------------*/\n\n // Add methods that return wrapped values in chain sequences.\n lodash.assignIn = assignIn;\n lodash.before = before;\n lodash.bind = bind;\n lodash.chain = chain;\n lodash.compact = compact;\n lodash.concat = concat;\n lodash.create = create;\n lodash.defaults = defaults;\n lodash.defer = defer;\n lodash.delay = delay;\n lodash.filter = filter;\n lodash.flatten = flatten;\n lodash.flattenDeep = flattenDeep;\n lodash.iteratee = iteratee;\n lodash.keys = keys;\n lodash.map = map;\n lodash.matches = matches;\n lodash.mixin = mixin;\n lodash.negate = negate;\n lodash.once = once;\n lodash.pick = pick;\n lodash.slice = slice;\n lodash.sortBy = sortBy;\n lodash.tap = tap;\n lodash.thru = thru;\n lodash.toArray = toArray;\n lodash.values = values;\n\n // Add aliases.\n lodash.extend = assignIn;\n\n // Add methods to `lodash.prototype`.\n mixin(lodash, lodash);\n\n /*------------------------------------------------------------------------*/\n\n // Add methods that return unwrapped values in chain sequences.\n lodash.clone = clone;\n lodash.escape = escape;\n lodash.every = every;\n lodash.find = find;\n lodash.forEach = forEach;\n lodash.has = has;\n lodash.head = head;\n lodash.identity = identity;\n lodash.indexOf = indexOf;\n lodash.isArguments = isArguments;\n lodash.isArray = isArray;\n lodash.isBoolean = isBoolean;\n lodash.isDate = isDate;\n lodash.isEmpty = isEmpty;\n lodash.isEqual = isEqual;\n lodash.isFinite = isFinite;\n lodash.isFunction = isFunction;\n lodash.isNaN = isNaN;\n lodash.isNull = isNull;\n lodash.isNumber = isNumber;\n lodash.isObject = isObject;\n lodash.isRegExp = isRegExp;\n lodash.isString = isString;\n lodash.isUndefined = isUndefined;\n lodash.last = last;\n lodash.max = max;\n lodash.min = min;\n lodash.noConflict = noConflict;\n lodash.noop = noop;\n lodash.reduce = reduce;\n lodash.result = result;\n lodash.size = size;\n lodash.some = some;\n lodash.uniqueId = uniqueId;\n\n // Add aliases.\n lodash.each = forEach;\n lodash.first = head;\n\n mixin(lodash, (function() {\n var source = {};\n baseForOwn(lodash, function(func, methodName) {\n if (!hasOwnProperty.call(lodash.prototype, methodName)) {\n source[methodName] = func;\n }\n });\n return source;\n }()), { 'chain': false });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The semantic version number.\n *\n * @static\n * @memberOf _\n * @type {string}\n */\n lodash.VERSION = VERSION;\n\n // Add `Array` methods to `lodash.prototype`.\n baseEach(['pop', 'join', 'replace', 'reverse', 'split', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) {\n var func = (/^(?:replace|split)$/.test(methodName) ? String.prototype : arrayProto)[methodName],\n chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru',\n retUnwrapped = /^(?:pop|join|replace|shift)$/.test(methodName);\n\n lodash.prototype[methodName] = function() {\n var args = arguments;\n if (retUnwrapped && !this.__chain__) {\n var value = this.value();\n return func.apply(isArray(value) ? value : [], args);\n }\n return this[chainName](function(value) {\n return func.apply(isArray(value) ? value : [], args);\n });\n };\n });\n\n // Add chain sequence methods to the `lodash` wrapper.\n lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;\n\n /*--------------------------------------------------------------------------*/\n\n // Some AMD build optimizers, like r.js, check for condition patterns like:\n if (true) {\n // Expose Lodash on the global object to prevent errors when Lodash is\n // loaded by a script tag in the presence of an AMD loader.\n // See http://requirejs.org/docs/errors.html#mismatch for more details.\n // Use `_.noConflict` to remove Lodash from the global object.\n root._ = lodash;\n\n // Define as an anonymous module so, through path mapping, it can be\n // referenced as the \"underscore\" module.\n !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n return lodash;\n }).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n }\n // Check for `exports` after `define` in case a build optimizer adds it.\n else {}\n}.call(this));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/eq.js\":\n/*!******************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/eq.js ***!\n \\******************************************************/\n/***/ ((module) => {\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/get.js\":\n/*!*******************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/get.js ***!\n \\*******************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseGet = __webpack_require__(/*! ./_baseGet */ \"./build/cht-core-4-6/node_modules/lodash/_baseGet.js\");\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/hasIn.js\":\n/*!*********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/hasIn.js ***!\n \\*********************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseHasIn = __webpack_require__(/*! ./_baseHasIn */ \"./build/cht-core-4-6/node_modules/lodash/_baseHasIn.js\"),\n hasPath = __webpack_require__(/*! ./_hasPath */ \"./build/cht-core-4-6/node_modules/lodash/_hasPath.js\");\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/identity.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/identity.js ***!\n \\************************************************************/\n/***/ ((module) => {\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/isArguments.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/isArguments.js ***!\n \\***************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseIsArguments = __webpack_require__(/*! ./_baseIsArguments */ \"./build/cht-core-4-6/node_modules/lodash/_baseIsArguments.js\"),\n isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./build/cht-core-4-6/node_modules/lodash/isObjectLike.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/isArray.js\":\n/*!***********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/isArray.js ***!\n \\***********************************************************/\n/***/ ((module) => {\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/isArrayLike.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/isArrayLike.js ***!\n \\***************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar isFunction = __webpack_require__(/*! ./isFunction */ \"./build/cht-core-4-6/node_modules/lodash/isFunction.js\"),\n isLength = __webpack_require__(/*! ./isLength */ \"./build/cht-core-4-6/node_modules/lodash/isLength.js\");\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/isBuffer.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/isBuffer.js ***!\n \\************************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar root = __webpack_require__(/*! ./_root */ \"./build/cht-core-4-6/node_modules/lodash/_root.js\"),\n stubFalse = __webpack_require__(/*! ./stubFalse */ \"./build/cht-core-4-6/node_modules/lodash/stubFalse.js\");\n\n/** Detect free variable `exports`. */\nvar freeExports = true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && \"object\" == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/isFunction.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/isFunction.js ***!\n \\**************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js\"),\n isObject = __webpack_require__(/*! ./isObject */ \"./build/cht-core-4-6/node_modules/lodash/isObject.js\");\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/isLength.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/isLength.js ***!\n \\************************************************************/\n/***/ ((module) => {\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/isObject.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/isObject.js ***!\n \\************************************************************/\n/***/ ((module) => {\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/isObjectLike.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/isObjectLike.js ***!\n \\****************************************************************/\n/***/ ((module) => {\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/isSymbol.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/isSymbol.js ***!\n \\************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js\"),\n isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./build/cht-core-4-6/node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/isTypedArray.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/isTypedArray.js ***!\n \\****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseIsTypedArray = __webpack_require__(/*! ./_baseIsTypedArray */ \"./build/cht-core-4-6/node_modules/lodash/_baseIsTypedArray.js\"),\n baseUnary = __webpack_require__(/*! ./_baseUnary */ \"./build/cht-core-4-6/node_modules/lodash/_baseUnary.js\"),\n nodeUtil = __webpack_require__(/*! ./_nodeUtil */ \"./build/cht-core-4-6/node_modules/lodash/_nodeUtil.js\");\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/keys.js\":\n/*!********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/keys.js ***!\n \\********************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar arrayLikeKeys = __webpack_require__(/*! ./_arrayLikeKeys */ \"./build/cht-core-4-6/node_modules/lodash/_arrayLikeKeys.js\"),\n baseKeys = __webpack_require__(/*! ./_baseKeys */ \"./build/cht-core-4-6/node_modules/lodash/_baseKeys.js\"),\n isArrayLike = __webpack_require__(/*! ./isArrayLike */ \"./build/cht-core-4-6/node_modules/lodash/isArrayLike.js\");\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/memoize.js\":\n/*!***********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/memoize.js ***!\n \\***********************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar MapCache = __webpack_require__(/*! ./_MapCache */ \"./build/cht-core-4-6/node_modules/lodash/_MapCache.js\");\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/noop.js\":\n/*!********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/noop.js ***!\n \\********************************************************/\n/***/ ((module) => {\n\n/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/property.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/property.js ***!\n \\************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseProperty = __webpack_require__(/*! ./_baseProperty */ \"./build/cht-core-4-6/node_modules/lodash/_baseProperty.js\"),\n basePropertyDeep = __webpack_require__(/*! ./_basePropertyDeep */ \"./build/cht-core-4-6/node_modules/lodash/_basePropertyDeep.js\"),\n isKey = __webpack_require__(/*! ./_isKey */ \"./build/cht-core-4-6/node_modules/lodash/_isKey.js\"),\n toKey = __webpack_require__(/*! ./_toKey */ \"./build/cht-core-4-6/node_modules/lodash/_toKey.js\");\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/stubArray.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/stubArray.js ***!\n \\*************************************************************/\n/***/ ((module) => {\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/stubFalse.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/stubFalse.js ***!\n \\*************************************************************/\n/***/ ((module) => {\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/toString.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/toString.js ***!\n \\************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseToString = __webpack_require__(/*! ./_baseToString */ \"./build/cht-core-4-6/node_modules/lodash/_baseToString.js\");\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/uniq.js\":\n/*!********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/uniq.js ***!\n \\********************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseUniq = __webpack_require__(/*! ./_baseUniq */ \"./build/cht-core-4-6/node_modules/lodash/_baseUniq.js\");\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/lodash/uniqBy.js\":\n/*!**********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/lodash/uniqBy.js ***!\n \\**********************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar baseIteratee = __webpack_require__(/*! ./_baseIteratee */ \"./build/cht-core-4-6/node_modules/lodash/_baseIteratee.js\"),\n baseUniq = __webpack_require__(/*! ./_baseUniq */ \"./build/cht-core-4-6/node_modules/lodash/_baseUniq.js\");\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/md5/md5.js\":\n/*!****************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/md5/md5.js ***!\n \\****************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n(function(){\r\n var crypt = __webpack_require__(/*! crypt */ \"./build/cht-core-4-6/node_modules/crypt/crypt.js\"),\r\n utf8 = __webpack_require__(/*! charenc */ \"./build/cht-core-4-6/node_modules/charenc/charenc.js\").utf8,\r\n isBuffer = __webpack_require__(/*! is-buffer */ \"./build/cht-core-4-6/node_modules/is-buffer/index.js\"),\r\n bin = __webpack_require__(/*! charenc */ \"./build/cht-core-4-6/node_modules/charenc/charenc.js\").bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/af.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/af.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ar-dz.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ar-dz.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانفي',\n 'فيفري',\n 'مارس',\n 'أفريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ar-kw.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ar-kw.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ar-ly.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ar-ly.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic (Libya) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ar-ma.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ar-ma.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ar-sa.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ar-sa.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ar-tn.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ar-tn.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ar.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ar.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/az.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/az.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays:\n 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/be.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/be.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone:\n 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort:\n 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone:\n 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/bg.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/bg.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n w: 'седмица',\n ww: '%d седмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/bm.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/bm.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/bn-bd.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/bn-bd.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bnBd;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/bn.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/bn.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/bo.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/bo.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort:\n 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays:\n 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/br.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/br.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex =\n /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/bs.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/bs.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ca.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ca.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone:\n 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/cs.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/cs.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = {\n format: 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n standalone:\n 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(\n '_'\n ),\n },\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex =\n /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex:\n /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex:\n /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/cv.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/cv.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays:\n 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/cy.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/cy.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays:\n 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/da.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/da.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/de-at.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/de-at.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/de-ch.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/de-ch.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/de.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/de.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/dv.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/dv.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/el.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/el.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl:\n 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl:\n 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/en-au.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/en-au.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/en-ca.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/en-ca.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/en-gb.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/en-gb.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/en-ie.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/en-ie.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/en-il.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/en-il.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/en-in.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/en-in.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/en-nz.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/en-nz.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/en-sg.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/en-sg.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/eo.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/eo.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/es-do.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/es-do.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/es-mx.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/es-mx.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return esMx;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/es-us.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/es-us.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/es.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/es.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return es;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/et.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/et.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort:\n 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays:\n 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/eu.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/eu.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort:\n 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/fa.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/fa.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰',\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort:\n 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/fi.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/fi.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast =\n 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort:\n 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays:\n 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/fil.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/fil.js ***!\n \\**************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/fo.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/fo.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays:\n 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/fr-ca.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/fr-ca.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/fr-ch.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/fr-ch.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/fr.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/fr.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsStrictRegex =\n /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/fy.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/fy.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ga.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ga.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/gd.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/gd.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/gl.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/gl.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort:\n 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/gom-deva.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/gom-deva.js ***!\n \\*******************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone:\n 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/gom-latn.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/gom-latn.js ***!\n \\*******************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone:\n 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/gu.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/gu.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '૧',\n 2: '૨',\n 3: '૩',\n 4: '૪',\n 5: '૫',\n 6: '૬',\n 7: '૭',\n 8: '૮',\n 9: '૯',\n 0: '૦',\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0',\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n '_'\n ),\n monthsShort:\n 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return gu;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/he.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/he.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort:\n 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse:\n /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/hi.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/hi.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n },\n monthsParse = [\n /^जन/i,\n /^फ़र|फर/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सितं|सित/i,\n /^अक्टू/i,\n /^नव|नवं/i,\n /^दिसं|दिस/i,\n ],\n shortMonthsParse = [\n /^जन/i,\n /^फ़र/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सित/i,\n /^अक्टू/i,\n /^नव/i,\n /^दिस/i,\n ];\n\n var hi = moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n '_'\n ),\n standalone:\n 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n '_'\n ),\n },\n monthsShort:\n 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: shortMonthsParse,\n\n monthsRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsShortRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsStrictRegex:\n /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n monthsShortStrictRegex:\n /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return hi;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/hr.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/hr.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone:\n 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort:\n 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/hu.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/hu.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings =\n 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/hy-am.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/hy-am.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone:\n 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays:\n 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/id.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/id.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/is.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/is.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays:\n 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/it-ch.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/it-ch.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/it.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/it.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ja.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ja.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/jv.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/jv.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ka.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ka.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone:\n 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\n isFormat: /(წინა|შემდეგ)/,\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(\n /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,\n function ($0, $1, $2) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n }\n );\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/kk.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/kk.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/km.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/km.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០',\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort:\n 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return km;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/kn.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/kn.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: '೭',\n 8: '೮',\n 9: '೯',\n 0: '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort:\n 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ko.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ko.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ku.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ku.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays:\n 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort:\n 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ky.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ky.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n var ky = moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ky;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/lb.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/lb.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/lo.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/lo.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort:\n 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/lt.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/lt.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone:\n 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone:\n 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/lv.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/lv.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays:\n 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/me.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/me.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/mi.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/mi.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan : https://github.com/johnideal\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort:\n 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/mk.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/mk.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ml.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ml.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort:\n 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/mn.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/mn.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n '_'\n ),\n monthsShort:\n '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n return mn;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/mr.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/mr.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort:\n 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ms-my.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ms-my.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ms.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ms.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/mt.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/mt.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays:\n 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/my.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/my.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀',\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/nb.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/nb.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n w: 'en uke',\n ww: '%d uker',\n M: 'en måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ne.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ne.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort:\n 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/nl-be.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/nl-be.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nlBe;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/nl.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/nl.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/nn.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/nn.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/oc-lnc.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/oc-lnc.js ***!\n \\*****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone:\n 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/pa-in.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/pa-in.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort:\n 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/pl.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/pl.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative =\n 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective =\n 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n '_'\n ),\n monthsParse = [\n /^sty/i,\n /^lut/i,\n /^mar/i,\n /^kwi/i,\n /^maj/i,\n /^cze/i,\n /^lip/i,\n /^sie/i,\n /^wrz/i,\n /^paź/i,\n /^lis/i,\n /^gru/i,\n ];\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays:\n 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate,\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/pt-br.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/pt-br.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida',\n });\n\n return ptBr;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/pt.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/pt.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pt;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ro.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ro.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort:\n 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ru.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ru.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone:\n 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone:\n 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone:\n 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex:\n /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex:\n /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделя',\n ww: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/sd.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/sd.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/se.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/se.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort:\n 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays:\n 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/si.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/si.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays:\n 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/sk.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/sk.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months =\n 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/sl.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/sl.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/sq.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/sq.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/sr-cyrl.js\":\n/*!******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/sr-cyrl.js ***!\n \\******************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једног минута'],\n mm: ['минут', 'минута', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n d: ['један дан', 'једног дана'],\n dd: ['дан', 'дана', 'дана'],\n M: ['један месец', 'једног месеца'],\n MM: ['месец', 'месеца', 'месеци'],\n y: ['једну годину', 'једне године'],\n yy: ['годину', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'једна година';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n\n return number + ' ' + word;\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort:\n 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/sr.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/sr.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n d: ['jedan dan', 'jednog dana'],\n dd: ['dan', 'dana', 'dana'],\n M: ['jedan mesec', 'jednog meseca'],\n MM: ['mesec', 'meseca', 'meseci'],\n y: ['jednu godinu', 'jedne godine'],\n yy: ['godinu', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'jedna godina';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'godinu') {\n return number + ' godina';\n }\n\n return number + ' ' + word;\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ss.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ss.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays:\n 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/sv.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/sv.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/sw.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/sw.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays:\n 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ta.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ta.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort:\n 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays:\n 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/te.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/te.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort:\n 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/tet.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/tet.js ***!\n \\**************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/tg.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/tg.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n '_'\n ),\n standalone:\n 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/th.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/th.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort:\n 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/tk.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/tk.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/tl-ph.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/tl-ph.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/tlh.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/tlh.js ***!\n \\**************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort:\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/tr.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/tr.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/tzl.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/tzl.js ***!\n \\**************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/tzm-latn.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/tzm-latn.js ***!\n \\*******************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort:\n 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/tzm.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/tzm.js ***!\n \\**************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n monthsShort:\n 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ug-cn.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ug-cn.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort:\n 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/uk.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/uk.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative:\n 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative:\n 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive:\n 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone:\n 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/ur.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ur.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/uz-latn.js\":\n/*!******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/uz-latn.js ***!\n \\******************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays:\n 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/uz.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/uz.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/vi.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/vi.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort:\n 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/x-pseudo.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/x-pseudo.js ***!\n \\*******************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort:\n 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/yo.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/yo.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/zh-cn.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/zh-cn.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/zh-hk.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/zh-hk.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/zh-mo.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/zh-mo.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale/zh-tw.js\":\n/*!****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/zh-tw.js ***!\n \\****************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\")) :\n 0\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhTw;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/locale/ sync ^\\.\\/.*$ ***!\n \\**********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar map = {\n\t\"./af\": \"./build/cht-core-4-6/node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./build/cht-core-4-6/node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./build/cht-core-4-6/node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./build/cht-core-4-6/node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./build/cht-core-4-6/node_modules/moment/locale/az.js\",\n\t\"./be\": \"./build/cht-core-4-6/node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./build/cht-core-4-6/node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./build/cht-core-4-6/node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./build/cht-core-4-6/node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./build/cht-core-4-6/node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./build/cht-core-4-6/node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./build/cht-core-4-6/node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./build/cht-core-4-6/node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./build/cht-core-4-6/node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./build/cht-core-4-6/node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./build/cht-core-4-6/node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./build/cht-core-4-6/node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./build/cht-core-4-6/node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./build/cht-core-4-6/node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./build/cht-core-4-6/node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./build/cht-core-4-6/node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./build/cht-core-4-6/node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./build/cht-core-4-6/node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./build/cht-core-4-6/node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./build/cht-core-4-6/node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./build/cht-core-4-6/node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./build/cht-core-4-6/node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./build/cht-core-4-6/node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./build/cht-core-4-6/node_modules/moment/locale/da.js\",\n\t\"./de\": \"./build/cht-core-4-6/node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./build/cht-core-4-6/node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./build/cht-core-4-6/node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./build/cht-core-4-6/node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./build/cht-core-4-6/node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./build/cht-core-4-6/node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./build/cht-core-4-6/node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./build/cht-core-4-6/node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./build/cht-core-4-6/node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./build/cht-core-4-6/node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./build/cht-core-4-6/node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./build/cht-core-4-6/node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./build/cht-core-4-6/node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./build/cht-core-4-6/node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./build/cht-core-4-6/node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./build/cht-core-4-6/node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./build/cht-core-4-6/node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./build/cht-core-4-6/node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./build/cht-core-4-6/node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./build/cht-core-4-6/node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./build/cht-core-4-6/node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./build/cht-core-4-6/node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./build/cht-core-4-6/node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./build/cht-core-4-6/node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./build/cht-core-4-6/node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./build/cht-core-4-6/node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./build/cht-core-4-6/node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./build/cht-core-4-6/node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./build/cht-core-4-6/node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./build/cht-core-4-6/node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./build/cht-core-4-6/node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./build/cht-core-4-6/node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./build/cht-core-4-6/node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./build/cht-core-4-6/node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./build/cht-core-4-6/node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./build/cht-core-4-6/node_modules/moment/locale/es.js\",\n\t\"./et\": \"./build/cht-core-4-6/node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./build/cht-core-4-6/node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./build/cht-core-4-6/node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./build/cht-core-4-6/node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./build/cht-core-4-6/node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./build/cht-core-4-6/node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./build/cht-core-4-6/node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./build/cht-core-4-6/node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./build/cht-core-4-6/node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./build/cht-core-4-6/node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./build/cht-core-4-6/node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./build/cht-core-4-6/node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./build/cht-core-4-6/node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./build/cht-core-4-6/node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./build/cht-core-4-6/node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./build/cht-core-4-6/node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./build/cht-core-4-6/node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./build/cht-core-4-6/node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./build/cht-core-4-6/node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./build/cht-core-4-6/node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./build/cht-core-4-6/node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./build/cht-core-4-6/node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./build/cht-core-4-6/node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./build/cht-core-4-6/node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./build/cht-core-4-6/node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./build/cht-core-4-6/node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./build/cht-core-4-6/node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./build/cht-core-4-6/node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./build/cht-core-4-6/node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./build/cht-core-4-6/node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./build/cht-core-4-6/node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./build/cht-core-4-6/node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./build/cht-core-4-6/node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./build/cht-core-4-6/node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./build/cht-core-4-6/node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./build/cht-core-4-6/node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./build/cht-core-4-6/node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./build/cht-core-4-6/node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./build/cht-core-4-6/node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./build/cht-core-4-6/node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./build/cht-core-4-6/node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./build/cht-core-4-6/node_modules/moment/locale/id.js\",\n\t\"./is\": \"./build/cht-core-4-6/node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./build/cht-core-4-6/node_modules/moment/locale/is.js\",\n\t\"./it\": \"./build/cht-core-4-6/node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./build/cht-core-4-6/node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./build/cht-core-4-6/node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./build/cht-core-4-6/node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./build/cht-core-4-6/node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./build/cht-core-4-6/node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./build/cht-core-4-6/node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./build/cht-core-4-6/node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./build/cht-core-4-6/node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./build/cht-core-4-6/node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./build/cht-core-4-6/node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./build/cht-core-4-6/node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./build/cht-core-4-6/node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./build/cht-core-4-6/node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./build/cht-core-4-6/node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./build/cht-core-4-6/node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./build/cht-core-4-6/node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./build/cht-core-4-6/node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./build/cht-core-4-6/node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./build/cht-core-4-6/node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./build/cht-core-4-6/node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./build/cht-core-4-6/node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./build/cht-core-4-6/node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./build/cht-core-4-6/node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./build/cht-core-4-6/node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./build/cht-core-4-6/node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./build/cht-core-4-6/node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./build/cht-core-4-6/node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./build/cht-core-4-6/node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./build/cht-core-4-6/node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./build/cht-core-4-6/node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./build/cht-core-4-6/node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./build/cht-core-4-6/node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./build/cht-core-4-6/node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./build/cht-core-4-6/node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./build/cht-core-4-6/node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./build/cht-core-4-6/node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./build/cht-core-4-6/node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./build/cht-core-4-6/node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./build/cht-core-4-6/node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./build/cht-core-4-6/node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./build/cht-core-4-6/node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./build/cht-core-4-6/node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./build/cht-core-4-6/node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./build/cht-core-4-6/node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./build/cht-core-4-6/node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./build/cht-core-4-6/node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./build/cht-core-4-6/node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./build/cht-core-4-6/node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./build/cht-core-4-6/node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./build/cht-core-4-6/node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./build/cht-core-4-6/node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./build/cht-core-4-6/node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./build/cht-core-4-6/node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./build/cht-core-4-6/node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./build/cht-core-4-6/node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./build/cht-core-4-6/node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./build/cht-core-4-6/node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./build/cht-core-4-6/node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./build/cht-core-4-6/node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./build/cht-core-4-6/node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./build/cht-core-4-6/node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./build/cht-core-4-6/node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./build/cht-core-4-6/node_modules/moment/locale/se.js\",\n\t\"./si\": \"./build/cht-core-4-6/node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./build/cht-core-4-6/node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./build/cht-core-4-6/node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./build/cht-core-4-6/node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./build/cht-core-4-6/node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./build/cht-core-4-6/node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./build/cht-core-4-6/node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./build/cht-core-4-6/node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./build/cht-core-4-6/node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./build/cht-core-4-6/node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./build/cht-core-4-6/node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./build/cht-core-4-6/node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./build/cht-core-4-6/node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./build/cht-core-4-6/node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./build/cht-core-4-6/node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./build/cht-core-4-6/node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./build/cht-core-4-6/node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./build/cht-core-4-6/node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./build/cht-core-4-6/node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./build/cht-core-4-6/node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./build/cht-core-4-6/node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./build/cht-core-4-6/node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./build/cht-core-4-6/node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./build/cht-core-4-6/node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./build/cht-core-4-6/node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./build/cht-core-4-6/node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./build/cht-core-4-6/node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./build/cht-core-4-6/node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./build/cht-core-4-6/node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./build/cht-core-4-6/node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./build/cht-core-4-6/node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./build/cht-core-4-6/node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./build/cht-core-4-6/node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./build/cht-core-4-6/node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./build/cht-core-4-6/node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./build/cht-core-4-6/node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./build/cht-core-4-6/node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./build/cht-core-4-6/node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./build/cht-core-4-6/node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./build/cht-core-4-6/node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./build/cht-core-4-6/node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./build/cht-core-4-6/node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./build/cht-core-4-6/node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./build/cht-core-4-6/node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./build/cht-core-4-6/node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./build/cht-core-4-6/node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./build/cht-core-4-6/node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./build/cht-core-4-6/node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./build/cht-core-4-6/node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./build/cht-core-4-6/node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./build/cht-core-4-6/node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./build/cht-core-4-6/node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./build/cht-core-4-6/node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./build/cht-core-4-6/node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./build/cht-core-4-6/node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./build/cht-core-4-6/node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./build/cht-core-4-6/node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./build/cht-core-4-6/node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./build/cht-core-4-6/node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./build/cht-core-4-6/node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/moment/moment.js\":\n/*!**********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/moment/moment.js ***!\n \\**********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\n//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n true ? module.exports = factory() :\n 0\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n \"object\" !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = undefined;\n __webpack_require__(\"./build/cht-core-4-6/node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\")(\"./\" + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/index.js\":\n/*!********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/index.js ***!\n \\********************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\nmodule.exports = exports = __webpack_require__(/*! ./lib */ \"./build/cht-core-4-6/node_modules/nools/lib/index.js\");\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/agenda.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/agenda.js ***!\n \\*************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar extd = __webpack_require__(/*! ./extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n declare = extd.declare,\n AVLTree = extd.AVLTree,\n LinkedList = extd.LinkedList,\n isPromise = extd.isPromiseLike,\n EventEmitter = __webpack_require__(/*! events */ \"events\").EventEmitter;\n\n\nvar FactHash = declare({\n instance: {\n constructor: function () {\n this.memory = {};\n this.memoryValues = new LinkedList();\n },\n\n clear: function () {\n this.memoryValues.clear();\n this.memory = {};\n },\n\n\n remove: function (v) {\n var hashCode = v.hashCode,\n memory = this.memory,\n ret = memory[hashCode];\n if (ret) {\n this.memoryValues.remove(ret);\n delete memory[hashCode];\n }\n return ret;\n },\n\n insert: function (insert) {\n var hashCode = insert.hashCode;\n if (hashCode in this.memory) {\n throw new Error(\"Activation already in agenda \" + insert.rule.name + \" agenda\");\n }\n this.memoryValues.push((this.memory[hashCode] = insert));\n }\n }\n});\n\n\nvar DEFAULT_AGENDA_GROUP = \"main\";\nmodule.exports = declare(EventEmitter, {\n\n instance: {\n constructor: function (flow, conflictResolution) {\n this.agendaGroups = {};\n this.agendaGroupStack = [DEFAULT_AGENDA_GROUP];\n this.rules = {};\n this.flow = flow;\n this.comparator = conflictResolution;\n this.setFocus(DEFAULT_AGENDA_GROUP).addAgendaGroup(DEFAULT_AGENDA_GROUP);\n },\n\n addAgendaGroup: function (groupName) {\n if (!extd.has(this.agendaGroups, groupName)) {\n this.agendaGroups[groupName] = new AVLTree({compare: this.comparator});\n }\n },\n\n getAgendaGroup: function (groupName) {\n return this.agendaGroups[groupName || DEFAULT_AGENDA_GROUP];\n },\n\n setFocus: function (agendaGroup) {\n if (agendaGroup !== this.getFocused() && this.agendaGroups[agendaGroup]) {\n this.agendaGroupStack.push(agendaGroup);\n this.emit(\"focused\", agendaGroup);\n }\n return this;\n },\n\n getFocused: function () {\n var ags = this.agendaGroupStack;\n return ags[ags.length - 1];\n },\n\n getFocusedAgenda: function () {\n return this.agendaGroups[this.getFocused()];\n },\n\n register: function (node) {\n var agendaGroup = node.rule.agendaGroup;\n this.rules[node.name] = {tree: new AVLTree({compare: this.comparator}), factTable: new FactHash()};\n if (agendaGroup) {\n this.addAgendaGroup(agendaGroup);\n }\n },\n\n isEmpty: function () {\n var agendaGroupStack = this.agendaGroupStack, changed = false;\n while (this.getFocusedAgenda().isEmpty() && this.getFocused() !== DEFAULT_AGENDA_GROUP) {\n agendaGroupStack.pop();\n changed = true;\n }\n if (changed) {\n this.emit(\"focused\", this.getFocused());\n }\n return this.getFocusedAgenda().isEmpty();\n },\n\n fireNext: function () {\n var agendaGroupStack = this.agendaGroupStack, ret = false;\n while (this.getFocusedAgenda().isEmpty() && this.getFocused() !== DEFAULT_AGENDA_GROUP) {\n agendaGroupStack.pop();\n }\n if (!this.getFocusedAgenda().isEmpty()) {\n var activation = this.pop();\n this.emit(\"fire\", activation.rule.name, activation.match.factHash);\n var fired = activation.rule.fire(this.flow, activation.match);\n if (isPromise(fired)) {\n ret = fired.then(function () {\n //return true if an activation fired\n return true;\n });\n } else {\n ret = true;\n }\n }\n //return false if activation not fired\n return ret;\n },\n\n pop: function () {\n var tree = this.getFocusedAgenda(), root = tree.__root;\n while (root.right) {\n root = root.right;\n }\n var v = root.data;\n tree.remove(v);\n var rule = this.rules[v.name];\n rule.tree.remove(v);\n rule.factTable.remove(v);\n return v;\n },\n\n peek: function () {\n var tree = this.getFocusedAgenda(), root = tree.__root;\n while (root.right) {\n root = root.right;\n }\n return root.data;\n },\n\n modify: function (node, context) {\n this.retract(node, context);\n this.insert(node, context);\n },\n\n retract: function (node, retract) {\n var rule = this.rules[node.name];\n retract.rule = node;\n var activation = rule.factTable.remove(retract);\n if (activation) {\n this.getAgendaGroup(node.rule.agendaGroup).remove(activation);\n rule.tree.remove(activation);\n }\n },\n\n insert: function (node, insert) {\n var rule = this.rules[node.name], nodeRule = node.rule, agendaGroup = nodeRule.agendaGroup;\n rule.tree.insert(insert);\n this.getAgendaGroup(agendaGroup).insert(insert);\n if (nodeRule.autoFocus) {\n this.setFocus(agendaGroup);\n }\n\n rule.factTable.insert(insert);\n },\n\n dispose: function () {\n for (var i in this.agendaGroups) {\n this.agendaGroups[i].clear();\n }\n var rules = this.rules;\n for (i in rules) {\n if (i in rules) {\n rules[i].tree.clear();\n rules[i].factTable.clear();\n\n }\n }\n this.rules = {};\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/compile/common.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/compile/common.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n/*jshint evil:true*/\n\nvar extd = __webpack_require__(/*! ../extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n forEach = extd.forEach,\n isString = extd.isString;\n\nexports.modifiers = [\"assert\", \"modify\", \"retract\", \"emit\", \"halt\", \"focus\", \"getFacts\"];\n\nvar createFunction = function (body, defined, scope, scopeNames, definedNames) {\n var declares = [];\n forEach(definedNames, function (i) {\n if (body.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= defined.\" + i + \";\");\n }\n });\n\n forEach(scopeNames, function (i) {\n if (body.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= scope.\" + i + \";\");\n }\n });\n body = [\"((function(){\", declares.join(\"\"), \"\\n\\treturn \", body, \"\\n})())\"].join(\"\");\n try {\n return eval(body);\n } catch (e) {\n throw new Error(\"Invalid action : \" + body + \"\\n\" + e.message);\n }\n};\n\nvar createDefined = (function () {\n\n var _createDefined = function (action, defined, scope) {\n if (isString(action)) {\n var declares = [];\n extd(defined).keys().forEach(function (i) {\n if (action.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= defined.\" + i + \";\");\n }\n });\n\n extd(scope).keys().forEach(function (i) {\n if (action.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= function(){var prop = scope.\" + i + \"; return __objToStr__.call(prop) === '[object Function]' ? prop.apply(void 0, arguments) : prop;};\");\n }\n });\n if (declares.length) {\n declares.unshift(\"var __objToStr__ = Object.prototype.toString;\");\n }\n action = [declares.join(\"\"), \"return \", action, \";\"].join(\"\");\n action = new Function(\"defined\", \"scope\", action)(defined, scope);\n }\n var ret = action.hasOwnProperty(\"constructor\") && \"function\" === typeof action.constructor ? action.constructor : function (opts) {\n opts = opts || {};\n for (var i in opts) {\n if (i in action) {\n this[i] = opts[i];\n }\n }\n };\n var proto = ret.prototype;\n for (var i in action) {\n proto[i] = action[i];\n }\n return ret;\n\n };\n\n return function (options, defined, scope) {\n return _createDefined(options.properties, defined, scope);\n };\n})();\n\nexports.createFunction = createFunction;\nexports.createDefined = createDefined;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/compile/index.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/compile/index.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n/*jshint evil:true*/\n\nvar extd = __webpack_require__(/*! ../extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n parser = __webpack_require__(/*! ../parser */ \"./build/cht-core-4-6/node_modules/nools/lib/parser/index.js\"),\n constraintMatcher = __webpack_require__(/*! ../constraintMatcher.js */ \"./build/cht-core-4-6/node_modules/nools/lib/constraintMatcher.js\"),\n indexOf = extd.indexOf,\n forEach = extd.forEach,\n removeDuplicates = extd.removeDuplicates,\n map = extd.map,\n obj = extd.hash,\n keys = obj.keys,\n merge = extd.merge,\n rules = __webpack_require__(/*! ../rule */ \"./build/cht-core-4-6/node_modules/nools/lib/rule.js\"),\n common = __webpack_require__(/*! ./common */ \"./build/cht-core-4-6/node_modules/nools/lib/compile/common.js\"),\n modifiers = common.modifiers,\n createDefined = common.createDefined,\n createFunction = common.createFunction;\n\n\n/**\n * @private\n * Parses an action from a rule definition\n * @param {String} action the body of the action to execute\n * @param {Array} identifiers array of identifiers collected\n * @param {Object} defined an object of defined\n * @param scope\n * @return {Object}\n */\nvar parseAction = function (action, identifiers, defined, scope) {\n var declares = [];\n forEach(identifiers, function (i) {\n if (action.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= facts.\" + i + \";\");\n }\n });\n extd(defined).keys().forEach(function (i) {\n if (action.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= defined.\" + i + \";\");\n }\n });\n\n extd(scope).keys().forEach(function (i) {\n if (action.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= scope.\" + i + \";\");\n }\n });\n extd(modifiers).forEach(function (i) {\n if (action.indexOf(i) !== -1) {\n declares.push(\"if(!\" + i + \"){ var \" + i + \"= flow.\" + i + \";}\");\n }\n });\n var params = [\"facts\", 'flow'];\n if (/next\\(.*\\)/.test(action)) {\n params.push(\"next\");\n }\n action = declares.join(\"\") + action;\n try {\n return new Function(\"defined, scope\", \"return \" + new Function(params.join(\",\"), action).toString())(defined, scope);\n } catch (e) {\n throw new Error(\"Invalid action : \" + action + \"\\n\" + e.message);\n }\n};\n\nvar createRuleFromObject = (function () {\n var __resolveRule = function (rule, identifiers, conditions, defined, name) {\n var condition = [], definedClass = rule[0], alias = rule[1], constraint = rule[2], refs = rule[3];\n if (extd.isHash(constraint)) {\n refs = constraint;\n constraint = null;\n }\n if (definedClass && !!(definedClass = defined[definedClass])) {\n condition.push(definedClass);\n } else {\n throw new Error(\"Invalid class \" + rule[0] + \" for rule \" + name);\n }\n condition.push(alias, constraint, refs);\n conditions.push(condition);\n identifiers.push(alias);\n if (constraint) {\n forEach(constraintMatcher.getIdentifiers(parser.parseConstraint(constraint)), function (i) {\n identifiers.push(i);\n });\n }\n if (extd.isObject(refs)) {\n for (var j in refs) {\n var ident = refs[j];\n if (indexOf(identifiers, ident) === -1) {\n identifiers.push(ident);\n }\n }\n }\n };\n\n function parseRule(rule, conditions, identifiers, defined, name) {\n if (rule.length) {\n var r0 = rule[0];\n if (r0 === \"not\" || r0 === \"exists\") {\n var temp = [];\n rule.shift();\n __resolveRule(rule, identifiers, temp, defined, name);\n var cond = temp[0];\n cond.unshift(r0);\n conditions.push(cond);\n } else if (r0 === \"or\") {\n var conds = [r0];\n rule.shift();\n forEach(rule, function (cond) {\n parseRule(cond, conds, identifiers, defined, name);\n });\n conditions.push(conds);\n } else {\n __resolveRule(rule, identifiers, conditions, defined, name);\n identifiers = removeDuplicates(identifiers);\n }\n }\n\n }\n\n return function (obj, defined, scope) {\n var name = obj.name;\n if (extd.isEmpty(obj)) {\n throw new Error(\"Rule is empty\");\n }\n var options = obj.options || {};\n options.scope = scope;\n var constraints = obj.constraints || [], l = constraints.length;\n if (!l) {\n constraints = [\"true\"];\n }\n var action = obj.action;\n if (extd.isUndefined(action)) {\n throw new Error(\"No action was defined for rule \" + name);\n }\n var conditions = [], identifiers = [];\n forEach(constraints, function (rule) {\n parseRule(rule, conditions, identifiers, defined, name);\n });\n return rules.createRule(name, options, conditions, parseAction(action, identifiers, defined, scope));\n };\n})();\n\nexports.parse = function (src, file) {\n //parse flow from file\n return parser.parseRuleSet(src, file);\n\n};\nexports.compile = function (flowObj, options, cb, Container) {\n if (extd.isFunction(options)) {\n cb = options;\n options = {};\n } else {\n options = options || {};\n }\n var name = flowObj.name || options.name;\n //if !name throw an error\n if (!name) {\n throw new Error(\"Name must be present in JSON or options\");\n }\n var flow = new Container(name);\n var defined = merge({Array: Array, String: String, Number: Number, Boolean: Boolean, RegExp: RegExp, Date: Date, Object: Object}, options.define || {});\n if (typeof Buffer !== \"undefined\") {\n defined.Buffer = Buffer;\n }\n var scope = merge({console: console}, options.scope);\n //add the anything added to the scope as a property\n forEach(flowObj.scope, function (s) {\n scope[s.name] = true;\n });\n //add any defined classes in the parsed flowObj to defined\n forEach(flowObj.define, function (d) {\n defined[d.name] = createDefined(d, defined, scope);\n });\n\n //expose any defined classes to the flow.\n extd(defined).forEach(function (cls, name) {\n flow.addDefined(name, cls);\n });\n\n var scopeNames = extd(flowObj.scope).pluck(\"name\").union(extd(scope).keys().value()).value();\n var definedNames = map(keys(defined), function (s) {\n return s;\n });\n forEach(flowObj.scope, function (s) {\n scope[s.name] = createFunction(s.body, defined, scope, scopeNames, definedNames);\n });\n var rules = flowObj.rules;\n if (rules.length) {\n forEach(rules, function (rule) {\n flow.__rules = flow.__rules.concat(createRuleFromObject(rule, defined, scope));\n });\n }\n if (cb) {\n cb.call(flow, flow);\n }\n return flow;\n};\n\nexports.transpile = __webpack_require__(/*! ./transpile */ \"./build/cht-core-4-6/node_modules/nools/lib/compile/transpile.js\").transpile;\n\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/compile/transpile.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/compile/transpile.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\nvar extd = __webpack_require__(/*! ../extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n forEach = extd.forEach,\n indexOf = extd.indexOf,\n merge = extd.merge,\n isString = extd.isString,\n modifiers = __webpack_require__(/*! ./common */ \"./build/cht-core-4-6/node_modules/nools/lib/compile/common.js\").modifiers,\n constraintMatcher = __webpack_require__(/*! ../constraintMatcher */ \"./build/cht-core-4-6/node_modules/nools/lib/constraintMatcher.js\"),\n parser = __webpack_require__(/*! ../parser */ \"./build/cht-core-4-6/node_modules/nools/lib/parser/index.js\");\n\nfunction definedToJs(options) {\n /*jshint evil:true*/\n options = isString(options) ? new Function(\"return \" + options + \";\")() : options;\n var ret = [\"(function(){\"], value;\n\n if (options.hasOwnProperty(\"constructor\") && \"function\" === typeof options.constructor) {\n ret.push(\"var Defined = \" + options.constructor.toString() + \";\");\n } else {\n ret.push(\"var Defined = function(opts){ for(var i in opts){if(opts.hasOwnProperty(i)){this[i] = opts[i];}}};\");\n }\n ret.push(\"var proto = Defined.prototype;\");\n for (var key in options) {\n if (options.hasOwnProperty(key)) {\n value = options[key];\n ret.push(\"proto.\" + key + \" = \" + (extd.isFunction(value) ? value.toString() : extd.format(\"%j\", value)) + \";\");\n }\n }\n ret.push(\"return Defined;\");\n ret.push(\"}())\");\n return ret.join(\"\");\n\n}\n\nfunction actionToJs(action, identifiers, defined, scope) {\n var declares = [], usedVars = {};\n forEach(identifiers, function (i) {\n if (action.indexOf(i) !== -1) {\n usedVars[i] = true;\n declares.push(\"var \" + i + \"= facts.\" + i + \";\");\n }\n });\n extd(defined).keys().forEach(function (i) {\n if (action.indexOf(i) !== -1 && !usedVars[i]) {\n usedVars[i] = true;\n declares.push(\"var \" + i + \"= defined.\" + i + \";\");\n }\n });\n\n extd(scope).keys().forEach(function (i) {\n if (action.indexOf(i) !== -1 && !usedVars[i]) {\n usedVars[i] = true;\n declares.push(\"var \" + i + \"= scope.\" + i + \";\");\n }\n });\n extd(modifiers).forEach(function (i) {\n if (action.indexOf(i) !== -1 && !usedVars[i]) {\n declares.push(\"var \" + i + \"= flow.\" + i + \";\");\n }\n });\n var params = [\"facts\", 'flow'];\n if (/next\\(.*\\)/.test(action)) {\n params.push(\"next\");\n }\n action = declares.join(\"\") + action;\n try {\n return [\"function(\", params.join(\",\"), \"){\", action, \"}\"].join(\"\");\n } catch (e) {\n throw new Error(\"Invalid action : \" + action + \"\\n\" + e.message);\n }\n}\n\nfunction parseConstraintModifier(constraint, ret) {\n if (constraint.length && extd.isString(constraint[0])) {\n var modifier = constraint[0].match(\" *(from)\");\n if (modifier) {\n modifier = modifier[0];\n switch (modifier) {\n case \"from\":\n ret.push(', \"', constraint.shift(), '\"');\n break;\n default:\n throw new Error(\"Unrecognized modifier \" + modifier);\n }\n }\n }\n}\n\nfunction parseConstraintHash(constraint, ret, identifiers) {\n if (constraint.length && extd.isHash(constraint[0])) {\n //ret of options\n var refs = constraint.shift();\n extd(refs).values().forEach(function (ident) {\n if (indexOf(identifiers, ident) === -1) {\n identifiers.push(ident);\n }\n });\n ret.push(',' + extd.format('%j', [refs]));\n }\n}\n\nfunction constraintsToJs(constraint, identifiers) {\n constraint = constraint.slice(0);\n var ret = [];\n if (constraint[0] === \"or\") {\n ret.push('[\"' + constraint.shift() + '\"');\n ret.push(extd.map(constraint,function (c) {\n return constraintsToJs(c, identifiers);\n }).join(\",\") + \"]\");\n return ret;\n } else if (constraint[0] === \"not\" || constraint[0] === \"exists\") {\n ret.push('\"', constraint.shift(), '\", ');\n }\n identifiers.push(constraint[1]);\n ret.push(constraint[0], ', \"' + constraint[1].replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + '\"');\n constraint.splice(0, 2);\n if (constraint.length) {\n //constraint\n var c = constraint.shift();\n if (extd.isString(c) && c) {\n ret.push(',\"' + c.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\"), '\"');\n forEach(constraintMatcher.getIdentifiers(parser.parseConstraint(c)), function (i) {\n identifiers.push(i);\n });\n } else {\n ret.push(',\"true\"');\n constraint.unshift(c);\n }\n }\n parseConstraintModifier(constraint, ret);\n parseConstraintHash(constraint, ret, identifiers);\n return '[' + ret.join(\"\") + ']';\n}\n\nexports.transpile = function (flowObj, options) {\n options = options || {};\n var ret = [];\n ret.push(\"(function(){\");\n ret.push(\"return function(options){\");\n ret.push(\"options = options || {};\");\n ret.push(\"var bind = function(scope, fn){return function(){return fn.apply(scope, arguments);};}, defined = {Array: Array, String: String, Number: Number, Boolean: Boolean, RegExp: RegExp, Date: Date, Object: Object}, scope = options.scope || {};\");\n ret.push(\"var optDefined = options.defined || {}; for(var i in optDefined){defined[i] = optDefined[i];}\");\n var defined = merge({Array: Array, String: String, Number: Number, Boolean: Boolean, RegExp: RegExp, Date: Date, Object: Object}, options.define || {});\n if (typeof Buffer !== \"undefined\") {\n defined.Buffer = Buffer;\n }\n var scope = merge({console: console}, options.scope);\n ret.push([\"return nools.flow('\", options.name, \"', function(){\"].join(\"\"));\n //add any defined classes in the parsed flowObj to defined\n ret.push(extd(flowObj.define || []).map(function (defined) {\n var name = defined.name;\n defined[name] = {};\n return [\"var\", name, \"= defined.\" + name, \"= this.addDefined('\" + name + \"',\", definedToJs(defined.properties) + \");\"].join(\" \");\n }).value().join(\"\\n\"));\n ret.push(extd(flowObj.scope || []).map(function (s) {\n var name = s.name;\n scope[name] = {};\n return [\"var\", name, \"= scope.\" + name, \"= \", s.body, \";\"].join(\" \");\n }).value().join(\"\\n\"));\n ret.push(\"scope.console = console;\\n\");\n\n\n ret.push(extd(flowObj.rules || []).map(function (rule) {\n var identifiers = [], ret = [\"this.rule('\", rule.name.replace(/'/g, \"\\\\'\"), \"'\"], options = extd.merge(rule.options || {}, {scope: \"scope\"});\n ret.push(\",\", extd.format(\"%j\", [options]).replace(/(:\"scope\")/, \":scope\"));\n if (rule.constraints && !extd.isEmpty(rule.constraints)) {\n ret.push(\", [\");\n ret.push(extd(rule.constraints).map(function (c) {\n return constraintsToJs(c, identifiers);\n }).value().join(\",\"));\n ret.push(\"]\");\n }\n ret.push(\",\", actionToJs(rule.action, identifiers, defined, scope));\n ret.push(\");\");\n return ret.join(\"\");\n }).value().join(\"\"));\n ret.push(\"});\");\n ret.push(\"};\");\n ret.push(\"}());\");\n return ret.join(\"\");\n};\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/conflict.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/conflict.js ***!\n \\***************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\nvar map = __webpack_require__(/*! ./extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\").map;\n\nfunction salience(a, b) {\n return a.rule.priority - b.rule.priority;\n}\n\nfunction bucketCounter(a, b) {\n return a.counter - b.counter;\n}\n\nfunction factRecency(a, b) {\n /*jshint noempty: false*/\n\n var i = 0;\n var aMatchRecency = a.match.recency,\n bMatchRecency = b.match.recency, aLength = aMatchRecency.length - 1, bLength = bMatchRecency.length - 1;\n while (aMatchRecency[i] === bMatchRecency[i] && i < aLength && i < bLength && i++) {\n }\n var ret = aMatchRecency[i] - bMatchRecency[i];\n if (!ret) {\n ret = aLength - bLength;\n }\n return ret;\n}\n\nfunction activationRecency(a, b) {\n return a.recency - b.recency;\n}\n\nvar strategies = {\n salience: salience,\n bucketCounter: bucketCounter,\n factRecency: factRecency,\n activationRecency: activationRecency\n};\n\nexports.strategies = strategies;\nexports.strategy = function (strats) {\n strats = map(strats, function (s) {\n return strategies[s];\n });\n var stratsLength = strats.length;\n\n return function (a, b) {\n var i = -1, ret = 0;\n var equal = (a === b) || (a.name === b.name && a.hashCode === b.hashCode);\n if (!equal) {\n while (++i < stratsLength && !ret) {\n ret = strats[i](a, b);\n }\n ret = ret > 0 ? 1 : -1;\n }\n return ret;\n };\n};\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/constraint.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/constraint.js ***!\n \\*****************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nvar extd = __webpack_require__(/*! ./extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n deepEqual = extd.deepEqual,\n merge = extd.merge,\n instanceOf = extd.instanceOf,\n filter = extd.filter,\n declare = extd.declare,\n constraintMatcher;\n\nvar id = 0;\nvar Constraint = declare({\n\n type: null,\n\n instance: {\n constructor: function (constraint) {\n if (!constraintMatcher) {\n constraintMatcher = __webpack_require__(/*! ./constraintMatcher */ \"./build/cht-core-4-6/node_modules/nools/lib/constraintMatcher.js\");\n }\n this.id = id++;\n this.constraint = constraint;\n extd.bindAll(this, [\"assert\"]);\n },\n \"assert\": function () {\n throw new Error(\"not implemented\");\n },\n\n getIndexableProperties: function () {\n return [];\n },\n\n equal: function (constraint) {\n return instanceOf(constraint, this._static) && this.get(\"alias\") === constraint.get(\"alias\") && extd.deepEqual(this.constraint, constraint.constraint);\n },\n\n getters: {\n variables: function () {\n return [this.get(\"alias\")];\n }\n }\n\n\n }\n});\n\nConstraint.extend({\n instance: {\n\n type: \"object\",\n\n constructor: function (type) {\n this._super([type]);\n },\n\n \"assert\": function (param) {\n return param instanceof this.constraint || param.constructor === this.constraint;\n },\n\n equal: function (constraint) {\n return instanceOf(constraint, this._static) && this.constraint === constraint.constraint;\n }\n }\n}).as(exports, \"ObjectConstraint\");\n\nvar EqualityConstraint = Constraint.extend({\n\n instance: {\n\n type: \"equality\",\n\n constructor: function (constraint, options) {\n this._super([constraint]);\n options = options || {};\n this.pattern = options.pattern;\n this._matcher = constraintMatcher.getMatcher(constraint, options, true);\n },\n\n \"assert\": function (values) {\n return this._matcher(values);\n }\n }\n}).as(exports, \"EqualityConstraint\");\n\nEqualityConstraint.extend({instance: {type: \"inequality\"}}).as(exports, \"InequalityConstraint\");\nEqualityConstraint.extend({instance: {type: \"comparison\"}}).as(exports, \"ComparisonConstraint\");\n\nConstraint.extend({\n\n instance: {\n\n type: \"equality\",\n\n constructor: function () {\n this._super([\n [true]\n ]);\n },\n\n equal: function (constraint) {\n return instanceOf(constraint, this._static) && this.get(\"alias\") === constraint.get(\"alias\");\n },\n\n\n \"assert\": function () {\n return true;\n }\n }\n}).as(exports, \"TrueConstraint\");\n\nvar ReferenceConstraint = Constraint.extend({\n\n instance: {\n\n type: \"reference\",\n\n constructor: function (constraint, options) {\n this.cache = {};\n this._super([constraint]);\n options = options || {};\n this.values = [];\n this.pattern = options.pattern;\n this._options = options;\n this._matcher = constraintMatcher.getMatcher(constraint, options, false);\n },\n\n \"assert\": function (fact, fh) {\n try {\n return this._matcher(fact, fh);\n } catch (e) {\n throw new Error(\"Error with evaluating pattern \" + this.pattern + \" \" + e.message);\n }\n\n },\n\n merge: function (that) {\n var ret = this;\n if (that instanceof ReferenceConstraint) {\n ret = new this._static([this.constraint, that.constraint, \"and\"], merge({}, this._options, this._options));\n ret._alias = this._alias || that._alias;\n ret.vars = this.vars.concat(that.vars);\n }\n return ret;\n },\n\n equal: function (constraint) {\n return instanceOf(constraint, this._static) && extd.deepEqual(this.constraint, constraint.constraint);\n },\n\n\n getters: {\n variables: function () {\n return this.vars;\n },\n\n alias: function () {\n return this._alias;\n }\n },\n\n setters: {\n alias: function (alias) {\n this._alias = alias;\n this.vars = filter(constraintMatcher.getIdentifiers(this.constraint), function (v) {\n return v !== alias;\n });\n }\n }\n }\n\n}).as(exports, \"ReferenceConstraint\");\n\n\nReferenceConstraint.extend({\n instance: {\n type: \"reference_equality\",\n op: \"eq\",\n getIndexableProperties: function () {\n return constraintMatcher.getIndexableProperties(this.constraint);\n }\n }\n}).as(exports, \"ReferenceEqualityConstraint\")\n .extend({instance: {type: \"reference_inequality\", op: \"neq\"}}).as(exports, \"ReferenceInequalityConstraint\")\n .extend({instance: {type: \"reference_gt\", op: \"gt\"}}).as(exports, \"ReferenceGTConstraint\")\n .extend({instance: {type: \"reference_gte\", op: \"gte\"}}).as(exports, \"ReferenceGTEConstraint\")\n .extend({instance: {type: \"reference_lt\", op: \"lt\"}}).as(exports, \"ReferenceLTConstraint\")\n .extend({instance: {type: \"reference_lte\", op: \"lte\"}}).as(exports, \"ReferenceLTEConstraint\");\n\n\nConstraint.extend({\n instance: {\n\n type: \"hash\",\n\n constructor: function (hash) {\n this._super([hash]);\n },\n\n equal: function (constraint) {\n return extd.instanceOf(constraint, this._static) && this.get(\"alias\") === constraint.get(\"alias\") && extd.deepEqual(this.constraint, constraint.constraint);\n },\n\n \"assert\": function () {\n return true;\n },\n\n getters: {\n variables: function () {\n return this.constraint;\n }\n }\n\n }\n}).as(exports, \"HashConstraint\");\n\nConstraint.extend({\n instance: {\n constructor: function (constraints, options) {\n this.type = \"from\";\n this.constraints = constraintMatcher.getSourceMatcher(constraints, (options || {}), true);\n extd.bindAll(this, [\"assert\"]);\n },\n\n equal: function (constraint) {\n return instanceOf(constraint, this._static) && this.get(\"alias\") === constraint.get(\"alias\") && deepEqual(this.constraints, constraint.constraints);\n },\n\n \"assert\": function (fact, fh) {\n return this.constraints(fact, fh);\n },\n\n getters: {\n variables: function () {\n return this.constraint;\n }\n }\n\n }\n}).as(exports, \"FromConstraint\");\n\nConstraint.extend({\n instance: {\n constructor: function (func, options) {\n this.type = \"custom\";\n this.fn = func;\n this.options = options;\n extd.bindAll(this, [\"assert\"]);\n },\n\n equal: function (constraint) {\n return instanceOf(constraint, this._static) && this.fn === constraint.constraint;\n },\n\n \"assert\": function (fact, fh) {\n return this.fn(fact, fh);\n }\n }\n}).as(exports, \"CustomConstraint\");\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/constraintMatcher.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/constraintMatcher.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nvar extd = __webpack_require__(/*! ./extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n isArray = extd.isArray,\n forEach = extd.forEach,\n some = extd.some,\n indexOf = extd.indexOf,\n isNumber = extd.isNumber,\n removeDups = extd.removeDuplicates,\n atoms = __webpack_require__(/*! ./constraint */ \"./build/cht-core-4-6/node_modules/nools/lib/constraint.js\");\n\nfunction getProps(val) {\n return extd(val).map(function mapper(val) {\n return isArray(val) ? isArray(val[0]) ? getProps(val).value() : val.reverse().join(\".\") : val;\n }).flatten().filter(function (v) {\n return !!v;\n });\n}\n\nvar definedFuncs = {\n indexOf: extd.indexOf,\n now: function () {\n return new Date();\n },\n\n Date: function (y, m, d, h, min, s, ms) {\n var date = new Date();\n if (isNumber(y)) {\n date.setYear(y);\n }\n if (isNumber(m)) {\n date.setMonth(m);\n }\n if (isNumber(d)) {\n date.setDate(d);\n }\n if (isNumber(h)) {\n date.setHours(h);\n }\n if (isNumber(min)) {\n date.setMinutes(min);\n }\n if (isNumber(s)) {\n date.setSeconds(s);\n }\n if (isNumber(ms)) {\n date.setMilliseconds(ms);\n }\n return date;\n },\n\n lengthOf: function (arr, length) {\n return arr.length === length;\n },\n\n isTrue: function (val) {\n return val === true;\n },\n\n isFalse: function (val) {\n return val === false;\n },\n\n isNotNull: function (actual) {\n return actual !== null;\n },\n\n dateCmp: function (dt1, dt2) {\n return extd.compare(dt1, dt2);\n }\n\n};\n\nforEach([\"years\", \"days\", \"months\", \"hours\", \"minutes\", \"seconds\"], function (k) {\n definedFuncs[k + \"FromNow\"] = extd[k + \"FromNow\"];\n definedFuncs[k + \"Ago\"] = extd[k + \"Ago\"];\n});\n\n\nforEach([\"isArray\", \"isNumber\", \"isHash\", \"isObject\", \"isDate\", \"isBoolean\", \"isString\", \"isRegExp\", \"isNull\", \"isEmpty\",\n \"isUndefined\", \"isDefined\", \"isUndefinedOrNull\", \"isPromiseLike\", \"isFunction\", \"deepEqual\"], function (k) {\n var m = extd[k];\n definedFuncs[k] = function () {\n return m.apply(extd, arguments);\n };\n});\n\n\nvar lang = {\n\n equal: function (c1, c2) {\n var ret = false;\n if (c1 === c2) {\n ret = true;\n } else {\n if (c1[2] === c2[2]) {\n if (indexOf([\"string\", \"number\", \"boolean\", \"regexp\", \"identifier\", \"null\"], c1[2]) !== -1) {\n ret = c1[0] === c2[0];\n } else if (c1[2] === \"unary\" || c1[2] === \"logicalNot\") {\n ret = this.equal(c1[0], c2[0]);\n } else {\n ret = this.equal(c1[0], c2[0]) && this.equal(c1[1], c2[1]);\n }\n }\n }\n return ret;\n },\n\n __getProperties: function (rule) {\n var ret = [];\n if (rule) {\n var rule2 = rule[2];\n if (!rule2) {\n return ret;\n }\n if (rule2 !== \"prop\" &&\n rule2 !== \"identifier\" &&\n rule2 !== \"string\" &&\n rule2 !== \"number\" &&\n rule2 !== \"boolean\" &&\n rule2 !== \"regexp\" &&\n rule2 !== \"unary\" &&\n rule2 !== \"unary\") {\n ret[0] = this.__getProperties(rule[0]);\n ret[1] = this.__getProperties(rule[1]);\n } else if (rule2 === \"identifier\") {\n //at the bottom\n ret = [rule[0]];\n } else {\n ret = lang.__getProperties(rule[1]).concat(lang.__getProperties(rule[0]));\n }\n }\n return ret;\n },\n\n getIndexableProperties: function (rule) {\n if (rule[2] === \"composite\") {\n return this.getIndexableProperties(rule[0]);\n } else if (/^(\\w+(\\['[^']*'])*) *([!=]==?|[<>]=?) (\\w+(\\['[^']*'])*)$/.test(this.parse(rule))) {\n return getProps(this.__getProperties(rule)).flatten().value();\n } else {\n return [];\n }\n },\n\n getIdentifiers: function (rule) {\n var ret = [];\n var rule2 = rule[2];\n\n if (rule2 === \"identifier\") {\n //its an identifier so stop\n return [rule[0]];\n } else if (rule2 === \"function\") {\n ret = ret.concat(this.getIdentifiers(rule[0])).concat(this.getIdentifiers(rule[1]));\n } else if (rule2 !== \"string\" &&\n rule2 !== \"number\" &&\n rule2 !== \"boolean\" &&\n rule2 !== \"regexp\" &&\n rule2 !== \"unary\" &&\n rule2 !== \"unary\") {\n //its an expression so keep going\n if (rule2 === \"prop\") {\n ret = ret.concat(this.getIdentifiers(rule[0]));\n if (rule[1]) {\n var propChain = rule[1];\n //go through the member variables and collect any identifiers that may be in functions\n while (isArray(propChain)) {\n if (propChain[2] === \"function\") {\n ret = ret.concat(this.getIdentifiers(propChain[1]));\n break;\n } else {\n propChain = propChain[1];\n }\n }\n }\n\n } else {\n if (rule[0]) {\n ret = ret.concat(this.getIdentifiers(rule[0]));\n }\n if (rule[1]) {\n ret = ret.concat(this.getIdentifiers(rule[1]));\n }\n }\n }\n //remove dups and return\n return removeDups(ret);\n },\n\n toConstraints: function (rule, options) {\n var ret = [],\n alias = options.alias,\n scope = options.scope || {};\n\n var rule2 = rule[2];\n\n\n if (rule2 === \"and\") {\n ret = ret.concat(this.toConstraints(rule[0], options)).concat(this.toConstraints(rule[1], options));\n } else if (\n rule2 === \"composite\" ||\n rule2 === \"or\" ||\n rule2 === \"lt\" ||\n rule2 === \"gt\" ||\n rule2 === \"lte\" ||\n rule2 === \"gte\" ||\n rule2 === \"like\" ||\n rule2 === \"notLike\" ||\n rule2 === \"eq\" ||\n rule2 === \"neq\" ||\n rule2 === \"seq\" ||\n rule2 === \"sneq\" ||\n rule2 === \"in\" ||\n rule2 === \"notIn\" ||\n rule2 === \"prop\" ||\n rule2 === \"propLookup\" ||\n rule2 === \"function\" ||\n rule2 === \"logicalNot\") {\n var isReference = some(this.getIdentifiers(rule), function (i) {\n return i !== alias && !(i in definedFuncs) && !(i in scope);\n });\n switch (rule2) {\n case \"eq\":\n ret.push(new atoms[isReference ? \"ReferenceEqualityConstraint\" : \"EqualityConstraint\"](rule, options));\n break;\n case \"seq\":\n ret.push(new atoms[isReference ? \"ReferenceEqualityConstraint\" : \"EqualityConstraint\"](rule, options));\n break;\n case \"neq\":\n ret.push(new atoms[isReference ? \"ReferenceInequalityConstraint\" : \"InequalityConstraint\"](rule, options));\n break;\n case \"sneq\":\n ret.push(new atoms[isReference ? \"ReferenceInequalityConstraint\" : \"InequalityConstraint\"](rule, options));\n break;\n case \"gt\":\n ret.push(new atoms[isReference ? \"ReferenceGTConstraint\" : \"ComparisonConstraint\"](rule, options));\n break;\n case \"gte\":\n ret.push(new atoms[isReference ? \"ReferenceGTEConstraint\" : \"ComparisonConstraint\"](rule, options));\n break;\n case \"lt\":\n ret.push(new atoms[isReference ? \"ReferenceLTConstraint\" : \"ComparisonConstraint\"](rule, options));\n break;\n case \"lte\":\n ret.push(new atoms[isReference ? \"ReferenceLTEConstraint\" : \"ComparisonConstraint\"](rule, options));\n break;\n default:\n ret.push(new atoms[isReference ? \"ReferenceConstraint\" : \"ComparisonConstraint\"](rule, options));\n }\n\n }\n return ret;\n },\n\n\n parse: function (rule) {\n return this[rule[2]](rule[0], rule[1]);\n },\n\n composite: function (lhs) {\n return this.parse(lhs);\n },\n\n and: function (lhs, rhs) {\n return [\"(\", this.parse(lhs), \"&&\", this.parse(rhs), \")\"].join(\" \");\n },\n\n or: function (lhs, rhs) {\n return [\"(\", this.parse(lhs), \"||\", this.parse(rhs), \")\"].join(\" \");\n },\n\n prop: function (name, prop) {\n if (prop[2] === \"function\") {\n return [this.parse(name), this.parse(prop)].join(\".\");\n } else {\n return [this.parse(name), \"['\", this.parse(prop), \"']\"].join(\"\");\n }\n },\n\n propLookup: function (name, prop) {\n if (prop[2] === \"function\") {\n return [this.parse(name), this.parse(prop)].join(\".\");\n } else {\n return [this.parse(name), \"[\", this.parse(prop), \"]\"].join(\"\");\n }\n },\n\n unary: function (lhs) {\n return -1 * this.parse(lhs);\n },\n\n plus: function (lhs, rhs) {\n return [this.parse(lhs), \"+\", this.parse(rhs)].join(\" \");\n },\n minus: function (lhs, rhs) {\n return [this.parse(lhs), \"-\", this.parse(rhs)].join(\" \");\n },\n\n mult: function (lhs, rhs) {\n return [this.parse(lhs), \"*\", this.parse(rhs)].join(\" \");\n },\n\n div: function (lhs, rhs) {\n return [this.parse(lhs), \"/\", this.parse(rhs)].join(\" \");\n },\n\n mod: function (lhs, rhs) {\n return [this.parse(lhs), \"%\", this.parse(rhs)].join(\" \");\n },\n\n lt: function (lhs, rhs) {\n return [this.parse(lhs), \"<\", this.parse(rhs)].join(\" \");\n },\n gt: function (lhs, rhs) {\n return [this.parse(lhs), \">\", this.parse(rhs)].join(\" \");\n },\n lte: function (lhs, rhs) {\n return [this.parse(lhs), \"<=\", this.parse(rhs)].join(\" \");\n },\n gte: function (lhs, rhs) {\n return [this.parse(lhs), \">=\", this.parse(rhs)].join(\" \");\n },\n like: function (lhs, rhs) {\n return [this.parse(rhs), \".test(\", this.parse(lhs), \")\"].join(\"\");\n },\n notLike: function (lhs, rhs) {\n return [\"!\", this.parse(rhs), \".test(\", this.parse(lhs), \")\"].join(\"\");\n },\n eq: function (lhs, rhs) {\n return [this.parse(lhs), \"==\", this.parse(rhs)].join(\" \");\n },\n\n seq: function (lhs, rhs) {\n return [this.parse(lhs), \"===\", this.parse(rhs)].join(\" \");\n },\n\n neq: function (lhs, rhs) {\n return [this.parse(lhs), \"!=\", this.parse(rhs)].join(\" \");\n },\n\n sneq: function (lhs, rhs) {\n return [this.parse(lhs), \"!==\", this.parse(rhs)].join(\" \");\n },\n\n \"in\": function (lhs, rhs) {\n return [\"(indexOf(\", this.parse(rhs), \",\", this.parse(lhs), \")) != -1\"].join(\"\");\n },\n\n \"notIn\": function (lhs, rhs) {\n return [\"(indexOf(\", this.parse(rhs), \",\", this.parse(lhs), \")) == -1\"].join(\"\");\n },\n\n \"arguments\": function (lhs, rhs) {\n var ret = [];\n if (lhs) {\n ret.push(this.parse(lhs));\n }\n if (rhs) {\n ret.push(this.parse(rhs));\n }\n return ret.join(\",\");\n },\n\n \"array\": function (lhs) {\n var args = [];\n if (lhs) {\n args = this.parse(lhs);\n if (isArray(args)) {\n return args;\n } else {\n return [\"[\", args, \"]\"].join(\"\");\n }\n }\n return [\"[\", args.join(\",\"), \"]\"].join(\"\");\n },\n\n \"function\": function (lhs, rhs) {\n var args = this.parse(rhs);\n return [this.parse(lhs), \"(\", args, \")\"].join(\"\");\n },\n\n \"string\": function (lhs) {\n return \"'\" + lhs + \"'\";\n },\n\n \"number\": function (lhs) {\n return lhs;\n },\n\n \"boolean\": function (lhs) {\n return lhs;\n },\n\n regexp: function (lhs) {\n return lhs;\n },\n\n identifier: function (lhs) {\n return lhs;\n },\n\n \"null\": function () {\n return \"null\";\n },\n\n logicalNot: function (lhs) {\n return [\"!(\", this.parse(lhs), \")\"].join(\"\");\n }\n};\n\nvar matcherCount = 0;\nvar toJs = exports.toJs = function (rule, scope, alias, equality, wrap) {\n /*jshint evil:true*/\n var js = lang.parse(rule);\n scope = scope || {};\n var vars = lang.getIdentifiers(rule);\n var closureVars = [\"var indexOf = definedFuncs.indexOf; var hasOwnProperty = Object.prototype.hasOwnProperty;\"], funcVars = [];\n extd(vars).filter(function (v) {\n var ret = [\"var \", v, \" = \"];\n if (definedFuncs.hasOwnProperty(v)) {\n ret.push(\"definedFuncs['\", v, \"']\");\n } else if (scope.hasOwnProperty(v)) {\n ret.push(\"scope['\", v, \"']\");\n } else {\n return true;\n }\n ret.push(\";\");\n closureVars.push(ret.join(\"\"));\n return false;\n }).forEach(function (v) {\n var ret = [\"var \", v, \" = \"];\n if (equality || v !== alias) {\n ret.push(\"fact.\" + v);\n } else if (v === alias) {\n ret.push(\"hash.\", v, \"\");\n }\n ret.push(\";\");\n funcVars.push(ret.join(\"\"));\n });\n var closureBody = closureVars.join(\"\") + \"return function matcher\" + (matcherCount++) + (!equality ? \"(fact, hash){\" : \"(fact){\") + funcVars.join(\"\") + \" return \" + (wrap ? wrap(js) : js) + \";}\";\n var f = new Function(\"definedFuncs, scope\", closureBody)(definedFuncs, scope);\n //console.log(f.toString());\n return f;\n};\n\nexports.getMatcher = function (rule, options, equality) {\n options = options || {};\n return toJs(rule, options.scope, options.alias, equality, function (src) {\n return \"!!(\" + src + \")\";\n });\n};\n\nexports.getSourceMatcher = function (rule, options, equality) {\n options = options || {};\n return toJs(rule, options.scope, options.alias, equality, function (src) {\n return src;\n });\n};\n\nexports.toConstraints = function (constraint, options) {\n if (typeof constraint === 'function') {\n return [new atoms.CustomConstraint(constraint, options)];\n }\n //constraint.split(\"&&\")\n return lang.toConstraints(constraint, options);\n};\n\nexports.equal = function (c1, c2) {\n return lang.equal(c1, c2);\n};\n\nexports.getIdentifiers = function (constraint) {\n return lang.getIdentifiers(constraint);\n};\n\nexports.getIndexableProperties = function (constraint) {\n return lang.getIndexableProperties(constraint);\n};\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/context.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/context.js ***!\n \\**************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n/* module decorator */ module = __webpack_require__.nmd(module);\n\nvar extd = __webpack_require__(/*! ./extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n isBoolean = extd.isBoolean,\n declare = extd.declare,\n indexOf = extd.indexOf,\n pPush = Array.prototype.push;\n\nfunction createContextHash(paths, hashCode) {\n var ret = \"\",\n i = -1,\n l = paths.length;\n while (++i < l) {\n ret += paths[i].id + \":\";\n }\n ret += hashCode;\n return ret;\n}\n\nfunction merge(h1, h2, aliases) {\n var i = -1, l = aliases.length, alias;\n while (++i < l) {\n alias = aliases[i];\n h1[alias] = h2[alias];\n }\n}\n\nfunction unionRecency(arr, arr1, arr2) {\n pPush.apply(arr, arr1);\n var i = -1, l = arr2.length, val, j = arr.length;\n while (++i < l) {\n val = arr2[i];\n if (indexOf(arr, val) === -1) {\n arr[j++] = val;\n }\n }\n}\n\nvar Match = declare({\n instance: {\n\n isMatch: true,\n hashCode: \"\",\n facts: null,\n factIds: null,\n factHash: null,\n recency: null,\n aliases: null,\n\n constructor: function () {\n this.facts = [];\n this.factIds = [];\n this.factHash = {};\n this.recency = [];\n this.aliases = [];\n },\n\n addFact: function (assertable) {\n pPush.call(this.facts, assertable);\n pPush.call(this.recency, assertable.recency);\n pPush.call(this.factIds, assertable.id);\n this.hashCode = this.factIds.join(\":\");\n return this;\n },\n\n merge: function (mr) {\n var ret = new Match();\n ret.isMatch = mr.isMatch;\n pPush.apply(ret.facts, this.facts);\n pPush.apply(ret.facts, mr.facts);\n pPush.apply(ret.aliases, this.aliases);\n pPush.apply(ret.aliases, mr.aliases);\n ret.hashCode = this.hashCode + \":\" + mr.hashCode;\n merge(ret.factHash, this.factHash, this.aliases);\n merge(ret.factHash, mr.factHash, mr.aliases);\n unionRecency(ret.recency, this.recency, mr.recency);\n return ret;\n }\n }\n});\n\nvar Context = declare({\n instance: {\n match: null,\n factHash: null,\n aliases: null,\n fact: null,\n hashCode: null,\n paths: null,\n pathsHash: null,\n\n constructor: function (fact, paths, mr) {\n this.fact = fact;\n if (mr) {\n this.match = mr;\n } else {\n this.match = new Match().addFact(fact);\n }\n this.factHash = this.match.factHash;\n this.aliases = this.match.aliases;\n this.hashCode = this.match.hashCode;\n if (paths) {\n this.paths = paths;\n this.pathsHash = createContextHash(paths, this.hashCode);\n } else {\n this.pathsHash = this.hashCode;\n }\n },\n\n \"set\": function (key, value) {\n this.factHash[key] = value;\n this.aliases.push(key);\n return this;\n },\n\n isMatch: function (isMatch) {\n if (isBoolean(isMatch)) {\n this.match.isMatch = isMatch;\n } else {\n return this.match.isMatch;\n }\n return this;\n },\n\n mergeMatch: function (merge) {\n var match = this.match = this.match.merge(merge);\n this.factHash = match.factHash;\n this.hashCode = match.hashCode;\n this.aliases = match.aliases;\n return this;\n },\n\n clone: function (fact, paths, match) {\n return new Context(fact || this.fact, paths || this.path, match || this.match);\n }\n }\n}).as(module);\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/executionStrategy.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/executionStrategy.js ***!\n \\************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar extd = __webpack_require__(/*! ./extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n Promise = extd.Promise,\n nextTick = __webpack_require__(/*! ./nextTick */ \"./build/cht-core-4-6/node_modules/nools/lib/nextTick.js\"),\n isPromiseLike = extd.isPromiseLike;\n\nPromise.extend({\n instance: {\n\n looping: false,\n\n constructor: function (flow, matchUntilHalt) {\n this._super([]);\n this.flow = flow;\n this.agenda = flow.agenda;\n this.rootNode = flow.rootNode;\n this.matchUntilHalt = !!(matchUntilHalt);\n extd.bindAll(this, [\"onAlter\", \"callNext\"]);\n },\n\n halt: function () {\n this.__halted = true;\n if (!this.looping) {\n this.callback();\n }\n },\n\n onAlter: function () {\n this.flowAltered = true;\n if (!this.looping && this.matchUntilHalt && !this.__halted) {\n this.callNext();\n }\n },\n\n setup: function () {\n var flow = this.flow;\n this.rootNode.resetCounter();\n flow.on(\"assert\", this.onAlter);\n flow.on(\"modify\", this.onAlter);\n flow.on(\"retract\", this.onAlter);\n },\n\n tearDown: function () {\n var flow = this.flow;\n flow.removeListener(\"assert\", this.onAlter);\n flow.removeListener(\"modify\", this.onAlter);\n flow.removeListener(\"retract\", this.onAlter);\n },\n\n __handleAsyncNext: function (next) {\n var self = this, agenda = self.agenda;\n return next.then(function () {\n self.looping = false;\n if (!agenda.isEmpty()) {\n if (self.flowAltered) {\n self.rootNode.incrementCounter();\n self.flowAltered = false;\n }\n if (!self.__halted) {\n self.callNext();\n } else {\n self.callback();\n }\n } else if (!self.matchUntilHalt || self.__halted) {\n self.callback();\n }\n self = null;\n }, this.errback);\n },\n\n __handleSyncNext: function (next) {\n this.looping = false;\n if (!this.agenda.isEmpty()) {\n if (this.flowAltered) {\n this.rootNode.incrementCounter();\n this.flowAltered = false;\n }\n }\n if (next && !this.__halted) {\n nextTick(this.callNext);\n } else if (!this.matchUntilHalt || this.__halted) {\n this.callback();\n }\n return next;\n },\n\n callback: function () {\n this.tearDown();\n this._super(arguments);\n },\n\n\n callNext: function () {\n this.looping = true;\n var next = this.agenda.fireNext();\n return isPromiseLike(next) ? this.__handleAsyncNext(next) : this.__handleSyncNext(next);\n },\n\n execute: function () {\n this.setup();\n this.callNext();\n return this;\n }\n }\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/extended.js ***!\n \\***************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nvar arr = __webpack_require__(/*! array-extended */ \"./build/cht-core-4-6/node_modules/array-extended/index.js\"),\n unique = arr.unique,\n indexOf = arr.indexOf,\n map = arr.map,\n pSlice = Array.prototype.slice,\n pSplice = Array.prototype.splice;\n\nfunction plucked(prop) {\n var exec = prop.match(/(\\w+)\\(\\)$/);\n if (exec) {\n prop = exec[1];\n return function (item) {\n return item[prop]();\n };\n } else {\n return function (item) {\n return item[prop];\n };\n }\n}\n\nfunction plucker(prop) {\n prop = prop.split(\".\");\n if (prop.length === 1) {\n return plucked(prop[0]);\n } else {\n var pluckers = map(prop, function (prop) {\n return plucked(prop);\n });\n var l = pluckers.length;\n return function (item) {\n var i = -1, res = item;\n while (++i < l) {\n res = pluckers[i](res);\n }\n return res;\n };\n }\n}\n\nfunction intersection(a, b) {\n a = pSlice.call(a);\n var aOne, i = -1, l;\n l = a.length;\n while (++i < l) {\n aOne = a[i];\n if (indexOf(b, aOne) === -1) {\n pSplice.call(a, i--, 1);\n l--;\n }\n }\n return a;\n}\n\nfunction inPlaceIntersection(a, b) {\n var aOne, i = -1, l;\n l = a.length;\n while (++i < l) {\n aOne = a[i];\n if (indexOf(b, aOne) === -1) {\n pSplice.call(a, i--, 1);\n l--;\n }\n }\n return a;\n}\n\nfunction inPlaceDifference(a, b) {\n var aOne, i = -1, l;\n l = a.length;\n while (++i < l) {\n aOne = a[i];\n if (indexOf(b, aOne) !== -1) {\n pSplice.call(a, i--, 1);\n l--;\n }\n }\n return a;\n}\n\nfunction diffArr(arr1, arr2) {\n var ret = [], i = -1, j, l2 = arr2.length, l1 = arr1.length, a, found;\n if (l2 > l1) {\n ret = arr1.slice();\n while (++i < l2) {\n a = arr2[i];\n j = -1;\n l1 = ret.length;\n while (++j < l1) {\n if (ret[j] === a) {\n ret.splice(j, 1);\n break;\n }\n }\n }\n } else {\n while (++i < l1) {\n a = arr1[i];\n j = -1;\n found = false;\n while (++j < l2) {\n if (arr2[j] === a) {\n found = true;\n break;\n }\n }\n if (!found) {\n ret.push(a);\n }\n }\n }\n return ret;\n}\n\nfunction diffHash(h1, h2) {\n var ret = {};\n for (var i in h1) {\n if (!hasOwnProperty.call(h2, i)) {\n ret[i] = h1[i];\n }\n }\n return ret;\n}\n\n\nfunction union(arr1, arr2) {\n return unique(arr1.concat(arr2));\n}\n\nmodule.exports = __webpack_require__(/*! extended */ \"./build/cht-core-4-6/node_modules/extended/index.js\")()\n .register(__webpack_require__(/*! date-extended */ \"./build/cht-core-4-6/node_modules/date-extended/index.js\"))\n .register(arr)\n .register(__webpack_require__(/*! object-extended */ \"./build/cht-core-4-6/node_modules/object-extended/index.js\"))\n .register(__webpack_require__(/*! string-extended */ \"./build/cht-core-4-6/node_modules/string-extended/index.js\"))\n .register(__webpack_require__(/*! promise-extended */ \"./build/cht-core-4-6/node_modules/promise-extended/index.js\"))\n .register(__webpack_require__(/*! function-extended */ \"./build/cht-core-4-6/node_modules/function-extended/index.js\"))\n .register(__webpack_require__(/*! is-extended */ \"./build/cht-core-4-6/node_modules/is-extended/index.js\"))\n .register(\"intersection\", intersection)\n .register(\"inPlaceIntersection\", inPlaceIntersection)\n .register(\"inPlaceDifference\", inPlaceDifference)\n .register(\"diffArr\", diffArr)\n .register(\"diffHash\", diffHash)\n .register(\"unionArr\", union)\n .register(\"plucker\", plucker)\n .register(\"HashTable\", __webpack_require__(/*! ht */ \"./build/cht-core-4-6/node_modules/ht/index.js\"))\n .register(\"declare\", __webpack_require__(/*! declare.js */ \"./build/cht-core-4-6/node_modules/declare.js/index.js\"))\n .register(__webpack_require__(/*! leafy */ \"./build/cht-core-4-6/node_modules/leafy/index.js\"))\n .register(\"LinkedList\", __webpack_require__(/*! ./linkedList */ \"./build/cht-core-4-6/node_modules/nools/lib/linkedList.js\"));\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/flow.js\":\n/*!***********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/flow.js ***!\n \\***********************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar extd = __webpack_require__(/*! ./extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n bind = extd.bind,\n declare = extd.declare,\n nodes = __webpack_require__(/*! ./nodes */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/index.js\"),\n EventEmitter = __webpack_require__(/*! events */ \"events\").EventEmitter,\n wm = __webpack_require__(/*! ./workingMemory */ \"./build/cht-core-4-6/node_modules/nools/lib/workingMemory.js\"),\n WorkingMemory = wm.WorkingMemory,\n ExecutionStragegy = __webpack_require__(/*! ./executionStrategy */ \"./build/cht-core-4-6/node_modules/nools/lib/executionStrategy.js\"),\n AgendaTree = __webpack_require__(/*! ./agenda */ \"./build/cht-core-4-6/node_modules/nools/lib/agenda.js\");\n\nmodule.exports = declare(EventEmitter, {\n\n instance: {\n\n name: null,\n\n executionStrategy: null,\n\n constructor: function (name, conflictResolutionStrategy) {\n this.env = null;\n this.name = name;\n this.__rules = {};\n this.conflictResolutionStrategy = conflictResolutionStrategy;\n this.workingMemory = new WorkingMemory();\n this.agenda = new AgendaTree(this, conflictResolutionStrategy);\n this.agenda.on(\"fire\", bind(this, \"emit\", \"fire\"));\n this.agenda.on(\"focused\", bind(this, \"emit\", \"focused\"));\n this.rootNode = new nodes.RootNode(this.workingMemory, this.agenda);\n extd.bindAll(this, \"halt\", \"assert\", \"retract\", \"modify\", \"focus\",\n \"emit\", \"getFacts\", \"getFact\");\n },\n\n getFacts: function (Type) {\n var ret;\n if (Type) {\n ret = this.workingMemory.getFactsByType(Type);\n } else {\n ret = this.workingMemory.getFacts();\n }\n return ret;\n },\n\n getFact: function (Type) {\n var ret;\n if (Type) {\n ret = this.workingMemory.getFactsByType(Type);\n } else {\n ret = this.workingMemory.getFacts();\n }\n return ret && ret[0];\n },\n\n focus: function (focused) {\n this.agenda.setFocus(focused);\n return this;\n },\n\n halt: function () {\n this.executionStrategy.halt();\n return this;\n },\n\n dispose: function () {\n this.workingMemory.dispose();\n this.agenda.dispose();\n this.rootNode.dispose();\n },\n\n assert: function (fact) {\n this.rootNode.assertFact(this.workingMemory.assertFact(fact));\n this.emit(\"assert\", fact);\n return fact;\n },\n\n // This method is called to remove an existing fact from working memory\n retract: function (fact) {\n //fact = this.workingMemory.getFact(fact);\n this.rootNode.retractFact(this.workingMemory.retractFact(fact));\n this.emit(\"retract\", fact);\n return fact;\n },\n\n // This method is called to alter an existing fact. It is essentially a\n // retract followed by an assert.\n modify: function (fact, cb) {\n //fact = this.workingMemory.getFact(fact);\n if (\"function\" === typeof cb) {\n cb.call(fact, fact);\n }\n this.rootNode.modifyFact(this.workingMemory.modifyFact(fact));\n this.emit(\"modify\", fact);\n return fact;\n },\n\n print: function () {\n this.rootNode.print();\n },\n\n containsRule: function (name) {\n return this.rootNode.containsRule(name);\n },\n\n rule: function (rule) {\n this.rootNode.assertRule(rule);\n },\n\n matchUntilHalt: function (cb) {\n return (this.executionStrategy = new ExecutionStragegy(this, true)).execute().classic(cb).promise();\n },\n\n match: function (cb) {\n return (this.executionStrategy = new ExecutionStragegy(this)).execute().classic(cb).promise();\n }\n\n }\n});\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/flowContainer.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/flowContainer.js ***!\n \\********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n/* module decorator */ module = __webpack_require__.nmd(module);\n\nvar extd = __webpack_require__(/*! ./extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n instanceOf = extd.instanceOf,\n forEach = extd.forEach,\n declare = extd.declare,\n InitialFact = __webpack_require__(/*! ./pattern */ \"./build/cht-core-4-6/node_modules/nools/lib/pattern.js\").InitialFact,\n conflictStrategies = __webpack_require__(/*! ./conflict */ \"./build/cht-core-4-6/node_modules/nools/lib/conflict.js\"),\n conflictResolution = conflictStrategies.strategy([\"salience\", \"activationRecency\"]),\n rule = __webpack_require__(/*! ./rule */ \"./build/cht-core-4-6/node_modules/nools/lib/rule.js\"),\n Flow = __webpack_require__(/*! ./flow */ \"./build/cht-core-4-6/node_modules/nools/lib/flow.js\");\n\nvar flows = {};\nvar FlowContainer = declare({\n\n instance: {\n\n constructor: function (name, cb) {\n this.name = name;\n this.cb = cb;\n this.__rules = [];\n this.__defined = {};\n this.conflictResolutionStrategy = conflictResolution;\n if (cb) {\n cb.call(this, this);\n }\n if (!flows.hasOwnProperty(name)) {\n flows[name] = this;\n } else {\n throw new Error(\"Flow with \" + name + \" already defined\");\n }\n },\n\n conflictResolution: function (strategies) {\n this.conflictResolutionStrategy = conflictStrategies.strategy(strategies);\n return this;\n },\n\n getDefined: function (name) {\n var ret = this.__defined[name.toLowerCase()];\n if (!ret) {\n throw new Error(name + \" flow class is not defined\");\n }\n return ret;\n },\n\n addDefined: function (name, cls) {\n //normalize\n this.__defined[name.toLowerCase()] = cls;\n return cls;\n },\n\n rule: function () {\n this.__rules = this.__rules.concat(rule.createRule.apply(rule, arguments));\n return this;\n },\n\n getSession: function () {\n var flow = new Flow(this.name, this.conflictResolutionStrategy);\n forEach(this.__rules, function (rule) {\n flow.rule(rule);\n });\n flow.assert(new InitialFact());\n for (var i = 0, l = arguments.length; i < l; i++) {\n flow.assert(arguments[i]);\n }\n return flow;\n },\n\n containsRule: function (name) {\n return extd.some(this.__rules, function (rule) {\n return rule.name === name;\n });\n }\n\n },\n\n \"static\": {\n getFlow: function (name) {\n return flows[name];\n },\n\n hasFlow: function (name) {\n return extd.has(flows, name);\n },\n\n deleteFlow: function (name) {\n if (instanceOf(name, FlowContainer)) {\n name = name.name;\n }\n delete flows[name];\n return FlowContainer;\n },\n\n deleteFlows: function () {\n for (var name in flows) {\n if (name in flows) {\n delete flows[name];\n }\n }\n return FlowContainer;\n },\n\n create: function (name, cb) {\n return new FlowContainer(name, cb);\n }\n }\n\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/index.js\":\n/*!************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/index.js ***!\n \\************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n/**\n *\n * @projectName nools\n * @github https://github.com/C2FO/nools\n * @includeDoc [Examples] ../docs-md/examples.md\n * @includeDoc [Change Log] ../history.md\n * @header [../readme.md]\n */\n\n\nvar extd = __webpack_require__(/*! ./extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n fs = __webpack_require__(/*! fs */ \"fs\"),\n path = __webpack_require__(/*! path */ \"path\"),\n compile = __webpack_require__(/*! ./compile */ \"./build/cht-core-4-6/node_modules/nools/lib/compile/index.js\"),\n FlowContainer = __webpack_require__(/*! ./flowContainer */ \"./build/cht-core-4-6/node_modules/nools/lib/flowContainer.js\");\n\nfunction isNoolsFile(file) {\n return (/\\.nools$/).test(file);\n}\n\nfunction parse(source) {\n var ret;\n if (isNoolsFile(source)) {\n ret = compile.parse(fs.readFileSync(source, \"utf8\"), source);\n } else {\n ret = compile.parse(source);\n }\n return ret;\n}\n\nexports.Flow = FlowContainer;\n\nexports.getFlow = FlowContainer.getFlow;\nexports.hasFlow = FlowContainer.hasFlow;\n\nexports.deleteFlow = function (name) {\n FlowContainer.deleteFlow(name);\n return this;\n};\n\nexports.deleteFlows = function () {\n FlowContainer.deleteFlows();\n return this;\n};\n\nexports.flow = FlowContainer.create;\n\nexports.compile = function (file, options, cb) {\n if (extd.isFunction(options)) {\n cb = options;\n options = {};\n } else {\n options = options || {};\n }\n if (extd.isString(file)) {\n options.name = options.name || (isNoolsFile(file) ? path.basename(file, path.extname(file)) : null);\n file = parse(file);\n }\n if (!options.name) {\n throw new Error(\"Name required when compiling nools source\");\n }\n return compile.compile(file, options, cb, FlowContainer);\n};\n\nexports.transpile = function (file, options) {\n options = options || {};\n if (extd.isString(file)) {\n options.name = options.name || (isNoolsFile(file) ? path.basename(file, path.extname(file)) : null);\n file = parse(file);\n }\n return compile.transpile(file, options);\n};\n\nexports.parse = parse;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/linkedList.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/linkedList.js ***!\n \\*****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar declare = __webpack_require__(/*! declare.js */ \"./build/cht-core-4-6/node_modules/declare.js/index.js\");\ndeclare({\n\n instance: {\n constructor: function () {\n this.head = null;\n this.tail = null;\n this.length = null;\n },\n\n push: function (data) {\n var tail = this.tail, head = this.head, node = {data: data, prev: tail, next: null};\n if (tail) {\n this.tail.next = node;\n }\n this.tail = node;\n if (!head) {\n this.head = node;\n }\n this.length++;\n return node;\n },\n\n remove: function (node) {\n if (node.prev) {\n node.prev.next = node.next;\n } else {\n this.head = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n } else {\n this.tail = node.prev;\n }\n //node.data = node.prev = node.next = null;\n this.length--;\n },\n\n forEach: function (cb) {\n var head = {next: this.head};\n while ((head = head.next)) {\n cb(head.data);\n }\n },\n\n toArray: function () {\n var head = {next: this.head}, ret = [];\n while ((head = head.next)) {\n ret.push(head);\n }\n return ret;\n },\n\n removeByData: function (data) {\n var head = {next: this.head};\n while ((head = head.next)) {\n if (head.data === data) {\n this.remove(head);\n break;\n }\n }\n },\n\n getByData: function (data) {\n var head = {next: this.head};\n while ((head = head.next)) {\n if (head.data === data) {\n return head;\n }\n }\n },\n\n clear: function () {\n this.head = this.tail = null;\n this.length = 0;\n }\n\n }\n\n}).as(module);\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nextTick.js\":\n/*!***************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nextTick.js ***!\n \\***************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/*global setImmediate, window, MessageChannel*/\nvar extd = __webpack_require__(/*! ./extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\");\nvar nextTick;\nif (typeof setImmediate === \"function\") {\n // In IE10, or use https://github.com/NobleJS/setImmediate\n if (typeof window !== \"undefined\") {\n nextTick = extd.bind(window, setImmediate);\n } else {\n nextTick = setImmediate;\n }\n} else if (typeof process !== \"undefined\") {\n // node\n nextTick = process.nextTick;\n} else if (typeof MessageChannel !== \"undefined\") {\n // modern browsers\n // http://www.nonblocking.io/2011/06/windownexttick.html\n var channel = new MessageChannel();\n // linked list of tasks (single, with head node)\n var head = {}, tail = head;\n channel.port1.onmessage = function () {\n head = head.next;\n var task = head.task;\n delete head.task;\n task();\n };\n nextTick = function (task) {\n tail = tail.next = {task: task};\n channel.port2.postMessage(0);\n };\n} else {\n // old browsers\n nextTick = function (task) {\n setTimeout(task, 0);\n };\n}\n\nmodule.exports = nextTick;\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/adapterNode.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/adapterNode.js ***!\n \\************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar Node = __webpack_require__(/*! ./node */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js\"),\n intersection = __webpack_require__(/*! ../extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\").intersection;\n\nNode.extend({\n instance: {\n\n __propagatePaths: function (method, context) {\n var entrySet = this.__entrySet, i = entrySet.length, entry, outNode, paths, continuingPaths;\n while (--i > -1) {\n entry = entrySet[i];\n outNode = entry.key;\n paths = entry.value;\n if ((continuingPaths = intersection(paths, context.paths)).length) {\n outNode[method](context.clone(null, continuingPaths, null));\n }\n }\n },\n\n __propagateNoPaths: function (method, context) {\n var entrySet = this.__entrySet, i = entrySet.length;\n while (--i > -1) {\n entrySet[i].key[method](context);\n }\n },\n\n __propagate: function (method, context) {\n if (context.paths) {\n this.__propagatePaths(method, context);\n } else {\n this.__propagateNoPaths(method, context);\n }\n }\n }\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/aliasNode.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/aliasNode.js ***!\n \\**********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar AlphaNode = __webpack_require__(/*! ./alphaNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/alphaNode.js\");\n\nAlphaNode.extend({\n instance: {\n\n constructor: function () {\n this._super(arguments);\n this.alias = this.constraint.get(\"alias\");\n },\n\n toString: function () {\n return \"AliasNode\" + this.__count;\n },\n\n assert: function (context) {\n return this.__propagate(\"assert\", context.set(this.alias, context.fact.object));\n },\n\n modify: function (context) {\n return this.__propagate(\"modify\", context.set(this.alias, context.fact.object));\n },\n\n retract: function (context) {\n return this.__propagate(\"retract\", context.set(this.alias, context.fact.object));\n },\n\n equal: function (other) {\n return other instanceof this._static && this.alias === other.alias;\n }\n }\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/alphaNode.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/alphaNode.js ***!\n \\**********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n/* module decorator */ module = __webpack_require__.nmd(module);\n\nvar Node = __webpack_require__(/*! ./node */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js\");\n\nNode.extend({\n instance: {\n constructor: function (constraint) {\n this._super([]);\n this.constraint = constraint;\n this.constraintAssert = this.constraint.assert;\n },\n\n toString: function () {\n return \"AlphaNode \" + this.__count;\n },\n\n equal: function (constraint) {\n return this.constraint.equal(constraint.constraint);\n }\n }\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/betaNode.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/betaNode.js ***!\n \\*********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar extd = __webpack_require__(/*! ../extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n keys = extd.hash.keys,\n Node = __webpack_require__(/*! ./node */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js\"),\n LeftMemory = __webpack_require__(/*! ./misc/leftMemory */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/leftMemory.js\"), RightMemory = __webpack_require__(/*! ./misc/rightMemory */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/rightMemory.js\");\n\nNode.extend({\n\n instance: {\n\n nodeType: \"BetaNode\",\n\n constructor: function () {\n this._super([]);\n this.leftMemory = {};\n this.rightMemory = {};\n this.leftTuples = new LeftMemory();\n this.rightTuples = new RightMemory();\n },\n\n __propagate: function (method, context) {\n var entrySet = this.__entrySet, i = entrySet.length, entry, outNode;\n while (--i > -1) {\n entry = entrySet[i];\n outNode = entry.key;\n outNode[method](context);\n }\n },\n\n dispose: function () {\n this.leftMemory = {};\n this.rightMemory = {};\n this.leftTuples.clear();\n this.rightTuples.clear();\n },\n\n disposeLeft: function (fact) {\n this.leftMemory = {};\n this.leftTuples.clear();\n this.propagateDispose(fact);\n },\n\n disposeRight: function (fact) {\n this.rightMemory = {};\n this.rightTuples.clear();\n this.propagateDispose(fact);\n },\n\n hashCode: function () {\n return this.nodeType + \" \" + this.__count;\n },\n\n toString: function () {\n return this.nodeType + \" \" + this.__count;\n },\n\n retractLeft: function (context) {\n context = this.removeFromLeftMemory(context).data;\n var rightMatches = context.rightMatches,\n hashCodes = keys(rightMatches),\n i = -1,\n l = hashCodes.length;\n while (++i < l) {\n this.__propagate(\"retract\", rightMatches[hashCodes[i]].clone());\n }\n },\n\n retractRight: function (context) {\n context = this.removeFromRightMemory(context).data;\n var leftMatches = context.leftMatches,\n hashCodes = keys(leftMatches),\n i = -1,\n l = hashCodes.length;\n while (++i < l) {\n this.__propagate(\"retract\", leftMatches[hashCodes[i]].clone());\n }\n },\n\n assertLeft: function (context) {\n this.__addToLeftMemory(context);\n var rm = this.rightTuples.getRightMemory(context), i = -1, l = rm.length;\n while (++i < l) {\n this.propagateFromLeft(context, rm[i].data);\n }\n },\n\n assertRight: function (context) {\n this.__addToRightMemory(context);\n var lm = this.leftTuples.getLeftMemory(context), i = -1, l = lm.length;\n while (++i < l) {\n this.propagateFromRight(context, lm[i].data);\n }\n },\n\n modifyLeft: function (context) {\n var previousContext = this.removeFromLeftMemory(context).data;\n this.__addToLeftMemory(context);\n var rm = this.rightTuples.getRightMemory(context), l = rm.length, i = -1, rightMatches;\n if (!l) {\n this.propagateRetractModifyFromLeft(previousContext);\n } else {\n rightMatches = previousContext.rightMatches;\n while (++i < l) {\n this.propagateAssertModifyFromLeft(context, rightMatches, rm[i].data);\n }\n\n }\n },\n\n modifyRight: function (context) {\n var previousContext = this.removeFromRightMemory(context).data;\n this.__addToRightMemory(context);\n var lm = this.leftTuples.getLeftMemory(context);\n if (!lm.length) {\n this.propagateRetractModifyFromRight(previousContext);\n } else {\n var leftMatches = previousContext.leftMatches, i = -1, l = lm.length;\n while (++i < l) {\n this.propagateAssertModifyFromRight(context, leftMatches, lm[i].data);\n }\n }\n },\n\n propagateFromLeft: function (context, rc) {\n this.__propagate(\"assert\", this.__addToMemoryMatches(rc, context, context.clone(null, null, context.match.merge(rc.match))));\n },\n\n propagateFromRight: function (context, lc) {\n this.__propagate(\"assert\", this.__addToMemoryMatches(context, lc, lc.clone(null, null, lc.match.merge(context.match))));\n },\n\n propagateRetractModifyFromLeft: function (context) {\n var rightMatches = context.rightMatches,\n hashCodes = keys(rightMatches),\n l = hashCodes.length,\n i = -1;\n while (++i < l) {\n this.__propagate(\"retract\", rightMatches[hashCodes[i]].clone());\n }\n },\n\n propagateRetractModifyFromRight: function (context) {\n var leftMatches = context.leftMatches,\n hashCodes = keys(leftMatches),\n l = hashCodes.length,\n i = -1;\n while (++i < l) {\n this.__propagate(\"retract\", leftMatches[hashCodes[i]].clone());\n }\n },\n\n propagateAssertModifyFromLeft: function (context, rightMatches, rm) {\n var factId = rm.hashCode;\n if (factId in rightMatches) {\n this.__propagate(\"modify\", this.__addToMemoryMatches(rm, context, context.clone(null, null, context.match.merge(rm.match))));\n } else {\n this.propagateFromLeft(context, rm);\n }\n },\n\n propagateAssertModifyFromRight: function (context, leftMatches, lm) {\n var factId = lm.hashCode;\n if (factId in leftMatches) {\n this.__propagate(\"modify\", this.__addToMemoryMatches(context, lm, context.clone(null, null, lm.match.merge(context.match))));\n } else {\n this.propagateFromRight(context, lm);\n }\n },\n\n removeFromRightMemory: function (context) {\n var hashCode = context.hashCode, ret;\n context = this.rightMemory[hashCode] || null;\n var tuples = this.rightTuples;\n if (context) {\n var leftMemory = this.leftMemory;\n ret = context.data;\n var leftMatches = ret.leftMatches;\n tuples.remove(context);\n var hashCodes = keys(leftMatches), i = -1, l = hashCodes.length;\n while (++i < l) {\n delete leftMemory[hashCodes[i]].data.rightMatches[hashCode];\n }\n delete this.rightMemory[hashCode];\n }\n return context;\n },\n\n removeFromLeftMemory: function (context) {\n var hashCode = context.hashCode;\n context = this.leftMemory[hashCode] || null;\n if (context) {\n var rightMemory = this.rightMemory;\n var rightMatches = context.data.rightMatches;\n this.leftTuples.remove(context);\n var hashCodes = keys(rightMatches), i = -1, l = hashCodes.length;\n while (++i < l) {\n delete rightMemory[hashCodes[i]].data.leftMatches[hashCode];\n }\n delete this.leftMemory[hashCode];\n }\n return context;\n },\n\n getRightMemoryMatches: function (context) {\n var lm = this.leftMemory[context.hashCode], ret = {};\n if (lm) {\n ret = lm.rightMatches;\n }\n return ret;\n },\n\n __addToMemoryMatches: function (rightContext, leftContext, createdContext) {\n var rightFactId = rightContext.hashCode,\n rm = this.rightMemory[rightFactId],\n lm, leftFactId = leftContext.hashCode;\n if (rm) {\n rm = rm.data;\n if (leftFactId in rm.leftMatches) {\n throw new Error(\"Duplicate left fact entry\");\n }\n rm.leftMatches[leftFactId] = createdContext;\n }\n lm = this.leftMemory[leftFactId];\n if (lm) {\n lm = lm.data;\n if (rightFactId in lm.rightMatches) {\n throw new Error(\"Duplicate right fact entry\");\n }\n lm.rightMatches[rightFactId] = createdContext;\n }\n return createdContext;\n },\n\n __addToRightMemory: function (context) {\n var hashCode = context.hashCode, rm = this.rightMemory;\n if (hashCode in rm) {\n return false;\n }\n rm[hashCode] = this.rightTuples.push(context);\n context.leftMatches = {};\n return true;\n },\n\n\n __addToLeftMemory: function (context) {\n var hashCode = context.hashCode, lm = this.leftMemory;\n if (hashCode in lm) {\n return false;\n }\n lm[hashCode] = this.leftTuples.push(context);\n context.rightMatches = {};\n return true;\n }\n }\n\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/equalityNode.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/equalityNode.js ***!\n \\*************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar AlphaNode = __webpack_require__(/*! ./alphaNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/alphaNode.js\");\n\nAlphaNode.extend({\n instance: {\n\n constructor: function () {\n this.memory = {};\n this._super(arguments);\n this.constraintAssert = this.constraint.assert;\n },\n\n assert: function (context) {\n if ((this.memory[context.pathsHash] = this.constraintAssert(context.factHash))) {\n this.__propagate(\"assert\", context);\n }\n },\n\n modify: function (context) {\n var memory = this.memory,\n hashCode = context.pathsHash,\n wasMatch = memory[hashCode];\n if ((memory[hashCode] = this.constraintAssert(context.factHash))) {\n this.__propagate(wasMatch ? \"modify\" : \"assert\", context);\n } else if (wasMatch) {\n this.__propagate(\"retract\", context);\n }\n },\n\n retract: function (context) {\n var hashCode = context.pathsHash,\n memory = this.memory;\n if (memory[hashCode]) {\n this.__propagate(\"retract\", context);\n }\n delete memory[hashCode];\n },\n\n toString: function () {\n return \"EqualityNode\" + this.__count;\n }\n }\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/existsFromNode.js\":\n/*!***************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/existsFromNode.js ***!\n \\***************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar FromNotNode = __webpack_require__(/*! ./fromNotNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNotNode.js\"),\n extd = __webpack_require__(/*! ../extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n Context = __webpack_require__(/*! ../context */ \"./build/cht-core-4-6/node_modules/nools/lib/context.js\"),\n isDefined = extd.isDefined,\n isArray = extd.isArray;\n\nFromNotNode.extend({\n instance: {\n\n nodeType: \"ExistsFromNode\",\n\n retractLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context);\n if (ctx) {\n ctx = ctx.data;\n if (ctx.blocked) {\n this.__propagate(\"retract\", ctx.clone());\n }\n }\n },\n\n __modify: function (context, leftContext) {\n var leftContextBlocked = leftContext.blocked;\n var fh = context.factHash, o = this.from(fh);\n if (isArray(o)) {\n for (var i = 0, l = o.length; i < l; i++) {\n if (this.__isMatch(context, o[i], true)) {\n context.blocked = true;\n break;\n }\n }\n } else if (isDefined(o)) {\n context.blocked = this.__isMatch(context, o, true);\n }\n var newContextBlocked = context.blocked;\n if (newContextBlocked) {\n if (leftContextBlocked) {\n this.__propagate(\"modify\", context.clone());\n } else {\n this.__propagate(\"assert\", context.clone());\n }\n } else if (leftContextBlocked) {\n this.__propagate(\"retract\", context.clone());\n }\n\n },\n\n __findMatches: function (context) {\n var fh = context.factHash, o = this.from(fh), isMatch = false;\n if (isArray(o)) {\n for (var i = 0, l = o.length; i < l; i++) {\n if (this.__isMatch(context, o[i], true)) {\n context.blocked = true;\n this.__propagate(\"assert\", context.clone());\n return;\n }\n }\n } else if (isDefined(o) && (this.__isMatch(context, o, true))) {\n context.blocked = true;\n this.__propagate(\"assert\", context.clone());\n }\n return isMatch;\n },\n\n __isMatch: function (oc, o, add) {\n var ret = false;\n if (this.type(o)) {\n var createdFact = this.workingMemory.getFactHandle(o);\n var context = new Context(createdFact, null, null)\n .mergeMatch(oc.match)\n .set(this.alias, o);\n if (add) {\n var fm = this.fromMemory[createdFact.id];\n if (!fm) {\n fm = this.fromMemory[createdFact.id] = {};\n }\n fm[oc.hashCode] = oc;\n }\n var fh = context.factHash;\n var eqConstraints = this.__equalityConstraints;\n for (var i = 0, l = eqConstraints.length; i < l; i++) {\n if (eqConstraints[i](fh)) {\n ret = true;\n } else {\n ret = false;\n break;\n }\n }\n }\n return ret;\n },\n\n assertLeft: function (context) {\n this.__addToLeftMemory(context);\n this.__findMatches(context);\n }\n\n }\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/existsNode.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/existsNode.js ***!\n \\***********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar NotNode = __webpack_require__(/*! ./notNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/notNode.js\"),\n LinkedList = __webpack_require__(/*! ../linkedList */ \"./build/cht-core-4-6/node_modules/nools/lib/linkedList.js\");\n\n\nNotNode.extend({\n instance: {\n\n nodeType: \"ExistsNode\",\n\n blockedContext: function (leftContext, rightContext) {\n leftContext.blocker = rightContext;\n this.removeFromLeftMemory(leftContext);\n this.addToLeftBlockedMemory(rightContext.blocking.push(leftContext));\n this.__propagate(\"assert\", this.__cloneContext(leftContext));\n },\n\n notBlockedContext: function (leftContext, propagate) {\n this.__addToLeftMemory(leftContext);\n propagate && this.__propagate(\"retract\", this.__cloneContext(leftContext));\n },\n\n propagateFromLeft: function (leftContext) {\n this.notBlockedContext(leftContext, false);\n },\n\n\n retractLeft: function (context) {\n var ctx;\n if (!this.removeFromLeftMemory(context)) {\n if ((ctx = this.removeFromLeftBlockedMemory(context))) {\n this.__propagate(\"retract\", this.__cloneContext(ctx.data));\n } else {\n throw new Error();\n }\n }\n },\n \n modifyLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context),\n leftContext,\n thisConstraint = this.constraint,\n rightTuples = this.rightTuples,\n l = rightTuples.length,\n isBlocked = false,\n node, rc, blocker;\n if (!ctx) {\n //blocked before\n ctx = this.removeFromLeftBlockedMemory(context);\n isBlocked = true;\n }\n if (ctx) {\n leftContext = ctx.data;\n\n if (leftContext && leftContext.blocker) {\n //we were blocked before so only check nodes previous to our blocker\n blocker = this.rightMemory[leftContext.blocker.hashCode];\n }\n if (blocker) {\n if (thisConstraint.isMatch(context, rc = blocker.data)) {\n //propogate as a modify or assert\n this.__propagate(!isBlocked ? \"assert\" : \"modify\", this.__cloneContext(leftContext));\n context.blocker = rc;\n this.addToLeftBlockedMemory(rc.blocking.push(context));\n context = null;\n }\n if (context) {\n node = {next: blocker.next};\n }\n } else {\n node = {next: rightTuples.head};\n }\n if (context && l) {\n node = {next: rightTuples.head};\n //we were propagated before\n while ((node = node.next)) {\n if (thisConstraint.isMatch(context, rc = node.data)) {\n //we cant be proagated so retract previous\n\n //we were asserted before so retract\n this.__propagate(!isBlocked ? \"assert\" : \"modify\", this.__cloneContext(leftContext));\n\n this.addToLeftBlockedMemory(rc.blocking.push(context));\n context.blocker = rc;\n context = null;\n break;\n }\n }\n }\n if (context) {\n //we can still be propogated\n this.__addToLeftMemory(context);\n if (isBlocked) {\n //we were blocked so retract\n this.__propagate(\"retract\", this.__cloneContext(context));\n }\n\n }\n } else {\n throw new Error();\n }\n\n },\n\n modifyRight: function (context) {\n var ctx = this.removeFromRightMemory(context);\n if (ctx) {\n var rightContext = ctx.data,\n leftTuples = this.leftTuples,\n leftTuplesLength = leftTuples.length,\n leftContext,\n thisConstraint = this.constraint,\n node,\n blocking = rightContext.blocking;\n this.__addToRightMemory(context);\n context.blocking = new LinkedList();\n if (leftTuplesLength || blocking.length) {\n if (blocking.length) {\n var rc;\n //check old blocked contexts\n //check if the same contexts blocked before are still blocked\n var blockingNode = {next: blocking.head};\n while ((blockingNode = blockingNode.next)) {\n leftContext = blockingNode.data;\n leftContext.blocker = null;\n if (thisConstraint.isMatch(leftContext, context)) {\n leftContext.blocker = context;\n this.addToLeftBlockedMemory(context.blocking.push(leftContext));\n this.__propagate(\"assert\", this.__cloneContext(leftContext));\n leftContext = null;\n } else {\n //we arent blocked anymore\n leftContext.blocker = null;\n node = ctx;\n while ((node = node.next)) {\n if (thisConstraint.isMatch(leftContext, rc = node.data)) {\n leftContext.blocker = rc;\n this.addToLeftBlockedMemory(rc.blocking.push(leftContext));\n this.__propagate(\"assert\", this.__cloneContext(leftContext));\n leftContext = null;\n break;\n }\n }\n if (leftContext) {\n this.__addToLeftMemory(leftContext);\n }\n }\n }\n }\n\n if (leftTuplesLength) {\n //check currently left tuples in memory\n node = {next: leftTuples.head};\n while ((node = node.next)) {\n leftContext = node.data;\n if (thisConstraint.isMatch(leftContext, context)) {\n this.__propagate(\"assert\", this.__cloneContext(leftContext));\n this.removeFromLeftMemory(leftContext);\n this.addToLeftBlockedMemory(context.blocking.push(leftContext));\n leftContext.blocker = context;\n }\n }\n }\n\n\n }\n } else {\n throw new Error();\n }\n\n\n }\n }\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNode.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNode.js ***!\n \\*********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar JoinNode = __webpack_require__(/*! ./joinNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/joinNode.js\"),\n extd = __webpack_require__(/*! ../extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n constraint = __webpack_require__(/*! ../constraint */ \"./build/cht-core-4-6/node_modules/nools/lib/constraint.js\"),\n EqualityConstraint = constraint.EqualityConstraint,\n HashConstraint = constraint.HashConstraint,\n ReferenceConstraint = constraint.ReferenceConstraint,\n Context = __webpack_require__(/*! ../context */ \"./build/cht-core-4-6/node_modules/nools/lib/context.js\"),\n isDefined = extd.isDefined,\n isEmpty = extd.isEmpty,\n forEach = extd.forEach,\n isArray = extd.isArray;\n\nvar DEFAULT_MATCH = {\n isMatch: function () {\n return false;\n }\n};\n\nJoinNode.extend({\n instance: {\n\n nodeType: \"FromNode\",\n\n constructor: function (pattern, wm) {\n this._super(arguments);\n this.workingMemory = wm;\n this.fromMemory = {};\n this.pattern = pattern;\n this.type = pattern.get(\"constraints\")[0].assert;\n this.alias = pattern.get(\"alias\");\n this.from = pattern.from.assert;\n var eqConstraints = this.__equalityConstraints = [];\n var vars = [];\n forEach(this.constraints = this.pattern.get(\"constraints\").slice(1), function (c) {\n if (c instanceof EqualityConstraint || c instanceof ReferenceConstraint) {\n eqConstraints.push(c.assert);\n } else if (c instanceof HashConstraint) {\n vars = vars.concat(c.get(\"variables\"));\n }\n });\n this.__variables = vars;\n },\n\n __createMatches: function (context) {\n var fh = context.factHash, o = this.from(fh);\n if (isArray(o)) {\n for (var i = 0, l = o.length; i < l; i++) {\n this.__checkMatch(context, o[i], true);\n }\n } else if (isDefined(o)) {\n this.__checkMatch(context, o, true);\n }\n },\n\n __checkMatch: function (context, o, propogate) {\n var newContext;\n if ((newContext = this.__createMatch(context, o)).isMatch() && propogate) {\n this.__propagate(\"assert\", newContext.clone());\n }\n return newContext;\n },\n\n __createMatch: function (lc, o) {\n if (this.type(o)) {\n var createdFact = this.workingMemory.getFactHandle(o, true),\n createdContext,\n rc = new Context(createdFact, null, null)\n .set(this.alias, o),\n createdFactId = createdFact.id;\n var fh = rc.factHash, lcFh = lc.factHash;\n for (var key in lcFh) {\n fh[key] = lcFh[key];\n }\n var eqConstraints = this.__equalityConstraints, vars = this.__variables, i = -1, l = eqConstraints.length;\n while (++i < l) {\n if (!eqConstraints[i](fh, fh)) {\n createdContext = DEFAULT_MATCH;\n break;\n }\n }\n var fm = this.fromMemory[createdFactId];\n if (!fm) {\n fm = this.fromMemory[createdFactId] = {};\n }\n if (!createdContext) {\n var prop;\n i = -1;\n l = vars.length;\n while (++i < l) {\n prop = vars[i];\n fh[prop] = o[prop];\n }\n lc.fromMatches[createdFact.id] = createdContext = rc.clone(createdFact, null, lc.match.merge(rc.match));\n }\n fm[lc.hashCode] = [lc, createdContext];\n return createdContext;\n }\n return DEFAULT_MATCH;\n },\n\n retractRight: function () {\n throw new Error(\"Shouldnt have gotten here\");\n },\n\n removeFromFromMemory: function (context) {\n var factId = context.fact.id;\n var fm = this.fromMemory[factId];\n if (fm) {\n var entry;\n for (var i in fm) {\n entry = fm[i];\n if (entry[1] === context) {\n delete fm[i];\n if (isEmpty(fm)) {\n delete this.fromMemory[factId];\n }\n break;\n }\n }\n }\n\n },\n\n retractLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context);\n if (ctx) {\n ctx = ctx.data;\n var fromMatches = ctx.fromMatches;\n for (var i in fromMatches) {\n this.removeFromFromMemory(fromMatches[i]);\n this.__propagate(\"retract\", fromMatches[i].clone());\n }\n }\n },\n\n modifyLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context), newContext, i, l, factId, fact;\n if (ctx) {\n this.__addToLeftMemory(context);\n\n var leftContext = ctx.data,\n fromMatches = (context.fromMatches = {}),\n rightMatches = leftContext.fromMatches,\n o = this.from(context.factHash);\n\n if (isArray(o)) {\n for (i = 0, l = o.length; i < l; i++) {\n newContext = this.__checkMatch(context, o[i], false);\n if (newContext.isMatch()) {\n factId = newContext.fact.id;\n if (factId in rightMatches) {\n this.__propagate(\"modify\", newContext.clone());\n } else {\n this.__propagate(\"assert\", newContext.clone());\n }\n }\n }\n } else if (isDefined(o)) {\n newContext = this.__checkMatch(context, o, false);\n if (newContext.isMatch()) {\n factId = newContext.fact.id;\n if (factId in rightMatches) {\n this.__propagate(\"modify\", newContext.clone());\n } else {\n this.__propagate(\"assert\", newContext.clone());\n }\n }\n }\n for (i in rightMatches) {\n if (!(i in fromMatches)) {\n this.removeFromFromMemory(rightMatches[i]);\n this.__propagate(\"retract\", rightMatches[i].clone());\n }\n }\n } else {\n this.assertLeft(context);\n }\n fact = context.fact;\n factId = fact.id;\n var fm = this.fromMemory[factId];\n this.fromMemory[factId] = {};\n if (fm) {\n var lc, entry, cc, createdIsMatch, factObject = fact.object;\n for (i in fm) {\n entry = fm[i];\n lc = entry[0];\n cc = entry[1];\n createdIsMatch = cc.isMatch();\n if (lc.hashCode !== context.hashCode) {\n newContext = this.__createMatch(lc, factObject, false);\n if (createdIsMatch) {\n this.__propagate(\"retract\", cc.clone());\n }\n if (newContext.isMatch()) {\n this.__propagate(createdIsMatch ? \"modify\" : \"assert\", newContext.clone());\n }\n\n }\n }\n }\n },\n\n assertLeft: function (context) {\n this.__addToLeftMemory(context);\n context.fromMatches = {};\n this.__createMatches(context);\n },\n\n assertRight: function () {\n throw new Error(\"Shouldnt have gotten here\");\n }\n\n }\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNotNode.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNotNode.js ***!\n \\************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar JoinNode = __webpack_require__(/*! ./joinNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/joinNode.js\"),\n extd = __webpack_require__(/*! ../extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n constraint = __webpack_require__(/*! ../constraint */ \"./build/cht-core-4-6/node_modules/nools/lib/constraint.js\"),\n EqualityConstraint = constraint.EqualityConstraint,\n HashConstraint = constraint.HashConstraint,\n ReferenceConstraint = constraint.ReferenceConstraint,\n Context = __webpack_require__(/*! ../context */ \"./build/cht-core-4-6/node_modules/nools/lib/context.js\"),\n isDefined = extd.isDefined,\n forEach = extd.forEach,\n isArray = extd.isArray;\n\nJoinNode.extend({\n instance: {\n\n nodeType: \"FromNotNode\",\n\n constructor: function (pattern, workingMemory) {\n this._super(arguments);\n this.workingMemory = workingMemory;\n this.pattern = pattern;\n this.type = pattern.get(\"constraints\")[0].assert;\n this.alias = pattern.get(\"alias\");\n this.from = pattern.from.assert;\n this.fromMemory = {};\n var eqConstraints = this.__equalityConstraints = [];\n var vars = [];\n forEach(this.constraints = this.pattern.get(\"constraints\").slice(1), function (c) {\n if (c instanceof EqualityConstraint || c instanceof ReferenceConstraint) {\n eqConstraints.push(c.assert);\n } else if (c instanceof HashConstraint) {\n vars = vars.concat(c.get(\"variables\"));\n }\n });\n this.__variables = vars;\n\n },\n\n retractLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context);\n if (ctx) {\n ctx = ctx.data;\n if (!ctx.blocked) {\n this.__propagate(\"retract\", ctx.clone());\n }\n }\n },\n\n __modify: function (context, leftContext) {\n var leftContextBlocked = leftContext.blocked;\n var fh = context.factHash, o = this.from(fh);\n if (isArray(o)) {\n for (var i = 0, l = o.length; i < l; i++) {\n if (this.__isMatch(context, o[i], true)) {\n context.blocked = true;\n break;\n }\n }\n } else if (isDefined(o)) {\n context.blocked = this.__isMatch(context, o, true);\n }\n var newContextBlocked = context.blocked;\n if (!newContextBlocked) {\n if (leftContextBlocked) {\n this.__propagate(\"assert\", context.clone());\n } else {\n this.__propagate(\"modify\", context.clone());\n }\n } else if (!leftContextBlocked) {\n this.__propagate(\"retract\", leftContext.clone());\n }\n\n },\n\n modifyLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context);\n if (ctx) {\n this.__addToLeftMemory(context);\n this.__modify(context, ctx.data);\n } else {\n throw new Error();\n }\n var fm = this.fromMemory[context.fact.id];\n this.fromMemory[context.fact.id] = {};\n if (fm) {\n for (var i in fm) {\n // update any contexts associated with this fact\n if (i !== context.hashCode) {\n var lc = fm[i];\n ctx = this.removeFromLeftMemory(lc);\n if (ctx) {\n lc = lc.clone();\n lc.blocked = false;\n this.__addToLeftMemory(lc);\n this.__modify(lc, ctx.data);\n }\n }\n }\n }\n },\n\n __findMatches: function (context) {\n var fh = context.factHash, o = this.from(fh), isMatch = false;\n if (isArray(o)) {\n for (var i = 0, l = o.length; i < l; i++) {\n if (this.__isMatch(context, o[i], true)) {\n context.blocked = true;\n return;\n }\n }\n this.__propagate(\"assert\", context.clone());\n } else if (isDefined(o) && !(context.blocked = this.__isMatch(context, o, true))) {\n this.__propagate(\"assert\", context.clone());\n }\n return isMatch;\n },\n\n __isMatch: function (oc, o, add) {\n var ret = false;\n if (this.type(o)) {\n var createdFact = this.workingMemory.getFactHandle(o);\n var context = new Context(createdFact, null)\n .mergeMatch(oc.match)\n .set(this.alias, o);\n if (add) {\n var fm = this.fromMemory[createdFact.id];\n if (!fm) {\n fm = this.fromMemory[createdFact.id] = {};\n }\n fm[oc.hashCode] = oc;\n }\n var fh = context.factHash;\n var eqConstraints = this.__equalityConstraints;\n for (var i = 0, l = eqConstraints.length; i < l; i++) {\n if (eqConstraints[i](fh, fh)) {\n ret = true;\n } else {\n ret = false;\n break;\n }\n }\n }\n return ret;\n },\n\n assertLeft: function (context) {\n this.__addToLeftMemory(context);\n this.__findMatches(context);\n },\n\n assertRight: function () {\n throw new Error(\"Shouldnt have gotten here\");\n },\n\n retractRight: function () {\n throw new Error(\"Shouldnt have gotten here\");\n }\n\n }\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/index.js\":\n/*!******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/index.js ***!\n \\******************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar extd = __webpack_require__(/*! ../extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n forEach = extd.forEach,\n some = extd.some,\n declare = extd.declare,\n pattern = __webpack_require__(/*! ../pattern.js */ \"./build/cht-core-4-6/node_modules/nools/lib/pattern.js\"),\n ObjectPattern = pattern.ObjectPattern,\n FromPattern = pattern.FromPattern,\n FromNotPattern = pattern.FromNotPattern,\n ExistsPattern = pattern.ExistsPattern,\n FromExistsPattern = pattern.FromExistsPattern,\n NotPattern = pattern.NotPattern,\n CompositePattern = pattern.CompositePattern,\n InitialFactPattern = pattern.InitialFactPattern,\n constraints = __webpack_require__(/*! ../constraint */ \"./build/cht-core-4-6/node_modules/nools/lib/constraint.js\"),\n HashConstraint = constraints.HashConstraint,\n ReferenceConstraint = constraints.ReferenceConstraint,\n AliasNode = __webpack_require__(/*! ./aliasNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/aliasNode.js\"),\n EqualityNode = __webpack_require__(/*! ./equalityNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/equalityNode.js\"),\n JoinNode = __webpack_require__(/*! ./joinNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/joinNode.js\"),\n BetaNode = __webpack_require__(/*! ./betaNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/betaNode.js\"),\n NotNode = __webpack_require__(/*! ./notNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/notNode.js\"),\n FromNode = __webpack_require__(/*! ./fromNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNode.js\"),\n FromNotNode = __webpack_require__(/*! ./fromNotNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNotNode.js\"),\n ExistsNode = __webpack_require__(/*! ./existsNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/existsNode.js\"),\n ExistsFromNode = __webpack_require__(/*! ./existsFromNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/existsFromNode.js\"),\n LeftAdapterNode = __webpack_require__(/*! ./leftAdapterNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/leftAdapterNode.js\"),\n RightAdapterNode = __webpack_require__(/*! ./rightAdapterNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/rightAdapterNode.js\"),\n TypeNode = __webpack_require__(/*! ./typeNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/typeNode.js\"),\n TerminalNode = __webpack_require__(/*! ./terminalNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/terminalNode.js\"),\n PropertyNode = __webpack_require__(/*! ./propertyNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/propertyNode.js\");\n\nfunction hasRefernceConstraints(pattern) {\n return some(pattern.constraints || [], function (c) {\n return c instanceof ReferenceConstraint;\n });\n}\n\ndeclare({\n instance: {\n constructor: function (wm, agendaTree) {\n this.terminalNodes = [];\n this.joinNodes = [];\n this.nodes = [];\n this.constraints = [];\n this.typeNodes = [];\n this.__ruleCount = 0;\n this.bucket = {\n counter: 0,\n recency: 0\n };\n this.agendaTree = agendaTree;\n this.workingMemory = wm;\n },\n\n assertRule: function (rule) {\n var terminalNode = new TerminalNode(this.bucket, this.__ruleCount++, rule, this.agendaTree);\n this.__addToNetwork(rule, rule.pattern, terminalNode);\n this.__mergeJoinNodes();\n this.terminalNodes.push(terminalNode);\n },\n\n resetCounter: function () {\n this.bucket.counter = 0;\n },\n\n incrementCounter: function () {\n this.bucket.counter++;\n },\n\n assertFact: function (fact) {\n var typeNodes = this.typeNodes, i = typeNodes.length - 1;\n for (; i >= 0; i--) {\n typeNodes[i].assert(fact);\n }\n },\n\n retractFact: function (fact) {\n var typeNodes = this.typeNodes, i = typeNodes.length - 1;\n for (; i >= 0; i--) {\n typeNodes[i].retract(fact);\n }\n },\n\n modifyFact: function (fact) {\n var typeNodes = this.typeNodes, i = typeNodes.length - 1;\n for (; i >= 0; i--) {\n typeNodes[i].modify(fact);\n }\n },\n\n\n containsRule: function (name) {\n return some(this.terminalNodes, function (n) {\n return n.rule.name === name;\n });\n },\n\n dispose: function () {\n var typeNodes = this.typeNodes, i = typeNodes.length - 1;\n for (; i >= 0; i--) {\n typeNodes[i].dispose();\n }\n },\n\n __mergeJoinNodes: function () {\n var joinNodes = this.joinNodes;\n for (var i = 0; i < joinNodes.length; i++) {\n var j1 = joinNodes[i], j2 = joinNodes[i + 1];\n if (j1 && j2 && (j1.constraint && j2.constraint && j1.constraint.equal(j2.constraint))) {\n j1.merge(j2);\n joinNodes.splice(i + 1, 1);\n }\n }\n },\n\n __checkEqual: function (node) {\n var constraints = this.constraints, i = constraints.length - 1;\n for (; i >= 0; i--) {\n var n = constraints[i];\n if (node.equal(n)) {\n return n;\n }\n }\n constraints.push(node);\n return node;\n },\n\n __createTypeNode: function (rule, pattern) {\n var ret = new TypeNode(pattern.get(\"constraints\")[0]);\n var constraints = this.typeNodes, i = constraints.length - 1;\n for (; i >= 0; i--) {\n var n = constraints[i];\n if (ret.equal(n)) {\n return n;\n }\n }\n constraints.push(ret);\n return ret;\n },\n\n __createEqualityNode: function (rule, constraint) {\n return this.__checkEqual(new EqualityNode(constraint)).addRule(rule);\n },\n\n __createPropertyNode: function (rule, constraint) {\n return this.__checkEqual(new PropertyNode(constraint)).addRule(rule);\n },\n\n __createAliasNode: function (rule, pattern) {\n return this.__checkEqual(new AliasNode(pattern)).addRule(rule);\n },\n\n __createAdapterNode: function (rule, side) {\n return (side === \"left\" ? new LeftAdapterNode() : new RightAdapterNode()).addRule(rule);\n },\n\n __createJoinNode: function (rule, pattern, outNode, side) {\n var joinNode;\n if (pattern.rightPattern instanceof NotPattern) {\n joinNode = new NotNode();\n } else if (pattern.rightPattern instanceof FromExistsPattern) {\n joinNode = new ExistsFromNode(pattern.rightPattern, this.workingMemory);\n } else if (pattern.rightPattern instanceof ExistsPattern) {\n joinNode = new ExistsNode();\n } else if (pattern.rightPattern instanceof FromNotPattern) {\n joinNode = new FromNotNode(pattern.rightPattern, this.workingMemory);\n } else if (pattern.rightPattern instanceof FromPattern) {\n joinNode = new FromNode(pattern.rightPattern, this.workingMemory);\n } else if (pattern instanceof CompositePattern && !hasRefernceConstraints(pattern.leftPattern) && !hasRefernceConstraints(pattern.rightPattern)) {\n joinNode = new BetaNode();\n this.joinNodes.push(joinNode);\n } else {\n joinNode = new JoinNode();\n this.joinNodes.push(joinNode);\n }\n joinNode[\"__rule__\"] = rule;\n var parentNode = joinNode;\n if (outNode instanceof BetaNode) {\n var adapterNode = this.__createAdapterNode(rule, side);\n parentNode.addOutNode(adapterNode, pattern);\n parentNode = adapterNode;\n }\n parentNode.addOutNode(outNode, pattern);\n return joinNode.addRule(rule);\n },\n\n __addToNetwork: function (rule, pattern, outNode, side) {\n if (pattern instanceof ObjectPattern) {\n if (!(pattern instanceof InitialFactPattern) && (!side || side === \"left\")) {\n this.__createBetaNode(rule, new CompositePattern(new InitialFactPattern(), pattern), outNode, side);\n } else {\n this.__createAlphaNode(rule, pattern, outNode, side);\n }\n } else if (pattern instanceof CompositePattern) {\n this.__createBetaNode(rule, pattern, outNode, side);\n }\n },\n\n __createBetaNode: function (rule, pattern, outNode, side) {\n var joinNode = this.__createJoinNode(rule, pattern, outNode, side);\n this.__addToNetwork(rule, pattern.rightPattern, joinNode, \"right\");\n this.__addToNetwork(rule, pattern.leftPattern, joinNode, \"left\");\n outNode.addParentNode(joinNode);\n return joinNode;\n },\n\n\n __createAlphaNode: function (rule, pattern, outNode, side) {\n var typeNode, parentNode;\n if (!(pattern instanceof FromPattern)) {\n\n var constraints = pattern.get(\"constraints\");\n typeNode = this.__createTypeNode(rule, pattern);\n var aliasNode = this.__createAliasNode(rule, pattern);\n typeNode.addOutNode(aliasNode, pattern);\n aliasNode.addParentNode(typeNode);\n parentNode = aliasNode;\n var i = constraints.length - 1;\n for (; i > 0; i--) {\n var constraint = constraints[i], node;\n if (constraint instanceof HashConstraint) {\n node = this.__createPropertyNode(rule, constraint);\n } else if (constraint instanceof ReferenceConstraint) {\n outNode.constraint.addConstraint(constraint);\n continue;\n } else {\n node = this.__createEqualityNode(rule, constraint);\n }\n parentNode.addOutNode(node, pattern);\n node.addParentNode(parentNode);\n parentNode = node;\n }\n\n if (outNode instanceof BetaNode) {\n var adapterNode = this.__createAdapterNode(rule, side);\n adapterNode.addParentNode(parentNode);\n parentNode.addOutNode(adapterNode, pattern);\n parentNode = adapterNode;\n }\n outNode.addParentNode(parentNode);\n parentNode.addOutNode(outNode, pattern);\n return typeNode;\n }\n },\n\n print: function () {\n forEach(this.terminalNodes, function (t) {\n t.print(\" \");\n });\n }\n }\n}).as(exports, \"RootNode\");\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/joinNode.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/joinNode.js ***!\n \\*********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar BetaNode = __webpack_require__(/*! ./betaNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/betaNode.js\"),\n JoinReferenceNode = __webpack_require__(/*! ./joinReferenceNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/joinReferenceNode.js\");\n\nBetaNode.extend({\n\n instance: {\n constructor: function () {\n this._super(arguments);\n this.constraint = new JoinReferenceNode(this.leftTuples, this.rightTuples);\n },\n\n nodeType: \"JoinNode\",\n\n propagateFromLeft: function (context, rm) {\n var mr;\n if ((mr = this.constraint.match(context, rm)).isMatch) {\n this.__propagate(\"assert\", this.__addToMemoryMatches(rm, context, context.clone(null, null, mr)));\n }\n return this;\n },\n\n propagateFromRight: function (context, lm) {\n var mr;\n if ((mr = this.constraint.match(lm, context)).isMatch) {\n this.__propagate(\"assert\", this.__addToMemoryMatches(context, lm, context.clone(null, null, mr)));\n }\n return this;\n },\n\n propagateAssertModifyFromLeft: function (context, rightMatches, rm) {\n var factId = rm.hashCode, mr;\n if (factId in rightMatches) {\n mr = this.constraint.match(context, rm);\n var mrIsMatch = mr.isMatch;\n if (!mrIsMatch) {\n this.__propagate(\"retract\", rightMatches[factId].clone());\n } else {\n this.__propagate(\"modify\", this.__addToMemoryMatches(rm, context, context.clone(null, null, mr)));\n }\n } else {\n this.propagateFromLeft(context, rm);\n }\n },\n\n propagateAssertModifyFromRight: function (context, leftMatches, lm) {\n var factId = lm.hashCode, mr;\n if (factId in leftMatches) {\n mr = this.constraint.match(lm, context);\n var mrIsMatch = mr.isMatch;\n if (!mrIsMatch) {\n this.__propagate(\"retract\", leftMatches[factId].clone());\n } else {\n this.__propagate(\"modify\", this.__addToMemoryMatches(context, lm, context.clone(null, null, mr)));\n }\n } else {\n this.propagateFromRight(context, lm);\n }\n }\n }\n\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/joinReferenceNode.js\":\n/*!******************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/joinReferenceNode.js ***!\n \\******************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar Node = __webpack_require__(/*! ./node */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js\"),\n constraints = __webpack_require__(/*! ../constraint */ \"./build/cht-core-4-6/node_modules/nools/lib/constraint.js\"),\n ReferenceEqualityConstraint = constraints.ReferenceEqualityConstraint;\n\nvar DEFUALT_CONSTRAINT = {\n isDefault: true,\n assert: function () {\n return true;\n },\n\n equal: function () {\n return false;\n }\n};\n\nvar inversions = {\n \"gt\": \"lte\",\n \"gte\": \"lte\",\n \"lt\": \"gte\",\n \"lte\": \"gte\",\n \"eq\": \"eq\",\n \"neq\": \"neq\"\n};\n\nfunction normalizeRightIndexConstraint(rightIndex, indexes, op) {\n if (rightIndex === indexes[1]) {\n op = inversions[op];\n }\n return op;\n}\n\nfunction normalizeLeftIndexConstraint(leftIndex, indexes, op) {\n if (leftIndex === indexes[1]) {\n op = inversions[op];\n }\n return op;\n}\n\nNode.extend({\n\n instance: {\n\n constraint: DEFUALT_CONSTRAINT,\n\n constructor: function (leftMemory, rightMemory) {\n this._super(arguments);\n this.constraint = DEFUALT_CONSTRAINT;\n this.constraintAssert = DEFUALT_CONSTRAINT.assert;\n this.rightIndexes = [];\n this.leftIndexes = [];\n this.constraintLength = 0;\n this.leftMemory = leftMemory;\n this.rightMemory = rightMemory;\n },\n\n addConstraint: function (constraint) {\n if (constraint instanceof ReferenceEqualityConstraint) {\n var identifiers = constraint.getIndexableProperties();\n var alias = constraint.get(\"alias\");\n if (identifiers.length === 2 && alias) {\n var leftIndex, rightIndex, i = -1, indexes = [];\n while (++i < 2) {\n var index = identifiers[i];\n if (index.match(new RegExp(\"^\" + alias + \"(\\\\.?)\")) === null) {\n indexes.push(index);\n leftIndex = index;\n } else {\n indexes.push(index);\n rightIndex = index;\n }\n }\n if (leftIndex && rightIndex) {\n var leftOp = normalizeLeftIndexConstraint(leftIndex, indexes, constraint.op),\n rightOp = normalizeRightIndexConstraint(rightIndex, indexes, constraint.op);\n this.rightMemory.addIndex(rightIndex, leftIndex, rightOp);\n this.leftMemory.addIndex(leftIndex, rightIndex, leftOp);\n }\n }\n }\n if (this.constraint.isDefault) {\n this.constraint = constraint;\n this.isDefault = false;\n } else {\n this.constraint = this.constraint.merge(constraint);\n }\n this.constraintAssert = this.constraint.assert;\n\n },\n\n equal: function (constraint) {\n return this.constraint.equal(constraint.constraint);\n },\n\n isMatch: function (lc, rc) {\n return this.constraintAssert(lc.factHash, rc.factHash);\n },\n\n match: function (lc, rc) {\n var ret = {isMatch: false};\n if (this.constraintAssert(lc.factHash, rc.factHash)) {\n ret = lc.match.merge(rc.match);\n }\n return ret;\n }\n\n }\n\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/leftAdapterNode.js\":\n/*!****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/leftAdapterNode.js ***!\n \\****************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar Node = __webpack_require__(/*! ./adapterNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/adapterNode.js\");\n\nNode.extend({\n instance: {\n propagateAssert: function (context) {\n this.__propagate(\"assertLeft\", context);\n },\n\n propagateRetract: function (context) {\n this.__propagate(\"retractLeft\", context);\n },\n\n propagateResolve: function (context) {\n this.__propagate(\"retractResolve\", context);\n },\n\n propagateModify: function (context) {\n this.__propagate(\"modifyLeft\", context);\n },\n\n retractResolve: function (match) {\n this.__propagate(\"retractResolve\", match);\n },\n\n dispose: function (context) {\n this.propagateDispose(context);\n },\n\n toString: function () {\n return \"LeftAdapterNode \" + this.__count;\n }\n }\n\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/helpers.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/helpers.js ***!\n \\*************************************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\nexports.getMemory = (function () {\n\n var pPush = Array.prototype.push, NPL = 0, EMPTY_ARRAY = [], NOT_POSSIBLES_HASH = {}, POSSIBLES_HASH = {}, PL = 0;\n\n function mergePossibleTuples(ret, a, l) {\n var val, j = 0, i = -1;\n if (PL < l) {\n while (PL && ++i < l) {\n if (POSSIBLES_HASH[(val = a[i]).hashCode]) {\n ret[j++] = val;\n PL--;\n }\n }\n } else {\n pPush.apply(ret, a);\n }\n PL = 0;\n POSSIBLES_HASH = {};\n }\n\n\n function mergeNotPossibleTuples(ret, a, l) {\n var val, j = 0, i = -1;\n if (NPL < l) {\n while (++i < l) {\n if (!NPL) {\n ret[j++] = a[i];\n } else if (!NOT_POSSIBLES_HASH[(val = a[i]).hashCode]) {\n ret[j++] = val;\n } else {\n NPL--;\n }\n }\n }\n NPL = 0;\n NOT_POSSIBLES_HASH = {};\n }\n\n function mergeBothTuples(ret, a, l) {\n if (PL === l) {\n mergeNotPossibles(ret, a, l);\n } else if (NPL < l) {\n var val, j = 0, i = -1, hashCode;\n while (++i < l) {\n if (!NOT_POSSIBLES_HASH[(hashCode = (val = a[i]).hashCode)] && POSSIBLES_HASH[hashCode]) {\n ret[j++] = val;\n }\n }\n }\n NPL = 0;\n NOT_POSSIBLES_HASH = {};\n PL = 0;\n POSSIBLES_HASH = {};\n }\n\n function mergePossiblesAndNotPossibles(a, l) {\n var ret = EMPTY_ARRAY;\n if (l) {\n if (NPL || PL) {\n ret = [];\n if (!NPL) {\n mergePossibleTuples(ret, a, l);\n } else if (!PL) {\n mergeNotPossibleTuples(ret, a, l);\n } else {\n mergeBothTuples(ret, a, l);\n }\n } else {\n ret = a;\n }\n }\n return ret;\n }\n\n function getRangeTuples(op, currEntry, val) {\n var ret;\n if (op === \"gt\") {\n ret = currEntry.findGT(val);\n } else if (op === \"gte\") {\n ret = currEntry.findGTE(val);\n } else if (op === \"lt\") {\n ret = currEntry.findLT(val);\n } else if (op === \"lte\") {\n ret = currEntry.findLTE(val);\n }\n return ret;\n }\n\n function mergeNotPossibles(tuples, tl) {\n if (tl) {\n var j = -1, hashCode;\n while (++j < tl) {\n hashCode = tuples[j].hashCode;\n if (!NOT_POSSIBLES_HASH[hashCode]) {\n NOT_POSSIBLES_HASH[hashCode] = true;\n NPL++;\n }\n }\n }\n }\n\n function mergePossibles(tuples, tl) {\n if (tl) {\n var j = -1, hashCode;\n while (++j < tl) {\n hashCode = tuples[j].hashCode;\n if (!POSSIBLES_HASH[hashCode]) {\n POSSIBLES_HASH[hashCode] = true;\n PL++;\n }\n }\n }\n }\n\n return function _getMemory(entry, factHash, indexes) {\n var i = -1, l = indexes.length,\n ret = entry.tuples,\n rl = ret.length,\n intersected = false,\n tables = entry.tables,\n index, val, op, nextEntry, currEntry, tuples, tl;\n while (++i < l && rl) {\n index = indexes[i];\n val = index[3](factHash);\n op = index[4];\n currEntry = tables[index[0]];\n if (op === \"eq\" || op === \"seq\") {\n if ((nextEntry = currEntry.get(val))) {\n rl = (ret = (entry = nextEntry).tuples).length;\n tables = nextEntry.tables;\n } else {\n rl = (ret = EMPTY_ARRAY).length;\n }\n } else if (op === \"neq\" || op === \"sneq\") {\n if ((nextEntry = currEntry.get(val))) {\n tl = (tuples = nextEntry.tuples).length;\n mergeNotPossibles(tuples, tl);\n }\n } else if (!intersected) {\n rl = (ret = getRangeTuples(op, currEntry, val)).length;\n intersected = true;\n } else if ((tl = (tuples = getRangeTuples(op, currEntry, val)).length)) {\n mergePossibles(tuples, tl);\n } else {\n ret = tuples;\n rl = tl;\n }\n }\n return mergePossiblesAndNotPossibles(ret, rl);\n };\n}());\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/leftMemory.js\":\n/*!****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/leftMemory.js ***!\n \\****************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar Memory = __webpack_require__(/*! ./memory */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/memory.js\");\n\nMemory.extend({\n\n instance: {\n\n getLeftMemory: function (tuple) {\n return this.getMemory(tuple);\n }\n }\n\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/memory.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/memory.js ***!\n \\************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar extd = __webpack_require__(/*! ../../extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n plucker = extd.plucker,\n declare = extd.declare,\n getMemory = __webpack_require__(/*! ./helpers */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/helpers.js\").getMemory,\n Table = __webpack_require__(/*! ./table */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/table.js\"),\n TupleEntry = __webpack_require__(/*! ./tupleEntry */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/tupleEntry.js\");\n\n\nvar id = 0;\ndeclare({\n\n instance: {\n length: 0,\n\n constructor: function () {\n this.head = null;\n this.tail = null;\n this.indexes = [];\n this.tables = new TupleEntry(null, new Table(), false);\n },\n\n push: function (data) {\n var tail = this.tail, head = this.head, node = {data: data, tuples: [], hashCode: id++, prev: tail, next: null};\n if (tail) {\n this.tail.next = node;\n }\n this.tail = node;\n if (!head) {\n this.head = node;\n }\n this.length++;\n this.__index(node);\n this.tables.addNode(node);\n return node;\n },\n\n remove: function (node) {\n if (node.prev) {\n node.prev.next = node.next;\n } else {\n this.head = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n } else {\n this.tail = node.prev;\n }\n this.tables.removeNode(node);\n this.__removeFromIndex(node);\n this.length--;\n },\n\n forEach: function (cb) {\n var head = {next: this.head};\n while ((head = head.next)) {\n cb(head.data);\n }\n },\n\n toArray: function () {\n return this.tables.tuples.slice();\n },\n\n clear: function () {\n this.head = this.tail = null;\n this.length = 0;\n this.clearIndexes();\n },\n\n clearIndexes: function () {\n this.tables = {};\n this.indexes.length = 0;\n },\n\n __index: function (node) {\n var data = node.data,\n factHash = data.factHash,\n indexes = this.indexes,\n entry = this.tables,\n i = -1, l = indexes.length,\n tuples, index, val, path, tables, currEntry, prevLookup;\n while (++i < l) {\n index = indexes[i];\n val = index[2](factHash);\n path = index[0];\n tables = entry.tables;\n if (!(tuples = (currEntry = tables[path] || (tables[path] = new Table())).get(val))) {\n tuples = new TupleEntry(val, currEntry, true);\n currEntry.set(val, tuples);\n }\n if (currEntry !== prevLookup) {\n node.tuples.push(tuples.addNode(node));\n }\n prevLookup = currEntry;\n if (index[4] === \"eq\") {\n entry = tuples;\n }\n }\n },\n\n __removeFromIndex: function (node) {\n var tuples = node.tuples, i = tuples.length;\n while (--i >= 0) {\n tuples[i].removeNode(node);\n }\n node.tuples.length = 0;\n },\n\n getMemory: function (tuple) {\n var ret;\n if (!this.length) {\n ret = [];\n } else {\n ret = getMemory(this.tables, tuple.factHash, this.indexes);\n }\n return ret;\n },\n\n __createIndexTree: function () {\n var table = this.tables.tables = {};\n var indexes = this.indexes;\n table[indexes[0][0]] = new Table();\n },\n\n\n addIndex: function (primary, lookup, op) {\n this.indexes.push([primary, lookup, plucker(primary), plucker(lookup), op || \"eq\"]);\n this.indexes.sort(function (a, b) {\n var aOp = a[4], bOp = b[4];\n return aOp === bOp ? 0 : aOp > bOp ? 1 : aOp === bOp ? 0 : -1;\n });\n this.__createIndexTree();\n\n }\n\n }\n\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/rightMemory.js\":\n/*!*****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/rightMemory.js ***!\n \\*****************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar Memory = __webpack_require__(/*! ./memory */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/memory.js\");\n\nMemory.extend({\n\n instance: {\n\n getRightMemory: function (tuple) {\n return this.getMemory(tuple);\n }\n }\n\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/table.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/table.js ***!\n \\***********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar extd = __webpack_require__(/*! ../../extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n pPush = Array.prototype.push,\n HashTable = extd.HashTable,\n AVLTree = extd.AVLTree;\n\nfunction compare(a, b) {\n /*jshint eqeqeq: false*/\n a = a.key;\n b = b.key;\n var ret;\n if (a == b) {\n ret = 0;\n } else if (a > b) {\n ret = 1;\n } else if (a < b) {\n ret = -1;\n } else {\n ret = 1;\n }\n return ret;\n}\n\nfunction compareGT(v1, v2) {\n return compare(v1, v2) === 1;\n}\nfunction compareGTE(v1, v2) {\n return compare(v1, v2) !== -1;\n}\n\nfunction compareLT(v1, v2) {\n return compare(v1, v2) === -1;\n}\nfunction compareLTE(v1, v2) {\n return compare(v1, v2) !== 1;\n}\n\nvar STACK = [],\n VALUE = {key: null};\nfunction traverseInOrder(tree, key, comparator) {\n VALUE.key = key;\n var ret = [];\n var i = 0, current = tree.__root, v;\n while (true) {\n if (current) {\n current = (STACK[i++] = current).left;\n } else {\n if (i > 0) {\n v = (current = STACK[--i]).data;\n if (comparator(v, VALUE)) {\n pPush.apply(ret, v.value.tuples);\n current = current.right;\n } else {\n break;\n }\n } else {\n break;\n }\n }\n }\n STACK.length = 0;\n return ret;\n}\n\nfunction traverseReverseOrder(tree, key, comparator) {\n VALUE.key = key;\n var ret = [];\n var i = 0, current = tree.__root, v;\n while (true) {\n if (current) {\n current = (STACK[i++] = current).right;\n } else {\n if (i > 0) {\n v = (current = STACK[--i]).data;\n if (comparator(v, VALUE)) {\n pPush.apply(ret, v.value.tuples);\n current = current.left;\n } else {\n break;\n }\n } else {\n break;\n }\n }\n }\n STACK.length = 0;\n return ret;\n}\n\nAVLTree.extend({\n instance: {\n\n constructor: function () {\n this._super([\n {\n compare: compare\n }\n ]);\n this.gtCache = new HashTable();\n this.gteCache = new HashTable();\n this.ltCache = new HashTable();\n this.lteCache = new HashTable();\n this.hasGTCache = false;\n this.hasGTECache = false;\n this.hasLTCache = false;\n this.hasLTECache = false;\n },\n\n clearCache: function () {\n this.hasGTCache && this.gtCache.clear() && (this.hasGTCache = false);\n this.hasGTECache && this.gteCache.clear() && (this.hasGTECache = false);\n this.hasLTCache && this.ltCache.clear() && (this.hasLTCache = false);\n this.hasLTECache && this.lteCache.clear() && (this.hasLTECache = false);\n },\n\n contains: function (key) {\n return this._super([\n {key: key}\n ]);\n },\n\n \"set\": function (key, value) {\n this.insert({key: key, value: value});\n this.clearCache();\n },\n\n \"get\": function (key) {\n var ret = this.find({key: key});\n return ret && ret.value;\n },\n\n \"remove\": function (key) {\n this.clearCache();\n return this._super([\n {key: key}\n ]);\n },\n\n findGT: function (key) {\n var ret = this.gtCache.get(key);\n if (!ret) {\n this.hasGTCache = true;\n this.gtCache.put(key, (ret = traverseReverseOrder(this, key, compareGT)));\n }\n return ret;\n },\n\n findGTE: function (key) {\n var ret = this.gteCache.get(key);\n if (!ret) {\n this.hasGTECache = true;\n this.gteCache.put(key, (ret = traverseReverseOrder(this, key, compareGTE)));\n }\n return ret;\n },\n\n findLT: function (key) {\n var ret = this.ltCache.get(key);\n if (!ret) {\n this.hasLTCache = true;\n this.ltCache.put(key, (ret = traverseInOrder(this, key, compareLT)));\n }\n return ret;\n },\n\n findLTE: function (key) {\n var ret = this.lteCache.get(key);\n if (!ret) {\n this.hasLTECache = true;\n this.lteCache.put(key, (ret = traverseInOrder(this, key, compareLTE)));\n }\n return ret;\n }\n\n }\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/tupleEntry.js\":\n/*!****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/tupleEntry.js ***!\n \\****************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar extd = __webpack_require__(/*! ../../extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n indexOf = extd.indexOf;\n// HashSet = require(\"./hashSet\");\n\n\nvar TUPLE_ID = 0;\nextd.declare({\n\n instance: {\n tuples: null,\n tupleMap: null,\n hashCode: null,\n tables: null,\n entry: null,\n constructor: function (val, entry, canRemove) {\n this.val = val;\n this.canRemove = canRemove;\n this.tuples = [];\n this.tupleMap = {};\n this.hashCode = TUPLE_ID++;\n this.tables = {};\n this.length = 0;\n this.entry = entry;\n },\n\n addNode: function (node) {\n this.tuples[this.length++] = node;\n if (this.length > 1) {\n this.entry.clearCache();\n }\n return this;\n },\n\n removeNode: function (node) {\n var tuples = this.tuples, index = indexOf(tuples, node);\n if (index !== -1) {\n tuples.splice(index, 1);\n this.length--;\n this.entry.clearCache();\n }\n if (this.canRemove && !this.length) {\n this.entry.remove(this.val);\n }\n }\n }\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js ***!\n \\*****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar extd = __webpack_require__(/*! ../extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n forEach = extd.forEach,\n indexOf = extd.indexOf,\n intersection = extd.intersection,\n declare = extd.declare,\n HashTable = extd.HashTable,\n Context = __webpack_require__(/*! ../context */ \"./build/cht-core-4-6/node_modules/nools/lib/context.js\");\n\nvar count = 0;\ndeclare({\n instance: {\n constructor: function () {\n this.nodes = new HashTable();\n this.rules = [];\n this.parentNodes = [];\n this.__count = count++;\n this.__entrySet = [];\n },\n\n addRule: function (rule) {\n if (indexOf(this.rules, rule) === -1) {\n this.rules.push(rule);\n }\n return this;\n },\n\n merge: function (that) {\n that.nodes.forEach(function (entry) {\n var patterns = entry.value, node = entry.key;\n for (var i = 0, l = patterns.length; i < l; i++) {\n this.addOutNode(node, patterns[i]);\n }\n that.nodes.remove(node);\n }, this);\n var thatParentNodes = that.parentNodes;\n for (var i = 0, l = that.parentNodes.l; i < l; i++) {\n var parentNode = thatParentNodes[i];\n this.addParentNode(parentNode);\n parentNode.nodes.remove(that);\n }\n return this;\n },\n\n resolve: function (mr1, mr2) {\n return mr1.hashCode === mr2.hashCode;\n },\n\n print: function (tab) {\n console.log(tab + this.toString());\n forEach(this.parentNodes, function (n) {\n n.print(\" \" + tab);\n });\n },\n\n addOutNode: function (outNode, pattern) {\n if (!this.nodes.contains(outNode)) {\n this.nodes.put(outNode, []);\n }\n this.nodes.get(outNode).push(pattern);\n this.__entrySet = this.nodes.entrySet();\n },\n\n addParentNode: function (n) {\n if (indexOf(this.parentNodes, n) === -1) {\n this.parentNodes.push(n);\n }\n },\n\n shareable: function () {\n return false;\n },\n\n __propagate: function (method, context) {\n var entrySet = this.__entrySet, i = entrySet.length, entry, outNode, paths, continuingPaths;\n while (--i > -1) {\n entry = entrySet[i];\n outNode = entry.key;\n paths = entry.value;\n\n if ((continuingPaths = intersection(paths, context.paths)).length) {\n outNode[method](new Context(context.fact, continuingPaths, context.match));\n }\n\n }\n },\n\n dispose: function (assertable) {\n this.propagateDispose(assertable);\n },\n\n retract: function (assertable) {\n this.propagateRetract(assertable);\n },\n\n propagateDispose: function (assertable, outNodes) {\n outNodes = outNodes || this.nodes;\n var entrySet = this.__entrySet, i = entrySet.length - 1;\n for (; i >= 0; i--) {\n var entry = entrySet[i], outNode = entry.key;\n outNode.dispose(assertable);\n }\n },\n\n propagateAssert: function (assertable) {\n this.__propagate(\"assert\", assertable);\n },\n\n propagateRetract: function (assertable) {\n this.__propagate(\"retract\", assertable);\n },\n\n assert: function (assertable) {\n this.propagateAssert(assertable);\n },\n\n modify: function (assertable) {\n this.propagateModify(assertable);\n },\n\n propagateModify: function (assertable) {\n this.__propagate(\"modify\", assertable);\n }\n }\n\n}).as(module);\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/notNode.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/notNode.js ***!\n \\********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar JoinNode = __webpack_require__(/*! ./joinNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/joinNode.js\"),\n LinkedList = __webpack_require__(/*! ../linkedList */ \"./build/cht-core-4-6/node_modules/nools/lib/linkedList.js\"),\n Context = __webpack_require__(/*! ../context */ \"./build/cht-core-4-6/node_modules/nools/lib/context.js\"),\n InitialFact = __webpack_require__(/*! ../pattern */ \"./build/cht-core-4-6/node_modules/nools/lib/pattern.js\").InitialFact;\n\n\nJoinNode.extend({\n instance: {\n\n nodeType: \"NotNode\",\n\n constructor: function () {\n this._super(arguments);\n this.leftTupleMemory = {};\n //use this ensure a unique match for and propagated context.\n this.notMatch = new Context(new InitialFact()).match;\n },\n\n __cloneContext: function (context) {\n return context.clone(null, null, context.match.merge(this.notMatch));\n },\n\n\n retractRight: function (context) {\n var ctx = this.removeFromRightMemory(context),\n rightContext = ctx.data,\n blocking = rightContext.blocking;\n if (blocking.length) {\n //if we are blocking left contexts\n var leftContext, thisConstraint = this.constraint, blockingNode = {next: blocking.head}, rc;\n while ((blockingNode = blockingNode.next)) {\n leftContext = blockingNode.data;\n this.removeFromLeftBlockedMemory(leftContext);\n var rm = this.rightTuples.getRightMemory(leftContext), l = rm.length, i;\n i = -1;\n while (++i < l) {\n if (thisConstraint.isMatch(leftContext, rc = rm[i].data)) {\n this.blockedContext(leftContext, rc);\n leftContext = null;\n break;\n }\n }\n if (leftContext) {\n this.notBlockedContext(leftContext, true);\n }\n }\n blocking.clear();\n }\n\n },\n\n blockedContext: function (leftContext, rightContext, propagate) {\n leftContext.blocker = rightContext;\n this.removeFromLeftMemory(leftContext);\n this.addToLeftBlockedMemory(rightContext.blocking.push(leftContext));\n propagate && this.__propagate(\"retract\", this.__cloneContext(leftContext));\n },\n\n notBlockedContext: function (leftContext, propagate) {\n this.__addToLeftMemory(leftContext);\n propagate && this.__propagate(\"assert\", this.__cloneContext(leftContext));\n },\n\n propagateFromLeft: function (leftContext) {\n this.notBlockedContext(leftContext, true);\n },\n\n propagateFromRight: function (leftContext) {\n this.notBlockedContext(leftContext, true);\n },\n\n blockFromAssertRight: function (leftContext, rightContext) {\n this.blockedContext(leftContext, rightContext, true);\n },\n\n blockFromAssertLeft: function (leftContext, rightContext) {\n this.blockedContext(leftContext, rightContext, false);\n },\n\n\n retractLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context);\n if (ctx) {\n ctx = ctx.data;\n this.__propagate(\"retract\", this.__cloneContext(ctx));\n } else {\n if (!this.removeFromLeftBlockedMemory(context)) {\n throw new Error();\n }\n }\n },\n\n assertLeft: function (context) {\n var values = this.rightTuples.getRightMemory(context),\n thisConstraint = this.constraint, rc, i = -1, l = values.length;\n while (++i < l) {\n if (thisConstraint.isMatch(context, rc = values[i].data)) {\n this.blockFromAssertLeft(context, rc);\n context = null;\n i = l;\n }\n }\n if (context) {\n this.propagateFromLeft(context);\n }\n },\n\n assertRight: function (context) {\n this.__addToRightMemory(context);\n context.blocking = new LinkedList();\n var fl = this.leftTuples.getLeftMemory(context).slice(),\n i = -1, l = fl.length,\n leftContext, thisConstraint = this.constraint;\n while (++i < l) {\n leftContext = fl[i].data;\n if (thisConstraint.isMatch(leftContext, context)) {\n this.blockFromAssertRight(leftContext, context);\n }\n }\n },\n\n addToLeftBlockedMemory: function (context) {\n var data = context.data, hashCode = data.hashCode;\n var ctx = this.leftMemory[hashCode];\n this.leftTupleMemory[hashCode] = context;\n if (ctx) {\n this.leftTuples.remove(ctx);\n }\n return this;\n },\n\n removeFromLeftBlockedMemory: function (context) {\n var ret = this.leftTupleMemory[context.hashCode] || null;\n if (ret) {\n delete this.leftTupleMemory[context.hashCode];\n ret.data.blocker.blocking.remove(ret);\n }\n return ret;\n },\n\n modifyLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context),\n leftContext,\n thisConstraint = this.constraint,\n rightTuples = this.rightTuples.getRightMemory(context),\n l = rightTuples.length,\n isBlocked = false,\n i, rc, blocker;\n if (!ctx) {\n //blocked before\n ctx = this.removeFromLeftBlockedMemory(context);\n isBlocked = true;\n }\n if (ctx) {\n leftContext = ctx.data;\n\n if (leftContext && leftContext.blocker) {\n //we were blocked before so only check nodes previous to our blocker\n blocker = this.rightMemory[leftContext.blocker.hashCode];\n leftContext.blocker = null;\n }\n if (blocker) {\n if (thisConstraint.isMatch(context, rc = blocker.data)) {\n //we cant be proagated so retract previous\n if (!isBlocked) {\n //we were asserted before so retract\n this.__propagate(\"retract\", this.__cloneContext(leftContext));\n }\n context.blocker = rc;\n this.addToLeftBlockedMemory(rc.blocking.push(context));\n context = null;\n }\n }\n if (context && l) {\n i = -1;\n //we were propogated before\n while (++i < l) {\n if (thisConstraint.isMatch(context, rc = rightTuples[i].data)) {\n //we cant be proagated so retract previous\n if (!isBlocked) {\n //we were asserted before so retract\n this.__propagate(\"retract\", this.__cloneContext(leftContext));\n }\n this.addToLeftBlockedMemory(rc.blocking.push(context));\n context.blocker = rc;\n context = null;\n break;\n }\n }\n }\n if (context) {\n //we can still be propogated\n this.__addToLeftMemory(context);\n if (!isBlocked) {\n //we weren't blocked before so modify\n this.__propagate(\"modify\", this.__cloneContext(context));\n } else {\n //we were blocked before but aren't now\n this.__propagate(\"assert\", this.__cloneContext(context));\n }\n\n }\n } else {\n throw new Error();\n }\n\n },\n\n modifyRight: function (context) {\n var ctx = this.removeFromRightMemory(context);\n if (ctx) {\n var rightContext = ctx.data,\n leftTuples = this.leftTuples.getLeftMemory(context).slice(),\n leftTuplesLength = leftTuples.length,\n leftContext,\n thisConstraint = this.constraint,\n i, node,\n blocking = rightContext.blocking;\n this.__addToRightMemory(context);\n context.blocking = new LinkedList();\n\n var rc;\n //check old blocked contexts\n //check if the same contexts blocked before are still blocked\n var blockingNode = {next: blocking.head};\n while ((blockingNode = blockingNode.next)) {\n leftContext = blockingNode.data;\n leftContext.blocker = null;\n if (thisConstraint.isMatch(leftContext, context)) {\n leftContext.blocker = context;\n this.addToLeftBlockedMemory(context.blocking.push(leftContext));\n leftContext = null;\n } else {\n //we arent blocked anymore\n leftContext.blocker = null;\n node = ctx;\n while ((node = node.next)) {\n if (thisConstraint.isMatch(leftContext, rc = node.data)) {\n leftContext.blocker = rc;\n this.addToLeftBlockedMemory(rc.blocking.push(leftContext));\n leftContext = null;\n break;\n }\n }\n if (leftContext) {\n this.__addToLeftMemory(leftContext);\n this.__propagate(\"assert\", this.__cloneContext(leftContext));\n }\n }\n }\n if (leftTuplesLength) {\n //check currently left tuples in memory\n i = -1;\n while (++i < leftTuplesLength) {\n leftContext = leftTuples[i].data;\n if (thisConstraint.isMatch(leftContext, context)) {\n this.__propagate(\"retract\", this.__cloneContext(leftContext));\n this.removeFromLeftMemory(leftContext);\n this.addToLeftBlockedMemory(context.blocking.push(leftContext));\n leftContext.blocker = context;\n }\n }\n }\n } else {\n throw new Error();\n }\n\n\n }\n }\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/propertyNode.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/propertyNode.js ***!\n \\*************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar AlphaNode = __webpack_require__(/*! ./alphaNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/alphaNode.js\"),\n Context = __webpack_require__(/*! ../context */ \"./build/cht-core-4-6/node_modules/nools/lib/context.js\"),\n extd = __webpack_require__(/*! ../extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\");\n\nAlphaNode.extend({\n instance: {\n\n constructor: function () {\n this._super(arguments);\n this.alias = this.constraint.get(\"alias\");\n this.varLength = (this.variables = extd(this.constraint.get(\"variables\")).toArray().value()).length;\n },\n\n assert: function (context) {\n var c = new Context(context.fact, context.paths);\n var variables = this.variables, o = context.fact.object, item;\n c.set(this.alias, o);\n for (var i = 0, l = this.varLength; i < l; i++) {\n item = variables[i];\n c.set(item[1], o[item[0]]);\n }\n\n this.__propagate(\"assert\", c);\n\n },\n\n retract: function (context) {\n this.__propagate(\"retract\", new Context(context.fact, context.paths));\n },\n\n modify: function (context) {\n var c = new Context(context.fact, context.paths);\n var variables = this.variables, o = context.fact.object, item;\n c.set(this.alias, o);\n for (var i = 0, l = this.varLength; i < l; i++) {\n item = variables[i];\n c.set(item[1], o[item[0]]);\n }\n this.__propagate(\"modify\", c);\n },\n\n\n toString: function () {\n return \"PropertyNode\" + this.__count;\n }\n }\n}).as(module);\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/rightAdapterNode.js\":\n/*!*****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/rightAdapterNode.js ***!\n \\*****************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar Node = __webpack_require__(/*! ./adapterNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/adapterNode.js\");\n\nNode.extend({\n instance: {\n\n retractResolve: function (match) {\n this.__propagate(\"retractResolve\", match);\n },\n\n dispose: function (context) {\n this.propagateDispose(context);\n },\n\n propagateAssert: function (context) {\n this.__propagate(\"assertRight\", context);\n },\n\n propagateRetract: function (context) {\n this.__propagate(\"retractRight\", context);\n },\n\n propagateResolve: function (context) {\n this.__propagate(\"retractResolve\", context);\n },\n\n propagateModify: function (context) {\n this.__propagate(\"modifyRight\", context);\n },\n\n toString: function () {\n return \"RightAdapterNode \" + this.__count;\n }\n }\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/terminalNode.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/terminalNode.js ***!\n \\*************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar Node = __webpack_require__(/*! ./node */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js\"),\n extd = __webpack_require__(/*! ../extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n bind = extd.bind;\n\nNode.extend({\n instance: {\n constructor: function (bucket, index, rule, agenda) {\n this._super([]);\n this.resolve = bind(this, this.resolve);\n this.rule = rule;\n this.index = index;\n this.name = this.rule.name;\n this.agenda = agenda;\n this.bucket = bucket;\n agenda.register(this);\n },\n\n __assertModify: function (context) {\n var match = context.match;\n if (match.isMatch) {\n var rule = this.rule, bucket = this.bucket;\n this.agenda.insert(this, {\n rule: rule,\n hashCode: context.hashCode,\n index: this.index,\n name: rule.name,\n recency: bucket.recency++,\n match: match,\n counter: bucket.counter\n });\n }\n },\n\n assert: function (context) {\n this.__assertModify(context);\n },\n\n modify: function (context) {\n this.agenda.retract(this, context);\n this.__assertModify(context);\n },\n\n retract: function (context) {\n this.agenda.retract(this, context);\n },\n\n retractRight: function (context) {\n this.agenda.retract(this, context);\n },\n\n retractLeft: function (context) {\n this.agenda.retract(this, context);\n },\n\n assertLeft: function (context) {\n this.__assertModify(context);\n },\n\n assertRight: function (context) {\n this.__assertModify(context);\n },\n\n toString: function () {\n return \"TerminalNode \" + this.rule.name;\n }\n }\n}).as(module);\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/typeNode.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/typeNode.js ***!\n \\*********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\nvar AlphaNode = __webpack_require__(/*! ./alphaNode */ \"./build/cht-core-4-6/node_modules/nools/lib/nodes/alphaNode.js\"),\n Context = __webpack_require__(/*! ../context */ \"./build/cht-core-4-6/node_modules/nools/lib/context.js\");\n\nAlphaNode.extend({\n instance: {\n\n assert: function (fact) {\n if (this.constraintAssert(fact.object)) {\n this.__propagate(\"assert\", fact);\n }\n },\n\n modify: function (fact) {\n if (this.constraintAssert(fact.object)) {\n this.__propagate(\"modify\", fact);\n }\n },\n\n retract: function (fact) {\n if (this.constraintAssert(fact.object)) {\n this.__propagate(\"retract\", fact);\n }\n },\n\n toString: function () {\n return \"TypeNode\" + this.__count;\n },\n\n dispose: function () {\n var es = this.__entrySet, i = es.length - 1;\n for (; i >= 0; i--) {\n var e = es[i], outNode = e.key, paths = e.value;\n outNode.dispose({paths: paths});\n }\n },\n\n __propagate: function (method, fact) {\n var es = this.__entrySet, i = -1, l = es.length;\n while (++i < l) {\n var e = es[i], outNode = e.key, paths = e.value;\n outNode[method](new Context(fact, paths));\n }\n }\n }\n}).as(module);\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/parser/constraint/parser.js\":\n/*!*******************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/parser/constraint/parser.js ***!\n \\*******************************************************************************/\n/***/ ((module, exports, __webpack_require__) => {\n\n/* module decorator */ module = __webpack_require__.nmd(module);\n/* parser generated by jison 0.4.17 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,29],$V1=[1,30],$V2=[1,26],$V3=[1,24],$V4=[1,16],$V5=[1,18],$V6=[1,19],$V7=[1,20],$V8=[1,21],$V9=[1,22],$Va=[5,38,49],$Vb=[1,33],$Vc=[5,36,38,49],$Vd=[5,8,11,12,13,15,17,19,20,21,22,24,25,26,27,28,29,36,38,49],$Ve=[2,2],$Vf=[5,24,25,26,27,28,29,36,38,49],$Vg=[1,42],$Vh=[1,43],$Vi=[1,44],$Vj=[1,45],$Vk=[5,8,11,12,13,15,17,19,20,21,22,24,25,26,27,28,29,31,33,36,38,40,46,49],$Vl=[1,46],$Vm=[1,47],$Vn=[1,48],$Vo=[5,19,20,21,22,24,25,26,27,28,29,36,38,49],$Vp=[1,50],$Vq=[5,8,11,12,13,15,17,19,20,21,22,24,25,26,27,28,29,31,33,36,38,40,43,44,46,48,49],$Vr=[5,17,19,20,21,22,24,25,26,27,28,29,36,38,49],$Vs=[1,55],$Vt=[1,54],$Vu=[5,8,15,17,19,20,21,22,24,25,26,27,28,29,36,38,49],$Vv=[1,56],$Vw=[1,57],$Vx=[1,58],$Vy=[1,87],$Vz=[40,46,49];\nvar parser = {trace: function trace() { },\nyy: {},\nsymbols_: {\"error\":2,\"expressions\":3,\"EXPRESSION\":4,\"EOF\":5,\"UNARY_EXPRESSION\":6,\"LITERAL_EXPRESSION\":7,\"-\":8,\"!\":9,\"MULTIPLICATIVE_EXPRESSION\":10,\"*\":11,\"/\":12,\"%\":13,\"ADDITIVE_EXPRESSION\":14,\"+\":15,\"EXPONENT_EXPRESSION\":16,\"^\":17,\"RELATIONAL_EXPRESSION\":18,\"<\":19,\">\":20,\"<=\":21,\">=\":22,\"EQUALITY_EXPRESSION\":23,\"==\":24,\"===\":25,\"!=\":26,\"!==\":27,\"=~\":28,\"!=~\":29,\"IN_EXPRESSION\":30,\"in\":31,\"ARRAY_EXPRESSION\":32,\"notIn\":33,\"OBJECT_EXPRESSION\":34,\"AND_EXPRESSION\":35,\"&&\":36,\"OR_EXPRESSION\":37,\"||\":38,\"ARGUMENT_LIST\":39,\",\":40,\"IDENTIFIER_EXPRESSION\":41,\"IDENTIFIER\":42,\".\":43,\"[\":44,\"STRING_EXPRESSION\":45,\"]\":46,\"NUMBER_EXPRESSION\":47,\"(\":48,\")\":49,\"STRING\":50,\"NUMBER\":51,\"REGEXP_EXPRESSION\":52,\"REGEXP\":53,\"BOOLEAN_EXPRESSION\":54,\"BOOLEAN\":55,\"NULL_EXPRESSION\":56,\"NULL\":57,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",5:\"EOF\",8:\"-\",9:\"!\",11:\"*\",12:\"/\",13:\"%\",15:\"+\",17:\"^\",19:\"<\",20:\">\",21:\"<=\",22:\">=\",24:\"==\",25:\"===\",26:\"!=\",27:\"!==\",28:\"=~\",29:\"!=~\",31:\"in\",33:\"notIn\",36:\"&&\",38:\"||\",40:\",\",42:\"IDENTIFIER\",43:\".\",44:\"[\",46:\"]\",48:\"(\",49:\")\",50:\"STRING\",51:\"NUMBER\",53:\"REGEXP\",55:\"BOOLEAN\",57:\"NULL\"},\nproductions_: [0,[3,2],[6,1],[6,2],[6,2],[10,1],[10,3],[10,3],[10,3],[14,1],[14,3],[14,3],[16,1],[16,3],[18,1],[18,3],[18,3],[18,3],[18,3],[23,1],[23,3],[23,3],[23,3],[23,3],[23,3],[23,3],[30,1],[30,3],[30,3],[30,3],[30,3],[35,1],[35,3],[37,1],[37,3],[39,1],[39,3],[41,1],[34,1],[34,3],[34,4],[34,4],[34,4],[34,3],[34,4],[45,1],[47,1],[52,1],[54,1],[56,1],[32,2],[32,3],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,3],[4,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\nreturn $$[$0-1];\nbreak;\ncase 3:\nthis.$ = [$$[$0], null, 'unary'];\nbreak;\ncase 4:\nthis.$ = [$$[$0], null, 'logicalNot'];\nbreak;\ncase 6:\nthis.$ = [$$[$0-2], $$[$0], 'mult'];\nbreak;\ncase 7:\nthis.$ = [$$[$0-2], $$[$0], 'div'];\nbreak;\ncase 8:\nthis.$ = [$$[$0-2], $$[$0], 'mod'];\nbreak;\ncase 10:\nthis.$ = [$$[$0-2], $$[$0], 'plus'];\nbreak;\ncase 11:\nthis.$ = [$$[$0-2], $$[$0], 'minus'];\nbreak;\ncase 13:\nthis.$ = [$$[$0-2], $$[$0], 'pow'];\nbreak;\ncase 15:\nthis.$ = [$$[$0-2], $$[$0], 'lt'];\nbreak;\ncase 16:\nthis.$ = [$$[$0-2], $$[$0], 'gt'];\nbreak;\ncase 17:\nthis.$ = [$$[$0-2], $$[$0], 'lte'];\nbreak;\ncase 18:\nthis.$ = [$$[$0-2], $$[$0], 'gte'];\nbreak;\ncase 20:\nthis.$ = [$$[$0-2], $$[$0], 'eq'];\nbreak;\ncase 21:\nthis.$ = [$$[$0-2], $$[$0], 'seq'];\nbreak;\ncase 22:\nthis.$ = [$$[$0-2], $$[$0], 'neq'];\nbreak;\ncase 23:\nthis.$ = [$$[$0-2], $$[$0], 'sneq'];\nbreak;\ncase 24:\nthis.$ = [$$[$0-2], $$[$0], 'like'];\nbreak;\ncase 25:\nthis.$ = [$$[$0-2], $$[$0], 'notLike'];\nbreak;\ncase 27: case 29:\nthis.$ = [$$[$0-2], $$[$0], 'in'];\nbreak;\ncase 28: case 30:\nthis.$ = [$$[$0-2], $$[$0], 'notIn'];\nbreak;\ncase 32:\nthis.$ = [$$[$0-2], $$[$0], 'and'];\nbreak;\ncase 34:\nthis.$ = [$$[$0-2], $$[$0], 'or'];\nbreak;\ncase 36:\nthis.$ = [$$[$0-2], $$[$0], 'arguments']\nbreak;\ncase 37:\nthis.$ = [String(yytext), null, 'identifier'];\nbreak;\ncase 39:\nthis.$ = [$$[$0-2],$$[$0], 'prop'];\nbreak;\ncase 40: case 41: case 42:\nthis.$ = [$$[$0-3],$$[$0-1], 'propLookup'];\nbreak;\ncase 43:\nthis.$ = [$$[$0-2], [null, null, 'arguments'], 'function']\nbreak;\ncase 44:\nthis.$ = [$$[$0-3], $$[$0-1], 'function']\nbreak;\ncase 45:\nthis.$ = [String(yytext.replace(/^['|\"]|['|\"]$/g, '')), null, 'string'];\nbreak;\ncase 46:\nthis.$ = [Number(yytext), null, 'number'];\nbreak;\ncase 47:\nthis.$ = [yytext, null, 'regexp'];\nbreak;\ncase 48:\nthis.$ = [yytext.replace(/^\\s+/, '') == 'true', null, 'boolean'];\nbreak;\ncase 49:\nthis.$ = [null, null, 'null'];\nbreak;\ncase 50:\nthis.$ = [null, null, 'array'];\nbreak;\ncase 51:\nthis.$ = [$$[$0-1], null, 'array'];\nbreak;\ncase 59:\nthis.$ = [$$[$0-1], null, 'composite']\nbreak;\n}\n},\ntable: [{3:1,4:2,6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:5,32:15,34:14,35:4,37:3,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{1:[3]},{5:[1,31]},o([5,49],[2,60],{38:[1,32]}),o($Va,[2,33],{36:$Vb}),o($Vc,[2,31]),o($Vc,[2,26],{24:[1,34],25:[1,35],26:[1,36],27:[1,37],28:[1,38],29:[1,39]}),o($Vd,$Ve,{31:[1,40],33:[1,41]}),o($Vf,[2,19],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vk,[2,52]),o($Vk,[2,53]),o($Vk,[2,54]),o($Vk,[2,55]),o($Vk,[2,56]),o($Vk,[2,57],{43:$Vl,44:$Vm,48:$Vn}),o($Vk,[2,58]),{4:49,6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:5,32:15,34:14,35:4,37:3,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vo,[2,14],{17:$Vp}),o($Vk,[2,45]),o($Vk,[2,46]),o($Vk,[2,47]),o($Vk,[2,48]),o($Vk,[2,49]),o($Vq,[2,38]),{7:53,32:15,34:14,39:52,41:23,42:$V2,44:$V3,45:9,46:[1,51],47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vr,[2,12],{8:$Vs,15:$Vt}),o($Vq,[2,37]),o($Vu,[2,9],{11:$Vv,12:$Vw,13:$Vx}),o($Vd,[2,5]),{6:59,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:61,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{1:[2,1]},{6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:5,32:15,34:14,35:62,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:63,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:64,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:65,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:66,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:67,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:68,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:69,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{32:70,34:71,41:23,42:$V2,44:$V3},{32:72,34:73,41:23,42:$V2,44:$V3},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:74,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:75,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:76,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:77,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{41:78,42:$V2},{34:81,41:23,42:$V2,45:79,47:80,50:$V5,51:$V6},{7:53,32:15,34:14,39:83,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,49:[1,82],50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{49:[1,84]},{6:28,7:60,8:$V0,9:$V1,10:27,14:85,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vk,[2,50]),{40:$Vy,46:[1,86]},o($Vz,[2,35]),{6:28,7:60,8:$V0,9:$V1,10:88,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:89,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:90,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:91,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:92,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vd,[2,3]),o($Vd,$Ve),o($Vd,[2,4]),o($Va,[2,34],{36:$Vb}),o($Vc,[2,32]),o($Vf,[2,20],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,21],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,22],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,23],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,24],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,25],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vc,[2,27]),o($Vc,[2,29],{43:$Vl,44:$Vm,48:$Vn}),o($Vc,[2,28]),o($Vc,[2,30],{43:$Vl,44:$Vm,48:$Vn}),o($Vo,[2,15],{17:$Vp}),o($Vo,[2,16],{17:$Vp}),o($Vo,[2,17],{17:$Vp}),o($Vo,[2,18],{17:$Vp}),o($Vq,[2,39]),{46:[1,93]},{46:[1,94]},{43:$Vl,44:$Vm,46:[1,95],48:$Vn},o($Vq,[2,43]),{40:$Vy,49:[1,96]},o($Vk,[2,59]),o($Vr,[2,13],{8:$Vs,15:$Vt}),o($Vk,[2,51]),{7:97,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vu,[2,10],{11:$Vv,12:$Vw,13:$Vx}),o($Vu,[2,11],{11:$Vv,12:$Vw,13:$Vx}),o($Vd,[2,6]),o($Vd,[2,7]),o($Vd,[2,8]),o($Vq,[2,40]),o($Vq,[2,41]),o($Vq,[2,42]),o($Vq,[2,44]),o($Vz,[2,36])],\ndefaultActions: {31:[2,1]},\nparseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n function _parseError (msg, hash) {\n this.message = msg;\n this.hash = hash;\n }\n _parseError.prototype = Error;\n\n throw new _parseError(str, hash);\n }\n},\nparse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n _token_stack:\n var lex = function () {\n var token;\n token = lexer.lex() || EOF;\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n return token;\n };\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n}};\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0,0];\n }\n this.offset = 0;\n return this;\n },\n\n// consumes and returns one char from the input\ninput:function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n\n }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function (match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n\n// return next match that has a token\nlex:function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin(condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n\n// alias for begin(condition)\npushState:function pushState(condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:return 31;\nbreak;\ncase 1:return 33;\nbreak;\ncase 2:return 'from';\nbreak;\ncase 3:return 24;\nbreak;\ncase 4:return 25;\nbreak;\ncase 5:return 26;\nbreak;\ncase 6:return 27;\nbreak;\ncase 7:return 21;\nbreak;\ncase 8:return 19;\nbreak;\ncase 9:return 22;\nbreak;\ncase 10:return 20;\nbreak;\ncase 11:return 28;\nbreak;\ncase 12:return 29;\nbreak;\ncase 13:return 36;\nbreak;\ncase 14:return 38;\nbreak;\ncase 15:return 57;\nbreak;\ncase 16:return 55;\nbreak;\ncase 17:/* skip whitespace */\nbreak;\ncase 18:return 51;\nbreak;\ncase 19:return 50;\nbreak;\ncase 20:return 50;\nbreak;\ncase 21:return 42;\nbreak;\ncase 22:return 53;\nbreak;\ncase 23:return 43;\nbreak;\ncase 24:return 11;\nbreak;\ncase 25:return 12;\nbreak;\ncase 26:return 13;\nbreak;\ncase 27:return 40;\nbreak;\ncase 28:return 8;\nbreak;\ncase 29:return 28;\nbreak;\ncase 30:return 29;\nbreak;\ncase 31:return 25;\nbreak;\ncase 32:return 24;\nbreak;\ncase 33:return 27;\nbreak;\ncase 34:return 26;\nbreak;\ncase 35:return 21;\nbreak;\ncase 36:return 22;\nbreak;\ncase 37:return 20;\nbreak;\ncase 38:return 19;\nbreak;\ncase 39:return 36;\nbreak;\ncase 40:return 38;\nbreak;\ncase 41:return 15;\nbreak;\ncase 42:return 17;\nbreak;\ncase 43:return 48;\nbreak;\ncase 44:return 46;\nbreak;\ncase 45:return 44;\nbreak;\ncase 46:return 49;\nbreak;\ncase 47:return 9;\nbreak;\ncase 48:return 5;\nbreak;\n}\n},\nrules: [/^(?:\\s+in\\b)/,/^(?:\\s+notIn\\b)/,/^(?:\\s+from\\b)/,/^(?:\\s+(eq|EQ)\\b)/,/^(?:\\s+(seq|SEQ)\\b)/,/^(?:\\s+(neq|NEQ)\\b)/,/^(?:\\s+(sneq|SNEQ)\\b)/,/^(?:\\s+(lte|LTE)\\b)/,/^(?:\\s+(lt|LT)\\b)/,/^(?:\\s+(gte|GTE)\\b)/,/^(?:\\s+(gt|GT)\\b)/,/^(?:\\s+(like|LIKE)\\b)/,/^(?:\\s+(notLike|NOT_LIKE)\\b)/,/^(?:\\s+(and|AND)\\b)/,/^(?:\\s+(or|OR)\\b)/,/^(?:\\s*(null)\\b)/,/^(?:\\s*(true|false)\\b)/,/^(?:\\s+)/,/^(?:-?[0-9]+(?:\\.[0-9]+)?\\b)/,/^(?:'[^']*')/,/^(?:\"[^\"]*\")/,/^(?:([a-zA-Z_$][0-9a-zA-Z_$]*))/,/^(?:^\\/((?![\\s=])[^[\\/\\n\\\\]*(?:(?:\\\\[\\s\\S]|\\[[^\\]\\n\\\\]*(?:\\\\[\\s\\S][^\\]\\n\\\\]*)*])[^[\\/\\n\\\\]*)*\\/[imgy]{0,4})(?!\\w))/,/^(?:\\.)/,/^(?:\\*)/,/^(?:\\/)/,/^(?:\\%)/,/^(?:,)/,/^(?:-)/,/^(?:=~)/,/^(?:!=~)/,/^(?:===)/,/^(?:==)/,/^(?:!==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:&&)/,/^(?:\\|\\|)/,/^(?:\\+)/,/^(?:\\^)/,/^(?:\\()/,/^(?:\\])/,/^(?:\\[)/,/^(?:\\))/,/^(?:!)/,/^(?:$)/],\nconditions: {\"INITIAL\":{\"rules\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (true) {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain(args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = __webpack_require__(/*! fs */ \"fs\").readFileSync(__webpack_require__(/*! path */ \"path\").normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif ( true && __webpack_require__.c[__webpack_require__.s] === module) {\n exports.main(process.argv.slice(1));\n}\n}\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/parser/index.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/parser/index.js ***!\n \\*******************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n(function () {\n \"use strict\";\n var constraintParser = __webpack_require__(/*! ./constraint/parser */ \"./build/cht-core-4-6/node_modules/nools/lib/parser/constraint/parser.js\"),\n noolParser = __webpack_require__(/*! ./nools/nool.parser */ \"./build/cht-core-4-6/node_modules/nools/lib/parser/nools/nool.parser.js\");\n\n exports.parseConstraint = function (expression) {\n try {\n return constraintParser.parse(expression);\n } catch (e) {\n throw new Error(\"Invalid expression '\" + expression + \"'\");\n }\n };\n\n exports.parseRuleSet = function (source, file) {\n return noolParser.parse(source, file);\n };\n})();\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/parser/nools/nool.parser.js\":\n/*!*******************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/parser/nools/nool.parser.js ***!\n \\*******************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nvar tokens = __webpack_require__(/*! ./tokens.js */ \"./build/cht-core-4-6/node_modules/nools/lib/parser/nools/tokens.js\"),\n extd = __webpack_require__(/*! ../../extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n keys = extd.hash.keys,\n utils = __webpack_require__(/*! ./util.js */ \"./build/cht-core-4-6/node_modules/nools/lib/parser/nools/util.js\");\n\nvar parse = function (src, keywords, context) {\n var orig = src;\n src = src.replace(/\\/\\/(.*)/g, \"\").replace(/\\r\\n|\\r|\\n/g, \" \");\n\n var blockTypes = new RegExp(\"^(\" + keys(keywords).join(\"|\") + \")\"), index;\n while (src && (index = utils.findNextTokenIndex(src)) !== -1) {\n src = src.substr(index);\n var blockType = src.match(blockTypes);\n if (blockType !== null) {\n blockType = blockType[1];\n if (blockType in keywords) {\n try {\n src = keywords[blockType](src, context, parse).replace(/^\\s*|\\s*$/g, \"\");\n } catch (e) {\n throw new Error(\"Invalid \" + blockType + \" definition \\n\" + e.message + \"; \\nstarting at : \" + orig);\n }\n } else {\n throw new Error(\"Unknown token\" + blockType);\n }\n } else {\n throw new Error(\"Error parsing \" + src);\n }\n }\n};\n\nexports.parse = function (src, file) {\n var context = {define: [], rules: [], scope: [], loaded: [], file: file};\n parse(src, tokens, context);\n return context;\n};\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/parser/nools/tokens.js\":\n/*!**************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/parser/nools/tokens.js ***!\n \\**************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(/*! ./util.js */ \"./build/cht-core-4-6/node_modules/nools/lib/parser/nools/util.js\"),\n fs = __webpack_require__(/*! fs */ \"fs\"),\n extd = __webpack_require__(/*! ../../extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n filter = extd.filter,\n indexOf = extd.indexOf,\n predicates = [\"not\", \"or\", \"exists\"],\n predicateRegExp = new RegExp(\"^(\" + predicates.join(\"|\") + \") *\\\\((.*)\\\\)$\", \"m\"),\n predicateBeginExp = new RegExp(\" *(\" + predicates.join(\"|\") + \") *\\\\(\", \"g\");\n\nvar isWhiteSpace = function (str) {\n return str.replace(/[\\s|\\n|\\r|\\t]/g, \"\").length === 0;\n};\n\nvar joinFunc = function (m, str) {\n return \"; \" + str;\n};\n\nvar splitRuleLineByPredicateExpressions = function (ruleLine) {\n var str = ruleLine.replace(/,\\s*(\\$?\\w+\\s*:)/g, joinFunc);\n var parts = filter(str.split(predicateBeginExp), function (str) {\n return str !== \"\";\n }),\n l = parts.length, ret = [];\n\n if (l) {\n for (var i = 0; i < l; i++) {\n if (indexOf(predicates, parts[i]) !== -1) {\n ret.push([parts[i], \"(\", parts[++i].replace(/, *$/, \"\")].join(\"\"));\n } else {\n ret.push(parts[i].replace(/, *$/, \"\"));\n }\n }\n } else {\n return str;\n }\n return ret.join(\";\");\n};\n\nvar ruleTokens = {\n\n salience: (function () {\n var salienceRegexp = /^(salience|priority)\\s*:\\s*(-?\\d+)\\s*[,;]?/;\n return function (src, context) {\n if (salienceRegexp.test(src)) {\n var parts = src.match(salienceRegexp),\n priority = parseInt(parts[2], 10);\n if (!isNaN(priority)) {\n context.options.priority = priority;\n } else {\n throw new Error(\"Invalid salience/priority \" + parts[2]);\n }\n return src.replace(parts[0], \"\");\n } else {\n throw new Error(\"invalid format\");\n }\n };\n })(),\n\n agendaGroup: (function () {\n var agendaGroupRegexp = /^(agenda-group|agendaGroup)\\s*:\\s*([a-zA-Z_$][0-9a-zA-Z_$]*|\"[^\"]*\"|'[^']*')\\s*[,;]?/;\n return function (src, context) {\n if (agendaGroupRegexp.test(src)) {\n var parts = src.match(agendaGroupRegexp),\n agendaGroup = parts[2];\n if (agendaGroup) {\n context.options.agendaGroup = agendaGroup.replace(/^[\"']|[\"']$/g, \"\");\n } else {\n throw new Error(\"Invalid agenda-group \" + parts[2]);\n }\n return src.replace(parts[0], \"\");\n } else {\n throw new Error(\"invalid format\");\n }\n };\n })(),\n\n autoFocus: (function () {\n var autoFocusRegexp = /^(auto-focus|autoFocus)\\s*:\\s*(true|false)\\s*[,;]?/;\n return function (src, context) {\n if (autoFocusRegexp.test(src)) {\n var parts = src.match(autoFocusRegexp),\n autoFocus = parts[2];\n if (autoFocus) {\n context.options.autoFocus = autoFocus === \"true\" ? true : false;\n } else {\n throw new Error(\"Invalid auto-focus \" + parts[2]);\n }\n return src.replace(parts[0], \"\");\n } else {\n throw new Error(\"invalid format\");\n }\n };\n })(),\n\n \"agenda-group\": function () {\n return this.agendaGroup.apply(this, arguments);\n },\n\n \"auto-focus\": function () {\n return this.autoFocus.apply(this, arguments);\n },\n\n priority: function () {\n return this.salience.apply(this, arguments);\n },\n\n when: (function () {\n /*jshint evil:true*/\n\n var ruleRegExp = /^(\\$?\\w+) *: *(\\w+)(.*)/;\n\n var constraintRegExp = /(\\{ *(?:[\"']?\\$?\\w+[\"']?\\s*:\\s*[\"']?\\$?\\w+[\"']? *(?:, *[\"']?\\$?\\w+[\"']?\\s*:\\s*[\"']?\\$?\\w+[\"']?)*)+ *\\})/;\n var fromRegExp = /(\\bfrom\\s+.*)/;\n var parseRules = function (str) {\n var rules = [];\n var ruleLines = str.split(\";\"), l = ruleLines.length, ruleLine;\n for (var i = 0; i < l && (ruleLine = ruleLines[i].replace(/^\\s*|\\s*$/g, \"\").replace(/\\n/g, \"\")); i++) {\n if (!isWhiteSpace(ruleLine)) {\n var rule = [];\n if (predicateRegExp.test(ruleLine)) {\n var m = ruleLine.match(predicateRegExp);\n var pred = m[1].replace(/^\\s*|\\s*$/g, \"\");\n rule.push(pred);\n ruleLine = m[2].replace(/^\\s*|\\s*$/g, \"\");\n if (pred === \"or\") {\n rule = rule.concat(parseRules(splitRuleLineByPredicateExpressions(ruleLine)));\n rules.push(rule);\n continue;\n }\n\n }\n var parts = ruleLine.match(ruleRegExp);\n if (parts && parts.length) {\n rule.push(parts[2], parts[1]);\n var constraints = parts[3].replace(/^\\s*|\\s*$/g, \"\");\n var hashParts = constraints.match(constraintRegExp), from = null, fromMatch;\n if (hashParts) {\n var hash = hashParts[1], constraint = constraints.replace(hash, \"\");\n if (fromRegExp.test(constraint)) {\n fromMatch = constraint.match(fromRegExp);\n from = fromMatch[0];\n constraint = constraint.replace(fromMatch[0], \"\");\n }\n if (constraint) {\n rule.push(constraint.replace(/^\\s*|\\s*$/g, \"\"));\n }\n if (hash) {\n rule.push(eval(\"(\" + hash.replace(/(\\$?\\w+)\\s*:\\s*(\\$?\\w+)/g, '\"$1\" : \"$2\"') + \")\"));\n }\n } else if (constraints && !isWhiteSpace(constraints)) {\n if (fromRegExp.test(constraints)) {\n fromMatch = constraints.match(fromRegExp);\n from = fromMatch[0];\n constraints = constraints.replace(fromMatch[0], \"\");\n }\n rule.push(constraints);\n }\n if (from) {\n rule.push(from);\n }\n rules.push(rule);\n } else {\n throw new Error(\"Invalid constraint \" + ruleLine);\n }\n }\n }\n return rules;\n };\n\n return function (orig, context) {\n var src = orig.replace(/^when\\s*/, \"\").replace(/^\\s*|\\s*$/g, \"\");\n if (utils.findNextToken(src) === \"{\") {\n var body = utils.getTokensBetween(src, \"{\", \"}\", true).join(\"\");\n src = src.replace(body, \"\");\n context.constraints = parseRules(body.replace(/^\\{\\s*|\\}\\s*$/g, \"\"));\n return src;\n } else {\n throw new Error(\"unexpected token : expected : '{' found : '\" + utils.findNextToken(src) + \"'\");\n }\n };\n })(),\n\n then: (function () {\n return function (orig, context) {\n if (!context.action) {\n var src = orig.replace(/^then\\s*/, \"\").replace(/^\\s*|\\s*$/g, \"\");\n if (utils.findNextToken(src) === \"{\") {\n var body = utils.getTokensBetween(src, \"{\", \"}\", true).join(\"\");\n src = src.replace(body, \"\");\n if (!context.action) {\n context.action = body.replace(/^\\{\\s*|\\}\\s*$/g, \"\");\n }\n if (!isWhiteSpace(src)) {\n throw new Error(\"Error parsing then block \" + orig);\n }\n return src;\n } else {\n throw new Error(\"unexpected token : expected : '{' found : '\" + utils.findNextToken(src) + \"'\");\n }\n } else {\n throw new Error(\"action already defined for rule\" + context.name);\n }\n\n };\n })()\n};\n\nvar topLevelTokens = {\n \"/\": function (orig) {\n if (orig.match(/^\\/\\*/)) {\n // Block Comment parse\n return orig.replace(/\\/\\*.*?\\*\\//, \"\");\n } else {\n return orig;\n }\n },\n\n \"define\": function (orig, context) {\n var src = orig.replace(/^define\\s*/, \"\");\n var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*)/);\n if (name) {\n src = src.replace(name[0], \"\").replace(/^\\s*|\\s*$/g, \"\");\n if (utils.findNextToken(src) === \"{\") {\n name = name[1];\n var body = utils.getTokensBetween(src, \"{\", \"}\", true).join(\"\");\n src = src.replace(body, \"\");\n //should\n context.define.push({name: name, properties: \"(\" + body + \")\"});\n return src;\n } else {\n throw new Error(\"unexpected token : expected : '{' found : '\" + utils.findNextToken(src) + \"'\");\n }\n } else {\n throw new Error(\"missing name\");\n }\n },\n\n \"import\": function (orig, context, parse) {\n if (typeof window !== 'undefined') {\n throw new Error(\"import cannot be used in a browser\");\n }\n var src = orig.replace(/^import\\s*/, \"\");\n if (utils.findNextToken(src) === \"(\") {\n var file = utils.getParamList(src);\n src = src.replace(file, \"\").replace(/^\\s*|\\s*$/g, \"\");\n utils.findNextToken(src) === \";\" && (src = src.replace(/\\s*;/, \"\"));\n file = file.replace(/[\\(|\\)]/g, \"\").split(\",\");\n if (file.length === 1) {\n file = utils.resolve(context.file || process.cwd(), file[0].replace(/[\"|']/g, \"\"));\n if (indexOf(context.loaded, file) === -1) {\n var origFile = context.file;\n context.file = file;\n parse(fs.readFileSync(file, \"utf8\"), topLevelTokens, context);\n context.loaded.push(file);\n context.file = origFile;\n }\n return src;\n } else {\n throw new Error(\"import accepts a single file\");\n }\n } else {\n throw new Error(\"unexpected token : expected : '(' found : '\" + utils.findNextToken(src) + \"'\");\n }\n\n },\n\n //define a global\n \"global\": function (orig, context) {\n var src = orig.replace(/^global\\s*/, \"\");\n var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*\\s*)/);\n if (name) {\n src = src.replace(name[0], \"\").replace(/^\\s*|\\s*$/g, \"\");\n if (utils.findNextToken(src) === \"=\") {\n name = name[1].replace(/^\\s+|\\s+$/g, '');\n var fullbody = utils.getTokensBetween(src, \"=\", \";\", true).join(\"\");\n var body = fullbody.substring(1, fullbody.length - 1);\n body = body.replace(/^\\s+|\\s+$/g, '');\n if (/^require\\(/.test(body)) {\n var file = utils.getParamList(body.replace(\"require\")).replace(/[\\(|\\)]/g, \"\").split(\",\");\n if (file.length === 1) {\n //handle relative require calls\n file = file[0].replace(/[\"|']/g, \"\");\n body = [\"require('\", utils.resolve(context.file || process.cwd(), file) , \"')\"].join(\"\");\n }\n }\n context.scope.push({name: name, body: body});\n src = src.replace(fullbody, \"\");\n return src;\n } else {\n throw new Error(\"unexpected token : expected : '=' found : '\" + utils.findNextToken(src) + \"'\");\n }\n } else {\n throw new Error(\"missing name\");\n }\n },\n\n //define a function\n \"function\": function (orig, context) {\n var src = orig.replace(/^function\\s*/, \"\");\n //parse the function name\n var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*)\\s*/);\n if (name) {\n src = src.replace(name[0], \"\");\n if (utils.findNextToken(src) === \"(\") {\n name = name[1];\n var params = utils.getParamList(src);\n src = src.replace(params, \"\").replace(/^\\s*|\\s*$/g, \"\");\n if (utils.findNextToken(src) === \"{\") {\n var body = utils.getTokensBetween(src, \"{\", \"}\", true).join(\"\");\n src = src.replace(body, \"\");\n //should\n context.scope.push({name: name, body: \"function\" + params + body});\n return src;\n } else {\n throw new Error(\"unexpected token : expected : '{' found : '\" + utils.findNextToken(src) + \"'\");\n }\n } else {\n throw new Error(\"unexpected token : expected : '(' found : '\" + utils.findNextToken(src) + \"'\");\n }\n } else {\n throw new Error(\"missing name\");\n }\n },\n\n \"rule\": function (orig, context, parse) {\n var src = orig.replace(/^rule\\s*/, \"\");\n var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*|\"[^\"]*\"|'[^']*')/);\n if (name) {\n src = src.replace(name[0], \"\").replace(/^\\s*|\\s*$/g, \"\");\n if (utils.findNextToken(src) === \"{\") {\n name = name[1].replace(/^[\"']|[\"']$/g, \"\");\n var rule = {name: name, options: {}, constraints: null, action: null};\n var body = utils.getTokensBetween(src, \"{\", \"}\", true).join(\"\");\n src = src.replace(body, \"\");\n parse(body.replace(/^\\{\\s*|\\}\\s*$/g, \"\"), ruleTokens, rule);\n context.rules.push(rule);\n return src;\n } else {\n throw new Error(\"unexpected token : expected : '{' found : '\" + utils.findNextToken(src) + \"'\");\n }\n } else {\n throw new Error(\"missing name\");\n }\n\n }\n};\nmodule.exports = topLevelTokens;\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/parser/nools/util.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/parser/nools/util.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nvar path = __webpack_require__(/*! path */ \"path\");\nvar WHITE_SPACE_REG = /[\\s|\\n|\\r|\\t]/,\n pathSep = path.sep || ( process.platform === 'win32' ? '\\\\' : '/' );\n\nvar TOKEN_INVERTS = {\n \"{\": \"}\",\n \"}\": \"{\",\n \"(\": \")\",\n \")\": \"(\",\n \"[\": \"]\"\n};\n\nvar getTokensBetween = exports.getTokensBetween = function (str, start, stop, includeStartEnd) {\n var depth = 0, ret = [];\n if (!start) {\n start = TOKEN_INVERTS[stop];\n depth = 1;\n }\n if (!stop) {\n stop = TOKEN_INVERTS[start];\n }\n str = Object(str);\n var startPushing = false, token, cursor = 0, found = false;\n while ((token = str.charAt(cursor++))) {\n if (token === start) {\n depth++;\n if (!startPushing) {\n startPushing = true;\n if (includeStartEnd) {\n ret.push(token);\n }\n } else {\n ret.push(token);\n }\n } else if (token === stop && cursor) {\n depth--;\n if (depth === 0) {\n if (includeStartEnd) {\n ret.push(token);\n }\n found = true;\n break;\n }\n ret.push(token);\n } else if (startPushing) {\n ret.push(token);\n }\n }\n if (!found) {\n throw new Error(\"Unable to match \" + start + \" in \" + str);\n }\n return ret;\n};\n\nexports.getParamList = function (str) {\n return getTokensBetween(str, \"(\", \")\", true).join(\"\");\n};\n\nexports.resolve = function (from, to) {\n if (process.platform === 'win32') {\n to = to.replace(/\\//g, '\\\\');\n }\n if (path.extname(from) !== '') {\n from = path.dirname(from);\n }\n if (to.split(pathSep).length === 1) {\n return to;\n }\n return path.resolve(from, to).replace(/\\\\/g, '/');\n\n};\n\nvar findNextTokenIndex = exports.findNextTokenIndex = function (str, startIndex, endIndex) {\n startIndex = startIndex || 0;\n endIndex = endIndex || str.length;\n var ret = -1, l = str.length;\n if (!endIndex || endIndex > l) {\n endIndex = l;\n }\n for (; startIndex < endIndex; startIndex++) {\n var c = str.charAt(startIndex);\n if (!WHITE_SPACE_REG.test(c)) {\n ret = startIndex;\n break;\n }\n }\n return ret;\n};\n\nexports.findNextToken = function (str, startIndex, endIndex) {\n return str.charAt(findNextTokenIndex(str, startIndex, endIndex));\n};\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/pattern.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/pattern.js ***!\n \\**************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar extd = __webpack_require__(/*! ./extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n isEmpty = extd.isEmpty,\n merge = extd.merge,\n forEach = extd.forEach,\n declare = extd.declare,\n constraintMatcher = __webpack_require__(/*! ./constraintMatcher */ \"./build/cht-core-4-6/node_modules/nools/lib/constraintMatcher.js\"),\n constraint = __webpack_require__(/*! ./constraint */ \"./build/cht-core-4-6/node_modules/nools/lib/constraint.js\"),\n EqualityConstraint = constraint.EqualityConstraint,\n FromConstraint = constraint.FromConstraint;\n\nvar id = 0;\nvar Pattern = declare({});\n\nvar ObjectPattern = Pattern.extend({\n instance: {\n constructor: function (type, alias, conditions, store, options) {\n options = options || {};\n this.id = id++;\n this.type = type;\n this.alias = alias;\n this.conditions = conditions;\n this.pattern = options.pattern;\n var constraints = [new constraint.ObjectConstraint(type)];\n var constrnts = constraintMatcher.toConstraints(conditions, merge({alias: alias}, options));\n if (constrnts.length) {\n constraints = constraints.concat(constrnts);\n } else {\n var cnstrnt = new constraint.TrueConstraint();\n constraints.push(cnstrnt);\n }\n if (store && !isEmpty(store)) {\n var atm = new constraint.HashConstraint(store);\n constraints.push(atm);\n }\n\n forEach(constraints, function (constraint) {\n constraint.set(\"alias\", alias);\n });\n this.constraints = constraints;\n },\n\n getSpecificity: function () {\n var constraints = this.constraints, specificity = 0;\n for (var i = 0, l = constraints.length; i < l; i++) {\n if (constraints[i] instanceof EqualityConstraint) {\n specificity++;\n }\n }\n return specificity;\n },\n\n hasConstraint: function (type) {\n return extd.some(this.constraints, function (c) {\n return c instanceof type;\n });\n },\n\n hashCode: function () {\n return [this.type, this.alias, extd.format(\"%j\", this.conditions)].join(\":\");\n },\n\n toString: function () {\n return extd.format(\"%j\", this.constraints);\n }\n }\n}).as(exports, \"ObjectPattern\");\n\nvar FromPattern = ObjectPattern.extend({\n instance: {\n constructor: function (type, alias, conditions, store, from, options) {\n this._super([type, alias, conditions, store, options]);\n this.from = new FromConstraint(from, options);\n },\n\n hasConstraint: function (type) {\n return extd.some(this.constraints, function (c) {\n return c instanceof type;\n });\n },\n\n getSpecificity: function () {\n return this._super(arguments) + 1;\n },\n\n hashCode: function () {\n return [this.type, this.alias, extd.format(\"%j\", this.conditions), this.from.from].join(\":\");\n },\n\n toString: function () {\n return extd.format(\"%j from %s\", this.constraints, this.from.from);\n }\n }\n}).as(exports, \"FromPattern\");\n\n\nFromPattern.extend().as(exports, \"FromNotPattern\");\nObjectPattern.extend().as(exports, \"NotPattern\");\nObjectPattern.extend().as(exports, \"ExistsPattern\");\nFromPattern.extend().as(exports, \"FromExistsPattern\");\n\nPattern.extend({\n\n instance: {\n constructor: function (left, right) {\n this.id = id++;\n this.leftPattern = left;\n this.rightPattern = right;\n },\n\n hashCode: function () {\n return [this.leftPattern.hashCode(), this.rightPattern.hashCode()].join(\":\");\n },\n\n getSpecificity: function () {\n return this.rightPattern.getSpecificity() + this.leftPattern.getSpecificity();\n },\n\n getters: {\n constraints: function () {\n return this.leftPattern.constraints.concat(this.rightPattern.constraints);\n }\n }\n }\n\n}).as(exports, \"CompositePattern\");\n\n\nvar InitialFact = declare({\n instance: {\n constructor: function () {\n this.id = id++;\n this.recency = 0;\n }\n }\n}).as(exports, \"InitialFact\");\n\nObjectPattern.extend({\n instance: {\n constructor: function () {\n this._super([InitialFact, \"__i__\", [], {}]);\n },\n\n assert: function () {\n return true;\n }\n }\n}).as(exports, \"InitialFactPattern\");\n\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/rule.js\":\n/*!***********************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/rule.js ***!\n \\***********************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar extd = __webpack_require__(/*! ./extended */ \"./build/cht-core-4-6/node_modules/nools/lib/extended.js\"),\n isArray = extd.isArray,\n Promise = extd.Promise,\n declare = extd.declare,\n isHash = extd.isHash,\n isString = extd.isString,\n format = extd.format,\n parser = __webpack_require__(/*! ./parser */ \"./build/cht-core-4-6/node_modules/nools/lib/parser/index.js\"),\n pattern = __webpack_require__(/*! ./pattern */ \"./build/cht-core-4-6/node_modules/nools/lib/pattern.js\"),\n ObjectPattern = pattern.ObjectPattern,\n FromPattern = pattern.FromPattern,\n NotPattern = pattern.NotPattern,\n ExistsPattern = pattern.ExistsPattern,\n FromNotPattern = pattern.FromNotPattern,\n FromExistsPattern = pattern.FromExistsPattern,\n CompositePattern = pattern.CompositePattern;\n\nvar parseConstraint = function (constraint) {\n if (typeof constraint === 'function') {\n // No parsing is needed for constraint functions\n return constraint;\n }\n return parser.parseConstraint(constraint);\n};\n\nvar parseExtra = extd\n .switcher()\n .isUndefinedOrNull(function () {\n return null;\n })\n .isLike(/^from +/, function (s) {\n return {from: s.replace(/^from +/, \"\").replace(/^\\s*|\\s*$/g, \"\")};\n })\n .def(function (o) {\n throw new Error(\"invalid rule constraint option \" + o);\n })\n .switcher();\n\nvar normailizeConstraint = extd\n .switcher()\n .isLength(1, function (c) {\n throw new Error(\"invalid rule constraint \" + format(\"%j\", [c]));\n })\n .isLength(2, function (c) {\n c.push(\"true\");\n return c;\n })\n //handle case where c[2] is a hash rather than a constraint string\n .isLength(3, function (c) {\n if (isString(c[2]) && /^from +/.test(c[2])) {\n var extra = c[2];\n c.splice(2, 0, \"true\");\n c[3] = null;\n c[4] = parseExtra(extra);\n } else if (isHash(c[2])) {\n c.splice(2, 0, \"true\");\n }\n return c;\n })\n //handle case where c[3] is a from clause rather than a hash for references\n .isLength(4, function (c) {\n if (isString(c[3])) {\n c.splice(3, 0, null);\n c[4] = parseExtra(c[4]);\n }\n return c;\n })\n .def(function (c) {\n if (c.length === 5) {\n c[4] = parseExtra(c[4]);\n }\n return c;\n })\n .switcher();\n\nvar getParamType = function getParamType(type, scope) {\n scope = scope || {};\n var getParamTypeSwitch = extd\n .switcher()\n .isEq(\"string\", function () {\n return String;\n })\n .isEq(\"date\", function () {\n return Date;\n })\n .isEq(\"array\", function () {\n return Array;\n })\n .isEq(\"boolean\", function () {\n return Boolean;\n })\n .isEq(\"regexp\", function () {\n return RegExp;\n })\n .isEq(\"number\", function () {\n return Number;\n })\n .isEq(\"object\", function () {\n return Object;\n })\n .isEq(\"hash\", function () {\n return Object;\n })\n .def(function (param) {\n throw new TypeError(\"invalid param type \" + param);\n })\n .switcher();\n\n var _getParamType = extd\n .switcher()\n .isString(function (param) {\n var t = scope[param];\n if (!t) {\n return getParamTypeSwitch(param.toLowerCase());\n } else {\n return t;\n }\n })\n .isFunction(function (func) {\n return func;\n })\n .deepEqual([], function () {\n return Array;\n })\n .def(function (param) {\n throw new Error(\"invalid param type \" + param);\n })\n .switcher();\n\n return _getParamType(type);\n};\n\nvar parsePattern = extd\n .switcher()\n .containsAt(\"or\", 0, function (condition) {\n condition.shift();\n return extd(condition).map(function (cond) {\n cond.scope = condition.scope;\n return parsePattern(cond);\n }).flatten().value();\n })\n .containsAt(\"not\", 0, function (condition) {\n condition.shift();\n condition = normailizeConstraint(condition);\n if (condition[4] && condition[4].from) {\n return [\n new FromNotPattern(\n getParamType(condition[0], condition.scope),\n condition[1] || \"m\",\n parseConstraint(condition[2] || \"true\"),\n condition[3] || {},\n parseConstraint(condition[4].from),\n {scope: condition.scope, pattern: condition[2]}\n )\n ];\n } else {\n return [\n new NotPattern(\n getParamType(condition[0], condition.scope),\n condition[1] || \"m\",\n parseConstraint(condition[2] || \"true\"),\n condition[3] || {},\n {scope: condition.scope, pattern: condition[2]}\n )\n ];\n }\n })\n .containsAt(\"exists\", 0, function (condition) {\n condition.shift();\n condition = normailizeConstraint(condition);\n if (condition[4] && condition[4].from) {\n return [\n new FromExistsPattern(\n getParamType(condition[0], condition.scope),\n condition[1] || \"m\",\n parseConstraint(condition[2] || \"true\"),\n condition[3] || {},\n parseConstraint(condition[4].from),\n {scope: condition.scope, pattern: condition[2]}\n )\n ];\n } else {\n return [\n new ExistsPattern(\n getParamType(condition[0], condition.scope),\n condition[1] || \"m\",\n parseConstraint(condition[2] || \"true\"),\n condition[3] || {},\n {scope: condition.scope, pattern: condition[2]}\n )\n ];\n }\n })\n .def(function (condition) {\n if (typeof condition === 'function') {\n return [condition];\n }\n condition = normailizeConstraint(condition);\n if (condition[4] && condition[4].from) {\n return [\n new FromPattern(\n getParamType(condition[0], condition.scope),\n condition[1] || \"m\",\n parseConstraint(condition[2] || \"true\"),\n condition[3] || {},\n parseConstraint(condition[4].from),\n {scope: condition.scope, pattern: condition[2]}\n )\n ];\n } else {\n return [\n new ObjectPattern(\n getParamType(condition[0], condition.scope),\n condition[1] || \"m\",\n parseConstraint(condition[2] || \"true\"),\n condition[3] || {},\n {scope: condition.scope, pattern: condition[2]}\n )\n ];\n }\n }).switcher();\n\nvar Rule = declare({\n instance: {\n constructor: function (name, options, pattern, cb) {\n this.name = name;\n this.pattern = pattern;\n this.cb = cb;\n if (options.agendaGroup) {\n this.agendaGroup = options.agendaGroup;\n this.autoFocus = extd.isBoolean(options.autoFocus) ? options.autoFocus : false;\n }\n this.priority = options.priority || options.salience || 0;\n },\n\n fire: function (flow, match) {\n var ret = new Promise(), cb = this.cb;\n try {\n if (cb.length === 3) {\n cb.call(flow, match.factHash, flow, ret.resolve);\n } else {\n ret = cb.call(flow, match.factHash, flow);\n }\n } catch (e) {\n ret.errback(e);\n }\n return ret;\n }\n }\n});\n\nfunction createRule(name, options, conditions, cb) {\n if (isArray(options)) {\n cb = conditions;\n conditions = options;\n } else {\n options = options || {};\n }\n var isRules = extd.every(conditions, function (cond) {\n return isArray(cond);\n });\n if (isRules && conditions.length === 1) {\n conditions = conditions[0];\n isRules = false;\n }\n var rules = [];\n var scope = options.scope || {};\n conditions.scope = scope;\n if (isRules) {\n var _mergePatterns = function (patt, i) {\n if (!patterns[i]) {\n patterns[i] = i === 0 ? [] : patterns[i - 1].slice();\n //remove dup\n if (i !== 0) {\n patterns[i].pop();\n }\n patterns[i].push(patt);\n } else {\n extd(patterns).forEach(function (p) {\n p.push(patt);\n });\n }\n\n };\n var l = conditions.length, patterns = [], condition;\n for (var i = 0; i < l; i++) {\n condition = conditions[i];\n condition.scope = scope;\n extd.forEach(parsePattern(condition), _mergePatterns);\n\n }\n rules = extd.map(patterns, function (patterns) {\n var compPat = null;\n for (var i = 0; i < patterns.length; i++) {\n if (compPat === null) {\n compPat = new CompositePattern(patterns[i++], patterns[i]);\n } else {\n compPat = new CompositePattern(compPat, patterns[i]);\n }\n }\n return new Rule(name, options, compPat, cb);\n });\n } else {\n rules = extd.map(parsePattern(conditions), function (cond) {\n return new Rule(name, options, cond, cb);\n });\n }\n return rules;\n}\n\nexports.createRule = createRule;\n\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/nools/lib/workingMemory.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/nools/lib/workingMemory.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nvar declare = __webpack_require__(/*! declare.js */ \"./build/cht-core-4-6/node_modules/declare.js/index.js\"),\n LinkedList = __webpack_require__(/*! ./linkedList */ \"./build/cht-core-4-6/node_modules/nools/lib/linkedList.js\"),\n InitialFact = __webpack_require__(/*! ./pattern */ \"./build/cht-core-4-6/node_modules/nools/lib/pattern.js\").InitialFact,\n id = 0;\n\nvar Fact = declare({\n\n instance: {\n constructor: function (obj) {\n this.object = obj;\n this.recency = 0;\n this.id = id++;\n },\n\n equals: function (fact) {\n return fact === this.object;\n },\n\n hashCode: function () {\n return this.id;\n }\n }\n\n});\n\ndeclare({\n\n instance: {\n\n constructor: function () {\n this.recency = 0;\n this.facts = new LinkedList();\n },\n\n dispose: function () {\n this.facts.clear();\n },\n\n getFacts: function () {\n var head = {next: this.facts.head}, ret = [], i = 0, val;\n while ((head = head.next)) {\n if (!((val = head.data.object) instanceof InitialFact)) {\n ret[i++] = val;\n }\n }\n return ret;\n },\n\n getFactsByType: function (Type) {\n var head = {next: this.facts.head}, ret = [], i = 0;\n while ((head = head.next)) {\n var val = head.data.object;\n if (!(val instanceof InitialFact) && (val instanceof Type || val.constructor === Type)) {\n ret[i++] = val;\n }\n }\n return ret;\n },\n\n getFactHandle: function (o) {\n var head = {next: this.facts.head}, ret;\n while ((head = head.next)) {\n var existingFact = head.data;\n if (existingFact.equals(o)) {\n return existingFact;\n }\n }\n if (!ret) {\n ret = new Fact(o);\n ret.recency = this.recency++;\n //this.facts.push(ret);\n }\n return ret;\n },\n\n modifyFact: function (fact) {\n var head = {next: this.facts.head};\n while ((head = head.next)) {\n var existingFact = head.data;\n if (existingFact.equals(fact)) {\n existingFact.recency = this.recency++;\n return existingFact;\n }\n }\n //if we made it here we did not find the fact\n throw new Error(\"the fact to modify does not exist\");\n },\n\n assertFact: function (fact) {\n var ret = new Fact(fact);\n ret.recency = this.recency++;\n this.facts.push(ret);\n return ret;\n },\n\n retractFact: function (fact) {\n var facts = this.facts, head = {next: facts.head};\n while ((head = head.next)) {\n var existingFact = head.data;\n if (existingFact.equals(fact)) {\n facts.remove(head);\n return existingFact;\n }\n }\n //if we made it here we did not find the fact\n throw new Error(\"the fact to remove does not exist\");\n\n\n }\n }\n\n}).as(exports, \"WorkingMemory\");\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/object-extended/index.js\":\n/*!******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/object-extended/index.js ***!\n \\******************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n(function () {\n \"use strict\";\n /*global extended isExtended*/\n\n function defineObject(extended, is, arr) {\n\n var deepEqual = is.deepEqual,\n isString = is.isString,\n isHash = is.isHash,\n difference = arr.difference,\n hasOwn = Object.prototype.hasOwnProperty,\n isFunction = is.isFunction;\n\n function _merge(target, source) {\n var name, s;\n for (name in source) {\n if (hasOwn.call(source, name)) {\n s = source[name];\n if (!(name in target) || (target[name] !== s)) {\n target[name] = s;\n }\n }\n }\n return target;\n }\n\n function _deepMerge(target, source) {\n var name, s, t;\n for (name in source) {\n if (hasOwn.call(source, name)) {\n s = source[name];\n t = target[name];\n if (!deepEqual(t, s)) {\n if (isHash(t) && isHash(s)) {\n target[name] = _deepMerge(t, s);\n } else if (isHash(s)) {\n target[name] = _deepMerge({}, s);\n } else {\n target[name] = s;\n }\n }\n }\n }\n return target;\n }\n\n\n function merge(obj) {\n if (!obj) {\n obj = {};\n }\n for (var i = 1, l = arguments.length; i < l; i++) {\n _merge(obj, arguments[i]);\n }\n return obj; // Object\n }\n\n function deepMerge(obj) {\n if (!obj) {\n obj = {};\n }\n for (var i = 1, l = arguments.length; i < l; i++) {\n _deepMerge(obj, arguments[i]);\n }\n return obj; // Object\n }\n\n\n function extend(parent, child) {\n var proto = parent.prototype || parent;\n merge(proto, child);\n return parent;\n }\n\n function forEach(hash, iterator, scope) {\n if (!isHash(hash) || !isFunction(iterator)) {\n throw new TypeError();\n }\n var objKeys = keys(hash), key;\n for (var i = 0, len = objKeys.length; i < len; ++i) {\n key = objKeys[i];\n iterator.call(scope || hash, hash[key], key, hash);\n }\n return hash;\n }\n\n function filter(hash, iterator, scope) {\n if (!isHash(hash) || !isFunction(iterator)) {\n throw new TypeError();\n }\n var objKeys = keys(hash), key, value, ret = {};\n for (var i = 0, len = objKeys.length; i < len; ++i) {\n key = objKeys[i];\n value = hash[key];\n if (iterator.call(scope || hash, value, key, hash)) {\n ret[key] = value;\n }\n }\n return ret;\n }\n\n function values(hash) {\n if (!isHash(hash)) {\n throw new TypeError();\n }\n var objKeys = keys(hash), ret = [];\n for (var i = 0, len = objKeys.length; i < len; ++i) {\n ret.push(hash[objKeys[i]]);\n }\n return ret;\n }\n\n\n function keys(hash) {\n if (!isHash(hash)) {\n throw new TypeError();\n }\n var ret = [];\n for (var i in hash) {\n if (hasOwn.call(hash, i)) {\n ret.push(i);\n }\n }\n return ret;\n }\n\n function invert(hash) {\n if (!isHash(hash)) {\n throw new TypeError();\n }\n var objKeys = keys(hash), key, ret = {};\n for (var i = 0, len = objKeys.length; i < len; ++i) {\n key = objKeys[i];\n ret[hash[key]] = key;\n }\n return ret;\n }\n\n function toArray(hash) {\n if (!isHash(hash)) {\n throw new TypeError();\n }\n var objKeys = keys(hash), key, ret = [];\n for (var i = 0, len = objKeys.length; i < len; ++i) {\n key = objKeys[i];\n ret.push([key, hash[key]]);\n }\n return ret;\n }\n\n function omit(hash, omitted) {\n if (!isHash(hash)) {\n throw new TypeError();\n }\n if (isString(omitted)) {\n omitted = [omitted];\n }\n var objKeys = difference(keys(hash), omitted), key, ret = {};\n for (var i = 0, len = objKeys.length; i < len; ++i) {\n key = objKeys[i];\n ret[key] = hash[key];\n }\n return ret;\n }\n\n var hash = {\n forEach: forEach,\n filter: filter,\n invert: invert,\n values: values,\n toArray: toArray,\n keys: keys,\n omit: omit\n };\n\n\n var obj = {\n extend: extend,\n merge: merge,\n deepMerge: deepMerge,\n omit: omit\n };\n\n var ret = extended.define(is.isObject, obj).define(isHash, hash).define(is.isFunction, {extend: extend}).expose({hash: hash}).expose(obj);\n var orig = ret.extend;\n ret.extend = function __extend() {\n if (arguments.length === 1) {\n return orig.extend.apply(ret, arguments);\n } else {\n extend.apply(null, arguments);\n }\n };\n return ret;\n\n }\n\n if (true) {\n if ( true && module.exports) {\n module.exports = defineObject(__webpack_require__(/*! extended */ \"./build/cht-core-4-6/node_modules/extended/index.js\"), __webpack_require__(/*! is-extended */ \"./build/cht-core-4-6/node_modules/is-extended/index.js\"), __webpack_require__(/*! array-extended */ \"./build/cht-core-4-6/node_modules/array-extended/index.js\"));\n\n }\n } else {}\n\n}).call(this);\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/promise-extended/index.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/promise-extended/index.js ***!\n \\*******************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n(function () {\n \"use strict\";\n /*global setImmediate, MessageChannel*/\n\n\n function definePromise(declare, extended, array, is, fn, args) {\n\n var forEach = array.forEach,\n isUndefinedOrNull = is.isUndefinedOrNull,\n isArray = is.isArray,\n isFunction = is.isFunction,\n isBoolean = is.isBoolean,\n bind = fn.bind,\n bindIgnore = fn.bindIgnore,\n argsToArray = args.argsToArray;\n\n function createHandler(fn, promise) {\n return function _handler() {\n try {\n when(fn.apply(null, arguments))\n .addCallback(promise)\n .addErrback(promise);\n } catch (e) {\n promise.errback(e);\n }\n };\n }\n\n var nextTick;\n if (typeof setImmediate === \"function\") {\n // In IE10, or use https://github.com/NobleJS/setImmediate\n if (typeof window !== \"undefined\") {\n nextTick = setImmediate.bind(window);\n } else {\n nextTick = setImmediate;\n }\n } else if (typeof process !== \"undefined\") {\n // node\n nextTick = function (cb) {\n process.nextTick(cb);\n };\n } else if (typeof MessageChannel !== \"undefined\") {\n // modern browsers\n // http://www.nonblocking.io/2011/06/windownexttick.html\n var channel = new MessageChannel();\n // linked list of tasks (single, with head node)\n var head = {}, tail = head;\n channel.port1.onmessage = function () {\n head = head.next;\n var task = head.task;\n delete head.task;\n task();\n };\n nextTick = function (task) {\n tail = tail.next = {task: task};\n channel.port2.postMessage(0);\n };\n } else {\n // old browsers\n nextTick = function (task) {\n setTimeout(task, 0);\n };\n }\n\n\n //noinspection JSHint\n var Promise = declare({\n instance: {\n __fired: false,\n\n __results: null,\n\n __error: null,\n\n __errorCbs: null,\n\n __cbs: null,\n\n constructor: function () {\n this.__errorCbs = [];\n this.__cbs = [];\n fn.bindAll(this, [\"callback\", \"errback\", \"resolve\", \"classic\", \"__resolve\", \"addCallback\", \"addErrback\"]);\n },\n\n __resolve: function () {\n if (!this.__fired) {\n this.__fired = true;\n var cbs = this.__error ? this.__errorCbs : this.__cbs,\n len = cbs.length, i,\n results = this.__error || this.__results;\n for (i = 0; i < len; i++) {\n this.__callNextTick(cbs[i], results);\n }\n\n }\n },\n\n __callNextTick: function (cb, results) {\n nextTick(function () {\n cb.apply(this, results);\n });\n },\n\n addCallback: function (cb) {\n if (cb) {\n if (isPromiseLike(cb) && cb.callback) {\n cb = cb.callback;\n }\n if (this.__fired && this.__results) {\n this.__callNextTick(cb, this.__results);\n } else {\n this.__cbs.push(cb);\n }\n }\n return this;\n },\n\n\n addErrback: function (cb) {\n if (cb) {\n if (isPromiseLike(cb) && cb.errback) {\n cb = cb.errback;\n }\n if (this.__fired && this.__error) {\n this.__callNextTick(cb, this.__error);\n } else {\n this.__errorCbs.push(cb);\n }\n }\n return this;\n },\n\n callback: function (args) {\n if (!this.__fired) {\n this.__results = arguments;\n this.__resolve();\n }\n return this.promise();\n },\n\n errback: function (args) {\n if (!this.__fired) {\n this.__error = arguments;\n this.__resolve();\n }\n return this.promise();\n },\n\n resolve: function (err, args) {\n if (err) {\n this.errback(err);\n } else {\n this.callback.apply(this, argsToArray(arguments, 1));\n }\n return this;\n },\n\n classic: function (cb) {\n if (\"function\" === typeof cb) {\n this.addErrback(function (err) {\n cb(err);\n });\n this.addCallback(function () {\n cb.apply(this, [null].concat(argsToArray(arguments)));\n });\n }\n return this;\n },\n\n then: function (callback, errback) {\n\n var promise = new Promise(), errorHandler = promise;\n if (isFunction(errback)) {\n errorHandler = createHandler(errback, promise);\n }\n this.addErrback(errorHandler);\n if (isFunction(callback)) {\n this.addCallback(createHandler(callback, promise));\n } else {\n this.addCallback(promise);\n }\n\n return promise.promise();\n },\n\n both: function (callback) {\n return this.then(callback, callback);\n },\n\n promise: function () {\n var ret = {\n then: bind(this, \"then\"),\n both: bind(this, \"both\"),\n promise: function () {\n return ret;\n }\n };\n forEach([\"addCallback\", \"addErrback\", \"classic\"], function (action) {\n ret[action] = bind(this, function () {\n this[action].apply(this, arguments);\n return ret;\n });\n }, this);\n\n return ret;\n }\n\n\n }\n });\n\n\n var PromiseList = Promise.extend({\n instance: {\n\n /*@private*/\n __results: null,\n\n /*@private*/\n __errors: null,\n\n /*@private*/\n __promiseLength: 0,\n\n /*@private*/\n __defLength: 0,\n\n /*@private*/\n __firedLength: 0,\n\n normalizeResults: false,\n\n constructor: function (defs, normalizeResults) {\n this.__errors = [];\n this.__results = [];\n this.normalizeResults = isBoolean(normalizeResults) ? normalizeResults : false;\n this._super(arguments);\n if (defs && defs.length) {\n this.__defLength = defs.length;\n forEach(defs, this.__addPromise, this);\n } else {\n this.__resolve();\n }\n },\n\n __addPromise: function (promise, i) {\n promise.then(\n bind(this, function () {\n var args = argsToArray(arguments);\n args.unshift(i);\n this.callback.apply(this, args);\n }),\n bind(this, function () {\n var args = argsToArray(arguments);\n args.unshift(i);\n this.errback.apply(this, args);\n })\n );\n },\n\n __resolve: function () {\n if (!this.__fired) {\n this.__fired = true;\n var cbs = this.__errors.length ? this.__errorCbs : this.__cbs,\n len = cbs.length, i,\n results = this.__errors.length ? this.__errors : this.__results;\n for (i = 0; i < len; i++) {\n this.__callNextTick(cbs[i], results);\n }\n\n }\n },\n\n __callNextTick: function (cb, results) {\n nextTick(function () {\n cb.apply(null, [results]);\n });\n },\n\n addCallback: function (cb) {\n if (cb) {\n if (isPromiseLike(cb) && cb.callback) {\n cb = bind(cb, \"callback\");\n }\n if (this.__fired && !this.__errors.length) {\n this.__callNextTick(cb, this.__results);\n } else {\n this.__cbs.push(cb);\n }\n }\n return this;\n },\n\n addErrback: function (cb) {\n if (cb) {\n if (isPromiseLike(cb) && cb.errback) {\n cb = bind(cb, \"errback\");\n }\n if (this.__fired && this.__errors.length) {\n this.__callNextTick(cb, this.__errors);\n } else {\n this.__errorCbs.push(cb);\n }\n }\n return this;\n },\n\n\n callback: function (i) {\n if (this.__fired) {\n throw new Error(\"Already fired!\");\n }\n var args = argsToArray(arguments);\n if (this.normalizeResults) {\n args = args.slice(1);\n args = args.length === 1 ? args.pop() : args;\n }\n this.__results[i] = args;\n this.__firedLength++;\n if (this.__firedLength === this.__defLength) {\n this.__resolve();\n }\n return this.promise();\n },\n\n\n errback: function (i) {\n if (this.__fired) {\n throw new Error(\"Already fired!\");\n }\n var args = argsToArray(arguments);\n if (this.normalizeResults) {\n args = args.slice(1);\n args = args.length === 1 ? args.pop() : args;\n }\n this.__errors[i] = args;\n this.__firedLength++;\n if (this.__firedLength === this.__defLength) {\n this.__resolve();\n }\n return this.promise();\n }\n\n }\n });\n\n\n function callNext(list, results, propogate) {\n var ret = new Promise().callback();\n forEach(list, function (listItem) {\n ret = ret.then(propogate ? listItem : bindIgnore(null, listItem));\n if (!propogate) {\n ret = ret.then(function (res) {\n results.push(res);\n return results;\n });\n }\n });\n return ret;\n }\n\n function isPromiseLike(obj) {\n return !isUndefinedOrNull(obj) && (isFunction(obj.then));\n }\n\n function wrapThenPromise(p) {\n var ret = new Promise();\n p.then(bind(ret, \"callback\"), bind(ret, \"errback\"));\n return ret.promise();\n }\n\n function when(args) {\n var p;\n args = argsToArray(arguments);\n if (!args.length) {\n p = new Promise().callback(args).promise();\n } else if (args.length === 1) {\n args = args.pop();\n if (isPromiseLike(args)) {\n if (args.addCallback && args.addErrback) {\n p = new Promise();\n args.addCallback(p.callback);\n args.addErrback(p.errback);\n } else {\n p = wrapThenPromise(args);\n }\n } else if (isArray(args) && array.every(args, isPromiseLike)) {\n p = new PromiseList(args, true).promise();\n } else {\n p = new Promise().callback(args);\n }\n } else {\n p = new PromiseList(array.map(args, function (a) {\n return when(a);\n }), true).promise();\n }\n return p;\n\n }\n\n function wrap(fn, scope) {\n return function _wrap() {\n var ret = new Promise();\n var args = argsToArray(arguments);\n args.push(ret.resolve);\n fn.apply(scope || this, args);\n return ret.promise();\n };\n }\n\n function serial(list) {\n if (isArray(list)) {\n return callNext(list, [], false);\n } else {\n throw new Error(\"When calling promise.serial the first argument must be an array\");\n }\n }\n\n\n function chain(list) {\n if (isArray(list)) {\n return callNext(list, [], true);\n } else {\n throw new Error(\"When calling promise.serial the first argument must be an array\");\n }\n }\n\n\n function wait(args, fn) {\n args = argsToArray(arguments);\n var resolved = false;\n fn = args.pop();\n var p = when(args);\n return function waiter() {\n if (!resolved) {\n args = arguments;\n return p.then(bind(this, function doneWaiting() {\n resolved = true;\n return fn.apply(this, args);\n }));\n } else {\n return when(fn.apply(this, arguments));\n }\n };\n }\n\n function createPromise() {\n return new Promise();\n }\n\n function createPromiseList(promises) {\n return new PromiseList(promises, true).promise();\n }\n\n function createRejected(val) {\n return createPromise().errback(val);\n }\n\n function createResolved(val) {\n return createPromise().callback(val);\n }\n\n\n return extended\n .define({\n isPromiseLike: isPromiseLike\n }).expose({\n isPromiseLike: isPromiseLike,\n when: when,\n wrap: wrap,\n wait: wait,\n serial: serial,\n chain: chain,\n Promise: Promise,\n PromiseList: PromiseList,\n promise: createPromise,\n defer: createPromise,\n deferredList: createPromiseList,\n reject: createRejected,\n resolve: createResolved\n });\n\n }\n\n if (true) {\n if ( true && module.exports) {\n module.exports = definePromise(__webpack_require__(/*! declare.js */ \"./build/cht-core-4-6/node_modules/declare.js/index.js\"), __webpack_require__(/*! extended */ \"./build/cht-core-4-6/node_modules/extended/index.js\"), __webpack_require__(/*! array-extended */ \"./build/cht-core-4-6/node_modules/array-extended/index.js\"), __webpack_require__(/*! is-extended */ \"./build/cht-core-4-6/node_modules/is-extended/index.js\"), __webpack_require__(/*! function-extended */ \"./build/cht-core-4-6/node_modules/function-extended/index.js\"), __webpack_require__(/*! arguments-extended */ \"./build/cht-core-4-6/node_modules/arguments-extended/index.js\"));\n }\n } else {}\n\n}).call(this);\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/string-extended/index.js\":\n/*!******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/string-extended/index.js ***!\n \\******************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n(function () {\n \"use strict\";\n\n function defineString(extended, is, date, arr) {\n\n var stringify;\n if (typeof JSON === \"undefined\") {\n /*\n json2.js\n 2012-10-08\n\n Public Domain.\n\n NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n */\n\n (function () {\n function f(n) {\n // Format integers to have at least two digits.\n return n < 10 ? '0' + n : n;\n }\n\n var isPrimitive = is.tester().isString().isNumber().isBoolean().tester();\n\n function toJSON(obj) {\n if (is.isDate(obj)) {\n return isFinite(obj.valueOf()) ? obj.getUTCFullYear() + '-' +\n f(obj.getUTCMonth() + 1) + '-' +\n f(obj.getUTCDate()) + 'T' +\n f(obj.getUTCHours()) + ':' +\n f(obj.getUTCMinutes()) + ':' +\n f(obj.getUTCSeconds()) + 'Z'\n : null;\n } else if (isPrimitive(obj)) {\n return obj.valueOf();\n }\n return obj;\n }\n\n var cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n gap,\n indent,\n meta = { // table of character substitutions\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\'\n },\n rep;\n\n\n function quote(string) {\n escapable.lastIndex = 0;\n return escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\n var c = meta[a];\n return typeof c === 'string' ? c : '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n }) + '\"' : '\"' + string + '\"';\n }\n\n\n function str(key, holder) {\n\n var i, k, v, length, mind = gap, partial, value = holder[key];\n if (value) {\n value = toJSON(value);\n }\n if (typeof rep === 'function') {\n value = rep.call(holder, key, value);\n }\n switch (typeof value) {\n case 'string':\n return quote(value);\n case 'number':\n return isFinite(value) ? String(value) : 'null';\n case 'boolean':\n case 'null':\n return String(value);\n case 'object':\n if (!value) {\n return 'null';\n }\n gap += indent;\n partial = [];\n if (Object.prototype.toString.apply(value) === '[object Array]') {\n length = value.length;\n for (i = 0; i < length; i += 1) {\n partial[i] = str(i, value) || 'null';\n }\n v = partial.length === 0 ? '[]' : gap ? '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']' : '[' + partial.join(',') + ']';\n gap = mind;\n return v;\n }\n if (rep && typeof rep === 'object') {\n length = rep.length;\n for (i = 0; i < length; i += 1) {\n if (typeof rep[i] === 'string') {\n k = rep[i];\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n } else {\n for (k in value) {\n if (Object.prototype.hasOwnProperty.call(value, k)) {\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n }\n v = partial.length === 0 ? '{}' : gap ? '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}' : '{' + partial.join(',') + '}';\n gap = mind;\n return v;\n }\n }\n\n stringify = function (value, replacer, space) {\n var i;\n gap = '';\n indent = '';\n if (typeof space === 'number') {\n for (i = 0; i < space; i += 1) {\n indent += ' ';\n }\n } else if (typeof space === 'string') {\n indent = space;\n }\n rep = replacer;\n if (replacer && typeof replacer !== 'function' &&\n (typeof replacer !== 'object' ||\n typeof replacer.length !== 'number')) {\n throw new Error('JSON.stringify');\n }\n return str('', {'': value});\n };\n }());\n } else {\n stringify = JSON.stringify;\n }\n\n\n var isHash = is.isHash, aSlice = Array.prototype.slice;\n\n var FORMAT_REGEX = /%((?:-?\\+?.?\\d*)?|(?:\\[[^\\[|\\]]*\\]))?([sjdDZ])/g;\n var INTERP_REGEX = /\\{(?:\\[([^\\[|\\]]*)\\])?(\\w+)\\}/g;\n var STR_FORMAT = /(-?)(\\+?)([A-Z|a-z|\\W]?)([1-9][0-9]*)?$/;\n var OBJECT_FORMAT = /([1-9][0-9]*)$/g;\n\n function formatString(string, format) {\n var ret = string;\n if (STR_FORMAT.test(format)) {\n var match = format.match(STR_FORMAT);\n var isLeftJustified = match[1], padChar = match[3], width = match[4];\n if (width) {\n width = parseInt(width, 10);\n if (ret.length < width) {\n ret = pad(ret, width, padChar, isLeftJustified);\n } else {\n ret = truncate(ret, width);\n }\n }\n }\n return ret;\n }\n\n function formatNumber(number, format) {\n var ret;\n if (is.isNumber(number)) {\n ret = \"\" + number;\n if (STR_FORMAT.test(format)) {\n var match = format.match(STR_FORMAT);\n var isLeftJustified = match[1], signed = match[2], padChar = match[3], width = match[4];\n if (signed) {\n ret = (number > 0 ? \"+\" : \"\") + ret;\n }\n if (width) {\n width = parseInt(width, 10);\n if (ret.length < width) {\n ret = pad(ret, width, padChar || \"0\", isLeftJustified);\n } else {\n ret = truncate(ret, width);\n }\n }\n\n }\n } else {\n throw new Error(\"stringExtended.format : when using %d the parameter must be a number!\");\n }\n return ret;\n }\n\n function formatObject(object, format) {\n var ret, match = format.match(OBJECT_FORMAT), spacing = 0;\n if (match) {\n spacing = parseInt(match[0], 10);\n if (isNaN(spacing)) {\n spacing = 0;\n }\n }\n try {\n ret = stringify(object, null, spacing);\n } catch (e) {\n throw new Error(\"stringExtended.format : Unable to parse json from \", object);\n }\n return ret;\n }\n\n\n var styles = {\n //styles\n bold: 1,\n bright: 1,\n italic: 3,\n underline: 4,\n blink: 5,\n inverse: 7,\n crossedOut: 9,\n\n red: 31,\n green: 32,\n yellow: 33,\n blue: 34,\n magenta: 35,\n cyan: 36,\n white: 37,\n\n redBackground: 41,\n greenBackground: 42,\n yellowBackground: 43,\n blueBackground: 44,\n magentaBackground: 45,\n cyanBackground: 46,\n whiteBackground: 47,\n\n encircled: 52,\n overlined: 53,\n grey: 90,\n black: 90\n };\n\n var characters = {\n SMILEY: \"☺\",\n SOLID_SMILEY: \"☻\",\n HEART: \"♥\",\n DIAMOND: \"♦\",\n CLOVE: \"♣\",\n SPADE: \"♠\",\n DOT: \"•\",\n SQUARE_CIRCLE: \"◘\",\n CIRCLE: \"○\",\n FILLED_SQUARE_CIRCLE: \"◙\",\n MALE: \"♂\",\n FEMALE: \"♀\",\n EIGHT_NOTE: \"♪\",\n DOUBLE_EIGHTH_NOTE: \"♫\",\n SUN: \"☼\",\n PLAY: \"►\",\n REWIND: \"◄\",\n UP_DOWN: \"↕\",\n PILCROW: \"¶\",\n SECTION: \"§\",\n THICK_MINUS: \"▬\",\n SMALL_UP_DOWN: \"↨\",\n UP_ARROW: \"↑\",\n DOWN_ARROW: \"↓\",\n RIGHT_ARROW: \"→\",\n LEFT_ARROW: \"←\",\n RIGHT_ANGLE: \"∟\",\n LEFT_RIGHT_ARROW: \"↔\",\n TRIANGLE: \"▲\",\n DOWN_TRIANGLE: \"▼\",\n HOUSE: \"⌂\",\n C_CEDILLA: \"Ç\",\n U_UMLAUT: \"ü\",\n E_ACCENT: \"é\",\n A_LOWER_CIRCUMFLEX: \"â\",\n A_LOWER_UMLAUT: \"ä\",\n A_LOWER_GRAVE_ACCENT: \"à\",\n A_LOWER_CIRCLE_OVER: \"å\",\n C_LOWER_CIRCUMFLEX: \"ç\",\n E_LOWER_CIRCUMFLEX: \"ê\",\n E_LOWER_UMLAUT: \"ë\",\n E_LOWER_GRAVE_ACCENT: \"è\",\n I_LOWER_UMLAUT: \"ï\",\n I_LOWER_CIRCUMFLEX: \"î\",\n I_LOWER_GRAVE_ACCENT: \"ì\",\n A_UPPER_UMLAUT: \"Ä\",\n A_UPPER_CIRCLE: \"Å\",\n E_UPPER_ACCENT: \"É\",\n A_E_LOWER: \"æ\",\n A_E_UPPER: \"Æ\",\n O_LOWER_CIRCUMFLEX: \"ô\",\n O_LOWER_UMLAUT: \"ö\",\n O_LOWER_GRAVE_ACCENT: \"ò\",\n U_LOWER_CIRCUMFLEX: \"û\",\n U_LOWER_GRAVE_ACCENT: \"ù\",\n Y_LOWER_UMLAUT: \"ÿ\",\n O_UPPER_UMLAUT: \"Ö\",\n U_UPPER_UMLAUT: \"Ü\",\n CENTS: \"¢\",\n POUND: \"£\",\n YEN: \"¥\",\n CURRENCY: \"¤\",\n PTS: \"₧\",\n FUNCTION: \"ƒ\",\n A_LOWER_ACCENT: \"á\",\n I_LOWER_ACCENT: \"í\",\n O_LOWER_ACCENT: \"ó\",\n U_LOWER_ACCENT: \"ú\",\n N_LOWER_TILDE: \"ñ\",\n N_UPPER_TILDE: \"Ñ\",\n A_SUPER: \"ª\",\n O_SUPER: \"º\",\n UPSIDEDOWN_QUESTION: \"¿\",\n SIDEWAYS_L: \"⌐\",\n NEGATION: \"¬\",\n ONE_HALF: \"½\",\n ONE_FOURTH: \"¼\",\n UPSIDEDOWN_EXCLAMATION: \"¡\",\n DOUBLE_LEFT: \"«\",\n DOUBLE_RIGHT: \"»\",\n LIGHT_SHADED_BOX: \"░\",\n MEDIUM_SHADED_BOX: \"▒\",\n DARK_SHADED_BOX: \"▓\",\n VERTICAL_LINE: \"│\",\n MAZE__SINGLE_RIGHT_T: \"┤\",\n MAZE_SINGLE_RIGHT_TOP: \"┐\",\n MAZE_SINGLE_RIGHT_BOTTOM_SMALL: \"┘\",\n MAZE_SINGLE_LEFT_TOP_SMALL: \"┌\",\n MAZE_SINGLE_LEFT_BOTTOM_SMALL: \"└\",\n MAZE_SINGLE_LEFT_T: \"├\",\n MAZE_SINGLE_BOTTOM_T: \"┴\",\n MAZE_SINGLE_TOP_T: \"┬\",\n MAZE_SINGLE_CENTER: \"┼\",\n MAZE_SINGLE_HORIZONTAL_LINE: \"─\",\n MAZE_SINGLE_RIGHT_DOUBLECENTER_T: \"╡\",\n MAZE_SINGLE_RIGHT_DOUBLE_BL: \"╛\",\n MAZE_SINGLE_RIGHT_DOUBLE_T: \"╢\",\n MAZE_SINGLE_RIGHT_DOUBLEBOTTOM_TOP: \"╖\",\n MAZE_SINGLE_RIGHT_DOUBLELEFT_TOP: \"╕\",\n MAZE_SINGLE_LEFT_DOUBLE_T: \"╞\",\n MAZE_SINGLE_BOTTOM_DOUBLE_T: \"╧\",\n MAZE_SINGLE_TOP_DOUBLE_T: \"╤\",\n MAZE_SINGLE_TOP_DOUBLECENTER_T: \"╥\",\n MAZE_SINGLE_BOTTOM_DOUBLECENTER_T: \"╨\",\n MAZE_SINGLE_LEFT_DOUBLERIGHT_BOTTOM: \"╘\",\n MAZE_SINGLE_LEFT_DOUBLERIGHT_TOP: \"╒\",\n MAZE_SINGLE_LEFT_DOUBLEBOTTOM_TOP: \"╓\",\n MAZE_SINGLE_LEFT_DOUBLETOP_BOTTOM: \"╙\",\n MAZE_SINGLE_LEFT_TOP: \"Γ\",\n MAZE_SINGLE_RIGHT_BOTTOM: \"╜\",\n MAZE_SINGLE_LEFT_CENTER: \"╟\",\n MAZE_SINGLE_DOUBLECENTER_CENTER: \"╫\",\n MAZE_SINGLE_DOUBLECROSS_CENTER: \"╪\",\n MAZE_DOUBLE_LEFT_CENTER: \"╣\",\n MAZE_DOUBLE_VERTICAL: \"║\",\n MAZE_DOUBLE_RIGHT_TOP: \"╗\",\n MAZE_DOUBLE_RIGHT_BOTTOM: \"╝\",\n MAZE_DOUBLE_LEFT_BOTTOM: \"╚\",\n MAZE_DOUBLE_LEFT_TOP: \"╔\",\n MAZE_DOUBLE_BOTTOM_T: \"╩\",\n MAZE_DOUBLE_TOP_T: \"╦\",\n MAZE_DOUBLE_LEFT_T: \"╠\",\n MAZE_DOUBLE_HORIZONTAL: \"═\",\n MAZE_DOUBLE_CROSS: \"╬\",\n SOLID_RECTANGLE: \"█\",\n THICK_LEFT_VERTICAL: \"▌\",\n THICK_RIGHT_VERTICAL: \"▐\",\n SOLID_SMALL_RECTANGLE_BOTTOM: \"▄\",\n SOLID_SMALL_RECTANGLE_TOP: \"▀\",\n PHI_UPPER: \"Φ\",\n INFINITY: \"∞\",\n INTERSECTION: \"∩\",\n DEFINITION: \"≡\",\n PLUS_MINUS: \"±\",\n GT_EQ: \"≥\",\n LT_EQ: \"≤\",\n THEREFORE: \"⌠\",\n SINCE: \"∵\",\n DOESNOT_EXIST: \"∄\",\n EXISTS: \"∃\",\n FOR_ALL: \"∀\",\n EXCLUSIVE_OR: \"⊕\",\n BECAUSE: \"⌡\",\n DIVIDE: \"÷\",\n APPROX: \"≈\",\n DEGREE: \"°\",\n BOLD_DOT: \"∙\",\n DOT_SMALL: \"·\",\n CHECK: \"√\",\n ITALIC_X: \"✗\",\n SUPER_N: \"ⁿ\",\n SQUARED: \"²\",\n CUBED: \"³\",\n SOLID_BOX: \"■\",\n PERMILE: \"‰\",\n REGISTERED_TM: \"®\",\n COPYRIGHT: \"©\",\n TRADEMARK: \"™\",\n BETA: \"β\",\n GAMMA: \"γ\",\n ZETA: \"ζ\",\n ETA: \"η\",\n IOTA: \"ι\",\n KAPPA: \"κ\",\n LAMBDA: \"λ\",\n NU: \"ν\",\n XI: \"ξ\",\n OMICRON: \"ο\",\n RHO: \"ρ\",\n UPSILON: \"υ\",\n CHI_LOWER: \"φ\",\n CHI_UPPER: \"χ\",\n PSI: \"ψ\",\n ALPHA: \"α\",\n ESZETT: \"ß\",\n PI: \"π\",\n SIGMA_UPPER: \"Σ\",\n SIGMA_LOWER: \"σ\",\n MU: \"µ\",\n TAU: \"τ\",\n THETA: \"Θ\",\n OMEGA: \"Ω\",\n DELTA: \"δ\",\n PHI_LOWER: \"φ\",\n EPSILON: \"ε\"\n };\n\n function pad(string, length, ch, end) {\n string = \"\" + string; //check for numbers\n ch = ch || \" \";\n var strLen = string.length;\n while (strLen < length) {\n if (end) {\n string += ch;\n } else {\n string = ch + string;\n }\n strLen++;\n }\n return string;\n }\n\n function truncate(string, length, end) {\n var ret = string;\n if (is.isString(ret)) {\n if (string.length > length) {\n if (end) {\n var l = string.length;\n ret = string.substring(l - length, l);\n } else {\n ret = string.substring(0, length);\n }\n }\n } else {\n ret = truncate(\"\" + ret, length);\n }\n return ret;\n }\n\n function format(str, obj) {\n if (obj instanceof Array) {\n var i = 0, len = obj.length;\n //find the matches\n return str.replace(FORMAT_REGEX, function (m, format, type) {\n var replacer, ret;\n if (i < len) {\n replacer = obj[i++];\n } else {\n //we are out of things to replace with so\n //just return the match?\n return m;\n }\n if (m === \"%s\" || m === \"%d\" || m === \"%D\") {\n //fast path!\n ret = replacer + \"\";\n } else if (m === \"%Z\") {\n ret = replacer.toUTCString();\n } else if (m === \"%j\") {\n try {\n ret = stringify(replacer);\n } catch (e) {\n throw new Error(\"stringExtended.format : Unable to parse json from \", replacer);\n }\n } else {\n format = format.replace(/^\\[|\\]$/g, \"\");\n switch (type) {\n case \"s\":\n ret = formatString(replacer, format);\n break;\n case \"d\":\n ret = formatNumber(replacer, format);\n break;\n case \"j\":\n ret = formatObject(replacer, format);\n break;\n case \"D\":\n ret = date.format(replacer, format);\n break;\n case \"Z\":\n ret = date.format(replacer, format, true);\n break;\n }\n }\n return ret;\n });\n } else if (isHash(obj)) {\n return str.replace(INTERP_REGEX, function (m, format, value) {\n value = obj[value];\n if (!is.isUndefined(value)) {\n if (format) {\n if (is.isString(value)) {\n return formatString(value, format);\n } else if (is.isNumber(value)) {\n return formatNumber(value, format);\n } else if (is.isDate(value)) {\n return date.format(value, format);\n } else if (is.isObject(value)) {\n return formatObject(value, format);\n }\n } else {\n return \"\" + value;\n }\n }\n return m;\n });\n } else {\n var args = aSlice.call(arguments).slice(1);\n return format(str, args);\n }\n }\n\n function toArray(testStr, delim) {\n var ret = [];\n if (testStr) {\n if (testStr.indexOf(delim) > 0) {\n ret = testStr.replace(/\\s+/g, \"\").split(delim);\n }\n else {\n ret.push(testStr);\n }\n }\n return ret;\n }\n\n function multiply(str, times) {\n var ret = [];\n if (times) {\n for (var i = 0; i < times; i++) {\n ret.push(str);\n }\n }\n return ret.join(\"\");\n }\n\n\n function style(str, options) {\n var ret, i, l;\n if (options) {\n if (is.isArray(str)) {\n ret = [];\n for (i = 0, l = str.length; i < l; i++) {\n ret.push(style(str[i], options));\n }\n } else if (options instanceof Array) {\n ret = str;\n for (i = 0, l = options.length; i < l; i++) {\n ret = style(ret, options[i]);\n }\n } else if (options in styles) {\n ret = '\\x1B[' + styles[options] + 'm' + str + '\\x1B[0m';\n }\n }\n return ret;\n }\n\n function escape(str, except) {\n return str.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, function (ch) {\n if (except && arr.indexOf(except, ch) !== -1) {\n return ch;\n }\n return \"\\\\\" + ch;\n });\n }\n\n function trim(str) {\n return str.replace(/^\\s*|\\s*$/g, \"\");\n }\n\n function trimLeft(str) {\n return str.replace(/^\\s*/, \"\");\n }\n\n function trimRight(str) {\n return str.replace(/\\s*$/, \"\");\n }\n\n function isEmpty(str) {\n return str.length === 0;\n }\n\n\n var string = {\n toArray: toArray,\n pad: pad,\n truncate: truncate,\n multiply: multiply,\n format: format,\n style: style,\n escape: escape,\n trim: trim,\n trimLeft: trimLeft,\n trimRight: trimRight,\n isEmpty: isEmpty\n };\n return extended.define(is.isString, string).define(is.isArray, {style: style}).expose(string).expose({characters: characters});\n }\n\n if (true) {\n if ( true && module.exports) {\n module.exports = defineString(__webpack_require__(/*! extended */ \"./build/cht-core-4-6/node_modules/extended/index.js\"), __webpack_require__(/*! is-extended */ \"./build/cht-core-4-6/node_modules/is-extended/index.js\"), __webpack_require__(/*! date-extended */ \"./build/cht-core-4-6/node_modules/date-extended/index.js\"), __webpack_require__(/*! array-extended */ \"./build/cht-core-4-6/node_modules/array-extended/index.js\"));\n\n }\n } else {}\n\n}).call(this);\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_baseCreate.js\":\n/*!***************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_baseCreate.js ***!\n \\***************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ baseCreate)\n/* harmony export */ });\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isObject.js\");\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n\n\n\n// Create a naked function reference for surrogate-prototype-swapping.\nfunction ctor() {\n return function(){};\n}\n\n// An internal function for creating a new object that inherits from another.\nfunction baseCreate(prototype) {\n if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__.default)(prototype)) return {};\n if (_setup_js__WEBPACK_IMPORTED_MODULE_1__.nativeCreate) return (0,_setup_js__WEBPACK_IMPORTED_MODULE_1__.nativeCreate)(prototype);\n var Ctor = ctor();\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_baseIteratee.js\":\n/*!*****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_baseIteratee.js ***!\n \\*****************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ baseIteratee)\n/* harmony export */ });\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./identity.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/identity.js\");\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js\");\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isObject.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isObject.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isArray.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isArray.js\");\n/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./matcher.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/matcher.js\");\n/* harmony import */ var _property_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./property.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/property.js\");\n/* harmony import */ var _optimizeCb_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_optimizeCb.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js\");\n\n\n\n\n\n\n\n\n// An internal function to generate callbacks that can be applied to each\n// element in a collection, returning the desired result — either `_.identity`,\n// an arbitrary callback, a property matcher, or a property accessor.\nfunction baseIteratee(value, context, argCount) {\n if (value == null) return _identity_js__WEBPACK_IMPORTED_MODULE_0__.default;\n if ((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(value)) return (0,_optimizeCb_js__WEBPACK_IMPORTED_MODULE_6__.default)(value, context, argCount);\n if ((0,_isObject_js__WEBPACK_IMPORTED_MODULE_2__.default)(value) && !(0,_isArray_js__WEBPACK_IMPORTED_MODULE_3__.default)(value)) return (0,_matcher_js__WEBPACK_IMPORTED_MODULE_4__.default)(value);\n return (0,_property_js__WEBPACK_IMPORTED_MODULE_5__.default)(value);\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_cb.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_cb.js ***!\n \\*******************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ cb)\n/* harmony export */ });\n/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/underscore.js\");\n/* harmony import */ var _baseIteratee_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseIteratee.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_baseIteratee.js\");\n/* harmony import */ var _iteratee_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./iteratee.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/iteratee.js\");\n\n\n\n\n// The function we call internally to generate a callback. It invokes\n// `_.iteratee` if overridden, otherwise `baseIteratee`.\nfunction cb(value, context, argCount) {\n if (_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.iteratee !== _iteratee_js__WEBPACK_IMPORTED_MODULE_2__.default) return _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.iteratee(value, context);\n return (0,_baseIteratee_js__WEBPACK_IMPORTED_MODULE_1__.default)(value, context, argCount);\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_chainResult.js\":\n/*!****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_chainResult.js ***!\n \\****************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ chainResult)\n/* harmony export */ });\n/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/underscore.js\");\n\n\n// Helper function to continue chaining intermediate results.\nfunction chainResult(instance, obj) {\n return instance._chain ? (0,_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj).chain() : obj;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_collectNonEnumProps.js\":\n/*!************************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_collectNonEnumProps.js ***!\n \\************************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ collectNonEnumProps)\n/* harmony export */ });\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js\");\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_has.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_has.js\");\n\n\n\n\n// Internal helper to create a simple lookup structure.\n// `collectNonEnumProps` used to depend on `_.contains`, but this led to\n// circular imports. `emulatedSet` is a one-off solution that only works for\n// arrays of strings.\nfunction emulatedSet(keys) {\n var hash = {};\n for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;\n return {\n contains: function(key) { return hash[key] === true; },\n push: function(key) {\n hash[key] = true;\n return keys.push(key);\n }\n };\n}\n\n// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't\n// be iterated by `for key in ...` and thus missed. Extends `keys` in place if\n// needed.\nfunction collectNonEnumProps(obj, keys) {\n keys = emulatedSet(keys);\n var nonEnumIdx = _setup_js__WEBPACK_IMPORTED_MODULE_0__.nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = ((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(constructor) && constructor.prototype) || _setup_js__WEBPACK_IMPORTED_MODULE_0__.ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if ((0,_has_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj, prop) && !keys.contains(prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = _setup_js__WEBPACK_IMPORTED_MODULE_0__.nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) {\n keys.push(prop);\n }\n }\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_createAssigner.js\":\n/*!*******************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_createAssigner.js ***!\n \\*******************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ createAssigner)\n/* harmony export */ });\n// An internal function for creating assigner functions.\nfunction createAssigner(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_createEscaper.js\":\n/*!******************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_createEscaper.js ***!\n \\******************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ createEscaper)\n/* harmony export */ });\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./keys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/keys.js\");\n\n\n// Internal helper to generate functions for escaping and unescaping strings\n// to/from HTML interpolation.\nfunction createEscaper(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + (0,_keys_js__WEBPACK_IMPORTED_MODULE_0__.default)(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_createIndexFinder.js\":\n/*!**********************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_createIndexFinder.js ***!\n \\**********************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ createIndexFinder)\n/* harmony export */ });\n/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getLength.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js\");\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n/* harmony import */ var _isNaN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isNaN.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isNaN.js\");\n\n\n\n\n// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.\nfunction createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(_setup_js__WEBPACK_IMPORTED_MODULE_1__.slice.call(array, i, length), _isNaN_js__WEBPACK_IMPORTED_MODULE_2__.default);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_createPredicateIndexFinder.js\":\n/*!*******************************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_createPredicateIndexFinder.js ***!\n \\*******************************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ createPredicateIndexFinder)\n/* harmony export */ });\n/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_cb.js\");\n/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getLength.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js\");\n\n\n\n// Internal function to generate `_.findIndex` and `_.findLastIndex`.\nfunction createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(predicate, context);\n var length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_1__.default)(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_createReduce.js\":\n/*!*****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_createReduce.js ***!\n \\*****************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ createReduce)\n/* harmony export */ });\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/keys.js\");\n/* harmony import */ var _optimizeCb_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_optimizeCb.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js\");\n\n\n\n\n// Internal helper to create a reducing function, iterating left or right.\nfunction createReduce(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var _keys = !(0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj) && (0,_keys_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj),\n length = (_keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[_keys ? _keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = _keys ? _keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, (0,_optimizeCb_js__WEBPACK_IMPORTED_MODULE_2__.default)(iteratee, context, 4), memo, initial);\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_createSizePropertyCheck.js\":\n/*!****************************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_createSizePropertyCheck.js ***!\n \\****************************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ createSizePropertyCheck)\n/* harmony export */ });\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n\n\n// Common internal logic for `isArrayLike` and `isBufferLike`.\nfunction createSizePropertyCheck(getSizeProperty) {\n return function(collection) {\n var sizeProperty = getSizeProperty(collection);\n return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= _setup_js__WEBPACK_IMPORTED_MODULE_0__.MAX_ARRAY_INDEX;\n }\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_deepGet.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_deepGet.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ deepGet)\n/* harmony export */ });\n// Internal function to obtain a nested property in `obj` along `path`.\nfunction deepGet(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_escapeMap.js\":\n/*!**************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_escapeMap.js ***!\n \\**************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n// Internal list of HTML entities for escaping.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n});\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_executeBound.js\":\n/*!*****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_executeBound.js ***!\n \\*****************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ executeBound)\n/* harmony export */ });\n/* harmony import */ var _baseCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseCreate.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_baseCreate.js\");\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isObject.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isObject.js\");\n\n\n\n// Internal function to execute `sourceFunc` bound to `context` with optional\n// `args`. Determines whether to execute a function as a constructor or as a\n// normal function.\nfunction executeBound(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = (0,_baseCreate_js__WEBPACK_IMPORTED_MODULE_0__.default)(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if ((0,_isObject_js__WEBPACK_IMPORTED_MODULE_1__.default)(result)) return result;\n return self;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ flatten)\n/* harmony export */ });\n/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getLength.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isArray.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isArray.js\");\n/* harmony import */ var _isArguments_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isArguments.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isArguments.js\");\n\n\n\n\n\n// Internal implementation of a recursive `flatten` function.\nfunction flatten(input, depth, strict, output) {\n output = output || [];\n if (!depth && depth !== 0) {\n depth = Infinity;\n } else if (depth <= 0) {\n return output.concat(input);\n }\n var idx = output.length;\n for (var i = 0, length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(input); i < length; i++) {\n var value = input[i];\n if ((0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__.default)(value) && ((0,_isArray_js__WEBPACK_IMPORTED_MODULE_2__.default)(value) || (0,_isArguments_js__WEBPACK_IMPORTED_MODULE_3__.default)(value))) {\n // Flatten current level of array or arguments object.\n if (depth > 1) {\n flatten(value, depth - 1, strict, output);\n idx = output.length;\n } else {\n var j = 0, len = value.length;\n while (j < len) output[idx++] = value[j++];\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_getByteLength.js\":\n/*!******************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_getByteLength.js ***!\n \\******************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _shallowProperty_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_shallowProperty.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_shallowProperty.js\");\n\n\n// Internal helper to obtain the `byteLength` property of an object.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_shallowProperty_js__WEBPACK_IMPORTED_MODULE_0__.default)('byteLength'));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js\":\n/*!**************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js ***!\n \\**************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _shallowProperty_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_shallowProperty.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_shallowProperty.js\");\n\n\n// Internal helper to obtain the `length` property of an object.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_shallowProperty_js__WEBPACK_IMPORTED_MODULE_0__.default)('length'));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_group.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_group.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ group)\n/* harmony export */ });\n/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_cb.js\");\n/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./each.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/each.js\");\n\n\n\n// An internal function used for aggregate \"group by\" operations.\nfunction group(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context);\n (0,_each_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_has.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_has.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ has)\n/* harmony export */ });\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n\n\n// Internal function to check whether `key` is an own property name of `obj`.\nfunction has(obj, key) {\n return obj != null && _setup_js__WEBPACK_IMPORTED_MODULE_0__.hasOwnProperty.call(obj, key);\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_hasObjectTag.js\":\n/*!*****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_hasObjectTag.js ***!\n \\*****************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Object'));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js\":\n/*!****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js ***!\n \\****************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _createSizePropertyCheck_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createSizePropertyCheck.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_createSizePropertyCheck.js\");\n/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getLength.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js\");\n\n\n\n// Internal helper for collection methods to determine whether a collection\n// should be iterated as an array or as an object.\n// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createSizePropertyCheck_js__WEBPACK_IMPORTED_MODULE_0__.default)(_getLength_js__WEBPACK_IMPORTED_MODULE_1__.default));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_isBufferLike.js\":\n/*!*****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_isBufferLike.js ***!\n \\*****************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _createSizePropertyCheck_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createSizePropertyCheck.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_createSizePropertyCheck.js\");\n/* harmony import */ var _getByteLength_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getByteLength.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_getByteLength.js\");\n\n\n\n// Internal helper to determine whether we should spend extensive checks against\n// `ArrayBuffer` et al.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createSizePropertyCheck_js__WEBPACK_IMPORTED_MODULE_0__.default)(_getByteLength_js__WEBPACK_IMPORTED_MODULE_1__.default));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_keyInObj.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_keyInObj.js ***!\n \\*************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ keyInObj)\n/* harmony export */ });\n// Internal `_.pick` helper function to determine whether `key` is an enumerable\n// property name of `obj`.\nfunction keyInObj(value, key, obj) {\n return key in obj;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_methodFingerprint.js\":\n/*!**********************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_methodFingerprint.js ***!\n \\**********************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ie11fingerprint\": () => (/* binding */ ie11fingerprint),\n/* harmony export */ \"mapMethods\": () => (/* binding */ mapMethods),\n/* harmony export */ \"weakMapMethods\": () => (/* binding */ weakMapMethods),\n/* harmony export */ \"setMethods\": () => (/* binding */ setMethods)\n/* harmony export */ });\n/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getLength.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js\");\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js\");\n/* harmony import */ var _allKeys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./allKeys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js\");\n\n\n\n\n// Since the regular `Object.prototype.toString` type tests don't work for\n// some types in IE 11, we use a fingerprinting heuristic instead, based\n// on the methods. It's not great, but it's the best we got.\n// The fingerprint method lists are defined below.\nfunction ie11fingerprint(methods) {\n var length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(methods);\n return function(obj) {\n if (obj == null) return false;\n // `Map`, `WeakMap` and `Set` have no enumerable keys.\n var keys = (0,_allKeys_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj);\n if ((0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(keys)) return false;\n for (var i = 0; i < length; i++) {\n if (!(0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj[methods[i]])) return false;\n }\n // If we are testing against `WeakMap`, we need to ensure that\n // `obj` doesn't have a `forEach` method in order to distinguish\n // it from a regular `Map`.\n return methods !== weakMapMethods || !(0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj[forEachName]);\n };\n}\n\n// In the interest of compact minification, we write\n// each string in the fingerprints only once.\nvar forEachName = 'forEach',\n hasName = 'has',\n commonInit = ['clear', 'delete'],\n mapTail = ['get', hasName, 'set'];\n\n// `Map`, `WeakMap` and `Set` each have slightly different\n// combinations of the above sublists.\nvar mapMethods = commonInit.concat(forEachName, mapTail),\n weakMapMethods = commonInit.concat(mapTail),\n setMethods = ['add'].concat(commonInit, forEachName, hasName);\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js\":\n/*!***************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js ***!\n \\***************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ optimizeCb)\n/* harmony export */ });\n// Internal function that returns an efficient (for current engines) version\n// of the passed-in callback, to be repeatedly applied in other Underscore\n// functions.\nfunction optimizeCb(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_setup.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"VERSION\": () => (/* binding */ VERSION),\n/* harmony export */ \"root\": () => (/* binding */ root),\n/* harmony export */ \"ArrayProto\": () => (/* binding */ ArrayProto),\n/* harmony export */ \"ObjProto\": () => (/* binding */ ObjProto),\n/* harmony export */ \"SymbolProto\": () => (/* binding */ SymbolProto),\n/* harmony export */ \"push\": () => (/* binding */ push),\n/* harmony export */ \"slice\": () => (/* binding */ slice),\n/* harmony export */ \"toString\": () => (/* binding */ toString),\n/* harmony export */ \"hasOwnProperty\": () => (/* binding */ hasOwnProperty),\n/* harmony export */ \"supportsArrayBuffer\": () => (/* binding */ supportsArrayBuffer),\n/* harmony export */ \"supportsDataView\": () => (/* binding */ supportsDataView),\n/* harmony export */ \"nativeIsArray\": () => (/* binding */ nativeIsArray),\n/* harmony export */ \"nativeKeys\": () => (/* binding */ nativeKeys),\n/* harmony export */ \"nativeCreate\": () => (/* binding */ nativeCreate),\n/* harmony export */ \"nativeIsView\": () => (/* binding */ nativeIsView),\n/* harmony export */ \"_isNaN\": () => (/* binding */ _isNaN),\n/* harmony export */ \"_isFinite\": () => (/* binding */ _isFinite),\n/* harmony export */ \"hasEnumBug\": () => (/* binding */ hasEnumBug),\n/* harmony export */ \"nonEnumerableProps\": () => (/* binding */ nonEnumerableProps),\n/* harmony export */ \"MAX_ARRAY_INDEX\": () => (/* binding */ MAX_ARRAY_INDEX)\n/* harmony export */ });\n// Current version.\nvar VERSION = '1.13.6';\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nvar root = (typeof self == 'object' && self.self === self && self) ||\n (typeof global == 'object' && global.global === global && global) ||\n Function('return this')() ||\n {};\n\n// Save bytes in the minified (but not gzipped) version:\nvar ArrayProto = Array.prototype, ObjProto = Object.prototype;\nvar SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nvar push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n// Modern feature detection.\nvar supportsArrayBuffer = typeof ArrayBuffer !== 'undefined',\n supportsDataView = typeof DataView !== 'undefined';\n\n// All **ECMAScript 5+** native function implementations that we hope to use\n// are declared here.\nvar nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create,\n nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;\n\n// Create references to these builtin functions because we override them.\nvar _isNaN = isNaN,\n _isFinite = isFinite;\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nvar hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n// The largest integer that can be represented exactly.\nvar MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_shallowProperty.js\":\n/*!********************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_shallowProperty.js ***!\n \\********************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ shallowProperty)\n/* harmony export */ });\n// Internal helper to generate a function to obtain property `key` from `obj`.\nfunction shallowProperty(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js\":\n/*!*****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js ***!\n \\*****************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"hasStringTagBug\": () => (/* binding */ hasStringTagBug),\n/* harmony export */ \"isIE11\": () => (/* binding */ isIE11)\n/* harmony export */ });\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n/* harmony import */ var _hasObjectTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_hasObjectTag.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_hasObjectTag.js\");\n\n\n\n// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`.\n// In IE 11, the most common among them, this problem also applies to\n// `Map`, `WeakMap` and `Set`.\nvar hasStringTagBug = (\n _setup_js__WEBPACK_IMPORTED_MODULE_0__.supportsDataView && (0,_hasObjectTag_js__WEBPACK_IMPORTED_MODULE_1__.default)(new DataView(new ArrayBuffer(8)))\n ),\n isIE11 = (typeof Map !== 'undefined' && (0,_hasObjectTag_js__WEBPACK_IMPORTED_MODULE_1__.default)(new Map));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js\":\n/*!**************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js ***!\n \\**************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ tagTester)\n/* harmony export */ });\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n\n\n// Internal function for creating a `toString`-based type tester.\nfunction tagTester(name) {\n var tag = '[object ' + name + ']';\n return function(obj) {\n return _setup_js__WEBPACK_IMPORTED_MODULE_0__.toString.call(obj) === tag;\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_toBufferView.js\":\n/*!*****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_toBufferView.js ***!\n \\*****************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ toBufferView)\n/* harmony export */ });\n/* harmony import */ var _getByteLength_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getByteLength.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_getByteLength.js\");\n\n\n// Internal function to wrap or shallow-copy an ArrayBuffer,\n// typed array or DataView to a new view, reusing the buffer.\nfunction toBufferView(bufferSource) {\n return new Uint8Array(\n bufferSource.buffer || bufferSource,\n bufferSource.byteOffset || 0,\n (0,_getByteLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(bufferSource)\n );\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ toPath)\n/* harmony export */ });\n/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/underscore.js\");\n/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPath.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/toPath.js\");\n\n\n\n// Internal wrapper for `_.toPath` to enable minification.\n// Similar to `cb` for `_.iteratee`.\nfunction toPath(path) {\n return _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.toPath(path);\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/_unescapeMap.js\":\n/*!****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/_unescapeMap.js ***!\n \\****************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _invert_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invert.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/invert.js\");\n/* harmony import */ var _escapeMap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_escapeMap.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_escapeMap.js\");\n\n\n\n// Internal list of HTML entities for unescaping.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_invert_js__WEBPACK_IMPORTED_MODULE_0__.default)(_escapeMap_js__WEBPACK_IMPORTED_MODULE_1__.default));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/after.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/after.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ after)\n/* harmony export */ });\n// Returns a function that will only be executed on and after the Nth call.\nfunction after(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ allKeys)\n/* harmony export */ });\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isObject.js\");\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n/* harmony import */ var _collectNonEnumProps_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_collectNonEnumProps.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_collectNonEnumProps.js\");\n\n\n\n\n// Retrieve all the enumerable property names of an object.\nfunction allKeys(obj) {\n if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (_setup_js__WEBPACK_IMPORTED_MODULE_1__.hasEnumBug) (0,_collectNonEnumProps_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj, keys);\n return keys;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/before.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/before.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ before)\n/* harmony export */ });\n// Returns a function that will only be executed up to (but not including) the\n// Nth call.\nfunction before(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/bind.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/bind.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js\");\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js\");\n/* harmony import */ var _executeBound_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_executeBound.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_executeBound.js\");\n\n\n\n\n// Create a function bound to a given object (assigning `this`, and arguments,\n// optionally).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(func, context, args) {\n if (!(0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(func)) throw new TypeError('Bind must be called on a function');\n var bound = (0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(callArgs) {\n return (0,_executeBound_js__WEBPACK_IMPORTED_MODULE_2__.default)(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n}));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/bindAll.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/bindAll.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js\");\n/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_flatten.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js\");\n/* harmony import */ var _bind_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./bind.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/bind.js\");\n\n\n\n\n// Bind a number of an object's methods to that object. Remaining arguments\n// are the method names to be bound. Useful for ensuring that all callbacks\n// defined on an object belong to it.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(obj, keys) {\n keys = (0,_flatten_js__WEBPACK_IMPORTED_MODULE_1__.default)(keys, false, false);\n var index = keys.length;\n if (index < 1) throw new Error('bindAll must be passed function names');\n while (index--) {\n var key = keys[index];\n obj[key] = (0,_bind_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj[key], obj);\n }\n return obj;\n}));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/chain.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/chain.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ chain)\n/* harmony export */ });\n/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/underscore.js\");\n\n\n// Start chaining a wrapped Underscore object.\nfunction chain(obj) {\n var instance = (0,_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj);\n instance._chain = true;\n return instance;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/chunk.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/chunk.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ chunk)\n/* harmony export */ });\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n\n\n// Chunk a single array into multiple arrays, each containing `count` or fewer\n// items.\nfunction chunk(array, count) {\n if (count == null || count < 1) return [];\n var result = [];\n var i = 0, length = array.length;\n while (i < length) {\n result.push(_setup_js__WEBPACK_IMPORTED_MODULE_0__.slice.call(array, i, i += count));\n }\n return result;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/clone.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/clone.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ clone)\n/* harmony export */ });\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isObject.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isArray.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isArray.js\");\n/* harmony import */ var _extend_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./extend.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/extend.js\");\n\n\n\n\n// Create a (shallow-cloned) duplicate of an object.\nfunction clone(obj) {\n if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj)) return obj;\n return (0,_isArray_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) ? obj.slice() : (0,_extend_js__WEBPACK_IMPORTED_MODULE_2__.default)({}, obj);\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/compact.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/compact.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ compact)\n/* harmony export */ });\n/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./filter.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/filter.js\");\n\n\n// Trim out all falsy values from an array.\nfunction compact(array) {\n return (0,_filter_js__WEBPACK_IMPORTED_MODULE_0__.default)(array, Boolean);\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/compose.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/compose.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ compose)\n/* harmony export */ });\n// Returns a function that is the composition of a list of functions, each\n// consuming the return value of the function that follows.\nfunction compose() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/constant.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/constant.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ constant)\n/* harmony export */ });\n// Predicate-generating function. Often useful outside of Underscore.\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/contains.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/contains.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ contains)\n/* harmony export */ });\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js\");\n/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./values.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/values.js\");\n/* harmony import */ var _indexOf_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./indexOf.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/indexOf.js\");\n\n\n\n\n// Determine if the array or object contains a given item (using `===`).\nfunction contains(obj, item, fromIndex, guard) {\n if (!(0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj)) obj = (0,_values_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return (0,_indexOf_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj, item, fromIndex) >= 0;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/countBy.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/countBy.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _group_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_group.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_group.js\");\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_has.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_has.js\");\n\n\n\n// Counts instances of an object that group by a certain criterion. Pass\n// either a string attribute to count by, or a function that returns the\n// criterion.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_group_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(result, value, key) {\n if ((0,_has_js__WEBPACK_IMPORTED_MODULE_1__.default)(result, key)) result[key]++; else result[key] = 1;\n}));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/create.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/create.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ create)\n/* harmony export */ });\n/* harmony import */ var _baseCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseCreate.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_baseCreate.js\");\n/* harmony import */ var _extendOwn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./extendOwn.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/extendOwn.js\");\n\n\n\n// Creates an object that inherits from the given prototype object.\n// If additional properties are provided then they will be added to the\n// created object.\nfunction create(prototype, props) {\n var result = (0,_baseCreate_js__WEBPACK_IMPORTED_MODULE_0__.default)(prototype);\n if (props) (0,_extendOwn_js__WEBPACK_IMPORTED_MODULE_1__.default)(result, props);\n return result;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/debounce.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/debounce.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ debounce)\n/* harmony export */ });\n/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js\");\n/* harmony import */ var _now_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./now.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/now.js\");\n\n\n\n// When a sequence of calls of the returned function ends, the argument\n// function is triggered. The end of a sequence is defined by the `wait`\n// parameter. If `immediate` is passed, the argument function will be\n// triggered at the beginning of the sequence instead of at the end.\nfunction debounce(func, wait, immediate) {\n var timeout, previous, args, result, context;\n\n var later = function() {\n var passed = (0,_now_js__WEBPACK_IMPORTED_MODULE_1__.default)() - previous;\n if (wait > passed) {\n timeout = setTimeout(later, wait - passed);\n } else {\n timeout = null;\n if (!immediate) result = func.apply(context, args);\n // This check is needed because `func` can recursively invoke `debounced`.\n if (!timeout) args = context = null;\n }\n };\n\n var debounced = (0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(_args) {\n context = this;\n args = _args;\n previous = (0,_now_js__WEBPACK_IMPORTED_MODULE_1__.default)();\n if (!timeout) {\n timeout = setTimeout(later, wait);\n if (immediate) result = func.apply(context, args);\n }\n return result;\n });\n\n debounced.cancel = function() {\n clearTimeout(timeout);\n timeout = args = context = null;\n };\n\n return debounced;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/defaults.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/defaults.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _createAssigner_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createAssigner.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_createAssigner.js\");\n/* harmony import */ var _allKeys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./allKeys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js\");\n\n\n\n// Fill in a given object with default properties.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createAssigner_js__WEBPACK_IMPORTED_MODULE_0__.default)(_allKeys_js__WEBPACK_IMPORTED_MODULE_1__.default, true));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/defer.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/defer.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _partial_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./partial.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/partial.js\");\n/* harmony import */ var _delay_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./delay.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/delay.js\");\n/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./underscore.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/underscore.js\");\n\n\n\n\n// Defers a function, scheduling it to run after the current call stack has\n// cleared.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_partial_js__WEBPACK_IMPORTED_MODULE_0__.default)(_delay_js__WEBPACK_IMPORTED_MODULE_1__.default, _underscore_js__WEBPACK_IMPORTED_MODULE_2__.default, 1));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/delay.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/delay.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js\");\n\n\n// Delays a function for the given number of milliseconds, and then calls\n// it with the arguments supplied.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n}));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/difference.js\":\n/*!**************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/difference.js ***!\n \\**************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js\");\n/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_flatten.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js\");\n/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./filter.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/filter.js\");\n/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./contains.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/contains.js\");\n\n\n\n\n\n// Take the difference between one array and a number of other arrays.\n// Only the elements present in just the first array will remain.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(array, rest) {\n rest = (0,_flatten_js__WEBPACK_IMPORTED_MODULE_1__.default)(rest, true, true);\n return (0,_filter_js__WEBPACK_IMPORTED_MODULE_2__.default)(array, function(value){\n return !(0,_contains_js__WEBPACK_IMPORTED_MODULE_3__.default)(rest, value);\n });\n}));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/each.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/each.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ each)\n/* harmony export */ });\n/* harmony import */ var _optimizeCb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_optimizeCb.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/keys.js\");\n\n\n\n\n// The cornerstone for collection functions, an `each`\n// implementation, aka `forEach`.\n// Handles raw objects in addition to array-likes. Treats all\n// sparse array-likes as if they were dense.\nfunction each(obj, iteratee, context) {\n iteratee = (0,_optimizeCb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context);\n var i, length;\n if ((0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj);\n for (i = 0, length = _keys.length; i < length; i++) {\n iteratee(obj[_keys[i]], _keys[i], obj);\n }\n }\n return obj;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/escape.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/escape.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _createEscaper_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createEscaper.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_createEscaper.js\");\n/* harmony import */ var _escapeMap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_escapeMap.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_escapeMap.js\");\n\n\n\n// Function for escaping strings to HTML interpolation.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createEscaper_js__WEBPACK_IMPORTED_MODULE_0__.default)(_escapeMap_js__WEBPACK_IMPORTED_MODULE_1__.default));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/every.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/every.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ every)\n/* harmony export */ });\n/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_cb.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/keys.js\");\n\n\n\n\n// Determine whether all of the elements pass a truth test.\nfunction every(obj, predicate, context) {\n predicate = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(predicate, context);\n var _keys = !(0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) && (0,_keys_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/extend.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/extend.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _createAssigner_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createAssigner.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_createAssigner.js\");\n/* harmony import */ var _allKeys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./allKeys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js\");\n\n\n\n// Extend a given object with all the properties in passed-in object(s).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createAssigner_js__WEBPACK_IMPORTED_MODULE_0__.default)(_allKeys_js__WEBPACK_IMPORTED_MODULE_1__.default));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/extendOwn.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/extendOwn.js ***!\n \\*************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _createAssigner_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createAssigner.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_createAssigner.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/keys.js\");\n\n\n\n// Assigns a given object with all the own properties in the passed-in\n// object(s).\n// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createAssigner_js__WEBPACK_IMPORTED_MODULE_0__.default)(_keys_js__WEBPACK_IMPORTED_MODULE_1__.default));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/filter.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/filter.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ filter)\n/* harmony export */ });\n/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_cb.js\");\n/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./each.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/each.js\");\n\n\n\n// Return all the elements that pass a truth test.\nfunction filter(obj, predicate, context) {\n var results = [];\n predicate = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(predicate, context);\n (0,_each_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/find.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/find.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ find)\n/* harmony export */ });\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js\");\n/* harmony import */ var _findIndex_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./findIndex.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/findIndex.js\");\n/* harmony import */ var _findKey_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./findKey.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/findKey.js\");\n\n\n\n\n// Return the first value which passes a truth test.\nfunction find(obj, predicate, context) {\n var keyFinder = (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj) ? _findIndex_js__WEBPACK_IMPORTED_MODULE_1__.default : _findKey_js__WEBPACK_IMPORTED_MODULE_2__.default;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/findIndex.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/findIndex.js ***!\n \\*************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _createPredicateIndexFinder_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createPredicateIndexFinder.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_createPredicateIndexFinder.js\");\n\n\n// Returns the first index on an array-like that passes a truth test.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createPredicateIndexFinder_js__WEBPACK_IMPORTED_MODULE_0__.default)(1));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/findKey.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/findKey.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ findKey)\n/* harmony export */ });\n/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_cb.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/keys.js\");\n\n\n\n// Returns the first key on an object that passes a truth test.\nfunction findKey(obj, predicate, context) {\n predicate = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(predicate, context);\n var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj), key;\n for (var i = 0, length = _keys.length; i < length; i++) {\n key = _keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/findLastIndex.js\":\n/*!*****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/findLastIndex.js ***!\n \\*****************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _createPredicateIndexFinder_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createPredicateIndexFinder.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_createPredicateIndexFinder.js\");\n\n\n// Returns the last index on an array-like that passes a truth test.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createPredicateIndexFinder_js__WEBPACK_IMPORTED_MODULE_0__.default)(-1));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/findWhere.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/findWhere.js ***!\n \\*************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ findWhere)\n/* harmony export */ });\n/* harmony import */ var _find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./find.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/find.js\");\n/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./matcher.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/matcher.js\");\n\n\n\n// Convenience version of a common use case of `_.find`: getting the first\n// object containing specific `key:value` pairs.\nfunction findWhere(obj, attrs) {\n return (0,_find_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, (0,_matcher_js__WEBPACK_IMPORTED_MODULE_1__.default)(attrs));\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/first.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/first.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ first)\n/* harmony export */ });\n/* harmony import */ var _initial_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./initial.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/initial.js\");\n\n\n// Get the first element of an array. Passing **n** will return the first N\n// values in the array. The **guard** check allows it to work with `_.map`.\nfunction first(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[0];\n return (0,_initial_js__WEBPACK_IMPORTED_MODULE_0__.default)(array, array.length - n);\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/flatten.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/flatten.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ flatten)\n/* harmony export */ });\n/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_flatten.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js\");\n\n\n// Flatten out an array, either recursively (by default), or up to `depth`.\n// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively.\nfunction flatten(array, depth) {\n return (0,_flatten_js__WEBPACK_IMPORTED_MODULE_0__.default)(array, depth, false);\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/functions.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/functions.js ***!\n \\*************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ functions)\n/* harmony export */ });\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isFunction.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js\");\n\n\n// Return a sorted list of the function names available on the object.\nfunction functions(obj) {\n var names = [];\n for (var key in obj) {\n if ((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj[key])) names.push(key);\n }\n return names.sort();\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/get.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/get.js ***!\n \\*******************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ get)\n/* harmony export */ });\n/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_toPath.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js\");\n/* harmony import */ var _deepGet_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_deepGet.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_deepGet.js\");\n/* harmony import */ var _isUndefined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isUndefined.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isUndefined.js\");\n\n\n\n\n// Get the value of the (deep) property on `path` from `object`.\n// If any property in `path` does not exist or if the value is\n// `undefined`, return `defaultValue` instead.\n// The `path` is normalized through `_.toPath`.\nfunction get(object, path, defaultValue) {\n var value = (0,_deepGet_js__WEBPACK_IMPORTED_MODULE_1__.default)(object, (0,_toPath_js__WEBPACK_IMPORTED_MODULE_0__.default)(path));\n return (0,_isUndefined_js__WEBPACK_IMPORTED_MODULE_2__.default)(value) ? defaultValue : value;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/groupBy.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/groupBy.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _group_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_group.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_group.js\");\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_has.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_has.js\");\n\n\n\n// Groups the object's values by a criterion. Pass either a string attribute\n// to group by, or a function that returns the criterion.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_group_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(result, value, key) {\n if ((0,_has_js__WEBPACK_IMPORTED_MODULE_1__.default)(result, key)) result[key].push(value); else result[key] = [value];\n}));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/has.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/has.js ***!\n \\*******************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ has)\n/* harmony export */ });\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_has.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_has.js\");\n/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_toPath.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js\");\n\n\n\n// Shortcut function for checking if an object has a given property directly on\n// itself (in other words, not on a prototype). Unlike the internal `has`\n// function, this public version can also traverse nested properties.\nfunction has(obj, path) {\n path = (0,_toPath_js__WEBPACK_IMPORTED_MODULE_1__.default)(path);\n var length = path.length;\n for (var i = 0; i < length; i++) {\n var key = path[i];\n if (!(0,_has_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, key)) return false;\n obj = obj[key];\n }\n return !!length;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/identity.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/identity.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ identity)\n/* harmony export */ });\n// Keep the identity function around for default iteratees.\nfunction identity(value) {\n return value;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/index-all.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/index-all.js ***!\n \\*************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* reexport safe */ _index_default_js__WEBPACK_IMPORTED_MODULE_0__.default),\n/* harmony export */ \"VERSION\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.VERSION),\n/* harmony export */ \"after\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.after),\n/* harmony export */ \"all\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.all),\n/* harmony export */ \"allKeys\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.allKeys),\n/* harmony export */ \"any\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.any),\n/* harmony export */ \"assign\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.assign),\n/* harmony export */ \"before\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.before),\n/* harmony export */ \"bind\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.bind),\n/* harmony export */ \"bindAll\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.bindAll),\n/* harmony export */ \"chain\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.chain),\n/* harmony export */ \"chunk\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.chunk),\n/* harmony export */ \"clone\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.clone),\n/* harmony export */ \"collect\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.collect),\n/* harmony export */ \"compact\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.compact),\n/* harmony export */ \"compose\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.compose),\n/* harmony export */ \"constant\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.constant),\n/* harmony export */ \"contains\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.contains),\n/* harmony export */ \"countBy\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.countBy),\n/* harmony export */ \"create\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.create),\n/* harmony export */ \"debounce\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.debounce),\n/* harmony export */ \"defaults\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.defaults),\n/* harmony export */ \"defer\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.defer),\n/* harmony export */ \"delay\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.delay),\n/* harmony export */ \"detect\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.detect),\n/* harmony export */ \"difference\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.difference),\n/* harmony export */ \"drop\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.drop),\n/* harmony export */ \"each\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.each),\n/* harmony export */ \"escape\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.escape),\n/* harmony export */ \"every\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.every),\n/* harmony export */ \"extend\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.extend),\n/* harmony export */ \"extendOwn\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.extendOwn),\n/* harmony export */ \"filter\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.filter),\n/* harmony export */ \"find\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.find),\n/* harmony export */ \"findIndex\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.findIndex),\n/* harmony export */ \"findKey\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.findKey),\n/* harmony export */ \"findLastIndex\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.findLastIndex),\n/* harmony export */ \"findWhere\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.findWhere),\n/* harmony export */ \"first\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.first),\n/* harmony export */ \"flatten\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.flatten),\n/* harmony export */ \"foldl\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.foldl),\n/* harmony export */ \"foldr\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.foldr),\n/* harmony export */ \"forEach\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.forEach),\n/* harmony export */ \"functions\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.functions),\n/* harmony export */ \"get\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.get),\n/* harmony export */ \"groupBy\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.groupBy),\n/* harmony export */ \"has\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.has),\n/* harmony export */ \"head\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.head),\n/* harmony export */ \"identity\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.identity),\n/* harmony export */ \"include\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.include),\n/* harmony export */ \"includes\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.includes),\n/* harmony export */ \"indexBy\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.indexBy),\n/* harmony export */ \"indexOf\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.indexOf),\n/* harmony export */ \"initial\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.initial),\n/* harmony export */ \"inject\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.inject),\n/* harmony export */ \"intersection\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.intersection),\n/* harmony export */ \"invert\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.invert),\n/* harmony export */ \"invoke\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.invoke),\n/* harmony export */ \"isArguments\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isArguments),\n/* harmony export */ \"isArray\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isArray),\n/* harmony export */ \"isArrayBuffer\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isArrayBuffer),\n/* harmony export */ \"isBoolean\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isBoolean),\n/* harmony export */ \"isDataView\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isDataView),\n/* harmony export */ \"isDate\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isDate),\n/* harmony export */ \"isElement\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isElement),\n/* harmony export */ \"isEmpty\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isEmpty),\n/* harmony export */ \"isEqual\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isEqual),\n/* harmony export */ \"isError\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isError),\n/* harmony export */ \"isFinite\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isFinite),\n/* harmony export */ \"isFunction\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isFunction),\n/* harmony export */ \"isMap\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isMap),\n/* harmony export */ \"isMatch\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isMatch),\n/* harmony export */ \"isNaN\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isNaN),\n/* harmony export */ \"isNull\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isNull),\n/* harmony export */ \"isNumber\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isNumber),\n/* harmony export */ \"isObject\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isObject),\n/* harmony export */ \"isRegExp\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isRegExp),\n/* harmony export */ \"isSet\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isSet),\n/* harmony export */ \"isString\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isString),\n/* harmony export */ \"isSymbol\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isSymbol),\n/* harmony export */ \"isTypedArray\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isTypedArray),\n/* harmony export */ \"isUndefined\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isUndefined),\n/* harmony export */ \"isWeakMap\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isWeakMap),\n/* harmony export */ \"isWeakSet\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isWeakSet),\n/* harmony export */ \"iteratee\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.iteratee),\n/* harmony export */ \"keys\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.keys),\n/* harmony export */ \"last\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.last),\n/* harmony export */ \"lastIndexOf\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.lastIndexOf),\n/* harmony export */ \"map\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.map),\n/* harmony export */ \"mapObject\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.mapObject),\n/* harmony export */ \"matcher\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.matcher),\n/* harmony export */ \"matches\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.matches),\n/* harmony export */ \"max\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.max),\n/* harmony export */ \"memoize\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.memoize),\n/* harmony export */ \"methods\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.methods),\n/* harmony export */ \"min\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.min),\n/* harmony export */ \"mixin\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.mixin),\n/* harmony export */ \"negate\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.negate),\n/* harmony export */ \"noop\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.noop),\n/* harmony export */ \"now\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.now),\n/* harmony export */ \"object\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.object),\n/* harmony export */ \"omit\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.omit),\n/* harmony export */ \"once\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.once),\n/* harmony export */ \"pairs\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.pairs),\n/* harmony export */ \"partial\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.partial),\n/* harmony export */ \"partition\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.partition),\n/* harmony export */ \"pick\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.pick),\n/* harmony export */ \"pluck\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.pluck),\n/* harmony export */ \"property\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.property),\n/* harmony export */ \"propertyOf\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.propertyOf),\n/* harmony export */ \"random\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.random),\n/* harmony export */ \"range\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.range),\n/* harmony export */ \"reduce\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.reduce),\n/* harmony export */ \"reduceRight\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.reduceRight),\n/* harmony export */ \"reject\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.reject),\n/* harmony export */ \"rest\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.rest),\n/* harmony export */ \"restArguments\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.restArguments),\n/* harmony export */ \"result\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.result),\n/* harmony export */ \"sample\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.sample),\n/* harmony export */ \"select\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.select),\n/* harmony export */ \"shuffle\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.shuffle),\n/* harmony export */ \"size\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.size),\n/* harmony export */ \"some\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.some),\n/* harmony export */ \"sortBy\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.sortBy),\n/* harmony export */ \"sortedIndex\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.sortedIndex),\n/* harmony export */ \"tail\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.tail),\n/* harmony export */ \"take\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.take),\n/* harmony export */ \"tap\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.tap),\n/* harmony export */ \"template\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.template),\n/* harmony export */ \"templateSettings\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.templateSettings),\n/* harmony export */ \"throttle\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.throttle),\n/* harmony export */ \"times\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.times),\n/* harmony export */ \"toArray\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.toArray),\n/* harmony export */ \"toPath\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.toPath),\n/* harmony export */ \"transpose\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.transpose),\n/* harmony export */ \"unescape\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.unescape),\n/* harmony export */ \"union\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.union),\n/* harmony export */ \"uniq\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.uniq),\n/* harmony export */ \"unique\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.unique),\n/* harmony export */ \"uniqueId\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.uniqueId),\n/* harmony export */ \"unzip\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.unzip),\n/* harmony export */ \"values\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.values),\n/* harmony export */ \"where\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.where),\n/* harmony export */ \"without\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.without),\n/* harmony export */ \"wrap\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.wrap),\n/* harmony export */ \"zip\": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.zip)\n/* harmony export */ });\n/* harmony import */ var _index_default_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index-default.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/index-default.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/index.js\");\n// ESM Exports\n// ===========\n// This module is the package entry point for ES module users. In other words,\n// it is the module they are interfacing with when they import from the whole\n// package instead of from a submodule, like this:\n//\n// ```js\n// import { map } from 'underscore';\n// ```\n//\n// The difference with `./index-default`, which is the package entry point for\n// CommonJS, AMD and UMD users, is purely technical. In ES modules, named and\n// default exports are considered to be siblings, so when you have a default\n// export, its properties are not automatically available as named exports. For\n// this reason, we re-export the named exports in addition to providing the same\n// default export as in `./index-default`.\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/index-default.js\":\n/*!*****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/index-default.js ***!\n \\*****************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/index.js\");\n// Default Export\n// ==============\n// In this module, we mix our bundled exports into the `_` object and export\n// the result. This is analogous to setting `module.exports = _` in CommonJS.\n// Hence, this module is also the entry point of our UMD bundle and the package\n// entry point for CommonJS and AMD users. In other words, this is (the source\n// of) the module you are interfacing with when you do any of the following:\n//\n// ```js\n// // CommonJS\n// var _ = require('underscore');\n//\n// // AMD\n// define(['underscore'], function(_) {...});\n//\n// // UMD in the browser\n// // _ is available as a global variable\n// ```\n\n\n\n// Add all of the Underscore functions to the wrapper object.\nvar _ = (0,_index_js__WEBPACK_IMPORTED_MODULE_0__.mixin)(_index_js__WEBPACK_IMPORTED_MODULE_0__);\n// Legacy Node.js API.\n_._ = _;\n// Export the Underscore API.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_);\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/index.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/index.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"VERSION\": () => (/* reexport safe */ _setup_js__WEBPACK_IMPORTED_MODULE_0__.VERSION),\n/* harmony export */ \"restArguments\": () => (/* reexport safe */ _restArguments_js__WEBPACK_IMPORTED_MODULE_1__.default),\n/* harmony export */ \"isObject\": () => (/* reexport safe */ _isObject_js__WEBPACK_IMPORTED_MODULE_2__.default),\n/* harmony export */ \"isNull\": () => (/* reexport safe */ _isNull_js__WEBPACK_IMPORTED_MODULE_3__.default),\n/* harmony export */ \"isUndefined\": () => (/* reexport safe */ _isUndefined_js__WEBPACK_IMPORTED_MODULE_4__.default),\n/* harmony export */ \"isBoolean\": () => (/* reexport safe */ _isBoolean_js__WEBPACK_IMPORTED_MODULE_5__.default),\n/* harmony export */ \"isElement\": () => (/* reexport safe */ _isElement_js__WEBPACK_IMPORTED_MODULE_6__.default),\n/* harmony export */ \"isString\": () => (/* reexport safe */ _isString_js__WEBPACK_IMPORTED_MODULE_7__.default),\n/* harmony export */ \"isNumber\": () => (/* reexport safe */ _isNumber_js__WEBPACK_IMPORTED_MODULE_8__.default),\n/* harmony export */ \"isDate\": () => (/* reexport safe */ _isDate_js__WEBPACK_IMPORTED_MODULE_9__.default),\n/* harmony export */ \"isRegExp\": () => (/* reexport safe */ _isRegExp_js__WEBPACK_IMPORTED_MODULE_10__.default),\n/* harmony export */ \"isError\": () => (/* reexport safe */ _isError_js__WEBPACK_IMPORTED_MODULE_11__.default),\n/* harmony export */ \"isSymbol\": () => (/* reexport safe */ _isSymbol_js__WEBPACK_IMPORTED_MODULE_12__.default),\n/* harmony export */ \"isArrayBuffer\": () => (/* reexport safe */ _isArrayBuffer_js__WEBPACK_IMPORTED_MODULE_13__.default),\n/* harmony export */ \"isDataView\": () => (/* reexport safe */ _isDataView_js__WEBPACK_IMPORTED_MODULE_14__.default),\n/* harmony export */ \"isArray\": () => (/* reexport safe */ _isArray_js__WEBPACK_IMPORTED_MODULE_15__.default),\n/* harmony export */ \"isFunction\": () => (/* reexport safe */ _isFunction_js__WEBPACK_IMPORTED_MODULE_16__.default),\n/* harmony export */ \"isArguments\": () => (/* reexport safe */ _isArguments_js__WEBPACK_IMPORTED_MODULE_17__.default),\n/* harmony export */ \"isFinite\": () => (/* reexport safe */ _isFinite_js__WEBPACK_IMPORTED_MODULE_18__.default),\n/* harmony export */ \"isNaN\": () => (/* reexport safe */ _isNaN_js__WEBPACK_IMPORTED_MODULE_19__.default),\n/* harmony export */ \"isTypedArray\": () => (/* reexport safe */ _isTypedArray_js__WEBPACK_IMPORTED_MODULE_20__.default),\n/* harmony export */ \"isEmpty\": () => (/* reexport safe */ _isEmpty_js__WEBPACK_IMPORTED_MODULE_21__.default),\n/* harmony export */ \"isMatch\": () => (/* reexport safe */ _isMatch_js__WEBPACK_IMPORTED_MODULE_22__.default),\n/* harmony export */ \"isEqual\": () => (/* reexport safe */ _isEqual_js__WEBPACK_IMPORTED_MODULE_23__.default),\n/* harmony export */ \"isMap\": () => (/* reexport safe */ _isMap_js__WEBPACK_IMPORTED_MODULE_24__.default),\n/* harmony export */ \"isWeakMap\": () => (/* reexport safe */ _isWeakMap_js__WEBPACK_IMPORTED_MODULE_25__.default),\n/* harmony export */ \"isSet\": () => (/* reexport safe */ _isSet_js__WEBPACK_IMPORTED_MODULE_26__.default),\n/* harmony export */ \"isWeakSet\": () => (/* reexport safe */ _isWeakSet_js__WEBPACK_IMPORTED_MODULE_27__.default),\n/* harmony export */ \"keys\": () => (/* reexport safe */ _keys_js__WEBPACK_IMPORTED_MODULE_28__.default),\n/* harmony export */ \"allKeys\": () => (/* reexport safe */ _allKeys_js__WEBPACK_IMPORTED_MODULE_29__.default),\n/* harmony export */ \"values\": () => (/* reexport safe */ _values_js__WEBPACK_IMPORTED_MODULE_30__.default),\n/* harmony export */ \"pairs\": () => (/* reexport safe */ _pairs_js__WEBPACK_IMPORTED_MODULE_31__.default),\n/* harmony export */ \"invert\": () => (/* reexport safe */ _invert_js__WEBPACK_IMPORTED_MODULE_32__.default),\n/* harmony export */ \"functions\": () => (/* reexport safe */ _functions_js__WEBPACK_IMPORTED_MODULE_33__.default),\n/* harmony export */ \"methods\": () => (/* reexport safe */ _functions_js__WEBPACK_IMPORTED_MODULE_33__.default),\n/* harmony export */ \"extend\": () => (/* reexport safe */ _extend_js__WEBPACK_IMPORTED_MODULE_34__.default),\n/* harmony export */ \"extendOwn\": () => (/* reexport safe */ _extendOwn_js__WEBPACK_IMPORTED_MODULE_35__.default),\n/* harmony export */ \"assign\": () => (/* reexport safe */ _extendOwn_js__WEBPACK_IMPORTED_MODULE_35__.default),\n/* harmony export */ \"defaults\": () => (/* reexport safe */ _defaults_js__WEBPACK_IMPORTED_MODULE_36__.default),\n/* harmony export */ \"create\": () => (/* reexport safe */ _create_js__WEBPACK_IMPORTED_MODULE_37__.default),\n/* harmony export */ \"clone\": () => (/* reexport safe */ _clone_js__WEBPACK_IMPORTED_MODULE_38__.default),\n/* harmony export */ \"tap\": () => (/* reexport safe */ _tap_js__WEBPACK_IMPORTED_MODULE_39__.default),\n/* harmony export */ \"get\": () => (/* reexport safe */ _get_js__WEBPACK_IMPORTED_MODULE_40__.default),\n/* harmony export */ \"has\": () => (/* reexport safe */ _has_js__WEBPACK_IMPORTED_MODULE_41__.default),\n/* harmony export */ \"mapObject\": () => (/* reexport safe */ _mapObject_js__WEBPACK_IMPORTED_MODULE_42__.default),\n/* harmony export */ \"identity\": () => (/* reexport safe */ _identity_js__WEBPACK_IMPORTED_MODULE_43__.default),\n/* harmony export */ \"constant\": () => (/* reexport safe */ _constant_js__WEBPACK_IMPORTED_MODULE_44__.default),\n/* harmony export */ \"noop\": () => (/* reexport safe */ _noop_js__WEBPACK_IMPORTED_MODULE_45__.default),\n/* harmony export */ \"toPath\": () => (/* reexport safe */ _toPath_js__WEBPACK_IMPORTED_MODULE_46__.default),\n/* harmony export */ \"property\": () => (/* reexport safe */ _property_js__WEBPACK_IMPORTED_MODULE_47__.default),\n/* harmony export */ \"propertyOf\": () => (/* reexport safe */ _propertyOf_js__WEBPACK_IMPORTED_MODULE_48__.default),\n/* harmony export */ \"matcher\": () => (/* reexport safe */ _matcher_js__WEBPACK_IMPORTED_MODULE_49__.default),\n/* harmony export */ \"matches\": () => (/* reexport safe */ _matcher_js__WEBPACK_IMPORTED_MODULE_49__.default),\n/* harmony export */ \"times\": () => (/* reexport safe */ _times_js__WEBPACK_IMPORTED_MODULE_50__.default),\n/* harmony export */ \"random\": () => (/* reexport safe */ _random_js__WEBPACK_IMPORTED_MODULE_51__.default),\n/* harmony export */ \"now\": () => (/* reexport safe */ _now_js__WEBPACK_IMPORTED_MODULE_52__.default),\n/* harmony export */ \"escape\": () => (/* reexport safe */ _escape_js__WEBPACK_IMPORTED_MODULE_53__.default),\n/* harmony export */ \"unescape\": () => (/* reexport safe */ _unescape_js__WEBPACK_IMPORTED_MODULE_54__.default),\n/* harmony export */ \"templateSettings\": () => (/* reexport safe */ _templateSettings_js__WEBPACK_IMPORTED_MODULE_55__.default),\n/* harmony export */ \"template\": () => (/* reexport safe */ _template_js__WEBPACK_IMPORTED_MODULE_56__.default),\n/* harmony export */ \"result\": () => (/* reexport safe */ _result_js__WEBPACK_IMPORTED_MODULE_57__.default),\n/* harmony export */ \"uniqueId\": () => (/* reexport safe */ _uniqueId_js__WEBPACK_IMPORTED_MODULE_58__.default),\n/* harmony export */ \"chain\": () => (/* reexport safe */ _chain_js__WEBPACK_IMPORTED_MODULE_59__.default),\n/* harmony export */ \"iteratee\": () => (/* reexport safe */ _iteratee_js__WEBPACK_IMPORTED_MODULE_60__.default),\n/* harmony export */ \"partial\": () => (/* reexport safe */ _partial_js__WEBPACK_IMPORTED_MODULE_61__.default),\n/* harmony export */ \"bind\": () => (/* reexport safe */ _bind_js__WEBPACK_IMPORTED_MODULE_62__.default),\n/* harmony export */ \"bindAll\": () => (/* reexport safe */ _bindAll_js__WEBPACK_IMPORTED_MODULE_63__.default),\n/* harmony export */ \"memoize\": () => (/* reexport safe */ _memoize_js__WEBPACK_IMPORTED_MODULE_64__.default),\n/* harmony export */ \"delay\": () => (/* reexport safe */ _delay_js__WEBPACK_IMPORTED_MODULE_65__.default),\n/* harmony export */ \"defer\": () => (/* reexport safe */ _defer_js__WEBPACK_IMPORTED_MODULE_66__.default),\n/* harmony export */ \"throttle\": () => (/* reexport safe */ _throttle_js__WEBPACK_IMPORTED_MODULE_67__.default),\n/* harmony export */ \"debounce\": () => (/* reexport safe */ _debounce_js__WEBPACK_IMPORTED_MODULE_68__.default),\n/* harmony export */ \"wrap\": () => (/* reexport safe */ _wrap_js__WEBPACK_IMPORTED_MODULE_69__.default),\n/* harmony export */ \"negate\": () => (/* reexport safe */ _negate_js__WEBPACK_IMPORTED_MODULE_70__.default),\n/* harmony export */ \"compose\": () => (/* reexport safe */ _compose_js__WEBPACK_IMPORTED_MODULE_71__.default),\n/* harmony export */ \"after\": () => (/* reexport safe */ _after_js__WEBPACK_IMPORTED_MODULE_72__.default),\n/* harmony export */ \"before\": () => (/* reexport safe */ _before_js__WEBPACK_IMPORTED_MODULE_73__.default),\n/* harmony export */ \"once\": () => (/* reexport safe */ _once_js__WEBPACK_IMPORTED_MODULE_74__.default),\n/* harmony export */ \"findKey\": () => (/* reexport safe */ _findKey_js__WEBPACK_IMPORTED_MODULE_75__.default),\n/* harmony export */ \"findIndex\": () => (/* reexport safe */ _findIndex_js__WEBPACK_IMPORTED_MODULE_76__.default),\n/* harmony export */ \"findLastIndex\": () => (/* reexport safe */ _findLastIndex_js__WEBPACK_IMPORTED_MODULE_77__.default),\n/* harmony export */ \"sortedIndex\": () => (/* reexport safe */ _sortedIndex_js__WEBPACK_IMPORTED_MODULE_78__.default),\n/* harmony export */ \"indexOf\": () => (/* reexport safe */ _indexOf_js__WEBPACK_IMPORTED_MODULE_79__.default),\n/* harmony export */ \"lastIndexOf\": () => (/* reexport safe */ _lastIndexOf_js__WEBPACK_IMPORTED_MODULE_80__.default),\n/* harmony export */ \"find\": () => (/* reexport safe */ _find_js__WEBPACK_IMPORTED_MODULE_81__.default),\n/* harmony export */ \"detect\": () => (/* reexport safe */ _find_js__WEBPACK_IMPORTED_MODULE_81__.default),\n/* harmony export */ \"findWhere\": () => (/* reexport safe */ _findWhere_js__WEBPACK_IMPORTED_MODULE_82__.default),\n/* harmony export */ \"each\": () => (/* reexport safe */ _each_js__WEBPACK_IMPORTED_MODULE_83__.default),\n/* harmony export */ \"forEach\": () => (/* reexport safe */ _each_js__WEBPACK_IMPORTED_MODULE_83__.default),\n/* harmony export */ \"map\": () => (/* reexport safe */ _map_js__WEBPACK_IMPORTED_MODULE_84__.default),\n/* harmony export */ \"collect\": () => (/* reexport safe */ _map_js__WEBPACK_IMPORTED_MODULE_84__.default),\n/* harmony export */ \"reduce\": () => (/* reexport safe */ _reduce_js__WEBPACK_IMPORTED_MODULE_85__.default),\n/* harmony export */ \"foldl\": () => (/* reexport safe */ _reduce_js__WEBPACK_IMPORTED_MODULE_85__.default),\n/* harmony export */ \"inject\": () => (/* reexport safe */ _reduce_js__WEBPACK_IMPORTED_MODULE_85__.default),\n/* harmony export */ \"reduceRight\": () => (/* reexport safe */ _reduceRight_js__WEBPACK_IMPORTED_MODULE_86__.default),\n/* harmony export */ \"foldr\": () => (/* reexport safe */ _reduceRight_js__WEBPACK_IMPORTED_MODULE_86__.default),\n/* harmony export */ \"filter\": () => (/* reexport safe */ _filter_js__WEBPACK_IMPORTED_MODULE_87__.default),\n/* harmony export */ \"select\": () => (/* reexport safe */ _filter_js__WEBPACK_IMPORTED_MODULE_87__.default),\n/* harmony export */ \"reject\": () => (/* reexport safe */ _reject_js__WEBPACK_IMPORTED_MODULE_88__.default),\n/* harmony export */ \"every\": () => (/* reexport safe */ _every_js__WEBPACK_IMPORTED_MODULE_89__.default),\n/* harmony export */ \"all\": () => (/* reexport safe */ _every_js__WEBPACK_IMPORTED_MODULE_89__.default),\n/* harmony export */ \"some\": () => (/* reexport safe */ _some_js__WEBPACK_IMPORTED_MODULE_90__.default),\n/* harmony export */ \"any\": () => (/* reexport safe */ _some_js__WEBPACK_IMPORTED_MODULE_90__.default),\n/* harmony export */ \"contains\": () => (/* reexport safe */ _contains_js__WEBPACK_IMPORTED_MODULE_91__.default),\n/* harmony export */ \"includes\": () => (/* reexport safe */ _contains_js__WEBPACK_IMPORTED_MODULE_91__.default),\n/* harmony export */ \"include\": () => (/* reexport safe */ _contains_js__WEBPACK_IMPORTED_MODULE_91__.default),\n/* harmony export */ \"invoke\": () => (/* reexport safe */ _invoke_js__WEBPACK_IMPORTED_MODULE_92__.default),\n/* harmony export */ \"pluck\": () => (/* reexport safe */ _pluck_js__WEBPACK_IMPORTED_MODULE_93__.default),\n/* harmony export */ \"where\": () => (/* reexport safe */ _where_js__WEBPACK_IMPORTED_MODULE_94__.default),\n/* harmony export */ \"max\": () => (/* reexport safe */ _max_js__WEBPACK_IMPORTED_MODULE_95__.default),\n/* harmony export */ \"min\": () => (/* reexport safe */ _min_js__WEBPACK_IMPORTED_MODULE_96__.default),\n/* harmony export */ \"shuffle\": () => (/* reexport safe */ _shuffle_js__WEBPACK_IMPORTED_MODULE_97__.default),\n/* harmony export */ \"sample\": () => (/* reexport safe */ _sample_js__WEBPACK_IMPORTED_MODULE_98__.default),\n/* harmony export */ \"sortBy\": () => (/* reexport safe */ _sortBy_js__WEBPACK_IMPORTED_MODULE_99__.default),\n/* harmony export */ \"groupBy\": () => (/* reexport safe */ _groupBy_js__WEBPACK_IMPORTED_MODULE_100__.default),\n/* harmony export */ \"indexBy\": () => (/* reexport safe */ _indexBy_js__WEBPACK_IMPORTED_MODULE_101__.default),\n/* harmony export */ \"countBy\": () => (/* reexport safe */ _countBy_js__WEBPACK_IMPORTED_MODULE_102__.default),\n/* harmony export */ \"partition\": () => (/* reexport safe */ _partition_js__WEBPACK_IMPORTED_MODULE_103__.default),\n/* harmony export */ \"toArray\": () => (/* reexport safe */ _toArray_js__WEBPACK_IMPORTED_MODULE_104__.default),\n/* harmony export */ \"size\": () => (/* reexport safe */ _size_js__WEBPACK_IMPORTED_MODULE_105__.default),\n/* harmony export */ \"pick\": () => (/* reexport safe */ _pick_js__WEBPACK_IMPORTED_MODULE_106__.default),\n/* harmony export */ \"omit\": () => (/* reexport safe */ _omit_js__WEBPACK_IMPORTED_MODULE_107__.default),\n/* harmony export */ \"first\": () => (/* reexport safe */ _first_js__WEBPACK_IMPORTED_MODULE_108__.default),\n/* harmony export */ \"head\": () => (/* reexport safe */ _first_js__WEBPACK_IMPORTED_MODULE_108__.default),\n/* harmony export */ \"take\": () => (/* reexport safe */ _first_js__WEBPACK_IMPORTED_MODULE_108__.default),\n/* harmony export */ \"initial\": () => (/* reexport safe */ _initial_js__WEBPACK_IMPORTED_MODULE_109__.default),\n/* harmony export */ \"last\": () => (/* reexport safe */ _last_js__WEBPACK_IMPORTED_MODULE_110__.default),\n/* harmony export */ \"rest\": () => (/* reexport safe */ _rest_js__WEBPACK_IMPORTED_MODULE_111__.default),\n/* harmony export */ \"tail\": () => (/* reexport safe */ _rest_js__WEBPACK_IMPORTED_MODULE_111__.default),\n/* harmony export */ \"drop\": () => (/* reexport safe */ _rest_js__WEBPACK_IMPORTED_MODULE_111__.default),\n/* harmony export */ \"compact\": () => (/* reexport safe */ _compact_js__WEBPACK_IMPORTED_MODULE_112__.default),\n/* harmony export */ \"flatten\": () => (/* reexport safe */ _flatten_js__WEBPACK_IMPORTED_MODULE_113__.default),\n/* harmony export */ \"without\": () => (/* reexport safe */ _without_js__WEBPACK_IMPORTED_MODULE_114__.default),\n/* harmony export */ \"uniq\": () => (/* reexport safe */ _uniq_js__WEBPACK_IMPORTED_MODULE_115__.default),\n/* harmony export */ \"unique\": () => (/* reexport safe */ _uniq_js__WEBPACK_IMPORTED_MODULE_115__.default),\n/* harmony export */ \"union\": () => (/* reexport safe */ _union_js__WEBPACK_IMPORTED_MODULE_116__.default),\n/* harmony export */ \"intersection\": () => (/* reexport safe */ _intersection_js__WEBPACK_IMPORTED_MODULE_117__.default),\n/* harmony export */ \"difference\": () => (/* reexport safe */ _difference_js__WEBPACK_IMPORTED_MODULE_118__.default),\n/* harmony export */ \"unzip\": () => (/* reexport safe */ _unzip_js__WEBPACK_IMPORTED_MODULE_119__.default),\n/* harmony export */ \"transpose\": () => (/* reexport safe */ _unzip_js__WEBPACK_IMPORTED_MODULE_119__.default),\n/* harmony export */ \"zip\": () => (/* reexport safe */ _zip_js__WEBPACK_IMPORTED_MODULE_120__.default),\n/* harmony export */ \"object\": () => (/* reexport safe */ _object_js__WEBPACK_IMPORTED_MODULE_121__.default),\n/* harmony export */ \"range\": () => (/* reexport safe */ _range_js__WEBPACK_IMPORTED_MODULE_122__.default),\n/* harmony export */ \"chunk\": () => (/* reexport safe */ _chunk_js__WEBPACK_IMPORTED_MODULE_123__.default),\n/* harmony export */ \"mixin\": () => (/* reexport safe */ _mixin_js__WEBPACK_IMPORTED_MODULE_124__.default),\n/* harmony export */ \"default\": () => (/* reexport safe */ _underscore_array_methods_js__WEBPACK_IMPORTED_MODULE_125__.default)\n/* harmony export */ });\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./restArguments.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js\");\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isObject.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isObject.js\");\n/* harmony import */ var _isNull_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isNull.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isNull.js\");\n/* harmony import */ var _isUndefined_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./isUndefined.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isUndefined.js\");\n/* harmony import */ var _isBoolean_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isBoolean.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isBoolean.js\");\n/* harmony import */ var _isElement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isElement.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isElement.js\");\n/* harmony import */ var _isString_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./isString.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isString.js\");\n/* harmony import */ var _isNumber_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./isNumber.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isNumber.js\");\n/* harmony import */ var _isDate_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./isDate.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isDate.js\");\n/* harmony import */ var _isRegExp_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./isRegExp.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isRegExp.js\");\n/* harmony import */ var _isError_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./isError.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isError.js\");\n/* harmony import */ var _isSymbol_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./isSymbol.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isSymbol.js\");\n/* harmony import */ var _isArrayBuffer_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./isArrayBuffer.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isArrayBuffer.js\");\n/* harmony import */ var _isDataView_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./isDataView.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isDataView.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./isArray.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isArray.js\");\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./isFunction.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js\");\n/* harmony import */ var _isArguments_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./isArguments.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isArguments.js\");\n/* harmony import */ var _isFinite_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./isFinite.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isFinite.js\");\n/* harmony import */ var _isNaN_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./isNaN.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isNaN.js\");\n/* harmony import */ var _isTypedArray_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./isTypedArray.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isTypedArray.js\");\n/* harmony import */ var _isEmpty_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./isEmpty.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isEmpty.js\");\n/* harmony import */ var _isMatch_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./isMatch.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isMatch.js\");\n/* harmony import */ var _isEqual_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./isEqual.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isEqual.js\");\n/* harmony import */ var _isMap_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./isMap.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isMap.js\");\n/* harmony import */ var _isWeakMap_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./isWeakMap.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isWeakMap.js\");\n/* harmony import */ var _isSet_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./isSet.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isSet.js\");\n/* harmony import */ var _isWeakSet_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./isWeakSet.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isWeakSet.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./keys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/keys.js\");\n/* harmony import */ var _allKeys_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./allKeys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js\");\n/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./values.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/values.js\");\n/* harmony import */ var _pairs_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./pairs.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/pairs.js\");\n/* harmony import */ var _invert_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./invert.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/invert.js\");\n/* harmony import */ var _functions_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./functions.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/functions.js\");\n/* harmony import */ var _extend_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./extend.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/extend.js\");\n/* harmony import */ var _extendOwn_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./extendOwn.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/extendOwn.js\");\n/* harmony import */ var _defaults_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./defaults.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/defaults.js\");\n/* harmony import */ var _create_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./create.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/create.js\");\n/* harmony import */ var _clone_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./clone.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/clone.js\");\n/* harmony import */ var _tap_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./tap.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/tap.js\");\n/* harmony import */ var _get_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./get.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/get.js\");\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./has.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/has.js\");\n/* harmony import */ var _mapObject_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./mapObject.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/mapObject.js\");\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./identity.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/identity.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./constant.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/constant.js\");\n/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./noop.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/noop.js\");\n/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./toPath.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/toPath.js\");\n/* harmony import */ var _property_js__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./property.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/property.js\");\n/* harmony import */ var _propertyOf_js__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./propertyOf.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/propertyOf.js\");\n/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./matcher.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/matcher.js\");\n/* harmony import */ var _times_js__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./times.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/times.js\");\n/* harmony import */ var _random_js__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./random.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/random.js\");\n/* harmony import */ var _now_js__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./now.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/now.js\");\n/* harmony import */ var _escape_js__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./escape.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/escape.js\");\n/* harmony import */ var _unescape_js__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./unescape.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/unescape.js\");\n/* harmony import */ var _templateSettings_js__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./templateSettings.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/templateSettings.js\");\n/* harmony import */ var _template_js__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./template.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/template.js\");\n/* harmony import */ var _result_js__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./result.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/result.js\");\n/* harmony import */ var _uniqueId_js__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./uniqueId.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/uniqueId.js\");\n/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./chain.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/chain.js\");\n/* harmony import */ var _iteratee_js__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./iteratee.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/iteratee.js\");\n/* harmony import */ var _partial_js__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./partial.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/partial.js\");\n/* harmony import */ var _bind_js__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./bind.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/bind.js\");\n/* harmony import */ var _bindAll_js__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./bindAll.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/bindAll.js\");\n/* harmony import */ var _memoize_js__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./memoize.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/memoize.js\");\n/* harmony import */ var _delay_js__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./delay.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/delay.js\");\n/* harmony import */ var _defer_js__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./defer.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/defer.js\");\n/* harmony import */ var _throttle_js__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./throttle.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/throttle.js\");\n/* harmony import */ var _debounce_js__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./debounce.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/debounce.js\");\n/* harmony import */ var _wrap_js__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./wrap.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/wrap.js\");\n/* harmony import */ var _negate_js__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./negate.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/negate.js\");\n/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./compose.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/compose.js\");\n/* harmony import */ var _after_js__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./after.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/after.js\");\n/* harmony import */ var _before_js__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./before.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/before.js\");\n/* harmony import */ var _once_js__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./once.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/once.js\");\n/* harmony import */ var _findKey_js__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./findKey.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/findKey.js\");\n/* harmony import */ var _findIndex_js__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./findIndex.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/findIndex.js\");\n/* harmony import */ var _findLastIndex_js__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./findLastIndex.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/findLastIndex.js\");\n/* harmony import */ var _sortedIndex_js__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./sortedIndex.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/sortedIndex.js\");\n/* harmony import */ var _indexOf_js__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./indexOf.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/indexOf.js\");\n/* harmony import */ var _lastIndexOf_js__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./lastIndexOf.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/lastIndexOf.js\");\n/* harmony import */ var _find_js__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./find.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/find.js\");\n/* harmony import */ var _findWhere_js__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./findWhere.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/findWhere.js\");\n/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./each.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/each.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./map.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/map.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./reduce.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/reduce.js\");\n/* harmony import */ var _reduceRight_js__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./reduceRight.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/reduceRight.js\");\n/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./filter.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/filter.js\");\n/* harmony import */ var _reject_js__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./reject.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/reject.js\");\n/* harmony import */ var _every_js__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./every.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/every.js\");\n/* harmony import */ var _some_js__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./some.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/some.js\");\n/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./contains.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/contains.js\");\n/* harmony import */ var _invoke_js__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./invoke.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/invoke.js\");\n/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./pluck.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/pluck.js\");\n/* harmony import */ var _where_js__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./where.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/where.js\");\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./max.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/max.js\");\n/* harmony import */ var _min_js__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./min.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/min.js\");\n/* harmony import */ var _shuffle_js__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./shuffle.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/shuffle.js\");\n/* harmony import */ var _sample_js__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./sample.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/sample.js\");\n/* harmony import */ var _sortBy_js__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./sortBy.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/sortBy.js\");\n/* harmony import */ var _groupBy_js__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./groupBy.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/groupBy.js\");\n/* harmony import */ var _indexBy_js__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./indexBy.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/indexBy.js\");\n/* harmony import */ var _countBy_js__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./countBy.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/countBy.js\");\n/* harmony import */ var _partition_js__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./partition.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/partition.js\");\n/* harmony import */ var _toArray_js__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./toArray.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/toArray.js\");\n/* harmony import */ var _size_js__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./size.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/size.js\");\n/* harmony import */ var _pick_js__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./pick.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/pick.js\");\n/* harmony import */ var _omit_js__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./omit.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/omit.js\");\n/* harmony import */ var _first_js__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./first.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/first.js\");\n/* harmony import */ var _initial_js__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./initial.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/initial.js\");\n/* harmony import */ var _last_js__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./last.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/last.js\");\n/* harmony import */ var _rest_js__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./rest.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/rest.js\");\n/* harmony import */ var _compact_js__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./compact.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/compact.js\");\n/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./flatten.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/flatten.js\");\n/* harmony import */ var _without_js__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./without.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/without.js\");\n/* harmony import */ var _uniq_js__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./uniq.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/uniq.js\");\n/* harmony import */ var _union_js__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./union.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/union.js\");\n/* harmony import */ var _intersection_js__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./intersection.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/intersection.js\");\n/* harmony import */ var _difference_js__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./difference.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/difference.js\");\n/* harmony import */ var _unzip_js__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./unzip.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/unzip.js\");\n/* harmony import */ var _zip_js__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./zip.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/zip.js\");\n/* harmony import */ var _object_js__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./object.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/object.js\");\n/* harmony import */ var _range_js__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./range.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/range.js\");\n/* harmony import */ var _chunk_js__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./chunk.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/chunk.js\");\n/* harmony import */ var _mixin_js__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./mixin.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/mixin.js\");\n/* harmony import */ var _underscore_array_methods_js__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./underscore-array-methods.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/underscore-array-methods.js\");\n// Named Exports\n// =============\n\n// Underscore.js 1.13.6\n// https://underscorejs.org\n// (c) 2009-2022 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n// Baseline setup.\n\n\n\n// Object Functions\n// ----------------\n// Our most fundamental functions operate on any JavaScript object.\n// Most functions in Underscore depend on at least one function in this section.\n\n// A group of functions that check the types of core JavaScript values.\n// These are often informally referred to as the \"isType\" functions.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Functions that treat an object as a dictionary of key-value pairs.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Utility Functions\n// -----------------\n// A bit of a grab bag: Predicate-generating functions for use with filters and\n// loops, string escaping and templating, create random numbers and unique ids,\n// and functions that facilitate Underscore's chaining and iteration conventions.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Function (ahem) Functions\n// -------------------------\n// These functions take a function as an argument and return a new function\n// as the result. Also known as higher-order functions.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Finders\n// -------\n// Functions that extract (the position of) a single element from an object\n// or array based on some criterion.\n\n\n\n\n\n\n\n\n\n// Collection Functions\n// --------------------\n// Functions that work on any collection of elements: either an array, or\n// an object of key-value pairs.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// `_.pick` and `_.omit` are actually object functions, but we put\n// them here in order to create a more natural reading order in the\n// monolithic build as they depend on `_.contains`.\n\n\n\n// Array Functions\n// ---------------\n// Functions that operate on arrays (and array-likes) only, because they’re\n// expressed in terms of operations on an ordered list of values.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// OOP\n// ---\n// These modules support the \"object-oriented\" calling style. See also\n// `underscore.js` and `index-default.js`.\n\n\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/indexBy.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/indexBy.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _group_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_group.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_group.js\");\n\n\n// Indexes the object's values by a criterion, similar to `_.groupBy`, but for\n// when you know that your index values will be unique.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_group_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(result, value, key) {\n result[key] = value;\n}));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/indexOf.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/indexOf.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _sortedIndex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sortedIndex.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/sortedIndex.js\");\n/* harmony import */ var _findIndex_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./findIndex.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/findIndex.js\");\n/* harmony import */ var _createIndexFinder_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_createIndexFinder.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_createIndexFinder.js\");\n\n\n\n\n// Return the position of the first occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n// If the array is large and already in sort order, pass `true`\n// for **isSorted** to use binary search.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createIndexFinder_js__WEBPACK_IMPORTED_MODULE_2__.default)(1, _findIndex_js__WEBPACK_IMPORTED_MODULE_1__.default, _sortedIndex_js__WEBPACK_IMPORTED_MODULE_0__.default));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/initial.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/initial.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ initial)\n/* harmony export */ });\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n\n\n// Returns everything but the last entry of the array. Especially useful on\n// the arguments object. Passing **n** will return all the values in\n// the array, excluding the last N.\nfunction initial(array, n, guard) {\n return _setup_js__WEBPACK_IMPORTED_MODULE_0__.slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/intersection.js\":\n/*!****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/intersection.js ***!\n \\****************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ intersection)\n/* harmony export */ });\n/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getLength.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js\");\n/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./contains.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/contains.js\");\n\n\n\n// Produce an array that contains every item shared between all the\n// passed-in arrays.\nfunction intersection(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(array); i < length; i++) {\n var item = array[i];\n if ((0,_contains_js__WEBPACK_IMPORTED_MODULE_1__.default)(result, item)) continue;\n var j;\n for (j = 1; j < argsLength; j++) {\n if (!(0,_contains_js__WEBPACK_IMPORTED_MODULE_1__.default)(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/invert.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/invert.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ invert)\n/* harmony export */ });\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./keys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/keys.js\");\n\n\n// Invert the keys and values of an object. The values must be serializable.\nfunction invert(obj) {\n var result = {};\n var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj);\n for (var i = 0, length = _keys.length; i < length; i++) {\n result[obj[_keys[i]]] = _keys[i];\n }\n return result;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/invoke.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/invoke.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js\");\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/map.js\");\n/* harmony import */ var _deepGet_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_deepGet.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_deepGet.js\");\n/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_toPath.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js\");\n\n\n\n\n\n\n// Invoke a method (with arguments) on every item in a collection.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(obj, path, args) {\n var contextPath, func;\n if ((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(path)) {\n func = path;\n } else {\n path = (0,_toPath_js__WEBPACK_IMPORTED_MODULE_4__.default)(path);\n contextPath = path.slice(0, -1);\n path = path[path.length - 1];\n }\n return (0,_map_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj, function(context) {\n var method = func;\n if (!method) {\n if (contextPath && contextPath.length) {\n context = (0,_deepGet_js__WEBPACK_IMPORTED_MODULE_3__.default)(context, contextPath);\n }\n if (context == null) return void 0;\n method = context[path];\n }\n return method == null ? method : method.apply(context, args);\n });\n}));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isArguments.js\":\n/*!***************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isArguments.js ***!\n \\***************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js\");\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_has.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_has.js\");\n\n\n\nvar isArguments = (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Arguments');\n\n// Define a fallback version of the method in browsers (ahem, IE < 9), where\n// there isn't any inspectable \"Arguments\" type.\n(function() {\n if (!isArguments(arguments)) {\n isArguments = function(obj) {\n return (0,_has_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj, 'callee');\n };\n }\n}());\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isArguments);\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isArray.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isArray.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_tagTester.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js\");\n\n\n\n// Is a given value an array?\n// Delegates to ECMA5's native `Array.isArray`.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_setup_js__WEBPACK_IMPORTED_MODULE_0__.nativeIsArray || (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_1__.default)('Array'));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isArrayBuffer.js\":\n/*!*****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isArrayBuffer.js ***!\n \\*****************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('ArrayBuffer'));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isBoolean.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isBoolean.js ***!\n \\*************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isBoolean)\n/* harmony export */ });\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n\n\n// Is a given value a boolean?\nfunction isBoolean(obj) {\n return obj === true || obj === false || _setup_js__WEBPACK_IMPORTED_MODULE_0__.toString.call(obj) === '[object Boolean]';\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isDataView.js\":\n/*!**************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isDataView.js ***!\n \\**************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js\");\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js\");\n/* harmony import */ var _isArrayBuffer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isArrayBuffer.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isArrayBuffer.js\");\n/* harmony import */ var _stringTagBug_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_stringTagBug.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js\");\n\n\n\n\n\nvar isDataView = (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('DataView');\n\n// In IE 10 - Edge 13, we need a different heuristic\n// to determine whether an object is a `DataView`.\nfunction ie10IsDataView(obj) {\n return obj != null && (0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj.getInt8) && (0,_isArrayBuffer_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj.buffer);\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_stringTagBug_js__WEBPACK_IMPORTED_MODULE_3__.hasStringTagBug ? ie10IsDataView : isDataView);\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isDate.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isDate.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Date'));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isElement.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isElement.js ***!\n \\*************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isElement)\n/* harmony export */ });\n// Is a given value a DOM element?\nfunction isElement(obj) {\n return !!(obj && obj.nodeType === 1);\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isEmpty.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isEmpty.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isEmpty)\n/* harmony export */ });\n/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getLength.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isArray.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isArray.js\");\n/* harmony import */ var _isString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isString.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isString.js\");\n/* harmony import */ var _isArguments_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isArguments.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isArguments.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./keys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/keys.js\");\n\n\n\n\n\n\n// Is a given array, string, or object empty?\n// An \"empty\" object has no enumerable own-properties.\nfunction isEmpty(obj) {\n if (obj == null) return true;\n // Skip the more expensive `toString`-based type checks if `obj` has no\n // `.length`.\n var length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj);\n if (typeof length == 'number' && (\n (0,_isArray_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) || (0,_isString_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj) || (0,_isArguments_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj)\n )) return length === 0;\n return (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)((0,_keys_js__WEBPACK_IMPORTED_MODULE_4__.default)(obj)) === 0;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isEqual.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isEqual.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isEqual)\n/* harmony export */ });\n/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/underscore.js\");\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n/* harmony import */ var _getByteLength_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getByteLength.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_getByteLength.js\");\n/* harmony import */ var _isTypedArray_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isTypedArray.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isTypedArray.js\");\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./isFunction.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js\");\n/* harmony import */ var _stringTagBug_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_stringTagBug.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js\");\n/* harmony import */ var _isDataView_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isDataView.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isDataView.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./keys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/keys.js\");\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./_has.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_has.js\");\n/* harmony import */ var _toBufferView_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./_toBufferView.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_toBufferView.js\");\n\n\n\n\n\n\n\n\n\n\n\n// We use this string twice, so give it a name for minification.\nvar tagDataView = '[object DataView]';\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction eq(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) return b !== b;\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n return deepEq(a, b, aStack, bStack);\n}\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction deepEq(a, b, aStack, bStack) {\n // Unwrap any wrapped objects.\n if (a instanceof _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default) a = a._wrapped;\n if (b instanceof _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = _setup_js__WEBPACK_IMPORTED_MODULE_1__.toString.call(a);\n if (className !== _setup_js__WEBPACK_IMPORTED_MODULE_1__.toString.call(b)) return false;\n // Work around a bug in IE 10 - Edge 13.\n if (_stringTagBug_js__WEBPACK_IMPORTED_MODULE_5__.hasStringTagBug && className == '[object Object]' && (0,_isDataView_js__WEBPACK_IMPORTED_MODULE_6__.default)(a)) {\n if (!(0,_isDataView_js__WEBPACK_IMPORTED_MODULE_6__.default)(b)) return false;\n className = tagDataView;\n }\n switch (className) {\n // These types are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case '[object Symbol]':\n return _setup_js__WEBPACK_IMPORTED_MODULE_1__.SymbolProto.valueOf.call(a) === _setup_js__WEBPACK_IMPORTED_MODULE_1__.SymbolProto.valueOf.call(b);\n case '[object ArrayBuffer]':\n case tagDataView:\n // Coerce to typed array so we can fall through.\n return deepEq((0,_toBufferView_js__WEBPACK_IMPORTED_MODULE_9__.default)(a), (0,_toBufferView_js__WEBPACK_IMPORTED_MODULE_9__.default)(b), aStack, bStack);\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays && (0,_isTypedArray_js__WEBPACK_IMPORTED_MODULE_3__.default)(a)) {\n var byteLength = (0,_getByteLength_js__WEBPACK_IMPORTED_MODULE_2__.default)(a);\n if (byteLength !== (0,_getByteLength_js__WEBPACK_IMPORTED_MODULE_2__.default)(b)) return false;\n if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true;\n areArrays = true;\n }\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_4__.default)(aCtor) && aCtor instanceof aCtor &&\n (0,_isFunction_js__WEBPACK_IMPORTED_MODULE_4__.default)(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_7__.default)(a), key;\n length = _keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if ((0,_keys_js__WEBPACK_IMPORTED_MODULE_7__.default)(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = _keys[length];\n if (!((0,_has_js__WEBPACK_IMPORTED_MODULE_8__.default)(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\n\n// Perform a deep comparison to check if two objects are equal.\nfunction isEqual(a, b) {\n return eq(a, b);\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isError.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isError.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Error'));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isFinite.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isFinite.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isFinite)\n/* harmony export */ });\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n/* harmony import */ var _isSymbol_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isSymbol.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isSymbol.js\");\n\n\n\n// Is a given object a finite number?\nfunction isFinite(obj) {\n return !(0,_isSymbol_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) && (0,_setup_js__WEBPACK_IMPORTED_MODULE_0__._isFinite)(obj) && !isNaN(parseFloat(obj));\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js\":\n/*!**************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js ***!\n \\**************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js\");\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n\n\n\nvar isFunction = (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Function');\n\n// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old\n// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = _setup_js__WEBPACK_IMPORTED_MODULE_1__.root.document && _setup_js__WEBPACK_IMPORTED_MODULE_1__.root.document.childNodes;\nif ( true && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isFunction);\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isMap.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isMap.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js\");\n/* harmony import */ var _stringTagBug_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_stringTagBug.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js\");\n/* harmony import */ var _methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_methodFingerprint.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_methodFingerprint.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_stringTagBug_js__WEBPACK_IMPORTED_MODULE_1__.isIE11 ? (0,_methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__.ie11fingerprint)(_methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__.mapMethods) : (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Map'));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isMatch.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isMatch.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isMatch)\n/* harmony export */ });\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./keys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/keys.js\");\n\n\n// Returns whether an object has a given set of `key:value` pairs.\nfunction isMatch(object, attrs) {\n var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_0__.default)(attrs), length = _keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = _keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isNaN.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isNaN.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isNaN)\n/* harmony export */ });\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n/* harmony import */ var _isNumber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isNumber.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isNumber.js\");\n\n\n\n// Is the given value `NaN`?\nfunction isNaN(obj) {\n return (0,_isNumber_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) && (0,_setup_js__WEBPACK_IMPORTED_MODULE_0__._isNaN)(obj);\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isNull.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isNull.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isNull)\n/* harmony export */ });\n// Is a given value equal to null?\nfunction isNull(obj) {\n return obj === null;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isNumber.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isNumber.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Number'));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isObject.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isObject.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isObject)\n/* harmony export */ });\n// Is a given variable an object?\nfunction isObject(obj) {\n var type = typeof obj;\n return type === 'function' || (type === 'object' && !!obj);\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isRegExp.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isRegExp.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('RegExp'));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isSet.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isSet.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js\");\n/* harmony import */ var _stringTagBug_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_stringTagBug.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js\");\n/* harmony import */ var _methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_methodFingerprint.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_methodFingerprint.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_stringTagBug_js__WEBPACK_IMPORTED_MODULE_1__.isIE11 ? (0,_methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__.ie11fingerprint)(_methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__.setMethods) : (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Set'));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isString.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isString.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('String'));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isSymbol.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isSymbol.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Symbol'));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isTypedArray.js\":\n/*!****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isTypedArray.js ***!\n \\****************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n/* harmony import */ var _isDataView_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isDataView.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isDataView.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constant.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/constant.js\");\n/* harmony import */ var _isBufferLike_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_isBufferLike.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_isBufferLike.js\");\n\n\n\n\n\n// Is a given value a typed array?\nvar typedArrayPattern = /\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;\nfunction isTypedArray(obj) {\n // `ArrayBuffer.isView` is the most future-proof, so use it when available.\n // Otherwise, fall back on the above regular expression.\n return _setup_js__WEBPACK_IMPORTED_MODULE_0__.nativeIsView ? ((0,_setup_js__WEBPACK_IMPORTED_MODULE_0__.nativeIsView)(obj) && !(0,_isDataView_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj)) :\n (0,_isBufferLike_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj) && typedArrayPattern.test(_setup_js__WEBPACK_IMPORTED_MODULE_0__.toString.call(obj));\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_setup_js__WEBPACK_IMPORTED_MODULE_0__.supportsArrayBuffer ? isTypedArray : (0,_constant_js__WEBPACK_IMPORTED_MODULE_2__.default)(false));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isUndefined.js\":\n/*!***************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isUndefined.js ***!\n \\***************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isUndefined)\n/* harmony export */ });\n// Is a given variable undefined?\nfunction isUndefined(obj) {\n return obj === void 0;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isWeakMap.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isWeakMap.js ***!\n \\*************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js\");\n/* harmony import */ var _stringTagBug_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_stringTagBug.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js\");\n/* harmony import */ var _methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_methodFingerprint.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_methodFingerprint.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_stringTagBug_js__WEBPACK_IMPORTED_MODULE_1__.isIE11 ? (0,_methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__.ie11fingerprint)(_methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__.weakMapMethods) : (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('WeakMap'));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/isWeakSet.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/isWeakSet.js ***!\n \\*************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('WeakSet'));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/iteratee.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/iteratee.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ iteratee)\n/* harmony export */ });\n/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/underscore.js\");\n/* harmony import */ var _baseIteratee_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseIteratee.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_baseIteratee.js\");\n\n\n\n// External wrapper for our callback generator. Users may customize\n// `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n// This abstraction hides the internal-only `argCount` argument.\nfunction iteratee(value, context) {\n return (0,_baseIteratee_js__WEBPACK_IMPORTED_MODULE_1__.default)(value, context, Infinity);\n}\n_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.iteratee = iteratee;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/keys.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/keys.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ keys)\n/* harmony export */ });\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isObject.js\");\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_has.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_has.js\");\n/* harmony import */ var _collectNonEnumProps_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_collectNonEnumProps.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_collectNonEnumProps.js\");\n\n\n\n\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nfunction keys(obj) {\n if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj)) return [];\n if (_setup_js__WEBPACK_IMPORTED_MODULE_1__.nativeKeys) return (0,_setup_js__WEBPACK_IMPORTED_MODULE_1__.nativeKeys)(obj);\n var keys = [];\n for (var key in obj) if ((0,_has_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (_setup_js__WEBPACK_IMPORTED_MODULE_1__.hasEnumBug) (0,_collectNonEnumProps_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj, keys);\n return keys;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/last.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/last.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ last)\n/* harmony export */ });\n/* harmony import */ var _rest_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rest.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/rest.js\");\n\n\n// Get the last element of an array. Passing **n** will return the last N\n// values in the array.\nfunction last(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[array.length - 1];\n return (0,_rest_js__WEBPACK_IMPORTED_MODULE_0__.default)(array, Math.max(0, array.length - n));\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/lastIndexOf.js\":\n/*!***************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/lastIndexOf.js ***!\n \\***************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _findLastIndex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./findLastIndex.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/findLastIndex.js\");\n/* harmony import */ var _createIndexFinder_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_createIndexFinder.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_createIndexFinder.js\");\n\n\n\n// Return the position of the last occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createIndexFinder_js__WEBPACK_IMPORTED_MODULE_1__.default)(-1, _findLastIndex_js__WEBPACK_IMPORTED_MODULE_0__.default));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/map.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/map.js ***!\n \\*******************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ map)\n/* harmony export */ });\n/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_cb.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/keys.js\");\n\n\n\n\n// Return the results of applying the iteratee to each element.\nfunction map(obj, iteratee, context) {\n iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context);\n var _keys = !(0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) && (0,_keys_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj),\n length = (_keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/mapObject.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/mapObject.js ***!\n \\*************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ mapObject)\n/* harmony export */ });\n/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_cb.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/keys.js\");\n\n\n\n// Returns the results of applying the `iteratee` to each element of `obj`.\n// In contrast to `_.map` it returns an object.\nfunction mapObject(obj, iteratee, context) {\n iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context);\n var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj),\n length = _keys.length,\n results = {};\n for (var index = 0; index < length; index++) {\n var currentKey = _keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/matcher.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/matcher.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ matcher)\n/* harmony export */ });\n/* harmony import */ var _extendOwn_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./extendOwn.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/extendOwn.js\");\n/* harmony import */ var _isMatch_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isMatch.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isMatch.js\");\n\n\n\n// Returns a predicate for checking whether an object has a given set of\n// `key:value` pairs.\nfunction matcher(attrs) {\n attrs = (0,_extendOwn_js__WEBPACK_IMPORTED_MODULE_0__.default)({}, attrs);\n return function(obj) {\n return (0,_isMatch_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj, attrs);\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/max.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/max.js ***!\n \\*******************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ max)\n/* harmony export */ });\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js\");\n/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./values.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/values.js\");\n/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_cb.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_cb.js\");\n/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./each.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/each.js\");\n\n\n\n\n\n// Return the maximum element (or element-based computation).\nfunction max(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) {\n obj = (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj) ? obj : (0,_values_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_2__.default)(iteratee, context);\n (0,_each_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || (computed === -Infinity && result === -Infinity)) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/memoize.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/memoize.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ memoize)\n/* harmony export */ });\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_has.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_has.js\");\n\n\n// Memoize an expensive function by storing its results.\nfunction memoize(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!(0,_has_js__WEBPACK_IMPORTED_MODULE_0__.default)(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/min.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/min.js ***!\n \\*******************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ min)\n/* harmony export */ });\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js\");\n/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./values.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/values.js\");\n/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_cb.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_cb.js\");\n/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./each.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/each.js\");\n\n\n\n\n\n// Return the minimum element (or element-based computation).\nfunction min(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) {\n obj = (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj) ? obj : (0,_values_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value < result) {\n result = value;\n }\n }\n } else {\n iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_2__.default)(iteratee, context);\n (0,_each_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed < lastComputed || (computed === Infinity && result === Infinity)) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/mixin.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/mixin.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ mixin)\n/* harmony export */ });\n/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/underscore.js\");\n/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./each.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/each.js\");\n/* harmony import */ var _functions_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./functions.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/functions.js\");\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n/* harmony import */ var _chainResult_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_chainResult.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_chainResult.js\");\n\n\n\n\n\n\n// Add your own custom functions to the Underscore object.\nfunction mixin(obj) {\n (0,_each_js__WEBPACK_IMPORTED_MODULE_1__.default)((0,_functions_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj), function(name) {\n var func = _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default[name] = obj[name];\n _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.prototype[name] = function() {\n var args = [this._wrapped];\n _setup_js__WEBPACK_IMPORTED_MODULE_3__.push.apply(args, arguments);\n return (0,_chainResult_js__WEBPACK_IMPORTED_MODULE_4__.default)(this, func.apply(_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default, args));\n };\n });\n return _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/negate.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/negate.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ negate)\n/* harmony export */ });\n// Returns a negated version of the passed-in predicate.\nfunction negate(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/noop.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/noop.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ noop)\n/* harmony export */ });\n// Predicate-generating function. Often useful outside of Underscore.\nfunction noop(){}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/now.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/now.js ***!\n \\*******************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n// A (possibly faster) way to get the current timestamp as an integer.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Date.now || function() {\n return new Date().getTime();\n});\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/object.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/object.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ object)\n/* harmony export */ });\n/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getLength.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js\");\n\n\n// Converts lists into objects. Pass either a single array of `[key, value]`\n// pairs, or two parallel arrays of the same length -- one of keys, and one of\n// the corresponding values. Passing by pairs is the reverse of `_.pairs`.\nfunction object(list, values) {\n var result = {};\n for (var i = 0, length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/omit.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/omit.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js\");\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js\");\n/* harmony import */ var _negate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./negate.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/negate.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./map.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/map.js\");\n/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_flatten.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js\");\n/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./contains.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/contains.js\");\n/* harmony import */ var _pick_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./pick.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/pick.js\");\n\n\n\n\n\n\n\n\n// Return a copy of the object without the disallowed properties.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(obj, keys) {\n var iteratee = keys[0], context;\n if ((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(iteratee)) {\n iteratee = (0,_negate_js__WEBPACK_IMPORTED_MODULE_2__.default)(iteratee);\n if (keys.length > 1) context = keys[1];\n } else {\n keys = (0,_map_js__WEBPACK_IMPORTED_MODULE_3__.default)((0,_flatten_js__WEBPACK_IMPORTED_MODULE_4__.default)(keys, false, false), String);\n iteratee = function(value, key) {\n return !(0,_contains_js__WEBPACK_IMPORTED_MODULE_5__.default)(keys, key);\n };\n }\n return (0,_pick_js__WEBPACK_IMPORTED_MODULE_6__.default)(obj, iteratee, context);\n}));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/once.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/once.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _partial_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./partial.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/partial.js\");\n/* harmony import */ var _before_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./before.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/before.js\");\n\n\n\n// Returns a function that will be executed at most one time, no matter how\n// often you call it. Useful for lazy initialization.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_partial_js__WEBPACK_IMPORTED_MODULE_0__.default)(_before_js__WEBPACK_IMPORTED_MODULE_1__.default, 2));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/pairs.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/pairs.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ pairs)\n/* harmony export */ });\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./keys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/keys.js\");\n\n\n// Convert an object into a list of `[key, value]` pairs.\n// The opposite of `_.object` with one argument.\nfunction pairs(obj) {\n var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj);\n var length = _keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [_keys[i], obj[_keys[i]]];\n }\n return pairs;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/partial.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/partial.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js\");\n/* harmony import */ var _executeBound_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_executeBound.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_executeBound.js\");\n/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./underscore.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/underscore.js\");\n\n\n\n\n// Partially apply a function by creating a version that has had some of its\n// arguments pre-filled, without changing its dynamic `this` context. `_` acts\n// as a placeholder by default, allowing any combination of arguments to be\n// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\nvar partial = (0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(func, boundArgs) {\n var placeholder = partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return (0,_executeBound_js__WEBPACK_IMPORTED_MODULE_1__.default)(func, bound, this, this, args);\n };\n return bound;\n});\n\npartial.placeholder = _underscore_js__WEBPACK_IMPORTED_MODULE_2__.default;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (partial);\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/partition.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/partition.js ***!\n \\*************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _group_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_group.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_group.js\");\n\n\n// Split a collection into two arrays: one whose elements all pass the given\n// truth test, and one whose elements all do not pass the truth test.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_group_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(result, value, pass) {\n result[pass ? 0 : 1].push(value);\n}, true));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/pick.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/pick.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js\");\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js\");\n/* harmony import */ var _optimizeCb_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_optimizeCb.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js\");\n/* harmony import */ var _allKeys_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./allKeys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js\");\n/* harmony import */ var _keyInObj_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_keyInObj.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_keyInObj.js\");\n/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_flatten.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js\");\n\n\n\n\n\n\n\n// Return a copy of the object only containing the allowed properties.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(obj, keys) {\n var result = {}, iteratee = keys[0];\n if (obj == null) return result;\n if ((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(iteratee)) {\n if (keys.length > 1) iteratee = (0,_optimizeCb_js__WEBPACK_IMPORTED_MODULE_2__.default)(iteratee, keys[1]);\n keys = (0,_allKeys_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj);\n } else {\n iteratee = _keyInObj_js__WEBPACK_IMPORTED_MODULE_4__.default;\n keys = (0,_flatten_js__WEBPACK_IMPORTED_MODULE_5__.default)(keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n}));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/pluck.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/pluck.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ pluck)\n/* harmony export */ });\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./map.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/map.js\");\n/* harmony import */ var _property_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./property.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/property.js\");\n\n\n\n// Convenience version of a common use case of `_.map`: fetching a property.\nfunction pluck(obj, key) {\n return (0,_map_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, (0,_property_js__WEBPACK_IMPORTED_MODULE_1__.default)(key));\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/property.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/property.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ property)\n/* harmony export */ });\n/* harmony import */ var _deepGet_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_deepGet.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_deepGet.js\");\n/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_toPath.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js\");\n\n\n\n// Creates a function that, when passed an object, will traverse that object’s\n// properties down the given `path`, specified as an array of keys or indices.\nfunction property(path) {\n path = (0,_toPath_js__WEBPACK_IMPORTED_MODULE_1__.default)(path);\n return function(obj) {\n return (0,_deepGet_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, path);\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/propertyOf.js\":\n/*!**************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/propertyOf.js ***!\n \\**************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ propertyOf)\n/* harmony export */ });\n/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./noop.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/noop.js\");\n/* harmony import */ var _get_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./get.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/get.js\");\n\n\n\n// Generates a function for a given object that returns a given property.\nfunction propertyOf(obj) {\n if (obj == null) return _noop_js__WEBPACK_IMPORTED_MODULE_0__.default;\n return function(path) {\n return (0,_get_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj, path);\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/random.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/random.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ random)\n/* harmony export */ });\n// Return a random integer between `min` and `max` (inclusive).\nfunction random(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/range.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/range.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ range)\n/* harmony export */ });\n// Generate an integer Array containing an arithmetic progression. A port of\n// the native Python `range()` function. See\n// [the Python documentation](https://docs.python.org/library/functions.html#range).\nfunction range(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n if (!step) {\n step = stop < start ? -1 : 1;\n }\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/reduce.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/reduce.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _createReduce_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createReduce.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_createReduce.js\");\n\n\n// **Reduce** builds up a single result from a list of values, aka `inject`,\n// or `foldl`.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createReduce_js__WEBPACK_IMPORTED_MODULE_0__.default)(1));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/reduceRight.js\":\n/*!***************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/reduceRight.js ***!\n \\***************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _createReduce_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createReduce.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_createReduce.js\");\n\n\n// The right-associative version of reduce, also known as `foldr`.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createReduce_js__WEBPACK_IMPORTED_MODULE_0__.default)(-1));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/reject.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/reject.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ reject)\n/* harmony export */ });\n/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./filter.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/filter.js\");\n/* harmony import */ var _negate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./negate.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/negate.js\");\n/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_cb.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_cb.js\");\n\n\n\n\n// Return all the elements for which a truth test fails.\nfunction reject(obj, predicate, context) {\n return (0,_filter_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, (0,_negate_js__WEBPACK_IMPORTED_MODULE_1__.default)((0,_cb_js__WEBPACK_IMPORTED_MODULE_2__.default)(predicate)), context);\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/rest.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/rest.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ rest)\n/* harmony export */ });\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n\n\n// Returns everything but the first entry of the `array`. Especially useful on\n// the `arguments` object. Passing an **n** will return the rest N values in the\n// `array`.\nfunction rest(array, n, guard) {\n return _setup_js__WEBPACK_IMPORTED_MODULE_0__.slice.call(array, n == null || guard ? 1 : n);\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js\":\n/*!*****************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js ***!\n \\*****************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ restArguments)\n/* harmony export */ });\n// Some functions take a variable number of arguments, or a few expected\n// arguments at the beginning and then a variable number of values to operate\n// on. This helper accumulates all remaining arguments past the function’s\n// argument length (or an explicit `startIndex`), into an array that becomes\n// the last argument. Similar to ES6’s \"rest parameter\".\nfunction restArguments(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/result.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/result.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ result)\n/* harmony export */ });\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isFunction.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js\");\n/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_toPath.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js\");\n\n\n\n// Traverses the children of `obj` along `path`. If a child is a function, it\n// is invoked with its parent as context. Returns the value of the final\n// child, or `fallback` if any child is undefined.\nfunction result(obj, path, fallback) {\n path = (0,_toPath_js__WEBPACK_IMPORTED_MODULE_1__.default)(path);\n var length = path.length;\n if (!length) {\n return (0,_isFunction_js__WEBPACK_IMPORTED_MODULE_0__.default)(fallback) ? fallback.call(obj) : fallback;\n }\n for (var i = 0; i < length; i++) {\n var prop = obj == null ? void 0 : obj[path[i]];\n if (prop === void 0) {\n prop = fallback;\n i = length; // Ensure we don't continue iterating.\n }\n obj = (0,_isFunction_js__WEBPACK_IMPORTED_MODULE_0__.default)(prop) ? prop.call(obj) : prop;\n }\n return obj;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/sample.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/sample.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ sample)\n/* harmony export */ });\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js\");\n/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./values.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/values.js\");\n/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getLength.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js\");\n/* harmony import */ var _random_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./random.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/random.js\");\n/* harmony import */ var _toArray_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./toArray.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/toArray.js\");\n\n\n\n\n\n\n// Sample **n** random values from a collection using the modern version of the\n// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n// If **n** is not specified, returns a single random element.\n// The internal `guard` argument allows it to work with `_.map`.\nfunction sample(obj, n, guard) {\n if (n == null || guard) {\n if (!(0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj)) obj = (0,_values_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj);\n return obj[(0,_random_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj.length - 1)];\n }\n var sample = (0,_toArray_js__WEBPACK_IMPORTED_MODULE_4__.default)(obj);\n var length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_2__.default)(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = (0,_random_js__WEBPACK_IMPORTED_MODULE_3__.default)(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/shuffle.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/shuffle.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ shuffle)\n/* harmony export */ });\n/* harmony import */ var _sample_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sample.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/sample.js\");\n\n\n// Shuffle a collection.\nfunction shuffle(obj) {\n return (0,_sample_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, Infinity);\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/size.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/size.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ size)\n/* harmony export */ });\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/keys.js\");\n\n\n\n// Return the number of elements in a collection.\nfunction size(obj) {\n if (obj == null) return 0;\n return (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj) ? obj.length : (0,_keys_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj).length;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/some.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/some.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ some)\n/* harmony export */ });\n/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_cb.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/keys.js\");\n\n\n\n\n// Determine if at least one element in the object passes a truth test.\nfunction some(obj, predicate, context) {\n predicate = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(predicate, context);\n var _keys = !(0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) && (0,_keys_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/sortBy.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/sortBy.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ sortBy)\n/* harmony export */ });\n/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_cb.js\");\n/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pluck.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/pluck.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/map.js\");\n\n\n\n\n// Sort the object's values by a criterion produced by an iteratee.\nfunction sortBy(obj, iteratee, context) {\n var index = 0;\n iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context);\n return (0,_pluck_js__WEBPACK_IMPORTED_MODULE_1__.default)((0,_map_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj, function(value, key, list) {\n return {\n value: value,\n index: index++,\n criteria: iteratee(value, key, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/sortedIndex.js\":\n/*!***************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/sortedIndex.js ***!\n \\***************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ sortedIndex)\n/* harmony export */ });\n/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_cb.js\");\n/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getLength.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js\");\n\n\n\n// Use a comparator function to figure out the smallest index at which\n// an object should be inserted so as to maintain order. Uses binary search.\nfunction sortedIndex(array, obj, iteratee, context) {\n iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_1__.default)(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/tap.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/tap.js ***!\n \\*******************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ tap)\n/* harmony export */ });\n// Invokes `interceptor` with the `obj` and then returns `obj`.\n// The primary purpose of this method is to \"tap into\" a method chain, in\n// order to perform operations on intermediate results within the chain.\nfunction tap(obj, interceptor) {\n interceptor(obj);\n return obj;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/template.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/template.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ template)\n/* harmony export */ });\n/* harmony import */ var _defaults_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaults.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/defaults.js\");\n/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./underscore.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/underscore.js\");\n/* harmony import */ var _templateSettings_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./templateSettings.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/templateSettings.js\");\n\n\n\n\n// When customizing `_.templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/;\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\nvar escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\nfunction escapeChar(match) {\n return '\\\\' + escapes[match];\n}\n\n// In order to prevent third-party code injection through\n// `_.templateSettings.variable`, we test it against the following regular\n// expression. It is intentionally a bit more liberal than just matching valid\n// identifiers, but still prevents possible loopholes through defaults or\n// destructuring assignment.\nvar bareIdentifier = /^\\s*(\\w|\\$)+\\s*$/;\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\n// NB: `oldSettings` only exists for backwards compatibility.\nfunction template(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = (0,_defaults_js__WEBPACK_IMPORTED_MODULE_0__.default)({}, settings, _underscore_js__WEBPACK_IMPORTED_MODULE_1__.default.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offset.\n return match;\n });\n source += \"';\\n\";\n\n var argument = settings.variable;\n if (argument) {\n // Insure against third-party code injection. (CVE-2021-23358)\n if (!bareIdentifier.test(argument)) throw new Error(\n 'variable is not a bare identifier: ' + argument\n );\n } else {\n // If a variable is not specified, place data values in local scope.\n source = 'with(obj||{}){\\n' + source + '}\\n';\n argument = 'obj';\n }\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n var render;\n try {\n render = new Function(argument, '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _underscore_js__WEBPACK_IMPORTED_MODULE_1__.default);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/templateSettings.js\":\n/*!********************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/templateSettings.js ***!\n \\********************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/underscore.js\");\n\n\n// By default, Underscore uses ERB-style template delimiters. Change the\n// following template settings to use alternative delimiters.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n});\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/throttle.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/throttle.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ throttle)\n/* harmony export */ });\n/* harmony import */ var _now_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./now.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/now.js\");\n\n\n// Returns a function, that, when invoked, will only be triggered at most once\n// during a given window of time. Normally, the throttled function will run\n// as much as it can, without ever going more than once per `wait` duration;\n// but if you'd like to disable the execution on the leading edge, pass\n// `{leading: false}`. To disable execution on the trailing edge, ditto.\nfunction throttle(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function() {\n previous = options.leading === false ? 0 : (0,_now_js__WEBPACK_IMPORTED_MODULE_0__.default)();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function() {\n var _now = (0,_now_js__WEBPACK_IMPORTED_MODULE_0__.default)();\n if (!previous && options.leading === false) previous = _now;\n var remaining = wait - (_now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = _now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/times.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/times.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ times)\n/* harmony export */ });\n/* harmony import */ var _optimizeCb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_optimizeCb.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js\");\n\n\n// Run a function **n** times.\nfunction times(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = (0,_optimizeCb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/toArray.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/toArray.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ toArray)\n/* harmony export */ });\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArray.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isArray.js\");\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n/* harmony import */ var _isString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isString.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isString.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/map.js\");\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./identity.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/identity.js\");\n/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./values.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/values.js\");\n\n\n\n\n\n\n\n\n// Safely create a real, live array from anything iterable.\nvar reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\nfunction toArray(obj) {\n if (!obj) return [];\n if ((0,_isArray_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj)) return _setup_js__WEBPACK_IMPORTED_MODULE_1__.slice.call(obj);\n if ((0,_isString_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj)) {\n // Keep surrogate pair characters together.\n return obj.match(reStrSymbol);\n }\n if ((0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj)) return (0,_map_js__WEBPACK_IMPORTED_MODULE_4__.default)(obj, _identity_js__WEBPACK_IMPORTED_MODULE_5__.default);\n return (0,_values_js__WEBPACK_IMPORTED_MODULE_6__.default)(obj);\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/toPath.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/toPath.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ toPath)\n/* harmony export */ });\n/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/underscore.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isArray.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isArray.js\");\n\n\n\n// Normalize a (deep) property `path` to array.\n// Like `_.iteratee`, this function can be customized.\nfunction toPath(path) {\n return (0,_isArray_js__WEBPACK_IMPORTED_MODULE_1__.default)(path) ? path : [path];\n}\n_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.toPath = toPath;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/underscore-array-methods.js\":\n/*!****************************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/underscore-array-methods.js ***!\n \\****************************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/underscore.js\");\n/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./each.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/each.js\");\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n/* harmony import */ var _chainResult_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_chainResult.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_chainResult.js\");\n\n\n\n\n\n// Add all mutator `Array` functions to the wrapper.\n(0,_each_js__WEBPACK_IMPORTED_MODULE_1__.default)(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = _setup_js__WEBPACK_IMPORTED_MODULE_2__.ArrayProto[name];\n _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) {\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) {\n delete obj[0];\n }\n }\n return (0,_chainResult_js__WEBPACK_IMPORTED_MODULE_3__.default)(this, obj);\n };\n});\n\n// Add all accessor `Array` functions to the wrapper.\n(0,_each_js__WEBPACK_IMPORTED_MODULE_1__.default)(['concat', 'join', 'slice'], function(name) {\n var method = _setup_js__WEBPACK_IMPORTED_MODULE_2__.ArrayProto[name];\n _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) obj = method.apply(obj, arguments);\n return (0,_chainResult_js__WEBPACK_IMPORTED_MODULE_3__.default)(this, obj);\n };\n});\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default);\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/underscore.js\":\n/*!**************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/underscore.js ***!\n \\**************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ _)\n/* harmony export */ });\n/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_setup.js\");\n\n\n// If Underscore is called as a function, it returns a wrapped object that can\n// be used OO-style. This wrapper holds altered versions of all functions added\n// through `_.mixin`. Wrapped objects may be chained.\nfunction _(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n}\n\n_.VERSION = _setup_js__WEBPACK_IMPORTED_MODULE_0__.VERSION;\n\n// Extracts the result from a wrapped and chained object.\n_.prototype.value = function() {\n return this._wrapped;\n};\n\n// Provide unwrapping proxies for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n_.prototype.toString = function() {\n return String(this._wrapped);\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/unescape.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/unescape.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _createEscaper_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createEscaper.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_createEscaper.js\");\n/* harmony import */ var _unescapeMap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_unescapeMap.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_unescapeMap.js\");\n\n\n\n// Function for unescaping strings from HTML interpolation.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createEscaper_js__WEBPACK_IMPORTED_MODULE_0__.default)(_unescapeMap_js__WEBPACK_IMPORTED_MODULE_1__.default));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/union.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/union.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js\");\n/* harmony import */ var _uniq_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uniq.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/uniq.js\");\n/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_flatten.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js\");\n\n\n\n\n// Produce an array that contains the union: each distinct element from all of\n// the passed-in arrays.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(arrays) {\n return (0,_uniq_js__WEBPACK_IMPORTED_MODULE_1__.default)((0,_flatten_js__WEBPACK_IMPORTED_MODULE_2__.default)(arrays, true, true));\n}));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/uniq.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/uniq.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ uniq)\n/* harmony export */ });\n/* harmony import */ var _isBoolean_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isBoolean.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/isBoolean.js\");\n/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_cb.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_cb.js\");\n/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getLength.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js\");\n/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./contains.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/contains.js\");\n\n\n\n\n\n// Produce a duplicate-free version of the array. If the array has already\n// been sorted, you have the option of using a faster algorithm.\n// The faster algorithm will not work with an iteratee if the iteratee\n// is not a one-to-one function, so providing an iteratee will disable\n// the faster algorithm.\nfunction uniq(array, isSorted, iteratee, context) {\n if (!(0,_isBoolean_js__WEBPACK_IMPORTED_MODULE_0__.default)(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_1__.default)(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_2__.default)(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!(0,_contains_js__WEBPACK_IMPORTED_MODULE_3__.default)(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!(0,_contains_js__WEBPACK_IMPORTED_MODULE_3__.default)(result, value)) {\n result.push(value);\n }\n }\n return result;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/uniqueId.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/uniqueId.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ uniqueId)\n/* harmony export */ });\n// Generate a unique integer id (unique within the entire client session).\n// Useful for temporary DOM ids.\nvar idCounter = 0;\nfunction uniqueId(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/unzip.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/unzip.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ unzip)\n/* harmony export */ });\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./max.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/max.js\");\n/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getLength.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js\");\n/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pluck.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/pluck.js\");\n\n\n\n\n// Complement of zip. Unzip accepts an array of arrays and groups\n// each array's elements on shared indices.\nfunction unzip(array) {\n var length = (array && (0,_max_js__WEBPACK_IMPORTED_MODULE_0__.default)(array, _getLength_js__WEBPACK_IMPORTED_MODULE_1__.default).length) || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = (0,_pluck_js__WEBPACK_IMPORTED_MODULE_2__.default)(array, index);\n }\n return result;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/values.js\":\n/*!**********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/values.js ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ values)\n/* harmony export */ });\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./keys.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/keys.js\");\n\n\n// Retrieve the values of an object's properties.\nfunction values(obj) {\n var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj);\n var length = _keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[_keys[i]];\n }\n return values;\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/where.js\":\n/*!*********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/where.js ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ where)\n/* harmony export */ });\n/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./filter.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/filter.js\");\n/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./matcher.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/matcher.js\");\n\n\n\n// Convenience version of a common use case of `_.filter`: selecting only\n// objects containing specific `key:value` pairs.\nfunction where(obj, attrs) {\n return (0,_filter_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, (0,_matcher_js__WEBPACK_IMPORTED_MODULE_1__.default)(attrs));\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/without.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/without.js ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js\");\n/* harmony import */ var _difference_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./difference.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/difference.js\");\n\n\n\n// Return a version of the array that does not contain the specified value(s).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(array, otherArrays) {\n return (0,_difference_js__WEBPACK_IMPORTED_MODULE_1__.default)(array, otherArrays);\n}));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/wrap.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/wrap.js ***!\n \\********************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ wrap)\n/* harmony export */ });\n/* harmony import */ var _partial_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./partial.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/partial.js\");\n\n\n// Returns the first function passed as an argument to the second,\n// allowing you to adjust arguments, run code before and after, and\n// conditionally execute the original function.\nfunction wrap(func, wrapper) {\n return (0,_partial_js__WEBPACK_IMPORTED_MODULE_0__.default)(wrapper, func);\n}\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/node_modules/underscore/modules/zip.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/node_modules/underscore/modules/zip.js ***!\n \\*******************************************************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js\");\n/* harmony import */ var _unzip_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./unzip.js */ \"./build/cht-core-4-6/node_modules/underscore/modules/unzip.js\");\n\n\n\n// Zip together multiple lists into a single array -- elements that share\n// an index go together.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(_unzip_js__WEBPACK_IMPORTED_MODULE_1__.default));\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/calendar-interval/src/index.js\":\n/*!***********************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/calendar-interval/src/index.js ***!\n \\***********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst moment = __webpack_require__(/*! moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\");\n\nconst normalizeStartDate = (intervalStartDate) => {\n intervalStartDate = parseInt(intervalStartDate);\n\n if (isNaN(intervalStartDate) || intervalStartDate <= 0 || intervalStartDate > 31) {\n intervalStartDate = 1;\n }\n\n return intervalStartDate;\n};\n\nconst getMinimumStartDate = (intervalStartDate, relativeDate) => {\n return moment\n .min(\n relativeDate.clone().subtract(1, 'month').date(intervalStartDate).startOf('day'),\n relativeDate.clone().startOf('month')\n )\n .valueOf();\n};\n\nconst getMinimumEndDate = (intervalStartDate, nextMonth, relativeDate) => {\n return moment\n .min(\n relativeDate.clone().add(nextMonth ? 1 : 0, 'month').date(intervalStartDate - 1).endOf('day'),\n relativeDate.clone().add(nextMonth ? 1 : 0, 'month').endOf('month')\n )\n .valueOf();\n};\n\nconst getInterval = (intervalStartDate, referenceDate = moment()) => {\n intervalStartDate = normalizeStartDate(intervalStartDate);\n if (intervalStartDate === 1) {\n return {\n start: referenceDate.startOf('month').valueOf(),\n end: referenceDate.endOf('month').valueOf()\n };\n }\n\n if (intervalStartDate <= referenceDate.date()) {\n return {\n start: referenceDate.date(intervalStartDate).startOf('day').valueOf(),\n end: getMinimumEndDate(intervalStartDate, true, referenceDate)\n };\n }\n\n return {\n start: getMinimumStartDate(intervalStartDate, referenceDate),\n end: getMinimumEndDate(intervalStartDate, false, referenceDate)\n };\n};\n\nmodule.exports = {\n // Returns the timestamps of the start and end of the current calendar interval\n // @param {Number} [intervalStartDate=1] - day of month when interval starts (1 - 31)\n //\n // if `intervalStartDate` exceeds month's day count, the start/end of following/current month is returned\n // f.e. `intervalStartDate` === 31 would generate next intervals :\n // [12-31 -> 01-30], [01-31 -> 02-[28|29]], [03-01 -> 03-30], [03-31 -> 04-30], [05-01 -> 05-30], [05-31 - 06-30]\n getCurrent: (intervalStartDate) => getInterval(intervalStartDate),\n\n /**\n * Returns the timestamps of the start and end of the a calendar interval that contains a reference date\n * @param {Number} [intervalStartDate=1] - day of month when interval starts (1 - 31)\n * @param {Number} timestamp - the reference date the interval should include\n * @returns { start: number, end: number } - timestamps that define the calendar interval\n */\n getInterval: (intervalStartDate, timestamp) => getInterval(intervalStartDate, moment(timestamp)),\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/cht-script-api/src/auth.js\":\n/*!*******************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/cht-script-api/src/auth.js ***!\n \\*******************************************************************/\n/***/ ((module) => {\n\n/**\n * CHT Script API - Auth module\n * Provides tools related to Authentication.\n */\n\nconst ADMIN_ROLE = '_admin';\nconst DISALLOWED_PERMISSION_PREFIX = '!';\n\nconst isAdmin = (userRoles) => {\n if (!Array.isArray(userRoles)) {\n return false;\n }\n\n return userRoles.includes(ADMIN_ROLE);\n};\n\nconst groupPermissions = (permissions) => {\n const groups = { allowed: [], disallowed: [] };\n\n permissions.forEach(permission => {\n if (permission.indexOf(DISALLOWED_PERMISSION_PREFIX) === 0) {\n // Removing the DISALLOWED_PERMISSION_PREFIX and keeping the permission name.\n groups.disallowed.push(permission.substring(1));\n } else {\n groups.allowed.push(permission);\n }\n });\n\n return groups;\n};\n\nconst debug = (reason, permissions, roles) => {\n // eslint-disable-next-line no-console\n ;\n};\n\nconst checkUserHasPermissions = (permissions, userRoles, chtPermissionsSettings, expectedToHave) => {\n return permissions.every(permission => {\n const roles = chtPermissionsSettings[permission];\n\n if (!roles) {\n return !expectedToHave;\n }\n\n return expectedToHave === userRoles.some(role => roles.includes(role));\n });\n};\n\nconst verifyParameters = (permissions, userRoles, chtPermissionsSettings) => {\n if (!Array.isArray(permissions) || !permissions.length) {\n debug('Permissions to verify are not provided or have invalid type');\n return false;\n }\n\n if (!Array.isArray(userRoles)) {\n debug('User roles are not provided or have invalid type');\n return false;\n }\n\n if (!chtPermissionsSettings || !Object.keys(chtPermissionsSettings).length) {\n debug('CHT-Core\\'s configured permissions are not provided');\n return false;\n }\n\n return true;\n};\n\n/**\n * Verify if the user's role has the permission(s).\n * @param permissions {string | string[]} Permission(s) to verify\n * @param userRoles {string[]} Array of user roles.\n * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings.\n * @return {boolean}\n */\nconst hasPermissions = (permissions, userRoles, chtPermissionsSettings) => {\n if (permissions && typeof permissions === 'string') {\n permissions = [ permissions ];\n }\n\n if (!verifyParameters(permissions, userRoles, chtPermissionsSettings)) {\n return false;\n }\n\n const { allowed, disallowed } = groupPermissions(permissions);\n\n if (isAdmin(userRoles)) {\n if (disallowed.length) {\n debug('Disallowed permission(s) found for admin', permissions, userRoles);\n return false;\n }\n // Admin has the permissions automatically.\n return true;\n }\n\n const hasDisallowed = !checkUserHasPermissions(disallowed, userRoles, chtPermissionsSettings, false);\n const hasAllowed = checkUserHasPermissions(allowed, userRoles, chtPermissionsSettings, true);\n\n if (hasDisallowed) {\n debug('Found disallowed permission(s)', permissions, userRoles);\n return false;\n }\n\n if (!hasAllowed) {\n debug('Missing permission(s)', permissions, userRoles);\n return false;\n }\n\n return true;\n};\n\n/**\n * Verify if the user's role has all the permissions of any of the provided groups.\n * @param permissionsGroupList {string[][]} Array of groups of permissions due to the complexity of permission grouping\n * @param userRoles {string[]} Array of user roles.\n * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings.\n * @return {boolean}\n */\nconst hasAnyPermission = (permissionsGroupList, userRoles, chtPermissionsSettings) => {\n if (!verifyParameters(permissionsGroupList, userRoles, chtPermissionsSettings)) {\n return false;\n }\n\n const validGroup = permissionsGroupList.every(permissions => Array.isArray(permissions));\n if (!validGroup) {\n debug('Permission groups to verify are invalid');\n return false;\n }\n\n const allowedGroupList = [];\n const disallowedGroupList = [];\n permissionsGroupList.forEach(permissions => {\n const { allowed, disallowed } = groupPermissions(permissions);\n allowedGroupList.push(allowed);\n disallowedGroupList.push(disallowed);\n });\n\n if (isAdmin(userRoles)) {\n if (disallowedGroupList.every(permissions => permissions.length)) {\n debug('Disallowed permission(s) found for admin', permissionsGroupList, userRoles);\n return false;\n }\n // Admin has the permissions automatically.\n return true;\n }\n\n const hasAnyPermissionGroup = permissionsGroupList.some((permissions, i) => {\n const hasAnyAllowed = checkUserHasPermissions(allowedGroupList[i], userRoles, chtPermissionsSettings, true);\n const hasAnyDisallowed = !checkUserHasPermissions(disallowedGroupList[i], userRoles, chtPermissionsSettings, false);\n // Checking the 'permission group' is valid.\n return hasAnyAllowed && !hasAnyDisallowed;\n });\n\n if (!hasAnyPermissionGroup) {\n debug('No matching permissions', permissionsGroupList, userRoles);\n return false;\n }\n\n return true;\n};\n\nmodule.exports = {\n hasPermissions,\n hasAnyPermission\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/cht-script-api/src/index.js\":\n/*!********************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/cht-script-api/src/index.js ***!\n \\********************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\n * CHT Script API - Index\n * Builds and exports a versioned API from feature modules.\n * Whenever possible keep this file clean by defining new features in modules.\n */\nconst auth = __webpack_require__(/*! ./auth */ \"./build/cht-core-4-6/shared-libs/cht-script-api/src/auth.js\");\n\n/**\n * Verify if the user's role has the permission(s).\n * @param permissions {string | string[]} Permission(s) to verify\n * @param userRoles {string[]} Array of user roles.\n * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings.\n * @return {boolean}\n */\nconst hasPermissions = (permissions, userRoles, chtPermissionsSettings) => {\n return auth.hasPermissions(permissions, userRoles, chtPermissionsSettings);\n};\n\n/**\n * Verify if the user's role has all the permissions of any of the provided groups.\n * @param permissionsGroupList {string[][]} Array of groups of permissions due to the complexity of permission grouping\n * @param userRoles {string[]} Array of user roles.\n * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings.\n * @return {boolean}\n */\nconst hasAnyPermission = (permissionsGroupList, userRoles, chtPermissionsSettings) => {\n return auth.hasAnyPermission(permissionsGroupList, userRoles, chtPermissionsSettings);\n};\n\nmodule.exports = {\n v1: {\n hasPermissions,\n hasAnyPermission\n }\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/contact-types-utils/src/index.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/contact-types-utils/src/index.js ***!\n \\*************************************************************************/\n/***/ ((module) => {\n\nconst HARDCODED_PERSON_TYPE = 'person';\nconst HARDCODED_TYPES = [\n 'district_hospital',\n 'health_center',\n 'clinic',\n 'person'\n];\n\nconst getContactTypes = config => {\n return config && Array.isArray(config.contact_types) && config.contact_types || [];\n};\n\nconst getTypeId = (doc) => {\n if (!doc) {\n return;\n }\n return doc.type === 'contact' ? doc.contact_type : doc.type;\n};\n\nconst getTypeById = (config, typeId) => {\n const contactTypes = getContactTypes(config);\n return contactTypes.find(type => type.id === typeId);\n};\n\nconst isPersonType = (type) => {\n return type && (type.person || type.id === HARDCODED_PERSON_TYPE);\n};\n\nconst isPlaceType = (type) => {\n return type && !type.person && type.id !== HARDCODED_PERSON_TYPE;\n};\n\nconst hasParents = (type) => !!(type && type.parents && type.parents.length);\n\nconst isParentOf = (parentType, childType) => {\n if (!parentType || !childType) {\n return false;\n }\n\n const parentTypeId = typeof parentType === 'string' ? parentType : parentType.id;\n return !!(childType && childType.parents && childType.parents.includes(parentTypeId));\n};\n\n// A leaf place type is a contact type that does not have any child place types, but can have child person types\nconst getLeafPlaceTypes = (config) => {\n const types = getContactTypes(config);\n const placeTypes = types.filter(type => !type.person);\n return placeTypes.filter(type => {\n return placeTypes.every(inner => !inner.parents || !inner.parents.includes(type.id));\n });\n};\n\nconst getContactType = (config, contact) => {\n const typeId = getTypeId(contact);\n return typeId && getTypeById(config, typeId);\n};\n\n// returns true if contact's type exists and is a person type OR if contact's type is the hardcoded person type\nconst isPerson = (config, contact) => {\n const typeId = getTypeId(contact);\n const type = getTypeById(config, typeId) || { id: typeId };\n return isPersonType(type);\n};\n\nconst isPlace = (config, contact) => {\n const type = getContactType(config, contact);\n return isPlaceType(type);\n};\n\nconst isHardcodedType = type => HARDCODED_TYPES.includes(type);\n\nconst isOrphan = (type) => !type.parents || !type.parents.length;\n/**\n * Returns an array of child types for the given type id.\n * If parent is falsey, returns the types with no parent.\n */\nconst getChildren = (config, parentType) => {\n const types = getContactTypes(config);\n return types.filter(type => (!parentType && isOrphan(type)) || isParentOf(parentType, type));\n};\n\nconst getPlaceTypes = (config) => getContactTypes(config).filter(isPlaceType);\nconst getPersonTypes = (config) => getContactTypes(config).filter(isPersonType);\n\nmodule.exports = {\n getTypeId,\n getTypeById,\n isPersonType,\n isPlaceType,\n hasParents,\n isParentOf,\n getLeafPlaceTypes,\n getContactType,\n isPerson,\n isPlace,\n isHardcodedType,\n HARDCODED_TYPES,\n getContactTypes,\n getChildren,\n getPlaceTypes,\n getPersonTypes,\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/lineage/src/hydration.js\":\n/*!*****************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/lineage/src/hydration.js ***!\n \\*****************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst _ = __webpack_require__(/*! lodash/core */ \"./build/cht-core-4-6/node_modules/lodash/core.js\");\n_.uniq = __webpack_require__(/*! lodash/uniq */ \"./build/cht-core-4-6/node_modules/lodash/uniq.js\");\nconst utils = __webpack_require__(/*! ./utils */ \"./build/cht-core-4-6/shared-libs/lineage/src/utils.js\");\n\nconst deepCopy = obj => JSON.parse(JSON.stringify(obj));\n\nconst selfAndParents = function(self) {\n const parents = [];\n let current = self;\n while (current) {\n if (parents.includes(current)) {\n return parents;\n }\n\n parents.push(current);\n current = current.parent;\n }\n return parents;\n};\n\nconst extractParentIds = current => selfAndParents(current)\n .map(parent => parent._id)\n .filter(id => id);\n\nconst getContactById = (contacts, id) => id && contacts.find(contact => contact && contact._id === id);\n\nconst getContactIds = (contacts) => {\n const ids = [];\n contacts.forEach(doc => {\n if (!doc) {\n return;\n }\n\n const id = utils.getId(doc.contact);\n id && ids.push(id);\n\n if (!utils.validLinkedDocs(doc)) {\n return;\n }\n Object.keys(doc.linked_docs).forEach(key => {\n const id = utils.getId(doc.linked_docs[key]);\n id && ids.push(id);\n });\n });\n\n return _.uniq(ids);\n};\n\nmodule.exports = function(Promise, DB) {\n const fillParentsInDocs = function(doc, lineage) {\n if (!doc || !lineage.length) {\n return doc;\n }\n\n // Parent hierarchy starts at the contact for data_records\n let currentParent;\n if (utils.isReport(doc)) {\n currentParent = doc.contact = lineage.shift() || doc.contact;\n } else {\n // It's a contact\n currentParent = doc;\n }\n\n const parentIds = extractParentIds(currentParent.parent);\n lineage.forEach(function(l, i) {\n currentParent.parent = l ? deepCopy(l) : { _id: parentIds[i] };\n currentParent = currentParent.parent;\n });\n\n return doc;\n };\n\n const fillContactsInDocs = function(docs, contacts) {\n if (!contacts || !contacts.length) {\n return;\n }\n\n docs.forEach(function(doc) {\n if (!doc) {\n return;\n }\n const id = utils.getId(doc.contact);\n const contactDoc = getContactById(contacts, id);\n if (contactDoc) {\n doc.contact = deepCopy(contactDoc);\n }\n\n if (!utils.validLinkedDocs(doc)) {\n return;\n }\n\n Object.keys(doc.linked_docs).forEach(key => {\n const id = utils.getId(doc.linked_docs[key]);\n const contactDoc = getContactById(contacts, id);\n if (contactDoc) {\n doc.linked_docs[key] = deepCopy(contactDoc);\n }\n });\n });\n };\n\n const fetchContacts = function(lineage) {\n const contactIds = getContactIds(lineage);\n\n // Only fetch docs that are new to us\n const lineageContacts = [];\n const contactsToFetch = [];\n contactIds.forEach(function(id) {\n const contact = getContactById(lineage, id);\n if (contact) {\n lineageContacts.push(deepCopy(contact));\n } else {\n contactsToFetch.push(id);\n }\n });\n\n return fetchDocs(contactsToFetch)\n .then(function(fetchedContacts) {\n return lineageContacts.concat(fetchedContacts);\n });\n };\n\n const mergeLineagesIntoDoc = function(lineage, contacts, patientLineage, placeLineage) {\n const doc = lineage.shift();\n fillParentsInDocs(doc, lineage);\n\n if (patientLineage && patientLineage.length) {\n const patientDoc = patientLineage.shift();\n fillParentsInDocs(patientDoc, patientLineage);\n doc.patient = patientDoc;\n }\n\n if (placeLineage && placeLineage.length) {\n const placeDoc = placeLineage.shift();\n fillParentsInDocs(placeDoc, placeLineage);\n doc.place = placeDoc;\n }\n\n return doc;\n };\n\n /*\n * @returns {Object} subjectMaps\n * @returns {Map} subjectMaps.patientUuids - map with [k, v] pairs of [recordUuid, patientUuid]\n * @returns {Map} subjectMaps.placeUuids - map with [k, v] pairs of [recordUuid, placeUuid]\n */\n const fetchSubjectsUuids = (records) => {\n const shortcodes = [];\n const recordToPlaceUuidMap = new Map();\n const recordToPatientUuidMap = new Map();\n\n records.forEach(record => {\n if (!utils.isReport(record)) {\n return;\n }\n\n const patientId = utils.getPatientId(record);\n const placeId = utils.getPlaceId(record);\n recordToPatientUuidMap.set(record._id, patientId);\n recordToPlaceUuidMap.set(record._id, placeId);\n\n shortcodes.push(patientId, placeId);\n });\n\n if (!shortcodes.some(shortcode => shortcode)) {\n return Promise.resolve({ patientUuids: recordToPatientUuidMap, placeUuids: recordToPlaceUuidMap });\n }\n\n return contactUuidByShortcode(shortcodes).then(shortcodeToUuidMap => {\n records.forEach(record => {\n const patientShortcode = recordToPatientUuidMap.get(record._id);\n recordToPatientUuidMap.set(record._id, shortcodeToUuidMap.get(patientShortcode));\n\n const placeShortcode = recordToPlaceUuidMap.get(record._id);\n recordToPlaceUuidMap.set(record._id, shortcodeToUuidMap.get(placeShortcode));\n });\n\n return { patientUuids: recordToPatientUuidMap, placeUuids: recordToPlaceUuidMap };\n });\n };\n\n /*\n * @returns {Object} lineages\n * @returns {Array} lineages.patientLineage\n * @returns {Array} lineages.placeLineage\n */\n const fetchSubjectLineage = (record) => {\n if (!utils.isReport(record)) {\n return Promise.resolve({ patientLineage: [], placeLineage: [] });\n }\n\n const patientId = utils.getPatientId(record);\n const placeId = utils.getPlaceId(record);\n\n if (!patientId && !placeId) {\n return Promise.resolve({ patientLineage: [], placeLineage: [] });\n }\n\n return contactUuidByShortcode([patientId, placeId]).then((shortcodeToUuidMap) => {\n const patientUuid = shortcodeToUuidMap.get(patientId);\n const placeUuid = shortcodeToUuidMap.get(placeId);\n\n return fetchLineageByIds([patientUuid, placeUuid]).then((lineages) => {\n const patientLineage = lineages.find(lineage => lineage[0]._id === patientUuid) || [];\n const placeLineage = lineages.find(lineage => lineage[0]._id === placeUuid) || [];\n\n return { patientLineage, placeLineage };\n });\n });\n };\n\n /*\n * @returns {Map} map with [k, v] pairs of [shortcode, uuid]\n */\n const contactUuidByShortcode = function(shortcodes) {\n const keys = shortcodes\n .filter(shortcode => shortcode)\n .map(shortcode => [ 'shortcode', shortcode ]);\n\n return DB.query('medic-client/contacts_by_reference', { keys })\n .then(function(results) {\n const findIdWithKey = key => {\n const matchingRow = results.rows.find(row => row.key[1] === key);\n return matchingRow && matchingRow.id;\n };\n\n return new Map(shortcodes.map(shortcode => ([ shortcode, findIdWithKey(shortcode) || shortcode, ])));\n });\n };\n\n const fetchLineageById = function(id) {\n const options = {\n startkey: [id],\n endkey: [id, {}],\n include_docs: true\n };\n return DB.query('medic-client/docs_by_id_lineage', options)\n .then(function(result) {\n return result.rows.map(function(row) {\n return row.doc;\n });\n });\n };\n\n const fetchLineageByIds = function(ids) {\n return fetchDocs(ids).then(function(docs) {\n return hydrateDocs(docs).then(function(hydratedDocs) {\n // Returning a list of docs just like fetchLineageById\n const docsList = [];\n hydratedDocs.forEach(function(hdoc) {\n const docLineage = selfAndParents(hdoc);\n docsList.push(docLineage);\n });\n return docsList;\n });\n });\n };\n\n const fetchDoc = function(id) {\n return DB.get(id)\n .catch(function(err) {\n if (err.status === 404) {\n err.statusCode = 404;\n }\n throw err;\n });\n };\n\n const fetchHydratedDoc = function(id, options = {}, callback = undefined) {\n let lineage;\n let patientLineage;\n let placeLineage;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n _.defaults(options, {\n throwWhenMissingLineage: false,\n });\n\n return fetchLineageById(id)\n .then(function(result) {\n lineage = result;\n\n if (lineage.length === 0) {\n if (options.throwWhenMissingLineage) {\n const err = new Error(`Document not found: ${id}`);\n err.code = 404;\n throw err;\n } else {\n // Not a doc that has lineage, just do a normal fetch.\n return fetchDoc(id);\n }\n }\n\n return fetchSubjectLineage(lineage[0])\n .then((lineages = {}) => {\n patientLineage = lineages.patientLineage;\n placeLineage = lineages.placeLineage;\n\n return fetchContacts(lineage.concat(patientLineage, placeLineage));\n })\n .then(function(contacts) {\n fillContactsInDocs(lineage, contacts);\n fillContactsInDocs(patientLineage, contacts);\n fillContactsInDocs(placeLineage, contacts);\n return mergeLineagesIntoDoc(lineage, contacts, patientLineage, placeLineage);\n });\n })\n .then(function(result) {\n if (callback) {\n callback(null, result);\n }\n return result;\n })\n .catch(function(err) {\n if (callback) {\n callback(err);\n } else {\n throw err;\n }\n });\n };\n\n // for data_records, include the first-level contact.\n const collectParentIds = function(docs) {\n const ids = [];\n docs.forEach(function(doc) {\n let parent = doc.parent;\n if (utils.isReport(doc)) {\n const contactId = utils.getId(doc.contact);\n if (!contactId) {\n return;\n }\n ids.push(contactId);\n parent = doc.contact;\n }\n\n ids.push(...extractParentIds(parent));\n });\n return _.uniq(ids);\n };\n\n // for data_records, doesn't include the first-level contact (it counts as a parent).\n const collectLeafContactIds = function(partiallyHydratedDocs) {\n const ids = [];\n partiallyHydratedDocs.forEach(function(doc) {\n const startLineageFrom = utils.isReport(doc) ? doc.contact : doc;\n ids.push(...getContactIds(selfAndParents(startLineageFrom)));\n });\n\n return _.uniq(ids);\n };\n\n const fetchDocs = function(ids) {\n if (!ids || !ids.length) {\n return Promise.resolve([]);\n }\n const keys = _.uniq(ids.filter(id => id));\n if (keys.length === 0) {\n return Promise.resolve([]);\n }\n\n return DB.allDocs({ keys, include_docs: true })\n .then(function(results) {\n return results.rows\n .map(function(row) {\n return row.doc;\n })\n .filter(function(doc) {\n return !!doc;\n });\n });\n };\n\n const hydrateDocs = function(docs) {\n if (!docs.length) {\n return Promise.resolve([]);\n }\n\n const hydratedDocs = deepCopy(docs); // a copy of the original docs which we will incrementally hydrate and return\n const knownDocs = [...hydratedDocs]; // an array of all documents which we have fetched\n\n let patientUuids; // a map of [k, v] pairs with [hydratedDocUuid, patientUuid]\n let placeUuids; // a map of [k, v] pairs with [hydratedDocUuid, placeUuid]\n\n return fetchSubjectsUuids(hydratedDocs)\n .then((subjectMaps) => {\n placeUuids = subjectMaps.placeUuids;\n patientUuids = subjectMaps.patientUuids;\n\n return fetchDocs([...placeUuids.values(), ...patientUuids.values()]);\n })\n .then(subjects => {\n knownDocs.push(...subjects);\n\n const firstRoundIdsToFetch = _.uniq([\n ...collectParentIds(hydratedDocs),\n ...collectLeafContactIds(hydratedDocs),\n\n ...collectParentIds(subjects),\n ...collectLeafContactIds(subjects),\n ]);\n\n return fetchDocs(firstRoundIdsToFetch);\n })\n .then(function(firstRoundFetched) {\n knownDocs.push(...firstRoundFetched);\n const secondRoundIdsToFetch = collectLeafContactIds(firstRoundFetched)\n .filter(id => !knownDocs.some(doc => doc._id === id));\n return fetchDocs(secondRoundIdsToFetch);\n })\n .then(function(secondRoundFetched) {\n knownDocs.push(...secondRoundFetched);\n\n fillContactsInDocs(knownDocs, knownDocs);\n hydratedDocs.forEach((doc) => {\n const reconstructLineage = (docWithLineage, parents) => {\n const parentIds = extractParentIds(docWithLineage);\n return parentIds.map(id => {\n // how can we use hashmaps?\n return getContactById(parents, id);\n });\n };\n\n const isReport = utils.isReport(doc);\n const findParentsFor = isReport ? doc.contact : doc;\n const lineage = reconstructLineage(findParentsFor, knownDocs);\n\n if (isReport) {\n lineage.unshift(doc);\n }\n\n const patientDoc = getContactById(knownDocs, patientUuids.get(doc._id));\n const patientLineage = reconstructLineage(patientDoc, knownDocs);\n\n const placeDoc = getContactById(knownDocs, placeUuids.get(doc._id));\n const placeLineage = reconstructLineage(placeDoc, knownDocs);\n\n mergeLineagesIntoDoc(lineage, knownDocs, patientLineage, placeLineage);\n });\n\n return hydratedDocs;\n });\n };\n\n const fetchHydratedDocs = docIds => {\n if (!Array.isArray(docIds)) {\n return Promise.reject(new Error('Invalid parameter: \"docIds\" must be an array'));\n }\n\n if (!docIds.length) {\n return Promise.resolve([]);\n }\n\n if (docIds.length === 1) {\n return fetchHydratedDoc(docIds[0])\n .then(doc => [doc])\n .catch(err => {\n if (err.status === 404) {\n return [];\n }\n\n throw err;\n });\n }\n\n return DB\n .allDocs({ keys: docIds, include_docs: true })\n .then(result => {\n const docs = result.rows.map(row => row.doc).filter(doc => doc);\n return hydrateDocs(docs);\n });\n };\n\n return {\n /**\n * Given a doc id get a doc and all parents, contact (and parents) and patient (and parents) and place (and parents)\n * @param {String} id The id of the doc to fetch and hydrate\n * @param {Object} [options] Options for the behavior of the hydration\n * @param {Boolean} [options.throwWhenMissingLineage=false] When true, throw if the doc has nothing to hydrate.\n * When false, does a best effort to return the document regardless of content.\n * @returns {Promise} A promise to return the hydrated doc.\n */\n fetchHydratedDoc: (id, options, callback) => fetchHydratedDoc(id, options, callback),\n\n /**\n * Given an array of ids, returns hydrated versions of every requested doc (using hydrateDocs or fetchHydratedDoc)\n * If a doc is not found, it's simply excluded from the results list\n * @param {Object[]} docs The array of docs to hydrate\n * @returns {Promise} A promise to return the hydrated docs\n */\n fetchHydratedDocs: docIds => fetchHydratedDocs(docIds),\n\n /**\n * Given an array of docs bind the parents, contact (and parents) and patient (and parents) and place (and parents)\n * @param {Object[]} docs The array of docs to hydrate\n * @returns {Promise}\n */\n hydrateDocs: docs => hydrateDocs(docs),\n\n fetchLineageById,\n fetchLineageByIds,\n fillContactsInDocs,\n fillParentsInDocs,\n fetchContacts,\n };\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/lineage/src/index.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/lineage/src/index.js ***!\n \\*************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\n * @module lineage\n */\nmodule.exports = (Promise, DB) => Object.assign(\n {},\n __webpack_require__(/*! ./hydration */ \"./build/cht-core-4-6/shared-libs/lineage/src/hydration.js\")(Promise, DB),\n __webpack_require__(/*! ./minify */ \"./build/cht-core-4-6/shared-libs/lineage/src/minify.js\")\n);\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/lineage/src/minify.js\":\n/*!**************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/lineage/src/minify.js ***!\n \\**************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst utils = __webpack_require__(/*! ./utils */ \"./build/cht-core-4-6/shared-libs/lineage/src/utils.js\");\nconst RECURSION_LIMIT = 50;\n\n// Minifies things you would attach to another doc:\n// doc.parent = minify(doc.parent)\n// Not:\n// minify(doc)\nconst minifyLineage = (parent) => {\n if (!parent || !parent._id) {\n return parent;\n }\n\n const docId = parent._id;\n const result = { _id: parent._id };\n let minified = result;\n for (let guard = RECURSION_LIMIT; parent.parent && parent.parent._id; --guard) {\n if (guard === 0) {\n throw Error(`Could not minify ${docId}, possible parent recursion.`);\n }\n\n minified.parent = { _id: parent.parent._id };\n minified = minified.parent;\n parent = parent.parent;\n }\n\n return result;\n};\n\n/**\n * Remove all hyrdrated items and leave just the ids\n * @param {Object} doc The doc to minify\n */\nconst minify = (doc) => {\n if (!doc) {\n return;\n }\n if (doc.parent) {\n doc.parent = minifyLineage(doc.parent);\n }\n if (doc.contact && doc.contact._id) {\n const miniContact = { _id: doc.contact._id };\n if (doc.contact.parent) {\n miniContact.parent = minifyLineage(doc.contact.parent);\n }\n doc.contact = miniContact;\n }\n if (doc.type === 'data_record') {\n delete doc.patient;\n delete doc.place;\n }\n\n if (utils.validLinkedDocs(doc)) {\n Object.keys(doc.linked_docs).forEach(key => {\n doc.linked_docs[key] = utils.getId(doc.linked_docs[key]);\n });\n }\n};\n\nmodule.exports = {\n minify,\n minifyLineage,\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/lineage/src/utils.js\":\n/*!*************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/lineage/src/utils.js ***!\n \\*************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst contactTypeUtils = __webpack_require__(/*! @medic/contact-types-utils */ \"./build/cht-core-4-6/shared-libs/contact-types-utils/src/index.js\");\nconst _ = __webpack_require__(/*! lodash/core */ \"./build/cht-core-4-6/node_modules/lodash/core.js\");\n\nconst isContact = doc => {\n if (!doc) {\n return;\n }\n\n return doc.type === 'contact' || contactTypeUtils.HARDCODED_TYPES.includes(doc.type);\n};\n\nconst getId = (item) => item && (typeof item === 'string' ? item : item._id);\n\n// don't process linked docs for non-contact types\n// linked_docs property should be a key-value object\nconst validLinkedDocs = doc => {\n return isContact(doc) && _.isObject(doc.linked_docs) && !_.isArray(doc.linked_docs);\n};\n\nconst isReport = (doc) => doc.type === 'data_record';\nconst getPatientId = (doc) => (doc.fields && (doc.fields.patient_id || doc.fields.patient_uuid)) || doc.patient_id;\nconst getPlaceId = (doc) => (doc.fields && doc.fields.place_id) || doc.place_id;\n\n\nmodule.exports = {\n getId,\n validLinkedDocs,\n isReport,\n getPatientId,\n getPlaceId,\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/registration-utils/src/index.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/registration-utils/src/index.js ***!\n \\************************************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\nconst uniq = __webpack_require__(/*! lodash/uniq */ \"./build/cht-core-4-6/node_modules/lodash/uniq.js\");\n\nconst formCodeMatches = (conf, form) => {\n return (new RegExp('^[^a-z]*' + conf + '[^a-z]*$', 'i')).test(form);\n};\n\n// Returns whether `doc` is a valid registration against a configuration\n// This is done by checks roughly similar to the `registration` transition filter function\n// Serves as a replacement for checking for `transitions` metadata within the doc itself\nexports.isValidRegistration = (doc, settings) => {\n if (!doc ||\n (doc.errors && doc.errors.length) ||\n !settings ||\n !settings.registrations ||\n doc.type !== 'data_record' ||\n !doc.form) {\n return false;\n }\n\n // Registration transition should be configured for this form\n const registrationConfiguration = settings.registrations.find((conf) => {\n return conf &&\n conf.form &&\n formCodeMatches(conf.form, doc.form);\n });\n if (!registrationConfiguration) {\n return false;\n }\n\n if (doc.content_type === 'xml') {\n return true;\n }\n\n // SMS forms need to be configured\n const form = settings.forms && settings.forms[doc.form];\n if (!form) {\n return false;\n }\n\n // Require a known submitter or the form to be public.\n return Boolean(form.public_form || doc.contact);\n};\n\nexports._formCodeMatches = formCodeMatches;\n\nconst CONTACT_SUBJECT_PROPERTIES = ['_id', 'patient_id', 'place_id'];\nconst REPORT_SUBJECT_PROPERTIES = ['patient_id', 'patient_uuid', 'place_id', 'place_uuid'];\n\nexports.getSubjectIds = (doc) => {\n const subjectIds = [];\n\n if (!doc) {\n return subjectIds;\n }\n\n if (doc.type === 'data_record') {\n REPORT_SUBJECT_PROPERTIES.forEach(prop => {\n if (doc[prop]) {\n subjectIds.push(doc[prop]);\n }\n if (doc.fields && doc.fields[prop]) {\n subjectIds.push(doc.fields[prop]);\n }\n });\n } else {\n CONTACT_SUBJECT_PROPERTIES.forEach(prop => {\n if (doc[prop]) {\n subjectIds.push(doc[prop]);\n }\n });\n }\n\n return uniq(subjectIds);\n};\n\nexports.getSubjectId = report => {\n if (!report) {\n return false;\n }\n for (const prop of REPORT_SUBJECT_PROPERTIES) {\n if (report[prop]) {\n return report[prop];\n }\n if (report.fields && report.fields[prop]) {\n return report.fields[prop];\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/rules-engine/src/index.js\":\n/*!******************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/index.js ***!\n \\******************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\n * @module rules-engine\n *\n * Business logic for interacting with rules documents\n */\n\nconst pouchdbProvider = __webpack_require__(/*! ./pouchdb-provider */ \"./build/cht-core-4-6/shared-libs/rules-engine/src/pouchdb-provider.js\");\nconst rulesEmitter = __webpack_require__(/*! ./rules-emitter */ \"./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/index.js\");\nconst rulesStateStore = __webpack_require__(/*! ./rules-state-store */ \"./build/cht-core-4-6/shared-libs/rules-engine/src/rules-state-store.js\");\nconst wireupToProvider = __webpack_require__(/*! ./provider-wireup */ \"./build/cht-core-4-6/shared-libs/rules-engine/src/provider-wireup.js\");\n\n/**\n * @param {Object} db Medic pouchdb database\n */\nmodule.exports = db => {\n const provider = pouchdbProvider(db);\n return {\n /**\n * @param {Object} settings Settings for the behavior of the rules engine\n * @param {Object} settings.rules Rules code from settings doc\n * @param {Object[]} settings.taskSchedules Task schedules from settings doc\n * @param {Object[]} settings.targets Target definitions from settings doc\n * @param {Boolean} settings.enableTasks Flag to enable tasks\n * @param {Boolean} settings.enableTargets Flag to enable targets\n * @param {Boolean} [settings.rulesAreDeclarative=false] Flag to indicate the content of settings.rules. When true, \n * rules is processed as native JavaScript. When false, nools is used.\n * @param {RulesEmitter} [settings.customEmitter] Optional custom RulesEmitter object\n * @param {Object} settings.contact User's hydrated contact document\n * @param {Object} settings.user User's settings document\n */\n initialize: (settings) => wireupToProvider.initialize(provider, settings),\n\n /**\n * @returns {Boolean} True if the rules engine is enabled and ready for use\n */\n isEnabled: () => rulesEmitter.isEnabled() && rulesEmitter.isLatestNoolsSchema(),\n\n /**\n * Refreshes all rules documents for a set of contacts and returns their task documents\n *\n * @param {string[]} contactIds An array of contact ids. If undefined, returns tasks for all contacts\n * @returns {Promise} All the fresh task docs owned by contactIds\n */\n fetchTasksFor: contactIds => wireupToProvider.fetchTasksFor(provider, contactIds),\n\n /**\n * Returns a breakdown of tasks by state and title for the provided list of contacts\n *\n * @param {string[]} contactIds An array of contact ids. If undefined, returns breakdown for all contacts\n * @returns {Promise} The breakdown of tasks counts by state and title\n */\n fetchTasksBreakdown: contactIds => wireupToProvider.fetchTasksBreakdown(provider, contactIds),\n\n /**\n * Refreshes all rules documents and returns the latest target document\n *\n * @param {Object} filterInterval Target emissions with date within the interval will be aggregated into the\n * target scores\n * @param {Integer} filterInterval.start Start timestamp of interval\n * @param {Integer} filterInterval.end End timestamp of interval\n * @returns {Promise} Array of fresh targets\n */\n fetchTargets: filterInterval => wireupToProvider.fetchTargets(provider, filterInterval),\n\n /**\n * Indicate that the task documents associated with a given subjectId are dirty.\n *\n * @param {string[]} subjectIds An array of subject ids\n *\n * @returns {Promise} To mark the subjectIds as dirty\n */\n updateEmissionsFor: subjectIds => wireupToProvider.updateEmissionsFor(provider, subjectIds),\n\n /**\n * Determines if either the settings or user's hydrated contact document have changed in a way which will impact\n * the result of rules calculations.\n * If they have changed in a meaningful way, the calculation state of all contacts is reset\n *\n * @param {Object} settings Updated settings\n * @param {Object} settings.rules Rules code from settings doc\n * @param {Object[]} settings.taskSchedules Task schedules from settings doc\n * @param {Object[]} settings.targets Target definitions from settings doc\n * @param {Boolean} settings.enableTasks Flag to enable tasks\n * @param {Boolean} settings.enableTargets Flag to enable targets\n * @param {Boolean} [settings.rulesAreDeclarative=false] Flag to indicate the content of settings.rules. When true, \n * rules is native JavaScript. When false, nools is used\n * @param {RulesEmitter} [settings.customEmitter] Optional custom RulesEmitter object\n * @param {Object} settings.contact User's hydrated contact document\n * @param {Object} settings.user User's user-settings document\n */\n rulesConfigChange: (settings) => {\n const cacheIsReset = rulesStateStore.rulesConfigChange(settings);\n if (cacheIsReset) {\n rulesEmitter.shutdown();\n rulesEmitter.initialize(settings);\n }\n },\n\n /**\n * Returns a list of UUIDs of tracked contacts that are marked as dirty\n * @returns {Array} list of dirty contacts UUIDs\n */\n getDirtyContacts: () => rulesStateStore.getDirtyContacts(),\n };\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/rules-engine/src/pouchdb-provider.js\":\n/*!*****************************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/pouchdb-provider.js ***!\n \\*****************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\n * @module pouchdb-provider\n *\n * Wireup for accessing rules document data via medic pouch db\n */\n\n/* eslint-disable no-console */\nconst moment = __webpack_require__(/*! moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\");\nconst registrationUtils = __webpack_require__(/*! @medic/registration-utils */ \"./build/cht-core-4-6/shared-libs/registration-utils/src/index.js\");\nconst uniqBy = __webpack_require__(/*! lodash/uniqBy */ \"./build/cht-core-4-6/node_modules/lodash/uniqBy.js\");\n\nconst RULES_STATE_DOCID = '_local/rulesStateStore';\nconst MAX_QUERY_KEYS = 500;\n\nconst docsOf = (query) => {\n return query.then(result => {\n const rows = uniqBy(result.rows, 'id');\n return rows.map(row => row.doc).filter(existing => existing);\n });\n};\n\nconst rowsOf = (query) => query.then(result => uniqBy(result.rows, 'id'));\n\nconst medicPouchProvider = db => {\n const dbQuery = async (view, params) => {\n if (!params?.keys || params.keys.length < MAX_QUERY_KEYS) {\n return db.query(view, params);\n }\n\n const keys = new Set(params.keys);\n delete params.keys;\n const results = await db.query(view, params);\n const rows = results.rows.filter(row => keys.has(row.key));\n return { ...results, rows };\n };\n\n const self = {\n // PouchDB.query slows down when provided with a large keys array.\n // For users with ~1000 contacts it is ~50x faster to provider a start/end key instead of specifying all ids\n allTasks: prefix => {\n const options = { startkey: `${prefix}-`, endkey: `${prefix}-\\ufff0`, include_docs: true };\n return docsOf(dbQuery('medic-client/tasks_by_contact', options));\n },\n\n allTaskData: userSettingsDoc => {\n const userSettingsId = userSettingsDoc?._id;\n return Promise.all([\n docsOf(dbQuery('medic-client/contacts_by_type', { include_docs: true })),\n docsOf(dbQuery('medic-client/reports_by_subject', { include_docs: true })),\n self.allTasks('requester'),\n ])\n .then(([contactDocs, reportDocs, taskDocs]) => ({ contactDocs, reportDocs, taskDocs, userSettingsId }));\n },\n\n contactsBySubjectId: subjectIds => {\n const keys = subjectIds.map(key => ['shortcode', key]);\n return dbQuery('medic-client/contacts_by_reference', { keys, include_docs: true })\n .then(results => {\n const shortcodeIds = results.rows.map(result => result.doc._id);\n const idsThatArentShortcodes = subjectIds.filter(id => !results.rows.map(row => row.key[1]).includes(id));\n\n return [...shortcodeIds, ...idsThatArentShortcodes];\n });\n },\n\n stateChangeCallback: docUpdateClosure(db),\n\n commitTargetDoc: (targets, userContactDoc, userSettingsDoc, docTag, force = false) => { // NOSONAR\n const userContactId = userContactDoc?._id;\n const userSettingsId = userSettingsDoc?._id;\n const _id = `target~${docTag}~${userContactId}~${userSettingsId}`;\n const createNew = () => ({\n _id,\n type: 'target',\n user: userSettingsId,\n owner: userContactId,\n reporting_period: docTag,\n });\n\n const today = moment().startOf('day').valueOf();\n return db.get(_id)\n .catch(createNew)\n .then(existingDoc => {\n if (existingDoc.updated_date === today && !force) {\n return false;\n }\n\n existingDoc.targets = targets;\n existingDoc.updated_date = today;\n return db.put(existingDoc);\n });\n },\n\n commitTaskDocs: taskDocs => {\n if (!taskDocs || taskDocs.length === 0) {\n return Promise.resolve([]);\n }\n\n ;\n return db.bulkDocs(taskDocs)\n .catch(err => console.error('Error committing task documents', err));\n },\n\n existingRulesStateStore: () => db.get(RULES_STATE_DOCID).catch(() => ({ _id: RULES_STATE_DOCID })),\n\n tasksByRelation: (contactIds, prefix) => {\n const keys = contactIds.map(contactId => `${prefix}-${contactId}`);\n return docsOf(dbQuery( 'medic-client/tasks_by_contact', { keys, include_docs: true }));\n },\n\n allTaskRowsByOwner: (contactIds) => {\n const keys = contactIds.map(contactId => (['owner', 'all', contactId]));\n return rowsOf(dbQuery( 'medic-client/tasks_by_contact', { keys }));\n },\n\n allTaskRows: () => {\n const options = {\n startkey: ['owner', 'all'],\n endkey: ['owner', 'all', '\\ufff0'],\n };\n\n return rowsOf(dbQuery( 'medic-client/tasks_by_contact', options));\n },\n\n taskDataFor: (contactIds, userSettingsDoc) => {\n if (!contactIds || contactIds.length === 0) {\n return Promise.resolve({});\n }\n\n return docsOf(db.allDocs({ keys: contactIds, include_docs: true }))\n .then(contactDocs => {\n const subjectIds = contactDocs.reduce((agg, contactDoc) => {\n registrationUtils.getSubjectIds(contactDoc).forEach(subjectId => agg.add(subjectId));\n return agg;\n }, new Set(contactIds));\n\n const keys = Array.from(subjectIds);\n return Promise\n .all([\n docsOf(dbQuery('medic-client/reports_by_subject', { keys, include_docs: true })),\n self.tasksByRelation(contactIds, 'requester'),\n ])\n .then(([reportDocs, taskDocs]) => {\n // tighten the connection between reports and contacts\n // a report will only be allowed to generate tasks for a single contact!\n reportDocs = reportDocs.filter(report => {\n const subjectId = registrationUtils.getSubjectId(report);\n return subjectIds.has(subjectId);\n });\n\n return {\n userSettingsId: userSettingsDoc?._id,\n contactDocs,\n reportDocs,\n taskDocs,\n };\n });\n });\n },\n };\n\n return self;\n};\n\nmedicPouchProvider.RULES_STATE_DOCID = RULES_STATE_DOCID;\n\nconst docUpdateClosure = db => {\n // previousResult helps avoid conflict errors if this functions is used asynchronously\n let previousResult = Promise.resolve();\n return (baseDoc, assigned) => {\n Object.assign(baseDoc, assigned);\n\n previousResult = previousResult\n .then(() => db.put(baseDoc))\n .then(updatedDoc => (baseDoc._rev = updatedDoc.rev))\n .catch(err => console.error(`Error updating ${baseDoc._id}: ${err}`))\n .then(() => {\n // unsure of how browsers handle long promise chains, so break the chain when possible\n previousResult = Promise.resolve();\n });\n\n return previousResult;\n };\n};\n\nmodule.exports = medicPouchProvider;\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/rules-engine/src/provider-wireup.js\":\n/*!****************************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/provider-wireup.js ***!\n \\****************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\n * @module wireup\n *\n * Wireup a data provider to the rules-engine\n */\n\nconst moment = __webpack_require__(/*! moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\");\nconst registrationUtils = __webpack_require__(/*! @medic/registration-utils */ \"./build/cht-core-4-6/shared-libs/registration-utils/src/index.js\");\n\nconst TaskStates = __webpack_require__(/*! ./task-states */ \"./build/cht-core-4-6/shared-libs/rules-engine/src/task-states.js\");\nconst refreshRulesEmissions = __webpack_require__(/*! ./refresh-rules-emissions */ \"./build/cht-core-4-6/shared-libs/rules-engine/src/refresh-rules-emissions.js\");\nconst rulesEmitter = __webpack_require__(/*! ./rules-emitter */ \"./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/index.js\");\nconst rulesStateStore = __webpack_require__(/*! ./rules-state-store */ \"./build/cht-core-4-6/shared-libs/rules-engine/src/rules-state-store.js\");\nconst updateTemporalStates = __webpack_require__(/*! ./update-temporal-states */ \"./build/cht-core-4-6/shared-libs/rules-engine/src/update-temporal-states.js\");\nconst calendarInterval = __webpack_require__(/*! @medic/calendar-interval */ \"./build/cht-core-4-6/shared-libs/calendar-interval/src/index.js\");\n\nlet wireupOptions;\n\nmodule.exports = {\n /**\n * @param {Object} provider A data provider\n * @param {Object} settings Settings for the behavior of the provider\n * @param {Object} settings.rules Rules code from settings doc\n * @param {Object[]} settings.taskSchedules Task schedules from settings doc\n * @param {Object[]} settings.targets Target definitions from settings doc\n * @param {Boolean} settings.enableTasks Flag to enable tasks\n * @param {Boolean} settings.enableTargets Flag to enable targets\n * @param {Boolean} [settings.rulesAreDeclarative=true] Flag to indicate the content of settings.rules. When true,\n * rules is processed as native JavaScript. When false, nools is used.\n * @param {RulesEmitter} [settings.customEmitter] Optional custom RulesEmitter object\n * @param {number} settings.monthStartDate reporting interval start date\n * @param {Object} userDoc User's hydrated contact document\n */\n initialize: (provider, settings) => {\n const isEnabled = rulesEmitter.initialize(settings);\n if (!isEnabled) {\n return Promise.resolve();\n }\n\n const { enableTasks=true, enableTargets=true } = settings;\n wireupOptions = { enableTasks, enableTargets };\n\n return provider\n .existingRulesStateStore()\n .then(existingStateDoc => {\n if (!rulesEmitter.isLatestNoolsSchema()) {\n throw Error('Rules Engine: Updates to the nools schema are required');\n }\n\n const contactClosure = updatedState => provider.stateChangeCallback(\n existingStateDoc,\n { rulesStateStore: updatedState }\n );\n const needsBuilding = rulesStateStore.load(existingStateDoc.rulesStateStore, settings, contactClosure);\n return handleIntervalTurnover(provider, settings).then(() => {\n if (!needsBuilding) {\n return;\n }\n\n rulesStateStore.build(settings, contactClosure);\n });\n });\n },\n\n /**\n * Refreshes the rules emissions for all contacts\n * Fetches all tasks in non-terminal state owned by the contacts\n * Updates the temporal states of the task documents\n * Commits those changes (async)\n *\n * @param {Object} provider A data provider\n * @param {string[]} contactIds An array of contact ids. If undefined, returns tasks for all contacts\n * @returns {Promise} All the fresh task docs owned by contacts\n */\n fetchTasksFor: (provider, contactIds) => {\n if (!rulesEmitter.isEnabled() || !wireupOptions.enableTasks) {\n return disabledResponse();\n }\n\n return enqueue(() => {\n const calculationTimestamp = Date.now();\n return refreshRulesEmissionForContacts(provider, calculationTimestamp, contactIds)\n .then(() => contactIds ? provider.tasksByRelation(contactIds, 'owner') : provider.allTasks('owner'))\n .then(tasksToDisplay => {\n const docsToCommit = updateTemporalStates(tasksToDisplay, calculationTimestamp);\n provider.commitTaskDocs(docsToCommit);\n return tasksToDisplay.filter(taskDoc => taskDoc.state === TaskStates.Ready);\n });\n });\n },\n\n /**\n * Returns a breakdown of task counts by state and title for the provided contacts, or all contacts\n * Does NOT refresh rules emissions\n * @param {Object} provider A data provider\n * @param {string[]} contactIds An array of contact ids. If undefined, returns breakdown for all contacts\n * @return {Promise<{\n * Ready: number,\n * Draft: number,\n * Failed: number,\n * Completed: number,\n * Cancelled: number,\n *}>}\n */\n fetchTasksBreakdown: (provider, contactIds) => {\n const tasksByState = Object.assign({}, TaskStates.states);\n Object\n .keys(tasksByState)\n .forEach(state => tasksByState[state] = 0);\n\n if (!rulesEmitter.isEnabled() || !wireupOptions.enableTasks) {\n return Promise.resolve(tasksByState);\n }\n\n const getTasks = contactIds ? provider.allTaskRowsByOwner(contactIds) : provider.allTaskRows();\n\n return getTasks.then(taskRows => {\n taskRows.forEach(({ value: { state } }) => {\n if (Object.hasOwnProperty.call(tasksByState, state)) {\n tasksByState[state]++;\n }\n });\n\n return tasksByState;\n });\n },\n\n /**\n * Refreshes the rules emissions for all contacts\n *\n * @param {Object} provider A data provider\n * @param {Object} filterInterval Target emissions with date within the interval will be aggregated into the target\n * scores\n * @param {Integer} filterInterval.start Start timestamp of interval\n * @param {Integer} filterInterval.end End timestamp of interval\n * @returns {Promise} The fresh aggregate target doc\n */\n fetchTargets: (provider, filterInterval) => {\n if (!rulesEmitter.isEnabled() || !wireupOptions.enableTargets) {\n return disabledResponse();\n }\n\n const calculationTimestamp = Date.now();\n const targetEmissionFilter = filterInterval && (emission => {\n // 4th parameter of isBetween represents inclusivity. By default or using ( is exclusive, [ is inclusive\n return moment(emission.date).isBetween(filterInterval.start, filterInterval.end, null, '[]');\n });\n\n return enqueue(() => {\n return refreshRulesEmissionForContacts(provider, calculationTimestamp)\n .then(() => {\n const targets = rulesStateStore.aggregateStoredTargetEmissions(targetEmissionFilter);\n return storeTargetsDoc(provider, targets, filterInterval).then(() => targets);\n });\n });\n },\n\n /**\n * Indicate that the rules emissions associated with a given subjectId are dirty\n *\n * @param {Object} provider A data provider\n * @param {string[]} subjectIds An array of subject ids\n *\n * @returns {Promise} To complete the transaction marking the subjectIds as dirty\n */\n updateEmissionsFor: (provider, subjectIds) => {\n if (!subjectIds) {\n subjectIds = [];\n }\n\n if (subjectIds && !Array.isArray(subjectIds)) {\n subjectIds = [subjectIds];\n }\n\n // this function accepts subject ids, but rulesStateStore accepts a contact id, so a conversion is required\n return enqueue(() => {\n return provider\n .contactsBySubjectId(subjectIds)\n .then(contactIds => rulesStateStore.markDirty(contactIds));\n });\n },\n};\n\nlet refreshQueue = Promise.resolve();\nconst enqueue = callback => {\n const listeners = [];\n const eventQueue = [];\n const emit = evtName => {\n // we have to emit `queued` immediately, but there are no listeners listening at this point\n // eventQueue will keep a list of listener-less events. when listeners are registered, we check if they\n // have events in eventQueue, and call their callback immediately for each matching queued event.\n if (!listeners[evtName]) {\n return eventQueue.push(evtName);\n }\n listeners[evtName].forEach(callback => callback());\n };\n\n emit('queued');\n refreshQueue = refreshQueue.then(() => {\n emit('running');\n return callback();\n });\n\n refreshQueue.on = (evtName, callback) => {\n listeners[evtName] = listeners[evtName] || [];\n listeners[evtName].push(callback);\n eventQueue.forEach(queuedEvent => queuedEvent === evtName && callback());\n return refreshQueue;\n };\n\n return refreshQueue;\n};\n\nconst disabledResponse = () => {\n const p = Promise.resolve([]);\n p.on = () => p;\n return p;\n};\n\nconst refreshRulesEmissionForContacts = (provider, calculationTimestamp, contactIds) => {\n const refreshAndSave = (freshData, updatedContactIds) => (\n refreshRulesEmissions(freshData, calculationTimestamp, wireupOptions)\n .then(refreshed => Promise.all([\n rulesStateStore.storeTargetEmissions(updatedContactIds, refreshed.targetEmissions),\n provider.commitTaskDocs(refreshed.updatedTaskDocs),\n ]))\n );\n\n const refreshForAllContacts = (calculationTimestamp) => (\n provider.allTaskData(rulesStateStore.currentUserSettings())\n .then(freshData => (\n refreshAndSave(freshData)\n .then(() => {\n const contactIds = freshData.contactDocs.map(doc => doc._id);\n\n const subjectIds = freshData.contactDocs.reduce((agg, contactDoc) => {\n registrationUtils.getSubjectIds(contactDoc).forEach(subjectId => agg.add(subjectId));\n return agg;\n }, new Set());\n\n const headlessSubjectIds = freshData.reportDocs\n .map(doc => registrationUtils.getSubjectId(doc))\n .filter(subjectId => !subjectIds.has(subjectId));\n\n rulesStateStore.markAllFresh(calculationTimestamp, [...contactIds, ...headlessSubjectIds]);\n })\n ))\n );\n\n const refreshForKnownContacts = (calculationTimestamp, contactIds) => {\n const dirtyContactIds = contactIds.filter(contactId => rulesStateStore.isDirty(contactId));\n return provider.taskDataFor(dirtyContactIds, rulesStateStore.currentUserSettings())\n .then(freshData => refreshAndSave(freshData, dirtyContactIds))\n .then(() => {\n rulesStateStore.markFresh(calculationTimestamp, dirtyContactIds);\n });\n };\n\n return handleIntervalTurnover(provider, { monthStartDate: rulesStateStore.getMonthStartDate() }).then(() => {\n if (contactIds) {\n return refreshForKnownContacts(calculationTimestamp, contactIds);\n }\n\n // If the contact state store does not contain all contacts, build up that list (contact doc ids + headless ids in\n // reports/tasks)\n if (!rulesStateStore.hasAllContacts()) {\n return refreshForAllContacts(calculationTimestamp);\n }\n\n // Once the contact state store has all contacts, trust it and only refresh those marked dirty\n return refreshForKnownContacts(calculationTimestamp, rulesStateStore.getContactIds());\n });\n};\n\nconst storeTargetsDoc = (provider, targets, filterInterval, force = false) => {\n const targetDocTag = filterInterval ? moment(filterInterval.end).format('YYYY-MM') : 'latest';\n const minifyTarget = target => ({ id: target.id, value: target.value });\n\n return provider.commitTargetDoc(\n targets.map(minifyTarget),\n rulesStateStore.currentUserContact(),\n rulesStateStore.currentUserSettings(),\n targetDocTag,\n force\n );\n};\n\n// Because we only save the `target` document once per day (when we calculate targets for the first time),\n// we're losing all updates to targets that happened in the last day of the reporting period.\n// This function takes the last saved state (which may be stale) and generates the targets doc for the corresponding\n// reporting interval (that includes the date when the state was calculated).\n// We don't recalculate the state prior to this because we support targets that count events infinitely to emit `now`,\n// which means that they would all be excluded from the emission filter (being outside the past reporting interval).\n// https://github.com/medic/cht-core/issues/6209\nconst handleIntervalTurnover = (provider, { monthStartDate }) => {\n if (!rulesStateStore.isLoaded() || !wireupOptions.enableTargets) {\n return Promise.resolve();\n }\n\n const stateCalculatedAt = rulesStateStore.stateLastUpdatedAt();\n if (!stateCalculatedAt) {\n return Promise.resolve();\n }\n\n const currentInterval = calendarInterval.getCurrent(monthStartDate);\n // 4th parameter of isBetween represents inclusivity. By default or using ( is exclusive, [ is inclusive\n if (moment(stateCalculatedAt).isBetween(currentInterval.start, currentInterval.end, null, '[]')) {\n return Promise.resolve();\n }\n\n const filterInterval = calendarInterval.getInterval(monthStartDate, stateCalculatedAt);\n const targetEmissionFilter = (emission => {\n // 4th parameter of isBetween represents inclusivity. By default or using ( is exclusive, [ is inclusive\n return moment(emission.date).isBetween(filterInterval.start, filterInterval.end, null, '[]');\n });\n\n const targets = rulesStateStore.aggregateStoredTargetEmissions(targetEmissionFilter);\n return storeTargetsDoc(provider, targets, filterInterval, true);\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/rules-engine/src/refresh-rules-emissions.js\":\n/*!************************************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/refresh-rules-emissions.js ***!\n \\************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\n * @module refresh-rules-emissions\n * Uses rules-emitter to calculate the fresh emissions for a set of contacts, their reports, and their tasks\n * Creates or updates one task document per unique emission id\n * Cancels task documents in non-terminal states if they were not emitted\n *\n * @requires rules-emitter to be initialized\n */\n\nconst rulesEmitter = __webpack_require__(/*! ./rules-emitter */ \"./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/index.js\");\nconst TaskStates = __webpack_require__(/*! ./task-states */ \"./build/cht-core-4-6/shared-libs/rules-engine/src/task-states.js\");\nconst transformTaskEmissionToDoc = __webpack_require__(/*! ./transform-task-emission-to-doc */ \"./build/cht-core-4-6/shared-libs/rules-engine/src/transform-task-emission-to-doc.js\");\n\n/**\n * @param {Object[]} freshData.contactDocs A set of contact documents\n * @param {Object[]} freshData.reportDocs All of the contacts' reports\n * @param {Object[]} freshData.taskDocs All of the contacts' task documents (must be linked by requester to a contact)\n * @param {Object[]} freshData.userSettingsId The id of the user's settings document\n *\n * @param {int} calculationTimestamp Timestamp for the round of rules calculations\n *\n * @param {Object=} [options] Options for the behavior when refreshing rules\n * @param {Boolean} [options.enableTasks=true] Flag to enable tasks\n * @param {Boolean} [options.enableTargets=true] Flag to enable targets\n *\n * @returns {Object} result\n * @returns {Object[]} result.targetEmissions Array of raw target emissions\n * @returns {Object[]} result.updatedTaskDocs Array of updated task documents\n */\nmodule.exports = (freshData = {}, calculationTimestamp = Date.now(), { enableTasks=true, enableTargets=true }={}) => {\n const { contactDocs = [], reportDocs = [], taskDocs = [] } = freshData;\n return rulesEmitter.getEmissionsFor(contactDocs, reportDocs, taskDocs)\n .then(emissions => Promise.all([\n enableTasks ? getUpdatedTaskDocs(emissions.tasks, freshData, calculationTimestamp, enableTasks) : [],\n enableTargets ? emissions.targets : [],\n ]))\n .then(([updatedTaskDocs, targetEmissions]) => ({ updatedTaskDocs, targetEmissions }));\n};\n\nconst getUpdatedTaskDocs = (taskEmissions, freshData, calculationTimestamp) => {\n const { taskDocs = [], userSettingsId } = freshData;\n const { winners: emissionIdToLatestDocMap, duplicates: duplicateTaskDocs } = disambiguateTaskDocs(\n taskDocs,\n calculationTimestamp\n );\n\n const timelyEmissions = taskEmissions.filter(emission => TaskStates.isTimely(emission, calculationTimestamp));\n const taskTransforms = disambiguateEmissions(timelyEmissions, calculationTimestamp)\n .map(taskEmission => {\n const existingDoc = emissionIdToLatestDocMap[taskEmission._id];\n return transformTaskEmissionToDoc(taskEmission, calculationTimestamp, userSettingsId, existingDoc);\n });\n\n const freshTaskDocs = taskTransforms.map(doc => doc.taskDoc);\n const cancelledDocs = getCancellationUpdates(freshTaskDocs, freshData.taskDocs, calculationTimestamp);\n const cancelledDuplicatedDocs = getDeduplicationUpdates(duplicateTaskDocs, calculationTimestamp);\n const updatedTaskDocs = taskTransforms.filter(doc => doc.isUpdated).map(result => result.taskDoc);\n return [...updatedTaskDocs, ...cancelledDocs, ...cancelledDuplicatedDocs];\n};\n\n/**\n * Examine the existing task documents which were previously emitted by the same contact\n * Cancel any doc that is in a non-terminal state and does not have an emission to keep it alive\n */\nconst getCancellationUpdates = (freshDocs, existingTaskDocs = [], calculatedAt = 0) => {\n const existingNonTerminalTaskDocs = existingTaskDocs.filter(doc => !TaskStates.isTerminal(doc.state));\n const currentEmissionIds = new Set(freshDocs.map(doc => doc.emission._id));\n\n return existingNonTerminalTaskDocs\n .filter(doc => !currentEmissionIds.has(doc.emission._id))\n .map(doc => TaskStates.setStateOnTaskDoc(doc, TaskStates.Cancelled, calculatedAt));\n};\n\n/**\n * All duplicate task docs that are not in a terminal state are \"Cancelled\" with a \"duplicate\" reason\n * @param {Array} duplicatedTaskDocs - array of task docs that exist in the local DB\n * @param {number} calculatedAt - Timestamp for the round of rules calculations\n * @returns {Array} - task docs with updated state\n */\nconst getDeduplicationUpdates = (duplicatedTaskDocs, calculatedAt) => {\n return duplicatedTaskDocs\n .filter(doc => !TaskStates.isTerminal(doc.state))\n .map(doc => TaskStates.setStateOnTaskDoc(doc, TaskStates.Cancelled, calculatedAt, 'duplicate'));\n};\n\n/*\nIt is possible to receive multiple emissions with the same id. When this happens, we need to pick one winner.\nWe pick the \"most ready\" emission.\n*/\nconst disambiguateEmissions = (taskEmissions, forTime) => {\n const winners = taskEmissions.reduce((agg, emission) => {\n if (!agg[emission._id]) {\n agg[emission._id] = emission;\n } else {\n const incomingState = TaskStates.calculateState(emission, forTime) || TaskStates.Cancelled;\n const currentState = TaskStates.calculateState(agg[emission._id], forTime) || TaskStates.Cancelled;\n if (TaskStates.isMoreReadyThan(incomingState, currentState)) {\n agg[emission._id] = emission;\n }\n }\n return agg;\n }, {});\n\n return Object.keys(winners).map(key => winners[key]); // Object.values()\n};\n\n/**\n * It's possible to have multiple task docs with the same emission id. (For example, when the same account logs in\n * on multiple devices). When this happens, we pick the \"most ready\" most recent task. However, tasks that are authored\n * in the future are discarded.\n * @param {Array} taskDocs - An array of already exiting task documents\n * @param {number} forTime - current calculation timestamp\n * @returns {Object} result\n * @returns {Object} result.winners - A map of emission id to task pairs\n * @returns {Array} result.duplicates - A list of task documents that are duplicates and need to be cancelled\n */\nconst disambiguateTaskDocs = (taskDocs, forTime) => {\n const duplicates = [];\n const winners = {};\n\n const taskDocsByEmissionId = mapEmissionIdToTaskDocs(taskDocs, forTime);\n\n Object.keys(taskDocsByEmissionId).forEach(emissionId => {\n taskDocsByEmissionId[emissionId].forEach(taskDoc => {\n if (!winners[emissionId]) {\n winners[emissionId] = taskDoc;\n return;\n }\n\n const stateComparison = TaskStates.compareState(taskDoc.state, winners[emissionId].state);\n if (\n // if taskDoc is more ready\n stateComparison < 0 ||\n // or taskDoc is more recent, when having the same state\n (stateComparison === 0 && taskDoc.authoredOn > winners[emissionId].authoredOn)\n ) {\n duplicates.push(winners[emissionId]);\n winners[emissionId] = taskDoc;\n } else {\n duplicates.push(taskDoc);\n }\n });\n });\n\n return { winners, duplicates };\n};\n\nconst mapEmissionIdToTaskDocs = (taskDocs, maxTimestamp) => {\n const tasksByEmission = {};\n taskDocs\n // mitigate the fallout of a user who rewinds their system-clock after creating task docs\n .filter(doc => doc.authoredOn <= maxTimestamp)\n .forEach(doc => {\n const emissionId = doc.emission._id;\n if (!tasksByEmission[emissionId]) {\n tasksByEmission[emissionId] = [];\n }\n tasksByEmission[emissionId].push(doc);\n });\n return tasksByEmission;\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.javascript.js\":\n/*!*********************************************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.javascript.js ***!\n \\*********************************************************************************************/\n/***/ ((module) => {\n\n/**\n * @module emitter.javascript\n * Processes declarative configuration code by executing javascript rules directly\n */\n\nclass Contact {\n constructor({ contact, reports, tasks}) {\n this.contact = contact;\n this.reports = reports;\n this.tasks = tasks;\n }\n}\n\n// required by marshalDocsByContact\nContact.prototype.tasks = 'defined';\n\nclass Task {\n constructor(x) {\n Object.assign(this, x);\n }\n}\n\nclass Target {\n constructor(x) {\n Object.assign(this, x);\n }\n}\n\nlet processDocsByContact;\nconst results = { tasks: [], targets: [] };\n\nmodule.exports = {\n getContact: () => Contact,\n initialize: (settings, scope) => {\n const rawFunction = new Function('c', 'Task', 'Target', 'Utils', 'user', 'cht', 'emit', settings.rules);\n processDocsByContact = container => rawFunction(\n container,\n Task,\n Target,\n scope.Utils,\n scope.user,\n scope.cht,\n emitCallback,\n );\n return true;\n },\n\n startSession: () => {\n if (!processDocsByContact) {\n throw Error('Failed to start task session. Not initialized');\n }\n\n results.tasks = [];\n results.targets = [];\n \n return {\n processDocsByContact,\n result: () => Promise.resolve(results),\n dispose: () => {},\n };\n },\n\n isLatestNoolsSchema: () => true,\n\n shutdown: () => {\n processDocsByContact = undefined;\n },\n};\n\nconst emitCallback = (instanceType, instance) => {\n if (instanceType === 'task') {\n results.tasks.push(instance);\n } else if (instanceType === 'target') {\n results.targets.push(instance);\n }\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.nools.js\":\n/*!****************************************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.nools.js ***!\n \\****************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\n * @module emitter.nools\n * Encapsulates interactions with the nools library\n * Promisifies the execution of partner \"rules\" code\n * Ensures memory allocated by nools is freed after each run\n */\nconst nools = __webpack_require__(/*! nools */ \"./build/cht-core-4-6/node_modules/nools/index.js\");\n\nlet flow;\n\nconst startSession = function() {\n if (!flow) {\n throw Error('Failed to start task session. Not initialized');\n }\n\n const session = flow.getSession();\n const tasks = [];\n const targets = [];\n session.on('task', task => tasks.push(task));\n session.on('target', target => targets.push(target));\n\n return {\n assert: session.assert.bind(session),\n dispose: session.dispose.bind(session),\n\n // session.match can return a thenable but not a promise. so wrap it in a real promise\n match: () => new Promise((resolve, reject) => {\n session.match(err => {\n session.dispose();\n if (err) {\n return reject(err);\n }\n\n resolve({ tasks, targets });\n });\n }),\n };\n};\n\nmodule.exports = {\n getContact: () => flow.getDefined('contact'),\n initialize: (settings, scope) => {\n flow = nools.compile(settings.rules, {\n name: 'medic',\n scope,\n });\n\n return !!flow;\n },\n startSession: () => {\n const session = startSession();\n return {\n processDocsByContact: session.assert,\n dispose: session.dispose,\n result: session.match,\n };\n },\n\n /**\n * When upgrading to version 3.8, partners are required to make schema changes in their partner code\n * https://docs.communityhealthtoolkit.org/core/releases/3.8.0/#breaking-changes\n *\n * @returns True if the schema changes are in place\n */\n isLatestNoolsSchema: () => {\n if (!flow) {\n throw Error('task emitter is not enabled -- cannot determine schema version');\n }\n\n const Task = flow.getDefined('task');\n const Target = flow.getDefined('target');\n const hasProperty = (obj, attr) => Object.hasOwnProperty.call(obj, attr);\n return hasProperty(Task.prototype, 'readyStart') &&\n hasProperty(Task.prototype, 'readyEnd') &&\n hasProperty(Target.prototype, 'contact');\n },\n\n shutdown: () => {\n nools.deleteFlows();\n flow = undefined;\n },\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/index.js\":\n/*!********************************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/index.js ***!\n \\********************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\n * @module rules-emitter\n * Handles the lifecycle of a @RulesEmitter and marshales of documents into the emitter by contact\n * \n * @typedef {Object} RulesEmitter Responsible for executing the logic in _rules_ and returning _emissions_\n */\nconst nootils = __webpack_require__(/*! cht-nootils */ \"./build/cht-core-4-6/node_modules/cht-nootils/src/nootils.js\");\nconst registrationUtils = __webpack_require__(/*! @medic/registration-utils */ \"./build/cht-core-4-6/shared-libs/registration-utils/src/index.js\");\n\nconst javascriptEmitter = __webpack_require__(/*! ./emitter.javascript */ \"./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.javascript.js\");\nconst noolsEmitter = __webpack_require__(/*! ./emitter.nools */ \"./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.nools.js\");\n\nlet emitter;\n\n/**\n* Sets the rules emitter to an uninitialized state.\n*/\nconst shutdown = () => {\n if (emitter) {\n emitter.shutdown();\n }\n\n emitter = undefined;\n};\n\nmodule.exports = {\n /**\n * Initializes the rules emitter\n *\n * @param {Object} settings Settings for the behavior of the rules emitter\n * @param {Object} settings.rules Rules code from settings doc\n * @param {Object[]} settings.taskSchedules Task schedules from settings doc\n * @param {Boolean} [settings.rulesAreDeclarative=true] Flag to indicate the content of settings.rules. When true, \n * rules is processed as native JavaScript. When false, nools is used.\n * @param {RulesEmitter} [settings.customEmitter] Optional custom RulesEmitter object\n * @param {Object} settings.contact The logged in user's contact document\n * @returns {Boolean} Success\n */\n initialize: (settings) => {\n if (emitter) {\n throw Error('Attempted to initialize the rules emitter multiple times.');\n }\n\n if (!settings.rules) {\n return false;\n }\n\n shutdown();\n emitter = resolveEmitter(settings);\n\n try {\n const settingsDoc = { tasks: { schedules: settings.taskSchedules } };\n const nootilsInstance = nootils(settingsDoc);\n const scope = {\n Utils: nootilsInstance,\n user: settings.contact,\n cht: settings.chtScriptApi,\n };\n return emitter.initialize(settings, scope);\n } catch (err) {\n shutdown();\n throw err;\n }\n },\n\n /**\n * When upgrading to version 3.8, partners are required to make schema changes in their partner code\n * https://docs.communityhealthtoolkit.org/core/releases/3.8.0/#breaking-changes\n *\n * @returns True if the schema changes are in place\n */\n isLatestNoolsSchema: () => {\n if (!emitter) {\n throw Error('task emitter is not enabled -- cannot determine schema version');\n }\n\n return emitter.isLatestNoolsSchema();\n },\n\n /**\n * Runs the partner's rules code for a set of documents and returns all emissions from nools\n *\n * @param {Object[]} contactDocs A set of contact documents\n * @param {Object[]} reportDocs All of the contacts' reports\n * @param {Object[]} taskDocs All of the contacts' task documents (must be linked by requester to a contact)\n *\n * @returns {Promise} emissions The raw emissions from nools\n * @returns {Object[]} emissions.tasks Array of task emissions\n * @returns {Object[]} emissions.targets Array of target emissions\n */\n getEmissionsFor: (contactDocs, reportDocs = [], taskDocs = []) => {\n if (!emitter) {\n throw Error('task emitter is not enabled -- cannot get emissions');\n }\n\n if (!Array.isArray(contactDocs)) {\n throw Error('invalid argument: contactDocs is expected to be an array');\n }\n\n if (!Array.isArray(reportDocs)) {\n throw Error('invalid argument: reportDocs is expected to be an array');\n }\n\n if (!Array.isArray(taskDocs)) {\n throw Error('invalid argument: taskDocs is expected to be an array');\n }\n\n const session = emitter.startSession();\n try {\n const Contact = emitter.getContact();\n const docsByContact = marshalDocsByContact(Contact, contactDocs, reportDocs, taskDocs);\n docsByContact.forEach(session.processDocsByContact);\n } catch (err) {\n session.dispose();\n throw err;\n }\n\n return session.result();\n },\n\n /**\n * @returns True if the rules emitter is initialized and ready for use\n */\n isEnabled: () => !!emitter,\n\n shutdown,\n};\n\nconst marshalDocsByContact = (Contact, contactDocs, reportDocs, taskDocs) => {\n const factByContactId = contactDocs.reduce((agg, contact) => {\n agg[contact._id] = new Contact({ contact, reports: [], tasks: [] });\n return agg;\n }, {});\n\n const factBySubjectId = contactDocs.reduce((agg, contactDoc) => {\n const subjectIds = registrationUtils.getSubjectIds(contactDoc);\n for (const subjectId of subjectIds) {\n if (!agg[subjectId]) {\n agg[subjectId] = factByContactId[contactDoc._id];\n }\n }\n return agg;\n }, {});\n\n const addHeadlessContact = (contactId) => {\n const contact = contactId ? { _id: contactId } : undefined;\n const newFact = new Contact({ contact, reports: [], tasks: [] });\n factByContactId[contactId] = factBySubjectId[contactId] = newFact;\n return newFact;\n };\n\n for (const report of reportDocs) {\n const subjectIdInReport = registrationUtils.getSubjectId(report);\n const factOfPatient = factBySubjectId[subjectIdInReport] || addHeadlessContact(subjectIdInReport);\n factOfPatient.reports.push(report);\n }\n\n if (Object.hasOwnProperty.call(Contact.prototype, 'tasks')) {\n for (const task of taskDocs) {\n const sourceId = task.requester;\n const factOfPatient = factBySubjectId[sourceId] || addHeadlessContact(sourceId);\n factOfPatient.tasks.push(task);\n }\n }\n\n return Object.keys(factByContactId).map(key => {\n factByContactId[key].reports = factByContactId[key].reports.sort((a, b) => a.reported_date - b.reported_date);\n return factByContactId[key];\n }); // Object.values(factByContactId)\n};\n\nconst resolveEmitter = (settings = {}) => {\n const { rulesAreDeclarative, customEmitter } = settings;\n if (customEmitter !== null && typeof customEmitter === 'object') {\n return customEmitter;\n }\n \n return rulesAreDeclarative ? javascriptEmitter : noolsEmitter;\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/rules-engine/src/rules-state-store.js\":\n/*!******************************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/rules-state-store.js ***!\n \\******************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\n * @module rules-state-store\n * In-memory datastore containing\n * 1. Details on the state of each contact's rules calculations\n * 2. Target emissions @see target-state\n */\nconst md5 = __webpack_require__(/*! md5 */ \"./build/cht-core-4-6/node_modules/md5/md5.js\");\nconst calendarInterval = __webpack_require__(/*! @medic/calendar-interval */ \"./build/cht-core-4-6/shared-libs/calendar-interval/src/index.js\");\nconst targetState = __webpack_require__(/*! ./target-state */ \"./build/cht-core-4-6/shared-libs/rules-engine/src/target-state.js\");\n\nconst EXPIRE_CALCULATION_AFTER_MS = 7 * 24 * 60 * 60 * 1000;\nlet state;\nlet currentUserContact;\nlet currentUserSettings;\nlet onStateChange;\n\nconst self = {\n /**\n * Initializes the rules-state-store from an existing state. If existing state is invalid, builds an empty state.\n *\n * @param {Object} existingState State object previously passed to the stateChangeCallback\n * @param {Object} settings Settings for the behavior of the rules store\n * @param {Object} settings.contact User's hydrated contact document\n * @param {Object} settings.user User's user-settings document\n * @param {Object} stateChangeCallback Callback which is invoked whenever the state changes.\n * Receives the updated state as the only parameter.\n * @returns {Boolean} that represents whether or not the state needs to be rebuilt\n */\n load: (existingState, settings, stateChangeCallback) => {\n if (state) {\n throw Error('Attempted to initialize the rules-state-store multiple times.');\n }\n\n state = existingState;\n currentUserContact = settings.contact;\n currentUserSettings = settings.user;\n setOnChangeState(stateChangeCallback);\n\n const rulesConfigHash = hashRulesConfig(settings);\n if (state && state.rulesConfigHash !== rulesConfigHash) {\n state.stale = true;\n }\n\n return !state || state.stale;\n },\n\n /**\n * Initializes an empty rules-state-store.\n *\n * @param {Object} settings Settings for the behavior of the rules store\n * @param {Object} settings.contact User's hydrated contact document\n * @param {Object} settings.user User's user-settings document\n * @param {number} settings.monthStartDate reporting interval start date\n * @param {Object} stateChangeCallback Callback which is invoked whenever the state changes.\n * Receives the updated state as the only parameter.\n */\n build: (settings, stateChangeCallback) => {\n if (state && !state.stale) {\n throw Error('Attempted to initialize the rules-state-store multiple times.');\n }\n\n state = {\n rulesConfigHash: hashRulesConfig(settings),\n contactState: {},\n targetState: targetState.createEmptyState(settings.targets),\n monthStartDate: settings.monthStartDate,\n };\n currentUserContact = settings.contact;\n currentUserSettings = settings.user;\n\n setOnChangeState(stateChangeCallback);\n return onStateChange(state);\n },\n\n /**\n * \"Dirty\" indicates that the contact's task documents are not up to date. They should be refreshed before being used.\n *\n * The dirty state can be due to:\n * 1. The time of a contact's most recent task calculation is unknown\n * 2. The contact's most recent task calculation expires\n * 3. The contact is explicitly marked as dirty\n * 4. Configurations impacting rules calculations have changed\n *\n * @param {string} contactId The id of the contact to test for dirtiness\n * @returns {Boolean} True if dirty\n */\n isDirty: contactId => {\n if (!contactId) {\n return false;\n }\n\n if (!state.contactState[contactId]) {\n return true;\n }\n\n const now = Date.now();\n const { calculatedAt, expireAt, isDirty } = state.contactState[contactId];\n return !expireAt ||\n isDirty ||\n calculatedAt > now || /* system clock changed */\n expireAt < now; /* isExpired */\n },\n\n /**\n * Determines if either the settings document or user's hydrated contact document have changed in a way which\n * will impact the result of rules calculations.\n * If they have changed in a meaningful way, the calculation state of all contacts is reset\n *\n * @param {Object} settings Settings for the behavior of the rules store\n * @returns {Boolean} True if the state of all contacts has been reset\n */\n rulesConfigChange: (settings) => {\n const rulesConfigHash = hashRulesConfig(settings);\n if (state.rulesConfigHash !== rulesConfigHash) {\n state = {\n rulesConfigHash,\n contactState: {},\n targetState: targetState.createEmptyState(settings.targets),\n monthStartDate: settings.monthStartDate,\n };\n currentUserContact = settings.contact;\n currentUserSettings = settings.user;\n\n onStateChange(state);\n return true;\n }\n\n return false;\n },\n\n /**\n * @param {int} calculatedAt Timestamp of the calculation\n * @param {string[]} contactIds Array of contact ids to be marked as freshly calculated\n */\n markFresh: (calculatedAt, contactIds) => {\n if (!Array.isArray(contactIds)) {\n contactIds = [contactIds];\n }\n contactIds = contactIds.filter(id => id);\n\n if (contactIds.length === 0) {\n return;\n }\n\n const reportingInterval = calendarInterval.getCurrent(state.monthStartDate);\n const defaultExpiry = calculatedAt + EXPIRE_CALCULATION_AFTER_MS;\n\n for (const contactId of contactIds) {\n state.contactState[contactId] = {\n calculatedAt,\n expireAt: Math.min(reportingInterval.end, defaultExpiry),\n };\n }\n\n return onStateChange(state);\n },\n\n /**\n * @param {string[]} contactIds Array of contact ids to be marked as dirty\n */\n markDirty: contactIds => {\n if (!Array.isArray(contactIds)) {\n contactIds = [contactIds];\n }\n contactIds = contactIds.filter(id => id);\n\n if (contactIds.length === 0) {\n return;\n }\n\n for (const contactId of contactIds) {\n if (!state.contactState[contactId]) {\n state.contactState[contactId] = {};\n }\n\n state.contactState[contactId].isDirty = true;\n }\n\n return onStateChange(state);\n },\n\n /**\n * @returns {string[]} The id of all contacts tracked by the store\n */\n getContactIds: () => Object.keys(state.contactState),\n\n /**\n * The rules system supports the concept of \"headless\" reports and \"headless\" task documents. In these scenarios,\n * a report exists on a user's device while the associated contact document of that report is not on the device.\n * A common scenario associated with this case is during supervisor workflows where supervisors sync reports with the\n * needs_signoff attribute but not the associated patient.\n *\n * In these cases, getting a list of \"all the contacts with rules\" requires us to look not just through contact\n * docs, but also through reports. To avoid this costly operation, the rules-state-store maintains a flag which\n * indicates if the contact ids in the store can serve as a trustworthy authority.\n *\n * markAllFresh should be called when the list of contact ids within the store is the complete set of contacts with\n * rules\n */\n markAllFresh: (calculatedAt, contactIds) => {\n state.allContactIds = true;\n return self.markFresh(calculatedAt, contactIds);\n },\n\n /**\n * @returns True if markAllFresh has been called on the current store state.\n */\n hasAllContacts: () => !!state.allContactIds,\n\n /**\n * @returns {string} User contact document\n */\n currentUserContact: () => currentUserContact,\n\n /**\n * @returns {string} User settings document\n */\n currentUserSettings: () => currentUserSettings,\n\n /**\n * @returns {number} The timestamp when the current loaded state was last updated\n */\n stateLastUpdatedAt: () => state.calculatedAt,\n\n /**\n * @returns {number} current monthStartDate\n */\n getMonthStartDate: () => state.monthStartDate,\n\n /**\n * @returns {boolean} whether or not the state is loaded\n */\n isLoaded: () => !!state,\n\n /**\n * Store a set of target emissions which were emitted by refreshing a set of contacts\n *\n * @param {string[]} contactIds An array of contact ids which produced these targetEmissions by being refreshed.\n * If undefined, all contacts are updated.\n * @param {Object[]} targetEmissions An array of target emissions (the result of the rules-emitter).\n */\n storeTargetEmissions: (contactIds, targetEmissions) => {\n const isUpdated = targetState.storeTargetEmissions(state.targetState, contactIds, targetEmissions);\n if (isUpdated) {\n return onStateChange(state);\n }\n },\n\n /**\n * Aggregates the stored target emissions into target models\n *\n * @param {Function(emission)=} targetEmissionFilter Filter function to filter which target emissions should\n * be aggregated\n * @example aggregateStoredTargetEmissions(emission => emission.date > moment().startOf('month').valueOf())\n *\n * @returns {Object[]} result\n * @returns {string} result[n].* All attributes of the target as defined in the settings doc\n * @returns {Integer} result[n].total The total number of unique target emission ids matching instanceFilter\n * @returns {Integer} result[n].pass The number of unique target emission ids matching instanceFilter with the\n * latest emission with truthy \"pass\"\n * @returns {Integer} result[n].percent The percentage of pass/total\n */\n aggregateStoredTargetEmissions: targetEmissionFilter => targetState.aggregateStoredTargetEmissions(\n state.targetState,\n targetEmissionFilter\n ),\n\n /**\n * Returns a list of UUIDs of tracked contacts that are marked as dirty\n * @returns {Array} list of dirty contacts UUIDs\n */\n getDirtyContacts: () => self.getContactIds().filter(self.isDirty),\n};\n\nconst hashRulesConfig = (settings) => {\n const asString = JSON.stringify(settings);\n return md5(asString);\n};\n\nconst setOnChangeState = (stateChangeCallback) => {\n onStateChange = (state) => {\n state.calculatedAt = new Date().getTime();\n\n if (stateChangeCallback && typeof stateChangeCallback === 'function') {\n return stateChangeCallback(state);\n }\n };\n};\n\n// ensure all exported functions are only ever called after initialization\nmodule.exports = Object.keys(self).reduce((agg, key) => {\n agg[key] = (...args) => {\n if (!['build', 'load', 'isLoaded'].includes(key) && (!state || !state.contactState)) {\n throw Error(`Invalid operation: Attempted to invoke rules-state-store.${key} before call to build or load`);\n }\n\n return self[key](...args);\n };\n return agg;\n}, {});\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/rules-engine/src/target-state.js\":\n/*!*************************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/target-state.js ***!\n \\*************************************************************************/\n/***/ ((module) => {\n\n/**\n * @module target-state\n *\n * Stores raw target-emissions in a minified, efficient, deterministic structure\n * Handles removal of \"cancelled\" target emissions\n * Aggregates target emissions into targets\n */\n\n/** @summary state\n * Functions in this module all accept a \"state\" parameter or return a \"state\" object.\n * This state has the following structure:\n *\n * @example\n * {\n * target.id: {\n * id: 'target_id',\n * type: 'count',\n * goal: 0,\n * ..\n *\n * emissions: {\n * emission.id: {\n * requestor.id: {\n * pass: boolean,\n * date: timestamp,\n * order: timestamp,\n * },\n * ..\n * },\n * ..\n * }\n * },\n * ..\n * }\n */\n\nmodule.exports = {\n /**\n * Builds an empty target-state.\n *\n * @param {Object[]} targets An array of target definitions\n */\n createEmptyState: (targets=[]) => {\n return targets\n .reduce((agg, definition) => {\n agg[definition.id] = Object.assign({}, definition, { emissions: {} });\n return agg;\n }, {});\n },\n\n storeTargetEmissions: (state, contactIds, targetEmissions) => {\n let isUpdated = false;\n if (!Array.isArray(targetEmissions)) {\n throw Error('targetEmissions argument must be an array');\n }\n\n // Remove all emissions that were previously emitted by the contact (\"cancelled emissions\")\n if (!contactIds) {\n for (const targetId of Object.keys(state)) {\n state[targetId].emissions = {};\n }\n } else {\n for (const contactId of contactIds) {\n for (const targetId of Object.keys(state)) {\n for (const emissionId of Object.keys(state[targetId].emissions)) {\n const emission = state[targetId].emissions[emissionId];\n if (emission[contactId]) {\n delete emission[contactId];\n isUpdated = true;\n }\n }\n }\n }\n }\n\n // Merge the emission data into state\n for (const emission of targetEmissions) {\n const target = state[emission.type];\n const requestor = emission.contact && emission.contact._id;\n if (target && requestor && !emission.deleted) {\n const targetRequestors = target.emissions[emission._id] = target.emissions[emission._id] || {};\n targetRequestors[requestor] = {\n pass: !!emission.pass,\n groupBy: emission.groupBy,\n date: emission.date,\n order: emission.contact.reported_date || -1,\n };\n isUpdated = true;\n }\n }\n\n return isUpdated;\n },\n\n aggregateStoredTargetEmissions: (state, targetEmissionFilter) => {\n const pick = (obj, attrs) => attrs\n .reduce((agg, attr) => {\n if (Object.hasOwnProperty.call(obj, attr)) {\n agg[attr] = obj[attr];\n }\n return agg;\n }, {});\n\n const scoreTarget = target => {\n const emissionIds = Object.keys(target.emissions);\n const relevantEmissions = emissionIds\n // emissions passing the \"targetEmissionFilter\"\n .map(emissionId => {\n const requestorIds = Object.keys(target.emissions[emissionId]);\n const filteredInstanceIds = requestorIds.filter(requestorId => {\n return !targetEmissionFilter || targetEmissionFilter(target.emissions[emissionId][requestorId]);\n });\n return pick(target.emissions[emissionId], filteredInstanceIds);\n })\n\n // if there are multiple emissions with the same id emitted by different contacts, disambiguate them\n .map(emissionsByRequestor => emissionOfLatestRequestor(emissionsByRequestor))\n .filter(emission => emission);\n\n const passingThreshold = target.passesIfGroupCount && target.passesIfGroupCount.gte;\n if (!passingThreshold) {\n return {\n pass: relevantEmissions.filter(emission => emission.pass).length,\n total: relevantEmissions.length,\n };\n }\n\n const countPassedEmissionsByGroup = {};\n const countEmissionsByGroup = {};\n\n relevantEmissions.forEach(emission => {\n const groupBy = emission.groupBy;\n if (!groupBy) {\n return;\n }\n if (!countPassedEmissionsByGroup[groupBy]) {\n countPassedEmissionsByGroup[groupBy] = 0;\n countEmissionsByGroup[groupBy] = 0;\n }\n countEmissionsByGroup[groupBy]++;\n if (emission.pass) {\n countPassedEmissionsByGroup[groupBy]++;\n }\n });\n\n const groups = Object.keys(countEmissionsByGroup);\n\n return {\n pass: groups.filter(group => countPassedEmissionsByGroup[group] >= passingThreshold).length,\n total: groups.length,\n };\n };\n\n const aggregateTarget = target => {\n const aggregated = pick(\n target,\n ['id', 'type', 'goal', 'translation_key', 'name', 'icon', 'subtitle_translation_key', 'visible']\n );\n aggregated.value = scoreTarget(target);\n\n if (aggregated.type === 'percent') {\n aggregated.value.percent = aggregated.value.total ?\n Math.round(aggregated.value.pass * 100 / aggregated.value.total) : 0;\n }\n\n return aggregated;\n };\n\n const emissionOfLatestRequestor = emissionsByRequestor => {\n return Object.keys(emissionsByRequestor).reduce((previousValue, requestorId) => {\n const current = emissionsByRequestor[requestorId];\n if (!previousValue || !previousValue.order || current.order > previousValue.order) {\n return current;\n }\n return previousValue;\n }, undefined);\n };\n\n return Object.keys(state).map(targetId => aggregateTarget(state[targetId]));\n },\n};\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/rules-engine/src/task-states.js\":\n/*!************************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/task-states.js ***!\n \\************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\n * @module task-states\n * As defined by the FHIR task standard https://www.hl7.org/fhir/task.html#statemachine\n */\n\nconst moment = __webpack_require__(/*! moment */ \"./build/cht-core-4-6/node_modules/moment/moment.js\");\n\n/**\n * Problems:\n * If all emissions are converted to documents, heavy users will create thousands of legacy task docs after upgrading\n * to this rules-engine.\n * In order to purge task documents, we need to guarantee that they won't just be recreated after they are purged.\n * The two scenarios above are important for maintaining the client-side performance of the app.\n *\n * Therefore, we only consider task emissions \"timely\" if they end within a fixed time period.\n * However, if this window is too short then users who don't login frequently may fail to create a task document at all.\n * Looking at time-between-reports for active projects, a time window of 60 days will ensure that 99.9% of tasks are\n * recorded as docs.\n */\nconst TIMELY_WINDOW = {\n start: 60, // days\n end: 180 // days\n};\n\n// This must be a comparable string format to avoid a bunch of parsing. For example, \"2000-01-01\" < \"2010-11-31\"\nconst formatString = 'YYYY-MM-DD';\n\nconst States = {\n /**\n * Task has been calculated but it is scheduled in the future\n */\n Draft: 'Draft',\n\n /**\n * Task is currently showing to the user\n */\n Ready: 'Ready',\n\n /**\n * Task was not emitted when refreshing the contact\n * Task resulted from invalid emissions\n */\n Cancelled: 'Cancelled',\n\n /**\n * Task was emitted with { resolved: true }\n */\n Completed: 'Completed',\n\n /**\n * Task was never terminated and is now outside the allowed time window\n */\n Failed: 'Failed',\n};\n\nconst getDisplayWindow = (taskEmission) => {\n const hasExistingDisplayWindow = taskEmission.startDate || taskEmission.endDate;\n if (hasExistingDisplayWindow) {\n return {\n dueDate: taskEmission.dueDate,\n startDate: taskEmission.startDate,\n endDate: taskEmission.endDate,\n };\n }\n\n const dueDate = moment(taskEmission.date);\n if (!dueDate.isValid()) {\n return { dueDate: NaN, startDate: NaN, endDate: NaN };\n }\n\n return {\n dueDate: dueDate.format(formatString),\n startDate: dueDate.clone().subtract(taskEmission.readyStart || 0, 'days').format(formatString),\n endDate: dueDate.clone().add(taskEmission.readyEnd || 0, 'days').format(formatString),\n };\n};\n\nconst mostReadyOrder = [States.Ready, States.Draft, States.Completed, States.Failed, States.Cancelled];\nconst orderOf = state => {\n const order = mostReadyOrder.indexOf(state);\n return order >= 0 ? order : mostReadyOrder.length;\n};\n\nmodule.exports = {\n isTerminal: state => [States.Cancelled, States.Completed, States.Failed].includes(state),\n\n isMoreReadyThan: (stateA, stateB) => orderOf(stateA) < orderOf(stateB),\n\n compareState: (stateA, stateB) => orderOf(stateA) - orderOf(stateB),\n\n calculateState: (taskEmission, timestamp) => {\n if (!taskEmission) {\n return false;\n }\n\n if (taskEmission.resolved) {\n return States.Completed;\n }\n\n if (taskEmission.deleted) {\n return States.Cancelled;\n }\n\n // invalid data yields falsey\n if (!taskEmission.date && !taskEmission.dueDate) {\n return false;\n }\n\n const { startDate, endDate } = getDisplayWindow(taskEmission);\n if (!startDate || !endDate || startDate > endDate || endDate < startDate) {\n return false;\n }\n\n const timestampAsDate = moment(timestamp).format(formatString);\n if (startDate > timestampAsDate) {\n return States.Draft;\n }\n\n if (endDate < timestampAsDate) {\n return States.Failed;\n }\n\n return States.Ready;\n },\n\n getDisplayWindow,\n\n states: States,\n\n isTimely: (taskEmission, timestamp) => {\n const { startDate, endDate } = getDisplayWindow(taskEmission);\n const earliest = moment(timestamp).subtract(TIMELY_WINDOW.start, 'days');\n const latest = moment(timestamp).add(TIMELY_WINDOW.end, 'days');\n return earliest.isBefore(endDate) && latest.isAfter(startDate);\n },\n\n setStateOnTaskDoc: (taskDoc, updatedState, timestamp = Date.now(), reason = '') => {\n if (!taskDoc) {\n return;\n }\n\n if (!updatedState) {\n taskDoc.state = States.Cancelled;\n taskDoc.stateReason = 'invalid';\n } else {\n taskDoc.state = updatedState;\n if (reason) {\n taskDoc.stateReason = reason;\n }\n }\n\n const stateHistory = taskDoc.stateHistory = taskDoc.stateHistory || [];\n const mostRecentState = stateHistory[stateHistory.length - 1];\n if (!mostRecentState || taskDoc.state !== mostRecentState.state) {\n const stateChange = { state: taskDoc.state, timestamp };\n stateHistory.push(stateChange);\n }\n\n return taskDoc;\n },\n};\n\nObject.assign(module.exports, States);\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/rules-engine/src/transform-task-emission-to-doc.js\":\n/*!*******************************************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/transform-task-emission-to-doc.js ***!\n \\*******************************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\n * @module transform-task-emission-to-doc\n * Transforms a task emission into the schema used by task documents\n * Minifies all unneeded data from the emission\n * Merges emission data into an existing document, or creates a new task document (as appropriate)\n */\n\nconst TaskStates = __webpack_require__(/*! ./task-states */ \"./build/cht-core-4-6/shared-libs/rules-engine/src/task-states.js\");\n\n/**\n * @param {Object} taskEmission A task emission from the rules engine\n * @param {int} calculatedAt Epoch timestamp at the time the emission was calculated\n * @param {Object} existingDoc The most recent taskDocument with the same emission id\n\n * @returns {Object} result\n * @returns {Object} result.taskDoc The result of the transformation\n * @returns {Boolean} result.isUpdated True if the document is new or has been altered\n */\nmodule.exports = (taskEmission, calculatedAt, userSettingsId, existingDoc) => {\n const emittedState = TaskStates.calculateState(taskEmission, calculatedAt);\n const baseFromExistingDoc = !!existingDoc &&\n (!TaskStates.isTerminal(existingDoc.state) || existingDoc.state === emittedState);\n\n // reduce document churn - don't tweak data on existing docs in terminal states\n const baselineStateOfExistingDoc = baseFromExistingDoc &&\n !TaskStates.isTerminal(existingDoc.state) &&\n JSON.stringify(existingDoc);\n const taskDoc = baseFromExistingDoc ? existingDoc : newTaskDoc(taskEmission, userSettingsId, calculatedAt);\n taskDoc.user = userSettingsId;\n taskDoc.requester = taskEmission.doc && taskEmission.doc.contact && taskEmission.doc.contact._id;\n taskDoc.owner = taskEmission.contact && taskEmission.contact._id;\n minifyEmission(taskDoc, taskEmission);\n TaskStates.setStateOnTaskDoc(taskDoc, emittedState, calculatedAt);\n\n const isUpdated = (() => {\n if (!baseFromExistingDoc) {\n // do not create new documents where the initial state is cancelled (invalid emission)\n return taskDoc.state !== TaskStates.Cancelled;\n }\n\n return baselineStateOfExistingDoc && JSON.stringify(taskDoc) !== baselineStateOfExistingDoc;\n })();\n\n return {\n isUpdated,\n taskDoc,\n };\n};\n\nconst minifyEmission = (taskDoc, emission) => {\n const minified = ['_id', 'title', 'icon', 'deleted', 'resolved', 'actions', 'priority', 'priorityLabel' ]\n .reduce((agg, attr) => {\n if (Object.hasOwnProperty.call(emission, attr)) {\n agg[attr] = emission[attr];\n }\n return agg;\n }, {});\n\n /*\n The declarative configuration \"contactLabel\" results in a task emission with a contact with only a name attribute.\n For backward compatibility, contacts which don't provide an id should not be minified and rehydrated.\n */\n if (emission.contact) {\n minified.contact = { name: emission.contact.name };\n }\n\n if (emission.date || emission.dueDate) {\n const timeWindow = TaskStates.getDisplayWindow(emission);\n Object.assign(minified, timeWindow);\n }\n minified.actions && minified.actions\n .filter(action => action && action.content)\n .forEach(action => {\n if (!minified.forId) {\n minified.forId = action.content.contact && action.content.contact._id;\n }\n delete action.content.contact;\n });\n\n taskDoc.emission = minified;\n return taskDoc;\n};\n\nconst newTaskDoc = (emission, userSettingsId, calculatedAt) => ({\n _id: `task~${userSettingsId}~${emission._id}~${calculatedAt}`,\n type: 'task',\n authoredOn: calculatedAt,\n stateHistory: [],\n});\n\n\n/***/ }),\n\n/***/ \"./build/cht-core-4-6/shared-libs/rules-engine/src/update-temporal-states.js\":\n/*!***********************************************************************************!*\\\n !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/update-temporal-states.js ***!\n \\***********************************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\n * @module update-temporal-states\n * As time elapses, documents change state because the timing window has been reached.\n * Eg. Documents with state Draft move to state Ready just because it is now after midnight\n */\nconst TaskStates = __webpack_require__(/*! ./task-states */ \"./build/cht-core-4-6/shared-libs/rules-engine/src/task-states.js\");\n\n/**\n * @param {Object[]} taskDocs A list of task documents to evaluate\n * @param {int} timestamp=Date.now() Epoch timestamp to use when evaluating the current state of the task documents\n */\nmodule.exports = (taskDocs, timestamp = Date.now()) => {\n const docsToCommit = [];\n for (const taskDoc of taskDocs) {\n let updatedState = TaskStates.calculateState(taskDoc.emission, timestamp);\n if (taskDoc.authoredOn > timestamp) {\n updatedState = TaskStates.Cancelled;\n }\n\n if (!TaskStates.isTerminal(taskDoc.state) && taskDoc.state !== updatedState) {\n TaskStates.setStateOnTaskDoc(taskDoc, updatedState, timestamp);\n docsToCommit.push(taskDoc);\n }\n }\n\n return docsToCommit;\n};\n\n\n/***/ }),\n\n/***/ \"./cht-bundles/cht-core-4-6/bundle.js\":\n/*!********************************************!*\\\n !*** ./cht-bundles/cht-core-4-6/bundle.js ***!\n \\********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports = {\n ddocs: __webpack_require__(/*! ../../build/cht-core-4-6-ddocs.json */ \"./build/cht-core-4-6-ddocs.json\"),\n RegistrationUtils: __webpack_require__(/*! ../../build/cht-core-4-6/shared-libs/registration-utils */ \"./build/cht-core-4-6/shared-libs/registration-utils/src/index.js\"),\n CalendarInterval: __webpack_require__(/*! ../../build/cht-core-4-6/shared-libs/calendar-interval */ \"./build/cht-core-4-6/shared-libs/calendar-interval/src/index.js\"),\n RulesEngineCore: __webpack_require__(/*! ../../build/cht-core-4-6/shared-libs/rules-engine */ \"./build/cht-core-4-6/shared-libs/rules-engine/src/index.js\"),\n RulesEmitter: __webpack_require__(/*! ../../build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter */ \"./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/index.js\"),\n nootils: __webpack_require__(/*! ../../build/cht-core-4-6/node_modules/cht-nootils */ \"./build/cht-core-4-6/node_modules/cht-nootils/src/nootils.js\"),\n Lineage: __webpack_require__(/*! ../../build/cht-core-4-6/shared-libs/lineage */ \"./build/cht-core-4-6/shared-libs/lineage/src/index.js\"),\n ChtScriptApi: __webpack_require__(/*! ../../build/cht-core-4-6/shared-libs/cht-script-api */ \"./build/cht-core-4-6/shared-libs/cht-script-api/src/index.js\"),\n convertFormXmlToXFormModel: __webpack_require__(/*! ../../build/cht-core-4-6/api/src/services/generate-xform.js */ \"./build/cht-core-4-6/api/src/services/generate-xform.js\").generate,\n};\n\n\n/***/ }),\n\n/***/ \"./cht-bundles/cht-core-4-6/xsl-paths.js\":\n/*!***********************************************!*\\\n !*** ./cht-bundles/cht-core-4-6/xsl-paths.js ***!\n \\***********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\nmodule.exports = {\n FORM_STYLESHEET: path.join(__dirname, '../dist/cht-core-4-6/xsl/openrosa2html5form.xsl'),\n MODEL_STYLESHEET: path.join(__dirname, '../dist/cht-core-4-6/enketo-transformer/xsl/openrosa2xmlmodel.xsl'),\n};\n\n\n/***/ }),\n\n/***/ \"buffer\":\n/*!*************************!*\\\n !*** external \"buffer\" ***!\n \\*************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = require(\"buffer\");;\n\n/***/ }),\n\n/***/ \"child_process\":\n/*!********************************!*\\\n !*** external \"child_process\" ***!\n \\********************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = require(\"child_process\");;\n\n/***/ }),\n\n/***/ \"events\":\n/*!*************************!*\\\n !*** external \"events\" ***!\n \\*************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = require(\"events\");;\n\n/***/ }),\n\n/***/ \"fs\":\n/*!*********************!*\\\n !*** external \"fs\" ***!\n \\*********************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = require(\"fs\");;\n\n/***/ }),\n\n/***/ \"http\":\n/*!***********************!*\\\n !*** external \"http\" ***!\n \\***********************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = require(\"http\");;\n\n/***/ }),\n\n/***/ \"https\":\n/*!************************!*\\\n !*** external \"https\" ***!\n \\************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = require(\"https\");;\n\n/***/ }),\n\n/***/ \"net\":\n/*!**********************!*\\\n !*** external \"net\" ***!\n \\**********************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = require(\"net\");;\n\n/***/ }),\n\n/***/ \"os\":\n/*!*********************!*\\\n !*** external \"os\" ***!\n \\*********************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = require(\"os\");;\n\n/***/ }),\n\n/***/ \"path\":\n/*!***********************!*\\\n !*** external \"path\" ***!\n \\***********************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = require(\"path\");;\n\n/***/ }),\n\n/***/ \"stream\":\n/*!*************************!*\\\n !*** external \"stream\" ***!\n \\*************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = require(\"stream\");;\n\n/***/ }),\n\n/***/ \"string_decoder\":\n/*!*********************************!*\\\n !*** external \"string_decoder\" ***!\n \\*********************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = require(\"string_decoder\");;\n\n/***/ }),\n\n/***/ \"tty\":\n/*!**********************!*\\\n !*** external \"tty\" ***!\n \\**********************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = require(\"tty\");;\n\n/***/ }),\n\n/***/ \"util\":\n/*!***********************!*\\\n !*** external \"util\" ***!\n \\***********************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = require(\"util\");;\n\n/***/ }),\n\n/***/ \"zlib\":\n/*!***********************!*\\\n !*** external \"zlib\" ***!\n \\***********************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = require(\"zlib\");;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = __webpack_module_cache__;\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t(() => {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = (module) => {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\t() => (module['default']) :\n/******/ \t\t\t\t() => (module);\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t(() => {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = (exports) => {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/node module decorator */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.nmd = (module) => {\n/******/ \t\t\tmodule.paths = [];\n/******/ \t\t\tif (!module.children) module.children = [];\n/******/ \t\t\treturn module;\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// module cache are used so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \tvar __webpack_exports__ = __webpack_require__(__webpack_require__.s = \"./cht-bundles/cht-core-4-6/bundle.js\");\n/******/ \tvar __webpack_export_target__ = exports;\n/******/ \tfor(var i in __webpack_exports__) __webpack_export_target__[i] = __webpack_exports__[i];\n/******/ \tif(__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, \"__esModule\", { value: true });\n/******/ \t\n/******/ })()\n;\n//# sourceMappingURL=cht-core-bundle.dev.js.map","module.exports = require(\"buffer\");;","module.exports = require(\"child_process\");;","module.exports = require(\"events\");;","module.exports = require(\"fs\");;","module.exports = require(\"http\");;","module.exports = require(\"https\");;","module.exports = require(\"net\");;","module.exports = require(\"os\");;","module.exports = require(\"path\");;","module.exports = require(\"stream\");;","module.exports = require(\"string_decoder\");;","module.exports = require(\"tty\");;","module.exports = require(\"util\");;","module.exports = require(\"zlib\");;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./cht-bundles/all-chts-bundle.js\");\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/cht-core-4-6/NotoSans-Bold.ttf b/dist/cht-core-4-6/NotoSans-Bold.ttf new file mode 100644 index 00000000..0d190683 Binary files /dev/null and b/dist/cht-core-4-6/NotoSans-Bold.ttf differ diff --git a/dist/cht-core-4-6/NotoSans-Regular.ttf b/dist/cht-core-4-6/NotoSans-Regular.ttf new file mode 100644 index 00000000..7552fbe8 Binary files /dev/null and b/dist/cht-core-4-6/NotoSans-Regular.ttf differ diff --git a/dist/cht-core-4-6/cht-core-bundle.dev.js b/dist/cht-core-4-6/cht-core-bundle.dev.js new file mode 100644 index 00000000..25c17428 --- /dev/null +++ b/dist/cht-core-4-6/cht-core-bundle.dev.js @@ -0,0 +1,102130 @@ +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./build/cht-core-4-6-ddocs.json": +/*!***************************************!*\ + !*** ./build/cht-core-4-6-ddocs.json ***! + \***************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('[{"views":{"contacts_by_freetext":{"map":"function(doc) {\\n var skip = [ \'_id\', \'_rev\', \'type\', \'refid\', \'geolocation\' ];\\n\\n var usedKeys = [];\\n var emitMaybe = function(key, value) {\\n if (usedKeys.indexOf(key) === -1 && // Not already used\\n key.length > 2 // Not too short\\n ) {\\n usedKeys.push(key);\\n emit([key], value);\\n }\\n };\\n\\n var emitField = function(key, value, order) {\\n if (!key || !value) {\\n return;\\n }\\n key = key.toLowerCase();\\n if (skip.indexOf(key) !== -1 || /_date$/.test(key)) {\\n return;\\n }\\n if (typeof value === \'string\') {\\n value = value.toLowerCase();\\n value.split(/\\\\s+/).forEach(function(word) {\\n emitMaybe(word, order);\\n });\\n }\\n if (typeof value === \'number\' || typeof value === \'string\') {\\n emitMaybe(key + \':\' + value, order);\\n }\\n };\\n\\n var types = [ \'district_hospital\', \'health_center\', \'clinic\', \'person\' ];\\n var idx;\\n if (doc.type === \'contact\') {\\n idx = types.indexOf(doc.contact_type);\\n if (idx === -1) {\\n idx = doc.contact_type;\\n }\\n } else {\\n idx = types.indexOf(doc.type);\\n }\\n\\n if (idx !== -1) {\\n var dead = !!doc.date_of_death;\\n var muted = !!doc.muted;\\n var order = dead + \' \' + muted + \' \' + idx + \' \' + (doc.name && doc.name.toLowerCase());\\n Object.keys(doc).forEach(function(key) {\\n emitField(key, doc[key], order);\\n });\\n }\\n}"},"contacts_by_last_visited":{"map":"function(doc) {\\n if (doc.type === \'data_record\' &&\\n doc.form &&\\n doc.fields &&\\n doc.fields.visited_contact_uuid) {\\n\\n var date = doc.fields.visited_date ? Date.parse(doc.fields.visited_date) : doc.reported_date;\\n if (typeof date !== \'number\' || isNaN(date)) {\\n date = 0;\\n }\\n // Is a visit report about a family\\n emit(doc.fields.visited_contact_uuid, date);\\n } else if (doc.type === \'contact\' ||\\n doc.type === \'clinic\' ||\\n doc.type === \'health_center\' ||\\n doc.type === \'district_hospital\' ||\\n doc.type === \'person\') {\\n // Is a contact type\\n emit(doc._id, 0);\\n }\\n}","reduce":"_stats"},"contacts_by_parent":{"map":"function(doc) {\\n if (doc.type === \'contact\' ||\\n doc.type === \'clinic\' ||\\n doc.type === \'health_center\' ||\\n doc.type === \'district_hospital\' ||\\n doc.type === \'person\') {\\n var parentId = doc.parent && doc.parent._id;\\n var type = doc.type === \'contact\' ? doc.contact_type : doc.type;\\n if (parentId) {\\n emit([parentId, type]);\\n }\\n }\\n}"},"contacts_by_phone":{"map":"function(doc) {\\n if (doc.phone) {\\n var types = [ \'contact\', \'district_hospital\', \'health_center\', \'clinic\', \'person\' ];\\n if (types.indexOf(doc.type) !== -1) {\\n emit(doc.phone);\\n }\\n }\\n}"},"contacts_by_place":{"map":"function(doc) {\\n var types = [ \'district_hospital\', \'health_center\', \'clinic\', \'person\' ];\\n var idx;\\n if (doc.type === \'contact\') {\\n idx = types.indexOf(doc.contact_type);\\n if (idx === -1) {\\n idx = doc.contact_type;\\n }\\n } else {\\n idx = types.indexOf(doc.type);\\n }\\n if (idx !== -1) {\\n var place = doc.parent;\\n var order = idx + \' \' + (doc.name && doc.name.toLowerCase());\\n while (place) {\\n if (place._id) {\\n emit([ place._id ], order);\\n }\\n place = place.parent;\\n }\\n }\\n}"},"contacts_by_reference":{"map":"function(doc) {\\n if (doc.type === \'contact\' ||\\n doc.type === \'clinic\' ||\\n doc.type === \'health_center\' ||\\n doc.type === \'district_hospital\' ||\\n doc.type === \'national_office\' ||\\n doc.type === \'person\') {\\n\\n var emitReference = function(prefix, key) {\\n emit([ prefix, String(key) ], doc.reported_date);\\n };\\n\\n if (doc.place_id) {\\n emitReference(\'shortcode\', doc.place_id);\\n }\\n if (doc.patient_id) {\\n emitReference(\'shortcode\', doc.patient_id);\\n }\\n if (doc.rc_code) {\\n // need String because rewriter wraps everything in quotes\\n // keep refid case-insenstive since data is usually coming from SMS\\n emitReference(\'external\', String(doc.rc_code).toUpperCase());\\n }\\n }\\n}"},"contacts_by_type_freetext":{"map":"function(doc) {\\n var skip = [ \'_id\', \'_rev\', \'type\', \'refid\', \'geolocation\' ];\\n\\n var usedKeys = [];\\n var emitMaybe = function(type, key, value) {\\n if (usedKeys.indexOf(key) === -1 && // Not already used\\n key.length > 2 // Not too short\\n ) {\\n usedKeys.push(key);\\n emit([ type, key ], value);\\n }\\n };\\n\\n var emitField = function(type, key, value, order) {\\n if (!key || !value) {\\n return;\\n }\\n key = key.toLowerCase();\\n if (skip.indexOf(key) !== -1 || /_date$/.test(key)) {\\n return;\\n }\\n if (typeof value === \'string\') {\\n value = value.toLowerCase();\\n value.split(/\\\\s+/).forEach(function(word) {\\n emitMaybe(type, word, order);\\n });\\n }\\n if (typeof value === \'number\' || typeof value === \'string\') {\\n emitMaybe(type, key + \':\' + value, order);\\n }\\n };\\n\\n var types = [ \'district_hospital\', \'health_center\', \'clinic\', \'person\' ];\\n var idx;\\n var type;\\n if (doc.type === \'contact\') {\\n type = doc.contact_type;\\n idx = types.indexOf(type);\\n if (idx === -1) {\\n idx = type;\\n }\\n } else {\\n type = doc.type;\\n idx = types.indexOf(type);\\n }\\n if (idx !== -1) {\\n var dead = !!doc.date_of_death;\\n var muted = !!doc.muted;\\n var order = dead + \' \' + muted + \' \' + idx + \' \' + (doc.name && doc.name.toLowerCase());\\n Object.keys(doc).forEach(function(key) {\\n emitField(type, key, doc[key], order);\\n });\\n }\\n}"},"contacts_by_type":{"map":"function(doc) {\\n var types = [ \'district_hospital\', \'health_center\', \'clinic\', \'person\' ];\\n var idx;\\n var type;\\n if (doc.type === \'contact\') {\\n type = doc.contact_type;\\n idx = types.indexOf(type);\\n if (idx === -1) {\\n idx = type;\\n }\\n } else {\\n type = doc.type;\\n idx = types.indexOf(type);\\n }\\n if (idx !== -1) {\\n var dead = !!doc.date_of_death;\\n var muted = !!doc.muted;\\n var order = dead + \' \' + muted + \' \' + idx + \' \' + (doc.name && doc.name.toLowerCase());\\n emit([ type ], order);\\n }\\n}"},"data_records_by_type":{"reduce":"_count","map":"function(doc) {\\n if (doc.type === \'data_record\') {\\n emit(doc.form ? \'report\' : \'message\');\\n }\\n}"},"doc_by_type":{"map":"function(doc) {\\n if (doc.type === \'translations\') {\\n emit([ \'translations\', doc.enabled ], {\\n code: doc.code,\\n name: doc.name\\n });\\n return;\\n }\\n emit([ doc.type ]);\\n}"},"docs_by_id_lineage":{"map":"function(doc) {\\n\\n var emitLineage = function(contact, depth) {\\n while (contact && contact._id) {\\n emit([ doc._id, depth++ ], { _id: contact._id });\\n contact = contact.parent;\\n }\\n };\\n\\n var types = [ \'contact\', \'district_hospital\', \'health_center\', \'clinic\', \'person\' ];\\n\\n if (types.indexOf(doc.type) !== -1) {\\n // contact\\n emitLineage(doc, 0);\\n } else if (doc.type === \'data_record\' && doc.form) {\\n // report\\n emit([ doc._id, 0 ]);\\n emitLineage(doc.contact, 1);\\n }\\n}"},"messages_by_contact_date":{"map":"function(doc) {\\n\\n var emitMessage = function(doc, contact, phone) {\\n var id = (contact && contact._id) || phone || doc._id;\\n emit([ id, doc.reported_date ], {\\n id: doc._id,\\n date: doc.reported_date,\\n contact: contact && contact._id\\n });\\n };\\n\\n if (doc.type === \'data_record\' && !doc.form) {\\n if (doc.kujua_message && doc.tasks) {\\n // outgoing\\n doc.tasks.forEach(function(task) {\\n var message = task.messages && task.messages[0];\\n if(message) {\\n emitMessage(doc, message.contact, message.to);\\n }\\n });\\n } else if (doc.sms_message) {\\n // incoming\\n emitMessage(doc, doc.contact, doc.from);\\n }\\n }\\n}","reduce":"function(key, values) {\\n var latest = { date: 0 };\\n values.forEach(function(value) {\\n if (value.date > latest.date) {\\n latest = value;\\n }\\n });\\n return latest;\\n}"},"registered_patients":{"map":"// NB: This returns *registrations* for contacts. If contacts are created by\\n// means other then sending in a registration report (eg created in the UI)\\n// they will not show up in this view.\\n//\\n// For a view with all patients by their shortcode, use:\\n// medic/docs_by_shortcode\\nfunction(doc) {\\n var patientId = doc.patient_id || (doc.fields && doc.fields.patient_id);\\n var placeId = doc.place_id || (doc.fields && doc.fields.place_id);\\n\\n if (!doc.form || doc.type !== \'data_record\' || (doc.errors && doc.errors.length)) {\\n return;\\n }\\n\\n if (patientId) {\\n emit(String(patientId));\\n }\\n\\n if (placeId) {\\n emit(String(placeId));\\n }\\n}"},"reports_by_form":{"map":"function(doc) {\\n if (doc.type === \'data_record\' && doc.form) {\\n emit([doc.form], doc.reported_date);\\n }\\n}","reduce":"function() {\\n return true;\\n}"},"reports_by_date":{"map":"function(doc) {\\n if (doc.type === \'data_record\' && doc.form) {\\n emit([doc.reported_date], doc.reported_date);\\n }\\n}"},"reports_by_freetext":{"map":"function(doc) {\\n var skip = [ \'_id\', \'_rev\', \'type\', \'refid\', \'content\' ];\\n\\n var usedKeys = [];\\n var emitMaybe = function(key, value) {\\n if (usedKeys.indexOf(key) === -1 && // Not already used\\n key.length > 2 // Not too short\\n ) {\\n usedKeys.push(key);\\n emit([key], value);\\n }\\n };\\n\\n var emitField = function(key, value, reportedDate) {\\n if (!key || !value) {\\n return;\\n }\\n key = key.toLowerCase();\\n if (skip.indexOf(key) !== -1 || /_date$/.test(key)) {\\n return;\\n }\\n if (typeof value === \'string\') {\\n value = value.toLowerCase();\\n value.split(/\\\\s+/).forEach(function(word) {\\n emitMaybe(word, reportedDate);\\n });\\n }\\n if (typeof value === \'number\' || typeof value === \'string\') {\\n emitMaybe(key + \':\' + value, reportedDate);\\n }\\n };\\n\\n if (doc.type === \'data_record\' && doc.form) {\\n Object.keys(doc).forEach(function(key) {\\n emitField(key, doc[key], doc.reported_date);\\n });\\n if (doc.fields) {\\n Object.keys(doc.fields).forEach(function(key) {\\n emitField(key, doc.fields[key], doc.reported_date);\\n });\\n }\\n if (doc.contact && doc.contact._id) {\\n emitMaybe(\'contact:\' + doc.contact._id.toLowerCase(), doc.reported_date);\\n }\\n }\\n}"},"reports_by_place":{"map":"function(doc) {\\n if (doc.type === \'data_record\' && doc.form) {\\n var place = doc.contact && doc.contact.parent;\\n while (place) {\\n if (place._id) {\\n emit([ place._id ], doc.reported_date);\\n }\\n place = place.parent;\\n }\\n }\\n}"},"reports_by_subject":{"map":"function(doc) {\\n if (doc.type === \'data_record\' && doc.form) {\\n var emitField = function(obj, field) {\\n if (obj[field]) {\\n emit(obj[field], doc.reported_date);\\n }\\n };\\n\\n emitField(doc, \'patient_id\');\\n emitField(doc, \'place_id\');\\n emitField(doc, \'case_id\');\\n\\n if (doc.fields) {\\n emitField(doc.fields, \'patient_id\');\\n emitField(doc.fields, \'place_id\');\\n emitField(doc.fields, \'case_id\');\\n emitField(doc.fields, \'patient_uuid\');\\n emitField(doc.fields, \'place_uuid\');\\n }\\n }\\n}"},"reports_by_validity":{"map":"function(doc) {\\n if (doc.type === \'data_record\' && doc.form) {\\n emit([!doc.errors || doc.errors.length === 0], doc.reported_date);\\n }\\n}"},"reports_by_verification":{"map":"function(doc) {\\n if (doc.type === \'data_record\' && doc.form) {\\n emit([doc.verified], doc.reported_date);\\n }\\n}"},"tasks_by_contact":{"map":"function(doc) {\\n if (doc.type === \'task\') {\\n var isTerminalState = [\'Cancelled\', \'Completed\', \'Failed\'].indexOf(doc.state) >= 0;\\n var owner = (doc.owner || \'_unassigned\');\\n\\n if (!isTerminalState) {\\n emit(\'owner-\' + owner);\\n }\\n\\n if (doc.requester) {\\n emit(\'requester-\' + doc.requester);\\n }\\n\\n emit([\'owner\', \'all\', owner], { state: doc.state });\\n }\\n}"},"total_clinics_by_facility":{"map":"function(doc) {\\n var districtId = doc.parent && doc.parent.parent && doc.parent.parent._id;\\n if (doc.type === \'clinic\' || (doc.type === \'contact\' && districtId)) {\\n var healthCenterId = doc.parent && doc.parent._id;\\n emit([ districtId, healthCenterId, doc._id, 0 ]);\\n if (doc.contact && doc.contact._id) {\\n emit([ districtId, healthCenterId, doc._id, 1 ], { _id: doc.contact._id });\\n }\\n var index = 2;\\n var parent = doc.parent;\\n while(parent) {\\n if (parent._id) {\\n emit([ districtId, healthCenterId, doc._id, index++ ], { _id: parent._id });\\n }\\n parent = parent.parent;\\n }\\n }\\n}"},"visits_by_date":{"map":"function(doc) {\\n if (doc.type === \'data_record\' &&\\n doc.form &&\\n doc.fields &&\\n doc.fields.visited_contact_uuid) {\\n\\n var visited_date = doc.fields.visited_date ? Date.parse(doc.fields.visited_date) : doc.reported_date;\\n\\n // Is a visit report about a family\\n emit(visited_date, doc.fields.visited_contact_uuid);\\n emit([doc.fields.visited_contact_uuid, visited_date]);\\n }\\n}"}},"validate_doc_update":"function(newDoc, oldDoc, userCtx) {\\n /*\\n LOCAL DOCUMENT VALIDATION\\n\\n This is for validating document structure, irrespective of authority, so it\\n can be run both on couchdb and pouchdb (where you are technically admin).\\n\\n For validations around authority check lib/validate_doc_update.js, which is\\n only run on the server.\\n */\\n\\n var _err = function(msg) {\\n throw({ forbidden: msg });\\n };\\n\\n /**\\n * Ensure that type=\'form\' documents are created with correctly formatted _id\\n * property.\\n */\\n var validateForm = function(newDoc) {\\n var id_parts = newDoc._id.split(\':\');\\n var prefix = id_parts[0];\\n var form_id = id_parts.slice(1).join(\':\');\\n if (prefix !== \'form\') {\\n _err(\'_id property must be prefixed with \\"form:\\". e.g. \\"form:registration\\"\');\\n }\\n if (!form_id) {\\n _err(\'_id property must define a value after \\"form:\\". e.g. \\"form:registration\\"\');\\n }\\n if (newDoc._id !== newDoc._id.toLowerCase()) {\\n _err(\'_id property must be lower case. e.g. \\"form:registration\\"\');\\n }\\n };\\n\\n var validateUserSettings = function(newDoc) {\\n var id_parts = newDoc._id.split(\':\');\\n var prefix = id_parts[0];\\n var username = id_parts.slice(1).join(\':\');\\n var idExample = \' e.g. \\"org.couchdb.user:sally\\"\';\\n if (prefix !== \'org.couchdb.user\') {\\n _err(\'_id must be prefixed with \\"org.couchdb.user:\\".\' + idExample);\\n }\\n if (!username) {\\n _err(\'_id must define a value after \\"org.couchdb.user:\\".\' + idExample);\\n }\\n if (newDoc._id !== newDoc._id.toLowerCase()) {\\n _err(\'_id must be lower case.\' + idExample);\\n }\\n if (typeof newDoc.name === \'undefined\' || newDoc.name !== username) {\\n _err(\'name property must be equivalent to username.\' + idExample);\\n }\\n if (newDoc.name.toLowerCase() !== username.toLowerCase()) {\\n _err(\'name must be equivalent to username\');\\n }\\n if (typeof newDoc.known !== \'undefined\' && typeof newDoc.known !== \'boolean\') {\\n _err(\'known is not a boolean.\');\\n }\\n if (typeof newDoc.roles !== \'object\') {\\n _err(\'roles is a required array\');\\n }\\n };\\n\\n if (userCtx.facility_id === newDoc._id) {\\n _err(\'You are not authorized to edit your own place\');\\n }\\n if (newDoc.type === \'form\') {\\n validateForm(newDoc);\\n }\\n if (newDoc.type === \'user-settings\') {\\n validateUserSettings(newDoc);\\n }\\n\\n log(\\n \'medic-client validate_doc_update passed for User \\"\' + userCtx.name +\\n \'\\" changing document \\"\' + newDoc._id + \'\\"\'\\n );\\n}","_id":"_design/medic-client"}]'); + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/colors.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/colors.js ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* + +The MIT License (MIT) + +Original Library + - Copyright (c) Marak Squires + +Additional functionality + - Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ + +var colors = {}; +module['exports'] = colors; + +colors.themes = {}; + +var util = __webpack_require__(/*! util */ "util"); +var ansiStyles = colors.styles = __webpack_require__(/*! ./styles */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/styles.js"); +var defineProps = Object.defineProperties; +var newLineRegex = new RegExp(/[\r\n]+/g); + +colors.supportsColor = __webpack_require__(/*! ./system/supports-colors */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/supports-colors.js").supportsColor; + +if (typeof colors.enabled === 'undefined') { + colors.enabled = colors.supportsColor() !== false; +} + +colors.enable = function() { + colors.enabled = true; +}; + +colors.disable = function() { + colors.enabled = false; +}; + +colors.stripColors = colors.strip = function(str) { + return ('' + str).replace(/\x1B\[\d+m/g, ''); +}; + +// eslint-disable-next-line no-unused-vars +var stylize = colors.stylize = function stylize(str, style) { + if (!colors.enabled) { + return str+''; + } + + var styleMap = ansiStyles[style]; + + // Stylize should work for non-ANSI styles, too + if (!styleMap && style in colors) { + // Style maps like trap operate as functions on strings; + // they don't have properties like open or close. + return colors[style](str); + } + + return styleMap.open + str + styleMap.close; +}; + +var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; +var escapeStringRegexp = function(str) { + if (typeof str !== 'string') { + throw new TypeError('Expected a string'); + } + return str.replace(matchOperatorsRe, '\\$&'); +}; + +function build(_styles) { + var builder = function builder() { + return applyStyle.apply(builder, arguments); + }; + builder._styles = _styles; + // __proto__ is used because we must return a function, but there is + // no way to create a function with a different prototype. + builder.__proto__ = proto; + return builder; +} + +var styles = (function() { + var ret = {}; + ansiStyles.grey = ansiStyles.gray; + Object.keys(ansiStyles).forEach(function(key) { + ansiStyles[key].closeRe = + new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g'); + ret[key] = { + get: function() { + return build(this._styles.concat(key)); + }, + }; + }); + return ret; +})(); + +var proto = defineProps(function colors() {}, styles); + +function applyStyle() { + var args = Array.prototype.slice.call(arguments); + + var str = args.map(function(arg) { + // Use weak equality check so we can colorize null/undefined in safe mode + if (arg != null && arg.constructor === String) { + return arg; + } else { + return util.inspect(arg); + } + }).join(' '); + + if (!colors.enabled || !str) { + return str; + } + + var newLinesPresent = str.indexOf('\n') != -1; + + var nestedStyles = this._styles; + + var i = nestedStyles.length; + while (i--) { + var code = ansiStyles[nestedStyles[i]]; + str = code.open + str.replace(code.closeRe, code.open) + code.close; + if (newLinesPresent) { + str = str.replace(newLineRegex, function(match) { + return code.close + match + code.open; + }); + } + } + + return str; +} + +colors.setTheme = function(theme) { + if (typeof theme === 'string') { + console.log('colors.setTheme now only accepts an object, not a string. ' + + 'If you are trying to set a theme from a file, it is now your (the ' + + 'caller\'s) responsibility to require the file. The old syntax ' + + 'looked like colors.setTheme(__dirname + ' + + '\'/../themes/generic-logging.js\'); The new syntax looks like '+ + 'colors.setTheme(require(__dirname + ' + + '\'/../themes/generic-logging.js\'));'); + return; + } + for (var style in theme) { + (function(style) { + colors[style] = function(str) { + if (typeof theme[style] === 'object') { + var out = str; + for (var i in theme[style]) { + out = colors[theme[style][i]](out); + } + return out; + } + return colors[theme[style]](str); + }; + })(style); + } +}; + +function init() { + var ret = {}; + Object.keys(styles).forEach(function(name) { + ret[name] = { + get: function() { + return build([name]); + }, + }; + }); + return ret; +} + +var sequencer = function sequencer(map, str) { + var exploded = str.split(''); + exploded = exploded.map(map); + return exploded.join(''); +}; + +// custom formatter methods +colors.trap = __webpack_require__(/*! ./custom/trap */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/trap.js"); +colors.zalgo = __webpack_require__(/*! ./custom/zalgo */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/zalgo.js"); + +// maps +colors.maps = {}; +colors.maps.america = __webpack_require__(/*! ./maps/america */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/america.js")(colors); +colors.maps.zebra = __webpack_require__(/*! ./maps/zebra */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/zebra.js")(colors); +colors.maps.rainbow = __webpack_require__(/*! ./maps/rainbow */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/rainbow.js")(colors); +colors.maps.random = __webpack_require__(/*! ./maps/random */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/random.js")(colors); + +for (var map in colors.maps) { + (function(map) { + colors[map] = function(str) { + return sequencer(colors.maps[map], str); + }; + })(map); +} + +defineProps(colors, init()); + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/trap.js": +/*!*******************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/trap.js ***! + \*******************************************************************************/ +/***/ ((module) => { + +module['exports'] = function runTheTrap(text, options) { + var result = ''; + text = text || 'Run the trap, drop the bass'; + text = text.split(''); + var trap = { + a: ['\u0040', '\u0104', '\u023a', '\u0245', '\u0394', '\u039b', '\u0414'], + b: ['\u00df', '\u0181', '\u0243', '\u026e', '\u03b2', '\u0e3f'], + c: ['\u00a9', '\u023b', '\u03fe'], + d: ['\u00d0', '\u018a', '\u0500', '\u0501', '\u0502', '\u0503'], + e: ['\u00cb', '\u0115', '\u018e', '\u0258', '\u03a3', '\u03be', '\u04bc', + '\u0a6c'], + f: ['\u04fa'], + g: ['\u0262'], + h: ['\u0126', '\u0195', '\u04a2', '\u04ba', '\u04c7', '\u050a'], + i: ['\u0f0f'], + j: ['\u0134'], + k: ['\u0138', '\u04a0', '\u04c3', '\u051e'], + l: ['\u0139'], + m: ['\u028d', '\u04cd', '\u04ce', '\u0520', '\u0521', '\u0d69'], + n: ['\u00d1', '\u014b', '\u019d', '\u0376', '\u03a0', '\u048a'], + o: ['\u00d8', '\u00f5', '\u00f8', '\u01fe', '\u0298', '\u047a', '\u05dd', + '\u06dd', '\u0e4f'], + p: ['\u01f7', '\u048e'], + q: ['\u09cd'], + r: ['\u00ae', '\u01a6', '\u0210', '\u024c', '\u0280', '\u042f'], + s: ['\u00a7', '\u03de', '\u03df', '\u03e8'], + t: ['\u0141', '\u0166', '\u0373'], + u: ['\u01b1', '\u054d'], + v: ['\u05d8'], + w: ['\u0428', '\u0460', '\u047c', '\u0d70'], + x: ['\u04b2', '\u04fe', '\u04fc', '\u04fd'], + y: ['\u00a5', '\u04b0', '\u04cb'], + z: ['\u01b5', '\u0240'], + }; + text.forEach(function(c) { + c = c.toLowerCase(); + var chars = trap[c] || [' ']; + var rand = Math.floor(Math.random() * chars.length); + if (typeof trap[c] !== 'undefined') { + result += trap[c][rand]; + } else { + result += c; + } + }); + return result; +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/zalgo.js": +/*!********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/zalgo.js ***! + \********************************************************************************/ +/***/ ((module) => { + +// please no +module['exports'] = function zalgo(text, options) { + text = text || ' he is here '; + var soul = { + 'up': [ + '̍', '̎', '̄', '̅', + '̿', '̑', '̆', '̐', + '͒', '͗', '͑', '̇', + '̈', '̊', '͂', '̓', + '̈', '͊', '͋', '͌', + '̃', '̂', '̌', '͐', + '̀', '́', '̋', '̏', + '̒', '̓', '̔', '̽', + '̉', 'ͣ', 'ͤ', 'ͥ', + 'ͦ', 'ͧ', 'ͨ', 'ͩ', + 'ͪ', 'ͫ', 'ͬ', 'ͭ', + 'ͮ', 'ͯ', '̾', '͛', + '͆', '̚', + ], + 'down': [ + '̖', '̗', '̘', '̙', + '̜', '̝', '̞', '̟', + '̠', '̤', '̥', '̦', + '̩', '̪', '̫', '̬', + '̭', '̮', '̯', '̰', + '̱', '̲', '̳', '̹', + '̺', '̻', '̼', 'ͅ', + '͇', '͈', '͉', '͍', + '͎', '͓', '͔', '͕', + '͖', '͙', '͚', '̣', + ], + 'mid': [ + '̕', '̛', '̀', '́', + '͘', '̡', '̢', '̧', + '̨', '̴', '̵', '̶', + '͜', '͝', '͞', + '͟', '͠', '͢', '̸', + '̷', '͡', ' ҉', + ], + }; + var all = [].concat(soul.up, soul.down, soul.mid); + + function randomNumber(range) { + var r = Math.floor(Math.random() * range); + return r; + } + + function isChar(character) { + var bool = false; + all.filter(function(i) { + bool = (i === character); + }); + return bool; + } + + + function heComes(text, options) { + var result = ''; + var counts; + var l; + options = options || {}; + options['up'] = + typeof options['up'] !== 'undefined' ? options['up'] : true; + options['mid'] = + typeof options['mid'] !== 'undefined' ? options['mid'] : true; + options['down'] = + typeof options['down'] !== 'undefined' ? options['down'] : true; + options['size'] = + typeof options['size'] !== 'undefined' ? options['size'] : 'maxi'; + text = text.split(''); + for (l in text) { + if (isChar(l)) { + continue; + } + result = result + text[l]; + counts = {'up': 0, 'down': 0, 'mid': 0}; + switch (options.size) { + case 'mini': + counts.up = randomNumber(8); + counts.mid = randomNumber(2); + counts.down = randomNumber(8); + break; + case 'maxi': + counts.up = randomNumber(16) + 3; + counts.mid = randomNumber(4) + 1; + counts.down = randomNumber(64) + 3; + break; + default: + counts.up = randomNumber(8) + 1; + counts.mid = randomNumber(6) / 2; + counts.down = randomNumber(8) + 1; + break; + } + + var arr = ['up', 'mid', 'down']; + for (var d in arr) { + var index = arr[d]; + for (var i = 0; i <= counts[index]; i++) { + if (options[index]) { + result = result + soul[index][randomNumber(soul[index].length)]; + } + } + } + } + return result; + } + // don't summon him + return heComes(text, options); +}; + + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/america.js": +/*!********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/america.js ***! + \********************************************************************************/ +/***/ ((module) => { + +module['exports'] = function(colors) { + return function(letter, i, exploded) { + if (letter === ' ') return letter; + switch (i%3) { + case 0: return colors.red(letter); + case 1: return colors.white(letter); + case 2: return colors.blue(letter); + } + }; +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/rainbow.js": +/*!********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/rainbow.js ***! + \********************************************************************************/ +/***/ ((module) => { + +module['exports'] = function(colors) { + // RoY G BiV + var rainbowColors = ['red', 'yellow', 'green', 'blue', 'magenta']; + return function(letter, i, exploded) { + if (letter === ' ') { + return letter; + } else { + return colors[rainbowColors[i++ % rainbowColors.length]](letter); + } + }; +}; + + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/random.js": +/*!*******************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/random.js ***! + \*******************************************************************************/ +/***/ ((module) => { + +module['exports'] = function(colors) { + var available = ['underline', 'inverse', 'grey', 'yellow', 'red', 'green', + 'blue', 'white', 'cyan', 'magenta', 'brightYellow', 'brightRed', + 'brightGreen', 'brightBlue', 'brightWhite', 'brightCyan', 'brightMagenta']; + return function(letter, i, exploded) { + return letter === ' ' ? letter : + colors[ + available[Math.round(Math.random() * (available.length - 2))] + ](letter); + }; +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/zebra.js": +/*!******************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/zebra.js ***! + \******************************************************************************/ +/***/ ((module) => { + +module['exports'] = function(colors) { + return function(letter, i, exploded) { + return i % 2 === 0 ? letter : colors.inverse(letter); + }; +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/styles.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/styles.js ***! + \**************************************************************************/ +/***/ ((module) => { + +/* +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ + +var styles = {}; +module['exports'] = styles; + +var codes = { + reset: [0, 0], + + bold: [1, 22], + dim: [2, 22], + italic: [3, 23], + underline: [4, 24], + inverse: [7, 27], + hidden: [8, 28], + strikethrough: [9, 29], + + black: [30, 39], + red: [31, 39], + green: [32, 39], + yellow: [33, 39], + blue: [34, 39], + magenta: [35, 39], + cyan: [36, 39], + white: [37, 39], + gray: [90, 39], + grey: [90, 39], + + brightRed: [91, 39], + brightGreen: [92, 39], + brightYellow: [93, 39], + brightBlue: [94, 39], + brightMagenta: [95, 39], + brightCyan: [96, 39], + brightWhite: [97, 39], + + bgBlack: [40, 49], + bgRed: [41, 49], + bgGreen: [42, 49], + bgYellow: [43, 49], + bgBlue: [44, 49], + bgMagenta: [45, 49], + bgCyan: [46, 49], + bgWhite: [47, 49], + bgGray: [100, 49], + bgGrey: [100, 49], + + bgBrightRed: [101, 49], + bgBrightGreen: [102, 49], + bgBrightYellow: [103, 49], + bgBrightBlue: [104, 49], + bgBrightMagenta: [105, 49], + bgBrightCyan: [106, 49], + bgBrightWhite: [107, 49], + + // legacy styles for colors pre v1.0.0 + blackBG: [40, 49], + redBG: [41, 49], + greenBG: [42, 49], + yellowBG: [43, 49], + blueBG: [44, 49], + magentaBG: [45, 49], + cyanBG: [46, 49], + whiteBG: [47, 49], + +}; + +Object.keys(codes).forEach(function(key) { + var val = codes[key]; + var style = styles[key] = []; + style.open = '\u001b[' + val[0] + 'm'; + style.close = '\u001b[' + val[1] + 'm'; +}); + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/has-flag.js": +/*!***********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/has-flag.js ***! + \***********************************************************************************/ +/***/ ((module) => { + +"use strict"; +/* +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + + + +module.exports = function(flag, argv) { + argv = argv || process.argv; + + var terminatorPos = argv.indexOf('--'); + var prefix = /^-{1,2}/.test(flag) ? '' : '--'; + var pos = argv.indexOf(prefix + flag); + + return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/supports-colors.js": +/*!******************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/supports-colors.js ***! + \******************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/* +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ + + + +var os = __webpack_require__(/*! os */ "os"); +var hasFlag = __webpack_require__(/*! ./has-flag.js */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/has-flag.js"); + +var env = process.env; + +var forceColor = void 0; +if (hasFlag('no-color') || hasFlag('no-colors') || hasFlag('color=false')) { + forceColor = false; +} else if (hasFlag('color') || hasFlag('colors') || hasFlag('color=true') + || hasFlag('color=always')) { + forceColor = true; +} +if ('FORCE_COLOR' in env) { + forceColor = env.FORCE_COLOR.length === 0 + || parseInt(env.FORCE_COLOR, 10) !== 0; +} + +function translateLevel(level) { + if (level === 0) { + return false; + } + + return { + level: level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3, + }; +} + +function supportsColor(stream) { + if (forceColor === false) { + return 0; + } + + if (hasFlag('color=16m') || hasFlag('color=full') + || hasFlag('color=truecolor')) { + return 3; + } + + if (hasFlag('color=256')) { + return 2; + } + + if (stream && !stream.isTTY && forceColor !== true) { + return 0; + } + + var min = forceColor ? 1 : 0; + + if (process.platform === 'win32') { + // Node.js 7.5.0 is the first version of Node.js to include a patch to + // libuv that enables 256 color output on Windows. Anything earlier and it + // won't work. However, here we target Node.js 8 at minimum as it is an LTS + // release, and Node.js 7 is not. Windows 10 build 10586 is the first + // Windows release that supports 256 colors. Windows 10 build 14931 is the + // first release that supports 16m/TrueColor. + var osRelease = os.release().split('.'); + if (Number(process.versions.node.split('.')[0]) >= 8 + && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + + return 1; + } + + if ('CI' in env) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(function(sign) { + return sign in env; + }) || env.CI_NAME === 'codeship') { + return 1; + } + + return min; + } + + if ('TEAMCITY_VERSION' in env) { + return (/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0 + ); + } + + if ('TERM_PROGRAM' in env) { + var version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + + switch (env.TERM_PROGRAM) { + case 'iTerm.app': + return version >= 3 ? 3 : 2; + case 'Hyper': + return 3; + case 'Apple_Terminal': + return 2; + // No default + } + } + + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + + if (/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + + if ('COLORTERM' in env) { + return 1; + } + + if (env.TERM === 'dumb') { + return min; + } + + return min; +} + +function getSupportLevel(stream) { + var level = supportsColor(stream); + return translateLevel(level); +} + +module.exports = { + supportsColor: getSupportLevel, + stdout: getSupportLevel(process.stdout), + stderr: getSupportLevel(process.stderr), +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/@colors/colors/safe.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@colors/colors/safe.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// +// Remark: Requiring this file will use the "safe" colors API, +// which will not touch String.prototype. +// +// var colors = require('colors/safe'); +// colors.red("foo") +// +// +var colors = __webpack_require__(/*! ./lib/colors */ "./build/cht-core-4-6/api/node_modules/@colors/colors/lib/colors.js"); +module['exports'] = colors; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/index.js": +/*!*********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/index.js ***! + \*********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var enabled = __webpack_require__(/*! enabled */ "./build/cht-core-4-6/api/node_modules/enabled/index.js"); + +/** + * Creates a new Adapter. + * + * @param {Function} fn Function that returns the value. + * @returns {Function} The adapter logic. + * @public + */ +module.exports = function create(fn) { + return function adapter(namespace) { + try { + return enabled(namespace, fn()); + } catch (e) { /* Any failure means that we found nothing */ } + + return false; + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/process.env.js": +/*!***************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/process.env.js ***! + \***************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var adapter = __webpack_require__(/*! ./ */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/index.js"); + +/** + * Extracts the values from process.env. + * + * @type {Function} + * @public + */ +module.exports = adapter(function processenv() { + return process.env.DEBUG || process.env.DIAGNOSTICS; +}); + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/diagnostics.js": +/*!******************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/diagnostics.js ***! + \******************************************************************************/ +/***/ ((module) => { + +/** + * Contains all configured adapters for the given environment. + * + * @type {Array} + * @public + */ +var adapters = []; + +/** + * Contains all modifier functions. + * + * @typs {Array} + * @public + */ +var modifiers = []; + +/** + * Our default logger. + * + * @public + */ +var logger = function devnull() {}; + +/** + * Register a new adapter that will used to find environments. + * + * @param {Function} adapter A function that will return the possible env. + * @returns {Boolean} Indication of a successful add. + * @public + */ +function use(adapter) { + if (~adapters.indexOf(adapter)) return false; + + adapters.push(adapter); + return true; +} + +/** + * Assign a new log method. + * + * @param {Function} custom The log method. + * @public + */ +function set(custom) { + logger = custom; +} + +/** + * Check if the namespace is allowed by any of our adapters. + * + * @param {String} namespace The namespace that needs to be enabled + * @returns {Boolean|Promise} Indication if the namespace is enabled by our adapters. + * @public + */ +function enabled(namespace) { + var async = []; + + for (var i = 0; i < adapters.length; i++) { + if (adapters[i].async) { + async.push(adapters[i]); + continue; + } + + if (adapters[i](namespace)) return true; + } + + if (!async.length) return false; + + // + // Now that we know that we Async functions, we know we run in an ES6 + // environment and can use all the API's that they offer, in this case + // we want to return a Promise so that we can `await` in React-Native + // for an async adapter. + // + return new Promise(function pinky(resolve) { + Promise.all( + async.map(function prebind(fn) { + return fn(namespace); + }) + ).then(function resolved(values) { + resolve(values.some(Boolean)); + }); + }); +} + +/** + * Add a new message modifier to the debugger. + * + * @param {Function} fn Modification function. + * @returns {Boolean} Indication of a successful add. + * @public + */ +function modify(fn) { + if (~modifiers.indexOf(fn)) return false; + + modifiers.push(fn); + return true; +} + +/** + * Write data to the supplied logger. + * + * @param {Object} meta Meta information about the log. + * @param {Array} args Arguments for console.log. + * @public + */ +function write() { + logger.apply(logger, arguments); +} + +/** + * Process the message with the modifiers. + * + * @param {Mixed} message The message to be transformed by modifers. + * @returns {String} Transformed message. + * @public + */ +function process(message) { + for (var i = 0; i < modifiers.length; i++) { + message = modifiers[i].apply(modifiers[i], arguments); + } + + return message; +} + +/** + * Introduce options to the logger function. + * + * @param {Function} fn Calback function. + * @param {Object} options Properties to introduce on fn. + * @returns {Function} The passed function + * @public + */ +function introduce(fn, options) { + var has = Object.prototype.hasOwnProperty; + + for (var key in options) { + if (has.call(options, key)) { + fn[key] = options[key]; + } + } + + return fn; +} + +/** + * Nope, we're not allowed to write messages. + * + * @returns {Boolean} false + * @public + */ +function nope(options) { + options.enabled = false; + options.modify = modify; + options.set = set; + options.use = use; + + return introduce(function diagnopes() { + return false; + }, options); +} + +/** + * Yep, we're allowed to write debug messages. + * + * @param {Object} options The options for the process. + * @returns {Function} The function that does the logging. + * @public + */ +function yep(options) { + /** + * The function that receives the actual debug information. + * + * @returns {Boolean} indication that we're logging. + * @public + */ + function diagnostics() { + var args = Array.prototype.slice.call(arguments, 0); + + write.call(write, options, process(args, options)); + return true; + } + + options.enabled = true; + options.modify = modify; + options.set = set; + options.use = use; + + return introduce(diagnostics, options); +} + +/** + * Simple helper function to introduce various of helper methods to our given + * diagnostics function. + * + * @param {Function} diagnostics The diagnostics function. + * @returns {Function} diagnostics + * @public + */ +module.exports = function create(diagnostics) { + diagnostics.introduce = introduce; + diagnostics.enabled = enabled; + diagnostics.process = process; + diagnostics.modify = modify; + diagnostics.write = write; + diagnostics.nope = nope; + diagnostics.yep = yep; + diagnostics.set = set; + diagnostics.use = use; + + return diagnostics; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/logger/console.js": +/*!*********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/logger/console.js ***! + \*********************************************************************************/ +/***/ ((module) => { + +/** + * An idiot proof logger to be used as default. We've wrapped it in a try/catch + * statement to ensure the environments without the `console` API do not crash + * as well as an additional fix for ancient browsers like IE8 where the + * `console.log` API doesn't have an `apply`, so we need to use the Function's + * apply functionality to apply the arguments. + * + * @param {Object} meta Options of the logger. + * @param {Array} messages The actuall message that needs to be logged. + * @public + */ +module.exports = function (meta, messages) { + // + // So yea. IE8 doesn't have an apply so we need a work around to puke the + // arguments in place. + // + try { Function.prototype.apply.call(console.log, console, messages); } + catch (e) {} +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/modifiers/namespace-ansi.js": +/*!*******************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/modifiers/namespace-ansi.js ***! + \*******************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var colorspace = __webpack_require__(/*! colorspace */ "./build/cht-core-4-6/api/node_modules/colorspace/index.js"); +var kuler = __webpack_require__(/*! kuler */ "./build/cht-core-4-6/api/node_modules/kuler/index.js"); + +/** + * Prefix the messages with a colored namespace. + * + * @param {Array} args The messages array that is getting written. + * @param {Object} options Options for diagnostics. + * @returns {Array} Altered messages array. + * @public + */ +module.exports = function ansiModifier(args, options) { + var namespace = options.namespace; + var ansi = options.colors !== false + ? kuler(namespace +':', colorspace(namespace)) + : namespace +':'; + + args[0] = ansi +' '+ args[0]; + return args; +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/development.js": +/*!***********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/development.js ***! + \***********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var create = __webpack_require__(/*! ../diagnostics */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/diagnostics.js"); +var tty = __webpack_require__(/*! tty */ "tty").isatty(1); + +/** + * Create a new diagnostics logger. + * + * @param {String} namespace The namespace it should enable. + * @param {Object} options Additional options. + * @returns {Function} The logger. + * @public + */ +var diagnostics = create(function dev(namespace, options) { + options = options || {}; + options.colors = 'colors' in options ? options.colors : tty; + options.namespace = namespace; + options.prod = false; + options.dev = true; + + if (!dev.enabled(namespace) && !(options.force || dev.force)) { + return dev.nope(options); + } + + return dev.yep(options); +}); + +// +// Configure the logger for the given environment. +// +diagnostics.modify(__webpack_require__(/*! ../modifiers/namespace-ansi */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/modifiers/namespace-ansi.js")); +diagnostics.use(__webpack_require__(/*! ../adapters/process.env */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/process.env.js")); +diagnostics.set(__webpack_require__(/*! ../logger/console */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/logger/console.js")); + +// +// Expose the diagnostics logger. +// +module.exports = diagnostics; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/index.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/index.js ***! + \*****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// +// Select the correct build version depending on the environment. +// +if (false) {} else { + module.exports = __webpack_require__(/*! ./development.js */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/development.js"); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/asyncify.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/asyncify.js ***! + \***************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.default = asyncify; + +var _initialParams = __webpack_require__(/*! ./internal/initialParams.js */ "./build/cht-core-4-6/api/node_modules/async/internal/initialParams.js"); + +var _initialParams2 = _interopRequireDefault(_initialParams); + +var _setImmediate = __webpack_require__(/*! ./internal/setImmediate.js */ "./build/cht-core-4-6/api/node_modules/async/internal/setImmediate.js"); + +var _setImmediate2 = _interopRequireDefault(_setImmediate); + +var _wrapAsync = __webpack_require__(/*! ./internal/wrapAsync.js */ "./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Take a sync function and make it async, passing its return value to a + * callback. This is useful for plugging sync functions into a waterfall, + * series, or other async functions. Any arguments passed to the generated + * function will be passed to the wrapped function (except for the final + * callback argument). Errors thrown will be passed to the callback. + * + * If the function passed to `asyncify` returns a Promise, that promises's + * resolved/rejected state will be used to call the callback, rather than simply + * the synchronous return value. + * + * This also means you can asyncify ES2017 `async` functions. + * + * @name asyncify + * @static + * @memberOf module:Utils + * @method + * @alias wrapSync + * @category Util + * @param {Function} func - The synchronous function, or Promise-returning + * function to convert to an {@link AsyncFunction}. + * @returns {AsyncFunction} An asynchronous wrapper of the `func`. To be + * invoked with `(args..., callback)`. + * @example + * + * // passing a regular synchronous function + * async.waterfall([ + * async.apply(fs.readFile, filename, "utf8"), + * async.asyncify(JSON.parse), + * function (data, next) { + * // data is the result of parsing the text. + * // If there was a parsing error, it would have been caught. + * } + * ], callback); + * + * // passing a function returning a promise + * async.waterfall([ + * async.apply(fs.readFile, filename, "utf8"), + * async.asyncify(function (contents) { + * return db.model.create(contents); + * }), + * function (model, next) { + * // `model` is the instantiated model object. + * // If there was an error, this function would be skipped. + * } + * ], callback); + * + * // es2017 example, though `asyncify` is not needed if your JS environment + * // supports async functions out of the box + * var q = async.queue(async.asyncify(async function(file) { + * var intermediateStep = await processFile(file); + * return await somePromise(intermediateStep) + * })); + * + * q.push(files); + */ +function asyncify(func) { + if ((0, _wrapAsync.isAsync)(func)) { + return function (...args /*, callback*/) { + const callback = args.pop(); + const promise = func.apply(this, args); + return handlePromise(promise, callback); + }; + } + + return (0, _initialParams2.default)(function (args, callback) { + var result; + try { + result = func.apply(this, args); + } catch (e) { + return callback(e); + } + // if result is Promise object + if (result && typeof result.then === 'function') { + return handlePromise(result, callback); + } else { + callback(null, result); + } + }); +} + +function handlePromise(promise, callback) { + return promise.then(value => { + invokeCallback(callback, null, value); + }, err => { + invokeCallback(callback, err && (err instanceof Error || err.message) ? err : new Error(err)); + }); +} + +function invokeCallback(callback, error, value) { + try { + callback(error, value); + } catch (err) { + (0, _setImmediate2.default)(e => { + throw e; + }, err); + } +} +module.exports = exports.default; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/eachOf.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/eachOf.js ***! + \*************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +var _isArrayLike = __webpack_require__(/*! ./internal/isArrayLike.js */ "./build/cht-core-4-6/api/node_modules/async/internal/isArrayLike.js"); + +var _isArrayLike2 = _interopRequireDefault(_isArrayLike); + +var _breakLoop = __webpack_require__(/*! ./internal/breakLoop.js */ "./build/cht-core-4-6/api/node_modules/async/internal/breakLoop.js"); + +var _breakLoop2 = _interopRequireDefault(_breakLoop); + +var _eachOfLimit = __webpack_require__(/*! ./eachOfLimit.js */ "./build/cht-core-4-6/api/node_modules/async/eachOfLimit.js"); + +var _eachOfLimit2 = _interopRequireDefault(_eachOfLimit); + +var _once = __webpack_require__(/*! ./internal/once.js */ "./build/cht-core-4-6/api/node_modules/async/internal/once.js"); + +var _once2 = _interopRequireDefault(_once); + +var _onlyOnce = __webpack_require__(/*! ./internal/onlyOnce.js */ "./build/cht-core-4-6/api/node_modules/async/internal/onlyOnce.js"); + +var _onlyOnce2 = _interopRequireDefault(_onlyOnce); + +var _wrapAsync = __webpack_require__(/*! ./internal/wrapAsync.js */ "./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js"); + +var _wrapAsync2 = _interopRequireDefault(_wrapAsync); + +var _awaitify = __webpack_require__(/*! ./internal/awaitify.js */ "./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js"); + +var _awaitify2 = _interopRequireDefault(_awaitify); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// eachOf implementation optimized for array-likes +function eachOfArrayLike(coll, iteratee, callback) { + callback = (0, _once2.default)(callback); + var index = 0, + completed = 0, + { length } = coll, + canceled = false; + if (length === 0) { + callback(null); + } + + function iteratorCallback(err, value) { + if (err === false) { + canceled = true; + } + if (canceled === true) return; + if (err) { + callback(err); + } else if (++completed === length || value === _breakLoop2.default) { + callback(null); + } + } + + for (; index < length; index++) { + iteratee(coll[index], index, (0, _onlyOnce2.default)(iteratorCallback)); + } +} + +// a generic version of eachOf which can handle array, object, and iterator cases. +function eachOfGeneric(coll, iteratee, callback) { + return (0, _eachOfLimit2.default)(coll, Infinity, iteratee, callback); +} + +/** + * Like [`each`]{@link module:Collections.each}, except that it passes the key (or index) as the second argument + * to the iteratee. + * + * @name eachOf + * @static + * @memberOf module:Collections + * @method + * @alias forEachOf + * @category Collection + * @see [async.each]{@link module:Collections.each} + * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over. + * @param {AsyncFunction} iteratee - A function to apply to each + * item in `coll`. + * The `key` is the item's key, or index in the case of an array. + * Invoked with (item, key, callback). + * @param {Function} [callback] - A callback which is called when all + * `iteratee` functions have finished, or an error occurs. Invoked with (err). + * @returns {Promise} a promise, if a callback is omitted + * @example + * + * // dev.json is a file containing a valid json object config for dev environment + * // dev.json is a file containing a valid json object config for test environment + * // prod.json is a file containing a valid json object config for prod environment + * // invalid.json is a file with a malformed json object + * + * let configs = {}; //global variable + * let validConfigFileMap = {dev: 'dev.json', test: 'test.json', prod: 'prod.json'}; + * let invalidConfigFileMap = {dev: 'dev.json', test: 'test.json', invalid: 'invalid.json'}; + * + * // asynchronous function that reads a json file and parses the contents as json object + * function parseFile(file, key, callback) { + * fs.readFile(file, "utf8", function(err, data) { + * if (err) return calback(err); + * try { + * configs[key] = JSON.parse(data); + * } catch (e) { + * return callback(e); + * } + * callback(); + * }); + * } + * + * // Using callbacks + * async.forEachOf(validConfigFileMap, parseFile, function (err) { + * if (err) { + * console.error(err); + * } else { + * console.log(configs); + * // configs is now a map of JSON data, e.g. + * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json} + * } + * }); + * + * //Error handing + * async.forEachOf(invalidConfigFileMap, parseFile, function (err) { + * if (err) { + * console.error(err); + * // JSON parse error exception + * } else { + * console.log(configs); + * } + * }); + * + * // Using Promises + * async.forEachOf(validConfigFileMap, parseFile) + * .then( () => { + * console.log(configs); + * // configs is now a map of JSON data, e.g. + * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json} + * }).catch( err => { + * console.error(err); + * }); + * + * //Error handing + * async.forEachOf(invalidConfigFileMap, parseFile) + * .then( () => { + * console.log(configs); + * }).catch( err => { + * console.error(err); + * // JSON parse error exception + * }); + * + * // Using async/await + * async () => { + * try { + * let result = await async.forEachOf(validConfigFileMap, parseFile); + * console.log(configs); + * // configs is now a map of JSON data, e.g. + * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json} + * } + * catch (err) { + * console.log(err); + * } + * } + * + * //Error handing + * async () => { + * try { + * let result = await async.forEachOf(invalidConfigFileMap, parseFile); + * console.log(configs); + * } + * catch (err) { + * console.log(err); + * // JSON parse error exception + * } + * } + * + */ +function eachOf(coll, iteratee, callback) { + var eachOfImplementation = (0, _isArrayLike2.default)(coll) ? eachOfArrayLike : eachOfGeneric; + return eachOfImplementation(coll, (0, _wrapAsync2.default)(iteratee), callback); +} + +exports.default = (0, _awaitify2.default)(eachOf, 3); +module.exports = exports.default; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/eachOfLimit.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/eachOfLimit.js ***! + \******************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +var _eachOfLimit2 = __webpack_require__(/*! ./internal/eachOfLimit.js */ "./build/cht-core-4-6/api/node_modules/async/internal/eachOfLimit.js"); + +var _eachOfLimit3 = _interopRequireDefault(_eachOfLimit2); + +var _wrapAsync = __webpack_require__(/*! ./internal/wrapAsync.js */ "./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js"); + +var _wrapAsync2 = _interopRequireDefault(_wrapAsync); + +var _awaitify = __webpack_require__(/*! ./internal/awaitify.js */ "./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js"); + +var _awaitify2 = _interopRequireDefault(_awaitify); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * The same as [`eachOf`]{@link module:Collections.eachOf} but runs a maximum of `limit` async operations at a + * time. + * + * @name eachOfLimit + * @static + * @memberOf module:Collections + * @method + * @see [async.eachOf]{@link module:Collections.eachOf} + * @alias forEachOfLimit + * @category Collection + * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over. + * @param {number} limit - The maximum number of async operations at a time. + * @param {AsyncFunction} iteratee - An async function to apply to each + * item in `coll`. The `key` is the item's key, or index in the case of an + * array. + * Invoked with (item, key, callback). + * @param {Function} [callback] - A callback which is called when all + * `iteratee` functions have finished, or an error occurs. Invoked with (err). + * @returns {Promise} a promise, if a callback is omitted + */ +function eachOfLimit(coll, limit, iteratee, callback) { + return (0, _eachOfLimit3.default)(limit)(coll, (0, _wrapAsync2.default)(iteratee), callback); +} + +exports.default = (0, _awaitify2.default)(eachOfLimit, 4); +module.exports = exports.default; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/eachOfSeries.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/eachOfSeries.js ***! + \*******************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +var _eachOfLimit = __webpack_require__(/*! ./eachOfLimit.js */ "./build/cht-core-4-6/api/node_modules/async/eachOfLimit.js"); + +var _eachOfLimit2 = _interopRequireDefault(_eachOfLimit); + +var _awaitify = __webpack_require__(/*! ./internal/awaitify.js */ "./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js"); + +var _awaitify2 = _interopRequireDefault(_awaitify); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * The same as [`eachOf`]{@link module:Collections.eachOf} but runs only a single async operation at a time. + * + * @name eachOfSeries + * @static + * @memberOf module:Collections + * @method + * @see [async.eachOf]{@link module:Collections.eachOf} + * @alias forEachOfSeries + * @category Collection + * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over. + * @param {AsyncFunction} iteratee - An async function to apply to each item in + * `coll`. + * Invoked with (item, key, callback). + * @param {Function} [callback] - A callback which is called when all `iteratee` + * functions have finished, or an error occurs. Invoked with (err). + * @returns {Promise} a promise, if a callback is omitted + */ +function eachOfSeries(coll, iteratee, callback) { + return (0, _eachOfLimit2.default)(coll, 1, iteratee, callback); +} +exports.default = (0, _awaitify2.default)(eachOfSeries, 3); +module.exports = exports.default; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/forEach.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/forEach.js ***! + \**************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +var _eachOf = __webpack_require__(/*! ./eachOf.js */ "./build/cht-core-4-6/api/node_modules/async/eachOf.js"); + +var _eachOf2 = _interopRequireDefault(_eachOf); + +var _withoutIndex = __webpack_require__(/*! ./internal/withoutIndex.js */ "./build/cht-core-4-6/api/node_modules/async/internal/withoutIndex.js"); + +var _withoutIndex2 = _interopRequireDefault(_withoutIndex); + +var _wrapAsync = __webpack_require__(/*! ./internal/wrapAsync.js */ "./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js"); + +var _wrapAsync2 = _interopRequireDefault(_wrapAsync); + +var _awaitify = __webpack_require__(/*! ./internal/awaitify.js */ "./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js"); + +var _awaitify2 = _interopRequireDefault(_awaitify); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Applies the function `iteratee` to each item in `coll`, in parallel. + * The `iteratee` is called with an item from the list, and a callback for when + * it has finished. If the `iteratee` passes an error to its `callback`, the + * main `callback` (for the `each` function) is immediately called with the + * error. + * + * Note, that since this function applies `iteratee` to each item in parallel, + * there is no guarantee that the iteratee functions will complete in order. + * + * @name each + * @static + * @memberOf module:Collections + * @method + * @alias forEach + * @category Collection + * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over. + * @param {AsyncFunction} iteratee - An async function to apply to + * each item in `coll`. Invoked with (item, callback). + * The array index is not passed to the iteratee. + * If you need the index, use `eachOf`. + * @param {Function} [callback] - A callback which is called when all + * `iteratee` functions have finished, or an error occurs. Invoked with (err). + * @returns {Promise} a promise, if a callback is omitted + * @example + * + * // dir1 is a directory that contains file1.txt, file2.txt + * // dir2 is a directory that contains file3.txt, file4.txt + * // dir3 is a directory that contains file5.txt + * // dir4 does not exist + * + * const fileList = [ 'dir1/file2.txt', 'dir2/file3.txt', 'dir/file5.txt']; + * const withMissingFileList = ['dir1/file1.txt', 'dir4/file2.txt']; + * + * // asynchronous function that deletes a file + * const deleteFile = function(file, callback) { + * fs.unlink(file, callback); + * }; + * + * // Using callbacks + * async.each(fileList, deleteFile, function(err) { + * if( err ) { + * console.log(err); + * } else { + * console.log('All files have been deleted successfully'); + * } + * }); + * + * // Error Handling + * async.each(withMissingFileList, deleteFile, function(err){ + * console.log(err); + * // [ Error: ENOENT: no such file or directory ] + * // since dir4/file2.txt does not exist + * // dir1/file1.txt could have been deleted + * }); + * + * // Using Promises + * async.each(fileList, deleteFile) + * .then( () => { + * console.log('All files have been deleted successfully'); + * }).catch( err => { + * console.log(err); + * }); + * + * // Error Handling + * async.each(fileList, deleteFile) + * .then( () => { + * console.log('All files have been deleted successfully'); + * }).catch( err => { + * console.log(err); + * // [ Error: ENOENT: no such file or directory ] + * // since dir4/file2.txt does not exist + * // dir1/file1.txt could have been deleted + * }); + * + * // Using async/await + * async () => { + * try { + * await async.each(files, deleteFile); + * } + * catch (err) { + * console.log(err); + * } + * } + * + * // Error Handling + * async () => { + * try { + * await async.each(withMissingFileList, deleteFile); + * } + * catch (err) { + * console.log(err); + * // [ Error: ENOENT: no such file or directory ] + * // since dir4/file2.txt does not exist + * // dir1/file1.txt could have been deleted + * } + * } + * + */ +function eachLimit(coll, iteratee, callback) { + return (0, _eachOf2.default)(coll, (0, _withoutIndex2.default)((0, _wrapAsync2.default)(iteratee)), callback); +} + +exports.default = (0, _awaitify2.default)(eachLimit, 3); +module.exports = exports.default; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/asyncEachOfLimit.js": +/*!********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/asyncEachOfLimit.js ***! + \********************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.default = asyncEachOfLimit; + +var _breakLoop = __webpack_require__(/*! ./breakLoop.js */ "./build/cht-core-4-6/api/node_modules/async/internal/breakLoop.js"); + +var _breakLoop2 = _interopRequireDefault(_breakLoop); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// for async generators +function asyncEachOfLimit(generator, limit, iteratee, callback) { + let done = false; + let canceled = false; + let awaiting = false; + let running = 0; + let idx = 0; + + function replenish() { + //console.log('replenish') + if (running >= limit || awaiting || done) return; + //console.log('replenish awaiting') + awaiting = true; + generator.next().then(({ value, done: iterDone }) => { + //console.log('got value', value) + if (canceled || done) return; + awaiting = false; + if (iterDone) { + done = true; + if (running <= 0) { + //console.log('done nextCb') + callback(null); + } + return; + } + running++; + iteratee(value, idx, iterateeCallback); + idx++; + replenish(); + }).catch(handleError); + } + + function iterateeCallback(err, result) { + //console.log('iterateeCallback') + running -= 1; + if (canceled) return; + if (err) return handleError(err); + + if (err === false) { + done = true; + canceled = true; + return; + } + + if (result === _breakLoop2.default || done && running <= 0) { + done = true; + //console.log('done iterCb') + return callback(null); + } + replenish(); + } + + function handleError(err) { + if (canceled) return; + awaiting = false; + done = true; + callback(err); + } + + replenish(); +} +module.exports = exports.default; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js ***! + \************************************************************************/ +/***/ ((module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.default = awaitify; +// conditionally promisify a function. +// only return a promise if a callback is omitted +function awaitify(asyncFn, arity) { + if (!arity) arity = asyncFn.length; + if (!arity) throw new Error('arity is undefined'); + function awaitable(...args) { + if (typeof args[arity - 1] === 'function') { + return asyncFn.apply(this, args); + } + + return new Promise((resolve, reject) => { + args[arity - 1] = (err, ...cbArgs) => { + if (err) return reject(err); + resolve(cbArgs.length > 1 ? cbArgs : cbArgs[0]); + }; + asyncFn.apply(this, args); + }); + } + + return awaitable; +} +module.exports = exports.default; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/breakLoop.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/breakLoop.js ***! + \*************************************************************************/ +/***/ ((module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +// A temporary value used to identify if the loop should be broken. +// See #1064, #1293 +const breakLoop = {}; +exports.default = breakLoop; +module.exports = exports.default; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/eachOfLimit.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/eachOfLimit.js ***! + \***************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +var _once = __webpack_require__(/*! ./once.js */ "./build/cht-core-4-6/api/node_modules/async/internal/once.js"); + +var _once2 = _interopRequireDefault(_once); + +var _iterator = __webpack_require__(/*! ./iterator.js */ "./build/cht-core-4-6/api/node_modules/async/internal/iterator.js"); + +var _iterator2 = _interopRequireDefault(_iterator); + +var _onlyOnce = __webpack_require__(/*! ./onlyOnce.js */ "./build/cht-core-4-6/api/node_modules/async/internal/onlyOnce.js"); + +var _onlyOnce2 = _interopRequireDefault(_onlyOnce); + +var _wrapAsync = __webpack_require__(/*! ./wrapAsync.js */ "./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js"); + +var _asyncEachOfLimit = __webpack_require__(/*! ./asyncEachOfLimit.js */ "./build/cht-core-4-6/api/node_modules/async/internal/asyncEachOfLimit.js"); + +var _asyncEachOfLimit2 = _interopRequireDefault(_asyncEachOfLimit); + +var _breakLoop = __webpack_require__(/*! ./breakLoop.js */ "./build/cht-core-4-6/api/node_modules/async/internal/breakLoop.js"); + +var _breakLoop2 = _interopRequireDefault(_breakLoop); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = limit => { + return (obj, iteratee, callback) => { + callback = (0, _once2.default)(callback); + if (limit <= 0) { + throw new RangeError('concurrency limit cannot be less than 1'); + } + if (!obj) { + return callback(null); + } + if ((0, _wrapAsync.isAsyncGenerator)(obj)) { + return (0, _asyncEachOfLimit2.default)(obj, limit, iteratee, callback); + } + if ((0, _wrapAsync.isAsyncIterable)(obj)) { + return (0, _asyncEachOfLimit2.default)(obj[Symbol.asyncIterator](), limit, iteratee, callback); + } + var nextElem = (0, _iterator2.default)(obj); + var done = false; + var canceled = false; + var running = 0; + var looping = false; + + function iterateeCallback(err, value) { + if (canceled) return; + running -= 1; + if (err) { + done = true; + callback(err); + } else if (err === false) { + done = true; + canceled = true; + } else if (value === _breakLoop2.default || done && running <= 0) { + done = true; + return callback(null); + } else if (!looping) { + replenish(); + } + } + + function replenish() { + looping = true; + while (running < limit && !done) { + var elem = nextElem(); + if (elem === null) { + done = true; + if (running <= 0) { + callback(null); + } + return; + } + running += 1; + iteratee(elem.value, elem.key, (0, _onlyOnce2.default)(iterateeCallback)); + } + looping = false; + } + + replenish(); + }; +}; + +module.exports = exports.default; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/getIterator.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/getIterator.js ***! + \***************************************************************************/ +/***/ ((module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +exports.default = function (coll) { + return coll[Symbol.iterator] && coll[Symbol.iterator](); +}; + +module.exports = exports.default; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/initialParams.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/initialParams.js ***! + \*****************************************************************************/ +/***/ ((module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +exports.default = function (fn) { + return function (...args /*, callback*/) { + var callback = args.pop(); + return fn.call(this, args, callback); + }; +}; + +module.exports = exports.default; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/isArrayLike.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/isArrayLike.js ***! + \***************************************************************************/ +/***/ ((module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.default = isArrayLike; +function isArrayLike(value) { + return value && typeof value.length === 'number' && value.length >= 0 && value.length % 1 === 0; +} +module.exports = exports.default; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/iterator.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/iterator.js ***! + \************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.default = createIterator; + +var _isArrayLike = __webpack_require__(/*! ./isArrayLike.js */ "./build/cht-core-4-6/api/node_modules/async/internal/isArrayLike.js"); + +var _isArrayLike2 = _interopRequireDefault(_isArrayLike); + +var _getIterator = __webpack_require__(/*! ./getIterator.js */ "./build/cht-core-4-6/api/node_modules/async/internal/getIterator.js"); + +var _getIterator2 = _interopRequireDefault(_getIterator); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function createArrayIterator(coll) { + var i = -1; + var len = coll.length; + return function next() { + return ++i < len ? { value: coll[i], key: i } : null; + }; +} + +function createES2015Iterator(iterator) { + var i = -1; + return function next() { + var item = iterator.next(); + if (item.done) return null; + i++; + return { value: item.value, key: i }; + }; +} + +function createObjectIterator(obj) { + var okeys = obj ? Object.keys(obj) : []; + var i = -1; + var len = okeys.length; + return function next() { + var key = okeys[++i]; + if (key === '__proto__') { + return next(); + } + return i < len ? { value: obj[key], key } : null; + }; +} + +function createIterator(coll) { + if ((0, _isArrayLike2.default)(coll)) { + return createArrayIterator(coll); + } + + var iterator = (0, _getIterator2.default)(coll); + return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll); +} +module.exports = exports.default; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/once.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/once.js ***! + \********************************************************************/ +/***/ ((module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.default = once; +function once(fn) { + function wrapper(...args) { + if (fn === null) return; + var callFn = fn; + fn = null; + callFn.apply(this, args); + } + Object.assign(wrapper, fn); + return wrapper; +} +module.exports = exports.default; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/onlyOnce.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/onlyOnce.js ***! + \************************************************************************/ +/***/ ((module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.default = onlyOnce; +function onlyOnce(fn) { + return function (...args) { + if (fn === null) throw new Error("Callback was already called."); + var callFn = fn; + fn = null; + callFn.apply(this, args); + }; +} +module.exports = exports.default; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/parallel.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/parallel.js ***! + \************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +var _isArrayLike = __webpack_require__(/*! ./isArrayLike.js */ "./build/cht-core-4-6/api/node_modules/async/internal/isArrayLike.js"); + +var _isArrayLike2 = _interopRequireDefault(_isArrayLike); + +var _wrapAsync = __webpack_require__(/*! ./wrapAsync.js */ "./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js"); + +var _wrapAsync2 = _interopRequireDefault(_wrapAsync); + +var _awaitify = __webpack_require__(/*! ./awaitify.js */ "./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js"); + +var _awaitify2 = _interopRequireDefault(_awaitify); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = (0, _awaitify2.default)((eachfn, tasks, callback) => { + var results = (0, _isArrayLike2.default)(tasks) ? [] : {}; + + eachfn(tasks, (task, key, taskCb) => { + (0, _wrapAsync2.default)(task)((err, ...result) => { + if (result.length < 2) { + [result] = result; + } + results[key] = result; + taskCb(err); + }); + }, err => callback(err, results)); +}, 3); +module.exports = exports.default; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/setImmediate.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/setImmediate.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.fallback = fallback; +exports.wrap = wrap; +/* istanbul ignore file */ + +var hasQueueMicrotask = exports.hasQueueMicrotask = typeof queueMicrotask === 'function' && queueMicrotask; +var hasSetImmediate = exports.hasSetImmediate = typeof setImmediate === 'function' && setImmediate; +var hasNextTick = exports.hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function'; + +function fallback(fn) { + setTimeout(fn, 0); +} + +function wrap(defer) { + return (fn, ...args) => defer(() => fn(...args)); +} + +var _defer; + +if (hasQueueMicrotask) { + _defer = queueMicrotask; +} else if (hasSetImmediate) { + _defer = setImmediate; +} else if (hasNextTick) { + _defer = process.nextTick; +} else { + _defer = fallback; +} + +exports.default = wrap(_defer); + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/withoutIndex.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/withoutIndex.js ***! + \****************************************************************************/ +/***/ ((module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.default = _withoutIndex; +function _withoutIndex(iteratee) { + return (value, index, callback) => iteratee(value, callback); +} +module.exports = exports.default; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.isAsyncIterable = exports.isAsyncGenerator = exports.isAsync = undefined; + +var _asyncify = __webpack_require__(/*! ../asyncify.js */ "./build/cht-core-4-6/api/node_modules/async/asyncify.js"); + +var _asyncify2 = _interopRequireDefault(_asyncify); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function isAsync(fn) { + return fn[Symbol.toStringTag] === 'AsyncFunction'; +} + +function isAsyncGenerator(fn) { + return fn[Symbol.toStringTag] === 'AsyncGenerator'; +} + +function isAsyncIterable(obj) { + return typeof obj[Symbol.asyncIterator] === 'function'; +} + +function wrapAsync(asyncFn) { + if (typeof asyncFn !== 'function') throw new Error('expected a function'); + return isAsync(asyncFn) ? (0, _asyncify2.default)(asyncFn) : asyncFn; +} + +exports.default = wrapAsync; +exports.isAsync = isAsync; +exports.isAsyncGenerator = isAsyncGenerator; +exports.isAsyncIterable = isAsyncIterable; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/async/series.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/async/series.js ***! + \*************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.default = series; + +var _parallel2 = __webpack_require__(/*! ./internal/parallel.js */ "./build/cht-core-4-6/api/node_modules/async/internal/parallel.js"); + +var _parallel3 = _interopRequireDefault(_parallel2); + +var _eachOfSeries = __webpack_require__(/*! ./eachOfSeries.js */ "./build/cht-core-4-6/api/node_modules/async/eachOfSeries.js"); + +var _eachOfSeries2 = _interopRequireDefault(_eachOfSeries); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Run the functions in the `tasks` collection in series, each one running once + * the previous function has completed. If any functions in the series pass an + * error to its callback, no more functions are run, and `callback` is + * immediately called with the value of the error. Otherwise, `callback` + * receives an array of results when `tasks` have completed. + * + * It is also possible to use an object instead of an array. Each property will + * be run as a function, and the results will be passed to the final `callback` + * as an object instead of an array. This can be a more readable way of handling + * results from {@link async.series}. + * + * **Note** that while many implementations preserve the order of object + * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6) + * explicitly states that + * + * > The mechanics and order of enumerating the properties is not specified. + * + * So if you rely on the order in which your series of functions are executed, + * and want this to work on all platforms, consider using an array. + * + * @name series + * @static + * @memberOf module:ControlFlow + * @method + * @category Control Flow + * @param {Array|Iterable|AsyncIterable|Object} tasks - A collection containing + * [async functions]{@link AsyncFunction} to run in series. + * Each function can complete with any number of optional `result` values. + * @param {Function} [callback] - An optional callback to run once all the + * functions have completed. This function gets a results array (or object) + * containing all the result arguments passed to the `task` callbacks. Invoked + * with (err, result). + * @return {Promise} a promise, if no callback is passed + * @example + * + * //Using Callbacks + * async.series([ + * function(callback) { + * setTimeout(function() { + * // do some async task + * callback(null, 'one'); + * }, 200); + * }, + * function(callback) { + * setTimeout(function() { + * // then do another async task + * callback(null, 'two'); + * }, 100); + * } + * ], function(err, results) { + * console.log(results); + * // results is equal to ['one','two'] + * }); + * + * // an example using objects instead of arrays + * async.series({ + * one: function(callback) { + * setTimeout(function() { + * // do some async task + * callback(null, 1); + * }, 200); + * }, + * two: function(callback) { + * setTimeout(function() { + * // then do another async task + * callback(null, 2); + * }, 100); + * } + * }, function(err, results) { + * console.log(results); + * // results is equal to: { one: 1, two: 2 } + * }); + * + * //Using Promises + * async.series([ + * function(callback) { + * setTimeout(function() { + * callback(null, 'one'); + * }, 200); + * }, + * function(callback) { + * setTimeout(function() { + * callback(null, 'two'); + * }, 100); + * } + * ]).then(results => { + * console.log(results); + * // results is equal to ['one','two'] + * }).catch(err => { + * console.log(err); + * }); + * + * // an example using an object instead of an array + * async.series({ + * one: function(callback) { + * setTimeout(function() { + * // do some async task + * callback(null, 1); + * }, 200); + * }, + * two: function(callback) { + * setTimeout(function() { + * // then do another async task + * callback(null, 2); + * }, 100); + * } + * }).then(results => { + * console.log(results); + * // results is equal to: { one: 1, two: 2 } + * }).catch(err => { + * console.log(err); + * }); + * + * //Using async/await + * async () => { + * try { + * let results = await async.series([ + * function(callback) { + * setTimeout(function() { + * // do some async task + * callback(null, 'one'); + * }, 200); + * }, + * function(callback) { + * setTimeout(function() { + * // then do another async task + * callback(null, 'two'); + * }, 100); + * } + * ]); + * console.log(results); + * // results is equal to ['one','two'] + * } + * catch (err) { + * console.log(err); + * } + * } + * + * // an example using an object instead of an array + * async () => { + * try { + * let results = await async.parallel({ + * one: function(callback) { + * setTimeout(function() { + * // do some async task + * callback(null, 1); + * }, 200); + * }, + * two: function(callback) { + * setTimeout(function() { + * // then do another async task + * callback(null, 2); + * }, 100); + * } + * }); + * console.log(results); + * // results is equal to: { one: 1, two: 2 } + * } + * catch (err) { + * console.log(err); + * } + * } + * + */ +function series(tasks, callback) { + return (0, _parallel3.default)(_eachOfSeries2.default, tasks, callback); +} +module.exports = exports.default; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/basic-auth/index.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/basic-auth/index.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/*! + * basic-auth + * Copyright(c) 2013 TJ Holowaychuk + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015-2016 Douglas Christopher Wilson + * MIT Licensed + */ + + + +/** + * Module dependencies. + * @private + */ + +var Buffer = __webpack_require__(/*! safe-buffer */ "./build/cht-core-4-6/api/node_modules/safe-buffer/index.js").Buffer + +/** + * Module exports. + * @public + */ + +module.exports = auth +module.exports.parse = parse + +/** + * RegExp for basic auth credentials + * + * credentials = auth-scheme 1*SP token68 + * auth-scheme = "Basic" ; case insensitive + * token68 = 1*( ALPHA / DIGIT / "-" / "." / "_" / "~" / "+" / "/" ) *"=" + * @private + */ + +var CREDENTIALS_REGEXP = /^ *(?:[Bb][Aa][Ss][Ii][Cc]) +([A-Za-z0-9._~+/-]+=*) *$/ + +/** + * RegExp for basic auth user/pass + * + * user-pass = userid ":" password + * userid = * + * password = *TEXT + * @private + */ + +var USER_PASS_REGEXP = /^([^:]*):(.*)$/ + +/** + * Parse the Authorization header field of a request. + * + * @param {object} req + * @return {object} with .name and .pass + * @public + */ + +function auth (req) { + if (!req) { + throw new TypeError('argument req is required') + } + + if (typeof req !== 'object') { + throw new TypeError('argument req is required to be an object') + } + + // get header + var header = getAuthorization(req) + + // parse header + return parse(header) +} + +/** + * Decode base64 string. + * @private + */ + +function decodeBase64 (str) { + return Buffer.from(str, 'base64').toString() +} + +/** + * Get the Authorization header from request object. + * @private + */ + +function getAuthorization (req) { + if (!req.headers || typeof req.headers !== 'object') { + throw new TypeError('argument req is required to have headers property') + } + + return req.headers.authorization +} + +/** + * Parse basic auth to object. + * + * @param {string} string + * @return {object} + * @public + */ + +function parse (string) { + if (typeof string !== 'string') { + return undefined + } + + // parse header + var match = CREDENTIALS_REGEXP.exec(string) + + if (!match) { + return undefined + } + + // decode user pass + var userPass = USER_PASS_REGEXP.exec(decodeBase64(match[1])) + + if (!userPass) { + return undefined + } + + // return credentials object + return new Credentials(userPass[1], userPass[2]) +} + +/** + * Object to represent user credentials. + * @private + */ + +function Credentials (name, pass) { + this.name = name + this.pass = pass +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/boolbase/index.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/boolbase/index.js ***! + \***************************************************************/ +/***/ ((module) => { + +module.exports = { + trueFunc: function trueFunc(){ + return true; + }, + falseFunc: function falseFunc(){ + return false; + } +}; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/color-convert/conversions.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/color-convert/conversions.js ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* MIT license */ +var cssKeywords = __webpack_require__(/*! color-name */ "./build/cht-core-4-6/api/node_modules/color-name/index.js"); + +// NOTE: conversions should only return primitive values (i.e. arrays, or +// values that give correct `typeof` results). +// do not use box values types (i.e. Number(), String(), etc.) + +var reverseKeywords = {}; +for (var key in cssKeywords) { + if (cssKeywords.hasOwnProperty(key)) { + reverseKeywords[cssKeywords[key]] = key; + } +} + +var convert = module.exports = { + rgb: {channels: 3, labels: 'rgb'}, + hsl: {channels: 3, labels: 'hsl'}, + hsv: {channels: 3, labels: 'hsv'}, + hwb: {channels: 3, labels: 'hwb'}, + cmyk: {channels: 4, labels: 'cmyk'}, + xyz: {channels: 3, labels: 'xyz'}, + lab: {channels: 3, labels: 'lab'}, + lch: {channels: 3, labels: 'lch'}, + hex: {channels: 1, labels: ['hex']}, + keyword: {channels: 1, labels: ['keyword']}, + ansi16: {channels: 1, labels: ['ansi16']}, + ansi256: {channels: 1, labels: ['ansi256']}, + hcg: {channels: 3, labels: ['h', 'c', 'g']}, + apple: {channels: 3, labels: ['r16', 'g16', 'b16']}, + gray: {channels: 1, labels: ['gray']} +}; + +// hide .channels and .labels properties +for (var model in convert) { + if (convert.hasOwnProperty(model)) { + if (!('channels' in convert[model])) { + throw new Error('missing channels property: ' + model); + } + + if (!('labels' in convert[model])) { + throw new Error('missing channel labels property: ' + model); + } + + if (convert[model].labels.length !== convert[model].channels) { + throw new Error('channel and label counts mismatch: ' + model); + } + + var channels = convert[model].channels; + var labels = convert[model].labels; + delete convert[model].channels; + delete convert[model].labels; + Object.defineProperty(convert[model], 'channels', {value: channels}); + Object.defineProperty(convert[model], 'labels', {value: labels}); + } +} + +convert.rgb.hsl = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var min = Math.min(r, g, b); + var max = Math.max(r, g, b); + var delta = max - min; + var h; + var s; + var l; + + if (max === min) { + h = 0; + } else if (r === max) { + h = (g - b) / delta; + } else if (g === max) { + h = 2 + (b - r) / delta; + } else if (b === max) { + h = 4 + (r - g) / delta; + } + + h = Math.min(h * 60, 360); + + if (h < 0) { + h += 360; + } + + l = (min + max) / 2; + + if (max === min) { + s = 0; + } else if (l <= 0.5) { + s = delta / (max + min); + } else { + s = delta / (2 - max - min); + } + + return [h, s * 100, l * 100]; +}; + +convert.rgb.hsv = function (rgb) { + var rdif; + var gdif; + var bdif; + var h; + var s; + + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var v = Math.max(r, g, b); + var diff = v - Math.min(r, g, b); + var diffc = function (c) { + return (v - c) / 6 / diff + 1 / 2; + }; + + if (diff === 0) { + h = s = 0; + } else { + s = diff / v; + rdif = diffc(r); + gdif = diffc(g); + bdif = diffc(b); + + if (r === v) { + h = bdif - gdif; + } else if (g === v) { + h = (1 / 3) + rdif - bdif; + } else if (b === v) { + h = (2 / 3) + gdif - rdif; + } + if (h < 0) { + h += 1; + } else if (h > 1) { + h -= 1; + } + } + + return [ + h * 360, + s * 100, + v * 100 + ]; +}; + +convert.rgb.hwb = function (rgb) { + var r = rgb[0]; + var g = rgb[1]; + var b = rgb[2]; + var h = convert.rgb.hsl(rgb)[0]; + var w = 1 / 255 * Math.min(r, Math.min(g, b)); + + b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); + + return [h, w * 100, b * 100]; +}; + +convert.rgb.cmyk = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var c; + var m; + var y; + var k; + + k = Math.min(1 - r, 1 - g, 1 - b); + c = (1 - r - k) / (1 - k) || 0; + m = (1 - g - k) / (1 - k) || 0; + y = (1 - b - k) / (1 - k) || 0; + + return [c * 100, m * 100, y * 100, k * 100]; +}; + +/** + * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance + * */ +function comparativeDistance(x, y) { + return ( + Math.pow(x[0] - y[0], 2) + + Math.pow(x[1] - y[1], 2) + + Math.pow(x[2] - y[2], 2) + ); +} + +convert.rgb.keyword = function (rgb) { + var reversed = reverseKeywords[rgb]; + if (reversed) { + return reversed; + } + + var currentClosestDistance = Infinity; + var currentClosestKeyword; + + for (var keyword in cssKeywords) { + if (cssKeywords.hasOwnProperty(keyword)) { + var value = cssKeywords[keyword]; + + // Compute comparative distance + var distance = comparativeDistance(rgb, value); + + // Check if its less, if so set as closest + if (distance < currentClosestDistance) { + currentClosestDistance = distance; + currentClosestKeyword = keyword; + } + } + } + + return currentClosestKeyword; +}; + +convert.keyword.rgb = function (keyword) { + return cssKeywords[keyword]; +}; + +convert.rgb.xyz = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + + // assume sRGB + r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92); + g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92); + b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92); + + var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805); + var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722); + var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505); + + return [x * 100, y * 100, z * 100]; +}; + +convert.rgb.lab = function (rgb) { + var xyz = convert.rgb.xyz(rgb); + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; + + x /= 95.047; + y /= 100; + z /= 108.883; + + x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); + + l = (116 * y) - 16; + a = 500 * (x - y); + b = 200 * (y - z); + + return [l, a, b]; +}; + +convert.hsl.rgb = function (hsl) { + var h = hsl[0] / 360; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var t1; + var t2; + var t3; + var rgb; + var val; + + if (s === 0) { + val = l * 255; + return [val, val, val]; + } + + if (l < 0.5) { + t2 = l * (1 + s); + } else { + t2 = l + s - l * s; + } + + t1 = 2 * l - t2; + + rgb = [0, 0, 0]; + for (var i = 0; i < 3; i++) { + t3 = h + 1 / 3 * -(i - 1); + if (t3 < 0) { + t3++; + } + if (t3 > 1) { + t3--; + } + + if (6 * t3 < 1) { + val = t1 + (t2 - t1) * 6 * t3; + } else if (2 * t3 < 1) { + val = t2; + } else if (3 * t3 < 2) { + val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + } else { + val = t1; + } + + rgb[i] = val * 255; + } + + return rgb; +}; + +convert.hsl.hsv = function (hsl) { + var h = hsl[0]; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var smin = s; + var lmin = Math.max(l, 0.01); + var sv; + var v; + + l *= 2; + s *= (l <= 1) ? l : 2 - l; + smin *= lmin <= 1 ? lmin : 2 - lmin; + v = (l + s) / 2; + sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s); + + return [h, sv * 100, v * 100]; +}; + +convert.hsv.rgb = function (hsv) { + var h = hsv[0] / 60; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var hi = Math.floor(h) % 6; + + var f = h - Math.floor(h); + var p = 255 * v * (1 - s); + var q = 255 * v * (1 - (s * f)); + var t = 255 * v * (1 - (s * (1 - f))); + v *= 255; + + switch (hi) { + case 0: + return [v, t, p]; + case 1: + return [q, v, p]; + case 2: + return [p, v, t]; + case 3: + return [p, q, v]; + case 4: + return [t, p, v]; + case 5: + return [v, p, q]; + } +}; + +convert.hsv.hsl = function (hsv) { + var h = hsv[0]; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var vmin = Math.max(v, 0.01); + var lmin; + var sl; + var l; + + l = (2 - s) * v; + lmin = (2 - s) * vmin; + sl = s * vmin; + sl /= (lmin <= 1) ? lmin : 2 - lmin; + sl = sl || 0; + l /= 2; + + return [h, sl * 100, l * 100]; +}; + +// http://dev.w3.org/csswg/css-color/#hwb-to-rgb +convert.hwb.rgb = function (hwb) { + var h = hwb[0] / 360; + var wh = hwb[1] / 100; + var bl = hwb[2] / 100; + var ratio = wh + bl; + var i; + var v; + var f; + var n; + + // wh + bl cant be > 1 + if (ratio > 1) { + wh /= ratio; + bl /= ratio; + } + + i = Math.floor(6 * h); + v = 1 - bl; + f = 6 * h - i; + + if ((i & 0x01) !== 0) { + f = 1 - f; + } + + n = wh + f * (v - wh); // linear interpolation + + var r; + var g; + var b; + switch (i) { + default: + case 6: + case 0: r = v; g = n; b = wh; break; + case 1: r = n; g = v; b = wh; break; + case 2: r = wh; g = v; b = n; break; + case 3: r = wh; g = n; b = v; break; + case 4: r = n; g = wh; b = v; break; + case 5: r = v; g = wh; b = n; break; + } + + return [r * 255, g * 255, b * 255]; +}; + +convert.cmyk.rgb = function (cmyk) { + var c = cmyk[0] / 100; + var m = cmyk[1] / 100; + var y = cmyk[2] / 100; + var k = cmyk[3] / 100; + var r; + var g; + var b; + + r = 1 - Math.min(1, c * (1 - k) + k); + g = 1 - Math.min(1, m * (1 - k) + k); + b = 1 - Math.min(1, y * (1 - k) + k); + + return [r * 255, g * 255, b * 255]; +}; + +convert.xyz.rgb = function (xyz) { + var x = xyz[0] / 100; + var y = xyz[1] / 100; + var z = xyz[2] / 100; + var r; + var g; + var b; + + r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986); + g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415); + b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570); + + // assume sRGB + r = r > 0.0031308 + ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055) + : r * 12.92; + + g = g > 0.0031308 + ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055) + : g * 12.92; + + b = b > 0.0031308 + ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055) + : b * 12.92; + + r = Math.min(Math.max(0, r), 1); + g = Math.min(Math.max(0, g), 1); + b = Math.min(Math.max(0, b), 1); + + return [r * 255, g * 255, b * 255]; +}; + +convert.xyz.lab = function (xyz) { + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; + + x /= 95.047; + y /= 100; + z /= 108.883; + + x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); + + l = (116 * y) - 16; + a = 500 * (x - y); + b = 200 * (y - z); + + return [l, a, b]; +}; + +convert.lab.xyz = function (lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var x; + var y; + var z; + + y = (l + 16) / 116; + x = a / 500 + y; + z = y - b / 200; + + var y2 = Math.pow(y, 3); + var x2 = Math.pow(x, 3); + var z2 = Math.pow(z, 3); + y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; + x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; + z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; + + x *= 95.047; + y *= 100; + z *= 108.883; + + return [x, y, z]; +}; + +convert.lab.lch = function (lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var hr; + var h; + var c; + + hr = Math.atan2(b, a); + h = hr * 360 / 2 / Math.PI; + + if (h < 0) { + h += 360; + } + + c = Math.sqrt(a * a + b * b); + + return [l, c, h]; +}; + +convert.lch.lab = function (lch) { + var l = lch[0]; + var c = lch[1]; + var h = lch[2]; + var a; + var b; + var hr; + + hr = h / 360 * 2 * Math.PI; + a = c * Math.cos(hr); + b = c * Math.sin(hr); + + return [l, a, b]; +}; + +convert.rgb.ansi16 = function (args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; + var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization + + value = Math.round(value / 50); + + if (value === 0) { + return 30; + } + + var ansi = 30 + + ((Math.round(b / 255) << 2) + | (Math.round(g / 255) << 1) + | Math.round(r / 255)); + + if (value === 2) { + ansi += 60; + } + + return ansi; +}; + +convert.hsv.ansi16 = function (args) { + // optimization here; we already know the value and don't need to get + // it converted for us. + return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); +}; + +convert.rgb.ansi256 = function (args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; + + // we use the extended greyscale palette here, with the exception of + // black and white. normal palette only has 4 greyscale shades. + if (r === g && g === b) { + if (r < 8) { + return 16; + } + + if (r > 248) { + return 231; + } + + return Math.round(((r - 8) / 247) * 24) + 232; + } + + var ansi = 16 + + (36 * Math.round(r / 255 * 5)) + + (6 * Math.round(g / 255 * 5)) + + Math.round(b / 255 * 5); + + return ansi; +}; + +convert.ansi16.rgb = function (args) { + var color = args % 10; + + // handle greyscale + if (color === 0 || color === 7) { + if (args > 50) { + color += 3.5; + } + + color = color / 10.5 * 255; + + return [color, color, color]; + } + + var mult = (~~(args > 50) + 1) * 0.5; + var r = ((color & 1) * mult) * 255; + var g = (((color >> 1) & 1) * mult) * 255; + var b = (((color >> 2) & 1) * mult) * 255; + + return [r, g, b]; +}; + +convert.ansi256.rgb = function (args) { + // handle greyscale + if (args >= 232) { + var c = (args - 232) * 10 + 8; + return [c, c, c]; + } + + args -= 16; + + var rem; + var r = Math.floor(args / 36) / 5 * 255; + var g = Math.floor((rem = args % 36) / 6) / 5 * 255; + var b = (rem % 6) / 5 * 255; + + return [r, g, b]; +}; + +convert.rgb.hex = function (args) { + var integer = ((Math.round(args[0]) & 0xFF) << 16) + + ((Math.round(args[1]) & 0xFF) << 8) + + (Math.round(args[2]) & 0xFF); + + var string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; +}; + +convert.hex.rgb = function (args) { + var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); + if (!match) { + return [0, 0, 0]; + } + + var colorString = match[0]; + + if (match[0].length === 3) { + colorString = colorString.split('').map(function (char) { + return char + char; + }).join(''); + } + + var integer = parseInt(colorString, 16); + var r = (integer >> 16) & 0xFF; + var g = (integer >> 8) & 0xFF; + var b = integer & 0xFF; + + return [r, g, b]; +}; + +convert.rgb.hcg = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var max = Math.max(Math.max(r, g), b); + var min = Math.min(Math.min(r, g), b); + var chroma = (max - min); + var grayscale; + var hue; + + if (chroma < 1) { + grayscale = min / (1 - chroma); + } else { + grayscale = 0; + } + + if (chroma <= 0) { + hue = 0; + } else + if (max === r) { + hue = ((g - b) / chroma) % 6; + } else + if (max === g) { + hue = 2 + (b - r) / chroma; + } else { + hue = 4 + (r - g) / chroma + 4; + } + + hue /= 6; + hue %= 1; + + return [hue * 360, chroma * 100, grayscale * 100]; +}; + +convert.hsl.hcg = function (hsl) { + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var c = 1; + var f = 0; + + if (l < 0.5) { + c = 2.0 * s * l; + } else { + c = 2.0 * s * (1.0 - l); + } + + if (c < 1.0) { + f = (l - 0.5 * c) / (1.0 - c); + } + + return [hsl[0], c * 100, f * 100]; +}; + +convert.hsv.hcg = function (hsv) { + var s = hsv[1] / 100; + var v = hsv[2] / 100; + + var c = s * v; + var f = 0; + + if (c < 1.0) { + f = (v - c) / (1 - c); + } + + return [hsv[0], c * 100, f * 100]; +}; + +convert.hcg.rgb = function (hcg) { + var h = hcg[0] / 360; + var c = hcg[1] / 100; + var g = hcg[2] / 100; + + if (c === 0.0) { + return [g * 255, g * 255, g * 255]; + } + + var pure = [0, 0, 0]; + var hi = (h % 1) * 6; + var v = hi % 1; + var w = 1 - v; + var mg = 0; + + switch (Math.floor(hi)) { + case 0: + pure[0] = 1; pure[1] = v; pure[2] = 0; break; + case 1: + pure[0] = w; pure[1] = 1; pure[2] = 0; break; + case 2: + pure[0] = 0; pure[1] = 1; pure[2] = v; break; + case 3: + pure[0] = 0; pure[1] = w; pure[2] = 1; break; + case 4: + pure[0] = v; pure[1] = 0; pure[2] = 1; break; + default: + pure[0] = 1; pure[1] = 0; pure[2] = w; + } + + mg = (1.0 - c) * g; + + return [ + (c * pure[0] + mg) * 255, + (c * pure[1] + mg) * 255, + (c * pure[2] + mg) * 255 + ]; +}; + +convert.hcg.hsv = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + + var v = c + g * (1.0 - c); + var f = 0; + + if (v > 0.0) { + f = c / v; + } + + return [hcg[0], f * 100, v * 100]; +}; + +convert.hcg.hsl = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + + var l = g * (1.0 - c) + 0.5 * c; + var s = 0; + + if (l > 0.0 && l < 0.5) { + s = c / (2 * l); + } else + if (l >= 0.5 && l < 1.0) { + s = c / (2 * (1 - l)); + } + + return [hcg[0], s * 100, l * 100]; +}; + +convert.hcg.hwb = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + var v = c + g * (1.0 - c); + return [hcg[0], (v - c) * 100, (1 - v) * 100]; +}; + +convert.hwb.hcg = function (hwb) { + var w = hwb[1] / 100; + var b = hwb[2] / 100; + var v = 1 - b; + var c = v - w; + var g = 0; + + if (c < 1) { + g = (v - c) / (1 - c); + } + + return [hwb[0], c * 100, g * 100]; +}; + +convert.apple.rgb = function (apple) { + return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255]; +}; + +convert.rgb.apple = function (rgb) { + return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535]; +}; + +convert.gray.rgb = function (args) { + return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; +}; + +convert.gray.hsl = convert.gray.hsv = function (args) { + return [0, 0, args[0]]; +}; + +convert.gray.hwb = function (gray) { + return [0, 100, gray[0]]; +}; + +convert.gray.cmyk = function (gray) { + return [0, 0, 0, gray[0]]; +}; + +convert.gray.lab = function (gray) { + return [gray[0], 0, 0]; +}; + +convert.gray.hex = function (gray) { + var val = Math.round(gray[0] / 100 * 255) & 0xFF; + var integer = (val << 16) + (val << 8) + val; + + var string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; +}; + +convert.rgb.gray = function (rgb) { + var val = (rgb[0] + rgb[1] + rgb[2]) / 3; + return [val / 255 * 100]; +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/color-convert/index.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/color-convert/index.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var conversions = __webpack_require__(/*! ./conversions */ "./build/cht-core-4-6/api/node_modules/color-convert/conversions.js"); +var route = __webpack_require__(/*! ./route */ "./build/cht-core-4-6/api/node_modules/color-convert/route.js"); + +var convert = {}; + +var models = Object.keys(conversions); + +function wrapRaw(fn) { + var wrappedFn = function (args) { + if (args === undefined || args === null) { + return args; + } + + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } + + return fn(args); + }; + + // preserve .conversion property if there is one + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; + } + + return wrappedFn; +} + +function wrapRounded(fn) { + var wrappedFn = function (args) { + if (args === undefined || args === null) { + return args; + } + + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } + + var result = fn(args); + + // we're assuming the result is an array here. + // see notice in conversions.js; don't use box types + // in conversion functions. + if (typeof result === 'object') { + for (var len = result.length, i = 0; i < len; i++) { + result[i] = Math.round(result[i]); + } + } + + return result; + }; + + // preserve .conversion property if there is one + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; + } + + return wrappedFn; +} + +models.forEach(function (fromModel) { + convert[fromModel] = {}; + + Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels}); + Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels}); + + var routes = route(fromModel); + var routeModels = Object.keys(routes); + + routeModels.forEach(function (toModel) { + var fn = routes[toModel]; + + convert[fromModel][toModel] = wrapRounded(fn); + convert[fromModel][toModel].raw = wrapRaw(fn); + }); +}); + +module.exports = convert; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/color-convert/route.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/color-convert/route.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var conversions = __webpack_require__(/*! ./conversions */ "./build/cht-core-4-6/api/node_modules/color-convert/conversions.js"); + +/* + this function routes a model to all other models. + + all functions that are routed have a property `.conversion` attached + to the returned synthetic function. This property is an array + of strings, each with the steps in between the 'from' and 'to' + color models (inclusive). + + conversions that are not possible simply are not included. +*/ + +function buildGraph() { + var graph = {}; + // https://jsperf.com/object-keys-vs-for-in-with-closure/3 + var models = Object.keys(conversions); + + for (var len = models.length, i = 0; i < len; i++) { + graph[models[i]] = { + // http://jsperf.com/1-vs-infinity + // micro-opt, but this is simple. + distance: -1, + parent: null + }; + } + + return graph; +} + +// https://en.wikipedia.org/wiki/Breadth-first_search +function deriveBFS(fromModel) { + var graph = buildGraph(); + var queue = [fromModel]; // unshift -> queue -> pop + + graph[fromModel].distance = 0; + + while (queue.length) { + var current = queue.pop(); + var adjacents = Object.keys(conversions[current]); + + for (var len = adjacents.length, i = 0; i < len; i++) { + var adjacent = adjacents[i]; + var node = graph[adjacent]; + + if (node.distance === -1) { + node.distance = graph[current].distance + 1; + node.parent = current; + queue.unshift(adjacent); + } + } + } + + return graph; +} + +function link(from, to) { + return function (args) { + return to(from(args)); + }; +} + +function wrapConversion(toModel, graph) { + var path = [graph[toModel].parent, toModel]; + var fn = conversions[graph[toModel].parent][toModel]; + + var cur = graph[toModel].parent; + while (graph[cur].parent) { + path.unshift(graph[cur].parent); + fn = link(conversions[graph[cur].parent][cur], fn); + cur = graph[cur].parent; + } + + fn.conversion = path; + return fn; +} + +module.exports = function (fromModel) { + var graph = deriveBFS(fromModel); + var conversion = {}; + + var models = Object.keys(graph); + for (var len = models.length, i = 0; i < len; i++) { + var toModel = models[i]; + var node = graph[toModel]; + + if (node.parent === null) { + // no possible conversion, or this node is the source model. + continue; + } + + conversion[toModel] = wrapConversion(toModel, graph); + } + + return conversion; +}; + + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/color-name/index.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/color-name/index.js ***! + \*****************************************************************/ +/***/ ((module) => { + +"use strict"; + + +module.exports = { + "aliceblue": [240, 248, 255], + "antiquewhite": [250, 235, 215], + "aqua": [0, 255, 255], + "aquamarine": [127, 255, 212], + "azure": [240, 255, 255], + "beige": [245, 245, 220], + "bisque": [255, 228, 196], + "black": [0, 0, 0], + "blanchedalmond": [255, 235, 205], + "blue": [0, 0, 255], + "blueviolet": [138, 43, 226], + "brown": [165, 42, 42], + "burlywood": [222, 184, 135], + "cadetblue": [95, 158, 160], + "chartreuse": [127, 255, 0], + "chocolate": [210, 105, 30], + "coral": [255, 127, 80], + "cornflowerblue": [100, 149, 237], + "cornsilk": [255, 248, 220], + "crimson": [220, 20, 60], + "cyan": [0, 255, 255], + "darkblue": [0, 0, 139], + "darkcyan": [0, 139, 139], + "darkgoldenrod": [184, 134, 11], + "darkgray": [169, 169, 169], + "darkgreen": [0, 100, 0], + "darkgrey": [169, 169, 169], + "darkkhaki": [189, 183, 107], + "darkmagenta": [139, 0, 139], + "darkolivegreen": [85, 107, 47], + "darkorange": [255, 140, 0], + "darkorchid": [153, 50, 204], + "darkred": [139, 0, 0], + "darksalmon": [233, 150, 122], + "darkseagreen": [143, 188, 143], + "darkslateblue": [72, 61, 139], + "darkslategray": [47, 79, 79], + "darkslategrey": [47, 79, 79], + "darkturquoise": [0, 206, 209], + "darkviolet": [148, 0, 211], + "deeppink": [255, 20, 147], + "deepskyblue": [0, 191, 255], + "dimgray": [105, 105, 105], + "dimgrey": [105, 105, 105], + "dodgerblue": [30, 144, 255], + "firebrick": [178, 34, 34], + "floralwhite": [255, 250, 240], + "forestgreen": [34, 139, 34], + "fuchsia": [255, 0, 255], + "gainsboro": [220, 220, 220], + "ghostwhite": [248, 248, 255], + "gold": [255, 215, 0], + "goldenrod": [218, 165, 32], + "gray": [128, 128, 128], + "green": [0, 128, 0], + "greenyellow": [173, 255, 47], + "grey": [128, 128, 128], + "honeydew": [240, 255, 240], + "hotpink": [255, 105, 180], + "indianred": [205, 92, 92], + "indigo": [75, 0, 130], + "ivory": [255, 255, 240], + "khaki": [240, 230, 140], + "lavender": [230, 230, 250], + "lavenderblush": [255, 240, 245], + "lawngreen": [124, 252, 0], + "lemonchiffon": [255, 250, 205], + "lightblue": [173, 216, 230], + "lightcoral": [240, 128, 128], + "lightcyan": [224, 255, 255], + "lightgoldenrodyellow": [250, 250, 210], + "lightgray": [211, 211, 211], + "lightgreen": [144, 238, 144], + "lightgrey": [211, 211, 211], + "lightpink": [255, 182, 193], + "lightsalmon": [255, 160, 122], + "lightseagreen": [32, 178, 170], + "lightskyblue": [135, 206, 250], + "lightslategray": [119, 136, 153], + "lightslategrey": [119, 136, 153], + "lightsteelblue": [176, 196, 222], + "lightyellow": [255, 255, 224], + "lime": [0, 255, 0], + "limegreen": [50, 205, 50], + "linen": [250, 240, 230], + "magenta": [255, 0, 255], + "maroon": [128, 0, 0], + "mediumaquamarine": [102, 205, 170], + "mediumblue": [0, 0, 205], + "mediumorchid": [186, 85, 211], + "mediumpurple": [147, 112, 219], + "mediumseagreen": [60, 179, 113], + "mediumslateblue": [123, 104, 238], + "mediumspringgreen": [0, 250, 154], + "mediumturquoise": [72, 209, 204], + "mediumvioletred": [199, 21, 133], + "midnightblue": [25, 25, 112], + "mintcream": [245, 255, 250], + "mistyrose": [255, 228, 225], + "moccasin": [255, 228, 181], + "navajowhite": [255, 222, 173], + "navy": [0, 0, 128], + "oldlace": [253, 245, 230], + "olive": [128, 128, 0], + "olivedrab": [107, 142, 35], + "orange": [255, 165, 0], + "orangered": [255, 69, 0], + "orchid": [218, 112, 214], + "palegoldenrod": [238, 232, 170], + "palegreen": [152, 251, 152], + "paleturquoise": [175, 238, 238], + "palevioletred": [219, 112, 147], + "papayawhip": [255, 239, 213], + "peachpuff": [255, 218, 185], + "peru": [205, 133, 63], + "pink": [255, 192, 203], + "plum": [221, 160, 221], + "powderblue": [176, 224, 230], + "purple": [128, 0, 128], + "rebeccapurple": [102, 51, 153], + "red": [255, 0, 0], + "rosybrown": [188, 143, 143], + "royalblue": [65, 105, 225], + "saddlebrown": [139, 69, 19], + "salmon": [250, 128, 114], + "sandybrown": [244, 164, 96], + "seagreen": [46, 139, 87], + "seashell": [255, 245, 238], + "sienna": [160, 82, 45], + "silver": [192, 192, 192], + "skyblue": [135, 206, 235], + "slateblue": [106, 90, 205], + "slategray": [112, 128, 144], + "slategrey": [112, 128, 144], + "snow": [255, 250, 250], + "springgreen": [0, 255, 127], + "steelblue": [70, 130, 180], + "tan": [210, 180, 140], + "teal": [0, 128, 128], + "thistle": [216, 191, 216], + "tomato": [255, 99, 71], + "turquoise": [64, 224, 208], + "violet": [238, 130, 238], + "wheat": [245, 222, 179], + "white": [255, 255, 255], + "whitesmoke": [245, 245, 245], + "yellow": [255, 255, 0], + "yellowgreen": [154, 205, 50] +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/color-string/index.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/color-string/index.js ***! + \*******************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* MIT license */ +var colorNames = __webpack_require__(/*! color-name */ "./build/cht-core-4-6/api/node_modules/color-name/index.js"); +var swizzle = __webpack_require__(/*! simple-swizzle */ "./build/cht-core-4-6/api/node_modules/simple-swizzle/index.js"); +var hasOwnProperty = Object.hasOwnProperty; + +var reverseNames = {}; + +// create a list of reverse color names +for (var name in colorNames) { + if (hasOwnProperty.call(colorNames, name)) { + reverseNames[colorNames[name]] = name; + } +} + +var cs = module.exports = { + to: {}, + get: {} +}; + +cs.get = function (string) { + var prefix = string.substring(0, 3).toLowerCase(); + var val; + var model; + switch (prefix) { + case 'hsl': + val = cs.get.hsl(string); + model = 'hsl'; + break; + case 'hwb': + val = cs.get.hwb(string); + model = 'hwb'; + break; + default: + val = cs.get.rgb(string); + model = 'rgb'; + break; + } + + if (!val) { + return null; + } + + return {model: model, value: val}; +}; + +cs.get.rgb = function (string) { + if (!string) { + return null; + } + + var abbr = /^#([a-f0-9]{3,4})$/i; + var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i; + var rgba = /^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/; + var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/; + var keyword = /^(\w+)$/; + + var rgb = [0, 0, 0, 1]; + var match; + var i; + var hexAlpha; + + if (match = string.match(hex)) { + hexAlpha = match[2]; + match = match[1]; + + for (i = 0; i < 3; i++) { + // https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19 + var i2 = i * 2; + rgb[i] = parseInt(match.slice(i2, i2 + 2), 16); + } + + if (hexAlpha) { + rgb[3] = parseInt(hexAlpha, 16) / 255; + } + } else if (match = string.match(abbr)) { + match = match[1]; + hexAlpha = match[3]; + + for (i = 0; i < 3; i++) { + rgb[i] = parseInt(match[i] + match[i], 16); + } + + if (hexAlpha) { + rgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255; + } + } else if (match = string.match(rgba)) { + for (i = 0; i < 3; i++) { + rgb[i] = parseInt(match[i + 1], 0); + } + + if (match[4]) { + if (match[5]) { + rgb[3] = parseFloat(match[4]) * 0.01; + } else { + rgb[3] = parseFloat(match[4]); + } + } + } else if (match = string.match(per)) { + for (i = 0; i < 3; i++) { + rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55); + } + + if (match[4]) { + if (match[5]) { + rgb[3] = parseFloat(match[4]) * 0.01; + } else { + rgb[3] = parseFloat(match[4]); + } + } + } else if (match = string.match(keyword)) { + if (match[1] === 'transparent') { + return [0, 0, 0, 0]; + } + + if (!hasOwnProperty.call(colorNames, match[1])) { + return null; + } + + rgb = colorNames[match[1]]; + rgb[3] = 1; + + return rgb; + } else { + return null; + } + + for (i = 0; i < 3; i++) { + rgb[i] = clamp(rgb[i], 0, 255); + } + rgb[3] = clamp(rgb[3], 0, 1); + + return rgb; +}; + +cs.get.hsl = function (string) { + if (!string) { + return null; + } + + var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/; + var match = string.match(hsl); + + if (match) { + var alpha = parseFloat(match[4]); + var h = ((parseFloat(match[1]) % 360) + 360) % 360; + var s = clamp(parseFloat(match[2]), 0, 100); + var l = clamp(parseFloat(match[3]), 0, 100); + var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1); + + return [h, s, l, a]; + } + + return null; +}; + +cs.get.hwb = function (string) { + if (!string) { + return null; + } + + var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/; + var match = string.match(hwb); + + if (match) { + var alpha = parseFloat(match[4]); + var h = ((parseFloat(match[1]) % 360) + 360) % 360; + var w = clamp(parseFloat(match[2]), 0, 100); + var b = clamp(parseFloat(match[3]), 0, 100); + var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1); + return [h, w, b, a]; + } + + return null; +}; + +cs.to.hex = function () { + var rgba = swizzle(arguments); + + return ( + '#' + + hexDouble(rgba[0]) + + hexDouble(rgba[1]) + + hexDouble(rgba[2]) + + (rgba[3] < 1 + ? (hexDouble(Math.round(rgba[3] * 255))) + : '') + ); +}; + +cs.to.rgb = function () { + var rgba = swizzle(arguments); + + return rgba.length < 4 || rgba[3] === 1 + ? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')' + : 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')'; +}; + +cs.to.rgb.percent = function () { + var rgba = swizzle(arguments); + + var r = Math.round(rgba[0] / 255 * 100); + var g = Math.round(rgba[1] / 255 * 100); + var b = Math.round(rgba[2] / 255 * 100); + + return rgba.length < 4 || rgba[3] === 1 + ? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)' + : 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')'; +}; + +cs.to.hsl = function () { + var hsla = swizzle(arguments); + return hsla.length < 4 || hsla[3] === 1 + ? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)' + : 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')'; +}; + +// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax +// (hwb have alpha optional & 1 is default value) +cs.to.hwb = function () { + var hwba = swizzle(arguments); + + var a = ''; + if (hwba.length >= 4 && hwba[3] !== 1) { + a = ', ' + hwba[3]; + } + + return 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')'; +}; + +cs.to.keyword = function (rgb) { + return reverseNames[rgb.slice(0, 3)]; +}; + +// helpers +function clamp(num, min, max) { + return Math.min(Math.max(min, num), max); +} + +function hexDouble(num) { + var str = Math.round(num).toString(16).toUpperCase(); + return (str.length < 2) ? '0' + str : str; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/color/index.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/color/index.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var colorString = __webpack_require__(/*! color-string */ "./build/cht-core-4-6/api/node_modules/color-string/index.js"); +var convert = __webpack_require__(/*! color-convert */ "./build/cht-core-4-6/api/node_modules/color-convert/index.js"); + +var _slice = [].slice; + +var skippedModels = [ + // to be honest, I don't really feel like keyword belongs in color convert, but eh. + 'keyword', + + // gray conflicts with some method names, and has its own method defined. + 'gray', + + // shouldn't really be in color-convert either... + 'hex' +]; + +var hashedModelKeys = {}; +Object.keys(convert).forEach(function (model) { + hashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model; +}); + +var limiters = {}; + +function Color(obj, model) { + if (!(this instanceof Color)) { + return new Color(obj, model); + } + + if (model && model in skippedModels) { + model = null; + } + + if (model && !(model in convert)) { + throw new Error('Unknown model: ' + model); + } + + var i; + var channels; + + if (obj == null) { // eslint-disable-line no-eq-null,eqeqeq + this.model = 'rgb'; + this.color = [0, 0, 0]; + this.valpha = 1; + } else if (obj instanceof Color) { + this.model = obj.model; + this.color = obj.color.slice(); + this.valpha = obj.valpha; + } else if (typeof obj === 'string') { + var result = colorString.get(obj); + if (result === null) { + throw new Error('Unable to parse color from string: ' + obj); + } + + this.model = result.model; + channels = convert[this.model].channels; + this.color = result.value.slice(0, channels); + this.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1; + } else if (obj.length) { + this.model = model || 'rgb'; + channels = convert[this.model].channels; + var newArr = _slice.call(obj, 0, channels); + this.color = zeroArray(newArr, channels); + this.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1; + } else if (typeof obj === 'number') { + // this is always RGB - can be converted later on. + obj &= 0xFFFFFF; + this.model = 'rgb'; + this.color = [ + (obj >> 16) & 0xFF, + (obj >> 8) & 0xFF, + obj & 0xFF + ]; + this.valpha = 1; + } else { + this.valpha = 1; + + var keys = Object.keys(obj); + if ('alpha' in obj) { + keys.splice(keys.indexOf('alpha'), 1); + this.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0; + } + + var hashedKeys = keys.sort().join(''); + if (!(hashedKeys in hashedModelKeys)) { + throw new Error('Unable to parse color from object: ' + JSON.stringify(obj)); + } + + this.model = hashedModelKeys[hashedKeys]; + + var labels = convert[this.model].labels; + var color = []; + for (i = 0; i < labels.length; i++) { + color.push(obj[labels[i]]); + } + + this.color = zeroArray(color); + } + + // perform limitations (clamping, etc.) + if (limiters[this.model]) { + channels = convert[this.model].channels; + for (i = 0; i < channels; i++) { + var limit = limiters[this.model][i]; + if (limit) { + this.color[i] = limit(this.color[i]); + } + } + } + + this.valpha = Math.max(0, Math.min(1, this.valpha)); + + if (Object.freeze) { + Object.freeze(this); + } +} + +Color.prototype = { + toString: function () { + return this.string(); + }, + + toJSON: function () { + return this[this.model](); + }, + + string: function (places) { + var self = this.model in colorString.to ? this : this.rgb(); + self = self.round(typeof places === 'number' ? places : 1); + var args = self.valpha === 1 ? self.color : self.color.concat(this.valpha); + return colorString.to[self.model](args); + }, + + percentString: function (places) { + var self = this.rgb().round(typeof places === 'number' ? places : 1); + var args = self.valpha === 1 ? self.color : self.color.concat(this.valpha); + return colorString.to.rgb.percent(args); + }, + + array: function () { + return this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha); + }, + + object: function () { + var result = {}; + var channels = convert[this.model].channels; + var labels = convert[this.model].labels; + + for (var i = 0; i < channels; i++) { + result[labels[i]] = this.color[i]; + } + + if (this.valpha !== 1) { + result.alpha = this.valpha; + } + + return result; + }, + + unitArray: function () { + var rgb = this.rgb().color; + rgb[0] /= 255; + rgb[1] /= 255; + rgb[2] /= 255; + + if (this.valpha !== 1) { + rgb.push(this.valpha); + } + + return rgb; + }, + + unitObject: function () { + var rgb = this.rgb().object(); + rgb.r /= 255; + rgb.g /= 255; + rgb.b /= 255; + + if (this.valpha !== 1) { + rgb.alpha = this.valpha; + } + + return rgb; + }, + + round: function (places) { + places = Math.max(places || 0, 0); + return new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model); + }, + + alpha: function (val) { + if (arguments.length) { + return new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model); + } + + return this.valpha; + }, + + // rgb + red: getset('rgb', 0, maxfn(255)), + green: getset('rgb', 1, maxfn(255)), + blue: getset('rgb', 2, maxfn(255)), + + hue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style + + saturationl: getset('hsl', 1, maxfn(100)), + lightness: getset('hsl', 2, maxfn(100)), + + saturationv: getset('hsv', 1, maxfn(100)), + value: getset('hsv', 2, maxfn(100)), + + chroma: getset('hcg', 1, maxfn(100)), + gray: getset('hcg', 2, maxfn(100)), + + white: getset('hwb', 1, maxfn(100)), + wblack: getset('hwb', 2, maxfn(100)), + + cyan: getset('cmyk', 0, maxfn(100)), + magenta: getset('cmyk', 1, maxfn(100)), + yellow: getset('cmyk', 2, maxfn(100)), + black: getset('cmyk', 3, maxfn(100)), + + x: getset('xyz', 0, maxfn(100)), + y: getset('xyz', 1, maxfn(100)), + z: getset('xyz', 2, maxfn(100)), + + l: getset('lab', 0, maxfn(100)), + a: getset('lab', 1), + b: getset('lab', 2), + + keyword: function (val) { + if (arguments.length) { + return new Color(val); + } + + return convert[this.model].keyword(this.color); + }, + + hex: function (val) { + if (arguments.length) { + return new Color(val); + } + + return colorString.to.hex(this.rgb().round().color); + }, + + rgbNumber: function () { + var rgb = this.rgb().color; + return ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF); + }, + + luminosity: function () { + // http://www.w3.org/TR/WCAG20/#relativeluminancedef + var rgb = this.rgb().color; + + var lum = []; + for (var i = 0; i < rgb.length; i++) { + var chan = rgb[i] / 255; + lum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4); + } + + return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2]; + }, + + contrast: function (color2) { + // http://www.w3.org/TR/WCAG20/#contrast-ratiodef + var lum1 = this.luminosity(); + var lum2 = color2.luminosity(); + + if (lum1 > lum2) { + return (lum1 + 0.05) / (lum2 + 0.05); + } + + return (lum2 + 0.05) / (lum1 + 0.05); + }, + + level: function (color2) { + var contrastRatio = this.contrast(color2); + if (contrastRatio >= 7.1) { + return 'AAA'; + } + + return (contrastRatio >= 4.5) ? 'AA' : ''; + }, + + isDark: function () { + // YIQ equation from http://24ways.org/2010/calculating-color-contrast + var rgb = this.rgb().color; + var yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000; + return yiq < 128; + }, + + isLight: function () { + return !this.isDark(); + }, + + negate: function () { + var rgb = this.rgb(); + for (var i = 0; i < 3; i++) { + rgb.color[i] = 255 - rgb.color[i]; + } + return rgb; + }, + + lighten: function (ratio) { + var hsl = this.hsl(); + hsl.color[2] += hsl.color[2] * ratio; + return hsl; + }, + + darken: function (ratio) { + var hsl = this.hsl(); + hsl.color[2] -= hsl.color[2] * ratio; + return hsl; + }, + + saturate: function (ratio) { + var hsl = this.hsl(); + hsl.color[1] += hsl.color[1] * ratio; + return hsl; + }, + + desaturate: function (ratio) { + var hsl = this.hsl(); + hsl.color[1] -= hsl.color[1] * ratio; + return hsl; + }, + + whiten: function (ratio) { + var hwb = this.hwb(); + hwb.color[1] += hwb.color[1] * ratio; + return hwb; + }, + + blacken: function (ratio) { + var hwb = this.hwb(); + hwb.color[2] += hwb.color[2] * ratio; + return hwb; + }, + + grayscale: function () { + // http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale + var rgb = this.rgb().color; + var val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11; + return Color.rgb(val, val, val); + }, + + fade: function (ratio) { + return this.alpha(this.valpha - (this.valpha * ratio)); + }, + + opaquer: function (ratio) { + return this.alpha(this.valpha + (this.valpha * ratio)); + }, + + rotate: function (degrees) { + var hsl = this.hsl(); + var hue = hsl.color[0]; + hue = (hue + degrees) % 360; + hue = hue < 0 ? 360 + hue : hue; + hsl.color[0] = hue; + return hsl; + }, + + mix: function (mixinColor, weight) { + // ported from sass implementation in C + // https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209 + if (!mixinColor || !mixinColor.rgb) { + throw new Error('Argument to "mix" was not a Color instance, but rather an instance of ' + typeof mixinColor); + } + var color1 = mixinColor.rgb(); + var color2 = this.rgb(); + var p = weight === undefined ? 0.5 : weight; + + var w = 2 * p - 1; + var a = color1.alpha() - color2.alpha(); + + var w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0; + var w2 = 1 - w1; + + return Color.rgb( + w1 * color1.red() + w2 * color2.red(), + w1 * color1.green() + w2 * color2.green(), + w1 * color1.blue() + w2 * color2.blue(), + color1.alpha() * p + color2.alpha() * (1 - p)); + } +}; + +// model conversion methods and static constructors +Object.keys(convert).forEach(function (model) { + if (skippedModels.indexOf(model) !== -1) { + return; + } + + var channels = convert[model].channels; + + // conversion methods + Color.prototype[model] = function () { + if (this.model === model) { + return new Color(this); + } + + if (arguments.length) { + return new Color(arguments, model); + } + + var newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha; + return new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model); + }; + + // 'static' construction methods + Color[model] = function (color) { + if (typeof color === 'number') { + color = zeroArray(_slice.call(arguments), channels); + } + return new Color(color, model); + }; +}); + +function roundTo(num, places) { + return Number(num.toFixed(places)); +} + +function roundToPlace(places) { + return function (num) { + return roundTo(num, places); + }; +} + +function getset(model, channel, modifier) { + model = Array.isArray(model) ? model : [model]; + + model.forEach(function (m) { + (limiters[m] || (limiters[m] = []))[channel] = modifier; + }); + + model = model[0]; + + return function (val) { + var result; + + if (arguments.length) { + if (modifier) { + val = modifier(val); + } + + result = this[model](); + result.color[channel] = val; + return result; + } + + result = this[model]().color[channel]; + if (modifier) { + result = modifier(result); + } + + return result; + }; +} + +function maxfn(max) { + return function (v) { + return Math.max(0, Math.min(max, v)); + }; +} + +function assertArray(val) { + return Array.isArray(val) ? val : [val]; +} + +function zeroArray(arr, length) { + for (var i = 0; i < length; i++) { + if (typeof arr[i] !== 'number') { + arr[i] = 0; + } + } + + return arr; +} + +module.exports = Color; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/colorspace/index.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/colorspace/index.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var color = __webpack_require__(/*! color */ "./build/cht-core-4-6/api/node_modules/color/index.js") + , hex = __webpack_require__(/*! text-hex */ "./build/cht-core-4-6/api/node_modules/text-hex/index.js"); + +/** + * Generate a color for a given name. But be reasonably smart about it by + * understanding name spaces and coloring each namespace a bit lighter so they + * still have the same base color as the root. + * + * @param {string} namespace The namespace + * @param {string} [delimiter] The delimiter + * @returns {string} color + */ +module.exports = function colorspace(namespace, delimiter) { + var split = namespace.split(delimiter || ':'); + var base = hex(split[0]); + + if (!split.length) return base; + + for (var i = 0, l = split.length - 1; i < l; i++) { + base = color(base) + .mix(color(hex(split[i + 1]))) + .saturate(1) + .hex(); + } + + return base; +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/attributes.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/attributes.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.attributeRules = void 0; +var boolbase_1 = __webpack_require__(/*! boolbase */ "./build/cht-core-4-6/api/node_modules/boolbase/index.js"); +/** + * All reserved characters in a regex, used for escaping. + * + * Taken from XRegExp, (c) 2007-2020 Steven Levithan under the MIT license + * https://github.com/slevithan/xregexp/blob/95eeebeb8fac8754d54eafe2b4743661ac1cf028/src/xregexp.js#L794 + */ +var reChars = /[-[\]{}()*+?.,\\^$|#\s]/g; +function escapeRegex(value) { + return value.replace(reChars, "\\$&"); +} +/** + * Attributes that are case-insensitive in HTML. + * + * @private + * @see https://html.spec.whatwg.org/multipage/semantics-other.html#case-sensitivity-of-selectors + */ +var caseInsensitiveAttributes = new Set([ + "accept", + "accept-charset", + "align", + "alink", + "axis", + "bgcolor", + "charset", + "checked", + "clear", + "codetype", + "color", + "compact", + "declare", + "defer", + "dir", + "direction", + "disabled", + "enctype", + "face", + "frame", + "hreflang", + "http-equiv", + "lang", + "language", + "link", + "media", + "method", + "multiple", + "nohref", + "noresize", + "noshade", + "nowrap", + "readonly", + "rel", + "rev", + "rules", + "scope", + "scrolling", + "selected", + "shape", + "target", + "text", + "type", + "valign", + "valuetype", + "vlink", +]); +function shouldIgnoreCase(selector, options) { + return typeof selector.ignoreCase === "boolean" + ? selector.ignoreCase + : selector.ignoreCase === "quirks" + ? !!options.quirksMode + : !options.xmlMode && caseInsensitiveAttributes.has(selector.name); +} +/** + * Attribute selectors + */ +exports.attributeRules = { + equals: function (next, data, options) { + var adapter = options.adapter; + var name = data.name; + var value = data.value; + if (shouldIgnoreCase(data, options)) { + value = value.toLowerCase(); + return function (elem) { + var attr = adapter.getAttributeValue(elem, name); + return (attr != null && + attr.length === value.length && + attr.toLowerCase() === value && + next(elem)); + }; + } + return function (elem) { + return adapter.getAttributeValue(elem, name) === value && next(elem); + }; + }, + hyphen: function (next, data, options) { + var adapter = options.adapter; + var name = data.name; + var value = data.value; + var len = value.length; + if (shouldIgnoreCase(data, options)) { + value = value.toLowerCase(); + return function hyphenIC(elem) { + var attr = adapter.getAttributeValue(elem, name); + return (attr != null && + (attr.length === len || attr.charAt(len) === "-") && + attr.substr(0, len).toLowerCase() === value && + next(elem)); + }; + } + return function hyphen(elem) { + var attr = adapter.getAttributeValue(elem, name); + return (attr != null && + (attr.length === len || attr.charAt(len) === "-") && + attr.substr(0, len) === value && + next(elem)); + }; + }, + element: function (next, data, options) { + var adapter = options.adapter; + var name = data.name, value = data.value; + if (/\s/.test(value)) { + return boolbase_1.falseFunc; + } + var regex = new RegExp("(?:^|\\s)".concat(escapeRegex(value), "(?:$|\\s)"), shouldIgnoreCase(data, options) ? "i" : ""); + return function element(elem) { + var attr = adapter.getAttributeValue(elem, name); + return (attr != null && + attr.length >= value.length && + regex.test(attr) && + next(elem)); + }; + }, + exists: function (next, _a, _b) { + var name = _a.name; + var adapter = _b.adapter; + return function (elem) { return adapter.hasAttrib(elem, name) && next(elem); }; + }, + start: function (next, data, options) { + var adapter = options.adapter; + var name = data.name; + var value = data.value; + var len = value.length; + if (len === 0) { + return boolbase_1.falseFunc; + } + if (shouldIgnoreCase(data, options)) { + value = value.toLowerCase(); + return function (elem) { + var attr = adapter.getAttributeValue(elem, name); + return (attr != null && + attr.length >= len && + attr.substr(0, len).toLowerCase() === value && + next(elem)); + }; + } + return function (elem) { + var _a; + return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.startsWith(value)) && + next(elem); + }; + }, + end: function (next, data, options) { + var adapter = options.adapter; + var name = data.name; + var value = data.value; + var len = -value.length; + if (len === 0) { + return boolbase_1.falseFunc; + } + if (shouldIgnoreCase(data, options)) { + value = value.toLowerCase(); + return function (elem) { + var _a; + return ((_a = adapter + .getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.substr(len).toLowerCase()) === value && next(elem); + }; + } + return function (elem) { + var _a; + return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.endsWith(value)) && + next(elem); + }; + }, + any: function (next, data, options) { + var adapter = options.adapter; + var name = data.name, value = data.value; + if (value === "") { + return boolbase_1.falseFunc; + } + if (shouldIgnoreCase(data, options)) { + var regex_1 = new RegExp(escapeRegex(value), "i"); + return function anyIC(elem) { + var attr = adapter.getAttributeValue(elem, name); + return (attr != null && + attr.length >= value.length && + regex_1.test(attr) && + next(elem)); + }; + } + return function (elem) { + var _a; + return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.includes(value)) && + next(elem); + }; + }, + not: function (next, data, options) { + var adapter = options.adapter; + var name = data.name; + var value = data.value; + if (value === "") { + return function (elem) { + return !!adapter.getAttributeValue(elem, name) && next(elem); + }; + } + else if (shouldIgnoreCase(data, options)) { + value = value.toLowerCase(); + return function (elem) { + var attr = adapter.getAttributeValue(elem, name); + return ((attr == null || + attr.length !== value.length || + attr.toLowerCase() !== value) && + next(elem)); + }; + } + return function (elem) { + return adapter.getAttributeValue(elem, name) !== value && next(elem); + }; + }, +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/compile.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/compile.js ***! + \***********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.compileToken = exports.compileUnsafe = exports.compile = void 0; +var css_what_1 = __webpack_require__(/*! css-what */ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/index.js"); +var boolbase_1 = __webpack_require__(/*! boolbase */ "./build/cht-core-4-6/api/node_modules/boolbase/index.js"); +var sort_1 = __importDefault(__webpack_require__(/*! ./sort */ "./build/cht-core-4-6/api/node_modules/css-select/lib/sort.js")); +var procedure_1 = __webpack_require__(/*! ./procedure */ "./build/cht-core-4-6/api/node_modules/css-select/lib/procedure.js"); +var general_1 = __webpack_require__(/*! ./general */ "./build/cht-core-4-6/api/node_modules/css-select/lib/general.js"); +var subselects_1 = __webpack_require__(/*! ./pseudo-selectors/subselects */ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/subselects.js"); +/** + * Compiles a selector to an executable function. + * + * @param selector Selector to compile. + * @param options Compilation options. + * @param context Optional context for the selector. + */ +function compile(selector, options, context) { + var next = compileUnsafe(selector, options, context); + return (0, subselects_1.ensureIsTag)(next, options.adapter); +} +exports.compile = compile; +function compileUnsafe(selector, options, context) { + var token = typeof selector === "string" ? (0, css_what_1.parse)(selector) : selector; + return compileToken(token, options, context); +} +exports.compileUnsafe = compileUnsafe; +function includesScopePseudo(t) { + return (t.type === "pseudo" && + (t.name === "scope" || + (Array.isArray(t.data) && + t.data.some(function (data) { return data.some(includesScopePseudo); })))); +} +var DESCENDANT_TOKEN = { type: css_what_1.SelectorType.Descendant }; +var FLEXIBLE_DESCENDANT_TOKEN = { + type: "_flexibleDescendant", +}; +var SCOPE_TOKEN = { + type: css_what_1.SelectorType.Pseudo, + name: "scope", + data: null, +}; +/* + * CSS 4 Spec (Draft): 3.3.1. Absolutizing a Scope-relative Selector + * http://www.w3.org/TR/selectors4/#absolutizing + */ +function absolutize(token, _a, context) { + var adapter = _a.adapter; + // TODO Use better check if the context is a document + var hasContext = !!(context === null || context === void 0 ? void 0 : context.every(function (e) { + var parent = adapter.isTag(e) && adapter.getParent(e); + return e === subselects_1.PLACEHOLDER_ELEMENT || (parent && adapter.isTag(parent)); + })); + for (var _i = 0, token_1 = token; _i < token_1.length; _i++) { + var t = token_1[_i]; + if (t.length > 0 && (0, procedure_1.isTraversal)(t[0]) && t[0].type !== "descendant") { + // Don't continue in else branch + } + else if (hasContext && !t.some(includesScopePseudo)) { + t.unshift(DESCENDANT_TOKEN); + } + else { + continue; + } + t.unshift(SCOPE_TOKEN); + } +} +function compileToken(token, options, context) { + var _a; + token = token.filter(function (t) { return t.length > 0; }); + token.forEach(sort_1.default); + context = (_a = options.context) !== null && _a !== void 0 ? _a : context; + var isArrayContext = Array.isArray(context); + var finalContext = context && (Array.isArray(context) ? context : [context]); + absolutize(token, options, finalContext); + var shouldTestNextSiblings = false; + var query = token + .map(function (rules) { + if (rules.length >= 2) { + var first = rules[0], second = rules[1]; + if (first.type !== "pseudo" || first.name !== "scope") { + // Ignore + } + else if (isArrayContext && second.type === "descendant") { + rules[1] = FLEXIBLE_DESCENDANT_TOKEN; + } + else if (second.type === "adjacent" || + second.type === "sibling") { + shouldTestNextSiblings = true; + } + } + return compileRules(rules, options, finalContext); + }) + .reduce(reduceRules, boolbase_1.falseFunc); + query.shouldTestNextSiblings = shouldTestNextSiblings; + return query; +} +exports.compileToken = compileToken; +function compileRules(rules, options, context) { + var _a; + return rules.reduce(function (previous, rule) { + return previous === boolbase_1.falseFunc + ? boolbase_1.falseFunc + : (0, general_1.compileGeneralSelector)(previous, rule, options, context, compileToken); + }, (_a = options.rootFunc) !== null && _a !== void 0 ? _a : boolbase_1.trueFunc); +} +function reduceRules(a, b) { + if (b === boolbase_1.falseFunc || a === boolbase_1.trueFunc) { + return a; + } + if (a === boolbase_1.falseFunc || b === boolbase_1.trueFunc) { + return b; + } + return function combine(elem) { + return a(elem) || b(elem); + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/general.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/general.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.compileGeneralSelector = void 0; +var attributes_1 = __webpack_require__(/*! ./attributes */ "./build/cht-core-4-6/api/node_modules/css-select/lib/attributes.js"); +var pseudo_selectors_1 = __webpack_require__(/*! ./pseudo-selectors */ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/index.js"); +var css_what_1 = __webpack_require__(/*! css-what */ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/index.js"); +/* + * All available rules + */ +function compileGeneralSelector(next, selector, options, context, compileToken) { + var adapter = options.adapter, equals = options.equals; + switch (selector.type) { + case css_what_1.SelectorType.PseudoElement: { + throw new Error("Pseudo-elements are not supported by css-select"); + } + case css_what_1.SelectorType.ColumnCombinator: { + throw new Error("Column combinators are not yet supported by css-select"); + } + case css_what_1.SelectorType.Attribute: { + if (selector.namespace != null) { + throw new Error("Namespaced attributes are not yet supported by css-select"); + } + if (!options.xmlMode || options.lowerCaseAttributeNames) { + selector.name = selector.name.toLowerCase(); + } + return attributes_1.attributeRules[selector.action](next, selector, options); + } + case css_what_1.SelectorType.Pseudo: { + return (0, pseudo_selectors_1.compilePseudoSelector)(next, selector, options, context, compileToken); + } + // Tags + case css_what_1.SelectorType.Tag: { + if (selector.namespace != null) { + throw new Error("Namespaced tag names are not yet supported by css-select"); + } + var name_1 = selector.name; + if (!options.xmlMode || options.lowerCaseTags) { + name_1 = name_1.toLowerCase(); + } + return function tag(elem) { + return adapter.getName(elem) === name_1 && next(elem); + }; + } + // Traversal + case css_what_1.SelectorType.Descendant: { + if (options.cacheResults === false || + typeof WeakSet === "undefined") { + return function descendant(elem) { + var current = elem; + while ((current = adapter.getParent(current))) { + if (adapter.isTag(current) && next(current)) { + return true; + } + } + return false; + }; + } + // @ts-expect-error `ElementNode` is not extending object + var isFalseCache_1 = new WeakSet(); + return function cachedDescendant(elem) { + var current = elem; + while ((current = adapter.getParent(current))) { + if (!isFalseCache_1.has(current)) { + if (adapter.isTag(current) && next(current)) { + return true; + } + isFalseCache_1.add(current); + } + } + return false; + }; + } + case "_flexibleDescendant": { + // Include element itself, only used while querying an array + return function flexibleDescendant(elem) { + var current = elem; + do { + if (adapter.isTag(current) && next(current)) + return true; + } while ((current = adapter.getParent(current))); + return false; + }; + } + case css_what_1.SelectorType.Parent: { + return function parent(elem) { + return adapter + .getChildren(elem) + .some(function (elem) { return adapter.isTag(elem) && next(elem); }); + }; + } + case css_what_1.SelectorType.Child: { + return function child(elem) { + var parent = adapter.getParent(elem); + return parent != null && adapter.isTag(parent) && next(parent); + }; + } + case css_what_1.SelectorType.Sibling: { + return function sibling(elem) { + var siblings = adapter.getSiblings(elem); + for (var i = 0; i < siblings.length; i++) { + var currentSibling = siblings[i]; + if (equals(elem, currentSibling)) + break; + if (adapter.isTag(currentSibling) && next(currentSibling)) { + return true; + } + } + return false; + }; + } + case css_what_1.SelectorType.Adjacent: { + if (adapter.prevElementSibling) { + return function adjacent(elem) { + var previous = adapter.prevElementSibling(elem); + return previous != null && next(previous); + }; + } + return function adjacent(elem) { + var siblings = adapter.getSiblings(elem); + var lastElement; + for (var i = 0; i < siblings.length; i++) { + var currentSibling = siblings[i]; + if (equals(elem, currentSibling)) + break; + if (adapter.isTag(currentSibling)) { + lastElement = currentSibling; + } + } + return !!lastElement && next(lastElement); + }; + } + case css_what_1.SelectorType.Universal: { + if (selector.namespace != null && selector.namespace !== "*") { + throw new Error("Namespaced universal selectors are not yet supported by css-select"); + } + return next; + } + } +} +exports.compileGeneralSelector = compileGeneralSelector; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/index.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/index.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.aliases = exports.pseudos = exports.filters = exports.is = exports.selectOne = exports.selectAll = exports.prepareContext = exports._compileToken = exports._compileUnsafe = exports.compile = void 0; +var DomUtils = __importStar(__webpack_require__(/*! domutils */ "./build/cht-core-4-6/api/node_modules/domutils/lib/index.js")); +var boolbase_1 = __webpack_require__(/*! boolbase */ "./build/cht-core-4-6/api/node_modules/boolbase/index.js"); +var compile_1 = __webpack_require__(/*! ./compile */ "./build/cht-core-4-6/api/node_modules/css-select/lib/compile.js"); +var subselects_1 = __webpack_require__(/*! ./pseudo-selectors/subselects */ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/subselects.js"); +var defaultEquals = function (a, b) { return a === b; }; +var defaultOptions = { + adapter: DomUtils, + equals: defaultEquals, +}; +function convertOptionFormats(options) { + var _a, _b, _c, _d; + /* + * We force one format of options to the other one. + */ + // @ts-expect-error Default options may have incompatible `Node` / `ElementNode`. + var opts = options !== null && options !== void 0 ? options : defaultOptions; + // @ts-expect-error Same as above. + (_a = opts.adapter) !== null && _a !== void 0 ? _a : (opts.adapter = DomUtils); + // @ts-expect-error `equals` does not exist on `Options` + (_b = opts.equals) !== null && _b !== void 0 ? _b : (opts.equals = (_d = (_c = opts.adapter) === null || _c === void 0 ? void 0 : _c.equals) !== null && _d !== void 0 ? _d : defaultEquals); + return opts; +} +function wrapCompile(func) { + return function addAdapter(selector, options, context) { + var opts = convertOptionFormats(options); + return func(selector, opts, context); + }; +} +/** + * Compiles the query, returns a function. + */ +exports.compile = wrapCompile(compile_1.compile); +exports._compileUnsafe = wrapCompile(compile_1.compileUnsafe); +exports._compileToken = wrapCompile(compile_1.compileToken); +function getSelectorFunc(searchFunc) { + return function select(query, elements, options) { + var opts = convertOptionFormats(options); + if (typeof query !== "function") { + query = (0, compile_1.compileUnsafe)(query, opts, elements); + } + var filteredElements = prepareContext(elements, opts.adapter, query.shouldTestNextSiblings); + return searchFunc(query, filteredElements, opts); + }; +} +function prepareContext(elems, adapter, shouldTestNextSiblings) { + if (shouldTestNextSiblings === void 0) { shouldTestNextSiblings = false; } + /* + * Add siblings if the query requires them. + * See https://github.com/fb55/css-select/pull/43#issuecomment-225414692 + */ + if (shouldTestNextSiblings) { + elems = appendNextSiblings(elems, adapter); + } + return Array.isArray(elems) + ? adapter.removeSubsets(elems) + : adapter.getChildren(elems); +} +exports.prepareContext = prepareContext; +function appendNextSiblings(elem, adapter) { + // Order matters because jQuery seems to check the children before the siblings + var elems = Array.isArray(elem) ? elem.slice(0) : [elem]; + var elemsLength = elems.length; + for (var i = 0; i < elemsLength; i++) { + var nextSiblings = (0, subselects_1.getNextSiblings)(elems[i], adapter); + elems.push.apply(elems, nextSiblings); + } + return elems; +} +/** + * @template Node The generic Node type for the DOM adapter being used. + * @template ElementNode The Node type for elements for the DOM adapter being used. + * @param elems Elements to query. If it is an element, its children will be queried.. + * @param query can be either a CSS selector string or a compiled query function. + * @param [options] options for querying the document. + * @see compile for supported selector queries. + * @returns All matching elements. + * + */ +exports.selectAll = getSelectorFunc(function (query, elems, options) { + return query === boolbase_1.falseFunc || !elems || elems.length === 0 + ? [] + : options.adapter.findAll(query, elems); +}); +/** + * @template Node The generic Node type for the DOM adapter being used. + * @template ElementNode The Node type for elements for the DOM adapter being used. + * @param elems Elements to query. If it is an element, its children will be queried.. + * @param query can be either a CSS selector string or a compiled query function. + * @param [options] options for querying the document. + * @see compile for supported selector queries. + * @returns the first match, or null if there was no match. + */ +exports.selectOne = getSelectorFunc(function (query, elems, options) { + return query === boolbase_1.falseFunc || !elems || elems.length === 0 + ? null + : options.adapter.findOne(query, elems); +}); +/** + * Tests whether or not an element is matched by query. + * + * @template Node The generic Node type for the DOM adapter being used. + * @template ElementNode The Node type for elements for the DOM adapter being used. + * @param elem The element to test if it matches the query. + * @param query can be either a CSS selector string or a compiled query function. + * @param [options] options for querying the document. + * @see compile for supported selector queries. + * @returns + */ +function is(elem, query, options) { + var opts = convertOptionFormats(options); + return (typeof query === "function" ? query : (0, compile_1.compile)(query, opts))(elem); +} +exports.is = is; +/** + * Alias for selectAll(query, elems, options). + * @see [compile] for supported selector queries. + */ +exports.default = exports.selectAll; +// Export filters, pseudos and aliases to allow users to supply their own. +var pseudo_selectors_1 = __webpack_require__(/*! ./pseudo-selectors */ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/index.js"); +Object.defineProperty(exports, "filters", ({ enumerable: true, get: function () { return pseudo_selectors_1.filters; } })); +Object.defineProperty(exports, "pseudos", ({ enumerable: true, get: function () { return pseudo_selectors_1.pseudos; } })); +Object.defineProperty(exports, "aliases", ({ enumerable: true, get: function () { return pseudo_selectors_1.aliases; } })); + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/procedure.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/procedure.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.isTraversal = exports.procedure = void 0; +exports.procedure = { + universal: 50, + tag: 30, + attribute: 1, + pseudo: 0, + "pseudo-element": 0, + "column-combinator": -1, + descendant: -1, + child: -1, + parent: -1, + sibling: -1, + adjacent: -1, + _flexibleDescendant: -1, +}; +function isTraversal(t) { + return exports.procedure[t.type] < 0; +} +exports.isTraversal = isTraversal; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/aliases.js": +/*!****************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/aliases.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.aliases = void 0; +/** + * Aliases are pseudos that are expressed as selectors. + */ +exports.aliases = { + // Links + "any-link": ":is(a, area, link)[href]", + link: ":any-link:not(:visited)", + // Forms + // https://html.spec.whatwg.org/multipage/scripting.html#disabled-elements + disabled: ":is(\n :is(button, input, select, textarea, optgroup, option)[disabled],\n optgroup[disabled] > option,\n fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)\n )", + enabled: ":not(:disabled)", + checked: ":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)", + required: ":is(input, select, textarea)[required]", + optional: ":is(input, select, textarea):not([required])", + // JQuery extensions + // https://html.spec.whatwg.org/multipage/form-elements.html#concept-option-selectedness + selected: "option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)", + checkbox: "[type=checkbox]", + file: "[type=file]", + password: "[type=password]", + radio: "[type=radio]", + reset: "[type=reset]", + image: "[type=image]", + submit: "[type=submit]", + parent: ":not(:empty)", + header: ":is(h1, h2, h3, h4, h5, h6)", + button: ":is(button, input[type=button])", + input: ":is(input, textarea, select, button)", + text: "input:is(:not([type!='']), [type=text])", +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/filters.js": +/*!****************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/filters.js ***! + \****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.filters = void 0; +var nth_check_1 = __importDefault(__webpack_require__(/*! nth-check */ "./build/cht-core-4-6/api/node_modules/nth-check/lib/index.js")); +var boolbase_1 = __webpack_require__(/*! boolbase */ "./build/cht-core-4-6/api/node_modules/boolbase/index.js"); +function getChildFunc(next, adapter) { + return function (elem) { + var parent = adapter.getParent(elem); + return parent != null && adapter.isTag(parent) && next(elem); + }; +} +exports.filters = { + contains: function (next, text, _a) { + var adapter = _a.adapter; + return function contains(elem) { + return next(elem) && adapter.getText(elem).includes(text); + }; + }, + icontains: function (next, text, _a) { + var adapter = _a.adapter; + var itext = text.toLowerCase(); + return function icontains(elem) { + return (next(elem) && + adapter.getText(elem).toLowerCase().includes(itext)); + }; + }, + // Location specific methods + "nth-child": function (next, rule, _a) { + var adapter = _a.adapter, equals = _a.equals; + var func = (0, nth_check_1.default)(rule); + if (func === boolbase_1.falseFunc) + return boolbase_1.falseFunc; + if (func === boolbase_1.trueFunc) + return getChildFunc(next, adapter); + return function nthChild(elem) { + var siblings = adapter.getSiblings(elem); + var pos = 0; + for (var i = 0; i < siblings.length; i++) { + if (equals(elem, siblings[i])) + break; + if (adapter.isTag(siblings[i])) { + pos++; + } + } + return func(pos) && next(elem); + }; + }, + "nth-last-child": function (next, rule, _a) { + var adapter = _a.adapter, equals = _a.equals; + var func = (0, nth_check_1.default)(rule); + if (func === boolbase_1.falseFunc) + return boolbase_1.falseFunc; + if (func === boolbase_1.trueFunc) + return getChildFunc(next, adapter); + return function nthLastChild(elem) { + var siblings = adapter.getSiblings(elem); + var pos = 0; + for (var i = siblings.length - 1; i >= 0; i--) { + if (equals(elem, siblings[i])) + break; + if (adapter.isTag(siblings[i])) { + pos++; + } + } + return func(pos) && next(elem); + }; + }, + "nth-of-type": function (next, rule, _a) { + var adapter = _a.adapter, equals = _a.equals; + var func = (0, nth_check_1.default)(rule); + if (func === boolbase_1.falseFunc) + return boolbase_1.falseFunc; + if (func === boolbase_1.trueFunc) + return getChildFunc(next, adapter); + return function nthOfType(elem) { + var siblings = adapter.getSiblings(elem); + var pos = 0; + for (var i = 0; i < siblings.length; i++) { + var currentSibling = siblings[i]; + if (equals(elem, currentSibling)) + break; + if (adapter.isTag(currentSibling) && + adapter.getName(currentSibling) === adapter.getName(elem)) { + pos++; + } + } + return func(pos) && next(elem); + }; + }, + "nth-last-of-type": function (next, rule, _a) { + var adapter = _a.adapter, equals = _a.equals; + var func = (0, nth_check_1.default)(rule); + if (func === boolbase_1.falseFunc) + return boolbase_1.falseFunc; + if (func === boolbase_1.trueFunc) + return getChildFunc(next, adapter); + return function nthLastOfType(elem) { + var siblings = adapter.getSiblings(elem); + var pos = 0; + for (var i = siblings.length - 1; i >= 0; i--) { + var currentSibling = siblings[i]; + if (equals(elem, currentSibling)) + break; + if (adapter.isTag(currentSibling) && + adapter.getName(currentSibling) === adapter.getName(elem)) { + pos++; + } + } + return func(pos) && next(elem); + }; + }, + // TODO determine the actual root element + root: function (next, _rule, _a) { + var adapter = _a.adapter; + return function (elem) { + var parent = adapter.getParent(elem); + return (parent == null || !adapter.isTag(parent)) && next(elem); + }; + }, + scope: function (next, rule, options, context) { + var equals = options.equals; + if (!context || context.length === 0) { + // Equivalent to :root + return exports.filters.root(next, rule, options); + } + if (context.length === 1) { + // NOTE: can't be unpacked, as :has uses this for side-effects + return function (elem) { return equals(context[0], elem) && next(elem); }; + } + return function (elem) { return context.includes(elem) && next(elem); }; + }, + hover: dynamicStatePseudo("isHovered"), + visited: dynamicStatePseudo("isVisited"), + active: dynamicStatePseudo("isActive"), +}; +/** + * Dynamic state pseudos. These depend on optional Adapter methods. + * + * @param name The name of the adapter method to call. + * @returns Pseudo for the `filters` object. + */ +function dynamicStatePseudo(name) { + return function dynamicPseudo(next, _rule, _a) { + var adapter = _a.adapter; + var func = adapter[name]; + if (typeof func !== "function") { + return boolbase_1.falseFunc; + } + return function active(elem) { + return func(elem) && next(elem); + }; + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/index.js": +/*!**************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/index.js ***! + \**************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.compilePseudoSelector = exports.aliases = exports.pseudos = exports.filters = void 0; +/* + * Pseudo selectors + * + * Pseudo selectors are available in three forms: + * + * 1. Filters are called when the selector is compiled and return a function + * that has to return either false, or the results of `next()`. + * 2. Pseudos are called on execution. They have to return a boolean. + * 3. Subselects work like filters, but have an embedded selector that will be run separately. + * + * Filters are great if you want to do some pre-processing, or change the call order + * of `next()` and your code. + * Pseudos should be used to implement simple checks. + */ +var boolbase_1 = __webpack_require__(/*! boolbase */ "./build/cht-core-4-6/api/node_modules/boolbase/index.js"); +var css_what_1 = __webpack_require__(/*! css-what */ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/index.js"); +var filters_1 = __webpack_require__(/*! ./filters */ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/filters.js"); +Object.defineProperty(exports, "filters", ({ enumerable: true, get: function () { return filters_1.filters; } })); +var pseudos_1 = __webpack_require__(/*! ./pseudos */ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/pseudos.js"); +Object.defineProperty(exports, "pseudos", ({ enumerable: true, get: function () { return pseudos_1.pseudos; } })); +var aliases_1 = __webpack_require__(/*! ./aliases */ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/aliases.js"); +Object.defineProperty(exports, "aliases", ({ enumerable: true, get: function () { return aliases_1.aliases; } })); +var subselects_1 = __webpack_require__(/*! ./subselects */ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/subselects.js"); +function compilePseudoSelector(next, selector, options, context, compileToken) { + var name = selector.name, data = selector.data; + if (Array.isArray(data)) { + return subselects_1.subselects[name](next, data, options, context, compileToken); + } + if (name in aliases_1.aliases) { + if (data != null) { + throw new Error("Pseudo ".concat(name, " doesn't have any arguments")); + } + // The alias has to be parsed here, to make sure options are respected. + var alias = (0, css_what_1.parse)(aliases_1.aliases[name]); + return subselects_1.subselects.is(next, alias, options, context, compileToken); + } + if (name in filters_1.filters) { + return filters_1.filters[name](next, data, options, context); + } + if (name in pseudos_1.pseudos) { + var pseudo_1 = pseudos_1.pseudos[name]; + (0, pseudos_1.verifyPseudoArgs)(pseudo_1, name, data); + return pseudo_1 === boolbase_1.falseFunc + ? boolbase_1.falseFunc + : next === boolbase_1.trueFunc + ? function (elem) { return pseudo_1(elem, options, data); } + : function (elem) { return pseudo_1(elem, options, data) && next(elem); }; + } + throw new Error("unmatched pseudo-class :".concat(name)); +} +exports.compilePseudoSelector = compilePseudoSelector; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/pseudos.js": +/*!****************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/pseudos.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.verifyPseudoArgs = exports.pseudos = void 0; +// While filters are precompiled, pseudos get called when they are needed +exports.pseudos = { + empty: function (elem, _a) { + var adapter = _a.adapter; + return !adapter.getChildren(elem).some(function (elem) { + // FIXME: `getText` call is potentially expensive. + return adapter.isTag(elem) || adapter.getText(elem) !== ""; + }); + }, + "first-child": function (elem, _a) { + var adapter = _a.adapter, equals = _a.equals; + var firstChild = adapter + .getSiblings(elem) + .find(function (elem) { return adapter.isTag(elem); }); + return firstChild != null && equals(elem, firstChild); + }, + "last-child": function (elem, _a) { + var adapter = _a.adapter, equals = _a.equals; + var siblings = adapter.getSiblings(elem); + for (var i = siblings.length - 1; i >= 0; i--) { + if (equals(elem, siblings[i])) + return true; + if (adapter.isTag(siblings[i])) + break; + } + return false; + }, + "first-of-type": function (elem, _a) { + var adapter = _a.adapter, equals = _a.equals; + var siblings = adapter.getSiblings(elem); + var elemName = adapter.getName(elem); + for (var i = 0; i < siblings.length; i++) { + var currentSibling = siblings[i]; + if (equals(elem, currentSibling)) + return true; + if (adapter.isTag(currentSibling) && + adapter.getName(currentSibling) === elemName) { + break; + } + } + return false; + }, + "last-of-type": function (elem, _a) { + var adapter = _a.adapter, equals = _a.equals; + var siblings = adapter.getSiblings(elem); + var elemName = adapter.getName(elem); + for (var i = siblings.length - 1; i >= 0; i--) { + var currentSibling = siblings[i]; + if (equals(elem, currentSibling)) + return true; + if (adapter.isTag(currentSibling) && + adapter.getName(currentSibling) === elemName) { + break; + } + } + return false; + }, + "only-of-type": function (elem, _a) { + var adapter = _a.adapter, equals = _a.equals; + var elemName = adapter.getName(elem); + return adapter + .getSiblings(elem) + .every(function (sibling) { + return equals(elem, sibling) || + !adapter.isTag(sibling) || + adapter.getName(sibling) !== elemName; + }); + }, + "only-child": function (elem, _a) { + var adapter = _a.adapter, equals = _a.equals; + return adapter + .getSiblings(elem) + .every(function (sibling) { return equals(elem, sibling) || !adapter.isTag(sibling); }); + }, +}; +function verifyPseudoArgs(func, name, subselect) { + if (subselect === null) { + if (func.length > 2) { + throw new Error("pseudo-selector :".concat(name, " requires an argument")); + } + } + else if (func.length === 2) { + throw new Error("pseudo-selector :".concat(name, " doesn't have any arguments")); + } +} +exports.verifyPseudoArgs = verifyPseudoArgs; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/subselects.js": +/*!*******************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/subselects.js ***! + \*******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.subselects = exports.getNextSiblings = exports.ensureIsTag = exports.PLACEHOLDER_ELEMENT = void 0; +var boolbase_1 = __webpack_require__(/*! boolbase */ "./build/cht-core-4-6/api/node_modules/boolbase/index.js"); +var procedure_1 = __webpack_require__(/*! ../procedure */ "./build/cht-core-4-6/api/node_modules/css-select/lib/procedure.js"); +/** Used as a placeholder for :has. Will be replaced with the actual element. */ +exports.PLACEHOLDER_ELEMENT = {}; +function ensureIsTag(next, adapter) { + if (next === boolbase_1.falseFunc) + return boolbase_1.falseFunc; + return function (elem) { return adapter.isTag(elem) && next(elem); }; +} +exports.ensureIsTag = ensureIsTag; +function getNextSiblings(elem, adapter) { + var siblings = adapter.getSiblings(elem); + if (siblings.length <= 1) + return []; + var elemIndex = siblings.indexOf(elem); + if (elemIndex < 0 || elemIndex === siblings.length - 1) + return []; + return siblings.slice(elemIndex + 1).filter(adapter.isTag); +} +exports.getNextSiblings = getNextSiblings; +var is = function (next, token, options, context, compileToken) { + var opts = { + xmlMode: !!options.xmlMode, + adapter: options.adapter, + equals: options.equals, + }; + var func = compileToken(token, opts, context); + return function (elem) { return func(elem) && next(elem); }; +}; +/* + * :not, :has, :is, :matches and :where have to compile selectors + * doing this in src/pseudos.ts would lead to circular dependencies, + * so we add them here + */ +exports.subselects = { + is: is, + /** + * `:matches` and `:where` are aliases for `:is`. + */ + matches: is, + where: is, + not: function (next, token, options, context, compileToken) { + var opts = { + xmlMode: !!options.xmlMode, + adapter: options.adapter, + equals: options.equals, + }; + var func = compileToken(token, opts, context); + if (func === boolbase_1.falseFunc) + return next; + if (func === boolbase_1.trueFunc) + return boolbase_1.falseFunc; + return function not(elem) { + return !func(elem) && next(elem); + }; + }, + has: function (next, subselect, options, _context, compileToken) { + var adapter = options.adapter; + var opts = { + xmlMode: !!options.xmlMode, + adapter: adapter, + equals: options.equals, + }; + // @ts-expect-error Uses an array as a pointer to the current element (side effects) + var context = subselect.some(function (s) { + return s.some(procedure_1.isTraversal); + }) + ? [exports.PLACEHOLDER_ELEMENT] + : undefined; + var compiled = compileToken(subselect, opts, context); + if (compiled === boolbase_1.falseFunc) + return boolbase_1.falseFunc; + if (compiled === boolbase_1.trueFunc) { + return function (elem) { + return adapter.getChildren(elem).some(adapter.isTag) && next(elem); + }; + } + var hasElement = ensureIsTag(compiled, adapter); + var _a = compiled.shouldTestNextSiblings, shouldTestNextSiblings = _a === void 0 ? false : _a; + /* + * `shouldTestNextSiblings` will only be true if the query starts with + * a traversal (sibling or adjacent). That means we will always have a context. + */ + if (context) { + return function (elem) { + context[0] = elem; + var childs = adapter.getChildren(elem); + var nextElements = shouldTestNextSiblings + ? __spreadArray(__spreadArray([], childs, true), getNextSiblings(elem, adapter), true) : childs; + return (next(elem) && adapter.existsOne(hasElement, nextElements)); + }; + } + return function (elem) { + return next(elem) && + adapter.existsOne(hasElement, adapter.getChildren(elem)); + }; + }, +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/css-select/lib/sort.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-select/lib/sort.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +var css_what_1 = __webpack_require__(/*! css-what */ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/index.js"); +var procedure_1 = __webpack_require__(/*! ./procedure */ "./build/cht-core-4-6/api/node_modules/css-select/lib/procedure.js"); +var attributes = { + exists: 10, + equals: 8, + not: 7, + start: 6, + end: 6, + any: 5, + hyphen: 4, + element: 4, +}; +/** + * Sort the parts of the passed selector, + * as there is potential for optimization + * (some types of selectors are faster than others) + * + * @param arr Selector to sort + */ +function sortByProcedure(arr) { + var procs = arr.map(getProcedure); + for (var i = 1; i < arr.length; i++) { + var procNew = procs[i]; + if (procNew < 0) + continue; + for (var j = i - 1; j >= 0 && procNew < procs[j]; j--) { + var token = arr[j + 1]; + arr[j + 1] = arr[j]; + arr[j] = token; + procs[j + 1] = procs[j]; + procs[j] = procNew; + } + } +} +exports.default = sortByProcedure; +function getProcedure(token) { + var proc = procedure_1.procedure[token.type]; + if (token.type === css_what_1.SelectorType.Attribute) { + proc = attributes[token.action]; + if (proc === attributes.equals && token.name === "id") { + // Prefer ID selectors (eg. #ID) + proc = 9; + } + if (token.ignoreCase) { + /* + * IgnoreCase adds some overhead, prefer "normal" token + * this is a binary operation, to ensure it's still an int + */ + proc >>= 1; + } + } + else if (token.type === css_what_1.SelectorType.Pseudo) { + if (!token.data) { + proc = 3; + } + else if (token.name === "has" || token.name === "contains") { + proc = 0; // Expensive in any case + } + else if (Array.isArray(token.data)) { + // "matches" and "not" + proc = 0; + for (var i = 0; i < token.data.length; i++) { + // TODO better handling of complex selectors + if (token.data[i].length !== 1) + continue; + var cur = getProcedure(token.data[i][0]); + // Avoid executing :has or :contains + if (cur === 0) { + proc = 0; + break; + } + if (cur > proc) + proc = cur; + } + if (token.data.length > 1 && proc > 0) + proc -= 1; + } + else { + proc = 1; + } + } + return proc; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/index.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-what/lib/es/index.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "AttributeAction": () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction), +/* harmony export */ "IgnoreCaseMode": () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_0__.IgnoreCaseMode), +/* harmony export */ "SelectorType": () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType), +/* harmony export */ "isTraversal": () => (/* reexport safe */ _parse__WEBPACK_IMPORTED_MODULE_1__.isTraversal), +/* harmony export */ "parse": () => (/* reexport safe */ _parse__WEBPACK_IMPORTED_MODULE_1__.parse), +/* harmony export */ "stringify": () => (/* reexport safe */ _stringify__WEBPACK_IMPORTED_MODULE_2__.stringify) +/* harmony export */ }); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types */ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/types.js"); +/* harmony import */ var _parse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parse */ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/parse.js"); +/* harmony import */ var _stringify__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./stringify */ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/stringify.js"); + + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/parse.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-what/lib/es/parse.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "isTraversal": () => (/* binding */ isTraversal), +/* harmony export */ "parse": () => (/* binding */ parse) +/* harmony export */ }); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types */ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/types.js"); + +const reName = /^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/; +const reEscape = /\\([\da-f]{1,6}\s?|(\s)|.)/gi; +const actionTypes = new Map([ + [126 /* Tilde */, _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Element], + [94 /* Circumflex */, _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Start], + [36 /* Dollar */, _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.End], + [42 /* Asterisk */, _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Any], + [33 /* ExclamationMark */, _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Not], + [124 /* Pipe */, _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Hyphen], +]); +// Pseudos, whose data property is parsed as well. +const unpackPseudos = new Set([ + "has", + "not", + "matches", + "is", + "where", + "host", + "host-context", +]); +/** + * Checks whether a specific selector is a traversal. + * This is useful eg. in swapping the order of elements that + * are not traversals. + * + * @param selector Selector to check. + */ +function isTraversal(selector) { + switch (selector.type) { + case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Adjacent: + case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Child: + case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Descendant: + case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Parent: + case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Sibling: + case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.ColumnCombinator: + return true; + default: + return false; + } +} +const stripQuotesFromPseudos = new Set(["contains", "icontains"]); +// Unescape function taken from https://github.com/jquery/sizzle/blob/master/src/sizzle.js#L152 +function funescape(_, escaped, escapedWhitespace) { + const high = parseInt(escaped, 16) - 0x10000; + // NaN means non-codepoint + return high !== high || escapedWhitespace + ? escaped + : high < 0 + ? // BMP codepoint + String.fromCharCode(high + 0x10000) + : // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode((high >> 10) | 0xd800, (high & 0x3ff) | 0xdc00); +} +function unescapeCSS(str) { + return str.replace(reEscape, funescape); +} +function isQuote(c) { + return c === 39 /* SingleQuote */ || c === 34 /* DoubleQuote */; +} +function isWhitespace(c) { + return (c === 32 /* Space */ || + c === 9 /* Tab */ || + c === 10 /* NewLine */ || + c === 12 /* FormFeed */ || + c === 13 /* CarriageReturn */); +} +/** + * Parses `selector`, optionally with the passed `options`. + * + * @param selector Selector to parse. + * @param options Options for parsing. + * @returns Returns a two-dimensional array. + * The first dimension represents selectors separated by commas (eg. `sub1, sub2`), + * the second contains the relevant tokens for that selector. + */ +function parse(selector) { + const subselects = []; + const endIndex = parseSelector(subselects, `${selector}`, 0); + if (endIndex < selector.length) { + throw new Error(`Unmatched selector: ${selector.slice(endIndex)}`); + } + return subselects; +} +function parseSelector(subselects, selector, selectorIndex) { + let tokens = []; + function getName(offset) { + const match = selector.slice(selectorIndex + offset).match(reName); + if (!match) { + throw new Error(`Expected name, found ${selector.slice(selectorIndex)}`); + } + const [name] = match; + selectorIndex += offset + name.length; + return unescapeCSS(name); + } + function stripWhitespace(offset) { + selectorIndex += offset; + while (selectorIndex < selector.length && + isWhitespace(selector.charCodeAt(selectorIndex))) { + selectorIndex++; + } + } + function readValueWithParenthesis() { + selectorIndex += 1; + const start = selectorIndex; + let counter = 1; + for (; counter > 0 && selectorIndex < selector.length; selectorIndex++) { + if (selector.charCodeAt(selectorIndex) === + 40 /* LeftParenthesis */ && + !isEscaped(selectorIndex)) { + counter++; + } + else if (selector.charCodeAt(selectorIndex) === + 41 /* RightParenthesis */ && + !isEscaped(selectorIndex)) { + counter--; + } + } + if (counter) { + throw new Error("Parenthesis not matched"); + } + return unescapeCSS(selector.slice(start, selectorIndex - 1)); + } + function isEscaped(pos) { + let slashCount = 0; + while (selector.charCodeAt(--pos) === 92 /* BackSlash */) + slashCount++; + return (slashCount & 1) === 1; + } + function ensureNotTraversal() { + if (tokens.length > 0 && isTraversal(tokens[tokens.length - 1])) { + throw new Error("Did not expect successive traversals."); + } + } + function addTraversal(type) { + if (tokens.length > 0 && + tokens[tokens.length - 1].type === _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Descendant) { + tokens[tokens.length - 1].type = type; + return; + } + ensureNotTraversal(); + tokens.push({ type }); + } + function addSpecialAttribute(name, action) { + tokens.push({ + type: _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Attribute, + name, + action, + value: getName(1), + namespace: null, + ignoreCase: "quirks", + }); + } + /** + * We have finished parsing the current part of the selector. + * + * Remove descendant tokens at the end if they exist, + * and return the last index, so that parsing can be + * picked up from here. + */ + function finalizeSubselector() { + if (tokens.length && + tokens[tokens.length - 1].type === _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Descendant) { + tokens.pop(); + } + if (tokens.length === 0) { + throw new Error("Empty sub-selector"); + } + subselects.push(tokens); + } + stripWhitespace(0); + if (selector.length === selectorIndex) { + return selectorIndex; + } + loop: while (selectorIndex < selector.length) { + const firstChar = selector.charCodeAt(selectorIndex); + switch (firstChar) { + // Whitespace + case 32 /* Space */: + case 9 /* Tab */: + case 10 /* NewLine */: + case 12 /* FormFeed */: + case 13 /* CarriageReturn */: { + if (tokens.length === 0 || + tokens[0].type !== _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Descendant) { + ensureNotTraversal(); + tokens.push({ type: _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Descendant }); + } + stripWhitespace(1); + break; + } + // Traversals + case 62 /* GreaterThan */: { + addTraversal(_types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Child); + stripWhitespace(1); + break; + } + case 60 /* LessThan */: { + addTraversal(_types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Parent); + stripWhitespace(1); + break; + } + case 126 /* Tilde */: { + addTraversal(_types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Sibling); + stripWhitespace(1); + break; + } + case 43 /* Plus */: { + addTraversal(_types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Adjacent); + stripWhitespace(1); + break; + } + // Special attribute selectors: .class, #id + case 46 /* Period */: { + addSpecialAttribute("class", _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Element); + break; + } + case 35 /* Hash */: { + addSpecialAttribute("id", _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Equals); + break; + } + case 91 /* LeftSquareBracket */: { + stripWhitespace(1); + // Determine attribute name and namespace + let name; + let namespace = null; + if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */) { + // Equivalent to no namespace + name = getName(1); + } + else if (selector.startsWith("*|", selectorIndex)) { + namespace = "*"; + name = getName(2); + } + else { + name = getName(0); + if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ && + selector.charCodeAt(selectorIndex + 1) !== + 61 /* Equal */) { + namespace = name; + name = getName(1); + } + } + stripWhitespace(0); + // Determine comparison operation + let action = _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Exists; + const possibleAction = actionTypes.get(selector.charCodeAt(selectorIndex)); + if (possibleAction) { + action = possibleAction; + if (selector.charCodeAt(selectorIndex + 1) !== + 61 /* Equal */) { + throw new Error("Expected `=`"); + } + stripWhitespace(2); + } + else if (selector.charCodeAt(selectorIndex) === 61 /* Equal */) { + action = _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Equals; + stripWhitespace(1); + } + // Determine value + let value = ""; + let ignoreCase = null; + if (action !== "exists") { + if (isQuote(selector.charCodeAt(selectorIndex))) { + const quote = selector.charCodeAt(selectorIndex); + let sectionEnd = selectorIndex + 1; + while (sectionEnd < selector.length && + (selector.charCodeAt(sectionEnd) !== quote || + isEscaped(sectionEnd))) { + sectionEnd += 1; + } + if (selector.charCodeAt(sectionEnd) !== quote) { + throw new Error("Attribute value didn't end"); + } + value = unescapeCSS(selector.slice(selectorIndex + 1, sectionEnd)); + selectorIndex = sectionEnd + 1; + } + else { + const valueStart = selectorIndex; + while (selectorIndex < selector.length && + ((!isWhitespace(selector.charCodeAt(selectorIndex)) && + selector.charCodeAt(selectorIndex) !== + 93 /* RightSquareBracket */) || + isEscaped(selectorIndex))) { + selectorIndex += 1; + } + value = unescapeCSS(selector.slice(valueStart, selectorIndex)); + } + stripWhitespace(0); + // See if we have a force ignore flag + const forceIgnore = selector.charCodeAt(selectorIndex) | 0x20; + // If the forceIgnore flag is set (either `i` or `s`), use that value + if (forceIgnore === 115 /* LowerS */) { + ignoreCase = false; + stripWhitespace(1); + } + else if (forceIgnore === 105 /* LowerI */) { + ignoreCase = true; + stripWhitespace(1); + } + } + if (selector.charCodeAt(selectorIndex) !== + 93 /* RightSquareBracket */) { + throw new Error("Attribute selector didn't terminate"); + } + selectorIndex += 1; + const attributeSelector = { + type: _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Attribute, + name, + action, + value, + namespace, + ignoreCase, + }; + tokens.push(attributeSelector); + break; + } + case 58 /* Colon */: { + if (selector.charCodeAt(selectorIndex + 1) === 58 /* Colon */) { + tokens.push({ + type: _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.PseudoElement, + name: getName(2).toLowerCase(), + data: selector.charCodeAt(selectorIndex) === + 40 /* LeftParenthesis */ + ? readValueWithParenthesis() + : null, + }); + continue; + } + const name = getName(1).toLowerCase(); + let data = null; + if (selector.charCodeAt(selectorIndex) === + 40 /* LeftParenthesis */) { + if (unpackPseudos.has(name)) { + if (isQuote(selector.charCodeAt(selectorIndex + 1))) { + throw new Error(`Pseudo-selector ${name} cannot be quoted`); + } + data = []; + selectorIndex = parseSelector(data, selector, selectorIndex + 1); + if (selector.charCodeAt(selectorIndex) !== + 41 /* RightParenthesis */) { + throw new Error(`Missing closing parenthesis in :${name} (${selector})`); + } + selectorIndex += 1; + } + else { + data = readValueWithParenthesis(); + if (stripQuotesFromPseudos.has(name)) { + const quot = data.charCodeAt(0); + if (quot === data.charCodeAt(data.length - 1) && + isQuote(quot)) { + data = data.slice(1, -1); + } + } + data = unescapeCSS(data); + } + } + tokens.push({ type: _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Pseudo, name, data }); + break; + } + case 44 /* Comma */: { + finalizeSubselector(); + tokens = []; + stripWhitespace(1); + break; + } + default: { + if (selector.startsWith("/*", selectorIndex)) { + const endIndex = selector.indexOf("*/", selectorIndex + 2); + if (endIndex < 0) { + throw new Error("Comment was not terminated"); + } + selectorIndex = endIndex + 2; + // Remove leading whitespace + if (tokens.length === 0) { + stripWhitespace(0); + } + break; + } + let namespace = null; + let name; + if (firstChar === 42 /* Asterisk */) { + selectorIndex += 1; + name = "*"; + } + else if (firstChar === 124 /* Pipe */) { + name = ""; + if (selector.charCodeAt(selectorIndex + 1) === 124 /* Pipe */) { + addTraversal(_types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.ColumnCombinator); + stripWhitespace(2); + break; + } + } + else if (reName.test(selector.slice(selectorIndex))) { + name = getName(0); + } + else { + break loop; + } + if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ && + selector.charCodeAt(selectorIndex + 1) !== 124 /* Pipe */) { + namespace = name; + if (selector.charCodeAt(selectorIndex + 1) === + 42 /* Asterisk */) { + name = "*"; + selectorIndex += 2; + } + else { + name = getName(1); + } + } + tokens.push(name === "*" + ? { type: _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Universal, namespace } + : { type: _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Tag, name, namespace }); + } + } + } + finalizeSubselector(); + return selectorIndex; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/stringify.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-what/lib/es/stringify.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "stringify": () => (/* binding */ stringify) +/* harmony export */ }); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types */ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/types.js"); + +const attribValChars = ["\\", '"']; +const pseudoValChars = [...attribValChars, "(", ")"]; +const charsToEscapeInAttributeValue = new Set(attribValChars.map((c) => c.charCodeAt(0))); +const charsToEscapeInPseudoValue = new Set(pseudoValChars.map((c) => c.charCodeAt(0))); +const charsToEscapeInName = new Set([ + ...pseudoValChars, + "~", + "^", + "$", + "*", + "+", + "!", + "|", + ":", + "[", + "]", + " ", + ".", +].map((c) => c.charCodeAt(0))); +/** + * Turns `selector` back into a string. + * + * @param selector Selector to stringify. + */ +function stringify(selector) { + return selector + .map((token) => token.map(stringifyToken).join("")) + .join(", "); +} +function stringifyToken(token, index, arr) { + switch (token.type) { + // Simple types + case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Child: + return index === 0 ? "> " : " > "; + case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Parent: + return index === 0 ? "< " : " < "; + case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Sibling: + return index === 0 ? "~ " : " ~ "; + case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Adjacent: + return index === 0 ? "+ " : " + "; + case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Descendant: + return " "; + case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.ColumnCombinator: + return index === 0 ? "|| " : " || "; + case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Universal: + // Return an empty string if the selector isn't needed. + return token.namespace === "*" && + index + 1 < arr.length && + "name" in arr[index + 1] + ? "" + : `${getNamespace(token.namespace)}*`; + case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Tag: + return getNamespacedName(token); + case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.PseudoElement: + return `::${escapeName(token.name, charsToEscapeInName)}${token.data === null + ? "" + : `(${escapeName(token.data, charsToEscapeInPseudoValue)})`}`; + case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Pseudo: + return `:${escapeName(token.name, charsToEscapeInName)}${token.data === null + ? "" + : `(${typeof token.data === "string" + ? escapeName(token.data, charsToEscapeInPseudoValue) + : stringify(token.data)})`}`; + case _types__WEBPACK_IMPORTED_MODULE_0__.SelectorType.Attribute: { + if (token.name === "id" && + token.action === _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Equals && + token.ignoreCase === "quirks" && + !token.namespace) { + return `#${escapeName(token.value, charsToEscapeInName)}`; + } + if (token.name === "class" && + token.action === _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Element && + token.ignoreCase === "quirks" && + !token.namespace) { + return `.${escapeName(token.value, charsToEscapeInName)}`; + } + const name = getNamespacedName(token); + if (token.action === _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Exists) { + return `[${name}]`; + } + return `[${name}${getActionValue(token.action)}="${escapeName(token.value, charsToEscapeInAttributeValue)}"${token.ignoreCase === null ? "" : token.ignoreCase ? " i" : " s"}]`; + } + } +} +function getActionValue(action) { + switch (action) { + case _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Equals: + return ""; + case _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Element: + return "~"; + case _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Start: + return "^"; + case _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.End: + return "$"; + case _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Any: + return "*"; + case _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Not: + return "!"; + case _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Hyphen: + return "|"; + case _types__WEBPACK_IMPORTED_MODULE_0__.AttributeAction.Exists: + throw new Error("Shouldn't be here"); + } +} +function getNamespacedName(token) { + return `${getNamespace(token.namespace)}${escapeName(token.name, charsToEscapeInName)}`; +} +function getNamespace(namespace) { + return namespace !== null + ? `${namespace === "*" + ? "*" + : escapeName(namespace, charsToEscapeInName)}|` + : ""; +} +function escapeName(str, charsToEscape) { + let lastIdx = 0; + let ret = ""; + for (let i = 0; i < str.length; i++) { + if (charsToEscape.has(str.charCodeAt(i))) { + ret += `${str.slice(lastIdx, i)}\\${str.charAt(i)}`; + lastIdx = i + 1; + } + } + return ret.length > 0 ? ret + str.slice(lastIdx) : str; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/css-what/lib/es/types.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/css-what/lib/es/types.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "SelectorType": () => (/* binding */ SelectorType), +/* harmony export */ "IgnoreCaseMode": () => (/* binding */ IgnoreCaseMode), +/* harmony export */ "AttributeAction": () => (/* binding */ AttributeAction) +/* harmony export */ }); +var SelectorType; +(function (SelectorType) { + SelectorType["Attribute"] = "attribute"; + SelectorType["Pseudo"] = "pseudo"; + SelectorType["PseudoElement"] = "pseudo-element"; + SelectorType["Tag"] = "tag"; + SelectorType["Universal"] = "universal"; + // Traversals + SelectorType["Adjacent"] = "adjacent"; + SelectorType["Child"] = "child"; + SelectorType["Descendant"] = "descendant"; + SelectorType["Parent"] = "parent"; + SelectorType["Sibling"] = "sibling"; + SelectorType["ColumnCombinator"] = "column-combinator"; +})(SelectorType || (SelectorType = {})); +/** + * Modes for ignore case. + * + * This could be updated to an enum, and the object is + * the current stand-in that will allow code to be updated + * without big changes. + */ +const IgnoreCaseMode = { + Unknown: null, + QuirksMode: "quirks", + IgnoreCase: true, + CaseSensitive: false, +}; +var AttributeAction; +(function (AttributeAction) { + AttributeAction["Any"] = "any"; + AttributeAction["Element"] = "element"; + AttributeAction["End"] = "end"; + AttributeAction["Equals"] = "equals"; + AttributeAction["Exists"] = "exists"; + AttributeAction["Hyphen"] = "hyphen"; + AttributeAction["Not"] = "not"; + AttributeAction["Start"] = "start"; +})(AttributeAction || (AttributeAction = {})); + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/debug/src/browser.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/debug/src/browser.js ***! + \******************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +/** + * This is the web browser implementation of `debug()`. + * + * Expose `debug()` as the module. + */ + +exports = module.exports = __webpack_require__(/*! ./debug */ "./build/cht-core-4-6/api/node_modules/debug/src/debug.js"); +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = 'undefined' != typeof chrome + && 'undefined' != typeof chrome.storage + ? chrome.storage.local + : localstorage(); + +/** + * Colors. + */ + +exports.colors = [ + 'lightseagreen', + 'forestgreen', + 'goldenrod', + 'dodgerblue', + 'darkorchid', + 'crimson' +]; + +/** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ + +function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') { + return true; + } + + // is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || + // is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || + // is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || + // double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); +} + +/** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + +exports.formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (err) { + return '[UnexpectedJSONParseError]: ' + err.message; + } +}; + + +/** + * Colorize log arguments if enabled. + * + * @api public + */ + +function formatArgs(args) { + var useColors = this.useColors; + + args[0] = (useColors ? '%c' : '') + + this.namespace + + (useColors ? ' %c' : ' ') + + args[0] + + (useColors ? '%c ' : ' ') + + '+' + exports.humanize(this.diff); + + if (!useColors) return; + + var c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit') + + // the final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + var index = 0; + var lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, function(match) { + if ('%%' === match) return; + index++; + if ('%c' === match) { + // we only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); + + args.splice(lastC, 0, c); +} + +/** + * Invokes `console.log()` when available. + * No-op when `console.log` is not a "function". + * + * @api public + */ + +function log() { + // this hackery is required for IE8/9, where + // the `console.log` function doesn't have 'apply' + return 'object' === typeof console + && console.log + && Function.prototype.apply.call(console.log, console, arguments); +} + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ + +function save(namespaces) { + try { + if (null == namespaces) { + exports.storage.removeItem('debug'); + } else { + exports.storage.debug = namespaces; + } + } catch(e) {} +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + +function load() { + var r; + try { + r = exports.storage.debug; + } catch(e) {} + + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG; + } + + return r; +} + +/** + * Enable namespaces listed in `localStorage.debug` initially. + */ + +exports.enable(load()); + +/** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ + +function localstorage() { + try { + return window.localStorage; + } catch (e) {} +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/debug/src/debug.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/debug/src/debug.js ***! + \****************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + + +/** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + * + * Expose `debug()` as the module. + */ + +exports = module.exports = createDebug.debug = createDebug['default'] = createDebug; +exports.coerce = coerce; +exports.disable = disable; +exports.enable = enable; +exports.enabled = enabled; +exports.humanize = __webpack_require__(/*! ms */ "./build/cht-core-4-6/api/node_modules/ms/index.js"); + +/** + * The currently active debug mode names, and names to skip. + */ + +exports.names = []; +exports.skips = []; + +/** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + +exports.formatters = {}; + +/** + * Previous log timestamp. + */ + +var prevTime; + +/** + * Select a color. + * @param {String} namespace + * @return {Number} + * @api private + */ + +function selectColor(namespace) { + var hash = 0, i; + + for (i in namespace) { + hash = ((hash << 5) - hash) + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } + + return exports.colors[Math.abs(hash) % exports.colors.length]; +} + +/** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + +function createDebug(namespace) { + + function debug() { + // disabled? + if (!debug.enabled) return; + + var self = debug; + + // set `diff` timestamp + var curr = +new Date(); + var ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + // turn the `arguments` into a proper Array + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + + args[0] = exports.coerce(args[0]); + + if ('string' !== typeof args[0]) { + // anything else let's inspect with %O + args.unshift('%O'); + } + + // apply any `formatters` transformations + var index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) { + // if we encounter an escaped % then don't increase the array index + if (match === '%%') return match; + index++; + var formatter = exports.formatters[format]; + if ('function' === typeof formatter) { + var val = args[index]; + match = formatter.call(self, val); + + // now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + + // apply env-specific formatting (colors, etc.) + exports.formatArgs.call(self, args); + + var logFn = debug.log || exports.log || console.log.bind(console); + logFn.apply(self, args); + } + + debug.namespace = namespace; + debug.enabled = exports.enabled(namespace); + debug.useColors = exports.useColors(); + debug.color = selectColor(namespace); + + // env-specific initialization logic for debug instances + if ('function' === typeof exports.init) { + exports.init(debug); + } + + return debug; +} + +/** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + +function enable(namespaces) { + exports.save(namespaces); + + exports.names = []; + exports.skips = []; + + var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); + var len = split.length; + + for (var i = 0; i < len; i++) { + if (!split[i]) continue; // ignore empty strings + namespaces = split[i].replace(/\*/g, '.*?'); + if (namespaces[0] === '-') { + exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); + } else { + exports.names.push(new RegExp('^' + namespaces + '$')); + } + } +} + +/** + * Disable debug output. + * + * @api public + */ + +function disable() { + exports.enable(''); +} + +/** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + +function enabled(name) { + var i, len; + for (i = 0, len = exports.skips.length; i < len; i++) { + if (exports.skips[i].test(name)) { + return false; + } + } + for (i = 0, len = exports.names.length; i < len; i++) { + if (exports.names[i].test(name)) { + return true; + } + } + return false; +} + +/** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + +function coerce(val) { + if (val instanceof Error) return val.stack || val.message; + return val; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/debug/src/index.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/debug/src/index.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/** + * Detect Electron renderer process, which is node, but we should + * treat as a browser. + */ + +if (typeof process !== 'undefined' && process.type === 'renderer') { + module.exports = __webpack_require__(/*! ./browser.js */ "./build/cht-core-4-6/api/node_modules/debug/src/browser.js"); +} else { + module.exports = __webpack_require__(/*! ./node.js */ "./build/cht-core-4-6/api/node_modules/debug/src/node.js"); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/debug/src/node.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/debug/src/node.js ***! + \***************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +/** + * Module dependencies. + */ + +var tty = __webpack_require__(/*! tty */ "tty"); +var util = __webpack_require__(/*! util */ "util"); + +/** + * This is the Node.js implementation of `debug()`. + * + * Expose `debug()` as the module. + */ + +exports = module.exports = __webpack_require__(/*! ./debug */ "./build/cht-core-4-6/api/node_modules/debug/src/debug.js"); +exports.init = init; +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; + +/** + * Colors. + */ + +exports.colors = [6, 2, 3, 4, 5, 1]; + +/** + * Build up the default `inspectOpts` object from the environment variables. + * + * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + */ + +exports.inspectOpts = Object.keys(process.env).filter(function (key) { + return /^debug_/i.test(key); +}).reduce(function (obj, key) { + // camel-case + var prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() }); + + // coerce string value into JS value + var val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) val = true; + else if (/^(no|off|false|disabled)$/i.test(val)) val = false; + else if (val === 'null') val = null; + else val = Number(val); + + obj[prop] = val; + return obj; +}, {}); + +/** + * The file descriptor to write the `debug()` calls to. + * Set the `DEBUG_FD` env variable to override with another value. i.e.: + * + * $ DEBUG_FD=3 node script.js 3>debug.log + */ + +var fd = parseInt(process.env.DEBUG_FD, 10) || 2; + +if (1 !== fd && 2 !== fd) { + util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')() +} + +var stream = 1 === fd ? process.stdout : + 2 === fd ? process.stderr : + createWritableStdioStream(fd); + +/** + * Is stdout a TTY? Colored output is enabled when `true`. + */ + +function useColors() { + return 'colors' in exports.inspectOpts + ? Boolean(exports.inspectOpts.colors) + : tty.isatty(fd); +} + +/** + * Map %o to `util.inspect()`, all on a single line. + */ + +exports.formatters.o = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .split('\n').map(function(str) { + return str.trim() + }).join(' '); +}; + +/** + * Map %o to `util.inspect()`, allowing multiple lines if needed. + */ + +exports.formatters.O = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); +}; + +/** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ + +function formatArgs(args) { + var name = this.namespace; + var useColors = this.useColors; + + if (useColors) { + var c = this.color; + var prefix = ' \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m'; + + args[0] = prefix + args[0].split('\n').join('\n' + prefix); + args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m'); + } else { + args[0] = new Date().toUTCString() + + ' ' + name + ' ' + args[0]; + } +} + +/** + * Invokes `util.format()` with the specified arguments and writes to `stream`. + */ + +function log() { + return stream.write(util.format.apply(util, arguments) + '\n'); +} + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ + +function save(namespaces) { + if (null == namespaces) { + // If you set a process.env field to null or undefined, it gets cast to the + // string 'null' or 'undefined'. Just delete instead. + delete process.env.DEBUG; + } else { + process.env.DEBUG = namespaces; + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + +function load() { + return process.env.DEBUG; +} + +/** + * Copied from `node/src/node.js`. + * + * XXX: It's lame that node doesn't expose this API out-of-the-box. It also + * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame. + */ + +function createWritableStdioStream (fd) { + var stream; + var tty_wrap = process.binding('tty_wrap'); + + // Note stream._type is used for test-module-load-list.js + + switch (tty_wrap.guessHandleType(fd)) { + case 'TTY': + stream = new tty.WriteStream(fd); + stream._type = 'tty'; + + // Hack to have stream not keep the event loop alive. + // See https://github.com/joyent/node/issues/1726 + if (stream._handle && stream._handle.unref) { + stream._handle.unref(); + } + break; + + case 'FILE': + var fs = __webpack_require__(/*! fs */ "fs"); + stream = new fs.SyncWriteStream(fd, { autoClose: false }); + stream._type = 'fs'; + break; + + case 'PIPE': + case 'TCP': + var net = __webpack_require__(/*! net */ "net"); + stream = new net.Socket({ + fd: fd, + readable: false, + writable: true + }); + + // FIXME Should probably have an option in net.Socket to create a + // stream from an existing fd which is writable only. But for now + // we'll just add this hack and set the `readable` member to false. + // Test: ./node test/fixtures/echo.js < /etc/passwd + stream.readable = false; + stream.read = null; + stream._type = 'pipe'; + + // FIXME Hack to have stream not keep the event loop alive. + // See https://github.com/joyent/node/issues/1726 + if (stream._handle && stream._handle.unref) { + stream._handle.unref(); + } + break; + + default: + // Probably an error on in uv_guess_handle() + throw new Error('Implement me. Unknown stream file type!'); + } + + // For supporting legacy API we put the FD here. + stream.fd = fd; + + stream._isStdio = true; + + return stream; +} + +/** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ + +function init (debug) { + debug.inspectOpts = {}; + + var keys = Object.keys(exports.inspectOpts); + for (var i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } +} + +/** + * Enable namespaces listed in `process.env.DEBUG` initially. + */ + +exports.enable(load()); + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/depd/index.js": +/*!***********************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/depd/index.js ***! + \***********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/*! + * depd + * Copyright(c) 2014-2018 Douglas Christopher Wilson + * MIT Licensed + */ + +/** + * Module dependencies. + */ + +var relative = __webpack_require__(/*! path */ "path").relative + +/** + * Module exports. + */ + +module.exports = depd + +/** + * Get the path to base files on. + */ + +var basePath = process.cwd() + +/** + * Determine if namespace is contained in the string. + */ + +function containsNamespace (str, namespace) { + var vals = str.split(/[ ,]+/) + var ns = String(namespace).toLowerCase() + + for (var i = 0; i < vals.length; i++) { + var val = vals[i] + + // namespace contained + if (val && (val === '*' || val.toLowerCase() === ns)) { + return true + } + } + + return false +} + +/** + * Convert a data descriptor to accessor descriptor. + */ + +function convertDataDescriptorToAccessor (obj, prop, message) { + var descriptor = Object.getOwnPropertyDescriptor(obj, prop) + var value = descriptor.value + + descriptor.get = function getter () { return value } + + if (descriptor.writable) { + descriptor.set = function setter (val) { return (value = val) } + } + + delete descriptor.value + delete descriptor.writable + + Object.defineProperty(obj, prop, descriptor) + + return descriptor +} + +/** + * Create arguments string to keep arity. + */ + +function createArgumentsString (arity) { + var str = '' + + for (var i = 0; i < arity; i++) { + str += ', arg' + i + } + + return str.substr(2) +} + +/** + * Create stack string from stack. + */ + +function createStackString (stack) { + var str = this.name + ': ' + this.namespace + + if (this.message) { + str += ' deprecated ' + this.message + } + + for (var i = 0; i < stack.length; i++) { + str += '\n at ' + stack[i].toString() + } + + return str +} + +/** + * Create deprecate for namespace in caller. + */ + +function depd (namespace) { + if (!namespace) { + throw new TypeError('argument namespace is required') + } + + var stack = getStack() + var site = callSiteLocation(stack[1]) + var file = site[0] + + function deprecate (message) { + // call to self as log + log.call(deprecate, message) + } + + deprecate._file = file + deprecate._ignored = isignored(namespace) + deprecate._namespace = namespace + deprecate._traced = istraced(namespace) + deprecate._warned = Object.create(null) + + deprecate.function = wrapfunction + deprecate.property = wrapproperty + + return deprecate +} + +/** + * Determine if event emitter has listeners of a given type. + * + * The way to do this check is done three different ways in Node.js >= 0.8 + * so this consolidates them into a minimal set using instance methods. + * + * @param {EventEmitter} emitter + * @param {string} type + * @returns {boolean} + * @private + */ + +function eehaslisteners (emitter, type) { + var count = typeof emitter.listenerCount !== 'function' + ? emitter.listeners(type).length + : emitter.listenerCount(type) + + return count > 0 +} + +/** + * Determine if namespace is ignored. + */ + +function isignored (namespace) { + if (process.noDeprecation) { + // --no-deprecation support + return true + } + + var str = process.env.NO_DEPRECATION || '' + + // namespace ignored + return containsNamespace(str, namespace) +} + +/** + * Determine if namespace is traced. + */ + +function istraced (namespace) { + if (process.traceDeprecation) { + // --trace-deprecation support + return true + } + + var str = process.env.TRACE_DEPRECATION || '' + + // namespace traced + return containsNamespace(str, namespace) +} + +/** + * Display deprecation message. + */ + +function log (message, site) { + var haslisteners = eehaslisteners(process, 'deprecation') + + // abort early if no destination + if (!haslisteners && this._ignored) { + return + } + + var caller + var callFile + var callSite + var depSite + var i = 0 + var seen = false + var stack = getStack() + var file = this._file + + if (site) { + // provided site + depSite = site + callSite = callSiteLocation(stack[1]) + callSite.name = depSite.name + file = callSite[0] + } else { + // get call site + i = 2 + depSite = callSiteLocation(stack[i]) + callSite = depSite + } + + // get caller of deprecated thing in relation to file + for (; i < stack.length; i++) { + caller = callSiteLocation(stack[i]) + callFile = caller[0] + + if (callFile === file) { + seen = true + } else if (callFile === this._file) { + file = this._file + } else if (seen) { + break + } + } + + var key = caller + ? depSite.join(':') + '__' + caller.join(':') + : undefined + + if (key !== undefined && key in this._warned) { + // already warned + return + } + + this._warned[key] = true + + // generate automatic message from call site + var msg = message + if (!msg) { + msg = callSite === depSite || !callSite.name + ? defaultMessage(depSite) + : defaultMessage(callSite) + } + + // emit deprecation if listeners exist + if (haslisteners) { + var err = DeprecationError(this._namespace, msg, stack.slice(i)) + process.emit('deprecation', err) + return + } + + // format and write message + var format = process.stderr.isTTY + ? formatColor + : formatPlain + var output = format.call(this, msg, caller, stack.slice(i)) + process.stderr.write(output + '\n', 'utf8') +} + +/** + * Get call site location as array. + */ + +function callSiteLocation (callSite) { + var file = callSite.getFileName() || '' + var line = callSite.getLineNumber() + var colm = callSite.getColumnNumber() + + if (callSite.isEval()) { + file = callSite.getEvalOrigin() + ', ' + file + } + + var site = [file, line, colm] + + site.callSite = callSite + site.name = callSite.getFunctionName() + + return site +} + +/** + * Generate a default message from the site. + */ + +function defaultMessage (site) { + var callSite = site.callSite + var funcName = site.name + + // make useful anonymous name + if (!funcName) { + funcName = '' + } + + var context = callSite.getThis() + var typeName = context && callSite.getTypeName() + + // ignore useless type name + if (typeName === 'Object') { + typeName = undefined + } + + // make useful type name + if (typeName === 'Function') { + typeName = context.name || typeName + } + + return typeName && callSite.getMethodName() + ? typeName + '.' + funcName + : funcName +} + +/** + * Format deprecation message without color. + */ + +function formatPlain (msg, caller, stack) { + var timestamp = new Date().toUTCString() + + var formatted = timestamp + + ' ' + this._namespace + + ' deprecated ' + msg + + // add stack trace + if (this._traced) { + for (var i = 0; i < stack.length; i++) { + formatted += '\n at ' + stack[i].toString() + } + + return formatted + } + + if (caller) { + formatted += ' at ' + formatLocation(caller) + } + + return formatted +} + +/** + * Format deprecation message with color. + */ + +function formatColor (msg, caller, stack) { + var formatted = '\x1b[36;1m' + this._namespace + '\x1b[22;39m' + // bold cyan + ' \x1b[33;1mdeprecated\x1b[22;39m' + // bold yellow + ' \x1b[0m' + msg + '\x1b[39m' // reset + + // add stack trace + if (this._traced) { + for (var i = 0; i < stack.length; i++) { + formatted += '\n \x1b[36mat ' + stack[i].toString() + '\x1b[39m' // cyan + } + + return formatted + } + + if (caller) { + formatted += ' \x1b[36m' + formatLocation(caller) + '\x1b[39m' // cyan + } + + return formatted +} + +/** + * Format call site location. + */ + +function formatLocation (callSite) { + return relative(basePath, callSite[0]) + + ':' + callSite[1] + + ':' + callSite[2] +} + +/** + * Get the stack as array of call sites. + */ + +function getStack () { + var limit = Error.stackTraceLimit + var obj = {} + var prep = Error.prepareStackTrace + + Error.prepareStackTrace = prepareObjectStackTrace + Error.stackTraceLimit = Math.max(10, limit) + + // capture the stack + Error.captureStackTrace(obj) + + // slice this function off the top + var stack = obj.stack.slice(1) + + Error.prepareStackTrace = prep + Error.stackTraceLimit = limit + + return stack +} + +/** + * Capture call site stack from v8. + */ + +function prepareObjectStackTrace (obj, stack) { + return stack +} + +/** + * Return a wrapped function in a deprecation message. + */ + +function wrapfunction (fn, message) { + if (typeof fn !== 'function') { + throw new TypeError('argument fn must be a function') + } + + var args = createArgumentsString(fn.length) + var stack = getStack() + var site = callSiteLocation(stack[1]) + + site.name = fn.name + + // eslint-disable-next-line no-new-func + var deprecatedfn = new Function('fn', 'log', 'deprecate', 'message', 'site', + '"use strict"\n' + + 'return function (' + args + ') {' + + 'log.call(deprecate, message, site)\n' + + 'return fn.apply(this, arguments)\n' + + '}')(fn, log, this, message, site) + + return deprecatedfn +} + +/** + * Wrap property in a deprecation message. + */ + +function wrapproperty (obj, prop, message) { + if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { + throw new TypeError('argument obj must be object') + } + + var descriptor = Object.getOwnPropertyDescriptor(obj, prop) + + if (!descriptor) { + throw new TypeError('must call property on owner object') + } + + if (!descriptor.configurable) { + throw new TypeError('property must be configurable') + } + + var deprecate = this + var stack = getStack() + var site = callSiteLocation(stack[1]) + + // set site name + site.name = prop + + // convert data descriptor + if ('value' in descriptor) { + descriptor = convertDataDescriptorToAccessor(obj, prop, message) + } + + var get = descriptor.get + var set = descriptor.set + + // wrap getter + if (typeof get === 'function') { + descriptor.get = function getter () { + log.call(deprecate, message, site) + return get.apply(this, arguments) + } + } + + // wrap setter + if (typeof set === 'function') { + descriptor.set = function setter () { + log.call(deprecate, message, site) + return set.apply(this, arguments) + } + } + + Object.defineProperty(obj, prop, descriptor) +} + +/** + * Create DeprecationError for deprecation + */ + +function DeprecationError (namespace, message, stack) { + var error = new Error() + var stackString + + Object.defineProperty(error, 'constructor', { + value: DeprecationError + }) + + Object.defineProperty(error, 'message', { + configurable: true, + enumerable: false, + value: message, + writable: true + }) + + Object.defineProperty(error, 'name', { + enumerable: false, + configurable: true, + value: 'DeprecationError', + writable: true + }) + + Object.defineProperty(error, 'namespace', { + configurable: true, + enumerable: false, + value: namespace, + writable: true + }) + + Object.defineProperty(error, 'stack', { + configurable: true, + enumerable: false, + get: function () { + if (stackString !== undefined) { + return stackString + } + + // prepare stack trace + return (stackString = createStackString.call(this, stack)) + }, + set: function setter (val) { + stackString = val + } + }) + + return error +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/dom-serializer/lib/foreignNames.js": +/*!********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/dom-serializer/lib/foreignNames.js ***! + \********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.attributeNames = exports.elementNames = void 0; +exports.elementNames = new Map([ + ["altglyph", "altGlyph"], + ["altglyphdef", "altGlyphDef"], + ["altglyphitem", "altGlyphItem"], + ["animatecolor", "animateColor"], + ["animatemotion", "animateMotion"], + ["animatetransform", "animateTransform"], + ["clippath", "clipPath"], + ["feblend", "feBlend"], + ["fecolormatrix", "feColorMatrix"], + ["fecomponenttransfer", "feComponentTransfer"], + ["fecomposite", "feComposite"], + ["feconvolvematrix", "feConvolveMatrix"], + ["fediffuselighting", "feDiffuseLighting"], + ["fedisplacementmap", "feDisplacementMap"], + ["fedistantlight", "feDistantLight"], + ["fedropshadow", "feDropShadow"], + ["feflood", "feFlood"], + ["fefunca", "feFuncA"], + ["fefuncb", "feFuncB"], + ["fefuncg", "feFuncG"], + ["fefuncr", "feFuncR"], + ["fegaussianblur", "feGaussianBlur"], + ["feimage", "feImage"], + ["femerge", "feMerge"], + ["femergenode", "feMergeNode"], + ["femorphology", "feMorphology"], + ["feoffset", "feOffset"], + ["fepointlight", "fePointLight"], + ["fespecularlighting", "feSpecularLighting"], + ["fespotlight", "feSpotLight"], + ["fetile", "feTile"], + ["feturbulence", "feTurbulence"], + ["foreignobject", "foreignObject"], + ["glyphref", "glyphRef"], + ["lineargradient", "linearGradient"], + ["radialgradient", "radialGradient"], + ["textpath", "textPath"], +]); +exports.attributeNames = new Map([ + ["definitionurl", "definitionURL"], + ["attributename", "attributeName"], + ["attributetype", "attributeType"], + ["basefrequency", "baseFrequency"], + ["baseprofile", "baseProfile"], + ["calcmode", "calcMode"], + ["clippathunits", "clipPathUnits"], + ["diffuseconstant", "diffuseConstant"], + ["edgemode", "edgeMode"], + ["filterunits", "filterUnits"], + ["glyphref", "glyphRef"], + ["gradienttransform", "gradientTransform"], + ["gradientunits", "gradientUnits"], + ["kernelmatrix", "kernelMatrix"], + ["kernelunitlength", "kernelUnitLength"], + ["keypoints", "keyPoints"], + ["keysplines", "keySplines"], + ["keytimes", "keyTimes"], + ["lengthadjust", "lengthAdjust"], + ["limitingconeangle", "limitingConeAngle"], + ["markerheight", "markerHeight"], + ["markerunits", "markerUnits"], + ["markerwidth", "markerWidth"], + ["maskcontentunits", "maskContentUnits"], + ["maskunits", "maskUnits"], + ["numoctaves", "numOctaves"], + ["pathlength", "pathLength"], + ["patterncontentunits", "patternContentUnits"], + ["patterntransform", "patternTransform"], + ["patternunits", "patternUnits"], + ["pointsatx", "pointsAtX"], + ["pointsaty", "pointsAtY"], + ["pointsatz", "pointsAtZ"], + ["preservealpha", "preserveAlpha"], + ["preserveaspectratio", "preserveAspectRatio"], + ["primitiveunits", "primitiveUnits"], + ["refx", "refX"], + ["refy", "refY"], + ["repeatcount", "repeatCount"], + ["repeatdur", "repeatDur"], + ["requiredextensions", "requiredExtensions"], + ["requiredfeatures", "requiredFeatures"], + ["specularconstant", "specularConstant"], + ["specularexponent", "specularExponent"], + ["spreadmethod", "spreadMethod"], + ["startoffset", "startOffset"], + ["stddeviation", "stdDeviation"], + ["stitchtiles", "stitchTiles"], + ["surfacescale", "surfaceScale"], + ["systemlanguage", "systemLanguage"], + ["tablevalues", "tableValues"], + ["targetx", "targetX"], + ["targety", "targetY"], + ["textlength", "textLength"], + ["viewbox", "viewBox"], + ["viewtarget", "viewTarget"], + ["xchannelselector", "xChannelSelector"], + ["ychannelselector", "yChannelSelector"], + ["zoomandpan", "zoomAndPan"], +]); + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/dom-serializer/lib/index.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/dom-serializer/lib/index.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +/* + * Module dependencies + */ +var ElementType = __importStar(__webpack_require__(/*! domelementtype */ "./build/cht-core-4-6/api/node_modules/domelementtype/lib/index.js")); +var entities_1 = __webpack_require__(/*! entities */ "./build/cht-core-4-6/api/node_modules/entities/lib/index.js"); +/** + * Mixed-case SVG and MathML tags & attributes + * recognized by the HTML parser. + * + * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign + */ +var foreignNames_1 = __webpack_require__(/*! ./foreignNames */ "./build/cht-core-4-6/api/node_modules/dom-serializer/lib/foreignNames.js"); +var unencodedElements = new Set([ + "style", + "script", + "xmp", + "iframe", + "noembed", + "noframes", + "plaintext", + "noscript", +]); +/** + * Format attributes + */ +function formatAttributes(attributes, opts) { + if (!attributes) + return; + return Object.keys(attributes) + .map(function (key) { + var _a, _b; + var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : ""; + if (opts.xmlMode === "foreign") { + /* Fix up mixed-case attribute names */ + key = (_b = foreignNames_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key; + } + if (!opts.emptyAttrs && !opts.xmlMode && value === "") { + return key; + } + return key + "=\"" + (opts.decodeEntities !== false + ? entities_1.encodeXML(value) + : value.replace(/"/g, """)) + "\""; + }) + .join(" "); +} +/** + * Self-enclosing tags + */ +var singleTag = new Set([ + "area", + "base", + "basefont", + "br", + "col", + "command", + "embed", + "frame", + "hr", + "img", + "input", + "isindex", + "keygen", + "link", + "meta", + "param", + "source", + "track", + "wbr", +]); +/** + * Renders a DOM node or an array of DOM nodes to a string. + * + * Can be thought of as the equivalent of the `outerHTML` of the passed node(s). + * + * @param node Node to be rendered. + * @param options Changes serialization behavior + */ +function render(node, options) { + if (options === void 0) { options = {}; } + var nodes = "length" in node ? node : [node]; + var output = ""; + for (var i = 0; i < nodes.length; i++) { + output += renderNode(nodes[i], options); + } + return output; +} +exports.default = render; +function renderNode(node, options) { + switch (node.type) { + case ElementType.Root: + return render(node.children, options); + case ElementType.Directive: + case ElementType.Doctype: + return renderDirective(node); + case ElementType.Comment: + return renderComment(node); + case ElementType.CDATA: + return renderCdata(node); + case ElementType.Script: + case ElementType.Style: + case ElementType.Tag: + return renderTag(node, options); + case ElementType.Text: + return renderText(node, options); + } +} +var foreignModeIntegrationPoints = new Set([ + "mi", + "mo", + "mn", + "ms", + "mtext", + "annotation-xml", + "foreignObject", + "desc", + "title", +]); +var foreignElements = new Set(["svg", "math"]); +function renderTag(elem, opts) { + var _a; + // Handle SVG / MathML in HTML + if (opts.xmlMode === "foreign") { + /* Fix up mixed-case element names */ + elem.name = (_a = foreignNames_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name; + /* Exit foreign mode at integration points */ + if (elem.parent && + foreignModeIntegrationPoints.has(elem.parent.name)) { + opts = __assign(__assign({}, opts), { xmlMode: false }); + } + } + if (!opts.xmlMode && foreignElements.has(elem.name)) { + opts = __assign(__assign({}, opts), { xmlMode: "foreign" }); + } + var tag = "<" + elem.name; + var attribs = formatAttributes(elem.attribs, opts); + if (attribs) { + tag += " " + attribs; + } + if (elem.children.length === 0 && + (opts.xmlMode + ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags + opts.selfClosingTags !== false + : // User explicitly asked for self-closing tags, even in HTML mode + opts.selfClosingTags && singleTag.has(elem.name))) { + if (!opts.xmlMode) + tag += " "; + tag += "/>"; + } + else { + tag += ">"; + if (elem.children.length > 0) { + tag += render(elem.children, opts); + } + if (opts.xmlMode || !singleTag.has(elem.name)) { + tag += ""; + } + } + return tag; +} +function renderDirective(elem) { + return "<" + elem.data + ">"; +} +function renderText(elem, opts) { + var data = elem.data || ""; + // If entities weren't decoded, no need to encode them back + if (opts.decodeEntities !== false && + !(!opts.xmlMode && + elem.parent && + unencodedElements.has(elem.parent.name))) { + data = entities_1.encodeXML(data); + } + return data; +} +function renderCdata(elem) { + return ""; +} +function renderComment(elem) { + return ""; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/domelementtype/lib/index.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/domelementtype/lib/index.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0; +/** Types of elements found in htmlparser2's DOM */ +var ElementType; +(function (ElementType) { + /** Type for the root element of a document */ + ElementType["Root"] = "root"; + /** Type for Text */ + ElementType["Text"] = "text"; + /** Type for */ + ElementType["Directive"] = "directive"; + /** Type for */ + ElementType["Comment"] = "comment"; + /** Type for or ... + const closeMarkup = ``; + const index = (() => { + if (options.lowerCaseTagName) { + return data.toLocaleLowerCase().indexOf(closeMarkup, kMarkupPattern.lastIndex); + } + return data.indexOf(closeMarkup, kMarkupPattern.lastIndex); + })(); + if (element_should_be_ignore(match[2])) { + let text; + if (index === -1) { + // there is no matching ending for the text element. + text = data.substr(kMarkupPattern.lastIndex); + } + else { + text = data.substring(kMarkupPattern.lastIndex, index); + } + if (text.length > 0) { + currentParent.appendChild(new _text__WEBPACK_IMPORTED_MODULE_4__.default(text, currentParent)); + } + } + if (index === -1) { + lastTextPos = kMarkupPattern.lastIndex = data.length + 1; + } + else { + lastTextPos = kMarkupPattern.lastIndex = index + closeMarkup.length; + match[1] = 'true'; + } + } + } + if (match[1] || match[4] || kSelfClosingElements[match[2]]) { + // or
                  etc. + while (true) { + if (currentParent.rawTagName === match[2]) { + stack.pop(); + currentParent = (0,_back__WEBPACK_IMPORTED_MODULE_6__.default)(stack); + break; + } + else { + const tagName = currentParent.tagName; + // Trying to close current tag, and move on + if (kElementsClosedByClosing[tagName]) { + if (kElementsClosedByClosing[tagName][match[2]]) { + stack.pop(); + currentParent = (0,_back__WEBPACK_IMPORTED_MODULE_6__.default)(stack); + continue; + } + } + // Use aggressive strategy to handle unmatching markups. + break; + } + } + } + } + return stack; +} +/** + * Parses HTML and returns a root element + * Parse a chuck of HTML source. + */ +function parse(data, options = { lowerCaseTagName: false, comment: false }) { + const stack = base_parse(data, options); + const [root] = stack; + while (stack.length > 1) { + // Handle each error elements. + const last = stack.pop(); + const oneBefore = (0,_back__WEBPACK_IMPORTED_MODULE_6__.default)(stack); + if (last.parentNode && last.parentNode.parentNode) { + if (last.parentNode === oneBefore && last.tagName === oneBefore.tagName) { + // Pair error case

                  handle : Fixes to

                  + oneBefore.removeChild(last); + last.childNodes.forEach((child) => { + oneBefore.parentNode.appendChild(child); + }); + stack.pop(); + } + else { + // Single error

                  handle: Just removes

                  + oneBefore.removeChild(last); + last.childNodes.forEach((child) => { + oneBefore.appendChild(child); + }); + } + } + else { + // If it's final element just skip. + } + } + // response.childNodes.forEach((node) => { + // if (node instanceof HTMLElement) { + // node.parentNode = null; + // } + // }); + return root; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/node.js": +/*!*************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/node.js ***! + \*************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ Node) +/* harmony export */ }); +/** + * Node Class as base class for TextNode and HTMLElement. + */ +class Node { + constructor(parentNode = null) { + this.parentNode = parentNode; + this.childNodes = []; + } + get innerText() { + return this.rawText; + } + get textContent() { + return this.rawText; + } + set textContent(val) { + this.rawText = val; + } +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/text.js": +/*!*************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/text.js ***! + \*************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ TextNode) +/* harmony export */ }); +/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./type */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/type.js"); +/* harmony import */ var _node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/node.js"); + + +/** + * TextNode to contain a text element in DOM tree. + * @param {string} value [description] + */ +class TextNode extends _node__WEBPACK_IMPORTED_MODULE_0__.default { + constructor(rawText, parentNode) { + super(parentNode); + this.rawText = rawText; + /** + * Node Type declaration. + * @type {Number} + */ + this.nodeType = _type__WEBPACK_IMPORTED_MODULE_1__.default.TEXT_NODE; + } + /** + * Returns text with all whitespace trimmed except single leading/trailing non-breaking space + */ + get trimmedText() { + if (this._trimmedText !== undefined) + return this._trimmedText; + const text = this.rawText; + let i = 0; + let startPos; + let endPos; + while (i >= 0 && i < text.length) { + if (/\S/.test(text[i])) { + if (startPos === undefined) { + startPos = i; + i = text.length; + } + else { + endPos = i; + i = void 0; + } + } + if (startPos === undefined) + i++; + else + i--; + } + if (startPos === undefined) + startPos = 0; + if (endPos === undefined) + endPos = text.length - 1; + const hasLeadingSpace = startPos > 0 && /[^\S\r\n]/.test(text[startPos - 1]); + const hasTrailingSpace = endPos < (text.length - 1) && /[^\S\r\n]/.test(text[endPos + 1]); + this._trimmedText = (hasLeadingSpace ? ' ' : '') + text.slice(startPos, endPos + 1) + (hasTrailingSpace ? ' ' : ''); + return this._trimmedText; + } + /** + * Get unescaped text value of current node and its children. + * @return {string} text content + */ + get text() { + return this.rawText; + } + /** + * Detect if the node contains only white space. + * @return {bool} + */ + get isWhitespace() { + return /^(\s| )*$/.test(this.rawText); + } + toString() { + return this.text; + } +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/type.js": +/*!*************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/type.js ***! + \*************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +var NodeType; +(function (NodeType) { + NodeType[NodeType["ELEMENT_NODE"] = 1] = "ELEMENT_NODE"; + NodeType[NodeType["TEXT_NODE"] = 3] = "TEXT_NODE"; + NodeType[NodeType["COMMENT_NODE"] = 8] = "COMMENT_NODE"; +})(NodeType || (NodeType = {})); +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NodeType); + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/valid.js": +/*!********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/valid.js ***! + \********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ valid) +/* harmony export */ }); +/* harmony import */ var _nodes_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./nodes/html */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/html.js"); + +/** + * Parses HTML and returns a root element + * Parse a chuck of HTML source. + */ +function valid(data, options = { lowerCaseTagName: false, comment: false }) { + const stack = (0,_nodes_html__WEBPACK_IMPORTED_MODULE_0__.base_parse)(data, options); + return Boolean(stack.length === 1); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/nth-check/lib/compile.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/nth-check/lib/compile.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.generate = exports.compile = void 0; +var boolbase_1 = __importDefault(__webpack_require__(/*! boolbase */ "./build/cht-core-4-6/api/node_modules/boolbase/index.js")); +/** + * Returns a function that checks if an elements index matches the given rule + * highly optimized to return the fastest solution. + * + * @param parsed A tuple [a, b], as returned by `parse`. + * @returns A highly optimized function that returns whether an index matches the nth-check. + * @example + * + * ```js + * const check = nthCheck.compile([2, 3]); + * + * check(0); // `false` + * check(1); // `false` + * check(2); // `true` + * check(3); // `false` + * check(4); // `true` + * check(5); // `false` + * check(6); // `true` + * ``` + */ +function compile(parsed) { + var a = parsed[0]; + // Subtract 1 from `b`, to convert from one- to zero-indexed. + var b = parsed[1] - 1; + /* + * When `b <= 0`, `a * n` won't be lead to any matches for `a < 0`. + * Besides, the specification states that no elements are + * matched when `a` and `b` are 0. + * + * `b < 0` here as we subtracted 1 from `b` above. + */ + if (b < 0 && a <= 0) + return boolbase_1.default.falseFunc; + // When `a` is in the range -1..1, it matches any element (so only `b` is checked). + if (a === -1) + return function (index) { return index <= b; }; + if (a === 0) + return function (index) { return index === b; }; + // When `b <= 0` and `a === 1`, they match any element. + if (a === 1) + return b < 0 ? boolbase_1.default.trueFunc : function (index) { return index >= b; }; + /* + * Otherwise, modulo can be used to check if there is a match. + * + * Modulo doesn't care about the sign, so let's use `a`s absolute value. + */ + var absA = Math.abs(a); + // Get `b mod a`, + a if this is negative. + var bMod = ((b % absA) + absA) % absA; + return a > 1 + ? function (index) { return index >= b && index % absA === bMod; } + : function (index) { return index <= b && index % absA === bMod; }; +} +exports.compile = compile; +/** + * Returns a function that produces a monotonously increasing sequence of indices. + * + * If the sequence has an end, the returned function will return `null` after + * the last index in the sequence. + * + * @param parsed A tuple [a, b], as returned by `parse`. + * @returns A function that produces a sequence of indices. + * @example Always increasing (2n+3) + * + * ```js + * const gen = nthCheck.generate([2, 3]) + * + * gen() // `1` + * gen() // `3` + * gen() // `5` + * gen() // `8` + * gen() // `11` + * ``` + * + * @example With end value (-2n+10) + * + * ```js + * + * const gen = nthCheck.generate([-2, 5]); + * + * gen() // 0 + * gen() // 2 + * gen() // 4 + * gen() // null + * ``` + */ +function generate(parsed) { + var a = parsed[0]; + // Subtract 1 from `b`, to convert from one- to zero-indexed. + var b = parsed[1] - 1; + var n = 0; + // Make sure to always return an increasing sequence + if (a < 0) { + var aPos_1 = -a; + // Get `b mod a` + var minValue_1 = ((b % aPos_1) + aPos_1) % aPos_1; + return function () { + var val = minValue_1 + aPos_1 * n++; + return val > b ? null : val; + }; + } + if (a === 0) + return b < 0 + ? // There are no result — always return `null` + function () { return null; } + : // Return `b` exactly once + function () { return (n++ === 0 ? b : null); }; + if (b < 0) { + b += a * Math.ceil(-b / a); + } + return function () { return a * n++ + b; }; +} +exports.generate = generate; +//# sourceMappingURL=compile.js.map + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/nth-check/lib/index.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/nth-check/lib/index.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.sequence = exports.generate = exports.compile = exports.parse = void 0; +var parse_js_1 = __webpack_require__(/*! ./parse.js */ "./build/cht-core-4-6/api/node_modules/nth-check/lib/parse.js"); +Object.defineProperty(exports, "parse", ({ enumerable: true, get: function () { return parse_js_1.parse; } })); +var compile_js_1 = __webpack_require__(/*! ./compile.js */ "./build/cht-core-4-6/api/node_modules/nth-check/lib/compile.js"); +Object.defineProperty(exports, "compile", ({ enumerable: true, get: function () { return compile_js_1.compile; } })); +Object.defineProperty(exports, "generate", ({ enumerable: true, get: function () { return compile_js_1.generate; } })); +/** + * Parses and compiles a formula to a highly optimized function. + * Combination of {@link parse} and {@link compile}. + * + * If the formula doesn't match any elements, + * it returns [`boolbase`](https://github.com/fb55/boolbase)'s `falseFunc`. + * Otherwise, a function accepting an _index_ is returned, which returns + * whether or not the passed _index_ matches the formula. + * + * Note: The nth-rule starts counting at `1`, the returned function at `0`. + * + * @param formula The formula to compile. + * @example + * const check = nthCheck("2n+3"); + * + * check(0); // `false` + * check(1); // `false` + * check(2); // `true` + * check(3); // `false` + * check(4); // `true` + * check(5); // `false` + * check(6); // `true` + */ +function nthCheck(formula) { + return (0, compile_js_1.compile)((0, parse_js_1.parse)(formula)); +} +exports.default = nthCheck; +/** + * Parses and compiles a formula to a generator that produces a sequence of indices. + * Combination of {@link parse} and {@link generate}. + * + * @param formula The formula to compile. + * @returns A function that produces a sequence of indices. + * @example Always increasing + * + * ```js + * const gen = nthCheck.sequence('2n+3') + * + * gen() // `1` + * gen() // `3` + * gen() // `5` + * gen() // `8` + * gen() // `11` + * ``` + * + * @example With end value + * + * ```js + * + * const gen = nthCheck.sequence('-2n+5'); + * + * gen() // 0 + * gen() // 2 + * gen() // 4 + * gen() // null + * ``` + */ +function sequence(formula) { + return (0, compile_js_1.generate)((0, parse_js_1.parse)(formula)); +} +exports.sequence = sequence; +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/nth-check/lib/parse.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/nth-check/lib/parse.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +// Following http://www.w3.org/TR/css3-selectors/#nth-child-pseudo +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.parse = void 0; +// Whitespace as per https://www.w3.org/TR/selectors-3/#lex is " \t\r\n\f" +var whitespace = new Set([9, 10, 12, 13, 32]); +var ZERO = "0".charCodeAt(0); +var NINE = "9".charCodeAt(0); +/** + * Parses an expression. + * + * @throws An `Error` if parsing fails. + * @returns An array containing the integer step size and the integer offset of the nth rule. + * @example nthCheck.parse("2n+3"); // returns [2, 3] + */ +function parse(formula) { + formula = formula.trim().toLowerCase(); + if (formula === "even") { + return [2, 0]; + } + else if (formula === "odd") { + return [2, 1]; + } + // Parse [ ['-'|'+']? INTEGER? {N} [ S* ['-'|'+'] S* INTEGER ]? + var idx = 0; + var a = 0; + var sign = readSign(); + var number = readNumber(); + if (idx < formula.length && formula.charAt(idx) === "n") { + idx++; + a = sign * (number !== null && number !== void 0 ? number : 1); + skipWhitespace(); + if (idx < formula.length) { + sign = readSign(); + skipWhitespace(); + number = readNumber(); + } + else { + sign = number = 0; + } + } + // Throw if there is anything else + if (number === null || idx < formula.length) { + throw new Error("n-th rule couldn't be parsed ('".concat(formula, "')")); + } + return [a, sign * number]; + function readSign() { + if (formula.charAt(idx) === "-") { + idx++; + return -1; + } + if (formula.charAt(idx) === "+") { + idx++; + } + return 1; + } + function readNumber() { + var start = idx; + var value = 0; + while (idx < formula.length && + formula.charCodeAt(idx) >= ZERO && + formula.charCodeAt(idx) <= NINE) { + value = value * 10 + (formula.charCodeAt(idx) - ZERO); + idx++; + } + // Return `null` if we didn't read anything. + return idx === start ? null : value; + } + function skipWhitespace() { + while (idx < formula.length && + whitespace.has(formula.charCodeAt(idx))) { + idx++; + } + } +} +exports.parse = parse; +//# sourceMappingURL=parse.js.map + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/on-finished/index.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/on-finished/index.js ***! + \******************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/*! + * on-finished + * Copyright(c) 2013 Jonathan Ong + * Copyright(c) 2014 Douglas Christopher Wilson + * MIT Licensed + */ + + + +/** + * Module exports. + * @public + */ + +module.exports = onFinished +module.exports.isFinished = isFinished + +/** + * Module dependencies. + * @private + */ + +var first = __webpack_require__(/*! ee-first */ "./build/cht-core-4-6/api/node_modules/ee-first/index.js") + +/** + * Variables. + * @private + */ + +/* istanbul ignore next */ +var defer = typeof setImmediate === 'function' + ? setImmediate + : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) } + +/** + * Invoke callback when the response has finished, useful for + * cleaning up resources afterwards. + * + * @param {object} msg + * @param {function} listener + * @return {object} + * @public + */ + +function onFinished(msg, listener) { + if (isFinished(msg) !== false) { + defer(listener, null, msg) + return msg + } + + // attach the listener to the message + attachListener(msg, listener) + + return msg +} + +/** + * Determine if message is already finished. + * + * @param {object} msg + * @return {boolean} + * @public + */ + +function isFinished(msg) { + var socket = msg.socket + + if (typeof msg.finished === 'boolean') { + // OutgoingMessage + return Boolean(msg.finished || (socket && !socket.writable)) + } + + if (typeof msg.complete === 'boolean') { + // IncomingMessage + return Boolean(msg.upgrade || !socket || !socket.readable || (msg.complete && !msg.readable)) + } + + // don't know + return undefined +} + +/** + * Attach a finished listener to the message. + * + * @param {object} msg + * @param {function} callback + * @private + */ + +function attachFinishedListener(msg, callback) { + var eeMsg + var eeSocket + var finished = false + + function onFinish(error) { + eeMsg.cancel() + eeSocket.cancel() + + finished = true + callback(error) + } + + // finished on first message event + eeMsg = eeSocket = first([[msg, 'end', 'finish']], onFinish) + + function onSocket(socket) { + // remove listener + msg.removeListener('socket', onSocket) + + if (finished) return + if (eeMsg !== eeSocket) return + + // finished on first socket event + eeSocket = first([[socket, 'error', 'close']], onFinish) + } + + if (msg.socket) { + // socket already assigned + onSocket(msg.socket) + return + } + + // wait for socket to be assigned + msg.on('socket', onSocket) + + if (msg.socket === undefined) { + // node.js 0.8 patch + patchAssignSocket(msg, onSocket) + } +} + +/** + * Attach the listener to the message. + * + * @param {object} msg + * @return {function} + * @private + */ + +function attachListener(msg, listener) { + var attached = msg.__onFinished + + // create a private single listener with queue + if (!attached || !attached.queue) { + attached = msg.__onFinished = createListener(msg) + attachFinishedListener(msg, attached) + } + + attached.queue.push(listener) +} + +/** + * Create listener on message. + * + * @param {object} msg + * @return {function} + * @private + */ + +function createListener(msg) { + function listener(err) { + if (msg.__onFinished === listener) msg.__onFinished = null + if (!listener.queue) return + + var queue = listener.queue + listener.queue = null + + for (var i = 0; i < queue.length; i++) { + queue[i](err, msg) + } + } + + listener.queue = [] + + return listener +} + +/** + * Patch ServerResponse.prototype.assignSocket for node.js 0.8. + * + * @param {ServerResponse} res + * @param {function} callback + * @private + */ + +function patchAssignSocket(res, callback) { + var assignSocket = res.assignSocket + + if (typeof assignSocket !== 'function') return + + // res.on('socket', callback) is broken in 0.8 + res.assignSocket = function _assignSocket(socket) { + assignSocket.call(this, socket) + callback(socket) + } +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/on-headers/index.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/on-headers/index.js ***! + \*****************************************************************/ +/***/ ((module) => { + +"use strict"; +/*! + * on-headers + * Copyright(c) 2014 Douglas Christopher Wilson + * MIT Licensed + */ + + + +/** + * Module exports. + * @public + */ + +module.exports = onHeaders + +/** + * Create a replacement writeHead method. + * + * @param {function} prevWriteHead + * @param {function} listener + * @private + */ + +function createWriteHead (prevWriteHead, listener) { + var fired = false + + // return function with core name and argument list + return function writeHead (statusCode) { + // set headers from arguments + var args = setWriteHeadHeaders.apply(this, arguments) + + // fire listener + if (!fired) { + fired = true + listener.call(this) + + // pass-along an updated status code + if (typeof args[0] === 'number' && this.statusCode !== args[0]) { + args[0] = this.statusCode + args.length = 1 + } + } + + return prevWriteHead.apply(this, args) + } +} + +/** + * Execute a listener when a response is about to write headers. + * + * @param {object} res + * @return {function} listener + * @public + */ + +function onHeaders (res, listener) { + if (!res) { + throw new TypeError('argument res is required') + } + + if (typeof listener !== 'function') { + throw new TypeError('argument listener must be a function') + } + + res.writeHead = createWriteHead(res.writeHead, listener) +} + +/** + * Set headers contained in array on the response object. + * + * @param {object} res + * @param {array} headers + * @private + */ + +function setHeadersFromArray (res, headers) { + for (var i = 0; i < headers.length; i++) { + res.setHeader(headers[i][0], headers[i][1]) + } +} + +/** + * Set headers contained in object on the response object. + * + * @param {object} res + * @param {object} headers + * @private + */ + +function setHeadersFromObject (res, headers) { + var keys = Object.keys(headers) + for (var i = 0; i < keys.length; i++) { + var k = keys[i] + if (k) res.setHeader(k, headers[k]) + } +} + +/** + * Set headers and other properties on the response object. + * + * @param {number} statusCode + * @private + */ + +function setWriteHeadHeaders (statusCode) { + var length = arguments.length + var headerIndex = length > 1 && typeof arguments[1] === 'string' + ? 2 + : 1 + + var headers = length >= headerIndex + 1 + ? arguments[headerIndex] + : undefined + + this.statusCode = statusCode + + if (Array.isArray(headers)) { + // handle array case + setHeadersFromArray(this, headers) + } else if (headers) { + // handle object case + setHeadersFromObject(this, headers) + } + + // copy leading arguments + var args = new Array(Math.min(length, headerIndex)) + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i] + } + + return args +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/one-time/index.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/one-time/index.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var name = __webpack_require__(/*! fn.name */ "./build/cht-core-4-6/api/node_modules/fn.name/index.js"); + +/** + * Wrap callbacks to prevent double execution. + * + * @param {Function} fn Function that should only be called once. + * @returns {Function} A wrapped callback which prevents multiple executions. + * @public + */ +module.exports = function one(fn) { + var called = 0 + , value; + + /** + * The function that prevents double execution. + * + * @private + */ + function onetime() { + if (called) return value; + + called = 1; + value = fn.apply(this, arguments); + fn = null; + + return value; + } + + // + // To make debugging more easy we want to use the name of the supplied + // function. So when you look at the functions that are assigned to event + // listeners you don't see a load of `onetime` functions but actually the + // names of the functions that this module will call. + // + // NOTE: We cannot override the `name` property, as that is `readOnly` + // property, so displayName will have to do. + // + onetime.displayName = name(fn); + return onetime; +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/safe-buffer/index.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/safe-buffer/index.js ***! + \******************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +/* eslint-disable node/no-deprecated-api */ +var buffer = __webpack_require__(/*! buffer */ "buffer") +var Buffer = buffer.Buffer + +// alternative to using Object.keys for old browsers +function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key] + } +} +if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer +} else { + // Copy properties from require('buffer') + copyProps(buffer, exports) + exports.Buffer = SafeBuffer +} + +function SafeBuffer (arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) +} + +// Copy static methods from Buffer +copyProps(Buffer, SafeBuffer) + +SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) +} + +SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + } else { + buf.fill(0) + } + return buf +} + +SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) +} + +SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/safe-stable-stringify/index.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/safe-stable-stringify/index.js ***! + \****************************************************************************/ +/***/ ((module, exports) => { + +"use strict"; + + +const { hasOwnProperty } = Object.prototype + +const stringify = configure() + +// @ts-expect-error +stringify.configure = configure +// @ts-expect-error +stringify.stringify = stringify + +// @ts-expect-error +stringify.default = stringify + +// @ts-expect-error used for named export +exports.stringify = stringify +// @ts-expect-error used for named export +exports.configure = configure + +module.exports = stringify + +// eslint-disable-next-line no-control-regex +const strEscapeSequencesRegExp = /[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/ +const strEscapeSequencesReplacer = new RegExp(strEscapeSequencesRegExp, 'g') + +// Escaped special characters. Use empty strings to fill up unused entries. +const meta = [ + '\\u0000', '\\u0001', '\\u0002', '\\u0003', '\\u0004', + '\\u0005', '\\u0006', '\\u0007', '\\b', '\\t', + '\\n', '\\u000b', '\\f', '\\r', '\\u000e', + '\\u000f', '\\u0010', '\\u0011', '\\u0012', '\\u0013', + '\\u0014', '\\u0015', '\\u0016', '\\u0017', '\\u0018', + '\\u0019', '\\u001a', '\\u001b', '\\u001c', '\\u001d', + '\\u001e', '\\u001f', '', '', '\\"', + '', '', '', '', '', '', '', '', '', '', + '', '', '', '', '', '', '', '', '', '', + '', '', '', '', '', '', '', '', '', '', + '', '', '', '', '', '', '', '', '', '', + '', '', '', '', '', '', '', '', '', '', + '', '', '', '', '', '', '', '\\\\' +] + +function escapeFn (str) { + if (str.length === 2) { + const charCode = str.charCodeAt(1) + return `${str[0]}\\u${charCode.toString(16)}` + } + const charCode = str.charCodeAt(0) + return meta.length > charCode + ? meta[charCode] + : `\\u${charCode.toString(16)}` +} + +// Escape C0 control characters, double quotes, the backslash and every code +// unit with a numeric value in the inclusive range 0xD800 to 0xDFFF. +function strEscape (str) { + // Some magic numbers that worked out fine while benchmarking with v8 8.0 + if (str.length < 5000 && !strEscapeSequencesRegExp.test(str)) { + return str + } + if (str.length > 100) { + return str.replace(strEscapeSequencesReplacer, escapeFn) + } + let result = '' + let last = 0 + for (let i = 0; i < str.length; i++) { + const point = str.charCodeAt(i) + if (point === 34 || point === 92 || point < 32) { + result += `${str.slice(last, i)}${meta[point]}` + last = i + 1 + } else if (point >= 0xd800 && point <= 0xdfff) { + if (point <= 0xdbff && i + 1 < str.length) { + const nextPoint = str.charCodeAt(i + 1) + if (nextPoint >= 0xdc00 && nextPoint <= 0xdfff) { + i++ + continue + } + } + result += `${str.slice(last, i)}\\u${point.toString(16)}` + last = i + 1 + } + } + result += str.slice(last) + return result +} + +function insertSort (array) { + // Insertion sort is very efficient for small input sizes but it has a bad + // worst case complexity. Thus, use native array sort for bigger values. + if (array.length > 2e2) { + return array.sort() + } + for (let i = 1; i < array.length; i++) { + const currentValue = array[i] + let position = i + while (position !== 0 && array[position - 1] > currentValue) { + array[position] = array[position - 1] + position-- + } + array[position] = currentValue + } + return array +} + +const typedArrayPrototypeGetSymbolToStringTag = + Object.getOwnPropertyDescriptor( + Object.getPrototypeOf( + Object.getPrototypeOf( + new Int8Array() + ) + ), + Symbol.toStringTag + ).get + +function isTypedArrayWithEntries (value) { + return typedArrayPrototypeGetSymbolToStringTag.call(value) !== undefined && value.length !== 0 +} + +function stringifyTypedArray (array, separator, maximumBreadth) { + if (array.length < maximumBreadth) { + maximumBreadth = array.length + } + const whitespace = separator === ',' ? '' : ' ' + let res = `"0":${whitespace}${array[0]}` + for (let i = 1; i < maximumBreadth; i++) { + res += `${separator}"${i}":${whitespace}${array[i]}` + } + return res +} + +function getCircularValueOption (options) { + if (hasOwnProperty.call(options, 'circularValue')) { + const circularValue = options.circularValue + if (typeof circularValue === 'string') { + return `"${circularValue}"` + } + if (circularValue == null) { + return circularValue + } + if (circularValue === Error || circularValue === TypeError) { + return { + toString () { + throw new TypeError('Converting circular structure to JSON') + } + } + } + throw new TypeError('The "circularValue" argument must be of type string or the value null or undefined') + } + return '"[Circular]"' +} + +function getBooleanOption (options, key) { + let value + if (hasOwnProperty.call(options, key)) { + value = options[key] + if (typeof value !== 'boolean') { + throw new TypeError(`The "${key}" argument must be of type boolean`) + } + } + return value === undefined ? true : value +} + +function getPositiveIntegerOption (options, key) { + let value + if (hasOwnProperty.call(options, key)) { + value = options[key] + if (typeof value !== 'number') { + throw new TypeError(`The "${key}" argument must be of type number`) + } + if (!Number.isInteger(value)) { + throw new TypeError(`The "${key}" argument must be an integer`) + } + if (value < 1) { + throw new RangeError(`The "${key}" argument must be >= 1`) + } + } + return value === undefined ? Infinity : value +} + +function getItemCount (number) { + if (number === 1) { + return '1 item' + } + return `${number} items` +} + +function getUniqueReplacerSet (replacerArray) { + const replacerSet = new Set() + for (const value of replacerArray) { + if (typeof value === 'string' || typeof value === 'number') { + replacerSet.add(String(value)) + } + } + return replacerSet +} + +function getStrictOption (options) { + if (hasOwnProperty.call(options, 'strict')) { + const value = options.strict + if (typeof value !== 'boolean') { + throw new TypeError('The "strict" argument must be of type boolean') + } + if (value) { + return (value) => { + let message = `Object can not safely be stringified. Received type ${typeof value}` + if (typeof value !== 'function') message += ` (${value.toString()})` + throw new Error(message) + } + } + } +} + +function configure (options) { + options = { ...options } + const fail = getStrictOption(options) + if (fail) { + if (options.bigint === undefined) { + options.bigint = false + } + if (!('circularValue' in options)) { + options.circularValue = Error + } + } + const circularValue = getCircularValueOption(options) + const bigint = getBooleanOption(options, 'bigint') + const deterministic = getBooleanOption(options, 'deterministic') + const maximumDepth = getPositiveIntegerOption(options, 'maximumDepth') + const maximumBreadth = getPositiveIntegerOption(options, 'maximumBreadth') + + function stringifyFnReplacer (key, parent, stack, replacer, spacer, indentation) { + let value = parent[key] + + if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') { + value = value.toJSON(key) + } + value = replacer.call(parent, key, value) + + switch (typeof value) { + case 'string': + return `"${strEscape(value)}"` + case 'object': { + if (value === null) { + return 'null' + } + if (stack.indexOf(value) !== -1) { + return circularValue + } + + let res = '' + let join = ',' + const originalIndentation = indentation + + if (Array.isArray(value)) { + if (value.length === 0) { + return '[]' + } + if (maximumDepth < stack.length + 1) { + return '"[Array]"' + } + stack.push(value) + if (spacer !== '') { + indentation += spacer + res += `\n${indentation}` + join = `,\n${indentation}` + } + const maximumValuesToStringify = Math.min(value.length, maximumBreadth) + let i = 0 + for (; i < maximumValuesToStringify - 1; i++) { + const tmp = stringifyFnReplacer(i, value, stack, replacer, spacer, indentation) + res += tmp !== undefined ? tmp : 'null' + res += join + } + const tmp = stringifyFnReplacer(i, value, stack, replacer, spacer, indentation) + res += tmp !== undefined ? tmp : 'null' + if (value.length - 1 > maximumBreadth) { + const removedKeys = value.length - maximumBreadth - 1 + res += `${join}"... ${getItemCount(removedKeys)} not stringified"` + } + if (spacer !== '') { + res += `\n${originalIndentation}` + } + stack.pop() + return `[${res}]` + } + + let keys = Object.keys(value) + const keyLength = keys.length + if (keyLength === 0) { + return '{}' + } + if (maximumDepth < stack.length + 1) { + return '"[Object]"' + } + let whitespace = '' + let separator = '' + if (spacer !== '') { + indentation += spacer + join = `,\n${indentation}` + whitespace = ' ' + } + let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth) + if (isTypedArrayWithEntries(value)) { + res += stringifyTypedArray(value, join, maximumBreadth) + keys = keys.slice(value.length) + maximumPropertiesToStringify -= value.length + separator = join + } + if (deterministic) { + keys = insertSort(keys) + } + stack.push(value) + for (let i = 0; i < maximumPropertiesToStringify; i++) { + const key = keys[i] + const tmp = stringifyFnReplacer(key, value, stack, replacer, spacer, indentation) + if (tmp !== undefined) { + res += `${separator}"${strEscape(key)}":${whitespace}${tmp}` + separator = join + } + } + if (keyLength > maximumBreadth) { + const removedKeys = keyLength - maximumBreadth + res += `${separator}"...":${whitespace}"${getItemCount(removedKeys)} not stringified"` + separator = join + } + if (spacer !== '' && separator.length > 1) { + res = `\n${indentation}${res}\n${originalIndentation}` + } + stack.pop() + return `{${res}}` + } + case 'number': + return isFinite(value) ? String(value) : fail ? fail(value) : 'null' + case 'boolean': + return value === true ? 'true' : 'false' + case 'undefined': + return undefined + case 'bigint': + if (bigint) { + return String(value) + } + // fallthrough + default: + return fail ? fail(value) : undefined + } + } + + function stringifyArrayReplacer (key, value, stack, replacer, spacer, indentation) { + if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') { + value = value.toJSON(key) + } + + switch (typeof value) { + case 'string': + return `"${strEscape(value)}"` + case 'object': { + if (value === null) { + return 'null' + } + if (stack.indexOf(value) !== -1) { + return circularValue + } + + const originalIndentation = indentation + let res = '' + let join = ',' + + if (Array.isArray(value)) { + if (value.length === 0) { + return '[]' + } + if (maximumDepth < stack.length + 1) { + return '"[Array]"' + } + stack.push(value) + if (spacer !== '') { + indentation += spacer + res += `\n${indentation}` + join = `,\n${indentation}` + } + const maximumValuesToStringify = Math.min(value.length, maximumBreadth) + let i = 0 + for (; i < maximumValuesToStringify - 1; i++) { + const tmp = stringifyArrayReplacer(i, value[i], stack, replacer, spacer, indentation) + res += tmp !== undefined ? tmp : 'null' + res += join + } + const tmp = stringifyArrayReplacer(i, value[i], stack, replacer, spacer, indentation) + res += tmp !== undefined ? tmp : 'null' + if (value.length - 1 > maximumBreadth) { + const removedKeys = value.length - maximumBreadth - 1 + res += `${join}"... ${getItemCount(removedKeys)} not stringified"` + } + if (spacer !== '') { + res += `\n${originalIndentation}` + } + stack.pop() + return `[${res}]` + } + if (replacer.size === 0) { + return '{}' + } + stack.push(value) + let whitespace = '' + if (spacer !== '') { + indentation += spacer + join = `,\n${indentation}` + whitespace = ' ' + } + let separator = '' + for (const key of replacer) { + const tmp = stringifyArrayReplacer(key, value[key], stack, replacer, spacer, indentation) + if (tmp !== undefined) { + res += `${separator}"${strEscape(key)}":${whitespace}${tmp}` + separator = join + } + } + if (spacer !== '' && separator.length > 1) { + res = `\n${indentation}${res}\n${originalIndentation}` + } + stack.pop() + return `{${res}}` + } + case 'number': + return isFinite(value) ? String(value) : fail ? fail(value) : 'null' + case 'boolean': + return value === true ? 'true' : 'false' + case 'undefined': + return undefined + case 'bigint': + if (bigint) { + return String(value) + } + // fallthrough + default: + return fail ? fail(value) : undefined + } + } + + function stringifyIndent (key, value, stack, spacer, indentation) { + switch (typeof value) { + case 'string': + return `"${strEscape(value)}"` + case 'object': { + if (value === null) { + return 'null' + } + if (typeof value.toJSON === 'function') { + value = value.toJSON(key) + // Prevent calling `toJSON` again. + if (typeof value !== 'object') { + return stringifyIndent(key, value, stack, spacer, indentation) + } + if (value === null) { + return 'null' + } + } + if (stack.indexOf(value) !== -1) { + return circularValue + } + const originalIndentation = indentation + + if (Array.isArray(value)) { + if (value.length === 0) { + return '[]' + } + if (maximumDepth < stack.length + 1) { + return '"[Array]"' + } + stack.push(value) + indentation += spacer + let res = `\n${indentation}` + const join = `,\n${indentation}` + const maximumValuesToStringify = Math.min(value.length, maximumBreadth) + let i = 0 + for (; i < maximumValuesToStringify - 1; i++) { + const tmp = stringifyIndent(i, value[i], stack, spacer, indentation) + res += tmp !== undefined ? tmp : 'null' + res += join + } + const tmp = stringifyIndent(i, value[i], stack, spacer, indentation) + res += tmp !== undefined ? tmp : 'null' + if (value.length - 1 > maximumBreadth) { + const removedKeys = value.length - maximumBreadth - 1 + res += `${join}"... ${getItemCount(removedKeys)} not stringified"` + } + res += `\n${originalIndentation}` + stack.pop() + return `[${res}]` + } + + let keys = Object.keys(value) + const keyLength = keys.length + if (keyLength === 0) { + return '{}' + } + if (maximumDepth < stack.length + 1) { + return '"[Object]"' + } + indentation += spacer + const join = `,\n${indentation}` + let res = '' + let separator = '' + let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth) + if (isTypedArrayWithEntries(value)) { + res += stringifyTypedArray(value, join, maximumBreadth) + keys = keys.slice(value.length) + maximumPropertiesToStringify -= value.length + separator = join + } + if (deterministic) { + keys = insertSort(keys) + } + stack.push(value) + for (let i = 0; i < maximumPropertiesToStringify; i++) { + const key = keys[i] + const tmp = stringifyIndent(key, value[key], stack, spacer, indentation) + if (tmp !== undefined) { + res += `${separator}"${strEscape(key)}": ${tmp}` + separator = join + } + } + if (keyLength > maximumBreadth) { + const removedKeys = keyLength - maximumBreadth + res += `${separator}"...": "${getItemCount(removedKeys)} not stringified"` + separator = join + } + if (separator !== '') { + res = `\n${indentation}${res}\n${originalIndentation}` + } + stack.pop() + return `{${res}}` + } + case 'number': + return isFinite(value) ? String(value) : fail ? fail(value) : 'null' + case 'boolean': + return value === true ? 'true' : 'false' + case 'undefined': + return undefined + case 'bigint': + if (bigint) { + return String(value) + } + // fallthrough + default: + return fail ? fail(value) : undefined + } + } + + function stringifySimple (key, value, stack) { + switch (typeof value) { + case 'string': + return `"${strEscape(value)}"` + case 'object': { + if (value === null) { + return 'null' + } + if (typeof value.toJSON === 'function') { + value = value.toJSON(key) + // Prevent calling `toJSON` again + if (typeof value !== 'object') { + return stringifySimple(key, value, stack) + } + if (value === null) { + return 'null' + } + } + if (stack.indexOf(value) !== -1) { + return circularValue + } + + let res = '' + + if (Array.isArray(value)) { + if (value.length === 0) { + return '[]' + } + if (maximumDepth < stack.length + 1) { + return '"[Array]"' + } + stack.push(value) + const maximumValuesToStringify = Math.min(value.length, maximumBreadth) + let i = 0 + for (; i < maximumValuesToStringify - 1; i++) { + const tmp = stringifySimple(i, value[i], stack) + res += tmp !== undefined ? tmp : 'null' + res += ',' + } + const tmp = stringifySimple(i, value[i], stack) + res += tmp !== undefined ? tmp : 'null' + if (value.length - 1 > maximumBreadth) { + const removedKeys = value.length - maximumBreadth - 1 + res += `,"... ${getItemCount(removedKeys)} not stringified"` + } + stack.pop() + return `[${res}]` + } + + let keys = Object.keys(value) + const keyLength = keys.length + if (keyLength === 0) { + return '{}' + } + if (maximumDepth < stack.length + 1) { + return '"[Object]"' + } + let separator = '' + let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth) + if (isTypedArrayWithEntries(value)) { + res += stringifyTypedArray(value, ',', maximumBreadth) + keys = keys.slice(value.length) + maximumPropertiesToStringify -= value.length + separator = ',' + } + if (deterministic) { + keys = insertSort(keys) + } + stack.push(value) + for (let i = 0; i < maximumPropertiesToStringify; i++) { + const key = keys[i] + const tmp = stringifySimple(key, value[key], stack) + if (tmp !== undefined) { + res += `${separator}"${strEscape(key)}":${tmp}` + separator = ',' + } + } + if (keyLength > maximumBreadth) { + const removedKeys = keyLength - maximumBreadth + res += `${separator}"...":"${getItemCount(removedKeys)} not stringified"` + } + stack.pop() + return `{${res}}` + } + case 'number': + return isFinite(value) ? String(value) : fail ? fail(value) : 'null' + case 'boolean': + return value === true ? 'true' : 'false' + case 'undefined': + return undefined + case 'bigint': + if (bigint) { + return String(value) + } + // fallthrough + default: + return fail ? fail(value) : undefined + } + } + + function stringify (value, replacer, space) { + if (arguments.length > 1) { + let spacer = '' + if (typeof space === 'number') { + spacer = ' '.repeat(Math.min(space, 10)) + } else if (typeof space === 'string') { + spacer = space.slice(0, 10) + } + if (replacer != null) { + if (typeof replacer === 'function') { + return stringifyFnReplacer('', { '': value }, [], replacer, spacer, '') + } + if (Array.isArray(replacer)) { + return stringifyArrayReplacer('', value, [], getUniqueReplacerSet(replacer), spacer, '') + } + } + if (spacer.length !== 0) { + return stringifyIndent('', value, [], spacer, '') + } + } + return stringifySimple('', value, []) + } + + return stringify +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/simple-swizzle/index.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/simple-swizzle/index.js ***! + \*********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var isArrayish = __webpack_require__(/*! is-arrayish */ "./build/cht-core-4-6/api/node_modules/is-arrayish/index.js"); + +var concat = Array.prototype.concat; +var slice = Array.prototype.slice; + +var swizzle = module.exports = function swizzle(args) { + var results = []; + + for (var i = 0, len = args.length; i < len; i++) { + var arg = args[i]; + + if (isArrayish(arg)) { + // http://jsperf.com/javascript-array-concat-vs-push/98 + results = concat.call(results, slice.call(arg)); + } else { + results.push(arg); + } + } + + return results; +}; + +swizzle.wrap = function (fn) { + return function () { + return fn(swizzle(arguments)); + }; +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/stack-trace/lib/stack-trace.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/stack-trace/lib/stack-trace.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +exports.get = function(belowFn) { + var oldLimit = Error.stackTraceLimit; + Error.stackTraceLimit = Infinity; + + var dummyObject = {}; + + var v8Handler = Error.prepareStackTrace; + Error.prepareStackTrace = function(dummyObject, v8StackTrace) { + return v8StackTrace; + }; + Error.captureStackTrace(dummyObject, belowFn || exports.get); + + var v8StackTrace = dummyObject.stack; + Error.prepareStackTrace = v8Handler; + Error.stackTraceLimit = oldLimit; + + return v8StackTrace; +}; + +exports.parse = function(err) { + if (!err.stack) { + return []; + } + + var self = this; + var lines = err.stack.split('\n').slice(1); + + return lines + .map(function(line) { + if (line.match(/^\s*[-]{4,}$/)) { + return self._createParsedCallSite({ + fileName: line, + lineNumber: null, + functionName: null, + typeName: null, + methodName: null, + columnNumber: null, + 'native': null, + }); + } + + var lineMatch = line.match(/at (?:(.+)\s+\()?(?:(.+?):(\d+)(?::(\d+))?|([^)]+))\)?/); + if (!lineMatch) { + return; + } + + var object = null; + var method = null; + var functionName = null; + var typeName = null; + var methodName = null; + var isNative = (lineMatch[5] === 'native'); + + if (lineMatch[1]) { + functionName = lineMatch[1]; + var methodStart = functionName.lastIndexOf('.'); + if (functionName[methodStart-1] == '.') + methodStart--; + if (methodStart > 0) { + object = functionName.substr(0, methodStart); + method = functionName.substr(methodStart + 1); + var objectEnd = object.indexOf('.Module'); + if (objectEnd > 0) { + functionName = functionName.substr(objectEnd + 1); + object = object.substr(0, objectEnd); + } + } + typeName = null; + } + + if (method) { + typeName = object; + methodName = method; + } + + if (method === '') { + methodName = null; + functionName = null; + } + + var properties = { + fileName: lineMatch[2] || null, + lineNumber: parseInt(lineMatch[3], 10) || null, + functionName: functionName, + typeName: typeName, + methodName: methodName, + columnNumber: parseInt(lineMatch[4], 10) || null, + 'native': isNative, + }; + + return self._createParsedCallSite(properties); + }) + .filter(function(callSite) { + return !!callSite; + }); +}; + +function CallSite(properties) { + for (var property in properties) { + this[property] = properties[property]; + } +} + +var strProperties = [ + 'this', + 'typeName', + 'functionName', + 'methodName', + 'fileName', + 'lineNumber', + 'columnNumber', + 'function', + 'evalOrigin' +]; +var boolProperties = [ + 'topLevel', + 'eval', + 'native', + 'constructor' +]; +strProperties.forEach(function (property) { + CallSite.prototype[property] = null; + CallSite.prototype['get' + property[0].toUpperCase() + property.substr(1)] = function () { + return this[property]; + } +}); +boolProperties.forEach(function (property) { + CallSite.prototype[property] = false; + CallSite.prototype['is' + property[0].toUpperCase() + property.substr(1)] = function () { + return this[property]; + } +}); + +exports._createParsedCallSite = function(properties) { + return new CallSite(properties); +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/string_decoder/lib/string_decoder.js": +/*!**********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/string_decoder/lib/string_decoder.js ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + + + +/**/ + +var Buffer = __webpack_require__(/*! safe-buffer */ "./build/cht-core-4-6/api/node_modules/safe-buffer/index.js").Buffer; +/**/ + +var isEncoding = Buffer.isEncoding || function (encoding) { + encoding = '' + encoding; + switch (encoding && encoding.toLowerCase()) { + case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw': + return true; + default: + return false; + } +}; + +function _normalizeEncoding(enc) { + if (!enc) return 'utf8'; + var retried; + while (true) { + switch (enc) { + case 'utf8': + case 'utf-8': + return 'utf8'; + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return 'utf16le'; + case 'latin1': + case 'binary': + return 'latin1'; + case 'base64': + case 'ascii': + case 'hex': + return enc; + default: + if (retried) return; // undefined + enc = ('' + enc).toLowerCase(); + retried = true; + } + } +}; + +// Do not cache `Buffer.isEncoding` when checking encoding names as some +// modules monkey-patch it to support additional encodings +function normalizeEncoding(enc) { + var nenc = _normalizeEncoding(enc); + if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc); + return nenc || enc; +} + +// StringDecoder provides an interface for efficiently splitting a series of +// buffers into a series of JS strings without breaking apart multi-byte +// characters. +exports.StringDecoder = StringDecoder; +function StringDecoder(encoding) { + this.encoding = normalizeEncoding(encoding); + var nb; + switch (this.encoding) { + case 'utf16le': + this.text = utf16Text; + this.end = utf16End; + nb = 4; + break; + case 'utf8': + this.fillLast = utf8FillLast; + nb = 4; + break; + case 'base64': + this.text = base64Text; + this.end = base64End; + nb = 3; + break; + default: + this.write = simpleWrite; + this.end = simpleEnd; + return; + } + this.lastNeed = 0; + this.lastTotal = 0; + this.lastChar = Buffer.allocUnsafe(nb); +} + +StringDecoder.prototype.write = function (buf) { + if (buf.length === 0) return ''; + var r; + var i; + if (this.lastNeed) { + r = this.fillLast(buf); + if (r === undefined) return ''; + i = this.lastNeed; + this.lastNeed = 0; + } else { + i = 0; + } + if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); + return r || ''; +}; + +StringDecoder.prototype.end = utf8End; + +// Returns only complete characters in a Buffer +StringDecoder.prototype.text = utf8Text; + +// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer +StringDecoder.prototype.fillLast = function (buf) { + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); + this.lastNeed -= buf.length; +}; + +// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a +// continuation byte. If an invalid byte is detected, -2 is returned. +function utf8CheckByte(byte) { + if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4; + return byte >> 6 === 0x02 ? -1 : -2; +} + +// Checks at most 3 bytes at the end of a Buffer in order to detect an +// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4) +// needed to complete the UTF-8 character (if applicable) are returned. +function utf8CheckIncomplete(self, buf, i) { + var j = buf.length - 1; + if (j < i) return 0; + var nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 1; + return nb; + } + if (--j < i || nb === -2) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 2; + return nb; + } + if (--j < i || nb === -2) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) { + if (nb === 2) nb = 0;else self.lastNeed = nb - 3; + } + return nb; + } + return 0; +} + +// Validates as many continuation bytes for a multi-byte UTF-8 character as +// needed or are available. If we see a non-continuation byte where we expect +// one, we "replace" the validated continuation bytes we've seen so far with +// a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding +// behavior. The continuation byte check is included three times in the case +// where all of the continuation bytes for a character exist in the same buffer. +// It is also done this way as a slight performance increase instead of using a +// loop. +function utf8CheckExtraBytes(self, buf, p) { + if ((buf[0] & 0xC0) !== 0x80) { + self.lastNeed = 0; + return '\ufffd'; + } + if (self.lastNeed > 1 && buf.length > 1) { + if ((buf[1] & 0xC0) !== 0x80) { + self.lastNeed = 1; + return '\ufffd'; + } + if (self.lastNeed > 2 && buf.length > 2) { + if ((buf[2] & 0xC0) !== 0x80) { + self.lastNeed = 2; + return '\ufffd'; + } + } + } +} + +// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer. +function utf8FillLast(buf) { + var p = this.lastTotal - this.lastNeed; + var r = utf8CheckExtraBytes(this, buf, p); + if (r !== undefined) return r; + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, p, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, p, 0, buf.length); + this.lastNeed -= buf.length; +} + +// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a +// partial character, the character's bytes are buffered until the required +// number of bytes are available. +function utf8Text(buf, i) { + var total = utf8CheckIncomplete(this, buf, i); + if (!this.lastNeed) return buf.toString('utf8', i); + this.lastTotal = total; + var end = buf.length - (total - this.lastNeed); + buf.copy(this.lastChar, 0, end); + return buf.toString('utf8', i, end); +} + +// For UTF-8, a replacement character is added when ending on a partial +// character. +function utf8End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) return r + '\ufffd'; + return r; +} + +// UTF-16LE typically needs two bytes per character, but even if we have an even +// number of bytes available, we need to check if we end on a leading/high +// surrogate. In that case, we need to wait for the next two bytes in order to +// decode the last character properly. +function utf16Text(buf, i) { + if ((buf.length - i) % 2 === 0) { + var r = buf.toString('utf16le', i); + if (r) { + var c = r.charCodeAt(r.length - 1); + if (c >= 0xD800 && c <= 0xDBFF) { + this.lastNeed = 2; + this.lastTotal = 4; + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + return r.slice(0, -1); + } + } + return r; + } + this.lastNeed = 1; + this.lastTotal = 2; + this.lastChar[0] = buf[buf.length - 1]; + return buf.toString('utf16le', i, buf.length - 1); +} + +// For UTF-16LE we do not explicitly append special replacement characters if we +// end on a partial character, we simply let v8 handle that. +function utf16End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) { + var end = this.lastTotal - this.lastNeed; + return r + this.lastChar.toString('utf16le', 0, end); + } + return r; +} + +function base64Text(buf, i) { + var n = (buf.length - i) % 3; + if (n === 0) return buf.toString('base64', i); + this.lastNeed = 3 - n; + this.lastTotal = 3; + if (n === 1) { + this.lastChar[0] = buf[buf.length - 1]; + } else { + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + } + return buf.toString('base64', i, buf.length - n); +} + +function base64End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed); + return r; +} + +// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex) +function simpleWrite(buf) { + return buf.toString(this.encoding); +} + +function simpleEnd(buf) { + return buf && buf.length ? this.write(buf) : ''; +} + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/text-hex/index.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/text-hex/index.js ***! + \***************************************************************/ +/***/ ((module) => { + +"use strict"; + + +/*** + * Convert string to hex color. + * + * @param {String} str Text to hash and convert to hex. + * @returns {String} + * @api public + */ +module.exports = function hex(str) { + for ( + var i = 0, hash = 0; + i < str.length; + hash = str.charCodeAt(i++) + ((hash << 5) - hash) + ); + + var color = Math.floor( + Math.abs( + (Math.sin(hash) * 10000) % 1 * 16777216 + ) + ).toString(16); + + return '#' + Array(6 - color.length + 1).join('0') + color; +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/triple-beam/config/cli.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/triple-beam/config/cli.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/** + * cli.js: Config that conform to commonly used CLI logging levels. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +/** + * Default levels for the CLI configuration. + * @type {Object} + */ +exports.levels = { + error: 0, + warn: 1, + help: 2, + data: 3, + info: 4, + debug: 5, + prompt: 6, + verbose: 7, + input: 8, + silly: 9 +}; + +/** + * Default colors for the CLI configuration. + * @type {Object} + */ +exports.colors = { + error: 'red', + warn: 'yellow', + help: 'cyan', + data: 'grey', + info: 'green', + debug: 'blue', + prompt: 'grey', + verbose: 'cyan', + input: 'grey', + silly: 'magenta' +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/triple-beam/config/index.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/triple-beam/config/index.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +/** + * index.js: Default settings for all levels that winston knows about. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +/** + * Export config set for the CLI. + * @type {Object} + */ +Object.defineProperty(exports, "cli", ({ + value: __webpack_require__(/*! ./cli */ "./build/cht-core-4-6/api/node_modules/triple-beam/config/cli.js") +})); + +/** + * Export config set for npm. + * @type {Object} + */ +Object.defineProperty(exports, "npm", ({ + value: __webpack_require__(/*! ./npm */ "./build/cht-core-4-6/api/node_modules/triple-beam/config/npm.js") +})); + +/** + * Export config set for the syslog. + * @type {Object} + */ +Object.defineProperty(exports, "syslog", ({ + value: __webpack_require__(/*! ./syslog */ "./build/cht-core-4-6/api/node_modules/triple-beam/config/syslog.js") +})); + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/triple-beam/config/npm.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/triple-beam/config/npm.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/** + * npm.js: Config that conform to npm logging levels. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +/** + * Default levels for the npm configuration. + * @type {Object} + */ +exports.levels = { + error: 0, + warn: 1, + info: 2, + http: 3, + verbose: 4, + debug: 5, + silly: 6 +}; + +/** + * Default levels for the npm configuration. + * @type {Object} + */ +exports.colors = { + error: 'red', + warn: 'yellow', + info: 'green', + http: 'green', + verbose: 'cyan', + debug: 'blue', + silly: 'magenta' +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/triple-beam/config/syslog.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/triple-beam/config/syslog.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/** + * syslog.js: Config that conform to syslog logging levels. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +/** + * Default levels for the syslog configuration. + * @type {Object} + */ +exports.levels = { + emerg: 0, + alert: 1, + crit: 2, + error: 3, + warning: 4, + notice: 5, + info: 6, + debug: 7 +}; + +/** + * Default levels for the syslog configuration. + * @type {Object} + */ +exports.colors = { + emerg: 'red', + alert: 'yellow', + crit: 'red', + error: 'red', + warning: 'red', + notice: 'yellow', + info: 'green', + debug: 'blue' +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/triple-beam/index.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/triple-beam/index.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + + +/** + * A shareable symbol constant that can be used + * as a non-enumerable / semi-hidden level identifier + * to allow the readable level property to be mutable for + * operations like colorization + * + * @type {Symbol} + */ +Object.defineProperty(exports, "LEVEL", ({ + value: Symbol.for('level') +})); + +/** + * A shareable symbol constant that can be used + * as a non-enumerable / semi-hidden message identifier + * to allow the final message property to not have + * side effects on another. + * + * @type {Symbol} + */ +Object.defineProperty(exports, "MESSAGE", ({ + value: Symbol.for('message') +})); + +/** + * A shareable symbol constant that can be used + * as a non-enumerable / semi-hidden message identifier + * to allow the extracted splat property be hidden + * + * @type {Symbol} + */ +Object.defineProperty(exports, "SPLAT", ({ + value: Symbol.for('splat') +})); + +/** + * A shareable object constant that can be used + * as a standard configuration for winston@3. + * + * @type {Object} + */ +Object.defineProperty(exports, "configs", ({ + value: __webpack_require__(/*! ./config */ "./build/cht-core-4-6/api/node_modules/triple-beam/config/index.js") +})); + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/util-deprecate/node.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/util-deprecate/node.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +/** + * For Node.js, simply re-export the core `util.deprecate` function. + */ + +module.exports = __webpack_require__(/*! util */ "util").deprecate; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/index.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/index.js ***! + \************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +const util = __webpack_require__(/*! util */ "util"); +const Writable = __webpack_require__(/*! readable-stream/lib/_stream_writable.js */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js"); +const { LEVEL } = __webpack_require__(/*! triple-beam */ "./build/cht-core-4-6/api/node_modules/triple-beam/index.js"); + +/** + * Constructor function for the TransportStream. This is the base prototype + * that all `winston >= 3` transports should inherit from. + * @param {Object} options - Options for this TransportStream instance + * @param {String} options.level - Highest level according to RFC5424. + * @param {Boolean} options.handleExceptions - If true, info with + * { exception: true } will be written. + * @param {Function} options.log - Custom log function for simple Transport + * creation + * @param {Function} options.close - Called on "unpipe" from parent. + */ +const TransportStream = module.exports = function TransportStream(options = {}) { + Writable.call(this, { objectMode: true, highWaterMark: options.highWaterMark }); + + this.format = options.format; + this.level = options.level; + this.handleExceptions = options.handleExceptions; + this.handleRejections = options.handleRejections; + this.silent = options.silent; + + if (options.log) this.log = options.log; + if (options.logv) this.logv = options.logv; + if (options.close) this.close = options.close; + + // Get the levels from the source we are piped from. + this.once('pipe', logger => { + // Remark (indexzero): this bookkeeping can only support multiple + // Logger parents with the same `levels`. This comes into play in + // the `winston.Container` code in which `container.add` takes + // a fully realized set of options with pre-constructed TransportStreams. + this.levels = logger.levels; + this.parent = logger; + }); + + // If and/or when the transport is removed from this instance + this.once('unpipe', src => { + // Remark (indexzero): this bookkeeping can only support multiple + // Logger parents with the same `levels`. This comes into play in + // the `winston.Container` code in which `container.add` takes + // a fully realized set of options with pre-constructed TransportStreams. + if (src === this.parent) { + this.parent = null; + if (this.close) { + this.close(); + } + } + }); +}; + +/* + * Inherit from Writeable using Node.js built-ins + */ +util.inherits(TransportStream, Writable); + +/** + * Writes the info object to our transport instance. + * @param {mixed} info - TODO: add param description. + * @param {mixed} enc - TODO: add param description. + * @param {function} callback - TODO: add param description. + * @returns {undefined} + * @private + */ +TransportStream.prototype._write = function _write(info, enc, callback) { + if (this.silent || (info.exception === true && !this.handleExceptions)) { + return callback(null); + } + + // Remark: This has to be handled in the base transport now because we + // cannot conditionally write to our pipe targets as stream. We always + // prefer any explicit level set on the Transport itself falling back to + // any level set on the parent. + const level = this.level || (this.parent && this.parent.level); + + if (!level || this.levels[level] >= this.levels[info[LEVEL]]) { + if (info && !this.format) { + return this.log(info, callback); + } + + let errState; + let transformed; + + // We trap(and re-throw) any errors generated by the user-provided format, but also + // guarantee that the streams callback is invoked so that we can continue flowing. + try { + transformed = this.format.transform(Object.assign({}, info), this.format.options); + } catch (err) { + errState = err; + } + + if (errState || !transformed) { + // eslint-disable-next-line callback-return + callback(); + if (errState) throw errState; + return; + } + + return this.log(transformed, callback); + } + this._writableState.sync = false; + return callback(null); +}; + +/** + * Writes the batch of info objects (i.e. "object chunks") to our transport + * instance after performing any necessary filtering. + * @param {mixed} chunks - TODO: add params description. + * @param {function} callback - TODO: add params description. + * @returns {mixed} - TODO: add returns description. + * @private + */ +TransportStream.prototype._writev = function _writev(chunks, callback) { + if (this.logv) { + const infos = chunks.filter(this._accept, this); + if (!infos.length) { + return callback(null); + } + + // Remark (indexzero): from a performance perspective if Transport + // implementers do choose to implement logv should we make it their + // responsibility to invoke their format? + return this.logv(infos, callback); + } + + for (let i = 0; i < chunks.length; i++) { + if (!this._accept(chunks[i])) continue; + + if (chunks[i].chunk && !this.format) { + this.log(chunks[i].chunk, chunks[i].callback); + continue; + } + + let errState; + let transformed; + + // We trap(and re-throw) any errors generated by the user-provided format, but also + // guarantee that the streams callback is invoked so that we can continue flowing. + try { + transformed = this.format.transform( + Object.assign({}, chunks[i].chunk), + this.format.options + ); + } catch (err) { + errState = err; + } + + if (errState || !transformed) { + // eslint-disable-next-line callback-return + chunks[i].callback(); + if (errState) { + // eslint-disable-next-line callback-return + callback(null); + throw errState; + } + } else { + this.log(transformed, chunks[i].callback); + } + } + + return callback(null); +}; + +/** + * Predicate function that returns true if the specfied `info` on the + * WriteReq, `write`, should be passed down into the derived + * TransportStream's I/O via `.log(info, callback)`. + * @param {WriteReq} write - winston@3 Node.js WriteReq for the `info` object + * representing the log message. + * @returns {Boolean} - Value indicating if the `write` should be accepted & + * logged. + */ +TransportStream.prototype._accept = function _accept(write) { + const info = write.chunk; + if (this.silent) { + return false; + } + + // We always prefer any explicit level set on the Transport itself + // falling back to any level set on the parent. + const level = this.level || (this.parent && this.parent.level); + + // Immediately check the average case: log level filtering. + if ( + info.exception === true || + !level || + this.levels[level] >= this.levels[info[LEVEL]] + ) { + // Ensure the info object is valid based on `{ exception }`: + // 1. { handleExceptions: true }: all `info` objects are valid + // 2. { exception: false }: accepted by all transports. + if (this.handleExceptions || info.exception !== true) { + return true; + } + } + + return false; +}; + +/** + * _nop is short for "No operation" + * @returns {Boolean} Intentionally false. + */ +TransportStream.prototype._nop = function _nop() { + // eslint-disable-next-line no-undefined + return void undefined; +}; + + +// Expose legacy stream +module.exports.LegacyTransportStream = __webpack_require__(/*! ./legacy */ "./build/cht-core-4-6/api/node_modules/winston-transport/legacy.js"); + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/legacy.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/legacy.js ***! + \*************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +const util = __webpack_require__(/*! util */ "util"); +const { LEVEL } = __webpack_require__(/*! triple-beam */ "./build/cht-core-4-6/api/node_modules/triple-beam/index.js"); +const TransportStream = __webpack_require__(/*! ./ */ "./build/cht-core-4-6/api/node_modules/winston-transport/index.js"); + +/** + * Constructor function for the LegacyTransportStream. This is an internal + * wrapper `winston >= 3` uses to wrap older transports implementing + * log(level, message, meta). + * @param {Object} options - Options for this TransportStream instance. + * @param {Transpot} options.transport - winston@2 or older Transport to wrap. + */ + +const LegacyTransportStream = module.exports = function LegacyTransportStream(options = {}) { + TransportStream.call(this, options); + if (!options.transport || typeof options.transport.log !== 'function') { + throw new Error('Invalid transport, must be an object with a log method.'); + } + + this.transport = options.transport; + this.level = this.level || options.transport.level; + this.handleExceptions = this.handleExceptions || options.transport.handleExceptions; + + // Display our deprecation notice. + this._deprecated(); + + // Properly bubble up errors from the transport to the + // LegacyTransportStream instance, but only once no matter how many times + // this transport is shared. + function transportError(err) { + this.emit('error', err, this.transport); + } + + if (!this.transport.__winstonError) { + this.transport.__winstonError = transportError.bind(this); + this.transport.on('error', this.transport.__winstonError); + } +}; + +/* + * Inherit from TransportStream using Node.js built-ins + */ +util.inherits(LegacyTransportStream, TransportStream); + +/** + * Writes the info object to our transport instance. + * @param {mixed} info - TODO: add param description. + * @param {mixed} enc - TODO: add param description. + * @param {function} callback - TODO: add param description. + * @returns {undefined} + * @private + */ +LegacyTransportStream.prototype._write = function _write(info, enc, callback) { + if (this.silent || (info.exception === true && !this.handleExceptions)) { + return callback(null); + } + + // Remark: This has to be handled in the base transport now because we + // cannot conditionally write to our pipe targets as stream. + if (!this.level || this.levels[this.level] >= this.levels[info[LEVEL]]) { + this.transport.log(info[LEVEL], info.message, info, this._nop); + } + + callback(null); +}; + +/** + * Writes the batch of info objects (i.e. "object chunks") to our transport + * instance after performing any necessary filtering. + * @param {mixed} chunks - TODO: add params description. + * @param {function} callback - TODO: add params description. + * @returns {mixed} - TODO: add returns description. + * @private + */ +LegacyTransportStream.prototype._writev = function _writev(chunks, callback) { + for (let i = 0; i < chunks.length; i++) { + if (this._accept(chunks[i])) { + this.transport.log( + chunks[i].chunk[LEVEL], + chunks[i].chunk.message, + chunks[i].chunk, + this._nop + ); + chunks[i].callback(); + } + } + + return callback(null); +}; + +/** + * Displays a deprecation notice. Defined as a function so it can be + * overriden in tests. + * @returns {undefined} + */ +LegacyTransportStream.prototype._deprecated = function _deprecated() { + // eslint-disable-next-line no-console + console.error([ + `${this.transport.name} is a legacy winston transport. Consider upgrading: `, + '- Upgrade docs: https://github.com/winstonjs/winston/blob/master/UPGRADE-3.0.md' + ].join('\n')); +}; + +/** + * Clean up error handling state on the legacy transport associated + * with this instance. + * @returns {undefined} + */ +LegacyTransportStream.prototype.close = function close() { + if (this.transport.close) { + this.transport.close(); + } + + if (this.transport.__winstonError) { + this.transport.removeListener('error', this.transport.__winstonError); + this.transport.__winstonError = null; + } +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js": +/*!******************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js ***! + \******************************************************************************************************/ +/***/ ((module) => { + +"use strict"; + + +const codes = {}; + +function createErrorType(code, message, Base) { + if (!Base) { + Base = Error + } + + function getMessage (arg1, arg2, arg3) { + if (typeof message === 'string') { + return message + } else { + return message(arg1, arg2, arg3) + } + } + + class NodeError extends Base { + constructor (arg1, arg2, arg3) { + super(getMessage(arg1, arg2, arg3)); + } + } + + NodeError.prototype.name = Base.name; + NodeError.prototype.code = code; + + codes[code] = NodeError; +} + +// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js +function oneOf(expected, thing) { + if (Array.isArray(expected)) { + const len = expected.length; + expected = expected.map((i) => String(i)); + if (len > 2) { + return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` + + expected[len - 1]; + } else if (len === 2) { + return `one of ${thing} ${expected[0]} or ${expected[1]}`; + } else { + return `of ${thing} ${expected[0]}`; + } + } else { + return `of ${thing} ${String(expected)}`; + } +} + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith +function startsWith(str, search, pos) { + return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; +} + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith +function endsWith(str, search, this_len) { + if (this_len === undefined || this_len > str.length) { + this_len = str.length; + } + return str.substring(this_len - search.length, this_len) === search; +} + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes +function includes(str, search, start) { + if (typeof start !== 'number') { + start = 0; + } + + if (start + search.length > str.length) { + return false; + } else { + return str.indexOf(search, start) !== -1; + } +} + +createErrorType('ERR_INVALID_OPT_VALUE', function (name, value) { + return 'The value "' + value + '" is invalid for option "' + name + '"' +}, TypeError); +createErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) { + // determiner: 'must be' or 'must not be' + let determiner; + if (typeof expected === 'string' && startsWith(expected, 'not ')) { + determiner = 'must not be'; + expected = expected.replace(/^not /, ''); + } else { + determiner = 'must be'; + } + + let msg; + if (endsWith(name, ' argument')) { + // For cases like 'first argument' + msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`; + } else { + const type = includes(name, '.') ? 'property' : 'argument'; + msg = `The "${name}" ${type} ${determiner} ${oneOf(expected, 'type')}`; + } + + msg += `. Received type ${typeof actual}`; + return msg; +}, TypeError); +createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF'); +createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) { + return 'The ' + name + ' method is not implemented' +}); +createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close'); +createErrorType('ERR_STREAM_DESTROYED', function (name) { + return 'Cannot call ' + name + ' after a stream was destroyed'; +}); +createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times'); +createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable'); +createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end'); +createErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError); +createErrorType('ERR_UNKNOWN_ENCODING', function (arg) { + return 'Unknown encoding: ' + arg +}, TypeError); +createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event'); + +module.exports.codes = codes; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js": +/*!******************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js ***! + \******************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// a duplex stream is just a stream that is both readable and writable. +// Since JS doesn't have multiple prototypal inheritance, this class +// prototypally inherits from Readable, and then parasitically from +// Writable. + + + +/**/ +var objectKeys = Object.keys || function (obj) { + var keys = []; + for (var key in obj) keys.push(key); + return keys; +}; +/**/ + +module.exports = Duplex; +var Readable = __webpack_require__(/*! ./_stream_readable */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_readable.js"); +var Writable = __webpack_require__(/*! ./_stream_writable */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js"); +__webpack_require__(/*! inherits */ "./build/cht-core-4-6/api/node_modules/inherits/inherits.js")(Duplex, Readable); +{ + // Allow the keys array to be GC'ed. + var keys = objectKeys(Writable.prototype); + for (var v = 0; v < keys.length; v++) { + var method = keys[v]; + if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; + } +} +function Duplex(options) { + if (!(this instanceof Duplex)) return new Duplex(options); + Readable.call(this, options); + Writable.call(this, options); + this.allowHalfOpen = true; + if (options) { + if (options.readable === false) this.readable = false; + if (options.writable === false) this.writable = false; + if (options.allowHalfOpen === false) { + this.allowHalfOpen = false; + this.once('end', onend); + } + } +} +Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; + } +}); +Object.defineProperty(Duplex.prototype, 'writableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); + } +}); +Object.defineProperty(Duplex.prototype, 'writableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.length; + } +}); + +// the no-half-open enforcer +function onend() { + // If the writable side ended, then we're ok. + if (this._writableState.ended) return; + + // no more data can be written. + // But allow more writes to happen in this tick. + process.nextTick(onEndNT, this); +} +function onEndNT(self) { + self.end(); +} +Object.defineProperty(Duplex.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === undefined || this._writableState === undefined) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (this._readableState === undefined || this._writableState === undefined) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } +}); + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_readable.js": +/*!********************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_readable.js ***! + \********************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + + + +module.exports = Readable; + +/**/ +var Duplex; +/**/ + +Readable.ReadableState = ReadableState; + +/**/ +var EE = __webpack_require__(/*! events */ "events").EventEmitter; +var EElistenerCount = function EElistenerCount(emitter, type) { + return emitter.listeners(type).length; +}; +/**/ + +/**/ +var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/stream.js"); +/**/ + +var Buffer = __webpack_require__(/*! buffer */ "buffer").Buffer; +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} + +/**/ +var debugUtil = __webpack_require__(/*! util */ "util"); +var debug; +if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog('stream'); +} else { + debug = function debug() {}; +} +/**/ + +var BufferList = __webpack_require__(/*! ./internal/streams/buffer_list */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/buffer_list.js"); +var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/destroy.js"); +var _require = __webpack_require__(/*! ./internal/streams/state */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/state.js"), + getHighWaterMark = _require.getHighWaterMark; +var _require$codes = __webpack_require__(/*! ../errors */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js").codes, + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; + +// Lazy loaded to improve the startup performance. +var StringDecoder; +var createReadableStreamAsyncIterator; +var from; +__webpack_require__(/*! inherits */ "./build/cht-core-4-6/api/node_modules/inherits/inherits.js")(Readable, Stream); +var errorOrDestroy = destroyImpl.errorOrDestroy; +var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; +function prependListener(emitter, event, fn) { + // Sadly this is not cacheable as some libraries bundle their own + // event emitter implementation with them. + if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); + + // This is a hack to make sure that our error handler is attached before any + // userland ones. NEVER DO THIS. This is here only because this code needs + // to continue to work with older versions of Node.js that do not include + // the prependListener() method. The goal is to eventually remove this hack. + if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; +} +function ReadableState(options, stream, isDuplex) { + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js"); + options = options || {}; + + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream. + // These options can be provided separately as readableXXX and writableXXX. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; + + // object stream flag. Used to make read(n) ignore n and to + // make all the buffer merging and length checks go away + this.objectMode = !!options.objectMode; + if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; + + // the point at which it stops calling _read() to fill the buffer + // Note: 0 is a valid value, means "don't call _read preemptively ever" + this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); + + // A linked list is used to store data chunks instead of an array because the + // linked list can remove elements from the beginning faster than + // array.shift() + this.buffer = new BufferList(); + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; + + // a flag to be able to tell if the event 'readable'/'data' is emitted + // immediately, or on a later tick. We set this to true at first, because + // any actions that shouldn't happen until "later" should generally also + // not happen before the first read call. + this.sync = true; + + // whenever we return null, then we set a flag to say + // that we're awaiting a 'readable' event emission. + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; + this.paused = true; + + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; + + // Should .destroy() be called after 'end' (and potentially 'finish') + this.autoDestroy = !!options.autoDestroy; + + // has it been destroyed + this.destroyed = false; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // the number of writers that are awaiting a drain event in .pipe()s + this.awaitDrain = 0; + + // if true, a maybeReadMore has been scheduled + this.readingMore = false; + this.decoder = null; + this.encoding = null; + if (options.encoding) { + if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ "./build/cht-core-4-6/api/node_modules/string_decoder/lib/string_decoder.js").StringDecoder; + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } +} +function Readable(options) { + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js"); + if (!(this instanceof Readable)) return new Readable(options); + + // Checking for a Stream.Duplex instance is faster here instead of inside + // the ReadableState constructor, at least with V8 6.5 + var isDuplex = this instanceof Duplex; + this._readableState = new ReadableState(options, this, isDuplex); + + // legacy + this.readable = true; + if (options) { + if (typeof options.read === 'function') this._read = options.read; + if (typeof options.destroy === 'function') this._destroy = options.destroy; + } + Stream.call(this); +} +Object.defineProperty(Readable.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === undefined) { + return false; + } + return this._readableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._readableState) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + } +}); +Readable.prototype.destroy = destroyImpl.destroy; +Readable.prototype._undestroy = destroyImpl.undestroy; +Readable.prototype._destroy = function (err, cb) { + cb(err); +}; + +// Manually shove something into the read() buffer. +// This returns true if the highWaterMark has not been hit yet, +// similar to how Writable.write() returns true if you should +// write() some more. +Readable.prototype.push = function (chunk, encoding) { + var state = this._readableState; + var skipChunkCheck; + if (!state.objectMode) { + if (typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer.from(chunk, encoding); + encoding = ''; + } + skipChunkCheck = true; + } + } else { + skipChunkCheck = true; + } + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); +}; + +// Unshift should *always* be something directly out of read() +Readable.prototype.unshift = function (chunk) { + return readableAddChunk(this, chunk, null, true, false); +}; +function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { + debug('readableAddChunk', chunk); + var state = stream._readableState; + if (chunk === null) { + state.reading = false; + onEofChunk(stream, state); + } else { + var er; + if (!skipChunkCheck) er = chunkInvalid(state, chunk); + if (er) { + errorOrDestroy(stream, er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (addToFront) { + if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true); + } else if (state.ended) { + errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); + } else if (state.destroyed) { + return false; + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); + } else { + addChunk(stream, state, chunk, false); + } + } + } else if (!addToFront) { + state.reading = false; + maybeReadMore(stream, state); + } + } + + // We can push more data if we are below the highWaterMark. + // Also, if we have no data yet, we can stand some more bytes. + // This is to work around cases where hwm=0, such as the repl. + return !state.ended && (state.length < state.highWaterMark || state.length === 0); +} +function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + state.awaitDrain = 0; + stream.emit('data', chunk); + } else { + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); + if (state.needReadable) emitReadable(stream); + } + maybeReadMore(stream, state); +} +function chunkInvalid(state, chunk) { + var er; + if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk); + } + return er; +} +Readable.prototype.isPaused = function () { + return this._readableState.flowing === false; +}; + +// backwards compatibility. +Readable.prototype.setEncoding = function (enc) { + if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ "./build/cht-core-4-6/api/node_modules/string_decoder/lib/string_decoder.js").StringDecoder; + var decoder = new StringDecoder(enc); + this._readableState.decoder = decoder; + // If setEncoding(null), decoder.encoding equals utf8 + this._readableState.encoding = this._readableState.decoder.encoding; + + // Iterate over current buffer to convert already stored Buffers: + var p = this._readableState.buffer.head; + var content = ''; + while (p !== null) { + content += decoder.write(p.data); + p = p.next; + } + this._readableState.buffer.clear(); + if (content !== '') this._readableState.buffer.push(content); + this._readableState.length = content.length; + return this; +}; + +// Don't raise the hwm > 1GB +var MAX_HWM = 0x40000000; +function computeNewHighWaterMark(n) { + if (n >= MAX_HWM) { + // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE. + n = MAX_HWM; + } else { + // Get the next highest power of 2 to prevent increasing hwm excessively in + // tiny amounts + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; + } + return n; +} + +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function howMuchToRead(n, state) { + if (n <= 0 || state.length === 0 && state.ended) return 0; + if (state.objectMode) return 1; + if (n !== n) { + // Only flow one buffer at a time + if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; + } + // If we're asking for more than the current hwm, then raise the hwm. + if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); + if (n <= state.length) return n; + // Don't have enough + if (!state.ended) { + state.needReadable = true; + return 0; + } + return state.length; +} + +// you can override either this method, or the async _read(n) below. +Readable.prototype.read = function (n) { + debug('read', n); + n = parseInt(n, 10); + var state = this._readableState; + var nOrig = n; + if (n !== 0) state.emittedReadable = false; + + // if we're doing read(0) to trigger a readable event, but we + // already have a bunch of data in the buffer, then just trigger + // the 'readable' event and move on. + if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { + debug('read: emitReadable', state.length, state.ended); + if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); + return null; + } + n = howMuchToRead(n, state); + + // if we've ended, and we're now clear, then finish it up. + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this); + return null; + } + + // All the actual chunk generation logic needs to be + // *below* the call to _read. The reason is that in certain + // synthetic stream cases, such as passthrough streams, _read + // may be a completely synchronous operation which may change + // the state of the read buffer, providing enough data when + // before there was *not* enough. + // + // So, the steps are: + // 1. Figure out what the state of things will be after we do + // a read from the buffer. + // + // 2. If that resulting state will trigger a _read, then call _read. + // Note that this may be asynchronous, or synchronous. Yes, it is + // deeply ugly to write APIs this way, but that still doesn't mean + // that the Readable class should behave improperly, as streams are + // designed to be sync/async agnostic. + // Take note if the _read call is sync or async (ie, if the read call + // has returned yet), so that we know whether or not it's safe to emit + // 'readable' etc. + // + // 3. Actually pull the requested chunks out of the buffer and return. + + // if we need a readable event, then we need to do some reading. + var doRead = state.needReadable; + debug('need readable', doRead); + + // if we currently have less than the highWaterMark, then also read some + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + debug('length less than watermark', doRead); + } + + // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. + if (state.ended || state.reading) { + doRead = false; + debug('reading or ended', doRead); + } else if (doRead) { + debug('do read'); + state.reading = true; + state.sync = true; + // if the length is currently zero, then we *need* a readable event. + if (state.length === 0) state.needReadable = true; + // call internal read method + this._read(state.highWaterMark); + state.sync = false; + // If _read pushed data synchronously, then `reading` will be false, + // and we need to re-evaluate how much data we can return to the user. + if (!state.reading) n = howMuchToRead(nOrig, state); + } + var ret; + if (n > 0) ret = fromList(n, state);else ret = null; + if (ret === null) { + state.needReadable = state.length <= state.highWaterMark; + n = 0; + } else { + state.length -= n; + state.awaitDrain = 0; + } + if (state.length === 0) { + // If we have nothing in the buffer, then we want to know + // as soon as we *do* get something into the buffer. + if (!state.ended) state.needReadable = true; + + // If we tried to read() past the EOF, then emit end on the next tick. + if (nOrig !== n && state.ended) endReadable(this); + } + if (ret !== null) this.emit('data', ret); + return ret; +}; +function onEofChunk(stream, state) { + debug('onEofChunk'); + if (state.ended) return; + if (state.decoder) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + if (state.sync) { + // if we are sync, wait until next tick to emit the data. + // Otherwise we risk emitting data in the flow() + // the readable code triggers during a read() call + emitReadable(stream); + } else { + // emit 'readable' now to make sure it gets picked up. + state.needReadable = false; + if (!state.emittedReadable) { + state.emittedReadable = true; + emitReadable_(stream); + } + } +} + +// Don't emit readable right away in sync mode, because this can trigger +// another read() call => stack overflow. This way, it might trigger +// a nextTick recursion warning, but that's not so bad. +function emitReadable(stream) { + var state = stream._readableState; + debug('emitReadable', state.needReadable, state.emittedReadable); + state.needReadable = false; + if (!state.emittedReadable) { + debug('emitReadable', state.flowing); + state.emittedReadable = true; + process.nextTick(emitReadable_, stream); + } +} +function emitReadable_(stream) { + var state = stream._readableState; + debug('emitReadable_', state.destroyed, state.length, state.ended); + if (!state.destroyed && (state.length || state.ended)) { + stream.emit('readable'); + state.emittedReadable = false; + } + + // The stream needs another readable event if + // 1. It is not flowing, as the flow mechanism will take + // care of it. + // 2. It is not ended. + // 3. It is below the highWaterMark, so we can schedule + // another readable later. + state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; + flow(stream); +} + +// at this point, the user has presumably seen the 'readable' event, +// and called read() to consume some data. that may have triggered +// in turn another _read(n) call, in which case reading = true if +// it's in progress. +// However, if we're not ended, or reading, and the length < hwm, +// then go ahead and try to read some more preemptively. +function maybeReadMore(stream, state) { + if (!state.readingMore) { + state.readingMore = true; + process.nextTick(maybeReadMore_, stream, state); + } +} +function maybeReadMore_(stream, state) { + // Attempt to read more data if we should. + // + // The conditions for reading more data are (one of): + // - Not enough data buffered (state.length < state.highWaterMark). The loop + // is responsible for filling the buffer with enough data if such data + // is available. If highWaterMark is 0 and we are not in the flowing mode + // we should _not_ attempt to buffer any extra data. We'll get more data + // when the stream consumer calls read() instead. + // - No data in the buffer, and the stream is in flowing mode. In this mode + // the loop below is responsible for ensuring read() is called. Failing to + // call read here would abort the flow and there's no other mechanism for + // continuing the flow if the stream consumer has just subscribed to the + // 'data' event. + // + // In addition to the above conditions to keep reading data, the following + // conditions prevent the data from being read: + // - The stream has ended (state.ended). + // - There is already a pending 'read' operation (state.reading). This is a + // case where the the stream has called the implementation defined _read() + // method, but they are processing the call asynchronously and have _not_ + // called push() with new data. In this case we skip performing more + // read()s. The execution ends in this method again after the _read() ends + // up calling push() with more data. + while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) { + var len = state.length; + debug('maybeReadMore read 0'); + stream.read(0); + if (len === state.length) + // didn't get any data, stop spinning. + break; + } + state.readingMore = false; +} + +// abstract method. to be overridden in specific implementation classes. +// call cb(er, data) where data is <= n in length. +// for virtual (non-string, non-buffer) streams, "length" is somewhat +// arbitrary, and perhaps not very meaningful. +Readable.prototype._read = function (n) { + errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')); +}; +Readable.prototype.pipe = function (dest, pipeOpts) { + var src = this; + var state = this._readableState; + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; + case 1: + state.pipes = [state.pipes, dest]; + break; + default: + state.pipes.push(dest); + break; + } + state.pipesCount += 1; + debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); + var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; + var endFn = doEnd ? onend : unpipe; + if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn); + dest.on('unpipe', onunpipe); + function onunpipe(readable, unpipeInfo) { + debug('onunpipe'); + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } + } + } + function onend() { + debug('onend'); + dest.end(); + } + + // when the dest drains, it reduces the awaitDrain counter + // on the source. This would be more elegant with a .once() + // handler in flow(), but adding and removing repeatedly is + // too slow. + var ondrain = pipeOnDrain(src); + dest.on('drain', ondrain); + var cleanedUp = false; + function cleanup() { + debug('cleanup'); + // cleanup event handlers once the pipe is broken + dest.removeListener('close', onclose); + dest.removeListener('finish', onfinish); + dest.removeListener('drain', ondrain); + dest.removeListener('error', onerror); + dest.removeListener('unpipe', onunpipe); + src.removeListener('end', onend); + src.removeListener('end', unpipe); + src.removeListener('data', ondata); + cleanedUp = true; + + // if the reader is waiting for a drain event from this + // specific writer, then it would cause it to never start + // flowing again. + // So, if this is awaiting a drain, then we just call it now. + // If we don't know, then assume that we are waiting for one. + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); + } + src.on('data', ondata); + function ondata(chunk) { + debug('ondata'); + var ret = dest.write(chunk); + debug('dest.write', ret); + if (ret === false) { + // If the user unpiped during `dest.write()`, it is possible + // to get stuck in a permanently paused state if that write + // also returned false. + // => Check whether `dest` is still a piping destination. + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { + debug('false write response, pause', state.awaitDrain); + state.awaitDrain++; + } + src.pause(); + } + } + + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. + function onerror(er) { + debug('onerror', er); + unpipe(); + dest.removeListener('error', onerror); + if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er); + } + + // Make sure our error handler is attached before userland ones. + prependListener(dest, 'error', onerror); + + // Both close and finish should trigger unpipe, but only once. + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } + dest.once('close', onclose); + function onfinish() { + debug('onfinish'); + dest.removeListener('close', onclose); + unpipe(); + } + dest.once('finish', onfinish); + function unpipe() { + debug('unpipe'); + src.unpipe(dest); + } + + // tell the dest that it's being piped to + dest.emit('pipe', src); + + // start the flow if it hasn't been started already. + if (!state.flowing) { + debug('pipe resume'); + src.resume(); + } + return dest; +}; +function pipeOnDrain(src) { + return function pipeOnDrainFunctionResult() { + var state = src._readableState; + debug('pipeOnDrain', state.awaitDrain); + if (state.awaitDrain) state.awaitDrain--; + if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { + state.flowing = true; + flow(src); + } + }; +} +Readable.prototype.unpipe = function (dest) { + var state = this._readableState; + var unpipeInfo = { + hasUnpiped: false + }; + + // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) return this; + + // just one destination. most common case. + if (state.pipesCount === 1) { + // passed in one, but it's not the right one. + if (dest && dest !== state.pipes) return this; + if (!dest) dest = state.pipes; + + // got a match. + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) dest.emit('unpipe', this, unpipeInfo); + return this; + } + + // slow case. multiple pipe destinations. + + if (!dest) { + // remove all. + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, { + hasUnpiped: false + }); + return this; + } + + // try to find the right one. + var index = indexOf(state.pipes, dest); + if (index === -1) return this; + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) state.pipes = state.pipes[0]; + dest.emit('unpipe', this, unpipeInfo); + return this; +}; + +// set up data events if they are asked for +// Ensure readable listeners eventually get something +Readable.prototype.on = function (ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + var state = this._readableState; + if (ev === 'data') { + // update readableListening so that resume() may be a no-op + // a few lines down. This is needed to support once('readable'). + state.readableListening = this.listenerCount('readable') > 0; + + // Try start flowing on next tick if stream isn't explicitly paused + if (state.flowing !== false) this.resume(); + } else if (ev === 'readable') { + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.flowing = false; + state.emittedReadable = false; + debug('on readable', state.length, state.reading); + if (state.length) { + emitReadable(this); + } else if (!state.reading) { + process.nextTick(nReadingNextTick, this); + } + } + } + return res; +}; +Readable.prototype.addListener = Readable.prototype.on; +Readable.prototype.removeListener = function (ev, fn) { + var res = Stream.prototype.removeListener.call(this, ev, fn); + if (ev === 'readable') { + // We need to check if there is someone still listening to + // readable and reset the state. However this needs to happen + // after readable has been emitted but before I/O (nextTick) to + // support once('readable', fn) cycles. This means that calling + // resume within the same tick will have no + // effect. + process.nextTick(updateReadableListening, this); + } + return res; +}; +Readable.prototype.removeAllListeners = function (ev) { + var res = Stream.prototype.removeAllListeners.apply(this, arguments); + if (ev === 'readable' || ev === undefined) { + // We need to check if there is someone still listening to + // readable and reset the state. However this needs to happen + // after readable has been emitted but before I/O (nextTick) to + // support once('readable', fn) cycles. This means that calling + // resume within the same tick will have no + // effect. + process.nextTick(updateReadableListening, this); + } + return res; +}; +function updateReadableListening(self) { + var state = self._readableState; + state.readableListening = self.listenerCount('readable') > 0; + if (state.resumeScheduled && !state.paused) { + // flowing needs to be set to true now, otherwise + // the upcoming resume will not flow. + state.flowing = true; + + // crude way to check if we should resume + } else if (self.listenerCount('data') > 0) { + self.resume(); + } +} +function nReadingNextTick(self) { + debug('readable nexttick read 0'); + self.read(0); +} + +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. +Readable.prototype.resume = function () { + var state = this._readableState; + if (!state.flowing) { + debug('resume'); + // we flow only if there is no one listening + // for readable, but we still have to call + // resume() + state.flowing = !state.readableListening; + resume(this, state); + } + state.paused = false; + return this; +}; +function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + process.nextTick(resume_, stream, state); + } +} +function resume_(stream, state) { + debug('resume', state.reading); + if (!state.reading) { + stream.read(0); + } + state.resumeScheduled = false; + stream.emit('resume'); + flow(stream); + if (state.flowing && !state.reading) stream.read(0); +} +Readable.prototype.pause = function () { + debug('call pause flowing=%j', this._readableState.flowing); + if (this._readableState.flowing !== false) { + debug('pause'); + this._readableState.flowing = false; + this.emit('pause'); + } + this._readableState.paused = true; + return this; +}; +function flow(stream) { + var state = stream._readableState; + debug('flow', state.flowing); + while (state.flowing && stream.read() !== null); +} + +// wrap an old-style stream as the async data source. +// This is *not* part of the readable stream interface. +// It is an ugly unfortunate mess of history. +Readable.prototype.wrap = function (stream) { + var _this = this; + var state = this._readableState; + var paused = false; + stream.on('end', function () { + debug('wrapped end'); + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) _this.push(chunk); + } + _this.push(null); + }); + stream.on('data', function (chunk) { + debug('wrapped data'); + if (state.decoder) chunk = state.decoder.write(chunk); + + // don't skip over falsy values in objectMode + if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; + var ret = _this.push(chunk); + if (!ret) { + paused = true; + stream.pause(); + } + }); + + // proxy all the other methods. + // important when wrapping filters and duplexes. + for (var i in stream) { + if (this[i] === undefined && typeof stream[i] === 'function') { + this[i] = function methodWrap(method) { + return function methodWrapReturnFunction() { + return stream[method].apply(stream, arguments); + }; + }(i); + } + } + + // proxy certain important events. + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); + } + + // when we try to consume some more bytes, simply unpause the + // underlying stream. + this._read = function (n) { + debug('wrapped _read', n); + if (paused) { + paused = false; + stream.resume(); + } + }; + return this; +}; +if (typeof Symbol === 'function') { + Readable.prototype[Symbol.asyncIterator] = function () { + if (createReadableStreamAsyncIterator === undefined) { + createReadableStreamAsyncIterator = __webpack_require__(/*! ./internal/streams/async_iterator */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/async_iterator.js"); + } + return createReadableStreamAsyncIterator(this); + }; +} +Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.highWaterMark; + } +}); +Object.defineProperty(Readable.prototype, 'readableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState && this._readableState.buffer; + } +}); +Object.defineProperty(Readable.prototype, 'readableFlowing', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.flowing; + }, + set: function set(state) { + if (this._readableState) { + this._readableState.flowing = state; + } + } +}); + +// exposed for testing purposes only. +Readable._fromList = fromList; +Object.defineProperty(Readable.prototype, 'readableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.length; + } +}); + +// Pluck off n bytes from an array of buffers. +// Length is the combined lengths of all the buffers in the list. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromList(n, state) { + // nothing buffered + if (state.length === 0) return null; + var ret; + if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { + // read it all, truncate the list + if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + // read part of list + ret = state.buffer.consume(n, state.decoder); + } + return ret; +} +function endReadable(stream) { + var state = stream._readableState; + debug('endReadable', state.endEmitted); + if (!state.endEmitted) { + state.ended = true; + process.nextTick(endReadableNT, state, stream); + } +} +function endReadableNT(state, stream) { + debug('endReadableNT', state.endEmitted, state.length); + + // Check that we didn't get one last unshift. + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); + if (state.autoDestroy) { + // In case of duplex streams we need a way to detect + // if the writable side is ready for autoDestroy as well + var wState = stream._writableState; + if (!wState || wState.autoDestroy && wState.finished) { + stream.destroy(); + } + } + } +} +if (typeof Symbol === 'function') { + Readable.from = function (iterable, opts) { + if (from === undefined) { + from = __webpack_require__(/*! ./internal/streams/from */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/from.js"); + } + return from(Readable, iterable, opts); + }; +} +function indexOf(xs, x) { + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) return i; + } + return -1; +} + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js": +/*!********************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js ***! + \********************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// A bit simpler than readable streams. +// Implement an async ._write(chunk, encoding, cb), and it'll handle all +// the drain event emission and buffering. + + + +module.exports = Writable; + +/* */ +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; + this.next = null; +} + +// It seems a linked list but it is not +// there will be only 2 of these for each stream +function CorkedRequest(state) { + var _this = this; + this.next = null; + this.entry = null; + this.finish = function () { + onCorkedFinish(_this, state); + }; +} +/* */ + +/**/ +var Duplex; +/**/ + +Writable.WritableState = WritableState; + +/**/ +var internalUtil = { + deprecate: __webpack_require__(/*! util-deprecate */ "./build/cht-core-4-6/api/node_modules/util-deprecate/node.js") +}; +/**/ + +/**/ +var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/stream.js"); +/**/ + +var Buffer = __webpack_require__(/*! buffer */ "buffer").Buffer; +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} +var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/destroy.js"); +var _require = __webpack_require__(/*! ./internal/streams/state */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/state.js"), + getHighWaterMark = _require.getHighWaterMark; +var _require$codes = __webpack_require__(/*! ../errors */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js").codes, + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, + ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, + ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, + ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; +var errorOrDestroy = destroyImpl.errorOrDestroy; +__webpack_require__(/*! inherits */ "./build/cht-core-4-6/api/node_modules/inherits/inherits.js")(Writable, Stream); +function nop() {} +function WritableState(options, stream, isDuplex) { + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js"); + options = options || {}; + + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream, + // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; + + // object stream flag to indicate whether or not this stream + // contains buffers or objects. + this.objectMode = !!options.objectMode; + if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; + + // the point at which write() starts returning false + // Note: 0 is a valid value, means that we always return false if + // the entire buffer is not flushed immediately on write() + this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); + + // if _final has been called + this.finalCalled = false; + + // drain event flag. + this.needDrain = false; + // at the start of calling end() + this.ending = false; + // when end() has been called, and returned + this.ended = false; + // when 'finish' is emitted + this.finished = false; + + // has it been destroyed + this.destroyed = false; + + // should we decode strings into buffers before passing to _write? + // this is here so that some node-core streams can optimize string + // handling at a lower level. + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // not an actual buffer we keep track of, but a measurement + // of how much we're waiting to get pushed to some underlying + // socket or file. + this.length = 0; + + // a flag to see when we're in the middle of a write. + this.writing = false; + + // when true all writes will be buffered until .uncork() call + this.corked = 0; + + // a flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, because any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. + this.sync = true; + + // a flag to know if we're processing previously buffered items, which + // may call the _write() callback in the same tick, so that we don't + // end up in an overlapped onwrite situation. + this.bufferProcessing = false; + + // the callback that's passed to _write(chunk,cb) + this.onwrite = function (er) { + onwrite(stream, er); + }; + + // the callback that the user supplies to write(chunk,encoding,cb) + this.writecb = null; + + // the amount that is being written when _write is called. + this.writelen = 0; + this.bufferedRequest = null; + this.lastBufferedRequest = null; + + // number of pending user-supplied write callbacks + // this must be 0 before 'finish' can be emitted + this.pendingcb = 0; + + // emit prefinish if the only thing we're waiting for is _write cbs + // This is relevant for synchronous Transform streams + this.prefinished = false; + + // True if the error was already emitted and should not be thrown again + this.errorEmitted = false; + + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; + + // Should .destroy() be called after 'finish' (and potentially 'end') + this.autoDestroy = !!options.autoDestroy; + + // count buffered requests + this.bufferedRequestCount = 0; + + // allocate the first CorkedRequest, there is always + // one allocated and free to use, and we maintain at most two + this.corkedRequestsFree = new CorkedRequest(this); +} +WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest; + var out = []; + while (current) { + out.push(current); + current = current.next; + } + return out; +}; +(function () { + try { + Object.defineProperty(WritableState.prototype, 'buffer', { + get: internalUtil.deprecate(function writableStateBufferGetter() { + return this.getBuffer(); + }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') + }); + } catch (_) {} +})(); + +// Test _writableState for inheritance to account for Duplex streams, +// whose prototype chain only points to Readable. +var realHasInstance; +if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { + realHasInstance = Function.prototype[Symbol.hasInstance]; + Object.defineProperty(Writable, Symbol.hasInstance, { + value: function value(object) { + if (realHasInstance.call(this, object)) return true; + if (this !== Writable) return false; + return object && object._writableState instanceof WritableState; + } + }); +} else { + realHasInstance = function realHasInstance(object) { + return object instanceof this; + }; +} +function Writable(options) { + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js"); + + // Writable ctor is applied to Duplexes, too. + // `realHasInstance` is necessary because using plain `instanceof` + // would return false, as no `_writableState` property is attached. + + // Trying to use the custom `instanceof` for Writable here will also break the + // Node.js LazyTransform implementation, which has a non-trivial getter for + // `_writableState` that would lead to infinite recursion. + + // Checking for a Stream.Duplex instance is faster here instead of inside + // the WritableState constructor, at least with V8 6.5 + var isDuplex = this instanceof Duplex; + if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); + this._writableState = new WritableState(options, this, isDuplex); + + // legacy. + this.writable = true; + if (options) { + if (typeof options.write === 'function') this._write = options.write; + if (typeof options.writev === 'function') this._writev = options.writev; + if (typeof options.destroy === 'function') this._destroy = options.destroy; + if (typeof options.final === 'function') this._final = options.final; + } + Stream.call(this); +} + +// Otherwise people can pipe Writable streams, which is just wrong. +Writable.prototype.pipe = function () { + errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); +}; +function writeAfterEnd(stream, cb) { + var er = new ERR_STREAM_WRITE_AFTER_END(); + // TODO: defer error events consistently everywhere, not just the cb + errorOrDestroy(stream, er); + process.nextTick(cb, er); +} + +// Checks that a user-supplied chunk is valid, especially for the particular +// mode the stream is in. Currently this means that `null` is never accepted +// and undefined/non-string values are only allowed in object mode. +function validChunk(stream, state, chunk, cb) { + var er; + if (chunk === null) { + er = new ERR_STREAM_NULL_VALUES(); + } else if (typeof chunk !== 'string' && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); + } + if (er) { + errorOrDestroy(stream, er); + process.nextTick(cb, er); + return false; + } + return true; +} +Writable.prototype.write = function (chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + var isBuf = !state.objectMode && _isUint8Array(chunk); + if (isBuf && !Buffer.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; + if (typeof cb !== 'function') cb = nop; + if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++; + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + } + return ret; +}; +Writable.prototype.cork = function () { + this._writableState.corked++; +}; +Writable.prototype.uncork = function () { + var state = this._writableState; + if (state.corked) { + state.corked--; + if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); + } +}; +Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + // node::ParseEncoding() requires lower case. + if (typeof encoding === 'string') encoding = encoding.toLowerCase(); + if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding); + this._writableState.defaultEncoding = encoding; + return this; +}; +Object.defineProperty(Writable.prototype, 'writableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); + } +}); +function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { + chunk = Buffer.from(chunk, encoding); + } + return chunk; +} +Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; + } +}); + +// if we're already writing something, then just put this +// in the queue, and wait our turn. Otherwise, call _write +// If we return false, then we need a drain event, so set that flag. +function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = 'buffer'; + chunk = newChunk; + } + } + var len = state.objectMode ? 1 : chunk.length; + state.length += len; + var ret = state.length < state.highWaterMark; + // we must ensure that previous needDrain will not be reset to false. + if (!ret) state.needDrain = true; + if (state.writing || state.corked) { + var last = state.lastBufferedRequest; + state.lastBufferedRequest = { + chunk: chunk, + encoding: encoding, + isBuf: isBuf, + callback: cb, + next: null + }; + if (last) { + last.next = state.lastBufferedRequest; + } else { + state.bufferedRequest = state.lastBufferedRequest; + } + state.bufferedRequestCount += 1; + } else { + doWrite(stream, state, false, len, chunk, encoding, cb); + } + return ret; +} +function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); + state.sync = false; +} +function onwriteError(stream, state, sync, er, cb) { + --state.pendingcb; + if (sync) { + // defer the callback if we are being called synchronously + // to avoid piling up things on the stack + process.nextTick(cb, er); + // this can emit finish, and it will always happen + // after error + process.nextTick(finishMaybe, stream, state); + stream._writableState.errorEmitted = true; + errorOrDestroy(stream, er); + } else { + // the caller expect this to happen before if + // it is async + cb(er); + stream._writableState.errorEmitted = true; + errorOrDestroy(stream, er); + // this can emit finish, but finish must + // always follow error + finishMaybe(stream, state); + } +} +function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; +} +function onwrite(stream, er) { + var state = stream._writableState; + var sync = state.sync; + var cb = state.writecb; + if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK(); + onwriteStateUpdate(state); + if (er) onwriteError(stream, state, sync, er, cb);else { + // Check if we're actually ready to finish, but don't emit yet + var finished = needFinish(state) || stream.destroyed; + if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { + clearBuffer(stream, state); + } + if (sync) { + process.nextTick(afterWrite, stream, state, finished, cb); + } else { + afterWrite(stream, state, finished, cb); + } + } +} +function afterWrite(stream, state, finished, cb) { + if (!finished) onwriteDrain(stream, state); + state.pendingcb--; + cb(); + finishMaybe(stream, state); +} + +// Must force callback to be called on nextTick, so that we don't +// emit 'drain' before the write() consumer gets the 'false' return +// value, and has a chance to attach a 'drain' listener. +function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream.emit('drain'); + } +} + +// if there's something in the buffer waiting, then process it +function clearBuffer(stream, state) { + state.bufferProcessing = true; + var entry = state.bufferedRequest; + if (stream._writev && entry && entry.next) { + // Fast case, write everything using _writev() + var l = state.bufferedRequestCount; + var buffer = new Array(l); + var holder = state.corkedRequestsFree; + holder.entry = entry; + var count = 0; + var allBuffers = true; + while (entry) { + buffer[count] = entry; + if (!entry.isBuf) allBuffers = false; + entry = entry.next; + count += 1; + } + buffer.allBuffers = allBuffers; + doWrite(stream, state, true, state.length, buffer, '', holder.finish); + + // doWrite is almost always async, defer these to save a bit of time + // as the hot path ends with doWrite + state.pendingcb++; + state.lastBufferedRequest = null; + if (holder.next) { + state.corkedRequestsFree = holder.next; + holder.next = null; + } else { + state.corkedRequestsFree = new CorkedRequest(state); + } + state.bufferedRequestCount = 0; + } else { + // Slow case, write chunks one-by-one + while (entry) { + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + doWrite(stream, state, false, len, chunk, encoding, cb); + entry = entry.next; + state.bufferedRequestCount--; + // if we didn't call the onwrite immediately, then + // it means that we need to wait until it does. + // also, that means that the chunk and cb are currently + // being processed, so move the buffer counter past them. + if (state.writing) { + break; + } + } + if (entry === null) state.lastBufferedRequest = null; + } + state.bufferedRequest = entry; + state.bufferProcessing = false; +} +Writable.prototype._write = function (chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); +}; +Writable.prototype._writev = null; +Writable.prototype.end = function (chunk, encoding, cb) { + var state = this._writableState; + if (typeof chunk === 'function') { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); + + // .end() fully uncorks + if (state.corked) { + state.corked = 1; + this.uncork(); + } + + // ignore unnecessary end() calls. + if (!state.ending) endWritable(this, state, cb); + return this; +}; +Object.defineProperty(Writable.prototype, 'writableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.length; + } +}); +function needFinish(state) { + return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; +} +function callFinal(stream, state) { + stream._final(function (err) { + state.pendingcb--; + if (err) { + errorOrDestroy(stream, err); + } + state.prefinished = true; + stream.emit('prefinish'); + finishMaybe(stream, state); + }); +} +function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === 'function' && !state.destroyed) { + state.pendingcb++; + state.finalCalled = true; + process.nextTick(callFinal, stream, state); + } else { + state.prefinished = true; + stream.emit('prefinish'); + } + } +} +function finishMaybe(stream, state) { + var need = needFinish(state); + if (need) { + prefinish(stream, state); + if (state.pendingcb === 0) { + state.finished = true; + stream.emit('finish'); + if (state.autoDestroy) { + // In case of duplex streams we need a way to detect + // if the readable side is ready for autoDestroy as well + var rState = stream._readableState; + if (!rState || rState.autoDestroy && rState.endEmitted) { + stream.destroy(); + } + } + } + } + return need; +} +function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) process.nextTick(cb);else stream.once('finish', cb); + } + state.ended = true; + stream.writable = false; +} +function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } + + // reuse the free corkReq. + state.corkedRequestsFree.next = corkReq; +} +Object.defineProperty(Writable.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._writableState === undefined) { + return false; + } + return this._writableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._writableState) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._writableState.destroyed = value; + } +}); +Writable.prototype.destroy = destroyImpl.destroy; +Writable.prototype._undestroy = destroyImpl.undestroy; +Writable.prototype._destroy = function (err, cb) { + cb(err); +}; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/async_iterator.js": +/*!***********************************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/async_iterator.js ***! + \***********************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var _Object$setPrototypeO; +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +var finished = __webpack_require__(/*! ./end-of-stream */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); +var kLastResolve = Symbol('lastResolve'); +var kLastReject = Symbol('lastReject'); +var kError = Symbol('error'); +var kEnded = Symbol('ended'); +var kLastPromise = Symbol('lastPromise'); +var kHandlePromise = Symbol('handlePromise'); +var kStream = Symbol('stream'); +function createIterResult(value, done) { + return { + value: value, + done: done + }; +} +function readAndResolve(iter) { + var resolve = iter[kLastResolve]; + if (resolve !== null) { + var data = iter[kStream].read(); + // we defer if data is null + // we can be expecting either 'end' or + // 'error' + if (data !== null) { + iter[kLastPromise] = null; + iter[kLastResolve] = null; + iter[kLastReject] = null; + resolve(createIterResult(data, false)); + } + } +} +function onReadable(iter) { + // we wait for the next tick, because it might + // emit an error with process.nextTick + process.nextTick(readAndResolve, iter); +} +function wrapForNext(lastPromise, iter) { + return function (resolve, reject) { + lastPromise.then(function () { + if (iter[kEnded]) { + resolve(createIterResult(undefined, true)); + return; + } + iter[kHandlePromise](resolve, reject); + }, reject); + }; +} +var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}); +var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { + get stream() { + return this[kStream]; + }, + next: function next() { + var _this = this; + // if we have detected an error in the meanwhile + // reject straight away + var error = this[kError]; + if (error !== null) { + return Promise.reject(error); + } + if (this[kEnded]) { + return Promise.resolve(createIterResult(undefined, true)); + } + if (this[kStream].destroyed) { + // We need to defer via nextTick because if .destroy(err) is + // called, the error will be emitted via nextTick, and + // we cannot guarantee that there is no error lingering around + // waiting to be emitted. + return new Promise(function (resolve, reject) { + process.nextTick(function () { + if (_this[kError]) { + reject(_this[kError]); + } else { + resolve(createIterResult(undefined, true)); + } + }); + }); + } + + // if we have multiple next() calls + // we will wait for the previous Promise to finish + // this logic is optimized to support for await loops, + // where next() is only called once at a time + var lastPromise = this[kLastPromise]; + var promise; + if (lastPromise) { + promise = new Promise(wrapForNext(lastPromise, this)); + } else { + // fast path needed to support multiple this.push() + // without triggering the next() queue + var data = this[kStream].read(); + if (data !== null) { + return Promise.resolve(createIterResult(data, false)); + } + promise = new Promise(this[kHandlePromise]); + } + this[kLastPromise] = promise; + return promise; + } +}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () { + return this; +}), _defineProperty(_Object$setPrototypeO, "return", function _return() { + var _this2 = this; + // destroy(err, cb) is a private API + // we can guarantee we have that here, because we control the + // Readable class this is attached to + return new Promise(function (resolve, reject) { + _this2[kStream].destroy(null, function (err) { + if (err) { + reject(err); + return; + } + resolve(createIterResult(undefined, true)); + }); + }); +}), _Object$setPrototypeO), AsyncIteratorPrototype); +var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { + var _Object$create; + var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { + value: stream, + writable: true + }), _defineProperty(_Object$create, kLastResolve, { + value: null, + writable: true + }), _defineProperty(_Object$create, kLastReject, { + value: null, + writable: true + }), _defineProperty(_Object$create, kError, { + value: null, + writable: true + }), _defineProperty(_Object$create, kEnded, { + value: stream._readableState.endEmitted, + writable: true + }), _defineProperty(_Object$create, kHandlePromise, { + value: function value(resolve, reject) { + var data = iterator[kStream].read(); + if (data) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(data, false)); + } else { + iterator[kLastResolve] = resolve; + iterator[kLastReject] = reject; + } + }, + writable: true + }), _Object$create)); + iterator[kLastPromise] = null; + finished(stream, function (err) { + if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { + var reject = iterator[kLastReject]; + // reject if we are waiting for data in the Promise + // returned by next() and store the error + if (reject !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + reject(err); + } + iterator[kError] = err; + return; + } + var resolve = iterator[kLastResolve]; + if (resolve !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(undefined, true)); + } + iterator[kEnded] = true; + }); + stream.on('readable', onReadable.bind(null, iterator)); + return iterator; +}; +module.exports = createReadableStreamAsyncIterator; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/buffer_list.js": +/*!********************************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/buffer_list.js ***! + \********************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +var _require = __webpack_require__(/*! buffer */ "buffer"), + Buffer = _require.Buffer; +var _require2 = __webpack_require__(/*! util */ "util"), + inspect = _require2.inspect; +var custom = inspect && inspect.custom || 'inspect'; +function copyBuffer(src, target, offset) { + Buffer.prototype.copy.call(src, target, offset); +} +module.exports = /*#__PURE__*/function () { + function BufferList() { + _classCallCheck(this, BufferList); + this.head = null; + this.tail = null; + this.length = 0; + } + _createClass(BufferList, [{ + key: "push", + value: function push(v) { + var entry = { + data: v, + next: null + }; + if (this.length > 0) this.tail.next = entry;else this.head = entry; + this.tail = entry; + ++this.length; + } + }, { + key: "unshift", + value: function unshift(v) { + var entry = { + data: v, + next: this.head + }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + } + }, { + key: "shift", + value: function shift() { + if (this.length === 0) return; + var ret = this.head.data; + if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; + --this.length; + return ret; + } + }, { + key: "clear", + value: function clear() { + this.head = this.tail = null; + this.length = 0; + } + }, { + key: "join", + value: function join(s) { + if (this.length === 0) return ''; + var p = this.head; + var ret = '' + p.data; + while (p = p.next) ret += s + p.data; + return ret; + } + }, { + key: "concat", + value: function concat(n) { + if (this.length === 0) return Buffer.alloc(0); + var ret = Buffer.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; + while (p) { + copyBuffer(p.data, ret, i); + i += p.data.length; + p = p.next; + } + return ret; + } + + // Consumes a specified amount of bytes or characters from the buffered data. + }, { + key: "consume", + value: function consume(n, hasStrings) { + var ret; + if (n < this.head.data.length) { + // `slice` is the same for buffers and strings. + ret = this.head.data.slice(0, n); + this.head.data = this.head.data.slice(n); + } else if (n === this.head.data.length) { + // First chunk is a perfect match. + ret = this.shift(); + } else { + // Result spans more than one buffer. + ret = hasStrings ? this._getString(n) : this._getBuffer(n); + } + return ret; + } + }, { + key: "first", + value: function first() { + return this.head.data; + } + + // Consumes a specified amount of characters from the buffered data. + }, { + key: "_getString", + value: function _getString(n) { + var p = this.head; + var c = 1; + var ret = p.data; + n -= ret.length; + while (p = p.next) { + var str = p.data; + var nb = n > str.length ? str.length : n; + if (nb === str.length) ret += str;else ret += str.slice(0, n); + n -= nb; + if (n === 0) { + if (nb === str.length) { + ++c; + if (p.next) this.head = p.next;else this.head = this.tail = null; + } else { + this.head = p; + p.data = str.slice(nb); + } + break; + } + ++c; + } + this.length -= c; + return ret; + } + + // Consumes a specified amount of bytes from the buffered data. + }, { + key: "_getBuffer", + value: function _getBuffer(n) { + var ret = Buffer.allocUnsafe(n); + var p = this.head; + var c = 1; + p.data.copy(ret); + n -= p.data.length; + while (p = p.next) { + var buf = p.data; + var nb = n > buf.length ? buf.length : n; + buf.copy(ret, ret.length - n, 0, nb); + n -= nb; + if (n === 0) { + if (nb === buf.length) { + ++c; + if (p.next) this.head = p.next;else this.head = this.tail = null; + } else { + this.head = p; + p.data = buf.slice(nb); + } + break; + } + ++c; + } + this.length -= c; + return ret; + } + + // Make sure the linked list only shows the minimal necessary information. + }, { + key: custom, + value: function value(_, options) { + return inspect(this, _objectSpread(_objectSpread({}, options), {}, { + // Only inspect one level. + depth: 0, + // It should not recurse. + customInspect: false + })); + } + }]); + return BufferList; +}(); + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/destroy.js": +/*!****************************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/destroy.js ***! + \****************************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; + + +// undocumented cb() API, needed for core, not for public API +function destroy(err, cb) { + var _this = this; + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err) { + if (!this._writableState) { + process.nextTick(emitErrorNT, this, err); + } else if (!this._writableState.errorEmitted) { + this._writableState.errorEmitted = true; + process.nextTick(emitErrorNT, this, err); + } + } + return this; + } + + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks + + if (this._readableState) { + this._readableState.destroyed = true; + } + + // if this is a duplex stream mark the writable part as destroyed as well + if (this._writableState) { + this._writableState.destroyed = true; + } + this._destroy(err || null, function (err) { + if (!cb && err) { + if (!_this._writableState) { + process.nextTick(emitErrorAndCloseNT, _this, err); + } else if (!_this._writableState.errorEmitted) { + _this._writableState.errorEmitted = true; + process.nextTick(emitErrorAndCloseNT, _this, err); + } else { + process.nextTick(emitCloseNT, _this); + } + } else if (cb) { + process.nextTick(emitCloseNT, _this); + cb(err); + } else { + process.nextTick(emitCloseNT, _this); + } + }); + return this; +} +function emitErrorAndCloseNT(self, err) { + emitErrorNT(self, err); + emitCloseNT(self); +} +function emitCloseNT(self) { + if (self._writableState && !self._writableState.emitClose) return; + if (self._readableState && !self._readableState.emitClose) return; + self.emit('close'); +} +function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finalCalled = false; + this._writableState.prefinished = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; + } +} +function emitErrorNT(self, err) { + self.emit('error', err); +} +function errorOrDestroy(stream, err) { + // We have tests that rely on errors being emitted + // in the same tick, so changing this is semver major. + // For now when you opt-in to autoDestroy we allow + // the error to be emitted nextTick. In a future + // semver major update we should change the default to this. + + var rState = stream._readableState; + var wState = stream._writableState; + if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err); +} +module.exports = { + destroy: destroy, + undestroy: undestroy, + errorOrDestroy: errorOrDestroy +}; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/end-of-stream.js": +/*!**********************************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***! + \**********************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +// Ported from https://github.com/mafintosh/end-of-stream with +// permission from the author, Mathias Buus (@mafintosh). + + + +var ERR_STREAM_PREMATURE_CLOSE = __webpack_require__(/*! ../../../errors */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js").codes.ERR_STREAM_PREMATURE_CLOSE; +function once(callback) { + var called = false; + return function () { + if (called) return; + called = true; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + callback.apply(this, args); + }; +} +function noop() {} +function isRequest(stream) { + return stream.setHeader && typeof stream.abort === 'function'; +} +function eos(stream, opts, callback) { + if (typeof opts === 'function') return eos(stream, null, opts); + if (!opts) opts = {}; + callback = once(callback || noop); + var readable = opts.readable || opts.readable !== false && stream.readable; + var writable = opts.writable || opts.writable !== false && stream.writable; + var onlegacyfinish = function onlegacyfinish() { + if (!stream.writable) onfinish(); + }; + var writableEnded = stream._writableState && stream._writableState.finished; + var onfinish = function onfinish() { + writable = false; + writableEnded = true; + if (!readable) callback.call(stream); + }; + var readableEnded = stream._readableState && stream._readableState.endEmitted; + var onend = function onend() { + readable = false; + readableEnded = true; + if (!writable) callback.call(stream); + }; + var onerror = function onerror(err) { + callback.call(stream, err); + }; + var onclose = function onclose() { + var err; + if (readable && !readableEnded) { + if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream, err); + } + if (writable && !writableEnded) { + if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream, err); + } + }; + var onrequest = function onrequest() { + stream.req.on('finish', onfinish); + }; + if (isRequest(stream)) { + stream.on('complete', onfinish); + stream.on('abort', onclose); + if (stream.req) onrequest();else stream.on('request', onrequest); + } else if (writable && !stream._writableState) { + // legacy streams + stream.on('end', onlegacyfinish); + stream.on('close', onlegacyfinish); + } + stream.on('end', onend); + stream.on('finish', onfinish); + if (opts.error !== false) stream.on('error', onerror); + stream.on('close', onclose); + return function () { + stream.removeListener('complete', onfinish); + stream.removeListener('abort', onclose); + stream.removeListener('request', onrequest); + if (stream.req) stream.req.removeListener('finish', onfinish); + stream.removeListener('end', onlegacyfinish); + stream.removeListener('close', onlegacyfinish); + stream.removeListener('finish', onfinish); + stream.removeListener('end', onend); + stream.removeListener('error', onerror); + stream.removeListener('close', onclose); + }; +} +module.exports = eos; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/from.js": +/*!*************************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/from.js ***! + \*************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +var ERR_INVALID_ARG_TYPE = __webpack_require__(/*! ../../../errors */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js").codes.ERR_INVALID_ARG_TYPE; +function from(Readable, iterable, opts) { + var iterator; + if (iterable && typeof iterable.next === 'function') { + iterator = iterable; + } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable); + var readable = new Readable(_objectSpread({ + objectMode: true + }, opts)); + // Reading boolean to protect against _read + // being called before last iteration completion. + var reading = false; + readable._read = function () { + if (!reading) { + reading = true; + next(); + } + }; + function next() { + return _next2.apply(this, arguments); + } + function _next2() { + _next2 = _asyncToGenerator(function* () { + try { + var _yield$iterator$next = yield iterator.next(), + value = _yield$iterator$next.value, + done = _yield$iterator$next.done; + if (done) { + readable.push(null); + } else if (readable.push(yield value)) { + next(); + } else { + reading = false; + } + } catch (err) { + readable.destroy(err); + } + }); + return _next2.apply(this, arguments); + } + return readable; +} +module.exports = from; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/state.js": +/*!**************************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/state.js ***! + \**************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var ERR_INVALID_OPT_VALUE = __webpack_require__(/*! ../../../errors */ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js").codes.ERR_INVALID_OPT_VALUE; +function highWaterMarkFrom(options, isDuplex, duplexKey) { + return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; +} +function getHighWaterMark(state, options, duplexKey, isDuplex) { + var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); + if (hwm != null) { + if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { + var name = isDuplex ? duplexKey : 'highWaterMark'; + throw new ERR_INVALID_OPT_VALUE(name, hwm); + } + return Math.floor(hwm); + } + + // Default value + return state.objectMode ? 16 : 16 * 1024; +} +module.exports = { + getHighWaterMark: getHighWaterMark +}; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/stream.js": +/*!***************************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/stream.js ***! + \***************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +module.exports = __webpack_require__(/*! stream */ "stream"); + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +/** + * winston.js: Top-level include defining Winston. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +const logform = __webpack_require__(/*! logform */ "./build/cht-core-4-6/api/node_modules/logform/index.js"); +const { warn } = __webpack_require__(/*! ./winston/common */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/common.js"); + +/** + * Expose version. Use `require` method for `webpack` support. + * @type {string} + */ +exports.version = __webpack_require__(/*! ../package.json */ "./build/cht-core-4-6/api/node_modules/winston/package.json").version; +/** + * Include transports defined by default by winston + * @type {Array} + */ +exports.transports = __webpack_require__(/*! ./winston/transports */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/index.js"); +/** + * Expose utility methods + * @type {Object} + */ +exports.config = __webpack_require__(/*! ./winston/config */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/config/index.js"); +/** + * Hoist format-related functionality from logform. + * @type {Object} + */ +exports.addColors = logform.levels; +/** + * Hoist format-related functionality from logform. + * @type {Object} + */ +exports.format = logform.format; +/** + * Expose core Logging-related prototypes. + * @type {function} + */ +exports.createLogger = __webpack_require__(/*! ./winston/create-logger */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/create-logger.js"); +/** + * Expose core Logging-related prototypes. + * @type {function} + */ +exports.Logger = __webpack_require__(/*! ./winston/logger */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/logger.js"); +/** + * Expose core Logging-related prototypes. + * @type {Object} + */ +exports.ExceptionHandler = __webpack_require__(/*! ./winston/exception-handler */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-handler.js"); +/** + * Expose core Logging-related prototypes. + * @type {Object} + */ +exports.RejectionHandler = __webpack_require__(/*! ./winston/rejection-handler */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/rejection-handler.js"); +/** + * Expose core Logging-related prototypes. + * @type {Container} + */ +exports.Container = __webpack_require__(/*! ./winston/container */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/container.js"); +/** + * Expose core Logging-related prototypes. + * @type {Object} + */ +exports.Transport = __webpack_require__(/*! winston-transport */ "./build/cht-core-4-6/api/node_modules/winston-transport/index.js"); +/** + * We create and expose a default `Container` to `winston.loggers` so that the + * programmer may manage multiple `winston.Logger` instances without any + * additional overhead. + * @example + * // some-file1.js + * const logger = require('winston').loggers.get('something'); + * + * // some-file2.js + * const logger = require('winston').loggers.get('something'); + */ +exports.loggers = new exports.Container(); + +/** + * We create and expose a 'defaultLogger' so that the programmer may do the + * following without the need to create an instance of winston.Logger directly: + * @example + * const winston = require('winston'); + * winston.log('info', 'some message'); + * winston.error('some error'); + */ +const defaultLogger = exports.createLogger(); + +// Pass through the target methods onto `winston. +Object.keys(exports.config.npm.levels) + .concat([ + 'log', + 'query', + 'stream', + 'add', + 'remove', + 'clear', + 'profile', + 'startTimer', + 'handleExceptions', + 'unhandleExceptions', + 'handleRejections', + 'unhandleRejections', + 'configure', + 'child' + ]) + .forEach( + method => (exports[method] = (...args) => defaultLogger[method](...args)) + ); + +/** + * Define getter / setter for the default logger level which need to be exposed + * by winston. + * @type {string} + */ +Object.defineProperty(exports, "level", ({ + get() { + return defaultLogger.level; + }, + set(val) { + defaultLogger.level = val; + } +})); + +/** + * Define getter for `exceptions` which replaces `handleExceptions` and + * `unhandleExceptions`. + * @type {Object} + */ +Object.defineProperty(exports, "exceptions", ({ + get() { + return defaultLogger.exceptions; + } +})); + +/** + * Define getters / setters for appropriate properties of the default logger + * which need to be exposed by winston. + * @type {Logger} + */ +['exitOnError'].forEach(prop => { + Object.defineProperty(exports, prop, { + get() { + return defaultLogger[prop]; + }, + set(val) { + defaultLogger[prop] = val; + } + }); +}); + +/** + * The default transports and exceptionHandlers for the default winston logger. + * @type {Object} + */ +Object.defineProperty(exports, "default", ({ + get() { + return { + exceptionHandlers: defaultLogger.exceptionHandlers, + rejectionHandlers: defaultLogger.rejectionHandlers, + transports: defaultLogger.transports + }; + } +})); + +// Have friendlier breakage notices for properties that were exposed by default +// on winston < 3.0. +warn.deprecated(exports, 'setLevels'); +warn.forFunctions(exports, 'useFormat', ['cli']); +warn.forProperties(exports, 'useFormat', ['padLevels', 'stripColors']); +warn.forFunctions(exports, 'deprecated', [ + 'addRewriter', + 'addFilter', + 'clone', + 'extend' +]); +warn.forProperties(exports, 'deprecated', ['emitErrs', 'levelLength']); + + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/common.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/common.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +/** + * common.js: Internal helper and utility functions for winston. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +const { format } = __webpack_require__(/*! util */ "util"); + +/** + * Set of simple deprecation notices and a way to expose them for a set of + * properties. + * @type {Object} + * @private + */ +exports.warn = { + deprecated(prop) { + return () => { + throw new Error(format('{ %s } was removed in winston@3.0.0.', prop)); + }; + }, + useFormat(prop) { + return () => { + throw new Error([ + format('{ %s } was removed in winston@3.0.0.', prop), + 'Use a custom winston.format = winston.format(function) instead.' + ].join('\n')); + }; + }, + forFunctions(obj, type, props) { + props.forEach(prop => { + obj[prop] = exports.warn[type](prop); + }); + }, + forProperties(obj, type, props) { + props.forEach(prop => { + const notice = exports.warn[type](prop); + Object.defineProperty(obj, prop, { + get: notice, + set: notice + }); + }); + } +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/config/index.js": +/*!*********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/config/index.js ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +/** + * index.js: Default settings for all levels that winston knows about. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +const logform = __webpack_require__(/*! logform */ "./build/cht-core-4-6/api/node_modules/logform/index.js"); +const { configs } = __webpack_require__(/*! triple-beam */ "./build/cht-core-4-6/api/node_modules/triple-beam/index.js"); + +/** + * Export config set for the CLI. + * @type {Object} + */ +exports.cli = logform.levels(configs.cli); + +/** + * Export config set for npm. + * @type {Object} + */ +exports.npm = logform.levels(configs.npm); + +/** + * Export config set for the syslog. + * @type {Object} + */ +exports.syslog = logform.levels(configs.syslog); + +/** + * Hoist addColors from logform where it was refactored into in winston@3. + * @type {Object} + */ +exports.addColors = logform.levels; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/container.js": +/*!******************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/container.js ***! + \******************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * container.js: Inversion of control container for winston logger instances. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +const createLogger = __webpack_require__(/*! ./create-logger */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/create-logger.js"); + +/** + * Inversion of control container for winston logger instances. + * @type {Container} + */ +module.exports = class Container { + /** + * Constructor function for the Container object responsible for managing a + * set of `winston.Logger` instances based on string ids. + * @param {!Object} [options={}] - Default pass-thru options for Loggers. + */ + constructor(options = {}) { + this.loggers = new Map(); + this.options = options; + } + + /** + * Retrieves a `winston.Logger` instance for the specified `id`. If an + * instance does not exist, one is created. + * @param {!string} id - The id of the Logger to get. + * @param {?Object} [options] - Options for the Logger instance. + * @returns {Logger} - A configured Logger instance with a specified id. + */ + add(id, options) { + if (!this.loggers.has(id)) { + // Remark: Simple shallow clone for configuration options in case we pass + // in instantiated protoypal objects + options = Object.assign({}, options || this.options); + const existing = options.transports || this.options.transports; + + // Remark: Make sure if we have an array of transports we slice it to + // make copies of those references. + if (existing) { + options.transports = Array.isArray(existing) ? existing.slice() : [existing]; + } else { + options.transports = []; + } + + const logger = createLogger(options); + logger.on('close', () => this._delete(id)); + this.loggers.set(id, logger); + } + + return this.loggers.get(id); + } + + /** + * Retreives a `winston.Logger` instance for the specified `id`. If + * an instance does not exist, one is created. + * @param {!string} id - The id of the Logger to get. + * @param {?Object} [options] - Options for the Logger instance. + * @returns {Logger} - A configured Logger instance with a specified id. + */ + get(id, options) { + return this.add(id, options); + } + + /** + * Check if the container has a logger with the id. + * @param {?string} id - The id of the Logger instance to find. + * @returns {boolean} - Boolean value indicating if this instance has a + * logger with the specified `id`. + */ + has(id) { + return !!this.loggers.has(id); + } + + /** + * Closes a `Logger` instance with the specified `id` if it exists. + * If no `id` is supplied then all Loggers are closed. + * @param {?string} id - The id of the Logger instance to close. + * @returns {undefined} + */ + close(id) { + if (id) { + return this._removeLogger(id); + } + + this.loggers.forEach((val, key) => this._removeLogger(key)); + } + + /** + * Remove a logger based on the id. + * @param {!string} id - The id of the logger to remove. + * @returns {undefined} + * @private + */ + _removeLogger(id) { + if (!this.loggers.has(id)) { + return; + } + + const logger = this.loggers.get(id); + logger.close(); + this._delete(id); + } + + /** + * Deletes a `Logger` instance with the specified `id`. + * @param {!string} id - The id of the Logger instance to delete from + * container. + * @returns {undefined} + * @private + */ + _delete(id) { + this.loggers.delete(id); + } +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/create-logger.js": +/*!**********************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/create-logger.js ***! + \**********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * create-logger.js: Logger factory for winston logger instances. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +const { LEVEL } = __webpack_require__(/*! triple-beam */ "./build/cht-core-4-6/api/node_modules/triple-beam/index.js"); +const config = __webpack_require__(/*! ./config */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/config/index.js"); +const Logger = __webpack_require__(/*! ./logger */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/logger.js"); +const debug = __webpack_require__(/*! @dabh/diagnostics */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/index.js")('winston:create-logger'); + +function isLevelEnabledFunctionName(level) { + return 'is' + level.charAt(0).toUpperCase() + level.slice(1) + 'Enabled'; +} + +/** + * Create a new instance of a winston Logger. Creates a new + * prototype for each instance. + * @param {!Object} opts - Options for the created logger. + * @returns {Logger} - A newly created logger instance. + */ +module.exports = function (opts = {}) { + // + // Default levels: npm + // + opts.levels = opts.levels || config.npm.levels; + + /** + * DerivedLogger to attach the logs level methods. + * @type {DerivedLogger} + * @extends {Logger} + */ + class DerivedLogger extends Logger { + /** + * Create a new class derived logger for which the levels can be attached to + * the prototype of. This is a V8 optimization that is well know to increase + * performance of prototype functions. + * @param {!Object} options - Options for the created logger. + */ + constructor(options) { + super(options); + } + } + + const logger = new DerivedLogger(opts); + + // + // Create the log level methods for the derived logger. + // + Object.keys(opts.levels).forEach(function (level) { + debug('Define prototype method for "%s"', level); + if (level === 'log') { + // eslint-disable-next-line no-console + console.warn('Level "log" not defined: conflicts with the method "log". Use a different level name.'); + return; + } + + // + // Define prototype methods for each log level e.g.: + // logger.log('info', msg) implies these methods are defined: + // - logger.info(msg) + // - logger.isInfoEnabled() + // + // Remark: to support logger.child this **MUST** be a function + // so it'll always be called on the instance instead of a fixed + // place in the prototype chain. + // + DerivedLogger.prototype[level] = function (...args) { + // Prefer any instance scope, but default to "root" logger + const self = this || logger; + + // Optimize the hot-path which is the single object. + if (args.length === 1) { + const [msg] = args; + const info = msg && msg.message && msg || { message: msg }; + info.level = info[LEVEL] = level; + self._addDefaultMeta(info); + self.write(info); + return (this || logger); + } + + // When provided nothing assume the empty string + if (args.length === 0) { + self.log(level, ''); + return self; + } + + // Otherwise build argument list which could potentially conform to + // either: + // . v3 API: log(obj) + // 2. v1/v2 API: log(level, msg, ... [string interpolate], [{metadata}], [callback]) + return self.log(level, ...args); + }; + + DerivedLogger.prototype[isLevelEnabledFunctionName(level)] = function () { + return (this || logger).isLevelEnabled(level); + }; + }); + + return logger; +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-handler.js": +/*!**************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-handler.js ***! + \**************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * exception-handler.js: Object for handling uncaughtException events. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +const os = __webpack_require__(/*! os */ "os"); +const asyncForEach = __webpack_require__(/*! async/forEach */ "./build/cht-core-4-6/api/node_modules/async/forEach.js"); +const debug = __webpack_require__(/*! @dabh/diagnostics */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/index.js")('winston:exception'); +const once = __webpack_require__(/*! one-time */ "./build/cht-core-4-6/api/node_modules/one-time/index.js"); +const stackTrace = __webpack_require__(/*! stack-trace */ "./build/cht-core-4-6/api/node_modules/stack-trace/lib/stack-trace.js"); +const ExceptionStream = __webpack_require__(/*! ./exception-stream */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-stream.js"); + +/** + * Object for handling uncaughtException events. + * @type {ExceptionHandler} + */ +module.exports = class ExceptionHandler { + /** + * TODO: add contructor description + * @param {!Logger} logger - TODO: add param description + */ + constructor(logger) { + if (!logger) { + throw new Error('Logger is required to handle exceptions'); + } + + this.logger = logger; + this.handlers = new Map(); + } + + /** + * Handles `uncaughtException` events for the current process by adding any + * handlers passed in. + * @returns {undefined} + */ + handle(...args) { + args.forEach(arg => { + if (Array.isArray(arg)) { + return arg.forEach(handler => this._addHandler(handler)); + } + + this._addHandler(arg); + }); + + if (!this.catcher) { + this.catcher = this._uncaughtException.bind(this); + process.on('uncaughtException', this.catcher); + } + } + + /** + * Removes any handlers to `uncaughtException` events for the current + * process. This does not modify the state of the `this.handlers` set. + * @returns {undefined} + */ + unhandle() { + if (this.catcher) { + process.removeListener('uncaughtException', this.catcher); + this.catcher = false; + + Array.from(this.handlers.values()) + .forEach(wrapper => this.logger.unpipe(wrapper)); + } + } + + /** + * TODO: add method description + * @param {Error} err - Error to get information about. + * @returns {mixed} - TODO: add return description. + */ + getAllInfo(err) { + let message = null; + if (err) { + message = typeof err === 'string' ? err : err.message; + } + + return { + error: err, + // TODO (indexzero): how do we configure this? + level: 'error', + message: [ + `uncaughtException: ${(message || '(no error message)')}`, + err && err.stack || ' No stack trace' + ].join('\n'), + stack: err && err.stack, + exception: true, + date: new Date().toString(), + process: this.getProcessInfo(), + os: this.getOsInfo(), + trace: this.getTrace(err) + }; + } + + /** + * Gets all relevant process information for the currently running process. + * @returns {mixed} - TODO: add return description. + */ + getProcessInfo() { + return { + pid: process.pid, + uid: process.getuid ? process.getuid() : null, + gid: process.getgid ? process.getgid() : null, + cwd: process.cwd(), + execPath: process.execPath, + version: process.version, + argv: process.argv, + memoryUsage: process.memoryUsage() + }; + } + + /** + * Gets all relevant OS information for the currently running process. + * @returns {mixed} - TODO: add return description. + */ + getOsInfo() { + return { + loadavg: os.loadavg(), + uptime: os.uptime() + }; + } + + /** + * Gets a stack trace for the specified error. + * @param {mixed} err - TODO: add param description. + * @returns {mixed} - TODO: add return description. + */ + getTrace(err) { + const trace = err ? stackTrace.parse(err) : stackTrace.get(); + return trace.map(site => { + return { + column: site.getColumnNumber(), + file: site.getFileName(), + function: site.getFunctionName(), + line: site.getLineNumber(), + method: site.getMethodName(), + native: site.isNative() + }; + }); + } + + /** + * Helper method to add a transport as an exception handler. + * @param {Transport} handler - The transport to add as an exception handler. + * @returns {void} + */ + _addHandler(handler) { + if (!this.handlers.has(handler)) { + handler.handleExceptions = true; + const wrapper = new ExceptionStream(handler); + this.handlers.set(handler, wrapper); + this.logger.pipe(wrapper); + } + } + + /** + * Logs all relevant information around the `err` and exits the current + * process. + * @param {Error} err - Error to handle + * @returns {mixed} - TODO: add return description. + * @private + */ + _uncaughtException(err) { + const info = this.getAllInfo(err); + const handlers = this._getExceptionHandlers(); + // Calculate if we should exit on this error + let doExit = typeof this.logger.exitOnError === 'function' + ? this.logger.exitOnError(err) + : this.logger.exitOnError; + let timeout; + + if (!handlers.length && doExit) { + // eslint-disable-next-line no-console + console.warn('winston: exitOnError cannot be true with no exception handlers.'); + // eslint-disable-next-line no-console + console.warn('winston: not exiting process.'); + doExit = false; + } + + function gracefulExit() { + debug('doExit', doExit); + debug('process._exiting', process._exiting); + + if (doExit && !process._exiting) { + // Remark: Currently ignoring any exceptions from transports when + // catching uncaught exceptions. + if (timeout) { + clearTimeout(timeout); + } + // eslint-disable-next-line no-process-exit + process.exit(1); + } + } + + if (!handlers || handlers.length === 0) { + return process.nextTick(gracefulExit); + } + + // Log to all transports attempting to listen for when they are completed. + asyncForEach(handlers, (handler, next) => { + const done = once(next); + const transport = handler.transport || handler; + + // Debug wrapping so that we can inspect what's going on under the covers. + function onDone(event) { + return () => { + debug(event); + done(); + }; + } + + transport._ending = true; + transport.once('finish', onDone('finished')); + transport.once('error', onDone('error')); + }, () => doExit && gracefulExit()); + + this.logger.log(info); + + // If exitOnError is true, then only allow the logging of exceptions to + // take up to `3000ms`. + if (doExit) { + timeout = setTimeout(gracefulExit, 3000); + } + } + + /** + * Returns the list of transports and exceptionHandlers for this instance. + * @returns {Array} - List of transports and exceptionHandlers for this + * instance. + * @private + */ + _getExceptionHandlers() { + // Remark (indexzero): since `logger.transports` returns all of the pipes + // from the _readableState of the stream we actually get the join of the + // explicit handlers and the implicit transports with + // `handleExceptions: true` + return this.logger.transports.filter(wrap => { + const transport = wrap.transport || wrap; + return transport.handleExceptions; + }); + } +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-stream.js": +/*!*************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-stream.js ***! + \*************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * exception-stream.js: TODO: add file header handler. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +const { Writable } = __webpack_require__(/*! readable-stream */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js"); + +/** + * TODO: add class description. + * @type {ExceptionStream} + * @extends {Writable} + */ +module.exports = class ExceptionStream extends Writable { + /** + * Constructor function for the ExceptionStream responsible for wrapping a + * TransportStream; only allowing writes of `info` objects with + * `info.exception` set to true. + * @param {!TransportStream} transport - Stream to filter to exceptions + */ + constructor(transport) { + super({ objectMode: true }); + + if (!transport) { + throw new Error('ExceptionStream requires a TransportStream instance.'); + } + + // Remark (indexzero): we set `handleExceptions` here because it's the + // predicate checked in ExceptionHandler.prototype.__getExceptionHandlers + this.handleExceptions = true; + this.transport = transport; + } + + /** + * Writes the info object to our transport instance if (and only if) the + * `exception` property is set on the info. + * @param {mixed} info - TODO: add param description. + * @param {mixed} enc - TODO: add param description. + * @param {mixed} callback - TODO: add param description. + * @returns {mixed} - TODO: add return description. + * @private + */ + _write(info, enc, callback) { + if (info.exception) { + return this.transport.log(info, callback); + } + + callback(); + return true; + } +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/logger.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/logger.js ***! + \***************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * logger.js: TODO: add file header description. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +const { Stream, Transform } = __webpack_require__(/*! readable-stream */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js"); +const asyncForEach = __webpack_require__(/*! async/forEach */ "./build/cht-core-4-6/api/node_modules/async/forEach.js"); +const { LEVEL, SPLAT } = __webpack_require__(/*! triple-beam */ "./build/cht-core-4-6/api/node_modules/triple-beam/index.js"); +const isStream = __webpack_require__(/*! is-stream */ "./build/cht-core-4-6/api/node_modules/is-stream/index.js"); +const ExceptionHandler = __webpack_require__(/*! ./exception-handler */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-handler.js"); +const RejectionHandler = __webpack_require__(/*! ./rejection-handler */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/rejection-handler.js"); +const LegacyTransportStream = __webpack_require__(/*! winston-transport/legacy */ "./build/cht-core-4-6/api/node_modules/winston-transport/legacy.js"); +const Profiler = __webpack_require__(/*! ./profiler */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/profiler.js"); +const { warn } = __webpack_require__(/*! ./common */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/common.js"); +const config = __webpack_require__(/*! ./config */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/config/index.js"); + +/** + * Captures the number of format (i.e. %s strings) in a given string. + * Based on `util.format`, see Node.js source: + * https://github.com/nodejs/node/blob/b1c8f15c5f169e021f7c46eb7b219de95fe97603/lib/util.js#L201-L230 + * @type {RegExp} + */ +const formatRegExp = /%[scdjifoO%]/g; + +/** + * TODO: add class description. + * @type {Logger} + * @extends {Transform} + */ +class Logger extends Transform { + /** + * Constructor function for the Logger object responsible for persisting log + * messages and metadata to one or more transports. + * @param {!Object} options - foo + */ + constructor(options) { + super({ objectMode: true }); + this.configure(options); + } + + child(defaultRequestMetadata) { + const logger = this; + return Object.create(logger, { + write: { + value: function (info) { + const infoClone = Object.assign( + {}, + defaultRequestMetadata, + info + ); + + // Object.assign doesn't copy inherited Error + // properties so we have to do that explicitly + // + // Remark (indexzero): we should remove this + // since the errors format will handle this case. + // + if (info instanceof Error) { + infoClone.stack = info.stack; + infoClone.message = info.message; + } + + logger.write(infoClone); + } + } + }); + } + + /** + * This will wholesale reconfigure this instance by: + * 1. Resetting all transports. Older transports will be removed implicitly. + * 2. Set all other options including levels, colors, rewriters, filters, + * exceptionHandlers, etc. + * @param {!Object} options - TODO: add param description. + * @returns {undefined} + */ + configure({ + silent, + format, + defaultMeta, + levels, + level = 'info', + exitOnError = true, + transports, + colors, + emitErrs, + formatters, + padLevels, + rewriters, + stripColors, + exceptionHandlers, + rejectionHandlers + } = {}) { + // Reset transports if we already have them + if (this.transports.length) { + this.clear(); + } + + this.silent = silent; + this.format = format || this.format || __webpack_require__(/*! logform/json */ "./build/cht-core-4-6/api/node_modules/logform/json.js")(); + + this.defaultMeta = defaultMeta || null; + // Hoist other options onto this instance. + this.levels = levels || this.levels || config.npm.levels; + this.level = level; + if (this.exceptions) { + this.exceptions.unhandle(); + } + if (this.rejections) { + this.rejections.unhandle(); + } + this.exceptions = new ExceptionHandler(this); + this.rejections = new RejectionHandler(this); + this.profilers = {}; + this.exitOnError = exitOnError; + + // Add all transports we have been provided. + if (transports) { + transports = Array.isArray(transports) ? transports : [transports]; + transports.forEach(transport => this.add(transport)); + } + + if ( + colors || + emitErrs || + formatters || + padLevels || + rewriters || + stripColors + ) { + throw new Error( + [ + '{ colors, emitErrs, formatters, padLevels, rewriters, stripColors } were removed in winston@3.0.0.', + 'Use a custom winston.format(function) instead.', + 'See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md' + ].join('\n') + ); + } + + if (exceptionHandlers) { + this.exceptions.handle(exceptionHandlers); + } + if (rejectionHandlers) { + this.rejections.handle(rejectionHandlers); + } + } + + isLevelEnabled(level) { + const givenLevelValue = getLevelValue(this.levels, level); + if (givenLevelValue === null) { + return false; + } + + const configuredLevelValue = getLevelValue(this.levels, this.level); + if (configuredLevelValue === null) { + return false; + } + + if (!this.transports || this.transports.length === 0) { + return configuredLevelValue >= givenLevelValue; + } + + const index = this.transports.findIndex(transport => { + let transportLevelValue = getLevelValue(this.levels, transport.level); + if (transportLevelValue === null) { + transportLevelValue = configuredLevelValue; + } + return transportLevelValue >= givenLevelValue; + }); + return index !== -1; + } + + /* eslint-disable valid-jsdoc */ + /** + * Ensure backwards compatibility with a `log` method + * @param {mixed} level - Level the log message is written at. + * @param {mixed} msg - TODO: add param description. + * @param {mixed} meta - TODO: add param description. + * @returns {Logger} - TODO: add return description. + * + * @example + * // Supports the existing API: + * logger.log('info', 'Hello world', { custom: true }); + * logger.log('info', new Error('Yo, it\'s on fire')); + * + * // Requires winston.format.splat() + * logger.log('info', '%s %d%%', 'A string', 50, { thisIsMeta: true }); + * + * // And the new API with a single JSON literal: + * logger.log({ level: 'info', message: 'Hello world', custom: true }); + * logger.log({ level: 'info', message: new Error('Yo, it\'s on fire') }); + * + * // Also requires winston.format.splat() + * logger.log({ + * level: 'info', + * message: '%s %d%%', + * [SPLAT]: ['A string', 50], + * meta: { thisIsMeta: true } + * }); + * + */ + /* eslint-enable valid-jsdoc */ + log(level, msg, ...splat) { + // eslint-disable-line max-params + // Optimize for the hotpath of logging JSON literals + if (arguments.length === 1) { + // Yo dawg, I heard you like levels ... seriously ... + // In this context the LHS `level` here is actually the `info` so read + // this as: info[LEVEL] = info.level; + level[LEVEL] = level.level; + this._addDefaultMeta(level); + this.write(level); + return this; + } + + // Slightly less hotpath, but worth optimizing for. + if (arguments.length === 2) { + if (msg && typeof msg === 'object') { + msg[LEVEL] = msg.level = level; + this._addDefaultMeta(msg); + this.write(msg); + return this; + } + + msg = { [LEVEL]: level, level, message: msg }; + this._addDefaultMeta(msg); + this.write(msg); + return this; + } + + const [meta] = splat; + if (typeof meta === 'object' && meta !== null) { + // Extract tokens, if none available default to empty array to + // ensure consistancy in expected results + const tokens = msg && msg.match && msg.match(formatRegExp); + + if (!tokens) { + const info = Object.assign({}, this.defaultMeta, meta, { + [LEVEL]: level, + [SPLAT]: splat, + level, + message: msg + }); + + if (meta.message) info.message = `${info.message} ${meta.message}`; + if (meta.stack) info.stack = meta.stack; + + this.write(info); + return this; + } + } + + this.write(Object.assign({}, this.defaultMeta, { + [LEVEL]: level, + [SPLAT]: splat, + level, + message: msg + })); + + return this; + } + + /** + * Pushes data so that it can be picked up by all of our pipe targets. + * @param {mixed} info - TODO: add param description. + * @param {mixed} enc - TODO: add param description. + * @param {mixed} callback - Continues stream processing. + * @returns {undefined} + * @private + */ + _transform(info, enc, callback) { + if (this.silent) { + return callback(); + } + + // [LEVEL] is only soft guaranteed to be set here since we are a proper + // stream. It is likely that `info` came in through `.log(info)` or + // `.info(info)`. If it is not defined, however, define it. + // This LEVEL symbol is provided by `triple-beam` and also used in: + // - logform + // - winston-transport + // - abstract-winston-transport + if (!info[LEVEL]) { + info[LEVEL] = info.level; + } + + // Remark: really not sure what to do here, but this has been reported as + // very confusing by pre winston@2.0.0 users as quite confusing when using + // custom levels. + if (!this.levels[info[LEVEL]] && this.levels[info[LEVEL]] !== 0) { + // eslint-disable-next-line no-console + console.error('[winston] Unknown logger level: %s', info[LEVEL]); + } + + // Remark: not sure if we should simply error here. + if (!this._readableState.pipes) { + // eslint-disable-next-line no-console + console.error( + '[winston] Attempt to write logs with no transports, which can increase memory usage: %j', + info + ); + } + + // Here we write to the `format` pipe-chain, which on `readable` above will + // push the formatted `info` Object onto the buffer for this instance. We trap + // (and re-throw) any errors generated by the user-provided format, but also + // guarantee that the streams callback is invoked so that we can continue flowing. + try { + this.push(this.format.transform(info, this.format.options)); + } finally { + this._writableState.sync = false; + // eslint-disable-next-line callback-return + callback(); + } + } + + /** + * Delays the 'finish' event until all transport pipe targets have + * also emitted 'finish' or are already finished. + * @param {mixed} callback - Continues stream processing. + */ + _final(callback) { + const transports = this.transports.slice(); + asyncForEach( + transports, + (transport, next) => { + if (!transport || transport.finished) return setImmediate(next); + transport.once('finish', next); + transport.end(); + }, + callback + ); + } + + /** + * Adds the transport to this logger instance by piping to it. + * @param {mixed} transport - TODO: add param description. + * @returns {Logger} - TODO: add return description. + */ + add(transport) { + // Support backwards compatibility with all existing `winston < 3.x.x` + // transports which meet one of two criteria: + // 1. They inherit from winston.Transport in < 3.x.x which is NOT a stream. + // 2. They expose a log method which has a length greater than 2 (i.e. more then + // just `log(info, callback)`. + const target = + !isStream(transport) || transport.log.length > 2 + ? new LegacyTransportStream({ transport }) + : transport; + + if (!target._writableState || !target._writableState.objectMode) { + throw new Error( + 'Transports must WritableStreams in objectMode. Set { objectMode: true }.' + ); + } + + // Listen for the `error` event and the `warn` event on the new Transport. + this._onEvent('error', target); + this._onEvent('warn', target); + this.pipe(target); + + if (transport.handleExceptions) { + this.exceptions.handle(); + } + + if (transport.handleRejections) { + this.rejections.handle(); + } + + return this; + } + + /** + * Removes the transport from this logger instance by unpiping from it. + * @param {mixed} transport - TODO: add param description. + * @returns {Logger} - TODO: add return description. + */ + remove(transport) { + if (!transport) return this; + let target = transport; + if (!isStream(transport) || transport.log.length > 2) { + target = this.transports.filter( + match => match.transport === transport + )[0]; + } + + if (target) { + this.unpipe(target); + } + return this; + } + + /** + * Removes all transports from this logger instance. + * @returns {Logger} - TODO: add return description. + */ + clear() { + this.unpipe(); + return this; + } + + /** + * Cleans up resources (streams, event listeners) for all transports + * associated with this instance (if necessary). + * @returns {Logger} - TODO: add return description. + */ + close() { + this.exceptions.unhandle(); + this.rejections.unhandle(); + this.clear(); + this.emit('close'); + return this; + } + + /** + * Sets the `target` levels specified on this instance. + * @param {Object} Target levels to use on this instance. + */ + setLevels() { + warn.deprecated('setLevels'); + } + + /** + * Queries the all transports for this instance with the specified `options`. + * This will aggregate each transport's results into one object containing + * a property per transport. + * @param {Object} options - Query options for this instance. + * @param {function} callback - Continuation to respond to when complete. + */ + query(options, callback) { + if (typeof options === 'function') { + callback = options; + options = {}; + } + + options = options || {}; + const results = {}; + const queryObject = Object.assign({}, options.query || {}); + + // Helper function to query a single transport + function queryTransport(transport, next) { + if (options.query && typeof transport.formatQuery === 'function') { + options.query = transport.formatQuery(queryObject); + } + + transport.query(options, (err, res) => { + if (err) { + return next(err); + } + + if (typeof transport.formatResults === 'function') { + res = transport.formatResults(res, options.format); + } + + next(null, res); + }); + } + + // Helper function to accumulate the results from `queryTransport` into + // the `results`. + function addResults(transport, next) { + queryTransport(transport, (err, result) => { + // queryTransport could potentially invoke the callback multiple times + // since Transport code can be unpredictable. + if (next) { + result = err || result; + if (result) { + results[transport.name] = result; + } + + // eslint-disable-next-line callback-return + next(); + } + + next = null; + }); + } + + // Iterate over the transports in parallel setting the appropriate key in + // the `results`. + asyncForEach( + this.transports.filter(transport => !!transport.query), + addResults, + () => callback(null, results) + ); + } + + /** + * Returns a log stream for all transports. Options object is optional. + * @param{Object} options={} - Stream options for this instance. + * @returns {Stream} - TODO: add return description. + */ + stream(options = {}) { + const out = new Stream(); + const streams = []; + + out._streams = streams; + out.destroy = () => { + let i = streams.length; + while (i--) { + streams[i].destroy(); + } + }; + + // Create a list of all transports for this instance. + this.transports + .filter(transport => !!transport.stream) + .forEach(transport => { + const str = transport.stream(options); + if (!str) { + return; + } + + streams.push(str); + + str.on('log', log => { + log.transport = log.transport || []; + log.transport.push(transport.name); + out.emit('log', log); + }); + + str.on('error', err => { + err.transport = err.transport || []; + err.transport.push(transport.name); + out.emit('error', err); + }); + }); + + return out; + } + + /** + * Returns an object corresponding to a specific timing. When done is called + * the timer will finish and log the duration. e.g.: + * @returns {Profile} - TODO: add return description. + * @example + * const timer = winston.startTimer() + * setTimeout(() => { + * timer.done({ + * message: 'Logging message' + * }); + * }, 1000); + */ + startTimer() { + return new Profiler(this); + } + + /** + * Tracks the time inbetween subsequent calls to this method with the same + * `id` parameter. The second call to this method will log the difference in + * milliseconds along with the message. + * @param {string} id Unique id of the profiler + * @returns {Logger} - TODO: add return description. + */ + profile(id, ...args) { + const time = Date.now(); + if (this.profilers[id]) { + const timeEnd = this.profilers[id]; + delete this.profilers[id]; + + // Attempt to be kind to users if they are still using older APIs. + if (typeof args[args.length - 2] === 'function') { + // eslint-disable-next-line no-console + console.warn( + 'Callback function no longer supported as of winston@3.0.0' + ); + args.pop(); + } + + // Set the duration property of the metadata + const info = typeof args[args.length - 1] === 'object' ? args.pop() : {}; + info.level = info.level || 'info'; + info.durationMs = time - timeEnd; + info.message = info.message || id; + return this.write(info); + } + + this.profilers[id] = time; + return this; + } + + /** + * Backwards compatibility to `exceptions.handle` in winston < 3.0.0. + * @returns {undefined} + * @deprecated + */ + handleExceptions(...args) { + // eslint-disable-next-line no-console + console.warn( + 'Deprecated: .handleExceptions() will be removed in winston@4. Use .exceptions.handle()' + ); + this.exceptions.handle(...args); + } + + /** + * Backwards compatibility to `exceptions.handle` in winston < 3.0.0. + * @returns {undefined} + * @deprecated + */ + unhandleExceptions(...args) { + // eslint-disable-next-line no-console + console.warn( + 'Deprecated: .unhandleExceptions() will be removed in winston@4. Use .exceptions.unhandle()' + ); + this.exceptions.unhandle(...args); + } + + /** + * Throw a more meaningful deprecation notice + * @throws {Error} - TODO: add throws description. + */ + cli() { + throw new Error( + [ + 'Logger.cli() was removed in winston@3.0.0', + 'Use a custom winston.formats.cli() instead.', + 'See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md' + ].join('\n') + ); + } + + /** + * Bubbles the `event` that occured on the specified `transport` up + * from this instance. + * @param {string} event - The event that occured + * @param {Object} transport - Transport on which the event occured + * @private + */ + _onEvent(event, transport) { + function transportEvent(err) { + // https://github.com/winstonjs/winston/issues/1364 + if (event === 'error' && !this.transports.includes(transport)) { + this.add(transport); + } + this.emit(event, err, transport); + } + + if (!transport['__winston' + event]) { + transport['__winston' + event] = transportEvent.bind(this); + transport.on(event, transport['__winston' + event]); + } + } + + _addDefaultMeta(msg) { + if (this.defaultMeta) { + Object.assign(msg, this.defaultMeta); + } + } +} + +function getLevelValue(levels, level) { + const value = levels[level]; + if (!value && value !== 0) { + return null; + } + return value; +} + +/** + * Represents the current readableState pipe targets for this Logger instance. + * @type {Array|Object} + */ +Object.defineProperty(Logger.prototype, 'transports', { + configurable: false, + enumerable: true, + get() { + const { pipes } = this._readableState; + return !Array.isArray(pipes) ? [pipes].filter(Boolean) : pipes; + } +}); + +module.exports = Logger; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/profiler.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/profiler.js ***! + \*****************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * profiler.js: TODO: add file header description. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +/** + * TODO: add class description. + * @type {Profiler} + * @private + */ +module.exports = class Profiler { + /** + * Constructor function for the Profiler instance used by + * `Logger.prototype.startTimer`. When done is called the timer will finish + * and log the duration. + * @param {!Logger} logger - TODO: add param description. + * @private + */ + constructor(logger) { + if (!logger) { + throw new Error('Logger is required for profiling.'); + } + + this.logger = logger; + this.start = Date.now(); + } + + /** + * Ends the current timer (i.e. Profiler) instance and logs the `msg` along + * with the duration since creation. + * @returns {mixed} - TODO: add return description. + * @private + */ + done(...args) { + if (typeof args[args.length - 1] === 'function') { + // eslint-disable-next-line no-console + console.warn('Callback function no longer supported as of winston@3.0.0'); + args.pop(); + } + + const info = typeof args[args.length - 1] === 'object' ? args.pop() : {}; + info.level = info.level || 'info'; + info.durationMs = (Date.now()) - this.start; + + return this.logger.write(info); + } +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/rejection-handler.js": +/*!**************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/rejection-handler.js ***! + \**************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * exception-handler.js: Object for handling uncaughtException events. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +const os = __webpack_require__(/*! os */ "os"); +const asyncForEach = __webpack_require__(/*! async/forEach */ "./build/cht-core-4-6/api/node_modules/async/forEach.js"); +const debug = __webpack_require__(/*! @dabh/diagnostics */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/index.js")('winston:rejection'); +const once = __webpack_require__(/*! one-time */ "./build/cht-core-4-6/api/node_modules/one-time/index.js"); +const stackTrace = __webpack_require__(/*! stack-trace */ "./build/cht-core-4-6/api/node_modules/stack-trace/lib/stack-trace.js"); +const ExceptionStream = __webpack_require__(/*! ./exception-stream */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-stream.js"); + +/** + * Object for handling unhandledRejection events. + * @type {RejectionHandler} + */ +module.exports = class RejectionHandler { + /** + * TODO: add contructor description + * @param {!Logger} logger - TODO: add param description + */ + constructor(logger) { + if (!logger) { + throw new Error('Logger is required to handle rejections'); + } + + this.logger = logger; + this.handlers = new Map(); + } + + /** + * Handles `unhandledRejection` events for the current process by adding any + * handlers passed in. + * @returns {undefined} + */ + handle(...args) { + args.forEach(arg => { + if (Array.isArray(arg)) { + return arg.forEach(handler => this._addHandler(handler)); + } + + this._addHandler(arg); + }); + + if (!this.catcher) { + this.catcher = this._unhandledRejection.bind(this); + process.on('unhandledRejection', this.catcher); + } + } + + /** + * Removes any handlers to `unhandledRejection` events for the current + * process. This does not modify the state of the `this.handlers` set. + * @returns {undefined} + */ + unhandle() { + if (this.catcher) { + process.removeListener('unhandledRejection', this.catcher); + this.catcher = false; + + Array.from(this.handlers.values()).forEach(wrapper => + this.logger.unpipe(wrapper) + ); + } + } + + /** + * TODO: add method description + * @param {Error} err - Error to get information about. + * @returns {mixed} - TODO: add return description. + */ + getAllInfo(err) { + let message = null; + if (err) { + message = typeof err === 'string' ? err : err.message; + } + + return { + error: err, + // TODO (indexzero): how do we configure this? + level: 'error', + message: [ + `unhandledRejection: ${message || '(no error message)'}`, + err && err.stack || ' No stack trace' + ].join('\n'), + stack: err && err.stack, + exception: true, + date: new Date().toString(), + process: this.getProcessInfo(), + os: this.getOsInfo(), + trace: this.getTrace(err) + }; + } + + /** + * Gets all relevant process information for the currently running process. + * @returns {mixed} - TODO: add return description. + */ + getProcessInfo() { + return { + pid: process.pid, + uid: process.getuid ? process.getuid() : null, + gid: process.getgid ? process.getgid() : null, + cwd: process.cwd(), + execPath: process.execPath, + version: process.version, + argv: process.argv, + memoryUsage: process.memoryUsage() + }; + } + + /** + * Gets all relevant OS information for the currently running process. + * @returns {mixed} - TODO: add return description. + */ + getOsInfo() { + return { + loadavg: os.loadavg(), + uptime: os.uptime() + }; + } + + /** + * Gets a stack trace for the specified error. + * @param {mixed} err - TODO: add param description. + * @returns {mixed} - TODO: add return description. + */ + getTrace(err) { + const trace = err ? stackTrace.parse(err) : stackTrace.get(); + return trace.map(site => { + return { + column: site.getColumnNumber(), + file: site.getFileName(), + function: site.getFunctionName(), + line: site.getLineNumber(), + method: site.getMethodName(), + native: site.isNative() + }; + }); + } + + /** + * Helper method to add a transport as an exception handler. + * @param {Transport} handler - The transport to add as an exception handler. + * @returns {void} + */ + _addHandler(handler) { + if (!this.handlers.has(handler)) { + handler.handleRejections = true; + const wrapper = new ExceptionStream(handler); + this.handlers.set(handler, wrapper); + this.logger.pipe(wrapper); + } + } + + /** + * Logs all relevant information around the `err` and exits the current + * process. + * @param {Error} err - Error to handle + * @returns {mixed} - TODO: add return description. + * @private + */ + _unhandledRejection(err) { + const info = this.getAllInfo(err); + const handlers = this._getRejectionHandlers(); + // Calculate if we should exit on this error + let doExit = + typeof this.logger.exitOnError === 'function' + ? this.logger.exitOnError(err) + : this.logger.exitOnError; + let timeout; + + if (!handlers.length && doExit) { + // eslint-disable-next-line no-console + console.warn('winston: exitOnError cannot be true with no rejection handlers.'); + // eslint-disable-next-line no-console + console.warn('winston: not exiting process.'); + doExit = false; + } + + function gracefulExit() { + debug('doExit', doExit); + debug('process._exiting', process._exiting); + + if (doExit && !process._exiting) { + // Remark: Currently ignoring any rejections from transports when + // catching unhandled rejections. + if (timeout) { + clearTimeout(timeout); + } + // eslint-disable-next-line no-process-exit + process.exit(1); + } + } + + if (!handlers || handlers.length === 0) { + return process.nextTick(gracefulExit); + } + + // Log to all transports attempting to listen for when they are completed. + asyncForEach( + handlers, + (handler, next) => { + const done = once(next); + const transport = handler.transport || handler; + + // Debug wrapping so that we can inspect what's going on under the covers. + function onDone(event) { + return () => { + debug(event); + done(); + }; + } + + transport._ending = true; + transport.once('finish', onDone('finished')); + transport.once('error', onDone('error')); + }, + () => doExit && gracefulExit() + ); + + this.logger.log(info); + + // If exitOnError is true, then only allow the logging of exceptions to + // take up to `3000ms`. + if (doExit) { + timeout = setTimeout(gracefulExit, 3000); + } + } + + /** + * Returns the list of transports and exceptionHandlers for this instance. + * @returns {Array} - List of transports and exceptionHandlers for this + * instance. + * @private + */ + _getRejectionHandlers() { + // Remark (indexzero): since `logger.transports` returns all of the pipes + // from the _readableState of the stream we actually get the join of the + // explicit handlers and the implicit transports with + // `handleRejections: true` + return this.logger.transports.filter(wrap => { + const transport = wrap.transport || wrap; + return transport.handleRejections; + }); + } +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/tail-file.js": +/*!******************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/tail-file.js ***! + \******************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * tail-file.js: TODO: add file header description. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +const fs = __webpack_require__(/*! fs */ "fs"); +const { StringDecoder } = __webpack_require__(/*! string_decoder */ "string_decoder"); +const { Stream } = __webpack_require__(/*! readable-stream */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js"); + +/** + * Simple no-op function. + * @returns {undefined} + */ +function noop() {} + +/** + * TODO: add function description. + * @param {Object} options - Options for tail. + * @param {function} iter - Iterator function to execute on every line. +* `tail -f` a file. Options must include file. + * @returns {mixed} - TODO: add return description. + */ +module.exports = (options, iter) => { + const buffer = Buffer.alloc(64 * 1024); + const decode = new StringDecoder('utf8'); + const stream = new Stream(); + let buff = ''; + let pos = 0; + let row = 0; + + if (options.start === -1) { + delete options.start; + } + + stream.readable = true; + stream.destroy = () => { + stream.destroyed = true; + stream.emit('end'); + stream.emit('close'); + }; + + fs.open(options.file, 'a+', '0644', (err, fd) => { + if (err) { + if (!iter) { + stream.emit('error', err); + } else { + iter(err); + } + stream.destroy(); + return; + } + + (function read() { + if (stream.destroyed) { + fs.close(fd, noop); + return; + } + + return fs.read(fd, buffer, 0, buffer.length, pos, (error, bytes) => { + if (error) { + if (!iter) { + stream.emit('error', error); + } else { + iter(error); + } + stream.destroy(); + return; + } + + if (!bytes) { + if (buff) { + // eslint-disable-next-line eqeqeq + if (options.start == null || row > options.start) { + if (!iter) { + stream.emit('line', buff); + } else { + iter(null, buff); + } + } + row++; + buff = ''; + } + return setTimeout(read, 1000); + } + + let data = decode.write(buffer.slice(0, bytes)); + if (!iter) { + stream.emit('data', data); + } + + data = (buff + data).split(/\n+/); + + const l = data.length - 1; + let i = 0; + + for (; i < l; i++) { + // eslint-disable-next-line eqeqeq + if (options.start == null || row > options.start) { + if (!iter) { + stream.emit('line', data[i]); + } else { + iter(null, data[i]); + } + } + row++; + } + + buff = data[l]; + pos += bytes; + return read(); + }); + }()); + }); + + if (!iter) { + return stream; + } + + return stream.destroy; +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/console.js": +/*!***************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/console.js ***! + \***************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/* eslint-disable no-console */ +/* + * console.js: Transport for outputting to the console. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +const os = __webpack_require__(/*! os */ "os"); +const { LEVEL, MESSAGE } = __webpack_require__(/*! triple-beam */ "./build/cht-core-4-6/api/node_modules/triple-beam/index.js"); +const TransportStream = __webpack_require__(/*! winston-transport */ "./build/cht-core-4-6/api/node_modules/winston-transport/index.js"); + +/** + * Transport for outputting to the console. + * @type {Console} + * @extends {TransportStream} + */ +module.exports = class Console extends TransportStream { + /** + * Constructor function for the Console transport object responsible for + * persisting log messages and metadata to a terminal or TTY. + * @param {!Object} [options={}] - Options for this instance. + */ + constructor(options = {}) { + super(options); + + // Expose the name of this Transport on the prototype + this.name = options.name || 'console'; + this.stderrLevels = this._stringArrayToSet(options.stderrLevels); + this.consoleWarnLevels = this._stringArrayToSet(options.consoleWarnLevels); + this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL; + + this.setMaxListeners(30); + } + + /** + * Core logging method exposed to Winston. + * @param {Object} info - TODO: add param description. + * @param {Function} callback - TODO: add param description. + * @returns {undefined} + */ + log(info, callback) { + setImmediate(() => this.emit('logged', info)); + + // Remark: what if there is no raw...? + if (this.stderrLevels[info[LEVEL]]) { + if (console._stderr) { + // Node.js maps `process.stderr` to `console._stderr`. + console._stderr.write(`${info[MESSAGE]}${this.eol}`); + } else { + // console.error adds a newline + console.error(info[MESSAGE]); + } + + if (callback) { + callback(); // eslint-disable-line callback-return + } + return; + } else if (this.consoleWarnLevels[info[LEVEL]]) { + if (console._stderr) { + // Node.js maps `process.stderr` to `console._stderr`. + // in Node.js console.warn is an alias for console.error + console._stderr.write(`${info[MESSAGE]}${this.eol}`); + } else { + // console.warn adds a newline + console.warn(info[MESSAGE]); + } + + if (callback) { + callback(); // eslint-disable-line callback-return + } + return; + } + + if (console._stdout) { + // Node.js maps `process.stdout` to `console._stdout`. + console._stdout.write(`${info[MESSAGE]}${this.eol}`); + } else { + // console.log adds a newline. + console.log(info[MESSAGE]); + } + + if (callback) { + callback(); // eslint-disable-line callback-return + } + } + + /** + * Returns a Set-like object with strArray's elements as keys (each with the + * value true). + * @param {Array} strArray - Array of Set-elements as strings. + * @param {?string} [errMsg] - Custom error message thrown on invalid input. + * @returns {Object} - TODO: add return description. + * @private + */ + _stringArrayToSet(strArray, errMsg) { + if (!strArray) + return {}; + + errMsg = errMsg || 'Cannot make set from type other than Array of string elements'; + + if (!Array.isArray(strArray)) { + throw new Error(errMsg); + } + + return strArray.reduce((set, el) => { + if (typeof el !== 'string') { + throw new Error(errMsg); + } + set[el] = true; + + return set; + }, {}); + } +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/file.js": +/*!************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/file.js ***! + \************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/* eslint-disable complexity,max-statements */ +/** + * file.js: Transport for outputting to a local log file. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +const fs = __webpack_require__(/*! fs */ "fs"); +const path = __webpack_require__(/*! path */ "path"); +const asyncSeries = __webpack_require__(/*! async/series */ "./build/cht-core-4-6/api/node_modules/async/series.js"); +const zlib = __webpack_require__(/*! zlib */ "zlib"); +const { MESSAGE } = __webpack_require__(/*! triple-beam */ "./build/cht-core-4-6/api/node_modules/triple-beam/index.js"); +const { Stream, PassThrough } = __webpack_require__(/*! readable-stream */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js"); +const TransportStream = __webpack_require__(/*! winston-transport */ "./build/cht-core-4-6/api/node_modules/winston-transport/index.js"); +const debug = __webpack_require__(/*! @dabh/diagnostics */ "./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/index.js")('winston:file'); +const os = __webpack_require__(/*! os */ "os"); +const tailFile = __webpack_require__(/*! ../tail-file */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/tail-file.js"); + +/** + * Transport for outputting to a local log file. + * @type {File} + * @extends {TransportStream} + */ +module.exports = class File extends TransportStream { + /** + * Constructor function for the File transport object responsible for + * persisting log messages and metadata to one or more files. + * @param {Object} options - Options for this instance. + */ + constructor(options = {}) { + super(options); + + // Expose the name of this Transport on the prototype. + this.name = options.name || 'file'; + + // Helper function which throws an `Error` in the event that any of the + // rest of the arguments is present in `options`. + function throwIf(target, ...args) { + args.slice(1).forEach(name => { + if (options[name]) { + throw new Error(`Cannot set ${name} and ${target} together`); + } + }); + } + + // Setup the base stream that always gets piped to to handle buffering. + this._stream = new PassThrough(); + this._stream.setMaxListeners(30); + + // Bind this context for listener methods. + this._onError = this._onError.bind(this); + + if (options.filename || options.dirname) { + throwIf('filename or dirname', 'stream'); + this._basename = this.filename = options.filename + ? path.basename(options.filename) + : 'winston.log'; + + this.dirname = options.dirname || path.dirname(options.filename); + this.options = options.options || { flags: 'a' }; + } else if (options.stream) { + // eslint-disable-next-line no-console + console.warn('options.stream will be removed in winston@4. Use winston.transports.Stream'); + throwIf('stream', 'filename', 'maxsize'); + this._dest = this._stream.pipe(this._setupStream(options.stream)); + this.dirname = path.dirname(this._dest.path); + // We need to listen for drain events when write() returns false. This + // can make node mad at times. + } else { + throw new Error('Cannot log to file without filename or stream.'); + } + + this.maxsize = options.maxsize || null; + this.rotationFormat = options.rotationFormat || false; + this.zippedArchive = options.zippedArchive || false; + this.maxFiles = options.maxFiles || null; + this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL; + this.tailable = options.tailable || false; + this.lazy = options.lazy || false; + + // Internal state variables representing the number of files this instance + // has created and the current size (in bytes) of the current logfile. + this._size = 0; + this._pendingSize = 0; + this._created = 0; + this._drain = false; + this._opening = false; + this._ending = false; + this._fileExist = false; + + if (this.dirname) this._createLogDirIfNotExist(this.dirname); + if (!this.lazy) this.open(); + } + + finishIfEnding() { + if (this._ending) { + if (this._opening) { + this.once('open', () => { + this._stream.once('finish', () => this.emit('finish')); + setImmediate(() => this._stream.end()); + }); + } else { + this._stream.once('finish', () => this.emit('finish')); + setImmediate(() => this._stream.end()); + } + } + } + + /** + * Core logging method exposed to Winston. Metadata is optional. + * @param {Object} info - TODO: add param description. + * @param {Function} callback - TODO: add param description. + * @returns {undefined} + */ + log(info, callback = () => { }) { + // Remark: (jcrugzz) What is necessary about this callback(null, true) now + // when thinking about 3.x? Should silent be handled in the base + // TransportStream _write method? + if (this.silent) { + callback(); + return true; + } + + + // Output stream buffer is full and has asked us to wait for the drain event + if (this._drain) { + this._stream.once('drain', () => { + this._drain = false; + this.log(info, callback); + }); + return; + } + if (this._rotate) { + this._stream.once('rotate', () => { + this._rotate = false; + this.log(info, callback); + }); + return; + } + if (this.lazy) { + if (!this._fileExist) { + if (!this._opening) { + this.open(); + } + this.once('open', () => { + this._fileExist = true; + this.log(info, callback); + return; + }); + return; + } + if (this._needsNewFile(this._pendingSize)) { + this._dest.once('close', () => { + if (!this._opening) { + this.open(); + } + this.once('open', () => { + this.log(info, callback); + return; + }); + return; + }); + return; + } + } + + // Grab the raw string and append the expected EOL. + const output = `${info[MESSAGE]}${this.eol}`; + const bytes = Buffer.byteLength(output); + + // After we have written to the PassThrough check to see if we need + // to rotate to the next file. + // + // Remark: This gets called too early and does not depict when data + // has been actually flushed to disk. + function logged() { + this._size += bytes; + this._pendingSize -= bytes; + + debug('logged %s %s', this._size, output); + this.emit('logged', info); + + // Do not attempt to rotate files while rotating + if (this._rotate) { + return; + } + + // Do not attempt to rotate files while opening + if (this._opening) { + return; + } + + // Check to see if we need to end the stream and create a new one. + if (!this._needsNewFile()) { + return; + } + if (this.lazy) { + this._endStream(() => {this.emit('fileclosed')}); + return; + } + + // End the current stream, ensure it flushes and create a new one. + // This could potentially be optimized to not run a stat call but its + // the safest way since we are supporting `maxFiles`. + this._rotate = true; + this._endStream(() => this._rotateFile()); + } + + // Keep track of the pending bytes being written while files are opening + // in order to properly rotate the PassThrough this._stream when the file + // eventually does open. + this._pendingSize += bytes; + if (this._opening + && !this.rotatedWhileOpening + && this._needsNewFile(this._size + this._pendingSize)) { + this.rotatedWhileOpening = true; + } + + const written = this._stream.write(output, logged.bind(this)); + if (!written) { + this._drain = true; + this._stream.once('drain', () => { + this._drain = false; + callback(); + }); + } else { + callback(); // eslint-disable-line callback-return + } + + debug('written', written, this._drain); + + this.finishIfEnding(); + + return written; + } + + /** + * Query the transport. Options object is optional. + * @param {Object} options - Loggly-like query options for this instance. + * @param {function} callback - Continuation to respond to when complete. + * TODO: Refactor me. + */ + query(options, callback) { + if (typeof options === 'function') { + callback = options; + options = {}; + } + + options = normalizeQuery(options); + const file = path.join(this.dirname, this.filename); + let buff = ''; + let results = []; + let row = 0; + + const stream = fs.createReadStream(file, { + encoding: 'utf8' + }); + + stream.on('error', err => { + if (stream.readable) { + stream.destroy(); + } + if (!callback) { + return; + } + + return err.code !== 'ENOENT' ? callback(err) : callback(null, results); + }); + + stream.on('data', data => { + data = (buff + data).split(/\n+/); + const l = data.length - 1; + let i = 0; + + for (; i < l; i++) { + if (!options.start || row >= options.start) { + add(data[i]); + } + row++; + } + + buff = data[l]; + }); + + stream.on('close', () => { + if (buff) { + add(buff, true); + } + if (options.order === 'desc') { + results = results.reverse(); + } + + // eslint-disable-next-line callback-return + if (callback) callback(null, results); + }); + + function add(buff, attempt) { + try { + const log = JSON.parse(buff); + if (check(log)) { + push(log); + } + } catch (e) { + if (!attempt) { + stream.emit('error', e); + } + } + } + + function push(log) { + if ( + options.rows && + results.length >= options.rows && + options.order !== 'desc' + ) { + if (stream.readable) { + stream.destroy(); + } + return; + } + + if (options.fields) { + log = options.fields.reduce((obj, key) => { + obj[key] = log[key]; + return obj; + }, {}); + } + + if (options.order === 'desc') { + if (results.length >= options.rows) { + results.shift(); + } + } + results.push(log); + } + + function check(log) { + if (!log) { + return; + } + + if (typeof log !== 'object') { + return; + } + + const time = new Date(log.timestamp); + if ( + (options.from && time < options.from) || + (options.until && time > options.until) || + (options.level && options.level !== log.level) + ) { + return; + } + + return true; + } + + function normalizeQuery(options) { + options = options || {}; + + // limit + options.rows = options.rows || options.limit || 10; + + // starting row offset + options.start = options.start || 0; + + // now + options.until = options.until || new Date(); + if (typeof options.until !== 'object') { + options.until = new Date(options.until); + } + + // now - 24 + options.from = options.from || (options.until - (24 * 60 * 60 * 1000)); + if (typeof options.from !== 'object') { + options.from = new Date(options.from); + } + + // 'asc' or 'desc' + options.order = options.order || 'desc'; + + return options; + } + } + + /** + * Returns a log stream for this transport. Options object is optional. + * @param {Object} options - Stream options for this instance. + * @returns {Stream} - TODO: add return description. + * TODO: Refactor me. + */ + stream(options = {}) { + const file = path.join(this.dirname, this.filename); + const stream = new Stream(); + const tail = { + file, + start: options.start + }; + + stream.destroy = tailFile(tail, (err, line) => { + if (err) { + return stream.emit('error', err); + } + + try { + stream.emit('data', line); + line = JSON.parse(line); + stream.emit('log', line); + } catch (e) { + stream.emit('error', e); + } + }); + + return stream; + } + + /** + * Checks to see the filesize of. + * @returns {undefined} + */ + open() { + // If we do not have a filename then we were passed a stream and + // don't need to keep track of size. + if (!this.filename) return; + if (this._opening) return; + + this._opening = true; + + // Stat the target file to get the size and create the stream. + this.stat((err, size) => { + if (err) { + return this.emit('error', err); + } + debug('stat done: %s { size: %s }', this.filename, size); + this._size = size; + this._dest = this._createStream(this._stream); + this._opening = false; + this.once('open', () => { + if (this._stream.eventNames().includes('rotate')) { + this._stream.emit('rotate'); + } else { + this._rotate = false; + } + }); + }); + } + + /** + * Stat the file and assess information in order to create the proper stream. + * @param {function} callback - TODO: add param description. + * @returns {undefined} + */ + stat(callback) { + const target = this._getFile(); + const fullpath = path.join(this.dirname, target); + + fs.stat(fullpath, (err, stat) => { + if (err && err.code === 'ENOENT') { + debug('ENOENT ok', fullpath); + // Update internally tracked filename with the new target name. + this.filename = target; + return callback(null, 0); + } + + if (err) { + debug(`err ${err.code} ${fullpath}`); + return callback(err); + } + + if (!stat || this._needsNewFile(stat.size)) { + // If `stats.size` is greater than the `maxsize` for this + // instance then try again. + return this._incFile(() => this.stat(callback)); + } + + // Once we have figured out what the filename is, set it + // and return the size. + this.filename = target; + callback(null, stat.size); + }); + } + + /** + * Closes the stream associated with this instance. + * @param {function} cb - TODO: add param description. + * @returns {undefined} + */ + close(cb) { + if (!this._stream) { + return; + } + + this._stream.end(() => { + if (cb) { + cb(); // eslint-disable-line callback-return + } + this.emit('flush'); + this.emit('closed'); + }); + } + + /** + * TODO: add method description. + * @param {number} size - TODO: add param description. + * @returns {undefined} + */ + _needsNewFile(size) { + size = size || this._size; + return this.maxsize && size >= this.maxsize; + } + + /** + * TODO: add method description. + * @param {Error} err - TODO: add param description. + * @returns {undefined} + */ + _onError(err) { + this.emit('error', err); + } + + /** + * TODO: add method description. + * @param {Stream} stream - TODO: add param description. + * @returns {mixed} - TODO: add return description. + */ + _setupStream(stream) { + stream.on('error', this._onError); + + return stream; + } + + /** + * TODO: add method description. + * @param {Stream} stream - TODO: add param description. + * @returns {mixed} - TODO: add return description. + */ + _cleanupStream(stream) { + stream.removeListener('error', this._onError); + stream.destroy(); + return stream; + } + + /** + * TODO: add method description. + */ + _rotateFile() { + this._incFile(() => this.open()); + } + + /** + * Unpipe from the stream that has been marked as full and end it so it + * flushes to disk. + * + * @param {function} callback - Callback for when the current file has closed. + * @private + */ + _endStream(callback = () => { }) { + if (this._dest) { + this._stream.unpipe(this._dest); + this._dest.end(() => { + this._cleanupStream(this._dest); + callback(); + }); + } else { + callback(); // eslint-disable-line callback-return + } + } + + /** + * Returns the WritableStream for the active file on this instance. If we + * should gzip the file then a zlib stream is returned. + * + * @param {ReadableStream} source –PassThrough to pipe to the file when open. + * @returns {WritableStream} Stream that writes to disk for the active file. + */ + _createStream(source) { + const fullpath = path.join(this.dirname, this.filename); + + debug('create stream start', fullpath, this.options); + const dest = fs.createWriteStream(fullpath, this.options) + // TODO: What should we do with errors here? + .on('error', err => debug(err)) + .on('close', () => debug('close', dest.path, dest.bytesWritten)) + .on('open', () => { + debug('file open ok', fullpath); + this.emit('open', fullpath); + source.pipe(dest); + + // If rotation occured during the open operation then we immediately + // start writing to a new PassThrough, begin opening the next file + // and cleanup the previous source and dest once the source has drained. + if (this.rotatedWhileOpening) { + this._stream = new PassThrough(); + this._stream.setMaxListeners(30); + this._rotateFile(); + this.rotatedWhileOpening = false; + this._cleanupStream(dest); + source.end(); + } + }); + + debug('create stream ok', fullpath); + if (this.zippedArchive) { + const gzip = zlib.createGzip(); + gzip.pipe(dest); + return gzip; + } + + return dest; + } + + /** + * TODO: add method description. + * @param {function} callback - TODO: add param description. + * @returns {undefined} + */ + _incFile(callback) { + debug('_incFile', this.filename); + const ext = path.extname(this._basename); + const basename = path.basename(this._basename, ext); + + if (!this.tailable) { + this._created += 1; + this._checkMaxFilesIncrementing(ext, basename, callback); + } else { + this._checkMaxFilesTailable(ext, basename, callback); + } + } + + /** + * Gets the next filename to use for this instance in the case that log + * filesizes are being capped. + * @returns {string} - TODO: add return description. + * @private + */ + _getFile() { + const ext = path.extname(this._basename); + const basename = path.basename(this._basename, ext); + const isRotation = this.rotationFormat + ? this.rotationFormat() + : this._created; + + // Caveat emptor (indexzero): rotationFormat() was broken by design When + // combined with max files because the set of files to unlink is never + // stored. + const target = !this.tailable && this._created + ? `${basename}${isRotation}${ext}` + : `${basename}${ext}`; + + return this.zippedArchive && !this.tailable + ? `${target}.gz` + : target; + } + + /** + * Increment the number of files created or checked by this instance. + * @param {mixed} ext - TODO: add param description. + * @param {mixed} basename - TODO: add param description. + * @param {mixed} callback - TODO: add param description. + * @returns {undefined} + * @private + */ + _checkMaxFilesIncrementing(ext, basename, callback) { + // Check for maxFiles option and delete file. + if (!this.maxFiles || this._created < this.maxFiles) { + return setImmediate(callback); + } + + const oldest = this._created - this.maxFiles; + const isOldest = oldest !== 0 ? oldest : ''; + const isZipped = this.zippedArchive ? '.gz' : ''; + const filePath = `${basename}${isOldest}${ext}${isZipped}`; + const target = path.join(this.dirname, filePath); + + fs.unlink(target, callback); + } + + /** + * Roll files forward based on integer, up to maxFiles. e.g. if base if + * file.log and it becomes oversized, roll to file1.log, and allow file.log + * to be re-used. If file is oversized again, roll file1.log to file2.log, + * roll file.log to file1.log, and so on. + * @param {mixed} ext - TODO: add param description. + * @param {mixed} basename - TODO: add param description. + * @param {mixed} callback - TODO: add param description. + * @returns {undefined} + * @private + */ + _checkMaxFilesTailable(ext, basename, callback) { + const tasks = []; + if (!this.maxFiles) { + return; + } + + // const isZipped = this.zippedArchive ? '.gz' : ''; + const isZipped = this.zippedArchive ? '.gz' : ''; + for (let x = this.maxFiles - 1; x > 1; x--) { + tasks.push(function (i, cb) { + let fileName = `${basename}${(i - 1)}${ext}${isZipped}`; + const tmppath = path.join(this.dirname, fileName); + + fs.exists(tmppath, exists => { + if (!exists) { + return cb(null); + } + + fileName = `${basename}${i}${ext}${isZipped}`; + fs.rename(tmppath, path.join(this.dirname, fileName), cb); + }); + }.bind(this, x)); + } + + asyncSeries(tasks, () => { + fs.rename( + path.join(this.dirname, `${basename}${ext}`), + path.join(this.dirname, `${basename}1${ext}${isZipped}`), + callback + ); + }); + } + + _createLogDirIfNotExist(dirPath) { + /* eslint-disable no-sync */ + if (!fs.existsSync(dirPath)) { + fs.mkdirSync(dirPath, { recursive: true }); + } + /* eslint-enable no-sync */ + } +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/http.js": +/*!************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/http.js ***! + \************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * http.js: Transport for outputting to a json-rpcserver. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +const http = __webpack_require__(/*! http */ "http"); +const https = __webpack_require__(/*! https */ "https"); +const { Stream } = __webpack_require__(/*! readable-stream */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js"); +const TransportStream = __webpack_require__(/*! winston-transport */ "./build/cht-core-4-6/api/node_modules/winston-transport/index.js"); +const jsonStringify = __webpack_require__(/*! safe-stable-stringify */ "./build/cht-core-4-6/api/node_modules/safe-stable-stringify/index.js"); + +/** + * Transport for outputting to a json-rpc server. + * @type {Stream} + * @extends {TransportStream} + */ +module.exports = class Http extends TransportStream { + /** + * Constructor function for the Http transport object responsible for + * persisting log messages and metadata to a terminal or TTY. + * @param {!Object} [options={}] - Options for this instance. + */ + // eslint-disable-next-line max-statements + constructor(options = {}) { + super(options); + + this.options = options; + this.name = options.name || 'http'; + this.ssl = !!options.ssl; + this.host = options.host || 'localhost'; + this.port = options.port; + this.auth = options.auth; + this.path = options.path || ''; + this.agent = options.agent; + this.headers = options.headers || {}; + this.headers['content-type'] = 'application/json'; + this.batch = options.batch || false; + this.batchInterval = options.batchInterval || 5000; + this.batchCount = options.batchCount || 10; + this.batchOptions = []; + this.batchTimeoutID = -1; + this.batchCallback = {}; + + if (!this.port) { + this.port = this.ssl ? 443 : 80; + } + } + + /** + * Core logging method exposed to Winston. + * @param {Object} info - TODO: add param description. + * @param {function} callback - TODO: add param description. + * @returns {undefined} + */ + log(info, callback) { + this._request(info, null, null, (err, res) => { + if (res && res.statusCode !== 200) { + err = new Error(`Invalid HTTP Status Code: ${res.statusCode}`); + } + + if (err) { + this.emit('warn', err); + } else { + this.emit('logged', info); + } + }); + + // Remark: (jcrugzz) Fire and forget here so requests dont cause buffering + // and block more requests from happening? + if (callback) { + setImmediate(callback); + } + } + + /** + * Query the transport. Options object is optional. + * @param {Object} options - Loggly-like query options for this instance. + * @param {function} callback - Continuation to respond to when complete. + * @returns {undefined} + */ + query(options, callback) { + if (typeof options === 'function') { + callback = options; + options = {}; + } + + options = { + method: 'query', + params: this.normalizeQuery(options) + }; + + const auth = options.params.auth || null; + delete options.params.auth; + + const path = options.params.path || null; + delete options.params.path; + + this._request(options, auth, path, (err, res, body) => { + if (res && res.statusCode !== 200) { + err = new Error(`Invalid HTTP Status Code: ${res.statusCode}`); + } + + if (err) { + return callback(err); + } + + if (typeof body === 'string') { + try { + body = JSON.parse(body); + } catch (e) { + return callback(e); + } + } + + callback(null, body); + }); + } + + /** + * Returns a log stream for this transport. Options object is optional. + * @param {Object} options - Stream options for this instance. + * @returns {Stream} - TODO: add return description + */ + stream(options = {}) { + const stream = new Stream(); + options = { + method: 'stream', + params: options + }; + + const path = options.params.path || null; + delete options.params.path; + + const auth = options.params.auth || null; + delete options.params.auth; + + let buff = ''; + const req = this._request(options, auth, path); + + stream.destroy = () => req.destroy(); + req.on('data', data => { + data = (buff + data).split(/\n+/); + const l = data.length - 1; + + let i = 0; + for (; i < l; i++) { + try { + stream.emit('log', JSON.parse(data[i])); + } catch (e) { + stream.emit('error', e); + } + } + + buff = data[l]; + }); + req.on('error', err => stream.emit('error', err)); + + return stream; + } + + /** + * Make a request to a winstond server or any http server which can + * handle json-rpc. + * @param {function} options - Options to sent the request. + * @param {Object?} auth - authentication options + * @param {string} path - request path + * @param {function} callback - Continuation to respond to when complete. + */ + _request(options, auth, path, callback) { + options = options || {}; + + auth = auth || this.auth; + path = path || this.path || ''; + + if (this.batch) { + this._doBatch(options, callback, auth, path); + } else { + this._doRequest(options, callback, auth, path); + } + } + + /** + * Send or memorize the options according to batch configuration + * @param {function} options - Options to sent the request. + * @param {function} callback - Continuation to respond to when complete. + * @param {Object?} auth - authentication options + * @param {string} path - request path + */ + _doBatch(options, callback, auth, path) { + this.batchOptions.push(options); + if (this.batchOptions.length === 1) { + // First message stored, it's time to start the timeout! + const me = this; + this.batchCallback = callback; + this.batchTimeoutID = setTimeout(function () { + // timeout is reached, send all messages to endpoint + me.batchTimeoutID = -1; + me._doBatchRequest(me.batchCallback, auth, path); + }, this.batchInterval); + } + if (this.batchOptions.length === this.batchCount) { + // max batch count is reached, send all messages to endpoint + this._doBatchRequest(this.batchCallback, auth, path); + } + } + + /** + * Initiate a request with the memorized batch options, stop the batch timeout + * @param {function} callback - Continuation to respond to when complete. + * @param {Object?} auth - authentication options + * @param {string} path - request path + */ + _doBatchRequest(callback, auth, path) { + if (this.batchTimeoutID > 0) { + clearTimeout(this.batchTimeoutID); + this.batchTimeoutID = -1; + } + const batchOptionsCopy = this.batchOptions.slice(); + this.batchOptions = []; + this._doRequest(batchOptionsCopy, callback, auth, path); + } + + /** + * Make a request to a winstond server or any http server which can + * handle json-rpc. + * @param {function} options - Options to sent the request. + * @param {function} callback - Continuation to respond to when complete. + * @param {Object?} auth - authentication options + * @param {string} path - request path + */ + _doRequest(options, callback, auth, path) { + // Prepare options for outgoing HTTP request + const headers = Object.assign({}, this.headers); + if (auth && auth.bearer) { + headers.Authorization = `Bearer ${auth.bearer}`; + } + const req = (this.ssl ? https : http).request({ + ...this.options, + method: 'POST', + host: this.host, + port: this.port, + path: `/${path.replace(/^\//, '')}`, + headers: headers, + auth: (auth && auth.username && auth.password) ? (`${auth.username}:${auth.password}`) : '', + agent: this.agent + }); + + req.on('error', callback); + req.on('response', res => ( + res.on('end', () => callback(null, res)).resume() + )); + req.end(Buffer.from(jsonStringify(options, this.options.replacer), 'utf8')); + } +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/index.js": +/*!*************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/index.js ***! + \*************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +/** + * transports.js: Set of all transports Winston knows about. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +/** + * TODO: add property description. + * @type {Console} + */ +Object.defineProperty(exports, "Console", ({ + configurable: true, + enumerable: true, + get() { + return __webpack_require__(/*! ./console */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/console.js"); + } +})); + +/** + * TODO: add property description. + * @type {File} + */ +Object.defineProperty(exports, "File", ({ + configurable: true, + enumerable: true, + get() { + return __webpack_require__(/*! ./file */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/file.js"); + } +})); + +/** + * TODO: add property description. + * @type {Http} + */ +Object.defineProperty(exports, "Http", ({ + configurable: true, + enumerable: true, + get() { + return __webpack_require__(/*! ./http */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/http.js"); + } +})); + +/** + * TODO: add property description. + * @type {Stream} + */ +Object.defineProperty(exports, "Stream", ({ + configurable: true, + enumerable: true, + get() { + return __webpack_require__(/*! ./stream */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/stream.js"); + } +})); + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/stream.js": +/*!**************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/stream.js ***! + \**************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * stream.js: Transport for outputting to any arbitrary stream. + * + * (C) 2010 Charlie Robbins + * MIT LICENCE + */ + + + +const isStream = __webpack_require__(/*! is-stream */ "./build/cht-core-4-6/api/node_modules/is-stream/index.js"); +const { MESSAGE } = __webpack_require__(/*! triple-beam */ "./build/cht-core-4-6/api/node_modules/triple-beam/index.js"); +const os = __webpack_require__(/*! os */ "os"); +const TransportStream = __webpack_require__(/*! winston-transport */ "./build/cht-core-4-6/api/node_modules/winston-transport/index.js"); + +/** + * Transport for outputting to any arbitrary stream. + * @type {Stream} + * @extends {TransportStream} + */ +module.exports = class Stream extends TransportStream { + /** + * Constructor function for the Console transport object responsible for + * persisting log messages and metadata to a terminal or TTY. + * @param {!Object} [options={}] - Options for this instance. + */ + constructor(options = {}) { + super(options); + + if (!options.stream || !isStream(options.stream)) { + throw new Error('options.stream is required.'); + } + + // We need to listen for drain events when write() returns false. This can + // make node mad at times. + this._stream = options.stream; + this._stream.setMaxListeners(Infinity); + this.isObjectMode = options.stream._writableState.objectMode; + this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL; + } + + /** + * Core logging method exposed to Winston. + * @param {Object} info - TODO: add param description. + * @param {Function} callback - TODO: add param description. + * @returns {undefined} + */ + log(info, callback) { + setImmediate(() => this.emit('logged', info)); + if (this.isObjectMode) { + this._stream.write(info); + if (callback) { + callback(); // eslint-disable-line callback-return + } + return; + } + + this._stream.write(`${info[MESSAGE]}${this.eol}`); + if (callback) { + callback(); // eslint-disable-line callback-return + } + return; + } +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js": +/*!********************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js ***! + \********************************************************************************************/ +/***/ ((module) => { + +"use strict"; + + +const codes = {}; + +function createErrorType(code, message, Base) { + if (!Base) { + Base = Error + } + + function getMessage (arg1, arg2, arg3) { + if (typeof message === 'string') { + return message + } else { + return message(arg1, arg2, arg3) + } + } + + class NodeError extends Base { + constructor (arg1, arg2, arg3) { + super(getMessage(arg1, arg2, arg3)); + } + } + + NodeError.prototype.name = Base.name; + NodeError.prototype.code = code; + + codes[code] = NodeError; +} + +// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js +function oneOf(expected, thing) { + if (Array.isArray(expected)) { + const len = expected.length; + expected = expected.map((i) => String(i)); + if (len > 2) { + return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` + + expected[len - 1]; + } else if (len === 2) { + return `one of ${thing} ${expected[0]} or ${expected[1]}`; + } else { + return `of ${thing} ${expected[0]}`; + } + } else { + return `of ${thing} ${String(expected)}`; + } +} + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith +function startsWith(str, search, pos) { + return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; +} + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith +function endsWith(str, search, this_len) { + if (this_len === undefined || this_len > str.length) { + this_len = str.length; + } + return str.substring(this_len - search.length, this_len) === search; +} + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes +function includes(str, search, start) { + if (typeof start !== 'number') { + start = 0; + } + + if (start + search.length > str.length) { + return false; + } else { + return str.indexOf(search, start) !== -1; + } +} + +createErrorType('ERR_INVALID_OPT_VALUE', function (name, value) { + return 'The value "' + value + '" is invalid for option "' + name + '"' +}, TypeError); +createErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) { + // determiner: 'must be' or 'must not be' + let determiner; + if (typeof expected === 'string' && startsWith(expected, 'not ')) { + determiner = 'must not be'; + expected = expected.replace(/^not /, ''); + } else { + determiner = 'must be'; + } + + let msg; + if (endsWith(name, ' argument')) { + // For cases like 'first argument' + msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`; + } else { + const type = includes(name, '.') ? 'property' : 'argument'; + msg = `The "${name}" ${type} ${determiner} ${oneOf(expected, 'type')}`; + } + + msg += `. Received type ${typeof actual}`; + return msg; +}, TypeError); +createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF'); +createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) { + return 'The ' + name + ' method is not implemented' +}); +createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close'); +createErrorType('ERR_STREAM_DESTROYED', function (name) { + return 'Cannot call ' + name + ' after a stream was destroyed'; +}); +createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times'); +createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable'); +createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end'); +createErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError); +createErrorType('ERR_UNKNOWN_ENCODING', function (arg) { + return 'Unknown encoding: ' + arg +}, TypeError); +createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event'); + +module.exports.codes = codes; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js": +/*!********************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js ***! + \********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// a duplex stream is just a stream that is both readable and writable. +// Since JS doesn't have multiple prototypal inheritance, this class +// prototypally inherits from Readable, and then parasitically from +// Writable. + + + +/**/ +var objectKeys = Object.keys || function (obj) { + var keys = []; + for (var key in obj) keys.push(key); + return keys; +}; +/**/ + +module.exports = Duplex; +var Readable = __webpack_require__(/*! ./_stream_readable */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js"); +var Writable = __webpack_require__(/*! ./_stream_writable */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js"); +__webpack_require__(/*! inherits */ "./build/cht-core-4-6/api/node_modules/inherits/inherits.js")(Duplex, Readable); +{ + // Allow the keys array to be GC'ed. + var keys = objectKeys(Writable.prototype); + for (var v = 0; v < keys.length; v++) { + var method = keys[v]; + if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; + } +} +function Duplex(options) { + if (!(this instanceof Duplex)) return new Duplex(options); + Readable.call(this, options); + Writable.call(this, options); + this.allowHalfOpen = true; + if (options) { + if (options.readable === false) this.readable = false; + if (options.writable === false) this.writable = false; + if (options.allowHalfOpen === false) { + this.allowHalfOpen = false; + this.once('end', onend); + } + } +} +Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; + } +}); +Object.defineProperty(Duplex.prototype, 'writableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); + } +}); +Object.defineProperty(Duplex.prototype, 'writableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.length; + } +}); + +// the no-half-open enforcer +function onend() { + // If the writable side ended, then we're ok. + if (this._writableState.ended) return; + + // no more data can be written. + // But allow more writes to happen in this tick. + process.nextTick(onEndNT, this); +} +function onEndNT(self) { + self.end(); +} +Object.defineProperty(Duplex.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === undefined || this._writableState === undefined) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (this._readableState === undefined || this._writableState === undefined) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } +}); + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_passthrough.js": +/*!*************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_passthrough.js ***! + \*************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// a passthrough stream. +// basically just the most minimal sort of Transform stream. +// Every written chunk gets output as-is. + + + +module.exports = PassThrough; +var Transform = __webpack_require__(/*! ./_stream_transform */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js"); +__webpack_require__(/*! inherits */ "./build/cht-core-4-6/api/node_modules/inherits/inherits.js")(PassThrough, Transform); +function PassThrough(options) { + if (!(this instanceof PassThrough)) return new PassThrough(options); + Transform.call(this, options); +} +PassThrough.prototype._transform = function (chunk, encoding, cb) { + cb(null, chunk); +}; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js": +/*!**********************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js ***! + \**********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + + + +module.exports = Readable; + +/**/ +var Duplex; +/**/ + +Readable.ReadableState = ReadableState; + +/**/ +var EE = __webpack_require__(/*! events */ "events").EventEmitter; +var EElistenerCount = function EElistenerCount(emitter, type) { + return emitter.listeners(type).length; +}; +/**/ + +/**/ +var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/stream.js"); +/**/ + +var Buffer = __webpack_require__(/*! buffer */ "buffer").Buffer; +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} + +/**/ +var debugUtil = __webpack_require__(/*! util */ "util"); +var debug; +if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog('stream'); +} else { + debug = function debug() {}; +} +/**/ + +var BufferList = __webpack_require__(/*! ./internal/streams/buffer_list */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/buffer_list.js"); +var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/destroy.js"); +var _require = __webpack_require__(/*! ./internal/streams/state */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/state.js"), + getHighWaterMark = _require.getHighWaterMark; +var _require$codes = __webpack_require__(/*! ../errors */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js").codes, + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; + +// Lazy loaded to improve the startup performance. +var StringDecoder; +var createReadableStreamAsyncIterator; +var from; +__webpack_require__(/*! inherits */ "./build/cht-core-4-6/api/node_modules/inherits/inherits.js")(Readable, Stream); +var errorOrDestroy = destroyImpl.errorOrDestroy; +var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; +function prependListener(emitter, event, fn) { + // Sadly this is not cacheable as some libraries bundle their own + // event emitter implementation with them. + if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); + + // This is a hack to make sure that our error handler is attached before any + // userland ones. NEVER DO THIS. This is here only because this code needs + // to continue to work with older versions of Node.js that do not include + // the prependListener() method. The goal is to eventually remove this hack. + if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; +} +function ReadableState(options, stream, isDuplex) { + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js"); + options = options || {}; + + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream. + // These options can be provided separately as readableXXX and writableXXX. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; + + // object stream flag. Used to make read(n) ignore n and to + // make all the buffer merging and length checks go away + this.objectMode = !!options.objectMode; + if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; + + // the point at which it stops calling _read() to fill the buffer + // Note: 0 is a valid value, means "don't call _read preemptively ever" + this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); + + // A linked list is used to store data chunks instead of an array because the + // linked list can remove elements from the beginning faster than + // array.shift() + this.buffer = new BufferList(); + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; + + // a flag to be able to tell if the event 'readable'/'data' is emitted + // immediately, or on a later tick. We set this to true at first, because + // any actions that shouldn't happen until "later" should generally also + // not happen before the first read call. + this.sync = true; + + // whenever we return null, then we set a flag to say + // that we're awaiting a 'readable' event emission. + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; + this.paused = true; + + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; + + // Should .destroy() be called after 'end' (and potentially 'finish') + this.autoDestroy = !!options.autoDestroy; + + // has it been destroyed + this.destroyed = false; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // the number of writers that are awaiting a drain event in .pipe()s + this.awaitDrain = 0; + + // if true, a maybeReadMore has been scheduled + this.readingMore = false; + this.decoder = null; + this.encoding = null; + if (options.encoding) { + if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ "./build/cht-core-4-6/api/node_modules/string_decoder/lib/string_decoder.js").StringDecoder; + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } +} +function Readable(options) { + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js"); + if (!(this instanceof Readable)) return new Readable(options); + + // Checking for a Stream.Duplex instance is faster here instead of inside + // the ReadableState constructor, at least with V8 6.5 + var isDuplex = this instanceof Duplex; + this._readableState = new ReadableState(options, this, isDuplex); + + // legacy + this.readable = true; + if (options) { + if (typeof options.read === 'function') this._read = options.read; + if (typeof options.destroy === 'function') this._destroy = options.destroy; + } + Stream.call(this); +} +Object.defineProperty(Readable.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === undefined) { + return false; + } + return this._readableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._readableState) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + } +}); +Readable.prototype.destroy = destroyImpl.destroy; +Readable.prototype._undestroy = destroyImpl.undestroy; +Readable.prototype._destroy = function (err, cb) { + cb(err); +}; + +// Manually shove something into the read() buffer. +// This returns true if the highWaterMark has not been hit yet, +// similar to how Writable.write() returns true if you should +// write() some more. +Readable.prototype.push = function (chunk, encoding) { + var state = this._readableState; + var skipChunkCheck; + if (!state.objectMode) { + if (typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer.from(chunk, encoding); + encoding = ''; + } + skipChunkCheck = true; + } + } else { + skipChunkCheck = true; + } + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); +}; + +// Unshift should *always* be something directly out of read() +Readable.prototype.unshift = function (chunk) { + return readableAddChunk(this, chunk, null, true, false); +}; +function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { + debug('readableAddChunk', chunk); + var state = stream._readableState; + if (chunk === null) { + state.reading = false; + onEofChunk(stream, state); + } else { + var er; + if (!skipChunkCheck) er = chunkInvalid(state, chunk); + if (er) { + errorOrDestroy(stream, er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (addToFront) { + if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true); + } else if (state.ended) { + errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); + } else if (state.destroyed) { + return false; + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); + } else { + addChunk(stream, state, chunk, false); + } + } + } else if (!addToFront) { + state.reading = false; + maybeReadMore(stream, state); + } + } + + // We can push more data if we are below the highWaterMark. + // Also, if we have no data yet, we can stand some more bytes. + // This is to work around cases where hwm=0, such as the repl. + return !state.ended && (state.length < state.highWaterMark || state.length === 0); +} +function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + state.awaitDrain = 0; + stream.emit('data', chunk); + } else { + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); + if (state.needReadable) emitReadable(stream); + } + maybeReadMore(stream, state); +} +function chunkInvalid(state, chunk) { + var er; + if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk); + } + return er; +} +Readable.prototype.isPaused = function () { + return this._readableState.flowing === false; +}; + +// backwards compatibility. +Readable.prototype.setEncoding = function (enc) { + if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ "./build/cht-core-4-6/api/node_modules/string_decoder/lib/string_decoder.js").StringDecoder; + var decoder = new StringDecoder(enc); + this._readableState.decoder = decoder; + // If setEncoding(null), decoder.encoding equals utf8 + this._readableState.encoding = this._readableState.decoder.encoding; + + // Iterate over current buffer to convert already stored Buffers: + var p = this._readableState.buffer.head; + var content = ''; + while (p !== null) { + content += decoder.write(p.data); + p = p.next; + } + this._readableState.buffer.clear(); + if (content !== '') this._readableState.buffer.push(content); + this._readableState.length = content.length; + return this; +}; + +// Don't raise the hwm > 1GB +var MAX_HWM = 0x40000000; +function computeNewHighWaterMark(n) { + if (n >= MAX_HWM) { + // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE. + n = MAX_HWM; + } else { + // Get the next highest power of 2 to prevent increasing hwm excessively in + // tiny amounts + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; + } + return n; +} + +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function howMuchToRead(n, state) { + if (n <= 0 || state.length === 0 && state.ended) return 0; + if (state.objectMode) return 1; + if (n !== n) { + // Only flow one buffer at a time + if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; + } + // If we're asking for more than the current hwm, then raise the hwm. + if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); + if (n <= state.length) return n; + // Don't have enough + if (!state.ended) { + state.needReadable = true; + return 0; + } + return state.length; +} + +// you can override either this method, or the async _read(n) below. +Readable.prototype.read = function (n) { + debug('read', n); + n = parseInt(n, 10); + var state = this._readableState; + var nOrig = n; + if (n !== 0) state.emittedReadable = false; + + // if we're doing read(0) to trigger a readable event, but we + // already have a bunch of data in the buffer, then just trigger + // the 'readable' event and move on. + if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { + debug('read: emitReadable', state.length, state.ended); + if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); + return null; + } + n = howMuchToRead(n, state); + + // if we've ended, and we're now clear, then finish it up. + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this); + return null; + } + + // All the actual chunk generation logic needs to be + // *below* the call to _read. The reason is that in certain + // synthetic stream cases, such as passthrough streams, _read + // may be a completely synchronous operation which may change + // the state of the read buffer, providing enough data when + // before there was *not* enough. + // + // So, the steps are: + // 1. Figure out what the state of things will be after we do + // a read from the buffer. + // + // 2. If that resulting state will trigger a _read, then call _read. + // Note that this may be asynchronous, or synchronous. Yes, it is + // deeply ugly to write APIs this way, but that still doesn't mean + // that the Readable class should behave improperly, as streams are + // designed to be sync/async agnostic. + // Take note if the _read call is sync or async (ie, if the read call + // has returned yet), so that we know whether or not it's safe to emit + // 'readable' etc. + // + // 3. Actually pull the requested chunks out of the buffer and return. + + // if we need a readable event, then we need to do some reading. + var doRead = state.needReadable; + debug('need readable', doRead); + + // if we currently have less than the highWaterMark, then also read some + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + debug('length less than watermark', doRead); + } + + // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. + if (state.ended || state.reading) { + doRead = false; + debug('reading or ended', doRead); + } else if (doRead) { + debug('do read'); + state.reading = true; + state.sync = true; + // if the length is currently zero, then we *need* a readable event. + if (state.length === 0) state.needReadable = true; + // call internal read method + this._read(state.highWaterMark); + state.sync = false; + // If _read pushed data synchronously, then `reading` will be false, + // and we need to re-evaluate how much data we can return to the user. + if (!state.reading) n = howMuchToRead(nOrig, state); + } + var ret; + if (n > 0) ret = fromList(n, state);else ret = null; + if (ret === null) { + state.needReadable = state.length <= state.highWaterMark; + n = 0; + } else { + state.length -= n; + state.awaitDrain = 0; + } + if (state.length === 0) { + // If we have nothing in the buffer, then we want to know + // as soon as we *do* get something into the buffer. + if (!state.ended) state.needReadable = true; + + // If we tried to read() past the EOF, then emit end on the next tick. + if (nOrig !== n && state.ended) endReadable(this); + } + if (ret !== null) this.emit('data', ret); + return ret; +}; +function onEofChunk(stream, state) { + debug('onEofChunk'); + if (state.ended) return; + if (state.decoder) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + if (state.sync) { + // if we are sync, wait until next tick to emit the data. + // Otherwise we risk emitting data in the flow() + // the readable code triggers during a read() call + emitReadable(stream); + } else { + // emit 'readable' now to make sure it gets picked up. + state.needReadable = false; + if (!state.emittedReadable) { + state.emittedReadable = true; + emitReadable_(stream); + } + } +} + +// Don't emit readable right away in sync mode, because this can trigger +// another read() call => stack overflow. This way, it might trigger +// a nextTick recursion warning, but that's not so bad. +function emitReadable(stream) { + var state = stream._readableState; + debug('emitReadable', state.needReadable, state.emittedReadable); + state.needReadable = false; + if (!state.emittedReadable) { + debug('emitReadable', state.flowing); + state.emittedReadable = true; + process.nextTick(emitReadable_, stream); + } +} +function emitReadable_(stream) { + var state = stream._readableState; + debug('emitReadable_', state.destroyed, state.length, state.ended); + if (!state.destroyed && (state.length || state.ended)) { + stream.emit('readable'); + state.emittedReadable = false; + } + + // The stream needs another readable event if + // 1. It is not flowing, as the flow mechanism will take + // care of it. + // 2. It is not ended. + // 3. It is below the highWaterMark, so we can schedule + // another readable later. + state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; + flow(stream); +} + +// at this point, the user has presumably seen the 'readable' event, +// and called read() to consume some data. that may have triggered +// in turn another _read(n) call, in which case reading = true if +// it's in progress. +// However, if we're not ended, or reading, and the length < hwm, +// then go ahead and try to read some more preemptively. +function maybeReadMore(stream, state) { + if (!state.readingMore) { + state.readingMore = true; + process.nextTick(maybeReadMore_, stream, state); + } +} +function maybeReadMore_(stream, state) { + // Attempt to read more data if we should. + // + // The conditions for reading more data are (one of): + // - Not enough data buffered (state.length < state.highWaterMark). The loop + // is responsible for filling the buffer with enough data if such data + // is available. If highWaterMark is 0 and we are not in the flowing mode + // we should _not_ attempt to buffer any extra data. We'll get more data + // when the stream consumer calls read() instead. + // - No data in the buffer, and the stream is in flowing mode. In this mode + // the loop below is responsible for ensuring read() is called. Failing to + // call read here would abort the flow and there's no other mechanism for + // continuing the flow if the stream consumer has just subscribed to the + // 'data' event. + // + // In addition to the above conditions to keep reading data, the following + // conditions prevent the data from being read: + // - The stream has ended (state.ended). + // - There is already a pending 'read' operation (state.reading). This is a + // case where the the stream has called the implementation defined _read() + // method, but they are processing the call asynchronously and have _not_ + // called push() with new data. In this case we skip performing more + // read()s. The execution ends in this method again after the _read() ends + // up calling push() with more data. + while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) { + var len = state.length; + debug('maybeReadMore read 0'); + stream.read(0); + if (len === state.length) + // didn't get any data, stop spinning. + break; + } + state.readingMore = false; +} + +// abstract method. to be overridden in specific implementation classes. +// call cb(er, data) where data is <= n in length. +// for virtual (non-string, non-buffer) streams, "length" is somewhat +// arbitrary, and perhaps not very meaningful. +Readable.prototype._read = function (n) { + errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')); +}; +Readable.prototype.pipe = function (dest, pipeOpts) { + var src = this; + var state = this._readableState; + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; + case 1: + state.pipes = [state.pipes, dest]; + break; + default: + state.pipes.push(dest); + break; + } + state.pipesCount += 1; + debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); + var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; + var endFn = doEnd ? onend : unpipe; + if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn); + dest.on('unpipe', onunpipe); + function onunpipe(readable, unpipeInfo) { + debug('onunpipe'); + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } + } + } + function onend() { + debug('onend'); + dest.end(); + } + + // when the dest drains, it reduces the awaitDrain counter + // on the source. This would be more elegant with a .once() + // handler in flow(), but adding and removing repeatedly is + // too slow. + var ondrain = pipeOnDrain(src); + dest.on('drain', ondrain); + var cleanedUp = false; + function cleanup() { + debug('cleanup'); + // cleanup event handlers once the pipe is broken + dest.removeListener('close', onclose); + dest.removeListener('finish', onfinish); + dest.removeListener('drain', ondrain); + dest.removeListener('error', onerror); + dest.removeListener('unpipe', onunpipe); + src.removeListener('end', onend); + src.removeListener('end', unpipe); + src.removeListener('data', ondata); + cleanedUp = true; + + // if the reader is waiting for a drain event from this + // specific writer, then it would cause it to never start + // flowing again. + // So, if this is awaiting a drain, then we just call it now. + // If we don't know, then assume that we are waiting for one. + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); + } + src.on('data', ondata); + function ondata(chunk) { + debug('ondata'); + var ret = dest.write(chunk); + debug('dest.write', ret); + if (ret === false) { + // If the user unpiped during `dest.write()`, it is possible + // to get stuck in a permanently paused state if that write + // also returned false. + // => Check whether `dest` is still a piping destination. + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { + debug('false write response, pause', state.awaitDrain); + state.awaitDrain++; + } + src.pause(); + } + } + + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. + function onerror(er) { + debug('onerror', er); + unpipe(); + dest.removeListener('error', onerror); + if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er); + } + + // Make sure our error handler is attached before userland ones. + prependListener(dest, 'error', onerror); + + // Both close and finish should trigger unpipe, but only once. + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } + dest.once('close', onclose); + function onfinish() { + debug('onfinish'); + dest.removeListener('close', onclose); + unpipe(); + } + dest.once('finish', onfinish); + function unpipe() { + debug('unpipe'); + src.unpipe(dest); + } + + // tell the dest that it's being piped to + dest.emit('pipe', src); + + // start the flow if it hasn't been started already. + if (!state.flowing) { + debug('pipe resume'); + src.resume(); + } + return dest; +}; +function pipeOnDrain(src) { + return function pipeOnDrainFunctionResult() { + var state = src._readableState; + debug('pipeOnDrain', state.awaitDrain); + if (state.awaitDrain) state.awaitDrain--; + if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { + state.flowing = true; + flow(src); + } + }; +} +Readable.prototype.unpipe = function (dest) { + var state = this._readableState; + var unpipeInfo = { + hasUnpiped: false + }; + + // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) return this; + + // just one destination. most common case. + if (state.pipesCount === 1) { + // passed in one, but it's not the right one. + if (dest && dest !== state.pipes) return this; + if (!dest) dest = state.pipes; + + // got a match. + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) dest.emit('unpipe', this, unpipeInfo); + return this; + } + + // slow case. multiple pipe destinations. + + if (!dest) { + // remove all. + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, { + hasUnpiped: false + }); + return this; + } + + // try to find the right one. + var index = indexOf(state.pipes, dest); + if (index === -1) return this; + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) state.pipes = state.pipes[0]; + dest.emit('unpipe', this, unpipeInfo); + return this; +}; + +// set up data events if they are asked for +// Ensure readable listeners eventually get something +Readable.prototype.on = function (ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + var state = this._readableState; + if (ev === 'data') { + // update readableListening so that resume() may be a no-op + // a few lines down. This is needed to support once('readable'). + state.readableListening = this.listenerCount('readable') > 0; + + // Try start flowing on next tick if stream isn't explicitly paused + if (state.flowing !== false) this.resume(); + } else if (ev === 'readable') { + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.flowing = false; + state.emittedReadable = false; + debug('on readable', state.length, state.reading); + if (state.length) { + emitReadable(this); + } else if (!state.reading) { + process.nextTick(nReadingNextTick, this); + } + } + } + return res; +}; +Readable.prototype.addListener = Readable.prototype.on; +Readable.prototype.removeListener = function (ev, fn) { + var res = Stream.prototype.removeListener.call(this, ev, fn); + if (ev === 'readable') { + // We need to check if there is someone still listening to + // readable and reset the state. However this needs to happen + // after readable has been emitted but before I/O (nextTick) to + // support once('readable', fn) cycles. This means that calling + // resume within the same tick will have no + // effect. + process.nextTick(updateReadableListening, this); + } + return res; +}; +Readable.prototype.removeAllListeners = function (ev) { + var res = Stream.prototype.removeAllListeners.apply(this, arguments); + if (ev === 'readable' || ev === undefined) { + // We need to check if there is someone still listening to + // readable and reset the state. However this needs to happen + // after readable has been emitted but before I/O (nextTick) to + // support once('readable', fn) cycles. This means that calling + // resume within the same tick will have no + // effect. + process.nextTick(updateReadableListening, this); + } + return res; +}; +function updateReadableListening(self) { + var state = self._readableState; + state.readableListening = self.listenerCount('readable') > 0; + if (state.resumeScheduled && !state.paused) { + // flowing needs to be set to true now, otherwise + // the upcoming resume will not flow. + state.flowing = true; + + // crude way to check if we should resume + } else if (self.listenerCount('data') > 0) { + self.resume(); + } +} +function nReadingNextTick(self) { + debug('readable nexttick read 0'); + self.read(0); +} + +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. +Readable.prototype.resume = function () { + var state = this._readableState; + if (!state.flowing) { + debug('resume'); + // we flow only if there is no one listening + // for readable, but we still have to call + // resume() + state.flowing = !state.readableListening; + resume(this, state); + } + state.paused = false; + return this; +}; +function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + process.nextTick(resume_, stream, state); + } +} +function resume_(stream, state) { + debug('resume', state.reading); + if (!state.reading) { + stream.read(0); + } + state.resumeScheduled = false; + stream.emit('resume'); + flow(stream); + if (state.flowing && !state.reading) stream.read(0); +} +Readable.prototype.pause = function () { + debug('call pause flowing=%j', this._readableState.flowing); + if (this._readableState.flowing !== false) { + debug('pause'); + this._readableState.flowing = false; + this.emit('pause'); + } + this._readableState.paused = true; + return this; +}; +function flow(stream) { + var state = stream._readableState; + debug('flow', state.flowing); + while (state.flowing && stream.read() !== null); +} + +// wrap an old-style stream as the async data source. +// This is *not* part of the readable stream interface. +// It is an ugly unfortunate mess of history. +Readable.prototype.wrap = function (stream) { + var _this = this; + var state = this._readableState; + var paused = false; + stream.on('end', function () { + debug('wrapped end'); + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) _this.push(chunk); + } + _this.push(null); + }); + stream.on('data', function (chunk) { + debug('wrapped data'); + if (state.decoder) chunk = state.decoder.write(chunk); + + // don't skip over falsy values in objectMode + if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; + var ret = _this.push(chunk); + if (!ret) { + paused = true; + stream.pause(); + } + }); + + // proxy all the other methods. + // important when wrapping filters and duplexes. + for (var i in stream) { + if (this[i] === undefined && typeof stream[i] === 'function') { + this[i] = function methodWrap(method) { + return function methodWrapReturnFunction() { + return stream[method].apply(stream, arguments); + }; + }(i); + } + } + + // proxy certain important events. + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); + } + + // when we try to consume some more bytes, simply unpause the + // underlying stream. + this._read = function (n) { + debug('wrapped _read', n); + if (paused) { + paused = false; + stream.resume(); + } + }; + return this; +}; +if (typeof Symbol === 'function') { + Readable.prototype[Symbol.asyncIterator] = function () { + if (createReadableStreamAsyncIterator === undefined) { + createReadableStreamAsyncIterator = __webpack_require__(/*! ./internal/streams/async_iterator */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/async_iterator.js"); + } + return createReadableStreamAsyncIterator(this); + }; +} +Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.highWaterMark; + } +}); +Object.defineProperty(Readable.prototype, 'readableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState && this._readableState.buffer; + } +}); +Object.defineProperty(Readable.prototype, 'readableFlowing', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.flowing; + }, + set: function set(state) { + if (this._readableState) { + this._readableState.flowing = state; + } + } +}); + +// exposed for testing purposes only. +Readable._fromList = fromList; +Object.defineProperty(Readable.prototype, 'readableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.length; + } +}); + +// Pluck off n bytes from an array of buffers. +// Length is the combined lengths of all the buffers in the list. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromList(n, state) { + // nothing buffered + if (state.length === 0) return null; + var ret; + if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { + // read it all, truncate the list + if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + // read part of list + ret = state.buffer.consume(n, state.decoder); + } + return ret; +} +function endReadable(stream) { + var state = stream._readableState; + debug('endReadable', state.endEmitted); + if (!state.endEmitted) { + state.ended = true; + process.nextTick(endReadableNT, state, stream); + } +} +function endReadableNT(state, stream) { + debug('endReadableNT', state.endEmitted, state.length); + + // Check that we didn't get one last unshift. + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); + if (state.autoDestroy) { + // In case of duplex streams we need a way to detect + // if the writable side is ready for autoDestroy as well + var wState = stream._writableState; + if (!wState || wState.autoDestroy && wState.finished) { + stream.destroy(); + } + } + } +} +if (typeof Symbol === 'function') { + Readable.from = function (iterable, opts) { + if (from === undefined) { + from = __webpack_require__(/*! ./internal/streams/from */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/from.js"); + } + return from(Readable, iterable, opts); + }; +} +function indexOf(xs, x) { + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) return i; + } + return -1; +} + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js": +/*!***********************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js ***! + \***********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// a transform stream is a readable/writable stream where you do +// something with the data. Sometimes it's called a "filter", +// but that's not a great name for it, since that implies a thing where +// some bits pass through, and others are simply ignored. (That would +// be a valid example of a transform, of course.) +// +// While the output is causally related to the input, it's not a +// necessarily symmetric or synchronous transformation. For example, +// a zlib stream might take multiple plain-text writes(), and then +// emit a single compressed chunk some time in the future. +// +// Here's how this works: +// +// The Transform stream has all the aspects of the readable and writable +// stream classes. When you write(chunk), that calls _write(chunk,cb) +// internally, and returns false if there's a lot of pending writes +// buffered up. When you call read(), that calls _read(n) until +// there's enough pending readable data buffered up. +// +// In a transform stream, the written data is placed in a buffer. When +// _read(n) is called, it transforms the queued up data, calling the +// buffered _write cb's as it consumes chunks. If consuming a single +// written chunk would result in multiple output chunks, then the first +// outputted bit calls the readcb, and subsequent chunks just go into +// the read buffer, and will cause it to emit 'readable' if necessary. +// +// This way, back-pressure is actually determined by the reading side, +// since _read has to be called to start processing a new chunk. However, +// a pathological inflate type of transform can cause excessive buffering +// here. For example, imagine a stream where every byte of input is +// interpreted as an integer from 0-255, and then results in that many +// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in +// 1kb of data being output. In this case, you could write a very small +// amount of input, and end up with a very large amount of output. In +// such a pathological inflating mechanism, there'd be no way to tell +// the system to stop doing the transform. A single 4MB write could +// cause the system to run out of memory. +// +// However, even in such a pathological case, only a single written chunk +// would be consumed, and then the rest would wait (un-transformed) until +// the results of the previous transformed chunk were consumed. + + + +module.exports = Transform; +var _require$codes = __webpack_require__(/*! ../errors */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js").codes, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, + ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; +var Duplex = __webpack_require__(/*! ./_stream_duplex */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js"); +__webpack_require__(/*! inherits */ "./build/cht-core-4-6/api/node_modules/inherits/inherits.js")(Transform, Duplex); +function afterTransform(er, data) { + var ts = this._transformState; + ts.transforming = false; + var cb = ts.writecb; + if (cb === null) { + return this.emit('error', new ERR_MULTIPLE_CALLBACK()); + } + ts.writechunk = null; + ts.writecb = null; + if (data != null) + // single equals check for both `null` and `undefined` + this.push(data); + cb(er); + var rs = this._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + this._read(rs.highWaterMark); + } +} +function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options); + Duplex.call(this, options); + this._transformState = { + afterTransform: afterTransform.bind(this), + needTransform: false, + transforming: false, + writecb: null, + writechunk: null, + writeencoding: null + }; + + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; + + // we have implemented the _read method, and done the other things + // that Readable wants before the first _read call, so unset the + // sync guard flag. + this._readableState.sync = false; + if (options) { + if (typeof options.transform === 'function') this._transform = options.transform; + if (typeof options.flush === 'function') this._flush = options.flush; + } + + // When the writable side finishes, then flush out anything remaining. + this.on('prefinish', prefinish); +} +function prefinish() { + var _this = this; + if (typeof this._flush === 'function' && !this._readableState.destroyed) { + this._flush(function (er, data) { + done(_this, er, data); + }); + } else { + done(this, null, null); + } +} +Transform.prototype.push = function (chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); +}; + +// This is the part where you do stuff! +// override this function in implementation classes. +// 'chunk' is an input chunk. +// +// Call `push(newChunk)` to pass along transformed output +// to the readable side. You may call 'push' zero or more times. +// +// Call `cb(err)` when you are done with this chunk. If you pass +// an error, then that'll put the hurt on the whole operation. If you +// never call cb(), then you'll never get another chunk. +Transform.prototype._transform = function (chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')); +}; +Transform.prototype._write = function (chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); + } +}; + +// Doesn't matter what the args are here. +// _transform does all the work. +// That we got here means that the readable side wants more data. +Transform.prototype._read = function (n) { + var ts = this._transformState; + if (ts.writechunk !== null && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + // mark that we need a transform, so that any data that comes in + // will get processed, now that we've asked for it. + ts.needTransform = true; + } +}; +Transform.prototype._destroy = function (err, cb) { + Duplex.prototype._destroy.call(this, err, function (err2) { + cb(err2); + }); +}; +function done(stream, er, data) { + if (er) return stream.emit('error', er); + if (data != null) + // single equals check for both `null` and `undefined` + stream.push(data); + + // TODO(BridgeAR): Write a test for these two error cases + // if there's nothing in the write buffer, then that means + // that nothing more will ever be provided + if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0(); + if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); + return stream.push(null); +} + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js": +/*!**********************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js ***! + \**********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// A bit simpler than readable streams. +// Implement an async ._write(chunk, encoding, cb), and it'll handle all +// the drain event emission and buffering. + + + +module.exports = Writable; + +/* */ +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; + this.next = null; +} + +// It seems a linked list but it is not +// there will be only 2 of these for each stream +function CorkedRequest(state) { + var _this = this; + this.next = null; + this.entry = null; + this.finish = function () { + onCorkedFinish(_this, state); + }; +} +/* */ + +/**/ +var Duplex; +/**/ + +Writable.WritableState = WritableState; + +/**/ +var internalUtil = { + deprecate: __webpack_require__(/*! util-deprecate */ "./build/cht-core-4-6/api/node_modules/util-deprecate/node.js") +}; +/**/ + +/**/ +var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/stream.js"); +/**/ + +var Buffer = __webpack_require__(/*! buffer */ "buffer").Buffer; +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} +var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/destroy.js"); +var _require = __webpack_require__(/*! ./internal/streams/state */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/state.js"), + getHighWaterMark = _require.getHighWaterMark; +var _require$codes = __webpack_require__(/*! ../errors */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js").codes, + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, + ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, + ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, + ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; +var errorOrDestroy = destroyImpl.errorOrDestroy; +__webpack_require__(/*! inherits */ "./build/cht-core-4-6/api/node_modules/inherits/inherits.js")(Writable, Stream); +function nop() {} +function WritableState(options, stream, isDuplex) { + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js"); + options = options || {}; + + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream, + // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; + + // object stream flag to indicate whether or not this stream + // contains buffers or objects. + this.objectMode = !!options.objectMode; + if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; + + // the point at which write() starts returning false + // Note: 0 is a valid value, means that we always return false if + // the entire buffer is not flushed immediately on write() + this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); + + // if _final has been called + this.finalCalled = false; + + // drain event flag. + this.needDrain = false; + // at the start of calling end() + this.ending = false; + // when end() has been called, and returned + this.ended = false; + // when 'finish' is emitted + this.finished = false; + + // has it been destroyed + this.destroyed = false; + + // should we decode strings into buffers before passing to _write? + // this is here so that some node-core streams can optimize string + // handling at a lower level. + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // not an actual buffer we keep track of, but a measurement + // of how much we're waiting to get pushed to some underlying + // socket or file. + this.length = 0; + + // a flag to see when we're in the middle of a write. + this.writing = false; + + // when true all writes will be buffered until .uncork() call + this.corked = 0; + + // a flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, because any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. + this.sync = true; + + // a flag to know if we're processing previously buffered items, which + // may call the _write() callback in the same tick, so that we don't + // end up in an overlapped onwrite situation. + this.bufferProcessing = false; + + // the callback that's passed to _write(chunk,cb) + this.onwrite = function (er) { + onwrite(stream, er); + }; + + // the callback that the user supplies to write(chunk,encoding,cb) + this.writecb = null; + + // the amount that is being written when _write is called. + this.writelen = 0; + this.bufferedRequest = null; + this.lastBufferedRequest = null; + + // number of pending user-supplied write callbacks + // this must be 0 before 'finish' can be emitted + this.pendingcb = 0; + + // emit prefinish if the only thing we're waiting for is _write cbs + // This is relevant for synchronous Transform streams + this.prefinished = false; + + // True if the error was already emitted and should not be thrown again + this.errorEmitted = false; + + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; + + // Should .destroy() be called after 'finish' (and potentially 'end') + this.autoDestroy = !!options.autoDestroy; + + // count buffered requests + this.bufferedRequestCount = 0; + + // allocate the first CorkedRequest, there is always + // one allocated and free to use, and we maintain at most two + this.corkedRequestsFree = new CorkedRequest(this); +} +WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest; + var out = []; + while (current) { + out.push(current); + current = current.next; + } + return out; +}; +(function () { + try { + Object.defineProperty(WritableState.prototype, 'buffer', { + get: internalUtil.deprecate(function writableStateBufferGetter() { + return this.getBuffer(); + }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') + }); + } catch (_) {} +})(); + +// Test _writableState for inheritance to account for Duplex streams, +// whose prototype chain only points to Readable. +var realHasInstance; +if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { + realHasInstance = Function.prototype[Symbol.hasInstance]; + Object.defineProperty(Writable, Symbol.hasInstance, { + value: function value(object) { + if (realHasInstance.call(this, object)) return true; + if (this !== Writable) return false; + return object && object._writableState instanceof WritableState; + } + }); +} else { + realHasInstance = function realHasInstance(object) { + return object instanceof this; + }; +} +function Writable(options) { + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js"); + + // Writable ctor is applied to Duplexes, too. + // `realHasInstance` is necessary because using plain `instanceof` + // would return false, as no `_writableState` property is attached. + + // Trying to use the custom `instanceof` for Writable here will also break the + // Node.js LazyTransform implementation, which has a non-trivial getter for + // `_writableState` that would lead to infinite recursion. + + // Checking for a Stream.Duplex instance is faster here instead of inside + // the WritableState constructor, at least with V8 6.5 + var isDuplex = this instanceof Duplex; + if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); + this._writableState = new WritableState(options, this, isDuplex); + + // legacy. + this.writable = true; + if (options) { + if (typeof options.write === 'function') this._write = options.write; + if (typeof options.writev === 'function') this._writev = options.writev; + if (typeof options.destroy === 'function') this._destroy = options.destroy; + if (typeof options.final === 'function') this._final = options.final; + } + Stream.call(this); +} + +// Otherwise people can pipe Writable streams, which is just wrong. +Writable.prototype.pipe = function () { + errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); +}; +function writeAfterEnd(stream, cb) { + var er = new ERR_STREAM_WRITE_AFTER_END(); + // TODO: defer error events consistently everywhere, not just the cb + errorOrDestroy(stream, er); + process.nextTick(cb, er); +} + +// Checks that a user-supplied chunk is valid, especially for the particular +// mode the stream is in. Currently this means that `null` is never accepted +// and undefined/non-string values are only allowed in object mode. +function validChunk(stream, state, chunk, cb) { + var er; + if (chunk === null) { + er = new ERR_STREAM_NULL_VALUES(); + } else if (typeof chunk !== 'string' && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); + } + if (er) { + errorOrDestroy(stream, er); + process.nextTick(cb, er); + return false; + } + return true; +} +Writable.prototype.write = function (chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + var isBuf = !state.objectMode && _isUint8Array(chunk); + if (isBuf && !Buffer.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; + if (typeof cb !== 'function') cb = nop; + if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++; + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + } + return ret; +}; +Writable.prototype.cork = function () { + this._writableState.corked++; +}; +Writable.prototype.uncork = function () { + var state = this._writableState; + if (state.corked) { + state.corked--; + if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); + } +}; +Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + // node::ParseEncoding() requires lower case. + if (typeof encoding === 'string') encoding = encoding.toLowerCase(); + if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding); + this._writableState.defaultEncoding = encoding; + return this; +}; +Object.defineProperty(Writable.prototype, 'writableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); + } +}); +function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { + chunk = Buffer.from(chunk, encoding); + } + return chunk; +} +Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; + } +}); + +// if we're already writing something, then just put this +// in the queue, and wait our turn. Otherwise, call _write +// If we return false, then we need a drain event, so set that flag. +function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = 'buffer'; + chunk = newChunk; + } + } + var len = state.objectMode ? 1 : chunk.length; + state.length += len; + var ret = state.length < state.highWaterMark; + // we must ensure that previous needDrain will not be reset to false. + if (!ret) state.needDrain = true; + if (state.writing || state.corked) { + var last = state.lastBufferedRequest; + state.lastBufferedRequest = { + chunk: chunk, + encoding: encoding, + isBuf: isBuf, + callback: cb, + next: null + }; + if (last) { + last.next = state.lastBufferedRequest; + } else { + state.bufferedRequest = state.lastBufferedRequest; + } + state.bufferedRequestCount += 1; + } else { + doWrite(stream, state, false, len, chunk, encoding, cb); + } + return ret; +} +function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); + state.sync = false; +} +function onwriteError(stream, state, sync, er, cb) { + --state.pendingcb; + if (sync) { + // defer the callback if we are being called synchronously + // to avoid piling up things on the stack + process.nextTick(cb, er); + // this can emit finish, and it will always happen + // after error + process.nextTick(finishMaybe, stream, state); + stream._writableState.errorEmitted = true; + errorOrDestroy(stream, er); + } else { + // the caller expect this to happen before if + // it is async + cb(er); + stream._writableState.errorEmitted = true; + errorOrDestroy(stream, er); + // this can emit finish, but finish must + // always follow error + finishMaybe(stream, state); + } +} +function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; +} +function onwrite(stream, er) { + var state = stream._writableState; + var sync = state.sync; + var cb = state.writecb; + if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK(); + onwriteStateUpdate(state); + if (er) onwriteError(stream, state, sync, er, cb);else { + // Check if we're actually ready to finish, but don't emit yet + var finished = needFinish(state) || stream.destroyed; + if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { + clearBuffer(stream, state); + } + if (sync) { + process.nextTick(afterWrite, stream, state, finished, cb); + } else { + afterWrite(stream, state, finished, cb); + } + } +} +function afterWrite(stream, state, finished, cb) { + if (!finished) onwriteDrain(stream, state); + state.pendingcb--; + cb(); + finishMaybe(stream, state); +} + +// Must force callback to be called on nextTick, so that we don't +// emit 'drain' before the write() consumer gets the 'false' return +// value, and has a chance to attach a 'drain' listener. +function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream.emit('drain'); + } +} + +// if there's something in the buffer waiting, then process it +function clearBuffer(stream, state) { + state.bufferProcessing = true; + var entry = state.bufferedRequest; + if (stream._writev && entry && entry.next) { + // Fast case, write everything using _writev() + var l = state.bufferedRequestCount; + var buffer = new Array(l); + var holder = state.corkedRequestsFree; + holder.entry = entry; + var count = 0; + var allBuffers = true; + while (entry) { + buffer[count] = entry; + if (!entry.isBuf) allBuffers = false; + entry = entry.next; + count += 1; + } + buffer.allBuffers = allBuffers; + doWrite(stream, state, true, state.length, buffer, '', holder.finish); + + // doWrite is almost always async, defer these to save a bit of time + // as the hot path ends with doWrite + state.pendingcb++; + state.lastBufferedRequest = null; + if (holder.next) { + state.corkedRequestsFree = holder.next; + holder.next = null; + } else { + state.corkedRequestsFree = new CorkedRequest(state); + } + state.bufferedRequestCount = 0; + } else { + // Slow case, write chunks one-by-one + while (entry) { + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + doWrite(stream, state, false, len, chunk, encoding, cb); + entry = entry.next; + state.bufferedRequestCount--; + // if we didn't call the onwrite immediately, then + // it means that we need to wait until it does. + // also, that means that the chunk and cb are currently + // being processed, so move the buffer counter past them. + if (state.writing) { + break; + } + } + if (entry === null) state.lastBufferedRequest = null; + } + state.bufferedRequest = entry; + state.bufferProcessing = false; +} +Writable.prototype._write = function (chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); +}; +Writable.prototype._writev = null; +Writable.prototype.end = function (chunk, encoding, cb) { + var state = this._writableState; + if (typeof chunk === 'function') { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); + + // .end() fully uncorks + if (state.corked) { + state.corked = 1; + this.uncork(); + } + + // ignore unnecessary end() calls. + if (!state.ending) endWritable(this, state, cb); + return this; +}; +Object.defineProperty(Writable.prototype, 'writableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.length; + } +}); +function needFinish(state) { + return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; +} +function callFinal(stream, state) { + stream._final(function (err) { + state.pendingcb--; + if (err) { + errorOrDestroy(stream, err); + } + state.prefinished = true; + stream.emit('prefinish'); + finishMaybe(stream, state); + }); +} +function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === 'function' && !state.destroyed) { + state.pendingcb++; + state.finalCalled = true; + process.nextTick(callFinal, stream, state); + } else { + state.prefinished = true; + stream.emit('prefinish'); + } + } +} +function finishMaybe(stream, state) { + var need = needFinish(state); + if (need) { + prefinish(stream, state); + if (state.pendingcb === 0) { + state.finished = true; + stream.emit('finish'); + if (state.autoDestroy) { + // In case of duplex streams we need a way to detect + // if the readable side is ready for autoDestroy as well + var rState = stream._readableState; + if (!rState || rState.autoDestroy && rState.endEmitted) { + stream.destroy(); + } + } + } + } + return need; +} +function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) process.nextTick(cb);else stream.once('finish', cb); + } + state.ended = true; + stream.writable = false; +} +function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } + + // reuse the free corkReq. + state.corkedRequestsFree.next = corkReq; +} +Object.defineProperty(Writable.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._writableState === undefined) { + return false; + } + return this._writableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._writableState) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._writableState.destroyed = value; + } +}); +Writable.prototype.destroy = destroyImpl.destroy; +Writable.prototype._undestroy = destroyImpl.undestroy; +Writable.prototype._destroy = function (err, cb) { + cb(err); +}; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/async_iterator.js": +/*!*************************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/async_iterator.js ***! + \*************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var _Object$setPrototypeO; +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +var finished = __webpack_require__(/*! ./end-of-stream */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); +var kLastResolve = Symbol('lastResolve'); +var kLastReject = Symbol('lastReject'); +var kError = Symbol('error'); +var kEnded = Symbol('ended'); +var kLastPromise = Symbol('lastPromise'); +var kHandlePromise = Symbol('handlePromise'); +var kStream = Symbol('stream'); +function createIterResult(value, done) { + return { + value: value, + done: done + }; +} +function readAndResolve(iter) { + var resolve = iter[kLastResolve]; + if (resolve !== null) { + var data = iter[kStream].read(); + // we defer if data is null + // we can be expecting either 'end' or + // 'error' + if (data !== null) { + iter[kLastPromise] = null; + iter[kLastResolve] = null; + iter[kLastReject] = null; + resolve(createIterResult(data, false)); + } + } +} +function onReadable(iter) { + // we wait for the next tick, because it might + // emit an error with process.nextTick + process.nextTick(readAndResolve, iter); +} +function wrapForNext(lastPromise, iter) { + return function (resolve, reject) { + lastPromise.then(function () { + if (iter[kEnded]) { + resolve(createIterResult(undefined, true)); + return; + } + iter[kHandlePromise](resolve, reject); + }, reject); + }; +} +var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}); +var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { + get stream() { + return this[kStream]; + }, + next: function next() { + var _this = this; + // if we have detected an error in the meanwhile + // reject straight away + var error = this[kError]; + if (error !== null) { + return Promise.reject(error); + } + if (this[kEnded]) { + return Promise.resolve(createIterResult(undefined, true)); + } + if (this[kStream].destroyed) { + // We need to defer via nextTick because if .destroy(err) is + // called, the error will be emitted via nextTick, and + // we cannot guarantee that there is no error lingering around + // waiting to be emitted. + return new Promise(function (resolve, reject) { + process.nextTick(function () { + if (_this[kError]) { + reject(_this[kError]); + } else { + resolve(createIterResult(undefined, true)); + } + }); + }); + } + + // if we have multiple next() calls + // we will wait for the previous Promise to finish + // this logic is optimized to support for await loops, + // where next() is only called once at a time + var lastPromise = this[kLastPromise]; + var promise; + if (lastPromise) { + promise = new Promise(wrapForNext(lastPromise, this)); + } else { + // fast path needed to support multiple this.push() + // without triggering the next() queue + var data = this[kStream].read(); + if (data !== null) { + return Promise.resolve(createIterResult(data, false)); + } + promise = new Promise(this[kHandlePromise]); + } + this[kLastPromise] = promise; + return promise; + } +}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () { + return this; +}), _defineProperty(_Object$setPrototypeO, "return", function _return() { + var _this2 = this; + // destroy(err, cb) is a private API + // we can guarantee we have that here, because we control the + // Readable class this is attached to + return new Promise(function (resolve, reject) { + _this2[kStream].destroy(null, function (err) { + if (err) { + reject(err); + return; + } + resolve(createIterResult(undefined, true)); + }); + }); +}), _Object$setPrototypeO), AsyncIteratorPrototype); +var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { + var _Object$create; + var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { + value: stream, + writable: true + }), _defineProperty(_Object$create, kLastResolve, { + value: null, + writable: true + }), _defineProperty(_Object$create, kLastReject, { + value: null, + writable: true + }), _defineProperty(_Object$create, kError, { + value: null, + writable: true + }), _defineProperty(_Object$create, kEnded, { + value: stream._readableState.endEmitted, + writable: true + }), _defineProperty(_Object$create, kHandlePromise, { + value: function value(resolve, reject) { + var data = iterator[kStream].read(); + if (data) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(data, false)); + } else { + iterator[kLastResolve] = resolve; + iterator[kLastReject] = reject; + } + }, + writable: true + }), _Object$create)); + iterator[kLastPromise] = null; + finished(stream, function (err) { + if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { + var reject = iterator[kLastReject]; + // reject if we are waiting for data in the Promise + // returned by next() and store the error + if (reject !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + reject(err); + } + iterator[kError] = err; + return; + } + var resolve = iterator[kLastResolve]; + if (resolve !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(undefined, true)); + } + iterator[kEnded] = true; + }); + stream.on('readable', onReadable.bind(null, iterator)); + return iterator; +}; +module.exports = createReadableStreamAsyncIterator; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/buffer_list.js": +/*!**********************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/buffer_list.js ***! + \**********************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +var _require = __webpack_require__(/*! buffer */ "buffer"), + Buffer = _require.Buffer; +var _require2 = __webpack_require__(/*! util */ "util"), + inspect = _require2.inspect; +var custom = inspect && inspect.custom || 'inspect'; +function copyBuffer(src, target, offset) { + Buffer.prototype.copy.call(src, target, offset); +} +module.exports = /*#__PURE__*/function () { + function BufferList() { + _classCallCheck(this, BufferList); + this.head = null; + this.tail = null; + this.length = 0; + } + _createClass(BufferList, [{ + key: "push", + value: function push(v) { + var entry = { + data: v, + next: null + }; + if (this.length > 0) this.tail.next = entry;else this.head = entry; + this.tail = entry; + ++this.length; + } + }, { + key: "unshift", + value: function unshift(v) { + var entry = { + data: v, + next: this.head + }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + } + }, { + key: "shift", + value: function shift() { + if (this.length === 0) return; + var ret = this.head.data; + if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; + --this.length; + return ret; + } + }, { + key: "clear", + value: function clear() { + this.head = this.tail = null; + this.length = 0; + } + }, { + key: "join", + value: function join(s) { + if (this.length === 0) return ''; + var p = this.head; + var ret = '' + p.data; + while (p = p.next) ret += s + p.data; + return ret; + } + }, { + key: "concat", + value: function concat(n) { + if (this.length === 0) return Buffer.alloc(0); + var ret = Buffer.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; + while (p) { + copyBuffer(p.data, ret, i); + i += p.data.length; + p = p.next; + } + return ret; + } + + // Consumes a specified amount of bytes or characters from the buffered data. + }, { + key: "consume", + value: function consume(n, hasStrings) { + var ret; + if (n < this.head.data.length) { + // `slice` is the same for buffers and strings. + ret = this.head.data.slice(0, n); + this.head.data = this.head.data.slice(n); + } else if (n === this.head.data.length) { + // First chunk is a perfect match. + ret = this.shift(); + } else { + // Result spans more than one buffer. + ret = hasStrings ? this._getString(n) : this._getBuffer(n); + } + return ret; + } + }, { + key: "first", + value: function first() { + return this.head.data; + } + + // Consumes a specified amount of characters from the buffered data. + }, { + key: "_getString", + value: function _getString(n) { + var p = this.head; + var c = 1; + var ret = p.data; + n -= ret.length; + while (p = p.next) { + var str = p.data; + var nb = n > str.length ? str.length : n; + if (nb === str.length) ret += str;else ret += str.slice(0, n); + n -= nb; + if (n === 0) { + if (nb === str.length) { + ++c; + if (p.next) this.head = p.next;else this.head = this.tail = null; + } else { + this.head = p; + p.data = str.slice(nb); + } + break; + } + ++c; + } + this.length -= c; + return ret; + } + + // Consumes a specified amount of bytes from the buffered data. + }, { + key: "_getBuffer", + value: function _getBuffer(n) { + var ret = Buffer.allocUnsafe(n); + var p = this.head; + var c = 1; + p.data.copy(ret); + n -= p.data.length; + while (p = p.next) { + var buf = p.data; + var nb = n > buf.length ? buf.length : n; + buf.copy(ret, ret.length - n, 0, nb); + n -= nb; + if (n === 0) { + if (nb === buf.length) { + ++c; + if (p.next) this.head = p.next;else this.head = this.tail = null; + } else { + this.head = p; + p.data = buf.slice(nb); + } + break; + } + ++c; + } + this.length -= c; + return ret; + } + + // Make sure the linked list only shows the minimal necessary information. + }, { + key: custom, + value: function value(_, options) { + return inspect(this, _objectSpread(_objectSpread({}, options), {}, { + // Only inspect one level. + depth: 0, + // It should not recurse. + customInspect: false + })); + } + }]); + return BufferList; +}(); + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/destroy.js": +/*!******************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/destroy.js ***! + \******************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; + + +// undocumented cb() API, needed for core, not for public API +function destroy(err, cb) { + var _this = this; + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err) { + if (!this._writableState) { + process.nextTick(emitErrorNT, this, err); + } else if (!this._writableState.errorEmitted) { + this._writableState.errorEmitted = true; + process.nextTick(emitErrorNT, this, err); + } + } + return this; + } + + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks + + if (this._readableState) { + this._readableState.destroyed = true; + } + + // if this is a duplex stream mark the writable part as destroyed as well + if (this._writableState) { + this._writableState.destroyed = true; + } + this._destroy(err || null, function (err) { + if (!cb && err) { + if (!_this._writableState) { + process.nextTick(emitErrorAndCloseNT, _this, err); + } else if (!_this._writableState.errorEmitted) { + _this._writableState.errorEmitted = true; + process.nextTick(emitErrorAndCloseNT, _this, err); + } else { + process.nextTick(emitCloseNT, _this); + } + } else if (cb) { + process.nextTick(emitCloseNT, _this); + cb(err); + } else { + process.nextTick(emitCloseNT, _this); + } + }); + return this; +} +function emitErrorAndCloseNT(self, err) { + emitErrorNT(self, err); + emitCloseNT(self); +} +function emitCloseNT(self) { + if (self._writableState && !self._writableState.emitClose) return; + if (self._readableState && !self._readableState.emitClose) return; + self.emit('close'); +} +function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finalCalled = false; + this._writableState.prefinished = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; + } +} +function emitErrorNT(self, err) { + self.emit('error', err); +} +function errorOrDestroy(stream, err) { + // We have tests that rely on errors being emitted + // in the same tick, so changing this is semver major. + // For now when you opt-in to autoDestroy we allow + // the error to be emitted nextTick. In a future + // semver major update we should change the default to this. + + var rState = stream._readableState; + var wState = stream._writableState; + if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err); +} +module.exports = { + destroy: destroy, + undestroy: undestroy, + errorOrDestroy: errorOrDestroy +}; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js": +/*!************************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***! + \************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +// Ported from https://github.com/mafintosh/end-of-stream with +// permission from the author, Mathias Buus (@mafintosh). + + + +var ERR_STREAM_PREMATURE_CLOSE = __webpack_require__(/*! ../../../errors */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js").codes.ERR_STREAM_PREMATURE_CLOSE; +function once(callback) { + var called = false; + return function () { + if (called) return; + called = true; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + callback.apply(this, args); + }; +} +function noop() {} +function isRequest(stream) { + return stream.setHeader && typeof stream.abort === 'function'; +} +function eos(stream, opts, callback) { + if (typeof opts === 'function') return eos(stream, null, opts); + if (!opts) opts = {}; + callback = once(callback || noop); + var readable = opts.readable || opts.readable !== false && stream.readable; + var writable = opts.writable || opts.writable !== false && stream.writable; + var onlegacyfinish = function onlegacyfinish() { + if (!stream.writable) onfinish(); + }; + var writableEnded = stream._writableState && stream._writableState.finished; + var onfinish = function onfinish() { + writable = false; + writableEnded = true; + if (!readable) callback.call(stream); + }; + var readableEnded = stream._readableState && stream._readableState.endEmitted; + var onend = function onend() { + readable = false; + readableEnded = true; + if (!writable) callback.call(stream); + }; + var onerror = function onerror(err) { + callback.call(stream, err); + }; + var onclose = function onclose() { + var err; + if (readable && !readableEnded) { + if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream, err); + } + if (writable && !writableEnded) { + if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream, err); + } + }; + var onrequest = function onrequest() { + stream.req.on('finish', onfinish); + }; + if (isRequest(stream)) { + stream.on('complete', onfinish); + stream.on('abort', onclose); + if (stream.req) onrequest();else stream.on('request', onrequest); + } else if (writable && !stream._writableState) { + // legacy streams + stream.on('end', onlegacyfinish); + stream.on('close', onlegacyfinish); + } + stream.on('end', onend); + stream.on('finish', onfinish); + if (opts.error !== false) stream.on('error', onerror); + stream.on('close', onclose); + return function () { + stream.removeListener('complete', onfinish); + stream.removeListener('abort', onclose); + stream.removeListener('request', onrequest); + if (stream.req) stream.req.removeListener('finish', onfinish); + stream.removeListener('end', onlegacyfinish); + stream.removeListener('close', onlegacyfinish); + stream.removeListener('finish', onfinish); + stream.removeListener('end', onend); + stream.removeListener('error', onerror); + stream.removeListener('close', onclose); + }; +} +module.exports = eos; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/from.js": +/*!***************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/from.js ***! + \***************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +var ERR_INVALID_ARG_TYPE = __webpack_require__(/*! ../../../errors */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js").codes.ERR_INVALID_ARG_TYPE; +function from(Readable, iterable, opts) { + var iterator; + if (iterable && typeof iterable.next === 'function') { + iterator = iterable; + } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable); + var readable = new Readable(_objectSpread({ + objectMode: true + }, opts)); + // Reading boolean to protect against _read + // being called before last iteration completion. + var reading = false; + readable._read = function () { + if (!reading) { + reading = true; + next(); + } + }; + function next() { + return _next2.apply(this, arguments); + } + function _next2() { + _next2 = _asyncToGenerator(function* () { + try { + var _yield$iterator$next = yield iterator.next(), + value = _yield$iterator$next.value, + done = _yield$iterator$next.done; + if (done) { + readable.push(null); + } else if (readable.push(yield value)) { + next(); + } else { + reading = false; + } + } catch (err) { + readable.destroy(err); + } + }); + return _next2.apply(this, arguments); + } + return readable; +} +module.exports = from; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/pipeline.js": +/*!*******************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/pipeline.js ***! + \*******************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +// Ported from https://github.com/mafintosh/pump with +// permission from the author, Mathias Buus (@mafintosh). + + + +var eos; +function once(callback) { + var called = false; + return function () { + if (called) return; + called = true; + callback.apply(void 0, arguments); + }; +} +var _require$codes = __webpack_require__(/*! ../../../errors */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js").codes, + ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; +function noop(err) { + // Rethrow the error if it exists to avoid swallowing it + if (err) throw err; +} +function isRequest(stream) { + return stream.setHeader && typeof stream.abort === 'function'; +} +function destroyer(stream, reading, writing, callback) { + callback = once(callback); + var closed = false; + stream.on('close', function () { + closed = true; + }); + if (eos === undefined) eos = __webpack_require__(/*! ./end-of-stream */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); + eos(stream, { + readable: reading, + writable: writing + }, function (err) { + if (err) return callback(err); + closed = true; + callback(); + }); + var destroyed = false; + return function (err) { + if (closed) return; + if (destroyed) return; + destroyed = true; + + // request.destroy just do .end - .abort is what we want + if (isRequest(stream)) return stream.abort(); + if (typeof stream.destroy === 'function') return stream.destroy(); + callback(err || new ERR_STREAM_DESTROYED('pipe')); + }; +} +function call(fn) { + fn(); +} +function pipe(from, to) { + return from.pipe(to); +} +function popCallback(streams) { + if (!streams.length) return noop; + if (typeof streams[streams.length - 1] !== 'function') return noop; + return streams.pop(); +} +function pipeline() { + for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) { + streams[_key] = arguments[_key]; + } + var callback = popCallback(streams); + if (Array.isArray(streams[0])) streams = streams[0]; + if (streams.length < 2) { + throw new ERR_MISSING_ARGS('streams'); + } + var error; + var destroys = streams.map(function (stream, i) { + var reading = i < streams.length - 1; + var writing = i > 0; + return destroyer(stream, reading, writing, function (err) { + if (!error) error = err; + if (err) destroys.forEach(call); + if (reading) return; + destroys.forEach(call); + callback(error); + }); + }); + return streams.reduce(pipe); +} +module.exports = pipeline; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/state.js": +/*!****************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/state.js ***! + \****************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var ERR_INVALID_OPT_VALUE = __webpack_require__(/*! ../../../errors */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js").codes.ERR_INVALID_OPT_VALUE; +function highWaterMarkFrom(options, isDuplex, duplexKey) { + return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; +} +function getHighWaterMark(state, options, duplexKey, isDuplex) { + var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); + if (hwm != null) { + if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { + var name = isDuplex ? duplexKey : 'highWaterMark'; + throw new ERR_INVALID_OPT_VALUE(name, hwm); + } + return Math.floor(hwm); + } + + // Default value + return state.objectMode ? 16 : 16 * 1024; +} +module.exports = { + getHighWaterMark: getHighWaterMark +}; + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/stream.js": +/*!*****************************************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/stream.js ***! + \*****************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +module.exports = __webpack_require__(/*! stream */ "stream"); + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js": +/*!**********************************************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js ***! + \**********************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +var Stream = __webpack_require__(/*! stream */ "stream"); +if (process.env.READABLE_STREAM === 'disable' && Stream) { + module.exports = Stream.Readable; + Object.assign(module.exports, Stream); + module.exports.Stream = Stream; +} else { + exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js"); + exports.Stream = Stream || exports; + exports.Readable = exports; + exports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js"); + exports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js"); + exports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js"); + exports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_passthrough.js"); + exports.finished = __webpack_require__(/*! ./lib/internal/streams/end-of-stream.js */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); + exports.pipeline = __webpack_require__(/*! ./lib/internal/streams/pipeline.js */ "./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/pipeline.js"); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/node_modules/winston/package.json": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/api/node_modules/winston/package.json ***! + \******************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"name":"winston","description":"A logger for just about everything.","version":"3.10.0","author":"Charlie Robbins ","maintainers":["David Hyde "],"repository":{"type":"git","url":"https://github.com/winstonjs/winston.git"},"keywords":["winston","logger","logging","logs","sysadmin","bunyan","pino","loglevel","tools","json","stream"],"dependencies":{"@dabh/diagnostics":"^2.0.2","@colors/colors":"1.5.0","async":"^3.2.3","is-stream":"^2.0.0","logform":"^2.4.0","one-time":"^1.0.0","readable-stream":"^3.4.0","safe-stable-stringify":"^2.3.1","stack-trace":"0.0.x","triple-beam":"^1.3.0","winston-transport":"^4.5.0"},"devDependencies":{"@babel/cli":"^7.17.0","@babel/core":"^7.17.2","@babel/preset-env":"^7.16.7","@dabh/eslint-config-populist":"^5.0.0","@types/node":"^20.3.1","abstract-winston-transport":"^0.5.1","assume":"^2.2.0","cross-spawn-async":"^2.2.5","eslint":"^8.9.0","hock":"^1.4.1","mocha":"8.1.3","nyc":"^15.1.0","rimraf":"^3.0.2","split2":"^4.1.0","std-mocks":"^1.0.1","through2":"^4.0.2","winston-compat":"^0.1.5"},"main":"./lib/winston.js","browser":"./dist/winston","types":"./index.d.ts","scripts":{"lint":"eslint lib/*.js lib/winston/*.js lib/winston/**/*.js --resolve-plugins-relative-to ./node_modules/@dabh/eslint-config-populist","test":"mocha","test:coverage":"nyc npm run test:unit","test:unit":"mocha test/unit","test:integration":"mocha test/integration","build":"rimraf dist && babel lib -d dist","prepublishOnly":"npm run build"},"engines":{"node":">= 12.0.0"},"license":"MIT"}'); + +/***/ }), + +/***/ "./build/cht-core-4-6/api/src/enketo-transformer/markdown.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/api/src/enketo-transformer/markdown.js ***! + \*******************************************************************/ +/***/ ((module) => { + +// identical copy of https://github.com/enketo/enketo-transformer/blob/2.1.5/src/markdown.js +// committed because of https://github.com/medic/cht-core/issues/7771 + +/** + * @module markdown + */ + +/** + * Transforms XForm label and hint textnode content with a subset of Markdown into HTML + * + * Supported: + * - `_`, `__`, `*`, `**`, `[]()`, `#`, `##`, `###`, `####`, `#####`, + * - span tags and html-encoded span tags, + * - single-level unordered markdown lists and single-level ordered markdown lists + * - newline characters + * + * Also HTML encodes any unsupported HTML tags for safe use inside web-based clients + * + * @static + * @param {string} text - Text content of a textnode. + * @return {string} transformed text content of a textnode. + */ +function markdownToHtml(text) { + // note: in JS $ matches end of line as well as end of string, and ^ both beginning of line and string + const html = text + // html encoding of < because libXMLJs Element.text() converts html entities + .replace(//gm, '>') + // span + .replace( + /<\s?span([^/\n]*)>((?:(?!<\/).)+)<\/\s?span\s?>/gm, + _createSpan + ) + // sup + .replace( + /<\s?sup([^/\n]*)>((?:(?!<\/).)+)<\/\s?sup\s?>/gm, + _createSup + ) + // sub + .replace( + /<\s?sub([^/\n]*)>((?:(?!<\/).)+)<\/\s?sub\s?>/gm, + _createSub + ) + // "\" will be used as escape character for *, _ + .replace(/&/gm, '&') + .replace(/\\\\/gm, '&92;') + .replace(/\\\*/gm, '&42;') + .replace(/\\_/gm, '&95;') + .replace(/\\#/gm, '&35;') + // strong + .replace(/__(.*?)__/gm, '$1') + .replace(/\*\*(.*?)\*\*/gm, '$1') + // emphasis + .replace(/_([^\s][^_\n]*)_/gm, '$1') + .replace(/\*([^\s][^*\n]*)\*/gm, '$1') + // links + .replace( + /\[([^\]]*)\]\(([^)]+)\)/gm, + '$1' + ) + // headers + .replace(/^\s*(#{1,6})\s?([^#][^\n]*)(\n|$)/gm, _createHeader) + // unordered lists + .replace(/^((\*|\+|-) (.*)(\n|$))+/gm, _createUnorderedList) + // ordered lists, which have to be preceded by a newline since numbered labels are common + .replace(/(\n([0-9]+\.) (.*))+$/gm, _createOrderedList) + // newline characters followed by
                    tag + .replace(/\n(
                      )/gm, '$1') + // reverting escape of special characters + .replace(/&35;/gm, '#') + .replace(/&95;/gm, '_') + .replace(/&92;/gm, '\\') + .replace(/&42;/gm, '*') + .replace(/&/gm, '&') + // paragraphs + .replace(/([^\n]+)\n{2,}/gm, _createParagraph) + // any remaining newline characters + .replace(/([^\n]+)\n/gm, '$1
                      '); + + return html; +} + +/** + * @param {string} match - The matched substring. + * @param {*} hashtags - Before header text. `#` gives `

                      `, `####` gives `

                      `. + * @param {string} content - Header text. + * @return {string} HTML string. + */ +function _createHeader(match, hashtags, content) { + const level = hashtags.length; + + return `${content.replace(/#+$/, '')}`; +} + +/** + * @param {string} match - The matched substring. + * @return {string} HTML string. + */ +function _createUnorderedList(match) { + const items = match.replace(/(\*|\+|-)(.*)\n?/gm, _createItem); + + return `
                        ${items}
                      `; +} + +/** + * @param {string} match - The matched substring. + * @return {string} HTML string. + */ +function _createOrderedList(match) { + const startMatches = match.match(/^\n?(?[0-9]+)\./); + const start = + startMatches && startMatches.groups && startMatches.groups.start !== '1' + ? ` start="${startMatches.groups.start}"` + : ''; + const items = match.replace(/\n?([0-9]+\.)(.*)/gm, _createItem); + + return `${items}`; +} + +/** + * @param {string} match - The matched substring. + * @param {string} bullet - The list item bullet/number. + * @param {string} content - Item text. + * @return {string} HTML string. + */ +function _createItem(match, bullet, content) { + return `
                    • ${content.trim()}
                    • `; +} + +/** + * @param {string} match - The matched substring. + * @param {string} line - The line. + * @return {string} HTML string. + */ +function _createParagraph(match, line) { + const trimmed = line.trim(); + if (/^<\/?(ul|ol|li|h|p|bl)/i.test(trimmed)) { + return line; + } + + return `

                      ${trimmed}

                      `; +} + +/** + * @param {string} match - The matched substring. + * @param {string} attributes - Attributes to be added for `` + * @param {string} content - Span text. + * @return {string} HTML string. + */ +function _createSpan(match, attributes, content) { + const sanitizedAttributes = _sanitizeAttributes(attributes); + + return `${content}`; +} + +/** + * @param {string} match - The matched substring. + * @param {string} attributes - The attributes. + * @param {string} content - Sup text. + * @return {string} HTML string. + */ +function _createSup(match, attributes, content) { + // ignore attributes completely + return `${content}`; +} + +/** + * @param {string} match - The matched substring. + * @param {string} attributes - The attributes. + * @param {string} content - Sub text. + * @return {string} HTML string. + */ +function _createSub(match, attributes, content) { + // ignore attributes completely + return `${content}`; +} + +/** + * @param {string} attributes - The attributes. + * @return {string} style + */ +function _sanitizeAttributes(attributes) { + const styleMatches = attributes.match(/( style=(["'])[^"']*\2)/); + const style = styleMatches && styleMatches.length ? styleMatches[0] : ''; + + return style; +} + +module.exports = { + toHtml: markdownToHtml, +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/src/logger.js": +/*!**********************************************!*\ + !*** ./build/cht-core-4-6/api/src/logger.js ***! + \**********************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const { createLogger, format, transports } = __webpack_require__(/*! winston */ "./build/cht-core-4-6/api/node_modules/winston/lib/winston.js"); +const env = "development" || 0; +const morgan = __webpack_require__(/*! morgan */ "./build/cht-core-4-6/api/node_modules/morgan/index.js"); +const moment = __webpack_require__(/*! moment */ "./build/cht-core-4-6/api/node_modules/moment/moment.js"); +const DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ss.SSS'; +morgan.token('date', () => moment().format(DATE_FORMAT)); + + +const cleanUpErrorsFromSymbolProperties = (info) => { + if (!info) { + return; + } + + // errors can be passed as "Symbol('splat')" properties, when doing: logger.error('message: %o', actualError); + // see https://github.com/winstonjs/winston/blob/2625f60c5c85b8c4926c65e98a591f8b42e0db9a/README.md#streams-objectmode-and-info-objects + Object.getOwnPropertySymbols(info).forEach(property => { + const values = info[property]; + if (Array.isArray(values)) { + values.forEach(value => cleanUpRequestError(value)); + } + }); +}; + +const cleanUpRequestError = (error) => { + // These are the error types that we're expecting from request-promise-native + // https://github.com/request/promise-core/blob/v1.1.4/lib/errors.js + const requestErrorConstructors = ['RequestError', 'StatusCodeError', 'TransformError']; + if (error && error.constructor && requestErrorConstructors.includes(error.constructor.name)) { + // these properties could contain sensitive information, like passwords or auth tokens, and are not safe to log + delete error.options; + delete error.request; + delete error.response; + } +}; + +const enumerateErrorFormat = format(info => { + cleanUpErrorsFromSymbolProperties(info); + cleanUpRequestError(info); + cleanUpRequestError(info.message); + + if (info.message instanceof Error) { + info.message = Object.assign({ + message: info.message.message, + stack: info.message.stack + }, info.message); + } + + if (info instanceof Error) { + return Object.assign({ + message: info.message, + stack: info.stack + }, info); + } + + return info; +}); + +const logger = createLogger({ + format: format.combine( + enumerateErrorFormat(), + format.splat(), + format.simple() + ), + transports: [ + new transports.Console({ + // change level if in dev environment versus production + level: env === 'development' ? 'debug' : 'info', + format: format.combine( + // https://github.com/winstonjs/winston/issues/1345 + format(info => { + info.level = info.level.toUpperCase(); + return info; + })(), + format.timestamp({ format: DATE_FORMAT }), + format.printf(info => `${info.timestamp} ${info.level}: ${info.message} ${info.stack ? info.stack : ''}`) + ), + }), + ], +}); + +module.exports = logger; + + +/***/ }), + +/***/ "./build/cht-core-4-6/api/src/services/generate-xform.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/api/src/services/generate-xform.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/** + * XForm generation service + * @module generate-xform + */ +const childProcess = __webpack_require__(/*! child_process */ "child_process"); +const path = __webpack_require__(/*! path */ "path"); +const htmlParser = __webpack_require__(/*! node-html-parser */ "./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/index.js"); +const logger = __webpack_require__(/*! ../logger */ "./build/cht-core-4-6/api/src/logger.js"); +// const db = require('../db'); +// const formsService = require('./forms'); +const markdown = __webpack_require__(/*! ../enketo-transformer/markdown */ "./build/cht-core-4-6/api/src/enketo-transformer/markdown.js"); + +const MODEL_ROOT_OPEN = ''; +const ROOT_CLOSE = ''; +const JAVAROSA_SRC = / src="jr:\/\//gi; +const MEDIA_SRC_ATTR = ' data-media-src="'; + +// const FORM_STYLESHEET = path.join(__dirname, '../xsl/openrosa2html5form.xsl'); +// const MODEL_STYLESHEET = path.join(__dirname, '../enketo-transformer/xsl/openrosa2xmlmodel.xsl'); +const { FORM_STYLESHEET, MODEL_STYLESHEET } = __webpack_require__(/*! ../xsl/xsl-paths */ "./cht-bundles/cht-core-4-6/xsl-paths.js"); +const XSLTPROC_CMD = 'xsltproc'; + +const processErrorHandler = (xsltproc, err, reject) => { + xsltproc.stdin.end(); + if (err.code === 'EPIPE' // Node v10,v12,v14 + || (err.code === 'ENOENT' && err.syscall === `spawn ${XSLTPROC_CMD}`) // Node v8,v16+ + ) { + const errMsg = `Unable to continue execution, check that '${XSLTPROC_CMD}' command is available.`; + logger.error(errMsg); + return reject(new Error(errMsg)); + } + logger.error(err); + return reject(new Error(`Unknown Error: An error occurred when executing '${XSLTPROC_CMD}' command`)); +}; + +const transform = (formXml, stylesheet) => { + return new Promise((resolve, reject) => { + const xsltproc = childProcess.spawn(XSLTPROC_CMD, [ stylesheet, '-' ]); + let stdout = ''; + let stderr = ''; + xsltproc.stdout.on('data', data => stdout += data); + xsltproc.stderr.on('data', data => stderr += data); + xsltproc.stdin.setEncoding('utf-8'); + xsltproc.stdin.on('error', err => { + // Errors related with spawned processes and stdin are handled here on Node v10 + return processErrorHandler(xsltproc, err, reject); + }); + try { + xsltproc.stdin.write(formXml); + xsltproc.stdin.end(); + } catch (err) { + // Errors related with spawned processes and stdin are handled here on Node v12 + return processErrorHandler(xsltproc, err, reject); + } + xsltproc.on('close', (code, signal) => { + if (code !== 0 || signal || stderr.length) { + let errorMsg = `Error transforming xml. xsltproc returned code "${code}", and signal "${signal}"`; + if (stderr.length) { + errorMsg += '. xsltproc stderr output:\n' + stderr; + } + return reject(new Error(errorMsg)); + } + if (!stdout) { + return reject(new Error(`Error transforming xml. xsltproc returned no error but no output.`)); + } + resolve(stdout); + }); + xsltproc.on('error', err => { + // Errors related with spawned processes are handled here on Node v8,v14,v16+ + return processErrorHandler(xsltproc, err, reject); + }); + }); +}; + +const convertDynamicUrls = (original) => original.replace( + /]+href="([^"]*---output[^"]*)"[^>]*>(.*?)<\/a>/gm, + '' + + '$2' + + '' +); + +const convertEmbeddedHtml = (original) => original + .replace(/<\s*(\/)?\s*([\s\S]*?)\s*>/gm, '<$1$2>') + .replace(/"/g, '"') + .replace(/'/g, '\'') + .replace(/&/g, '&'); + +const replaceNode = (currentNode, newNode) => { + const { parentNode } = currentNode; + const idx = parentNode.childNodes.findIndex((child) => child === currentNode); + parentNode.childNodes = [ + ...parentNode.childNodes.slice(0, idx), + newNode, + ...parentNode.childNodes.slice(idx + 1), + ]; +}; + +// Based on enketo/enketo-transformer +// https://github.com/enketo/enketo-transformer/blob/377caf14153586b040367f8c2de53c9d794c19d4/src/transformer.js#L430 +const replaceAllMarkdown = (formString) => { + const replacements = {}; + const form = htmlParser.parse(formString).querySelector('form'); + + // First turn all outputs into text so * { + results.push(result); + return results; + }); + }); +}; + +// Returns array of docs that need saving. +const updateAllAttachments = docs => { + // spawn the child processes in series so we don't smash the server + return docs.reduce(updateAttachments, Promise.resolve([])).then(results => { + return docs.filter((doc, i) => { + return results[i] && updateAttachmentsIfRequired(doc, results[i]); + }); + }); +}; + +module.exports = { + + /** + * Updates the model and form attachments of the given form if necessary. + * @param {string} docId - The db id of the doc defining the form. + */ + update: docId => { + return db.medic.get(docId, { attachments: true, binary: true }) + .then(doc => updateAllAttachments([ doc ])) + .then(docs => { + const doc = docs.length && docs[0]; + if (doc) { + logger.info(`Updating form with ID "${docId}"`); + return db.medic.put(doc); + } + logger.info(`Form with ID "${docId}" does not need to be updated.`); + }); + }, + + /** + * Updates the model and form attachments for all forms if necessary. + */ + updateAll: () => { + return formsService + .getFormDocs() + .then(docs => { + if (!docs.length) { + return []; + } + return updateAllAttachments(docs); + }) + .then(toSave => { + logger.info(`Updating ${toSave.length} enketo form${toSave.length === 1 ? '' : 's'}`); + if (!toSave.length) { + return; + } + return db.saveDocs(db.medic, toSave).then(results => { + const failures = results.filter(result => !result.ok); + if (failures.length) { + logger.error('Bulk save failed with: %o', failures); + throw new Error('Failed to save updated xforms to the database'); + } + }); + }); + + }, + + /** + * @param formXml The XML form string + * @returns a promise with the XML form transformed following + * the stylesheet rules defined (XSL transformations) + */ + generate + +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/arguments-extended/index.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/arguments-extended/index.js ***! + \*********************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +(function () { + "use strict"; + + function defineArgumentsExtended(extended, is) { + + var pSlice = Array.prototype.slice, + isArguments = is.isArguments; + + function argsToArray(args, slice) { + var i = -1, j = 0, l = args.length, ret = []; + slice = slice || 0; + i += slice; + while (++i < l) { + ret[j++] = args[i]; + } + return ret; + } + + + return extended + .define(isArguments, { + toArray: argsToArray + }) + .expose({ + argsToArray: argsToArray + }); + } + + if (true) { + if ( true && module.exports) { + module.exports = defineArgumentsExtended(__webpack_require__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js"), __webpack_require__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js")); + + } + } else {} + +}).call(this); + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/array-extended/index.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/array-extended/index.js ***! + \*****************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +(function () { + "use strict"; + /*global define*/ + + function defineArray(extended, is, args) { + + var isString = is.isString, + isArray = Array.isArray || is.isArray, + isDate = is.isDate, + floor = Math.floor, + abs = Math.abs, + mathMax = Math.max, + mathMin = Math.min, + arrayProto = Array.prototype, + arrayIndexOf = arrayProto.indexOf, + arrayForEach = arrayProto.forEach, + arrayMap = arrayProto.map, + arrayReduce = arrayProto.reduce, + arrayReduceRight = arrayProto.reduceRight, + arrayFilter = arrayProto.filter, + arrayEvery = arrayProto.every, + arraySome = arrayProto.some, + argsToArray = args.argsToArray; + + + function cross(num, cros) { + return reduceRight(cros, function (a, b) { + if (!isArray(b)) { + b = [b]; + } + b.unshift(num); + a.unshift(b); + return a; + }, []); + } + + function permute(num, cross, length) { + var ret = []; + for (var i = 0; i < cross.length; i++) { + ret.push([num].concat(rotate(cross, i)).slice(0, length)); + } + return ret; + } + + + function intersection(a, b) { + var ret = [], aOne, i = -1, l; + l = a.length; + while (++i < l) { + aOne = a[i]; + if (indexOf(b, aOne) !== -1) { + ret.push(aOne); + } + } + return ret; + } + + + var _sort = (function () { + + var isAll = function (arr, test) { + return every(arr, test); + }; + + var defaultCmp = function (a, b) { + return a - b; + }; + + var dateSort = function (a, b) { + return a.getTime() - b.getTime(); + }; + + return function _sort(arr, property) { + var ret = []; + if (isArray(arr)) { + ret = arr.slice(); + if (property) { + if (typeof property === "function") { + ret.sort(property); + } else { + ret.sort(function (a, b) { + var aProp = a[property], bProp = b[property]; + if (isString(aProp) && isString(bProp)) { + return aProp > bProp ? 1 : aProp < bProp ? -1 : 0; + } else if (isDate(aProp) && isDate(bProp)) { + return aProp.getTime() - bProp.getTime(); + } else { + return aProp - bProp; + } + }); + } + } else { + if (isAll(ret, isString)) { + ret.sort(); + } else if (isAll(ret, isDate)) { + ret.sort(dateSort); + } else { + ret.sort(defaultCmp); + } + } + } + return ret; + }; + + })(); + + function indexOf(arr, searchElement, from) { + var index = (from || 0) - 1, + length = arr.length; + while (++index < length) { + if (arr[index] === searchElement) { + return index; + } + } + return -1; + } + + function lastIndexOf(arr, searchElement, from) { + if (!isArray(arr)) { + throw new TypeError(); + } + + var t = Object(arr); + var len = t.length >>> 0; + if (len === 0) { + return -1; + } + + var n = len; + if (arguments.length > 2) { + n = Number(arguments[2]); + if (n !== n) { + n = 0; + } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) { + n = (n > 0 || -1) * floor(abs(n)); + } + } + + var k = n >= 0 ? mathMin(n, len - 1) : len - abs(n); + + for (; k >= 0; k--) { + if (k in t && t[k] === searchElement) { + return k; + } + } + return -1; + } + + function filter(arr, iterator, scope) { + if (arr && arrayFilter && arrayFilter === arr.filter) { + return arr.filter(iterator, scope); + } + if (!isArray(arr) || typeof iterator !== "function") { + throw new TypeError(); + } + + var t = Object(arr); + var len = t.length >>> 0; + var res = []; + for (var i = 0; i < len; i++) { + if (i in t) { + var val = t[i]; // in case fun mutates this + if (iterator.call(scope, val, i, t)) { + res.push(val); + } + } + } + return res; + } + + function forEach(arr, iterator, scope) { + if (!isArray(arr) || typeof iterator !== "function") { + throw new TypeError(); + } + if (arr && arrayForEach && arrayForEach === arr.forEach) { + arr.forEach(iterator, scope); + return arr; + } + for (var i = 0, len = arr.length; i < len; ++i) { + iterator.call(scope || arr, arr[i], i, arr); + } + + return arr; + } + + function every(arr, iterator, scope) { + if (arr && arrayEvery && arrayEvery === arr.every) { + return arr.every(iterator, scope); + } + if (!isArray(arr) || typeof iterator !== "function") { + throw new TypeError(); + } + var t = Object(arr); + var len = t.length >>> 0; + for (var i = 0; i < len; i++) { + if (i in t && !iterator.call(scope, t[i], i, t)) { + return false; + } + } + return true; + } + + function some(arr, iterator, scope) { + if (arr && arraySome && arraySome === arr.some) { + return arr.some(iterator, scope); + } + if (!isArray(arr) || typeof iterator !== "function") { + throw new TypeError(); + } + var t = Object(arr); + var len = t.length >>> 0; + for (var i = 0; i < len; i++) { + if (i in t && iterator.call(scope, t[i], i, t)) { + return true; + } + } + return false; + } + + function map(arr, iterator, scope) { + if (arr && arrayMap && arrayMap === arr.map) { + return arr.map(iterator, scope); + } + if (!isArray(arr) || typeof iterator !== "function") { + throw new TypeError(); + } + + var t = Object(arr); + var len = t.length >>> 0; + var res = []; + for (var i = 0; i < len; i++) { + if (i in t) { + res.push(iterator.call(scope, t[i], i, t)); + } + } + return res; + } + + function reduce(arr, accumulator, curr) { + var initial = arguments.length > 2; + if (arr && arrayReduce && arrayReduce === arr.reduce) { + return initial ? arr.reduce(accumulator, curr) : arr.reduce(accumulator); + } + if (!isArray(arr) || typeof accumulator !== "function") { + throw new TypeError(); + } + var i = 0, l = arr.length >> 0; + if (arguments.length < 3) { + if (l === 0) { + throw new TypeError("Array length is 0 and no second argument"); + } + curr = arr[0]; + i = 1; // start accumulating at the second element + } else { + curr = arguments[2]; + } + while (i < l) { + if (i in arr) { + curr = accumulator.call(undefined, curr, arr[i], i, arr); + } + ++i; + } + return curr; + } + + function reduceRight(arr, accumulator, curr) { + var initial = arguments.length > 2; + if (arr && arrayReduceRight && arrayReduceRight === arr.reduceRight) { + return initial ? arr.reduceRight(accumulator, curr) : arr.reduceRight(accumulator); + } + if (!isArray(arr) || typeof accumulator !== "function") { + throw new TypeError(); + } + + var t = Object(arr); + var len = t.length >>> 0; + + // no value to return if no initial value, empty array + if (len === 0 && arguments.length === 2) { + throw new TypeError(); + } + + var k = len - 1; + if (arguments.length >= 3) { + curr = arguments[2]; + } else { + do { + if (k in arr) { + curr = arr[k--]; + break; + } + } + while (true); + } + while (k >= 0) { + if (k in t) { + curr = accumulator.call(undefined, curr, t[k], k, t); + } + k--; + } + return curr; + } + + + function toArray(o) { + var ret = []; + if (o !== null) { + var args = argsToArray(arguments); + if (args.length === 1) { + if (isArray(o)) { + ret = o; + } else if (is.isHash(o)) { + for (var i in o) { + if (o.hasOwnProperty(i)) { + ret.push([i, o[i]]); + } + } + } else { + ret.push(o); + } + } else { + forEach(args, function (a) { + ret = ret.concat(toArray(a)); + }); + } + } + return ret; + } + + function sum(array) { + array = array || []; + if (array.length) { + return reduce(array, function (a, b) { + return a + b; + }); + } else { + return 0; + } + } + + function avg(arr) { + arr = arr || []; + if (arr.length) { + var total = sum(arr); + if (is.isNumber(total)) { + return total / arr.length; + } else { + throw new Error("Cannot average an array of non numbers."); + } + } else { + return 0; + } + } + + function sort(arr, cmp) { + return _sort(arr, cmp); + } + + function min(arr, cmp) { + return _sort(arr, cmp)[0]; + } + + function max(arr, cmp) { + return _sort(arr, cmp)[arr.length - 1]; + } + + function difference(arr1) { + var ret = arr1, args = flatten(argsToArray(arguments, 1)); + if (isArray(arr1)) { + ret = filter(arr1, function (a) { + return indexOf(args, a) === -1; + }); + } + return ret; + } + + function removeDuplicates(arr) { + var ret = [], i = -1, l, retLength = 0; + if (arr) { + l = arr.length; + while (++i < l) { + var item = arr[i]; + if (indexOf(ret, item) === -1) { + ret[retLength++] = item; + } + } + } + return ret; + } + + + function unique(arr) { + return removeDuplicates(arr); + } + + + function rotate(arr, numberOfTimes) { + var ret = arr.slice(); + if (typeof numberOfTimes !== "number") { + numberOfTimes = 1; + } + if (numberOfTimes && isArray(arr)) { + if (numberOfTimes > 0) { + ret.push(ret.shift()); + numberOfTimes--; + } else { + ret.unshift(ret.pop()); + numberOfTimes++; + } + return rotate(ret, numberOfTimes); + } else { + return ret; + } + } + + function permutations(arr, length) { + var ret = []; + if (isArray(arr)) { + var copy = arr.slice(0); + if (typeof length !== "number") { + length = arr.length; + } + if (!length) { + ret = [ + [] + ]; + } else if (length <= arr.length) { + ret = reduce(arr, function (a, b, i) { + var ret; + if (length > 1) { + ret = permute(b, rotate(copy, i).slice(1), length); + } else { + ret = [ + [b] + ]; + } + return a.concat(ret); + }, []); + } + } + return ret; + } + + function zip() { + var ret = []; + var arrs = argsToArray(arguments); + if (arrs.length > 1) { + var arr1 = arrs.shift(); + if (isArray(arr1)) { + ret = reduce(arr1, function (a, b, i) { + var curr = [b]; + for (var j = 0; j < arrs.length; j++) { + var currArr = arrs[j]; + if (isArray(currArr) && !is.isUndefined(currArr[i])) { + curr.push(currArr[i]); + } else { + curr.push(null); + } + } + a.push(curr); + return a; + }, []); + } + } + return ret; + } + + function transpose(arr) { + var ret = []; + if (isArray(arr) && arr.length) { + var last; + forEach(arr, function (a) { + if (isArray(a) && (!last || a.length === last.length)) { + forEach(a, function (b, i) { + if (!ret[i]) { + ret[i] = []; + } + ret[i].push(b); + }); + last = a; + } + }); + } + return ret; + } + + function valuesAt(arr, indexes) { + var ret = []; + indexes = argsToArray(arguments); + arr = indexes.shift(); + if (isArray(arr) && indexes.length) { + for (var i = 0, l = indexes.length; i < l; i++) { + ret.push(arr[indexes[i]] || null); + } + } + return ret; + } + + function union() { + var ret = []; + var arrs = argsToArray(arguments); + if (arrs.length > 1) { + for (var i = 0, l = arrs.length; i < l; i++) { + ret = ret.concat(arrs[i]); + } + ret = removeDuplicates(ret); + } + return ret; + } + + function intersect() { + var collect = [], sets, i = -1 , l; + if (arguments.length > 1) { + //assume we are intersections all the lists in the array + sets = argsToArray(arguments); + } else { + sets = arguments[0]; + } + if (isArray(sets)) { + collect = sets[0]; + i = 0; + l = sets.length; + while (++i < l) { + collect = intersection(collect, sets[i]); + } + } + return removeDuplicates(collect); + } + + function powerSet(arr) { + var ret = []; + if (isArray(arr) && arr.length) { + ret = reduce(arr, function (a, b) { + var ret = map(a, function (c) { + return c.concat(b); + }); + return a.concat(ret); + }, [ + [] + ]); + } + return ret; + } + + function cartesian(a, b) { + var ret = []; + if (isArray(a) && isArray(b) && a.length && b.length) { + ret = cross(a[0], b).concat(cartesian(a.slice(1), b)); + } + return ret; + } + + function compact(arr) { + var ret = []; + if (isArray(arr) && arr.length) { + ret = filter(arr, function (item) { + return !is.isUndefinedOrNull(item); + }); + } + return ret; + } + + function multiply(arr, times) { + times = is.isNumber(times) ? times : 1; + if (!times) { + //make sure times is greater than zero if it is zero then dont multiply it + times = 1; + } + arr = toArray(arr || []); + var ret = [], i = 0; + while (++i <= times) { + ret = ret.concat(arr); + } + return ret; + } + + function flatten(arr) { + var set; + var args = argsToArray(arguments); + if (args.length > 1) { + //assume we are intersections all the lists in the array + set = args; + } else { + set = toArray(arr); + } + return reduce(set, function (a, b) { + return a.concat(b); + }, []); + } + + function pluck(arr, prop) { + prop = prop.split("."); + var result = arr.slice(0); + forEach(prop, function (prop) { + var exec = prop.match(/(\w+)\(\)$/); + result = map(result, function (item) { + return exec ? item[exec[1]]() : item[prop]; + }); + }); + return result; + } + + function invoke(arr, func, args) { + args = argsToArray(arguments, 2); + return map(arr, function (item) { + var exec = isString(func) ? item[func] : func; + return exec.apply(item, args); + }); + } + + + var array = { + toArray: toArray, + sum: sum, + avg: avg, + sort: sort, + min: min, + max: max, + difference: difference, + removeDuplicates: removeDuplicates, + unique: unique, + rotate: rotate, + permutations: permutations, + zip: zip, + transpose: transpose, + valuesAt: valuesAt, + union: union, + intersect: intersect, + powerSet: powerSet, + cartesian: cartesian, + compact: compact, + multiply: multiply, + flatten: flatten, + pluck: pluck, + invoke: invoke, + forEach: forEach, + map: map, + filter: filter, + reduce: reduce, + reduceRight: reduceRight, + some: some, + every: every, + indexOf: indexOf, + lastIndexOf: lastIndexOf + }; + + return extended.define(isArray, array).expose(array); + } + + if (true) { + if ( true && module.exports) { + module.exports = defineArray(__webpack_require__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js"), __webpack_require__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js"), __webpack_require__(/*! arguments-extended */ "./build/cht-core-4-6/node_modules/arguments-extended/index.js")); + } + } else {} + +}).call(this); + + + + + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/charenc/charenc.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/charenc/charenc.js ***! + \************************************************************/ +/***/ ((module) => { + +var charenc = { + // UTF-8 encoding + utf8: { + // Convert a string to a byte array + stringToBytes: function(str) { + return charenc.bin.stringToBytes(unescape(encodeURIComponent(str))); + }, + + // Convert a byte array to a string + bytesToString: function(bytes) { + return decodeURIComponent(escape(charenc.bin.bytesToString(bytes))); + } + }, + + // Binary encoding + bin: { + // Convert a string to a byte array + stringToBytes: function(str) { + for (var bytes = [], i = 0; i < str.length; i++) + bytes.push(str.charCodeAt(i) & 0xFF); + return bytes; + }, + + // Convert a byte array to a string + bytesToString: function(bytes) { + for (var str = [], i = 0; i < bytes.length; i++) + str.push(String.fromCharCode(bytes[i])); + return str.join(''); + } + } +}; + +module.exports = charenc; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/cht-nootils/src/nootils.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/cht-nootils/src/nootils.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const _ = __webpack_require__(/*! underscore */ "./build/cht-core-4-6/node_modules/underscore/modules/index-all.js"); + +const NO_LMP_DATE_MODIFIER = 4; + +module.exports = function(settings) { + const taskSchedules = settings && settings.tasks && settings.tasks.schedules; + const lib = { + /** + * @function + * In legacy versions, partner code is required to only emit tasks which are ready to be displayed to the user. Utils.isTimely is the mechanism used for this. + * With the rules-engine improvements in webapp 3.8, this responsibility shifts. Partner code should emit all tasks and the webapp's rules-engine decides what to display. + * To this end - Utils.isTimely becomes a pass-through in nootils@4.x + * @returns True + */ + isTimely: () => true, + + addDate: function(date, days) { + let result; + if (date) { + result = new Date(date.getTime()); + } else { + result = lib.now(); + } + result.setDate(result.getDate() + days); + result.setHours(0, 0, 0, 0); + return result; + }, + + getLmpDate: function(doc) { + const weeks = doc.fields.last_menstrual_period || NO_LMP_DATE_MODIFIER; + return lib.addDate(new Date(doc.reported_date), weeks * -7); + }, + + // TODO getSchedule() can be removed when tasks.json support is dropped + getSchedule: function(name) { + return _.findWhere(taskSchedules, { name: name }); + }, + + getMostRecentTimestamp: function(reports, form, fields) { + const report = lib.getMostRecentReport(reports, form, fields); + return report && report.reported_date; + }, + + getMostRecentReport: function(reports, forms, fields) { + if (!Array.isArray(forms)) { + forms = [forms]; + } + let result = null; + reports.forEach(function(report) { + if (forms.includes(report.form) && + !report.deleted && + (!result || (report.reported_date > result.reported_date)) && + (!fields || (report.fields && lib.fieldsMatch(report, fields)))) { + result = report; + } + }); + return result; + }, + + isFormSubmittedInWindow: function(reports, form, start, end, count) { + let result = false; + reports.forEach(function(report) { + if (!result && report.form === form) { + if (report.reported_date >= start && report.reported_date <= end) { + if (!count || + (count && report.fields && report.fields.follow_up_count > count)) { + result = true; + } + } + } + }); + return result; + }, + + isFirstReportNewer: function(firstReport, secondReport) { + if (firstReport && firstReport.reported_date) { + if (secondReport && secondReport.reported_date) { + return firstReport.reported_date > secondReport.reported_date; + } + return true; + } + return null; + }, + + isDateValid: function(date) { + return !isNaN(date.getTime()); + }, + + /** + * @function + * @name getField + * + * Gets the value of specified field path. + * @param {Object} report - The report object. + * @param {string} field - Period separated json path assuming report.fields as + * the root node e.g 'dob' (equivalent to report.fields.dob) + * or 'screening.test_result' equivalent to report.fields.screening.test_result + */ + getField: function(report, field) { + return _.propertyOf(report.fields)(field.split('.')); + }, + + fieldsMatch: function(report, fieldValues) { + return Object.keys(fieldValues).every(function(field) { + return lib.getField(report, field) === fieldValues[field]; + }); + }, + + MS_IN_DAY: 24*60*60*1000, // 1 day in ms + + now: function() { return new Date(); }, + }; + + return lib; +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/crypt/crypt.js": +/*!********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/crypt/crypt.js ***! + \********************************************************/ +/***/ ((module) => { + +(function() { + var base64map + = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', + + crypt = { + // Bit-wise rotation left + rotl: function(n, b) { + return (n << b) | (n >>> (32 - b)); + }, + + // Bit-wise rotation right + rotr: function(n, b) { + return (n << (32 - b)) | (n >>> b); + }, + + // Swap big-endian to little-endian and vice versa + endian: function(n) { + // If number given, swap endian + if (n.constructor == Number) { + return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00; + } + + // Else, assume array and swap all items + for (var i = 0; i < n.length; i++) + n[i] = crypt.endian(n[i]); + return n; + }, + + // Generate an array of any length of random bytes + randomBytes: function(n) { + for (var bytes = []; n > 0; n--) + bytes.push(Math.floor(Math.random() * 256)); + return bytes; + }, + + // Convert a byte array to big-endian 32-bit words + bytesToWords: function(bytes) { + for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8) + words[b >>> 5] |= bytes[i] << (24 - b % 32); + return words; + }, + + // Convert big-endian 32-bit words to a byte array + wordsToBytes: function(words) { + for (var bytes = [], b = 0; b < words.length * 32; b += 8) + bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF); + return bytes; + }, + + // Convert a byte array to a hex string + bytesToHex: function(bytes) { + for (var hex = [], i = 0; i < bytes.length; i++) { + hex.push((bytes[i] >>> 4).toString(16)); + hex.push((bytes[i] & 0xF).toString(16)); + } + return hex.join(''); + }, + + // Convert a hex string to a byte array + hexToBytes: function(hex) { + for (var bytes = [], c = 0; c < hex.length; c += 2) + bytes.push(parseInt(hex.substr(c, 2), 16)); + return bytes; + }, + + // Convert a byte array to a base-64 string + bytesToBase64: function(bytes) { + for (var base64 = [], i = 0; i < bytes.length; i += 3) { + var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]; + for (var j = 0; j < 4; j++) + if (i * 8 + j * 6 <= bytes.length * 8) + base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F)); + else + base64.push('='); + } + return base64.join(''); + }, + + // Convert a base-64 string to a byte array + base64ToBytes: function(base64) { + // Remove non-base-64 characters + base64 = base64.replace(/[^A-Z0-9+\/]/ig, ''); + + for (var bytes = [], i = 0, imod4 = 0; i < base64.length; + imod4 = ++i % 4) { + if (imod4 == 0) continue; + bytes.push(((base64map.indexOf(base64.charAt(i - 1)) + & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2)) + | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2))); + } + return bytes; + } + }; + + module.exports = crypt; +})(); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/date-extended/index.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/date-extended/index.js ***! + \****************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +(function () { + "use strict"; + + function defineDate(extended, is, array) { + + function _pad(string, length, ch, end) { + string = "" + string; //check for numbers + ch = ch || " "; + var strLen = string.length; + while (strLen < length) { + if (end) { + string += ch; + } else { + string = ch + string; + } + strLen++; + } + return string; + } + + function _truncate(string, length, end) { + var ret = string; + if (is.isString(ret)) { + if (string.length > length) { + if (end) { + var l = string.length; + ret = string.substring(l - length, l); + } else { + ret = string.substring(0, length); + } + } + } else { + ret = _truncate("" + ret, length); + } + return ret; + } + + function every(arr, iterator, scope) { + if (!is.isArray(arr) || typeof iterator !== "function") { + throw new TypeError(); + } + var t = Object(arr); + var len = t.length >>> 0; + for (var i = 0; i < len; i++) { + if (i in t && !iterator.call(scope, t[i], i, t)) { + return false; + } + } + return true; + } + + + var transforms = (function () { + var floor = Math.floor, round = Math.round; + + var addMap = { + day: function addDay(date, amount) { + return [amount, "Date", false]; + }, + weekday: function addWeekday(date, amount) { + // Divide the increment time span into weekspans plus leftover days + // e.g., 8 days is one 5-day weekspan / and two leftover days + // Can't have zero leftover days, so numbers divisible by 5 get + // a days value of 5, and the remaining days make up the number of weeks + var days, weeks, mod = amount % 5, strt = date.getDay(), adj = 0; + if (!mod) { + days = (amount > 0) ? 5 : -5; + weeks = (amount > 0) ? ((amount - 5) / 5) : ((amount + 5) / 5); + } else { + days = mod; + weeks = parseInt(amount / 5, 10); + } + if (strt === 6 && amount > 0) { + adj = 1; + } else if (strt === 0 && amount < 0) { + // Orig date is Sun / negative increment + // Jump back over Sat + adj = -1; + } + // Get weekday val for the new date + var trgt = strt + days; + // New date is on Sat or Sun + if (trgt === 0 || trgt === 6) { + adj = (amount > 0) ? 2 : -2; + } + // Increment by number of weeks plus leftover days plus + // weekend adjustments + return [(7 * weeks) + days + adj, "Date", false]; + }, + year: function addYear(date, amount) { + return [amount, "FullYear", true]; + }, + week: function addWeek(date, amount) { + return [amount * 7, "Date", false]; + }, + quarter: function addYear(date, amount) { + return [amount * 3, "Month", true]; + }, + month: function addYear(date, amount) { + return [amount, "Month", true]; + } + }; + + function addTransform(interval, date, amount) { + interval = interval.replace(/s$/, ""); + if (addMap.hasOwnProperty(interval)) { + return addMap[interval](date, amount); + } + return [amount, "UTC" + interval.charAt(0).toUpperCase() + interval.substring(1) + "s", false]; + } + + + var differenceMap = { + "quarter": function quarterDifference(date1, date2, utc) { + var yearDiff = date2.getFullYear() - date1.getFullYear(); + var m1 = date1[utc ? "getUTCMonth" : "getMonth"](); + var m2 = date2[utc ? "getUTCMonth" : "getMonth"](); + // Figure out which quarter the months are in + var q1 = floor(m1 / 3) + 1; + var q2 = floor(m2 / 3) + 1; + // Add quarters for any year difference between the dates + q2 += (yearDiff * 4); + return q2 - q1; + }, + + "weekday": function weekdayDifference(date1, date2, utc) { + var days = differenceTransform("day", date1, date2, utc), weeks; + var mod = days % 7; + // Even number of weeks + if (mod === 0) { + days = differenceTransform("week", date1, date2, utc) * 5; + } else { + // Weeks plus spare change (< 7 days) + var adj = 0, aDay = date1[utc ? "getUTCDay" : "getDay"](), bDay = date2[utc ? "getUTCDay" : "getDay"](); + weeks = parseInt(days / 7, 10); + // Mark the date advanced by the number of + // round weeks (may be zero) + var dtMark = new Date(+date1); + dtMark.setDate(dtMark[utc ? "getUTCDate" : "getDate"]() + (weeks * 7)); + var dayMark = dtMark[utc ? "getUTCDay" : "getDay"](); + + // Spare change days -- 6 or less + if (days > 0) { + if (aDay === 6 || bDay === 6) { + adj = -1; + } else if (aDay === 0) { + adj = 0; + } else if (bDay === 0 || (dayMark + mod) > 5) { + adj = -2; + } + } else if (days < 0) { + if (aDay === 6) { + adj = 0; + } else if (aDay === 0 || bDay === 0) { + adj = 1; + } else if (bDay === 6 || (dayMark + mod) < 0) { + adj = 2; + } + } + days += adj; + days -= (weeks * 2); + } + return days; + }, + year: function (date1, date2) { + return date2.getFullYear() - date1.getFullYear(); + }, + month: function (date1, date2, utc) { + var m1 = date1[utc ? "getUTCMonth" : "getMonth"](); + var m2 = date2[utc ? "getUTCMonth" : "getMonth"](); + return (m2 - m1) + ((date2.getFullYear() - date1.getFullYear()) * 12); + }, + week: function (date1, date2, utc) { + return round(differenceTransform("day", date1, date2, utc) / 7); + }, + day: function (date1, date2) { + return 1.1574074074074074e-8 * (date2.getTime() - date1.getTime()); + }, + hour: function (date1, date2) { + return 2.7777777777777776e-7 * (date2.getTime() - date1.getTime()); + }, + minute: function (date1, date2) { + return 0.000016666666666666667 * (date2.getTime() - date1.getTime()); + }, + second: function (date1, date2) { + return 0.001 * (date2.getTime() - date1.getTime()); + }, + millisecond: function (date1, date2) { + return date2.getTime() - date1.getTime(); + } + }; + + + function differenceTransform(interval, date1, date2, utc) { + interval = interval.replace(/s$/, ""); + return round(differenceMap[interval](date1, date2, utc)); + } + + + return { + addTransform: addTransform, + differenceTransform: differenceTransform + }; + }()), + addTransform = transforms.addTransform, + differenceTransform = transforms.differenceTransform; + + + /** + * @ignore + * Based on DOJO Date Implementation + * + * Dojo is available under *either* the terms of the modified BSD license *or* the + * Academic Free License version 2.1. As a recipient of Dojo, you may choose which + * license to receive this code under (except as noted in per-module LICENSE + * files). Some modules may not be the copyright of the Dojo Foundation. These + * modules contain explicit declarations of copyright in both the LICENSE files in + * the directories in which they reside and in the code itself. No external + * contributions are allowed under licenses which are fundamentally incompatible + * with the AFL or BSD licenses that Dojo is distributed under. + * + */ + + var floor = Math.floor, round = Math.round, min = Math.min, pow = Math.pow, ceil = Math.ceil, abs = Math.abs; + var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; + var monthAbbr = ["Jan.", "Feb.", "Mar.", "Apr.", "May.", "Jun.", "Jul.", "Aug.", "Sep.", "Oct.", "Nov.", "Dec."]; + var dayNames = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; + var dayAbbr = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; + var eraNames = ["Before Christ", "Anno Domini"]; + var eraAbbr = ["BC", "AD"]; + + + function getDayOfYear(/*Date*/dateObject, utc) { + // summary: gets the day of the year as represented by dateObject + return date.difference(new Date(dateObject.getFullYear(), 0, 1, dateObject.getHours()), dateObject, null, utc) + 1; // Number + } + + function getWeekOfYear(/*Date*/dateObject, /*Number*/firstDayOfWeek, utc) { + firstDayOfWeek = firstDayOfWeek || 0; + var fullYear = dateObject[utc ? "getUTCFullYear" : "getFullYear"](); + var firstDayOfYear = new Date(fullYear, 0, 1).getDay(), + adj = (firstDayOfYear - firstDayOfWeek + 7) % 7, + week = floor((getDayOfYear(dateObject) + adj - 1) / 7); + + // if year starts on the specified day, start counting weeks at 1 + if (firstDayOfYear === firstDayOfWeek) { + week++; + } + + return week; // Number + } + + function getTimezoneName(/*Date*/dateObject) { + var str = dateObject.toString(); + var tz = ''; + var pos = str.indexOf('('); + if (pos > -1) { + tz = str.substring(++pos, str.indexOf(')')); + } + return tz; // String + } + + + function buildDateEXP(pattern, tokens) { + return pattern.replace(/([a-z])\1*/ig,function (match) { + // Build a simple regexp. Avoid captures, which would ruin the tokens list + var s, + c = match.charAt(0), + l = match.length, + p2 = '0?', + p3 = '0{0,2}'; + if (c === 'y') { + s = '\\d{2,4}'; + } else if (c === "M") { + s = (l > 2) ? '\\S+?' : '1[0-2]|' + p2 + '[1-9]'; + } else if (c === "D") { + s = '[12][0-9][0-9]|3[0-5][0-9]|36[0-6]|' + p3 + '[1-9][0-9]|' + p2 + '[1-9]'; + } else if (c === "d") { + s = '3[01]|[12]\\d|' + p2 + '[1-9]'; + } else if (c === "w") { + s = '[1-4][0-9]|5[0-3]|' + p2 + '[1-9]'; + } else if (c === "E") { + s = '\\S+'; + } else if (c === "h") { + s = '1[0-2]|' + p2 + '[1-9]'; + } else if (c === "K") { + s = '1[01]|' + p2 + '\\d'; + } else if (c === "H") { + s = '1\\d|2[0-3]|' + p2 + '\\d'; + } else if (c === "k") { + s = '1\\d|2[0-4]|' + p2 + '[1-9]'; + } else if (c === "m" || c === "s") { + s = '[0-5]\\d'; + } else if (c === "S") { + s = '\\d{' + l + '}'; + } else if (c === "a") { + var am = 'AM', pm = 'PM'; + s = am + '|' + pm; + if (am !== am.toLowerCase()) { + s += '|' + am.toLowerCase(); + } + if (pm !== pm.toLowerCase()) { + s += '|' + pm.toLowerCase(); + } + s = s.replace(/\./g, "\\."); + } else if (c === 'v' || c === 'z' || c === 'Z' || c === 'G' || c === 'q' || c === 'Q') { + s = ".*"; + } else { + s = c === " " ? "\\s*" : c + "*"; + } + if (tokens) { + tokens.push(match); + } + + return "(" + s + ")"; // add capture + }).replace(/[\xa0 ]/g, "[\\s\\xa0]"); // normalize whitespace. Need explicit handling of \xa0 for IE. + } + + + /** + * @namespace Utilities for Dates + */ + var date = { + + /**@lends date*/ + + /** + * Returns the number of days in the month of a date + * + * @example + * + * dateExtender.getDaysInMonth(new Date(2006, 1, 1)); //28 + * dateExtender.getDaysInMonth(new Date(2004, 1, 1)); //29 + * dateExtender.getDaysInMonth(new Date(2006, 2, 1)); //31 + * dateExtender.getDaysInMonth(new Date(2006, 3, 1)); //30 + * dateExtender.getDaysInMonth(new Date(2006, 4, 1)); //31 + * dateExtender.getDaysInMonth(new Date(2006, 5, 1)); //30 + * dateExtender.getDaysInMonth(new Date(2006, 6, 1)); //31 + * @param {Date} dateObject the date containing the month + * @return {Number} the number of days in the month + */ + getDaysInMonth: function (/*Date*/dateObject) { + // summary: + // Returns the number of days in the month used by dateObject + var month = dateObject.getMonth(); + var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + if (month === 1 && date.isLeapYear(dateObject)) { + return 29; + } // Number + return days[month]; // Number + }, + + /** + * Determines if a date is a leap year + * + * @example + * + * dateExtender.isLeapYear(new Date(1600, 0, 1)); //true + * dateExtender.isLeapYear(new Date(2004, 0, 1)); //true + * dateExtender.isLeapYear(new Date(2000, 0, 1)); //true + * dateExtender.isLeapYear(new Date(2006, 0, 1)); //false + * dateExtender.isLeapYear(new Date(1900, 0, 1)); //false + * dateExtender.isLeapYear(new Date(1800, 0, 1)); //false + * dateExtender.isLeapYear(new Date(1700, 0, 1)); //false + * + * @param {Date} dateObject + * @returns {Boolean} true if it is a leap year false otherwise + */ + isLeapYear: function (/*Date*/dateObject, utc) { + var year = dateObject[utc ? "getUTCFullYear" : "getFullYear"](); + return (year % 400 === 0) || (year % 4 === 0 && year % 100 !== 0); + + }, + + /** + * Determines if a date is on a weekend + * + * @example + * + * var thursday = new Date(2006, 8, 21); + * var saturday = new Date(2006, 8, 23); + * var sunday = new Date(2006, 8, 24); + * var monday = new Date(2006, 8, 25); + * dateExtender.isWeekend(thursday)); //false + * dateExtender.isWeekend(saturday); //true + * dateExtender.isWeekend(sunday); //true + * dateExtender.isWeekend(monday)); //false + * + * @param {Date} dateObject the date to test + * + * @returns {Boolean} true if the date is a weekend + */ + isWeekend: function (/*Date?*/dateObject, utc) { + // summary: + // Determines if the date falls on a weekend, according to local custom. + var day = (dateObject || new Date())[utc ? "getUTCDay" : "getDay"](); + return day === 0 || day === 6; + }, + + /** + * Get the timezone of a date + * + * @example + * //just setting the strLocal to simulate the toString() of a date + * dt.str = 'Sun Sep 17 2006 22:25:51 GMT-0500 (CDT)'; + * //just setting the strLocal to simulate the locale + * dt.strLocale = 'Sun 17 Sep 2006 10:25:51 PM CDT'; + * dateExtender.getTimezoneName(dt); //'CDT' + * dt.str = 'Sun Sep 17 2006 22:57:18 GMT-0500 (CDT)'; + * dt.strLocale = 'Sun Sep 17 22:57:18 2006'; + * dateExtender.getTimezoneName(dt); //'CDT' + * @param dateObject the date to get the timezone from + * + * @returns {String} the timezone of the date + */ + getTimezoneName: getTimezoneName, + + /** + * Compares two dates + * + * @example + * + * var d1 = new Date(); + * d1.setHours(0); + * dateExtender.compare(d1, d1); // 0 + * + * var d1 = new Date(); + * d1.setHours(0); + * var d2 = new Date(); + * d2.setFullYear(2005); + * d2.setHours(12); + * dateExtender.compare(d1, d2, "date"); // 1 + * dateExtender.compare(d1, d2, "datetime"); // 1 + * + * var d1 = new Date(); + * d1.setHours(0); + * var d2 = new Date(); + * d2.setFullYear(2005); + * d2.setHours(12); + * dateExtender.compare(d2, d1, "date"); // -1 + * dateExtender.compare(d1, d2, "time"); //-1 + * + * @param {Date|String} date1 the date to comapare + * @param {Date|String} [date2=new Date()] the date to compare date1 againse + * @param {"date"|"time"|"datetime"} portion compares the portion specified + * + * @returns -1 if date1 is < date2 0 if date1 === date2 1 if date1 > date2 + */ + compare: function (/*Date*/date1, /*Date*/date2, /*String*/portion) { + date1 = new Date(+date1); + date2 = new Date(+(date2 || new Date())); + + if (portion === "date") { + // Ignore times and compare dates. + date1.setHours(0, 0, 0, 0); + date2.setHours(0, 0, 0, 0); + } else if (portion === "time") { + // Ignore dates and compare times. + date1.setFullYear(0, 0, 0); + date2.setFullYear(0, 0, 0); + } + return date1 > date2 ? 1 : date1 < date2 ? -1 : 0; + }, + + + /** + * Adds a specified interval and amount to a date + * + * @example + * var dtA = new Date(2005, 11, 27); + * dateExtender.add(dtA, "year", 1); //new Date(2006, 11, 27); + * dateExtender.add(dtA, "years", 1); //new Date(2006, 11, 27); + * + * dtA = new Date(2000, 0, 1); + * dateExtender.add(dtA, "quarter", 1); //new Date(2000, 3, 1); + * dateExtender.add(dtA, "quarters", 1); //new Date(2000, 3, 1); + * + * dtA = new Date(2000, 0, 1); + * dateExtender.add(dtA, "month", 1); //new Date(2000, 1, 1); + * dateExtender.add(dtA, "months", 1); //new Date(2000, 1, 1); + * + * dtA = new Date(2000, 0, 31); + * dateExtender.add(dtA, "month", 1); //new Date(2000, 1, 29); + * dateExtender.add(dtA, "months", 1); //new Date(2000, 1, 29); + * + * dtA = new Date(2000, 0, 1); + * dateExtender.add(dtA, "week", 1); //new Date(2000, 0, 8); + * dateExtender.add(dtA, "weeks", 1); //new Date(2000, 0, 8); + * + * dtA = new Date(2000, 0, 1); + * dateExtender.add(dtA, "day", 1); //new Date(2000, 0, 2); + * + * dtA = new Date(2000, 0, 1); + * dateExtender.add(dtA, "weekday", 1); //new Date(2000, 0, 3); + * + * dtA = new Date(2000, 0, 1, 11); + * dateExtender.add(dtA, "hour", 1); //new Date(2000, 0, 1, 12); + * + * dtA = new Date(2000, 11, 31, 23, 59); + * dateExtender.add(dtA, "minute", 1); //new Date(2001, 0, 1, 0, 0); + * + * dtA = new Date(2000, 11, 31, 23, 59, 59); + * dateExtender.add(dtA, "second", 1); //new Date(2001, 0, 1, 0, 0, 0); + * + * dtA = new Date(2000, 11, 31, 23, 59, 59, 999); + * dateExtender.add(dtA, "millisecond", 1); //new Date(2001, 0, 1, 0, 0, 0, 0); + * + * @param {Date} date + * @param {String} interval the interval to add + *
                        + *
                      • day | days
                      • + *
                      • weekday | weekdays
                      • + *
                      • year | years
                      • + *
                      • week | weeks
                      • + *
                      • quarter | quarters
                      • + *
                      • months | months
                      • + *
                      • hour | hours
                      • + *
                      • minute | minutes
                      • + *
                      • second | seconds
                      • + *
                      • millisecond | milliseconds
                      • + *
                      + * @param {Number} [amount=0] the amount to add + */ + add: function (/*Date*/date, /*String*/interval, /*int*/amount) { + var res = addTransform(interval, date, amount || 0); + amount = res[0]; + var property = res[1]; + var sum = new Date(+date); + var fixOvershoot = res[2]; + if (property) { + sum["set" + property](sum["get" + property]() + amount); + } + + if (fixOvershoot && (sum.getDate() < date.getDate())) { + sum.setDate(0); + } + + return sum; // Date + }, + + /** + * Finds the difference between two dates based on the specified interval + * + * @example + * + * var dtA, dtB; + * + * dtA = new Date(2005, 11, 27); + * dtB = new Date(2006, 11, 27); + * dateExtender.difference(dtA, dtB, "year"); //1 + * + * dtA = new Date(2000, 1, 29); + * dtB = new Date(2001, 2, 1); + * dateExtender.difference(dtA, dtB, "quarter"); //4 + * dateExtender.difference(dtA, dtB, "month"); //13 + * + * dtA = new Date(2000, 1, 1); + * dtB = new Date(2000, 1, 8); + * dateExtender.difference(dtA, dtB, "week"); //1 + * + * dtA = new Date(2000, 1, 29); + * dtB = new Date(2000, 2, 1); + * dateExtender.difference(dtA, dtB, "day"); //1 + * + * dtA = new Date(2006, 7, 3); + * dtB = new Date(2006, 7, 11); + * dateExtender.difference(dtA, dtB, "weekday"); //6 + * + * dtA = new Date(2000, 11, 31, 23); + * dtB = new Date(2001, 0, 1, 0); + * dateExtender.difference(dtA, dtB, "hour"); //1 + * + * dtA = new Date(2000, 11, 31, 23, 59); + * dtB = new Date(2001, 0, 1, 0, 0); + * dateExtender.difference(dtA, dtB, "minute"); //1 + * + * dtA = new Date(2000, 11, 31, 23, 59, 59); + * dtB = new Date(2001, 0, 1, 0, 0, 0); + * dateExtender.difference(dtA, dtB, "second"); //1 + * + * dtA = new Date(2000, 11, 31, 23, 59, 59, 999); + * dtB = new Date(2001, 0, 1, 0, 0, 0, 0); + * dateExtender.difference(dtA, dtB, "millisecond"); //1 + * + * + * @param {Date} date1 + * @param {Date} [date2 = new Date()] + * @param {String} [interval = "day"] the intercal to find the difference of. + *
                        + *
                      • day | days
                      • + *
                      • weekday | weekdays
                      • + *
                      • year | years
                      • + *
                      • week | weeks
                      • + *
                      • quarter | quarters
                      • + *
                      • months | months
                      • + *
                      • hour | hours
                      • + *
                      • minute | minutes
                      • + *
                      • second | seconds
                      • + *
                      • millisecond | milliseconds
                      • + *
                      + */ + difference: function (/*Date*/date1, /*Date?*/date2, /*String*/interval, utc) { + date2 = date2 || new Date(); + interval = interval || "day"; + return differenceTransform(interval, date1, date2, utc); + }, + + /** + * Formats a date to the specidifed format string + * + * @example + * + * var date = new Date(2006, 7, 11, 0, 55, 12, 345); + * dateExtender.format(date, "EEEE, MMMM dd, yyyy"); //"Friday, August 11, 2006" + * dateExtender.format(date, "M/dd/yy"); //"8/11/06" + * dateExtender.format(date, "E"); //"6" + * dateExtender.format(date, "h:m a"); //"12:55 AM" + * dateExtender.format(date, 'h:m:s'); //"12:55:12" + * dateExtender.format(date, 'h:m:s.SS'); //"12:55:12.35" + * dateExtender.format(date, 'k:m:s.SS'); //"24:55:12.35" + * dateExtender.format(date, 'H:m:s.SS'); //"0:55:12.35" + * dateExtender.format(date, "ddMMyyyy"); //"11082006" + * + * @param date the date to format + * @param {String} format the format of the date composed of the following options + *
                        + *
                      • G Era designator Text AD
                      • + *
                      • y Year Year 1996; 96
                      • + *
                      • M Month in year Month July; Jul; 07
                      • + *
                      • w Week in year Number 27
                      • + *
                      • W Week in month Number 2
                      • + *
                      • D Day in year Number 189
                      • + *
                      • d Day in month Number 10
                      • + *
                      • E Day in week Text Tuesday; Tue
                      • + *
                      • a Am/pm marker Text PM
                      • + *
                      • H Hour in day (0-23) Number 0
                      • + *
                      • k Hour in day (1-24) Number 24
                      • + *
                      • K Hour in am/pm (0-11) Number 0
                      • + *
                      • h Hour in am/pm (1-12) Number 12
                      • + *
                      • m Minute in hour Number 30
                      • + *
                      • s Second in minute Number 55
                      • + *
                      • S Millisecond Number 978
                      • + *
                      • z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
                      • + *
                      • Z Time zone RFC 822 time zone -0800
                      • + *
                      + */ + format: function (date, format, utc) { + utc = utc || false; + var fullYear, month, day, d, hour, minute, second, millisecond; + if (utc) { + fullYear = date.getUTCFullYear(); + month = date.getUTCMonth(); + day = date.getUTCDay(); + d = date.getUTCDate(); + hour = date.getUTCHours(); + minute = date.getUTCMinutes(); + second = date.getUTCSeconds(); + millisecond = date.getUTCMilliseconds(); + } else { + fullYear = date.getFullYear(); + month = date.getMonth(); + d = date.getDate(); + day = date.getDay(); + hour = date.getHours(); + minute = date.getMinutes(); + second = date.getSeconds(); + millisecond = date.getMilliseconds(); + } + return format.replace(/([A-Za-z])\1*/g, function (match) { + var s, pad, + c = match.charAt(0), + l = match.length; + if (c === 'd') { + s = "" + d; + pad = true; + } else if (c === "H" && !s) { + s = "" + hour; + pad = true; + } else if (c === 'm' && !s) { + s = "" + minute; + pad = true; + } else if (c === 's') { + if (!s) { + s = "" + second; + } + pad = true; + } else if (c === "G") { + s = ((l < 4) ? eraAbbr : eraNames)[fullYear < 0 ? 0 : 1]; + } else if (c === "y") { + s = fullYear; + if (l > 1) { + if (l === 2) { + s = _truncate("" + s, 2, true); + } else { + pad = true; + } + } + } else if (c.toUpperCase() === "Q") { + s = ceil((month + 1) / 3); + pad = true; + } else if (c === "M") { + if (l < 3) { + s = month + 1; + pad = true; + } else { + s = (l === 3 ? monthAbbr : monthNames)[month]; + } + } else if (c === "w") { + s = getWeekOfYear(date, 0, utc); + pad = true; + } else if (c === "D") { + s = getDayOfYear(date, utc); + pad = true; + } else if (c === "E") { + if (l < 3) { + s = day + 1; + pad = true; + } else { + s = (l === -3 ? dayAbbr : dayNames)[day]; + } + } else if (c === 'a') { + s = (hour < 12) ? 'AM' : 'PM'; + } else if (c === "h") { + s = (hour % 12) || 12; + pad = true; + } else if (c === "K") { + s = (hour % 12); + pad = true; + } else if (c === "k") { + s = hour || 24; + pad = true; + } else if (c === "S") { + s = round(millisecond * pow(10, l - 3)); + pad = true; + } else if (c === "z" || c === "v" || c === "Z") { + s = getTimezoneName(date); + if ((c === "z" || c === "v") && !s) { + l = 4; + } + if (!s || c === "Z") { + var offset = date.getTimezoneOffset(); + var tz = [ + (offset >= 0 ? "-" : "+"), + _pad(floor(abs(offset) / 60), 2, "0"), + _pad(abs(offset) % 60, 2, "0") + ]; + if (l === 4) { + tz.splice(0, 0, "GMT"); + tz.splice(3, 0, ":"); + } + s = tz.join(""); + } + } else { + s = match; + } + if (pad) { + s = _pad(s, l, '0'); + } + return s; + }); + } + + }; + + var numberDate = {}; + + function addInterval(interval) { + numberDate[interval + "sFromNow"] = function (val) { + return date.add(new Date(), interval, val); + }; + numberDate[interval + "sAgo"] = function (val) { + return date.add(new Date(), interval, -val); + }; + } + + var intervals = ["year", "month", "day", "hour", "minute", "second"]; + for (var i = 0, l = intervals.length; i < l; i++) { + addInterval(intervals[i]); + } + + var stringDate = { + + parseDate: function (dateStr, format) { + if (!format) { + throw new Error('format required when calling dateExtender.parse'); + } + var tokens = [], regexp = buildDateEXP(format, tokens), + re = new RegExp("^" + regexp + "$", "i"), + match = re.exec(dateStr); + if (!match) { + return null; + } // null + var result = [1970, 0, 1, 0, 0, 0, 0], // will get converted to a Date at the end + amPm = "", + valid = every(match, function (v, i) { + if (i) { + var token = tokens[i - 1]; + var l = token.length, type = token.charAt(0); + if (type === 'y') { + if (v < 100) { + v = parseInt(v, 10); + //choose century to apply, according to a sliding window + //of 80 years before and 20 years after present year + var year = '' + new Date().getFullYear(), + century = year.substring(0, 2) * 100, + cutoff = min(year.substring(2, 4) + 20, 99); + result[0] = (v < cutoff) ? century + v : century - 100 + v; + } else { + result[0] = v; + } + } else if (type === "M") { + if (l > 2) { + var months = monthNames, j, k; + if (l === 3) { + months = monthAbbr; + } + //Tolerate abbreviating period in month part + //Case-insensitive comparison + v = v.replace(".", "").toLowerCase(); + var contains = false; + for (j = 0, k = months.length; j < k && !contains; j++) { + var s = months[j].replace(".", "").toLocaleLowerCase(); + if (s === v) { + v = j; + contains = true; + } + } + if (!contains) { + return false; + } + } else { + v--; + } + result[1] = v; + } else if (type === "E" || type === "e") { + var days = dayNames; + if (l === 3) { + days = dayAbbr; + } + //Case-insensitive comparison + v = v.toLowerCase(); + days = array.map(days, function (d) { + return d.toLowerCase(); + }); + var d = array.indexOf(days, v); + if (d === -1) { + v = parseInt(v, 10); + if (isNaN(v) || v > days.length) { + return false; + } + } else { + v = d; + } + } else if (type === 'D' || type === "d") { + if (type === "D") { + result[1] = 0; + } + result[2] = v; + } else if (type === "a") { + var am = "am"; + var pm = "pm"; + var period = /\./g; + v = v.replace(period, '').toLowerCase(); + // we might not have seen the hours field yet, so store the state and apply hour change later + amPm = (v === pm) ? 'p' : (v === am) ? 'a' : ''; + } else if (type === "k" || type === "h" || type === "H" || type === "K") { + if (type === "k" && (+v) === 24) { + v = 0; + } + result[3] = v; + } else if (type === "m") { + result[4] = v; + } else if (type === "s") { + result[5] = v; + } else if (type === "S") { + result[6] = v; + } + } + return true; + }); + if (valid) { + var hours = +result[3]; + //account for am/pm + if (amPm === 'p' && hours < 12) { + result[3] = hours + 12; //e.g., 3pm -> 15 + } else if (amPm === 'a' && hours === 12) { + result[3] = 0; //12am -> 0 + } + var dateObject = new Date(result[0], result[1], result[2], result[3], result[4], result[5], result[6]); // Date + var dateToken = (array.indexOf(tokens, 'd') !== -1), + monthToken = (array.indexOf(tokens, 'M') !== -1), + month = result[1], + day = result[2], + dateMonth = dateObject.getMonth(), + dateDay = dateObject.getDate(); + if ((monthToken && dateMonth > month) || (dateToken && dateDay > day)) { + return null; + } + return dateObject; // Date + } else { + return null; + } + } + }; + + + var ret = extended.define(is.isDate, date).define(is.isString, stringDate).define(is.isNumber, numberDate); + for (i in date) { + if (date.hasOwnProperty(i)) { + ret[i] = date[i]; + } + } + + for (i in stringDate) { + if (stringDate.hasOwnProperty(i)) { + ret[i] = stringDate[i]; + } + } + for (i in numberDate) { + if (numberDate.hasOwnProperty(i)) { + ret[i] = numberDate[i]; + } + } + return ret; + } + + if (true) { + if ( true && module.exports) { + module.exports = defineDate(__webpack_require__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js"), __webpack_require__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js"), __webpack_require__(/*! array-extended */ "./build/cht-core-4-6/node_modules/array-extended/index.js")); + + } + } else {} + +}).call(this); + + + + + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/declare.js/declare.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/declare.js/declare.js ***! + \***************************************************************/ +/***/ ((module) => { + +(function () { + + /** + * @projectName declare + * @github http://github.com/doug-martin/declare.js + * @header + * + * Declare is a library designed to allow writing object oriented code the same way in both the browser and node.js. + * + * ##Installation + * + * `npm install declare.js` + * + * Or [download the source](https://raw.github.com/doug-martin/declare.js/master/declare.js) ([minified](https://raw.github.com/doug-martin/declare.js/master/declare-min.js)) + * + * ###Requirejs + * + * To use with requirejs place the `declare` source in the root scripts directory + * + * ``` + * + * define(["declare"], function(declare){ + * return declare({ + * instance : { + * hello : function(){ + * return "world"; + * } + * } + * }); + * }); + * + * ``` + * + * + * ##Usage + * + * declare.js provides + * + * Class methods + * + * * `as(module | object, name)` : exports the object to module or the object with the name + * * `mixin(mixin)` : mixes in an object but does not inherit directly from the object. **Note** this does not return a new class but changes the original class. + * * `extend(proto)` : extend a class with the given properties. A shortcut to `declare(Super, {})`; + * + * Instance methods + * + * * `_super(arguments)`: calls the super of the current method, you can pass in either the argments object or an array with arguments you want passed to super + * * `_getSuper()`: returns a this methods direct super. + * * `_static` : use to reference class properties and methods. + * * `get(prop)` : gets a property invoking the getter if it exists otherwise it just returns the named property on the object. + * * `set(prop, val)` : sets a property invoking the setter if it exists otherwise it just sets the named property on the object. + * + * + * ###Declaring a new Class + * + * Creating a new class with declare is easy! + * + * ``` + * + * var Mammal = declare({ + * //define your instance methods and properties + * instance : { + * + * //will be called whenever a new instance is created + * constructor: function(options) { + * options = options || {}; + * this._super(arguments); + * this._type = options.type || "mammal"; + * }, + * + * speak : function() { + * return "A mammal of type " + this._type + " sounds like"; + * }, + * + * //Define your getters + * getters : { + * + * //can be accessed by using the get method. (mammal.get("type")) + * type : function() { + * return this._type; + * } + * }, + * + * //Define your setters + * setters : { + * + * //can be accessed by using the set method. (mammal.set("type", "mammalType")) + * type : function(t) { + * this._type = t; + * } + * } + * }, + * + * //Define your static methods + * static : { + * + * //Mammal.soundOff(); //"Im a mammal!!" + * soundOff : function() { + * return "Im a mammal!!"; + * } + * } + * }); + * + * + * ``` + * + * You can use Mammal just like you would any other class. + * + * ``` + * Mammal.soundOff("Im a mammal!!"); + * + * var myMammal = new Mammal({type : "mymammal"}); + * myMammal.speak(); // "A mammal of type mymammal sounds like" + * myMammal.get("type"); //"mymammal" + * myMammal.set("type", "mammal"); + * myMammal.get("type"); //"mammal" + * + * + * ``` + * + * ###Extending a class + * + * If you want to just extend a single class use the .extend method. + * + * ``` + * + * var Wolf = Mammal.extend({ + * + * //define your instance method + * instance: { + * + * //You can override super constructors just be sure to call `_super` + * constructor: function(options) { + * options = options || {}; + * this._super(arguments); //call our super constructor. + * this._sound = "growl"; + * this._color = options.color || "grey"; + * }, + * + * //override Mammals `speak` method by appending our own data to it. + * speak : function() { + * return this._super(arguments) + " a " + this._sound; + * }, + * + * //add new getters for sound and color + * getters : { + * + * //new Wolf().get("type") + * //notice color is read only as we did not define a setter + * color : function() { + * return this._color; + * }, + * + * //new Wolf().get("sound") + * sound : function() { + * return this._sound; + * } + * }, + * + * setters : { + * + * //new Wolf().set("sound", "howl") + * sound : function(s) { + * this._sound = s; + * } + * } + * + * }, + * + * static : { + * + * //You can override super static methods also! And you can still use _super + * soundOff : function() { + * //You can even call super in your statics!!! + * //should return "I'm a mammal!! that growls" + * return this._super(arguments) + " that growls"; + * } + * } + * }); + * + * Wolf.soundOff(); //Im a mammal!! that growls + * + * var myWolf = new Wolf(); + * myWolf instanceof Mammal //true + * myWolf instanceof Wolf //true + * + * ``` + * + * You can also extend a class by using the declare method and just pass in the super class. + * + * ``` + * //Typical hierarchical inheritance + * // Mammal->Wolf->Dog + * var Dog = declare(Wolf, { + * instance: { + * constructor: function(options) { + * options = options || {}; + * this._super(arguments); + * //override Wolfs initialization of sound to woof. + * this._sound = "woof"; + * + * }, + * + * speak : function() { + * //Should return "A mammal of type mammal sounds like a growl thats domesticated" + * return this._super(arguments) + " thats domesticated"; + * } + * }, + * + * static : { + * soundOff : function() { + * //should return "I'm a mammal!! that growls but now barks" + * return this._super(arguments) + " but now barks"; + * } + * } + * }); + * + * Dog.soundOff(); //Im a mammal!! that growls but now barks + * + * var myDog = new Dog(); + * myDog instanceof Mammal //true + * myDog instanceof Wolf //true + * myDog instanceof Dog //true + * + * + * //Notice you still get the extend method. + * + * // Mammal->Wolf->Dog->Breed + * var Breed = Dog.extend({ + * instance: { + * + * //initialize outside of constructor + * _pitch : "high", + * + * constructor: function(options) { + * options = options || {}; + * this._super(arguments); + * this.breed = options.breed || "lab"; + * }, + * + * speak : function() { + * //Should return "A mammal of type mammal sounds like a + * //growl thats domesticated with a high pitch!" + * return this._super(arguments) + " with a " + this._pitch + " pitch!"; + * }, + * + * getters : { + * pitch : function() { + * return this._pitch; + * } + * } + * }, + * + * static : { + * soundOff : function() { + * //should return "I'M A MAMMAL!! THAT GROWLS BUT NOW BARKS!" + * return this._super(arguments).toUpperCase() + "!"; + * } + * } + * }); + * + * + * Breed.soundOff()//"IM A MAMMAL!! THAT GROWLS BUT NOW BARKS!" + * + * var myBreed = new Breed({color : "gold", type : "lab"}), + * myBreed instanceof Dog //true + * myBreed instanceof Wolf //true + * myBreed instanceof Mammal //true + * myBreed.speak() //"A mammal of type lab sounds like a woof thats domesticated with a high pitch!" + * myBreed.get("type") //"lab" + * myBreed.get("color") //"gold" + * myBreed.get("sound")" //"woof" + * ``` + * + * ###Multiple Inheritance / Mixins + * + * declare also allows the use of multiple super classes. + * This is useful if you have generic classes that provide functionality but shouldnt be used on their own. + * + * Lets declare a mixin that allows us to watch for property changes. + * + * ``` + * //Notice that we set up the functions outside of declare because we can reuse them + * + * function _set(prop, val) { + * //get the old value + * var oldVal = this.get(prop); + * //call super to actually set the property + * var ret = this._super(arguments); + * //call our handlers + * this.__callHandlers(prop, oldVal, val); + * return ret; + * } + * + * function _callHandlers(prop, oldVal, newVal) { + * //get our handlers for the property + * var handlers = this.__watchers[prop], l; + * //if the handlers exist and their length does not equal 0 then we call loop through them + * if (handlers && (l = handlers.length) !== 0) { + * for (var i = 0; i < l; i++) { + * //call the handler + * handlers[i].call(null, prop, oldVal, newVal); + * } + * } + * } + * + * + * //the watch function + * function _watch(prop, handler) { + * if ("function" !== typeof handler) { + * //if its not a function then its an invalid handler + * throw new TypeError("Invalid handler."); + * } + * if (!this.__watchers[prop]) { + * //create the watchers if it doesnt exist + * this.__watchers[prop] = [handler]; + * } else { + * //otherwise just add it to the handlers array + * this.__watchers[prop].push(handler); + * } + * } + * + * function _unwatch(prop, handler) { + * if ("function" !== typeof handler) { + * throw new TypeError("Invalid handler."); + * } + * var handlers = this.__watchers[prop], index; + * if (handlers && (index = handlers.indexOf(handler)) !== -1) { + * //remove the handler if it is found + * handlers.splice(index, 1); + * } + * } + * + * declare({ + * instance:{ + * constructor:function () { + * this._super(arguments); + * //set up our watchers + * this.__watchers = {}; + * }, + * + * //override the default set function so we can watch values + * "set":_set, + * //set up our callhandlers function + * __callHandlers:_callHandlers, + * //add the watch function + * watch:_watch, + * //add the unwatch function + * unwatch:_unwatch + * }, + * + * "static":{ + * + * init:function () { + * this._super(arguments); + * this.__watchers = {}; + * }, + * //override the default set function so we can watch values + * "set":_set, + * //set our callHandlers function + * __callHandlers:_callHandlers, + * //add the watch + * watch:_watch, + * //add the unwatch function + * unwatch:_unwatch + * } + * }) + * + * ``` + * + * Now lets use the mixin + * + * ``` + * var WatchDog = declare([Dog, WatchMixin]); + * + * var watchDog = new WatchDog(); + * //create our handler + * function watch(id, oldVal, newVal) { + * console.log("watchdog's %s was %s, now %s", id, oldVal, newVal); + * } + * + * //watch for property changes + * watchDog.watch("type", watch); + * watchDog.watch("color", watch); + * watchDog.watch("sound", watch); + * + * //now set the properties each handler will be called + * watchDog.set("type", "newDog"); + * watchDog.set("color", "newColor"); + * watchDog.set("sound", "newSound"); + * + * + * //unwatch the property changes + * watchDog.unwatch("type", watch); + * watchDog.unwatch("color", watch); + * watchDog.unwatch("sound", watch); + * + * //no handlers will be called this time + * watchDog.set("type", "newDog"); + * watchDog.set("color", "newColor"); + * watchDog.set("sound", "newSound"); + * + * + * ``` + * + * ###Accessing static methods and properties witin an instance. + * + * To access static properties on an instance use the `_static` property which is a reference to your constructor. + * + * For example if your in your constructor and you want to have configurable default values. + * + * ``` + * consturctor : function constructor(opts){ + * this.opts = opts || {}; + * this._type = opts.type || this._static.DEFAULT_TYPE; + * } + * ``` + * + * + * + * ###Creating a new instance of within an instance. + * + * Often times you want to create a new instance of an object within an instance. If your subclassed however you cannot return a new instance of the parent class as it will not be the right sub class. `declare` provides a way around this by setting the `_static` property on each isntance of the class. + * + * Lets add a reproduce method `Mammal` + * + * ``` + * reproduce : function(options){ + * return new this._static(options); + * } + * ``` + * + * Now in each subclass you can call reproduce and get the proper type. + * + * ``` + * var myDog = new Dog(); + * var myDogsChild = myDog.reproduce(); + * + * myDogsChild instanceof Dog; //true + * ``` + * + * ###Using the `as` + * + * `declare` also provides an `as` method which allows you to add your class to an object or if your using node.js you can pass in `module` and the class will be exported as the module. + * + * ``` + * var animals = {}; + * + * Mammal.as(animals, "Dog"); + * Wolf.as(animals, "Wolf"); + * Dog.as(animals, "Dog"); + * Breed.as(animals, "Breed"); + * + * var myDog = new animals.Dog(); + * + * ``` + * + * Or in node + * + * ``` + * Mammal.as(exports, "Dog"); + * Wolf.as(exports, "Wolf"); + * Dog.as(exports, "Dog"); + * Breed.as(exports, "Breed"); + * + * ``` + * + * To export a class as the `module` in node + * + * ``` + * Mammal.as(module); + * ``` + * + * + */ + function createDeclared() { + var arraySlice = Array.prototype.slice, classCounter = 0, Base, forceNew = new Function(); + + var SUPER_REGEXP = /(super)/g; + + function argsToArray(args, slice) { + slice = slice || 0; + return arraySlice.call(args, slice); + } + + function isArray(obj) { + return Object.prototype.toString.call(obj) === "[object Array]"; + } + + function isObject(obj) { + var undef; + return obj !== null && obj !== undef && typeof obj === "object"; + } + + function isHash(obj) { + var ret = isObject(obj); + return ret && obj.constructor === Object; + } + + var isArguments = function _isArguments(object) { + return Object.prototype.toString.call(object) === '[object Arguments]'; + }; + + if (!isArguments(arguments)) { + isArguments = function _isArguments(obj) { + return !!(obj && obj.hasOwnProperty("callee")); + }; + } + + function indexOf(arr, item) { + if (arr && arr.length) { + for (var i = 0, l = arr.length; i < l; i++) { + if (arr[i] === item) { + return i; + } + } + } + return -1; + } + + function merge(target, source, exclude) { + var name, s; + for (name in source) { + if (source.hasOwnProperty(name) && indexOf(exclude, name) === -1) { + s = source[name]; + if (!(name in target) || (target[name] !== s)) { + target[name] = s; + } + } + } + return target; + } + + function callSuper(args, a) { + var meta = this.__meta, + supers = meta.supers, + l = supers.length, superMeta = meta.superMeta, pos = superMeta.pos; + if (l > pos) { + args = !args ? [] : (!isArguments(args) && !isArray(args)) ? [args] : args; + var name = superMeta.name, f = superMeta.f, m; + do { + m = supers[pos][name]; + if ("function" === typeof m && (m = m._f || m) !== f) { + superMeta.pos = 1 + pos; + return m.apply(this, args); + } + } while (l > ++pos); + } + + return null; + } + + function getSuper() { + var meta = this.__meta, + supers = meta.supers, + l = supers.length, superMeta = meta.superMeta, pos = superMeta.pos; + if (l > pos) { + var name = superMeta.name, f = superMeta.f, m; + do { + m = supers[pos][name]; + if ("function" === typeof m && (m = m._f || m) !== f) { + superMeta.pos = 1 + pos; + return m.bind(this); + } + } while (l > ++pos); + } + return null; + } + + function getter(name) { + var getters = this.__getters__; + if (getters.hasOwnProperty(name)) { + return getters[name].apply(this); + } else { + return this[name]; + } + } + + function setter(name, val) { + var setters = this.__setters__; + if (isHash(name)) { + for (var i in name) { + var prop = name[i]; + if (setters.hasOwnProperty(i)) { + setters[name].call(this, prop); + } else { + this[i] = prop; + } + } + } else { + if (setters.hasOwnProperty(name)) { + return setters[name].apply(this, argsToArray(arguments, 1)); + } else { + return this[name] = val; + } + } + } + + + function defaultFunction() { + var meta = this.__meta || {}, + supers = meta.supers, + l = supers.length, superMeta = meta.superMeta, pos = superMeta.pos; + if (l > pos) { + var name = superMeta.name, f = superMeta.f, m; + do { + m = supers[pos][name]; + if ("function" === typeof m && (m = m._f || m) !== f) { + superMeta.pos = 1 + pos; + return m.apply(this, arguments); + } + } while (l > ++pos); + } + return null; + } + + + function functionWrapper(f, name) { + if (f.toString().match(SUPER_REGEXP)) { + var wrapper = function wrapper() { + var ret, meta = this.__meta || {}; + var orig = meta.superMeta; + meta.superMeta = {f: f, pos: 0, name: name}; + switch (arguments.length) { + case 0: + ret = f.call(this); + break; + case 1: + ret = f.call(this, arguments[0]); + break; + case 2: + ret = f.call(this, arguments[0], arguments[1]); + break; + + case 3: + ret = f.call(this, arguments[0], arguments[1], arguments[2]); + break; + default: + ret = f.apply(this, arguments); + } + meta.superMeta = orig; + return ret; + }; + wrapper._f = f; + return wrapper; + } else { + f._f = f; + return f; + } + } + + function defineMixinProps(child, proto) { + + var operations = proto.setters || {}, __setters = child.__setters__, __getters = child.__getters__; + for (var i in operations) { + if (!__setters.hasOwnProperty(i)) { //make sure that the setter isnt already there + __setters[i] = operations[i]; + } + } + operations = proto.getters || {}; + for (i in operations) { + if (!__getters.hasOwnProperty(i)) { //make sure that the setter isnt already there + __getters[i] = operations[i]; + } + } + for (var j in proto) { + if (j !== "getters" && j !== "setters") { + var p = proto[j]; + if ("function" === typeof p) { + if (!child.hasOwnProperty(j)) { + child[j] = functionWrapper(defaultFunction, j); + } + } else { + child[j] = p; + } + } + } + } + + function mixin() { + var args = argsToArray(arguments), l = args.length; + var child = this.prototype; + var childMeta = child.__meta, thisMeta = this.__meta, bases = child.__meta.bases, staticBases = bases.slice(), + staticSupers = thisMeta.supers || [], supers = childMeta.supers || []; + for (var i = 0; i < l; i++) { + var m = args[i], mProto = m.prototype; + var protoMeta = mProto.__meta, meta = m.__meta; + !protoMeta && (protoMeta = (mProto.__meta = {proto: mProto || {}})); + !meta && (meta = (m.__meta = {proto: m.__proto__ || {}})); + defineMixinProps(child, protoMeta.proto || {}); + defineMixinProps(this, meta.proto || {}); + //copy the bases for static, + + mixinSupers(m.prototype, supers, bases); + mixinSupers(m, staticSupers, staticBases); + } + return this; + } + + function mixinSupers(sup, arr, bases) { + var meta = sup.__meta; + !meta && (meta = (sup.__meta = {})); + var unique = sup.__meta.unique; + !unique && (meta.unique = "declare" + ++classCounter); + //check it we already have this super mixed into our prototype chain + //if true then we have already looped their supers! + if (indexOf(bases, unique) === -1) { + //add their id to our bases + bases.push(unique); + var supers = sup.__meta.supers || [], i = supers.length - 1 || 0; + while (i >= 0) { + mixinSupers(supers[i--], arr, bases); + } + arr.unshift(sup); + } + } + + function defineProps(child, proto) { + var operations = proto.setters, + __setters = child.__setters__, + __getters = child.__getters__; + if (operations) { + for (var i in operations) { + __setters[i] = operations[i]; + } + } + operations = proto.getters || {}; + if (operations) { + for (i in operations) { + __getters[i] = operations[i]; + } + } + for (i in proto) { + if (i != "getters" && i != "setters") { + var f = proto[i]; + if ("function" === typeof f) { + var meta = f.__meta || {}; + if (!meta.isConstructor) { + child[i] = functionWrapper(f, i); + } else { + child[i] = f; + } + } else { + child[i] = f; + } + } + } + + } + + function _export(obj, name) { + if (obj && name) { + obj[name] = this; + } else { + obj.exports = obj = this; + } + return this; + } + + function extend(proto) { + return declare(this, proto); + } + + function getNew(ctor) { + // create object with correct prototype using a do-nothing + // constructor + forceNew.prototype = ctor.prototype; + var t = new forceNew(); + forceNew.prototype = null; // clean up + return t; + } + + + function __declare(child, sup, proto) { + var childProto = {}, supers = []; + var unique = "declare" + ++classCounter, bases = [], staticBases = []; + var instanceSupers = [], staticSupers = []; + var meta = { + supers: instanceSupers, + unique: unique, + bases: bases, + superMeta: { + f: null, + pos: 0, + name: null + } + }; + var childMeta = { + supers: staticSupers, + unique: unique, + bases: staticBases, + isConstructor: true, + superMeta: { + f: null, + pos: 0, + name: null + } + }; + + if (isHash(sup) && !proto) { + proto = sup; + sup = Base; + } + + if ("function" === typeof sup || isArray(sup)) { + supers = isArray(sup) ? sup : [sup]; + sup = supers.shift(); + child.__meta = childMeta; + childProto = getNew(sup); + childProto.__meta = meta; + childProto.__getters__ = merge({}, childProto.__getters__ || {}); + childProto.__setters__ = merge({}, childProto.__setters__ || {}); + child.__getters__ = merge({}, child.__getters__ || {}); + child.__setters__ = merge({}, child.__setters__ || {}); + mixinSupers(sup.prototype, instanceSupers, bases); + mixinSupers(sup, staticSupers, staticBases); + } else { + child.__meta = childMeta; + childProto.__meta = meta; + childProto.__getters__ = childProto.__getters__ || {}; + childProto.__setters__ = childProto.__setters__ || {}; + child.__getters__ = child.__getters__ || {}; + child.__setters__ = child.__setters__ || {}; + } + child.prototype = childProto; + if (proto) { + var instance = meta.proto = proto.instance || {}; + var stat = childMeta.proto = proto.static || {}; + stat.init = stat.init || defaultFunction; + defineProps(childProto, instance); + defineProps(child, stat); + if (!instance.hasOwnProperty("constructor")) { + childProto.constructor = instance.constructor = functionWrapper(defaultFunction, "constructor"); + } else { + childProto.constructor = functionWrapper(instance.constructor, "constructor"); + } + } else { + meta.proto = {}; + childMeta.proto = {}; + child.init = functionWrapper(defaultFunction, "init"); + childProto.constructor = functionWrapper(defaultFunction, "constructor"); + } + if (supers.length) { + mixin.apply(child, supers); + } + if (sup) { + //do this so we mixin our super methods directly but do not ov + merge(child, merge(merge({}, sup), child)); + } + childProto._super = child._super = callSuper; + childProto._getSuper = child._getSuper = getSuper; + childProto._static = child; + } + + function declare(sup, proto) { + function declared() { + switch (arguments.length) { + case 0: + this.constructor.call(this); + break; + case 1: + this.constructor.call(this, arguments[0]); + break; + case 2: + this.constructor.call(this, arguments[0], arguments[1]); + break; + case 3: + this.constructor.call(this, arguments[0], arguments[1], arguments[2]); + break; + default: + this.constructor.apply(this, arguments); + } + } + + __declare(declared, sup, proto); + return declared.init() || declared; + } + + function singleton(sup, proto) { + var retInstance; + + function declaredSingleton() { + if (!retInstance) { + this.constructor.apply(this, arguments); + retInstance = this; + } + return retInstance; + } + + __declare(declaredSingleton, sup, proto); + return declaredSingleton.init() || declaredSingleton; + } + + Base = declare({ + instance: { + "get": getter, + "set": setter + }, + + "static": { + "get": getter, + "set": setter, + mixin: mixin, + extend: extend, + as: _export + } + }); + + declare.singleton = singleton; + return declare; + } + + if (true) { + if ( true && module.exports) { + module.exports = createDeclared(); + } + } else {} +}()); + + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/declare.js/index.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/declare.js/index.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +module.exports = __webpack_require__(/*! ./declare.js */ "./build/cht-core-4-6/node_modules/declare.js/declare.js"); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/extended/index.js": +/*!***********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/extended/index.js ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +(function () { + "use strict"; + /*global extender is, dateExtended*/ + + function defineExtended(extender) { + + + var merge = (function merger() { + function _merge(target, source) { + var name, s; + for (name in source) { + if (source.hasOwnProperty(name)) { + s = source[name]; + if (!(name in target) || (target[name] !== s)) { + target[name] = s; + } + } + } + return target; + } + + return function merge(obj) { + if (!obj) { + obj = {}; + } + for (var i = 1, l = arguments.length; i < l; i++) { + _merge(obj, arguments[i]); + } + return obj; // Object + }; + }()); + + function getExtended() { + + var loaded = {}; + + + //getInitial instance; + var extended = extender.define(); + extended.expose({ + register: function register(alias, extendWith) { + if (!extendWith) { + extendWith = alias; + alias = null; + } + var type = typeof extendWith; + if (alias) { + extended[alias] = extendWith; + } else if (extendWith && type === "function") { + extended.extend(extendWith); + } else if (type === "object") { + extended.expose(extendWith); + } else { + throw new TypeError("extended.register must be called with an extender function"); + } + return extended; + }, + + define: function () { + return extender.define.apply(extender, arguments); + } + }); + + return extended; + } + + function extended() { + return getExtended(); + } + + extended.define = function define() { + return extender.define.apply(extender, arguments); + }; + + return extended; + } + + if (true) { + if ( true && module.exports) { + module.exports = defineExtended(__webpack_require__(/*! extender */ "./build/cht-core-4-6/node_modules/extender/index.js")); + + } + } else {} + +}).call(this); + + + + + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/extender/extender.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/extender/extender.js ***! + \**************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +(function () { + /*jshint strict:false*/ + + + /** + * + * @projectName extender + * @github http://github.com/doug-martin/extender + * @header + * [![build status](https://secure.travis-ci.org/doug-martin/extender.png)](http://travis-ci.org/doug-martin/extender) + * # Extender + * + * `extender` is a library that helps in making chainable APIs, by creating a function that accepts different values and returns an object decorated with functions based on the type. + * + * ## Why Is Extender Different? + * + * Extender is different than normal chaining because is does more than return `this`. It decorates your values in a type safe manner. + * + * For example if you return an array from a string based method then the returned value will be decorated with array methods and not the string methods. This allow you as the developer to focus on your API and not worrying about how to properly build and connect your API. + * + * + * ## Installation + * + * ``` + * npm install extender + * ``` + * + * Or [download the source](https://raw.github.com/doug-martin/extender/master/extender.js) ([minified](https://raw.github.com/doug-martin/extender/master/extender-min.js)) + * + * **Note** `extender` depends on [`declare.js`](http://doug-martin.github.com/declare.js/). + * + * ### Requirejs + * + * To use with requirejs place the `extend` source in the root scripts directory + * + * ```javascript + * + * define(["extender"], function(extender){ + * }); + * + * ``` + * + * + * ## Usage + * + * **`extender.define(tester, decorations)`** + * + * To create your own extender call the `extender.define` function. + * + * This function accepts an optional tester which is used to determine a value should be decorated with the specified `decorations` + * + * ```javascript + * function isString(obj) { + * return !isUndefinedOrNull(obj) && (typeof obj === "string" || obj instanceof String); + * } + * + * + * var myExtender = extender.define(isString, { + * multiply: function (str, times) { + * var ret = str; + * for (var i = 1; i < times; i++) { + * ret += str; + * } + * return ret; + * }, + * toArray: function (str, delim) { + * delim = delim || ""; + * return str.split(delim); + * } + * }); + * + * myExtender("hello").multiply(2).value(); //hellohello + * + * ``` + * + * If you do not specify a tester function and just pass in an object of `functions` then all values passed in will be decorated with methods. + * + * ```javascript + * + * function isUndefined(obj) { + * var undef; + * return obj === undef; + * } + * + * function isUndefinedOrNull(obj) { + * var undef; + * return obj === undef || obj === null; + * } + * + * function isArray(obj) { + * return Object.prototype.toString.call(obj) === "[object Array]"; + * } + * + * function isBoolean(obj) { + * var undef, type = typeof obj; + * return !isUndefinedOrNull(obj) && type === "boolean" || type === "Boolean"; + * } + * + * function isString(obj) { + * return !isUndefinedOrNull(obj) && (typeof obj === "string" || obj instanceof String); + * } + * + * var myExtender = extender.define({ + * isUndefined : isUndefined, + * isUndefinedOrNull : isUndefinedOrNull, + * isArray : isArray, + * isBoolean : isBoolean, + * isString : isString + * }); + * + * ``` + * + * To use + * + * ``` + * var undef; + * myExtender("hello").isUndefined().value(); //false + * myExtender(undef).isUndefined().value(); //true + * ``` + * + * You can also chain extenders so that they accept multiple types and decorates accordingly. + * + * ```javascript + * myExtender + * .define(isArray, { + * pluck: function (arr, m) { + * var ret = []; + * for (var i = 0, l = arr.length; i < l; i++) { + * ret.push(arr[i][m]); + * } + * return ret; + * } + * }) + * .define(isBoolean, { + * invert: function (val) { + * return !val; + * } + * }); + * + * myExtender([{a: "a"},{a: "b"},{a: "c"}]).pluck("a").value(); //["a", "b", "c"] + * myExtender("I love javascript!").toArray(/\s+/).pluck("0"); //["I", "l", "j"] + * + * ``` + * + * Notice that we reuse the same extender as defined above. + * + * **Return Values** + * + * When creating an extender if you return a value from one of the decoration functions then that value will also be decorated. If you do not return any values then the extender will be returned. + * + * **Default decoration methods** + * + * By default every value passed into an extender is decorated with the following methods. + * + * * `value` : The value this extender represents. + * * `eq(otherValue)` : Tests strict equality of the currently represented value to the `otherValue` + * * `neq(oterValue)` : Tests strict inequality of the currently represented value. + * * `print` : logs the current value to the console. + * + * **Extender initialization** + * + * When creating an extender you can also specify a constructor which will be invoked with the current value. + * + * ```javascript + * myExtender.define(isString, { + * constructor : function(val){ + * //set our value to the string trimmed + * this._value = val.trimRight().trimLeft(); + * } + * }); + * ``` + * + * **`noWrap`** + * + * `extender` also allows you to specify methods that should not have the value wrapped providing a cleaner exit function other than `value()`. + * + * For example suppose you have an API that allows you to build a validator, rather than forcing the user to invoke the `value` method you could add a method called `validator` which makes more syntactic sense. + * + * ``` + * + * var myValidator = extender.define({ + * //chainable validation methods + * //... + * //end chainable validation methods + * + * noWrap : { + * validator : function(){ + * //return your validator + * } + * } + * }); + * + * myValidator().isNotNull().isEmailAddress().validator(); //now you dont need to call .value() + * + * + * ``` + * **`extender.extend(extendr)`** + * + * You may also compose extenders through the use of `extender.extend(extender)`, which will return an entirely new extender that is the composition of extenders. + * + * Suppose you have the following two extenders. + * + * ```javascript + * var myExtender = extender + * .define({ + * isFunction: is.function, + * isNumber: is.number, + * isString: is.string, + * isDate: is.date, + * isArray: is.array, + * isBoolean: is.boolean, + * isUndefined: is.undefined, + * isDefined: is.defined, + * isUndefinedOrNull: is.undefinedOrNull, + * isNull: is.null, + * isArguments: is.arguments, + * isInstanceOf: is.instanceOf, + * isRegExp: is.regExp + * }); + * var myExtender2 = extender.define(is.array, { + * pluck: function (arr, m) { + * var ret = []; + * for (var i = 0, l = arr.length; i < l; i++) { + * ret.push(arr[i][m]); + * } + * return ret; + * }, + * + * noWrap: { + * pluckPlain: function (arr, m) { + * var ret = []; + * for (var i = 0, l = arr.length; i < l; i++) { + * ret.push(arr[i][m]); + * } + * return ret; + * } + * } + * }); + * + * + * ``` + * + * And you do not want to alter either of them but instead what to create a third that is the union of the two. + * + * + * ```javascript + * var composed = extender.extend(myExtender).extend(myExtender2); + * ``` + * So now you can use the new extender with the joined functionality if `myExtender` and `myExtender2`. + * + * ```javascript + * var extended = composed([ + * {a: "a"}, + * {a: "b"}, + * {a: "c"} + * ]); + * extended.isArray().value(); //true + * extended.pluck("a").value(); // ["a", "b", "c"]); + * + * ``` + * + * **Note** `myExtender` and `myExtender2` will **NOT** be altered. + * + * **`extender.expose(methods)`** + * + * The `expose` method allows you to add methods to your extender that are not wrapped or automatically chained by exposing them on the extender directly. + * + * ``` + * var isMethods = { + * isFunction: is.function, + * isNumber: is.number, + * isString: is.string, + * isDate: is.date, + * isArray: is.array, + * isBoolean: is.boolean, + * isUndefined: is.undefined, + * isDefined: is.defined, + * isUndefinedOrNull: is.undefinedOrNull, + * isNull: is.null, + * isArguments: is.arguments, + * isInstanceOf: is.instanceOf, + * isRegExp: is.regExp + * }; + * + * var myExtender = extender.define(isMethods).expose(isMethods); + * + * myExtender.isArray([]); //true + * myExtender([]).isArray([]).value(); //true + * + * ``` + * + * + * **Using `instanceof`** + * + * When using extenders you can test if a value is an `instanceof` of an extender by using the instanceof operator. + * + * ```javascript + * var str = myExtender("hello"); + * + * str instanceof myExtender; //true + * ``` + * + * ## Examples + * + * To see more examples click [here](https://github.com/doug-martin/extender/tree/master/examples) + */ + function defineExtender(declare) { + + + var slice = Array.prototype.slice, undef; + + function indexOf(arr, item) { + if (arr && arr.length) { + for (var i = 0, l = arr.length; i < l; i++) { + if (arr[i] === item) { + return i; + } + } + } + return -1; + } + + function isArray(obj) { + return Object.prototype.toString.call(obj) === "[object Array]"; + } + + var merge = (function merger() { + function _merge(target, source, exclude) { + var name, s; + for (name in source) { + if (source.hasOwnProperty(name) && indexOf(exclude, name) === -1) { + s = source[name]; + if (!(name in target) || (target[name] !== s)) { + target[name] = s; + } + } + } + return target; + } + + return function merge(obj) { + if (!obj) { + obj = {}; + } + var l = arguments.length; + var exclude = arguments[arguments.length - 1]; + if (isArray(exclude)) { + l--; + } else { + exclude = []; + } + for (var i = 1; i < l; i++) { + _merge(obj, arguments[i], exclude); + } + return obj; // Object + }; + }()); + + + function extender(supers) { + supers = supers || []; + var Base = declare({ + instance: { + constructor: function (value) { + this._value = value; + }, + + value: function () { + return this._value; + }, + + eq: function eq(val) { + return this["__extender__"](this._value === val); + }, + + neq: function neq(other) { + return this["__extender__"](this._value !== other); + }, + print: function () { + console.log(this._value); + return this; + } + } + }), defined = []; + + function addMethod(proto, name, func) { + if ("function" !== typeof func) { + throw new TypeError("when extending type you must provide a function"); + } + var extendedMethod; + if (name === "constructor") { + extendedMethod = function () { + this._super(arguments); + func.apply(this, arguments); + }; + } else { + extendedMethod = function extendedMethod() { + var args = slice.call(arguments); + args.unshift(this._value); + var ret = func.apply(this, args); + return ret !== undef ? this["__extender__"](ret) : this; + }; + } + proto[name] = extendedMethod; + } + + function addNoWrapMethod(proto, name, func) { + if ("function" !== typeof func) { + throw new TypeError("when extending type you must provide a function"); + } + var extendedMethod; + if (name === "constructor") { + extendedMethod = function () { + this._super(arguments); + func.apply(this, arguments); + }; + } else { + extendedMethod = function extendedMethod() { + var args = slice.call(arguments); + args.unshift(this._value); + return func.apply(this, args); + }; + } + proto[name] = extendedMethod; + } + + function decorateProto(proto, decoration, nowrap) { + for (var i in decoration) { + if (decoration.hasOwnProperty(i)) { + if (i !== "getters" && i !== "setters") { + if (i === "noWrap") { + decorateProto(proto, decoration[i], true); + } else if (nowrap) { + addNoWrapMethod(proto, i, decoration[i]); + } else { + addMethod(proto, i, decoration[i]); + } + } else { + proto[i] = decoration[i]; + } + } + } + } + + function _extender(obj) { + var ret = obj, i, l; + if (!(obj instanceof Base)) { + var OurBase = Base; + for (i = 0, l = defined.length; i < l; i++) { + var definer = defined[i]; + if (definer[0](obj)) { + OurBase = OurBase.extend({instance: definer[1]}); + } + } + ret = new OurBase(obj); + ret["__extender__"] = _extender; + } + return ret; + } + + function always() { + return true; + } + + function define(tester, decorate) { + if (arguments.length) { + if (typeof tester === "object") { + decorate = tester; + tester = always; + } + decorate = decorate || {}; + var proto = {}; + decorateProto(proto, decorate); + //handle browsers like which skip over the constructor while looping + if (!proto.hasOwnProperty("constructor")) { + if (decorate.hasOwnProperty("constructor")) { + addMethod(proto, "constructor", decorate.constructor); + } else { + proto.constructor = function () { + this._super(arguments); + }; + } + } + defined.push([tester, proto]); + } + return _extender; + } + + function extend(supr) { + if (supr && supr.hasOwnProperty("__defined__")) { + _extender["__defined__"] = defined = defined.concat(supr["__defined__"]); + } + merge(_extender, supr, ["define", "extend", "expose", "__defined__"]); + return _extender; + } + + _extender.define = define; + _extender.extend = extend; + _extender.expose = function expose() { + var methods; + for (var i = 0, l = arguments.length; i < l; i++) { + methods = arguments[i]; + if (typeof methods === "object") { + merge(_extender, methods, ["define", "extend", "expose", "__defined__"]); + } + } + return _extender; + }; + _extender["__defined__"] = defined; + + + return _extender; + } + + return { + define: function () { + return extender().define.apply(extender, arguments); + }, + + extend: function (supr) { + return extender().define().extend(supr); + } + }; + + } + + if (true) { + if ( true && module.exports) { + module.exports = defineExtender(__webpack_require__(/*! declare.js */ "./build/cht-core-4-6/node_modules/declare.js/index.js")); + + } + } else {} + +}).call(this); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/extender/index.js": +/*!***********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/extender/index.js ***! + \***********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +module.exports = __webpack_require__(/*! ./extender.js */ "./build/cht-core-4-6/node_modules/extender/extender.js"); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/function-extended/index.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/function-extended/index.js ***! + \********************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +(function () { + "use strict"; + + function defineFunction(extended, is, args) { + + var isArray = is.isArray, + isObject = is.isObject, + isString = is.isString, + isFunction = is.isFunction, + argsToArray = args.argsToArray; + + function spreadArgs(f, args, scope) { + var ret; + switch ((args || []).length) { + case 0: + ret = f.call(scope); + break; + case 1: + ret = f.call(scope, args[0]); + break; + case 2: + ret = f.call(scope, args[0], args[1]); + break; + case 3: + ret = f.call(scope, args[0], args[1], args[2]); + break; + default: + ret = f.apply(scope, args); + } + return ret; + } + + function hitch(scope, method, args) { + args = argsToArray(arguments, 2); + if ((isString(method) && !(method in scope))) { + throw new Error(method + " property not defined in scope"); + } else if (!isString(method) && !isFunction(method)) { + throw new Error(method + " is not a function"); + } + if (isString(method)) { + return function () { + var func = scope[method]; + if (isFunction(func)) { + return spreadArgs(func, args.concat(argsToArray(arguments)), scope); + } else { + return func; + } + }; + } else { + if (args.length) { + return function () { + return spreadArgs(method, args.concat(argsToArray(arguments)), scope); + }; + } else { + + return function () { + return spreadArgs(method, arguments, scope); + }; + } + } + } + + + function applyFirst(method, args) { + args = argsToArray(arguments, 1); + if (!isString(method) && !isFunction(method)) { + throw new Error(method + " must be the name of a property or function to execute"); + } + if (isString(method)) { + return function () { + var scopeArgs = argsToArray(arguments), scope = scopeArgs.shift(); + var func = scope[method]; + if (isFunction(func)) { + scopeArgs = args.concat(scopeArgs); + return spreadArgs(func, scopeArgs, scope); + } else { + return func; + } + }; + } else { + return function () { + var scopeArgs = argsToArray(arguments), scope = scopeArgs.shift(); + scopeArgs = args.concat(scopeArgs); + return spreadArgs(method, scopeArgs, scope); + }; + } + } + + + function hitchIgnore(scope, method, args) { + args = argsToArray(arguments, 2); + if ((isString(method) && !(method in scope))) { + throw new Error(method + " property not defined in scope"); + } else if (!isString(method) && !isFunction(method)) { + throw new Error(method + " is not a function"); + } + if (isString(method)) { + return function () { + var func = scope[method]; + if (isFunction(func)) { + return spreadArgs(func, args, scope); + } else { + return func; + } + }; + } else { + return function () { + return spreadArgs(method, args, scope); + }; + } + } + + + function hitchAll(scope) { + var funcs = argsToArray(arguments, 1); + if (!isObject(scope) && !isFunction(scope)) { + throw new TypeError("scope must be an object"); + } + if (funcs.length === 1 && isArray(funcs[0])) { + funcs = funcs[0]; + } + if (!funcs.length) { + funcs = []; + for (var k in scope) { + if (scope.hasOwnProperty(k) && isFunction(scope[k])) { + funcs.push(k); + } + } + } + for (var i = 0, l = funcs.length; i < l; i++) { + scope[funcs[i]] = hitch(scope, scope[funcs[i]]); + } + return scope; + } + + + function partial(method, args) { + args = argsToArray(arguments, 1); + if (!isString(method) && !isFunction(method)) { + throw new Error(method + " must be the name of a property or function to execute"); + } + if (isString(method)) { + return function () { + var func = this[method]; + if (isFunction(func)) { + var scopeArgs = args.concat(argsToArray(arguments)); + return spreadArgs(func, scopeArgs, this); + } else { + return func; + } + }; + } else { + return function () { + var scopeArgs = args.concat(argsToArray(arguments)); + return spreadArgs(method, scopeArgs, this); + }; + } + } + + function curryFunc(f, execute) { + return function () { + var args = argsToArray(arguments); + return execute ? spreadArgs(f, arguments, this) : function () { + return spreadArgs(f, args.concat(argsToArray(arguments)), this); + }; + }; + } + + + function curry(depth, cb, scope) { + var f; + if (scope) { + f = hitch(scope, cb); + } else { + f = cb; + } + if (depth) { + var len = depth - 1; + for (var i = len; i >= 0; i--) { + f = curryFunc(f, i === len); + } + } + return f; + } + + return extended + .define(isObject, { + bind: hitch, + bindAll: hitchAll, + bindIgnore: hitchIgnore, + curry: function (scope, depth, fn) { + return curry(depth, fn, scope); + } + }) + .define(isFunction, { + bind: function (fn, obj) { + return spreadArgs(hitch, [obj, fn].concat(argsToArray(arguments, 2)), this); + }, + bindIgnore: function (fn, obj) { + return spreadArgs(hitchIgnore, [obj, fn].concat(argsToArray(arguments, 2)), this); + }, + partial: partial, + applyFirst: applyFirst, + curry: function (fn, num, scope) { + return curry(num, fn, scope); + }, + noWrap: { + f: function () { + return this.value(); + } + } + }) + .define(isString, { + bind: function (str, scope) { + return hitch(scope, str); + }, + bindIgnore: function (str, scope) { + return hitchIgnore(scope, str); + }, + partial: partial, + applyFirst: applyFirst, + curry: function (fn, depth, scope) { + return curry(depth, fn, scope); + } + }) + .expose({ + bind: hitch, + bindAll: hitchAll, + bindIgnore: hitchIgnore, + partial: partial, + applyFirst: applyFirst, + curry: curry + }); + + } + + if (true) { + if ( true && module.exports) { + module.exports = defineFunction(__webpack_require__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js"), __webpack_require__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js"), __webpack_require__(/*! arguments-extended */ "./build/cht-core-4-6/node_modules/arguments-extended/index.js")); + + } + } else {} + +}).call(this); + + + + + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/ht/index.js": +/*!*****************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/ht/index.js ***! + \*****************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +(function () { + "use strict"; + + function defineHt(_) { + + + var hashFunction = function (key) { + if (typeof key === "string") { + return key; + } else if (typeof key === "object") { + return key.hashCode ? key.hashCode() : "" + key; + } else { + return "" + key; + } + }; + + var Bucket = _.declare({ + + instance: { + + constructor: function () { + this.__entries = []; + this.__keys = []; + this.__values = []; + }, + + pushValue: function (key, value) { + this.__keys.push(key); + this.__values.push(value); + this.__entries.push({key: key, value: value}); + return value; + }, + + remove: function (key) { + var ret = null, map = this.__entries, val, keys = this.__keys, vals = this.__values; + var i = map.length - 1; + for (; i >= 0; i--) { + if (!!(val = map[i]) && val.key === key) { + map.splice(i, 1); + keys.splice(i, 1); + vals.splice(i, 1); + return val.value; + } + } + return ret; + }, + + "set": function (key, value) { + var ret = null, map = this.__entries, vals = this.__values; + var i = map.length - 1; + for (; i >= 0; i--) { + var val = map[i]; + if (val && key === val.key) { + vals[i] = value; + val.value = value; + ret = value; + break; + } + } + if (!ret) { + map.push({key: key, value: value}); + } + return ret; + }, + + find: function (key) { + var ret = null, map = this.__entries, val; + var i = map.length - 1; + for (; i >= 0; i--) { + val = map[i]; + if (val && key === val.key) { + ret = val.value; + break; + } + } + return ret; + }, + + getEntrySet: function () { + return this.__entries; + }, + + getKeys: function () { + return this.__keys; + }, + + getValues: function (arr) { + return this.__values; + } + } + }); + + return _.declare({ + + instance: { + + constructor: function () { + this.__map = {}; + }, + + entrySet: function () { + var ret = [], map = this.__map; + for (var i in map) { + if (map.hasOwnProperty(i)) { + ret = ret.concat(map[i].getEntrySet()); + } + } + return ret; + }, + + put: function (key, value) { + var hash = hashFunction(key); + var bucket = null; + if (!(bucket = this.__map[hash])) { + bucket = (this.__map[hash] = new Bucket()); + } + bucket.pushValue(key, value); + return value; + }, + + remove: function (key) { + var hash = hashFunction(key), ret = null; + var bucket = this.__map[hash]; + if (bucket) { + ret = bucket.remove(key); + } + return ret; + }, + + "get": function (key) { + var hash = hashFunction(key), ret = null, bucket; + if (!!(bucket = this.__map[hash])) { + ret = bucket.find(key); + } + return ret; + }, + + "set": function (key, value) { + var hash = hashFunction(key), ret = null, bucket = null, map = this.__map; + if (!!(bucket = map[hash])) { + ret = bucket.set(key, value); + } else { + ret = (map[hash] = new Bucket()).pushValue(key, value); + } + return ret; + }, + + contains: function (key) { + var hash = hashFunction(key), ret = false, bucket = null; + if (!!(bucket = this.__map[hash])) { + ret = !!(bucket.find(key)); + } + return ret; + }, + + concat: function (hashTable) { + if (hashTable instanceof this._static) { + var ret = new this._static(); + var otherEntrySet = hashTable.entrySet().concat(this.entrySet()); + for (var i = otherEntrySet.length - 1; i >= 0; i--) { + var e = otherEntrySet[i]; + ret.put(e.key, e.value); + } + return ret; + } else { + throw new TypeError("When joining hashtables the joining arg must be a HashTable"); + } + }, + + filter: function (cb, scope) { + var es = this.entrySet(), ret = new this._static(); + es = _.filter(es, cb, scope); + for (var i = es.length - 1; i >= 0; i--) { + var e = es[i]; + ret.put(e.key, e.value); + } + return ret; + }, + + forEach: function (cb, scope) { + var es = this.entrySet(); + _.forEach(es, cb, scope); + }, + + every: function (cb, scope) { + var es = this.entrySet(); + return _.every(es, cb, scope); + }, + + map: function (cb, scope) { + var es = this.entrySet(); + return _.map(es, cb, scope); + }, + + some: function (cb, scope) { + var es = this.entrySet(); + return _.some(es, cb, scope); + }, + + reduce: function (cb, scope) { + var es = this.entrySet(); + return _.reduce(es, cb, scope); + }, + + reduceRight: function (cb, scope) { + var es = this.entrySet(); + return _.reduceRight(es, cb, scope); + }, + + clear: function () { + this.__map = {}; + }, + + keys: function () { + var ret = [], map = this.__map; + for (var i in map) { + //if (map.hasOwnProperty(i)) { + ret = ret.concat(map[i].getKeys()); + //} + } + return ret; + }, + + values: function () { + var ret = [], map = this.__map; + for (var i in map) { + //if (map.hasOwnProperty(i)) { + ret = ret.concat(map[i].getValues()); + //} + } + return ret; + }, + + isEmpty: function () { + return this.keys().length === 0; + } + } + + }); + + + } + + if (true) { + if ( true && module.exports) { + module.exports = defineHt(__webpack_require__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js")().register("declare", __webpack_require__(/*! declare.js */ "./build/cht-core-4-6/node_modules/declare.js/index.js")).register(__webpack_require__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js")).register(__webpack_require__(/*! array-extended */ "./build/cht-core-4-6/node_modules/array-extended/index.js"))); + + } + } else {} + +}).call(this); + + + + + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/is-buffer/index.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/is-buffer/index.js ***! + \************************************************************/ +/***/ ((module) => { + +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ + +// The _isBuffer check is for Safari 5-7 support, because it's missing +// Object.prototype.constructor. Remove this eventually +module.exports = function (obj) { + return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) +} + +function isBuffer (obj) { + return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) +} + +// For Node v0.10 support. Remove this eventually. +function isSlowBuffer (obj) { + return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/is-extended/index.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/is-extended/index.js ***! + \**************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +(function () { + "use strict"; + + function defineIsa(extended) { + + var pSlice = Array.prototype.slice; + + var hasOwn = Object.prototype.hasOwnProperty; + var toStr = Object.prototype.toString; + + function argsToArray(args, slice) { + var i = -1, j = 0, l = args.length, ret = []; + slice = slice || 0; + i += slice; + while (++i < l) { + ret[j++] = args[i]; + } + return ret; + } + + function keys(obj) { + var ret = []; + for (var i in obj) { + if (hasOwn.call(obj, i)) { + ret.push(i); + } + } + return ret; + } + + //taken from node js assert.js + //https://github.com/joyent/node/blob/master/lib/assert.js + function deepEqual(actual, expected) { + // 7.1. All identical values are equivalent, as determined by ===. + if (actual === expected) { + return true; + + } else if (typeof Buffer !== "undefined" && Buffer.isBuffer(actual) && Buffer.isBuffer(expected)) { + if (actual.length !== expected.length) { + return false; + } + for (var i = 0; i < actual.length; i++) { + if (actual[i] !== expected[i]) { + return false; + } + } + return true; + + // 7.2. If the expected value is a Date object, the actual value is + // equivalent if it is also a Date object that refers to the same time. + } else if (isDate(actual) && isDate(expected)) { + return actual.getTime() === expected.getTime(); + + // 7.3 If the expected value is a RegExp object, the actual value is + // equivalent if it is also a RegExp object with the same source and + // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`). + } else if (isRegExp(actual) && isRegExp(expected)) { + return actual.source === expected.source && + actual.global === expected.global && + actual.multiline === expected.multiline && + actual.lastIndex === expected.lastIndex && + actual.ignoreCase === expected.ignoreCase; + + // 7.4. Other pairs that do not both pass typeof value == 'object', + // equivalence is determined by ==. + } else if (isString(actual) && isString(expected) && actual !== expected) { + return false; + } else if (typeof actual !== 'object' && typeof expected !== 'object') { + return actual === expected; + + // 7.5 For all other Object pairs, including Array objects, equivalence is + // determined by having the same number of owned properties (as verified + // with Object.prototype.hasOwnProperty.call), the same set of keys + // (although not necessarily the same order), equivalent values for every + // corresponding key, and an identical 'prototype' property. Note: this + // accounts for both named and indexed properties on Arrays. + } else { + return objEquiv(actual, expected); + } + } + + + function objEquiv(a, b) { + var key; + if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) { + return false; + } + // an identical 'prototype' property. + if (a.prototype !== b.prototype) { + return false; + } + //~~~I've managed to break Object.keys through screwy arguments passing. + // Converting to array solves the problem. + if (isArguments(a)) { + if (!isArguments(b)) { + return false; + } + a = pSlice.call(a); + b = pSlice.call(b); + return deepEqual(a, b); + } + try { + var ka = keys(a), + kb = keys(b), + i; + // having the same number of owned properties (keys incorporates + // hasOwnProperty) + if (ka.length !== kb.length) { + return false; + } + //the same set of keys (although not necessarily the same order), + ka.sort(); + kb.sort(); + //~~~cheap key test + for (i = ka.length - 1; i >= 0; i--) { + if (ka[i] !== kb[i]) { + return false; + } + } + //equivalent values for every corresponding key, and + //~~~possibly expensive deep test + for (i = ka.length - 1; i >= 0; i--) { + key = ka[i]; + if (!deepEqual(a[key], b[key])) { + return false; + } + } + } catch (e) {//happens when one is a string literal and the other isn't + return false; + } + return true; + } + + + var isFunction = function (obj) { + return toStr.call(obj) === '[object Function]'; + }; + + //ie hack + if ("undefined" !== typeof window && !isFunction(window.alert)) { + (function (alert) { + isFunction = function (obj) { + return toStr.call(obj) === '[object Function]' || obj === alert; + }; + }(window.alert)); + } + + function isObject(obj) { + var undef; + return obj !== null && typeof obj === "object"; + } + + function isHash(obj) { + var ret = isObject(obj); + return ret && obj.constructor === Object && !obj.nodeType && !obj.setInterval; + } + + function isEmpty(object) { + if (isArguments(object)) { + return object.length === 0; + } else if (isObject(object)) { + return keys(object).length === 0; + } else if (isString(object) || isArray(object)) { + return object.length === 0; + } + return true; + } + + function isBoolean(obj) { + return obj === true || obj === false || toStr.call(obj) === "[object Boolean]"; + } + + function isUndefined(obj) { + return typeof obj === 'undefined'; + } + + function isDefined(obj) { + return !isUndefined(obj); + } + + function isUndefinedOrNull(obj) { + return isUndefined(obj) || isNull(obj); + } + + function isNull(obj) { + return obj === null; + } + + + var isArguments = function _isArguments(object) { + return toStr.call(object) === '[object Arguments]'; + }; + + if (!isArguments(arguments)) { + isArguments = function _isArguments(obj) { + return !!(obj && hasOwn.call(obj, "callee")); + }; + } + + + function isInstanceOf(obj, clazz) { + if (isFunction(clazz)) { + return obj instanceof clazz; + } else { + return false; + } + } + + function isRegExp(obj) { + return toStr.call(obj) === '[object RegExp]'; + } + + var isArray = Array.isArray || function isArray(obj) { + return toStr.call(obj) === "[object Array]"; + }; + + function isDate(obj) { + return toStr.call(obj) === '[object Date]'; + } + + function isString(obj) { + return toStr.call(obj) === '[object String]'; + } + + function isNumber(obj) { + return toStr.call(obj) === '[object Number]'; + } + + function isTrue(obj) { + return obj === true; + } + + function isFalse(obj) { + return obj === false; + } + + function isNotNull(obj) { + return !isNull(obj); + } + + function isEq(obj, obj2) { + /*jshint eqeqeq:false*/ + return obj == obj2; + } + + function isNeq(obj, obj2) { + /*jshint eqeqeq:false*/ + return obj != obj2; + } + + function isSeq(obj, obj2) { + return obj === obj2; + } + + function isSneq(obj, obj2) { + return obj !== obj2; + } + + function isIn(obj, arr) { + if ((isArray(arr) && Array.prototype.indexOf) || isString(arr)) { + return arr.indexOf(obj) > -1; + } else if (isArray(arr)) { + for (var i = 0, l = arr.length; i < l; i++) { + if (isEq(obj, arr[i])) { + return true; + } + } + } + return false; + } + + function isNotIn(obj, arr) { + return !isIn(obj, arr); + } + + function isLt(obj, obj2) { + return obj < obj2; + } + + function isLte(obj, obj2) { + return obj <= obj2; + } + + function isGt(obj, obj2) { + return obj > obj2; + } + + function isGte(obj, obj2) { + return obj >= obj2; + } + + function isLike(obj, reg) { + if (isString(reg)) { + return ("" + obj).match(reg) !== null; + } else if (isRegExp(reg)) { + return reg.test(obj); + } + return false; + } + + function isNotLike(obj, reg) { + return !isLike(obj, reg); + } + + function contains(arr, obj) { + return isIn(obj, arr); + } + + function notContains(arr, obj) { + return !isIn(obj, arr); + } + + function containsAt(arr, obj, index) { + if (isArray(arr) && arr.length > index) { + return isEq(arr[index], obj); + } + return false; + } + + function notContainsAt(arr, obj, index) { + if (isArray(arr)) { + return !isEq(arr[index], obj); + } + return false; + } + + function has(obj, prop) { + return hasOwn.call(obj, prop); + } + + function notHas(obj, prop) { + return !has(obj, prop); + } + + function length(obj, l) { + if (has(obj, "length")) { + return obj.length === l; + } + return false; + } + + function notLength(obj, l) { + if (has(obj, "length")) { + return obj.length !== l; + } + return false; + } + + var isa = { + isFunction: isFunction, + isObject: isObject, + isEmpty: isEmpty, + isHash: isHash, + isNumber: isNumber, + isString: isString, + isDate: isDate, + isArray: isArray, + isBoolean: isBoolean, + isUndefined: isUndefined, + isDefined: isDefined, + isUndefinedOrNull: isUndefinedOrNull, + isNull: isNull, + isArguments: isArguments, + instanceOf: isInstanceOf, + isRegExp: isRegExp, + deepEqual: deepEqual, + isTrue: isTrue, + isFalse: isFalse, + isNotNull: isNotNull, + isEq: isEq, + isNeq: isNeq, + isSeq: isSeq, + isSneq: isSneq, + isIn: isIn, + isNotIn: isNotIn, + isLt: isLt, + isLte: isLte, + isGt: isGt, + isGte: isGte, + isLike: isLike, + isNotLike: isNotLike, + contains: contains, + notContains: notContains, + has: has, + notHas: notHas, + isLength: length, + isNotLength: notLength, + containsAt: containsAt, + notContainsAt: notContainsAt + }; + + var tester = { + constructor: function () { + this._testers = []; + }, + + noWrap: { + tester: function () { + var testers = this._testers; + return function tester(value) { + var isa = false; + for (var i = 0, l = testers.length; i < l && !isa; i++) { + isa = testers[i](value); + } + return isa; + }; + } + } + }; + + var switcher = { + constructor: function () { + this._cases = []; + this.__default = null; + }, + + def: function (val, fn) { + this.__default = fn; + }, + + noWrap: { + switcher: function () { + var testers = this._cases, __default = this.__default; + return function tester() { + var handled = false, args = argsToArray(arguments), caseRet; + for (var i = 0, l = testers.length; i < l && !handled; i++) { + caseRet = testers[i](args); + if (caseRet.length > 1) { + if (caseRet[1] || caseRet[0]) { + return caseRet[1]; + } + } + } + if (!handled && __default) { + return __default.apply(this, args); + } + }; + } + } + }; + + function addToTester(func) { + tester[func] = function isaTester() { + this._testers.push(isa[func]); + }; + } + + function addToSwitcher(func) { + switcher[func] = function isaTester() { + var args = argsToArray(arguments, 1), isFunc = isa[func], handler, doBreak = true; + if (args.length <= isFunc.length - 1) { + throw new TypeError("A handler must be defined when calling using switch"); + } else { + handler = args.pop(); + if (isBoolean(handler)) { + doBreak = handler; + handler = args.pop(); + } + } + if (!isFunction(handler)) { + throw new TypeError("handler must be defined"); + } + this._cases.push(function (testArgs) { + if (isFunc.apply(isa, testArgs.concat(args))) { + return [doBreak, handler.apply(this, testArgs)]; + } + return [false]; + }); + }; + } + + for (var i in isa) { + if (hasOwn.call(isa, i)) { + addToSwitcher(i); + addToTester(i); + } + } + + var is = extended.define(isa).expose(isa); + is.tester = extended.define(tester); + is.switcher = extended.define(switcher); + return is; + + } + + if (true) { + if ( true && module.exports) { + module.exports = defineIsa(__webpack_require__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js")); + + } + } else {} + +}).call(this); + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/leafy/index.js": +/*!********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/leafy/index.js ***! + \********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +(function () { + "use strict"; + + function defineLeafy(_) { + + function compare(a, b) { + var ret = 0; + if (a > b) { + return 1; + } else if (a < b) { + return -1; + } else if (!b) { + return 1; + } + return ret; + } + + var multiply = _.multiply; + + var Tree = _.declare({ + + instance: { + + /** + * Prints a node + * @param node node to print + * @param level the current level the node is at, Used for formatting + */ + __printNode: function (node, level) { + //console.log(level); + var str = []; + if (_.isUndefinedOrNull(node)) { + str.push(multiply('\t', level)); + str.push("~"); + console.log(str.join("")); + } else { + this.__printNode(node.right, level + 1); + str.push(multiply('\t', level)); + str.push(node.data + "\n"); + console.log(str.join("")); + this.__printNode(node.left, level + 1); + } + }, + + constructor: function (options) { + options = options || {}; + this.compare = options.compare || compare; + this.__root = null; + }, + + insert: function () { + throw new Error("Not Implemented"); + }, + + remove: function () { + throw new Error("Not Implemented"); + }, + + clear: function () { + this.__root = null; + }, + + isEmpty: function () { + return !(this.__root); + }, + + traverseWithCondition: function (node, order, callback) { + var cont = true; + if (node) { + order = order || Tree.PRE_ORDER; + if (order === Tree.PRE_ORDER) { + cont = callback(node.data); + if (cont) { + cont = this.traverseWithCondition(node.left, order, callback); + if (cont) { + cont = this.traverseWithCondition(node.right, order, callback); + } + + } + } else if (order === Tree.IN_ORDER) { + cont = this.traverseWithCondition(node.left, order, callback); + if (cont) { + cont = callback(node.data); + if (cont) { + cont = this.traverseWithCondition(node.right, order, callback); + } + } + } else if (order === Tree.POST_ORDER) { + cont = this.traverseWithCondition(node.left, order, callback); + if (cont) { + if (cont) { + cont = this.traverseWithCondition(node.right, order, callback); + } + if (cont) { + cont = callback(node.data); + } + } + } else if (order === Tree.REVERSE_ORDER) { + cont = this.traverseWithCondition(node.right, order, callback); + if (cont) { + cont = callback(node.data); + if (cont) { + cont = this.traverseWithCondition(node.left, order, callback); + } + } + } + } + return cont; + }, + + traverse: function (node, order, callback) { + if (node) { + order = order || Tree.PRE_ORDER; + if (order === Tree.PRE_ORDER) { + callback(node.data); + this.traverse(node.left, order, callback); + this.traverse(node.right, order, callback); + } else if (order === Tree.IN_ORDER) { + this.traverse(node.left, order, callback); + callback(node.data); + this.traverse(node.right, order, callback); + } else if (order === Tree.POST_ORDER) { + this.traverse(node.left, order, callback); + this.traverse(node.right, order, callback); + callback(node.data); + } else if (order === Tree.REVERSE_ORDER) { + this.traverse(node.right, order, callback); + callback(node.data); + this.traverse(node.left, order, callback); + + } + } + }, + + forEach: function (cb, scope, order) { + if (typeof cb !== "function") { + throw new TypeError(); + } + order = order || Tree.IN_ORDER; + scope = scope || this; + this.traverse(this.__root, order, function (node) { + cb.call(scope, node, this); + }); + }, + + map: function (cb, scope, order) { + if (typeof cb !== "function") { + throw new TypeError(); + } + + order = order || Tree.IN_ORDER; + scope = scope || this; + var ret = new this._static(); + this.traverse(this.__root, order, function (node) { + ret.insert(cb.call(scope, node, this)); + }); + return ret; + }, + + filter: function (cb, scope, order) { + if (typeof cb !== "function") { + throw new TypeError(); + } + + order = order || Tree.IN_ORDER; + scope = scope || this; + var ret = new this._static(); + this.traverse(this.__root, order, function (node) { + if (cb.call(scope, node, this)) { + ret.insert(node); + } + }); + return ret; + }, + + reduce: function (fun, accumulator, order) { + var arr = this.toArray(order); + var args = [arr, fun]; + if (!_.isUndefinedOrNull(accumulator)) { + args.push(accumulator); + } + return _.reduce.apply(_, args); + }, + + reduceRight: function (fun, accumulator, order) { + var arr = this.toArray(order); + var args = [arr, fun]; + if (!_.isUndefinedOrNull(accumulator)) { + args.push(accumulator); + } + return _.reduceRight.apply(_, args); + }, + + every: function (cb, scope, order) { + if (typeof cb !== "function") { + throw new TypeError(); + } + order = order || Tree.IN_ORDER; + scope = scope || this; + var ret = false; + this.traverseWithCondition(this.__root, order, function (node) { + ret = cb.call(scope, node, this); + return ret; + }); + return ret; + }, + + some: function (cb, scope, order) { + if (typeof cb !== "function") { + throw new TypeError(); + } + + order = order || Tree.IN_ORDER; + scope = scope || this; + var ret; + this.traverseWithCondition(this.__root, order, function (node) { + ret = cb.call(scope, node, this); + return !ret; + }); + return ret; + }, + + toArray: function (order) { + order = order || Tree.IN_ORDER; + var arr = []; + this.traverse(this.__root, order, function (node) { + arr.push(node); + }); + return arr; + }, + + contains: function (value) { + var ret = false; + var root = this.__root; + while (root !== null) { + var cmp = this.compare(value, root.data); + if (cmp) { + root = root[(cmp === -1) ? "left" : "right"]; + } else { + ret = true; + root = null; + } + } + return ret; + }, + + find: function (value) { + var ret; + var root = this.__root; + while (root) { + var cmp = this.compare(value, root.data); + if (cmp) { + root = root[(cmp === -1) ? "left" : "right"]; + } else { + ret = root.data; + break; + } + } + return ret; + }, + + findLessThan: function (value, exclusive) { + //find a better way!!!! + var ret = [], compare = this.compare; + this.traverseWithCondition(this.__root, Tree.IN_ORDER, function (v) { + var cmp = compare(value, v); + if ((!exclusive && cmp === 0) || cmp === 1) { + ret.push(v); + return true; + } else { + return false; + } + }); + return ret; + }, + + findGreaterThan: function (value, exclusive) { + //find a better way!!!! + var ret = [], compare = this.compare; + this.traverse(this.__root, Tree.REVERSE_ORDER, function (v) { + var cmp = compare(value, v); + if ((!exclusive && cmp === 0) || cmp === -1) { + ret.push(v); + return true; + } else { + return false; + } + }); + return ret; + }, + + print: function () { + this.__printNode(this.__root, 0); + } + }, + + "static": { + PRE_ORDER: "pre_order", + IN_ORDER: "in_order", + POST_ORDER: "post_order", + REVERSE_ORDER: "reverse_order" + } + }); + + var AVLTree = (function () { + var abs = Math.abs; + + + var makeNode = function (data) { + return { + data: data, + balance: 0, + left: null, + right: null + }; + }; + + var rotateSingle = function (root, dir, otherDir) { + var save = root[otherDir]; + root[otherDir] = save[dir]; + save[dir] = root; + return save; + }; + + + var rotateDouble = function (root, dir, otherDir) { + root[otherDir] = rotateSingle(root[otherDir], otherDir, dir); + return rotateSingle(root, dir, otherDir); + }; + + var adjustBalance = function (root, dir, bal) { + var otherDir = dir === "left" ? "right" : "left"; + var n = root[dir], nn = n[otherDir]; + if (nn.balance === 0) { + root.balance = n.balance = 0; + } else if (nn.balance === bal) { + root.balance = -bal; + n.balance = 0; + } else { /* nn.balance == -bal */ + root.balance = 0; + n.balance = bal; + } + nn.balance = 0; + }; + + var insertAdjustBalance = function (root, dir) { + var otherDir = dir === "left" ? "right" : "left"; + + var n = root[dir]; + var bal = dir === "right" ? -1 : +1; + + if (n.balance === bal) { + root.balance = n.balance = 0; + root = rotateSingle(root, otherDir, dir); + } else { + adjustBalance(root, dir, bal); + root = rotateDouble(root, otherDir, dir); + } + + return root; + + }; + + var removeAdjustBalance = function (root, dir, done) { + var otherDir = dir === "left" ? "right" : "left"; + var n = root[otherDir]; + var bal = dir === "right" ? -1 : 1; + if (n.balance === -bal) { + root.balance = n.balance = 0; + root = rotateSingle(root, dir, otherDir); + } else if (n.balance === bal) { + adjustBalance(root, otherDir, -bal); + root = rotateDouble(root, dir, otherDir); + } else { /* n.balance == 0 */ + root.balance = -bal; + n.balance = bal; + root = rotateSingle(root, dir, otherDir); + done.done = true; + } + return root; + }; + + function insert(tree, data, cmp) { + /* Empty tree case */ + var root = tree.__root; + if (root === null || root === undefined) { + tree.__root = makeNode(data); + } else { + var it = root, upd = [], up = [], top = 0, dir; + while (true) { + dir = upd[top] = cmp(data, it.data) === -1 ? "left" : "right"; + up[top++] = it; + if (!it[dir]) { + it[dir] = makeNode(data); + break; + } + it = it[dir]; + } + if (!it[dir]) { + return null; + } + while (--top >= 0) { + up[top].balance += upd[top] === "right" ? -1 : 1; + if (up[top].balance === 0) { + break; + } else if (abs(up[top].balance) > 1) { + up[top] = insertAdjustBalance(up[top], upd[top]); + if (top !== 0) { + up[top - 1][upd[top - 1]] = up[top]; + } else { + tree.__root = up[0]; + } + break; + } + } + } + } + + function remove(tree, data, cmp) { + var root = tree.__root; + if (root !== null && root !== undefined) { + var it = root, top = 0, up = [], upd = [], done = {done: false}, dir, compare; + while (true) { + if (!it) { + return; + } else if ((compare = cmp(data, it.data)) === 0) { + break; + } + dir = upd[top] = compare === -1 ? "left" : "right"; + up[top++] = it; + it = it[dir]; + } + var l = it.left, r = it.right; + if (!l || !r) { + dir = !l ? "right" : "left"; + if (top !== 0) { + up[top - 1][upd[top - 1]] = it[dir]; + } else { + tree.__root = it[dir]; + } + } else { + var heir = l; + upd[top] = "left"; + up[top++] = it; + while (heir.right) { + upd[top] = "right"; + up[top++] = heir; + heir = heir.right; + } + it.data = heir.data; + up[top - 1][up[top - 1] === it ? "left" : "right"] = heir.left; + } + while (--top >= 0 && !done.done) { + up[top].balance += upd[top] === "left" ? -1 : +1; + if (abs(up[top].balance) === 1) { + break; + } else if (abs(up[top].balance) > 1) { + up[top] = removeAdjustBalance(up[top], upd[top], done); + if (top !== 0) { + up[top - 1][upd[top - 1]] = up[top]; + } else { + tree.__root = up[0]; + } + } + } + } + } + + + return Tree.extend({ + instance: { + + insert: function (data) { + insert(this, data, this.compare); + }, + + + remove: function (data) { + remove(this, data, this.compare); + }, + + __printNode: function (node, level) { + var str = []; + if (!node) { + str.push(multiply('\t', level)); + str.push("~"); + console.log(str.join("")); + } else { + this.__printNode(node.right, level + 1); + str.push(multiply('\t', level)); + str.push(node.data + ":" + node.balance + "\n"); + console.log(str.join("")); + this.__printNode(node.left, level + 1); + } + } + + } + }); + }()); + + var AnderssonTree = (function () { + + var nil = {level: 0, data: null}; + + function makeNode(data, level) { + return { + data: data, + level: level, + left: nil, + right: nil + }; + } + + function skew(root) { + if (root.level !== 0 && root.left.level === root.level) { + var save = root.left; + root.left = save.right; + save.right = root; + root = save; + } + return root; + } + + function split(root) { + if (root.level !== 0 && root.right.right.level === root.level) { + var save = root.right; + root.right = save.left; + save.left = root; + root = save; + root.level++; + } + return root; + } + + function insert(root, data, compare) { + if (root === nil) { + root = makeNode(data, 1); + } + else { + var dir = compare(data, root.data) === -1 ? "left" : "right"; + root[dir] = insert(root[dir], data, compare); + root = skew(root); + root = split(root); + } + return root; + } + + var remove = function (root, data, compare) { + var rLeft, rRight; + if (root !== nil) { + var cmp = compare(data, root.data); + if (cmp === 0) { + rLeft = root.left, rRight = root.right; + if (rLeft !== nil && rRight !== nil) { + var heir = rLeft; + while (heir.right !== nil) { + heir = heir.right; + } + root.data = heir.data; + root.left = remove(rLeft, heir.data, compare); + } else { + root = root[rLeft === nil ? "right" : "left"]; + } + } else { + var dir = cmp === -1 ? "left" : "right"; + root[dir] = remove(root[dir], data, compare); + } + } + if (root !== nil) { + var rLevel = root.level; + var rLeftLevel = root.left.level, rRightLevel = root.right.level; + if (rLeftLevel < rLevel - 1 || rRightLevel < rLevel - 1) { + if (rRightLevel > --root.level) { + root.right.level = root.level; + } + root = skew(root); + root = split(root); + } + } + return root; + }; + + return Tree.extend({ + + instance: { + + isEmpty: function () { + return this.__root === nil || this._super(arguments); + }, + + insert: function (data) { + if (!this.__root) { + this.__root = nil; + } + this.__root = insert(this.__root, data, this.compare); + }, + + remove: function (data) { + this.__root = remove(this.__root, data, this.compare); + }, + + + traverseWithCondition: function (node) { + var cont = true; + if (node !== nil) { + return this._super(arguments); + } + return cont; + }, + + + traverse: function (node) { + if (node !== nil) { + this._super(arguments); + } + }, + + contains: function () { + if (this.__root !== nil) { + return this._super(arguments); + } + return false; + }, + + __printNode: function (node, level) { + var str = []; + if (!node || !node.data) { + str.push(multiply('\t', level)); + str.push("~"); + console.log(str.join("")); + } else { + this.__printNode(node.right, level + 1); + str.push(multiply('\t', level)); + str.push(node.data + ":" + node.level + "\n"); + console.log(str.join("")); + this.__printNode(node.left, level + 1); + } + } + + } + + }); + }()); + + var BinaryTree = Tree.extend({ + instance: { + insert: function (data) { + if (!this.__root) { + this.__root = { + data: data, + parent: null, + left: null, + right: null + }; + return this.__root; + } + var compare = this.compare; + var root = this.__root; + while (root !== null) { + var cmp = compare(data, root.data); + if (cmp) { + var leaf = (cmp === -1) ? "left" : "right"; + var next = root[leaf]; + if (!next) { + return (root[leaf] = {data: data, parent: root, left: null, right: null}); + } else { + root = next; + } + } else { + return; + } + } + }, + + remove: function (data) { + if (this.__root !== null) { + var head = {right: this.__root}, it = head; + var p, f = null; + var dir = "right"; + while (it[dir] !== null) { + p = it; + it = it[dir]; + var cmp = this.compare(data, it.data); + if (!cmp) { + f = it; + } + dir = (cmp === -1 ? "left" : "right"); + } + if (f !== null) { + f.data = it.data; + p[p.right === it ? "right" : "left"] = it[it.left === null ? "right" : "left"]; + } + this.__root = head.right; + } + + } + } + }); + + var RedBlackTree = (function () { + var RED = "RED", BLACK = "BLACK"; + + var isRed = function (node) { + return node !== null && node.red; + }; + + var makeNode = function (data) { + return { + data: data, + red: true, + left: null, + right: null + }; + }; + + var insert = function (root, data, compare) { + if (!root) { + return makeNode(data); + + } else { + var cmp = compare(data, root.data); + if (cmp) { + var dir = cmp === -1 ? "left" : "right"; + var otherDir = dir === "left" ? "right" : "left"; + root[dir] = insert(root[dir], data, compare); + var node = root[dir]; + + if (isRed(node)) { + + var sibling = root[otherDir]; + if (isRed(sibling)) { + /* Case 1 */ + root.red = true; + node.red = false; + sibling.red = false; + } else { + + if (isRed(node[dir])) { + + root = rotateSingle(root, otherDir); + } else if (isRed(node[otherDir])) { + + root = rotateDouble(root, otherDir); + } + } + + } + } + } + return root; + }; + + var rotateSingle = function (root, dir) { + var otherDir = dir === "left" ? "right" : "left"; + var save = root[otherDir]; + root[otherDir] = save[dir]; + save[dir] = root; + root.red = true; + save.red = false; + return save; + }; + + var rotateDouble = function (root, dir) { + var otherDir = dir === "left" ? "right" : "left"; + root[otherDir] = rotateSingle(root[otherDir], otherDir); + return rotateSingle(root, dir); + }; + + + var remove = function (root, data, done, compare) { + if (!root) { + done.done = true; + } else { + var dir; + if (compare(data, root.data) === 0) { + if (!root.left || !root.right) { + var save = root[!root.left ? "right" : "left"]; + /* Case 0 */ + if (isRed(root)) { + done.done = true; + } else if (isRed(save)) { + save.red = false; + done.done = true; + } + return save; + } + else { + var heir = root.right, p; + while (heir.left !== null) { + p = heir; + heir = heir.left; + } + if (p) { + p.left = null; + } + root.data = heir.data; + data = heir.data; + } + } + dir = compare(data, root.data) === -1 ? "left" : "right"; + root[dir] = remove(root[dir], data, done, compare); + if (!done.done) { + root = removeBalance(root, dir, done); + } + } + return root; + }; + + var removeBalance = function (root, dir, done) { + var notDir = dir === "left" ? "right" : "left"; + var p = root, s = p[notDir]; + if (isRed(s)) { + root = rotateSingle(root, dir); + s = p[notDir]; + } + if (s !== null) { + if (!isRed(s.left) && !isRed(s.right)) { + if (isRed(p)) { + done.done = true; + } + p.red = 0; + s.red = 1; + } else { + var save = p.red, newRoot = ( root === p ); + p = (isRed(s[notDir]) ? rotateSingle : rotateDouble)(p, dir); + p.red = save; + p.left.red = p.right.red = 0; + if (newRoot) { + root = p; + } else { + root[dir] = p; + } + done.done = true; + } + } + return root; + }; + + return Tree.extend({ + instance: { + insert: function (data) { + this.__root = insert(this.__root, data, this.compare); + this.__root.red = false; + }, + + remove: function (data) { + var done = {done: false}; + var root = remove(this.__root, data, done, this.compare); + if (root !== null) { + root.red = 0; + } + this.__root = root; + return data; + }, + + + __printNode: function (node, level) { + var str = []; + if (!node) { + str.push(multiply('\t', level)); + str.push("~"); + console.log(str.join("")); + } else { + this.__printNode(node.right, level + 1); + str.push(multiply('\t', level)); + str.push((node.red ? RED : BLACK) + ":" + node.data + "\n"); + console.log(str.join("")); + this.__printNode(node.left, level + 1); + } + } + + } + }); + + }()); + + + return { + Tree: Tree, + AVLTree: AVLTree, + AnderssonTree: AnderssonTree, + BinaryTree: BinaryTree, + RedBlackTree: RedBlackTree, + IN_ORDER: Tree.IN_ORDER, + PRE_ORDER: Tree.PRE_ORDER, + POST_ORDER: Tree.POST_ORDER, + REVERSE_ORDER: Tree.REVERSE_ORDER + + }; + } + + if (true) { + if ( true && module.exports) { + module.exports = defineLeafy(__webpack_require__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js")() + .register("declare", __webpack_require__(/*! declare.js */ "./build/cht-core-4-6/node_modules/declare.js/index.js")) + .register(__webpack_require__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js")) + .register(__webpack_require__(/*! array-extended */ "./build/cht-core-4-6/node_modules/array-extended/index.js")) + .register(__webpack_require__(/*! string-extended */ "./build/cht-core-4-6/node_modules/string-extended/index.js")) + ); + + } + } else {} + +}).call(this); + + + + + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_DataView.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_DataView.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var getNative = __webpack_require__(/*! ./_getNative */ "./build/cht-core-4-6/node_modules/lodash/_getNative.js"), + root = __webpack_require__(/*! ./_root */ "./build/cht-core-4-6/node_modules/lodash/_root.js"); + +/* Built-in method references that are verified to be native. */ +var DataView = getNative(root, 'DataView'); + +module.exports = DataView; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_Hash.js": +/*!*********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_Hash.js ***! + \*********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var hashClear = __webpack_require__(/*! ./_hashClear */ "./build/cht-core-4-6/node_modules/lodash/_hashClear.js"), + hashDelete = __webpack_require__(/*! ./_hashDelete */ "./build/cht-core-4-6/node_modules/lodash/_hashDelete.js"), + hashGet = __webpack_require__(/*! ./_hashGet */ "./build/cht-core-4-6/node_modules/lodash/_hashGet.js"), + hashHas = __webpack_require__(/*! ./_hashHas */ "./build/cht-core-4-6/node_modules/lodash/_hashHas.js"), + hashSet = __webpack_require__(/*! ./_hashSet */ "./build/cht-core-4-6/node_modules/lodash/_hashSet.js"); + +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `Hash`. +Hash.prototype.clear = hashClear; +Hash.prototype['delete'] = hashDelete; +Hash.prototype.get = hashGet; +Hash.prototype.has = hashHas; +Hash.prototype.set = hashSet; + +module.exports = Hash; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_ListCache.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_ListCache.js ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var listCacheClear = __webpack_require__(/*! ./_listCacheClear */ "./build/cht-core-4-6/node_modules/lodash/_listCacheClear.js"), + listCacheDelete = __webpack_require__(/*! ./_listCacheDelete */ "./build/cht-core-4-6/node_modules/lodash/_listCacheDelete.js"), + listCacheGet = __webpack_require__(/*! ./_listCacheGet */ "./build/cht-core-4-6/node_modules/lodash/_listCacheGet.js"), + listCacheHas = __webpack_require__(/*! ./_listCacheHas */ "./build/cht-core-4-6/node_modules/lodash/_listCacheHas.js"), + listCacheSet = __webpack_require__(/*! ./_listCacheSet */ "./build/cht-core-4-6/node_modules/lodash/_listCacheSet.js"); + +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `ListCache`. +ListCache.prototype.clear = listCacheClear; +ListCache.prototype['delete'] = listCacheDelete; +ListCache.prototype.get = listCacheGet; +ListCache.prototype.has = listCacheHas; +ListCache.prototype.set = listCacheSet; + +module.exports = ListCache; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_Map.js": +/*!********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_Map.js ***! + \********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var getNative = __webpack_require__(/*! ./_getNative */ "./build/cht-core-4-6/node_modules/lodash/_getNative.js"), + root = __webpack_require__(/*! ./_root */ "./build/cht-core-4-6/node_modules/lodash/_root.js"); + +/* Built-in method references that are verified to be native. */ +var Map = getNative(root, 'Map'); + +module.exports = Map; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_MapCache.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_MapCache.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var mapCacheClear = __webpack_require__(/*! ./_mapCacheClear */ "./build/cht-core-4-6/node_modules/lodash/_mapCacheClear.js"), + mapCacheDelete = __webpack_require__(/*! ./_mapCacheDelete */ "./build/cht-core-4-6/node_modules/lodash/_mapCacheDelete.js"), + mapCacheGet = __webpack_require__(/*! ./_mapCacheGet */ "./build/cht-core-4-6/node_modules/lodash/_mapCacheGet.js"), + mapCacheHas = __webpack_require__(/*! ./_mapCacheHas */ "./build/cht-core-4-6/node_modules/lodash/_mapCacheHas.js"), + mapCacheSet = __webpack_require__(/*! ./_mapCacheSet */ "./build/cht-core-4-6/node_modules/lodash/_mapCacheSet.js"); + +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `MapCache`. +MapCache.prototype.clear = mapCacheClear; +MapCache.prototype['delete'] = mapCacheDelete; +MapCache.prototype.get = mapCacheGet; +MapCache.prototype.has = mapCacheHas; +MapCache.prototype.set = mapCacheSet; + +module.exports = MapCache; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_Promise.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_Promise.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var getNative = __webpack_require__(/*! ./_getNative */ "./build/cht-core-4-6/node_modules/lodash/_getNative.js"), + root = __webpack_require__(/*! ./_root */ "./build/cht-core-4-6/node_modules/lodash/_root.js"); + +/* Built-in method references that are verified to be native. */ +var Promise = getNative(root, 'Promise'); + +module.exports = Promise; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_Set.js": +/*!********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_Set.js ***! + \********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var getNative = __webpack_require__(/*! ./_getNative */ "./build/cht-core-4-6/node_modules/lodash/_getNative.js"), + root = __webpack_require__(/*! ./_root */ "./build/cht-core-4-6/node_modules/lodash/_root.js"); + +/* Built-in method references that are verified to be native. */ +var Set = getNative(root, 'Set'); + +module.exports = Set; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_SetCache.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_SetCache.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var MapCache = __webpack_require__(/*! ./_MapCache */ "./build/cht-core-4-6/node_modules/lodash/_MapCache.js"), + setCacheAdd = __webpack_require__(/*! ./_setCacheAdd */ "./build/cht-core-4-6/node_modules/lodash/_setCacheAdd.js"), + setCacheHas = __webpack_require__(/*! ./_setCacheHas */ "./build/cht-core-4-6/node_modules/lodash/_setCacheHas.js"); + +/** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ +function SetCache(values) { + var index = -1, + length = values == null ? 0 : values.length; + + this.__data__ = new MapCache; + while (++index < length) { + this.add(values[index]); + } +} + +// Add methods to `SetCache`. +SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; +SetCache.prototype.has = setCacheHas; + +module.exports = SetCache; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_Stack.js": +/*!**********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_Stack.js ***! + \**********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var ListCache = __webpack_require__(/*! ./_ListCache */ "./build/cht-core-4-6/node_modules/lodash/_ListCache.js"), + stackClear = __webpack_require__(/*! ./_stackClear */ "./build/cht-core-4-6/node_modules/lodash/_stackClear.js"), + stackDelete = __webpack_require__(/*! ./_stackDelete */ "./build/cht-core-4-6/node_modules/lodash/_stackDelete.js"), + stackGet = __webpack_require__(/*! ./_stackGet */ "./build/cht-core-4-6/node_modules/lodash/_stackGet.js"), + stackHas = __webpack_require__(/*! ./_stackHas */ "./build/cht-core-4-6/node_modules/lodash/_stackHas.js"), + stackSet = __webpack_require__(/*! ./_stackSet */ "./build/cht-core-4-6/node_modules/lodash/_stackSet.js"); + +/** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; +} + +// Add methods to `Stack`. +Stack.prototype.clear = stackClear; +Stack.prototype['delete'] = stackDelete; +Stack.prototype.get = stackGet; +Stack.prototype.has = stackHas; +Stack.prototype.set = stackSet; + +module.exports = Stack; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_Symbol.js": +/*!***********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_Symbol.js ***! + \***********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var root = __webpack_require__(/*! ./_root */ "./build/cht-core-4-6/node_modules/lodash/_root.js"); + +/** Built-in value references. */ +var Symbol = root.Symbol; + +module.exports = Symbol; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_Uint8Array.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_Uint8Array.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var root = __webpack_require__(/*! ./_root */ "./build/cht-core-4-6/node_modules/lodash/_root.js"); + +/** Built-in value references. */ +var Uint8Array = root.Uint8Array; + +module.exports = Uint8Array; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_WeakMap.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_WeakMap.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var getNative = __webpack_require__(/*! ./_getNative */ "./build/cht-core-4-6/node_modules/lodash/_getNative.js"), + root = __webpack_require__(/*! ./_root */ "./build/cht-core-4-6/node_modules/lodash/_root.js"); + +/* Built-in method references that are verified to be native. */ +var WeakMap = getNative(root, 'WeakMap'); + +module.exports = WeakMap; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_arrayFilter.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_arrayFilter.js ***! + \****************************************************************/ +/***/ ((module) => { + +/** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ +function arrayFilter(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; +} + +module.exports = arrayFilter; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_arrayIncludes.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_arrayIncludes.js ***! + \******************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseIndexOf = __webpack_require__(/*! ./_baseIndexOf */ "./build/cht-core-4-6/node_modules/lodash/_baseIndexOf.js"); + +/** + * A specialized version of `_.includes` for arrays without support for + * specifying an index to search from. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ +function arrayIncludes(array, value) { + var length = array == null ? 0 : array.length; + return !!length && baseIndexOf(array, value, 0) > -1; +} + +module.exports = arrayIncludes; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_arrayIncludesWith.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_arrayIncludesWith.js ***! + \**********************************************************************/ +/***/ ((module) => { + +/** + * This function is like `arrayIncludes` except that it accepts a comparator. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @param {Function} comparator The comparator invoked per element. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ +function arrayIncludesWith(array, value, comparator) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (comparator(value, array[index])) { + return true; + } + } + return false; +} + +module.exports = arrayIncludesWith; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_arrayLikeKeys.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_arrayLikeKeys.js ***! + \******************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseTimes = __webpack_require__(/*! ./_baseTimes */ "./build/cht-core-4-6/node_modules/lodash/_baseTimes.js"), + isArguments = __webpack_require__(/*! ./isArguments */ "./build/cht-core-4-6/node_modules/lodash/isArguments.js"), + isArray = __webpack_require__(/*! ./isArray */ "./build/cht-core-4-6/node_modules/lodash/isArray.js"), + isBuffer = __webpack_require__(/*! ./isBuffer */ "./build/cht-core-4-6/node_modules/lodash/isBuffer.js"), + isIndex = __webpack_require__(/*! ./_isIndex */ "./build/cht-core-4-6/node_modules/lodash/_isIndex.js"), + isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./build/cht-core-4-6/node_modules/lodash/isTypedArray.js"); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ +function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), + isArg = !isArr && isArguments(value), + isBuff = !isArr && !isArg && isBuffer(value), + isType = !isArr && !isArg && !isBuff && isTypedArray(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? baseTimes(value.length, String) : [], + length = result.length; + + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + isIndex(key, length) + ))) { + result.push(key); + } + } + return result; +} + +module.exports = arrayLikeKeys; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_arrayMap.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_arrayMap.js ***! + \*************************************************************/ +/***/ ((module) => { + +/** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function arrayMap(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; +} + +module.exports = arrayMap; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_arrayPush.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_arrayPush.js ***! + \**************************************************************/ +/***/ ((module) => { + +/** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ +function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; +} + +module.exports = arrayPush; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_arraySome.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_arraySome.js ***! + \**************************************************************/ +/***/ ((module) => { + +/** + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function arraySome(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; +} + +module.exports = arraySome; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_assocIndexOf.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_assocIndexOf.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var eq = __webpack_require__(/*! ./eq */ "./build/cht-core-4-6/node_modules/lodash/eq.js"); + +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; +} + +module.exports = assocIndexOf; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseFindIndex.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseFindIndex.js ***! + \******************************************************************/ +/***/ ((module) => { + +/** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 1 : -1); + + while ((fromRight ? index-- : ++index < length)) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; +} + +module.exports = baseFindIndex; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseGet.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseGet.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var castPath = __webpack_require__(/*! ./_castPath */ "./build/cht-core-4-6/node_modules/lodash/_castPath.js"), + toKey = __webpack_require__(/*! ./_toKey */ "./build/cht-core-4-6/node_modules/lodash/_toKey.js"); + +/** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ +function baseGet(object, path) { + path = castPath(path, object); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; +} + +module.exports = baseGet; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseGetAllKeys.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseGetAllKeys.js ***! + \*******************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var arrayPush = __webpack_require__(/*! ./_arrayPush */ "./build/cht-core-4-6/node_modules/lodash/_arrayPush.js"), + isArray = __webpack_require__(/*! ./isArray */ "./build/cht-core-4-6/node_modules/lodash/isArray.js"); + +/** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ +function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); +} + +module.exports = baseGetAllKeys; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var Symbol = __webpack_require__(/*! ./_Symbol */ "./build/cht-core-4-6/node_modules/lodash/_Symbol.js"), + getRawTag = __webpack_require__(/*! ./_getRawTag */ "./build/cht-core-4-6/node_modules/lodash/_getRawTag.js"), + objectToString = __webpack_require__(/*! ./_objectToString */ "./build/cht-core-4-6/node_modules/lodash/_objectToString.js"); + +/** `Object#toString` result references. */ +var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; + +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +/** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString(value); +} + +module.exports = baseGetTag; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseHasIn.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseHasIn.js ***! + \**************************************************************/ +/***/ ((module) => { + +/** + * The base implementation of `_.hasIn` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ +function baseHasIn(object, key) { + return object != null && key in Object(object); +} + +module.exports = baseHasIn; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseIndexOf.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseIndexOf.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseFindIndex = __webpack_require__(/*! ./_baseFindIndex */ "./build/cht-core-4-6/node_modules/lodash/_baseFindIndex.js"), + baseIsNaN = __webpack_require__(/*! ./_baseIsNaN */ "./build/cht-core-4-6/node_modules/lodash/_baseIsNaN.js"), + strictIndexOf = __webpack_require__(/*! ./_strictIndexOf */ "./build/cht-core-4-6/node_modules/lodash/_strictIndexOf.js"); + +/** + * The base implementation of `_.indexOf` without `fromIndex` bounds checks. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function baseIndexOf(array, value, fromIndex) { + return value === value + ? strictIndexOf(array, value, fromIndex) + : baseFindIndex(array, baseIsNaN, fromIndex); +} + +module.exports = baseIndexOf; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseIsArguments.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsArguments.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js"), + isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./build/cht-core-4-6/node_modules/lodash/isObjectLike.js"); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]'; + +/** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ +function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; +} + +module.exports = baseIsArguments; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseIsEqual.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsEqual.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseIsEqualDeep = __webpack_require__(/*! ./_baseIsEqualDeep */ "./build/cht-core-4-6/node_modules/lodash/_baseIsEqualDeep.js"), + isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./build/cht-core-4-6/node_modules/lodash/isObjectLike.js"); + +/** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ +function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); +} + +module.exports = baseIsEqual; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseIsEqualDeep.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsEqualDeep.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var Stack = __webpack_require__(/*! ./_Stack */ "./build/cht-core-4-6/node_modules/lodash/_Stack.js"), + equalArrays = __webpack_require__(/*! ./_equalArrays */ "./build/cht-core-4-6/node_modules/lodash/_equalArrays.js"), + equalByTag = __webpack_require__(/*! ./_equalByTag */ "./build/cht-core-4-6/node_modules/lodash/_equalByTag.js"), + equalObjects = __webpack_require__(/*! ./_equalObjects */ "./build/cht-core-4-6/node_modules/lodash/_equalObjects.js"), + getTag = __webpack_require__(/*! ./_getTag */ "./build/cht-core-4-6/node_modules/lodash/_getTag.js"), + isArray = __webpack_require__(/*! ./isArray */ "./build/cht-core-4-6/node_modules/lodash/isArray.js"), + isBuffer = __webpack_require__(/*! ./isBuffer */ "./build/cht-core-4-6/node_modules/lodash/isBuffer.js"), + isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./build/cht-core-4-6/node_modules/lodash/isTypedArray.js"); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1; + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + objectTag = '[object Object]'; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = objIsArr ? arrayTag : getTag(object), + othTag = othIsArr ? arrayTag : getTag(other); + + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack); + return (objIsArr || isTypedArray(object)) + ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; + + stack || (stack = new Stack); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); +} + +module.exports = baseIsEqualDeep; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseIsMatch.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsMatch.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var Stack = __webpack_require__(/*! ./_Stack */ "./build/cht-core-4-6/node_modules/lodash/_Stack.js"), + baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ "./build/cht-core-4-6/node_modules/lodash/_baseIsEqual.js"); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** + * The base implementation of `_.isMatch` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Array} matchData The property names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ +function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; + + if (object == null) { + return !length; + } + object = Object(object); + while (index--) { + var data = matchData[index]; + if ((noCustomizer && data[2]) + ? data[1] !== object[data[0]] + : !(data[0] in object) + ) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; + + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; + } + } else { + var stack = new Stack; + if (customizer) { + var result = customizer(objValue, srcValue, key, object, source, stack); + } + if (!(result === undefined + ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) + : result + )) { + return false; + } + } + } + return true; +} + +module.exports = baseIsMatch; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseIsNaN.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsNaN.js ***! + \**************************************************************/ +/***/ ((module) => { + +/** + * The base implementation of `_.isNaN` without support for number objects. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + */ +function baseIsNaN(value) { + return value !== value; +} + +module.exports = baseIsNaN; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseIsNative.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsNative.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var isFunction = __webpack_require__(/*! ./isFunction */ "./build/cht-core-4-6/node_modules/lodash/isFunction.js"), + isMasked = __webpack_require__(/*! ./_isMasked */ "./build/cht-core-4-6/node_modules/lodash/_isMasked.js"), + isObject = __webpack_require__(/*! ./isObject */ "./build/cht-core-4-6/node_modules/lodash/isObject.js"), + toSource = __webpack_require__(/*! ./_toSource */ "./build/cht-core-4-6/node_modules/lodash/_toSource.js"); + +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + +/** Used to detect host constructors (Safari). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** Used for built-in method references. */ +var funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ +function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); +} + +module.exports = baseIsNative; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseIsTypedArray.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseIsTypedArray.js ***! + \*********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js"), + isLength = __webpack_require__(/*! ./isLength */ "./build/cht-core-4-6/node_modules/lodash/isLength.js"), + isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./build/cht-core-4-6/node_modules/lodash/isObjectLike.js"); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to identify `toStringTag` values of typed arrays. */ +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = +typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = +typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = +typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = +typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag] = typedArrayTags[arrayTag] = +typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = +typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = +typedArrayTags[errorTag] = typedArrayTags[funcTag] = +typedArrayTags[mapTag] = typedArrayTags[numberTag] = +typedArrayTags[objectTag] = typedArrayTags[regexpTag] = +typedArrayTags[setTag] = typedArrayTags[stringTag] = +typedArrayTags[weakMapTag] = false; + +/** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ +function baseIsTypedArray(value) { + return isObjectLike(value) && + isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; +} + +module.exports = baseIsTypedArray; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseIteratee.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseIteratee.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseMatches = __webpack_require__(/*! ./_baseMatches */ "./build/cht-core-4-6/node_modules/lodash/_baseMatches.js"), + baseMatchesProperty = __webpack_require__(/*! ./_baseMatchesProperty */ "./build/cht-core-4-6/node_modules/lodash/_baseMatchesProperty.js"), + identity = __webpack_require__(/*! ./identity */ "./build/cht-core-4-6/node_modules/lodash/identity.js"), + isArray = __webpack_require__(/*! ./isArray */ "./build/cht-core-4-6/node_modules/lodash/isArray.js"), + property = __webpack_require__(/*! ./property */ "./build/cht-core-4-6/node_modules/lodash/property.js"); + +/** + * The base implementation of `_.iteratee`. + * + * @private + * @param {*} [value=_.identity] The value to convert to an iteratee. + * @returns {Function} Returns the iteratee. + */ +function baseIteratee(value) { + // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. + // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. + if (typeof value == 'function') { + return value; + } + if (value == null) { + return identity; + } + if (typeof value == 'object') { + return isArray(value) + ? baseMatchesProperty(value[0], value[1]) + : baseMatches(value); + } + return property(value); +} + +module.exports = baseIteratee; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseKeys.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseKeys.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var isPrototype = __webpack_require__(/*! ./_isPrototype */ "./build/cht-core-4-6/node_modules/lodash/_isPrototype.js"), + nativeKeys = __webpack_require__(/*! ./_nativeKeys */ "./build/cht-core-4-6/node_modules/lodash/_nativeKeys.js"); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty.call(object, key) && key != 'constructor') { + result.push(key); + } + } + return result; +} + +module.exports = baseKeys; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseMatches.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseMatches.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseIsMatch = __webpack_require__(/*! ./_baseIsMatch */ "./build/cht-core-4-6/node_modules/lodash/_baseIsMatch.js"), + getMatchData = __webpack_require__(/*! ./_getMatchData */ "./build/cht-core-4-6/node_modules/lodash/_getMatchData.js"), + matchesStrictComparable = __webpack_require__(/*! ./_matchesStrictComparable */ "./build/cht-core-4-6/node_modules/lodash/_matchesStrictComparable.js"); + +/** + * The base implementation of `_.matches` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + */ +function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + return matchesStrictComparable(matchData[0][0], matchData[0][1]); + } + return function(object) { + return object === source || baseIsMatch(object, source, matchData); + }; +} + +module.exports = baseMatches; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseMatchesProperty.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseMatchesProperty.js ***! + \************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ "./build/cht-core-4-6/node_modules/lodash/_baseIsEqual.js"), + get = __webpack_require__(/*! ./get */ "./build/cht-core-4-6/node_modules/lodash/get.js"), + hasIn = __webpack_require__(/*! ./hasIn */ "./build/cht-core-4-6/node_modules/lodash/hasIn.js"), + isKey = __webpack_require__(/*! ./_isKey */ "./build/cht-core-4-6/node_modules/lodash/_isKey.js"), + isStrictComparable = __webpack_require__(/*! ./_isStrictComparable */ "./build/cht-core-4-6/node_modules/lodash/_isStrictComparable.js"), + matchesStrictComparable = __webpack_require__(/*! ./_matchesStrictComparable */ "./build/cht-core-4-6/node_modules/lodash/_matchesStrictComparable.js"), + toKey = __webpack_require__(/*! ./_toKey */ "./build/cht-core-4-6/node_modules/lodash/_toKey.js"); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** + * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. + * + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ +function baseMatchesProperty(path, srcValue) { + if (isKey(path) && isStrictComparable(srcValue)) { + return matchesStrictComparable(toKey(path), srcValue); + } + return function(object) { + var objValue = get(object, path); + return (objValue === undefined && objValue === srcValue) + ? hasIn(object, path) + : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; +} + +module.exports = baseMatchesProperty; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseProperty.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseProperty.js ***! + \*****************************************************************/ +/***/ ((module) => { + +/** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. + */ +function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; +} + +module.exports = baseProperty; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_basePropertyDeep.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_basePropertyDeep.js ***! + \*********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseGet = __webpack_require__(/*! ./_baseGet */ "./build/cht-core-4-6/node_modules/lodash/_baseGet.js"); + +/** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + */ +function basePropertyDeep(path) { + return function(object) { + return baseGet(object, path); + }; +} + +module.exports = basePropertyDeep; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseTimes.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseTimes.js ***! + \**************************************************************/ +/***/ ((module) => { + +/** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ +function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} + +module.exports = baseTimes; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseToString.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseToString.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var Symbol = __webpack_require__(/*! ./_Symbol */ "./build/cht-core-4-6/node_modules/lodash/_Symbol.js"), + arrayMap = __webpack_require__(/*! ./_arrayMap */ "./build/cht-core-4-6/node_modules/lodash/_arrayMap.js"), + isArray = __webpack_require__(/*! ./isArray */ "./build/cht-core-4-6/node_modules/lodash/isArray.js"), + isSymbol = __webpack_require__(/*! ./isSymbol */ "./build/cht-core-4-6/node_modules/lodash/isSymbol.js"); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + +/** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ +function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray(value)) { + // Recursively convert values (susceptible to call stack limits). + return arrayMap(value, baseToString) + ''; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +module.exports = baseToString; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseUnary.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseUnary.js ***! + \**************************************************************/ +/***/ ((module) => { + +/** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ +function baseUnary(func) { + return function(value) { + return func(value); + }; +} + +module.exports = baseUnary; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_baseUniq.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_baseUniq.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var SetCache = __webpack_require__(/*! ./_SetCache */ "./build/cht-core-4-6/node_modules/lodash/_SetCache.js"), + arrayIncludes = __webpack_require__(/*! ./_arrayIncludes */ "./build/cht-core-4-6/node_modules/lodash/_arrayIncludes.js"), + arrayIncludesWith = __webpack_require__(/*! ./_arrayIncludesWith */ "./build/cht-core-4-6/node_modules/lodash/_arrayIncludesWith.js"), + cacheHas = __webpack_require__(/*! ./_cacheHas */ "./build/cht-core-4-6/node_modules/lodash/_cacheHas.js"), + createSet = __webpack_require__(/*! ./_createSet */ "./build/cht-core-4-6/node_modules/lodash/_createSet.js"), + setToArray = __webpack_require__(/*! ./_setToArray */ "./build/cht-core-4-6/node_modules/lodash/_setToArray.js"); + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** + * The base implementation of `_.uniqBy` without support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new duplicate free array. + */ +function baseUniq(array, iteratee, comparator) { + var index = -1, + includes = arrayIncludes, + length = array.length, + isCommon = true, + result = [], + seen = result; + + if (comparator) { + isCommon = false; + includes = arrayIncludesWith; + } + else if (length >= LARGE_ARRAY_SIZE) { + var set = iteratee ? null : createSet(array); + if (set) { + return setToArray(set); + } + isCommon = false; + includes = cacheHas; + seen = new SetCache; + } + else { + seen = iteratee ? [] : result; + } + outer: + while (++index < length) { + var value = array[index], + computed = iteratee ? iteratee(value) : value; + + value = (comparator || value !== 0) ? value : 0; + if (isCommon && computed === computed) { + var seenIndex = seen.length; + while (seenIndex--) { + if (seen[seenIndex] === computed) { + continue outer; + } + } + if (iteratee) { + seen.push(computed); + } + result.push(value); + } + else if (!includes(seen, computed, comparator)) { + if (seen !== result) { + seen.push(computed); + } + result.push(value); + } + } + return result; +} + +module.exports = baseUniq; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_cacheHas.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_cacheHas.js ***! + \*************************************************************/ +/***/ ((module) => { + +/** + * Checks if a `cache` value for `key` exists. + * + * @private + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function cacheHas(cache, key) { + return cache.has(key); +} + +module.exports = cacheHas; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_castPath.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_castPath.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var isArray = __webpack_require__(/*! ./isArray */ "./build/cht-core-4-6/node_modules/lodash/isArray.js"), + isKey = __webpack_require__(/*! ./_isKey */ "./build/cht-core-4-6/node_modules/lodash/_isKey.js"), + stringToPath = __webpack_require__(/*! ./_stringToPath */ "./build/cht-core-4-6/node_modules/lodash/_stringToPath.js"), + toString = __webpack_require__(/*! ./toString */ "./build/cht-core-4-6/node_modules/lodash/toString.js"); + +/** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. + */ +function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString(value)); +} + +module.exports = castPath; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_coreJsData.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_coreJsData.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var root = __webpack_require__(/*! ./_root */ "./build/cht-core-4-6/node_modules/lodash/_root.js"); + +/** Used to detect overreaching core-js shims. */ +var coreJsData = root['__core-js_shared__']; + +module.exports = coreJsData; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_createSet.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_createSet.js ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var Set = __webpack_require__(/*! ./_Set */ "./build/cht-core-4-6/node_modules/lodash/_Set.js"), + noop = __webpack_require__(/*! ./noop */ "./build/cht-core-4-6/node_modules/lodash/noop.js"), + setToArray = __webpack_require__(/*! ./_setToArray */ "./build/cht-core-4-6/node_modules/lodash/_setToArray.js"); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** + * Creates a set object of `values`. + * + * @private + * @param {Array} values The values to add to the set. + * @returns {Object} Returns the new set. + */ +var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) { + return new Set(values); +}; + +module.exports = createSet; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_equalArrays.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_equalArrays.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var SetCache = __webpack_require__(/*! ./_SetCache */ "./build/cht-core-4-6/node_modules/lodash/_SetCache.js"), + arraySome = __webpack_require__(/*! ./_arraySome */ "./build/cht-core-4-6/node_modules/lodash/_arraySome.js"), + cacheHas = __webpack_require__(/*! ./_cacheHas */ "./build/cht-core-4-6/node_modules/lodash/_cacheHas.js"); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ +function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + // Check that cyclic values are equal. + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } + var index = -1, + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; + + stack.set(array, other); + stack.set(other, array); + + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, arrValue, index, other, array, stack) + : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined) { + if (compared) { + continue; + } + result = false; + break; + } + // Recursively compare arrays (susceptible to call stack limits). + if (seen) { + if (!arraySome(other, function(othValue, othIndex) { + if (!cacheHas(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { + result = false; + break; + } + } + stack['delete'](array); + stack['delete'](other); + return result; +} + +module.exports = equalArrays; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_equalByTag.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_equalByTag.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var Symbol = __webpack_require__(/*! ./_Symbol */ "./build/cht-core-4-6/node_modules/lodash/_Symbol.js"), + Uint8Array = __webpack_require__(/*! ./_Uint8Array */ "./build/cht-core-4-6/node_modules/lodash/_Uint8Array.js"), + eq = __webpack_require__(/*! ./eq */ "./build/cht-core-4-6/node_modules/lodash/eq.js"), + equalArrays = __webpack_require__(/*! ./_equalArrays */ "./build/cht-core-4-6/node_modules/lodash/_equalArrays.js"), + mapToArray = __webpack_require__(/*! ./_mapToArray */ "./build/cht-core-4-6/node_modules/lodash/_mapToArray.js"), + setToArray = __webpack_require__(/*! ./_setToArray */ "./build/cht-core-4-6/node_modules/lodash/_setToArray.js"); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** `Object#toString` result references. */ +var boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + mapTag = '[object Map]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]'; + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; + +/** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if ((object.byteLength != other.byteLength) || + (object.byteOffset != other.byteOffset)) { + return false; + } + object = object.buffer; + other = other.buffer; + + case arrayBufferTag: + if ((object.byteLength != other.byteLength) || + !equalFunc(new Uint8Array(object), new Uint8Array(other))) { + return false; + } + return true; + + case boolTag: + case dateTag: + case numberTag: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq(+object, +other); + + case errorTag: + return object.name == other.name && object.message == other.message; + + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == (other + ''); + + case mapTag: + var convert = mapToArray; + + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG; + convert || (convert = setToArray); + + if (object.size != other.size && !isPartial) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; + + // Recursively compare objects (susceptible to call stack limits). + stack.set(object, other); + var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack['delete'](object); + return result; + + case symbolTag: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; +} + +module.exports = equalByTag; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_equalObjects.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_equalObjects.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var getAllKeys = __webpack_require__(/*! ./_getAllKeys */ "./build/cht-core-4-6/node_modules/lodash/_getAllKeys.js"); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + objProps = getAllKeys(object), + objLength = objProps.length, + othProps = getAllKeys(other), + othLength = othProps.length; + + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + // Check that cyclic values are equal. + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result = true; + stack.set(object, other); + stack.set(other, object); + + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, objValue, key, other, object, stack) + : customizer(objValue, othValue, key, object, other, stack); + } + // Recursively compare objects (susceptible to call stack limits). + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared + )) { + result = false; + break; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; + } + } + stack['delete'](object); + stack['delete'](other); + return result; +} + +module.exports = equalObjects; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_freeGlobal.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_freeGlobal.js ***! + \***************************************************************/ +/***/ ((module) => { + +/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + +module.exports = freeGlobal; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_getAllKeys.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_getAllKeys.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseGetAllKeys = __webpack_require__(/*! ./_baseGetAllKeys */ "./build/cht-core-4-6/node_modules/lodash/_baseGetAllKeys.js"), + getSymbols = __webpack_require__(/*! ./_getSymbols */ "./build/cht-core-4-6/node_modules/lodash/_getSymbols.js"), + keys = __webpack_require__(/*! ./keys */ "./build/cht-core-4-6/node_modules/lodash/keys.js"); + +/** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ +function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); +} + +module.exports = getAllKeys; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_getMapData.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_getMapData.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var isKeyable = __webpack_require__(/*! ./_isKeyable */ "./build/cht-core-4-6/node_modules/lodash/_isKeyable.js"); + +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ +function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; +} + +module.exports = getMapData; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_getMatchData.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_getMatchData.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var isStrictComparable = __webpack_require__(/*! ./_isStrictComparable */ "./build/cht-core-4-6/node_modules/lodash/_isStrictComparable.js"), + keys = __webpack_require__(/*! ./keys */ "./build/cht-core-4-6/node_modules/lodash/keys.js"); + +/** + * Gets the property names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ +function getMatchData(object) { + var result = keys(object), + length = result.length; + + while (length--) { + var key = result[length], + value = object[key]; + + result[length] = [key, value, isStrictComparable(value)]; + } + return result; +} + +module.exports = getMatchData; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_getNative.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_getNative.js ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseIsNative = __webpack_require__(/*! ./_baseIsNative */ "./build/cht-core-4-6/node_modules/lodash/_baseIsNative.js"), + getValue = __webpack_require__(/*! ./_getValue */ "./build/cht-core-4-6/node_modules/lodash/_getValue.js"); + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; +} + +module.exports = getNative; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_getRawTag.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_getRawTag.js ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var Symbol = __webpack_require__(/*! ./_Symbol */ "./build/cht-core-4-6/node_modules/lodash/_Symbol.js"); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +/** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ +function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), + tag = value[symToStringTag]; + + try { + value[symToStringTag] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result; +} + +module.exports = getRawTag; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_getSymbols.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_getSymbols.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var arrayFilter = __webpack_require__(/*! ./_arrayFilter */ "./build/cht-core-4-6/node_modules/lodash/_arrayFilter.js"), + stubArray = __webpack_require__(/*! ./stubArray */ "./build/cht-core-4-6/node_modules/lodash/stubArray.js"); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeGetSymbols = Object.getOwnPropertySymbols; + +/** + * Creates an array of the own enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ +var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); +}; + +module.exports = getSymbols; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_getTag.js": +/*!***********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_getTag.js ***! + \***********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var DataView = __webpack_require__(/*! ./_DataView */ "./build/cht-core-4-6/node_modules/lodash/_DataView.js"), + Map = __webpack_require__(/*! ./_Map */ "./build/cht-core-4-6/node_modules/lodash/_Map.js"), + Promise = __webpack_require__(/*! ./_Promise */ "./build/cht-core-4-6/node_modules/lodash/_Promise.js"), + Set = __webpack_require__(/*! ./_Set */ "./build/cht-core-4-6/node_modules/lodash/_Set.js"), + WeakMap = __webpack_require__(/*! ./_WeakMap */ "./build/cht-core-4-6/node_modules/lodash/_WeakMap.js"), + baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js"), + toSource = __webpack_require__(/*! ./_toSource */ "./build/cht-core-4-6/node_modules/lodash/_toSource.js"); + +/** `Object#toString` result references. */ +var mapTag = '[object Map]', + objectTag = '[object Object]', + promiseTag = '[object Promise]', + setTag = '[object Set]', + weakMapTag = '[object WeakMap]'; + +var dataViewTag = '[object DataView]'; + +/** Used to detect maps, sets, and weakmaps. */ +var dataViewCtorString = toSource(DataView), + mapCtorString = toSource(Map), + promiseCtorString = toSource(Promise), + setCtorString = toSource(Set), + weakMapCtorString = toSource(WeakMap); + +/** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +var getTag = baseGetTag; + +// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. +if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || + (Map && getTag(new Map) != mapTag) || + (Promise && getTag(Promise.resolve()) != promiseTag) || + (Set && getTag(new Set) != setTag) || + (WeakMap && getTag(new WeakMap) != weakMapTag)) { + getTag = function(value) { + var result = baseGetTag(value), + Ctor = result == objectTag ? value.constructor : undefined, + ctorString = Ctor ? toSource(Ctor) : ''; + + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: return dataViewTag; + case mapCtorString: return mapTag; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag; + case weakMapCtorString: return weakMapTag; + } + } + return result; + }; +} + +module.exports = getTag; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_getValue.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_getValue.js ***! + \*************************************************************/ +/***/ ((module) => { + +/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function getValue(object, key) { + return object == null ? undefined : object[key]; +} + +module.exports = getValue; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_hasPath.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_hasPath.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var castPath = __webpack_require__(/*! ./_castPath */ "./build/cht-core-4-6/node_modules/lodash/_castPath.js"), + isArguments = __webpack_require__(/*! ./isArguments */ "./build/cht-core-4-6/node_modules/lodash/isArguments.js"), + isArray = __webpack_require__(/*! ./isArray */ "./build/cht-core-4-6/node_modules/lodash/isArray.js"), + isIndex = __webpack_require__(/*! ./_isIndex */ "./build/cht-core-4-6/node_modules/lodash/_isIndex.js"), + isLength = __webpack_require__(/*! ./isLength */ "./build/cht-core-4-6/node_modules/lodash/isLength.js"), + toKey = __webpack_require__(/*! ./_toKey */ "./build/cht-core-4-6/node_modules/lodash/_toKey.js"); + +/** + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + */ +function hasPath(object, path, hasFunc) { + path = castPath(path, object); + + var index = -1, + length = path.length, + result = false; + + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result || ++index != length) { + return result; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && + (isArray(object) || isArguments(object)); +} + +module.exports = hasPath; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_hashClear.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_hashClear.js ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./build/cht-core-4-6/node_modules/lodash/_nativeCreate.js"); + +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ +function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; +} + +module.exports = hashClear; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_hashDelete.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_hashDelete.js ***! + \***************************************************************/ +/***/ ((module) => { + +/** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; +} + +module.exports = hashDelete; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_hashGet.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_hashGet.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./build/cht-core-4-6/node_modules/lodash/_nativeCreate.js"); + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; +} + +module.exports = hashGet; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_hashHas.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_hashHas.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./build/cht-core-4-6/node_modules/lodash/_nativeCreate.js"); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function hashHas(key) { + var data = this.__data__; + return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); +} + +module.exports = hashHas; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_hashSet.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_hashSet.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./build/cht-core-4-6/node_modules/lodash/_nativeCreate.js"); + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ +function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; +} + +module.exports = hashSet; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_isIndex.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_isIndex.js ***! + \************************************************************/ +/***/ ((module) => { + +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** Used to detect unsigned integer values. */ +var reIsUint = /^(?:0|[1-9]\d*)$/; + +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); +} + +module.exports = isIndex; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_isKey.js": +/*!**********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_isKey.js ***! + \**********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var isArray = __webpack_require__(/*! ./isArray */ "./build/cht-core-4-6/node_modules/lodash/isArray.js"), + isSymbol = __webpack_require__(/*! ./isSymbol */ "./build/cht-core-4-6/node_modules/lodash/isSymbol.js"); + +/** Used to match property names within property paths. */ +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + +/** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ +function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); +} + +module.exports = isKey; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_isKeyable.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_isKeyable.js ***! + \**************************************************************/ +/***/ ((module) => { + +/** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ +function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); +} + +module.exports = isKeyable; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_isMasked.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_isMasked.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var coreJsData = __webpack_require__(/*! ./_coreJsData */ "./build/cht-core-4-6/node_modules/lodash/_coreJsData.js"); + +/** Used to detect methods masquerading as native. */ +var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; +}()); + +/** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ +function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); +} + +module.exports = isMasked; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_isPrototype.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_isPrototype.js ***! + \****************************************************************/ +/***/ ((module) => { + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ +function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; + + return value === proto; +} + +module.exports = isPrototype; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_isStrictComparable.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_isStrictComparable.js ***! + \***********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var isObject = __webpack_require__(/*! ./isObject */ "./build/cht-core-4-6/node_modules/lodash/isObject.js"); + +/** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ +function isStrictComparable(value) { + return value === value && !isObject(value); +} + +module.exports = isStrictComparable; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_listCacheClear.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_listCacheClear.js ***! + \*******************************************************************/ +/***/ ((module) => { + +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ +function listCacheClear() { + this.__data__ = []; + this.size = 0; +} + +module.exports = listCacheClear; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_listCacheDelete.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_listCacheDelete.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./build/cht-core-4-6/node_modules/lodash/_assocIndexOf.js"); + +/** Used for built-in method references. */ +var arrayProto = Array.prototype; + +/** Built-in value references. */ +var splice = arrayProto.splice; + +/** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; +} + +module.exports = listCacheDelete; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_listCacheGet.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_listCacheGet.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./build/cht-core-4-6/node_modules/lodash/_assocIndexOf.js"); + +/** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; +} + +module.exports = listCacheGet; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_listCacheHas.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_listCacheHas.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./build/cht-core-4-6/node_modules/lodash/_assocIndexOf.js"); + +/** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; +} + +module.exports = listCacheHas; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_listCacheSet.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_listCacheSet.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./build/cht-core-4-6/node_modules/lodash/_assocIndexOf.js"); + +/** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ +function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; +} + +module.exports = listCacheSet; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_mapCacheClear.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_mapCacheClear.js ***! + \******************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var Hash = __webpack_require__(/*! ./_Hash */ "./build/cht-core-4-6/node_modules/lodash/_Hash.js"), + ListCache = __webpack_require__(/*! ./_ListCache */ "./build/cht-core-4-6/node_modules/lodash/_ListCache.js"), + Map = __webpack_require__(/*! ./_Map */ "./build/cht-core-4-6/node_modules/lodash/_Map.js"); + +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ +function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; +} + +module.exports = mapCacheClear; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_mapCacheDelete.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_mapCacheDelete.js ***! + \*******************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var getMapData = __webpack_require__(/*! ./_getMapData */ "./build/cht-core-4-6/node_modules/lodash/_getMapData.js"); + +/** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function mapCacheDelete(key) { + var result = getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; +} + +module.exports = mapCacheDelete; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_mapCacheGet.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_mapCacheGet.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var getMapData = __webpack_require__(/*! ./_getMapData */ "./build/cht-core-4-6/node_modules/lodash/_getMapData.js"); + +/** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function mapCacheGet(key) { + return getMapData(this, key).get(key); +} + +module.exports = mapCacheGet; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_mapCacheHas.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_mapCacheHas.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var getMapData = __webpack_require__(/*! ./_getMapData */ "./build/cht-core-4-6/node_modules/lodash/_getMapData.js"); + +/** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function mapCacheHas(key) { + return getMapData(this, key).has(key); +} + +module.exports = mapCacheHas; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_mapCacheSet.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_mapCacheSet.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var getMapData = __webpack_require__(/*! ./_getMapData */ "./build/cht-core-4-6/node_modules/lodash/_getMapData.js"); + +/** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ +function mapCacheSet(key, value) { + var data = getMapData(this, key), + size = data.size; + + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; +} + +module.exports = mapCacheSet; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_mapToArray.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_mapToArray.js ***! + \***************************************************************/ +/***/ ((module) => { + +/** + * Converts `map` to its key-value pairs. + * + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. + */ +function mapToArray(map) { + var index = -1, + result = Array(map.size); + + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; +} + +module.exports = mapToArray; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_matchesStrictComparable.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_matchesStrictComparable.js ***! + \****************************************************************************/ +/***/ ((module) => { + +/** + * A specialized version of `matchesProperty` for source values suitable + * for strict equality comparisons, i.e. `===`. + * + * @private + * @param {string} key The key of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ +function matchesStrictComparable(key, srcValue) { + return function(object) { + if (object == null) { + return false; + } + return object[key] === srcValue && + (srcValue !== undefined || (key in Object(object))); + }; +} + +module.exports = matchesStrictComparable; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_memoizeCapped.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_memoizeCapped.js ***! + \******************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var memoize = __webpack_require__(/*! ./memoize */ "./build/cht-core-4-6/node_modules/lodash/memoize.js"); + +/** Used as the maximum memoize cache size. */ +var MAX_MEMOIZE_SIZE = 500; + +/** + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ +function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + + var cache = result.cache; + return result; +} + +module.exports = memoizeCapped; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_nativeCreate.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_nativeCreate.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var getNative = __webpack_require__(/*! ./_getNative */ "./build/cht-core-4-6/node_modules/lodash/_getNative.js"); + +/* Built-in method references that are verified to be native. */ +var nativeCreate = getNative(Object, 'create'); + +module.exports = nativeCreate; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_nativeKeys.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_nativeKeys.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var overArg = __webpack_require__(/*! ./_overArg */ "./build/cht-core-4-6/node_modules/lodash/_overArg.js"); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeKeys = overArg(Object.keys, Object); + +module.exports = nativeKeys; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_nodeUtil.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_nodeUtil.js ***! + \*************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ "./build/cht-core-4-6/node_modules/lodash/_freeGlobal.js"); + +/** Detect free variable `exports`. */ +var freeExports = true && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && "object" == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Detect free variable `process` from Node.js. */ +var freeProcess = moduleExports && freeGlobal.process; + +/** Used to access faster Node.js helpers. */ +var nodeUtil = (function() { + try { + // Use `util.types` for Node.js 10+. + var types = freeModule && freeModule.require && freeModule.require('util').types; + + if (types) { + return types; + } + + // Legacy `process.binding('util')` for Node.js < 10. + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} +}()); + +module.exports = nodeUtil; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_objectToString.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_objectToString.js ***! + \*******************************************************************/ +/***/ ((module) => { + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ +function objectToString(value) { + return nativeObjectToString.call(value); +} + +module.exports = objectToString; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_overArg.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_overArg.js ***! + \************************************************************/ +/***/ ((module) => { + +/** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ +function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; +} + +module.exports = overArg; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_root.js": +/*!*********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_root.js ***! + \*********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ "./build/cht-core-4-6/node_modules/lodash/_freeGlobal.js"); + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = freeGlobal || freeSelf || Function('return this')(); + +module.exports = root; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_setCacheAdd.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_setCacheAdd.js ***! + \****************************************************************/ +/***/ ((module) => { + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** + * Adds `value` to the array cache. + * + * @private + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. + */ +function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; +} + +module.exports = setCacheAdd; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_setCacheHas.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_setCacheHas.js ***! + \****************************************************************/ +/***/ ((module) => { + +/** + * Checks if `value` is in the array cache. + * + * @private + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. + */ +function setCacheHas(value) { + return this.__data__.has(value); +} + +module.exports = setCacheHas; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_setToArray.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_setToArray.js ***! + \***************************************************************/ +/***/ ((module) => { + +/** + * Converts `set` to an array of its values. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ +function setToArray(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = value; + }); + return result; +} + +module.exports = setToArray; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_stackClear.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_stackClear.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var ListCache = __webpack_require__(/*! ./_ListCache */ "./build/cht-core-4-6/node_modules/lodash/_ListCache.js"); + +/** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ +function stackClear() { + this.__data__ = new ListCache; + this.size = 0; +} + +module.exports = stackClear; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_stackDelete.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_stackDelete.js ***! + \****************************************************************/ +/***/ ((module) => { + +/** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); + + this.size = data.size; + return result; +} + +module.exports = stackDelete; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_stackGet.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_stackGet.js ***! + \*************************************************************/ +/***/ ((module) => { + +/** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function stackGet(key) { + return this.__data__.get(key); +} + +module.exports = stackGet; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_stackHas.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_stackHas.js ***! + \*************************************************************/ +/***/ ((module) => { + +/** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function stackHas(key) { + return this.__data__.has(key); +} + +module.exports = stackHas; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_stackSet.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_stackSet.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var ListCache = __webpack_require__(/*! ./_ListCache */ "./build/cht-core-4-6/node_modules/lodash/_ListCache.js"), + Map = __webpack_require__(/*! ./_Map */ "./build/cht-core-4-6/node_modules/lodash/_Map.js"), + MapCache = __webpack_require__(/*! ./_MapCache */ "./build/cht-core-4-6/node_modules/lodash/_MapCache.js"); + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ +function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; +} + +module.exports = stackSet; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_strictIndexOf.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_strictIndexOf.js ***! + \******************************************************************/ +/***/ ((module) => { + +/** + * A specialized version of `_.indexOf` which performs strict equality + * comparisons of values, i.e. `===`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function strictIndexOf(array, value, fromIndex) { + var index = fromIndex - 1, + length = array.length; + + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; +} + +module.exports = strictIndexOf; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_stringToPath.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_stringToPath.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var memoizeCapped = __webpack_require__(/*! ./_memoizeCapped */ "./build/cht-core-4-6/node_modules/lodash/_memoizeCapped.js"); + +/** Used to match property names within property paths. */ +var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + +/** Used to match backslashes in property paths. */ +var reEscapeChar = /\\(\\)?/g; + +/** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ +var stringToPath = memoizeCapped(function(string) { + var result = []; + if (string.charCodeAt(0) === 46 /* . */) { + result.push(''); + } + string.replace(rePropName, function(match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; +}); + +module.exports = stringToPath; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_toKey.js": +/*!**********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_toKey.js ***! + \**********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var isSymbol = __webpack_require__(/*! ./isSymbol */ "./build/cht-core-4-6/node_modules/lodash/isSymbol.js"); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ +function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +module.exports = toKey; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/_toSource.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/_toSource.js ***! + \*************************************************************/ +/***/ ((module) => { + +/** Used for built-in method references. */ +var funcProto = Function.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ +function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; +} + +module.exports = toSource; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/core.js": +/*!********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/core.js ***! + \********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +/* module decorator */ module = __webpack_require__.nmd(module); +var __WEBPACK_AMD_DEFINE_RESULT__;/** + * @license + * Lodash (Custom Build) + * Build: `lodash core -o ./dist/lodash.core.js` + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ +;(function() { + + /** Used as a safe reference for `undefined` in pre-ES5 environments. */ + var undefined; + + /** Used as the semantic version number. */ + var VERSION = '4.17.21'; + + /** Error message constants. */ + var FUNC_ERROR_TEXT = 'Expected a function'; + + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + + /** Used to compose bitmasks for function metadata. */ + var WRAP_BIND_FLAG = 1, + WRAP_PARTIAL_FLAG = 32; + + /** Used as references for various `Number` constants. */ + var INFINITY = 1 / 0, + MAX_SAFE_INTEGER = 9007199254740991; + + /** `Object#toString` result references. */ + var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + asyncTag = '[object AsyncFunction]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + numberTag = '[object Number]', + objectTag = '[object Object]', + proxyTag = '[object Proxy]', + regexpTag = '[object RegExp]', + stringTag = '[object String]'; + + /** Used to match HTML entities and HTML characters. */ + var reUnescapedHtml = /[&<>"']/g, + reHasUnescapedHtml = RegExp(reUnescapedHtml.source); + + /** Used to detect unsigned integer values. */ + var reIsUint = /^(?:0|[1-9]\d*)$/; + + /** Used to map characters to HTML entities. */ + var htmlEscapes = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''' + }; + + /** Detect free variable `global` from Node.js. */ + var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + + /** Detect free variable `self`. */ + var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + + /** Used as a reference to the global object. */ + var root = freeGlobal || freeSelf || Function('return this')(); + + /** Detect free variable `exports`. */ + var freeExports = true && exports && !exports.nodeType && exports; + + /** Detect free variable `module`. */ + var freeModule = freeExports && "object" == 'object' && module && !module.nodeType && module; + + /*--------------------------------------------------------------------------*/ + + /** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ + function arrayPush(array, values) { + array.push.apply(array, values); + return array; + } + + /** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 1 : -1); + + while ((fromRight ? index-- : ++index < length)) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; + } + + /** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. + */ + function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; + } + + /** + * The base implementation of `_.propertyOf` without support for deep paths. + * + * @private + * @param {Object} object The object to query. + * @returns {Function} Returns the new accessor function. + */ + function basePropertyOf(object) { + return function(key) { + return object == null ? undefined : object[key]; + }; + } + + /** + * The base implementation of `_.reduce` and `_.reduceRight`, without support + * for iteratee shorthands, which iterates over `collection` using `eachFunc`. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} accumulator The initial value. + * @param {boolean} initAccum Specify using the first or last element of + * `collection` as the initial value. + * @param {Function} eachFunc The function to iterate over `collection`. + * @returns {*} Returns the accumulated value. + */ + function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { + eachFunc(collection, function(value, index, collection) { + accumulator = initAccum + ? (initAccum = false, value) + : iteratee(accumulator, value, index, collection); + }); + return accumulator; + } + + /** + * The base implementation of `_.values` and `_.valuesIn` which creates an + * array of `object` property values corresponding to the property names + * of `props`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} props The property names to get values for. + * @returns {Object} Returns the array of property values. + */ + function baseValues(object, props) { + return baseMap(props, function(key) { + return object[key]; + }); + } + + /** + * Used by `_.escape` to convert characters to HTML entities. + * + * @private + * @param {string} chr The matched character to escape. + * @returns {string} Returns the escaped character. + */ + var escapeHtmlChar = basePropertyOf(htmlEscapes); + + /** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + + /*--------------------------------------------------------------------------*/ + + /** Used for built-in method references. */ + var arrayProto = Array.prototype, + objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** Used to generate unique IDs. */ + var idCounter = 0; + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString = objectProto.toString; + + /** Used to restore the original `_` reference in `_.noConflict`. */ + var oldDash = root._; + + /** Built-in value references. */ + var objectCreate = Object.create, + propertyIsEnumerable = objectProto.propertyIsEnumerable; + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeIsFinite = root.isFinite, + nativeKeys = overArg(Object.keys, Object), + nativeMax = Math.max; + + /*------------------------------------------------------------------------*/ + + /** + * Creates a `lodash` object which wraps `value` to enable implicit method + * chain sequences. Methods that operate on and return arrays, collections, + * and functions can be chained together. Methods that retrieve a single value + * or may return a primitive value will automatically end the chain sequence + * and return the unwrapped value. Otherwise, the value must be unwrapped + * with `_#value`. + * + * Explicit chain sequences, which must be unwrapped with `_#value`, may be + * enabled using `_.chain`. + * + * The execution of chained methods is lazy, that is, it's deferred until + * `_#value` is implicitly or explicitly called. + * + * Lazy evaluation allows several methods to support shortcut fusion. + * Shortcut fusion is an optimization to merge iteratee calls; this avoids + * the creation of intermediate arrays and can greatly reduce the number of + * iteratee executions. Sections of a chain sequence qualify for shortcut + * fusion if the section is applied to an array and iteratees accept only + * one argument. The heuristic for whether a section qualifies for shortcut + * fusion is subject to change. + * + * Chaining is supported in custom builds as long as the `_#value` method is + * directly or indirectly included in the build. + * + * In addition to lodash methods, wrappers have `Array` and `String` methods. + * + * The wrapper `Array` methods are: + * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` + * + * The wrapper `String` methods are: + * `replace` and `split` + * + * The wrapper methods that support shortcut fusion are: + * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, + * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, + * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` + * + * The chainable wrapper methods are: + * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, + * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, + * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, + * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, + * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, + * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, + * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, + * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, + * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, + * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, + * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, + * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, + * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, + * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, + * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, + * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, + * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, + * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, + * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, + * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, + * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, + * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, + * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, + * `zipObject`, `zipObjectDeep`, and `zipWith` + * + * The wrapper methods that are **not** chainable by default are: + * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, + * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, + * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, + * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, + * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, + * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, + * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, + * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, + * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, + * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, + * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, + * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, + * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, + * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, + * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, + * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, + * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, + * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, + * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, + * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, + * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, + * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, + * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, + * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, + * `upperFirst`, `value`, and `words` + * + * @name _ + * @constructor + * @category Seq + * @param {*} value The value to wrap in a `lodash` instance. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * function square(n) { + * return n * n; + * } + * + * var wrapped = _([1, 2, 3]); + * + * // Returns an unwrapped value. + * wrapped.reduce(_.add); + * // => 6 + * + * // Returns a wrapped value. + * var squares = wrapped.map(square); + * + * _.isArray(squares); + * // => false + * + * _.isArray(squares.value()); + * // => true + */ + function lodash(value) { + return value instanceof LodashWrapper + ? value + : new LodashWrapper(value); + } + + /** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ + var baseCreate = (function() { + function object() {} + return function(proto) { + if (!isObject(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result = new object; + object.prototype = undefined; + return result; + }; + }()); + + /** + * The base constructor for creating `lodash` wrapper objects. + * + * @private + * @param {*} value The value to wrap. + * @param {boolean} [chainAll] Enable explicit method chain sequences. + */ + function LodashWrapper(value, chainAll) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__chain__ = !!chainAll; + } + + LodashWrapper.prototype = baseCreate(lodash.prototype); + LodashWrapper.prototype.constructor = LodashWrapper; + + /*------------------------------------------------------------------------*/ + + /** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } + } + + /** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function baseAssignValue(object, key, value) { + object[key] = value; + } + + /** + * The base implementation of `_.delay` and `_.defer` which accepts `args` + * to provide to `func`. + * + * @private + * @param {Function} func The function to delay. + * @param {number} wait The number of milliseconds to delay invocation. + * @param {Array} args The arguments to provide to `func`. + * @returns {number|Object} Returns the timer id or timeout object. + */ + function baseDelay(func, wait, args) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + return setTimeout(function() { func.apply(undefined, args); }, wait); + } + + /** + * The base implementation of `_.forEach` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + */ + var baseEach = createBaseEach(baseForOwn); + + /** + * The base implementation of `_.every` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false` + */ + function baseEvery(collection, predicate) { + var result = true; + baseEach(collection, function(value, index, collection) { + result = !!predicate(value, index, collection); + return result; + }); + return result; + } + + /** + * The base implementation of methods like `_.max` and `_.min` which accepts a + * `comparator` to determine the extremum value. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The iteratee invoked per iteration. + * @param {Function} comparator The comparator used to compare values. + * @returns {*} Returns the extremum value. + */ + function baseExtremum(array, iteratee, comparator) { + var index = -1, + length = array.length; + + while (++index < length) { + var value = array[index], + current = iteratee(value); + + if (current != null && (computed === undefined + ? (current === current && !false) + : comparator(current, computed) + )) { + var computed = current, + result = value; + } + } + return result; + } + + /** + * The base implementation of `_.filter` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ + function baseFilter(collection, predicate) { + var result = []; + baseEach(collection, function(value, index, collection) { + if (predicate(value, index, collection)) { + result.push(value); + } + }); + return result; + } + + /** + * The base implementation of `_.flatten` with support for restricting flattening. + * + * @private + * @param {Array} array The array to flatten. + * @param {number} depth The maximum recursion depth. + * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. + * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. + * @param {Array} [result=[]] The initial result value. + * @returns {Array} Returns the new flattened array. + */ + function baseFlatten(array, depth, predicate, isStrict, result) { + var index = -1, + length = array.length; + + predicate || (predicate = isFlattenable); + result || (result = []); + + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) { + if (depth > 1) { + // Recursively flatten arrays (susceptible to call stack limits). + baseFlatten(value, depth - 1, predicate, isStrict, result); + } else { + arrayPush(result, value); + } + } else if (!isStrict) { + result[result.length] = value; + } + } + return result; + } + + /** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ + var baseFor = createBaseFor(); + + /** + * The base implementation of `_.forOwn` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ + function baseForOwn(object, iteratee) { + return object && baseFor(object, iteratee, keys); + } + + /** + * The base implementation of `_.functions` which creates an array of + * `object` function property names filtered from `props`. + * + * @private + * @param {Object} object The object to inspect. + * @param {Array} props The property names to filter. + * @returns {Array} Returns the function names. + */ + function baseFunctions(object, props) { + return baseFilter(props, function(key) { + return isFunction(object[key]); + }); + } + + /** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + function baseGetTag(value) { + return objectToString(value); + } + + /** + * The base implementation of `_.gt` which doesn't coerce arguments. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is greater than `other`, + * else `false`. + */ + function baseGt(value, other) { + return value > other; + } + + /** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ + var baseIsArguments = noop; + + /** + * The base implementation of `_.isDate` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a date object, else `false`. + */ + function baseIsDate(value) { + return isObjectLike(value) && baseGetTag(value) == dateTag; + } + + /** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ + function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); + } + + /** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = objIsArr ? arrayTag : baseGetTag(object), + othTag = othIsArr ? arrayTag : baseGetTag(other); + + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + + stack || (stack = []); + var objStack = find(stack, function(entry) { + return entry[0] == object; + }); + var othStack = find(stack, function(entry) { + return entry[0] == other; + }); + if (objStack && othStack) { + return objStack[1] == other; + } + stack.push([object, other]); + stack.push([other, object]); + if (isSameTag && !objIsObj) { + var result = (objIsArr) + ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + stack.pop(); + return result; + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; + + var result = equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + stack.pop(); + return result; + } + } + if (!isSameTag) { + return false; + } + var result = equalObjects(object, other, bitmask, customizer, equalFunc, stack); + stack.pop(); + return result; + } + + /** + * The base implementation of `_.isRegExp` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. + */ + function baseIsRegExp(value) { + return isObjectLike(value) && baseGetTag(value) == regexpTag; + } + + /** + * The base implementation of `_.iteratee`. + * + * @private + * @param {*} [value=_.identity] The value to convert to an iteratee. + * @returns {Function} Returns the iteratee. + */ + function baseIteratee(func) { + if (typeof func == 'function') { + return func; + } + if (func == null) { + return identity; + } + return (typeof func == 'object' ? baseMatches : baseProperty)(func); + } + + /** + * The base implementation of `_.lt` which doesn't coerce arguments. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is less than `other`, + * else `false`. + */ + function baseLt(value, other) { + return value < other; + } + + /** + * The base implementation of `_.map` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function baseMap(collection, iteratee) { + var index = -1, + result = isArrayLike(collection) ? Array(collection.length) : []; + + baseEach(collection, function(value, key, collection) { + result[++index] = iteratee(value, key, collection); + }); + return result; + } + + /** + * The base implementation of `_.matches` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + */ + function baseMatches(source) { + var props = nativeKeys(source); + return function(object) { + var length = props.length; + if (object == null) { + return !length; + } + object = Object(object); + while (length--) { + var key = props[length]; + if (!(key in object && + baseIsEqual(source[key], object[key], COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG) + )) { + return false; + } + } + return true; + }; + } + + /** + * The base implementation of `_.pick` without support for individual + * property identifiers. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @returns {Object} Returns the new object. + */ + function basePick(object, props) { + object = Object(object); + return reduce(props, function(result, key) { + if (key in object) { + result[key] = object[key]; + } + return result; + }, {}); + } + + /** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ + function baseRest(func, start) { + return setToString(overRest(func, start, identity), func + ''); + } + + /** + * The base implementation of `_.slice` without an iteratee call guard. + * + * @private + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ + function baseSlice(array, start, end) { + var index = -1, + length = array.length; + + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = end > length ? length : end; + if (end < 0) { + end += length; + } + length = start > end ? 0 : ((end - start) >>> 0); + start >>>= 0; + + var result = Array(length); + while (++index < length) { + result[index] = array[index + start]; + } + return result; + } + + /** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ + function copyArray(source) { + return baseSlice(source, 0, source.length); + } + + /** + * The base implementation of `_.some` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ + function baseSome(collection, predicate) { + var result; + + baseEach(collection, function(value, index, collection) { + result = predicate(value, index, collection); + return !result; + }); + return !!result; + } + + /** + * The base implementation of `wrapperValue` which returns the result of + * performing a sequence of actions on the unwrapped `value`, where each + * successive action is supplied the return value of the previous. + * + * @private + * @param {*} value The unwrapped value. + * @param {Array} actions Actions to perform to resolve the unwrapped value. + * @returns {*} Returns the resolved value. + */ + function baseWrapperValue(value, actions) { + var result = value; + return reduce(actions, function(result, action) { + return action.func.apply(action.thisArg, arrayPush([result], action.args)); + }, result); + } + + /** + * Compares values to sort them in ascending order. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {number} Returns the sort order indicator for `value`. + */ + function compareAscending(value, other) { + if (value !== other) { + var valIsDefined = value !== undefined, + valIsNull = value === null, + valIsReflexive = value === value, + valIsSymbol = false; + + var othIsDefined = other !== undefined, + othIsNull = other === null, + othIsReflexive = other === other, + othIsSymbol = false; + + if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) || + (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) || + (valIsNull && othIsDefined && othIsReflexive) || + (!valIsDefined && othIsReflexive) || + !valIsReflexive) { + return 1; + } + if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) || + (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) || + (othIsNull && valIsDefined && valIsReflexive) || + (!othIsDefined && valIsReflexive) || + !othIsReflexive) { + return -1; + } + } + return 0; + } + + /** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ + function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : undefined; + + if (newValue === undefined) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } + } + return object; + } + + /** + * Creates a function like `_.assign`. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ + function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, + length = sources.length, + customizer = length > 1 ? sources[length - 1] : undefined; + + customizer = (assigner.length > 3 && typeof customizer == 'function') + ? (length--, customizer) + : undefined; + + object = Object(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); + } + + /** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + if (collection == null) { + return collection; + } + if (!isArrayLike(collection)) { + return eachFunc(collection, iteratee); + } + var length = collection.length, + index = fromRight ? length : -1, + iterable = Object(collection); + + while ((fromRight ? index-- : ++index < length)) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; + } + + /** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, + iterable = Object(object), + props = keysFunc(object), + length = props.length; + + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; + } + + /** + * Creates a function that produces an instance of `Ctor` regardless of + * whether it was invoked as part of a `new` expression or by `call` or `apply`. + * + * @private + * @param {Function} Ctor The constructor to wrap. + * @returns {Function} Returns the new wrapped function. + */ + function createCtor(Ctor) { + return function() { + // Use a `switch` statement to work with class constructors. See + // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist + // for more details. + var args = arguments; + var thisBinding = baseCreate(Ctor.prototype), + result = Ctor.apply(thisBinding, args); + + // Mimic the constructor's `return` behavior. + // See https://es5.github.io/#x13.2.2 for more details. + return isObject(result) ? result : thisBinding; + }; + } + + /** + * Creates a `_.find` or `_.findLast` function. + * + * @private + * @param {Function} findIndexFunc The function to find the collection index. + * @returns {Function} Returns the new find function. + */ + function createFind(findIndexFunc) { + return function(collection, predicate, fromIndex) { + var iterable = Object(collection); + if (!isArrayLike(collection)) { + var iteratee = baseIteratee(predicate, 3); + collection = keys(collection); + predicate = function(key) { return iteratee(iterable[key], key, iterable); }; + } + var index = findIndexFunc(collection, predicate, fromIndex); + return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; + }; + } + + /** + * Creates a function that wraps `func` to invoke it with the `this` binding + * of `thisArg` and `partials` prepended to the arguments it receives. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} partials The arguments to prepend to those provided to + * the new function. + * @returns {Function} Returns the new wrapped function. + */ + function createPartial(func, bitmask, thisArg, partials) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + var isBind = bitmask & WRAP_BIND_FLAG, + Ctor = createCtor(func); + + function wrapper() { + var argsIndex = -1, + argsLength = arguments.length, + leftIndex = -1, + leftLength = partials.length, + args = Array(leftLength + argsLength), + fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; + + while (++leftIndex < leftLength) { + args[leftIndex] = partials[leftIndex]; + } + while (argsLength--) { + args[leftIndex++] = arguments[++argsIndex]; + } + return fn.apply(isBind ? thisArg : this, args); + } + return wrapper; + } + + /** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ + function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + // Check that cyclic values are equal. + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } + var index = -1, + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG) ? [] : undefined; + + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + var compared; + if (compared !== undefined) { + if (compared) { + continue; + } + result = false; + break; + } + // Recursively compare arrays (susceptible to call stack limits). + if (seen) { + if (!baseSome(other, function(othValue, othIndex) { + if (!indexOf(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { + result = false; + break; + } + } + return result; + } + + /** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + + case boolTag: + case dateTag: + case numberTag: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq(+object, +other); + + case errorTag: + return object.name == other.name && object.message == other.message; + + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == (other + ''); + + } + return false; + } + + /** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + objProps = keys(object), + objLength = objProps.length, + othProps = keys(other), + othLength = othProps.length; + + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + // Check that cyclic values are equal. + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result = true; + + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; + + var compared; + // Recursively compare objects (susceptible to call stack limits). + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared + )) { + result = false; + break; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; + } + } + return result; + } + + /** + * A specialized version of `baseRest` which flattens the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ + function flatRest(func) { + return setToString(overRest(func, undefined, flatten), func + ''); + } + + /** + * Checks if `value` is a flattenable `arguments` object or array. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. + */ + function isFlattenable(value) { + return isArray(value) || isArguments(value); + } + + /** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ + function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); + } + + /** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ + function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { + return eq(object[index], value); + } + return false; + } + + /** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function nativeKeysIn(object) { + var result = []; + if (object != null) { + for (var key in Object(object)) { + result.push(key); + } + } + return result; + } + + /** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ + function objectToString(value) { + return nativeObjectToString.call(value); + } + + /** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ + function overRest(func, start, transform) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform(array); + return func.apply(this, otherArgs); + }; + } + + /** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + var setToString = identity; + + /*------------------------------------------------------------------------*/ + + /** + * Creates an array with all falsey values removed. The values `false`, `null`, + * `0`, `""`, `undefined`, and `NaN` are falsey. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to compact. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.compact([0, 1, false, 2, '', 3]); + * // => [1, 2, 3] + */ + function compact(array) { + return baseFilter(array, Boolean); + } + + /** + * Creates a new array concatenating `array` with any additional arrays + * and/or values. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to concatenate. + * @param {...*} [values] The values to concatenate. + * @returns {Array} Returns the new concatenated array. + * @example + * + * var array = [1]; + * var other = _.concat(array, 2, [3], [[4]]); + * + * console.log(other); + * // => [1, 2, 3, [4]] + * + * console.log(array); + * // => [1] + */ + function concat() { + var length = arguments.length; + if (!length) { + return []; + } + var args = Array(length - 1), + array = arguments[0], + index = length; + + while (index--) { + args[index - 1] = arguments[index]; + } + return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); + } + + /** + * This method is like `_.find` except that it returns the index of the first + * element `predicate` returns truthy for instead of the element itself. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.findIndex(users, function(o) { return o.user == 'barney'; }); + * // => 0 + * + * // The `_.matches` iteratee shorthand. + * _.findIndex(users, { 'user': 'fred', 'active': false }); + * // => 1 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findIndex(users, ['active', false]); + * // => 0 + * + * // The `_.property` iteratee shorthand. + * _.findIndex(users, 'active'); + * // => 2 + */ + function findIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseFindIndex(array, baseIteratee(predicate, 3), index); + } + + /** + * Flattens `array` a single level deep. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flatten([1, [2, [3, [4]], 5]]); + * // => [1, 2, [3, [4]], 5] + */ + function flatten(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, 1) : []; + } + + /** + * Recursively flattens `array`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flattenDeep([1, [2, [3, [4]], 5]]); + * // => [1, 2, 3, 4, 5] + */ + function flattenDeep(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, INFINITY) : []; + } + + /** + * Gets the first element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias first + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the first element of `array`. + * @example + * + * _.head([1, 2, 3]); + * // => 1 + * + * _.head([]); + * // => undefined + */ + function head(array) { + return (array && array.length) ? array[0] : undefined; + } + + /** + * Gets the index at which the first occurrence of `value` is found in `array` + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. If `fromIndex` is negative, it's used as the + * offset from the end of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.indexOf([1, 2, 1, 2], 2); + * // => 1 + * + * // Search from the `fromIndex`. + * _.indexOf([1, 2, 1, 2], 2, 2); + * // => 3 + */ + function indexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (typeof fromIndex == 'number') { + fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : fromIndex; + } else { + fromIndex = 0; + } + var index = (fromIndex || 0) - 1, + isReflexive = value === value; + + while (++index < length) { + var other = array[index]; + if ((isReflexive ? other === value : other !== other)) { + return index; + } + } + return -1; + } + + /** + * Gets the last element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the last element of `array`. + * @example + * + * _.last([1, 2, 3]); + * // => 3 + */ + function last(array) { + var length = array == null ? 0 : array.length; + return length ? array[length - 1] : undefined; + } + + /** + * Creates a slice of `array` from `start` up to, but not including, `end`. + * + * **Note:** This method is used instead of + * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are + * returned. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ + function slice(array, start, end) { + var length = array == null ? 0 : array.length; + start = start == null ? 0 : +start; + end = end === undefined ? length : +end; + return length ? baseSlice(array, start, end) : []; + } + + /*------------------------------------------------------------------------*/ + + /** + * Creates a `lodash` wrapper instance that wraps `value` with explicit method + * chain sequences enabled. The result of such sequences must be unwrapped + * with `_#value`. + * + * @static + * @memberOf _ + * @since 1.3.0 + * @category Seq + * @param {*} value The value to wrap. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 }, + * { 'user': 'pebbles', 'age': 1 } + * ]; + * + * var youngest = _ + * .chain(users) + * .sortBy('age') + * .map(function(o) { + * return o.user + ' is ' + o.age; + * }) + * .head() + * .value(); + * // => 'pebbles is 1' + */ + function chain(value) { + var result = lodash(value); + result.__chain__ = true; + return result; + } + + /** + * This method invokes `interceptor` and returns `value`. The interceptor + * is invoked with one argument; (value). The purpose of this method is to + * "tap into" a method chain sequence in order to modify intermediate results. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Seq + * @param {*} value The value to provide to `interceptor`. + * @param {Function} interceptor The function to invoke. + * @returns {*} Returns `value`. + * @example + * + * _([1, 2, 3]) + * .tap(function(array) { + * // Mutate input array. + * array.pop(); + * }) + * .reverse() + * .value(); + * // => [2, 1] + */ + function tap(value, interceptor) { + interceptor(value); + return value; + } + + /** + * This method is like `_.tap` except that it returns the result of `interceptor`. + * The purpose of this method is to "pass thru" values replacing intermediate + * results in a method chain sequence. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Seq + * @param {*} value The value to provide to `interceptor`. + * @param {Function} interceptor The function to invoke. + * @returns {*} Returns the result of `interceptor`. + * @example + * + * _(' abc ') + * .chain() + * .trim() + * .thru(function(value) { + * return [value]; + * }) + * .value(); + * // => ['abc'] + */ + function thru(value, interceptor) { + return interceptor(value); + } + + /** + * Creates a `lodash` wrapper instance with explicit method chain sequences enabled. + * + * @name chain + * @memberOf _ + * @since 0.1.0 + * @category Seq + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 } + * ]; + * + * // A sequence without explicit chaining. + * _(users).head(); + * // => { 'user': 'barney', 'age': 36 } + * + * // A sequence with explicit chaining. + * _(users) + * .chain() + * .head() + * .pick('user') + * .value(); + * // => { 'user': 'barney' } + */ + function wrapperChain() { + return chain(this); + } + + /** + * Executes the chain sequence to resolve the unwrapped value. + * + * @name value + * @memberOf _ + * @since 0.1.0 + * @alias toJSON, valueOf + * @category Seq + * @returns {*} Returns the resolved unwrapped value. + * @example + * + * _([1, 2, 3]).value(); + * // => [1, 2, 3] + */ + function wrapperValue() { + return baseWrapperValue(this.__wrapped__, this.__actions__); + } + + /*------------------------------------------------------------------------*/ + + /** + * Checks if `predicate` returns truthy for **all** elements of `collection`. + * Iteration is stopped once `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index|key, collection). + * + * **Note:** This method returns `true` for + * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because + * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of + * elements of empty collections. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. + * @example + * + * _.every([true, 1, null, 'yes'], Boolean); + * // => false + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.every(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // The `_.matchesProperty` iteratee shorthand. + * _.every(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.every(users, 'active'); + * // => false + */ + function every(collection, predicate, guard) { + predicate = guard ? undefined : predicate; + return baseEvery(collection, baseIteratee(predicate)); + } + + /** + * Iterates over elements of `collection`, returning an array of all elements + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * **Note:** Unlike `_.remove`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + * @see _.reject + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * _.filter(users, function(o) { return !o.active; }); + * // => objects for ['fred'] + * + * // The `_.matches` iteratee shorthand. + * _.filter(users, { 'age': 36, 'active': true }); + * // => objects for ['barney'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.filter(users, ['active', false]); + * // => objects for ['fred'] + * + * // The `_.property` iteratee shorthand. + * _.filter(users, 'active'); + * // => objects for ['barney'] + * + * // Combining several predicates using `_.overEvery` or `_.overSome`. + * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]])); + * // => objects for ['fred', 'barney'] + */ + function filter(collection, predicate) { + return baseFilter(collection, baseIteratee(predicate)); + } + + /** + * Iterates over elements of `collection`, returning the first element + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false }, + * { 'user': 'pebbles', 'age': 1, 'active': true } + * ]; + * + * _.find(users, function(o) { return o.age < 40; }); + * // => object for 'barney' + * + * // The `_.matches` iteratee shorthand. + * _.find(users, { 'age': 1, 'active': true }); + * // => object for 'pebbles' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.find(users, ['active', false]); + * // => object for 'fred' + * + * // The `_.property` iteratee shorthand. + * _.find(users, 'active'); + * // => object for 'barney' + */ + var find = createFind(findIndex); + + /** + * Iterates over elements of `collection` and invokes `iteratee` for each element. + * The iteratee is invoked with three arguments: (value, index|key, collection). + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * **Note:** As with other "Collections" methods, objects with a "length" + * property are iterated like arrays. To avoid this behavior use `_.forIn` + * or `_.forOwn` for object iteration. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias each + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + * @see _.forEachRight + * @example + * + * _.forEach([1, 2], function(value) { + * console.log(value); + * }); + * // => Logs `1` then `2`. + * + * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a' then 'b' (iteration order is not guaranteed). + */ + function forEach(collection, iteratee) { + return baseEach(collection, baseIteratee(iteratee)); + } + + /** + * Creates an array of values by running each element in `collection` thru + * `iteratee`. The iteratee is invoked with three arguments: + * (value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. + * + * The guarded methods are: + * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, + * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, + * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, + * `template`, `trim`, `trimEnd`, `trimStart`, and `words` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + * @example + * + * function square(n) { + * return n * n; + * } + * + * _.map([4, 8], square); + * // => [16, 64] + * + * _.map({ 'a': 4, 'b': 8 }, square); + * // => [16, 64] (iteration order is not guaranteed) + * + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; + * + * // The `_.property` iteratee shorthand. + * _.map(users, 'user'); + * // => ['barney', 'fred'] + */ + function map(collection, iteratee) { + return baseMap(collection, baseIteratee(iteratee)); + } + + /** + * Reduces `collection` to a value which is the accumulated result of running + * each element in `collection` thru `iteratee`, where each successive + * invocation is supplied the return value of the previous. If `accumulator` + * is not given, the first element of `collection` is used as the initial + * value. The iteratee is invoked with four arguments: + * (accumulator, value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.reduce`, `_.reduceRight`, and `_.transform`. + * + * The guarded methods are: + * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, + * and `sortBy` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @returns {*} Returns the accumulated value. + * @see _.reduceRight + * @example + * + * _.reduce([1, 2], function(sum, n) { + * return sum + n; + * }, 0); + * // => 3 + * + * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { + * (result[value] || (result[value] = [])).push(key); + * return result; + * }, {}); + * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) + */ + function reduce(collection, iteratee, accumulator) { + return baseReduce(collection, baseIteratee(iteratee), accumulator, arguments.length < 3, baseEach); + } + + /** + * Gets the size of `collection` by returning its length for array-like + * values or the number of own enumerable string keyed properties for objects. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object|string} collection The collection to inspect. + * @returns {number} Returns the collection size. + * @example + * + * _.size([1, 2, 3]); + * // => 3 + * + * _.size({ 'a': 1, 'b': 2 }); + * // => 2 + * + * _.size('pebbles'); + * // => 7 + */ + function size(collection) { + if (collection == null) { + return 0; + } + collection = isArrayLike(collection) ? collection : nativeKeys(collection); + return collection.length; + } + + /** + * Checks if `predicate` returns truthy for **any** element of `collection`. + * Iteration is stopped once `predicate` returns truthy. The predicate is + * invoked with three arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + * @example + * + * _.some([null, 0, 'yes', false], Boolean); + * // => true + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.some(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // The `_.matchesProperty` iteratee shorthand. + * _.some(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.some(users, 'active'); + * // => true + */ + function some(collection, predicate, guard) { + predicate = guard ? undefined : predicate; + return baseSome(collection, baseIteratee(predicate)); + } + + /** + * Creates an array of elements, sorted in ascending order by the results of + * running each element in a collection thru each iteratee. This method + * performs a stable sort, that is, it preserves the original sort order of + * equal elements. The iteratees are invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {...(Function|Function[])} [iteratees=[_.identity]] + * The iteratees to sort by. + * @returns {Array} Returns the new sorted array. + * @example + * + * var users = [ + * { 'user': 'fred', 'age': 48 }, + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 30 }, + * { 'user': 'barney', 'age': 34 } + * ]; + * + * _.sortBy(users, [function(o) { return o.user; }]); + * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]] + * + * _.sortBy(users, ['user', 'age']); + * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]] + */ + function sortBy(collection, iteratee) { + var index = 0; + iteratee = baseIteratee(iteratee); + + return baseMap(baseMap(collection, function(value, key, collection) { + return { 'value': value, 'index': index++, 'criteria': iteratee(value, key, collection) }; + }).sort(function(object, other) { + return compareAscending(object.criteria, other.criteria) || (object.index - other.index); + }), baseProperty('value')); + } + + /*------------------------------------------------------------------------*/ + + /** + * Creates a function that invokes `func`, with the `this` binding and arguments + * of the created function, while it's called less than `n` times. Subsequent + * calls to the created function return the result of the last `func` invocation. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {number} n The number of calls at which `func` is no longer invoked. + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * jQuery(element).on('click', _.before(5, addContactToList)); + * // => Allows adding up to 4 contacts to the list. + */ + function before(n, func) { + var result; + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n > 0) { + result = func.apply(this, arguments); + } + if (n <= 1) { + func = undefined; + } + return result; + }; + } + + /** + * Creates a function that invokes `func` with the `this` binding of `thisArg` + * and `partials` prepended to the arguments it receives. + * + * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, + * may be used as a placeholder for partially applied arguments. + * + * **Note:** Unlike native `Function#bind`, this method doesn't set the "length" + * property of bound functions. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to bind. + * @param {*} thisArg The `this` binding of `func`. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new bound function. + * @example + * + * function greet(greeting, punctuation) { + * return greeting + ' ' + this.user + punctuation; + * } + * + * var object = { 'user': 'fred' }; + * + * var bound = _.bind(greet, object, 'hi'); + * bound('!'); + * // => 'hi fred!' + * + * // Bound with placeholders. + * var bound = _.bind(greet, object, _, '!'); + * bound('hi'); + * // => 'hi fred!' + */ + var bind = baseRest(function(func, thisArg, partials) { + return createPartial(func, WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG, thisArg, partials); + }); + + /** + * Defers invoking the `func` until the current call stack has cleared. Any + * additional arguments are provided to `func` when it's invoked. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to defer. + * @param {...*} [args] The arguments to invoke `func` with. + * @returns {number} Returns the timer id. + * @example + * + * _.defer(function(text) { + * console.log(text); + * }, 'deferred'); + * // => Logs 'deferred' after one millisecond. + */ + var defer = baseRest(function(func, args) { + return baseDelay(func, 1, args); + }); + + /** + * Invokes `func` after `wait` milliseconds. Any additional arguments are + * provided to `func` when it's invoked. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to delay. + * @param {number} wait The number of milliseconds to delay invocation. + * @param {...*} [args] The arguments to invoke `func` with. + * @returns {number} Returns the timer id. + * @example + * + * _.delay(function(text) { + * console.log(text); + * }, 1000, 'later'); + * // => Logs 'later' after one second. + */ + var delay = baseRest(function(func, wait, args) { + return baseDelay(func, toNumber(wait) || 0, args); + }); + + /** + * Creates a function that negates the result of the predicate `func`. The + * `func` predicate is invoked with the `this` binding and arguments of the + * created function. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} predicate The predicate to negate. + * @returns {Function} Returns the new negated function. + * @example + * + * function isEven(n) { + * return n % 2 == 0; + * } + * + * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); + * // => [1, 3, 5] + */ + function negate(predicate) { + if (typeof predicate != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + return function() { + var args = arguments; + return !predicate.apply(this, args); + }; + } + + /** + * Creates a function that is restricted to invoking `func` once. Repeat calls + * to the function return the value of the first invocation. The `func` is + * invoked with the `this` binding and arguments of the created function. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * var initialize = _.once(createApplication); + * initialize(); + * initialize(); + * // => `createApplication` is invoked once + */ + function once(func) { + return before(2, func); + } + + /*------------------------------------------------------------------------*/ + + /** + * Creates a shallow clone of `value`. + * + * **Note:** This method is loosely based on the + * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm) + * and supports cloning arrays, array buffers, booleans, date objects, maps, + * numbers, `Object` objects, regexes, sets, strings, symbols, and typed + * arrays. The own enumerable properties of `arguments` objects are cloned + * as plain objects. An empty object is returned for uncloneable values such + * as error objects, functions, DOM nodes, and WeakMaps. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to clone. + * @returns {*} Returns the cloned value. + * @see _.cloneDeep + * @example + * + * var objects = [{ 'a': 1 }, { 'b': 2 }]; + * + * var shallow = _.clone(objects); + * console.log(shallow[0] === objects[0]); + * // => true + */ + function clone(value) { + if (!isObject(value)) { + return value; + } + return isArray(value) ? copyArray(value) : copyObject(value, nativeKeys(value)); + } + + /** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ + function eq(value, other) { + return value === other || (value !== value && other !== other); + } + + /** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ + var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); + }; + + /** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ + var isArray = Array.isArray; + + /** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ + function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); + } + + /** + * Checks if `value` is classified as a boolean primitive or object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a boolean, else `false`. + * @example + * + * _.isBoolean(false); + * // => true + * + * _.isBoolean(null); + * // => false + */ + function isBoolean(value) { + return value === true || value === false || + (isObjectLike(value) && baseGetTag(value) == boolTag); + } + + /** + * Checks if `value` is classified as a `Date` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a date object, else `false`. + * @example + * + * _.isDate(new Date); + * // => true + * + * _.isDate('Mon April 23 2012'); + * // => false + */ + var isDate = baseIsDate; + + /** + * Checks if `value` is an empty object, collection, map, or set. + * + * Objects are considered empty if they have no own enumerable string keyed + * properties. + * + * Array-like values such as `arguments` objects, arrays, buffers, strings, or + * jQuery-like collections are considered empty if they have a `length` of `0`. + * Similarly, maps and sets are considered empty if they have a `size` of `0`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is empty, else `false`. + * @example + * + * _.isEmpty(null); + * // => true + * + * _.isEmpty(true); + * // => true + * + * _.isEmpty(1); + * // => true + * + * _.isEmpty([1, 2, 3]); + * // => false + * + * _.isEmpty({ 'a': 1 }); + * // => false + */ + function isEmpty(value) { + if (isArrayLike(value) && + (isArray(value) || isString(value) || + isFunction(value.splice) || isArguments(value))) { + return !value.length; + } + return !nativeKeys(value).length; + } + + /** + * Performs a deep comparison between two values to determine if they are + * equivalent. + * + * **Note:** This method supports comparing arrays, array buffers, booleans, + * date objects, error objects, maps, numbers, `Object` objects, regexes, + * sets, strings, symbols, and typed arrays. `Object` objects are compared + * by their own, not inherited, enumerable properties. Functions and DOM + * nodes are compared by strict equality, i.e. `===`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.isEqual(object, other); + * // => true + * + * object === other; + * // => false + */ + function isEqual(value, other) { + return baseIsEqual(value, other); + } + + /** + * Checks if `value` is a finite primitive number. + * + * **Note:** This method is based on + * [`Number.isFinite`](https://mdn.io/Number/isFinite). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. + * @example + * + * _.isFinite(3); + * // => true + * + * _.isFinite(Number.MIN_VALUE); + * // => true + * + * _.isFinite(Infinity); + * // => false + * + * _.isFinite('3'); + * // => false + */ + function isFinite(value) { + return typeof value == 'number' && nativeIsFinite(value); + } + + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + if (!isObject(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; + } + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ + function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ + function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); + } + + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return value != null && typeof value == 'object'; + } + + /** + * Checks if `value` is `NaN`. + * + * **Note:** This method is based on + * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as + * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for + * `undefined` and other non-number values. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + * @example + * + * _.isNaN(NaN); + * // => true + * + * _.isNaN(new Number(NaN)); + * // => true + * + * isNaN(undefined); + * // => true + * + * _.isNaN(undefined); + * // => false + */ + function isNaN(value) { + // An `NaN` primitive is the only value that is not equal to itself. + // Perform the `toStringTag` check first to avoid errors with some + // ActiveX objects in IE. + return isNumber(value) && value != +value; + } + + /** + * Checks if `value` is `null`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `null`, else `false`. + * @example + * + * _.isNull(null); + * // => true + * + * _.isNull(void 0); + * // => false + */ + function isNull(value) { + return value === null; + } + + /** + * Checks if `value` is classified as a `Number` primitive or object. + * + * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are + * classified as numbers, use the `_.isFinite` method. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a number, else `false`. + * @example + * + * _.isNumber(3); + * // => true + * + * _.isNumber(Number.MIN_VALUE); + * // => true + * + * _.isNumber(Infinity); + * // => true + * + * _.isNumber('3'); + * // => false + */ + function isNumber(value) { + return typeof value == 'number' || + (isObjectLike(value) && baseGetTag(value) == numberTag); + } + + /** + * Checks if `value` is classified as a `RegExp` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. + * @example + * + * _.isRegExp(/abc/); + * // => true + * + * _.isRegExp('/abc/'); + * // => false + */ + var isRegExp = baseIsRegExp; + + /** + * Checks if `value` is classified as a `String` primitive or object. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a string, else `false`. + * @example + * + * _.isString('abc'); + * // => true + * + * _.isString(1); + * // => false + */ + function isString(value) { + return typeof value == 'string' || + (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); + } + + /** + * Checks if `value` is `undefined`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. + * @example + * + * _.isUndefined(void 0); + * // => true + * + * _.isUndefined(null); + * // => false + */ + function isUndefined(value) { + return value === undefined; + } + + /** + * Converts `value` to an array. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to convert. + * @returns {Array} Returns the converted array. + * @example + * + * _.toArray({ 'a': 1, 'b': 2 }); + * // => [1, 2] + * + * _.toArray('abc'); + * // => ['a', 'b', 'c'] + * + * _.toArray(1); + * // => [] + * + * _.toArray(null); + * // => [] + */ + function toArray(value) { + if (!isArrayLike(value)) { + return values(value); + } + return value.length ? copyArray(value) : []; + } + + /** + * Converts `value` to an integer. + * + * **Note:** This method is loosely based on + * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toInteger(3.2); + * // => 3 + * + * _.toInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toInteger(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toInteger('3.2'); + * // => 3 + */ + var toInteger = Number; + + /** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ + var toNumber = Number; + + /** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ + function toString(value) { + if (typeof value == 'string') { + return value; + } + return value == null ? '' : (value + ''); + } + + /*------------------------------------------------------------------------*/ + + /** + * Assigns own enumerable string keyed properties of source objects to the + * destination object. Source objects are applied from left to right. + * Subsequent sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object` and is loosely based on + * [`Object.assign`](https://mdn.io/Object/assign). + * + * @static + * @memberOf _ + * @since 0.10.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.assignIn + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * function Bar() { + * this.c = 3; + * } + * + * Foo.prototype.b = 2; + * Bar.prototype.d = 4; + * + * _.assign({ 'a': 0 }, new Foo, new Bar); + * // => { 'a': 1, 'c': 3 } + */ + var assign = createAssigner(function(object, source) { + copyObject(source, nativeKeys(source), object); + }); + + /** + * This method is like `_.assign` except that it iterates over own and + * inherited source properties. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias extend + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.assign + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * function Bar() { + * this.c = 3; + * } + * + * Foo.prototype.b = 2; + * Bar.prototype.d = 4; + * + * _.assignIn({ 'a': 0 }, new Foo, new Bar); + * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } + */ + var assignIn = createAssigner(function(object, source) { + copyObject(source, nativeKeysIn(source), object); + }); + + /** + * Creates an object that inherits from the `prototype` object. If a + * `properties` object is given, its own enumerable string keyed properties + * are assigned to the created object. + * + * @static + * @memberOf _ + * @since 2.3.0 + * @category Object + * @param {Object} prototype The object to inherit from. + * @param {Object} [properties] The properties to assign to the object. + * @returns {Object} Returns the new object. + * @example + * + * function Shape() { + * this.x = 0; + * this.y = 0; + * } + * + * function Circle() { + * Shape.call(this); + * } + * + * Circle.prototype = _.create(Shape.prototype, { + * 'constructor': Circle + * }); + * + * var circle = new Circle; + * circle instanceof Circle; + * // => true + * + * circle instanceof Shape; + * // => true + */ + function create(prototype, properties) { + var result = baseCreate(prototype); + return properties == null ? result : assign(result, properties); + } + + /** + * Assigns own and inherited enumerable string keyed properties of source + * objects to the destination object for all destination properties that + * resolve to `undefined`. Source objects are applied from left to right. + * Once a property is set, additional values of the same property are ignored. + * + * **Note:** This method mutates `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.defaultsDeep + * @example + * + * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */ + var defaults = baseRest(function(object, sources) { + object = Object(object); + + var index = -1; + var length = sources.length; + var guard = length > 2 ? sources[2] : undefined; + + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + length = 1; + } + + while (++index < length) { + var source = sources[index]; + var props = keysIn(source); + var propsIndex = -1; + var propsLength = props.length; + + while (++propsIndex < propsLength) { + var key = props[propsIndex]; + var value = object[key]; + + if (value === undefined || + (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) { + object[key] = source[key]; + } + } + } + + return object; + }); + + /** + * Checks if `path` is a direct property of `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = { 'a': { 'b': 2 } }; + * var other = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.has(object, 'a'); + * // => true + * + * _.has(object, 'a.b'); + * // => true + * + * _.has(object, ['a', 'b']); + * // => true + * + * _.has(other, 'a'); + * // => false + */ + function has(object, path) { + return object != null && hasOwnProperty.call(object, path); + } + + /** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ + var keys = nativeKeys; + + /** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ + var keysIn = nativeKeysIn; + + /** + * Creates an object composed of the picked `object` properties. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pick(object, ['a', 'c']); + * // => { 'a': 1, 'c': 3 } + */ + var pick = flatRest(function(object, paths) { + return object == null ? {} : basePick(object, paths); + }); + + /** + * This method is like `_.get` except that if the resolved value is a + * function it's invoked with the `this` binding of its parent object and + * its result is returned. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to resolve. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] }; + * + * _.result(object, 'a[0].b.c1'); + * // => 3 + * + * _.result(object, 'a[0].b.c2'); + * // => 4 + * + * _.result(object, 'a[0].b.c3', 'default'); + * // => 'default' + * + * _.result(object, 'a[0].b.c3', _.constant('default')); + * // => 'default' + */ + function result(object, path, defaultValue) { + var value = object == null ? undefined : object[path]; + if (value === undefined) { + value = defaultValue; + } + return isFunction(value) ? value.call(object) : value; + } + + /** + * Creates an array of the own enumerable string keyed property values of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property values. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.values(new Foo); + * // => [1, 2] (iteration order is not guaranteed) + * + * _.values('hi'); + * // => ['h', 'i'] + */ + function values(object) { + return object == null ? [] : baseValues(object, keys(object)); + } + + /*------------------------------------------------------------------------*/ + + /** + * Converts the characters "&", "<", ">", '"', and "'" in `string` to their + * corresponding HTML entities. + * + * **Note:** No other characters are escaped. To escape additional + * characters use a third-party library like [_he_](https://mths.be/he). + * + * Though the ">" character is escaped for symmetry, characters like + * ">" and "/" don't need escaping in HTML and have no special meaning + * unless they're part of a tag or unquoted attribute value. See + * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) + * (under "semi-related fun fact") for more details. + * + * When working with HTML you should always + * [quote attribute values](http://wonko.com/post/html-escaping) to reduce + * XSS vectors. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category String + * @param {string} [string=''] The string to escape. + * @returns {string} Returns the escaped string. + * @example + * + * _.escape('fred, barney, & pebbles'); + * // => 'fred, barney, & pebbles' + */ + function escape(string) { + string = toString(string); + return (string && reHasUnescapedHtml.test(string)) + ? string.replace(reUnescapedHtml, escapeHtmlChar) + : string; + } + + /*------------------------------------------------------------------------*/ + + /** + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true + */ + function identity(value) { + return value; + } + + /** + * Creates a function that invokes `func` with the arguments of the created + * function. If `func` is a property name, the created function returns the + * property value for a given element. If `func` is an array or object, the + * created function returns `true` for elements that contain the equivalent + * source properties, otherwise it returns `false`. + * + * @static + * @since 4.0.0 + * @memberOf _ + * @category Util + * @param {*} [func=_.identity] The value to convert to a callback. + * @returns {Function} Returns the callback. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true })); + * // => [{ 'user': 'barney', 'age': 36, 'active': true }] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.filter(users, _.iteratee(['user', 'fred'])); + * // => [{ 'user': 'fred', 'age': 40 }] + * + * // The `_.property` iteratee shorthand. + * _.map(users, _.iteratee('user')); + * // => ['barney', 'fred'] + * + * // Create custom iteratee shorthands. + * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) { + * return !_.isRegExp(func) ? iteratee(func) : function(string) { + * return func.test(string); + * }; + * }); + * + * _.filter(['abc', 'def'], /ef/); + * // => ['def'] + */ + var iteratee = baseIteratee; + + /** + * Creates a function that performs a partial deep comparison between a given + * object and `source`, returning `true` if the given object has equivalent + * property values, else `false`. + * + * **Note:** The created function is equivalent to `_.isMatch` with `source` + * partially applied. + * + * Partial comparisons will match empty array and empty object `source` + * values against any array or object value, respectively. See `_.isEqual` + * for a list of supported value comparisons. + * + * **Note:** Multiple values can be checked by combining several matchers + * using `_.overSome` + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Util + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + * @example + * + * var objects = [ + * { 'a': 1, 'b': 2, 'c': 3 }, + * { 'a': 4, 'b': 5, 'c': 6 } + * ]; + * + * _.filter(objects, _.matches({ 'a': 4, 'c': 6 })); + * // => [{ 'a': 4, 'b': 5, 'c': 6 }] + * + * // Checking for several possible values + * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })])); + * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }] + */ + function matches(source) { + return baseMatches(assign({}, source)); + } + + /** + * Adds all own enumerable string keyed function properties of a source + * object to the destination object. If `object` is a function, then methods + * are added to its prototype as well. + * + * **Note:** Use `_.runInContext` to create a pristine `lodash` function to + * avoid conflicts caused by modifying the original. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {Function|Object} [object=lodash] The destination object. + * @param {Object} source The object of functions to add. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.chain=true] Specify whether mixins are chainable. + * @returns {Function|Object} Returns `object`. + * @example + * + * function vowels(string) { + * return _.filter(string, function(v) { + * return /[aeiou]/i.test(v); + * }); + * } + * + * _.mixin({ 'vowels': vowels }); + * _.vowels('fred'); + * // => ['e'] + * + * _('fred').vowels().value(); + * // => ['e'] + * + * _.mixin({ 'vowels': vowels }, { 'chain': false }); + * _('fred').vowels(); + * // => ['e'] + */ + function mixin(object, source, options) { + var props = keys(source), + methodNames = baseFunctions(source, props); + + if (options == null && + !(isObject(source) && (methodNames.length || !props.length))) { + options = source; + source = object; + object = this; + methodNames = baseFunctions(source, keys(source)); + } + var chain = !(isObject(options) && 'chain' in options) || !!options.chain, + isFunc = isFunction(object); + + baseEach(methodNames, function(methodName) { + var func = source[methodName]; + object[methodName] = func; + if (isFunc) { + object.prototype[methodName] = function() { + var chainAll = this.__chain__; + if (chain || chainAll) { + var result = object(this.__wrapped__), + actions = result.__actions__ = copyArray(this.__actions__); + + actions.push({ 'func': func, 'args': arguments, 'thisArg': object }); + result.__chain__ = chainAll; + return result; + } + return func.apply(object, arrayPush([this.value()], arguments)); + }; + } + }); + + return object; + } + + /** + * Reverts the `_` variable to its previous value and returns a reference to + * the `lodash` function. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @returns {Function} Returns the `lodash` function. + * @example + * + * var lodash = _.noConflict(); + */ + function noConflict() { + if (root._ === this) { + root._ = oldDash; + } + return this; + } + + /** + * This method returns `undefined`. + * + * @static + * @memberOf _ + * @since 2.3.0 + * @category Util + * @example + * + * _.times(2, _.noop); + * // => [undefined, undefined] + */ + function noop() { + // No operation performed. + } + + /** + * Generates a unique ID. If `prefix` is given, the ID is appended to it. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {string} [prefix=''] The value to prefix the ID with. + * @returns {string} Returns the unique ID. + * @example + * + * _.uniqueId('contact_'); + * // => 'contact_104' + * + * _.uniqueId(); + * // => '105' + */ + function uniqueId(prefix) { + var id = ++idCounter; + return toString(prefix) + id; + } + + /*------------------------------------------------------------------------*/ + + /** + * Computes the maximum value of `array`. If `array` is empty or falsey, + * `undefined` is returned. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Math + * @param {Array} array The array to iterate over. + * @returns {*} Returns the maximum value. + * @example + * + * _.max([4, 2, 8, 6]); + * // => 8 + * + * _.max([]); + * // => undefined + */ + function max(array) { + return (array && array.length) + ? baseExtremum(array, identity, baseGt) + : undefined; + } + + /** + * Computes the minimum value of `array`. If `array` is empty or falsey, + * `undefined` is returned. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Math + * @param {Array} array The array to iterate over. + * @returns {*} Returns the minimum value. + * @example + * + * _.min([4, 2, 8, 6]); + * // => 2 + * + * _.min([]); + * // => undefined + */ + function min(array) { + return (array && array.length) + ? baseExtremum(array, identity, baseLt) + : undefined; + } + + /*------------------------------------------------------------------------*/ + + // Add methods that return wrapped values in chain sequences. + lodash.assignIn = assignIn; + lodash.before = before; + lodash.bind = bind; + lodash.chain = chain; + lodash.compact = compact; + lodash.concat = concat; + lodash.create = create; + lodash.defaults = defaults; + lodash.defer = defer; + lodash.delay = delay; + lodash.filter = filter; + lodash.flatten = flatten; + lodash.flattenDeep = flattenDeep; + lodash.iteratee = iteratee; + lodash.keys = keys; + lodash.map = map; + lodash.matches = matches; + lodash.mixin = mixin; + lodash.negate = negate; + lodash.once = once; + lodash.pick = pick; + lodash.slice = slice; + lodash.sortBy = sortBy; + lodash.tap = tap; + lodash.thru = thru; + lodash.toArray = toArray; + lodash.values = values; + + // Add aliases. + lodash.extend = assignIn; + + // Add methods to `lodash.prototype`. + mixin(lodash, lodash); + + /*------------------------------------------------------------------------*/ + + // Add methods that return unwrapped values in chain sequences. + lodash.clone = clone; + lodash.escape = escape; + lodash.every = every; + lodash.find = find; + lodash.forEach = forEach; + lodash.has = has; + lodash.head = head; + lodash.identity = identity; + lodash.indexOf = indexOf; + lodash.isArguments = isArguments; + lodash.isArray = isArray; + lodash.isBoolean = isBoolean; + lodash.isDate = isDate; + lodash.isEmpty = isEmpty; + lodash.isEqual = isEqual; + lodash.isFinite = isFinite; + lodash.isFunction = isFunction; + lodash.isNaN = isNaN; + lodash.isNull = isNull; + lodash.isNumber = isNumber; + lodash.isObject = isObject; + lodash.isRegExp = isRegExp; + lodash.isString = isString; + lodash.isUndefined = isUndefined; + lodash.last = last; + lodash.max = max; + lodash.min = min; + lodash.noConflict = noConflict; + lodash.noop = noop; + lodash.reduce = reduce; + lodash.result = result; + lodash.size = size; + lodash.some = some; + lodash.uniqueId = uniqueId; + + // Add aliases. + lodash.each = forEach; + lodash.first = head; + + mixin(lodash, (function() { + var source = {}; + baseForOwn(lodash, function(func, methodName) { + if (!hasOwnProperty.call(lodash.prototype, methodName)) { + source[methodName] = func; + } + }); + return source; + }()), { 'chain': false }); + + /*------------------------------------------------------------------------*/ + + /** + * The semantic version number. + * + * @static + * @memberOf _ + * @type {string} + */ + lodash.VERSION = VERSION; + + // Add `Array` methods to `lodash.prototype`. + baseEach(['pop', 'join', 'replace', 'reverse', 'split', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) { + var func = (/^(?:replace|split)$/.test(methodName) ? String.prototype : arrayProto)[methodName], + chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru', + retUnwrapped = /^(?:pop|join|replace|shift)$/.test(methodName); + + lodash.prototype[methodName] = function() { + var args = arguments; + if (retUnwrapped && !this.__chain__) { + var value = this.value(); + return func.apply(isArray(value) ? value : [], args); + } + return this[chainName](function(value) { + return func.apply(isArray(value) ? value : [], args); + }); + }; + }); + + // Add chain sequence methods to the `lodash` wrapper. + lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue; + + /*--------------------------------------------------------------------------*/ + + // Some AMD build optimizers, like r.js, check for condition patterns like: + if (true) { + // Expose Lodash on the global object to prevent errors when Lodash is + // loaded by a script tag in the presence of an AMD loader. + // See http://requirejs.org/docs/errors.html#mismatch for more details. + // Use `_.noConflict` to remove Lodash from the global object. + root._ = lodash; + + // Define as an anonymous module so, through path mapping, it can be + // referenced as the "underscore" module. + !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { + return lodash; + }).call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } + // Check for `exports` after `define` in case a build optimizer adds it. + else {} +}.call(this)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/eq.js": +/*!******************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/eq.js ***! + \******************************************************/ +/***/ ((module) => { + +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ +function eq(value, other) { + return value === other || (value !== value && other !== other); +} + +module.exports = eq; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/get.js": +/*!*******************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/get.js ***! + \*******************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseGet = __webpack_require__(/*! ./_baseGet */ "./build/cht-core-4-6/node_modules/lodash/_baseGet.js"); + +/** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */ +function get(object, path, defaultValue) { + var result = object == null ? undefined : baseGet(object, path); + return result === undefined ? defaultValue : result; +} + +module.exports = get; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/hasIn.js": +/*!*********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/hasIn.js ***! + \*********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseHasIn = __webpack_require__(/*! ./_baseHasIn */ "./build/cht-core-4-6/node_modules/lodash/_baseHasIn.js"), + hasPath = __webpack_require__(/*! ./_hasPath */ "./build/cht-core-4-6/node_modules/lodash/_hasPath.js"); + +/** + * Checks if `path` is a direct or inherited property of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.hasIn(object, 'a'); + * // => true + * + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false + */ +function hasIn(object, path) { + return object != null && hasPath(object, path, baseHasIn); +} + +module.exports = hasIn; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/identity.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/identity.js ***! + \************************************************************/ +/***/ ((module) => { + +/** + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true + */ +function identity(value) { + return value; +} + +module.exports = identity; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/isArguments.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isArguments.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseIsArguments = __webpack_require__(/*! ./_baseIsArguments */ "./build/cht-core-4-6/node_modules/lodash/_baseIsArguments.js"), + isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./build/cht-core-4-6/node_modules/lodash/isObjectLike.js"); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); +}; + +module.exports = isArguments; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/isArray.js": +/*!***********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isArray.js ***! + \***********************************************************/ +/***/ ((module) => { + +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ +var isArray = Array.isArray; + +module.exports = isArray; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/isArrayLike.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isArrayLike.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var isFunction = __webpack_require__(/*! ./isFunction */ "./build/cht-core-4-6/node_modules/lodash/isFunction.js"), + isLength = __webpack_require__(/*! ./isLength */ "./build/cht-core-4-6/node_modules/lodash/isLength.js"); + +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ +function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); +} + +module.exports = isArrayLike; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/isBuffer.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isBuffer.js ***! + \************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var root = __webpack_require__(/*! ./_root */ "./build/cht-core-4-6/node_modules/lodash/_root.js"), + stubFalse = __webpack_require__(/*! ./stubFalse */ "./build/cht-core-4-6/node_modules/lodash/stubFalse.js"); + +/** Detect free variable `exports`. */ +var freeExports = true && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && "object" == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Built-in value references. */ +var Buffer = moduleExports ? root.Buffer : undefined; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; + +/** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ +var isBuffer = nativeIsBuffer || stubFalse; + +module.exports = isBuffer; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/isFunction.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isFunction.js ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js"), + isObject = __webpack_require__(/*! ./isObject */ "./build/cht-core-4-6/node_modules/lodash/isObject.js"); + +/** `Object#toString` result references. */ +var asyncTag = '[object AsyncFunction]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + proxyTag = '[object Proxy]'; + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + if (!isObject(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; +} + +module.exports = isFunction; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/isLength.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isLength.js ***! + \************************************************************/ +/***/ ((module) => { + +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ +function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +module.exports = isLength; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/isObject.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isObject.js ***! + \************************************************************/ +/***/ ((module) => { + +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); +} + +module.exports = isObject; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/isObjectLike.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isObjectLike.js ***! + \****************************************************************/ +/***/ ((module) => { + +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return value != null && typeof value == 'object'; +} + +module.exports = isObjectLike; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/isSymbol.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isSymbol.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js"), + isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./build/cht-core-4-6/node_modules/lodash/isObjectLike.js"); + +/** `Object#toString` result references. */ +var symbolTag = '[object Symbol]'; + +/** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ +function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && baseGetTag(value) == symbolTag); +} + +module.exports = isSymbol; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/isTypedArray.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/isTypedArray.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseIsTypedArray = __webpack_require__(/*! ./_baseIsTypedArray */ "./build/cht-core-4-6/node_modules/lodash/_baseIsTypedArray.js"), + baseUnary = __webpack_require__(/*! ./_baseUnary */ "./build/cht-core-4-6/node_modules/lodash/_baseUnary.js"), + nodeUtil = __webpack_require__(/*! ./_nodeUtil */ "./build/cht-core-4-6/node_modules/lodash/_nodeUtil.js"); + +/* Node.js helper references. */ +var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + +/** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ +var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + +module.exports = isTypedArray; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/keys.js": +/*!********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/keys.js ***! + \********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var arrayLikeKeys = __webpack_require__(/*! ./_arrayLikeKeys */ "./build/cht-core-4-6/node_modules/lodash/_arrayLikeKeys.js"), + baseKeys = __webpack_require__(/*! ./_baseKeys */ "./build/cht-core-4-6/node_modules/lodash/_baseKeys.js"), + isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./build/cht-core-4-6/node_modules/lodash/isArrayLike.js"); + +/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ +function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); +} + +module.exports = keys; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/memoize.js": +/*!***********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/memoize.js ***! + \***********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var MapCache = __webpack_require__(/*! ./_MapCache */ "./build/cht-core-4-6/node_modules/lodash/_MapCache.js"); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ +function memoize(func, resolver) { + if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || MapCache); + return memoized; +} + +// Expose `MapCache`. +memoize.Cache = MapCache; + +module.exports = memoize; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/noop.js": +/*!********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/noop.js ***! + \********************************************************/ +/***/ ((module) => { + +/** + * This method returns `undefined`. + * + * @static + * @memberOf _ + * @since 2.3.0 + * @category Util + * @example + * + * _.times(2, _.noop); + * // => [undefined, undefined] + */ +function noop() { + // No operation performed. +} + +module.exports = noop; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/property.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/property.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseProperty = __webpack_require__(/*! ./_baseProperty */ "./build/cht-core-4-6/node_modules/lodash/_baseProperty.js"), + basePropertyDeep = __webpack_require__(/*! ./_basePropertyDeep */ "./build/cht-core-4-6/node_modules/lodash/_basePropertyDeep.js"), + isKey = __webpack_require__(/*! ./_isKey */ "./build/cht-core-4-6/node_modules/lodash/_isKey.js"), + toKey = __webpack_require__(/*! ./_toKey */ "./build/cht-core-4-6/node_modules/lodash/_toKey.js"); + +/** + * Creates a function that returns the value at `path` of a given object. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + * @example + * + * var objects = [ + * { 'a': { 'b': 2 } }, + * { 'a': { 'b': 1 } } + * ]; + * + * _.map(objects, _.property('a.b')); + * // => [2, 1] + * + * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); + * // => [1, 2] + */ +function property(path) { + return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); +} + +module.exports = property; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/stubArray.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/stubArray.js ***! + \*************************************************************/ +/***/ ((module) => { + +/** + * This method returns a new empty array. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {Array} Returns the new empty array. + * @example + * + * var arrays = _.times(2, _.stubArray); + * + * console.log(arrays); + * // => [[], []] + * + * console.log(arrays[0] === arrays[1]); + * // => false + */ +function stubArray() { + return []; +} + +module.exports = stubArray; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/stubFalse.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/stubFalse.js ***! + \*************************************************************/ +/***/ ((module) => { + +/** + * This method returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ +function stubFalse() { + return false; +} + +module.exports = stubFalse; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/toString.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/toString.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseToString = __webpack_require__(/*! ./_baseToString */ "./build/cht-core-4-6/node_modules/lodash/_baseToString.js"); + +/** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ +function toString(value) { + return value == null ? '' : baseToString(value); +} + +module.exports = toString; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/uniq.js": +/*!********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/uniq.js ***! + \********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseUniq = __webpack_require__(/*! ./_baseUniq */ "./build/cht-core-4-6/node_modules/lodash/_baseUniq.js"); + +/** + * Creates a duplicate-free version of an array, using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons, in which only the first occurrence of each element + * is kept. The order of result values is determined by the order they occur + * in the array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.uniq([2, 1, 2]); + * // => [2, 1] + */ +function uniq(array) { + return (array && array.length) ? baseUniq(array) : []; +} + +module.exports = uniq; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/lodash/uniqBy.js": +/*!**********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/lodash/uniqBy.js ***! + \**********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./build/cht-core-4-6/node_modules/lodash/_baseIteratee.js"), + baseUniq = __webpack_require__(/*! ./_baseUniq */ "./build/cht-core-4-6/node_modules/lodash/_baseUniq.js"); + +/** + * This method is like `_.uniq` except that it accepts `iteratee` which is + * invoked for each element in `array` to generate the criterion by which + * uniqueness is computed. The order of result values is determined by the + * order they occur in the array. The iteratee is invoked with one argument: + * (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.uniqBy([2.1, 1.2, 2.3], Math.floor); + * // => [2.1, 1.2] + * + * // The `_.property` iteratee shorthand. + * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 1 }, { 'x': 2 }] + */ +function uniqBy(array, iteratee) { + return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : []; +} + +module.exports = uniqBy; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/md5/md5.js": +/*!****************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/md5/md5.js ***! + \****************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +(function(){ + var crypt = __webpack_require__(/*! crypt */ "./build/cht-core-4-6/node_modules/crypt/crypt.js"), + utf8 = __webpack_require__(/*! charenc */ "./build/cht-core-4-6/node_modules/charenc/charenc.js").utf8, + isBuffer = __webpack_require__(/*! is-buffer */ "./build/cht-core-4-6/node_modules/is-buffer/index.js"), + bin = __webpack_require__(/*! charenc */ "./build/cht-core-4-6/node_modules/charenc/charenc.js").bin, + + // The core + md5 = function (message, options) { + // Convert to byte array + if (message.constructor == String) + if (options && options.encoding === 'binary') + message = bin.stringToBytes(message); + else + message = utf8.stringToBytes(message); + else if (isBuffer(message)) + message = Array.prototype.slice.call(message, 0); + else if (!Array.isArray(message) && message.constructor !== Uint8Array) + message = message.toString(); + // else, assume byte array already + + var m = crypt.bytesToWords(message), + l = message.length * 8, + a = 1732584193, + b = -271733879, + c = -1732584194, + d = 271733878; + + // Swap endian + for (var i = 0; i < m.length; i++) { + m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF | + ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00; + } + + // Padding + m[l >>> 5] |= 0x80 << (l % 32); + m[(((l + 64) >>> 9) << 4) + 14] = l; + + // Method shortcuts + var FF = md5._ff, + GG = md5._gg, + HH = md5._hh, + II = md5._ii; + + for (var i = 0; i < m.length; i += 16) { + + var aa = a, + bb = b, + cc = c, + dd = d; + + a = FF(a, b, c, d, m[i+ 0], 7, -680876936); + d = FF(d, a, b, c, m[i+ 1], 12, -389564586); + c = FF(c, d, a, b, m[i+ 2], 17, 606105819); + b = FF(b, c, d, a, m[i+ 3], 22, -1044525330); + a = FF(a, b, c, d, m[i+ 4], 7, -176418897); + d = FF(d, a, b, c, m[i+ 5], 12, 1200080426); + c = FF(c, d, a, b, m[i+ 6], 17, -1473231341); + b = FF(b, c, d, a, m[i+ 7], 22, -45705983); + a = FF(a, b, c, d, m[i+ 8], 7, 1770035416); + d = FF(d, a, b, c, m[i+ 9], 12, -1958414417); + c = FF(c, d, a, b, m[i+10], 17, -42063); + b = FF(b, c, d, a, m[i+11], 22, -1990404162); + a = FF(a, b, c, d, m[i+12], 7, 1804603682); + d = FF(d, a, b, c, m[i+13], 12, -40341101); + c = FF(c, d, a, b, m[i+14], 17, -1502002290); + b = FF(b, c, d, a, m[i+15], 22, 1236535329); + + a = GG(a, b, c, d, m[i+ 1], 5, -165796510); + d = GG(d, a, b, c, m[i+ 6], 9, -1069501632); + c = GG(c, d, a, b, m[i+11], 14, 643717713); + b = GG(b, c, d, a, m[i+ 0], 20, -373897302); + a = GG(a, b, c, d, m[i+ 5], 5, -701558691); + d = GG(d, a, b, c, m[i+10], 9, 38016083); + c = GG(c, d, a, b, m[i+15], 14, -660478335); + b = GG(b, c, d, a, m[i+ 4], 20, -405537848); + a = GG(a, b, c, d, m[i+ 9], 5, 568446438); + d = GG(d, a, b, c, m[i+14], 9, -1019803690); + c = GG(c, d, a, b, m[i+ 3], 14, -187363961); + b = GG(b, c, d, a, m[i+ 8], 20, 1163531501); + a = GG(a, b, c, d, m[i+13], 5, -1444681467); + d = GG(d, a, b, c, m[i+ 2], 9, -51403784); + c = GG(c, d, a, b, m[i+ 7], 14, 1735328473); + b = GG(b, c, d, a, m[i+12], 20, -1926607734); + + a = HH(a, b, c, d, m[i+ 5], 4, -378558); + d = HH(d, a, b, c, m[i+ 8], 11, -2022574463); + c = HH(c, d, a, b, m[i+11], 16, 1839030562); + b = HH(b, c, d, a, m[i+14], 23, -35309556); + a = HH(a, b, c, d, m[i+ 1], 4, -1530992060); + d = HH(d, a, b, c, m[i+ 4], 11, 1272893353); + c = HH(c, d, a, b, m[i+ 7], 16, -155497632); + b = HH(b, c, d, a, m[i+10], 23, -1094730640); + a = HH(a, b, c, d, m[i+13], 4, 681279174); + d = HH(d, a, b, c, m[i+ 0], 11, -358537222); + c = HH(c, d, a, b, m[i+ 3], 16, -722521979); + b = HH(b, c, d, a, m[i+ 6], 23, 76029189); + a = HH(a, b, c, d, m[i+ 9], 4, -640364487); + d = HH(d, a, b, c, m[i+12], 11, -421815835); + c = HH(c, d, a, b, m[i+15], 16, 530742520); + b = HH(b, c, d, a, m[i+ 2], 23, -995338651); + + a = II(a, b, c, d, m[i+ 0], 6, -198630844); + d = II(d, a, b, c, m[i+ 7], 10, 1126891415); + c = II(c, d, a, b, m[i+14], 15, -1416354905); + b = II(b, c, d, a, m[i+ 5], 21, -57434055); + a = II(a, b, c, d, m[i+12], 6, 1700485571); + d = II(d, a, b, c, m[i+ 3], 10, -1894986606); + c = II(c, d, a, b, m[i+10], 15, -1051523); + b = II(b, c, d, a, m[i+ 1], 21, -2054922799); + a = II(a, b, c, d, m[i+ 8], 6, 1873313359); + d = II(d, a, b, c, m[i+15], 10, -30611744); + c = II(c, d, a, b, m[i+ 6], 15, -1560198380); + b = II(b, c, d, a, m[i+13], 21, 1309151649); + a = II(a, b, c, d, m[i+ 4], 6, -145523070); + d = II(d, a, b, c, m[i+11], 10, -1120210379); + c = II(c, d, a, b, m[i+ 2], 15, 718787259); + b = II(b, c, d, a, m[i+ 9], 21, -343485551); + + a = (a + aa) >>> 0; + b = (b + bb) >>> 0; + c = (c + cc) >>> 0; + d = (d + dd) >>> 0; + } + + return crypt.endian([a, b, c, d]); + }; + + // Auxiliary functions + md5._ff = function (a, b, c, d, x, s, t) { + var n = a + (b & c | ~b & d) + (x >>> 0) + t; + return ((n << s) | (n >>> (32 - s))) + b; + }; + md5._gg = function (a, b, c, d, x, s, t) { + var n = a + (b & d | c & ~d) + (x >>> 0) + t; + return ((n << s) | (n >>> (32 - s))) + b; + }; + md5._hh = function (a, b, c, d, x, s, t) { + var n = a + (b ^ c ^ d) + (x >>> 0) + t; + return ((n << s) | (n >>> (32 - s))) + b; + }; + md5._ii = function (a, b, c, d, x, s, t) { + var n = a + (c ^ (b | ~d)) + (x >>> 0) + t; + return ((n << s) | (n >>> (32 - s))) + b; + }; + + // Package private blocksize + md5._blocksize = 16; + md5._digestsize = 16; + + module.exports = function (message, options) { + if (message === undefined || message === null) + throw new Error('Illegal argument ' + message); + + var digestbytes = crypt.wordsToBytes(md5(message, options)); + return options && options.asBytes ? digestbytes : + options && options.asString ? bin.bytesToString(digestbytes) : + crypt.bytesToHex(digestbytes); + }; + +})(); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/af.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/af.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Afrikaans [af] +//! author : Werner Mollentze : https://github.com/wernerm + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var af = moment.defineLocale('af', { + months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split( + '_' + ), + weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), + weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), + meridiemParse: /vm|nm/i, + isPM: function (input) { + return /^nm$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'vm' : 'VM'; + } else { + return isLower ? 'nm' : 'NM'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Vandag om] LT', + nextDay: '[Môre om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[Gister om] LT', + lastWeek: '[Laas] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oor %s', + past: '%s gelede', + s: "'n paar sekondes", + ss: '%d sekondes', + m: "'n minuut", + mm: '%d minute', + h: "'n uur", + hh: '%d ure', + d: "'n dag", + dd: '%d dae', + M: "'n maand", + MM: '%d maande', + y: "'n jaar", + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); // Thanks to Joris Röling : https://github.com/jjupiter + }, + week: { + dow: 1, // Maandag is die eerste dag van die week. + doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. + }, + }); + + return af; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ar-dz.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ar-dz.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Arabic (Algeria) [ar-dz] +//! author : Amine Roukh: https://github.com/Amine27 +//! author : Abdel Said: https://github.com/abdelsaid +//! author : Ahmed Elkhatib +//! author : forabi https://github.com/forabi +//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + 'جانفي', + 'فيفري', + 'مارس', + 'أفريل', + 'ماي', + 'جوان', + 'جويلية', + 'أوت', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; + + var arDz = moment.defineLocale('ar-dz', { + months: months, + monthsShort: months, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return arDz; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ar-kw.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ar-kw.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Arabic (Kuwait) [ar-kw] +//! author : Nusret Parlak: https://github.com/nusretparlak + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var arKw = moment.defineLocale('ar-kw', { + months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return arKw; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ar-ly.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ar-ly.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Arabic (Libya) [ar-ly] +//! author : Ali Hmer: https://github.com/kikoanis + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '1', + 2: '2', + 3: '3', + 4: '4', + 5: '5', + 6: '6', + 7: '7', + 8: '8', + 9: '9', + 0: '0', + }, + pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; + + var arLy = moment.defineLocale('ar-ly', { + months: months, + monthsShort: months, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return arLy; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ar-ma.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ar-ma.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Arabic (Morocco) [ar-ma] +//! author : ElFadili Yassine : https://github.com/ElFadiliY +//! author : Abdel Said : https://github.com/abdelsaid + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var arMa = moment.defineLocale('ar-ma', { + months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return arMa; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ar-sa.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ar-sa.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Arabic (Saudi Arabia) [ar-sa] +//! author : Suhail Alkowaileet : https://github.com/xsoh + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }; + + var arSa = moment.defineLocale('ar-sa', { + months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return arSa; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ar-tn.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ar-tn.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Arabic (Tunisia) [ar-tn] +//! author : Nader Toukabri : https://github.com/naderio + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var arTn = moment.defineLocale('ar-tn', { + months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + monthsShort: + 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return arTn; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ar.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ar.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Arabic [ar] +//! author : Abdel Said: https://github.com/abdelsaid +//! author : Ahmed Elkhatib +//! author : forabi https://github.com/forabi + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }, + pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; + + var ar = moment.defineLocale('ar', { + months: months, + monthsShort: months, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return ar; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/az.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/az.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Azerbaijani [az] +//! author : topchiyev : https://github.com/topchiyev + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var suffixes = { + 1: '-inci', + 5: '-inci', + 8: '-inci', + 70: '-inci', + 80: '-inci', + 2: '-nci', + 7: '-nci', + 20: '-nci', + 50: '-nci', + 3: '-üncü', + 4: '-üncü', + 100: '-üncü', + 6: '-ncı', + 9: '-uncu', + 10: '-uncu', + 30: '-uncu', + 60: '-ıncı', + 90: '-ıncı', + }; + + var az = moment.defineLocale('az', { + months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( + '_' + ), + monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), + weekdays: + 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split( + '_' + ), + weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), + weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün saat] LT', + nextDay: '[sabah saat] LT', + nextWeek: '[gələn həftə] dddd [saat] LT', + lastDay: '[dünən] LT', + lastWeek: '[keçən həftə] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s əvvəl', + s: 'bir neçə saniyə', + ss: '%d saniyə', + m: 'bir dəqiqə', + mm: '%d dəqiqə', + h: 'bir saat', + hh: '%d saat', + d: 'bir gün', + dd: '%d gün', + M: 'bir ay', + MM: '%d ay', + y: 'bir il', + yy: '%d il', + }, + meridiemParse: /gecə|səhər|gündüz|axşam/, + isPM: function (input) { + return /^(gündüz|axşam)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'gecə'; + } else if (hour < 12) { + return 'səhər'; + } else if (hour < 17) { + return 'gündüz'; + } else { + return 'axşam'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, + ordinal: function (number) { + if (number === 0) { + // special case for zero + return number + '-ıncı'; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return az; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/be.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/be.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Belarusian [be] +//! author : Dmitry Demidov : https://github.com/demidov91 +//! author: Praleska: http://praleska.pro/ +//! Author : Menelion Elensúle : https://github.com/Oire + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', + mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін', + hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін', + dd: 'дзень_дні_дзён', + MM: 'месяц_месяцы_месяцаў', + yy: 'год_гады_гадоў', + }; + if (key === 'm') { + return withoutSuffix ? 'хвіліна' : 'хвіліну'; + } else if (key === 'h') { + return withoutSuffix ? 'гадзіна' : 'гадзіну'; + } else { + return number + ' ' + plural(format[key], +number); + } + } + + var be = moment.defineLocale('be', { + months: { + format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split( + '_' + ), + standalone: + 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split( + '_' + ), + }, + monthsShort: + 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'), + weekdays: { + format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split( + '_' + ), + standalone: + 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split( + '_' + ), + isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/, + }, + weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY г.', + LLL: 'D MMMM YYYY г., HH:mm', + LLLL: 'dddd, D MMMM YYYY г., HH:mm', + }, + calendar: { + sameDay: '[Сёння ў] LT', + nextDay: '[Заўтра ў] LT', + lastDay: '[Учора ў] LT', + nextWeek: function () { + return '[У] dddd [ў] LT'; + }, + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return '[У мінулую] dddd [ў] LT'; + case 1: + case 2: + case 4: + return '[У мінулы] dddd [ў] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'праз %s', + past: '%s таму', + s: 'некалькі секунд', + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: relativeTimeWithPlural, + hh: relativeTimeWithPlural, + d: 'дзень', + dd: relativeTimeWithPlural, + M: 'месяц', + MM: relativeTimeWithPlural, + y: 'год', + yy: relativeTimeWithPlural, + }, + meridiemParse: /ночы|раніцы|дня|вечара/, + isPM: function (input) { + return /^(дня|вечара)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночы'; + } else if (hour < 12) { + return 'раніцы'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечара'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return (number % 10 === 2 || number % 10 === 3) && + number % 100 !== 12 && + number % 100 !== 13 + ? number + '-і' + : number + '-ы'; + case 'D': + return number + '-га'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return be; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/bg.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/bg.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Bulgarian [bg] +//! author : Krasen Borisov : https://github.com/kraz + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var bg = moment.defineLocale('bg', { + months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split( + '_' + ), + monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), + weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split( + '_' + ), + weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'), + weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Днес в] LT', + nextDay: '[Утре в] LT', + nextWeek: 'dddd [в] LT', + lastDay: '[Вчера в] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[Миналата] dddd [в] LT'; + case 1: + case 2: + case 4: + case 5: + return '[Миналия] dddd [в] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'след %s', + past: 'преди %s', + s: 'няколко секунди', + ss: '%d секунди', + m: 'минута', + mm: '%d минути', + h: 'час', + hh: '%d часа', + d: 'ден', + dd: '%d дена', + w: 'седмица', + ww: '%d седмици', + M: 'месец', + MM: '%d месеца', + y: 'година', + yy: '%d години', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return bg; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/bm.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/bm.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Bambara [bm] +//! author : Estelle Comment : https://github.com/estellecomment + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var bm = moment.defineLocale('bm', { + months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split( + '_' + ), + monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'), + weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), + weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'), + weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'MMMM [tile] D [san] YYYY', + LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', + LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', + }, + calendar: { + sameDay: '[Bi lɛrɛ] LT', + nextDay: '[Sini lɛrɛ] LT', + nextWeek: 'dddd [don lɛrɛ] LT', + lastDay: '[Kunu lɛrɛ] LT', + lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s kɔnɔ', + past: 'a bɛ %s bɔ', + s: 'sanga dama dama', + ss: 'sekondi %d', + m: 'miniti kelen', + mm: 'miniti %d', + h: 'lɛrɛ kelen', + hh: 'lɛrɛ %d', + d: 'tile kelen', + dd: 'tile %d', + M: 'kalo kelen', + MM: 'kalo %d', + y: 'san kelen', + yy: 'san %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return bm; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/bn-bd.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/bn-bd.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Bengali (Bangladesh) [bn-bd] +//! author : Asraf Hossain Patoary : https://github.com/ashwoolford + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '১', + 2: '২', + 3: '৩', + 4: '৪', + 5: '৫', + 6: '৬', + 7: '৭', + 8: '৮', + 9: '৯', + 0: '০', + }, + numberMap = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0', + }; + + var bnBd = moment.defineLocale('bn-bd', { + months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( + '_' + ), + monthsShort: + 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( + '_' + ), + weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( + '_' + ), + weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), + weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), + longDateFormat: { + LT: 'A h:mm সময়', + LTS: 'A h:mm:ss সময়', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm সময়', + LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', + }, + calendar: { + sameDay: '[আজ] LT', + nextDay: '[আগামীকাল] LT', + nextWeek: 'dddd, LT', + lastDay: '[গতকাল] LT', + lastWeek: '[গত] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s পরে', + past: '%s আগে', + s: 'কয়েক সেকেন্ড', + ss: '%d সেকেন্ড', + m: 'এক মিনিট', + mm: '%d মিনিট', + h: 'এক ঘন্টা', + hh: '%d ঘন্টা', + d: 'এক দিন', + dd: '%d দিন', + M: 'এক মাস', + MM: '%d মাস', + y: 'এক বছর', + yy: '%d বছর', + }, + preparse: function (string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + + meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'রাত') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ভোর') { + return hour; + } else if (meridiem === 'সকাল') { + return hour; + } else if (meridiem === 'দুপুর') { + return hour >= 3 ? hour : hour + 12; + } else if (meridiem === 'বিকাল') { + return hour + 12; + } else if (meridiem === 'সন্ধ্যা') { + return hour + 12; + } + }, + + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'রাত'; + } else if (hour < 6) { + return 'ভোর'; + } else if (hour < 12) { + return 'সকাল'; + } else if (hour < 15) { + return 'দুপুর'; + } else if (hour < 18) { + return 'বিকাল'; + } else if (hour < 20) { + return 'সন্ধ্যা'; + } else { + return 'রাত'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return bnBd; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/bn.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/bn.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Bengali [bn] +//! author : Kaushik Gandhi : https://github.com/kaushikgandhi + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '১', + 2: '২', + 3: '৩', + 4: '৪', + 5: '৫', + 6: '৬', + 7: '৭', + 8: '৮', + 9: '৯', + 0: '০', + }, + numberMap = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0', + }; + + var bn = moment.defineLocale('bn', { + months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( + '_' + ), + monthsShort: + 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( + '_' + ), + weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( + '_' + ), + weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), + weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), + longDateFormat: { + LT: 'A h:mm সময়', + LTS: 'A h:mm:ss সময়', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm সময়', + LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', + }, + calendar: { + sameDay: '[আজ] LT', + nextDay: '[আগামীকাল] LT', + nextWeek: 'dddd, LT', + lastDay: '[গতকাল] LT', + lastWeek: '[গত] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s পরে', + past: '%s আগে', + s: 'কয়েক সেকেন্ড', + ss: '%d সেকেন্ড', + m: 'এক মিনিট', + mm: '%d মিনিট', + h: 'এক ঘন্টা', + hh: '%d ঘন্টা', + d: 'এক দিন', + dd: '%d দিন', + M: 'এক মাস', + MM: '%d মাস', + y: 'এক বছর', + yy: '%d বছর', + }, + preparse: function (string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'রাত' && hour >= 4) || + (meridiem === 'দুপুর' && hour < 5) || + meridiem === 'বিকাল' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'রাত'; + } else if (hour < 10) { + return 'সকাল'; + } else if (hour < 17) { + return 'দুপুর'; + } else if (hour < 20) { + return 'বিকাল'; + } else { + return 'রাত'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return bn; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/bo.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/bo.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Tibetan [bo] +//! author : Thupten N. Chakrishar : https://github.com/vajradog + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '༡', + 2: '༢', + 3: '༣', + 4: '༤', + 5: '༥', + 6: '༦', + 7: '༧', + 8: '༨', + 9: '༩', + 0: '༠', + }, + numberMap = { + '༡': '1', + '༢': '2', + '༣': '3', + '༤': '4', + '༥': '5', + '༦': '6', + '༧': '7', + '༨': '8', + '༩': '9', + '༠': '0', + }; + + var bo = moment.defineLocale('bo', { + months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split( + '_' + ), + monthsShort: + 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split( + '_' + ), + monthsShortRegex: /^(ཟླ་\d{1,2})/, + monthsParseExact: true, + weekdays: + 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split( + '_' + ), + weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split( + '_' + ), + weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[དི་རིང] LT', + nextDay: '[སང་ཉིན] LT', + nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT', + lastDay: '[ཁ་སང] LT', + lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ལ་', + past: '%s སྔན་ལ', + s: 'ལམ་སང', + ss: '%d སྐར་ཆ།', + m: 'སྐར་མ་གཅིག', + mm: '%d སྐར་མ', + h: 'ཆུ་ཚོད་གཅིག', + hh: '%d ཆུ་ཚོད', + d: 'ཉིན་གཅིག', + dd: '%d ཉིན་', + M: 'ཟླ་བ་གཅིག', + MM: '%d ཟླ་བ', + y: 'ལོ་གཅིག', + yy: '%d ལོ', + }, + preparse: function (string) { + return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'མཚན་མོ' && hour >= 4) || + (meridiem === 'ཉིན་གུང' && hour < 5) || + meridiem === 'དགོང་དག' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'མཚན་མོ'; + } else if (hour < 10) { + return 'ཞོགས་ཀས'; + } else if (hour < 17) { + return 'ཉིན་གུང'; + } else if (hour < 20) { + return 'དགོང་དག'; + } else { + return 'མཚན་མོ'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return bo; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/br.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/br.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Breton [br] +//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function relativeTimeWithMutation(number, withoutSuffix, key) { + var format = { + mm: 'munutenn', + MM: 'miz', + dd: 'devezh', + }; + return number + ' ' + mutation(format[key], number); + } + function specialMutationForYears(number) { + switch (lastNumber(number)) { + case 1: + case 3: + case 4: + case 5: + case 9: + return number + ' bloaz'; + default: + return number + ' vloaz'; + } + } + function lastNumber(number) { + if (number > 9) { + return lastNumber(number % 10); + } + return number; + } + function mutation(text, number) { + if (number === 2) { + return softMutation(text); + } + return text; + } + function softMutation(text) { + var mutationTable = { + m: 'v', + b: 'v', + d: 'z', + }; + if (mutationTable[text.charAt(0)] === undefined) { + return text; + } + return mutationTable[text.charAt(0)] + text.substring(1); + } + + var monthsParse = [ + /^gen/i, + /^c[ʼ\']hwe/i, + /^meu/i, + /^ebr/i, + /^mae/i, + /^(mez|eve)/i, + /^gou/i, + /^eos/i, + /^gwe/i, + /^her/i, + /^du/i, + /^ker/i, + ], + monthsRegex = + /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + monthsStrictRegex = + /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, + monthsShortStrictRegex = + /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + fullWeekdaysParse = [ + /^sul/i, + /^lun/i, + /^meurzh/i, + /^merc[ʼ\']her/i, + /^yaou/i, + /^gwener/i, + /^sadorn/i, + ], + shortWeekdaysParse = [ + /^Sul/i, + /^Lun/i, + /^Meu/i, + /^Mer/i, + /^Yao/i, + /^Gwe/i, + /^Sad/i, + ], + minWeekdaysParse = [ + /^Su/i, + /^Lu/i, + /^Me([^r]|$)/i, + /^Mer/i, + /^Ya/i, + /^Gw/i, + /^Sa/i, + ]; + + var br = moment.defineLocale('br', { + months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( + '_' + ), + monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), + weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'), + weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), + weekdaysParse: minWeekdaysParse, + fullWeekdaysParse: fullWeekdaysParse, + shortWeekdaysParse: shortWeekdaysParse, + minWeekdaysParse: minWeekdaysParse, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [a viz] MMMM YYYY', + LLL: 'D [a viz] MMMM YYYY HH:mm', + LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hiziv da] LT', + nextDay: '[Warcʼhoazh da] LT', + nextWeek: 'dddd [da] LT', + lastDay: '[Decʼh da] LT', + lastWeek: 'dddd [paset da] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'a-benn %s', + past: '%s ʼzo', + s: 'un nebeud segondennoù', + ss: '%d eilenn', + m: 'ur vunutenn', + mm: relativeTimeWithMutation, + h: 'un eur', + hh: '%d eur', + d: 'un devezh', + dd: relativeTimeWithMutation, + M: 'ur miz', + MM: relativeTimeWithMutation, + y: 'ur bloaz', + yy: specialMutationForYears, + }, + dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, + ordinal: function (number) { + var output = number === 1 ? 'añ' : 'vet'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn + isPM: function (token) { + return token === 'g.m.'; + }, + meridiem: function (hour, minute, isLower) { + return hour < 12 ? 'a.m.' : 'g.m.'; + }, + }); + + return br; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/bs.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/bs.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Bosnian [bs] +//! author : Nedim Cholich : https://github.com/frontyard +//! based on (hr) translation by Bojan Marković + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } + + var bs = moment.defineLocale('bs', { + months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[jučer u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + return '[prošlu] dddd [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return bs; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ca.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ca.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Catalan [ca] +//! author : Juan G. Hurtado : https://github.com/juanghurtado + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ca = moment.defineLocale('ca', { + months: { + standalone: + 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( + '_' + ), + format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a les] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: function () { + return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextDay: function () { + return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastDay: function () { + return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [passat a ' + + (this.hours() !== 1 ? 'les' : 'la') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: "d'aquí %s", + past: 'fa %s', + s: 'uns segons', + ss: '%d segons', + m: 'un minut', + mm: '%d minuts', + h: 'una hora', + hh: '%d hores', + d: 'un dia', + dd: '%d dies', + M: 'un mes', + MM: '%d mesos', + y: 'un any', + yy: '%d anys', + }, + dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, + ordinal: function (number, period) { + var output = + number === 1 + ? 'r' + : number === 2 + ? 'n' + : number === 3 + ? 'r' + : number === 4 + ? 't' + : 'è'; + if (period === 'w' || period === 'W') { + output = 'a'; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return ca; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/cs.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/cs.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Czech [cs] +//! author : petrbela : https://github.com/petrbela + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = { + format: 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split( + '_' + ), + standalone: + 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split( + '_' + ), + }, + monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'), + monthsParse = [ + /^led/i, + /^úno/i, + /^bře/i, + /^dub/i, + /^kvě/i, + /^(čvn|červen$|června)/i, + /^(čvc|červenec|července)/i, + /^srp/i, + /^zář/i, + /^říj/i, + /^lis/i, + /^pro/i, + ], + // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. + // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. + monthsRegex = + /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i; + + function plural(n) { + return n > 1 && n < 5 && ~~(n / 10) !== 1; + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'sekundy' : 'sekund'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'minuty' : 'minut'); + } else { + return result + 'minutami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hodin'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'den' : 'dnem'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dny' : 'dní'); + } else { + return result + 'dny'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'měsíc' : 'měsícem'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'měsíce' : 'měsíců'); + } else { + return result + 'měsíci'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokem'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'let'); + } else { + return result + 'lety'; + } + } + } + + var cs = moment.defineLocale('cs', { + months: months, + monthsShort: monthsShort, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. + // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. + monthsStrictRegex: + /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i, + monthsShortStrictRegex: + /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'), + weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'), + weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + l: 'D. M. YYYY', + }, + calendar: { + sameDay: '[dnes v] LT', + nextDay: '[zítra v] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v neděli v] LT'; + case 1: + case 2: + return '[v] dddd [v] LT'; + case 3: + return '[ve středu v] LT'; + case 4: + return '[ve čtvrtek v] LT'; + case 5: + return '[v pátek v] LT'; + case 6: + return '[v sobotu v] LT'; + } + }, + lastDay: '[včera v] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulou neděli v] LT'; + case 1: + case 2: + return '[minulé] dddd [v] LT'; + case 3: + return '[minulou středu v] LT'; + case 4: + case 5: + return '[minulý] dddd [v] LT'; + case 6: + return '[minulou sobotu v] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'před %s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return cs; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/cv.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/cv.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Chuvash [cv] +//! author : Anatoly Mironov : https://github.com/mirontoli + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var cv = moment.defineLocale('cv', { + months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split( + '_' + ), + monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), + weekdays: + 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split( + '_' + ), + weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), + weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', + LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + }, + calendar: { + sameDay: '[Паян] LT [сехетре]', + nextDay: '[Ыран] LT [сехетре]', + lastDay: '[Ӗнер] LT [сехетре]', + nextWeek: '[Ҫитес] dddd LT [сехетре]', + lastWeek: '[Иртнӗ] dddd LT [сехетре]', + sameElse: 'L', + }, + relativeTime: { + future: function (output) { + var affix = /сехет$/i.exec(output) + ? 'рен' + : /ҫул$/i.exec(output) + ? 'тан' + : 'ран'; + return output + affix; + }, + past: '%s каялла', + s: 'пӗр-ик ҫеккунт', + ss: '%d ҫеккунт', + m: 'пӗр минут', + mm: '%d минут', + h: 'пӗр сехет', + hh: '%d сехет', + d: 'пӗр кун', + dd: '%d кун', + M: 'пӗр уйӑх', + MM: '%d уйӑх', + y: 'пӗр ҫул', + yy: '%d ҫул', + }, + dayOfMonthOrdinalParse: /\d{1,2}-мӗш/, + ordinal: '%d-мӗш', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return cv; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/cy.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/cy.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Welsh [cy] +//! author : Robert Allen : https://github.com/robgallen +//! author : https://github.com/ryangreaves + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var cy = moment.defineLocale('cy', { + months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( + '_' + ), + monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( + '_' + ), + weekdays: + 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( + '_' + ), + weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), + weekdaysParseExact: true, + // time formats are the same as en-gb + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Heddiw am] LT', + nextDay: '[Yfory am] LT', + nextWeek: 'dddd [am] LT', + lastDay: '[Ddoe am] LT', + lastWeek: 'dddd [diwethaf am] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'mewn %s', + past: '%s yn ôl', + s: 'ychydig eiliadau', + ss: '%d eiliad', + m: 'munud', + mm: '%d munud', + h: 'awr', + hh: '%d awr', + d: 'diwrnod', + dd: '%d diwrnod', + M: 'mis', + MM: '%d mis', + y: 'blwyddyn', + yy: '%d flynedd', + }, + dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, + // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh + ordinal: function (number) { + var b = number, + output = '', + lookup = [ + '', + 'af', + 'il', + 'ydd', + 'ydd', + 'ed', + 'ed', + 'ed', + 'fed', + 'fed', + 'fed', // 1af to 10fed + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'fed', // 11eg to 20fed + ]; + if (b > 20) { + if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { + output = 'fed'; // not 30ain, 70ain or 90ain + } else { + output = 'ain'; + } + } else if (b > 0) { + output = lookup[b]; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return cy; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/da.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/da.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Danish [da] +//! author : Ulrik Nielsen : https://github.com/mrbase + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var da = moment.defineLocale('da', { + months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'), + weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'på dddd [kl.] LT', + lastDay: '[i går kl.] LT', + lastWeek: '[i] dddd[s kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'få sekunder', + ss: '%d sekunder', + m: 'et minut', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dage', + M: 'en måned', + MM: '%d måneder', + y: 'et år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return da; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/de-at.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/de-at.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : German (Austria) [de-at] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elensúle: https://github.com/Oire +//! author : Martin Groller : https://github.com/MadMG +//! author : Mikolaj Dadela : https://github.com/mik01aj + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + var deAt = moment.defineLocale('de-at', { + months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return deAt; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/de-ch.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/de-ch.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : German (Switzerland) [de-ch] +//! author : sschueller : https://github.com/sschueller + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + var deCh = moment.defineLocale('de-ch', { + months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return deCh; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/de.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/de.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : German [de] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elensúle: https://github.com/Oire +//! author : Mikolaj Dadela : https://github.com/mik01aj + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + var de = moment.defineLocale('de', { + months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return de; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/dv.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/dv.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Maldivian [dv] +//! author : Jawish Hameed : https://github.com/jawish + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = [ + 'ޖެނުއަރީ', + 'ފެބްރުއަރީ', + 'މާރިޗު', + 'އޭޕްރީލު', + 'މޭ', + 'ޖޫން', + 'ޖުލައި', + 'އޯގަސްޓު', + 'ސެޕްޓެމްބަރު', + 'އޮކްޓޯބަރު', + 'ނޮވެމްބަރު', + 'ޑިސެމްބަރު', + ], + weekdays = [ + 'އާދިއްތަ', + 'ހޯމަ', + 'އަންގާރަ', + 'ބުދަ', + 'ބުރާސްފަތި', + 'ހުކުރު', + 'ހޮނިހިރު', + ]; + + var dv = moment.defineLocale('dv', { + months: months, + monthsShort: months, + weekdays: weekdays, + weekdaysShort: weekdays, + weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/M/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /މކ|މފ/, + isPM: function (input) { + return 'މފ' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'މކ'; + } else { + return 'މފ'; + } + }, + calendar: { + sameDay: '[މިއަދު] LT', + nextDay: '[މާދަމާ] LT', + nextWeek: 'dddd LT', + lastDay: '[އިއްޔެ] LT', + lastWeek: '[ފާއިތުވި] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ތެރޭގައި %s', + past: 'ކުރިން %s', + s: 'ސިކުންތުކޮޅެއް', + ss: 'd% ސިކުންތު', + m: 'މިނިޓެއް', + mm: 'މިނިޓު %d', + h: 'ގަޑިއިރެއް', + hh: 'ގަޑިއިރު %d', + d: 'ދުވަހެއް', + dd: 'ދުވަސް %d', + M: 'މަހެއް', + MM: 'މަސް %d', + y: 'އަހަރެއް', + yy: 'އަހަރު %d', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 7, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return dv; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/el.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/el.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Greek [el] +//! author : Aggelos Karalias : https://github.com/mehiel + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); + } + + var el = moment.defineLocale('el', { + monthsNominativeEl: + 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split( + '_' + ), + monthsGenitiveEl: + 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split( + '_' + ), + months: function (momentToFormat, format) { + if (!momentToFormat) { + return this._monthsNominativeEl; + } else if ( + typeof format === 'string' && + /D/.test(format.substring(0, format.indexOf('MMMM'))) + ) { + // if there is a day number before 'MMMM' + return this._monthsGenitiveEl[momentToFormat.month()]; + } else { + return this._monthsNominativeEl[momentToFormat.month()]; + } + }, + monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), + weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split( + '_' + ), + weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), + weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'μμ' : 'ΜΜ'; + } else { + return isLower ? 'πμ' : 'ΠΜ'; + } + }, + isPM: function (input) { + return (input + '').toLowerCase()[0] === 'μ'; + }, + meridiemParse: /[ΠΜ]\.?Μ?\.?/i, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendarEl: { + sameDay: '[Σήμερα {}] LT', + nextDay: '[Αύριο {}] LT', + nextWeek: 'dddd [{}] LT', + lastDay: '[Χθες {}] LT', + lastWeek: function () { + switch (this.day()) { + case 6: + return '[το προηγούμενο] dddd [{}] LT'; + default: + return '[την προηγούμενη] dddd [{}] LT'; + } + }, + sameElse: 'L', + }, + calendar: function (key, mom) { + var output = this._calendarEl[key], + hours = mom && mom.hours(); + if (isFunction(output)) { + output = output.apply(mom); + } + return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις'); + }, + relativeTime: { + future: 'σε %s', + past: '%s πριν', + s: 'λίγα δευτερόλεπτα', + ss: '%d δευτερόλεπτα', + m: 'ένα λεπτό', + mm: '%d λεπτά', + h: 'μία ώρα', + hh: '%d ώρες', + d: 'μία μέρα', + dd: '%d μέρες', + M: 'ένας μήνας', + MM: '%d μήνες', + y: 'ένας χρόνος', + yy: '%d χρόνια', + }, + dayOfMonthOrdinalParse: /\d{1,2}η/, + ordinal: '%dη', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4st is the first week of the year. + }, + }); + + return el; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/en-au.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/en-au.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : English (Australia) [en-au] +//! author : Jared Morse : https://github.com/jarcoal + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enAu = moment.defineLocale('en-au', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return enAu; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/en-ca.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/en-ca.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : English (Canada) [en-ca] +//! author : Jonathan Abourbih : https://github.com/jonbca + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enCa = moment.defineLocale('en-ca', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'YYYY-MM-DD', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + return enCa; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/en-gb.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/en-gb.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : English (United Kingdom) [en-gb] +//! author : Chris Gedrim : https://github.com/chrisgedrim + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enGb = moment.defineLocale('en-gb', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return enGb; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/en-ie.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/en-ie.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : English (Ireland) [en-ie] +//! author : Chris Cartlidge : https://github.com/chriscartlidge + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enIe = moment.defineLocale('en-ie', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return enIe; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/en-il.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/en-il.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : English (Israel) [en-il] +//! author : Chris Gedrim : https://github.com/chrisgedrim + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enIl = moment.defineLocale('en-il', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + return enIl; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/en-in.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/en-in.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : English (India) [en-in] +//! author : Jatin Agrawal : https://github.com/jatinag22 + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enIn = moment.defineLocale('en-in', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 1st is the first week of the year. + }, + }); + + return enIn; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/en-nz.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/en-nz.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : English (New Zealand) [en-nz] +//! author : Luke McGregor : https://github.com/lukemcgregor + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enNz = moment.defineLocale('en-nz', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return enNz; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/en-sg.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/en-sg.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : English (Singapore) [en-sg] +//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enSg = moment.defineLocale('en-sg', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return enSg; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/eo.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/eo.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Esperanto [eo] +//! author : Colin Dean : https://github.com/colindean +//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia +//! comment : miestasmia corrected the translation by colindean +//! comment : Vivakvo corrected the translation by colindean and miestasmia + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var eo = moment.defineLocale('eo', { + months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split( + '_' + ), + monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'), + weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'), + weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'), + weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: '[la] D[-an de] MMMM, YYYY', + LLL: '[la] D[-an de] MMMM, YYYY HH:mm', + LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', + llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', + }, + meridiemParse: /[ap]\.t\.m/i, + isPM: function (input) { + return input.charAt(0).toLowerCase() === 'p'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'p.t.m.' : 'P.T.M.'; + } else { + return isLower ? 'a.t.m.' : 'A.T.M.'; + } + }, + calendar: { + sameDay: '[Hodiaŭ je] LT', + nextDay: '[Morgaŭ je] LT', + nextWeek: 'dddd[n je] LT', + lastDay: '[Hieraŭ je] LT', + lastWeek: '[pasintan] dddd[n je] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'post %s', + past: 'antaŭ %s', + s: 'kelkaj sekundoj', + ss: '%d sekundoj', + m: 'unu minuto', + mm: '%d minutoj', + h: 'unu horo', + hh: '%d horoj', + d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo + dd: '%d tagoj', + M: 'unu monato', + MM: '%d monatoj', + y: 'unu jaro', + yy: '%d jaroj', + }, + dayOfMonthOrdinalParse: /\d{1,2}a/, + ordinal: '%da', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return eo; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/es-do.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/es-do.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Spanish (Dominican Republic) [es-do] + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + var esDo = moment.defineLocale('es-do', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return esDo; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/es-mx.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/es-mx.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Spanish (Mexico) [es-mx] +//! author : JC Franco : https://github.com/jcfranco + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + var esMx = moment.defineLocale('es-mx', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + invalidDate: 'Fecha inválida', + }); + + return esMx; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/es-us.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/es-us.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Spanish (United States) [es-us] +//! author : bustta : https://github.com/bustta +//! author : chrisrodz : https://github.com/chrisrodz + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + var esUs = moment.defineLocale('es-us', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'MM/DD/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return esUs; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/es.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/es.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Spanish [es] +//! author : Julio Napurí : https://github.com/julionc + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + var es = moment.defineLocale('es', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + invalidDate: 'Fecha inválida', + }); + + return es; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/et.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/et.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Estonian [et] +//! author : Henry Kehlmann : https://github.com/madhenry +//! improvements : Illimar Tambek : https://github.com/ragulka + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'], + ss: [number + 'sekundi', number + 'sekundit'], + m: ['ühe minuti', 'üks minut'], + mm: [number + ' minuti', number + ' minutit'], + h: ['ühe tunni', 'tund aega', 'üks tund'], + hh: [number + ' tunni', number + ' tundi'], + d: ['ühe päeva', 'üks päev'], + M: ['kuu aja', 'kuu aega', 'üks kuu'], + MM: [number + ' kuu', number + ' kuud'], + y: ['ühe aasta', 'aasta', 'üks aasta'], + yy: [number + ' aasta', number + ' aastat'], + }; + if (withoutSuffix) { + return format[key][2] ? format[key][2] : format[key][1]; + } + return isFuture ? format[key][0] : format[key][1]; + } + + var et = moment.defineLocale('et', { + months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( + '_' + ), + monthsShort: + 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), + weekdays: + 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split( + '_' + ), + weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), + weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Täna,] LT', + nextDay: '[Homme,] LT', + nextWeek: '[Järgmine] dddd LT', + lastDay: '[Eile,] LT', + lastWeek: '[Eelmine] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s pärast', + past: '%s tagasi', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: '%d päeva', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return et; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/eu.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/eu.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Basque [eu] +//! author : Eneko Illarramendi : https://github.com/eillarra + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var eu = moment.defineLocale('eu', { + months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( + '_' + ), + monthsShort: + 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( + '_' + ), + weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), + weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY[ko] MMMM[ren] D[a]', + LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', + LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', + l: 'YYYY-M-D', + ll: 'YYYY[ko] MMM D[a]', + lll: 'YYYY[ko] MMM D[a] HH:mm', + llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', + }, + calendar: { + sameDay: '[gaur] LT[etan]', + nextDay: '[bihar] LT[etan]', + nextWeek: 'dddd LT[etan]', + lastDay: '[atzo] LT[etan]', + lastWeek: '[aurreko] dddd LT[etan]', + sameElse: 'L', + }, + relativeTime: { + future: '%s barru', + past: 'duela %s', + s: 'segundo batzuk', + ss: '%d segundo', + m: 'minutu bat', + mm: '%d minutu', + h: 'ordu bat', + hh: '%d ordu', + d: 'egun bat', + dd: '%d egun', + M: 'hilabete bat', + MM: '%d hilabete', + y: 'urte bat', + yy: '%d urte', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return eu; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/fa.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/fa.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Persian [fa] +//! author : Ebrahim Byagowi : https://github.com/ebraminio + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '۱', + 2: '۲', + 3: '۳', + 4: '۴', + 5: '۵', + 6: '۶', + 7: '۷', + 8: '۸', + 9: '۹', + 0: '۰', + }, + numberMap = { + '۱': '1', + '۲': '2', + '۳': '3', + '۴': '4', + '۵': '5', + '۶': '6', + '۷': '7', + '۸': '8', + '۹': '9', + '۰': '0', + }; + + var fa = moment.defineLocale('fa', { + months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( + '_' + ), + monthsShort: + 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( + '_' + ), + weekdays: + 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( + '_' + ), + weekdaysShort: + 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( + '_' + ), + weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /قبل از ظهر|بعد از ظهر/, + isPM: function (input) { + return /بعد از ظهر/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'قبل از ظهر'; + } else { + return 'بعد از ظهر'; + } + }, + calendar: { + sameDay: '[امروز ساعت] LT', + nextDay: '[فردا ساعت] LT', + nextWeek: 'dddd [ساعت] LT', + lastDay: '[دیروز ساعت] LT', + lastWeek: 'dddd [پیش] [ساعت] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'در %s', + past: '%s پیش', + s: 'چند ثانیه', + ss: '%d ثانیه', + m: 'یک دقیقه', + mm: '%d دقیقه', + h: 'یک ساعت', + hh: '%d ساعت', + d: 'یک روز', + dd: '%d روز', + M: 'یک ماه', + MM: '%d ماه', + y: 'یک سال', + yy: '%d سال', + }, + preparse: function (string) { + return string + .replace(/[۰-۹]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + dayOfMonthOrdinalParse: /\d{1,2}م/, + ordinal: '%dم', + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return fa; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/fi.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/fi.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Finnish [fi] +//! author : Tarmo Aidantausta : https://github.com/bleadof + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var numbersPast = + 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split( + ' ' + ), + numbersFuture = [ + 'nolla', + 'yhden', + 'kahden', + 'kolmen', + 'neljän', + 'viiden', + 'kuuden', + numbersPast[7], + numbersPast[8], + numbersPast[9], + ]; + function translate(number, withoutSuffix, key, isFuture) { + var result = ''; + switch (key) { + case 's': + return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; + case 'ss': + result = isFuture ? 'sekunnin' : 'sekuntia'; + break; + case 'm': + return isFuture ? 'minuutin' : 'minuutti'; + case 'mm': + result = isFuture ? 'minuutin' : 'minuuttia'; + break; + case 'h': + return isFuture ? 'tunnin' : 'tunti'; + case 'hh': + result = isFuture ? 'tunnin' : 'tuntia'; + break; + case 'd': + return isFuture ? 'päivän' : 'päivä'; + case 'dd': + result = isFuture ? 'päivän' : 'päivää'; + break; + case 'M': + return isFuture ? 'kuukauden' : 'kuukausi'; + case 'MM': + result = isFuture ? 'kuukauden' : 'kuukautta'; + break; + case 'y': + return isFuture ? 'vuoden' : 'vuosi'; + case 'yy': + result = isFuture ? 'vuoden' : 'vuotta'; + break; + } + result = verbalNumber(number, isFuture) + ' ' + result; + return result; + } + function verbalNumber(number, isFuture) { + return number < 10 + ? isFuture + ? numbersFuture[number] + : numbersPast[number] + : number; + } + + var fi = moment.defineLocale('fi', { + months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( + '_' + ), + monthsShort: + 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split( + '_' + ), + weekdays: + 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( + '_' + ), + weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), + weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM[ta] YYYY', + LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm', + LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', + l: 'D.M.YYYY', + ll: 'Do MMM YYYY', + lll: 'Do MMM YYYY, [klo] HH.mm', + llll: 'ddd, Do MMM YYYY, [klo] HH.mm', + }, + calendar: { + sameDay: '[tänään] [klo] LT', + nextDay: '[huomenna] [klo] LT', + nextWeek: 'dddd [klo] LT', + lastDay: '[eilen] [klo] LT', + lastWeek: '[viime] dddd[na] [klo] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s päästä', + past: '%s sitten', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return fi; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/fil.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/fil.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Filipino [fil] +//! author : Dan Hagman : https://github.com/hagmandan +//! author : Matthew Co : https://github.com/matthewdeeco + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var fil = moment.defineLocale('fil', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return fil; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/fo.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/fo.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Faroese [fo] +//! author : Ragnar Johannesen : https://github.com/ragnar123 +//! author : Kristian Sakarisson : https://github.com/sakarisson + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var fo = moment.defineLocale('fo', { + months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdays: + 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split( + '_' + ), + weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'), + weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D. MMMM, YYYY HH:mm', + }, + calendar: { + sameDay: '[Í dag kl.] LT', + nextDay: '[Í morgin kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[Í gjár kl.] LT', + lastWeek: '[síðstu] dddd [kl] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'um %s', + past: '%s síðani', + s: 'fá sekund', + ss: '%d sekundir', + m: 'ein minuttur', + mm: '%d minuttir', + h: 'ein tími', + hh: '%d tímar', + d: 'ein dagur', + dd: '%d dagar', + M: 'ein mánaður', + MM: '%d mánaðir', + y: 'eitt ár', + yy: '%d ár', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return fo; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/fr-ca.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/fr-ca.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : French (Canada) [fr-ca] +//! author : Jonathan Abourbih : https://github.com/jonbca + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var frCa = moment.defineLocale('fr-ca', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + }); + + return frCa; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/fr-ch.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/fr-ch.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : French (Switzerland) [fr-ch] +//! author : Gaspard Bucher : https://github.com/gaspard + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var frCh = moment.defineLocale('fr-ch', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return frCh; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/fr.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/fr.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : French [fr] +//! author : John Fischer : https://github.com/jfroffice + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsStrictRegex = + /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, + monthsShortStrictRegex = + /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i, + monthsRegex = + /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, + monthsParse = [ + /^janv/i, + /^févr/i, + /^mars/i, + /^avr/i, + /^mai/i, + /^juin/i, + /^juil/i, + /^août/i, + /^sept/i, + /^oct/i, + /^nov/i, + /^déc/i, + ]; + + var fr = moment.defineLocale('fr', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + w: 'une semaine', + ww: '%d semaines', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|)/, + ordinal: function (number, period) { + switch (period) { + // TODO: Return 'e' when day of month > 1. Move this case inside + // block for masculine words below. + // See https://github.com/moment/moment/issues/3375 + case 'D': + return number + (number === 1 ? 'er' : ''); + + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return fr; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/fy.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/fy.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Frisian [fy] +//! author : Robin van der Vliet : https://github.com/robin0van0der0v + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortWithDots = + 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); + + var fy = moment.defineLocale('fy', { + months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + monthsParseExact: true, + weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( + '_' + ), + weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), + weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[hjoed om] LT', + nextDay: '[moarn om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[juster om] LT', + lastWeek: '[ôfrûne] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oer %s', + past: '%s lyn', + s: 'in pear sekonden', + ss: '%d sekonden', + m: 'ien minút', + mm: '%d minuten', + h: 'ien oere', + hh: '%d oeren', + d: 'ien dei', + dd: '%d dagen', + M: 'ien moanne', + MM: '%d moannen', + y: 'ien jier', + yy: '%d jierren', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return fy; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ga.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ga.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Irish or Irish Gaelic [ga] +//! author : André Silva : https://github.com/askpt + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = [ + 'Eanáir', + 'Feabhra', + 'Márta', + 'Aibreán', + 'Bealtaine', + 'Meitheamh', + 'Iúil', + 'Lúnasa', + 'Meán Fómhair', + 'Deireadh Fómhair', + 'Samhain', + 'Nollaig', + ], + monthsShort = [ + 'Ean', + 'Feabh', + 'Márt', + 'Aib', + 'Beal', + 'Meith', + 'Iúil', + 'Lún', + 'M.F.', + 'D.F.', + 'Samh', + 'Noll', + ], + weekdays = [ + 'Dé Domhnaigh', + 'Dé Luain', + 'Dé Máirt', + 'Dé Céadaoin', + 'Déardaoin', + 'Dé hAoine', + 'Dé Sathairn', + ], + weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'], + weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa']; + + var ga = moment.defineLocale('ga', { + months: months, + monthsShort: monthsShort, + monthsParseExact: true, + weekdays: weekdays, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Inniu ag] LT', + nextDay: '[Amárach ag] LT', + nextWeek: 'dddd [ag] LT', + lastDay: '[Inné ag] LT', + lastWeek: 'dddd [seo caite] [ag] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i %s', + past: '%s ó shin', + s: 'cúpla soicind', + ss: '%d soicind', + m: 'nóiméad', + mm: '%d nóiméad', + h: 'uair an chloig', + hh: '%d uair an chloig', + d: 'lá', + dd: '%d lá', + M: 'mí', + MM: '%d míonna', + y: 'bliain', + yy: '%d bliain', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return ga; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/gd.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/gd.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Scottish Gaelic [gd] +//! author : Jon Ashdown : https://github.com/jonashdown + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = [ + 'Am Faoilleach', + 'An Gearran', + 'Am Màrt', + 'An Giblean', + 'An Cèitean', + 'An t-Ògmhios', + 'An t-Iuchar', + 'An Lùnastal', + 'An t-Sultain', + 'An Dàmhair', + 'An t-Samhain', + 'An Dùbhlachd', + ], + monthsShort = [ + 'Faoi', + 'Gear', + 'Màrt', + 'Gibl', + 'Cèit', + 'Ògmh', + 'Iuch', + 'Lùn', + 'Sult', + 'Dàmh', + 'Samh', + 'Dùbh', + ], + weekdays = [ + 'Didòmhnaich', + 'Diluain', + 'Dimàirt', + 'Diciadain', + 'Diardaoin', + 'Dihaoine', + 'Disathairne', + ], + weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], + weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa']; + + var gd = moment.defineLocale('gd', { + months: months, + monthsShort: monthsShort, + monthsParseExact: true, + weekdays: weekdays, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[An-diugh aig] LT', + nextDay: '[A-màireach aig] LT', + nextWeek: 'dddd [aig] LT', + lastDay: '[An-dè aig] LT', + lastWeek: 'dddd [seo chaidh] [aig] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ann an %s', + past: 'bho chionn %s', + s: 'beagan diogan', + ss: '%d diogan', + m: 'mionaid', + mm: '%d mionaidean', + h: 'uair', + hh: '%d uairean', + d: 'latha', + dd: '%d latha', + M: 'mìos', + MM: '%d mìosan', + y: 'bliadhna', + yy: '%d bliadhna', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return gd; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/gl.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/gl.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Galician [gl] +//! author : Juan G. Hurtado : https://github.com/juanghurtado + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var gl = moment.defineLocale('gl', { + months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split( + '_' + ), + monthsShort: + 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; + }, + nextDay: function () { + return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; + }, + nextWeek: function () { + return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'; + }, + lastDay: function () { + return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT'; + }, + lastWeek: function () { + return ( + '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: function (str) { + if (str.indexOf('un') === 0) { + return 'n' + str; + } + return 'en ' + str; + }, + past: 'hai %s', + s: 'uns segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'unha hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + M: 'un mes', + MM: '%d meses', + y: 'un ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return gl; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/gom-deva.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/gom-deva.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Konkani Devanagari script [gom-deva] +//! author : The Discoverer : https://github.com/WikiDiscoverer + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'], + ss: [number + ' सॅकंडांनी', number + ' सॅकंड'], + m: ['एका मिणटान', 'एक मिनूट'], + mm: [number + ' मिणटांनी', number + ' मिणटां'], + h: ['एका वरान', 'एक वर'], + hh: [number + ' वरांनी', number + ' वरां'], + d: ['एका दिसान', 'एक दीस'], + dd: [number + ' दिसांनी', number + ' दीस'], + M: ['एका म्हयन्यान', 'एक म्हयनो'], + MM: [number + ' म्हयन्यानी', number + ' म्हयने'], + y: ['एका वर्सान', 'एक वर्स'], + yy: [number + ' वर्सांनी', number + ' वर्सां'], + }; + return isFuture ? format[key][0] : format[key][1]; + } + + var gomDeva = moment.defineLocale('gom-deva', { + months: { + standalone: + 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( + '_' + ), + format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'), + weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'), + weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [वाजतां]', + LTS: 'A h:mm:ss [वाजतां]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [वाजतां]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]', + llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]', + }, + calendar: { + sameDay: '[आयज] LT', + nextDay: '[फाल्यां] LT', + nextWeek: '[फुडलो] dddd[,] LT', + lastDay: '[काल] LT', + lastWeek: '[फाटलो] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s आदीं', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(वेर)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'वेर' only applies to day of the month + case 'D': + return number + 'वेर'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /राती|सकाळीं|दनपारां|सांजे/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'राती') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'सकाळीं') { + return hour; + } else if (meridiem === 'दनपारां') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'सांजे') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'राती'; + } else if (hour < 12) { + return 'सकाळीं'; + } else if (hour < 16) { + return 'दनपारां'; + } else if (hour < 20) { + return 'सांजे'; + } else { + return 'राती'; + } + }, + }); + + return gomDeva; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/gom-latn.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/gom-latn.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Konkani Latin script [gom-latn] +//! author : The Discoverer : https://github.com/WikiDiscoverer + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['thoddea sekondamni', 'thodde sekond'], + ss: [number + ' sekondamni', number + ' sekond'], + m: ['eka mintan', 'ek minut'], + mm: [number + ' mintamni', number + ' mintam'], + h: ['eka voran', 'ek vor'], + hh: [number + ' voramni', number + ' voram'], + d: ['eka disan', 'ek dis'], + dd: [number + ' disamni', number + ' dis'], + M: ['eka mhoinean', 'ek mhoino'], + MM: [number + ' mhoineamni', number + ' mhoine'], + y: ['eka vorsan', 'ek voros'], + yy: [number + ' vorsamni', number + ' vorsam'], + }; + return isFuture ? format[key][0] : format[key][1]; + } + + var gomLatn = moment.defineLocale('gom-latn', { + months: { + standalone: + 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( + '_' + ), + format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), + weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), + weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [vazta]', + LTS: 'A h:mm:ss [vazta]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [vazta]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', + llll: 'ddd, D MMM YYYY, A h:mm [vazta]', + }, + calendar: { + sameDay: '[Aiz] LT', + nextDay: '[Faleam] LT', + nextWeek: '[Fuddlo] dddd[,] LT', + lastDay: '[Kal] LT', + lastWeek: '[Fattlo] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s adim', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(er)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'er' only applies to day of the month + case 'D': + return number + 'er'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /rati|sokallim|donparam|sanje/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'rati') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'sokallim') { + return hour; + } else if (meridiem === 'donparam') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'sanje') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'rati'; + } else if (hour < 12) { + return 'sokallim'; + } else if (hour < 16) { + return 'donparam'; + } else if (hour < 20) { + return 'sanje'; + } else { + return 'rati'; + } + }, + }); + + return gomLatn; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/gu.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/gu.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Gujarati [gu] +//! author : Kaushik Thanki : https://github.com/Kaushik1987 + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '૧', + 2: '૨', + 3: '૩', + 4: '૪', + 5: '૫', + 6: '૬', + 7: '૭', + 8: '૮', + 9: '૯', + 0: '૦', + }, + numberMap = { + '૧': '1', + '૨': '2', + '૩': '3', + '૪': '4', + '૫': '5', + '૬': '6', + '૭': '7', + '૮': '8', + '૯': '9', + '૦': '0', + }; + + var gu = moment.defineLocale('gu', { + months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split( + '_' + ), + monthsShort: + 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split( + '_' + ), + weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'), + weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'), + longDateFormat: { + LT: 'A h:mm વાગ્યે', + LTS: 'A h:mm:ss વાગ્યે', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm વાગ્યે', + LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે', + }, + calendar: { + sameDay: '[આજ] LT', + nextDay: '[કાલે] LT', + nextWeek: 'dddd, LT', + lastDay: '[ગઇકાલે] LT', + lastWeek: '[પાછલા] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s મા', + past: '%s પહેલા', + s: 'અમુક પળો', + ss: '%d સેકંડ', + m: 'એક મિનિટ', + mm: '%d મિનિટ', + h: 'એક કલાક', + hh: '%d કલાક', + d: 'એક દિવસ', + dd: '%d દિવસ', + M: 'એક મહિનો', + MM: '%d મહિનો', + y: 'એક વર્ષ', + yy: '%d વર્ષ', + }, + preparse: function (string) { + return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Gujarati notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. + meridiemParse: /રાત|બપોર|સવાર|સાંજ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'રાત') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'સવાર') { + return hour; + } else if (meridiem === 'બપોર') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'સાંજ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'રાત'; + } else if (hour < 10) { + return 'સવાર'; + } else if (hour < 17) { + return 'બપોર'; + } else if (hour < 20) { + return 'સાંજ'; + } else { + return 'રાત'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return gu; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/he.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/he.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Hebrew [he] +//! author : Tomer Cohen : https://github.com/tomer +//! author : Moshe Simantov : https://github.com/DevelopmentIL +//! author : Tal Ater : https://github.com/TalAter + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var he = moment.defineLocale('he', { + months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split( + '_' + ), + monthsShort: + 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'), + weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), + weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), + weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [ב]MMMM YYYY', + LLL: 'D [ב]MMMM YYYY HH:mm', + LLLL: 'dddd, D [ב]MMMM YYYY HH:mm', + l: 'D/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[היום ב־]LT', + nextDay: '[מחר ב־]LT', + nextWeek: 'dddd [בשעה] LT', + lastDay: '[אתמול ב־]LT', + lastWeek: '[ביום] dddd [האחרון בשעה] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'בעוד %s', + past: 'לפני %s', + s: 'מספר שניות', + ss: '%d שניות', + m: 'דקה', + mm: '%d דקות', + h: 'שעה', + hh: function (number) { + if (number === 2) { + return 'שעתיים'; + } + return number + ' שעות'; + }, + d: 'יום', + dd: function (number) { + if (number === 2) { + return 'יומיים'; + } + return number + ' ימים'; + }, + M: 'חודש', + MM: function (number) { + if (number === 2) { + return 'חודשיים'; + } + return number + ' חודשים'; + }, + y: 'שנה', + yy: function (number) { + if (number === 2) { + return 'שנתיים'; + } else if (number % 10 === 0 && number !== 10) { + return number + ' שנה'; + } + return number + ' שנים'; + }, + }, + meridiemParse: + /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, + isPM: function (input) { + return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 5) { + return 'לפנות בוקר'; + } else if (hour < 10) { + return 'בבוקר'; + } else if (hour < 12) { + return isLower ? 'לפנה"צ' : 'לפני הצהריים'; + } else if (hour < 18) { + return isLower ? 'אחה"צ' : 'אחרי הצהריים'; + } else { + return 'בערב'; + } + }, + }); + + return he; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/hi.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/hi.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Hindi [hi] +//! author : Mayank Singhal : https://github.com/mayanksinghal + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }, + monthsParse = [ + /^जन/i, + /^फ़र|फर/i, + /^मार्च/i, + /^अप्रै/i, + /^मई/i, + /^जून/i, + /^जुल/i, + /^अग/i, + /^सितं|सित/i, + /^अक्टू/i, + /^नव|नवं/i, + /^दिसं|दिस/i, + ], + shortMonthsParse = [ + /^जन/i, + /^फ़र/i, + /^मार्च/i, + /^अप्रै/i, + /^मई/i, + /^जून/i, + /^जुल/i, + /^अग/i, + /^सित/i, + /^अक्टू/i, + /^नव/i, + /^दिस/i, + ]; + + var hi = moment.defineLocale('hi', { + months: { + format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split( + '_' + ), + standalone: + 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split( + '_' + ), + }, + monthsShort: + 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'), + weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), + longDateFormat: { + LT: 'A h:mm बजे', + LTS: 'A h:mm:ss बजे', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm बजे', + LLLL: 'dddd, D MMMM YYYY, A h:mm बजे', + }, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: shortMonthsParse, + + monthsRegex: + /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, + + monthsShortRegex: + /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, + + monthsStrictRegex: + /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i, + + monthsShortStrictRegex: + /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i, + + calendar: { + sameDay: '[आज] LT', + nextDay: '[कल] LT', + nextWeek: 'dddd, LT', + lastDay: '[कल] LT', + lastWeek: '[पिछले] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s में', + past: '%s पहले', + s: 'कुछ ही क्षण', + ss: '%d सेकंड', + m: 'एक मिनट', + mm: '%d मिनट', + h: 'एक घंटा', + hh: '%d घंटे', + d: 'एक दिन', + dd: '%d दिन', + M: 'एक महीने', + MM: '%d महीने', + y: 'एक वर्ष', + yy: '%d वर्ष', + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Hindi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. + meridiemParse: /रात|सुबह|दोपहर|शाम/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'रात') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'सुबह') { + return hour; + } else if (meridiem === 'दोपहर') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'शाम') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'रात'; + } else if (hour < 10) { + return 'सुबह'; + } else if (hour < 17) { + return 'दोपहर'; + } else if (hour < 20) { + return 'शाम'; + } else { + return 'रात'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return hi; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/hr.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/hr.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Croatian [hr] +//! author : Bojan Marković : https://github.com/bmarkovic + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } + + var hr = moment.defineLocale('hr', { + months: { + format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( + '_' + ), + standalone: + 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( + '_' + ), + }, + monthsShort: + 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM YYYY', + LLL: 'Do MMMM YYYY H:mm', + LLLL: 'dddd, Do MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[jučer u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prošlu] [nedjelju] [u] LT'; + case 3: + return '[prošlu] [srijedu] [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return hr; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/hu.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/hu.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Hungarian [hu] +//! author : Adam Brunner : https://github.com/adambrunner +//! author : Peter Viszt : https://github.com/passatgt + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var weekEndings = + 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' '); + function translate(number, withoutSuffix, key, isFuture) { + var num = number; + switch (key) { + case 's': + return isFuture || withoutSuffix + ? 'néhány másodperc' + : 'néhány másodperce'; + case 'ss': + return num + (isFuture || withoutSuffix) + ? ' másodperc' + : ' másodperce'; + case 'm': + return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'mm': + return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'h': + return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'hh': + return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'd': + return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'dd': + return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'M': + return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'MM': + return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'y': + return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); + case 'yy': + return num + (isFuture || withoutSuffix ? ' év' : ' éve'); + } + return ''; + } + function week(isFuture) { + return ( + (isFuture ? '' : '[múlt] ') + + '[' + + weekEndings[this.day()] + + '] LT[-kor]' + ); + } + + var hu = moment.defineLocale('hu', { + months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'), + weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), + weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY. MMMM D.', + LLL: 'YYYY. MMMM D. H:mm', + LLLL: 'YYYY. MMMM D., dddd H:mm', + }, + meridiemParse: /de|du/i, + isPM: function (input) { + return input.charAt(1).toLowerCase() === 'u'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower === true ? 'de' : 'DE'; + } else { + return isLower === true ? 'du' : 'DU'; + } + }, + calendar: { + sameDay: '[ma] LT[-kor]', + nextDay: '[holnap] LT[-kor]', + nextWeek: function () { + return week.call(this, true); + }, + lastDay: '[tegnap] LT[-kor]', + lastWeek: function () { + return week.call(this, false); + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s múlva', + past: '%s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return hu; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/hy-am.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/hy-am.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Armenian [hy-am] +//! author : Armendarabyan : https://github.com/armendarabyan + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var hyAm = moment.defineLocale('hy-am', { + months: { + format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split( + '_' + ), + standalone: + 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split( + '_' + ), + }, + monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), + weekdays: + 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split( + '_' + ), + weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY թ.', + LLL: 'D MMMM YYYY թ., HH:mm', + LLLL: 'dddd, D MMMM YYYY թ., HH:mm', + }, + calendar: { + sameDay: '[այսօր] LT', + nextDay: '[վաղը] LT', + lastDay: '[երեկ] LT', + nextWeek: function () { + return 'dddd [օրը ժամը] LT'; + }, + lastWeek: function () { + return '[անցած] dddd [օրը ժամը] LT'; + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s հետո', + past: '%s առաջ', + s: 'մի քանի վայրկյան', + ss: '%d վայրկյան', + m: 'րոպե', + mm: '%d րոպե', + h: 'ժամ', + hh: '%d ժամ', + d: 'օր', + dd: '%d օր', + M: 'ամիս', + MM: '%d ամիս', + y: 'տարի', + yy: '%d տարի', + }, + meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, + isPM: function (input) { + return /^(ցերեկվա|երեկոյան)$/.test(input); + }, + meridiem: function (hour) { + if (hour < 4) { + return 'գիշերվա'; + } else if (hour < 12) { + return 'առավոտվա'; + } else if (hour < 17) { + return 'ցերեկվա'; + } else { + return 'երեկոյան'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, + ordinal: function (number, period) { + switch (period) { + case 'DDD': + case 'w': + case 'W': + case 'DDDo': + if (number === 1) { + return number + '-ին'; + } + return number + '-րդ'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return hyAm; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/id.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/id.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Indonesian [id] +//! author : Mohammad Satrio Utomo : https://github.com/tyok +//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var id = moment.defineLocale('id', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|siang|sore|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'siang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sore' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'siang'; + } else if (hours < 19) { + return 'sore'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Besok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kemarin pukul] LT', + lastWeek: 'dddd [lalu pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lalu', + s: 'beberapa detik', + ss: '%d detik', + m: 'semenit', + mm: '%d menit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return id; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/is.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/is.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Icelandic [is] +//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function plural(n) { + if (n % 100 === 11) { + return true; + } else if (n % 10 === 1) { + return false; + } + return true; + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nokkrar sekúndur' + : 'nokkrum sekúndum'; + case 'ss': + if (plural(number)) { + return ( + result + + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum') + ); + } + return result + 'sekúnda'; + case 'm': + return withoutSuffix ? 'mínúta' : 'mínútu'; + case 'mm': + if (plural(number)) { + return ( + result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum') + ); + } else if (withoutSuffix) { + return result + 'mínúta'; + } + return result + 'mínútu'; + case 'hh': + if (plural(number)) { + return ( + result + + (withoutSuffix || isFuture + ? 'klukkustundir' + : 'klukkustundum') + ); + } + return result + 'klukkustund'; + case 'd': + if (withoutSuffix) { + return 'dagur'; + } + return isFuture ? 'dag' : 'degi'; + case 'dd': + if (plural(number)) { + if (withoutSuffix) { + return result + 'dagar'; + } + return result + (isFuture ? 'daga' : 'dögum'); + } else if (withoutSuffix) { + return result + 'dagur'; + } + return result + (isFuture ? 'dag' : 'degi'); + case 'M': + if (withoutSuffix) { + return 'mánuður'; + } + return isFuture ? 'mánuð' : 'mánuði'; + case 'MM': + if (plural(number)) { + if (withoutSuffix) { + return result + 'mánuðir'; + } + return result + (isFuture ? 'mánuði' : 'mánuðum'); + } else if (withoutSuffix) { + return result + 'mánuður'; + } + return result + (isFuture ? 'mánuð' : 'mánuði'); + case 'y': + return withoutSuffix || isFuture ? 'ár' : 'ári'; + case 'yy': + if (plural(number)) { + return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); + } + return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); + } + } + + var is = moment.defineLocale('is', { + months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'), + weekdays: + 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split( + '_' + ), + weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'), + weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', + }, + calendar: { + sameDay: '[í dag kl.] LT', + nextDay: '[á morgun kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[í gær kl.] LT', + lastWeek: '[síðasta] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'eftir %s', + past: 'fyrir %s síðan', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: 'klukkustund', + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return is; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/it-ch.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/it-ch.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Italian (Switzerland) [it-ch] +//! author : xfh : https://github.com/xfh + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var itCh = moment.defineLocale('it-ch', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Oggi alle] LT', + nextDay: '[Domani alle] LT', + nextWeek: 'dddd [alle] LT', + lastDay: '[Ieri alle] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[la scorsa] dddd [alle] LT'; + default: + return '[lo scorso] dddd [alle] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; + }, + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return itCh; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/it.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/it.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Italian [it] +//! author : Lorenzo : https://github.com/aliem +//! author: Mattia Larentis: https://github.com/nostalgiaz +//! author: Marco : https://github.com/Manfre98 + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var it = moment.defineLocale('it', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: function () { + return ( + '[Oggi a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextDay: function () { + return ( + '[Domani a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextWeek: function () { + return ( + 'dddd [a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastDay: function () { + return ( + '[Ieri a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastWeek: function () { + switch (this.day()) { + case 0: + return ( + '[La scorsa] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + default: + return ( + '[Lo scorso] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'tra %s', + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + w: 'una settimana', + ww: '%d settimane', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return it; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ja.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ja.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Japanese [ja] +//! author : LI Long : https://github.com/baryon + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ja = moment.defineLocale('ja', { + eras: [ + { + since: '2019-05-01', + offset: 1, + name: '令和', + narrow: '㋿', + abbr: 'R', + }, + { + since: '1989-01-08', + until: '2019-04-30', + offset: 1, + name: '平成', + narrow: '㍻', + abbr: 'H', + }, + { + since: '1926-12-25', + until: '1989-01-07', + offset: 1, + name: '昭和', + narrow: '㍼', + abbr: 'S', + }, + { + since: '1912-07-30', + until: '1926-12-24', + offset: 1, + name: '大正', + narrow: '㍽', + abbr: 'T', + }, + { + since: '1873-01-01', + until: '1912-07-29', + offset: 6, + name: '明治', + narrow: '㍾', + abbr: 'M', + }, + { + since: '0001-01-01', + until: '1873-12-31', + offset: 1, + name: '西暦', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: '紀元前', + narrow: 'BC', + abbr: 'BC', + }, + ], + eraYearOrdinalRegex: /(元|\d+)年/, + eraYearOrdinalParse: function (input, match) { + return match[1] === '元' ? 1 : parseInt(match[1] || input, 10); + }, + months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'), + weekdaysShort: '日_月_火_水_木_金_土'.split('_'), + weekdaysMin: '日_月_火_水_木_金_土'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日 dddd HH:mm', + l: 'YYYY/MM/DD', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日(ddd) HH:mm', + }, + meridiemParse: /午前|午後/i, + isPM: function (input) { + return input === '午後'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '午前'; + } else { + return '午後'; + } + }, + calendar: { + sameDay: '[今日] LT', + nextDay: '[明日] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[来週]dddd LT'; + } else { + return 'dddd LT'; + } + }, + lastDay: '[昨日] LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[先週]dddd LT'; + } else { + return 'dddd LT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}日/, + ordinal: function (number, period) { + switch (period) { + case 'y': + return number === 1 ? '元年' : number + '年'; + case 'd': + case 'D': + case 'DDD': + return number + '日'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '数秒', + ss: '%d秒', + m: '1分', + mm: '%d分', + h: '1時間', + hh: '%d時間', + d: '1日', + dd: '%d日', + M: '1ヶ月', + MM: '%dヶ月', + y: '1年', + yy: '%d年', + }, + }); + + return ja; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/jv.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/jv.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Javanese [jv] +//! author : Rony Lantip : https://github.com/lantip +//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var jv = moment.defineLocale('jv', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), + weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /enjing|siyang|sonten|ndalu/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'enjing') { + return hour; + } else if (meridiem === 'siyang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sonten' || meridiem === 'ndalu') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'enjing'; + } else if (hours < 15) { + return 'siyang'; + } else if (hours < 19) { + return 'sonten'; + } else { + return 'ndalu'; + } + }, + calendar: { + sameDay: '[Dinten puniko pukul] LT', + nextDay: '[Mbenjang pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kala wingi pukul] LT', + lastWeek: 'dddd [kepengker pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'wonten ing %s', + past: '%s ingkang kepengker', + s: 'sawetawis detik', + ss: '%d detik', + m: 'setunggal menit', + mm: '%d menit', + h: 'setunggal jam', + hh: '%d jam', + d: 'sedinten', + dd: '%d dinten', + M: 'sewulan', + MM: '%d wulan', + y: 'setaun', + yy: '%d taun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return jv; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ka.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ka.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Georgian [ka] +//! author : Irakli Janiashvili : https://github.com/IrakliJani + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ka = moment.defineLocale('ka', { + months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split( + '_' + ), + monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), + weekdays: { + standalone: + 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split( + '_' + ), + format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split( + '_' + ), + isFormat: /(წინა|შემდეგ)/, + }, + weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), + weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[დღეს] LT[-ზე]', + nextDay: '[ხვალ] LT[-ზე]', + lastDay: '[გუშინ] LT[-ზე]', + nextWeek: '[შემდეგ] dddd LT[-ზე]', + lastWeek: '[წინა] dddd LT-ზე', + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return s.replace( + /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, + function ($0, $1, $2) { + return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში'; + } + ); + }, + past: function (s) { + if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) { + return s.replace(/(ი|ე)$/, 'ის წინ'); + } + if (/წელი/.test(s)) { + return s.replace(/წელი$/, 'წლის წინ'); + } + return s; + }, + s: 'რამდენიმე წამი', + ss: '%d წამი', + m: 'წუთი', + mm: '%d წუთი', + h: 'საათი', + hh: '%d საათი', + d: 'დღე', + dd: '%d დღე', + M: 'თვე', + MM: '%d თვე', + y: 'წელი', + yy: '%d წელი', + }, + dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, + ordinal: function (number) { + if (number === 0) { + return number; + } + if (number === 1) { + return number + '-ლი'; + } + if ( + number < 20 || + (number <= 100 && number % 20 === 0) || + number % 100 === 0 + ) { + return 'მე-' + number; + } + return number + '-ე'; + }, + week: { + dow: 1, + doy: 7, + }, + }); + + return ka; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/kk.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/kk.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Kazakh [kk] +//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var suffixes = { + 0: '-ші', + 1: '-ші', + 2: '-ші', + 3: '-ші', + 4: '-ші', + 5: '-ші', + 6: '-шы', + 7: '-ші', + 8: '-ші', + 9: '-шы', + 10: '-шы', + 20: '-шы', + 30: '-шы', + 40: '-шы', + 50: '-ші', + 60: '-шы', + 70: '-ші', + 80: '-ші', + 90: '-шы', + 100: '-ші', + }; + + var kk = moment.defineLocale('kk', { + months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split( + '_' + ), + monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), + weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split( + '_' + ), + weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), + weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Бүгін сағат] LT', + nextDay: '[Ертең сағат] LT', + nextWeek: 'dddd [сағат] LT', + lastDay: '[Кеше сағат] LT', + lastWeek: '[Өткен аптаның] dddd [сағат] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ішінде', + past: '%s бұрын', + s: 'бірнеше секунд', + ss: '%d секунд', + m: 'бір минут', + mm: '%d минут', + h: 'бір сағат', + hh: '%d сағат', + d: 'бір күн', + dd: '%d күн', + M: 'бір ай', + MM: '%d ай', + y: 'бір жыл', + yy: '%d жыл', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return kk; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/km.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/km.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Cambodian [km] +//! author : Kruy Vanna : https://github.com/kruyvanna + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '១', + 2: '២', + 3: '៣', + 4: '៤', + 5: '៥', + 6: '៦', + 7: '៧', + 8: '៨', + 9: '៩', + 0: '០', + }, + numberMap = { + '១': '1', + '២': '2', + '៣': '3', + '៤': '4', + '៥': '5', + '៦': '6', + '៧': '7', + '៨': '8', + '៩': '9', + '០': '0', + }; + + var km = moment.defineLocale('km', { + months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( + '_' + ), + monthsShort: + 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( + '_' + ), + weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), + weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), + weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /ព្រឹក|ល្ងាច/, + isPM: function (input) { + return input === 'ល្ងាច'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ព្រឹក'; + } else { + return 'ល្ងាច'; + } + }, + calendar: { + sameDay: '[ថ្ងៃនេះ ម៉ោង] LT', + nextDay: '[ស្អែក ម៉ោង] LT', + nextWeek: 'dddd [ម៉ោង] LT', + lastDay: '[ម្សិលមិញ ម៉ោង] LT', + lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sទៀត', + past: '%sមុន', + s: 'ប៉ុន្មានវិនាទី', + ss: '%d វិនាទី', + m: 'មួយនាទី', + mm: '%d នាទី', + h: 'មួយម៉ោង', + hh: '%d ម៉ោង', + d: 'មួយថ្ងៃ', + dd: '%d ថ្ងៃ', + M: 'មួយខែ', + MM: '%d ខែ', + y: 'មួយឆ្នាំ', + yy: '%d ឆ្នាំ', + }, + dayOfMonthOrdinalParse: /ទី\d{1,2}/, + ordinal: 'ទី%d', + preparse: function (string) { + return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return km; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/kn.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/kn.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Kannada [kn] +//! author : Rajeev Naik : https://github.com/rajeevnaikte + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '೧', + 2: '೨', + 3: '೩', + 4: '೪', + 5: '೫', + 6: '೬', + 7: '೭', + 8: '೮', + 9: '೯', + 0: '೦', + }, + numberMap = { + '೧': '1', + '೨': '2', + '೩': '3', + '೪': '4', + '೫': '5', + '೬': '6', + '೭': '7', + '೮': '8', + '೯': '9', + '೦': '0', + }; + + var kn = moment.defineLocale('kn', { + months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split( + '_' + ), + monthsShort: + 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split( + '_' + ), + weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'), + weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[ಇಂದು] LT', + nextDay: '[ನಾಳೆ] LT', + nextWeek: 'dddd, LT', + lastDay: '[ನಿನ್ನೆ] LT', + lastWeek: '[ಕೊನೆಯ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ನಂತರ', + past: '%s ಹಿಂದೆ', + s: 'ಕೆಲವು ಕ್ಷಣಗಳು', + ss: '%d ಸೆಕೆಂಡುಗಳು', + m: 'ಒಂದು ನಿಮಿಷ', + mm: '%d ನಿಮಿಷ', + h: 'ಒಂದು ಗಂಟೆ', + hh: '%d ಗಂಟೆ', + d: 'ಒಂದು ದಿನ', + dd: '%d ದಿನ', + M: 'ಒಂದು ತಿಂಗಳು', + MM: '%d ತಿಂಗಳು', + y: 'ಒಂದು ವರ್ಷ', + yy: '%d ವರ್ಷ', + }, + preparse: function (string) { + return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ರಾತ್ರಿ') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') { + return hour; + } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'ಸಂಜೆ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ರಾತ್ರಿ'; + } else if (hour < 10) { + return 'ಬೆಳಿಗ್ಗೆ'; + } else if (hour < 17) { + return 'ಮಧ್ಯಾಹ್ನ'; + } else if (hour < 20) { + return 'ಸಂಜೆ'; + } else { + return 'ರಾತ್ರಿ'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/, + ordinal: function (number) { + return number + 'ನೇ'; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return kn; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ko.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ko.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Korean [ko] +//! author : Kyungwook, Park : https://github.com/kyungw00k +//! author : Jeeeyul Lee + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ko = moment.defineLocale('ko', { + months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), + monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split( + '_' + ), + weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'), + weekdaysShort: '일_월_화_수_목_금_토'.split('_'), + weekdaysMin: '일_월_화_수_목_금_토'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY년 MMMM D일', + LLL: 'YYYY년 MMMM D일 A h:mm', + LLLL: 'YYYY년 MMMM D일 dddd A h:mm', + l: 'YYYY.MM.DD.', + ll: 'YYYY년 MMMM D일', + lll: 'YYYY년 MMMM D일 A h:mm', + llll: 'YYYY년 MMMM D일 dddd A h:mm', + }, + calendar: { + sameDay: '오늘 LT', + nextDay: '내일 LT', + nextWeek: 'dddd LT', + lastDay: '어제 LT', + lastWeek: '지난주 dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 후', + past: '%s 전', + s: '몇 초', + ss: '%d초', + m: '1분', + mm: '%d분', + h: '한 시간', + hh: '%d시간', + d: '하루', + dd: '%d일', + M: '한 달', + MM: '%d달', + y: '일 년', + yy: '%d년', + }, + dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '일'; + case 'M': + return number + '월'; + case 'w': + case 'W': + return number + '주'; + default: + return number; + } + }, + meridiemParse: /오전|오후/, + isPM: function (token) { + return token === '오후'; + }, + meridiem: function (hour, minute, isUpper) { + return hour < 12 ? '오전' : '오후'; + }, + }); + + return ko; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ku.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ku.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Kurdish [ku] +//! author : Shahram Mebashar : https://github.com/ShahramMebashar + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }, + months = [ + 'کانونی دووەم', + 'شوبات', + 'ئازار', + 'نیسان', + 'ئایار', + 'حوزەیران', + 'تەمموز', + 'ئاب', + 'ئەیلوول', + 'تشرینی یەكەم', + 'تشرینی دووەم', + 'كانونی یەکەم', + ]; + + var ku = moment.defineLocale('ku', { + months: months, + monthsShort: months, + weekdays: + 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split( + '_' + ), + weekdaysShort: + 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'), + weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /ئێواره‌|به‌یانی/, + isPM: function (input) { + return /ئێواره‌/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'به‌یانی'; + } else { + return 'ئێواره‌'; + } + }, + calendar: { + sameDay: '[ئه‌مرۆ كاتژمێر] LT', + nextDay: '[به‌یانی كاتژمێر] LT', + nextWeek: 'dddd [كاتژمێر] LT', + lastDay: '[دوێنێ كاتژمێر] LT', + lastWeek: 'dddd [كاتژمێر] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'له‌ %s', + past: '%s', + s: 'چه‌ند چركه‌یه‌ك', + ss: 'چركه‌ %d', + m: 'یه‌ك خوله‌ك', + mm: '%d خوله‌ك', + h: 'یه‌ك كاتژمێر', + hh: '%d كاتژمێر', + d: 'یه‌ك ڕۆژ', + dd: '%d ڕۆژ', + M: 'یه‌ك مانگ', + MM: '%d مانگ', + y: 'یه‌ك ساڵ', + yy: '%d ساڵ', + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return ku; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ky.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ky.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Kyrgyz [ky] +//! author : Chyngyz Arystan uulu : https://github.com/chyngyz + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var suffixes = { + 0: '-чү', + 1: '-чи', + 2: '-чи', + 3: '-чү', + 4: '-чү', + 5: '-чи', + 6: '-чы', + 7: '-чи', + 8: '-чи', + 9: '-чу', + 10: '-чу', + 20: '-чы', + 30: '-чу', + 40: '-чы', + 50: '-чү', + 60: '-чы', + 70: '-чи', + 80: '-чи', + 90: '-чу', + 100: '-чү', + }; + + var ky = moment.defineLocale('ky', { + months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( + '_' + ), + monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split( + '_' + ), + weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split( + '_' + ), + weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'), + weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Бүгүн саат] LT', + nextDay: '[Эртең саат] LT', + nextWeek: 'dddd [саат] LT', + lastDay: '[Кечээ саат] LT', + lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ичинде', + past: '%s мурун', + s: 'бирнече секунд', + ss: '%d секунд', + m: 'бир мүнөт', + mm: '%d мүнөт', + h: 'бир саат', + hh: '%d саат', + d: 'бир күн', + dd: '%d күн', + M: 'бир ай', + MM: '%d ай', + y: 'бир жыл', + yy: '%d жыл', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return ky; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/lb.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/lb.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Luxembourgish [lb] +//! author : mweimerskirch : https://github.com/mweimerskirch +//! author : David Raison : https://github.com/kwisatz + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eng Minutt', 'enger Minutt'], + h: ['eng Stonn', 'enger Stonn'], + d: ['een Dag', 'engem Dag'], + M: ['ee Mount', 'engem Mount'], + y: ['ee Joer', 'engem Joer'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + function processFutureTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'a ' + string; + } + return 'an ' + string; + } + function processPastTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'viru ' + string; + } + return 'virun ' + string; + } + /** + * Returns true if the word before the given number loses the '-n' ending. + * e.g. 'an 10 Deeg' but 'a 5 Deeg' + * + * @param number {integer} + * @returns {boolean} + */ + function eifelerRegelAppliesToNumber(number) { + number = parseInt(number, 10); + if (isNaN(number)) { + return false; + } + if (number < 0) { + // Negative Number --> always true + return true; + } else if (number < 10) { + // Only 1 digit + if (4 <= number && number <= 7) { + return true; + } + return false; + } else if (number < 100) { + // 2 digits + var lastDigit = number % 10, + firstDigit = number / 10; + if (lastDigit === 0) { + return eifelerRegelAppliesToNumber(firstDigit); + } + return eifelerRegelAppliesToNumber(lastDigit); + } else if (number < 10000) { + // 3 or 4 digits --> recursively check first digit + while (number >= 10) { + number = number / 10; + } + return eifelerRegelAppliesToNumber(number); + } else { + // Anything larger than 4 digits: recursively check first n-3 digits + number = number / 1000; + return eifelerRegelAppliesToNumber(number); + } + } + + var lb = moment.defineLocale('lb', { + months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split( + '_' + ), + weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm [Auer]', + LTS: 'H:mm:ss [Auer]', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm [Auer]', + LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', + }, + calendar: { + sameDay: '[Haut um] LT', + sameElse: 'L', + nextDay: '[Muer um] LT', + nextWeek: 'dddd [um] LT', + lastDay: '[Gëschter um] LT', + lastWeek: function () { + // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule + switch (this.day()) { + case 2: + case 4: + return '[Leschten] dddd [um] LT'; + default: + return '[Leschte] dddd [um] LT'; + } + }, + }, + relativeTime: { + future: processFutureTime, + past: processPastTime, + s: 'e puer Sekonnen', + ss: '%d Sekonnen', + m: processRelativeTime, + mm: '%d Minutten', + h: processRelativeTime, + hh: '%d Stonnen', + d: processRelativeTime, + dd: '%d Deeg', + M: processRelativeTime, + MM: '%d Méint', + y: processRelativeTime, + yy: '%d Joer', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return lb; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/lo.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/lo.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Lao [lo] +//! author : Ryan Hart : https://github.com/ryanhart2 + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var lo = moment.defineLocale('lo', { + months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( + '_' + ), + monthsShort: + 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( + '_' + ), + weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), + weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), + weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'ວັນdddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, + isPM: function (input) { + return input === 'ຕອນແລງ'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ຕອນເຊົ້າ'; + } else { + return 'ຕອນແລງ'; + } + }, + calendar: { + sameDay: '[ມື້ນີ້ເວລາ] LT', + nextDay: '[ມື້ອື່ນເວລາ] LT', + nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT', + lastDay: '[ມື້ວານນີ້ເວລາ] LT', + lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ອີກ %s', + past: '%sຜ່ານມາ', + s: 'ບໍ່ເທົ່າໃດວິນາທີ', + ss: '%d ວິນາທີ', + m: '1 ນາທີ', + mm: '%d ນາທີ', + h: '1 ຊົ່ວໂມງ', + hh: '%d ຊົ່ວໂມງ', + d: '1 ມື້', + dd: '%d ມື້', + M: '1 ເດືອນ', + MM: '%d ເດືອນ', + y: '1 ປີ', + yy: '%d ປີ', + }, + dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/, + ordinal: function (number) { + return 'ທີ່' + number; + }, + }); + + return lo; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/lt.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/lt.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Lithuanian [lt] +//! author : Mindaugas Mozūras : https://github.com/mmozuras + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var units = { + ss: 'sekundė_sekundžių_sekundes', + m: 'minutė_minutės_minutę', + mm: 'minutės_minučių_minutes', + h: 'valanda_valandos_valandą', + hh: 'valandos_valandų_valandas', + d: 'diena_dienos_dieną', + dd: 'dienos_dienų_dienas', + M: 'mėnuo_mėnesio_mėnesį', + MM: 'mėnesiai_mėnesių_mėnesius', + y: 'metai_metų_metus', + yy: 'metai_metų_metus', + }; + function translateSeconds(number, withoutSuffix, key, isFuture) { + if (withoutSuffix) { + return 'kelios sekundės'; + } else { + return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; + } + } + function translateSingular(number, withoutSuffix, key, isFuture) { + return withoutSuffix + ? forms(key)[0] + : isFuture + ? forms(key)[1] + : forms(key)[2]; + } + function special(number) { + return number % 10 === 0 || (number > 10 && number < 20); + } + function forms(key) { + return units[key].split('_'); + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + if (number === 1) { + return ( + result + translateSingular(number, withoutSuffix, key[0], isFuture) + ); + } else if (withoutSuffix) { + return result + (special(number) ? forms(key)[1] : forms(key)[0]); + } else { + if (isFuture) { + return result + forms(key)[1]; + } else { + return result + (special(number) ? forms(key)[1] : forms(key)[2]); + } + } + } + var lt = moment.defineLocale('lt', { + months: { + format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split( + '_' + ), + standalone: + 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split( + '_' + ), + isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, + }, + monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), + weekdays: { + format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split( + '_' + ), + standalone: + 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split( + '_' + ), + isFormat: /dddd HH:mm/, + }, + weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), + weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY [m.] MMMM D [d.]', + LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', + l: 'YYYY-MM-DD', + ll: 'YYYY [m.] MMMM D [d.]', + lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', + }, + calendar: { + sameDay: '[Šiandien] LT', + nextDay: '[Rytoj] LT', + nextWeek: 'dddd LT', + lastDay: '[Vakar] LT', + lastWeek: '[Praėjusį] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: 'po %s', + past: 'prieš %s', + s: translateSeconds, + ss: translate, + m: translateSingular, + mm: translate, + h: translateSingular, + hh: translate, + d: translateSingular, + dd: translate, + M: translateSingular, + MM: translate, + y: translateSingular, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}-oji/, + ordinal: function (number) { + return number + '-oji'; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return lt; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/lv.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/lv.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Latvian [lv] +//! author : Kristaps Karlsons : https://github.com/skakri +//! author : Jānis Elmeris : https://github.com/JanisE + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var units = { + ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'), + m: 'minūtes_minūtēm_minūte_minūtes'.split('_'), + mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'), + h: 'stundas_stundām_stunda_stundas'.split('_'), + hh: 'stundas_stundām_stunda_stundas'.split('_'), + d: 'dienas_dienām_diena_dienas'.split('_'), + dd: 'dienas_dienām_diena_dienas'.split('_'), + M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), + MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), + y: 'gada_gadiem_gads_gadi'.split('_'), + yy: 'gada_gadiem_gads_gadi'.split('_'), + }; + /** + * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. + */ + function format(forms, number, withoutSuffix) { + if (withoutSuffix) { + // E.g. "21 minūte", "3 minūtes". + return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; + } else { + // E.g. "21 minūtes" as in "pēc 21 minūtes". + // E.g. "3 minūtēm" as in "pēc 3 minūtēm". + return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; + } + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + return number + ' ' + format(units[key], number, withoutSuffix); + } + function relativeTimeWithSingular(number, withoutSuffix, key) { + return format(units[key], number, withoutSuffix); + } + function relativeSeconds(number, withoutSuffix) { + return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm'; + } + + var lv = moment.defineLocale('lv', { + months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'), + weekdays: + 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split( + '_' + ), + weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY.', + LL: 'YYYY. [gada] D. MMMM', + LLL: 'YYYY. [gada] D. MMMM, HH:mm', + LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', + }, + calendar: { + sameDay: '[Šodien pulksten] LT', + nextDay: '[Rīt pulksten] LT', + nextWeek: 'dddd [pulksten] LT', + lastDay: '[Vakar pulksten] LT', + lastWeek: '[Pagājušā] dddd [pulksten] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'pēc %s', + past: 'pirms %s', + s: relativeSeconds, + ss: relativeTimeWithPlural, + m: relativeTimeWithSingular, + mm: relativeTimeWithPlural, + h: relativeTimeWithSingular, + hh: relativeTimeWithPlural, + d: relativeTimeWithSingular, + dd: relativeTimeWithPlural, + M: relativeTimeWithSingular, + MM: relativeTimeWithPlural, + y: relativeTimeWithSingular, + yy: relativeTimeWithPlural, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return lv; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/me.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/me.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Montenegrin [me] +//! author : Miodrag Nikač : https://github.com/miodragnikac + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var translator = { + words: { + //Different grammatical cases + ss: ['sekund', 'sekunda', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + dd: ['dan', 'dana', 'dana'], + MM: ['mjesec', 'mjeseca', 'mjeseci'], + yy: ['godina', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + return number === 1 + ? wordKey[0] + : number >= 2 && number <= 4 + ? wordKey[1] + : wordKey[2]; + }, + translate: function (number, withoutSuffix, key) { + var wordKey = translator.words[key]; + if (key.length === 1) { + return withoutSuffix ? wordKey[0] : wordKey[1]; + } else { + return ( + number + + ' ' + + translator.correctGrammaticalCase(number, wordKey) + ); + } + }, + }; + + var me = moment.defineLocale('me', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sjutra u] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[juče u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[prošle] [nedjelje] [u] LT', + '[prošlog] [ponedjeljka] [u] LT', + '[prošlog] [utorka] [u] LT', + '[prošle] [srijede] [u] LT', + '[prošlog] [četvrtka] [u] LT', + '[prošlog] [petka] [u] LT', + '[prošle] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: 'dan', + dd: translator.translate, + M: 'mjesec', + MM: translator.translate, + y: 'godinu', + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return me; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/mi.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/mi.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Maori [mi] +//! author : John Corrigan : https://github.com/johnideal + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var mi = moment.defineLocale('mi', { + months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split( + '_' + ), + monthsShort: + 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( + '_' + ), + monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, + weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'), + weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), + weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [i] HH:mm', + LLLL: 'dddd, D MMMM YYYY [i] HH:mm', + }, + calendar: { + sameDay: '[i teie mahana, i] LT', + nextDay: '[apopo i] LT', + nextWeek: 'dddd [i] LT', + lastDay: '[inanahi i] LT', + lastWeek: 'dddd [whakamutunga i] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i roto i %s', + past: '%s i mua', + s: 'te hēkona ruarua', + ss: '%d hēkona', + m: 'he meneti', + mm: '%d meneti', + h: 'te haora', + hh: '%d haora', + d: 'he ra', + dd: '%d ra', + M: 'he marama', + MM: '%d marama', + y: 'he tau', + yy: '%d tau', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return mi; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/mk.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/mk.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Macedonian [mk] +//! author : Borislav Mickov : https://github.com/B0k0 +//! author : Sashko Todorov : https://github.com/bkyceh + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var mk = moment.defineLocale('mk', { + months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split( + '_' + ), + monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), + weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split( + '_' + ), + weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'), + weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Денес во] LT', + nextDay: '[Утре во] LT', + nextWeek: '[Во] dddd [во] LT', + lastDay: '[Вчера во] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[Изминатата] dddd [во] LT'; + case 1: + case 2: + case 4: + case 5: + return '[Изминатиот] dddd [во] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: 'пред %s', + s: 'неколку секунди', + ss: '%d секунди', + m: 'една минута', + mm: '%d минути', + h: 'еден час', + hh: '%d часа', + d: 'еден ден', + dd: '%d дена', + M: 'еден месец', + MM: '%d месеци', + y: 'една година', + yy: '%d години', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return mk; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ml.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ml.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Malayalam [ml] +//! author : Floyd Pink : https://github.com/floydpink + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ml = moment.defineLocale('ml', { + months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split( + '_' + ), + monthsShort: + 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split( + '_' + ), + weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), + weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), + longDateFormat: { + LT: 'A h:mm -നു', + LTS: 'A h:mm:ss -നു', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm -നു', + LLLL: 'dddd, D MMMM YYYY, A h:mm -നു', + }, + calendar: { + sameDay: '[ഇന്ന്] LT', + nextDay: '[നാളെ] LT', + nextWeek: 'dddd, LT', + lastDay: '[ഇന്നലെ] LT', + lastWeek: '[കഴിഞ്ഞ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s കഴിഞ്ഞ്', + past: '%s മുൻപ്', + s: 'അൽപ നിമിഷങ്ങൾ', + ss: '%d സെക്കൻഡ്', + m: 'ഒരു മിനിറ്റ്', + mm: '%d മിനിറ്റ്', + h: 'ഒരു മണിക്കൂർ', + hh: '%d മണിക്കൂർ', + d: 'ഒരു ദിവസം', + dd: '%d ദിവസം', + M: 'ഒരു മാസം', + MM: '%d മാസം', + y: 'ഒരു വർഷം', + yy: '%d വർഷം', + }, + meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'രാത്രി' && hour >= 4) || + meridiem === 'ഉച്ച കഴിഞ്ഞ്' || + meridiem === 'വൈകുന്നേരം' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'രാത്രി'; + } else if (hour < 12) { + return 'രാവിലെ'; + } else if (hour < 17) { + return 'ഉച്ച കഴിഞ്ഞ്'; + } else if (hour < 20) { + return 'വൈകുന്നേരം'; + } else { + return 'രാത്രി'; + } + }, + }); + + return ml; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/mn.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/mn.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Mongolian [mn] +//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7 + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function translate(number, withoutSuffix, key, isFuture) { + switch (key) { + case 's': + return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын'; + case 'ss': + return number + (withoutSuffix ? ' секунд' : ' секундын'); + case 'm': + case 'mm': + return number + (withoutSuffix ? ' минут' : ' минутын'); + case 'h': + case 'hh': + return number + (withoutSuffix ? ' цаг' : ' цагийн'); + case 'd': + case 'dd': + return number + (withoutSuffix ? ' өдөр' : ' өдрийн'); + case 'M': + case 'MM': + return number + (withoutSuffix ? ' сар' : ' сарын'); + case 'y': + case 'yy': + return number + (withoutSuffix ? ' жил' : ' жилийн'); + default: + return number; + } + } + + var mn = moment.defineLocale('mn', { + months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split( + '_' + ), + monthsShort: + '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'), + weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'), + weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY оны MMMMын D', + LLL: 'YYYY оны MMMMын D HH:mm', + LLLL: 'dddd, YYYY оны MMMMын D HH:mm', + }, + meridiemParse: /ҮӨ|ҮХ/i, + isPM: function (input) { + return input === 'ҮХ'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ҮӨ'; + } else { + return 'ҮХ'; + } + }, + calendar: { + sameDay: '[Өнөөдөр] LT', + nextDay: '[Маргааш] LT', + nextWeek: '[Ирэх] dddd LT', + lastDay: '[Өчигдөр] LT', + lastWeek: '[Өнгөрсөн] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s дараа', + past: '%s өмнө', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2} өдөр/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + ' өдөр'; + default: + return number; + } + }, + }); + + return mn; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/mr.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/mr.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Marathi [mr] +//! author : Harshad Kale : https://github.com/kalehv +//! author : Vivek Athalye : https://github.com/vnathalye + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }; + + function relativeTimeMr(number, withoutSuffix, string, isFuture) { + var output = ''; + if (withoutSuffix) { + switch (string) { + case 's': + output = 'काही सेकंद'; + break; + case 'ss': + output = '%d सेकंद'; + break; + case 'm': + output = 'एक मिनिट'; + break; + case 'mm': + output = '%d मिनिटे'; + break; + case 'h': + output = 'एक तास'; + break; + case 'hh': + output = '%d तास'; + break; + case 'd': + output = 'एक दिवस'; + break; + case 'dd': + output = '%d दिवस'; + break; + case 'M': + output = 'एक महिना'; + break; + case 'MM': + output = '%d महिने'; + break; + case 'y': + output = 'एक वर्ष'; + break; + case 'yy': + output = '%d वर्षे'; + break; + } + } else { + switch (string) { + case 's': + output = 'काही सेकंदां'; + break; + case 'ss': + output = '%d सेकंदां'; + break; + case 'm': + output = 'एका मिनिटा'; + break; + case 'mm': + output = '%d मिनिटां'; + break; + case 'h': + output = 'एका तासा'; + break; + case 'hh': + output = '%d तासां'; + break; + case 'd': + output = 'एका दिवसा'; + break; + case 'dd': + output = '%d दिवसां'; + break; + case 'M': + output = 'एका महिन्या'; + break; + case 'MM': + output = '%d महिन्यां'; + break; + case 'y': + output = 'एका वर्षा'; + break; + case 'yy': + output = '%d वर्षां'; + break; + } + } + return output.replace(/%d/i, number); + } + + var mr = moment.defineLocale('mr', { + months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( + '_' + ), + monthsShort: + 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), + longDateFormat: { + LT: 'A h:mm वाजता', + LTS: 'A h:mm:ss वाजता', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm वाजता', + LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता', + }, + calendar: { + sameDay: '[आज] LT', + nextDay: '[उद्या] LT', + nextWeek: 'dddd, LT', + lastDay: '[काल] LT', + lastWeek: '[मागील] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sमध्ये', + past: '%sपूर्वी', + s: relativeTimeMr, + ss: relativeTimeMr, + m: relativeTimeMr, + mm: relativeTimeMr, + h: relativeTimeMr, + hh: relativeTimeMr, + d: relativeTimeMr, + dd: relativeTimeMr, + M: relativeTimeMr, + MM: relativeTimeMr, + y: relativeTimeMr, + yy: relativeTimeMr, + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'पहाटे' || meridiem === 'सकाळी') { + return hour; + } else if ( + meridiem === 'दुपारी' || + meridiem === 'सायंकाळी' || + meridiem === 'रात्री' + ) { + return hour >= 12 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour >= 0 && hour < 6) { + return 'पहाटे'; + } else if (hour < 12) { + return 'सकाळी'; + } else if (hour < 17) { + return 'दुपारी'; + } else if (hour < 20) { + return 'सायंकाळी'; + } else { + return 'रात्री'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return mr; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ms-my.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ms-my.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Malay [ms-my] +//! note : DEPRECATED, the correct one is [ms] +//! author : Weldan Jamili : https://github.com/weldan + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var msMy = moment.defineLocale('ms-my', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return msMy; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ms.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ms.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Malay [ms] +//! author : Weldan Jamili : https://github.com/weldan + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ms = moment.defineLocale('ms', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return ms; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/mt.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/mt.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Maltese (Malta) [mt] +//! author : Alessandro Maruccia : https://github.com/alesma + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var mt = moment.defineLocale('mt', { + months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split( + '_' + ), + monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'), + weekdays: + 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split( + '_' + ), + weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'), + weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Illum fil-]LT', + nextDay: '[Għada fil-]LT', + nextWeek: 'dddd [fil-]LT', + lastDay: '[Il-bieraħ fil-]LT', + lastWeek: 'dddd [li għadda] [fil-]LT', + sameElse: 'L', + }, + relativeTime: { + future: 'f’ %s', + past: '%s ilu', + s: 'ftit sekondi', + ss: '%d sekondi', + m: 'minuta', + mm: '%d minuti', + h: 'siegħa', + hh: '%d siegħat', + d: 'ġurnata', + dd: '%d ġranet', + M: 'xahar', + MM: '%d xhur', + y: 'sena', + yy: '%d sni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return mt; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/my.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/my.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Burmese [my] +//! author : Squar team, mysquar.com +//! author : David Rossellat : https://github.com/gholadr +//! author : Tin Aung Lin : https://github.com/thanyawzinmin + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '၁', + 2: '၂', + 3: '၃', + 4: '၄', + 5: '၅', + 6: '၆', + 7: '၇', + 8: '၈', + 9: '၉', + 0: '၀', + }, + numberMap = { + '၁': '1', + '၂': '2', + '၃': '3', + '၄': '4', + '၅': '5', + '၆': '6', + '၇': '7', + '၈': '8', + '၉': '9', + '၀': '0', + }; + + var my = moment.defineLocale('my', { + months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split( + '_' + ), + monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), + weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split( + '_' + ), + weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[ယနေ.] LT [မှာ]', + nextDay: '[မနက်ဖြန်] LT [မှာ]', + nextWeek: 'dddd LT [မှာ]', + lastDay: '[မနေ.က] LT [မှာ]', + lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]', + sameElse: 'L', + }, + relativeTime: { + future: 'လာမည့် %s မှာ', + past: 'လွန်ခဲ့သော %s က', + s: 'စက္ကန်.အနည်းငယ်', + ss: '%d စက္ကန့်', + m: 'တစ်မိနစ်', + mm: '%d မိနစ်', + h: 'တစ်နာရီ', + hh: '%d နာရီ', + d: 'တစ်ရက်', + dd: '%d ရက်', + M: 'တစ်လ', + MM: '%d လ', + y: 'တစ်နှစ်', + yy: '%d နှစ်', + }, + preparse: function (string) { + return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return my; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/nb.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/nb.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Norwegian Bokmål [nb] +//! authors : Espen Hovlandsdal : https://github.com/rexxars +//! Sigurd Gartmann : https://github.com/sigurdga +//! Stephen Ramthun : https://github.com/stephenramthun + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var nb = moment.defineLocale('nb', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'), + weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[i går kl.] LT', + lastWeek: '[forrige] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'noen sekunder', + ss: '%d sekunder', + m: 'ett minutt', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dager', + w: 'en uke', + ww: '%d uker', + M: 'en måned', + MM: '%d måneder', + y: 'ett år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return nb; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ne.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ne.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Nepalese [ne] +//! author : suvash : https://github.com/suvash + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }; + + var ne = moment.defineLocale('ne', { + months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split( + '_' + ), + monthsShort: + 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split( + '_' + ), + weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), + weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'Aको h:mm बजे', + LTS: 'Aको h:mm:ss बजे', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, Aको h:mm बजे', + LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे', + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /राति|बिहान|दिउँसो|साँझ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'राति') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'बिहान') { + return hour; + } else if (meridiem === 'दिउँसो') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'साँझ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 3) { + return 'राति'; + } else if (hour < 12) { + return 'बिहान'; + } else if (hour < 16) { + return 'दिउँसो'; + } else if (hour < 20) { + return 'साँझ'; + } else { + return 'राति'; + } + }, + calendar: { + sameDay: '[आज] LT', + nextDay: '[भोलि] LT', + nextWeek: '[आउँदो] dddd[,] LT', + lastDay: '[हिजो] LT', + lastWeek: '[गएको] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sमा', + past: '%s अगाडि', + s: 'केही क्षण', + ss: '%d सेकेण्ड', + m: 'एक मिनेट', + mm: '%d मिनेट', + h: 'एक घण्टा', + hh: '%d घण्टा', + d: 'एक दिन', + dd: '%d दिन', + M: 'एक महिना', + MM: '%d महिना', + y: 'एक बर्ष', + yy: '%d बर्ष', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return ne; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/nl-be.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/nl-be.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Dutch (Belgium) [nl-be] +//! author : Joris Röling : https://github.com/jorisroling +//! author : Jacob Middag : https://github.com/middagj + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortWithDots = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse = [ + /^jan/i, + /^feb/i, + /^maart|mrt.?$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + + var nlBe = moment.defineLocale('nl-be', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: 'één minuut', + mm: '%d minuten', + h: 'één uur', + hh: '%d uur', + d: 'één dag', + dd: '%d dagen', + M: 'één maand', + MM: '%d maanden', + y: 'één jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return nlBe; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/nl.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/nl.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Dutch [nl] +//! author : Joris Röling : https://github.com/jorisroling +//! author : Jacob Middag : https://github.com/middagj + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortWithDots = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse = [ + /^jan/i, + /^feb/i, + /^maart|mrt.?$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + + var nl = moment.defineLocale('nl', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: 'één minuut', + mm: '%d minuten', + h: 'één uur', + hh: '%d uur', + d: 'één dag', + dd: '%d dagen', + w: 'één week', + ww: '%d weken', + M: 'één maand', + MM: '%d maanden', + y: 'één jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return nl; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/nn.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/nn.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Nynorsk [nn] +//! authors : https://github.com/mechuwind +//! Stephen Ramthun : https://github.com/stephenramthun + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var nn = moment.defineLocale('nn', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), + weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'), + weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[I dag klokka] LT', + nextDay: '[I morgon klokka] LT', + nextWeek: 'dddd [klokka] LT', + lastDay: '[I går klokka] LT', + lastWeek: '[Føregåande] dddd [klokka] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s sidan', + s: 'nokre sekund', + ss: '%d sekund', + m: 'eit minutt', + mm: '%d minutt', + h: 'ein time', + hh: '%d timar', + d: 'ein dag', + dd: '%d dagar', + w: 'ei veke', + ww: '%d veker', + M: 'ein månad', + MM: '%d månader', + y: 'eit år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return nn; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/oc-lnc.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/oc-lnc.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Occitan, lengadocian dialecte [oc-lnc] +//! author : Quentin PAGÈS : https://github.com/Quenty31 + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ocLnc = moment.defineLocale('oc-lnc', { + months: { + standalone: + 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split( + '_' + ), + format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: '[uèi a] LT', + nextDay: '[deman a] LT', + nextWeek: 'dddd [a] LT', + lastDay: '[ièr a] LT', + lastWeek: 'dddd [passat a] LT', + sameElse: 'L', + }, + relativeTime: { + future: "d'aquí %s", + past: 'fa %s', + s: 'unas segondas', + ss: '%d segondas', + m: 'una minuta', + mm: '%d minutas', + h: 'una ora', + hh: '%d oras', + d: 'un jorn', + dd: '%d jorns', + M: 'un mes', + MM: '%d meses', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, + ordinal: function (number, period) { + var output = + number === 1 + ? 'r' + : number === 2 + ? 'n' + : number === 3 + ? 'r' + : number === 4 + ? 't' + : 'è'; + if (period === 'w' || period === 'W') { + output = 'a'; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, + }, + }); + + return ocLnc; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/pa-in.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/pa-in.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Punjabi (India) [pa-in] +//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '੧', + 2: '੨', + 3: '੩', + 4: '੪', + 5: '੫', + 6: '੬', + 7: '੭', + 8: '੮', + 9: '੯', + 0: '੦', + }, + numberMap = { + '੧': '1', + '੨': '2', + '੩': '3', + '੪': '4', + '੫': '5', + '੬': '6', + '੭': '7', + '੮': '8', + '੯': '9', + '੦': '0', + }; + + var paIn = moment.defineLocale('pa-in', { + // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. + months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( + '_' + ), + monthsShort: + 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( + '_' + ), + weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split( + '_' + ), + weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), + weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), + longDateFormat: { + LT: 'A h:mm ਵਜੇ', + LTS: 'A h:mm:ss ਵਜੇ', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm ਵਜੇ', + LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ', + }, + calendar: { + sameDay: '[ਅਜ] LT', + nextDay: '[ਕਲ] LT', + nextWeek: '[ਅਗਲਾ] dddd, LT', + lastDay: '[ਕਲ] LT', + lastWeek: '[ਪਿਛਲੇ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ਵਿੱਚ', + past: '%s ਪਿਛਲੇ', + s: 'ਕੁਝ ਸਕਿੰਟ', + ss: '%d ਸਕਿੰਟ', + m: 'ਇਕ ਮਿੰਟ', + mm: '%d ਮਿੰਟ', + h: 'ਇੱਕ ਘੰਟਾ', + hh: '%d ਘੰਟੇ', + d: 'ਇੱਕ ਦਿਨ', + dd: '%d ਦਿਨ', + M: 'ਇੱਕ ਮਹੀਨਾ', + MM: '%d ਮਹੀਨੇ', + y: 'ਇੱਕ ਸਾਲ', + yy: '%d ਸਾਲ', + }, + preparse: function (string) { + return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Punjabi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. + meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ਰਾਤ') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ਸਵੇਰ') { + return hour; + } else if (meridiem === 'ਦੁਪਹਿਰ') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'ਸ਼ਾਮ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ਰਾਤ'; + } else if (hour < 10) { + return 'ਸਵੇਰ'; + } else if (hour < 17) { + return 'ਦੁਪਹਿਰ'; + } else if (hour < 20) { + return 'ਸ਼ਾਮ'; + } else { + return 'ਰਾਤ'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return paIn; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/pl.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/pl.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Polish [pl] +//! author : Rafal Hirsz : https://github.com/evoL + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsNominative = + 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split( + '_' + ), + monthsSubjective = + 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split( + '_' + ), + monthsParse = [ + /^sty/i, + /^lut/i, + /^mar/i, + /^kwi/i, + /^maj/i, + /^cze/i, + /^lip/i, + /^sie/i, + /^wrz/i, + /^paź/i, + /^lis/i, + /^gru/i, + ]; + function plural(n) { + return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; + } + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + return result + (plural(number) ? 'sekundy' : 'sekund'); + case 'm': + return withoutSuffix ? 'minuta' : 'minutę'; + case 'mm': + return result + (plural(number) ? 'minuty' : 'minut'); + case 'h': + return withoutSuffix ? 'godzina' : 'godzinę'; + case 'hh': + return result + (plural(number) ? 'godziny' : 'godzin'); + case 'ww': + return result + (plural(number) ? 'tygodnie' : 'tygodni'); + case 'MM': + return result + (plural(number) ? 'miesiące' : 'miesięcy'); + case 'yy': + return result + (plural(number) ? 'lata' : 'lat'); + } + } + + var pl = moment.defineLocale('pl', { + months: function (momentToFormat, format) { + if (!momentToFormat) { + return monthsNominative; + } else if (/D MMMM/.test(format)) { + return monthsSubjective[momentToFormat.month()]; + } else { + return monthsNominative[momentToFormat.month()]; + } + }, + monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: + 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'), + weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'), + weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Dziś o] LT', + nextDay: '[Jutro o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[W niedzielę o] LT'; + + case 2: + return '[We wtorek o] LT'; + + case 3: + return '[W środę o] LT'; + + case 6: + return '[W sobotę o] LT'; + + default: + return '[W] dddd [o] LT'; + } + }, + lastDay: '[Wczoraj o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[W zeszłą niedzielę o] LT'; + case 3: + return '[W zeszłą środę o] LT'; + case 6: + return '[W zeszłą sobotę o] LT'; + default: + return '[W zeszły] dddd [o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: '%s temu', + s: 'kilka sekund', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: '1 dzień', + dd: '%d dni', + w: 'tydzień', + ww: translate, + M: 'miesiąc', + MM: translate, + y: 'rok', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return pl; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/pt-br.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/pt-br.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Portuguese (Brazil) [pt-br] +//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ptBr = moment.defineLocale('pt-br', { + months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split( + '_' + ), + weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'), + weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY [às] HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm', + }, + calendar: { + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[Último] dddd [às] LT' // Saturday + Sunday + : '[Última] dddd [às] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'há %s', + s: 'poucos segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + M: 'um mês', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + invalidDate: 'Data inválida', + }); + + return ptBr; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/pt.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/pt.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Portuguese [pt] +//! author : Jefferson : https://github.com/jalex79 + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var pt = moment.defineLocale('pt', { + months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split( + '_' + ), + weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), + weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', + }, + calendar: { + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[Último] dddd [às] LT' // Saturday + Sunday + : '[Última] dddd [às] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'há %s', + s: 'segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + w: 'uma semana', + ww: '%d semanas', + M: 'um mês', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return pt; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ro.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ro.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Romanian [ro] +//! author : Vlad Gurdiga : https://github.com/gurdiga +//! author : Valentin Agachi : https://github.com/avaly +//! author : Emanuel Cepoi : https://github.com/cepem + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: 'secunde', + mm: 'minute', + hh: 'ore', + dd: 'zile', + ww: 'săptămâni', + MM: 'luni', + yy: 'ani', + }, + separator = ' '; + if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { + separator = ' de '; + } + return number + separator + format[key]; + } + + var ro = moment.defineLocale('ro', { + months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( + '_' + ), + monthsShort: + 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'), + weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), + weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[azi la] LT', + nextDay: '[mâine la] LT', + nextWeek: 'dddd [la] LT', + lastDay: '[ieri la] LT', + lastWeek: '[fosta] dddd [la] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'peste %s', + past: '%s în urmă', + s: 'câteva secunde', + ss: relativeTimeWithPlural, + m: 'un minut', + mm: relativeTimeWithPlural, + h: 'o oră', + hh: relativeTimeWithPlural, + d: 'o zi', + dd: relativeTimeWithPlural, + w: 'o săptămână', + ww: relativeTimeWithPlural, + M: 'o lună', + MM: relativeTimeWithPlural, + y: 'un an', + yy: relativeTimeWithPlural, + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return ro; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ru.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ru.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Russian [ru] +//! author : Viktorminator : https://github.com/Viktorminator +//! author : Menelion Elensúle : https://github.com/Oire +//! author : Коренберг Марк : https://github.com/socketpair + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', + mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', + hh: 'час_часа_часов', + dd: 'день_дня_дней', + ww: 'неделя_недели_недель', + MM: 'месяц_месяца_месяцев', + yy: 'год_года_лет', + }; + if (key === 'm') { + return withoutSuffix ? 'минута' : 'минуту'; + } else { + return number + ' ' + plural(format[key], +number); + } + } + var monthsParse = [ + /^янв/i, + /^фев/i, + /^мар/i, + /^апр/i, + /^ма[йя]/i, + /^июн/i, + /^июл/i, + /^авг/i, + /^сен/i, + /^окт/i, + /^ноя/i, + /^дек/i, + ]; + + // http://new.gramota.ru/spravka/rules/139-prop : § 103 + // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 + // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 + var ru = moment.defineLocale('ru', { + months: { + format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split( + '_' + ), + standalone: + 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( + '_' + ), + }, + monthsShort: { + // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку? + format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split( + '_' + ), + standalone: + 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split( + '_' + ), + }, + weekdays: { + standalone: + 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split( + '_' + ), + format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split( + '_' + ), + isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/, + }, + weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки + monthsRegex: + /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, + + // копия предыдущего + monthsShortRegex: + /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, + + // полные названия с падежами + monthsStrictRegex: + /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, + + // Выражение, которое соответствует только сокращённым формам + monthsShortStrictRegex: + /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY г.', + LLL: 'D MMMM YYYY г., H:mm', + LLLL: 'dddd, D MMMM YYYY г., H:mm', + }, + calendar: { + sameDay: '[Сегодня, в] LT', + nextDay: '[Завтра, в] LT', + lastDay: '[Вчера, в] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + switch (this.day()) { + case 0: + return '[В следующее] dddd, [в] LT'; + case 1: + case 2: + case 4: + return '[В следующий] dddd, [в] LT'; + case 3: + case 5: + case 6: + return '[В следующую] dddd, [в] LT'; + } + } else { + if (this.day() === 2) { + return '[Во] dddd, [в] LT'; + } else { + return '[В] dddd, [в] LT'; + } + } + }, + lastWeek: function (now) { + if (now.week() !== this.week()) { + switch (this.day()) { + case 0: + return '[В прошлое] dddd, [в] LT'; + case 1: + case 2: + case 4: + return '[В прошлый] dddd, [в] LT'; + case 3: + case 5: + case 6: + return '[В прошлую] dddd, [в] LT'; + } + } else { + if (this.day() === 2) { + return '[Во] dddd, [в] LT'; + } else { + return '[В] dddd, [в] LT'; + } + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'через %s', + past: '%s назад', + s: 'несколько секунд', + ss: relativeTimeWithPlural, + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: 'час', + hh: relativeTimeWithPlural, + d: 'день', + dd: relativeTimeWithPlural, + w: 'неделя', + ww: relativeTimeWithPlural, + M: 'месяц', + MM: relativeTimeWithPlural, + y: 'год', + yy: relativeTimeWithPlural, + }, + meridiemParse: /ночи|утра|дня|вечера/i, + isPM: function (input) { + return /^(дня|вечера)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночи'; + } else if (hour < 12) { + return 'утра'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечера'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + return number + '-й'; + case 'D': + return number + '-го'; + case 'w': + case 'W': + return number + '-я'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return ru; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/sd.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/sd.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Sindhi [sd] +//! author : Narain Sagar : https://github.com/narainsagar + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = [ + 'جنوري', + 'فيبروري', + 'مارچ', + 'اپريل', + 'مئي', + 'جون', + 'جولاءِ', + 'آگسٽ', + 'سيپٽمبر', + 'آڪٽوبر', + 'نومبر', + 'ڊسمبر', + ], + days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر']; + + var sd = moment.defineLocale('sd', { + months: months, + monthsShort: months, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd، D MMMM YYYY HH:mm', + }, + meridiemParse: /صبح|شام/, + isPM: function (input) { + return 'شام' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'صبح'; + } + return 'شام'; + }, + calendar: { + sameDay: '[اڄ] LT', + nextDay: '[سڀاڻي] LT', + nextWeek: 'dddd [اڳين هفتي تي] LT', + lastDay: '[ڪالهه] LT', + lastWeek: '[گزريل هفتي] dddd [تي] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s پوء', + past: '%s اڳ', + s: 'چند سيڪنڊ', + ss: '%d سيڪنڊ', + m: 'هڪ منٽ', + mm: '%d منٽ', + h: 'هڪ ڪلاڪ', + hh: '%d ڪلاڪ', + d: 'هڪ ڏينهن', + dd: '%d ڏينهن', + M: 'هڪ مهينو', + MM: '%d مهينا', + y: 'هڪ سال', + yy: '%d سال', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return sd; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/se.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/se.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Northern Sami [se] +//! authors : Bård Rolstad Henriksen : https://github.com/karamell + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var se = moment.defineLocale('se', { + months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split( + '_' + ), + monthsShort: + 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'), + weekdays: + 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split( + '_' + ), + weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), + weekdaysMin: 's_v_m_g_d_b_L'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'MMMM D. [b.] YYYY', + LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', + LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', + }, + calendar: { + sameDay: '[otne ti] LT', + nextDay: '[ihttin ti] LT', + nextWeek: 'dddd [ti] LT', + lastDay: '[ikte ti] LT', + lastWeek: '[ovddit] dddd [ti] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s geažes', + past: 'maŋit %s', + s: 'moadde sekunddat', + ss: '%d sekunddat', + m: 'okta minuhta', + mm: '%d minuhtat', + h: 'okta diimmu', + hh: '%d diimmut', + d: 'okta beaivi', + dd: '%d beaivvit', + M: 'okta mánnu', + MM: '%d mánut', + y: 'okta jahki', + yy: '%d jagit', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return se; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/si.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/si.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Sinhalese [si] +//! author : Sampath Sitinamaluwa : https://github.com/sampathsris + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + /*jshint -W100*/ + var si = moment.defineLocale('si', { + months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split( + '_' + ), + monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split( + '_' + ), + weekdays: + 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split( + '_' + ), + weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), + weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'a h:mm', + LTS: 'a h:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY MMMM D', + LLL: 'YYYY MMMM D, a h:mm', + LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss', + }, + calendar: { + sameDay: '[අද] LT[ට]', + nextDay: '[හෙට] LT[ට]', + nextWeek: 'dddd LT[ට]', + lastDay: '[ඊයේ] LT[ට]', + lastWeek: '[පසුගිය] dddd LT[ට]', + sameElse: 'L', + }, + relativeTime: { + future: '%sකින්', + past: '%sකට පෙර', + s: 'තත්පර කිහිපය', + ss: 'තත්පර %d', + m: 'මිනිත්තුව', + mm: 'මිනිත්තු %d', + h: 'පැය', + hh: 'පැය %d', + d: 'දිනය', + dd: 'දින %d', + M: 'මාසය', + MM: 'මාස %d', + y: 'වසර', + yy: 'වසර %d', + }, + dayOfMonthOrdinalParse: /\d{1,2} වැනි/, + ordinal: function (number) { + return number + ' වැනි'; + }, + meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, + isPM: function (input) { + return input === 'ප.ව.' || input === 'පස් වරු'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'ප.ව.' : 'පස් වරු'; + } else { + return isLower ? 'පෙ.ව.' : 'පෙර වරු'; + } + }, + }); + + return si; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/sk.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/sk.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Slovak [sk] +//! author : Martin Minka : https://github.com/k2s +//! based on work of petrbela : https://github.com/petrbela + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = + 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split( + '_' + ), + monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); + function plural(n) { + return n > 1 && n < 5; + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'sekundy' : 'sekúnd'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'minúty' : 'minút'); + } else { + return result + 'minútami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hodín'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'deň' : 'dňom'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dni' : 'dní'); + } else { + return result + 'dňami'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'mesiace' : 'mesiacov'); + } else { + return result + 'mesiacmi'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokom'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'rokov'); + } else { + return result + 'rokmi'; + } + } + } + + var sk = moment.defineLocale('sk', { + months: months, + monthsShort: monthsShort, + weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'), + weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'), + weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[dnes o] LT', + nextDay: '[zajtra o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v nedeľu o] LT'; + case 1: + case 2: + return '[v] dddd [o] LT'; + case 3: + return '[v stredu o] LT'; + case 4: + return '[vo štvrtok o] LT'; + case 5: + return '[v piatok o] LT'; + case 6: + return '[v sobotu o] LT'; + } + }, + lastDay: '[včera o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulú nedeľu o] LT'; + case 1: + case 2: + return '[minulý] dddd [o] LT'; + case 3: + return '[minulú stredu o] LT'; + case 4: + case 5: + return '[minulý] dddd [o] LT'; + case 6: + return '[minulú sobotu o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pred %s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return sk; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/sl.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/sl.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Slovenian [sl] +//! author : Robert Sedovšek : https://github.com/sedovsek + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nekaj sekund' + : 'nekaj sekundami'; + case 'ss': + if (number === 1) { + result += withoutSuffix ? 'sekundo' : 'sekundi'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; + } else { + result += 'sekund'; + } + return result; + case 'm': + return withoutSuffix ? 'ena minuta' : 'eno minuto'; + case 'mm': + if (number === 1) { + result += withoutSuffix ? 'minuta' : 'minuto'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'minute' : 'minutami'; + } else { + result += withoutSuffix || isFuture ? 'minut' : 'minutami'; + } + return result; + case 'h': + return withoutSuffix ? 'ena ura' : 'eno uro'; + case 'hh': + if (number === 1) { + result += withoutSuffix ? 'ura' : 'uro'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'uri' : 'urama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'ure' : 'urami'; + } else { + result += withoutSuffix || isFuture ? 'ur' : 'urami'; + } + return result; + case 'd': + return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; + case 'dd': + if (number === 1) { + result += withoutSuffix || isFuture ? 'dan' : 'dnem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; + } else { + result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; + } + return result; + case 'M': + return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; + case 'MM': + if (number === 1) { + result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; + } else { + result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; + } + return result; + case 'y': + return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; + case 'yy': + if (number === 1) { + result += withoutSuffix || isFuture ? 'leto' : 'letom'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'leti' : 'letoma'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'leta' : 'leti'; + } else { + result += withoutSuffix || isFuture ? 'let' : 'leti'; + } + return result; + } + } + + var sl = moment.defineLocale('sl', { + months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'), + weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'), + weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD. MM. YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danes ob] LT', + nextDay: '[jutri ob] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v] [nedeljo] [ob] LT'; + case 3: + return '[v] [sredo] [ob] LT'; + case 6: + return '[v] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[v] dddd [ob] LT'; + } + }, + lastDay: '[včeraj ob] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prejšnjo] [nedeljo] [ob] LT'; + case 3: + return '[prejšnjo] [sredo] [ob] LT'; + case 6: + return '[prejšnjo] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prejšnji] dddd [ob] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'čez %s', + past: 'pred %s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return sl; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/sq.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/sq.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Albanian [sq] +//! author : Flakërim Ismani : https://github.com/flakerimi +//! author : Menelion Elensúle : https://github.com/Oire +//! author : Oerd Cukalla : https://github.com/oerd + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var sq = moment.defineLocale('sq', { + months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split( + '_' + ), + monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), + weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split( + '_' + ), + weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), + weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'), + weekdaysParseExact: true, + meridiemParse: /PD|MD/, + isPM: function (input) { + return input.charAt(0) === 'M'; + }, + meridiem: function (hours, minutes, isLower) { + return hours < 12 ? 'PD' : 'MD'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Sot në] LT', + nextDay: '[Nesër në] LT', + nextWeek: 'dddd [në] LT', + lastDay: '[Dje në] LT', + lastWeek: 'dddd [e kaluar në] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'në %s', + past: '%s më parë', + s: 'disa sekonda', + ss: '%d sekonda', + m: 'një minutë', + mm: '%d minuta', + h: 'një orë', + hh: '%d orë', + d: 'një ditë', + dd: '%d ditë', + M: 'një muaj', + MM: '%d muaj', + y: 'një vit', + yy: '%d vite', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return sq; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/sr-cyrl.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/sr-cyrl.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Serbian Cyrillic [sr-cyrl] +//! author : Milan Janačković : https://github.com/milan-j +//! author : Stefan Crnjaković : https://github.com/crnjakovic + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var translator = { + words: { + //Different grammatical cases + ss: ['секунда', 'секунде', 'секунди'], + m: ['један минут', 'једног минута'], + mm: ['минут', 'минута', 'минута'], + h: ['један сат', 'једног сата'], + hh: ['сат', 'сата', 'сати'], + d: ['један дан', 'једног дана'], + dd: ['дан', 'дана', 'дана'], + M: ['један месец', 'једног месеца'], + MM: ['месец', 'месеца', 'месеци'], + y: ['једну годину', 'једне године'], + yy: ['годину', 'године', 'година'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'једна година'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'годину') { + return number + ' година'; + } + + return number + ' ' + word; + }, + }; + + var srCyrl = moment.defineLocale('sr-cyrl', { + months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split( + '_' + ), + monthsShort: + 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'), + monthsParseExact: true, + weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), + weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), + weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[данас у] LT', + nextDay: '[сутра у] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[у] [недељу] [у] LT'; + case 3: + return '[у] [среду] [у] LT'; + case 6: + return '[у] [суботу] [у] LT'; + case 1: + case 2: + case 4: + case 5: + return '[у] dddd [у] LT'; + } + }, + lastDay: '[јуче у] LT', + lastWeek: function () { + var lastWeekDays = [ + '[прошле] [недеље] [у] LT', + '[прошлог] [понедељка] [у] LT', + '[прошлог] [уторка] [у] LT', + '[прошле] [среде] [у] LT', + '[прошлог] [четвртка] [у] LT', + '[прошлог] [петка] [у] LT', + '[прошле] [суботе] [у] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: 'пре %s', + s: 'неколико секунди', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: translator.translate, + dd: translator.translate, + M: translator.translate, + MM: translator.translate, + y: translator.translate, + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, + }); + + return srCyrl; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/sr.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/sr.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Serbian [sr] +//! author : Milan Janačković : https://github.com/milan-j +//! author : Stefan Crnjaković : https://github.com/crnjakovic + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var translator = { + words: { + //Different grammatical cases + ss: ['sekunda', 'sekunde', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + d: ['jedan dan', 'jednog dana'], + dd: ['dan', 'dana', 'dana'], + M: ['jedan mesec', 'jednog meseca'], + MM: ['mesec', 'meseca', 'meseci'], + y: ['jednu godinu', 'jedne godine'], + yy: ['godinu', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'jedna godina'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'godinu') { + return number + ' godina'; + } + + return number + ' ' + word; + }, + }; + + var sr = moment.defineLocale('sr', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedelju] [u] LT'; + case 3: + return '[u] [sredu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[juče u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[prošle] [nedelje] [u] LT', + '[prošlog] [ponedeljka] [u] LT', + '[prošlog] [utorka] [u] LT', + '[prošle] [srede] [u] LT', + '[prošlog] [četvrtka] [u] LT', + '[prošlog] [petka] [u] LT', + '[prošle] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pre %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: translator.translate, + dd: translator.translate, + M: translator.translate, + MM: translator.translate, + y: translator.translate, + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return sr; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ss.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ss.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : siSwati [ss] +//! author : Nicolai Davies : https://github.com/nicolaidavies + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ss = moment.defineLocale('ss', { + months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( + '_' + ), + monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), + weekdays: + 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( + '_' + ), + weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), + weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Namuhla nga] LT', + nextDay: '[Kusasa nga] LT', + nextWeek: 'dddd [nga] LT', + lastDay: '[Itolo nga] LT', + lastWeek: 'dddd [leliphelile] [nga] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'nga %s', + past: 'wenteka nga %s', + s: 'emizuzwana lomcane', + ss: '%d mzuzwana', + m: 'umzuzu', + mm: '%d emizuzu', + h: 'lihora', + hh: '%d emahora', + d: 'lilanga', + dd: '%d emalanga', + M: 'inyanga', + MM: '%d tinyanga', + y: 'umnyaka', + yy: '%d iminyaka', + }, + meridiemParse: /ekuseni|emini|entsambama|ebusuku/, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'ekuseni'; + } else if (hours < 15) { + return 'emini'; + } else if (hours < 19) { + return 'entsambama'; + } else { + return 'ebusuku'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ekuseni') { + return hour; + } else if (meridiem === 'emini') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { + if (hour === 0) { + return 0; + } + return hour + 12; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: '%d', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return ss; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/sv.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/sv.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Swedish [sv] +//! author : Jens Alm : https://github.com/ulmus + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var sv = moment.defineLocale('sv', { + months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), + weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'), + weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Idag] LT', + nextDay: '[Imorgon] LT', + lastDay: '[Igår] LT', + nextWeek: '[På] dddd LT', + lastWeek: '[I] dddd[s] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: 'för %s sedan', + s: 'några sekunder', + ss: '%d sekunder', + m: 'en minut', + mm: '%d minuter', + h: 'en timme', + hh: '%d timmar', + d: 'en dag', + dd: '%d dagar', + M: 'en månad', + MM: '%d månader', + y: 'ett år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? ':e' + : b === 1 + ? ':a' + : b === 2 + ? ':a' + : b === 3 + ? ':e' + : ':e'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return sv; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/sw.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/sw.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Swahili [sw] +//! author : Fahad Kassim : https://github.com/fadsel + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var sw = moment.defineLocale('sw', { + months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), + weekdays: + 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( + '_' + ), + weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), + weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'hh:mm A', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[leo saa] LT', + nextDay: '[kesho saa] LT', + nextWeek: '[wiki ijayo] dddd [saat] LT', + lastDay: '[jana] LT', + lastWeek: '[wiki iliyopita] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s baadaye', + past: 'tokea %s', + s: 'hivi punde', + ss: 'sekunde %d', + m: 'dakika moja', + mm: 'dakika %d', + h: 'saa limoja', + hh: 'masaa %d', + d: 'siku moja', + dd: 'siku %d', + M: 'mwezi mmoja', + MM: 'miezi %d', + y: 'mwaka mmoja', + yy: 'miaka %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return sw; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ta.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ta.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Tamil [ta] +//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '௧', + 2: '௨', + 3: '௩', + 4: '௪', + 5: '௫', + 6: '௬', + 7: '௭', + 8: '௮', + 9: '௯', + 0: '௦', + }, + numberMap = { + '௧': '1', + '௨': '2', + '௩': '3', + '௪': '4', + '௫': '5', + '௬': '6', + '௭': '7', + '௮': '8', + '௯': '9', + '௦': '0', + }; + + var ta = moment.defineLocale('ta', { + months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( + '_' + ), + monthsShort: + 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( + '_' + ), + weekdays: + 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split( + '_' + ), + weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split( + '_' + ), + weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, HH:mm', + LLLL: 'dddd, D MMMM YYYY, HH:mm', + }, + calendar: { + sameDay: '[இன்று] LT', + nextDay: '[நாளை] LT', + nextWeek: 'dddd, LT', + lastDay: '[நேற்று] LT', + lastWeek: '[கடந்த வாரம்] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s இல்', + past: '%s முன்', + s: 'ஒரு சில விநாடிகள்', + ss: '%d விநாடிகள்', + m: 'ஒரு நிமிடம்', + mm: '%d நிமிடங்கள்', + h: 'ஒரு மணி நேரம்', + hh: '%d மணி நேரம்', + d: 'ஒரு நாள்', + dd: '%d நாட்கள்', + M: 'ஒரு மாதம்', + MM: '%d மாதங்கள்', + y: 'ஒரு வருடம்', + yy: '%d ஆண்டுகள்', + }, + dayOfMonthOrdinalParse: /\d{1,2}வது/, + ordinal: function (number) { + return number + 'வது'; + }, + preparse: function (string) { + return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // refer http://ta.wikipedia.org/s/1er1 + meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, + meridiem: function (hour, minute, isLower) { + if (hour < 2) { + return ' யாமம்'; + } else if (hour < 6) { + return ' வைகறை'; // வைகறை + } else if (hour < 10) { + return ' காலை'; // காலை + } else if (hour < 14) { + return ' நண்பகல்'; // நண்பகல் + } else if (hour < 18) { + return ' எற்பாடு'; // எற்பாடு + } else if (hour < 22) { + return ' மாலை'; // மாலை + } else { + return ' யாமம்'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'யாமம்') { + return hour < 2 ? hour : hour + 12; + } else if (meridiem === 'வைகறை' || meridiem === 'காலை') { + return hour; + } else if (meridiem === 'நண்பகல்') { + return hour >= 10 ? hour : hour + 12; + } else { + return hour + 12; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return ta; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/te.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/te.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Telugu [te] +//! author : Krishna Chaitanya Thota : https://github.com/kcthota + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var te = moment.defineLocale('te', { + months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split( + '_' + ), + monthsShort: + 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split( + '_' + ), + weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), + weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[నేడు] LT', + nextDay: '[రేపు] LT', + nextWeek: 'dddd, LT', + lastDay: '[నిన్న] LT', + lastWeek: '[గత] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s లో', + past: '%s క్రితం', + s: 'కొన్ని క్షణాలు', + ss: '%d సెకన్లు', + m: 'ఒక నిమిషం', + mm: '%d నిమిషాలు', + h: 'ఒక గంట', + hh: '%d గంటలు', + d: 'ఒక రోజు', + dd: '%d రోజులు', + M: 'ఒక నెల', + MM: '%d నెలలు', + y: 'ఒక సంవత్సరం', + yy: '%d సంవత్సరాలు', + }, + dayOfMonthOrdinalParse: /\d{1,2}వ/, + ordinal: '%dవ', + meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'రాత్రి') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ఉదయం') { + return hour; + } else if (meridiem === 'మధ్యాహ్నం') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'సాయంత్రం') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'రాత్రి'; + } else if (hour < 10) { + return 'ఉదయం'; + } else if (hour < 17) { + return 'మధ్యాహ్నం'; + } else if (hour < 20) { + return 'సాయంత్రం'; + } else { + return 'రాత్రి'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return te; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/tet.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/tet.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Tetun Dili (East Timor) [tet] +//! author : Joshua Brooks : https://github.com/joshbrooks +//! author : Onorio De J. Afonso : https://github.com/marobo +//! author : Sonia Simoes : https://github.com/soniasimoes + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var tet = moment.defineLocale('tet', { + months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), + weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), + weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), + weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Ohin iha] LT', + nextDay: '[Aban iha] LT', + nextWeek: 'dddd [iha] LT', + lastDay: '[Horiseik iha] LT', + lastWeek: 'dddd [semana kotuk] [iha] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'iha %s', + past: '%s liuba', + s: 'segundu balun', + ss: 'segundu %d', + m: 'minutu ida', + mm: 'minutu %d', + h: 'oras ida', + hh: 'oras %d', + d: 'loron ida', + dd: 'loron %d', + M: 'fulan ida', + MM: 'fulan %d', + y: 'tinan ida', + yy: 'tinan %d', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return tet; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/tg.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/tg.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Tajik [tg] +//! author : Orif N. Jr. : https://github.com/orif-jr + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var suffixes = { + 0: '-ум', + 1: '-ум', + 2: '-юм', + 3: '-юм', + 4: '-ум', + 5: '-ум', + 6: '-ум', + 7: '-ум', + 8: '-ум', + 9: '-ум', + 10: '-ум', + 12: '-ум', + 13: '-ум', + 20: '-ум', + 30: '-юм', + 40: '-ум', + 50: '-ум', + 60: '-ум', + 70: '-ум', + 80: '-ум', + 90: '-ум', + 100: '-ум', + }; + + var tg = moment.defineLocale('tg', { + months: { + format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split( + '_' + ), + standalone: + 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( + '_' + ), + }, + monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split( + '_' + ), + weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'), + weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Имрӯз соати] LT', + nextDay: '[Фардо соати] LT', + lastDay: '[Дирӯз соати] LT', + nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT', + lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'баъди %s', + past: '%s пеш', + s: 'якчанд сония', + m: 'як дақиқа', + mm: '%d дақиқа', + h: 'як соат', + hh: '%d соат', + d: 'як рӯз', + dd: '%d рӯз', + M: 'як моҳ', + MM: '%d моҳ', + y: 'як сол', + yy: '%d сол', + }, + meridiemParse: /шаб|субҳ|рӯз|бегоҳ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'шаб') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'субҳ') { + return hour; + } else if (meridiem === 'рӯз') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'бегоҳ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'шаб'; + } else if (hour < 11) { + return 'субҳ'; + } else if (hour < 16) { + return 'рӯз'; + } else if (hour < 19) { + return 'бегоҳ'; + } else { + return 'шаб'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1th is the first week of the year. + }, + }); + + return tg; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/th.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/th.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Thai [th] +//! author : Kridsada Thanabulpong : https://github.com/sirn + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var th = moment.defineLocale('th', { + months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split( + '_' + ), + monthsShort: + 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), + weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference + weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY เวลา H:mm', + LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm', + }, + meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, + isPM: function (input) { + return input === 'หลังเที่ยง'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ก่อนเที่ยง'; + } else { + return 'หลังเที่ยง'; + } + }, + calendar: { + sameDay: '[วันนี้ เวลา] LT', + nextDay: '[พรุ่งนี้ เวลา] LT', + nextWeek: 'dddd[หน้า เวลา] LT', + lastDay: '[เมื่อวานนี้ เวลา] LT', + lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'อีก %s', + past: '%sที่แล้ว', + s: 'ไม่กี่วินาที', + ss: '%d วินาที', + m: '1 นาที', + mm: '%d นาที', + h: '1 ชั่วโมง', + hh: '%d ชั่วโมง', + d: '1 วัน', + dd: '%d วัน', + w: '1 สัปดาห์', + ww: '%d สัปดาห์', + M: '1 เดือน', + MM: '%d เดือน', + y: '1 ปี', + yy: '%d ปี', + }, + }); + + return th; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/tk.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/tk.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Turkmen [tk] +//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var suffixes = { + 1: "'inji", + 5: "'inji", + 8: "'inji", + 70: "'inji", + 80: "'inji", + 2: "'nji", + 7: "'nji", + 20: "'nji", + 50: "'nji", + 3: "'ünji", + 4: "'ünji", + 100: "'ünji", + 6: "'njy", + 9: "'unjy", + 10: "'unjy", + 30: "'unjy", + 60: "'ynjy", + 90: "'ynjy", + }; + + var tk = moment.defineLocale('tk', { + months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split( + '_' + ), + monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'), + weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split( + '_' + ), + weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'), + weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün sagat] LT', + nextDay: '[ertir sagat] LT', + nextWeek: '[indiki] dddd [sagat] LT', + lastDay: '[düýn] LT', + lastWeek: '[geçen] dddd [sagat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s soň', + past: '%s öň', + s: 'birnäçe sekunt', + m: 'bir minut', + mm: '%d minut', + h: 'bir sagat', + hh: '%d sagat', + d: 'bir gün', + dd: '%d gün', + M: 'bir aý', + MM: '%d aý', + y: 'bir ýyl', + yy: '%d ýyl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'unjy"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return tk; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/tl-ph.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/tl-ph.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Tagalog (Philippines) [tl-ph] +//! author : Dan Hagman : https://github.com/hagmandan + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var tlPh = moment.defineLocale('tl-ph', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return tlPh; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/tlh.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/tlh.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Klingon [tlh] +//! author : Dominika Kruk : https://github.com/amaranthrose + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); + + function translateFuture(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'leS' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'waQ' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'nem' + : time + ' pIq'; + return time; + } + + function translatePast(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'Hu’' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'wen' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'ben' + : time + ' ret'; + return time; + } + + function translate(number, withoutSuffix, string, isFuture) { + var numberNoun = numberAsNoun(number); + switch (string) { + case 'ss': + return numberNoun + ' lup'; + case 'mm': + return numberNoun + ' tup'; + case 'hh': + return numberNoun + ' rep'; + case 'dd': + return numberNoun + ' jaj'; + case 'MM': + return numberNoun + ' jar'; + case 'yy': + return numberNoun + ' DIS'; + } + } + + function numberAsNoun(number) { + var hundred = Math.floor((number % 1000) / 100), + ten = Math.floor((number % 100) / 10), + one = number % 10, + word = ''; + if (hundred > 0) { + word += numbersNouns[hundred] + 'vatlh'; + } + if (ten > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; + } + if (one > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[one]; + } + return word === '' ? 'pagh' : word; + } + + var tlh = moment.defineLocale('tlh', { + months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split( + '_' + ), + monthsShort: + 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( + '_' + ), + weekdaysShort: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + weekdaysMin: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[DaHjaj] LT', + nextDay: '[wa’leS] LT', + nextWeek: 'LLL', + lastDay: '[wa’Hu’] LT', + lastWeek: 'LLL', + sameElse: 'L', + }, + relativeTime: { + future: translateFuture, + past: translatePast, + s: 'puS lup', + ss: translate, + m: 'wa’ tup', + mm: translate, + h: 'wa’ rep', + hh: translate, + d: 'wa’ jaj', + dd: translate, + M: 'wa’ jar', + MM: translate, + y: 'wa’ DIS', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return tlh; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/tr.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/tr.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Turkish [tr] +//! authors : Erhan Gundogan : https://github.com/erhangundogan, +//! Burak Yiğit Kaya: https://github.com/BYK + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var suffixes = { + 1: "'inci", + 5: "'inci", + 8: "'inci", + 70: "'inci", + 80: "'inci", + 2: "'nci", + 7: "'nci", + 20: "'nci", + 50: "'nci", + 3: "'üncü", + 4: "'üncü", + 100: "'üncü", + 6: "'ncı", + 9: "'uncu", + 10: "'uncu", + 30: "'uncu", + 60: "'ıncı", + 90: "'ıncı", + }; + + var tr = moment.defineLocale('tr', { + months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split( + '_' + ), + monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'), + weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split( + '_' + ), + weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'), + weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'öö' : 'ÖÖ'; + } else { + return isLower ? 'ös' : 'ÖS'; + } + }, + meridiemParse: /öö|ÖÖ|ös|ÖS/, + isPM: function (input) { + return input === 'ös' || input === 'ÖS'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün saat] LT', + nextDay: '[yarın saat] LT', + nextWeek: '[gelecek] dddd [saat] LT', + lastDay: '[dün] LT', + lastWeek: '[geçen] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s önce', + s: 'birkaç saniye', + ss: '%d saniye', + m: 'bir dakika', + mm: '%d dakika', + h: 'bir saat', + hh: '%d saat', + d: 'bir gün', + dd: '%d gün', + w: 'bir hafta', + ww: '%d hafta', + M: 'bir ay', + MM: '%d ay', + y: 'bir yıl', + yy: '%d yıl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'ıncı"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return tr; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/tzl.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/tzl.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Talossan [tzl] +//! author : Robin van der Vliet : https://github.com/robin0van0der0v +//! author : Iustì Canun + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. + // This is currently too difficult (maybe even impossible) to add. + var tzl = moment.defineLocale('tzl', { + months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), + weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), + weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), + weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM [dallas] YYYY', + LLL: 'D. MMMM [dallas] YYYY HH.mm', + LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', + }, + meridiemParse: /d\'o|d\'a/i, + isPM: function (input) { + return "d'o" === input.toLowerCase(); + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? "d'o" : "D'O"; + } else { + return isLower ? "d'a" : "D'A"; + } + }, + calendar: { + sameDay: '[oxhi à] LT', + nextDay: '[demà à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[ieiri à] LT', + lastWeek: '[sür el] dddd [lasteu à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'osprei %s', + past: 'ja%s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['viensas secunds', "'iensas secunds"], + ss: [number + ' secunds', '' + number + ' secunds'], + m: ["'n míut", "'iens míut"], + mm: [number + ' míuts', '' + number + ' míuts'], + h: ["'n þora", "'iensa þora"], + hh: [number + ' þoras', '' + number + ' þoras'], + d: ["'n ziua", "'iensa ziua"], + dd: [number + ' ziuas', '' + number + ' ziuas'], + M: ["'n mes", "'iens mes"], + MM: [number + ' mesen', '' + number + ' mesen'], + y: ["'n ar", "'iens ar"], + yy: [number + ' ars', '' + number + ' ars'], + }; + return isFuture + ? format[key][0] + : withoutSuffix + ? format[key][0] + : format[key][1]; + } + + return tzl; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/tzm-latn.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/tzm-latn.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Central Atlas Tamazight Latin [tzm-latn] +//! author : Abdel Said : https://github.com/abdelsaid + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var tzmLatn = moment.defineLocale('tzm-latn', { + months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( + '_' + ), + monthsShort: + 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( + '_' + ), + weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[asdkh g] LT', + nextDay: '[aska g] LT', + nextWeek: 'dddd [g] LT', + lastDay: '[assant g] LT', + lastWeek: 'dddd [g] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dadkh s yan %s', + past: 'yan %s', + s: 'imik', + ss: '%d imik', + m: 'minuḍ', + mm: '%d minuḍ', + h: 'saɛa', + hh: '%d tassaɛin', + d: 'ass', + dd: '%d ossan', + M: 'ayowr', + MM: '%d iyyirn', + y: 'asgas', + yy: '%d isgasn', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return tzmLatn; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/tzm.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/tzm.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Central Atlas Tamazight [tzm] +//! author : Abdel Said : https://github.com/abdelsaid + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var tzm = moment.defineLocale('tzm', { + months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( + '_' + ), + monthsShort: + 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( + '_' + ), + weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[ⴰⵙⴷⵅ ⴴ] LT', + nextDay: '[ⴰⵙⴽⴰ ⴴ] LT', + nextWeek: 'dddd [ⴴ] LT', + lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT', + lastWeek: 'dddd [ⴴ] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s', + past: 'ⵢⴰⵏ %s', + s: 'ⵉⵎⵉⴽ', + ss: '%d ⵉⵎⵉⴽ', + m: 'ⵎⵉⵏⵓⴺ', + mm: '%d ⵎⵉⵏⵓⴺ', + h: 'ⵙⴰⵄⴰ', + hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ', + d: 'ⴰⵙⵙ', + dd: '%d oⵙⵙⴰⵏ', + M: 'ⴰⵢoⵓⵔ', + MM: '%d ⵉⵢⵢⵉⵔⵏ', + y: 'ⴰⵙⴳⴰⵙ', + yy: '%d ⵉⵙⴳⴰⵙⵏ', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return tzm; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ug-cn.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ug-cn.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Uyghur (China) [ug-cn] +//! author: boyaq : https://github.com/boyaq + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ugCn = moment.defineLocale('ug-cn', { + months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( + '_' + ), + monthsShort: + 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( + '_' + ), + weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split( + '_' + ), + weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), + weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى', + LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', + LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', + }, + meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + meridiem === 'يېرىم كېچە' || + meridiem === 'سەھەر' || + meridiem === 'چۈشتىن بۇرۇن' + ) { + return hour; + } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') { + return hour + 12; + } else { + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return 'يېرىم كېچە'; + } else if (hm < 900) { + return 'سەھەر'; + } else if (hm < 1130) { + return 'چۈشتىن بۇرۇن'; + } else if (hm < 1230) { + return 'چۈش'; + } else if (hm < 1800) { + return 'چۈشتىن كېيىن'; + } else { + return 'كەچ'; + } + }, + calendar: { + sameDay: '[بۈگۈن سائەت] LT', + nextDay: '[ئەتە سائەت] LT', + nextWeek: '[كېلەركى] dddd [سائەت] LT', + lastDay: '[تۆنۈگۈن] LT', + lastWeek: '[ئالدىنقى] dddd [سائەت] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s كېيىن', + past: '%s بۇرۇن', + s: 'نەچچە سېكونت', + ss: '%d سېكونت', + m: 'بىر مىنۇت', + mm: '%d مىنۇت', + h: 'بىر سائەت', + hh: '%d سائەت', + d: 'بىر كۈن', + dd: '%d كۈن', + M: 'بىر ئاي', + MM: '%d ئاي', + y: 'بىر يىل', + yy: '%d يىل', + }, + + dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '-كۈنى'; + case 'w': + case 'W': + return number + '-ھەپتە'; + default: + return number; + } + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, + }); + + return ugCn; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/uk.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/uk.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Ukrainian [uk] +//! author : zemlanin : https://github.com/zemlanin +//! Author : Menelion Elensúle : https://github.com/Oire + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд', + mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', + hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин', + dd: 'день_дні_днів', + MM: 'місяць_місяці_місяців', + yy: 'рік_роки_років', + }; + if (key === 'm') { + return withoutSuffix ? 'хвилина' : 'хвилину'; + } else if (key === 'h') { + return withoutSuffix ? 'година' : 'годину'; + } else { + return number + ' ' + plural(format[key], +number); + } + } + function weekdaysCaseReplace(m, format) { + var weekdays = { + nominative: + 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split( + '_' + ), + accusative: + 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split( + '_' + ), + genitive: + 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split( + '_' + ), + }, + nounCase; + + if (m === true) { + return weekdays['nominative'] + .slice(1, 7) + .concat(weekdays['nominative'].slice(0, 1)); + } + if (!m) { + return weekdays['nominative']; + } + + nounCase = /(\[[ВвУу]\]) ?dddd/.test(format) + ? 'accusative' + : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format) + ? 'genitive' + : 'nominative'; + return weekdays[nounCase][m.day()]; + } + function processHoursFunction(str) { + return function () { + return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; + }; + } + + var uk = moment.defineLocale('uk', { + months: { + format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split( + '_' + ), + standalone: + 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split( + '_' + ), + }, + monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split( + '_' + ), + weekdays: weekdaysCaseReplace, + weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY р.', + LLL: 'D MMMM YYYY р., HH:mm', + LLLL: 'dddd, D MMMM YYYY р., HH:mm', + }, + calendar: { + sameDay: processHoursFunction('[Сьогодні '), + nextDay: processHoursFunction('[Завтра '), + lastDay: processHoursFunction('[Вчора '), + nextWeek: processHoursFunction('[У] dddd ['), + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return processHoursFunction('[Минулої] dddd [').call(this); + case 1: + case 2: + case 4: + return processHoursFunction('[Минулого] dddd [').call(this); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: '%s тому', + s: 'декілька секунд', + ss: relativeTimeWithPlural, + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: 'годину', + hh: relativeTimeWithPlural, + d: 'день', + dd: relativeTimeWithPlural, + M: 'місяць', + MM: relativeTimeWithPlural, + y: 'рік', + yy: relativeTimeWithPlural, + }, + // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason + meridiemParse: /ночі|ранку|дня|вечора/, + isPM: function (input) { + return /^(дня|вечора)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночі'; + } else if (hour < 12) { + return 'ранку'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечора'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return number + '-й'; + case 'D': + return number + '-го'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return uk; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/ur.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ur.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Urdu [ur] +//! author : Sawood Alam : https://github.com/ibnesayeed +//! author : Zack : https://github.com/ZackVision + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = [ + 'جنوری', + 'فروری', + 'مارچ', + 'اپریل', + 'مئی', + 'جون', + 'جولائی', + 'اگست', + 'ستمبر', + 'اکتوبر', + 'نومبر', + 'دسمبر', + ], + days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ']; + + var ur = moment.defineLocale('ur', { + months: months, + monthsShort: months, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd، D MMMM YYYY HH:mm', + }, + meridiemParse: /صبح|شام/, + isPM: function (input) { + return 'شام' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'صبح'; + } + return 'شام'; + }, + calendar: { + sameDay: '[آج بوقت] LT', + nextDay: '[کل بوقت] LT', + nextWeek: 'dddd [بوقت] LT', + lastDay: '[گذشتہ روز بوقت] LT', + lastWeek: '[گذشتہ] dddd [بوقت] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s بعد', + past: '%s قبل', + s: 'چند سیکنڈ', + ss: '%d سیکنڈ', + m: 'ایک منٹ', + mm: '%d منٹ', + h: 'ایک گھنٹہ', + hh: '%d گھنٹے', + d: 'ایک دن', + dd: '%d دن', + M: 'ایک ماہ', + MM: '%d ماہ', + y: 'ایک سال', + yy: '%d سال', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return ur; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/uz-latn.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/uz-latn.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Uzbek Latin [uz-latn] +//! author : Rasulbek Mirzayev : github.com/Rasulbeeek + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var uzLatn = moment.defineLocale('uz-latn', { + months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( + '_' + ), + monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), + weekdays: + 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( + '_' + ), + weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), + weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[Bugun soat] LT [da]', + nextDay: '[Ertaga] LT [da]', + nextWeek: 'dddd [kuni soat] LT [da]', + lastDay: '[Kecha soat] LT [da]', + lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", + sameElse: 'L', + }, + relativeTime: { + future: 'Yaqin %s ichida', + past: 'Bir necha %s oldin', + s: 'soniya', + ss: '%d soniya', + m: 'bir daqiqa', + mm: '%d daqiqa', + h: 'bir soat', + hh: '%d soat', + d: 'bir kun', + dd: '%d kun', + M: 'bir oy', + MM: '%d oy', + y: 'bir yil', + yy: '%d yil', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return uzLatn; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/uz.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/uz.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Uzbek [uz] +//! author : Sardor Muminov : https://github.com/muminoff + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var uz = moment.defineLocale('uz', { + months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( + '_' + ), + monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), + weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), + weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[Бугун соат] LT [да]', + nextDay: '[Эртага] LT [да]', + nextWeek: 'dddd [куни соат] LT [да]', + lastDay: '[Кеча соат] LT [да]', + lastWeek: '[Утган] dddd [куни соат] LT [да]', + sameElse: 'L', + }, + relativeTime: { + future: 'Якин %s ичида', + past: 'Бир неча %s олдин', + s: 'фурсат', + ss: '%d фурсат', + m: 'бир дакика', + mm: '%d дакика', + h: 'бир соат', + hh: '%d соат', + d: 'бир кун', + dd: '%d кун', + M: 'бир ой', + MM: '%d ой', + y: 'бир йил', + yy: '%d йил', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return uz; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/vi.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/vi.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Vietnamese [vi] +//! author : Bang Nguyen : https://github.com/bangnk +//! author : Chien Kira : https://github.com/chienkira + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var vi = moment.defineLocale('vi', { + months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split( + '_' + ), + monthsShort: + 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split( + '_' + ), + weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysParseExact: true, + meridiemParse: /sa|ch/i, + isPM: function (input) { + return /^ch$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'sa' : 'SA'; + } else { + return isLower ? 'ch' : 'CH'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [năm] YYYY', + LLL: 'D MMMM [năm] YYYY HH:mm', + LLLL: 'dddd, D MMMM [năm] YYYY HH:mm', + l: 'DD/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hôm nay lúc] LT', + nextDay: '[Ngày mai lúc] LT', + nextWeek: 'dddd [tuần tới lúc] LT', + lastDay: '[Hôm qua lúc] LT', + lastWeek: 'dddd [tuần trước lúc] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s tới', + past: '%s trước', + s: 'vài giây', + ss: '%d giây', + m: 'một phút', + mm: '%d phút', + h: 'một giờ', + hh: '%d giờ', + d: 'một ngày', + dd: '%d ngày', + w: 'một tuần', + ww: '%d tuần', + M: 'một tháng', + MM: '%d tháng', + y: 'một năm', + yy: '%d năm', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return vi; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/x-pseudo.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/x-pseudo.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Pseudo [x-pseudo] +//! author : Andrew Hood : https://github.com/andrewhood125 + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var xPseudo = moment.defineLocale('x-pseudo', { + months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split( + '_' + ), + monthsShort: + 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split( + '_' + ), + weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'), + weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[T~ódá~ý át] LT', + nextDay: '[T~ómó~rró~w át] LT', + nextWeek: 'dddd [át] LT', + lastDay: '[Ý~ést~érdá~ý át] LT', + lastWeek: '[L~ást] dddd [át] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'í~ñ %s', + past: '%s á~gó', + s: 'á ~féw ~sécó~ñds', + ss: '%d s~écóñ~ds', + m: 'á ~míñ~úté', + mm: '%d m~íñú~tés', + h: 'á~ñ hó~úr', + hh: '%d h~óúrs', + d: 'á ~dáý', + dd: '%d d~áýs', + M: 'á ~móñ~th', + MM: '%d m~óñt~hs', + y: 'á ~ýéár', + yy: '%d ý~éárs', + }, + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return xPseudo; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/yo.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/yo.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Yoruba Nigeria [yo] +//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var yo = moment.defineLocale('yo', { + months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split( + '_' + ), + monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), + weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), + weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), + weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Ònì ni] LT', + nextDay: '[Ọ̀la ni] LT', + nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT", + lastDay: '[Àna ni] LT', + lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ní %s', + past: '%s kọjá', + s: 'ìsẹjú aayá die', + ss: 'aayá %d', + m: 'ìsẹjú kan', + mm: 'ìsẹjú %d', + h: 'wákati kan', + hh: 'wákati %d', + d: 'ọjọ́ kan', + dd: 'ọjọ́ %d', + M: 'osù kan', + MM: 'osù %d', + y: 'ọdún kan', + yy: 'ọdún %d', + }, + dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/, + ordinal: 'ọjọ́ %d', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return yo; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/zh-cn.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/zh-cn.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Chinese (China) [zh-cn] +//! author : suupic : https://github.com/suupic +//! author : Zeno Zeng : https://github.com/zenozeng +//! author : uu109 : https://github.com/uu109 + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var zhCn = moment.defineLocale('zh-cn', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日Ah点mm分', + LLLL: 'YYYY年M月D日ddddAh点mm分', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } else { + // '中午' + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天]LT', + nextDay: '[明天]LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[下]dddLT'; + } else { + return '[本]dddLT'; + } + }, + lastDay: '[昨天]LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[上]dddLT'; + } else { + return '[本]dddLT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '周'; + default: + return number; + } + }, + relativeTime: { + future: '%s后', + past: '%s前', + s: '几秒', + ss: '%d 秒', + m: '1 分钟', + mm: '%d 分钟', + h: '1 小时', + hh: '%d 小时', + d: '1 天', + dd: '%d 天', + w: '1 周', + ww: '%d 周', + M: '1 个月', + MM: '%d 个月', + y: '1 年', + yy: '%d 年', + }, + week: { + // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return zhCn; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/zh-hk.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/zh-hk.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Chinese (Hong Kong) [zh-hk] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris +//! author : Konstantin : https://github.com/skfd +//! author : Anthony : https://github.com/anthonylau + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var zhHk = moment.defineLocale('zh-hk', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1200) { + return '上午'; + } else if (hm === 1200) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天]LT', + nextDay: '[明天]LT', + nextWeek: '[下]ddddLT', + lastDay: '[昨天]LT', + lastWeek: '[上]ddddLT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, + }); + + return zhHk; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/zh-mo.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/zh-mo.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Chinese (Macau) [zh-mo] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris +//! author : Tan Yuanhong : https://github.com/le0tan + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var zhMo = moment.defineLocale('zh-mo', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'D/M/YYYY', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天] LT', + nextDay: '[明天] LT', + nextWeek: '[下]dddd LT', + lastDay: '[昨天] LT', + lastWeek: '[上]dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s內', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, + }); + + return zhMo; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale/zh-tw.js": +/*!****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/zh-tw.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +//! moment.js locale configuration +//! locale : Chinese (Taiwan) [zh-tw] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris + +;(function (global, factory) { + true ? factory(__webpack_require__(/*! ../moment */ "./build/cht-core-4-6/node_modules/moment/moment.js")) : + 0 +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var zhTw = moment.defineLocale('zh-tw', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天] LT', + nextDay: '[明天] LT', + nextWeek: '[下]dddd LT', + lastDay: '[昨天] LT', + lastWeek: '[上]dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, + }); + + return zhTw; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/locale sync recursive ^\\.\\/.*$": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/locale/ sync ^\.\/.*$ ***! + \**********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var map = { + "./af": "./build/cht-core-4-6/node_modules/moment/locale/af.js", + "./af.js": "./build/cht-core-4-6/node_modules/moment/locale/af.js", + "./ar": "./build/cht-core-4-6/node_modules/moment/locale/ar.js", + "./ar-dz": "./build/cht-core-4-6/node_modules/moment/locale/ar-dz.js", + "./ar-dz.js": "./build/cht-core-4-6/node_modules/moment/locale/ar-dz.js", + "./ar-kw": "./build/cht-core-4-6/node_modules/moment/locale/ar-kw.js", + "./ar-kw.js": "./build/cht-core-4-6/node_modules/moment/locale/ar-kw.js", + "./ar-ly": "./build/cht-core-4-6/node_modules/moment/locale/ar-ly.js", + "./ar-ly.js": "./build/cht-core-4-6/node_modules/moment/locale/ar-ly.js", + "./ar-ma": "./build/cht-core-4-6/node_modules/moment/locale/ar-ma.js", + "./ar-ma.js": "./build/cht-core-4-6/node_modules/moment/locale/ar-ma.js", + "./ar-sa": "./build/cht-core-4-6/node_modules/moment/locale/ar-sa.js", + "./ar-sa.js": "./build/cht-core-4-6/node_modules/moment/locale/ar-sa.js", + "./ar-tn": "./build/cht-core-4-6/node_modules/moment/locale/ar-tn.js", + "./ar-tn.js": "./build/cht-core-4-6/node_modules/moment/locale/ar-tn.js", + "./ar.js": "./build/cht-core-4-6/node_modules/moment/locale/ar.js", + "./az": "./build/cht-core-4-6/node_modules/moment/locale/az.js", + "./az.js": "./build/cht-core-4-6/node_modules/moment/locale/az.js", + "./be": "./build/cht-core-4-6/node_modules/moment/locale/be.js", + "./be.js": "./build/cht-core-4-6/node_modules/moment/locale/be.js", + "./bg": "./build/cht-core-4-6/node_modules/moment/locale/bg.js", + "./bg.js": "./build/cht-core-4-6/node_modules/moment/locale/bg.js", + "./bm": "./build/cht-core-4-6/node_modules/moment/locale/bm.js", + "./bm.js": "./build/cht-core-4-6/node_modules/moment/locale/bm.js", + "./bn": "./build/cht-core-4-6/node_modules/moment/locale/bn.js", + "./bn-bd": "./build/cht-core-4-6/node_modules/moment/locale/bn-bd.js", + "./bn-bd.js": "./build/cht-core-4-6/node_modules/moment/locale/bn-bd.js", + "./bn.js": "./build/cht-core-4-6/node_modules/moment/locale/bn.js", + "./bo": "./build/cht-core-4-6/node_modules/moment/locale/bo.js", + "./bo.js": "./build/cht-core-4-6/node_modules/moment/locale/bo.js", + "./br": "./build/cht-core-4-6/node_modules/moment/locale/br.js", + "./br.js": "./build/cht-core-4-6/node_modules/moment/locale/br.js", + "./bs": "./build/cht-core-4-6/node_modules/moment/locale/bs.js", + "./bs.js": "./build/cht-core-4-6/node_modules/moment/locale/bs.js", + "./ca": "./build/cht-core-4-6/node_modules/moment/locale/ca.js", + "./ca.js": "./build/cht-core-4-6/node_modules/moment/locale/ca.js", + "./cs": "./build/cht-core-4-6/node_modules/moment/locale/cs.js", + "./cs.js": "./build/cht-core-4-6/node_modules/moment/locale/cs.js", + "./cv": "./build/cht-core-4-6/node_modules/moment/locale/cv.js", + "./cv.js": "./build/cht-core-4-6/node_modules/moment/locale/cv.js", + "./cy": "./build/cht-core-4-6/node_modules/moment/locale/cy.js", + "./cy.js": "./build/cht-core-4-6/node_modules/moment/locale/cy.js", + "./da": "./build/cht-core-4-6/node_modules/moment/locale/da.js", + "./da.js": "./build/cht-core-4-6/node_modules/moment/locale/da.js", + "./de": "./build/cht-core-4-6/node_modules/moment/locale/de.js", + "./de-at": "./build/cht-core-4-6/node_modules/moment/locale/de-at.js", + "./de-at.js": "./build/cht-core-4-6/node_modules/moment/locale/de-at.js", + "./de-ch": "./build/cht-core-4-6/node_modules/moment/locale/de-ch.js", + "./de-ch.js": "./build/cht-core-4-6/node_modules/moment/locale/de-ch.js", + "./de.js": "./build/cht-core-4-6/node_modules/moment/locale/de.js", + "./dv": "./build/cht-core-4-6/node_modules/moment/locale/dv.js", + "./dv.js": "./build/cht-core-4-6/node_modules/moment/locale/dv.js", + "./el": "./build/cht-core-4-6/node_modules/moment/locale/el.js", + "./el.js": "./build/cht-core-4-6/node_modules/moment/locale/el.js", + "./en-au": "./build/cht-core-4-6/node_modules/moment/locale/en-au.js", + "./en-au.js": "./build/cht-core-4-6/node_modules/moment/locale/en-au.js", + "./en-ca": "./build/cht-core-4-6/node_modules/moment/locale/en-ca.js", + "./en-ca.js": "./build/cht-core-4-6/node_modules/moment/locale/en-ca.js", + "./en-gb": "./build/cht-core-4-6/node_modules/moment/locale/en-gb.js", + "./en-gb.js": "./build/cht-core-4-6/node_modules/moment/locale/en-gb.js", + "./en-ie": "./build/cht-core-4-6/node_modules/moment/locale/en-ie.js", + "./en-ie.js": "./build/cht-core-4-6/node_modules/moment/locale/en-ie.js", + "./en-il": "./build/cht-core-4-6/node_modules/moment/locale/en-il.js", + "./en-il.js": "./build/cht-core-4-6/node_modules/moment/locale/en-il.js", + "./en-in": "./build/cht-core-4-6/node_modules/moment/locale/en-in.js", + "./en-in.js": "./build/cht-core-4-6/node_modules/moment/locale/en-in.js", + "./en-nz": "./build/cht-core-4-6/node_modules/moment/locale/en-nz.js", + "./en-nz.js": "./build/cht-core-4-6/node_modules/moment/locale/en-nz.js", + "./en-sg": "./build/cht-core-4-6/node_modules/moment/locale/en-sg.js", + "./en-sg.js": "./build/cht-core-4-6/node_modules/moment/locale/en-sg.js", + "./eo": "./build/cht-core-4-6/node_modules/moment/locale/eo.js", + "./eo.js": "./build/cht-core-4-6/node_modules/moment/locale/eo.js", + "./es": "./build/cht-core-4-6/node_modules/moment/locale/es.js", + "./es-do": "./build/cht-core-4-6/node_modules/moment/locale/es-do.js", + "./es-do.js": "./build/cht-core-4-6/node_modules/moment/locale/es-do.js", + "./es-mx": "./build/cht-core-4-6/node_modules/moment/locale/es-mx.js", + "./es-mx.js": "./build/cht-core-4-6/node_modules/moment/locale/es-mx.js", + "./es-us": "./build/cht-core-4-6/node_modules/moment/locale/es-us.js", + "./es-us.js": "./build/cht-core-4-6/node_modules/moment/locale/es-us.js", + "./es.js": "./build/cht-core-4-6/node_modules/moment/locale/es.js", + "./et": "./build/cht-core-4-6/node_modules/moment/locale/et.js", + "./et.js": "./build/cht-core-4-6/node_modules/moment/locale/et.js", + "./eu": "./build/cht-core-4-6/node_modules/moment/locale/eu.js", + "./eu.js": "./build/cht-core-4-6/node_modules/moment/locale/eu.js", + "./fa": "./build/cht-core-4-6/node_modules/moment/locale/fa.js", + "./fa.js": "./build/cht-core-4-6/node_modules/moment/locale/fa.js", + "./fi": "./build/cht-core-4-6/node_modules/moment/locale/fi.js", + "./fi.js": "./build/cht-core-4-6/node_modules/moment/locale/fi.js", + "./fil": "./build/cht-core-4-6/node_modules/moment/locale/fil.js", + "./fil.js": "./build/cht-core-4-6/node_modules/moment/locale/fil.js", + "./fo": "./build/cht-core-4-6/node_modules/moment/locale/fo.js", + "./fo.js": "./build/cht-core-4-6/node_modules/moment/locale/fo.js", + "./fr": "./build/cht-core-4-6/node_modules/moment/locale/fr.js", + "./fr-ca": "./build/cht-core-4-6/node_modules/moment/locale/fr-ca.js", + "./fr-ca.js": "./build/cht-core-4-6/node_modules/moment/locale/fr-ca.js", + "./fr-ch": "./build/cht-core-4-6/node_modules/moment/locale/fr-ch.js", + "./fr-ch.js": "./build/cht-core-4-6/node_modules/moment/locale/fr-ch.js", + "./fr.js": "./build/cht-core-4-6/node_modules/moment/locale/fr.js", + "./fy": "./build/cht-core-4-6/node_modules/moment/locale/fy.js", + "./fy.js": "./build/cht-core-4-6/node_modules/moment/locale/fy.js", + "./ga": "./build/cht-core-4-6/node_modules/moment/locale/ga.js", + "./ga.js": "./build/cht-core-4-6/node_modules/moment/locale/ga.js", + "./gd": "./build/cht-core-4-6/node_modules/moment/locale/gd.js", + "./gd.js": "./build/cht-core-4-6/node_modules/moment/locale/gd.js", + "./gl": "./build/cht-core-4-6/node_modules/moment/locale/gl.js", + "./gl.js": "./build/cht-core-4-6/node_modules/moment/locale/gl.js", + "./gom-deva": "./build/cht-core-4-6/node_modules/moment/locale/gom-deva.js", + "./gom-deva.js": "./build/cht-core-4-6/node_modules/moment/locale/gom-deva.js", + "./gom-latn": "./build/cht-core-4-6/node_modules/moment/locale/gom-latn.js", + "./gom-latn.js": "./build/cht-core-4-6/node_modules/moment/locale/gom-latn.js", + "./gu": "./build/cht-core-4-6/node_modules/moment/locale/gu.js", + "./gu.js": "./build/cht-core-4-6/node_modules/moment/locale/gu.js", + "./he": "./build/cht-core-4-6/node_modules/moment/locale/he.js", + "./he.js": "./build/cht-core-4-6/node_modules/moment/locale/he.js", + "./hi": "./build/cht-core-4-6/node_modules/moment/locale/hi.js", + "./hi.js": "./build/cht-core-4-6/node_modules/moment/locale/hi.js", + "./hr": "./build/cht-core-4-6/node_modules/moment/locale/hr.js", + "./hr.js": "./build/cht-core-4-6/node_modules/moment/locale/hr.js", + "./hu": "./build/cht-core-4-6/node_modules/moment/locale/hu.js", + "./hu.js": "./build/cht-core-4-6/node_modules/moment/locale/hu.js", + "./hy-am": "./build/cht-core-4-6/node_modules/moment/locale/hy-am.js", + "./hy-am.js": "./build/cht-core-4-6/node_modules/moment/locale/hy-am.js", + "./id": "./build/cht-core-4-6/node_modules/moment/locale/id.js", + "./id.js": "./build/cht-core-4-6/node_modules/moment/locale/id.js", + "./is": "./build/cht-core-4-6/node_modules/moment/locale/is.js", + "./is.js": "./build/cht-core-4-6/node_modules/moment/locale/is.js", + "./it": "./build/cht-core-4-6/node_modules/moment/locale/it.js", + "./it-ch": "./build/cht-core-4-6/node_modules/moment/locale/it-ch.js", + "./it-ch.js": "./build/cht-core-4-6/node_modules/moment/locale/it-ch.js", + "./it.js": "./build/cht-core-4-6/node_modules/moment/locale/it.js", + "./ja": "./build/cht-core-4-6/node_modules/moment/locale/ja.js", + "./ja.js": "./build/cht-core-4-6/node_modules/moment/locale/ja.js", + "./jv": "./build/cht-core-4-6/node_modules/moment/locale/jv.js", + "./jv.js": "./build/cht-core-4-6/node_modules/moment/locale/jv.js", + "./ka": "./build/cht-core-4-6/node_modules/moment/locale/ka.js", + "./ka.js": "./build/cht-core-4-6/node_modules/moment/locale/ka.js", + "./kk": "./build/cht-core-4-6/node_modules/moment/locale/kk.js", + "./kk.js": "./build/cht-core-4-6/node_modules/moment/locale/kk.js", + "./km": "./build/cht-core-4-6/node_modules/moment/locale/km.js", + "./km.js": "./build/cht-core-4-6/node_modules/moment/locale/km.js", + "./kn": "./build/cht-core-4-6/node_modules/moment/locale/kn.js", + "./kn.js": "./build/cht-core-4-6/node_modules/moment/locale/kn.js", + "./ko": "./build/cht-core-4-6/node_modules/moment/locale/ko.js", + "./ko.js": "./build/cht-core-4-6/node_modules/moment/locale/ko.js", + "./ku": "./build/cht-core-4-6/node_modules/moment/locale/ku.js", + "./ku.js": "./build/cht-core-4-6/node_modules/moment/locale/ku.js", + "./ky": "./build/cht-core-4-6/node_modules/moment/locale/ky.js", + "./ky.js": "./build/cht-core-4-6/node_modules/moment/locale/ky.js", + "./lb": "./build/cht-core-4-6/node_modules/moment/locale/lb.js", + "./lb.js": "./build/cht-core-4-6/node_modules/moment/locale/lb.js", + "./lo": "./build/cht-core-4-6/node_modules/moment/locale/lo.js", + "./lo.js": "./build/cht-core-4-6/node_modules/moment/locale/lo.js", + "./lt": "./build/cht-core-4-6/node_modules/moment/locale/lt.js", + "./lt.js": "./build/cht-core-4-6/node_modules/moment/locale/lt.js", + "./lv": "./build/cht-core-4-6/node_modules/moment/locale/lv.js", + "./lv.js": "./build/cht-core-4-6/node_modules/moment/locale/lv.js", + "./me": "./build/cht-core-4-6/node_modules/moment/locale/me.js", + "./me.js": "./build/cht-core-4-6/node_modules/moment/locale/me.js", + "./mi": "./build/cht-core-4-6/node_modules/moment/locale/mi.js", + "./mi.js": "./build/cht-core-4-6/node_modules/moment/locale/mi.js", + "./mk": "./build/cht-core-4-6/node_modules/moment/locale/mk.js", + "./mk.js": "./build/cht-core-4-6/node_modules/moment/locale/mk.js", + "./ml": "./build/cht-core-4-6/node_modules/moment/locale/ml.js", + "./ml.js": "./build/cht-core-4-6/node_modules/moment/locale/ml.js", + "./mn": "./build/cht-core-4-6/node_modules/moment/locale/mn.js", + "./mn.js": "./build/cht-core-4-6/node_modules/moment/locale/mn.js", + "./mr": "./build/cht-core-4-6/node_modules/moment/locale/mr.js", + "./mr.js": "./build/cht-core-4-6/node_modules/moment/locale/mr.js", + "./ms": "./build/cht-core-4-6/node_modules/moment/locale/ms.js", + "./ms-my": "./build/cht-core-4-6/node_modules/moment/locale/ms-my.js", + "./ms-my.js": "./build/cht-core-4-6/node_modules/moment/locale/ms-my.js", + "./ms.js": "./build/cht-core-4-6/node_modules/moment/locale/ms.js", + "./mt": "./build/cht-core-4-6/node_modules/moment/locale/mt.js", + "./mt.js": "./build/cht-core-4-6/node_modules/moment/locale/mt.js", + "./my": "./build/cht-core-4-6/node_modules/moment/locale/my.js", + "./my.js": "./build/cht-core-4-6/node_modules/moment/locale/my.js", + "./nb": "./build/cht-core-4-6/node_modules/moment/locale/nb.js", + "./nb.js": "./build/cht-core-4-6/node_modules/moment/locale/nb.js", + "./ne": "./build/cht-core-4-6/node_modules/moment/locale/ne.js", + "./ne.js": "./build/cht-core-4-6/node_modules/moment/locale/ne.js", + "./nl": "./build/cht-core-4-6/node_modules/moment/locale/nl.js", + "./nl-be": "./build/cht-core-4-6/node_modules/moment/locale/nl-be.js", + "./nl-be.js": "./build/cht-core-4-6/node_modules/moment/locale/nl-be.js", + "./nl.js": "./build/cht-core-4-6/node_modules/moment/locale/nl.js", + "./nn": "./build/cht-core-4-6/node_modules/moment/locale/nn.js", + "./nn.js": "./build/cht-core-4-6/node_modules/moment/locale/nn.js", + "./oc-lnc": "./build/cht-core-4-6/node_modules/moment/locale/oc-lnc.js", + "./oc-lnc.js": "./build/cht-core-4-6/node_modules/moment/locale/oc-lnc.js", + "./pa-in": "./build/cht-core-4-6/node_modules/moment/locale/pa-in.js", + "./pa-in.js": "./build/cht-core-4-6/node_modules/moment/locale/pa-in.js", + "./pl": "./build/cht-core-4-6/node_modules/moment/locale/pl.js", + "./pl.js": "./build/cht-core-4-6/node_modules/moment/locale/pl.js", + "./pt": "./build/cht-core-4-6/node_modules/moment/locale/pt.js", + "./pt-br": "./build/cht-core-4-6/node_modules/moment/locale/pt-br.js", + "./pt-br.js": "./build/cht-core-4-6/node_modules/moment/locale/pt-br.js", + "./pt.js": "./build/cht-core-4-6/node_modules/moment/locale/pt.js", + "./ro": "./build/cht-core-4-6/node_modules/moment/locale/ro.js", + "./ro.js": "./build/cht-core-4-6/node_modules/moment/locale/ro.js", + "./ru": "./build/cht-core-4-6/node_modules/moment/locale/ru.js", + "./ru.js": "./build/cht-core-4-6/node_modules/moment/locale/ru.js", + "./sd": "./build/cht-core-4-6/node_modules/moment/locale/sd.js", + "./sd.js": "./build/cht-core-4-6/node_modules/moment/locale/sd.js", + "./se": "./build/cht-core-4-6/node_modules/moment/locale/se.js", + "./se.js": "./build/cht-core-4-6/node_modules/moment/locale/se.js", + "./si": "./build/cht-core-4-6/node_modules/moment/locale/si.js", + "./si.js": "./build/cht-core-4-6/node_modules/moment/locale/si.js", + "./sk": "./build/cht-core-4-6/node_modules/moment/locale/sk.js", + "./sk.js": "./build/cht-core-4-6/node_modules/moment/locale/sk.js", + "./sl": "./build/cht-core-4-6/node_modules/moment/locale/sl.js", + "./sl.js": "./build/cht-core-4-6/node_modules/moment/locale/sl.js", + "./sq": "./build/cht-core-4-6/node_modules/moment/locale/sq.js", + "./sq.js": "./build/cht-core-4-6/node_modules/moment/locale/sq.js", + "./sr": "./build/cht-core-4-6/node_modules/moment/locale/sr.js", + "./sr-cyrl": "./build/cht-core-4-6/node_modules/moment/locale/sr-cyrl.js", + "./sr-cyrl.js": "./build/cht-core-4-6/node_modules/moment/locale/sr-cyrl.js", + "./sr.js": "./build/cht-core-4-6/node_modules/moment/locale/sr.js", + "./ss": "./build/cht-core-4-6/node_modules/moment/locale/ss.js", + "./ss.js": "./build/cht-core-4-6/node_modules/moment/locale/ss.js", + "./sv": "./build/cht-core-4-6/node_modules/moment/locale/sv.js", + "./sv.js": "./build/cht-core-4-6/node_modules/moment/locale/sv.js", + "./sw": "./build/cht-core-4-6/node_modules/moment/locale/sw.js", + "./sw.js": "./build/cht-core-4-6/node_modules/moment/locale/sw.js", + "./ta": "./build/cht-core-4-6/node_modules/moment/locale/ta.js", + "./ta.js": "./build/cht-core-4-6/node_modules/moment/locale/ta.js", + "./te": "./build/cht-core-4-6/node_modules/moment/locale/te.js", + "./te.js": "./build/cht-core-4-6/node_modules/moment/locale/te.js", + "./tet": "./build/cht-core-4-6/node_modules/moment/locale/tet.js", + "./tet.js": "./build/cht-core-4-6/node_modules/moment/locale/tet.js", + "./tg": "./build/cht-core-4-6/node_modules/moment/locale/tg.js", + "./tg.js": "./build/cht-core-4-6/node_modules/moment/locale/tg.js", + "./th": "./build/cht-core-4-6/node_modules/moment/locale/th.js", + "./th.js": "./build/cht-core-4-6/node_modules/moment/locale/th.js", + "./tk": "./build/cht-core-4-6/node_modules/moment/locale/tk.js", + "./tk.js": "./build/cht-core-4-6/node_modules/moment/locale/tk.js", + "./tl-ph": "./build/cht-core-4-6/node_modules/moment/locale/tl-ph.js", + "./tl-ph.js": "./build/cht-core-4-6/node_modules/moment/locale/tl-ph.js", + "./tlh": "./build/cht-core-4-6/node_modules/moment/locale/tlh.js", + "./tlh.js": "./build/cht-core-4-6/node_modules/moment/locale/tlh.js", + "./tr": "./build/cht-core-4-6/node_modules/moment/locale/tr.js", + "./tr.js": "./build/cht-core-4-6/node_modules/moment/locale/tr.js", + "./tzl": "./build/cht-core-4-6/node_modules/moment/locale/tzl.js", + "./tzl.js": "./build/cht-core-4-6/node_modules/moment/locale/tzl.js", + "./tzm": "./build/cht-core-4-6/node_modules/moment/locale/tzm.js", + "./tzm-latn": "./build/cht-core-4-6/node_modules/moment/locale/tzm-latn.js", + "./tzm-latn.js": "./build/cht-core-4-6/node_modules/moment/locale/tzm-latn.js", + "./tzm.js": "./build/cht-core-4-6/node_modules/moment/locale/tzm.js", + "./ug-cn": "./build/cht-core-4-6/node_modules/moment/locale/ug-cn.js", + "./ug-cn.js": "./build/cht-core-4-6/node_modules/moment/locale/ug-cn.js", + "./uk": "./build/cht-core-4-6/node_modules/moment/locale/uk.js", + "./uk.js": "./build/cht-core-4-6/node_modules/moment/locale/uk.js", + "./ur": "./build/cht-core-4-6/node_modules/moment/locale/ur.js", + "./ur.js": "./build/cht-core-4-6/node_modules/moment/locale/ur.js", + "./uz": "./build/cht-core-4-6/node_modules/moment/locale/uz.js", + "./uz-latn": "./build/cht-core-4-6/node_modules/moment/locale/uz-latn.js", + "./uz-latn.js": "./build/cht-core-4-6/node_modules/moment/locale/uz-latn.js", + "./uz.js": "./build/cht-core-4-6/node_modules/moment/locale/uz.js", + "./vi": "./build/cht-core-4-6/node_modules/moment/locale/vi.js", + "./vi.js": "./build/cht-core-4-6/node_modules/moment/locale/vi.js", + "./x-pseudo": "./build/cht-core-4-6/node_modules/moment/locale/x-pseudo.js", + "./x-pseudo.js": "./build/cht-core-4-6/node_modules/moment/locale/x-pseudo.js", + "./yo": "./build/cht-core-4-6/node_modules/moment/locale/yo.js", + "./yo.js": "./build/cht-core-4-6/node_modules/moment/locale/yo.js", + "./zh-cn": "./build/cht-core-4-6/node_modules/moment/locale/zh-cn.js", + "./zh-cn.js": "./build/cht-core-4-6/node_modules/moment/locale/zh-cn.js", + "./zh-hk": "./build/cht-core-4-6/node_modules/moment/locale/zh-hk.js", + "./zh-hk.js": "./build/cht-core-4-6/node_modules/moment/locale/zh-hk.js", + "./zh-mo": "./build/cht-core-4-6/node_modules/moment/locale/zh-mo.js", + "./zh-mo.js": "./build/cht-core-4-6/node_modules/moment/locale/zh-mo.js", + "./zh-tw": "./build/cht-core-4-6/node_modules/moment/locale/zh-tw.js", + "./zh-tw.js": "./build/cht-core-4-6/node_modules/moment/locale/zh-tw.js" +}; + + +function webpackContext(req) { + var id = webpackContextResolve(req); + return __webpack_require__(id); +} +function webpackContextResolve(req) { + if(!__webpack_require__.o(map, req)) { + var e = new Error("Cannot find module '" + req + "'"); + e.code = 'MODULE_NOT_FOUND'; + throw e; + } + return map[req]; +} +webpackContext.keys = function webpackContextKeys() { + return Object.keys(map); +}; +webpackContext.resolve = webpackContextResolve; +module.exports = webpackContext; +webpackContext.id = "./build/cht-core-4-6/node_modules/moment/locale sync recursive ^\\.\\/.*$"; + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/moment/moment.js": +/*!**********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/moment/moment.js ***! + \**********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +/* module decorator */ module = __webpack_require__.nmd(module); +//! moment.js +//! version : 2.29.4 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com + +;(function (global, factory) { + true ? module.exports = factory() : + 0 +}(this, (function () { 'use strict'; + + var hookCallback; + + function hooks() { + return hookCallback.apply(null, arguments); + } + + // This is done to register the method called with moment() + // without creating circular dependencies. + function setHookCallback(callback) { + hookCallback = callback; + } + + function isArray(input) { + return ( + input instanceof Array || + Object.prototype.toString.call(input) === '[object Array]' + ); + } + + function isObject(input) { + // IE8 will treat undefined and null as object if it wasn't for + // input != null + return ( + input != null && + Object.prototype.toString.call(input) === '[object Object]' + ); + } + + function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); + } + + function isObjectEmpty(obj) { + if (Object.getOwnPropertyNames) { + return Object.getOwnPropertyNames(obj).length === 0; + } else { + var k; + for (k in obj) { + if (hasOwnProp(obj, k)) { + return false; + } + } + return true; + } + } + + function isUndefined(input) { + return input === void 0; + } + + function isNumber(input) { + return ( + typeof input === 'number' || + Object.prototype.toString.call(input) === '[object Number]' + ); + } + + function isDate(input) { + return ( + input instanceof Date || + Object.prototype.toString.call(input) === '[object Date]' + ); + } + + function map(arr, fn) { + var res = [], + i, + arrLen = arr.length; + for (i = 0; i < arrLen; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; + } + + function createUTC(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); + } + + function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty: false, + unusedTokens: [], + unusedInput: [], + overflow: -2, + charsLeftOver: 0, + nullInput: false, + invalidEra: null, + invalidMonth: null, + invalidFormat: false, + userInvalidated: false, + iso: false, + parsedDateParts: [], + era: null, + meridiem: null, + rfc2822: false, + weekdayMismatch: false, + }; + } + + function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; + } + + var some; + if (Array.prototype.some) { + some = Array.prototype.some; + } else { + some = function (fun) { + var t = Object(this), + len = t.length >>> 0, + i; + + for (i = 0; i < len; i++) { + if (i in t && fun.call(this, t[i], i, t)) { + return true; + } + } + + return false; + }; + } + + function isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m), + parsedParts = some.call(flags.parsedDateParts, function (i) { + return i != null; + }), + isNowValid = + !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidEra && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.weekdayMismatch && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated && + (!flags.meridiem || (flags.meridiem && parsedParts)); + + if (m._strict) { + isNowValid = + isNowValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + + if (Object.isFrozen == null || !Object.isFrozen(m)) { + m._isValid = isNowValid; + } else { + return isNowValid; + } + } + return m._isValid; + } + + function createInvalid(flags) { + var m = createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } else { + getParsingFlags(m).userInvalidated = true; + } + + return m; + } + + // Plugins that add properties should also add the key here (null value), + // so we can properly clone ourselves. + var momentProperties = (hooks.momentProperties = []), + updateInProgress = false; + + function copyConfig(to, from) { + var i, + prop, + val, + momentPropertiesLen = momentProperties.length; + + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } + + if (momentPropertiesLen > 0) { + for (i = 0; i < momentPropertiesLen; i++) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + + return to; + } + + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + if (!this.isValid()) { + this._d = new Date(NaN); + } + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + hooks.updateOffset(this); + updateInProgress = false; + } + } + + function isMoment(obj) { + return ( + obj instanceof Moment || (obj != null && obj._isAMomentObject != null) + ); + } + + function warn(msg) { + if ( + hooks.suppressDeprecationWarnings === false && + typeof console !== 'undefined' && + console.warn + ) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(null, msg); + } + if (firstTime) { + var args = [], + arg, + i, + key, + argLen = arguments.length; + for (i = 0; i < argLen; i++) { + arg = ''; + if (typeof arguments[i] === 'object') { + arg += '\n[' + i + '] '; + for (key in arguments[0]) { + if (hasOwnProp(arguments[0], key)) { + arg += key + ': ' + arguments[0][key] + ', '; + } + } + arg = arg.slice(0, -2); // Remove trailing comma and space + } else { + arg = arguments[i]; + } + args.push(arg); + } + warn( + msg + + '\nArguments: ' + + Array.prototype.slice.call(args).join('') + + '\n' + + new Error().stack + ); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(name, msg); + } + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } + + hooks.suppressDeprecationWarnings = false; + hooks.deprecationHandler = null; + + function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); + } + + function set(config) { + var prop, i; + for (i in config) { + if (hasOwnProp(config, i)) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + } + this._config = config; + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. + // TODO: Remove "ordinalParse" fallback in next major release. + this._dayOfMonthOrdinalParseLenient = new RegExp( + (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + + '|' + + /\d{1,2}/.source + ); + } + + function mergeConfigs(parentConfig, childConfig) { + var res = extend({}, parentConfig), + prop; + for (prop in childConfig) { + if (hasOwnProp(childConfig, prop)) { + if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { + res[prop] = {}; + extend(res[prop], parentConfig[prop]); + extend(res[prop], childConfig[prop]); + } else if (childConfig[prop] != null) { + res[prop] = childConfig[prop]; + } else { + delete res[prop]; + } + } + } + for (prop in parentConfig) { + if ( + hasOwnProp(parentConfig, prop) && + !hasOwnProp(childConfig, prop) && + isObject(parentConfig[prop]) + ) { + // make sure changes to properties don't modify parent config + res[prop] = extend({}, res[prop]); + } + } + return res; + } + + function Locale(config) { + if (config != null) { + this.set(config); + } + } + + var keys; + + if (Object.keys) { + keys = Object.keys; + } else { + keys = function (obj) { + var i, + res = []; + for (i in obj) { + if (hasOwnProp(obj, i)) { + res.push(i); + } + } + return res; + }; + } + + var defaultCalendar = { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }; + + function calendar(key, mom, now) { + var output = this._calendar[key] || this._calendar['sameElse']; + return isFunction(output) ? output.call(mom, now) : output; + } + + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return ( + (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + + absNumber + ); + } + + var formattingTokens = + /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, + localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, + formatFunctions = {}, + formatTokenFunctions = {}; + + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken(token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal( + func.apply(this, arguments), + token + ); + }; + } + } + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), + i, + length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = '', + i; + for (i = 0; i < length; i++) { + output += isFunction(array[i]) + ? array[i].call(mom, format) + : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = + formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace( + localFormattingTokens, + replaceLongDateFormatTokens + ); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; + } + + var defaultLongDateFormat = { + LTS: 'h:mm:ss A', + LT: 'h:mm A', + L: 'MM/DD/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }; + + function longDateFormat(key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper + .match(formattingTokens) + .map(function (tok) { + if ( + tok === 'MMMM' || + tok === 'MM' || + tok === 'DD' || + tok === 'dddd' + ) { + return tok.slice(1); + } + return tok; + }) + .join(''); + + return this._longDateFormat[key]; + } + + var defaultInvalidDate = 'Invalid date'; + + function invalidDate() { + return this._invalidDate; + } + + var defaultOrdinal = '%d', + defaultDayOfMonthOrdinalParse = /\d{1,2}/; + + function ordinal(number) { + return this._ordinal.replace('%d', number); + } + + var defaultRelativeTime = { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + w: 'a week', + ww: '%d weeks', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }; + + function relativeTime(number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return isFunction(output) + ? output(number, withoutSuffix, string, isFuture) + : output.replace(/%d/i, number); + } + + function pastFuture(diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); + } + + var aliases = {}; + + function addUnitAlias(unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + } + + function normalizeUnits(units) { + return typeof units === 'string' + ? aliases[units] || aliases[units.toLowerCase()] + : undefined; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; + } + + var priorities = {}; + + function addUnitPriority(unit, priority) { + priorities[unit] = priority; + } + + function getPrioritizedUnits(unitsObj) { + var units = [], + u; + for (u in unitsObj) { + if (hasOwnProp(unitsObj, u)) { + units.push({ unit: u, priority: priorities[u] }); + } + } + units.sort(function (a, b) { + return a.priority - b.priority; + }); + return units; + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + function absFloor(number) { + if (number < 0) { + // -0 -> 0 + return Math.ceil(number) || 0; + } else { + return Math.floor(number); + } + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; + } + + function makeGetSet(unit, keepTime) { + return function (value) { + if (value != null) { + set$1(this, unit, value); + hooks.updateOffset(this, keepTime); + return this; + } else { + return get(this, unit); + } + }; + } + + function get(mom, unit) { + return mom.isValid() + ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() + : NaN; + } + + function set$1(mom, unit, value) { + if (mom.isValid() && !isNaN(value)) { + if ( + unit === 'FullYear' && + isLeapYear(mom.year()) && + mom.month() === 1 && + mom.date() === 29 + ) { + value = toInt(value); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit]( + value, + mom.month(), + daysInMonth(value, mom.month()) + ); + } else { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + } + } + + // MOMENTS + + function stringGet(units) { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](); + } + return this; + } + + function stringSet(units, value) { + if (typeof units === 'object') { + units = normalizeObjectUnits(units); + var prioritized = getPrioritizedUnits(units), + i, + prioritizedLen = prioritized.length; + for (i = 0; i < prioritizedLen; i++) { + this[prioritized[i].unit](units[prioritized[i].unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; + } + + var match1 = /\d/, // 0 - 9 + match2 = /\d\d/, // 00 - 99 + match3 = /\d{3}/, // 000 - 999 + match4 = /\d{4}/, // 0000 - 9999 + match6 = /[+-]?\d{6}/, // -999999 - 999999 + match1to2 = /\d\d?/, // 0 - 99 + match3to4 = /\d\d\d\d?/, // 999 - 9999 + match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 + match1to3 = /\d{1,3}/, // 0 - 999 + match1to4 = /\d{1,4}/, // 0 - 9999 + match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 + matchUnsigned = /\d+/, // 0 - inf + matchSigned = /[+-]?\d+/, // -inf - inf + matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z + matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z + matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + matchWord = + /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, + regexes; + + regexes = {}; + + function addRegexToken(token, regex, strictRegex) { + regexes[token] = isFunction(regex) + ? regex + : function (isStrict, localeData) { + return isStrict && strictRegex ? strictRegex : regex; + }; + } + + function getParseRegexForToken(token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return regexEscape( + s + .replace('\\', '') + .replace( + /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, + function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + } + ) + ); + } + + function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + var tokens = {}; + + function addParseToken(token, callback) { + var i, + func = callback, + tokenLen; + if (typeof token === 'string') { + token = [token]; + } + if (isNumber(callback)) { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + tokenLen = token.length; + for (i = 0; i < tokenLen; i++) { + tokens[token[i]] = func; + } + } + + function addWeekParseToken(token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } + + var YEAR = 0, + MONTH = 1, + DATE = 2, + HOUR = 3, + MINUTE = 4, + SECOND = 5, + MILLISECOND = 6, + WEEK = 7, + WEEKDAY = 8; + + function mod(n, x) { + return ((n % x) + x) % x; + } + + var indexOf; + + if (Array.prototype.indexOf) { + indexOf = Array.prototype.indexOf; + } else { + indexOf = function (o) { + // I know + var i; + for (i = 0; i < this.length; ++i) { + if (this[i] === o) { + return i; + } + } + return -1; + }; + } + + function daysInMonth(year, month) { + if (isNaN(year) || isNaN(month)) { + return NaN; + } + var modMonth = mod(month, 12); + year += (month - modMonth) / 12; + return modMonth === 1 + ? isLeapYear(year) + ? 29 + : 28 + : 31 - ((modMonth % 7) % 2); + } + + // FORMATTING + + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); + + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); + + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); + + // ALIASES + + addUnitAlias('month', 'M'); + + // PRIORITY + + addUnitPriority('month', 8); + + // PARSING + + addRegexToken('M', match1to2); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); + }); + addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); + }); + + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); + + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); + + // LOCALES + + var defaultLocaleMonths = + 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + defaultLocaleMonthsShort = + 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, + defaultMonthsShortRegex = matchWord, + defaultMonthsRegex = matchWord; + + function localeMonths(m, format) { + if (!m) { + return isArray(this._months) + ? this._months + : this._months['standalone']; + } + return isArray(this._months) + ? this._months[m.month()] + : this._months[ + (this._months.isFormat || MONTHS_IN_FORMAT).test(format) + ? 'format' + : 'standalone' + ][m.month()]; + } + + function localeMonthsShort(m, format) { + if (!m) { + return isArray(this._monthsShort) + ? this._monthsShort + : this._monthsShort['standalone']; + } + return isArray(this._monthsShort) + ? this._monthsShort[m.month()] + : this._monthsShort[ + MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone' + ][m.month()]; + } + + function handleStrictParse(monthName, format, strict) { + var i, + ii, + mom, + llc = monthName.toLocaleLowerCase(); + if (!this._monthsParse) { + // this is not used + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + for (i = 0; i < 12; ++i) { + mom = createUTC([2000, i]); + this._shortMonthsParse[i] = this.monthsShort( + mom, + '' + ).toLocaleLowerCase(); + this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeMonthsParse(monthName, format, strict) { + var i, mom, regex; + + if (this._monthsParseExact) { + return handleStrictParse.call(this, monthName, format, strict); + } + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + // TODO: add sorting + // Sorting makes sure if one month (or abbr) is a prefix of another + // see sorting in computeMonthsParse + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp( + '^' + this.months(mom, '').replace('.', '') + '$', + 'i' + ); + this._shortMonthsParse[i] = new RegExp( + '^' + this.monthsShort(mom, '').replace('.', '') + '$', + 'i' + ); + } + if (!strict && !this._monthsParse[i]) { + regex = + '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'MMMM' && + this._longMonthsParse[i].test(monthName) + ) { + return i; + } else if ( + strict && + format === 'MMM' && + this._shortMonthsParse[i].test(monthName) + ) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } + } + + // MOMENTS + + function setMonth(mom, value) { + var dayOfMonth; + + if (!mom.isValid()) { + // No op + return mom; + } + + if (typeof value === 'string') { + if (/^\d+$/.test(value)) { + value = toInt(value); + } else { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (!isNumber(value)) { + return mom; + } + } + } + + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } + + function getSetMonth(value) { + if (value != null) { + setMonth(this, value); + hooks.updateOffset(this, true); + return this; + } else { + return get(this, 'Month'); + } + } + + function getDaysInMonth() { + return daysInMonth(this.year(), this.month()); + } + + function monthsShortRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + if (!hasOwnProp(this, '_monthsShortRegex')) { + this._monthsShortRegex = defaultMonthsShortRegex; + } + return this._monthsShortStrictRegex && isStrict + ? this._monthsShortStrictRegex + : this._monthsShortRegex; + } + } + + function monthsRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + if (!hasOwnProp(this, '_monthsRegex')) { + this._monthsRegex = defaultMonthsRegex; + } + return this._monthsStrictRegex && isStrict + ? this._monthsStrictRegex + : this._monthsRegex; + } + } + + function computeMonthsParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + shortPieces.push(this.monthsShort(mom, '')); + longPieces.push(this.months(mom, '')); + mixedPieces.push(this.months(mom, '')); + mixedPieces.push(this.monthsShort(mom, '')); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 12; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + } + for (i = 0; i < 24; i++) { + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._monthsShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + } + + // FORMATTING + + addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? zeroFill(y, 4) : '+' + y; + }); + + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; + }); + + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + + // ALIASES + + addUnitAlias('year', 'y'); + + // PRIORITIES + + addUnitPriority('year', 1); + + // PARSING + + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); + + addParseToken(['YYYYY', 'YYYYYY'], YEAR); + addParseToken('YYYY', function (input, array) { + array[YEAR] = + input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken('YY', function (input, array) { + array[YEAR] = hooks.parseTwoDigitYear(input); + }); + addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); + }); + + // HELPERS + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + // HOOKS + + hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + // MOMENTS + + var getSetYear = makeGetSet('FullYear', true); + + function getIsLeapYear() { + return isLeapYear(this.year()); + } + + function createDate(y, m, d, h, M, s, ms) { + // can't just apply() to create a date: + // https://stackoverflow.com/q/181348 + var date; + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + date = new Date(y + 400, m, d, h, M, s, ms); + if (isFinite(date.getFullYear())) { + date.setFullYear(y); + } + } else { + date = new Date(y, m, d, h, M, s, ms); + } + + return date; + } + + function createUTCDate(y) { + var date, args; + // the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + args = Array.prototype.slice.call(arguments); + // preserve leap years using a full 400 year cycle, then reset + args[0] = y + 400; + date = new Date(Date.UTC.apply(null, args)); + if (isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + } else { + date = new Date(Date.UTC.apply(null, arguments)); + } + + return date; + } + + // start-of-first-week - start-of-year + function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + + return -fwdlw + fwd - 1; + } + + // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, + resDayOfYear; + + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + + return { + year: resYear, + dayOfYear: resDayOfYear, + }; + } + + function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, + resYear; + + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + + return { + week: resWeek, + year: resYear, + }; + } + + function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; + } + + // FORMATTING + + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + + // ALIASES + + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); + + // PRIORITIES + + addUnitPriority('week', 5); + addUnitPriority('isoWeek', 5); + + // PARSING + + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); + + addWeekParseToken( + ['w', 'ww', 'W', 'WW'], + function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + } + ); + + // HELPERS + + // LOCALES + + function localeWeek(mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + + var defaultLocaleWeek = { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }; + + function localeFirstDayOfWeek() { + return this._week.dow; + } + + function localeFirstDayOfYear() { + return this._week.doy; + } + + // MOMENTS + + function getSetWeek(input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek(input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + // FORMATTING + + addFormatToken('d', 0, 'do', 'day'); + + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); + + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); + + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); + + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + + // ALIASES + + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); + + // PRIORITY + addUnitPriority('day', 11); + addUnitPriority('weekday', 11); + addUnitPriority('isoWeekday', 11); + + // PARSING + + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', function (isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); + }); + addRegexToken('ddd', function (isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); + }); + addRegexToken('dddd', function (isStrict, locale) { + return locale.weekdaysRegex(isStrict); + }); + + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); + + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); + + // HELPERS + + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; + } + + function parseIsoWeekday(input, locale) { + if (typeof input === 'string') { + return locale.weekdaysParse(input) % 7 || 7; + } + return isNaN(input) ? null : input; + } + + // LOCALES + function shiftWeekdays(ws, n) { + return ws.slice(n, 7).concat(ws.slice(0, n)); + } + + var defaultLocaleWeekdays = + 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + defaultWeekdaysRegex = matchWord, + defaultWeekdaysShortRegex = matchWord, + defaultWeekdaysMinRegex = matchWord; + + function localeWeekdays(m, format) { + var weekdays = isArray(this._weekdays) + ? this._weekdays + : this._weekdays[ + m && m !== true && this._weekdays.isFormat.test(format) + ? 'format' + : 'standalone' + ]; + return m === true + ? shiftWeekdays(weekdays, this._week.dow) + : m + ? weekdays[m.day()] + : weekdays; + } + + function localeWeekdaysShort(m) { + return m === true + ? shiftWeekdays(this._weekdaysShort, this._week.dow) + : m + ? this._weekdaysShort[m.day()] + : this._weekdaysShort; + } + + function localeWeekdaysMin(m) { + return m === true + ? shiftWeekdays(this._weekdaysMin, this._week.dow) + : m + ? this._weekdaysMin[m.day()] + : this._weekdaysMin; + } + + function handleStrictParse$1(weekdayName, format, strict) { + var i, + ii, + mom, + llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; + + for (i = 0; i < 7; ++i) { + mom = createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin( + mom, + '' + ).toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort( + mom, + '' + ).toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeWeekdaysParse(weekdayName, format, strict) { + var i, mom, regex; + + if (this._weekdaysParseExact) { + return handleStrictParse$1.call(this, weekdayName, format, strict); + } + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = createUTC([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp( + '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._shortWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._minWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + } + if (!this._weekdaysParse[i]) { + regex = + '^' + + this.weekdays(mom, '') + + '|^' + + this.weekdaysShort(mom, '') + + '|^' + + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'dddd' && + this._fullWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'ddd' && + this._shortWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'dd' && + this._minWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + // MOMENTS + + function getSetDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + + function getSetISODayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + + if (input != null) { + var weekday = parseIsoWeekday(input, this.localeData()); + return this.day(this.day() % 7 ? weekday : weekday - 7); + } else { + return this.day() || 7; + } + } + + function weekdaysRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; + } else { + return this._weekdaysRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysRegex')) { + this._weekdaysRegex = defaultWeekdaysRegex; + } + return this._weekdaysStrictRegex && isStrict + ? this._weekdaysStrictRegex + : this._weekdaysRegex; + } + } + + function weekdaysShortRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysShortRegex')) { + this._weekdaysShortRegex = defaultWeekdaysShortRegex; + } + return this._weekdaysShortStrictRegex && isStrict + ? this._weekdaysShortStrictRegex + : this._weekdaysShortRegex; + } + } + + function weekdaysMinRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysMinRegex')) { + this._weekdaysMinRegex = defaultWeekdaysMinRegex; + } + return this._weekdaysMinStrictRegex && isStrict + ? this._weekdaysMinStrictRegex + : this._weekdaysMinRegex; + } + } + + function computeWeekdaysParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var minPieces = [], + shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom, + minp, + shortp, + longp; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, 1]).day(i); + minp = regexEscape(this.weekdaysMin(mom, '')); + shortp = regexEscape(this.weekdaysShort(mom, '')); + longp = regexEscape(this.weekdays(mom, '')); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + // Sorting makes sure if one weekday (or abbr) is a prefix of another it + // will match the longer piece. + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + + this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; + + this._weekdaysStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._weekdaysShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + this._weekdaysMinStrictRegex = new RegExp( + '^(' + minPieces.join('|') + ')', + 'i' + ); + } + + // FORMATTING + + function hFormat() { + return this.hours() % 12 || 12; + } + + function kFormat() { + return this.hours() || 24; + } + + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, hFormat); + addFormatToken('k', ['kk', 2], 0, kFormat); + + addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); + }); + + addFormatToken('hmmss', 0, 0, function () { + return ( + '' + + hFormat.apply(this) + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); + }); + + addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); + }); + + addFormatToken('Hmmss', 0, 0, function () { + return ( + '' + + this.hours() + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); + }); + + function meridiem(token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem( + this.hours(), + this.minutes(), + lowercase + ); + }); + } + + meridiem('a', true); + meridiem('A', false); + + // ALIASES + + addUnitAlias('hour', 'h'); + + // PRIORITY + addUnitPriority('hour', 13); + + // PARSING + + function matchMeridiem(isStrict, locale) { + return locale._meridiemParse; + } + + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('k', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + addRegexToken('kk', match1to2, match2); + + addRegexToken('hmm', match3to4); + addRegexToken('hmmss', match5to6); + addRegexToken('Hmm', match3to4); + addRegexToken('Hmmss', match5to6); + + addParseToken(['H', 'HH'], HOUR); + addParseToken(['k', 'kk'], function (input, array, config) { + var kInput = toInt(input); + array[HOUR] = kInput === 24 ? 0 : kInput; + }); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + }); + addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + }); + + // LOCALES + + function localeIsPM(input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return (input + '').toLowerCase().charAt(0) === 'p'; + } + + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, + // Setting the hour should keep the time, because the user explicitly + // specified which hour they want. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + getSetHour = makeGetSet('Hours', true); + + function localeMeridiem(hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } + + var baseConfig = { + calendar: defaultCalendar, + longDateFormat: defaultLongDateFormat, + invalidDate: defaultInvalidDate, + ordinal: defaultOrdinal, + dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, + relativeTime: defaultRelativeTime, + + months: defaultLocaleMonths, + monthsShort: defaultLocaleMonthsShort, + + week: defaultLocaleWeek, + + weekdays: defaultLocaleWeekdays, + weekdaysMin: defaultLocaleWeekdaysMin, + weekdaysShort: defaultLocaleWeekdaysShort, + + meridiemParse: defaultLocaleMeridiemParse, + }; + + // internal storage for locale config files + var locales = {}, + localeFamilies = {}, + globalLocale; + + function commonPrefix(arr1, arr2) { + var i, + minl = Math.min(arr1.length, arr2.length); + for (i = 0; i < minl; i += 1) { + if (arr1[i] !== arr2[i]) { + return i; + } + } + return minl; + } + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, + j, + next, + locale, + split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if ( + next && + next.length >= j && + commonPrefix(split, next) >= j - 1 + ) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return globalLocale; + } + + function isLocaleNameSane(name) { + // Prevent names that look like filesystem paths, i.e contain '/' or '\' + return name.match('^[^/\\\\]*$') != null; + } + + function loadLocale(name) { + var oldLocale = null, + aliasedRequire; + // TODO: Find a better way to register and load all the locales in Node + if ( + locales[name] === undefined && + "object" !== 'undefined' && + module && + module.exports && + isLocaleNameSane(name) + ) { + try { + oldLocale = globalLocale._abbr; + aliasedRequire = undefined; + __webpack_require__("./build/cht-core-4-6/node_modules/moment/locale sync recursive ^\\.\\/.*$")("./" + name); + getSetGlobalLocale(oldLocale); + } catch (e) { + // mark as not found to avoid repeating expensive file require call causing high CPU + // when trying to find en-US, en_US, en-us for every format call + locales[name] = null; // null means not found + } + } + return locales[name]; + } + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function getSetGlobalLocale(key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = getLocale(key); + } else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } else { + if (typeof console !== 'undefined' && console.warn) { + //warn user if arguments are passed but the locale could not be set + console.warn( + 'Locale ' + key + ' not found. Did you forget to load it?' + ); + } + } + } + + return globalLocale._abbr; + } + + function defineLocale(name, config) { + if (config !== null) { + var locale, + parentConfig = baseConfig; + config.abbr = name; + if (locales[name] != null) { + deprecateSimple( + 'defineLocaleOverride', + 'use moment.updateLocale(localeName, config) to change ' + + 'an existing locale. moment.defineLocale(localeName, ' + + 'config) should only be used for creating a new locale ' + + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.' + ); + parentConfig = locales[name]._config; + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + parentConfig = locales[config.parentLocale]._config; + } else { + locale = loadLocale(config.parentLocale); + if (locale != null) { + parentConfig = locale._config; + } else { + if (!localeFamilies[config.parentLocale]) { + localeFamilies[config.parentLocale] = []; + } + localeFamilies[config.parentLocale].push({ + name: name, + config: config, + }); + return null; + } + } + } + locales[name] = new Locale(mergeConfigs(parentConfig, config)); + + if (localeFamilies[name]) { + localeFamilies[name].forEach(function (x) { + defineLocale(x.name, x.config); + }); + } + + // backwards compat for now: also set the locale + // make sure we set the locale AFTER all child locales have been + // created, so we won't end up with the child locale set. + getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + } + + function updateLocale(name, config) { + if (config != null) { + var locale, + tmpLocale, + parentConfig = baseConfig; + + if (locales[name] != null && locales[name].parentLocale != null) { + // Update existing child locale in-place to avoid memory-leaks + locales[name].set(mergeConfigs(locales[name]._config, config)); + } else { + // MERGE + tmpLocale = loadLocale(name); + if (tmpLocale != null) { + parentConfig = tmpLocale._config; + } + config = mergeConfigs(parentConfig, config); + if (tmpLocale == null) { + // updateLocale is called for creating a new locale + // Set abbr so it will have a name (getters return + // undefined otherwise). + config.abbr = name; + } + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; + } + + // backwards compat for now: also set the locale + getSetGlobalLocale(name); + } else { + // pass null for config to unupdate, useful for tests + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + if (name === getSetGlobalLocale()) { + getSetGlobalLocale(name); + } + } else if (locales[name] != null) { + delete locales[name]; + } + } + } + return locales[name]; + } + + // returns locale data + function getLocale(key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + } + + function listLocales() { + return keys(locales); + } + + function checkOverflow(m) { + var overflow, + a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 + ? MONTH + : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) + ? DATE + : a[HOUR] < 0 || + a[HOUR] > 24 || + (a[HOUR] === 24 && + (a[MINUTE] !== 0 || + a[SECOND] !== 0 || + a[MILLISECOND] !== 0)) + ? HOUR + : a[MINUTE] < 0 || a[MINUTE] > 59 + ? MINUTE + : a[SECOND] < 0 || a[SECOND] > 59 + ? SECOND + : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 + ? MILLISECOND + : -1; + + if ( + getParsingFlags(m)._overflowDayOfYear && + (overflow < YEAR || overflow > DATE) + ) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; + } + + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + var extendedIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + basicIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, + isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/], + ['YYYYMM', /\d{6}/, false], + ['YYYY', /\d{4}/, false], + ], + // iso time formats and regexes + isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/], + ], + aspNetJsonRegex = /^\/?Date\((-?\d+)/i, + // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 + rfc2822 = + /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, + obsOffsets = { + UT: 0, + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60, + }; + + // date from iso format + function configFromISO(config) { + var i, + l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, + dateFormat, + timeFormat, + tzFormat, + isoDatesLen = isoDates.length, + isoTimesLen = isoTimes.length; + + if (match) { + getParsingFlags(config).iso = true; + for (i = 0, l = isoDatesLen; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimesLen; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + function extractFromRFC2822Strings( + yearStr, + monthStr, + dayStr, + hourStr, + minuteStr, + secondStr + ) { + var result = [ + untruncateYear(yearStr), + defaultLocaleMonthsShort.indexOf(monthStr), + parseInt(dayStr, 10), + parseInt(hourStr, 10), + parseInt(minuteStr, 10), + ]; + + if (secondStr) { + result.push(parseInt(secondStr, 10)); + } + + return result; + } + + function untruncateYear(yearStr) { + var year = parseInt(yearStr, 10); + if (year <= 49) { + return 2000 + year; + } else if (year <= 999) { + return 1900 + year; + } + return year; + } + + function preprocessRFC2822(s) { + // Remove comments and folding whitespace and replace multiple-spaces with a single space + return s + .replace(/\([^()]*\)|[\n\t]/g, ' ') + .replace(/(\s\s+)/g, ' ') + .replace(/^\s\s*/, '') + .replace(/\s\s*$/, ''); + } + + function checkWeekday(weekdayStr, parsedInput, config) { + if (weekdayStr) { + // TODO: Replace the vanilla JS Date object with an independent day-of-week check. + var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), + weekdayActual = new Date( + parsedInput[0], + parsedInput[1], + parsedInput[2] + ).getDay(); + if (weekdayProvided !== weekdayActual) { + getParsingFlags(config).weekdayMismatch = true; + config._isValid = false; + return false; + } + } + return true; + } + + function calculateOffset(obsOffset, militaryOffset, numOffset) { + if (obsOffset) { + return obsOffsets[obsOffset]; + } else if (militaryOffset) { + // the only allowed military tz is Z + return 0; + } else { + var hm = parseInt(numOffset, 10), + m = hm % 100, + h = (hm - m) / 100; + return h * 60 + m; + } + } + + // date and time from ref 2822 format + function configFromRFC2822(config) { + var match = rfc2822.exec(preprocessRFC2822(config._i)), + parsedArray; + if (match) { + parsedArray = extractFromRFC2822Strings( + match[4], + match[3], + match[2], + match[5], + match[6], + match[7] + ); + if (!checkWeekday(match[1], parsedArray, config)) { + return; + } + + config._a = parsedArray; + config._tzm = calculateOffset(match[8], match[9], match[10]); + + config._d = createUTCDate.apply(null, config._a); + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + + getParsingFlags(config).rfc2822 = true; + } else { + config._isValid = false; + } + } + + // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + configFromRFC2822(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + if (config._strict) { + config._isValid = false; + } else { + // Final attempt, use Input Fallback + hooks.createFromInputFallback(config); + } + } + + hooks.createFromInputFallback = deprecate( + 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); + + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } + + function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(hooks.now()); + if (config._useUTC) { + return [ + nowValue.getUTCFullYear(), + nowValue.getUTCMonth(), + nowValue.getUTCDate(), + ]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; + } + + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray(config) { + var i, + date, + input = [], + currentDate, + expectedWeekday, + yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear != null) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if ( + config._dayOfYear > daysInYear(yearToUse) || + config._dayOfYear === 0 + ) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = + config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i]; + } + + // Check for 24:00:00.000 + if ( + config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0 + ) { + config._nextDay = true; + config._a[HOUR] = 0; + } + + config._d = (config._useUTC ? createUTCDate : createDate).apply( + null, + input + ); + expectedWeekday = config._useUTC + ? config._d.getUTCDay() + : config._d.getDay(); + + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + + // check for mismatching day of week + if ( + config._w && + typeof config._w.d !== 'undefined' && + config._w.d !== expectedWeekday + ) { + getParsingFlags(config).weekdayMismatch = true; + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults( + w.GG, + config._a[YEAR], + weekOfYear(createLocal(), 1, 4).year + ); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; + } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + curWeek = weekOfYear(createLocal(), dow, doy); + + weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); + + // Default to current week. + week = defaults(w.w, curWeek.week); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from beginning of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } + } else { + // default to beginning of week + weekday = dow; + } + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + } + + // constant that refers to the ISO standard + hooks.ISO_8601 = function () {}; + + // constant that refers to the RFC 2822 form + hooks.RFC_2822 = function () {}; + + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === hooks.ISO_8601) { + configFromISO(config); + return; + } + if (config._f === hooks.RFC_2822) { + configFromRFC2822(config); + return; + } + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, + parsedInput, + tokens, + token, + skipped, + stringLength = string.length, + totalParsedInputLength = 0, + era, + tokenLen; + + tokens = + expandFormat(config._f, config._locale).match(formattingTokens) || []; + tokenLen = tokens.length; + for (i = 0; i < tokenLen; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || + [])[0]; + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice( + string.indexOf(parsedInput) + parsedInput.length + ); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = + stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if ( + config._a[HOUR] <= 12 && + getParsingFlags(config).bigHour === true && + config._a[HOUR] > 0 + ) { + getParsingFlags(config).bigHour = undefined; + } + + getParsingFlags(config).parsedDateParts = config._a.slice(0); + getParsingFlags(config).meridiem = config._meridiem; + // handle meridiem + config._a[HOUR] = meridiemFixWrap( + config._locale, + config._a[HOUR], + config._meridiem + ); + + // handle era + era = getParsingFlags(config).era; + if (era !== null) { + config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); + } + + configFromArray(config); + checkOverflow(config); + } + + function meridiemFixWrap(locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } + } + + // date from string and array of format strings + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + scoreToBeat, + i, + currentScore, + validFormatFound, + bestFormatIsValid = false, + configfLen = config._f.length; + + if (configfLen === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < configfLen; i++) { + currentScore = 0; + validFormatFound = false; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (isValid(tempConfig)) { + validFormatFound = true; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (!bestFormatIsValid) { + if ( + scoreToBeat == null || + currentScore < scoreToBeat || + validFormatFound + ) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + if (validFormatFound) { + bestFormatIsValid = true; + } + } + } else { + if (currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + } + + extend(config, bestMoment || tempConfig); + } + + function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i), + dayOrDate = i.day === undefined ? i.date : i.day; + config._a = map( + [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], + function (obj) { + return obj && parseInt(obj, 10); + } + ); + + configFromArray(config); + } + + function createFromConfig(config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; + } + + function prepareConfig(config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return createInvalid({ nullInput: true }); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isDate(input)) { + config._d = input; + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else { + configFromInput(config); + } + + if (!isValid(config)) { + config._d = null; + } + + return config; + } + + function configFromInput(config) { + var input = config._i; + if (isUndefined(input)) { + config._d = new Date(hooks.now()); + } else if (isDate(input)) { + config._d = new Date(input.valueOf()); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (isObject(input)) { + configFromObject(config); + } else if (isNumber(input)) { + // from milliseconds + config._d = new Date(input); + } else { + hooks.createFromInputFallback(config); + } + } + + function createLocalOrUTC(input, format, locale, strict, isUTC) { + var c = {}; + + if (format === true || format === false) { + strict = format; + format = undefined; + } + + if (locale === true || locale === false) { + strict = locale; + locale = undefined; + } + + if ( + (isObject(input) && isObjectEmpty(input)) || + (isArray(input) && input.length === 0) + ) { + input = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); + } + + function createLocal(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); + } + + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return createInvalid(); + } + } + ), + prototypeMax = deprecate( + 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return createInvalid(); + } + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + // TODO: Use [].sort instead? + function min() { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); + } + + function max() { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); + } + + var now = function () { + return Date.now ? Date.now() : +new Date(); + }; + + var ordering = [ + 'year', + 'quarter', + 'month', + 'week', + 'day', + 'hour', + 'minute', + 'second', + 'millisecond', + ]; + + function isDurationValid(m) { + var key, + unitHasDecimal = false, + i, + orderLen = ordering.length; + for (key in m) { + if ( + hasOwnProp(m, key) && + !( + indexOf.call(ordering, key) !== -1 && + (m[key] == null || !isNaN(m[key])) + ) + ) { + return false; + } + } + + for (i = 0; i < orderLen; ++i) { + if (m[ordering[i]]) { + if (unitHasDecimal) { + return false; // only allow non-integers for smallest unit + } + if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { + unitHasDecimal = true; + } + } + } + + return true; + } + + function isValid$1() { + return this._isValid; + } + + function createInvalid$1() { + return createDuration(NaN); + } + + function Duration(duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || normalizedInput.isoWeek || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + this._isValid = isDurationValid(normalizedInput); + + // representation for dateAddRemove + this._milliseconds = + +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + weeks * 7; + // It is impossible to translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + quarters * 3 + years * 12; + + this._data = {}; + + this._locale = getLocale(); + + this._bubble(); + } + + function isDuration(obj) { + return obj instanceof Duration; + } + + function absRound(number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); + } + } + + // compare two arrays, return the number of differences + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ( + (dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) + ) { + diffs++; + } + } + return diffs + lengthDiff; + } + + // FORMATTING + + function offset(token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(), + sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return ( + sign + + zeroFill(~~(offset / 60), 2) + + separator + + zeroFill(~~offset % 60, 2) + ); + }); + } + + offset('Z', ':'); + offset('ZZ', ''); + + // PARSING + + addRegexToken('Z', matchShortOffset); + addRegexToken('ZZ', matchShortOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); + }); + + // HELPERS + + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; + + function offsetFromString(matcher, string) { + var matches = (string || '').match(matcher), + chunk, + parts, + minutes; + + if (matches === null) { + return null; + } + + chunk = matches[matches.length - 1] || []; + parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + minutes = +(parts[1] * 60) + toInt(parts[2]); + + return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; + } + + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = + (isMoment(input) || isDate(input) + ? input.valueOf() + : createLocal(input).valueOf()) - res.valueOf(); + // Use low-level api, because this fn is low-level api. + res._d.setTime(res._d.valueOf() + diff); + hooks.updateOffset(res, false); + return res; + } else { + return createLocal(input).local(); + } + } + + function getDateOffset(m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset()); + } + + // HOOKS + + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + hooks.updateOffset = function () {}; + + // MOMENTS + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset(input, keepLocalTime, keepMinutes) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + if (input === null) { + return this; + } + } else if (Math.abs(input) < 16 && !keepMinutes) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + addSubtract( + this, + createDuration(input - offset, 'm'), + 1, + false + ); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } + } + + function getSetZone(input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } + } + + function setOffsetToUTC(keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } + + function setOffsetToLocal(keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; + } + + function setOffsetToParsedOffset() { + if (this._tzm != null) { + this.utcOffset(this._tzm, false, true); + } else if (typeof this._i === 'string') { + var tZone = offsetFromString(matchOffset, this._i); + if (tZone != null) { + this.utcOffset(tZone); + } else { + this.utcOffset(0, true); + } + } + return this; + } + + function hasAlignedHourOffset(input) { + if (!this.isValid()) { + return false; + } + input = input ? createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; + } + + function isDaylightSavingTime() { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); + } + + function isDaylightSavingTimeShifted() { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } + + var c = {}, + other; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + other = c._isUTC ? createUTC(c._a) : createLocal(c._a); + this._isDSTShifted = + this.isValid() && compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; + } + + function isLocal() { + return this.isValid() ? !this._isUTC : false; + } + + function isUtcOffset() { + return this.isValid() ? this._isUTC : false; + } + + function isUtc() { + return this.isValid() ? this._isUTC && this._offset === 0 : false; + } + + // ASP.NET json date format regex + var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + // and further modified to allow for strings containing both week and day + isoRegex = + /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; + + function createDuration(input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms: input._milliseconds, + d: input._days, + M: input._months, + }; + } else if (isNumber(input) || !isNaN(+input)) { + duration = {}; + if (key) { + duration[key] = +input; + } else { + duration.milliseconds = +input; + } + } else if ((match = aspNetRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: 0, + d: toInt(match[DATE]) * sign, + h: toInt(match[HOUR]) * sign, + m: toInt(match[MINUTE]) * sign, + s: toInt(match[SECOND]) * sign, + ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match + }; + } else if ((match = isoRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: parseIso(match[2], sign), + M: parseIso(match[3], sign), + w: parseIso(match[4], sign), + d: parseIso(match[5], sign), + h: parseIso(match[6], sign), + m: parseIso(match[7], sign), + s: parseIso(match[8], sign), + }; + } else if (duration == null) { + // checks for null or undefined + duration = {}; + } else if ( + typeof duration === 'object' && + ('from' in duration || 'to' in duration) + ) { + diffRes = momentsDifference( + createLocal(duration.from), + createLocal(duration.to) + ); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + if (isDuration(input) && hasOwnProp(input, '_isValid')) { + ret._isValid = input._isValid; + } + + return ret; + } + + createDuration.fn = Duration.prototype; + createDuration.invalid = createInvalid$1; + + function parseIso(inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + } + + function positiveMomentsDifference(base, other) { + var res = {}; + + res.months = + other.month() - base.month() + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +base.clone().add(res.months, 'M'); + + return res; + } + + function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return { milliseconds: 0, months: 0 }; + } + + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; + } + + // TODO: remove 'name' arg after deprecation is removed + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple( + name, + 'moment().' + + name + + '(period, number) is deprecated. Please use moment().' + + name + + '(number, period). ' + + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' + ); + tmp = val; + val = period; + period = tmp; + } + + dur = createDuration(val, period); + addSubtract(this, dur, direction); + return this; + }; + } + + function addSubtract(mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = absRound(duration._days), + months = absRound(duration._months); + + if (!mom.isValid()) { + // No op + return; + } + + updateOffset = updateOffset == null ? true : updateOffset; + + if (months) { + setMonth(mom, get(mom, 'Month') + months * isAdding); + } + if (days) { + set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); + } + if (milliseconds) { + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); + } + if (updateOffset) { + hooks.updateOffset(mom, days || months); + } + } + + var add = createAdder(1, 'add'), + subtract = createAdder(-1, 'subtract'); + + function isString(input) { + return typeof input === 'string' || input instanceof String; + } + + // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined + function isMomentInput(input) { + return ( + isMoment(input) || + isDate(input) || + isString(input) || + isNumber(input) || + isNumberOrStringArray(input) || + isMomentInputObject(input) || + input === null || + input === undefined + ); + } + + function isMomentInputObject(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'years', + 'year', + 'y', + 'months', + 'month', + 'M', + 'days', + 'day', + 'd', + 'dates', + 'date', + 'D', + 'hours', + 'hour', + 'h', + 'minutes', + 'minute', + 'm', + 'seconds', + 'second', + 's', + 'milliseconds', + 'millisecond', + 'ms', + ], + i, + property, + propertyLen = properties.length; + + for (i = 0; i < propertyLen; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; + } + + function isNumberOrStringArray(input) { + var arrayTest = isArray(input), + dataTypeTest = false; + if (arrayTest) { + dataTypeTest = + input.filter(function (item) { + return !isNumber(item) && isString(input); + }).length === 0; + } + return arrayTest && dataTypeTest; + } + + function isCalendarSpec(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'sameDay', + 'nextDay', + 'lastDay', + 'nextWeek', + 'lastWeek', + 'sameElse', + ], + i, + property; + + for (i = 0; i < properties.length; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; + } + + function getCalendarFormat(myMoment, now) { + var diff = myMoment.diff(now, 'days', true); + return diff < -6 + ? 'sameElse' + : diff < -1 + ? 'lastWeek' + : diff < 0 + ? 'lastDay' + : diff < 1 + ? 'sameDay' + : diff < 2 + ? 'nextDay' + : diff < 7 + ? 'nextWeek' + : 'sameElse'; + } + + function calendar$1(time, formats) { + // Support for single parameter, formats only overload to the calendar function + if (arguments.length === 1) { + if (!arguments[0]) { + time = undefined; + formats = undefined; + } else if (isMomentInput(arguments[0])) { + time = arguments[0]; + formats = undefined; + } else if (isCalendarSpec(arguments[0])) { + formats = arguments[0]; + time = undefined; + } + } + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + format = hooks.calendarFormat(this, sod) || 'sameElse', + output = + formats && + (isFunction(formats[format]) + ? formats[format].call(this, now) + : formats[format]); + + return this.format( + output || this.localeData().calendar(format, this, createLocal(now)) + ); + } + + function clone() { + return new Moment(this); + } + + function isAfter(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() > localInput.valueOf(); + } else { + return localInput.valueOf() < this.clone().startOf(units).valueOf(); + } + } + + function isBefore(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() < localInput.valueOf(); + } else { + return this.clone().endOf(units).valueOf() < localInput.valueOf(); + } + } + + function isBetween(from, to, units, inclusivity) { + var localFrom = isMoment(from) ? from : createLocal(from), + localTo = isMoment(to) ? to : createLocal(to); + if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { + return false; + } + inclusivity = inclusivity || '()'; + return ( + (inclusivity[0] === '(' + ? this.isAfter(localFrom, units) + : !this.isBefore(localFrom, units)) && + (inclusivity[1] === ')' + ? this.isBefore(localTo, units) + : !this.isAfter(localTo, units)) + ); + } + + function isSame(input, units) { + var localInput = isMoment(input) ? input : createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() === localInput.valueOf(); + } else { + inputMs = localInput.valueOf(); + return ( + this.clone().startOf(units).valueOf() <= inputMs && + inputMs <= this.clone().endOf(units).valueOf() + ); + } + } + + function isSameOrAfter(input, units) { + return this.isSame(input, units) || this.isAfter(input, units); + } + + function isSameOrBefore(input, units) { + return this.isSame(input, units) || this.isBefore(input, units); + } + + function diff(input, units, asFloat) { + var that, zoneDelta, output; + + if (!this.isValid()) { + return NaN; + } + + that = cloneWithOffset(input, this); + + if (!that.isValid()) { + return NaN; + } + + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + + units = normalizeUnits(units); + + switch (units) { + case 'year': + output = monthDiff(this, that) / 12; + break; + case 'month': + output = monthDiff(this, that); + break; + case 'quarter': + output = monthDiff(this, that) / 3; + break; + case 'second': + output = (this - that) / 1e3; + break; // 1000 + case 'minute': + output = (this - that) / 6e4; + break; // 1000 * 60 + case 'hour': + output = (this - that) / 36e5; + break; // 1000 * 60 * 60 + case 'day': + output = (this - that - zoneDelta) / 864e5; + break; // 1000 * 60 * 60 * 24, negate dst + case 'week': + output = (this - that - zoneDelta) / 6048e5; + break; // 1000 * 60 * 60 * 24 * 7, negate dst + default: + output = this - that; + } + + return asFloat ? output : absFloor(output); + } + + function monthDiff(a, b) { + if (a.date() < b.date()) { + // end-of-month calculations work correct when the start month has more + // days than the end month. + return -monthDiff(b, a); + } + // difference in months + var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, + adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + //check for negative zero, return zero if negative zero + return -(wholeMonthDiff + adjust) || 0; + } + + hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; + + function toString() { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + function toISOString(keepOffset) { + if (!this.isValid()) { + return null; + } + var utc = keepOffset !== true, + m = utc ? this.clone().utc() : this; + if (m.year() < 0 || m.year() > 9999) { + return formatMoment( + m, + utc + ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' + : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); + } + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + if (utc) { + return this.toDate().toISOString(); + } else { + return new Date(this.valueOf() + this.utcOffset() * 60 * 1000) + .toISOString() + .replace('Z', formatMoment(m, 'Z')); + } + } + return formatMoment( + m, + utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); + } + + /** + * Return a human readable representation of a moment that can + * also be evaluated to get a new moment which is the same + * + * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects + */ + function inspect() { + if (!this.isValid()) { + return 'moment.invalid(/* ' + this._i + ' */)'; + } + var func = 'moment', + zone = '', + prefix, + year, + datetime, + suffix; + if (!this.isLocal()) { + func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; + zone = 'Z'; + } + prefix = '[' + func + '("]'; + year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; + datetime = '-MM-DD[T]HH:mm:ss.SSS'; + suffix = zone + '[")]'; + + return this.format(prefix + year + datetime + suffix); + } + + function format(inputString) { + if (!inputString) { + inputString = this.isUtc() + ? hooks.defaultFormatUtc + : hooks.defaultFormat; + } + var output = formatMoment(this, inputString); + return this.localeData().postformat(output); + } + + function from(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ to: this, from: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function fromNow(withoutSuffix) { + return this.from(createLocal(), withoutSuffix); + } + + function to(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ from: this, to: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function toNow(withoutSuffix) { + return this.to(createLocal(), withoutSuffix); + } + + // If passed a locale key, it will set the locale for this + // instance. Otherwise, it will return the locale configuration + // variables for this instance. + function locale(key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } + + var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } + ); + + function localeData() { + return this._locale; + } + + var MS_PER_SECOND = 1000, + MS_PER_MINUTE = 60 * MS_PER_SECOND, + MS_PER_HOUR = 60 * MS_PER_MINUTE, + MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; + + // actual modulo - handles negative numbers (for dates before 1970): + function mod$1(dividend, divisor) { + return ((dividend % divisor) + divisor) % divisor; + } + + function localStartOfDate(y, m, d) { + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return new Date(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return new Date(y, m, d).valueOf(); + } + } + + function utcStartOfDate(y, m, d) { + // Date.UTC remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return Date.UTC(y, m, d); + } + } + + function startOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year(), 0, 1); + break; + case 'quarter': + time = startOfDate( + this.year(), + this.month() - (this.month() % 3), + 1 + ); + break; + case 'month': + time = startOfDate(this.year(), this.month(), 1); + break; + case 'week': + time = startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + ); + break; + case 'isoWeek': + time = startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + ); + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date()); + break; + case 'hour': + time = this._d.valueOf(); + time -= mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ); + break; + case 'minute': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_MINUTE); + break; + case 'second': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_SECOND); + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } + + function endOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year() + 1, 0, 1) - 1; + break; + case 'quarter': + time = + startOfDate( + this.year(), + this.month() - (this.month() % 3) + 3, + 1 + ) - 1; + break; + case 'month': + time = startOfDate(this.year(), this.month() + 1, 1) - 1; + break; + case 'week': + time = + startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + 7 + ) - 1; + break; + case 'isoWeek': + time = + startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + 7 + ) - 1; + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; + break; + case 'hour': + time = this._d.valueOf(); + time += + MS_PER_HOUR - + mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ) - + 1; + break; + case 'minute': + time = this._d.valueOf(); + time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; + break; + case 'second': + time = this._d.valueOf(); + time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } + + function valueOf() { + return this._d.valueOf() - (this._offset || 0) * 60000; + } + + function unix() { + return Math.floor(this.valueOf() / 1000); + } + + function toDate() { + return new Date(this.valueOf()); + } + + function toArray() { + var m = this; + return [ + m.year(), + m.month(), + m.date(), + m.hour(), + m.minute(), + m.second(), + m.millisecond(), + ]; + } + + function toObject() { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds(), + }; + } + + function toJSON() { + // new Date(NaN).toJSON() === null + return this.isValid() ? this.toISOString() : null; + } + + function isValid$2() { + return isValid(this); + } + + function parsingFlags() { + return extend({}, getParsingFlags(this)); + } + + function invalidAt() { + return getParsingFlags(this).overflow; + } + + function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict, + }; + } + + addFormatToken('N', 0, 0, 'eraAbbr'); + addFormatToken('NN', 0, 0, 'eraAbbr'); + addFormatToken('NNN', 0, 0, 'eraAbbr'); + addFormatToken('NNNN', 0, 0, 'eraName'); + addFormatToken('NNNNN', 0, 0, 'eraNarrow'); + + addFormatToken('y', ['y', 1], 'yo', 'eraYear'); + addFormatToken('y', ['yy', 2], 0, 'eraYear'); + addFormatToken('y', ['yyy', 3], 0, 'eraYear'); + addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); + + addRegexToken('N', matchEraAbbr); + addRegexToken('NN', matchEraAbbr); + addRegexToken('NNN', matchEraAbbr); + addRegexToken('NNNN', matchEraName); + addRegexToken('NNNNN', matchEraNarrow); + + addParseToken( + ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], + function (input, array, config, token) { + var era = config._locale.erasParse(input, token, config._strict); + if (era) { + getParsingFlags(config).era = era; + } else { + getParsingFlags(config).invalidEra = input; + } + } + ); + + addRegexToken('y', matchUnsigned); + addRegexToken('yy', matchUnsigned); + addRegexToken('yyy', matchUnsigned); + addRegexToken('yyyy', matchUnsigned); + addRegexToken('yo', matchEraYearOrdinal); + + addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); + addParseToken(['yo'], function (input, array, config, token) { + var match; + if (config._locale._eraYearOrdinalRegex) { + match = input.match(config._locale._eraYearOrdinalRegex); + } + + if (config._locale.eraYearOrdinalParse) { + array[YEAR] = config._locale.eraYearOrdinalParse(input, match); + } else { + array[YEAR] = parseInt(input, 10); + } + }); + + function localeEras(m, format) { + var i, + l, + date, + eras = this._eras || getLocale('en')._eras; + for (i = 0, l = eras.length; i < l; ++i) { + switch (typeof eras[i].since) { + case 'string': + // truncate time + date = hooks(eras[i].since).startOf('day'); + eras[i].since = date.valueOf(); + break; + } + + switch (typeof eras[i].until) { + case 'undefined': + eras[i].until = +Infinity; + break; + case 'string': + // truncate time + date = hooks(eras[i].until).startOf('day').valueOf(); + eras[i].until = date.valueOf(); + break; + } + } + return eras; + } + + function localeErasParse(eraName, format, strict) { + var i, + l, + eras = this.eras(), + name, + abbr, + narrow; + eraName = eraName.toUpperCase(); + + for (i = 0, l = eras.length; i < l; ++i) { + name = eras[i].name.toUpperCase(); + abbr = eras[i].abbr.toUpperCase(); + narrow = eras[i].narrow.toUpperCase(); + + if (strict) { + switch (format) { + case 'N': + case 'NN': + case 'NNN': + if (abbr === eraName) { + return eras[i]; + } + break; + + case 'NNNN': + if (name === eraName) { + return eras[i]; + } + break; + + case 'NNNNN': + if (narrow === eraName) { + return eras[i]; + } + break; + } + } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { + return eras[i]; + } + } + } + + function localeErasConvertYear(era, year) { + var dir = era.since <= era.until ? +1 : -1; + if (year === undefined) { + return hooks(era.since).year(); + } else { + return hooks(era.since).year() + (year - era.offset) * dir; + } + } + + function getEraName() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].name; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].name; + } + } + + return ''; + } + + function getEraNarrow() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].narrow; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].narrow; + } + } + + return ''; + } + + function getEraAbbr() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].abbr; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].abbr; + } + } + + return ''; + } + + function getEraYear() { + var i, + l, + dir, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + dir = eras[i].since <= eras[i].until ? +1 : -1; + + // truncate time + val = this.clone().startOf('day').valueOf(); + + if ( + (eras[i].since <= val && val <= eras[i].until) || + (eras[i].until <= val && val <= eras[i].since) + ) { + return ( + (this.year() - hooks(eras[i].since).year()) * dir + + eras[i].offset + ); + } + } + + return this.year(); + } + + function erasNameRegex(isStrict) { + if (!hasOwnProp(this, '_erasNameRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNameRegex : this._erasRegex; + } + + function erasAbbrRegex(isStrict) { + if (!hasOwnProp(this, '_erasAbbrRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasAbbrRegex : this._erasRegex; + } + + function erasNarrowRegex(isStrict) { + if (!hasOwnProp(this, '_erasNarrowRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNarrowRegex : this._erasRegex; + } + + function matchEraAbbr(isStrict, locale) { + return locale.erasAbbrRegex(isStrict); + } + + function matchEraName(isStrict, locale) { + return locale.erasNameRegex(isStrict); + } + + function matchEraNarrow(isStrict, locale) { + return locale.erasNarrowRegex(isStrict); + } + + function matchEraYearOrdinal(isStrict, locale) { + return locale._eraYearOrdinalRegex || matchUnsigned; + } + + function computeErasParse() { + var abbrPieces = [], + namePieces = [], + narrowPieces = [], + mixedPieces = [], + i, + l, + eras = this.eras(); + + for (i = 0, l = eras.length; i < l; ++i) { + namePieces.push(regexEscape(eras[i].name)); + abbrPieces.push(regexEscape(eras[i].abbr)); + narrowPieces.push(regexEscape(eras[i].narrow)); + + mixedPieces.push(regexEscape(eras[i].name)); + mixedPieces.push(regexEscape(eras[i].abbr)); + mixedPieces.push(regexEscape(eras[i].narrow)); + } + + this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); + this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); + this._erasNarrowRegex = new RegExp( + '^(' + narrowPieces.join('|') + ')', + 'i' + ); + } + + // FORMATTING + + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); + + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); + + function addWeekYearFormatToken(token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } + + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + + // ALIASES + + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); + + // PRIORITY + + addUnitPriority('weekYear', 1); + addUnitPriority('isoWeekYear', 1); + + // PARSING + + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); + + addWeekParseToken( + ['gggg', 'ggggg', 'GGGG', 'GGGGG'], + function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + } + ); + + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = hooks.parseTwoDigitYear(input); + }); + + // MOMENTS + + function getSetWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy + ); + } + + function getSetISOWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.isoWeek(), + this.isoWeekday(), + 1, + 4 + ); + } + + function getISOWeeksInYear() { + return weeksInYear(this.year(), 1, 4); + } + + function getISOWeeksInISOWeekYear() { + return weeksInYear(this.isoWeekYear(), 1, 4); + } + + function getWeeksInYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } + + function getWeeksInWeekYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); + } + + function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } + } + + function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; + } + + // FORMATTING + + addFormatToken('Q', 0, 'Qo', 'quarter'); + + // ALIASES + + addUnitAlias('quarter', 'Q'); + + // PRIORITY + + addUnitPriority('quarter', 7); + + // PARSING + + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); + + // MOMENTS + + function getSetQuarter(input) { + return input == null + ? Math.ceil((this.month() + 1) / 3) + : this.month((input - 1) * 3 + (this.month() % 3)); + } + + // FORMATTING + + addFormatToken('D', ['DD', 2], 'Do', 'date'); + + // ALIASES + + addUnitAlias('date', 'D'); + + // PRIORITY + addUnitPriority('date', 9); + + // PARSING + + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + // TODO: Remove "ordinalParse" fallback in next major release. + return isStrict + ? locale._dayOfMonthOrdinalParse || locale._ordinalParse + : locale._dayOfMonthOrdinalParseLenient; + }); + + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0]); + }); + + // MOMENTS + + var getSetDayOfMonth = makeGetSet('Date', true); + + // FORMATTING + + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + + // ALIASES + + addUnitAlias('dayOfYear', 'DDD'); + + // PRIORITY + addUnitPriority('dayOfYear', 4); + + // PARSING + + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + // MOMENTS + + function getSetDayOfYear(input) { + var dayOfYear = + Math.round( + (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5 + ) + 1; + return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); + } + + // FORMATTING + + addFormatToken('m', ['mm', 2], 0, 'minute'); + + // ALIASES + + addUnitAlias('minute', 'm'); + + // PRIORITY + + addUnitPriority('minute', 14); + + // PARSING + + addRegexToken('m', match1to2); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); + + // MOMENTS + + var getSetMinute = makeGetSet('Minutes', false); + + // FORMATTING + + addFormatToken('s', ['ss', 2], 0, 'second'); + + // ALIASES + + addUnitAlias('second', 's'); + + // PRIORITY + + addUnitPriority('second', 15); + + // PARSING + + addRegexToken('s', match1to2); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); + + // MOMENTS + + var getSetSecond = makeGetSet('Seconds', false); + + // FORMATTING + + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); + }); + + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); + + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); + + // ALIASES + + addUnitAlias('millisecond', 'ms'); + + // PRIORITY + + addUnitPriority('millisecond', 16); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token, getSetMillisecond; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + } + + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } + + getSetMillisecond = makeGetSet('Milliseconds', false); + + // FORMATTING + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr() { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName() { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var proto = Moment.prototype; + + proto.add = add; + proto.calendar = calendar$1; + proto.clone = clone; + proto.diff = diff; + proto.endOf = endOf; + proto.format = format; + proto.from = from; + proto.fromNow = fromNow; + proto.to = to; + proto.toNow = toNow; + proto.get = stringGet; + proto.invalidAt = invalidAt; + proto.isAfter = isAfter; + proto.isBefore = isBefore; + proto.isBetween = isBetween; + proto.isSame = isSame; + proto.isSameOrAfter = isSameOrAfter; + proto.isSameOrBefore = isSameOrBefore; + proto.isValid = isValid$2; + proto.lang = lang; + proto.locale = locale; + proto.localeData = localeData; + proto.max = prototypeMax; + proto.min = prototypeMin; + proto.parsingFlags = parsingFlags; + proto.set = stringSet; + proto.startOf = startOf; + proto.subtract = subtract; + proto.toArray = toArray; + proto.toObject = toObject; + proto.toDate = toDate; + proto.toISOString = toISOString; + proto.inspect = inspect; + if (typeof Symbol !== 'undefined' && Symbol.for != null) { + proto[Symbol.for('nodejs.util.inspect.custom')] = function () { + return 'Moment<' + this.format() + '>'; + }; + } + proto.toJSON = toJSON; + proto.toString = toString; + proto.unix = unix; + proto.valueOf = valueOf; + proto.creationData = creationData; + proto.eraName = getEraName; + proto.eraNarrow = getEraNarrow; + proto.eraAbbr = getEraAbbr; + proto.eraYear = getEraYear; + proto.year = getSetYear; + proto.isLeapYear = getIsLeapYear; + proto.weekYear = getSetWeekYear; + proto.isoWeekYear = getSetISOWeekYear; + proto.quarter = proto.quarters = getSetQuarter; + proto.month = getSetMonth; + proto.daysInMonth = getDaysInMonth; + proto.week = proto.weeks = getSetWeek; + proto.isoWeek = proto.isoWeeks = getSetISOWeek; + proto.weeksInYear = getWeeksInYear; + proto.weeksInWeekYear = getWeeksInWeekYear; + proto.isoWeeksInYear = getISOWeeksInYear; + proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; + proto.date = getSetDayOfMonth; + proto.day = proto.days = getSetDayOfWeek; + proto.weekday = getSetLocaleDayOfWeek; + proto.isoWeekday = getSetISODayOfWeek; + proto.dayOfYear = getSetDayOfYear; + proto.hour = proto.hours = getSetHour; + proto.minute = proto.minutes = getSetMinute; + proto.second = proto.seconds = getSetSecond; + proto.millisecond = proto.milliseconds = getSetMillisecond; + proto.utcOffset = getSetOffset; + proto.utc = setOffsetToUTC; + proto.local = setOffsetToLocal; + proto.parseZone = setOffsetToParsedOffset; + proto.hasAlignedHourOffset = hasAlignedHourOffset; + proto.isDST = isDaylightSavingTime; + proto.isLocal = isLocal; + proto.isUtcOffset = isUtcOffset; + proto.isUtc = isUtc; + proto.isUTC = isUtc; + proto.zoneAbbr = getZoneAbbr; + proto.zoneName = getZoneName; + proto.dates = deprecate( + 'dates accessor is deprecated. Use date instead.', + getSetDayOfMonth + ); + proto.months = deprecate( + 'months accessor is deprecated. Use month instead', + getSetMonth + ); + proto.years = deprecate( + 'years accessor is deprecated. Use year instead', + getSetYear + ); + proto.zone = deprecate( + 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', + getSetZone + ); + proto.isDSTShifted = deprecate( + 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', + isDaylightSavingTimeShifted + ); + + function createUnix(input) { + return createLocal(input * 1000); + } + + function createInZone() { + return createLocal.apply(null, arguments).parseZone(); + } + + function preParsePostFormat(string) { + return string; + } + + var proto$1 = Locale.prototype; + + proto$1.calendar = calendar; + proto$1.longDateFormat = longDateFormat; + proto$1.invalidDate = invalidDate; + proto$1.ordinal = ordinal; + proto$1.preparse = preParsePostFormat; + proto$1.postformat = preParsePostFormat; + proto$1.relativeTime = relativeTime; + proto$1.pastFuture = pastFuture; + proto$1.set = set; + proto$1.eras = localeEras; + proto$1.erasParse = localeErasParse; + proto$1.erasConvertYear = localeErasConvertYear; + proto$1.erasAbbrRegex = erasAbbrRegex; + proto$1.erasNameRegex = erasNameRegex; + proto$1.erasNarrowRegex = erasNarrowRegex; + + proto$1.months = localeMonths; + proto$1.monthsShort = localeMonthsShort; + proto$1.monthsParse = localeMonthsParse; + proto$1.monthsRegex = monthsRegex; + proto$1.monthsShortRegex = monthsShortRegex; + proto$1.week = localeWeek; + proto$1.firstDayOfYear = localeFirstDayOfYear; + proto$1.firstDayOfWeek = localeFirstDayOfWeek; + + proto$1.weekdays = localeWeekdays; + proto$1.weekdaysMin = localeWeekdaysMin; + proto$1.weekdaysShort = localeWeekdaysShort; + proto$1.weekdaysParse = localeWeekdaysParse; + + proto$1.weekdaysRegex = weekdaysRegex; + proto$1.weekdaysShortRegex = weekdaysShortRegex; + proto$1.weekdaysMinRegex = weekdaysMinRegex; + + proto$1.isPM = localeIsPM; + proto$1.meridiem = localeMeridiem; + + function get$1(format, index, field, setter) { + var locale = getLocale(), + utc = createUTC().set(setter, index); + return locale[field](utc, format); + } + + function listMonthsImpl(format, index, field) { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return get$1(format, index, field, 'month'); + } + + var i, + out = []; + for (i = 0; i < 12; i++) { + out[i] = get$1(format, i, field, 'month'); + } + return out; + } + + // () + // (5) + // (fmt, 5) + // (fmt) + // (true) + // (true, 5) + // (true, fmt, 5) + // (true, fmt) + function listWeekdaysImpl(localeSorted, format, index, field) { + if (typeof localeSorted === 'boolean') { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } else { + format = localeSorted; + index = format; + localeSorted = false; + + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } + + var locale = getLocale(), + shift = localeSorted ? locale._week.dow : 0, + i, + out = []; + + if (index != null) { + return get$1(format, (index + shift) % 7, field, 'day'); + } + + for (i = 0; i < 7; i++) { + out[i] = get$1(format, (i + shift) % 7, field, 'day'); + } + return out; + } + + function listMonths(format, index) { + return listMonthsImpl(format, index, 'months'); + } + + function listMonthsShort(format, index) { + return listMonthsImpl(format, index, 'monthsShort'); + } + + function listWeekdays(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); + } + + function listWeekdaysShort(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); + } + + function listWeekdaysMin(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); + } + + getSetGlobalLocale('en', { + eras: [ + { + since: '0001-01-01', + until: +Infinity, + offset: 1, + name: 'Anno Domini', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: 'Before Christ', + narrow: 'BC', + abbr: 'BC', + }, + ], + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + toInt((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + // Side effect imports + + hooks.lang = deprecate( + 'moment.lang is deprecated. Use moment.locale instead.', + getSetGlobalLocale + ); + hooks.langData = deprecate( + 'moment.langData is deprecated. Use moment.localeData instead.', + getLocale + ); + + var mathAbs = Math.abs; + + function abs() { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; + } + + function addSubtract$1(duration, input, value, direction) { + var other = createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); + } + + // supports only 2.0-style add(1, 's') or add(duration) + function add$1(input, value) { + return addSubtract$1(this, input, value, 1); + } + + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function subtract$1(input, value) { + return addSubtract$1(this, input, value, -1); + } + + function absCeil(number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } + + function bubble() { + var milliseconds = this._milliseconds, + days = this._days, + months = this._months, + data = this._data, + seconds, + minutes, + hours, + years, + monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if ( + !( + (milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0) + ) + ) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; + } + + function daysToMonths(days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return (days * 4800) / 146097; + } + + function monthsToDays(months) { + // the reverse of daysToMonths + return (months * 146097) / 4800; + } + + function as(units) { + if (!this.isValid()) { + return NaN; + } + var days, + months, + milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'quarter' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + switch (units) { + case 'month': + return months; + case 'quarter': + return months / 3; + case 'year': + return months / 12; + } + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week': + return days / 7 + milliseconds / 6048e5; + case 'day': + return days + milliseconds / 864e5; + case 'hour': + return days * 24 + milliseconds / 36e5; + case 'minute': + return days * 1440 + milliseconds / 6e4; + case 'second': + return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': + return Math.floor(days * 864e5) + milliseconds; + default: + throw new Error('Unknown unit ' + units); + } + } + } + + // TODO: Use this.as('ms')? + function valueOf$1() { + if (!this.isValid()) { + return NaN; + } + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } + + function makeAs(alias) { + return function () { + return this.as(alias); + }; + } + + var asMilliseconds = makeAs('ms'), + asSeconds = makeAs('s'), + asMinutes = makeAs('m'), + asHours = makeAs('h'), + asDays = makeAs('d'), + asWeeks = makeAs('w'), + asMonths = makeAs('M'), + asQuarters = makeAs('Q'), + asYears = makeAs('y'); + + function clone$1() { + return createDuration(this); + } + + function get$2(units) { + units = normalizeUnits(units); + return this.isValid() ? this[units + 's']() : NaN; + } + + function makeGetter(name) { + return function () { + return this.isValid() ? this._data[name] : NaN; + }; + } + + var milliseconds = makeGetter('milliseconds'), + seconds = makeGetter('seconds'), + minutes = makeGetter('minutes'), + hours = makeGetter('hours'), + days = makeGetter('days'), + months = makeGetter('months'), + years = makeGetter('years'); + + function weeks() { + return absFloor(this.days() / 7); + } + + var round = Math.round, + thresholds = { + ss: 44, // a few seconds to seconds + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month/week + w: null, // weeks to month + M: 11, // months to year + }; + + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + + function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) { + var duration = createDuration(posNegDuration).abs(), + seconds = round(duration.as('s')), + minutes = round(duration.as('m')), + hours = round(duration.as('h')), + days = round(duration.as('d')), + months = round(duration.as('M')), + weeks = round(duration.as('w')), + years = round(duration.as('y')), + a = + (seconds <= thresholds.ss && ['s', seconds]) || + (seconds < thresholds.s && ['ss', seconds]) || + (minutes <= 1 && ['m']) || + (minutes < thresholds.m && ['mm', minutes]) || + (hours <= 1 && ['h']) || + (hours < thresholds.h && ['hh', hours]) || + (days <= 1 && ['d']) || + (days < thresholds.d && ['dd', days]); + + if (thresholds.w != null) { + a = + a || + (weeks <= 1 && ['w']) || + (weeks < thresholds.w && ['ww', weeks]); + } + a = a || + (months <= 1 && ['M']) || + (months < thresholds.M && ['MM', months]) || + (years <= 1 && ['y']) || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } + + // This function allows you to set the rounding function for relative time strings + function getSetRelativeTimeRounding(roundingFunction) { + if (roundingFunction === undefined) { + return round; + } + if (typeof roundingFunction === 'function') { + round = roundingFunction; + return true; + } + return false; + } + + // This function allows you to set a threshold for relative time strings + function getSetRelativeTimeThreshold(threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + if (threshold === 's') { + thresholds.ss = limit - 1; + } + return true; + } + + function humanize(argWithSuffix, argThresholds) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var withSuffix = false, + th = thresholds, + locale, + output; + + if (typeof argWithSuffix === 'object') { + argThresholds = argWithSuffix; + argWithSuffix = false; + } + if (typeof argWithSuffix === 'boolean') { + withSuffix = argWithSuffix; + } + if (typeof argThresholds === 'object') { + th = Object.assign({}, thresholds, argThresholds); + if (argThresholds.s != null && argThresholds.ss == null) { + th.ss = argThresholds.s - 1; + } + } + + locale = this.localeData(); + output = relativeTime$1(this, !withSuffix, th, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); + } + + var abs$1 = Math.abs; + + function sign(x) { + return (x > 0) - (x < 0) || +x; + } + + function toISOString$1() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var seconds = abs$1(this._milliseconds) / 1000, + days = abs$1(this._days), + months = abs$1(this._months), + minutes, + hours, + years, + s, + total = this.asSeconds(), + totalSign, + ymSign, + daysSign, + hmsSign; + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; + + totalSign = total < 0 ? '-' : ''; + ymSign = sign(this._months) !== sign(total) ? '-' : ''; + daysSign = sign(this._days) !== sign(total) ? '-' : ''; + hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; + + return ( + totalSign + + 'P' + + (years ? ymSign + years + 'Y' : '') + + (months ? ymSign + months + 'M' : '') + + (days ? daysSign + days + 'D' : '') + + (hours || minutes || seconds ? 'T' : '') + + (hours ? hmsSign + hours + 'H' : '') + + (minutes ? hmsSign + minutes + 'M' : '') + + (seconds ? hmsSign + s + 'S' : '') + ); + } + + var proto$2 = Duration.prototype; + + proto$2.isValid = isValid$1; + proto$2.abs = abs; + proto$2.add = add$1; + proto$2.subtract = subtract$1; + proto$2.as = as; + proto$2.asMilliseconds = asMilliseconds; + proto$2.asSeconds = asSeconds; + proto$2.asMinutes = asMinutes; + proto$2.asHours = asHours; + proto$2.asDays = asDays; + proto$2.asWeeks = asWeeks; + proto$2.asMonths = asMonths; + proto$2.asQuarters = asQuarters; + proto$2.asYears = asYears; + proto$2.valueOf = valueOf$1; + proto$2._bubble = bubble; + proto$2.clone = clone$1; + proto$2.get = get$2; + proto$2.milliseconds = milliseconds; + proto$2.seconds = seconds; + proto$2.minutes = minutes; + proto$2.hours = hours; + proto$2.days = days; + proto$2.weeks = weeks; + proto$2.months = months; + proto$2.years = years; + proto$2.humanize = humanize; + proto$2.toISOString = toISOString$1; + proto$2.toString = toISOString$1; + proto$2.toJSON = toISOString$1; + proto$2.locale = locale; + proto$2.localeData = localeData; + + proto$2.toIsoString = deprecate( + 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', + toISOString$1 + ); + proto$2.lang = lang; + + // FORMATTING + + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); + + // PARSING + + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); + }); + + //! moment.js + + hooks.version = '2.29.4'; + + setHookCallback(createLocal); + + hooks.fn = proto; + hooks.min = min; + hooks.max = max; + hooks.now = now; + hooks.utc = createUTC; + hooks.unix = createUnix; + hooks.months = listMonths; + hooks.isDate = isDate; + hooks.locale = getSetGlobalLocale; + hooks.invalid = createInvalid; + hooks.duration = createDuration; + hooks.isMoment = isMoment; + hooks.weekdays = listWeekdays; + hooks.parseZone = createInZone; + hooks.localeData = getLocale; + hooks.isDuration = isDuration; + hooks.monthsShort = listMonthsShort; + hooks.weekdaysMin = listWeekdaysMin; + hooks.defineLocale = defineLocale; + hooks.updateLocale = updateLocale; + hooks.locales = listLocales; + hooks.weekdaysShort = listWeekdaysShort; + hooks.normalizeUnits = normalizeUnits; + hooks.relativeTimeRounding = getSetRelativeTimeRounding; + hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; + hooks.calendarFormat = getCalendarFormat; + hooks.prototype = proto; + + // currently HTML5 input type only supports 24-hour formats + hooks.HTML5_FMT = { + DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // + DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // + DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // + DATE: 'YYYY-MM-DD', // + TIME: 'HH:mm', // + TIME_SECONDS: 'HH:mm:ss', // + TIME_MS: 'HH:mm:ss.SSS', // + WEEK: 'GGGG-[W]WW', // + MONTH: 'YYYY-MM', // + }; + + return hooks; + +}))); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/index.js": +/*!********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/index.js ***! + \********************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +module.exports = exports = __webpack_require__(/*! ./lib */ "./build/cht-core-4-6/node_modules/nools/lib/index.js"); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/agenda.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/agenda.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + +var extd = __webpack_require__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + declare = extd.declare, + AVLTree = extd.AVLTree, + LinkedList = extd.LinkedList, + isPromise = extd.isPromiseLike, + EventEmitter = __webpack_require__(/*! events */ "events").EventEmitter; + + +var FactHash = declare({ + instance: { + constructor: function () { + this.memory = {}; + this.memoryValues = new LinkedList(); + }, + + clear: function () { + this.memoryValues.clear(); + this.memory = {}; + }, + + + remove: function (v) { + var hashCode = v.hashCode, + memory = this.memory, + ret = memory[hashCode]; + if (ret) { + this.memoryValues.remove(ret); + delete memory[hashCode]; + } + return ret; + }, + + insert: function (insert) { + var hashCode = insert.hashCode; + if (hashCode in this.memory) { + throw new Error("Activation already in agenda " + insert.rule.name + " agenda"); + } + this.memoryValues.push((this.memory[hashCode] = insert)); + } + } +}); + + +var DEFAULT_AGENDA_GROUP = "main"; +module.exports = declare(EventEmitter, { + + instance: { + constructor: function (flow, conflictResolution) { + this.agendaGroups = {}; + this.agendaGroupStack = [DEFAULT_AGENDA_GROUP]; + this.rules = {}; + this.flow = flow; + this.comparator = conflictResolution; + this.setFocus(DEFAULT_AGENDA_GROUP).addAgendaGroup(DEFAULT_AGENDA_GROUP); + }, + + addAgendaGroup: function (groupName) { + if (!extd.has(this.agendaGroups, groupName)) { + this.agendaGroups[groupName] = new AVLTree({compare: this.comparator}); + } + }, + + getAgendaGroup: function (groupName) { + return this.agendaGroups[groupName || DEFAULT_AGENDA_GROUP]; + }, + + setFocus: function (agendaGroup) { + if (agendaGroup !== this.getFocused() && this.agendaGroups[agendaGroup]) { + this.agendaGroupStack.push(agendaGroup); + this.emit("focused", agendaGroup); + } + return this; + }, + + getFocused: function () { + var ags = this.agendaGroupStack; + return ags[ags.length - 1]; + }, + + getFocusedAgenda: function () { + return this.agendaGroups[this.getFocused()]; + }, + + register: function (node) { + var agendaGroup = node.rule.agendaGroup; + this.rules[node.name] = {tree: new AVLTree({compare: this.comparator}), factTable: new FactHash()}; + if (agendaGroup) { + this.addAgendaGroup(agendaGroup); + } + }, + + isEmpty: function () { + var agendaGroupStack = this.agendaGroupStack, changed = false; + while (this.getFocusedAgenda().isEmpty() && this.getFocused() !== DEFAULT_AGENDA_GROUP) { + agendaGroupStack.pop(); + changed = true; + } + if (changed) { + this.emit("focused", this.getFocused()); + } + return this.getFocusedAgenda().isEmpty(); + }, + + fireNext: function () { + var agendaGroupStack = this.agendaGroupStack, ret = false; + while (this.getFocusedAgenda().isEmpty() && this.getFocused() !== DEFAULT_AGENDA_GROUP) { + agendaGroupStack.pop(); + } + if (!this.getFocusedAgenda().isEmpty()) { + var activation = this.pop(); + this.emit("fire", activation.rule.name, activation.match.factHash); + var fired = activation.rule.fire(this.flow, activation.match); + if (isPromise(fired)) { + ret = fired.then(function () { + //return true if an activation fired + return true; + }); + } else { + ret = true; + } + } + //return false if activation not fired + return ret; + }, + + pop: function () { + var tree = this.getFocusedAgenda(), root = tree.__root; + while (root.right) { + root = root.right; + } + var v = root.data; + tree.remove(v); + var rule = this.rules[v.name]; + rule.tree.remove(v); + rule.factTable.remove(v); + return v; + }, + + peek: function () { + var tree = this.getFocusedAgenda(), root = tree.__root; + while (root.right) { + root = root.right; + } + return root.data; + }, + + modify: function (node, context) { + this.retract(node, context); + this.insert(node, context); + }, + + retract: function (node, retract) { + var rule = this.rules[node.name]; + retract.rule = node; + var activation = rule.factTable.remove(retract); + if (activation) { + this.getAgendaGroup(node.rule.agendaGroup).remove(activation); + rule.tree.remove(activation); + } + }, + + insert: function (node, insert) { + var rule = this.rules[node.name], nodeRule = node.rule, agendaGroup = nodeRule.agendaGroup; + rule.tree.insert(insert); + this.getAgendaGroup(agendaGroup).insert(insert); + if (nodeRule.autoFocus) { + this.setFocus(agendaGroup); + } + + rule.factTable.insert(insert); + }, + + dispose: function () { + for (var i in this.agendaGroups) { + this.agendaGroups[i].clear(); + } + var rules = this.rules; + for (i in rules) { + if (i in rules) { + rules[i].tree.clear(); + rules[i].factTable.clear(); + + } + } + this.rules = {}; + } + } + +}); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/compile/common.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/compile/common.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +/*jshint evil:true*/ + +var extd = __webpack_require__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + forEach = extd.forEach, + isString = extd.isString; + +exports.modifiers = ["assert", "modify", "retract", "emit", "halt", "focus", "getFacts"]; + +var createFunction = function (body, defined, scope, scopeNames, definedNames) { + var declares = []; + forEach(definedNames, function (i) { + if (body.indexOf(i) !== -1) { + declares.push("var " + i + "= defined." + i + ";"); + } + }); + + forEach(scopeNames, function (i) { + if (body.indexOf(i) !== -1) { + declares.push("var " + i + "= scope." + i + ";"); + } + }); + body = ["((function(){", declares.join(""), "\n\treturn ", body, "\n})())"].join(""); + try { + return eval(body); + } catch (e) { + throw new Error("Invalid action : " + body + "\n" + e.message); + } +}; + +var createDefined = (function () { + + var _createDefined = function (action, defined, scope) { + if (isString(action)) { + var declares = []; + extd(defined).keys().forEach(function (i) { + if (action.indexOf(i) !== -1) { + declares.push("var " + i + "= defined." + i + ";"); + } + }); + + extd(scope).keys().forEach(function (i) { + if (action.indexOf(i) !== -1) { + declares.push("var " + i + "= function(){var prop = scope." + i + "; return __objToStr__.call(prop) === '[object Function]' ? prop.apply(void 0, arguments) : prop;};"); + } + }); + if (declares.length) { + declares.unshift("var __objToStr__ = Object.prototype.toString;"); + } + action = [declares.join(""), "return ", action, ";"].join(""); + action = new Function("defined", "scope", action)(defined, scope); + } + var ret = action.hasOwnProperty("constructor") && "function" === typeof action.constructor ? action.constructor : function (opts) { + opts = opts || {}; + for (var i in opts) { + if (i in action) { + this[i] = opts[i]; + } + } + }; + var proto = ret.prototype; + for (var i in action) { + proto[i] = action[i]; + } + return ret; + + }; + + return function (options, defined, scope) { + return _createDefined(options.properties, defined, scope); + }; +})(); + +exports.createFunction = createFunction; +exports.createDefined = createDefined; + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/compile/index.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/compile/index.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +/*jshint evil:true*/ + +var extd = __webpack_require__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + parser = __webpack_require__(/*! ../parser */ "./build/cht-core-4-6/node_modules/nools/lib/parser/index.js"), + constraintMatcher = __webpack_require__(/*! ../constraintMatcher.js */ "./build/cht-core-4-6/node_modules/nools/lib/constraintMatcher.js"), + indexOf = extd.indexOf, + forEach = extd.forEach, + removeDuplicates = extd.removeDuplicates, + map = extd.map, + obj = extd.hash, + keys = obj.keys, + merge = extd.merge, + rules = __webpack_require__(/*! ../rule */ "./build/cht-core-4-6/node_modules/nools/lib/rule.js"), + common = __webpack_require__(/*! ./common */ "./build/cht-core-4-6/node_modules/nools/lib/compile/common.js"), + modifiers = common.modifiers, + createDefined = common.createDefined, + createFunction = common.createFunction; + + +/** + * @private + * Parses an action from a rule definition + * @param {String} action the body of the action to execute + * @param {Array} identifiers array of identifiers collected + * @param {Object} defined an object of defined + * @param scope + * @return {Object} + */ +var parseAction = function (action, identifiers, defined, scope) { + var declares = []; + forEach(identifiers, function (i) { + if (action.indexOf(i) !== -1) { + declares.push("var " + i + "= facts." + i + ";"); + } + }); + extd(defined).keys().forEach(function (i) { + if (action.indexOf(i) !== -1) { + declares.push("var " + i + "= defined." + i + ";"); + } + }); + + extd(scope).keys().forEach(function (i) { + if (action.indexOf(i) !== -1) { + declares.push("var " + i + "= scope." + i + ";"); + } + }); + extd(modifiers).forEach(function (i) { + if (action.indexOf(i) !== -1) { + declares.push("if(!" + i + "){ var " + i + "= flow." + i + ";}"); + } + }); + var params = ["facts", 'flow']; + if (/next\(.*\)/.test(action)) { + params.push("next"); + } + action = declares.join("") + action; + try { + return new Function("defined, scope", "return " + new Function(params.join(","), action).toString())(defined, scope); + } catch (e) { + throw new Error("Invalid action : " + action + "\n" + e.message); + } +}; + +var createRuleFromObject = (function () { + var __resolveRule = function (rule, identifiers, conditions, defined, name) { + var condition = [], definedClass = rule[0], alias = rule[1], constraint = rule[2], refs = rule[3]; + if (extd.isHash(constraint)) { + refs = constraint; + constraint = null; + } + if (definedClass && !!(definedClass = defined[definedClass])) { + condition.push(definedClass); + } else { + throw new Error("Invalid class " + rule[0] + " for rule " + name); + } + condition.push(alias, constraint, refs); + conditions.push(condition); + identifiers.push(alias); + if (constraint) { + forEach(constraintMatcher.getIdentifiers(parser.parseConstraint(constraint)), function (i) { + identifiers.push(i); + }); + } + if (extd.isObject(refs)) { + for (var j in refs) { + var ident = refs[j]; + if (indexOf(identifiers, ident) === -1) { + identifiers.push(ident); + } + } + } + }; + + function parseRule(rule, conditions, identifiers, defined, name) { + if (rule.length) { + var r0 = rule[0]; + if (r0 === "not" || r0 === "exists") { + var temp = []; + rule.shift(); + __resolveRule(rule, identifiers, temp, defined, name); + var cond = temp[0]; + cond.unshift(r0); + conditions.push(cond); + } else if (r0 === "or") { + var conds = [r0]; + rule.shift(); + forEach(rule, function (cond) { + parseRule(cond, conds, identifiers, defined, name); + }); + conditions.push(conds); + } else { + __resolveRule(rule, identifiers, conditions, defined, name); + identifiers = removeDuplicates(identifiers); + } + } + + } + + return function (obj, defined, scope) { + var name = obj.name; + if (extd.isEmpty(obj)) { + throw new Error("Rule is empty"); + } + var options = obj.options || {}; + options.scope = scope; + var constraints = obj.constraints || [], l = constraints.length; + if (!l) { + constraints = ["true"]; + } + var action = obj.action; + if (extd.isUndefined(action)) { + throw new Error("No action was defined for rule " + name); + } + var conditions = [], identifiers = []; + forEach(constraints, function (rule) { + parseRule(rule, conditions, identifiers, defined, name); + }); + return rules.createRule(name, options, conditions, parseAction(action, identifiers, defined, scope)); + }; +})(); + +exports.parse = function (src, file) { + //parse flow from file + return parser.parseRuleSet(src, file); + +}; +exports.compile = function (flowObj, options, cb, Container) { + if (extd.isFunction(options)) { + cb = options; + options = {}; + } else { + options = options || {}; + } + var name = flowObj.name || options.name; + //if !name throw an error + if (!name) { + throw new Error("Name must be present in JSON or options"); + } + var flow = new Container(name); + var defined = merge({Array: Array, String: String, Number: Number, Boolean: Boolean, RegExp: RegExp, Date: Date, Object: Object}, options.define || {}); + if (typeof Buffer !== "undefined") { + defined.Buffer = Buffer; + } + var scope = merge({console: console}, options.scope); + //add the anything added to the scope as a property + forEach(flowObj.scope, function (s) { + scope[s.name] = true; + }); + //add any defined classes in the parsed flowObj to defined + forEach(flowObj.define, function (d) { + defined[d.name] = createDefined(d, defined, scope); + }); + + //expose any defined classes to the flow. + extd(defined).forEach(function (cls, name) { + flow.addDefined(name, cls); + }); + + var scopeNames = extd(flowObj.scope).pluck("name").union(extd(scope).keys().value()).value(); + var definedNames = map(keys(defined), function (s) { + return s; + }); + forEach(flowObj.scope, function (s) { + scope[s.name] = createFunction(s.body, defined, scope, scopeNames, definedNames); + }); + var rules = flowObj.rules; + if (rules.length) { + forEach(rules, function (rule) { + flow.__rules = flow.__rules.concat(createRuleFromObject(rule, defined, scope)); + }); + } + if (cb) { + cb.call(flow, flow); + } + return flow; +}; + +exports.transpile = __webpack_require__(/*! ./transpile */ "./build/cht-core-4-6/node_modules/nools/lib/compile/transpile.js").transpile; + + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/compile/transpile.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/compile/transpile.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +var extd = __webpack_require__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + forEach = extd.forEach, + indexOf = extd.indexOf, + merge = extd.merge, + isString = extd.isString, + modifiers = __webpack_require__(/*! ./common */ "./build/cht-core-4-6/node_modules/nools/lib/compile/common.js").modifiers, + constraintMatcher = __webpack_require__(/*! ../constraintMatcher */ "./build/cht-core-4-6/node_modules/nools/lib/constraintMatcher.js"), + parser = __webpack_require__(/*! ../parser */ "./build/cht-core-4-6/node_modules/nools/lib/parser/index.js"); + +function definedToJs(options) { + /*jshint evil:true*/ + options = isString(options) ? new Function("return " + options + ";")() : options; + var ret = ["(function(){"], value; + + if (options.hasOwnProperty("constructor") && "function" === typeof options.constructor) { + ret.push("var Defined = " + options.constructor.toString() + ";"); + } else { + ret.push("var Defined = function(opts){ for(var i in opts){if(opts.hasOwnProperty(i)){this[i] = opts[i];}}};"); + } + ret.push("var proto = Defined.prototype;"); + for (var key in options) { + if (options.hasOwnProperty(key)) { + value = options[key]; + ret.push("proto." + key + " = " + (extd.isFunction(value) ? value.toString() : extd.format("%j", value)) + ";"); + } + } + ret.push("return Defined;"); + ret.push("}())"); + return ret.join(""); + +} + +function actionToJs(action, identifiers, defined, scope) { + var declares = [], usedVars = {}; + forEach(identifiers, function (i) { + if (action.indexOf(i) !== -1) { + usedVars[i] = true; + declares.push("var " + i + "= facts." + i + ";"); + } + }); + extd(defined).keys().forEach(function (i) { + if (action.indexOf(i) !== -1 && !usedVars[i]) { + usedVars[i] = true; + declares.push("var " + i + "= defined." + i + ";"); + } + }); + + extd(scope).keys().forEach(function (i) { + if (action.indexOf(i) !== -1 && !usedVars[i]) { + usedVars[i] = true; + declares.push("var " + i + "= scope." + i + ";"); + } + }); + extd(modifiers).forEach(function (i) { + if (action.indexOf(i) !== -1 && !usedVars[i]) { + declares.push("var " + i + "= flow." + i + ";"); + } + }); + var params = ["facts", 'flow']; + if (/next\(.*\)/.test(action)) { + params.push("next"); + } + action = declares.join("") + action; + try { + return ["function(", params.join(","), "){", action, "}"].join(""); + } catch (e) { + throw new Error("Invalid action : " + action + "\n" + e.message); + } +} + +function parseConstraintModifier(constraint, ret) { + if (constraint.length && extd.isString(constraint[0])) { + var modifier = constraint[0].match(" *(from)"); + if (modifier) { + modifier = modifier[0]; + switch (modifier) { + case "from": + ret.push(', "', constraint.shift(), '"'); + break; + default: + throw new Error("Unrecognized modifier " + modifier); + } + } + } +} + +function parseConstraintHash(constraint, ret, identifiers) { + if (constraint.length && extd.isHash(constraint[0])) { + //ret of options + var refs = constraint.shift(); + extd(refs).values().forEach(function (ident) { + if (indexOf(identifiers, ident) === -1) { + identifiers.push(ident); + } + }); + ret.push(',' + extd.format('%j', [refs])); + } +} + +function constraintsToJs(constraint, identifiers) { + constraint = constraint.slice(0); + var ret = []; + if (constraint[0] === "or") { + ret.push('["' + constraint.shift() + '"'); + ret.push(extd.map(constraint,function (c) { + return constraintsToJs(c, identifiers); + }).join(",") + "]"); + return ret; + } else if (constraint[0] === "not" || constraint[0] === "exists") { + ret.push('"', constraint.shift(), '", '); + } + identifiers.push(constraint[1]); + ret.push(constraint[0], ', "' + constraint[1].replace(/\\/g, "\\\\").replace(/"/g, "\\\"") + '"'); + constraint.splice(0, 2); + if (constraint.length) { + //constraint + var c = constraint.shift(); + if (extd.isString(c) && c) { + ret.push(',"' + c.replace(/\\/g, "\\\\").replace(/"/g, "\\\""), '"'); + forEach(constraintMatcher.getIdentifiers(parser.parseConstraint(c)), function (i) { + identifiers.push(i); + }); + } else { + ret.push(',"true"'); + constraint.unshift(c); + } + } + parseConstraintModifier(constraint, ret); + parseConstraintHash(constraint, ret, identifiers); + return '[' + ret.join("") + ']'; +} + +exports.transpile = function (flowObj, options) { + options = options || {}; + var ret = []; + ret.push("(function(){"); + ret.push("return function(options){"); + ret.push("options = options || {};"); + ret.push("var bind = function(scope, fn){return function(){return fn.apply(scope, arguments);};}, defined = {Array: Array, String: String, Number: Number, Boolean: Boolean, RegExp: RegExp, Date: Date, Object: Object}, scope = options.scope || {};"); + ret.push("var optDefined = options.defined || {}; for(var i in optDefined){defined[i] = optDefined[i];}"); + var defined = merge({Array: Array, String: String, Number: Number, Boolean: Boolean, RegExp: RegExp, Date: Date, Object: Object}, options.define || {}); + if (typeof Buffer !== "undefined") { + defined.Buffer = Buffer; + } + var scope = merge({console: console}, options.scope); + ret.push(["return nools.flow('", options.name, "', function(){"].join("")); + //add any defined classes in the parsed flowObj to defined + ret.push(extd(flowObj.define || []).map(function (defined) { + var name = defined.name; + defined[name] = {}; + return ["var", name, "= defined." + name, "= this.addDefined('" + name + "',", definedToJs(defined.properties) + ");"].join(" "); + }).value().join("\n")); + ret.push(extd(flowObj.scope || []).map(function (s) { + var name = s.name; + scope[name] = {}; + return ["var", name, "= scope." + name, "= ", s.body, ";"].join(" "); + }).value().join("\n")); + ret.push("scope.console = console;\n"); + + + ret.push(extd(flowObj.rules || []).map(function (rule) { + var identifiers = [], ret = ["this.rule('", rule.name.replace(/'/g, "\\'"), "'"], options = extd.merge(rule.options || {}, {scope: "scope"}); + ret.push(",", extd.format("%j", [options]).replace(/(:"scope")/, ":scope")); + if (rule.constraints && !extd.isEmpty(rule.constraints)) { + ret.push(", ["); + ret.push(extd(rule.constraints).map(function (c) { + return constraintsToJs(c, identifiers); + }).value().join(",")); + ret.push("]"); + } + ret.push(",", actionToJs(rule.action, identifiers, defined, scope)); + ret.push(");"); + return ret.join(""); + }).value().join("")); + ret.push("});"); + ret.push("};"); + ret.push("}());"); + return ret.join(""); +}; + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/conflict.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/conflict.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +var map = __webpack_require__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js").map; + +function salience(a, b) { + return a.rule.priority - b.rule.priority; +} + +function bucketCounter(a, b) { + return a.counter - b.counter; +} + +function factRecency(a, b) { + /*jshint noempty: false*/ + + var i = 0; + var aMatchRecency = a.match.recency, + bMatchRecency = b.match.recency, aLength = aMatchRecency.length - 1, bLength = bMatchRecency.length - 1; + while (aMatchRecency[i] === bMatchRecency[i] && i < aLength && i < bLength && i++) { + } + var ret = aMatchRecency[i] - bMatchRecency[i]; + if (!ret) { + ret = aLength - bLength; + } + return ret; +} + +function activationRecency(a, b) { + return a.recency - b.recency; +} + +var strategies = { + salience: salience, + bucketCounter: bucketCounter, + factRecency: factRecency, + activationRecency: activationRecency +}; + +exports.strategies = strategies; +exports.strategy = function (strats) { + strats = map(strats, function (s) { + return strategies[s]; + }); + var stratsLength = strats.length; + + return function (a, b) { + var i = -1, ret = 0; + var equal = (a === b) || (a.name === b.name && a.hashCode === b.hashCode); + if (!equal) { + while (++i < stratsLength && !ret) { + ret = strats[i](a, b); + } + ret = ret > 0 ? 1 : -1; + } + return ret; + }; +}; + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/constraint.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/constraint.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + + +var extd = __webpack_require__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + deepEqual = extd.deepEqual, + merge = extd.merge, + instanceOf = extd.instanceOf, + filter = extd.filter, + declare = extd.declare, + constraintMatcher; + +var id = 0; +var Constraint = declare({ + + type: null, + + instance: { + constructor: function (constraint) { + if (!constraintMatcher) { + constraintMatcher = __webpack_require__(/*! ./constraintMatcher */ "./build/cht-core-4-6/node_modules/nools/lib/constraintMatcher.js"); + } + this.id = id++; + this.constraint = constraint; + extd.bindAll(this, ["assert"]); + }, + "assert": function () { + throw new Error("not implemented"); + }, + + getIndexableProperties: function () { + return []; + }, + + equal: function (constraint) { + return instanceOf(constraint, this._static) && this.get("alias") === constraint.get("alias") && extd.deepEqual(this.constraint, constraint.constraint); + }, + + getters: { + variables: function () { + return [this.get("alias")]; + } + } + + + } +}); + +Constraint.extend({ + instance: { + + type: "object", + + constructor: function (type) { + this._super([type]); + }, + + "assert": function (param) { + return param instanceof this.constraint || param.constructor === this.constraint; + }, + + equal: function (constraint) { + return instanceOf(constraint, this._static) && this.constraint === constraint.constraint; + } + } +}).as(exports, "ObjectConstraint"); + +var EqualityConstraint = Constraint.extend({ + + instance: { + + type: "equality", + + constructor: function (constraint, options) { + this._super([constraint]); + options = options || {}; + this.pattern = options.pattern; + this._matcher = constraintMatcher.getMatcher(constraint, options, true); + }, + + "assert": function (values) { + return this._matcher(values); + } + } +}).as(exports, "EqualityConstraint"); + +EqualityConstraint.extend({instance: {type: "inequality"}}).as(exports, "InequalityConstraint"); +EqualityConstraint.extend({instance: {type: "comparison"}}).as(exports, "ComparisonConstraint"); + +Constraint.extend({ + + instance: { + + type: "equality", + + constructor: function () { + this._super([ + [true] + ]); + }, + + equal: function (constraint) { + return instanceOf(constraint, this._static) && this.get("alias") === constraint.get("alias"); + }, + + + "assert": function () { + return true; + } + } +}).as(exports, "TrueConstraint"); + +var ReferenceConstraint = Constraint.extend({ + + instance: { + + type: "reference", + + constructor: function (constraint, options) { + this.cache = {}; + this._super([constraint]); + options = options || {}; + this.values = []; + this.pattern = options.pattern; + this._options = options; + this._matcher = constraintMatcher.getMatcher(constraint, options, false); + }, + + "assert": function (fact, fh) { + try { + return this._matcher(fact, fh); + } catch (e) { + throw new Error("Error with evaluating pattern " + this.pattern + " " + e.message); + } + + }, + + merge: function (that) { + var ret = this; + if (that instanceof ReferenceConstraint) { + ret = new this._static([this.constraint, that.constraint, "and"], merge({}, this._options, this._options)); + ret._alias = this._alias || that._alias; + ret.vars = this.vars.concat(that.vars); + } + return ret; + }, + + equal: function (constraint) { + return instanceOf(constraint, this._static) && extd.deepEqual(this.constraint, constraint.constraint); + }, + + + getters: { + variables: function () { + return this.vars; + }, + + alias: function () { + return this._alias; + } + }, + + setters: { + alias: function (alias) { + this._alias = alias; + this.vars = filter(constraintMatcher.getIdentifiers(this.constraint), function (v) { + return v !== alias; + }); + } + } + } + +}).as(exports, "ReferenceConstraint"); + + +ReferenceConstraint.extend({ + instance: { + type: "reference_equality", + op: "eq", + getIndexableProperties: function () { + return constraintMatcher.getIndexableProperties(this.constraint); + } + } +}).as(exports, "ReferenceEqualityConstraint") + .extend({instance: {type: "reference_inequality", op: "neq"}}).as(exports, "ReferenceInequalityConstraint") + .extend({instance: {type: "reference_gt", op: "gt"}}).as(exports, "ReferenceGTConstraint") + .extend({instance: {type: "reference_gte", op: "gte"}}).as(exports, "ReferenceGTEConstraint") + .extend({instance: {type: "reference_lt", op: "lt"}}).as(exports, "ReferenceLTConstraint") + .extend({instance: {type: "reference_lte", op: "lte"}}).as(exports, "ReferenceLTEConstraint"); + + +Constraint.extend({ + instance: { + + type: "hash", + + constructor: function (hash) { + this._super([hash]); + }, + + equal: function (constraint) { + return extd.instanceOf(constraint, this._static) && this.get("alias") === constraint.get("alias") && extd.deepEqual(this.constraint, constraint.constraint); + }, + + "assert": function () { + return true; + }, + + getters: { + variables: function () { + return this.constraint; + } + } + + } +}).as(exports, "HashConstraint"); + +Constraint.extend({ + instance: { + constructor: function (constraints, options) { + this.type = "from"; + this.constraints = constraintMatcher.getSourceMatcher(constraints, (options || {}), true); + extd.bindAll(this, ["assert"]); + }, + + equal: function (constraint) { + return instanceOf(constraint, this._static) && this.get("alias") === constraint.get("alias") && deepEqual(this.constraints, constraint.constraints); + }, + + "assert": function (fact, fh) { + return this.constraints(fact, fh); + }, + + getters: { + variables: function () { + return this.constraint; + } + } + + } +}).as(exports, "FromConstraint"); + +Constraint.extend({ + instance: { + constructor: function (func, options) { + this.type = "custom"; + this.fn = func; + this.options = options; + extd.bindAll(this, ["assert"]); + }, + + equal: function (constraint) { + return instanceOf(constraint, this._static) && this.fn === constraint.constraint; + }, + + "assert": function (fact, fh) { + return this.fn(fact, fh); + } + } +}).as(exports, "CustomConstraint"); + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/constraintMatcher.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/constraintMatcher.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + + +var extd = __webpack_require__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + isArray = extd.isArray, + forEach = extd.forEach, + some = extd.some, + indexOf = extd.indexOf, + isNumber = extd.isNumber, + removeDups = extd.removeDuplicates, + atoms = __webpack_require__(/*! ./constraint */ "./build/cht-core-4-6/node_modules/nools/lib/constraint.js"); + +function getProps(val) { + return extd(val).map(function mapper(val) { + return isArray(val) ? isArray(val[0]) ? getProps(val).value() : val.reverse().join(".") : val; + }).flatten().filter(function (v) { + return !!v; + }); +} + +var definedFuncs = { + indexOf: extd.indexOf, + now: function () { + return new Date(); + }, + + Date: function (y, m, d, h, min, s, ms) { + var date = new Date(); + if (isNumber(y)) { + date.setYear(y); + } + if (isNumber(m)) { + date.setMonth(m); + } + if (isNumber(d)) { + date.setDate(d); + } + if (isNumber(h)) { + date.setHours(h); + } + if (isNumber(min)) { + date.setMinutes(min); + } + if (isNumber(s)) { + date.setSeconds(s); + } + if (isNumber(ms)) { + date.setMilliseconds(ms); + } + return date; + }, + + lengthOf: function (arr, length) { + return arr.length === length; + }, + + isTrue: function (val) { + return val === true; + }, + + isFalse: function (val) { + return val === false; + }, + + isNotNull: function (actual) { + return actual !== null; + }, + + dateCmp: function (dt1, dt2) { + return extd.compare(dt1, dt2); + } + +}; + +forEach(["years", "days", "months", "hours", "minutes", "seconds"], function (k) { + definedFuncs[k + "FromNow"] = extd[k + "FromNow"]; + definedFuncs[k + "Ago"] = extd[k + "Ago"]; +}); + + +forEach(["isArray", "isNumber", "isHash", "isObject", "isDate", "isBoolean", "isString", "isRegExp", "isNull", "isEmpty", + "isUndefined", "isDefined", "isUndefinedOrNull", "isPromiseLike", "isFunction", "deepEqual"], function (k) { + var m = extd[k]; + definedFuncs[k] = function () { + return m.apply(extd, arguments); + }; +}); + + +var lang = { + + equal: function (c1, c2) { + var ret = false; + if (c1 === c2) { + ret = true; + } else { + if (c1[2] === c2[2]) { + if (indexOf(["string", "number", "boolean", "regexp", "identifier", "null"], c1[2]) !== -1) { + ret = c1[0] === c2[0]; + } else if (c1[2] === "unary" || c1[2] === "logicalNot") { + ret = this.equal(c1[0], c2[0]); + } else { + ret = this.equal(c1[0], c2[0]) && this.equal(c1[1], c2[1]); + } + } + } + return ret; + }, + + __getProperties: function (rule) { + var ret = []; + if (rule) { + var rule2 = rule[2]; + if (!rule2) { + return ret; + } + if (rule2 !== "prop" && + rule2 !== "identifier" && + rule2 !== "string" && + rule2 !== "number" && + rule2 !== "boolean" && + rule2 !== "regexp" && + rule2 !== "unary" && + rule2 !== "unary") { + ret[0] = this.__getProperties(rule[0]); + ret[1] = this.__getProperties(rule[1]); + } else if (rule2 === "identifier") { + //at the bottom + ret = [rule[0]]; + } else { + ret = lang.__getProperties(rule[1]).concat(lang.__getProperties(rule[0])); + } + } + return ret; + }, + + getIndexableProperties: function (rule) { + if (rule[2] === "composite") { + return this.getIndexableProperties(rule[0]); + } else if (/^(\w+(\['[^']*'])*) *([!=]==?|[<>]=?) (\w+(\['[^']*'])*)$/.test(this.parse(rule))) { + return getProps(this.__getProperties(rule)).flatten().value(); + } else { + return []; + } + }, + + getIdentifiers: function (rule) { + var ret = []; + var rule2 = rule[2]; + + if (rule2 === "identifier") { + //its an identifier so stop + return [rule[0]]; + } else if (rule2 === "function") { + ret = ret.concat(this.getIdentifiers(rule[0])).concat(this.getIdentifiers(rule[1])); + } else if (rule2 !== "string" && + rule2 !== "number" && + rule2 !== "boolean" && + rule2 !== "regexp" && + rule2 !== "unary" && + rule2 !== "unary") { + //its an expression so keep going + if (rule2 === "prop") { + ret = ret.concat(this.getIdentifiers(rule[0])); + if (rule[1]) { + var propChain = rule[1]; + //go through the member variables and collect any identifiers that may be in functions + while (isArray(propChain)) { + if (propChain[2] === "function") { + ret = ret.concat(this.getIdentifiers(propChain[1])); + break; + } else { + propChain = propChain[1]; + } + } + } + + } else { + if (rule[0]) { + ret = ret.concat(this.getIdentifiers(rule[0])); + } + if (rule[1]) { + ret = ret.concat(this.getIdentifiers(rule[1])); + } + } + } + //remove dups and return + return removeDups(ret); + }, + + toConstraints: function (rule, options) { + var ret = [], + alias = options.alias, + scope = options.scope || {}; + + var rule2 = rule[2]; + + + if (rule2 === "and") { + ret = ret.concat(this.toConstraints(rule[0], options)).concat(this.toConstraints(rule[1], options)); + } else if ( + rule2 === "composite" || + rule2 === "or" || + rule2 === "lt" || + rule2 === "gt" || + rule2 === "lte" || + rule2 === "gte" || + rule2 === "like" || + rule2 === "notLike" || + rule2 === "eq" || + rule2 === "neq" || + rule2 === "seq" || + rule2 === "sneq" || + rule2 === "in" || + rule2 === "notIn" || + rule2 === "prop" || + rule2 === "propLookup" || + rule2 === "function" || + rule2 === "logicalNot") { + var isReference = some(this.getIdentifiers(rule), function (i) { + return i !== alias && !(i in definedFuncs) && !(i in scope); + }); + switch (rule2) { + case "eq": + ret.push(new atoms[isReference ? "ReferenceEqualityConstraint" : "EqualityConstraint"](rule, options)); + break; + case "seq": + ret.push(new atoms[isReference ? "ReferenceEqualityConstraint" : "EqualityConstraint"](rule, options)); + break; + case "neq": + ret.push(new atoms[isReference ? "ReferenceInequalityConstraint" : "InequalityConstraint"](rule, options)); + break; + case "sneq": + ret.push(new atoms[isReference ? "ReferenceInequalityConstraint" : "InequalityConstraint"](rule, options)); + break; + case "gt": + ret.push(new atoms[isReference ? "ReferenceGTConstraint" : "ComparisonConstraint"](rule, options)); + break; + case "gte": + ret.push(new atoms[isReference ? "ReferenceGTEConstraint" : "ComparisonConstraint"](rule, options)); + break; + case "lt": + ret.push(new atoms[isReference ? "ReferenceLTConstraint" : "ComparisonConstraint"](rule, options)); + break; + case "lte": + ret.push(new atoms[isReference ? "ReferenceLTEConstraint" : "ComparisonConstraint"](rule, options)); + break; + default: + ret.push(new atoms[isReference ? "ReferenceConstraint" : "ComparisonConstraint"](rule, options)); + } + + } + return ret; + }, + + + parse: function (rule) { + return this[rule[2]](rule[0], rule[1]); + }, + + composite: function (lhs) { + return this.parse(lhs); + }, + + and: function (lhs, rhs) { + return ["(", this.parse(lhs), "&&", this.parse(rhs), ")"].join(" "); + }, + + or: function (lhs, rhs) { + return ["(", this.parse(lhs), "||", this.parse(rhs), ")"].join(" "); + }, + + prop: function (name, prop) { + if (prop[2] === "function") { + return [this.parse(name), this.parse(prop)].join("."); + } else { + return [this.parse(name), "['", this.parse(prop), "']"].join(""); + } + }, + + propLookup: function (name, prop) { + if (prop[2] === "function") { + return [this.parse(name), this.parse(prop)].join("."); + } else { + return [this.parse(name), "[", this.parse(prop), "]"].join(""); + } + }, + + unary: function (lhs) { + return -1 * this.parse(lhs); + }, + + plus: function (lhs, rhs) { + return [this.parse(lhs), "+", this.parse(rhs)].join(" "); + }, + minus: function (lhs, rhs) { + return [this.parse(lhs), "-", this.parse(rhs)].join(" "); + }, + + mult: function (lhs, rhs) { + return [this.parse(lhs), "*", this.parse(rhs)].join(" "); + }, + + div: function (lhs, rhs) { + return [this.parse(lhs), "/", this.parse(rhs)].join(" "); + }, + + mod: function (lhs, rhs) { + return [this.parse(lhs), "%", this.parse(rhs)].join(" "); + }, + + lt: function (lhs, rhs) { + return [this.parse(lhs), "<", this.parse(rhs)].join(" "); + }, + gt: function (lhs, rhs) { + return [this.parse(lhs), ">", this.parse(rhs)].join(" "); + }, + lte: function (lhs, rhs) { + return [this.parse(lhs), "<=", this.parse(rhs)].join(" "); + }, + gte: function (lhs, rhs) { + return [this.parse(lhs), ">=", this.parse(rhs)].join(" "); + }, + like: function (lhs, rhs) { + return [this.parse(rhs), ".test(", this.parse(lhs), ")"].join(""); + }, + notLike: function (lhs, rhs) { + return ["!", this.parse(rhs), ".test(", this.parse(lhs), ")"].join(""); + }, + eq: function (lhs, rhs) { + return [this.parse(lhs), "==", this.parse(rhs)].join(" "); + }, + + seq: function (lhs, rhs) { + return [this.parse(lhs), "===", this.parse(rhs)].join(" "); + }, + + neq: function (lhs, rhs) { + return [this.parse(lhs), "!=", this.parse(rhs)].join(" "); + }, + + sneq: function (lhs, rhs) { + return [this.parse(lhs), "!==", this.parse(rhs)].join(" "); + }, + + "in": function (lhs, rhs) { + return ["(indexOf(", this.parse(rhs), ",", this.parse(lhs), ")) != -1"].join(""); + }, + + "notIn": function (lhs, rhs) { + return ["(indexOf(", this.parse(rhs), ",", this.parse(lhs), ")) == -1"].join(""); + }, + + "arguments": function (lhs, rhs) { + var ret = []; + if (lhs) { + ret.push(this.parse(lhs)); + } + if (rhs) { + ret.push(this.parse(rhs)); + } + return ret.join(","); + }, + + "array": function (lhs) { + var args = []; + if (lhs) { + args = this.parse(lhs); + if (isArray(args)) { + return args; + } else { + return ["[", args, "]"].join(""); + } + } + return ["[", args.join(","), "]"].join(""); + }, + + "function": function (lhs, rhs) { + var args = this.parse(rhs); + return [this.parse(lhs), "(", args, ")"].join(""); + }, + + "string": function (lhs) { + return "'" + lhs + "'"; + }, + + "number": function (lhs) { + return lhs; + }, + + "boolean": function (lhs) { + return lhs; + }, + + regexp: function (lhs) { + return lhs; + }, + + identifier: function (lhs) { + return lhs; + }, + + "null": function () { + return "null"; + }, + + logicalNot: function (lhs) { + return ["!(", this.parse(lhs), ")"].join(""); + } +}; + +var matcherCount = 0; +var toJs = exports.toJs = function (rule, scope, alias, equality, wrap) { + /*jshint evil:true*/ + var js = lang.parse(rule); + scope = scope || {}; + var vars = lang.getIdentifiers(rule); + var closureVars = ["var indexOf = definedFuncs.indexOf; var hasOwnProperty = Object.prototype.hasOwnProperty;"], funcVars = []; + extd(vars).filter(function (v) { + var ret = ["var ", v, " = "]; + if (definedFuncs.hasOwnProperty(v)) { + ret.push("definedFuncs['", v, "']"); + } else if (scope.hasOwnProperty(v)) { + ret.push("scope['", v, "']"); + } else { + return true; + } + ret.push(";"); + closureVars.push(ret.join("")); + return false; + }).forEach(function (v) { + var ret = ["var ", v, " = "]; + if (equality || v !== alias) { + ret.push("fact." + v); + } else if (v === alias) { + ret.push("hash.", v, ""); + } + ret.push(";"); + funcVars.push(ret.join("")); + }); + var closureBody = closureVars.join("") + "return function matcher" + (matcherCount++) + (!equality ? "(fact, hash){" : "(fact){") + funcVars.join("") + " return " + (wrap ? wrap(js) : js) + ";}"; + var f = new Function("definedFuncs, scope", closureBody)(definedFuncs, scope); + //console.log(f.toString()); + return f; +}; + +exports.getMatcher = function (rule, options, equality) { + options = options || {}; + return toJs(rule, options.scope, options.alias, equality, function (src) { + return "!!(" + src + ")"; + }); +}; + +exports.getSourceMatcher = function (rule, options, equality) { + options = options || {}; + return toJs(rule, options.scope, options.alias, equality, function (src) { + return src; + }); +}; + +exports.toConstraints = function (constraint, options) { + if (typeof constraint === 'function') { + return [new atoms.CustomConstraint(constraint, options)]; + } + //constraint.split("&&") + return lang.toConstraints(constraint, options); +}; + +exports.equal = function (c1, c2) { + return lang.equal(c1, c2); +}; + +exports.getIdentifiers = function (constraint) { + return lang.getIdentifiers(constraint); +}; + +exports.getIndexableProperties = function (constraint) { + return lang.getIndexableProperties(constraint); +}; + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/context.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/context.js ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/* module decorator */ module = __webpack_require__.nmd(module); + +var extd = __webpack_require__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + isBoolean = extd.isBoolean, + declare = extd.declare, + indexOf = extd.indexOf, + pPush = Array.prototype.push; + +function createContextHash(paths, hashCode) { + var ret = "", + i = -1, + l = paths.length; + while (++i < l) { + ret += paths[i].id + ":"; + } + ret += hashCode; + return ret; +} + +function merge(h1, h2, aliases) { + var i = -1, l = aliases.length, alias; + while (++i < l) { + alias = aliases[i]; + h1[alias] = h2[alias]; + } +} + +function unionRecency(arr, arr1, arr2) { + pPush.apply(arr, arr1); + var i = -1, l = arr2.length, val, j = arr.length; + while (++i < l) { + val = arr2[i]; + if (indexOf(arr, val) === -1) { + arr[j++] = val; + } + } +} + +var Match = declare({ + instance: { + + isMatch: true, + hashCode: "", + facts: null, + factIds: null, + factHash: null, + recency: null, + aliases: null, + + constructor: function () { + this.facts = []; + this.factIds = []; + this.factHash = {}; + this.recency = []; + this.aliases = []; + }, + + addFact: function (assertable) { + pPush.call(this.facts, assertable); + pPush.call(this.recency, assertable.recency); + pPush.call(this.factIds, assertable.id); + this.hashCode = this.factIds.join(":"); + return this; + }, + + merge: function (mr) { + var ret = new Match(); + ret.isMatch = mr.isMatch; + pPush.apply(ret.facts, this.facts); + pPush.apply(ret.facts, mr.facts); + pPush.apply(ret.aliases, this.aliases); + pPush.apply(ret.aliases, mr.aliases); + ret.hashCode = this.hashCode + ":" + mr.hashCode; + merge(ret.factHash, this.factHash, this.aliases); + merge(ret.factHash, mr.factHash, mr.aliases); + unionRecency(ret.recency, this.recency, mr.recency); + return ret; + } + } +}); + +var Context = declare({ + instance: { + match: null, + factHash: null, + aliases: null, + fact: null, + hashCode: null, + paths: null, + pathsHash: null, + + constructor: function (fact, paths, mr) { + this.fact = fact; + if (mr) { + this.match = mr; + } else { + this.match = new Match().addFact(fact); + } + this.factHash = this.match.factHash; + this.aliases = this.match.aliases; + this.hashCode = this.match.hashCode; + if (paths) { + this.paths = paths; + this.pathsHash = createContextHash(paths, this.hashCode); + } else { + this.pathsHash = this.hashCode; + } + }, + + "set": function (key, value) { + this.factHash[key] = value; + this.aliases.push(key); + return this; + }, + + isMatch: function (isMatch) { + if (isBoolean(isMatch)) { + this.match.isMatch = isMatch; + } else { + return this.match.isMatch; + } + return this; + }, + + mergeMatch: function (merge) { + var match = this.match = this.match.merge(merge); + this.factHash = match.factHash; + this.hashCode = match.hashCode; + this.aliases = match.aliases; + return this; + }, + + clone: function (fact, paths, match) { + return new Context(fact || this.fact, paths || this.path, match || this.match); + } + } +}).as(module); + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/executionStrategy.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/executionStrategy.js ***! + \************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var extd = __webpack_require__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + Promise = extd.Promise, + nextTick = __webpack_require__(/*! ./nextTick */ "./build/cht-core-4-6/node_modules/nools/lib/nextTick.js"), + isPromiseLike = extd.isPromiseLike; + +Promise.extend({ + instance: { + + looping: false, + + constructor: function (flow, matchUntilHalt) { + this._super([]); + this.flow = flow; + this.agenda = flow.agenda; + this.rootNode = flow.rootNode; + this.matchUntilHalt = !!(matchUntilHalt); + extd.bindAll(this, ["onAlter", "callNext"]); + }, + + halt: function () { + this.__halted = true; + if (!this.looping) { + this.callback(); + } + }, + + onAlter: function () { + this.flowAltered = true; + if (!this.looping && this.matchUntilHalt && !this.__halted) { + this.callNext(); + } + }, + + setup: function () { + var flow = this.flow; + this.rootNode.resetCounter(); + flow.on("assert", this.onAlter); + flow.on("modify", this.onAlter); + flow.on("retract", this.onAlter); + }, + + tearDown: function () { + var flow = this.flow; + flow.removeListener("assert", this.onAlter); + flow.removeListener("modify", this.onAlter); + flow.removeListener("retract", this.onAlter); + }, + + __handleAsyncNext: function (next) { + var self = this, agenda = self.agenda; + return next.then(function () { + self.looping = false; + if (!agenda.isEmpty()) { + if (self.flowAltered) { + self.rootNode.incrementCounter(); + self.flowAltered = false; + } + if (!self.__halted) { + self.callNext(); + } else { + self.callback(); + } + } else if (!self.matchUntilHalt || self.__halted) { + self.callback(); + } + self = null; + }, this.errback); + }, + + __handleSyncNext: function (next) { + this.looping = false; + if (!this.agenda.isEmpty()) { + if (this.flowAltered) { + this.rootNode.incrementCounter(); + this.flowAltered = false; + } + } + if (next && !this.__halted) { + nextTick(this.callNext); + } else if (!this.matchUntilHalt || this.__halted) { + this.callback(); + } + return next; + }, + + callback: function () { + this.tearDown(); + this._super(arguments); + }, + + + callNext: function () { + this.looping = true; + var next = this.agenda.fireNext(); + return isPromiseLike(next) ? this.__handleAsyncNext(next) : this.__handleSyncNext(next); + }, + + execute: function () { + this.setup(); + this.callNext(); + return this; + } + } +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/extended.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/extended.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var arr = __webpack_require__(/*! array-extended */ "./build/cht-core-4-6/node_modules/array-extended/index.js"), + unique = arr.unique, + indexOf = arr.indexOf, + map = arr.map, + pSlice = Array.prototype.slice, + pSplice = Array.prototype.splice; + +function plucked(prop) { + var exec = prop.match(/(\w+)\(\)$/); + if (exec) { + prop = exec[1]; + return function (item) { + return item[prop](); + }; + } else { + return function (item) { + return item[prop]; + }; + } +} + +function plucker(prop) { + prop = prop.split("."); + if (prop.length === 1) { + return plucked(prop[0]); + } else { + var pluckers = map(prop, function (prop) { + return plucked(prop); + }); + var l = pluckers.length; + return function (item) { + var i = -1, res = item; + while (++i < l) { + res = pluckers[i](res); + } + return res; + }; + } +} + +function intersection(a, b) { + a = pSlice.call(a); + var aOne, i = -1, l; + l = a.length; + while (++i < l) { + aOne = a[i]; + if (indexOf(b, aOne) === -1) { + pSplice.call(a, i--, 1); + l--; + } + } + return a; +} + +function inPlaceIntersection(a, b) { + var aOne, i = -1, l; + l = a.length; + while (++i < l) { + aOne = a[i]; + if (indexOf(b, aOne) === -1) { + pSplice.call(a, i--, 1); + l--; + } + } + return a; +} + +function inPlaceDifference(a, b) { + var aOne, i = -1, l; + l = a.length; + while (++i < l) { + aOne = a[i]; + if (indexOf(b, aOne) !== -1) { + pSplice.call(a, i--, 1); + l--; + } + } + return a; +} + +function diffArr(arr1, arr2) { + var ret = [], i = -1, j, l2 = arr2.length, l1 = arr1.length, a, found; + if (l2 > l1) { + ret = arr1.slice(); + while (++i < l2) { + a = arr2[i]; + j = -1; + l1 = ret.length; + while (++j < l1) { + if (ret[j] === a) { + ret.splice(j, 1); + break; + } + } + } + } else { + while (++i < l1) { + a = arr1[i]; + j = -1; + found = false; + while (++j < l2) { + if (arr2[j] === a) { + found = true; + break; + } + } + if (!found) { + ret.push(a); + } + } + } + return ret; +} + +function diffHash(h1, h2) { + var ret = {}; + for (var i in h1) { + if (!hasOwnProperty.call(h2, i)) { + ret[i] = h1[i]; + } + } + return ret; +} + + +function union(arr1, arr2) { + return unique(arr1.concat(arr2)); +} + +module.exports = __webpack_require__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js")() + .register(__webpack_require__(/*! date-extended */ "./build/cht-core-4-6/node_modules/date-extended/index.js")) + .register(arr) + .register(__webpack_require__(/*! object-extended */ "./build/cht-core-4-6/node_modules/object-extended/index.js")) + .register(__webpack_require__(/*! string-extended */ "./build/cht-core-4-6/node_modules/string-extended/index.js")) + .register(__webpack_require__(/*! promise-extended */ "./build/cht-core-4-6/node_modules/promise-extended/index.js")) + .register(__webpack_require__(/*! function-extended */ "./build/cht-core-4-6/node_modules/function-extended/index.js")) + .register(__webpack_require__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js")) + .register("intersection", intersection) + .register("inPlaceIntersection", inPlaceIntersection) + .register("inPlaceDifference", inPlaceDifference) + .register("diffArr", diffArr) + .register("diffHash", diffHash) + .register("unionArr", union) + .register("plucker", plucker) + .register("HashTable", __webpack_require__(/*! ht */ "./build/cht-core-4-6/node_modules/ht/index.js")) + .register("declare", __webpack_require__(/*! declare.js */ "./build/cht-core-4-6/node_modules/declare.js/index.js")) + .register(__webpack_require__(/*! leafy */ "./build/cht-core-4-6/node_modules/leafy/index.js")) + .register("LinkedList", __webpack_require__(/*! ./linkedList */ "./build/cht-core-4-6/node_modules/nools/lib/linkedList.js")); + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/flow.js": +/*!***********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/flow.js ***! + \***********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + +var extd = __webpack_require__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + bind = extd.bind, + declare = extd.declare, + nodes = __webpack_require__(/*! ./nodes */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/index.js"), + EventEmitter = __webpack_require__(/*! events */ "events").EventEmitter, + wm = __webpack_require__(/*! ./workingMemory */ "./build/cht-core-4-6/node_modules/nools/lib/workingMemory.js"), + WorkingMemory = wm.WorkingMemory, + ExecutionStragegy = __webpack_require__(/*! ./executionStrategy */ "./build/cht-core-4-6/node_modules/nools/lib/executionStrategy.js"), + AgendaTree = __webpack_require__(/*! ./agenda */ "./build/cht-core-4-6/node_modules/nools/lib/agenda.js"); + +module.exports = declare(EventEmitter, { + + instance: { + + name: null, + + executionStrategy: null, + + constructor: function (name, conflictResolutionStrategy) { + this.env = null; + this.name = name; + this.__rules = {}; + this.conflictResolutionStrategy = conflictResolutionStrategy; + this.workingMemory = new WorkingMemory(); + this.agenda = new AgendaTree(this, conflictResolutionStrategy); + this.agenda.on("fire", bind(this, "emit", "fire")); + this.agenda.on("focused", bind(this, "emit", "focused")); + this.rootNode = new nodes.RootNode(this.workingMemory, this.agenda); + extd.bindAll(this, "halt", "assert", "retract", "modify", "focus", + "emit", "getFacts", "getFact"); + }, + + getFacts: function (Type) { + var ret; + if (Type) { + ret = this.workingMemory.getFactsByType(Type); + } else { + ret = this.workingMemory.getFacts(); + } + return ret; + }, + + getFact: function (Type) { + var ret; + if (Type) { + ret = this.workingMemory.getFactsByType(Type); + } else { + ret = this.workingMemory.getFacts(); + } + return ret && ret[0]; + }, + + focus: function (focused) { + this.agenda.setFocus(focused); + return this; + }, + + halt: function () { + this.executionStrategy.halt(); + return this; + }, + + dispose: function () { + this.workingMemory.dispose(); + this.agenda.dispose(); + this.rootNode.dispose(); + }, + + assert: function (fact) { + this.rootNode.assertFact(this.workingMemory.assertFact(fact)); + this.emit("assert", fact); + return fact; + }, + + // This method is called to remove an existing fact from working memory + retract: function (fact) { + //fact = this.workingMemory.getFact(fact); + this.rootNode.retractFact(this.workingMemory.retractFact(fact)); + this.emit("retract", fact); + return fact; + }, + + // This method is called to alter an existing fact. It is essentially a + // retract followed by an assert. + modify: function (fact, cb) { + //fact = this.workingMemory.getFact(fact); + if ("function" === typeof cb) { + cb.call(fact, fact); + } + this.rootNode.modifyFact(this.workingMemory.modifyFact(fact)); + this.emit("modify", fact); + return fact; + }, + + print: function () { + this.rootNode.print(); + }, + + containsRule: function (name) { + return this.rootNode.containsRule(name); + }, + + rule: function (rule) { + this.rootNode.assertRule(rule); + }, + + matchUntilHalt: function (cb) { + return (this.executionStrategy = new ExecutionStragegy(this, true)).execute().classic(cb).promise(); + }, + + match: function (cb) { + return (this.executionStrategy = new ExecutionStragegy(this)).execute().classic(cb).promise(); + } + + } +}); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/flowContainer.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/flowContainer.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/* module decorator */ module = __webpack_require__.nmd(module); + +var extd = __webpack_require__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + instanceOf = extd.instanceOf, + forEach = extd.forEach, + declare = extd.declare, + InitialFact = __webpack_require__(/*! ./pattern */ "./build/cht-core-4-6/node_modules/nools/lib/pattern.js").InitialFact, + conflictStrategies = __webpack_require__(/*! ./conflict */ "./build/cht-core-4-6/node_modules/nools/lib/conflict.js"), + conflictResolution = conflictStrategies.strategy(["salience", "activationRecency"]), + rule = __webpack_require__(/*! ./rule */ "./build/cht-core-4-6/node_modules/nools/lib/rule.js"), + Flow = __webpack_require__(/*! ./flow */ "./build/cht-core-4-6/node_modules/nools/lib/flow.js"); + +var flows = {}; +var FlowContainer = declare({ + + instance: { + + constructor: function (name, cb) { + this.name = name; + this.cb = cb; + this.__rules = []; + this.__defined = {}; + this.conflictResolutionStrategy = conflictResolution; + if (cb) { + cb.call(this, this); + } + if (!flows.hasOwnProperty(name)) { + flows[name] = this; + } else { + throw new Error("Flow with " + name + " already defined"); + } + }, + + conflictResolution: function (strategies) { + this.conflictResolutionStrategy = conflictStrategies.strategy(strategies); + return this; + }, + + getDefined: function (name) { + var ret = this.__defined[name.toLowerCase()]; + if (!ret) { + throw new Error(name + " flow class is not defined"); + } + return ret; + }, + + addDefined: function (name, cls) { + //normalize + this.__defined[name.toLowerCase()] = cls; + return cls; + }, + + rule: function () { + this.__rules = this.__rules.concat(rule.createRule.apply(rule, arguments)); + return this; + }, + + getSession: function () { + var flow = new Flow(this.name, this.conflictResolutionStrategy); + forEach(this.__rules, function (rule) { + flow.rule(rule); + }); + flow.assert(new InitialFact()); + for (var i = 0, l = arguments.length; i < l; i++) { + flow.assert(arguments[i]); + } + return flow; + }, + + containsRule: function (name) { + return extd.some(this.__rules, function (rule) { + return rule.name === name; + }); + } + + }, + + "static": { + getFlow: function (name) { + return flows[name]; + }, + + hasFlow: function (name) { + return extd.has(flows, name); + }, + + deleteFlow: function (name) { + if (instanceOf(name, FlowContainer)) { + name = name.name; + } + delete flows[name]; + return FlowContainer; + }, + + deleteFlows: function () { + for (var name in flows) { + if (name in flows) { + delete flows[name]; + } + } + return FlowContainer; + }, + + create: function (name, cb) { + return new FlowContainer(name, cb); + } + } + +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/index.js": +/*!************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/index.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +/** + * + * @projectName nools + * @github https://github.com/C2FO/nools + * @includeDoc [Examples] ../docs-md/examples.md + * @includeDoc [Change Log] ../history.md + * @header [../readme.md] + */ + + +var extd = __webpack_require__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + fs = __webpack_require__(/*! fs */ "fs"), + path = __webpack_require__(/*! path */ "path"), + compile = __webpack_require__(/*! ./compile */ "./build/cht-core-4-6/node_modules/nools/lib/compile/index.js"), + FlowContainer = __webpack_require__(/*! ./flowContainer */ "./build/cht-core-4-6/node_modules/nools/lib/flowContainer.js"); + +function isNoolsFile(file) { + return (/\.nools$/).test(file); +} + +function parse(source) { + var ret; + if (isNoolsFile(source)) { + ret = compile.parse(fs.readFileSync(source, "utf8"), source); + } else { + ret = compile.parse(source); + } + return ret; +} + +exports.Flow = FlowContainer; + +exports.getFlow = FlowContainer.getFlow; +exports.hasFlow = FlowContainer.hasFlow; + +exports.deleteFlow = function (name) { + FlowContainer.deleteFlow(name); + return this; +}; + +exports.deleteFlows = function () { + FlowContainer.deleteFlows(); + return this; +}; + +exports.flow = FlowContainer.create; + +exports.compile = function (file, options, cb) { + if (extd.isFunction(options)) { + cb = options; + options = {}; + } else { + options = options || {}; + } + if (extd.isString(file)) { + options.name = options.name || (isNoolsFile(file) ? path.basename(file, path.extname(file)) : null); + file = parse(file); + } + if (!options.name) { + throw new Error("Name required when compiling nools source"); + } + return compile.compile(file, options, cb, FlowContainer); +}; + +exports.transpile = function (file, options) { + options = options || {}; + if (extd.isString(file)) { + options.name = options.name || (isNoolsFile(file) ? path.basename(file, path.extname(file)) : null); + file = parse(file); + } + return compile.transpile(file, options); +}; + +exports.parse = parse; + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/linkedList.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/linkedList.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var declare = __webpack_require__(/*! declare.js */ "./build/cht-core-4-6/node_modules/declare.js/index.js"); +declare({ + + instance: { + constructor: function () { + this.head = null; + this.tail = null; + this.length = null; + }, + + push: function (data) { + var tail = this.tail, head = this.head, node = {data: data, prev: tail, next: null}; + if (tail) { + this.tail.next = node; + } + this.tail = node; + if (!head) { + this.head = node; + } + this.length++; + return node; + }, + + remove: function (node) { + if (node.prev) { + node.prev.next = node.next; + } else { + this.head = node.next; + } + if (node.next) { + node.next.prev = node.prev; + } else { + this.tail = node.prev; + } + //node.data = node.prev = node.next = null; + this.length--; + }, + + forEach: function (cb) { + var head = {next: this.head}; + while ((head = head.next)) { + cb(head.data); + } + }, + + toArray: function () { + var head = {next: this.head}, ret = []; + while ((head = head.next)) { + ret.push(head); + } + return ret; + }, + + removeByData: function (data) { + var head = {next: this.head}; + while ((head = head.next)) { + if (head.data === data) { + this.remove(head); + break; + } + } + }, + + getByData: function (data) { + var head = {next: this.head}; + while ((head = head.next)) { + if (head.data === data) { + return head; + } + } + }, + + clear: function () { + this.head = this.tail = null; + this.length = 0; + } + + } + +}).as(module); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nextTick.js": +/*!***************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nextTick.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/*global setImmediate, window, MessageChannel*/ +var extd = __webpack_require__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"); +var nextTick; +if (typeof setImmediate === "function") { + // In IE10, or use https://github.com/NobleJS/setImmediate + if (typeof window !== "undefined") { + nextTick = extd.bind(window, setImmediate); + } else { + nextTick = setImmediate; + } +} else if (typeof process !== "undefined") { + // node + nextTick = process.nextTick; +} else if (typeof MessageChannel !== "undefined") { + // modern browsers + // http://www.nonblocking.io/2011/06/windownexttick.html + var channel = new MessageChannel(); + // linked list of tasks (single, with head node) + var head = {}, tail = head; + channel.port1.onmessage = function () { + head = head.next; + var task = head.task; + delete head.task; + task(); + }; + nextTick = function (task) { + tail = tail.next = {task: task}; + channel.port2.postMessage(0); + }; +} else { + // old browsers + nextTick = function (task) { + setTimeout(task, 0); + }; +} + +module.exports = nextTick; + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/adapterNode.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/adapterNode.js ***! + \************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var Node = __webpack_require__(/*! ./node */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js"), + intersection = __webpack_require__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js").intersection; + +Node.extend({ + instance: { + + __propagatePaths: function (method, context) { + var entrySet = this.__entrySet, i = entrySet.length, entry, outNode, paths, continuingPaths; + while (--i > -1) { + entry = entrySet[i]; + outNode = entry.key; + paths = entry.value; + if ((continuingPaths = intersection(paths, context.paths)).length) { + outNode[method](context.clone(null, continuingPaths, null)); + } + } + }, + + __propagateNoPaths: function (method, context) { + var entrySet = this.__entrySet, i = entrySet.length; + while (--i > -1) { + entrySet[i].key[method](context); + } + }, + + __propagate: function (method, context) { + if (context.paths) { + this.__propagatePaths(method, context); + } else { + this.__propagateNoPaths(method, context); + } + } + } +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/aliasNode.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/aliasNode.js ***! + \**********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var AlphaNode = __webpack_require__(/*! ./alphaNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/alphaNode.js"); + +AlphaNode.extend({ + instance: { + + constructor: function () { + this._super(arguments); + this.alias = this.constraint.get("alias"); + }, + + toString: function () { + return "AliasNode" + this.__count; + }, + + assert: function (context) { + return this.__propagate("assert", context.set(this.alias, context.fact.object)); + }, + + modify: function (context) { + return this.__propagate("modify", context.set(this.alias, context.fact.object)); + }, + + retract: function (context) { + return this.__propagate("retract", context.set(this.alias, context.fact.object)); + }, + + equal: function (other) { + return other instanceof this._static && this.alias === other.alias; + } + } +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/alphaNode.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/alphaNode.js ***! + \**********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/* module decorator */ module = __webpack_require__.nmd(module); + +var Node = __webpack_require__(/*! ./node */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js"); + +Node.extend({ + instance: { + constructor: function (constraint) { + this._super([]); + this.constraint = constraint; + this.constraintAssert = this.constraint.assert; + }, + + toString: function () { + return "AlphaNode " + this.__count; + }, + + equal: function (constraint) { + return this.constraint.equal(constraint.constraint); + } + } +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/betaNode.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/betaNode.js ***! + \*********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var extd = __webpack_require__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + keys = extd.hash.keys, + Node = __webpack_require__(/*! ./node */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js"), + LeftMemory = __webpack_require__(/*! ./misc/leftMemory */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/leftMemory.js"), RightMemory = __webpack_require__(/*! ./misc/rightMemory */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/rightMemory.js"); + +Node.extend({ + + instance: { + + nodeType: "BetaNode", + + constructor: function () { + this._super([]); + this.leftMemory = {}; + this.rightMemory = {}; + this.leftTuples = new LeftMemory(); + this.rightTuples = new RightMemory(); + }, + + __propagate: function (method, context) { + var entrySet = this.__entrySet, i = entrySet.length, entry, outNode; + while (--i > -1) { + entry = entrySet[i]; + outNode = entry.key; + outNode[method](context); + } + }, + + dispose: function () { + this.leftMemory = {}; + this.rightMemory = {}; + this.leftTuples.clear(); + this.rightTuples.clear(); + }, + + disposeLeft: function (fact) { + this.leftMemory = {}; + this.leftTuples.clear(); + this.propagateDispose(fact); + }, + + disposeRight: function (fact) { + this.rightMemory = {}; + this.rightTuples.clear(); + this.propagateDispose(fact); + }, + + hashCode: function () { + return this.nodeType + " " + this.__count; + }, + + toString: function () { + return this.nodeType + " " + this.__count; + }, + + retractLeft: function (context) { + context = this.removeFromLeftMemory(context).data; + var rightMatches = context.rightMatches, + hashCodes = keys(rightMatches), + i = -1, + l = hashCodes.length; + while (++i < l) { + this.__propagate("retract", rightMatches[hashCodes[i]].clone()); + } + }, + + retractRight: function (context) { + context = this.removeFromRightMemory(context).data; + var leftMatches = context.leftMatches, + hashCodes = keys(leftMatches), + i = -1, + l = hashCodes.length; + while (++i < l) { + this.__propagate("retract", leftMatches[hashCodes[i]].clone()); + } + }, + + assertLeft: function (context) { + this.__addToLeftMemory(context); + var rm = this.rightTuples.getRightMemory(context), i = -1, l = rm.length; + while (++i < l) { + this.propagateFromLeft(context, rm[i].data); + } + }, + + assertRight: function (context) { + this.__addToRightMemory(context); + var lm = this.leftTuples.getLeftMemory(context), i = -1, l = lm.length; + while (++i < l) { + this.propagateFromRight(context, lm[i].data); + } + }, + + modifyLeft: function (context) { + var previousContext = this.removeFromLeftMemory(context).data; + this.__addToLeftMemory(context); + var rm = this.rightTuples.getRightMemory(context), l = rm.length, i = -1, rightMatches; + if (!l) { + this.propagateRetractModifyFromLeft(previousContext); + } else { + rightMatches = previousContext.rightMatches; + while (++i < l) { + this.propagateAssertModifyFromLeft(context, rightMatches, rm[i].data); + } + + } + }, + + modifyRight: function (context) { + var previousContext = this.removeFromRightMemory(context).data; + this.__addToRightMemory(context); + var lm = this.leftTuples.getLeftMemory(context); + if (!lm.length) { + this.propagateRetractModifyFromRight(previousContext); + } else { + var leftMatches = previousContext.leftMatches, i = -1, l = lm.length; + while (++i < l) { + this.propagateAssertModifyFromRight(context, leftMatches, lm[i].data); + } + } + }, + + propagateFromLeft: function (context, rc) { + this.__propagate("assert", this.__addToMemoryMatches(rc, context, context.clone(null, null, context.match.merge(rc.match)))); + }, + + propagateFromRight: function (context, lc) { + this.__propagate("assert", this.__addToMemoryMatches(context, lc, lc.clone(null, null, lc.match.merge(context.match)))); + }, + + propagateRetractModifyFromLeft: function (context) { + var rightMatches = context.rightMatches, + hashCodes = keys(rightMatches), + l = hashCodes.length, + i = -1; + while (++i < l) { + this.__propagate("retract", rightMatches[hashCodes[i]].clone()); + } + }, + + propagateRetractModifyFromRight: function (context) { + var leftMatches = context.leftMatches, + hashCodes = keys(leftMatches), + l = hashCodes.length, + i = -1; + while (++i < l) { + this.__propagate("retract", leftMatches[hashCodes[i]].clone()); + } + }, + + propagateAssertModifyFromLeft: function (context, rightMatches, rm) { + var factId = rm.hashCode; + if (factId in rightMatches) { + this.__propagate("modify", this.__addToMemoryMatches(rm, context, context.clone(null, null, context.match.merge(rm.match)))); + } else { + this.propagateFromLeft(context, rm); + } + }, + + propagateAssertModifyFromRight: function (context, leftMatches, lm) { + var factId = lm.hashCode; + if (factId in leftMatches) { + this.__propagate("modify", this.__addToMemoryMatches(context, lm, context.clone(null, null, lm.match.merge(context.match)))); + } else { + this.propagateFromRight(context, lm); + } + }, + + removeFromRightMemory: function (context) { + var hashCode = context.hashCode, ret; + context = this.rightMemory[hashCode] || null; + var tuples = this.rightTuples; + if (context) { + var leftMemory = this.leftMemory; + ret = context.data; + var leftMatches = ret.leftMatches; + tuples.remove(context); + var hashCodes = keys(leftMatches), i = -1, l = hashCodes.length; + while (++i < l) { + delete leftMemory[hashCodes[i]].data.rightMatches[hashCode]; + } + delete this.rightMemory[hashCode]; + } + return context; + }, + + removeFromLeftMemory: function (context) { + var hashCode = context.hashCode; + context = this.leftMemory[hashCode] || null; + if (context) { + var rightMemory = this.rightMemory; + var rightMatches = context.data.rightMatches; + this.leftTuples.remove(context); + var hashCodes = keys(rightMatches), i = -1, l = hashCodes.length; + while (++i < l) { + delete rightMemory[hashCodes[i]].data.leftMatches[hashCode]; + } + delete this.leftMemory[hashCode]; + } + return context; + }, + + getRightMemoryMatches: function (context) { + var lm = this.leftMemory[context.hashCode], ret = {}; + if (lm) { + ret = lm.rightMatches; + } + return ret; + }, + + __addToMemoryMatches: function (rightContext, leftContext, createdContext) { + var rightFactId = rightContext.hashCode, + rm = this.rightMemory[rightFactId], + lm, leftFactId = leftContext.hashCode; + if (rm) { + rm = rm.data; + if (leftFactId in rm.leftMatches) { + throw new Error("Duplicate left fact entry"); + } + rm.leftMatches[leftFactId] = createdContext; + } + lm = this.leftMemory[leftFactId]; + if (lm) { + lm = lm.data; + if (rightFactId in lm.rightMatches) { + throw new Error("Duplicate right fact entry"); + } + lm.rightMatches[rightFactId] = createdContext; + } + return createdContext; + }, + + __addToRightMemory: function (context) { + var hashCode = context.hashCode, rm = this.rightMemory; + if (hashCode in rm) { + return false; + } + rm[hashCode] = this.rightTuples.push(context); + context.leftMatches = {}; + return true; + }, + + + __addToLeftMemory: function (context) { + var hashCode = context.hashCode, lm = this.leftMemory; + if (hashCode in lm) { + return false; + } + lm[hashCode] = this.leftTuples.push(context); + context.rightMatches = {}; + return true; + } + } + +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/equalityNode.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/equalityNode.js ***! + \*************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var AlphaNode = __webpack_require__(/*! ./alphaNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/alphaNode.js"); + +AlphaNode.extend({ + instance: { + + constructor: function () { + this.memory = {}; + this._super(arguments); + this.constraintAssert = this.constraint.assert; + }, + + assert: function (context) { + if ((this.memory[context.pathsHash] = this.constraintAssert(context.factHash))) { + this.__propagate("assert", context); + } + }, + + modify: function (context) { + var memory = this.memory, + hashCode = context.pathsHash, + wasMatch = memory[hashCode]; + if ((memory[hashCode] = this.constraintAssert(context.factHash))) { + this.__propagate(wasMatch ? "modify" : "assert", context); + } else if (wasMatch) { + this.__propagate("retract", context); + } + }, + + retract: function (context) { + var hashCode = context.pathsHash, + memory = this.memory; + if (memory[hashCode]) { + this.__propagate("retract", context); + } + delete memory[hashCode]; + }, + + toString: function () { + return "EqualityNode" + this.__count; + } + } +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/existsFromNode.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/existsFromNode.js ***! + \***************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var FromNotNode = __webpack_require__(/*! ./fromNotNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNotNode.js"), + extd = __webpack_require__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + Context = __webpack_require__(/*! ../context */ "./build/cht-core-4-6/node_modules/nools/lib/context.js"), + isDefined = extd.isDefined, + isArray = extd.isArray; + +FromNotNode.extend({ + instance: { + + nodeType: "ExistsFromNode", + + retractLeft: function (context) { + var ctx = this.removeFromLeftMemory(context); + if (ctx) { + ctx = ctx.data; + if (ctx.blocked) { + this.__propagate("retract", ctx.clone()); + } + } + }, + + __modify: function (context, leftContext) { + var leftContextBlocked = leftContext.blocked; + var fh = context.factHash, o = this.from(fh); + if (isArray(o)) { + for (var i = 0, l = o.length; i < l; i++) { + if (this.__isMatch(context, o[i], true)) { + context.blocked = true; + break; + } + } + } else if (isDefined(o)) { + context.blocked = this.__isMatch(context, o, true); + } + var newContextBlocked = context.blocked; + if (newContextBlocked) { + if (leftContextBlocked) { + this.__propagate("modify", context.clone()); + } else { + this.__propagate("assert", context.clone()); + } + } else if (leftContextBlocked) { + this.__propagate("retract", context.clone()); + } + + }, + + __findMatches: function (context) { + var fh = context.factHash, o = this.from(fh), isMatch = false; + if (isArray(o)) { + for (var i = 0, l = o.length; i < l; i++) { + if (this.__isMatch(context, o[i], true)) { + context.blocked = true; + this.__propagate("assert", context.clone()); + return; + } + } + } else if (isDefined(o) && (this.__isMatch(context, o, true))) { + context.blocked = true; + this.__propagate("assert", context.clone()); + } + return isMatch; + }, + + __isMatch: function (oc, o, add) { + var ret = false; + if (this.type(o)) { + var createdFact = this.workingMemory.getFactHandle(o); + var context = new Context(createdFact, null, null) + .mergeMatch(oc.match) + .set(this.alias, o); + if (add) { + var fm = this.fromMemory[createdFact.id]; + if (!fm) { + fm = this.fromMemory[createdFact.id] = {}; + } + fm[oc.hashCode] = oc; + } + var fh = context.factHash; + var eqConstraints = this.__equalityConstraints; + for (var i = 0, l = eqConstraints.length; i < l; i++) { + if (eqConstraints[i](fh)) { + ret = true; + } else { + ret = false; + break; + } + } + } + return ret; + }, + + assertLeft: function (context) { + this.__addToLeftMemory(context); + this.__findMatches(context); + } + + } +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/existsNode.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/existsNode.js ***! + \***********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var NotNode = __webpack_require__(/*! ./notNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/notNode.js"), + LinkedList = __webpack_require__(/*! ../linkedList */ "./build/cht-core-4-6/node_modules/nools/lib/linkedList.js"); + + +NotNode.extend({ + instance: { + + nodeType: "ExistsNode", + + blockedContext: function (leftContext, rightContext) { + leftContext.blocker = rightContext; + this.removeFromLeftMemory(leftContext); + this.addToLeftBlockedMemory(rightContext.blocking.push(leftContext)); + this.__propagate("assert", this.__cloneContext(leftContext)); + }, + + notBlockedContext: function (leftContext, propagate) { + this.__addToLeftMemory(leftContext); + propagate && this.__propagate("retract", this.__cloneContext(leftContext)); + }, + + propagateFromLeft: function (leftContext) { + this.notBlockedContext(leftContext, false); + }, + + + retractLeft: function (context) { + var ctx; + if (!this.removeFromLeftMemory(context)) { + if ((ctx = this.removeFromLeftBlockedMemory(context))) { + this.__propagate("retract", this.__cloneContext(ctx.data)); + } else { + throw new Error(); + } + } + }, + + modifyLeft: function (context) { + var ctx = this.removeFromLeftMemory(context), + leftContext, + thisConstraint = this.constraint, + rightTuples = this.rightTuples, + l = rightTuples.length, + isBlocked = false, + node, rc, blocker; + if (!ctx) { + //blocked before + ctx = this.removeFromLeftBlockedMemory(context); + isBlocked = true; + } + if (ctx) { + leftContext = ctx.data; + + if (leftContext && leftContext.blocker) { + //we were blocked before so only check nodes previous to our blocker + blocker = this.rightMemory[leftContext.blocker.hashCode]; + } + if (blocker) { + if (thisConstraint.isMatch(context, rc = blocker.data)) { + //propogate as a modify or assert + this.__propagate(!isBlocked ? "assert" : "modify", this.__cloneContext(leftContext)); + context.blocker = rc; + this.addToLeftBlockedMemory(rc.blocking.push(context)); + context = null; + } + if (context) { + node = {next: blocker.next}; + } + } else { + node = {next: rightTuples.head}; + } + if (context && l) { + node = {next: rightTuples.head}; + //we were propagated before + while ((node = node.next)) { + if (thisConstraint.isMatch(context, rc = node.data)) { + //we cant be proagated so retract previous + + //we were asserted before so retract + this.__propagate(!isBlocked ? "assert" : "modify", this.__cloneContext(leftContext)); + + this.addToLeftBlockedMemory(rc.blocking.push(context)); + context.blocker = rc; + context = null; + break; + } + } + } + if (context) { + //we can still be propogated + this.__addToLeftMemory(context); + if (isBlocked) { + //we were blocked so retract + this.__propagate("retract", this.__cloneContext(context)); + } + + } + } else { + throw new Error(); + } + + }, + + modifyRight: function (context) { + var ctx = this.removeFromRightMemory(context); + if (ctx) { + var rightContext = ctx.data, + leftTuples = this.leftTuples, + leftTuplesLength = leftTuples.length, + leftContext, + thisConstraint = this.constraint, + node, + blocking = rightContext.blocking; + this.__addToRightMemory(context); + context.blocking = new LinkedList(); + if (leftTuplesLength || blocking.length) { + if (blocking.length) { + var rc; + //check old blocked contexts + //check if the same contexts blocked before are still blocked + var blockingNode = {next: blocking.head}; + while ((blockingNode = blockingNode.next)) { + leftContext = blockingNode.data; + leftContext.blocker = null; + if (thisConstraint.isMatch(leftContext, context)) { + leftContext.blocker = context; + this.addToLeftBlockedMemory(context.blocking.push(leftContext)); + this.__propagate("assert", this.__cloneContext(leftContext)); + leftContext = null; + } else { + //we arent blocked anymore + leftContext.blocker = null; + node = ctx; + while ((node = node.next)) { + if (thisConstraint.isMatch(leftContext, rc = node.data)) { + leftContext.blocker = rc; + this.addToLeftBlockedMemory(rc.blocking.push(leftContext)); + this.__propagate("assert", this.__cloneContext(leftContext)); + leftContext = null; + break; + } + } + if (leftContext) { + this.__addToLeftMemory(leftContext); + } + } + } + } + + if (leftTuplesLength) { + //check currently left tuples in memory + node = {next: leftTuples.head}; + while ((node = node.next)) { + leftContext = node.data; + if (thisConstraint.isMatch(leftContext, context)) { + this.__propagate("assert", this.__cloneContext(leftContext)); + this.removeFromLeftMemory(leftContext); + this.addToLeftBlockedMemory(context.blocking.push(leftContext)); + leftContext.blocker = context; + } + } + } + + + } + } else { + throw new Error(); + } + + + } + } +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNode.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNode.js ***! + \*********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var JoinNode = __webpack_require__(/*! ./joinNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/joinNode.js"), + extd = __webpack_require__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + constraint = __webpack_require__(/*! ../constraint */ "./build/cht-core-4-6/node_modules/nools/lib/constraint.js"), + EqualityConstraint = constraint.EqualityConstraint, + HashConstraint = constraint.HashConstraint, + ReferenceConstraint = constraint.ReferenceConstraint, + Context = __webpack_require__(/*! ../context */ "./build/cht-core-4-6/node_modules/nools/lib/context.js"), + isDefined = extd.isDefined, + isEmpty = extd.isEmpty, + forEach = extd.forEach, + isArray = extd.isArray; + +var DEFAULT_MATCH = { + isMatch: function () { + return false; + } +}; + +JoinNode.extend({ + instance: { + + nodeType: "FromNode", + + constructor: function (pattern, wm) { + this._super(arguments); + this.workingMemory = wm; + this.fromMemory = {}; + this.pattern = pattern; + this.type = pattern.get("constraints")[0].assert; + this.alias = pattern.get("alias"); + this.from = pattern.from.assert; + var eqConstraints = this.__equalityConstraints = []; + var vars = []; + forEach(this.constraints = this.pattern.get("constraints").slice(1), function (c) { + if (c instanceof EqualityConstraint || c instanceof ReferenceConstraint) { + eqConstraints.push(c.assert); + } else if (c instanceof HashConstraint) { + vars = vars.concat(c.get("variables")); + } + }); + this.__variables = vars; + }, + + __createMatches: function (context) { + var fh = context.factHash, o = this.from(fh); + if (isArray(o)) { + for (var i = 0, l = o.length; i < l; i++) { + this.__checkMatch(context, o[i], true); + } + } else if (isDefined(o)) { + this.__checkMatch(context, o, true); + } + }, + + __checkMatch: function (context, o, propogate) { + var newContext; + if ((newContext = this.__createMatch(context, o)).isMatch() && propogate) { + this.__propagate("assert", newContext.clone()); + } + return newContext; + }, + + __createMatch: function (lc, o) { + if (this.type(o)) { + var createdFact = this.workingMemory.getFactHandle(o, true), + createdContext, + rc = new Context(createdFact, null, null) + .set(this.alias, o), + createdFactId = createdFact.id; + var fh = rc.factHash, lcFh = lc.factHash; + for (var key in lcFh) { + fh[key] = lcFh[key]; + } + var eqConstraints = this.__equalityConstraints, vars = this.__variables, i = -1, l = eqConstraints.length; + while (++i < l) { + if (!eqConstraints[i](fh, fh)) { + createdContext = DEFAULT_MATCH; + break; + } + } + var fm = this.fromMemory[createdFactId]; + if (!fm) { + fm = this.fromMemory[createdFactId] = {}; + } + if (!createdContext) { + var prop; + i = -1; + l = vars.length; + while (++i < l) { + prop = vars[i]; + fh[prop] = o[prop]; + } + lc.fromMatches[createdFact.id] = createdContext = rc.clone(createdFact, null, lc.match.merge(rc.match)); + } + fm[lc.hashCode] = [lc, createdContext]; + return createdContext; + } + return DEFAULT_MATCH; + }, + + retractRight: function () { + throw new Error("Shouldnt have gotten here"); + }, + + removeFromFromMemory: function (context) { + var factId = context.fact.id; + var fm = this.fromMemory[factId]; + if (fm) { + var entry; + for (var i in fm) { + entry = fm[i]; + if (entry[1] === context) { + delete fm[i]; + if (isEmpty(fm)) { + delete this.fromMemory[factId]; + } + break; + } + } + } + + }, + + retractLeft: function (context) { + var ctx = this.removeFromLeftMemory(context); + if (ctx) { + ctx = ctx.data; + var fromMatches = ctx.fromMatches; + for (var i in fromMatches) { + this.removeFromFromMemory(fromMatches[i]); + this.__propagate("retract", fromMatches[i].clone()); + } + } + }, + + modifyLeft: function (context) { + var ctx = this.removeFromLeftMemory(context), newContext, i, l, factId, fact; + if (ctx) { + this.__addToLeftMemory(context); + + var leftContext = ctx.data, + fromMatches = (context.fromMatches = {}), + rightMatches = leftContext.fromMatches, + o = this.from(context.factHash); + + if (isArray(o)) { + for (i = 0, l = o.length; i < l; i++) { + newContext = this.__checkMatch(context, o[i], false); + if (newContext.isMatch()) { + factId = newContext.fact.id; + if (factId in rightMatches) { + this.__propagate("modify", newContext.clone()); + } else { + this.__propagate("assert", newContext.clone()); + } + } + } + } else if (isDefined(o)) { + newContext = this.__checkMatch(context, o, false); + if (newContext.isMatch()) { + factId = newContext.fact.id; + if (factId in rightMatches) { + this.__propagate("modify", newContext.clone()); + } else { + this.__propagate("assert", newContext.clone()); + } + } + } + for (i in rightMatches) { + if (!(i in fromMatches)) { + this.removeFromFromMemory(rightMatches[i]); + this.__propagate("retract", rightMatches[i].clone()); + } + } + } else { + this.assertLeft(context); + } + fact = context.fact; + factId = fact.id; + var fm = this.fromMemory[factId]; + this.fromMemory[factId] = {}; + if (fm) { + var lc, entry, cc, createdIsMatch, factObject = fact.object; + for (i in fm) { + entry = fm[i]; + lc = entry[0]; + cc = entry[1]; + createdIsMatch = cc.isMatch(); + if (lc.hashCode !== context.hashCode) { + newContext = this.__createMatch(lc, factObject, false); + if (createdIsMatch) { + this.__propagate("retract", cc.clone()); + } + if (newContext.isMatch()) { + this.__propagate(createdIsMatch ? "modify" : "assert", newContext.clone()); + } + + } + } + } + }, + + assertLeft: function (context) { + this.__addToLeftMemory(context); + context.fromMatches = {}; + this.__createMatches(context); + }, + + assertRight: function () { + throw new Error("Shouldnt have gotten here"); + } + + } +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNotNode.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNotNode.js ***! + \************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var JoinNode = __webpack_require__(/*! ./joinNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/joinNode.js"), + extd = __webpack_require__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + constraint = __webpack_require__(/*! ../constraint */ "./build/cht-core-4-6/node_modules/nools/lib/constraint.js"), + EqualityConstraint = constraint.EqualityConstraint, + HashConstraint = constraint.HashConstraint, + ReferenceConstraint = constraint.ReferenceConstraint, + Context = __webpack_require__(/*! ../context */ "./build/cht-core-4-6/node_modules/nools/lib/context.js"), + isDefined = extd.isDefined, + forEach = extd.forEach, + isArray = extd.isArray; + +JoinNode.extend({ + instance: { + + nodeType: "FromNotNode", + + constructor: function (pattern, workingMemory) { + this._super(arguments); + this.workingMemory = workingMemory; + this.pattern = pattern; + this.type = pattern.get("constraints")[0].assert; + this.alias = pattern.get("alias"); + this.from = pattern.from.assert; + this.fromMemory = {}; + var eqConstraints = this.__equalityConstraints = []; + var vars = []; + forEach(this.constraints = this.pattern.get("constraints").slice(1), function (c) { + if (c instanceof EqualityConstraint || c instanceof ReferenceConstraint) { + eqConstraints.push(c.assert); + } else if (c instanceof HashConstraint) { + vars = vars.concat(c.get("variables")); + } + }); + this.__variables = vars; + + }, + + retractLeft: function (context) { + var ctx = this.removeFromLeftMemory(context); + if (ctx) { + ctx = ctx.data; + if (!ctx.blocked) { + this.__propagate("retract", ctx.clone()); + } + } + }, + + __modify: function (context, leftContext) { + var leftContextBlocked = leftContext.blocked; + var fh = context.factHash, o = this.from(fh); + if (isArray(o)) { + for (var i = 0, l = o.length; i < l; i++) { + if (this.__isMatch(context, o[i], true)) { + context.blocked = true; + break; + } + } + } else if (isDefined(o)) { + context.blocked = this.__isMatch(context, o, true); + } + var newContextBlocked = context.blocked; + if (!newContextBlocked) { + if (leftContextBlocked) { + this.__propagate("assert", context.clone()); + } else { + this.__propagate("modify", context.clone()); + } + } else if (!leftContextBlocked) { + this.__propagate("retract", leftContext.clone()); + } + + }, + + modifyLeft: function (context) { + var ctx = this.removeFromLeftMemory(context); + if (ctx) { + this.__addToLeftMemory(context); + this.__modify(context, ctx.data); + } else { + throw new Error(); + } + var fm = this.fromMemory[context.fact.id]; + this.fromMemory[context.fact.id] = {}; + if (fm) { + for (var i in fm) { + // update any contexts associated with this fact + if (i !== context.hashCode) { + var lc = fm[i]; + ctx = this.removeFromLeftMemory(lc); + if (ctx) { + lc = lc.clone(); + lc.blocked = false; + this.__addToLeftMemory(lc); + this.__modify(lc, ctx.data); + } + } + } + } + }, + + __findMatches: function (context) { + var fh = context.factHash, o = this.from(fh), isMatch = false; + if (isArray(o)) { + for (var i = 0, l = o.length; i < l; i++) { + if (this.__isMatch(context, o[i], true)) { + context.blocked = true; + return; + } + } + this.__propagate("assert", context.clone()); + } else if (isDefined(o) && !(context.blocked = this.__isMatch(context, o, true))) { + this.__propagate("assert", context.clone()); + } + return isMatch; + }, + + __isMatch: function (oc, o, add) { + var ret = false; + if (this.type(o)) { + var createdFact = this.workingMemory.getFactHandle(o); + var context = new Context(createdFact, null) + .mergeMatch(oc.match) + .set(this.alias, o); + if (add) { + var fm = this.fromMemory[createdFact.id]; + if (!fm) { + fm = this.fromMemory[createdFact.id] = {}; + } + fm[oc.hashCode] = oc; + } + var fh = context.factHash; + var eqConstraints = this.__equalityConstraints; + for (var i = 0, l = eqConstraints.length; i < l; i++) { + if (eqConstraints[i](fh, fh)) { + ret = true; + } else { + ret = false; + break; + } + } + } + return ret; + }, + + assertLeft: function (context) { + this.__addToLeftMemory(context); + this.__findMatches(context); + }, + + assertRight: function () { + throw new Error("Shouldnt have gotten here"); + }, + + retractRight: function () { + throw new Error("Shouldnt have gotten here"); + } + + } +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/index.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/index.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +var extd = __webpack_require__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + forEach = extd.forEach, + some = extd.some, + declare = extd.declare, + pattern = __webpack_require__(/*! ../pattern.js */ "./build/cht-core-4-6/node_modules/nools/lib/pattern.js"), + ObjectPattern = pattern.ObjectPattern, + FromPattern = pattern.FromPattern, + FromNotPattern = pattern.FromNotPattern, + ExistsPattern = pattern.ExistsPattern, + FromExistsPattern = pattern.FromExistsPattern, + NotPattern = pattern.NotPattern, + CompositePattern = pattern.CompositePattern, + InitialFactPattern = pattern.InitialFactPattern, + constraints = __webpack_require__(/*! ../constraint */ "./build/cht-core-4-6/node_modules/nools/lib/constraint.js"), + HashConstraint = constraints.HashConstraint, + ReferenceConstraint = constraints.ReferenceConstraint, + AliasNode = __webpack_require__(/*! ./aliasNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/aliasNode.js"), + EqualityNode = __webpack_require__(/*! ./equalityNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/equalityNode.js"), + JoinNode = __webpack_require__(/*! ./joinNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/joinNode.js"), + BetaNode = __webpack_require__(/*! ./betaNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/betaNode.js"), + NotNode = __webpack_require__(/*! ./notNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/notNode.js"), + FromNode = __webpack_require__(/*! ./fromNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNode.js"), + FromNotNode = __webpack_require__(/*! ./fromNotNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNotNode.js"), + ExistsNode = __webpack_require__(/*! ./existsNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/existsNode.js"), + ExistsFromNode = __webpack_require__(/*! ./existsFromNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/existsFromNode.js"), + LeftAdapterNode = __webpack_require__(/*! ./leftAdapterNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/leftAdapterNode.js"), + RightAdapterNode = __webpack_require__(/*! ./rightAdapterNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/rightAdapterNode.js"), + TypeNode = __webpack_require__(/*! ./typeNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/typeNode.js"), + TerminalNode = __webpack_require__(/*! ./terminalNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/terminalNode.js"), + PropertyNode = __webpack_require__(/*! ./propertyNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/propertyNode.js"); + +function hasRefernceConstraints(pattern) { + return some(pattern.constraints || [], function (c) { + return c instanceof ReferenceConstraint; + }); +} + +declare({ + instance: { + constructor: function (wm, agendaTree) { + this.terminalNodes = []; + this.joinNodes = []; + this.nodes = []; + this.constraints = []; + this.typeNodes = []; + this.__ruleCount = 0; + this.bucket = { + counter: 0, + recency: 0 + }; + this.agendaTree = agendaTree; + this.workingMemory = wm; + }, + + assertRule: function (rule) { + var terminalNode = new TerminalNode(this.bucket, this.__ruleCount++, rule, this.agendaTree); + this.__addToNetwork(rule, rule.pattern, terminalNode); + this.__mergeJoinNodes(); + this.terminalNodes.push(terminalNode); + }, + + resetCounter: function () { + this.bucket.counter = 0; + }, + + incrementCounter: function () { + this.bucket.counter++; + }, + + assertFact: function (fact) { + var typeNodes = this.typeNodes, i = typeNodes.length - 1; + for (; i >= 0; i--) { + typeNodes[i].assert(fact); + } + }, + + retractFact: function (fact) { + var typeNodes = this.typeNodes, i = typeNodes.length - 1; + for (; i >= 0; i--) { + typeNodes[i].retract(fact); + } + }, + + modifyFact: function (fact) { + var typeNodes = this.typeNodes, i = typeNodes.length - 1; + for (; i >= 0; i--) { + typeNodes[i].modify(fact); + } + }, + + + containsRule: function (name) { + return some(this.terminalNodes, function (n) { + return n.rule.name === name; + }); + }, + + dispose: function () { + var typeNodes = this.typeNodes, i = typeNodes.length - 1; + for (; i >= 0; i--) { + typeNodes[i].dispose(); + } + }, + + __mergeJoinNodes: function () { + var joinNodes = this.joinNodes; + for (var i = 0; i < joinNodes.length; i++) { + var j1 = joinNodes[i], j2 = joinNodes[i + 1]; + if (j1 && j2 && (j1.constraint && j2.constraint && j1.constraint.equal(j2.constraint))) { + j1.merge(j2); + joinNodes.splice(i + 1, 1); + } + } + }, + + __checkEqual: function (node) { + var constraints = this.constraints, i = constraints.length - 1; + for (; i >= 0; i--) { + var n = constraints[i]; + if (node.equal(n)) { + return n; + } + } + constraints.push(node); + return node; + }, + + __createTypeNode: function (rule, pattern) { + var ret = new TypeNode(pattern.get("constraints")[0]); + var constraints = this.typeNodes, i = constraints.length - 1; + for (; i >= 0; i--) { + var n = constraints[i]; + if (ret.equal(n)) { + return n; + } + } + constraints.push(ret); + return ret; + }, + + __createEqualityNode: function (rule, constraint) { + return this.__checkEqual(new EqualityNode(constraint)).addRule(rule); + }, + + __createPropertyNode: function (rule, constraint) { + return this.__checkEqual(new PropertyNode(constraint)).addRule(rule); + }, + + __createAliasNode: function (rule, pattern) { + return this.__checkEqual(new AliasNode(pattern)).addRule(rule); + }, + + __createAdapterNode: function (rule, side) { + return (side === "left" ? new LeftAdapterNode() : new RightAdapterNode()).addRule(rule); + }, + + __createJoinNode: function (rule, pattern, outNode, side) { + var joinNode; + if (pattern.rightPattern instanceof NotPattern) { + joinNode = new NotNode(); + } else if (pattern.rightPattern instanceof FromExistsPattern) { + joinNode = new ExistsFromNode(pattern.rightPattern, this.workingMemory); + } else if (pattern.rightPattern instanceof ExistsPattern) { + joinNode = new ExistsNode(); + } else if (pattern.rightPattern instanceof FromNotPattern) { + joinNode = new FromNotNode(pattern.rightPattern, this.workingMemory); + } else if (pattern.rightPattern instanceof FromPattern) { + joinNode = new FromNode(pattern.rightPattern, this.workingMemory); + } else if (pattern instanceof CompositePattern && !hasRefernceConstraints(pattern.leftPattern) && !hasRefernceConstraints(pattern.rightPattern)) { + joinNode = new BetaNode(); + this.joinNodes.push(joinNode); + } else { + joinNode = new JoinNode(); + this.joinNodes.push(joinNode); + } + joinNode["__rule__"] = rule; + var parentNode = joinNode; + if (outNode instanceof BetaNode) { + var adapterNode = this.__createAdapterNode(rule, side); + parentNode.addOutNode(adapterNode, pattern); + parentNode = adapterNode; + } + parentNode.addOutNode(outNode, pattern); + return joinNode.addRule(rule); + }, + + __addToNetwork: function (rule, pattern, outNode, side) { + if (pattern instanceof ObjectPattern) { + if (!(pattern instanceof InitialFactPattern) && (!side || side === "left")) { + this.__createBetaNode(rule, new CompositePattern(new InitialFactPattern(), pattern), outNode, side); + } else { + this.__createAlphaNode(rule, pattern, outNode, side); + } + } else if (pattern instanceof CompositePattern) { + this.__createBetaNode(rule, pattern, outNode, side); + } + }, + + __createBetaNode: function (rule, pattern, outNode, side) { + var joinNode = this.__createJoinNode(rule, pattern, outNode, side); + this.__addToNetwork(rule, pattern.rightPattern, joinNode, "right"); + this.__addToNetwork(rule, pattern.leftPattern, joinNode, "left"); + outNode.addParentNode(joinNode); + return joinNode; + }, + + + __createAlphaNode: function (rule, pattern, outNode, side) { + var typeNode, parentNode; + if (!(pattern instanceof FromPattern)) { + + var constraints = pattern.get("constraints"); + typeNode = this.__createTypeNode(rule, pattern); + var aliasNode = this.__createAliasNode(rule, pattern); + typeNode.addOutNode(aliasNode, pattern); + aliasNode.addParentNode(typeNode); + parentNode = aliasNode; + var i = constraints.length - 1; + for (; i > 0; i--) { + var constraint = constraints[i], node; + if (constraint instanceof HashConstraint) { + node = this.__createPropertyNode(rule, constraint); + } else if (constraint instanceof ReferenceConstraint) { + outNode.constraint.addConstraint(constraint); + continue; + } else { + node = this.__createEqualityNode(rule, constraint); + } + parentNode.addOutNode(node, pattern); + node.addParentNode(parentNode); + parentNode = node; + } + + if (outNode instanceof BetaNode) { + var adapterNode = this.__createAdapterNode(rule, side); + adapterNode.addParentNode(parentNode); + parentNode.addOutNode(adapterNode, pattern); + parentNode = adapterNode; + } + outNode.addParentNode(parentNode); + parentNode.addOutNode(outNode, pattern); + return typeNode; + } + }, + + print: function () { + forEach(this.terminalNodes, function (t) { + t.print(" "); + }); + } + } +}).as(exports, "RootNode"); + + + + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/joinNode.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/joinNode.js ***! + \*********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var BetaNode = __webpack_require__(/*! ./betaNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/betaNode.js"), + JoinReferenceNode = __webpack_require__(/*! ./joinReferenceNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/joinReferenceNode.js"); + +BetaNode.extend({ + + instance: { + constructor: function () { + this._super(arguments); + this.constraint = new JoinReferenceNode(this.leftTuples, this.rightTuples); + }, + + nodeType: "JoinNode", + + propagateFromLeft: function (context, rm) { + var mr; + if ((mr = this.constraint.match(context, rm)).isMatch) { + this.__propagate("assert", this.__addToMemoryMatches(rm, context, context.clone(null, null, mr))); + } + return this; + }, + + propagateFromRight: function (context, lm) { + var mr; + if ((mr = this.constraint.match(lm, context)).isMatch) { + this.__propagate("assert", this.__addToMemoryMatches(context, lm, context.clone(null, null, mr))); + } + return this; + }, + + propagateAssertModifyFromLeft: function (context, rightMatches, rm) { + var factId = rm.hashCode, mr; + if (factId in rightMatches) { + mr = this.constraint.match(context, rm); + var mrIsMatch = mr.isMatch; + if (!mrIsMatch) { + this.__propagate("retract", rightMatches[factId].clone()); + } else { + this.__propagate("modify", this.__addToMemoryMatches(rm, context, context.clone(null, null, mr))); + } + } else { + this.propagateFromLeft(context, rm); + } + }, + + propagateAssertModifyFromRight: function (context, leftMatches, lm) { + var factId = lm.hashCode, mr; + if (factId in leftMatches) { + mr = this.constraint.match(lm, context); + var mrIsMatch = mr.isMatch; + if (!mrIsMatch) { + this.__propagate("retract", leftMatches[factId].clone()); + } else { + this.__propagate("modify", this.__addToMemoryMatches(context, lm, context.clone(null, null, mr))); + } + } else { + this.propagateFromRight(context, lm); + } + } + } + +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/joinReferenceNode.js": +/*!******************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/joinReferenceNode.js ***! + \******************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var Node = __webpack_require__(/*! ./node */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js"), + constraints = __webpack_require__(/*! ../constraint */ "./build/cht-core-4-6/node_modules/nools/lib/constraint.js"), + ReferenceEqualityConstraint = constraints.ReferenceEqualityConstraint; + +var DEFUALT_CONSTRAINT = { + isDefault: true, + assert: function () { + return true; + }, + + equal: function () { + return false; + } +}; + +var inversions = { + "gt": "lte", + "gte": "lte", + "lt": "gte", + "lte": "gte", + "eq": "eq", + "neq": "neq" +}; + +function normalizeRightIndexConstraint(rightIndex, indexes, op) { + if (rightIndex === indexes[1]) { + op = inversions[op]; + } + return op; +} + +function normalizeLeftIndexConstraint(leftIndex, indexes, op) { + if (leftIndex === indexes[1]) { + op = inversions[op]; + } + return op; +} + +Node.extend({ + + instance: { + + constraint: DEFUALT_CONSTRAINT, + + constructor: function (leftMemory, rightMemory) { + this._super(arguments); + this.constraint = DEFUALT_CONSTRAINT; + this.constraintAssert = DEFUALT_CONSTRAINT.assert; + this.rightIndexes = []; + this.leftIndexes = []; + this.constraintLength = 0; + this.leftMemory = leftMemory; + this.rightMemory = rightMemory; + }, + + addConstraint: function (constraint) { + if (constraint instanceof ReferenceEqualityConstraint) { + var identifiers = constraint.getIndexableProperties(); + var alias = constraint.get("alias"); + if (identifiers.length === 2 && alias) { + var leftIndex, rightIndex, i = -1, indexes = []; + while (++i < 2) { + var index = identifiers[i]; + if (index.match(new RegExp("^" + alias + "(\\.?)")) === null) { + indexes.push(index); + leftIndex = index; + } else { + indexes.push(index); + rightIndex = index; + } + } + if (leftIndex && rightIndex) { + var leftOp = normalizeLeftIndexConstraint(leftIndex, indexes, constraint.op), + rightOp = normalizeRightIndexConstraint(rightIndex, indexes, constraint.op); + this.rightMemory.addIndex(rightIndex, leftIndex, rightOp); + this.leftMemory.addIndex(leftIndex, rightIndex, leftOp); + } + } + } + if (this.constraint.isDefault) { + this.constraint = constraint; + this.isDefault = false; + } else { + this.constraint = this.constraint.merge(constraint); + } + this.constraintAssert = this.constraint.assert; + + }, + + equal: function (constraint) { + return this.constraint.equal(constraint.constraint); + }, + + isMatch: function (lc, rc) { + return this.constraintAssert(lc.factHash, rc.factHash); + }, + + match: function (lc, rc) { + var ret = {isMatch: false}; + if (this.constraintAssert(lc.factHash, rc.factHash)) { + ret = lc.match.merge(rc.match); + } + return ret; + } + + } + +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/leftAdapterNode.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/leftAdapterNode.js ***! + \****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var Node = __webpack_require__(/*! ./adapterNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/adapterNode.js"); + +Node.extend({ + instance: { + propagateAssert: function (context) { + this.__propagate("assertLeft", context); + }, + + propagateRetract: function (context) { + this.__propagate("retractLeft", context); + }, + + propagateResolve: function (context) { + this.__propagate("retractResolve", context); + }, + + propagateModify: function (context) { + this.__propagate("modifyLeft", context); + }, + + retractResolve: function (match) { + this.__propagate("retractResolve", match); + }, + + dispose: function (context) { + this.propagateDispose(context); + }, + + toString: function () { + return "LeftAdapterNode " + this.__count; + } + } + +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/helpers.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/helpers.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +exports.getMemory = (function () { + + var pPush = Array.prototype.push, NPL = 0, EMPTY_ARRAY = [], NOT_POSSIBLES_HASH = {}, POSSIBLES_HASH = {}, PL = 0; + + function mergePossibleTuples(ret, a, l) { + var val, j = 0, i = -1; + if (PL < l) { + while (PL && ++i < l) { + if (POSSIBLES_HASH[(val = a[i]).hashCode]) { + ret[j++] = val; + PL--; + } + } + } else { + pPush.apply(ret, a); + } + PL = 0; + POSSIBLES_HASH = {}; + } + + + function mergeNotPossibleTuples(ret, a, l) { + var val, j = 0, i = -1; + if (NPL < l) { + while (++i < l) { + if (!NPL) { + ret[j++] = a[i]; + } else if (!NOT_POSSIBLES_HASH[(val = a[i]).hashCode]) { + ret[j++] = val; + } else { + NPL--; + } + } + } + NPL = 0; + NOT_POSSIBLES_HASH = {}; + } + + function mergeBothTuples(ret, a, l) { + if (PL === l) { + mergeNotPossibles(ret, a, l); + } else if (NPL < l) { + var val, j = 0, i = -1, hashCode; + while (++i < l) { + if (!NOT_POSSIBLES_HASH[(hashCode = (val = a[i]).hashCode)] && POSSIBLES_HASH[hashCode]) { + ret[j++] = val; + } + } + } + NPL = 0; + NOT_POSSIBLES_HASH = {}; + PL = 0; + POSSIBLES_HASH = {}; + } + + function mergePossiblesAndNotPossibles(a, l) { + var ret = EMPTY_ARRAY; + if (l) { + if (NPL || PL) { + ret = []; + if (!NPL) { + mergePossibleTuples(ret, a, l); + } else if (!PL) { + mergeNotPossibleTuples(ret, a, l); + } else { + mergeBothTuples(ret, a, l); + } + } else { + ret = a; + } + } + return ret; + } + + function getRangeTuples(op, currEntry, val) { + var ret; + if (op === "gt") { + ret = currEntry.findGT(val); + } else if (op === "gte") { + ret = currEntry.findGTE(val); + } else if (op === "lt") { + ret = currEntry.findLT(val); + } else if (op === "lte") { + ret = currEntry.findLTE(val); + } + return ret; + } + + function mergeNotPossibles(tuples, tl) { + if (tl) { + var j = -1, hashCode; + while (++j < tl) { + hashCode = tuples[j].hashCode; + if (!NOT_POSSIBLES_HASH[hashCode]) { + NOT_POSSIBLES_HASH[hashCode] = true; + NPL++; + } + } + } + } + + function mergePossibles(tuples, tl) { + if (tl) { + var j = -1, hashCode; + while (++j < tl) { + hashCode = tuples[j].hashCode; + if (!POSSIBLES_HASH[hashCode]) { + POSSIBLES_HASH[hashCode] = true; + PL++; + } + } + } + } + + return function _getMemory(entry, factHash, indexes) { + var i = -1, l = indexes.length, + ret = entry.tuples, + rl = ret.length, + intersected = false, + tables = entry.tables, + index, val, op, nextEntry, currEntry, tuples, tl; + while (++i < l && rl) { + index = indexes[i]; + val = index[3](factHash); + op = index[4]; + currEntry = tables[index[0]]; + if (op === "eq" || op === "seq") { + if ((nextEntry = currEntry.get(val))) { + rl = (ret = (entry = nextEntry).tuples).length; + tables = nextEntry.tables; + } else { + rl = (ret = EMPTY_ARRAY).length; + } + } else if (op === "neq" || op === "sneq") { + if ((nextEntry = currEntry.get(val))) { + tl = (tuples = nextEntry.tuples).length; + mergeNotPossibles(tuples, tl); + } + } else if (!intersected) { + rl = (ret = getRangeTuples(op, currEntry, val)).length; + intersected = true; + } else if ((tl = (tuples = getRangeTuples(op, currEntry, val)).length)) { + mergePossibles(tuples, tl); + } else { + ret = tuples; + rl = tl; + } + } + return mergePossiblesAndNotPossibles(ret, rl); + }; +}()); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/leftMemory.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/leftMemory.js ***! + \****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var Memory = __webpack_require__(/*! ./memory */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/memory.js"); + +Memory.extend({ + + instance: { + + getLeftMemory: function (tuple) { + return this.getMemory(tuple); + } + } + +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/memory.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/memory.js ***! + \************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var extd = __webpack_require__(/*! ../../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + plucker = extd.plucker, + declare = extd.declare, + getMemory = __webpack_require__(/*! ./helpers */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/helpers.js").getMemory, + Table = __webpack_require__(/*! ./table */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/table.js"), + TupleEntry = __webpack_require__(/*! ./tupleEntry */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/tupleEntry.js"); + + +var id = 0; +declare({ + + instance: { + length: 0, + + constructor: function () { + this.head = null; + this.tail = null; + this.indexes = []; + this.tables = new TupleEntry(null, new Table(), false); + }, + + push: function (data) { + var tail = this.tail, head = this.head, node = {data: data, tuples: [], hashCode: id++, prev: tail, next: null}; + if (tail) { + this.tail.next = node; + } + this.tail = node; + if (!head) { + this.head = node; + } + this.length++; + this.__index(node); + this.tables.addNode(node); + return node; + }, + + remove: function (node) { + if (node.prev) { + node.prev.next = node.next; + } else { + this.head = node.next; + } + if (node.next) { + node.next.prev = node.prev; + } else { + this.tail = node.prev; + } + this.tables.removeNode(node); + this.__removeFromIndex(node); + this.length--; + }, + + forEach: function (cb) { + var head = {next: this.head}; + while ((head = head.next)) { + cb(head.data); + } + }, + + toArray: function () { + return this.tables.tuples.slice(); + }, + + clear: function () { + this.head = this.tail = null; + this.length = 0; + this.clearIndexes(); + }, + + clearIndexes: function () { + this.tables = {}; + this.indexes.length = 0; + }, + + __index: function (node) { + var data = node.data, + factHash = data.factHash, + indexes = this.indexes, + entry = this.tables, + i = -1, l = indexes.length, + tuples, index, val, path, tables, currEntry, prevLookup; + while (++i < l) { + index = indexes[i]; + val = index[2](factHash); + path = index[0]; + tables = entry.tables; + if (!(tuples = (currEntry = tables[path] || (tables[path] = new Table())).get(val))) { + tuples = new TupleEntry(val, currEntry, true); + currEntry.set(val, tuples); + } + if (currEntry !== prevLookup) { + node.tuples.push(tuples.addNode(node)); + } + prevLookup = currEntry; + if (index[4] === "eq") { + entry = tuples; + } + } + }, + + __removeFromIndex: function (node) { + var tuples = node.tuples, i = tuples.length; + while (--i >= 0) { + tuples[i].removeNode(node); + } + node.tuples.length = 0; + }, + + getMemory: function (tuple) { + var ret; + if (!this.length) { + ret = []; + } else { + ret = getMemory(this.tables, tuple.factHash, this.indexes); + } + return ret; + }, + + __createIndexTree: function () { + var table = this.tables.tables = {}; + var indexes = this.indexes; + table[indexes[0][0]] = new Table(); + }, + + + addIndex: function (primary, lookup, op) { + this.indexes.push([primary, lookup, plucker(primary), plucker(lookup), op || "eq"]); + this.indexes.sort(function (a, b) { + var aOp = a[4], bOp = b[4]; + return aOp === bOp ? 0 : aOp > bOp ? 1 : aOp === bOp ? 0 : -1; + }); + this.__createIndexTree(); + + } + + } + +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/rightMemory.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/rightMemory.js ***! + \*****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var Memory = __webpack_require__(/*! ./memory */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/memory.js"); + +Memory.extend({ + + instance: { + + getRightMemory: function (tuple) { + return this.getMemory(tuple); + } + } + +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/table.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/table.js ***! + \***********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var extd = __webpack_require__(/*! ../../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + pPush = Array.prototype.push, + HashTable = extd.HashTable, + AVLTree = extd.AVLTree; + +function compare(a, b) { + /*jshint eqeqeq: false*/ + a = a.key; + b = b.key; + var ret; + if (a == b) { + ret = 0; + } else if (a > b) { + ret = 1; + } else if (a < b) { + ret = -1; + } else { + ret = 1; + } + return ret; +} + +function compareGT(v1, v2) { + return compare(v1, v2) === 1; +} +function compareGTE(v1, v2) { + return compare(v1, v2) !== -1; +} + +function compareLT(v1, v2) { + return compare(v1, v2) === -1; +} +function compareLTE(v1, v2) { + return compare(v1, v2) !== 1; +} + +var STACK = [], + VALUE = {key: null}; +function traverseInOrder(tree, key, comparator) { + VALUE.key = key; + var ret = []; + var i = 0, current = tree.__root, v; + while (true) { + if (current) { + current = (STACK[i++] = current).left; + } else { + if (i > 0) { + v = (current = STACK[--i]).data; + if (comparator(v, VALUE)) { + pPush.apply(ret, v.value.tuples); + current = current.right; + } else { + break; + } + } else { + break; + } + } + } + STACK.length = 0; + return ret; +} + +function traverseReverseOrder(tree, key, comparator) { + VALUE.key = key; + var ret = []; + var i = 0, current = tree.__root, v; + while (true) { + if (current) { + current = (STACK[i++] = current).right; + } else { + if (i > 0) { + v = (current = STACK[--i]).data; + if (comparator(v, VALUE)) { + pPush.apply(ret, v.value.tuples); + current = current.left; + } else { + break; + } + } else { + break; + } + } + } + STACK.length = 0; + return ret; +} + +AVLTree.extend({ + instance: { + + constructor: function () { + this._super([ + { + compare: compare + } + ]); + this.gtCache = new HashTable(); + this.gteCache = new HashTable(); + this.ltCache = new HashTable(); + this.lteCache = new HashTable(); + this.hasGTCache = false; + this.hasGTECache = false; + this.hasLTCache = false; + this.hasLTECache = false; + }, + + clearCache: function () { + this.hasGTCache && this.gtCache.clear() && (this.hasGTCache = false); + this.hasGTECache && this.gteCache.clear() && (this.hasGTECache = false); + this.hasLTCache && this.ltCache.clear() && (this.hasLTCache = false); + this.hasLTECache && this.lteCache.clear() && (this.hasLTECache = false); + }, + + contains: function (key) { + return this._super([ + {key: key} + ]); + }, + + "set": function (key, value) { + this.insert({key: key, value: value}); + this.clearCache(); + }, + + "get": function (key) { + var ret = this.find({key: key}); + return ret && ret.value; + }, + + "remove": function (key) { + this.clearCache(); + return this._super([ + {key: key} + ]); + }, + + findGT: function (key) { + var ret = this.gtCache.get(key); + if (!ret) { + this.hasGTCache = true; + this.gtCache.put(key, (ret = traverseReverseOrder(this, key, compareGT))); + } + return ret; + }, + + findGTE: function (key) { + var ret = this.gteCache.get(key); + if (!ret) { + this.hasGTECache = true; + this.gteCache.put(key, (ret = traverseReverseOrder(this, key, compareGTE))); + } + return ret; + }, + + findLT: function (key) { + var ret = this.ltCache.get(key); + if (!ret) { + this.hasLTCache = true; + this.ltCache.put(key, (ret = traverseInOrder(this, key, compareLT))); + } + return ret; + }, + + findLTE: function (key) { + var ret = this.lteCache.get(key); + if (!ret) { + this.hasLTECache = true; + this.lteCache.put(key, (ret = traverseInOrder(this, key, compareLTE))); + } + return ret; + } + + } +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/tupleEntry.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/tupleEntry.js ***! + \****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var extd = __webpack_require__(/*! ../../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + indexOf = extd.indexOf; +// HashSet = require("./hashSet"); + + +var TUPLE_ID = 0; +extd.declare({ + + instance: { + tuples: null, + tupleMap: null, + hashCode: null, + tables: null, + entry: null, + constructor: function (val, entry, canRemove) { + this.val = val; + this.canRemove = canRemove; + this.tuples = []; + this.tupleMap = {}; + this.hashCode = TUPLE_ID++; + this.tables = {}; + this.length = 0; + this.entry = entry; + }, + + addNode: function (node) { + this.tuples[this.length++] = node; + if (this.length > 1) { + this.entry.clearCache(); + } + return this; + }, + + removeNode: function (node) { + var tuples = this.tuples, index = indexOf(tuples, node); + if (index !== -1) { + tuples.splice(index, 1); + this.length--; + this.entry.clearCache(); + } + if (this.canRemove && !this.length) { + this.entry.remove(this.val); + } + } + } +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var extd = __webpack_require__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + forEach = extd.forEach, + indexOf = extd.indexOf, + intersection = extd.intersection, + declare = extd.declare, + HashTable = extd.HashTable, + Context = __webpack_require__(/*! ../context */ "./build/cht-core-4-6/node_modules/nools/lib/context.js"); + +var count = 0; +declare({ + instance: { + constructor: function () { + this.nodes = new HashTable(); + this.rules = []; + this.parentNodes = []; + this.__count = count++; + this.__entrySet = []; + }, + + addRule: function (rule) { + if (indexOf(this.rules, rule) === -1) { + this.rules.push(rule); + } + return this; + }, + + merge: function (that) { + that.nodes.forEach(function (entry) { + var patterns = entry.value, node = entry.key; + for (var i = 0, l = patterns.length; i < l; i++) { + this.addOutNode(node, patterns[i]); + } + that.nodes.remove(node); + }, this); + var thatParentNodes = that.parentNodes; + for (var i = 0, l = that.parentNodes.l; i < l; i++) { + var parentNode = thatParentNodes[i]; + this.addParentNode(parentNode); + parentNode.nodes.remove(that); + } + return this; + }, + + resolve: function (mr1, mr2) { + return mr1.hashCode === mr2.hashCode; + }, + + print: function (tab) { + console.log(tab + this.toString()); + forEach(this.parentNodes, function (n) { + n.print(" " + tab); + }); + }, + + addOutNode: function (outNode, pattern) { + if (!this.nodes.contains(outNode)) { + this.nodes.put(outNode, []); + } + this.nodes.get(outNode).push(pattern); + this.__entrySet = this.nodes.entrySet(); + }, + + addParentNode: function (n) { + if (indexOf(this.parentNodes, n) === -1) { + this.parentNodes.push(n); + } + }, + + shareable: function () { + return false; + }, + + __propagate: function (method, context) { + var entrySet = this.__entrySet, i = entrySet.length, entry, outNode, paths, continuingPaths; + while (--i > -1) { + entry = entrySet[i]; + outNode = entry.key; + paths = entry.value; + + if ((continuingPaths = intersection(paths, context.paths)).length) { + outNode[method](new Context(context.fact, continuingPaths, context.match)); + } + + } + }, + + dispose: function (assertable) { + this.propagateDispose(assertable); + }, + + retract: function (assertable) { + this.propagateRetract(assertable); + }, + + propagateDispose: function (assertable, outNodes) { + outNodes = outNodes || this.nodes; + var entrySet = this.__entrySet, i = entrySet.length - 1; + for (; i >= 0; i--) { + var entry = entrySet[i], outNode = entry.key; + outNode.dispose(assertable); + } + }, + + propagateAssert: function (assertable) { + this.__propagate("assert", assertable); + }, + + propagateRetract: function (assertable) { + this.__propagate("retract", assertable); + }, + + assert: function (assertable) { + this.propagateAssert(assertable); + }, + + modify: function (assertable) { + this.propagateModify(assertable); + }, + + propagateModify: function (assertable) { + this.__propagate("modify", assertable); + } + } + +}).as(module); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/notNode.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/notNode.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var JoinNode = __webpack_require__(/*! ./joinNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/joinNode.js"), + LinkedList = __webpack_require__(/*! ../linkedList */ "./build/cht-core-4-6/node_modules/nools/lib/linkedList.js"), + Context = __webpack_require__(/*! ../context */ "./build/cht-core-4-6/node_modules/nools/lib/context.js"), + InitialFact = __webpack_require__(/*! ../pattern */ "./build/cht-core-4-6/node_modules/nools/lib/pattern.js").InitialFact; + + +JoinNode.extend({ + instance: { + + nodeType: "NotNode", + + constructor: function () { + this._super(arguments); + this.leftTupleMemory = {}; + //use this ensure a unique match for and propagated context. + this.notMatch = new Context(new InitialFact()).match; + }, + + __cloneContext: function (context) { + return context.clone(null, null, context.match.merge(this.notMatch)); + }, + + + retractRight: function (context) { + var ctx = this.removeFromRightMemory(context), + rightContext = ctx.data, + blocking = rightContext.blocking; + if (blocking.length) { + //if we are blocking left contexts + var leftContext, thisConstraint = this.constraint, blockingNode = {next: blocking.head}, rc; + while ((blockingNode = blockingNode.next)) { + leftContext = blockingNode.data; + this.removeFromLeftBlockedMemory(leftContext); + var rm = this.rightTuples.getRightMemory(leftContext), l = rm.length, i; + i = -1; + while (++i < l) { + if (thisConstraint.isMatch(leftContext, rc = rm[i].data)) { + this.blockedContext(leftContext, rc); + leftContext = null; + break; + } + } + if (leftContext) { + this.notBlockedContext(leftContext, true); + } + } + blocking.clear(); + } + + }, + + blockedContext: function (leftContext, rightContext, propagate) { + leftContext.blocker = rightContext; + this.removeFromLeftMemory(leftContext); + this.addToLeftBlockedMemory(rightContext.blocking.push(leftContext)); + propagate && this.__propagate("retract", this.__cloneContext(leftContext)); + }, + + notBlockedContext: function (leftContext, propagate) { + this.__addToLeftMemory(leftContext); + propagate && this.__propagate("assert", this.__cloneContext(leftContext)); + }, + + propagateFromLeft: function (leftContext) { + this.notBlockedContext(leftContext, true); + }, + + propagateFromRight: function (leftContext) { + this.notBlockedContext(leftContext, true); + }, + + blockFromAssertRight: function (leftContext, rightContext) { + this.blockedContext(leftContext, rightContext, true); + }, + + blockFromAssertLeft: function (leftContext, rightContext) { + this.blockedContext(leftContext, rightContext, false); + }, + + + retractLeft: function (context) { + var ctx = this.removeFromLeftMemory(context); + if (ctx) { + ctx = ctx.data; + this.__propagate("retract", this.__cloneContext(ctx)); + } else { + if (!this.removeFromLeftBlockedMemory(context)) { + throw new Error(); + } + } + }, + + assertLeft: function (context) { + var values = this.rightTuples.getRightMemory(context), + thisConstraint = this.constraint, rc, i = -1, l = values.length; + while (++i < l) { + if (thisConstraint.isMatch(context, rc = values[i].data)) { + this.blockFromAssertLeft(context, rc); + context = null; + i = l; + } + } + if (context) { + this.propagateFromLeft(context); + } + }, + + assertRight: function (context) { + this.__addToRightMemory(context); + context.blocking = new LinkedList(); + var fl = this.leftTuples.getLeftMemory(context).slice(), + i = -1, l = fl.length, + leftContext, thisConstraint = this.constraint; + while (++i < l) { + leftContext = fl[i].data; + if (thisConstraint.isMatch(leftContext, context)) { + this.blockFromAssertRight(leftContext, context); + } + } + }, + + addToLeftBlockedMemory: function (context) { + var data = context.data, hashCode = data.hashCode; + var ctx = this.leftMemory[hashCode]; + this.leftTupleMemory[hashCode] = context; + if (ctx) { + this.leftTuples.remove(ctx); + } + return this; + }, + + removeFromLeftBlockedMemory: function (context) { + var ret = this.leftTupleMemory[context.hashCode] || null; + if (ret) { + delete this.leftTupleMemory[context.hashCode]; + ret.data.blocker.blocking.remove(ret); + } + return ret; + }, + + modifyLeft: function (context) { + var ctx = this.removeFromLeftMemory(context), + leftContext, + thisConstraint = this.constraint, + rightTuples = this.rightTuples.getRightMemory(context), + l = rightTuples.length, + isBlocked = false, + i, rc, blocker; + if (!ctx) { + //blocked before + ctx = this.removeFromLeftBlockedMemory(context); + isBlocked = true; + } + if (ctx) { + leftContext = ctx.data; + + if (leftContext && leftContext.blocker) { + //we were blocked before so only check nodes previous to our blocker + blocker = this.rightMemory[leftContext.blocker.hashCode]; + leftContext.blocker = null; + } + if (blocker) { + if (thisConstraint.isMatch(context, rc = blocker.data)) { + //we cant be proagated so retract previous + if (!isBlocked) { + //we were asserted before so retract + this.__propagate("retract", this.__cloneContext(leftContext)); + } + context.blocker = rc; + this.addToLeftBlockedMemory(rc.blocking.push(context)); + context = null; + } + } + if (context && l) { + i = -1; + //we were propogated before + while (++i < l) { + if (thisConstraint.isMatch(context, rc = rightTuples[i].data)) { + //we cant be proagated so retract previous + if (!isBlocked) { + //we were asserted before so retract + this.__propagate("retract", this.__cloneContext(leftContext)); + } + this.addToLeftBlockedMemory(rc.blocking.push(context)); + context.blocker = rc; + context = null; + break; + } + } + } + if (context) { + //we can still be propogated + this.__addToLeftMemory(context); + if (!isBlocked) { + //we weren't blocked before so modify + this.__propagate("modify", this.__cloneContext(context)); + } else { + //we were blocked before but aren't now + this.__propagate("assert", this.__cloneContext(context)); + } + + } + } else { + throw new Error(); + } + + }, + + modifyRight: function (context) { + var ctx = this.removeFromRightMemory(context); + if (ctx) { + var rightContext = ctx.data, + leftTuples = this.leftTuples.getLeftMemory(context).slice(), + leftTuplesLength = leftTuples.length, + leftContext, + thisConstraint = this.constraint, + i, node, + blocking = rightContext.blocking; + this.__addToRightMemory(context); + context.blocking = new LinkedList(); + + var rc; + //check old blocked contexts + //check if the same contexts blocked before are still blocked + var blockingNode = {next: blocking.head}; + while ((blockingNode = blockingNode.next)) { + leftContext = blockingNode.data; + leftContext.blocker = null; + if (thisConstraint.isMatch(leftContext, context)) { + leftContext.blocker = context; + this.addToLeftBlockedMemory(context.blocking.push(leftContext)); + leftContext = null; + } else { + //we arent blocked anymore + leftContext.blocker = null; + node = ctx; + while ((node = node.next)) { + if (thisConstraint.isMatch(leftContext, rc = node.data)) { + leftContext.blocker = rc; + this.addToLeftBlockedMemory(rc.blocking.push(leftContext)); + leftContext = null; + break; + } + } + if (leftContext) { + this.__addToLeftMemory(leftContext); + this.__propagate("assert", this.__cloneContext(leftContext)); + } + } + } + if (leftTuplesLength) { + //check currently left tuples in memory + i = -1; + while (++i < leftTuplesLength) { + leftContext = leftTuples[i].data; + if (thisConstraint.isMatch(leftContext, context)) { + this.__propagate("retract", this.__cloneContext(leftContext)); + this.removeFromLeftMemory(leftContext); + this.addToLeftBlockedMemory(context.blocking.push(leftContext)); + leftContext.blocker = context; + } + } + } + } else { + throw new Error(); + } + + + } + } +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/propertyNode.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/propertyNode.js ***! + \*************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var AlphaNode = __webpack_require__(/*! ./alphaNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/alphaNode.js"), + Context = __webpack_require__(/*! ../context */ "./build/cht-core-4-6/node_modules/nools/lib/context.js"), + extd = __webpack_require__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"); + +AlphaNode.extend({ + instance: { + + constructor: function () { + this._super(arguments); + this.alias = this.constraint.get("alias"); + this.varLength = (this.variables = extd(this.constraint.get("variables")).toArray().value()).length; + }, + + assert: function (context) { + var c = new Context(context.fact, context.paths); + var variables = this.variables, o = context.fact.object, item; + c.set(this.alias, o); + for (var i = 0, l = this.varLength; i < l; i++) { + item = variables[i]; + c.set(item[1], o[item[0]]); + } + + this.__propagate("assert", c); + + }, + + retract: function (context) { + this.__propagate("retract", new Context(context.fact, context.paths)); + }, + + modify: function (context) { + var c = new Context(context.fact, context.paths); + var variables = this.variables, o = context.fact.object, item; + c.set(this.alias, o); + for (var i = 0, l = this.varLength; i < l; i++) { + item = variables[i]; + c.set(item[1], o[item[0]]); + } + this.__propagate("modify", c); + }, + + + toString: function () { + return "PropertyNode" + this.__count; + } + } +}).as(module); + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/rightAdapterNode.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/rightAdapterNode.js ***! + \*****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var Node = __webpack_require__(/*! ./adapterNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/adapterNode.js"); + +Node.extend({ + instance: { + + retractResolve: function (match) { + this.__propagate("retractResolve", match); + }, + + dispose: function (context) { + this.propagateDispose(context); + }, + + propagateAssert: function (context) { + this.__propagate("assertRight", context); + }, + + propagateRetract: function (context) { + this.__propagate("retractRight", context); + }, + + propagateResolve: function (context) { + this.__propagate("retractResolve", context); + }, + + propagateModify: function (context) { + this.__propagate("modifyRight", context); + }, + + toString: function () { + return "RightAdapterNode " + this.__count; + } + } +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/terminalNode.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/terminalNode.js ***! + \*************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var Node = __webpack_require__(/*! ./node */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js"), + extd = __webpack_require__(/*! ../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + bind = extd.bind; + +Node.extend({ + instance: { + constructor: function (bucket, index, rule, agenda) { + this._super([]); + this.resolve = bind(this, this.resolve); + this.rule = rule; + this.index = index; + this.name = this.rule.name; + this.agenda = agenda; + this.bucket = bucket; + agenda.register(this); + }, + + __assertModify: function (context) { + var match = context.match; + if (match.isMatch) { + var rule = this.rule, bucket = this.bucket; + this.agenda.insert(this, { + rule: rule, + hashCode: context.hashCode, + index: this.index, + name: rule.name, + recency: bucket.recency++, + match: match, + counter: bucket.counter + }); + } + }, + + assert: function (context) { + this.__assertModify(context); + }, + + modify: function (context) { + this.agenda.retract(this, context); + this.__assertModify(context); + }, + + retract: function (context) { + this.agenda.retract(this, context); + }, + + retractRight: function (context) { + this.agenda.retract(this, context); + }, + + retractLeft: function (context) { + this.agenda.retract(this, context); + }, + + assertLeft: function (context) { + this.__assertModify(context); + }, + + assertRight: function (context) { + this.__assertModify(context); + }, + + toString: function () { + return "TerminalNode " + this.rule.name; + } + } +}).as(module); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/nodes/typeNode.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/nodes/typeNode.js ***! + \*********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +var AlphaNode = __webpack_require__(/*! ./alphaNode */ "./build/cht-core-4-6/node_modules/nools/lib/nodes/alphaNode.js"), + Context = __webpack_require__(/*! ../context */ "./build/cht-core-4-6/node_modules/nools/lib/context.js"); + +AlphaNode.extend({ + instance: { + + assert: function (fact) { + if (this.constraintAssert(fact.object)) { + this.__propagate("assert", fact); + } + }, + + modify: function (fact) { + if (this.constraintAssert(fact.object)) { + this.__propagate("modify", fact); + } + }, + + retract: function (fact) { + if (this.constraintAssert(fact.object)) { + this.__propagate("retract", fact); + } + }, + + toString: function () { + return "TypeNode" + this.__count; + }, + + dispose: function () { + var es = this.__entrySet, i = es.length - 1; + for (; i >= 0; i--) { + var e = es[i], outNode = e.key, paths = e.value; + outNode.dispose({paths: paths}); + } + }, + + __propagate: function (method, fact) { + var es = this.__entrySet, i = -1, l = es.length; + while (++i < l) { + var e = es[i], outNode = e.key, paths = e.value; + outNode[method](new Context(fact, paths)); + } + } + } +}).as(module); + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/parser/constraint/parser.js": +/*!*******************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/parser/constraint/parser.js ***! + \*******************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +/* parser generated by jison 0.4.17 */ +/* + Returns a Parser object of the following structure: + + Parser: { + yy: {} + } + + Parser.prototype: { + yy: {}, + trace: function(), + symbols_: {associative list: name ==> number}, + terminals_: {associative list: number ==> name}, + productions_: [...], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), + table: [...], + defaultActions: {...}, + parseError: function(str, hash), + parse: function(input), + + lexer: { + EOF: 1, + parseError: function(str, hash), + setInput: function(input), + input: function(), + unput: function(str), + more: function(), + less: function(n), + pastInput: function(), + upcomingInput: function(), + showPosition: function(), + test_match: function(regex_match_array, rule_index), + next: function(), + lex: function(), + begin: function(condition), + popState: function(), + _currentRules: function(), + topState: function(), + pushState: function(condition), + + options: { + ranges: boolean (optional: true ==> token location info will include a .range[] member) + flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) + backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) + }, + + performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), + rules: [...], + conditions: {associative list: name ==> set}, + } + } + + + token location info (@$, _$, etc.): { + first_line: n, + last_line: n, + first_column: n, + last_column: n, + range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) + } + + + the parseError function receives a 'hash' object with these members for lexer and parser errors: { + text: (matched text) + token: (the produced terminal token, if any) + line: (yylineno) + } + while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { + loc: (yylloc) + expected: (string describing the set of expected tokens) + recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) + } +*/ +var parser = (function(){ +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,29],$V1=[1,30],$V2=[1,26],$V3=[1,24],$V4=[1,16],$V5=[1,18],$V6=[1,19],$V7=[1,20],$V8=[1,21],$V9=[1,22],$Va=[5,38,49],$Vb=[1,33],$Vc=[5,36,38,49],$Vd=[5,8,11,12,13,15,17,19,20,21,22,24,25,26,27,28,29,36,38,49],$Ve=[2,2],$Vf=[5,24,25,26,27,28,29,36,38,49],$Vg=[1,42],$Vh=[1,43],$Vi=[1,44],$Vj=[1,45],$Vk=[5,8,11,12,13,15,17,19,20,21,22,24,25,26,27,28,29,31,33,36,38,40,46,49],$Vl=[1,46],$Vm=[1,47],$Vn=[1,48],$Vo=[5,19,20,21,22,24,25,26,27,28,29,36,38,49],$Vp=[1,50],$Vq=[5,8,11,12,13,15,17,19,20,21,22,24,25,26,27,28,29,31,33,36,38,40,43,44,46,48,49],$Vr=[5,17,19,20,21,22,24,25,26,27,28,29,36,38,49],$Vs=[1,55],$Vt=[1,54],$Vu=[5,8,15,17,19,20,21,22,24,25,26,27,28,29,36,38,49],$Vv=[1,56],$Vw=[1,57],$Vx=[1,58],$Vy=[1,87],$Vz=[40,46,49]; +var parser = {trace: function trace() { }, +yy: {}, +symbols_: {"error":2,"expressions":3,"EXPRESSION":4,"EOF":5,"UNARY_EXPRESSION":6,"LITERAL_EXPRESSION":7,"-":8,"!":9,"MULTIPLICATIVE_EXPRESSION":10,"*":11,"/":12,"%":13,"ADDITIVE_EXPRESSION":14,"+":15,"EXPONENT_EXPRESSION":16,"^":17,"RELATIONAL_EXPRESSION":18,"<":19,">":20,"<=":21,">=":22,"EQUALITY_EXPRESSION":23,"==":24,"===":25,"!=":26,"!==":27,"=~":28,"!=~":29,"IN_EXPRESSION":30,"in":31,"ARRAY_EXPRESSION":32,"notIn":33,"OBJECT_EXPRESSION":34,"AND_EXPRESSION":35,"&&":36,"OR_EXPRESSION":37,"||":38,"ARGUMENT_LIST":39,",":40,"IDENTIFIER_EXPRESSION":41,"IDENTIFIER":42,".":43,"[":44,"STRING_EXPRESSION":45,"]":46,"NUMBER_EXPRESSION":47,"(":48,")":49,"STRING":50,"NUMBER":51,"REGEXP_EXPRESSION":52,"REGEXP":53,"BOOLEAN_EXPRESSION":54,"BOOLEAN":55,"NULL_EXPRESSION":56,"NULL":57,"$accept":0,"$end":1}, +terminals_: {2:"error",5:"EOF",8:"-",9:"!",11:"*",12:"/",13:"%",15:"+",17:"^",19:"<",20:">",21:"<=",22:">=",24:"==",25:"===",26:"!=",27:"!==",28:"=~",29:"!=~",31:"in",33:"notIn",36:"&&",38:"||",40:",",42:"IDENTIFIER",43:".",44:"[",46:"]",48:"(",49:")",50:"STRING",51:"NUMBER",53:"REGEXP",55:"BOOLEAN",57:"NULL"}, +productions_: [0,[3,2],[6,1],[6,2],[6,2],[10,1],[10,3],[10,3],[10,3],[14,1],[14,3],[14,3],[16,1],[16,3],[18,1],[18,3],[18,3],[18,3],[18,3],[23,1],[23,3],[23,3],[23,3],[23,3],[23,3],[23,3],[30,1],[30,3],[30,3],[30,3],[30,3],[35,1],[35,3],[37,1],[37,3],[39,1],[39,3],[41,1],[34,1],[34,3],[34,4],[34,4],[34,4],[34,3],[34,4],[45,1],[47,1],[52,1],[54,1],[56,1],[32,2],[32,3],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,3],[4,1]], +performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { +/* this == yyval */ + +var $0 = $$.length - 1; +switch (yystate) { +case 1: +return $$[$0-1]; +break; +case 3: +this.$ = [$$[$0], null, 'unary']; +break; +case 4: +this.$ = [$$[$0], null, 'logicalNot']; +break; +case 6: +this.$ = [$$[$0-2], $$[$0], 'mult']; +break; +case 7: +this.$ = [$$[$0-2], $$[$0], 'div']; +break; +case 8: +this.$ = [$$[$0-2], $$[$0], 'mod']; +break; +case 10: +this.$ = [$$[$0-2], $$[$0], 'plus']; +break; +case 11: +this.$ = [$$[$0-2], $$[$0], 'minus']; +break; +case 13: +this.$ = [$$[$0-2], $$[$0], 'pow']; +break; +case 15: +this.$ = [$$[$0-2], $$[$0], 'lt']; +break; +case 16: +this.$ = [$$[$0-2], $$[$0], 'gt']; +break; +case 17: +this.$ = [$$[$0-2], $$[$0], 'lte']; +break; +case 18: +this.$ = [$$[$0-2], $$[$0], 'gte']; +break; +case 20: +this.$ = [$$[$0-2], $$[$0], 'eq']; +break; +case 21: +this.$ = [$$[$0-2], $$[$0], 'seq']; +break; +case 22: +this.$ = [$$[$0-2], $$[$0], 'neq']; +break; +case 23: +this.$ = [$$[$0-2], $$[$0], 'sneq']; +break; +case 24: +this.$ = [$$[$0-2], $$[$0], 'like']; +break; +case 25: +this.$ = [$$[$0-2], $$[$0], 'notLike']; +break; +case 27: case 29: +this.$ = [$$[$0-2], $$[$0], 'in']; +break; +case 28: case 30: +this.$ = [$$[$0-2], $$[$0], 'notIn']; +break; +case 32: +this.$ = [$$[$0-2], $$[$0], 'and']; +break; +case 34: +this.$ = [$$[$0-2], $$[$0], 'or']; +break; +case 36: +this.$ = [$$[$0-2], $$[$0], 'arguments'] +break; +case 37: +this.$ = [String(yytext), null, 'identifier']; +break; +case 39: +this.$ = [$$[$0-2],$$[$0], 'prop']; +break; +case 40: case 41: case 42: +this.$ = [$$[$0-3],$$[$0-1], 'propLookup']; +break; +case 43: +this.$ = [$$[$0-2], [null, null, 'arguments'], 'function'] +break; +case 44: +this.$ = [$$[$0-3], $$[$0-1], 'function'] +break; +case 45: +this.$ = [String(yytext.replace(/^['|"]|['|"]$/g, '')), null, 'string']; +break; +case 46: +this.$ = [Number(yytext), null, 'number']; +break; +case 47: +this.$ = [yytext, null, 'regexp']; +break; +case 48: +this.$ = [yytext.replace(/^\s+/, '') == 'true', null, 'boolean']; +break; +case 49: +this.$ = [null, null, 'null']; +break; +case 50: +this.$ = [null, null, 'array']; +break; +case 51: +this.$ = [$$[$0-1], null, 'array']; +break; +case 59: +this.$ = [$$[$0-1], null, 'composite'] +break; +} +}, +table: [{3:1,4:2,6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:5,32:15,34:14,35:4,37:3,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{1:[3]},{5:[1,31]},o([5,49],[2,60],{38:[1,32]}),o($Va,[2,33],{36:$Vb}),o($Vc,[2,31]),o($Vc,[2,26],{24:[1,34],25:[1,35],26:[1,36],27:[1,37],28:[1,38],29:[1,39]}),o($Vd,$Ve,{31:[1,40],33:[1,41]}),o($Vf,[2,19],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vk,[2,52]),o($Vk,[2,53]),o($Vk,[2,54]),o($Vk,[2,55]),o($Vk,[2,56]),o($Vk,[2,57],{43:$Vl,44:$Vm,48:$Vn}),o($Vk,[2,58]),{4:49,6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:5,32:15,34:14,35:4,37:3,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vo,[2,14],{17:$Vp}),o($Vk,[2,45]),o($Vk,[2,46]),o($Vk,[2,47]),o($Vk,[2,48]),o($Vk,[2,49]),o($Vq,[2,38]),{7:53,32:15,34:14,39:52,41:23,42:$V2,44:$V3,45:9,46:[1,51],47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vr,[2,12],{8:$Vs,15:$Vt}),o($Vq,[2,37]),o($Vu,[2,9],{11:$Vv,12:$Vw,13:$Vx}),o($Vd,[2,5]),{6:59,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:61,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{1:[2,1]},{6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:5,32:15,34:14,35:62,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:63,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:64,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:65,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:66,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:67,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:68,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:69,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{32:70,34:71,41:23,42:$V2,44:$V3},{32:72,34:73,41:23,42:$V2,44:$V3},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:74,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:75,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:76,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:77,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{41:78,42:$V2},{34:81,41:23,42:$V2,45:79,47:80,50:$V5,51:$V6},{7:53,32:15,34:14,39:83,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,49:[1,82],50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{49:[1,84]},{6:28,7:60,8:$V0,9:$V1,10:27,14:85,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vk,[2,50]),{40:$Vy,46:[1,86]},o($Vz,[2,35]),{6:28,7:60,8:$V0,9:$V1,10:88,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:89,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:90,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:91,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:92,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vd,[2,3]),o($Vd,$Ve),o($Vd,[2,4]),o($Va,[2,34],{36:$Vb}),o($Vc,[2,32]),o($Vf,[2,20],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,21],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,22],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,23],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,24],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,25],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vc,[2,27]),o($Vc,[2,29],{43:$Vl,44:$Vm,48:$Vn}),o($Vc,[2,28]),o($Vc,[2,30],{43:$Vl,44:$Vm,48:$Vn}),o($Vo,[2,15],{17:$Vp}),o($Vo,[2,16],{17:$Vp}),o($Vo,[2,17],{17:$Vp}),o($Vo,[2,18],{17:$Vp}),o($Vq,[2,39]),{46:[1,93]},{46:[1,94]},{43:$Vl,44:$Vm,46:[1,95],48:$Vn},o($Vq,[2,43]),{40:$Vy,49:[1,96]},o($Vk,[2,59]),o($Vr,[2,13],{8:$Vs,15:$Vt}),o($Vk,[2,51]),{7:97,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vu,[2,10],{11:$Vv,12:$Vw,13:$Vx}),o($Vu,[2,11],{11:$Vv,12:$Vw,13:$Vx}),o($Vd,[2,6]),o($Vd,[2,7]),o($Vd,[2,8]),o($Vq,[2,40]),o($Vq,[2,41]),o($Vq,[2,42]),o($Vq,[2,44]),o($Vz,[2,36])], +defaultActions: {31:[2,1]}, +parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + function _parseError (msg, hash) { + this.message = msg; + this.hash = hash; + } + _parseError.prototype = Error; + + throw new _parseError(str, hash); + } +}, +parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer; + sharedState.yy.parser = this; + if (typeof lexer.yylloc == 'undefined') { + lexer.yylloc = {}; + } + var yyloc = lexer.yylloc; + lstack.push(yyloc); + var ranges = lexer.options && lexer.options.ranges; + if (typeof sharedState.yy.parseError === 'function') { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function popStack(n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + _token_stack: + var lex = function () { + var token; + token = lexer.lex() || EOF; + if (typeof token !== 'number') { + token = self.symbols_[token] || token; + } + return token; + }; + var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == 'undefined') { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === 'undefined' || !action.length || !action[0]) { + var errStr = ''; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push('\'' + this.terminals_[p] + '\''); + } + } + if (lexer.showPosition) { + errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; + } else { + errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); + } + this.parseError(errStr, { + text: lexer.match, + token: this.terminals_[symbol] || symbol, + line: lexer.yylineno, + loc: yyloc, + expected: expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer.yytext); + lstack.push(lexer.yylloc); + stack.push(action[1]); + symbol = null; + if (!preErrorSymbol) { + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + if (recovering > 0) { + recovering--; + } + } else { + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== 'undefined') { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; +}}; +/* generated by jison-lex 0.3.4 */ +var lexer = (function(){ +var lexer = ({ + +EOF:1, + +parseError:function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + +// resets the lexer, sets new input +setInput:function (input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ''; + this.conditionStack = ['INITIAL']; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0,0]; + } + this.offset = 0; + return this; + }, + +// consumes and returns one char from the input +input:function () { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + + this._input = this._input.slice(1); + return ch; + }, + +// unshifts one char (or a string) into the input +unput:function (ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + //this.yyleng -= len; + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? + (lines.length === oldLines.length ? this.yylloc.first_column : 0) + + oldLines[oldLines.length - lines.length].length - lines[0].length : + this.yylloc.first_column - len + }; + + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + +// When called from action, caches matched text and appends it on next action +more:function () { + this._more = true; + return this; + }, + +// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. +reject:function () { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + + } + return this; + }, + +// retain first n characters of the match +less:function (n) { + this.unput(this.match.slice(n)); + }, + +// displays already matched input, i.e. for error messages +pastInput:function () { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); + }, + +// displays upcoming input, i.e. for error messages +upcomingInput:function () { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20-next.length); + } + return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); + }, + +// displays the character position where the lexing error occurred, i.e. for error messages +showPosition:function () { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + +// test the lexed token: return FALSE when not a match, otherwise return token +test_match:function (match, indexed_rule) { + var token, + lines, + backup; + + if (this.options.backtrack_lexer) { + // save context + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? + lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : + this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + // recover context + for (var k in backup) { + this[k] = backup[k]; + } + return false; // rule action called reject() implying the next rule should be tested instead. + } + return false; + }, + +// return next match in input +next:function () { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + + var token, + match, + tempMatch, + index; + if (!this._more) { + this.yytext = ''; + this.match = ''; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; // rule action called reject() implying a rule MISmatch. + } else { + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + +// return next match that has a token +lex:function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + +// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) +begin:function begin(condition) { + this.conditionStack.push(condition); + }, + +// pop the previously active lexer condition state off the condition stack +popState:function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + +// produce the lexer rule set which is active for the currently active lexer condition state +_currentRules:function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + +// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available +topState:function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + +// alias for begin(condition) +pushState:function pushState(condition) { + this.begin(condition); + }, + +// return the number of states currently on the stack +stateStackSize:function stateStackSize() { + return this.conditionStack.length; + }, +options: {}, +performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { +var YYSTATE=YY_START; +switch($avoiding_name_collisions) { +case 0:return 31; +break; +case 1:return 33; +break; +case 2:return 'from'; +break; +case 3:return 24; +break; +case 4:return 25; +break; +case 5:return 26; +break; +case 6:return 27; +break; +case 7:return 21; +break; +case 8:return 19; +break; +case 9:return 22; +break; +case 10:return 20; +break; +case 11:return 28; +break; +case 12:return 29; +break; +case 13:return 36; +break; +case 14:return 38; +break; +case 15:return 57; +break; +case 16:return 55; +break; +case 17:/* skip whitespace */ +break; +case 18:return 51; +break; +case 19:return 50; +break; +case 20:return 50; +break; +case 21:return 42; +break; +case 22:return 53; +break; +case 23:return 43; +break; +case 24:return 11; +break; +case 25:return 12; +break; +case 26:return 13; +break; +case 27:return 40; +break; +case 28:return 8; +break; +case 29:return 28; +break; +case 30:return 29; +break; +case 31:return 25; +break; +case 32:return 24; +break; +case 33:return 27; +break; +case 34:return 26; +break; +case 35:return 21; +break; +case 36:return 22; +break; +case 37:return 20; +break; +case 38:return 19; +break; +case 39:return 36; +break; +case 40:return 38; +break; +case 41:return 15; +break; +case 42:return 17; +break; +case 43:return 48; +break; +case 44:return 46; +break; +case 45:return 44; +break; +case 46:return 49; +break; +case 47:return 9; +break; +case 48:return 5; +break; +} +}, +rules: [/^(?:\s+in\b)/,/^(?:\s+notIn\b)/,/^(?:\s+from\b)/,/^(?:\s+(eq|EQ)\b)/,/^(?:\s+(seq|SEQ)\b)/,/^(?:\s+(neq|NEQ)\b)/,/^(?:\s+(sneq|SNEQ)\b)/,/^(?:\s+(lte|LTE)\b)/,/^(?:\s+(lt|LT)\b)/,/^(?:\s+(gte|GTE)\b)/,/^(?:\s+(gt|GT)\b)/,/^(?:\s+(like|LIKE)\b)/,/^(?:\s+(notLike|NOT_LIKE)\b)/,/^(?:\s+(and|AND)\b)/,/^(?:\s+(or|OR)\b)/,/^(?:\s*(null)\b)/,/^(?:\s*(true|false)\b)/,/^(?:\s+)/,/^(?:-?[0-9]+(?:\.[0-9]+)?\b)/,/^(?:'[^']*')/,/^(?:"[^"]*")/,/^(?:([a-zA-Z_$][0-9a-zA-Z_$]*))/,/^(?:^\/((?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4})(?!\w))/,/^(?:\.)/,/^(?:\*)/,/^(?:\/)/,/^(?:\%)/,/^(?:,)/,/^(?:-)/,/^(?:=~)/,/^(?:!=~)/,/^(?:===)/,/^(?:==)/,/^(?:!==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:&&)/,/^(?:\|\|)/,/^(?:\+)/,/^(?:\^)/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:\))/,/^(?:!)/,/^(?:$)/], +conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"inclusive":true}} +}); +return lexer; +})(); +parser.lexer = lexer; +function Parser () { + this.yy = {}; +} +Parser.prototype = parser;parser.Parser = Parser; +return new Parser; +})(); + + +if (true) { +exports.parser = parser; +exports.Parser = parser.Parser; +exports.parse = function () { return parser.parse.apply(parser, arguments); }; +exports.main = function commonjsMain(args) { + if (!args[1]) { + console.log('Usage: '+args[0]+' FILE'); + process.exit(1); + } + var source = __webpack_require__(/*! fs */ "fs").readFileSync(__webpack_require__(/*! path */ "path").normalize(args[1]), "utf8"); + return exports.parser.parse(source); +}; +if ( true && __webpack_require__.c[__webpack_require__.s] === module) { + exports.main(process.argv.slice(1)); +} +} + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/parser/index.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/parser/index.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +(function () { + "use strict"; + var constraintParser = __webpack_require__(/*! ./constraint/parser */ "./build/cht-core-4-6/node_modules/nools/lib/parser/constraint/parser.js"), + noolParser = __webpack_require__(/*! ./nools/nool.parser */ "./build/cht-core-4-6/node_modules/nools/lib/parser/nools/nool.parser.js"); + + exports.parseConstraint = function (expression) { + try { + return constraintParser.parse(expression); + } catch (e) { + throw new Error("Invalid expression '" + expression + "'"); + } + }; + + exports.parseRuleSet = function (source, file) { + return noolParser.parse(source, file); + }; +})(); + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/parser/nools/nool.parser.js": +/*!*******************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/parser/nools/nool.parser.js ***! + \*******************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + + +var tokens = __webpack_require__(/*! ./tokens.js */ "./build/cht-core-4-6/node_modules/nools/lib/parser/nools/tokens.js"), + extd = __webpack_require__(/*! ../../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + keys = extd.hash.keys, + utils = __webpack_require__(/*! ./util.js */ "./build/cht-core-4-6/node_modules/nools/lib/parser/nools/util.js"); + +var parse = function (src, keywords, context) { + var orig = src; + src = src.replace(/\/\/(.*)/g, "").replace(/\r\n|\r|\n/g, " "); + + var blockTypes = new RegExp("^(" + keys(keywords).join("|") + ")"), index; + while (src && (index = utils.findNextTokenIndex(src)) !== -1) { + src = src.substr(index); + var blockType = src.match(blockTypes); + if (blockType !== null) { + blockType = blockType[1]; + if (blockType in keywords) { + try { + src = keywords[blockType](src, context, parse).replace(/^\s*|\s*$/g, ""); + } catch (e) { + throw new Error("Invalid " + blockType + " definition \n" + e.message + "; \nstarting at : " + orig); + } + } else { + throw new Error("Unknown token" + blockType); + } + } else { + throw new Error("Error parsing " + src); + } + } +}; + +exports.parse = function (src, file) { + var context = {define: [], rules: [], scope: [], loaded: [], file: file}; + parse(src, tokens, context); + return context; +}; + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/parser/nools/tokens.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/parser/nools/tokens.js ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var utils = __webpack_require__(/*! ./util.js */ "./build/cht-core-4-6/node_modules/nools/lib/parser/nools/util.js"), + fs = __webpack_require__(/*! fs */ "fs"), + extd = __webpack_require__(/*! ../../extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + filter = extd.filter, + indexOf = extd.indexOf, + predicates = ["not", "or", "exists"], + predicateRegExp = new RegExp("^(" + predicates.join("|") + ") *\\((.*)\\)$", "m"), + predicateBeginExp = new RegExp(" *(" + predicates.join("|") + ") *\\(", "g"); + +var isWhiteSpace = function (str) { + return str.replace(/[\s|\n|\r|\t]/g, "").length === 0; +}; + +var joinFunc = function (m, str) { + return "; " + str; +}; + +var splitRuleLineByPredicateExpressions = function (ruleLine) { + var str = ruleLine.replace(/,\s*(\$?\w+\s*:)/g, joinFunc); + var parts = filter(str.split(predicateBeginExp), function (str) { + return str !== ""; + }), + l = parts.length, ret = []; + + if (l) { + for (var i = 0; i < l; i++) { + if (indexOf(predicates, parts[i]) !== -1) { + ret.push([parts[i], "(", parts[++i].replace(/, *$/, "")].join("")); + } else { + ret.push(parts[i].replace(/, *$/, "")); + } + } + } else { + return str; + } + return ret.join(";"); +}; + +var ruleTokens = { + + salience: (function () { + var salienceRegexp = /^(salience|priority)\s*:\s*(-?\d+)\s*[,;]?/; + return function (src, context) { + if (salienceRegexp.test(src)) { + var parts = src.match(salienceRegexp), + priority = parseInt(parts[2], 10); + if (!isNaN(priority)) { + context.options.priority = priority; + } else { + throw new Error("Invalid salience/priority " + parts[2]); + } + return src.replace(parts[0], ""); + } else { + throw new Error("invalid format"); + } + }; + })(), + + agendaGroup: (function () { + var agendaGroupRegexp = /^(agenda-group|agendaGroup)\s*:\s*([a-zA-Z_$][0-9a-zA-Z_$]*|"[^"]*"|'[^']*')\s*[,;]?/; + return function (src, context) { + if (agendaGroupRegexp.test(src)) { + var parts = src.match(agendaGroupRegexp), + agendaGroup = parts[2]; + if (agendaGroup) { + context.options.agendaGroup = agendaGroup.replace(/^["']|["']$/g, ""); + } else { + throw new Error("Invalid agenda-group " + parts[2]); + } + return src.replace(parts[0], ""); + } else { + throw new Error("invalid format"); + } + }; + })(), + + autoFocus: (function () { + var autoFocusRegexp = /^(auto-focus|autoFocus)\s*:\s*(true|false)\s*[,;]?/; + return function (src, context) { + if (autoFocusRegexp.test(src)) { + var parts = src.match(autoFocusRegexp), + autoFocus = parts[2]; + if (autoFocus) { + context.options.autoFocus = autoFocus === "true" ? true : false; + } else { + throw new Error("Invalid auto-focus " + parts[2]); + } + return src.replace(parts[0], ""); + } else { + throw new Error("invalid format"); + } + }; + })(), + + "agenda-group": function () { + return this.agendaGroup.apply(this, arguments); + }, + + "auto-focus": function () { + return this.autoFocus.apply(this, arguments); + }, + + priority: function () { + return this.salience.apply(this, arguments); + }, + + when: (function () { + /*jshint evil:true*/ + + var ruleRegExp = /^(\$?\w+) *: *(\w+)(.*)/; + + var constraintRegExp = /(\{ *(?:["']?\$?\w+["']?\s*:\s*["']?\$?\w+["']? *(?:, *["']?\$?\w+["']?\s*:\s*["']?\$?\w+["']?)*)+ *\})/; + var fromRegExp = /(\bfrom\s+.*)/; + var parseRules = function (str) { + var rules = []; + var ruleLines = str.split(";"), l = ruleLines.length, ruleLine; + for (var i = 0; i < l && (ruleLine = ruleLines[i].replace(/^\s*|\s*$/g, "").replace(/\n/g, "")); i++) { + if (!isWhiteSpace(ruleLine)) { + var rule = []; + if (predicateRegExp.test(ruleLine)) { + var m = ruleLine.match(predicateRegExp); + var pred = m[1].replace(/^\s*|\s*$/g, ""); + rule.push(pred); + ruleLine = m[2].replace(/^\s*|\s*$/g, ""); + if (pred === "or") { + rule = rule.concat(parseRules(splitRuleLineByPredicateExpressions(ruleLine))); + rules.push(rule); + continue; + } + + } + var parts = ruleLine.match(ruleRegExp); + if (parts && parts.length) { + rule.push(parts[2], parts[1]); + var constraints = parts[3].replace(/^\s*|\s*$/g, ""); + var hashParts = constraints.match(constraintRegExp), from = null, fromMatch; + if (hashParts) { + var hash = hashParts[1], constraint = constraints.replace(hash, ""); + if (fromRegExp.test(constraint)) { + fromMatch = constraint.match(fromRegExp); + from = fromMatch[0]; + constraint = constraint.replace(fromMatch[0], ""); + } + if (constraint) { + rule.push(constraint.replace(/^\s*|\s*$/g, "")); + } + if (hash) { + rule.push(eval("(" + hash.replace(/(\$?\w+)\s*:\s*(\$?\w+)/g, '"$1" : "$2"') + ")")); + } + } else if (constraints && !isWhiteSpace(constraints)) { + if (fromRegExp.test(constraints)) { + fromMatch = constraints.match(fromRegExp); + from = fromMatch[0]; + constraints = constraints.replace(fromMatch[0], ""); + } + rule.push(constraints); + } + if (from) { + rule.push(from); + } + rules.push(rule); + } else { + throw new Error("Invalid constraint " + ruleLine); + } + } + } + return rules; + }; + + return function (orig, context) { + var src = orig.replace(/^when\s*/, "").replace(/^\s*|\s*$/g, ""); + if (utils.findNextToken(src) === "{") { + var body = utils.getTokensBetween(src, "{", "}", true).join(""); + src = src.replace(body, ""); + context.constraints = parseRules(body.replace(/^\{\s*|\}\s*$/g, "")); + return src; + } else { + throw new Error("unexpected token : expected : '{' found : '" + utils.findNextToken(src) + "'"); + } + }; + })(), + + then: (function () { + return function (orig, context) { + if (!context.action) { + var src = orig.replace(/^then\s*/, "").replace(/^\s*|\s*$/g, ""); + if (utils.findNextToken(src) === "{") { + var body = utils.getTokensBetween(src, "{", "}", true).join(""); + src = src.replace(body, ""); + if (!context.action) { + context.action = body.replace(/^\{\s*|\}\s*$/g, ""); + } + if (!isWhiteSpace(src)) { + throw new Error("Error parsing then block " + orig); + } + return src; + } else { + throw new Error("unexpected token : expected : '{' found : '" + utils.findNextToken(src) + "'"); + } + } else { + throw new Error("action already defined for rule" + context.name); + } + + }; + })() +}; + +var topLevelTokens = { + "/": function (orig) { + if (orig.match(/^\/\*/)) { + // Block Comment parse + return orig.replace(/\/\*.*?\*\//, ""); + } else { + return orig; + } + }, + + "define": function (orig, context) { + var src = orig.replace(/^define\s*/, ""); + var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*)/); + if (name) { + src = src.replace(name[0], "").replace(/^\s*|\s*$/g, ""); + if (utils.findNextToken(src) === "{") { + name = name[1]; + var body = utils.getTokensBetween(src, "{", "}", true).join(""); + src = src.replace(body, ""); + //should + context.define.push({name: name, properties: "(" + body + ")"}); + return src; + } else { + throw new Error("unexpected token : expected : '{' found : '" + utils.findNextToken(src) + "'"); + } + } else { + throw new Error("missing name"); + } + }, + + "import": function (orig, context, parse) { + if (typeof window !== 'undefined') { + throw new Error("import cannot be used in a browser"); + } + var src = orig.replace(/^import\s*/, ""); + if (utils.findNextToken(src) === "(") { + var file = utils.getParamList(src); + src = src.replace(file, "").replace(/^\s*|\s*$/g, ""); + utils.findNextToken(src) === ";" && (src = src.replace(/\s*;/, "")); + file = file.replace(/[\(|\)]/g, "").split(","); + if (file.length === 1) { + file = utils.resolve(context.file || process.cwd(), file[0].replace(/["|']/g, "")); + if (indexOf(context.loaded, file) === -1) { + var origFile = context.file; + context.file = file; + parse(fs.readFileSync(file, "utf8"), topLevelTokens, context); + context.loaded.push(file); + context.file = origFile; + } + return src; + } else { + throw new Error("import accepts a single file"); + } + } else { + throw new Error("unexpected token : expected : '(' found : '" + utils.findNextToken(src) + "'"); + } + + }, + + //define a global + "global": function (orig, context) { + var src = orig.replace(/^global\s*/, ""); + var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*\s*)/); + if (name) { + src = src.replace(name[0], "").replace(/^\s*|\s*$/g, ""); + if (utils.findNextToken(src) === "=") { + name = name[1].replace(/^\s+|\s+$/g, ''); + var fullbody = utils.getTokensBetween(src, "=", ";", true).join(""); + var body = fullbody.substring(1, fullbody.length - 1); + body = body.replace(/^\s+|\s+$/g, ''); + if (/^require\(/.test(body)) { + var file = utils.getParamList(body.replace("require")).replace(/[\(|\)]/g, "").split(","); + if (file.length === 1) { + //handle relative require calls + file = file[0].replace(/["|']/g, ""); + body = ["require('", utils.resolve(context.file || process.cwd(), file) , "')"].join(""); + } + } + context.scope.push({name: name, body: body}); + src = src.replace(fullbody, ""); + return src; + } else { + throw new Error("unexpected token : expected : '=' found : '" + utils.findNextToken(src) + "'"); + } + } else { + throw new Error("missing name"); + } + }, + + //define a function + "function": function (orig, context) { + var src = orig.replace(/^function\s*/, ""); + //parse the function name + var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*)\s*/); + if (name) { + src = src.replace(name[0], ""); + if (utils.findNextToken(src) === "(") { + name = name[1]; + var params = utils.getParamList(src); + src = src.replace(params, "").replace(/^\s*|\s*$/g, ""); + if (utils.findNextToken(src) === "{") { + var body = utils.getTokensBetween(src, "{", "}", true).join(""); + src = src.replace(body, ""); + //should + context.scope.push({name: name, body: "function" + params + body}); + return src; + } else { + throw new Error("unexpected token : expected : '{' found : '" + utils.findNextToken(src) + "'"); + } + } else { + throw new Error("unexpected token : expected : '(' found : '" + utils.findNextToken(src) + "'"); + } + } else { + throw new Error("missing name"); + } + }, + + "rule": function (orig, context, parse) { + var src = orig.replace(/^rule\s*/, ""); + var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*|"[^"]*"|'[^']*')/); + if (name) { + src = src.replace(name[0], "").replace(/^\s*|\s*$/g, ""); + if (utils.findNextToken(src) === "{") { + name = name[1].replace(/^["']|["']$/g, ""); + var rule = {name: name, options: {}, constraints: null, action: null}; + var body = utils.getTokensBetween(src, "{", "}", true).join(""); + src = src.replace(body, ""); + parse(body.replace(/^\{\s*|\}\s*$/g, ""), ruleTokens, rule); + context.rules.push(rule); + return src; + } else { + throw new Error("unexpected token : expected : '{' found : '" + utils.findNextToken(src) + "'"); + } + } else { + throw new Error("missing name"); + } + + } +}; +module.exports = topLevelTokens; + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/parser/nools/util.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/parser/nools/util.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + + +var path = __webpack_require__(/*! path */ "path"); +var WHITE_SPACE_REG = /[\s|\n|\r|\t]/, + pathSep = path.sep || ( process.platform === 'win32' ? '\\' : '/' ); + +var TOKEN_INVERTS = { + "{": "}", + "}": "{", + "(": ")", + ")": "(", + "[": "]" +}; + +var getTokensBetween = exports.getTokensBetween = function (str, start, stop, includeStartEnd) { + var depth = 0, ret = []; + if (!start) { + start = TOKEN_INVERTS[stop]; + depth = 1; + } + if (!stop) { + stop = TOKEN_INVERTS[start]; + } + str = Object(str); + var startPushing = false, token, cursor = 0, found = false; + while ((token = str.charAt(cursor++))) { + if (token === start) { + depth++; + if (!startPushing) { + startPushing = true; + if (includeStartEnd) { + ret.push(token); + } + } else { + ret.push(token); + } + } else if (token === stop && cursor) { + depth--; + if (depth === 0) { + if (includeStartEnd) { + ret.push(token); + } + found = true; + break; + } + ret.push(token); + } else if (startPushing) { + ret.push(token); + } + } + if (!found) { + throw new Error("Unable to match " + start + " in " + str); + } + return ret; +}; + +exports.getParamList = function (str) { + return getTokensBetween(str, "(", ")", true).join(""); +}; + +exports.resolve = function (from, to) { + if (process.platform === 'win32') { + to = to.replace(/\//g, '\\'); + } + if (path.extname(from) !== '') { + from = path.dirname(from); + } + if (to.split(pathSep).length === 1) { + return to; + } + return path.resolve(from, to).replace(/\\/g, '/'); + +}; + +var findNextTokenIndex = exports.findNextTokenIndex = function (str, startIndex, endIndex) { + startIndex = startIndex || 0; + endIndex = endIndex || str.length; + var ret = -1, l = str.length; + if (!endIndex || endIndex > l) { + endIndex = l; + } + for (; startIndex < endIndex; startIndex++) { + var c = str.charAt(startIndex); + if (!WHITE_SPACE_REG.test(c)) { + ret = startIndex; + break; + } + } + return ret; +}; + +exports.findNextToken = function (str, startIndex, endIndex) { + return str.charAt(findNextTokenIndex(str, startIndex, endIndex)); +}; + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/pattern.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/pattern.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +var extd = __webpack_require__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + isEmpty = extd.isEmpty, + merge = extd.merge, + forEach = extd.forEach, + declare = extd.declare, + constraintMatcher = __webpack_require__(/*! ./constraintMatcher */ "./build/cht-core-4-6/node_modules/nools/lib/constraintMatcher.js"), + constraint = __webpack_require__(/*! ./constraint */ "./build/cht-core-4-6/node_modules/nools/lib/constraint.js"), + EqualityConstraint = constraint.EqualityConstraint, + FromConstraint = constraint.FromConstraint; + +var id = 0; +var Pattern = declare({}); + +var ObjectPattern = Pattern.extend({ + instance: { + constructor: function (type, alias, conditions, store, options) { + options = options || {}; + this.id = id++; + this.type = type; + this.alias = alias; + this.conditions = conditions; + this.pattern = options.pattern; + var constraints = [new constraint.ObjectConstraint(type)]; + var constrnts = constraintMatcher.toConstraints(conditions, merge({alias: alias}, options)); + if (constrnts.length) { + constraints = constraints.concat(constrnts); + } else { + var cnstrnt = new constraint.TrueConstraint(); + constraints.push(cnstrnt); + } + if (store && !isEmpty(store)) { + var atm = new constraint.HashConstraint(store); + constraints.push(atm); + } + + forEach(constraints, function (constraint) { + constraint.set("alias", alias); + }); + this.constraints = constraints; + }, + + getSpecificity: function () { + var constraints = this.constraints, specificity = 0; + for (var i = 0, l = constraints.length; i < l; i++) { + if (constraints[i] instanceof EqualityConstraint) { + specificity++; + } + } + return specificity; + }, + + hasConstraint: function (type) { + return extd.some(this.constraints, function (c) { + return c instanceof type; + }); + }, + + hashCode: function () { + return [this.type, this.alias, extd.format("%j", this.conditions)].join(":"); + }, + + toString: function () { + return extd.format("%j", this.constraints); + } + } +}).as(exports, "ObjectPattern"); + +var FromPattern = ObjectPattern.extend({ + instance: { + constructor: function (type, alias, conditions, store, from, options) { + this._super([type, alias, conditions, store, options]); + this.from = new FromConstraint(from, options); + }, + + hasConstraint: function (type) { + return extd.some(this.constraints, function (c) { + return c instanceof type; + }); + }, + + getSpecificity: function () { + return this._super(arguments) + 1; + }, + + hashCode: function () { + return [this.type, this.alias, extd.format("%j", this.conditions), this.from.from].join(":"); + }, + + toString: function () { + return extd.format("%j from %s", this.constraints, this.from.from); + } + } +}).as(exports, "FromPattern"); + + +FromPattern.extend().as(exports, "FromNotPattern"); +ObjectPattern.extend().as(exports, "NotPattern"); +ObjectPattern.extend().as(exports, "ExistsPattern"); +FromPattern.extend().as(exports, "FromExistsPattern"); + +Pattern.extend({ + + instance: { + constructor: function (left, right) { + this.id = id++; + this.leftPattern = left; + this.rightPattern = right; + }, + + hashCode: function () { + return [this.leftPattern.hashCode(), this.rightPattern.hashCode()].join(":"); + }, + + getSpecificity: function () { + return this.rightPattern.getSpecificity() + this.leftPattern.getSpecificity(); + }, + + getters: { + constraints: function () { + return this.leftPattern.constraints.concat(this.rightPattern.constraints); + } + } + } + +}).as(exports, "CompositePattern"); + + +var InitialFact = declare({ + instance: { + constructor: function () { + this.id = id++; + this.recency = 0; + } + } +}).as(exports, "InitialFact"); + +ObjectPattern.extend({ + instance: { + constructor: function () { + this._super([InitialFact, "__i__", [], {}]); + }, + + assert: function () { + return true; + } + } +}).as(exports, "InitialFactPattern"); + + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/rule.js": +/*!***********************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/rule.js ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +var extd = __webpack_require__(/*! ./extended */ "./build/cht-core-4-6/node_modules/nools/lib/extended.js"), + isArray = extd.isArray, + Promise = extd.Promise, + declare = extd.declare, + isHash = extd.isHash, + isString = extd.isString, + format = extd.format, + parser = __webpack_require__(/*! ./parser */ "./build/cht-core-4-6/node_modules/nools/lib/parser/index.js"), + pattern = __webpack_require__(/*! ./pattern */ "./build/cht-core-4-6/node_modules/nools/lib/pattern.js"), + ObjectPattern = pattern.ObjectPattern, + FromPattern = pattern.FromPattern, + NotPattern = pattern.NotPattern, + ExistsPattern = pattern.ExistsPattern, + FromNotPattern = pattern.FromNotPattern, + FromExistsPattern = pattern.FromExistsPattern, + CompositePattern = pattern.CompositePattern; + +var parseConstraint = function (constraint) { + if (typeof constraint === 'function') { + // No parsing is needed for constraint functions + return constraint; + } + return parser.parseConstraint(constraint); +}; + +var parseExtra = extd + .switcher() + .isUndefinedOrNull(function () { + return null; + }) + .isLike(/^from +/, function (s) { + return {from: s.replace(/^from +/, "").replace(/^\s*|\s*$/g, "")}; + }) + .def(function (o) { + throw new Error("invalid rule constraint option " + o); + }) + .switcher(); + +var normailizeConstraint = extd + .switcher() + .isLength(1, function (c) { + throw new Error("invalid rule constraint " + format("%j", [c])); + }) + .isLength(2, function (c) { + c.push("true"); + return c; + }) + //handle case where c[2] is a hash rather than a constraint string + .isLength(3, function (c) { + if (isString(c[2]) && /^from +/.test(c[2])) { + var extra = c[2]; + c.splice(2, 0, "true"); + c[3] = null; + c[4] = parseExtra(extra); + } else if (isHash(c[2])) { + c.splice(2, 0, "true"); + } + return c; + }) + //handle case where c[3] is a from clause rather than a hash for references + .isLength(4, function (c) { + if (isString(c[3])) { + c.splice(3, 0, null); + c[4] = parseExtra(c[4]); + } + return c; + }) + .def(function (c) { + if (c.length === 5) { + c[4] = parseExtra(c[4]); + } + return c; + }) + .switcher(); + +var getParamType = function getParamType(type, scope) { + scope = scope || {}; + var getParamTypeSwitch = extd + .switcher() + .isEq("string", function () { + return String; + }) + .isEq("date", function () { + return Date; + }) + .isEq("array", function () { + return Array; + }) + .isEq("boolean", function () { + return Boolean; + }) + .isEq("regexp", function () { + return RegExp; + }) + .isEq("number", function () { + return Number; + }) + .isEq("object", function () { + return Object; + }) + .isEq("hash", function () { + return Object; + }) + .def(function (param) { + throw new TypeError("invalid param type " + param); + }) + .switcher(); + + var _getParamType = extd + .switcher() + .isString(function (param) { + var t = scope[param]; + if (!t) { + return getParamTypeSwitch(param.toLowerCase()); + } else { + return t; + } + }) + .isFunction(function (func) { + return func; + }) + .deepEqual([], function () { + return Array; + }) + .def(function (param) { + throw new Error("invalid param type " + param); + }) + .switcher(); + + return _getParamType(type); +}; + +var parsePattern = extd + .switcher() + .containsAt("or", 0, function (condition) { + condition.shift(); + return extd(condition).map(function (cond) { + cond.scope = condition.scope; + return parsePattern(cond); + }).flatten().value(); + }) + .containsAt("not", 0, function (condition) { + condition.shift(); + condition = normailizeConstraint(condition); + if (condition[4] && condition[4].from) { + return [ + new FromNotPattern( + getParamType(condition[0], condition.scope), + condition[1] || "m", + parseConstraint(condition[2] || "true"), + condition[3] || {}, + parseConstraint(condition[4].from), + {scope: condition.scope, pattern: condition[2]} + ) + ]; + } else { + return [ + new NotPattern( + getParamType(condition[0], condition.scope), + condition[1] || "m", + parseConstraint(condition[2] || "true"), + condition[3] || {}, + {scope: condition.scope, pattern: condition[2]} + ) + ]; + } + }) + .containsAt("exists", 0, function (condition) { + condition.shift(); + condition = normailizeConstraint(condition); + if (condition[4] && condition[4].from) { + return [ + new FromExistsPattern( + getParamType(condition[0], condition.scope), + condition[1] || "m", + parseConstraint(condition[2] || "true"), + condition[3] || {}, + parseConstraint(condition[4].from), + {scope: condition.scope, pattern: condition[2]} + ) + ]; + } else { + return [ + new ExistsPattern( + getParamType(condition[0], condition.scope), + condition[1] || "m", + parseConstraint(condition[2] || "true"), + condition[3] || {}, + {scope: condition.scope, pattern: condition[2]} + ) + ]; + } + }) + .def(function (condition) { + if (typeof condition === 'function') { + return [condition]; + } + condition = normailizeConstraint(condition); + if (condition[4] && condition[4].from) { + return [ + new FromPattern( + getParamType(condition[0], condition.scope), + condition[1] || "m", + parseConstraint(condition[2] || "true"), + condition[3] || {}, + parseConstraint(condition[4].from), + {scope: condition.scope, pattern: condition[2]} + ) + ]; + } else { + return [ + new ObjectPattern( + getParamType(condition[0], condition.scope), + condition[1] || "m", + parseConstraint(condition[2] || "true"), + condition[3] || {}, + {scope: condition.scope, pattern: condition[2]} + ) + ]; + } + }).switcher(); + +var Rule = declare({ + instance: { + constructor: function (name, options, pattern, cb) { + this.name = name; + this.pattern = pattern; + this.cb = cb; + if (options.agendaGroup) { + this.agendaGroup = options.agendaGroup; + this.autoFocus = extd.isBoolean(options.autoFocus) ? options.autoFocus : false; + } + this.priority = options.priority || options.salience || 0; + }, + + fire: function (flow, match) { + var ret = new Promise(), cb = this.cb; + try { + if (cb.length === 3) { + cb.call(flow, match.factHash, flow, ret.resolve); + } else { + ret = cb.call(flow, match.factHash, flow); + } + } catch (e) { + ret.errback(e); + } + return ret; + } + } +}); + +function createRule(name, options, conditions, cb) { + if (isArray(options)) { + cb = conditions; + conditions = options; + } else { + options = options || {}; + } + var isRules = extd.every(conditions, function (cond) { + return isArray(cond); + }); + if (isRules && conditions.length === 1) { + conditions = conditions[0]; + isRules = false; + } + var rules = []; + var scope = options.scope || {}; + conditions.scope = scope; + if (isRules) { + var _mergePatterns = function (patt, i) { + if (!patterns[i]) { + patterns[i] = i === 0 ? [] : patterns[i - 1].slice(); + //remove dup + if (i !== 0) { + patterns[i].pop(); + } + patterns[i].push(patt); + } else { + extd(patterns).forEach(function (p) { + p.push(patt); + }); + } + + }; + var l = conditions.length, patterns = [], condition; + for (var i = 0; i < l; i++) { + condition = conditions[i]; + condition.scope = scope; + extd.forEach(parsePattern(condition), _mergePatterns); + + } + rules = extd.map(patterns, function (patterns) { + var compPat = null; + for (var i = 0; i < patterns.length; i++) { + if (compPat === null) { + compPat = new CompositePattern(patterns[i++], patterns[i]); + } else { + compPat = new CompositePattern(compPat, patterns[i]); + } + } + return new Rule(name, options, compPat, cb); + }); + } else { + rules = extd.map(parsePattern(conditions), function (cond) { + return new Rule(name, options, cond, cb); + }); + } + return rules; +} + +exports.createRule = createRule; + + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/nools/lib/workingMemory.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/nools/lib/workingMemory.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +var declare = __webpack_require__(/*! declare.js */ "./build/cht-core-4-6/node_modules/declare.js/index.js"), + LinkedList = __webpack_require__(/*! ./linkedList */ "./build/cht-core-4-6/node_modules/nools/lib/linkedList.js"), + InitialFact = __webpack_require__(/*! ./pattern */ "./build/cht-core-4-6/node_modules/nools/lib/pattern.js").InitialFact, + id = 0; + +var Fact = declare({ + + instance: { + constructor: function (obj) { + this.object = obj; + this.recency = 0; + this.id = id++; + }, + + equals: function (fact) { + return fact === this.object; + }, + + hashCode: function () { + return this.id; + } + } + +}); + +declare({ + + instance: { + + constructor: function () { + this.recency = 0; + this.facts = new LinkedList(); + }, + + dispose: function () { + this.facts.clear(); + }, + + getFacts: function () { + var head = {next: this.facts.head}, ret = [], i = 0, val; + while ((head = head.next)) { + if (!((val = head.data.object) instanceof InitialFact)) { + ret[i++] = val; + } + } + return ret; + }, + + getFactsByType: function (Type) { + var head = {next: this.facts.head}, ret = [], i = 0; + while ((head = head.next)) { + var val = head.data.object; + if (!(val instanceof InitialFact) && (val instanceof Type || val.constructor === Type)) { + ret[i++] = val; + } + } + return ret; + }, + + getFactHandle: function (o) { + var head = {next: this.facts.head}, ret; + while ((head = head.next)) { + var existingFact = head.data; + if (existingFact.equals(o)) { + return existingFact; + } + } + if (!ret) { + ret = new Fact(o); + ret.recency = this.recency++; + //this.facts.push(ret); + } + return ret; + }, + + modifyFact: function (fact) { + var head = {next: this.facts.head}; + while ((head = head.next)) { + var existingFact = head.data; + if (existingFact.equals(fact)) { + existingFact.recency = this.recency++; + return existingFact; + } + } + //if we made it here we did not find the fact + throw new Error("the fact to modify does not exist"); + }, + + assertFact: function (fact) { + var ret = new Fact(fact); + ret.recency = this.recency++; + this.facts.push(ret); + return ret; + }, + + retractFact: function (fact) { + var facts = this.facts, head = {next: facts.head}; + while ((head = head.next)) { + var existingFact = head.data; + if (existingFact.equals(fact)) { + facts.remove(head); + return existingFact; + } + } + //if we made it here we did not find the fact + throw new Error("the fact to remove does not exist"); + + + } + } + +}).as(exports, "WorkingMemory"); + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/object-extended/index.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/object-extended/index.js ***! + \******************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +(function () { + "use strict"; + /*global extended isExtended*/ + + function defineObject(extended, is, arr) { + + var deepEqual = is.deepEqual, + isString = is.isString, + isHash = is.isHash, + difference = arr.difference, + hasOwn = Object.prototype.hasOwnProperty, + isFunction = is.isFunction; + + function _merge(target, source) { + var name, s; + for (name in source) { + if (hasOwn.call(source, name)) { + s = source[name]; + if (!(name in target) || (target[name] !== s)) { + target[name] = s; + } + } + } + return target; + } + + function _deepMerge(target, source) { + var name, s, t; + for (name in source) { + if (hasOwn.call(source, name)) { + s = source[name]; + t = target[name]; + if (!deepEqual(t, s)) { + if (isHash(t) && isHash(s)) { + target[name] = _deepMerge(t, s); + } else if (isHash(s)) { + target[name] = _deepMerge({}, s); + } else { + target[name] = s; + } + } + } + } + return target; + } + + + function merge(obj) { + if (!obj) { + obj = {}; + } + for (var i = 1, l = arguments.length; i < l; i++) { + _merge(obj, arguments[i]); + } + return obj; // Object + } + + function deepMerge(obj) { + if (!obj) { + obj = {}; + } + for (var i = 1, l = arguments.length; i < l; i++) { + _deepMerge(obj, arguments[i]); + } + return obj; // Object + } + + + function extend(parent, child) { + var proto = parent.prototype || parent; + merge(proto, child); + return parent; + } + + function forEach(hash, iterator, scope) { + if (!isHash(hash) || !isFunction(iterator)) { + throw new TypeError(); + } + var objKeys = keys(hash), key; + for (var i = 0, len = objKeys.length; i < len; ++i) { + key = objKeys[i]; + iterator.call(scope || hash, hash[key], key, hash); + } + return hash; + } + + function filter(hash, iterator, scope) { + if (!isHash(hash) || !isFunction(iterator)) { + throw new TypeError(); + } + var objKeys = keys(hash), key, value, ret = {}; + for (var i = 0, len = objKeys.length; i < len; ++i) { + key = objKeys[i]; + value = hash[key]; + if (iterator.call(scope || hash, value, key, hash)) { + ret[key] = value; + } + } + return ret; + } + + function values(hash) { + if (!isHash(hash)) { + throw new TypeError(); + } + var objKeys = keys(hash), ret = []; + for (var i = 0, len = objKeys.length; i < len; ++i) { + ret.push(hash[objKeys[i]]); + } + return ret; + } + + + function keys(hash) { + if (!isHash(hash)) { + throw new TypeError(); + } + var ret = []; + for (var i in hash) { + if (hasOwn.call(hash, i)) { + ret.push(i); + } + } + return ret; + } + + function invert(hash) { + if (!isHash(hash)) { + throw new TypeError(); + } + var objKeys = keys(hash), key, ret = {}; + for (var i = 0, len = objKeys.length; i < len; ++i) { + key = objKeys[i]; + ret[hash[key]] = key; + } + return ret; + } + + function toArray(hash) { + if (!isHash(hash)) { + throw new TypeError(); + } + var objKeys = keys(hash), key, ret = []; + for (var i = 0, len = objKeys.length; i < len; ++i) { + key = objKeys[i]; + ret.push([key, hash[key]]); + } + return ret; + } + + function omit(hash, omitted) { + if (!isHash(hash)) { + throw new TypeError(); + } + if (isString(omitted)) { + omitted = [omitted]; + } + var objKeys = difference(keys(hash), omitted), key, ret = {}; + for (var i = 0, len = objKeys.length; i < len; ++i) { + key = objKeys[i]; + ret[key] = hash[key]; + } + return ret; + } + + var hash = { + forEach: forEach, + filter: filter, + invert: invert, + values: values, + toArray: toArray, + keys: keys, + omit: omit + }; + + + var obj = { + extend: extend, + merge: merge, + deepMerge: deepMerge, + omit: omit + }; + + var ret = extended.define(is.isObject, obj).define(isHash, hash).define(is.isFunction, {extend: extend}).expose({hash: hash}).expose(obj); + var orig = ret.extend; + ret.extend = function __extend() { + if (arguments.length === 1) { + return orig.extend.apply(ret, arguments); + } else { + extend.apply(null, arguments); + } + }; + return ret; + + } + + if (true) { + if ( true && module.exports) { + module.exports = defineObject(__webpack_require__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js"), __webpack_require__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js"), __webpack_require__(/*! array-extended */ "./build/cht-core-4-6/node_modules/array-extended/index.js")); + + } + } else {} + +}).call(this); + + + + + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/promise-extended/index.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/promise-extended/index.js ***! + \*******************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +(function () { + "use strict"; + /*global setImmediate, MessageChannel*/ + + + function definePromise(declare, extended, array, is, fn, args) { + + var forEach = array.forEach, + isUndefinedOrNull = is.isUndefinedOrNull, + isArray = is.isArray, + isFunction = is.isFunction, + isBoolean = is.isBoolean, + bind = fn.bind, + bindIgnore = fn.bindIgnore, + argsToArray = args.argsToArray; + + function createHandler(fn, promise) { + return function _handler() { + try { + when(fn.apply(null, arguments)) + .addCallback(promise) + .addErrback(promise); + } catch (e) { + promise.errback(e); + } + }; + } + + var nextTick; + if (typeof setImmediate === "function") { + // In IE10, or use https://github.com/NobleJS/setImmediate + if (typeof window !== "undefined") { + nextTick = setImmediate.bind(window); + } else { + nextTick = setImmediate; + } + } else if (typeof process !== "undefined") { + // node + nextTick = function (cb) { + process.nextTick(cb); + }; + } else if (typeof MessageChannel !== "undefined") { + // modern browsers + // http://www.nonblocking.io/2011/06/windownexttick.html + var channel = new MessageChannel(); + // linked list of tasks (single, with head node) + var head = {}, tail = head; + channel.port1.onmessage = function () { + head = head.next; + var task = head.task; + delete head.task; + task(); + }; + nextTick = function (task) { + tail = tail.next = {task: task}; + channel.port2.postMessage(0); + }; + } else { + // old browsers + nextTick = function (task) { + setTimeout(task, 0); + }; + } + + + //noinspection JSHint + var Promise = declare({ + instance: { + __fired: false, + + __results: null, + + __error: null, + + __errorCbs: null, + + __cbs: null, + + constructor: function () { + this.__errorCbs = []; + this.__cbs = []; + fn.bindAll(this, ["callback", "errback", "resolve", "classic", "__resolve", "addCallback", "addErrback"]); + }, + + __resolve: function () { + if (!this.__fired) { + this.__fired = true; + var cbs = this.__error ? this.__errorCbs : this.__cbs, + len = cbs.length, i, + results = this.__error || this.__results; + for (i = 0; i < len; i++) { + this.__callNextTick(cbs[i], results); + } + + } + }, + + __callNextTick: function (cb, results) { + nextTick(function () { + cb.apply(this, results); + }); + }, + + addCallback: function (cb) { + if (cb) { + if (isPromiseLike(cb) && cb.callback) { + cb = cb.callback; + } + if (this.__fired && this.__results) { + this.__callNextTick(cb, this.__results); + } else { + this.__cbs.push(cb); + } + } + return this; + }, + + + addErrback: function (cb) { + if (cb) { + if (isPromiseLike(cb) && cb.errback) { + cb = cb.errback; + } + if (this.__fired && this.__error) { + this.__callNextTick(cb, this.__error); + } else { + this.__errorCbs.push(cb); + } + } + return this; + }, + + callback: function (args) { + if (!this.__fired) { + this.__results = arguments; + this.__resolve(); + } + return this.promise(); + }, + + errback: function (args) { + if (!this.__fired) { + this.__error = arguments; + this.__resolve(); + } + return this.promise(); + }, + + resolve: function (err, args) { + if (err) { + this.errback(err); + } else { + this.callback.apply(this, argsToArray(arguments, 1)); + } + return this; + }, + + classic: function (cb) { + if ("function" === typeof cb) { + this.addErrback(function (err) { + cb(err); + }); + this.addCallback(function () { + cb.apply(this, [null].concat(argsToArray(arguments))); + }); + } + return this; + }, + + then: function (callback, errback) { + + var promise = new Promise(), errorHandler = promise; + if (isFunction(errback)) { + errorHandler = createHandler(errback, promise); + } + this.addErrback(errorHandler); + if (isFunction(callback)) { + this.addCallback(createHandler(callback, promise)); + } else { + this.addCallback(promise); + } + + return promise.promise(); + }, + + both: function (callback) { + return this.then(callback, callback); + }, + + promise: function () { + var ret = { + then: bind(this, "then"), + both: bind(this, "both"), + promise: function () { + return ret; + } + }; + forEach(["addCallback", "addErrback", "classic"], function (action) { + ret[action] = bind(this, function () { + this[action].apply(this, arguments); + return ret; + }); + }, this); + + return ret; + } + + + } + }); + + + var PromiseList = Promise.extend({ + instance: { + + /*@private*/ + __results: null, + + /*@private*/ + __errors: null, + + /*@private*/ + __promiseLength: 0, + + /*@private*/ + __defLength: 0, + + /*@private*/ + __firedLength: 0, + + normalizeResults: false, + + constructor: function (defs, normalizeResults) { + this.__errors = []; + this.__results = []; + this.normalizeResults = isBoolean(normalizeResults) ? normalizeResults : false; + this._super(arguments); + if (defs && defs.length) { + this.__defLength = defs.length; + forEach(defs, this.__addPromise, this); + } else { + this.__resolve(); + } + }, + + __addPromise: function (promise, i) { + promise.then( + bind(this, function () { + var args = argsToArray(arguments); + args.unshift(i); + this.callback.apply(this, args); + }), + bind(this, function () { + var args = argsToArray(arguments); + args.unshift(i); + this.errback.apply(this, args); + }) + ); + }, + + __resolve: function () { + if (!this.__fired) { + this.__fired = true; + var cbs = this.__errors.length ? this.__errorCbs : this.__cbs, + len = cbs.length, i, + results = this.__errors.length ? this.__errors : this.__results; + for (i = 0; i < len; i++) { + this.__callNextTick(cbs[i], results); + } + + } + }, + + __callNextTick: function (cb, results) { + nextTick(function () { + cb.apply(null, [results]); + }); + }, + + addCallback: function (cb) { + if (cb) { + if (isPromiseLike(cb) && cb.callback) { + cb = bind(cb, "callback"); + } + if (this.__fired && !this.__errors.length) { + this.__callNextTick(cb, this.__results); + } else { + this.__cbs.push(cb); + } + } + return this; + }, + + addErrback: function (cb) { + if (cb) { + if (isPromiseLike(cb) && cb.errback) { + cb = bind(cb, "errback"); + } + if (this.__fired && this.__errors.length) { + this.__callNextTick(cb, this.__errors); + } else { + this.__errorCbs.push(cb); + } + } + return this; + }, + + + callback: function (i) { + if (this.__fired) { + throw new Error("Already fired!"); + } + var args = argsToArray(arguments); + if (this.normalizeResults) { + args = args.slice(1); + args = args.length === 1 ? args.pop() : args; + } + this.__results[i] = args; + this.__firedLength++; + if (this.__firedLength === this.__defLength) { + this.__resolve(); + } + return this.promise(); + }, + + + errback: function (i) { + if (this.__fired) { + throw new Error("Already fired!"); + } + var args = argsToArray(arguments); + if (this.normalizeResults) { + args = args.slice(1); + args = args.length === 1 ? args.pop() : args; + } + this.__errors[i] = args; + this.__firedLength++; + if (this.__firedLength === this.__defLength) { + this.__resolve(); + } + return this.promise(); + } + + } + }); + + + function callNext(list, results, propogate) { + var ret = new Promise().callback(); + forEach(list, function (listItem) { + ret = ret.then(propogate ? listItem : bindIgnore(null, listItem)); + if (!propogate) { + ret = ret.then(function (res) { + results.push(res); + return results; + }); + } + }); + return ret; + } + + function isPromiseLike(obj) { + return !isUndefinedOrNull(obj) && (isFunction(obj.then)); + } + + function wrapThenPromise(p) { + var ret = new Promise(); + p.then(bind(ret, "callback"), bind(ret, "errback")); + return ret.promise(); + } + + function when(args) { + var p; + args = argsToArray(arguments); + if (!args.length) { + p = new Promise().callback(args).promise(); + } else if (args.length === 1) { + args = args.pop(); + if (isPromiseLike(args)) { + if (args.addCallback && args.addErrback) { + p = new Promise(); + args.addCallback(p.callback); + args.addErrback(p.errback); + } else { + p = wrapThenPromise(args); + } + } else if (isArray(args) && array.every(args, isPromiseLike)) { + p = new PromiseList(args, true).promise(); + } else { + p = new Promise().callback(args); + } + } else { + p = new PromiseList(array.map(args, function (a) { + return when(a); + }), true).promise(); + } + return p; + + } + + function wrap(fn, scope) { + return function _wrap() { + var ret = new Promise(); + var args = argsToArray(arguments); + args.push(ret.resolve); + fn.apply(scope || this, args); + return ret.promise(); + }; + } + + function serial(list) { + if (isArray(list)) { + return callNext(list, [], false); + } else { + throw new Error("When calling promise.serial the first argument must be an array"); + } + } + + + function chain(list) { + if (isArray(list)) { + return callNext(list, [], true); + } else { + throw new Error("When calling promise.serial the first argument must be an array"); + } + } + + + function wait(args, fn) { + args = argsToArray(arguments); + var resolved = false; + fn = args.pop(); + var p = when(args); + return function waiter() { + if (!resolved) { + args = arguments; + return p.then(bind(this, function doneWaiting() { + resolved = true; + return fn.apply(this, args); + })); + } else { + return when(fn.apply(this, arguments)); + } + }; + } + + function createPromise() { + return new Promise(); + } + + function createPromiseList(promises) { + return new PromiseList(promises, true).promise(); + } + + function createRejected(val) { + return createPromise().errback(val); + } + + function createResolved(val) { + return createPromise().callback(val); + } + + + return extended + .define({ + isPromiseLike: isPromiseLike + }).expose({ + isPromiseLike: isPromiseLike, + when: when, + wrap: wrap, + wait: wait, + serial: serial, + chain: chain, + Promise: Promise, + PromiseList: PromiseList, + promise: createPromise, + defer: createPromise, + deferredList: createPromiseList, + reject: createRejected, + resolve: createResolved + }); + + } + + if (true) { + if ( true && module.exports) { + module.exports = definePromise(__webpack_require__(/*! declare.js */ "./build/cht-core-4-6/node_modules/declare.js/index.js"), __webpack_require__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js"), __webpack_require__(/*! array-extended */ "./build/cht-core-4-6/node_modules/array-extended/index.js"), __webpack_require__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js"), __webpack_require__(/*! function-extended */ "./build/cht-core-4-6/node_modules/function-extended/index.js"), __webpack_require__(/*! arguments-extended */ "./build/cht-core-4-6/node_modules/arguments-extended/index.js")); + } + } else {} + +}).call(this); + + + + + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/string-extended/index.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/string-extended/index.js ***! + \******************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +(function () { + "use strict"; + + function defineString(extended, is, date, arr) { + + var stringify; + if (typeof JSON === "undefined") { + /* + json2.js + 2012-10-08 + + Public Domain. + + NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + */ + + (function () { + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + var isPrimitive = is.tester().isString().isNumber().isBoolean().tester(); + + function toJSON(obj) { + if (is.isDate(obj)) { + return isFinite(obj.valueOf()) ? obj.getUTCFullYear() + '-' + + f(obj.getUTCMonth() + 1) + '-' + + f(obj.getUTCDate()) + 'T' + + f(obj.getUTCHours()) + ':' + + f(obj.getUTCMinutes()) + ':' + + f(obj.getUTCSeconds()) + 'Z' + : null; + } else if (isPrimitive(obj)) { + return obj.valueOf(); + } + return obj; + } + + var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + gap, + indent, + meta = { // table of character substitutions + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '"': '\\"', + '\\': '\\\\' + }, + rep; + + + function quote(string) { + escapable.lastIndex = 0; + return escapable.test(string) ? '"' + string.replace(escapable, function (a) { + var c = meta[a]; + return typeof c === 'string' ? c : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }) + '"' : '"' + string + '"'; + } + + + function str(key, holder) { + + var i, k, v, length, mind = gap, partial, value = holder[key]; + if (value) { + value = toJSON(value); + } + if (typeof rep === 'function') { + value = rep.call(holder, key, value); + } + switch (typeof value) { + case 'string': + return quote(value); + case 'number': + return isFinite(value) ? String(value) : 'null'; + case 'boolean': + case 'null': + return String(value); + case 'object': + if (!value) { + return 'null'; + } + gap += indent; + partial = []; + if (Object.prototype.toString.apply(value) === '[object Array]') { + length = value.length; + for (i = 0; i < length; i += 1) { + partial[i] = str(i, value) || 'null'; + } + v = partial.length === 0 ? '[]' : gap ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' : '[' + partial.join(',') + ']'; + gap = mind; + return v; + } + if (rep && typeof rep === 'object') { + length = rep.length; + for (i = 0; i < length; i += 1) { + if (typeof rep[i] === 'string') { + k = rep[i]; + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } else { + for (k in value) { + if (Object.prototype.hasOwnProperty.call(value, k)) { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } + v = partial.length === 0 ? '{}' : gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' : '{' + partial.join(',') + '}'; + gap = mind; + return v; + } + } + + stringify = function (value, replacer, space) { + var i; + gap = ''; + indent = ''; + if (typeof space === 'number') { + for (i = 0; i < space; i += 1) { + indent += ' '; + } + } else if (typeof space === 'string') { + indent = space; + } + rep = replacer; + if (replacer && typeof replacer !== 'function' && + (typeof replacer !== 'object' || + typeof replacer.length !== 'number')) { + throw new Error('JSON.stringify'); + } + return str('', {'': value}); + }; + }()); + } else { + stringify = JSON.stringify; + } + + + var isHash = is.isHash, aSlice = Array.prototype.slice; + + var FORMAT_REGEX = /%((?:-?\+?.?\d*)?|(?:\[[^\[|\]]*\]))?([sjdDZ])/g; + var INTERP_REGEX = /\{(?:\[([^\[|\]]*)\])?(\w+)\}/g; + var STR_FORMAT = /(-?)(\+?)([A-Z|a-z|\W]?)([1-9][0-9]*)?$/; + var OBJECT_FORMAT = /([1-9][0-9]*)$/g; + + function formatString(string, format) { + var ret = string; + if (STR_FORMAT.test(format)) { + var match = format.match(STR_FORMAT); + var isLeftJustified = match[1], padChar = match[3], width = match[4]; + if (width) { + width = parseInt(width, 10); + if (ret.length < width) { + ret = pad(ret, width, padChar, isLeftJustified); + } else { + ret = truncate(ret, width); + } + } + } + return ret; + } + + function formatNumber(number, format) { + var ret; + if (is.isNumber(number)) { + ret = "" + number; + if (STR_FORMAT.test(format)) { + var match = format.match(STR_FORMAT); + var isLeftJustified = match[1], signed = match[2], padChar = match[3], width = match[4]; + if (signed) { + ret = (number > 0 ? "+" : "") + ret; + } + if (width) { + width = parseInt(width, 10); + if (ret.length < width) { + ret = pad(ret, width, padChar || "0", isLeftJustified); + } else { + ret = truncate(ret, width); + } + } + + } + } else { + throw new Error("stringExtended.format : when using %d the parameter must be a number!"); + } + return ret; + } + + function formatObject(object, format) { + var ret, match = format.match(OBJECT_FORMAT), spacing = 0; + if (match) { + spacing = parseInt(match[0], 10); + if (isNaN(spacing)) { + spacing = 0; + } + } + try { + ret = stringify(object, null, spacing); + } catch (e) { + throw new Error("stringExtended.format : Unable to parse json from ", object); + } + return ret; + } + + + var styles = { + //styles + bold: 1, + bright: 1, + italic: 3, + underline: 4, + blink: 5, + inverse: 7, + crossedOut: 9, + + red: 31, + green: 32, + yellow: 33, + blue: 34, + magenta: 35, + cyan: 36, + white: 37, + + redBackground: 41, + greenBackground: 42, + yellowBackground: 43, + blueBackground: 44, + magentaBackground: 45, + cyanBackground: 46, + whiteBackground: 47, + + encircled: 52, + overlined: 53, + grey: 90, + black: 90 + }; + + var characters = { + SMILEY: "☺", + SOLID_SMILEY: "☻", + HEART: "♥", + DIAMOND: "♦", + CLOVE: "♣", + SPADE: "♠", + DOT: "•", + SQUARE_CIRCLE: "◘", + CIRCLE: "○", + FILLED_SQUARE_CIRCLE: "◙", + MALE: "♂", + FEMALE: "♀", + EIGHT_NOTE: "♪", + DOUBLE_EIGHTH_NOTE: "♫", + SUN: "☼", + PLAY: "►", + REWIND: "◄", + UP_DOWN: "↕", + PILCROW: "¶", + SECTION: "§", + THICK_MINUS: "▬", + SMALL_UP_DOWN: "↨", + UP_ARROW: "↑", + DOWN_ARROW: "↓", + RIGHT_ARROW: "→", + LEFT_ARROW: "←", + RIGHT_ANGLE: "∟", + LEFT_RIGHT_ARROW: "↔", + TRIANGLE: "▲", + DOWN_TRIANGLE: "▼", + HOUSE: "⌂", + C_CEDILLA: "Ç", + U_UMLAUT: "ü", + E_ACCENT: "é", + A_LOWER_CIRCUMFLEX: "â", + A_LOWER_UMLAUT: "ä", + A_LOWER_GRAVE_ACCENT: "à", + A_LOWER_CIRCLE_OVER: "å", + C_LOWER_CIRCUMFLEX: "ç", + E_LOWER_CIRCUMFLEX: "ê", + E_LOWER_UMLAUT: "ë", + E_LOWER_GRAVE_ACCENT: "è", + I_LOWER_UMLAUT: "ï", + I_LOWER_CIRCUMFLEX: "î", + I_LOWER_GRAVE_ACCENT: "ì", + A_UPPER_UMLAUT: "Ä", + A_UPPER_CIRCLE: "Å", + E_UPPER_ACCENT: "É", + A_E_LOWER: "æ", + A_E_UPPER: "Æ", + O_LOWER_CIRCUMFLEX: "ô", + O_LOWER_UMLAUT: "ö", + O_LOWER_GRAVE_ACCENT: "ò", + U_LOWER_CIRCUMFLEX: "û", + U_LOWER_GRAVE_ACCENT: "ù", + Y_LOWER_UMLAUT: "ÿ", + O_UPPER_UMLAUT: "Ö", + U_UPPER_UMLAUT: "Ü", + CENTS: "¢", + POUND: "£", + YEN: "¥", + CURRENCY: "¤", + PTS: "₧", + FUNCTION: "ƒ", + A_LOWER_ACCENT: "á", + I_LOWER_ACCENT: "í", + O_LOWER_ACCENT: "ó", + U_LOWER_ACCENT: "ú", + N_LOWER_TILDE: "ñ", + N_UPPER_TILDE: "Ñ", + A_SUPER: "ª", + O_SUPER: "º", + UPSIDEDOWN_QUESTION: "¿", + SIDEWAYS_L: "⌐", + NEGATION: "¬", + ONE_HALF: "½", + ONE_FOURTH: "¼", + UPSIDEDOWN_EXCLAMATION: "¡", + DOUBLE_LEFT: "«", + DOUBLE_RIGHT: "»", + LIGHT_SHADED_BOX: "░", + MEDIUM_SHADED_BOX: "▒", + DARK_SHADED_BOX: "▓", + VERTICAL_LINE: "│", + MAZE__SINGLE_RIGHT_T: "┤", + MAZE_SINGLE_RIGHT_TOP: "┐", + MAZE_SINGLE_RIGHT_BOTTOM_SMALL: "┘", + MAZE_SINGLE_LEFT_TOP_SMALL: "┌", + MAZE_SINGLE_LEFT_BOTTOM_SMALL: "└", + MAZE_SINGLE_LEFT_T: "├", + MAZE_SINGLE_BOTTOM_T: "┴", + MAZE_SINGLE_TOP_T: "┬", + MAZE_SINGLE_CENTER: "┼", + MAZE_SINGLE_HORIZONTAL_LINE: "─", + MAZE_SINGLE_RIGHT_DOUBLECENTER_T: "╡", + MAZE_SINGLE_RIGHT_DOUBLE_BL: "╛", + MAZE_SINGLE_RIGHT_DOUBLE_T: "╢", + MAZE_SINGLE_RIGHT_DOUBLEBOTTOM_TOP: "╖", + MAZE_SINGLE_RIGHT_DOUBLELEFT_TOP: "╕", + MAZE_SINGLE_LEFT_DOUBLE_T: "╞", + MAZE_SINGLE_BOTTOM_DOUBLE_T: "╧", + MAZE_SINGLE_TOP_DOUBLE_T: "╤", + MAZE_SINGLE_TOP_DOUBLECENTER_T: "╥", + MAZE_SINGLE_BOTTOM_DOUBLECENTER_T: "╨", + MAZE_SINGLE_LEFT_DOUBLERIGHT_BOTTOM: "╘", + MAZE_SINGLE_LEFT_DOUBLERIGHT_TOP: "╒", + MAZE_SINGLE_LEFT_DOUBLEBOTTOM_TOP: "╓", + MAZE_SINGLE_LEFT_DOUBLETOP_BOTTOM: "╙", + MAZE_SINGLE_LEFT_TOP: "Γ", + MAZE_SINGLE_RIGHT_BOTTOM: "╜", + MAZE_SINGLE_LEFT_CENTER: "╟", + MAZE_SINGLE_DOUBLECENTER_CENTER: "╫", + MAZE_SINGLE_DOUBLECROSS_CENTER: "╪", + MAZE_DOUBLE_LEFT_CENTER: "╣", + MAZE_DOUBLE_VERTICAL: "║", + MAZE_DOUBLE_RIGHT_TOP: "╗", + MAZE_DOUBLE_RIGHT_BOTTOM: "╝", + MAZE_DOUBLE_LEFT_BOTTOM: "╚", + MAZE_DOUBLE_LEFT_TOP: "╔", + MAZE_DOUBLE_BOTTOM_T: "╩", + MAZE_DOUBLE_TOP_T: "╦", + MAZE_DOUBLE_LEFT_T: "╠", + MAZE_DOUBLE_HORIZONTAL: "═", + MAZE_DOUBLE_CROSS: "╬", + SOLID_RECTANGLE: "█", + THICK_LEFT_VERTICAL: "▌", + THICK_RIGHT_VERTICAL: "▐", + SOLID_SMALL_RECTANGLE_BOTTOM: "▄", + SOLID_SMALL_RECTANGLE_TOP: "▀", + PHI_UPPER: "Φ", + INFINITY: "∞", + INTERSECTION: "∩", + DEFINITION: "≡", + PLUS_MINUS: "±", + GT_EQ: "≥", + LT_EQ: "≤", + THEREFORE: "⌠", + SINCE: "∵", + DOESNOT_EXIST: "∄", + EXISTS: "∃", + FOR_ALL: "∀", + EXCLUSIVE_OR: "⊕", + BECAUSE: "⌡", + DIVIDE: "÷", + APPROX: "≈", + DEGREE: "°", + BOLD_DOT: "∙", + DOT_SMALL: "·", + CHECK: "√", + ITALIC_X: "✗", + SUPER_N: "ⁿ", + SQUARED: "²", + CUBED: "³", + SOLID_BOX: "■", + PERMILE: "‰", + REGISTERED_TM: "®", + COPYRIGHT: "©", + TRADEMARK: "™", + BETA: "β", + GAMMA: "γ", + ZETA: "ζ", + ETA: "η", + IOTA: "ι", + KAPPA: "κ", + LAMBDA: "λ", + NU: "ν", + XI: "ξ", + OMICRON: "ο", + RHO: "ρ", + UPSILON: "υ", + CHI_LOWER: "φ", + CHI_UPPER: "χ", + PSI: "ψ", + ALPHA: "α", + ESZETT: "ß", + PI: "π", + SIGMA_UPPER: "Σ", + SIGMA_LOWER: "σ", + MU: "µ", + TAU: "τ", + THETA: "Θ", + OMEGA: "Ω", + DELTA: "δ", + PHI_LOWER: "φ", + EPSILON: "ε" + }; + + function pad(string, length, ch, end) { + string = "" + string; //check for numbers + ch = ch || " "; + var strLen = string.length; + while (strLen < length) { + if (end) { + string += ch; + } else { + string = ch + string; + } + strLen++; + } + return string; + } + + function truncate(string, length, end) { + var ret = string; + if (is.isString(ret)) { + if (string.length > length) { + if (end) { + var l = string.length; + ret = string.substring(l - length, l); + } else { + ret = string.substring(0, length); + } + } + } else { + ret = truncate("" + ret, length); + } + return ret; + } + + function format(str, obj) { + if (obj instanceof Array) { + var i = 0, len = obj.length; + //find the matches + return str.replace(FORMAT_REGEX, function (m, format, type) { + var replacer, ret; + if (i < len) { + replacer = obj[i++]; + } else { + //we are out of things to replace with so + //just return the match? + return m; + } + if (m === "%s" || m === "%d" || m === "%D") { + //fast path! + ret = replacer + ""; + } else if (m === "%Z") { + ret = replacer.toUTCString(); + } else if (m === "%j") { + try { + ret = stringify(replacer); + } catch (e) { + throw new Error("stringExtended.format : Unable to parse json from ", replacer); + } + } else { + format = format.replace(/^\[|\]$/g, ""); + switch (type) { + case "s": + ret = formatString(replacer, format); + break; + case "d": + ret = formatNumber(replacer, format); + break; + case "j": + ret = formatObject(replacer, format); + break; + case "D": + ret = date.format(replacer, format); + break; + case "Z": + ret = date.format(replacer, format, true); + break; + } + } + return ret; + }); + } else if (isHash(obj)) { + return str.replace(INTERP_REGEX, function (m, format, value) { + value = obj[value]; + if (!is.isUndefined(value)) { + if (format) { + if (is.isString(value)) { + return formatString(value, format); + } else if (is.isNumber(value)) { + return formatNumber(value, format); + } else if (is.isDate(value)) { + return date.format(value, format); + } else if (is.isObject(value)) { + return formatObject(value, format); + } + } else { + return "" + value; + } + } + return m; + }); + } else { + var args = aSlice.call(arguments).slice(1); + return format(str, args); + } + } + + function toArray(testStr, delim) { + var ret = []; + if (testStr) { + if (testStr.indexOf(delim) > 0) { + ret = testStr.replace(/\s+/g, "").split(delim); + } + else { + ret.push(testStr); + } + } + return ret; + } + + function multiply(str, times) { + var ret = []; + if (times) { + for (var i = 0; i < times; i++) { + ret.push(str); + } + } + return ret.join(""); + } + + + function style(str, options) { + var ret, i, l; + if (options) { + if (is.isArray(str)) { + ret = []; + for (i = 0, l = str.length; i < l; i++) { + ret.push(style(str[i], options)); + } + } else if (options instanceof Array) { + ret = str; + for (i = 0, l = options.length; i < l; i++) { + ret = style(ret, options[i]); + } + } else if (options in styles) { + ret = '\x1B[' + styles[options] + 'm' + str + '\x1B[0m'; + } + } + return ret; + } + + function escape(str, except) { + return str.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, function (ch) { + if (except && arr.indexOf(except, ch) !== -1) { + return ch; + } + return "\\" + ch; + }); + } + + function trim(str) { + return str.replace(/^\s*|\s*$/g, ""); + } + + function trimLeft(str) { + return str.replace(/^\s*/, ""); + } + + function trimRight(str) { + return str.replace(/\s*$/, ""); + } + + function isEmpty(str) { + return str.length === 0; + } + + + var string = { + toArray: toArray, + pad: pad, + truncate: truncate, + multiply: multiply, + format: format, + style: style, + escape: escape, + trim: trim, + trimLeft: trimLeft, + trimRight: trimRight, + isEmpty: isEmpty + }; + return extended.define(is.isString, string).define(is.isArray, {style: style}).expose(string).expose({characters: characters}); + } + + if (true) { + if ( true && module.exports) { + module.exports = defineString(__webpack_require__(/*! extended */ "./build/cht-core-4-6/node_modules/extended/index.js"), __webpack_require__(/*! is-extended */ "./build/cht-core-4-6/node_modules/is-extended/index.js"), __webpack_require__(/*! date-extended */ "./build/cht-core-4-6/node_modules/date-extended/index.js"), __webpack_require__(/*! array-extended */ "./build/cht-core-4-6/node_modules/array-extended/index.js")); + + } + } else {} + +}).call(this); + + + + + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_baseCreate.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_baseCreate.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ baseCreate) +/* harmony export */ }); +/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isObject.js"); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); + + + +// Create a naked function reference for surrogate-prototype-swapping. +function ctor() { + return function(){}; +} + +// An internal function for creating a new object that inherits from another. +function baseCreate(prototype) { + if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__.default)(prototype)) return {}; + if (_setup_js__WEBPACK_IMPORTED_MODULE_1__.nativeCreate) return (0,_setup_js__WEBPACK_IMPORTED_MODULE_1__.nativeCreate)(prototype); + var Ctor = ctor(); + Ctor.prototype = prototype; + var result = new Ctor; + Ctor.prototype = null; + return result; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_baseIteratee.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_baseIteratee.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ baseIteratee) +/* harmony export */ }); +/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./identity.js */ "./build/cht-core-4-6/node_modules/underscore/modules/identity.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isObject.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isObject.js"); +/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArray.js"); +/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./matcher.js */ "./build/cht-core-4-6/node_modules/underscore/modules/matcher.js"); +/* harmony import */ var _property_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./property.js */ "./build/cht-core-4-6/node_modules/underscore/modules/property.js"); +/* harmony import */ var _optimizeCb_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_optimizeCb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js"); + + + + + + + + +// An internal function to generate callbacks that can be applied to each +// element in a collection, returning the desired result — either `_.identity`, +// an arbitrary callback, a property matcher, or a property accessor. +function baseIteratee(value, context, argCount) { + if (value == null) return _identity_js__WEBPACK_IMPORTED_MODULE_0__.default; + if ((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(value)) return (0,_optimizeCb_js__WEBPACK_IMPORTED_MODULE_6__.default)(value, context, argCount); + if ((0,_isObject_js__WEBPACK_IMPORTED_MODULE_2__.default)(value) && !(0,_isArray_js__WEBPACK_IMPORTED_MODULE_3__.default)(value)) return (0,_matcher_js__WEBPACK_IMPORTED_MODULE_4__.default)(value); + return (0,_property_js__WEBPACK_IMPORTED_MODULE_5__.default)(value); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_cb.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ cb) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); +/* harmony import */ var _baseIteratee_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseIteratee.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_baseIteratee.js"); +/* harmony import */ var _iteratee_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./iteratee.js */ "./build/cht-core-4-6/node_modules/underscore/modules/iteratee.js"); + + + + +// The function we call internally to generate a callback. It invokes +// `_.iteratee` if overridden, otherwise `baseIteratee`. +function cb(value, context, argCount) { + if (_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.iteratee !== _iteratee_js__WEBPACK_IMPORTED_MODULE_2__.default) return _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.iteratee(value, context); + return (0,_baseIteratee_js__WEBPACK_IMPORTED_MODULE_1__.default)(value, context, argCount); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_chainResult.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_chainResult.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ chainResult) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); + + +// Helper function to continue chaining intermediate results. +function chainResult(instance, obj) { + return instance._chain ? (0,_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj).chain() : obj; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_collectNonEnumProps.js": +/*!************************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_collectNonEnumProps.js ***! + \************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ collectNonEnumProps) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_has.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_has.js"); + + + + +// Internal helper to create a simple lookup structure. +// `collectNonEnumProps` used to depend on `_.contains`, but this led to +// circular imports. `emulatedSet` is a one-off solution that only works for +// arrays of strings. +function emulatedSet(keys) { + var hash = {}; + for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true; + return { + contains: function(key) { return hash[key] === true; }, + push: function(key) { + hash[key] = true; + return keys.push(key); + } + }; +} + +// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't +// be iterated by `for key in ...` and thus missed. Extends `keys` in place if +// needed. +function collectNonEnumProps(obj, keys) { + keys = emulatedSet(keys); + var nonEnumIdx = _setup_js__WEBPACK_IMPORTED_MODULE_0__.nonEnumerableProps.length; + var constructor = obj.constructor; + var proto = ((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(constructor) && constructor.prototype) || _setup_js__WEBPACK_IMPORTED_MODULE_0__.ObjProto; + + // Constructor is a special case. + var prop = 'constructor'; + if ((0,_has_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj, prop) && !keys.contains(prop)) keys.push(prop); + + while (nonEnumIdx--) { + prop = _setup_js__WEBPACK_IMPORTED_MODULE_0__.nonEnumerableProps[nonEnumIdx]; + if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) { + keys.push(prop); + } + } +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_createAssigner.js": +/*!*******************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_createAssigner.js ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ createAssigner) +/* harmony export */ }); +// An internal function for creating assigner functions. +function createAssigner(keysFunc, defaults) { + return function(obj) { + var length = arguments.length; + if (defaults) obj = Object(obj); + if (length < 2 || obj == null) return obj; + for (var index = 1; index < length; index++) { + var source = arguments[index], + keys = keysFunc(source), + l = keys.length; + for (var i = 0; i < l; i++) { + var key = keys[i]; + if (!defaults || obj[key] === void 0) obj[key] = source[key]; + } + } + return obj; + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_createEscaper.js": +/*!******************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_createEscaper.js ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ createEscaper) +/* harmony export */ }); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + +// Internal helper to generate functions for escaping and unescaping strings +// to/from HTML interpolation. +function createEscaper(map) { + var escaper = function(match) { + return map[match]; + }; + // Regexes for identifying a key that needs to be escaped. + var source = '(?:' + (0,_keys_js__WEBPACK_IMPORTED_MODULE_0__.default)(map).join('|') + ')'; + var testRegexp = RegExp(source); + var replaceRegexp = RegExp(source, 'g'); + return function(string) { + string = string == null ? '' : '' + string; + return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string; + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_createIndexFinder.js": +/*!**********************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_createIndexFinder.js ***! + \**********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ createIndexFinder) +/* harmony export */ }); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _isNaN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isNaN.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isNaN.js"); + + + + +// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions. +function createIndexFinder(dir, predicateFind, sortedIndex) { + return function(array, item, idx) { + var i = 0, length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(array); + if (typeof idx == 'number') { + if (dir > 0) { + i = idx >= 0 ? idx : Math.max(idx + length, i); + } else { + length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1; + } + } else if (sortedIndex && idx && length) { + idx = sortedIndex(array, item); + return array[idx] === item ? idx : -1; + } + if (item !== item) { + idx = predicateFind(_setup_js__WEBPACK_IMPORTED_MODULE_1__.slice.call(array, i, length), _isNaN_js__WEBPACK_IMPORTED_MODULE_2__.default); + return idx >= 0 ? idx + i : -1; + } + for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) { + if (array[idx] === item) return idx; + } + return -1; + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_createPredicateIndexFinder.js": +/*!*******************************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_createPredicateIndexFinder.js ***! + \*******************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ createPredicateIndexFinder) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); + + + +// Internal function to generate `_.findIndex` and `_.findLastIndex`. +function createPredicateIndexFinder(dir) { + return function(array, predicate, context) { + predicate = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(predicate, context); + var length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_1__.default)(array); + var index = dir > 0 ? 0 : length - 1; + for (; index >= 0 && index < length; index += dir) { + if (predicate(array[index], index, array)) return index; + } + return -1; + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_createReduce.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_createReduce.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ createReduce) +/* harmony export */ }); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); +/* harmony import */ var _optimizeCb_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_optimizeCb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js"); + + + + +// Internal helper to create a reducing function, iterating left or right. +function createReduce(dir) { + // Wrap code that reassigns argument variables in a separate function than + // the one that accesses `arguments.length` to avoid a perf hit. (#1991) + var reducer = function(obj, iteratee, memo, initial) { + var _keys = !(0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj) && (0,_keys_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj), + length = (_keys || obj).length, + index = dir > 0 ? 0 : length - 1; + if (!initial) { + memo = obj[_keys ? _keys[index] : index]; + index += dir; + } + for (; index >= 0 && index < length; index += dir) { + var currentKey = _keys ? _keys[index] : index; + memo = iteratee(memo, obj[currentKey], currentKey, obj); + } + return memo; + }; + + return function(obj, iteratee, memo, context) { + var initial = arguments.length >= 3; + return reducer(obj, (0,_optimizeCb_js__WEBPACK_IMPORTED_MODULE_2__.default)(iteratee, context, 4), memo, initial); + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_createSizePropertyCheck.js": +/*!****************************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_createSizePropertyCheck.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ createSizePropertyCheck) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); + + +// Common internal logic for `isArrayLike` and `isBufferLike`. +function createSizePropertyCheck(getSizeProperty) { + return function(collection) { + var sizeProperty = getSizeProperty(collection); + return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= _setup_js__WEBPACK_IMPORTED_MODULE_0__.MAX_ARRAY_INDEX; + } +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_deepGet.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_deepGet.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ deepGet) +/* harmony export */ }); +// Internal function to obtain a nested property in `obj` along `path`. +function deepGet(obj, path) { + var length = path.length; + for (var i = 0; i < length; i++) { + if (obj == null) return void 0; + obj = obj[path[i]]; + } + return length ? obj : void 0; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_escapeMap.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_escapeMap.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +// Internal list of HTML entities for escaping. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '`': '`' +}); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_executeBound.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_executeBound.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ executeBound) +/* harmony export */ }); +/* harmony import */ var _baseCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseCreate.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_baseCreate.js"); +/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isObject.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isObject.js"); + + + +// Internal function to execute `sourceFunc` bound to `context` with optional +// `args`. Determines whether to execute a function as a constructor or as a +// normal function. +function executeBound(sourceFunc, boundFunc, context, callingContext, args) { + if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args); + var self = (0,_baseCreate_js__WEBPACK_IMPORTED_MODULE_0__.default)(sourceFunc.prototype); + var result = sourceFunc.apply(self, args); + if ((0,_isObject_js__WEBPACK_IMPORTED_MODULE_1__.default)(result)) return result; + return self; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ flatten) +/* harmony export */ }); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArray.js"); +/* harmony import */ var _isArguments_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArguments.js"); + + + + + +// Internal implementation of a recursive `flatten` function. +function flatten(input, depth, strict, output) { + output = output || []; + if (!depth && depth !== 0) { + depth = Infinity; + } else if (depth <= 0) { + return output.concat(input); + } + var idx = output.length; + for (var i = 0, length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(input); i < length; i++) { + var value = input[i]; + if ((0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__.default)(value) && ((0,_isArray_js__WEBPACK_IMPORTED_MODULE_2__.default)(value) || (0,_isArguments_js__WEBPACK_IMPORTED_MODULE_3__.default)(value))) { + // Flatten current level of array or arguments object. + if (depth > 1) { + flatten(value, depth - 1, strict, output); + idx = output.length; + } else { + var j = 0, len = value.length; + while (j < len) output[idx++] = value[j++]; + } + } else if (!strict) { + output[idx++] = value; + } + } + return output; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_getByteLength.js": +/*!******************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_getByteLength.js ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _shallowProperty_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_shallowProperty.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_shallowProperty.js"); + + +// Internal helper to obtain the `byteLength` property of an object. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_shallowProperty_js__WEBPACK_IMPORTED_MODULE_0__.default)('byteLength')); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _shallowProperty_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_shallowProperty.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_shallowProperty.js"); + + +// Internal helper to obtain the `length` property of an object. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_shallowProperty_js__WEBPACK_IMPORTED_MODULE_0__.default)('length')); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_group.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_group.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ group) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./each.js */ "./build/cht-core-4-6/node_modules/underscore/modules/each.js"); + + + +// An internal function used for aggregate "group by" operations. +function group(behavior, partition) { + return function(obj, iteratee, context) { + var result = partition ? [[], []] : {}; + iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context); + (0,_each_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj, function(value, index) { + var key = iteratee(value, index, obj); + behavior(result, value, key); + }); + return result; + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_has.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_has.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ has) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); + + +// Internal function to check whether `key` is an own property name of `obj`. +function has(obj, key) { + return obj != null && _setup_js__WEBPACK_IMPORTED_MODULE_0__.hasOwnProperty.call(obj, key); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_hasObjectTag.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_hasObjectTag.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Object')); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createSizePropertyCheck_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createSizePropertyCheck.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createSizePropertyCheck.js"); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); + + + +// Internal helper for collection methods to determine whether a collection +// should be iterated as an array or as an object. +// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength +// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094 +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createSizePropertyCheck_js__WEBPACK_IMPORTED_MODULE_0__.default)(_getLength_js__WEBPACK_IMPORTED_MODULE_1__.default)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_isBufferLike.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_isBufferLike.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createSizePropertyCheck_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createSizePropertyCheck.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createSizePropertyCheck.js"); +/* harmony import */ var _getByteLength_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getByteLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getByteLength.js"); + + + +// Internal helper to determine whether we should spend extensive checks against +// `ArrayBuffer` et al. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createSizePropertyCheck_js__WEBPACK_IMPORTED_MODULE_0__.default)(_getByteLength_js__WEBPACK_IMPORTED_MODULE_1__.default)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_keyInObj.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_keyInObj.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ keyInObj) +/* harmony export */ }); +// Internal `_.pick` helper function to determine whether `key` is an enumerable +// property name of `obj`. +function keyInObj(value, key, obj) { + return key in obj; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_methodFingerprint.js": +/*!**********************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_methodFingerprint.js ***! + \**********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "ie11fingerprint": () => (/* binding */ ie11fingerprint), +/* harmony export */ "mapMethods": () => (/* binding */ mapMethods), +/* harmony export */ "weakMapMethods": () => (/* binding */ weakMapMethods), +/* harmony export */ "setMethods": () => (/* binding */ setMethods) +/* harmony export */ }); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _allKeys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./allKeys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js"); + + + + +// Since the regular `Object.prototype.toString` type tests don't work for +// some types in IE 11, we use a fingerprinting heuristic instead, based +// on the methods. It's not great, but it's the best we got. +// The fingerprint method lists are defined below. +function ie11fingerprint(methods) { + var length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(methods); + return function(obj) { + if (obj == null) return false; + // `Map`, `WeakMap` and `Set` have no enumerable keys. + var keys = (0,_allKeys_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj); + if ((0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(keys)) return false; + for (var i = 0; i < length; i++) { + if (!(0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj[methods[i]])) return false; + } + // If we are testing against `WeakMap`, we need to ensure that + // `obj` doesn't have a `forEach` method in order to distinguish + // it from a regular `Map`. + return methods !== weakMapMethods || !(0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj[forEachName]); + }; +} + +// In the interest of compact minification, we write +// each string in the fingerprints only once. +var forEachName = 'forEach', + hasName = 'has', + commonInit = ['clear', 'delete'], + mapTail = ['get', hasName, 'set']; + +// `Map`, `WeakMap` and `Set` each have slightly different +// combinations of the above sublists. +var mapMethods = commonInit.concat(forEachName, mapTail), + weakMapMethods = commonInit.concat(mapTail), + setMethods = ['add'].concat(commonInit, forEachName, hasName); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ optimizeCb) +/* harmony export */ }); +// Internal function that returns an efficient (for current engines) version +// of the passed-in callback, to be repeatedly applied in other Underscore +// functions. +function optimizeCb(func, context, argCount) { + if (context === void 0) return func; + switch (argCount == null ? 3 : argCount) { + case 1: return function(value) { + return func.call(context, value); + }; + // The 2-argument case is omitted because we’re not using it. + case 3: return function(value, index, collection) { + return func.call(context, value, index, collection); + }; + case 4: return function(accumulator, value, index, collection) { + return func.call(context, accumulator, value, index, collection); + }; + } + return function() { + return func.apply(context, arguments); + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_setup.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "VERSION": () => (/* binding */ VERSION), +/* harmony export */ "root": () => (/* binding */ root), +/* harmony export */ "ArrayProto": () => (/* binding */ ArrayProto), +/* harmony export */ "ObjProto": () => (/* binding */ ObjProto), +/* harmony export */ "SymbolProto": () => (/* binding */ SymbolProto), +/* harmony export */ "push": () => (/* binding */ push), +/* harmony export */ "slice": () => (/* binding */ slice), +/* harmony export */ "toString": () => (/* binding */ toString), +/* harmony export */ "hasOwnProperty": () => (/* binding */ hasOwnProperty), +/* harmony export */ "supportsArrayBuffer": () => (/* binding */ supportsArrayBuffer), +/* harmony export */ "supportsDataView": () => (/* binding */ supportsDataView), +/* harmony export */ "nativeIsArray": () => (/* binding */ nativeIsArray), +/* harmony export */ "nativeKeys": () => (/* binding */ nativeKeys), +/* harmony export */ "nativeCreate": () => (/* binding */ nativeCreate), +/* harmony export */ "nativeIsView": () => (/* binding */ nativeIsView), +/* harmony export */ "_isNaN": () => (/* binding */ _isNaN), +/* harmony export */ "_isFinite": () => (/* binding */ _isFinite), +/* harmony export */ "hasEnumBug": () => (/* binding */ hasEnumBug), +/* harmony export */ "nonEnumerableProps": () => (/* binding */ nonEnumerableProps), +/* harmony export */ "MAX_ARRAY_INDEX": () => (/* binding */ MAX_ARRAY_INDEX) +/* harmony export */ }); +// Current version. +var VERSION = '1.13.6'; + +// Establish the root object, `window` (`self`) in the browser, `global` +// on the server, or `this` in some virtual machines. We use `self` +// instead of `window` for `WebWorker` support. +var root = (typeof self == 'object' && self.self === self && self) || + (typeof global == 'object' && global.global === global && global) || + Function('return this')() || + {}; + +// Save bytes in the minified (but not gzipped) version: +var ArrayProto = Array.prototype, ObjProto = Object.prototype; +var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null; + +// Create quick reference variables for speed access to core prototypes. +var push = ArrayProto.push, + slice = ArrayProto.slice, + toString = ObjProto.toString, + hasOwnProperty = ObjProto.hasOwnProperty; + +// Modern feature detection. +var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined', + supportsDataView = typeof DataView !== 'undefined'; + +// All **ECMAScript 5+** native function implementations that we hope to use +// are declared here. +var nativeIsArray = Array.isArray, + nativeKeys = Object.keys, + nativeCreate = Object.create, + nativeIsView = supportsArrayBuffer && ArrayBuffer.isView; + +// Create references to these builtin functions because we override them. +var _isNaN = isNaN, + _isFinite = isFinite; + +// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed. +var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString'); +var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString', + 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; + +// The largest integer that can be represented exactly. +var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_shallowProperty.js": +/*!********************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_shallowProperty.js ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ shallowProperty) +/* harmony export */ }); +// Internal helper to generate a function to obtain property `key` from `obj`. +function shallowProperty(key) { + return function(obj) { + return obj == null ? void 0 : obj[key]; + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "hasStringTagBug": () => (/* binding */ hasStringTagBug), +/* harmony export */ "isIE11": () => (/* binding */ isIE11) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _hasObjectTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_hasObjectTag.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_hasObjectTag.js"); + + + +// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`. +// In IE 11, the most common among them, this problem also applies to +// `Map`, `WeakMap` and `Set`. +var hasStringTagBug = ( + _setup_js__WEBPACK_IMPORTED_MODULE_0__.supportsDataView && (0,_hasObjectTag_js__WEBPACK_IMPORTED_MODULE_1__.default)(new DataView(new ArrayBuffer(8))) + ), + isIE11 = (typeof Map !== 'undefined' && (0,_hasObjectTag_js__WEBPACK_IMPORTED_MODULE_1__.default)(new Map)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ tagTester) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); + + +// Internal function for creating a `toString`-based type tester. +function tagTester(name) { + var tag = '[object ' + name + ']'; + return function(obj) { + return _setup_js__WEBPACK_IMPORTED_MODULE_0__.toString.call(obj) === tag; + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_toBufferView.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_toBufferView.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toBufferView) +/* harmony export */ }); +/* harmony import */ var _getByteLength_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getByteLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getByteLength.js"); + + +// Internal function to wrap or shallow-copy an ArrayBuffer, +// typed array or DataView to a new view, reusing the buffer. +function toBufferView(bufferSource) { + return new Uint8Array( + bufferSource.buffer || bufferSource, + bufferSource.byteOffset || 0, + (0,_getByteLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(bufferSource) + ); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toPath) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); +/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPath.js */ "./build/cht-core-4-6/node_modules/underscore/modules/toPath.js"); + + + +// Internal wrapper for `_.toPath` to enable minification. +// Similar to `cb` for `_.iteratee`. +function toPath(path) { + return _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.toPath(path); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/_unescapeMap.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/_unescapeMap.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _invert_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invert.js */ "./build/cht-core-4-6/node_modules/underscore/modules/invert.js"); +/* harmony import */ var _escapeMap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_escapeMap.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_escapeMap.js"); + + + +// Internal list of HTML entities for unescaping. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_invert_js__WEBPACK_IMPORTED_MODULE_0__.default)(_escapeMap_js__WEBPACK_IMPORTED_MODULE_1__.default)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/after.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/after.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ after) +/* harmony export */ }); +// Returns a function that will only be executed on and after the Nth call. +function after(times, func) { + return function() { + if (--times < 1) { + return func.apply(this, arguments); + } + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ allKeys) +/* harmony export */ }); +/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isObject.js"); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _collectNonEnumProps_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_collectNonEnumProps.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_collectNonEnumProps.js"); + + + + +// Retrieve all the enumerable property names of an object. +function allKeys(obj) { + if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj)) return []; + var keys = []; + for (var key in obj) keys.push(key); + // Ahem, IE < 9. + if (_setup_js__WEBPACK_IMPORTED_MODULE_1__.hasEnumBug) (0,_collectNonEnumProps_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj, keys); + return keys; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/before.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/before.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ before) +/* harmony export */ }); +// Returns a function that will only be executed up to (but not including) the +// Nth call. +function before(times, func) { + var memo; + return function() { + if (--times > 0) { + memo = func.apply(this, arguments); + } + if (times <= 1) func = null; + return memo; + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/bind.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/bind.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _executeBound_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_executeBound.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_executeBound.js"); + + + + +// Create a function bound to a given object (assigning `this`, and arguments, +// optionally). +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(func, context, args) { + if (!(0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(func)) throw new TypeError('Bind must be called on a function'); + var bound = (0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(callArgs) { + return (0,_executeBound_js__WEBPACK_IMPORTED_MODULE_2__.default)(func, bound, context, this, args.concat(callArgs)); + }); + return bound; +})); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/bindAll.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/bindAll.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_flatten.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js"); +/* harmony import */ var _bind_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./bind.js */ "./build/cht-core-4-6/node_modules/underscore/modules/bind.js"); + + + + +// Bind a number of an object's methods to that object. Remaining arguments +// are the method names to be bound. Useful for ensuring that all callbacks +// defined on an object belong to it. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(obj, keys) { + keys = (0,_flatten_js__WEBPACK_IMPORTED_MODULE_1__.default)(keys, false, false); + var index = keys.length; + if (index < 1) throw new Error('bindAll must be passed function names'); + while (index--) { + var key = keys[index]; + obj[key] = (0,_bind_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj[key], obj); + } + return obj; +})); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/chain.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/chain.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ chain) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); + + +// Start chaining a wrapped Underscore object. +function chain(obj) { + var instance = (0,_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj); + instance._chain = true; + return instance; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/chunk.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/chunk.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ chunk) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); + + +// Chunk a single array into multiple arrays, each containing `count` or fewer +// items. +function chunk(array, count) { + if (count == null || count < 1) return []; + var result = []; + var i = 0, length = array.length; + while (i < length) { + result.push(_setup_js__WEBPACK_IMPORTED_MODULE_0__.slice.call(array, i, i += count)); + } + return result; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/clone.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/clone.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ clone) +/* harmony export */ }); +/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isObject.js"); +/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArray.js"); +/* harmony import */ var _extend_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./extend.js */ "./build/cht-core-4-6/node_modules/underscore/modules/extend.js"); + + + + +// Create a (shallow-cloned) duplicate of an object. +function clone(obj) { + if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj)) return obj; + return (0,_isArray_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) ? obj.slice() : (0,_extend_js__WEBPACK_IMPORTED_MODULE_2__.default)({}, obj); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/compact.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/compact.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ compact) +/* harmony export */ }); +/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./filter.js */ "./build/cht-core-4-6/node_modules/underscore/modules/filter.js"); + + +// Trim out all falsy values from an array. +function compact(array) { + return (0,_filter_js__WEBPACK_IMPORTED_MODULE_0__.default)(array, Boolean); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/compose.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/compose.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ compose) +/* harmony export */ }); +// Returns a function that is the composition of a list of functions, each +// consuming the return value of the function that follows. +function compose() { + var args = arguments; + var start = args.length - 1; + return function() { + var i = start; + var result = args[start].apply(this, arguments); + while (i--) result = args[i].call(this, result); + return result; + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/constant.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/constant.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ constant) +/* harmony export */ }); +// Predicate-generating function. Often useful outside of Underscore. +function constant(value) { + return function() { + return value; + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/contains.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/contains.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ contains) +/* harmony export */ }); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./values.js */ "./build/cht-core-4-6/node_modules/underscore/modules/values.js"); +/* harmony import */ var _indexOf_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./indexOf.js */ "./build/cht-core-4-6/node_modules/underscore/modules/indexOf.js"); + + + + +// Determine if the array or object contains a given item (using `===`). +function contains(obj, item, fromIndex, guard) { + if (!(0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj)) obj = (0,_values_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj); + if (typeof fromIndex != 'number' || guard) fromIndex = 0; + return (0,_indexOf_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj, item, fromIndex) >= 0; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/countBy.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/countBy.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _group_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_group.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_group.js"); +/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_has.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_has.js"); + + + +// Counts instances of an object that group by a certain criterion. Pass +// either a string attribute to count by, or a function that returns the +// criterion. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_group_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(result, value, key) { + if ((0,_has_js__WEBPACK_IMPORTED_MODULE_1__.default)(result, key)) result[key]++; else result[key] = 1; +})); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/create.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/create.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ create) +/* harmony export */ }); +/* harmony import */ var _baseCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseCreate.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_baseCreate.js"); +/* harmony import */ var _extendOwn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./extendOwn.js */ "./build/cht-core-4-6/node_modules/underscore/modules/extendOwn.js"); + + + +// Creates an object that inherits from the given prototype object. +// If additional properties are provided then they will be added to the +// created object. +function create(prototype, props) { + var result = (0,_baseCreate_js__WEBPACK_IMPORTED_MODULE_0__.default)(prototype); + if (props) (0,_extendOwn_js__WEBPACK_IMPORTED_MODULE_1__.default)(result, props); + return result; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/debounce.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/debounce.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ debounce) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _now_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./now.js */ "./build/cht-core-4-6/node_modules/underscore/modules/now.js"); + + + +// When a sequence of calls of the returned function ends, the argument +// function is triggered. The end of a sequence is defined by the `wait` +// parameter. If `immediate` is passed, the argument function will be +// triggered at the beginning of the sequence instead of at the end. +function debounce(func, wait, immediate) { + var timeout, previous, args, result, context; + + var later = function() { + var passed = (0,_now_js__WEBPACK_IMPORTED_MODULE_1__.default)() - previous; + if (wait > passed) { + timeout = setTimeout(later, wait - passed); + } else { + timeout = null; + if (!immediate) result = func.apply(context, args); + // This check is needed because `func` can recursively invoke `debounced`. + if (!timeout) args = context = null; + } + }; + + var debounced = (0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(_args) { + context = this; + args = _args; + previous = (0,_now_js__WEBPACK_IMPORTED_MODULE_1__.default)(); + if (!timeout) { + timeout = setTimeout(later, wait); + if (immediate) result = func.apply(context, args); + } + return result; + }); + + debounced.cancel = function() { + clearTimeout(timeout); + timeout = args = context = null; + }; + + return debounced; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/defaults.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/defaults.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createAssigner_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createAssigner.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createAssigner.js"); +/* harmony import */ var _allKeys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./allKeys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js"); + + + +// Fill in a given object with default properties. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createAssigner_js__WEBPACK_IMPORTED_MODULE_0__.default)(_allKeys_js__WEBPACK_IMPORTED_MODULE_1__.default, true)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/defer.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/defer.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _partial_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./partial.js */ "./build/cht-core-4-6/node_modules/underscore/modules/partial.js"); +/* harmony import */ var _delay_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./delay.js */ "./build/cht-core-4-6/node_modules/underscore/modules/delay.js"); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); + + + + +// Defers a function, scheduling it to run after the current call stack has +// cleared. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_partial_js__WEBPACK_IMPORTED_MODULE_0__.default)(_delay_js__WEBPACK_IMPORTED_MODULE_1__.default, _underscore_js__WEBPACK_IMPORTED_MODULE_2__.default, 1)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/delay.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/delay.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); + + +// Delays a function for the given number of milliseconds, and then calls +// it with the arguments supplied. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(func, wait, args) { + return setTimeout(function() { + return func.apply(null, args); + }, wait); +})); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/difference.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/difference.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_flatten.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js"); +/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./filter.js */ "./build/cht-core-4-6/node_modules/underscore/modules/filter.js"); +/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./contains.js */ "./build/cht-core-4-6/node_modules/underscore/modules/contains.js"); + + + + + +// Take the difference between one array and a number of other arrays. +// Only the elements present in just the first array will remain. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(array, rest) { + rest = (0,_flatten_js__WEBPACK_IMPORTED_MODULE_1__.default)(rest, true, true); + return (0,_filter_js__WEBPACK_IMPORTED_MODULE_2__.default)(array, function(value){ + return !(0,_contains_js__WEBPACK_IMPORTED_MODULE_3__.default)(rest, value); + }); +})); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/each.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/each.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ each) +/* harmony export */ }); +/* harmony import */ var _optimizeCb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_optimizeCb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js"); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + + + +// The cornerstone for collection functions, an `each` +// implementation, aka `forEach`. +// Handles raw objects in addition to array-likes. Treats all +// sparse array-likes as if they were dense. +function each(obj, iteratee, context) { + iteratee = (0,_optimizeCb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context); + var i, length; + if ((0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj)) { + for (i = 0, length = obj.length; i < length; i++) { + iteratee(obj[i], i, obj); + } + } else { + var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj); + for (i = 0, length = _keys.length; i < length; i++) { + iteratee(obj[_keys[i]], _keys[i], obj); + } + } + return obj; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/escape.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/escape.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createEscaper_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createEscaper.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createEscaper.js"); +/* harmony import */ var _escapeMap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_escapeMap.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_escapeMap.js"); + + + +// Function for escaping strings to HTML interpolation. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createEscaper_js__WEBPACK_IMPORTED_MODULE_0__.default)(_escapeMap_js__WEBPACK_IMPORTED_MODULE_1__.default)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/every.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/every.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ every) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + + + +// Determine whether all of the elements pass a truth test. +function every(obj, predicate, context) { + predicate = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(predicate, context); + var _keys = !(0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) && (0,_keys_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj), + length = (_keys || obj).length; + for (var index = 0; index < length; index++) { + var currentKey = _keys ? _keys[index] : index; + if (!predicate(obj[currentKey], currentKey, obj)) return false; + } + return true; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/extend.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/extend.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createAssigner_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createAssigner.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createAssigner.js"); +/* harmony import */ var _allKeys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./allKeys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js"); + + + +// Extend a given object with all the properties in passed-in object(s). +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createAssigner_js__WEBPACK_IMPORTED_MODULE_0__.default)(_allKeys_js__WEBPACK_IMPORTED_MODULE_1__.default)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/extendOwn.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/extendOwn.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createAssigner_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createAssigner.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createAssigner.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + + +// Assigns a given object with all the own properties in the passed-in +// object(s). +// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createAssigner_js__WEBPACK_IMPORTED_MODULE_0__.default)(_keys_js__WEBPACK_IMPORTED_MODULE_1__.default)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/filter.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/filter.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ filter) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./each.js */ "./build/cht-core-4-6/node_modules/underscore/modules/each.js"); + + + +// Return all the elements that pass a truth test. +function filter(obj, predicate, context) { + var results = []; + predicate = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(predicate, context); + (0,_each_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj, function(value, index, list) { + if (predicate(value, index, list)) results.push(value); + }); + return results; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/find.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/find.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ find) +/* harmony export */ }); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _findIndex_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./findIndex.js */ "./build/cht-core-4-6/node_modules/underscore/modules/findIndex.js"); +/* harmony import */ var _findKey_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./findKey.js */ "./build/cht-core-4-6/node_modules/underscore/modules/findKey.js"); + + + + +// Return the first value which passes a truth test. +function find(obj, predicate, context) { + var keyFinder = (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj) ? _findIndex_js__WEBPACK_IMPORTED_MODULE_1__.default : _findKey_js__WEBPACK_IMPORTED_MODULE_2__.default; + var key = keyFinder(obj, predicate, context); + if (key !== void 0 && key !== -1) return obj[key]; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/findIndex.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/findIndex.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createPredicateIndexFinder_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createPredicateIndexFinder.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createPredicateIndexFinder.js"); + + +// Returns the first index on an array-like that passes a truth test. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createPredicateIndexFinder_js__WEBPACK_IMPORTED_MODULE_0__.default)(1)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/findKey.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/findKey.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ findKey) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + + +// Returns the first key on an object that passes a truth test. +function findKey(obj, predicate, context) { + predicate = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(predicate, context); + var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj), key; + for (var i = 0, length = _keys.length; i < length; i++) { + key = _keys[i]; + if (predicate(obj[key], key, obj)) return key; + } +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/findLastIndex.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/findLastIndex.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createPredicateIndexFinder_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createPredicateIndexFinder.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createPredicateIndexFinder.js"); + + +// Returns the last index on an array-like that passes a truth test. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createPredicateIndexFinder_js__WEBPACK_IMPORTED_MODULE_0__.default)(-1)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/findWhere.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/findWhere.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ findWhere) +/* harmony export */ }); +/* harmony import */ var _find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./find.js */ "./build/cht-core-4-6/node_modules/underscore/modules/find.js"); +/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./matcher.js */ "./build/cht-core-4-6/node_modules/underscore/modules/matcher.js"); + + + +// Convenience version of a common use case of `_.find`: getting the first +// object containing specific `key:value` pairs. +function findWhere(obj, attrs) { + return (0,_find_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, (0,_matcher_js__WEBPACK_IMPORTED_MODULE_1__.default)(attrs)); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/first.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/first.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ first) +/* harmony export */ }); +/* harmony import */ var _initial_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./initial.js */ "./build/cht-core-4-6/node_modules/underscore/modules/initial.js"); + + +// Get the first element of an array. Passing **n** will return the first N +// values in the array. The **guard** check allows it to work with `_.map`. +function first(array, n, guard) { + if (array == null || array.length < 1) return n == null || guard ? void 0 : []; + if (n == null || guard) return array[0]; + return (0,_initial_js__WEBPACK_IMPORTED_MODULE_0__.default)(array, array.length - n); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/flatten.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/flatten.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ flatten) +/* harmony export */ }); +/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_flatten.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js"); + + +// Flatten out an array, either recursively (by default), or up to `depth`. +// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively. +function flatten(array, depth) { + return (0,_flatten_js__WEBPACK_IMPORTED_MODULE_0__.default)(array, depth, false); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/functions.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/functions.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ functions) +/* harmony export */ }); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); + + +// Return a sorted list of the function names available on the object. +function functions(obj) { + var names = []; + for (var key in obj) { + if ((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj[key])) names.push(key); + } + return names.sort(); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/get.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/get.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ get) +/* harmony export */ }); +/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_toPath.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js"); +/* harmony import */ var _deepGet_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_deepGet.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_deepGet.js"); +/* harmony import */ var _isUndefined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isUndefined.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isUndefined.js"); + + + + +// Get the value of the (deep) property on `path` from `object`. +// If any property in `path` does not exist or if the value is +// `undefined`, return `defaultValue` instead. +// The `path` is normalized through `_.toPath`. +function get(object, path, defaultValue) { + var value = (0,_deepGet_js__WEBPACK_IMPORTED_MODULE_1__.default)(object, (0,_toPath_js__WEBPACK_IMPORTED_MODULE_0__.default)(path)); + return (0,_isUndefined_js__WEBPACK_IMPORTED_MODULE_2__.default)(value) ? defaultValue : value; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/groupBy.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/groupBy.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _group_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_group.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_group.js"); +/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_has.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_has.js"); + + + +// Groups the object's values by a criterion. Pass either a string attribute +// to group by, or a function that returns the criterion. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_group_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(result, value, key) { + if ((0,_has_js__WEBPACK_IMPORTED_MODULE_1__.default)(result, key)) result[key].push(value); else result[key] = [value]; +})); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/has.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/has.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ has) +/* harmony export */ }); +/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_has.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_has.js"); +/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_toPath.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js"); + + + +// Shortcut function for checking if an object has a given property directly on +// itself (in other words, not on a prototype). Unlike the internal `has` +// function, this public version can also traverse nested properties. +function has(obj, path) { + path = (0,_toPath_js__WEBPACK_IMPORTED_MODULE_1__.default)(path); + var length = path.length; + for (var i = 0; i < length; i++) { + var key = path[i]; + if (!(0,_has_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, key)) return false; + obj = obj[key]; + } + return !!length; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/identity.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/identity.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ identity) +/* harmony export */ }); +// Keep the identity function around for default iteratees. +function identity(value) { + return value; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/index-all.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/index-all.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* reexport safe */ _index_default_js__WEBPACK_IMPORTED_MODULE_0__.default), +/* harmony export */ "VERSION": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.VERSION), +/* harmony export */ "after": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.after), +/* harmony export */ "all": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.all), +/* harmony export */ "allKeys": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.allKeys), +/* harmony export */ "any": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.any), +/* harmony export */ "assign": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.assign), +/* harmony export */ "before": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.before), +/* harmony export */ "bind": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.bind), +/* harmony export */ "bindAll": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.bindAll), +/* harmony export */ "chain": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.chain), +/* harmony export */ "chunk": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.chunk), +/* harmony export */ "clone": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.clone), +/* harmony export */ "collect": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.collect), +/* harmony export */ "compact": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.compact), +/* harmony export */ "compose": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.compose), +/* harmony export */ "constant": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.constant), +/* harmony export */ "contains": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.contains), +/* harmony export */ "countBy": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.countBy), +/* harmony export */ "create": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.create), +/* harmony export */ "debounce": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.debounce), +/* harmony export */ "defaults": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.defaults), +/* harmony export */ "defer": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.defer), +/* harmony export */ "delay": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.delay), +/* harmony export */ "detect": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.detect), +/* harmony export */ "difference": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.difference), +/* harmony export */ "drop": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.drop), +/* harmony export */ "each": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.each), +/* harmony export */ "escape": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.escape), +/* harmony export */ "every": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.every), +/* harmony export */ "extend": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.extend), +/* harmony export */ "extendOwn": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.extendOwn), +/* harmony export */ "filter": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.filter), +/* harmony export */ "find": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.find), +/* harmony export */ "findIndex": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.findIndex), +/* harmony export */ "findKey": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.findKey), +/* harmony export */ "findLastIndex": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.findLastIndex), +/* harmony export */ "findWhere": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.findWhere), +/* harmony export */ "first": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.first), +/* harmony export */ "flatten": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.flatten), +/* harmony export */ "foldl": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.foldl), +/* harmony export */ "foldr": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.foldr), +/* harmony export */ "forEach": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.forEach), +/* harmony export */ "functions": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.functions), +/* harmony export */ "get": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.get), +/* harmony export */ "groupBy": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.groupBy), +/* harmony export */ "has": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.has), +/* harmony export */ "head": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.head), +/* harmony export */ "identity": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.identity), +/* harmony export */ "include": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.include), +/* harmony export */ "includes": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.includes), +/* harmony export */ "indexBy": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.indexBy), +/* harmony export */ "indexOf": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.indexOf), +/* harmony export */ "initial": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.initial), +/* harmony export */ "inject": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.inject), +/* harmony export */ "intersection": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.intersection), +/* harmony export */ "invert": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.invert), +/* harmony export */ "invoke": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.invoke), +/* harmony export */ "isArguments": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isArguments), +/* harmony export */ "isArray": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isArray), +/* harmony export */ "isArrayBuffer": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isArrayBuffer), +/* harmony export */ "isBoolean": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isBoolean), +/* harmony export */ "isDataView": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isDataView), +/* harmony export */ "isDate": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isDate), +/* harmony export */ "isElement": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isElement), +/* harmony export */ "isEmpty": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isEmpty), +/* harmony export */ "isEqual": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isEqual), +/* harmony export */ "isError": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isError), +/* harmony export */ "isFinite": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isFinite), +/* harmony export */ "isFunction": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isFunction), +/* harmony export */ "isMap": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isMap), +/* harmony export */ "isMatch": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isMatch), +/* harmony export */ "isNaN": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isNaN), +/* harmony export */ "isNull": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isNull), +/* harmony export */ "isNumber": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isNumber), +/* harmony export */ "isObject": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isObject), +/* harmony export */ "isRegExp": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isRegExp), +/* harmony export */ "isSet": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isSet), +/* harmony export */ "isString": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isString), +/* harmony export */ "isSymbol": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isSymbol), +/* harmony export */ "isTypedArray": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isTypedArray), +/* harmony export */ "isUndefined": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isUndefined), +/* harmony export */ "isWeakMap": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isWeakMap), +/* harmony export */ "isWeakSet": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.isWeakSet), +/* harmony export */ "iteratee": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.iteratee), +/* harmony export */ "keys": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.keys), +/* harmony export */ "last": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.last), +/* harmony export */ "lastIndexOf": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.lastIndexOf), +/* harmony export */ "map": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.map), +/* harmony export */ "mapObject": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.mapObject), +/* harmony export */ "matcher": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.matcher), +/* harmony export */ "matches": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.matches), +/* harmony export */ "max": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.max), +/* harmony export */ "memoize": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.memoize), +/* harmony export */ "methods": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.methods), +/* harmony export */ "min": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.min), +/* harmony export */ "mixin": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.mixin), +/* harmony export */ "negate": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.negate), +/* harmony export */ "noop": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.noop), +/* harmony export */ "now": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.now), +/* harmony export */ "object": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.object), +/* harmony export */ "omit": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.omit), +/* harmony export */ "once": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.once), +/* harmony export */ "pairs": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.pairs), +/* harmony export */ "partial": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.partial), +/* harmony export */ "partition": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.partition), +/* harmony export */ "pick": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.pick), +/* harmony export */ "pluck": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.pluck), +/* harmony export */ "property": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.property), +/* harmony export */ "propertyOf": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.propertyOf), +/* harmony export */ "random": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.random), +/* harmony export */ "range": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.range), +/* harmony export */ "reduce": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.reduce), +/* harmony export */ "reduceRight": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.reduceRight), +/* harmony export */ "reject": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.reject), +/* harmony export */ "rest": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.rest), +/* harmony export */ "restArguments": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.restArguments), +/* harmony export */ "result": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.result), +/* harmony export */ "sample": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.sample), +/* harmony export */ "select": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.select), +/* harmony export */ "shuffle": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.shuffle), +/* harmony export */ "size": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.size), +/* harmony export */ "some": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.some), +/* harmony export */ "sortBy": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.sortBy), +/* harmony export */ "sortedIndex": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.sortedIndex), +/* harmony export */ "tail": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.tail), +/* harmony export */ "take": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.take), +/* harmony export */ "tap": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.tap), +/* harmony export */ "template": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.template), +/* harmony export */ "templateSettings": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.templateSettings), +/* harmony export */ "throttle": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.throttle), +/* harmony export */ "times": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.times), +/* harmony export */ "toArray": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.toArray), +/* harmony export */ "toPath": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.toPath), +/* harmony export */ "transpose": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.transpose), +/* harmony export */ "unescape": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.unescape), +/* harmony export */ "union": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.union), +/* harmony export */ "uniq": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.uniq), +/* harmony export */ "unique": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.unique), +/* harmony export */ "uniqueId": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.uniqueId), +/* harmony export */ "unzip": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.unzip), +/* harmony export */ "values": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.values), +/* harmony export */ "where": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.where), +/* harmony export */ "without": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.without), +/* harmony export */ "wrap": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.wrap), +/* harmony export */ "zip": () => (/* reexport safe */ _index_js__WEBPACK_IMPORTED_MODULE_1__.zip) +/* harmony export */ }); +/* harmony import */ var _index_default_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index-default.js */ "./build/cht-core-4-6/node_modules/underscore/modules/index-default.js"); +/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ "./build/cht-core-4-6/node_modules/underscore/modules/index.js"); +// ESM Exports +// =========== +// This module is the package entry point for ES module users. In other words, +// it is the module they are interfacing with when they import from the whole +// package instead of from a submodule, like this: +// +// ```js +// import { map } from 'underscore'; +// ``` +// +// The difference with `./index-default`, which is the package entry point for +// CommonJS, AMD and UMD users, is purely technical. In ES modules, named and +// default exports are considered to be siblings, so when you have a default +// export, its properties are not automatically available as named exports. For +// this reason, we re-export the named exports in addition to providing the same +// default export as in `./index-default`. + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/index-default.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/index-default.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "./build/cht-core-4-6/node_modules/underscore/modules/index.js"); +// Default Export +// ============== +// In this module, we mix our bundled exports into the `_` object and export +// the result. This is analogous to setting `module.exports = _` in CommonJS. +// Hence, this module is also the entry point of our UMD bundle and the package +// entry point for CommonJS and AMD users. In other words, this is (the source +// of) the module you are interfacing with when you do any of the following: +// +// ```js +// // CommonJS +// var _ = require('underscore'); +// +// // AMD +// define(['underscore'], function(_) {...}); +// +// // UMD in the browser +// // _ is available as a global variable +// ``` + + + +// Add all of the Underscore functions to the wrapper object. +var _ = (0,_index_js__WEBPACK_IMPORTED_MODULE_0__.mixin)(_index_js__WEBPACK_IMPORTED_MODULE_0__); +// Legacy Node.js API. +_._ = _; +// Export the Underscore API. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/index.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/index.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "VERSION": () => (/* reexport safe */ _setup_js__WEBPACK_IMPORTED_MODULE_0__.VERSION), +/* harmony export */ "restArguments": () => (/* reexport safe */ _restArguments_js__WEBPACK_IMPORTED_MODULE_1__.default), +/* harmony export */ "isObject": () => (/* reexport safe */ _isObject_js__WEBPACK_IMPORTED_MODULE_2__.default), +/* harmony export */ "isNull": () => (/* reexport safe */ _isNull_js__WEBPACK_IMPORTED_MODULE_3__.default), +/* harmony export */ "isUndefined": () => (/* reexport safe */ _isUndefined_js__WEBPACK_IMPORTED_MODULE_4__.default), +/* harmony export */ "isBoolean": () => (/* reexport safe */ _isBoolean_js__WEBPACK_IMPORTED_MODULE_5__.default), +/* harmony export */ "isElement": () => (/* reexport safe */ _isElement_js__WEBPACK_IMPORTED_MODULE_6__.default), +/* harmony export */ "isString": () => (/* reexport safe */ _isString_js__WEBPACK_IMPORTED_MODULE_7__.default), +/* harmony export */ "isNumber": () => (/* reexport safe */ _isNumber_js__WEBPACK_IMPORTED_MODULE_8__.default), +/* harmony export */ "isDate": () => (/* reexport safe */ _isDate_js__WEBPACK_IMPORTED_MODULE_9__.default), +/* harmony export */ "isRegExp": () => (/* reexport safe */ _isRegExp_js__WEBPACK_IMPORTED_MODULE_10__.default), +/* harmony export */ "isError": () => (/* reexport safe */ _isError_js__WEBPACK_IMPORTED_MODULE_11__.default), +/* harmony export */ "isSymbol": () => (/* reexport safe */ _isSymbol_js__WEBPACK_IMPORTED_MODULE_12__.default), +/* harmony export */ "isArrayBuffer": () => (/* reexport safe */ _isArrayBuffer_js__WEBPACK_IMPORTED_MODULE_13__.default), +/* harmony export */ "isDataView": () => (/* reexport safe */ _isDataView_js__WEBPACK_IMPORTED_MODULE_14__.default), +/* harmony export */ "isArray": () => (/* reexport safe */ _isArray_js__WEBPACK_IMPORTED_MODULE_15__.default), +/* harmony export */ "isFunction": () => (/* reexport safe */ _isFunction_js__WEBPACK_IMPORTED_MODULE_16__.default), +/* harmony export */ "isArguments": () => (/* reexport safe */ _isArguments_js__WEBPACK_IMPORTED_MODULE_17__.default), +/* harmony export */ "isFinite": () => (/* reexport safe */ _isFinite_js__WEBPACK_IMPORTED_MODULE_18__.default), +/* harmony export */ "isNaN": () => (/* reexport safe */ _isNaN_js__WEBPACK_IMPORTED_MODULE_19__.default), +/* harmony export */ "isTypedArray": () => (/* reexport safe */ _isTypedArray_js__WEBPACK_IMPORTED_MODULE_20__.default), +/* harmony export */ "isEmpty": () => (/* reexport safe */ _isEmpty_js__WEBPACK_IMPORTED_MODULE_21__.default), +/* harmony export */ "isMatch": () => (/* reexport safe */ _isMatch_js__WEBPACK_IMPORTED_MODULE_22__.default), +/* harmony export */ "isEqual": () => (/* reexport safe */ _isEqual_js__WEBPACK_IMPORTED_MODULE_23__.default), +/* harmony export */ "isMap": () => (/* reexport safe */ _isMap_js__WEBPACK_IMPORTED_MODULE_24__.default), +/* harmony export */ "isWeakMap": () => (/* reexport safe */ _isWeakMap_js__WEBPACK_IMPORTED_MODULE_25__.default), +/* harmony export */ "isSet": () => (/* reexport safe */ _isSet_js__WEBPACK_IMPORTED_MODULE_26__.default), +/* harmony export */ "isWeakSet": () => (/* reexport safe */ _isWeakSet_js__WEBPACK_IMPORTED_MODULE_27__.default), +/* harmony export */ "keys": () => (/* reexport safe */ _keys_js__WEBPACK_IMPORTED_MODULE_28__.default), +/* harmony export */ "allKeys": () => (/* reexport safe */ _allKeys_js__WEBPACK_IMPORTED_MODULE_29__.default), +/* harmony export */ "values": () => (/* reexport safe */ _values_js__WEBPACK_IMPORTED_MODULE_30__.default), +/* harmony export */ "pairs": () => (/* reexport safe */ _pairs_js__WEBPACK_IMPORTED_MODULE_31__.default), +/* harmony export */ "invert": () => (/* reexport safe */ _invert_js__WEBPACK_IMPORTED_MODULE_32__.default), +/* harmony export */ "functions": () => (/* reexport safe */ _functions_js__WEBPACK_IMPORTED_MODULE_33__.default), +/* harmony export */ "methods": () => (/* reexport safe */ _functions_js__WEBPACK_IMPORTED_MODULE_33__.default), +/* harmony export */ "extend": () => (/* reexport safe */ _extend_js__WEBPACK_IMPORTED_MODULE_34__.default), +/* harmony export */ "extendOwn": () => (/* reexport safe */ _extendOwn_js__WEBPACK_IMPORTED_MODULE_35__.default), +/* harmony export */ "assign": () => (/* reexport safe */ _extendOwn_js__WEBPACK_IMPORTED_MODULE_35__.default), +/* harmony export */ "defaults": () => (/* reexport safe */ _defaults_js__WEBPACK_IMPORTED_MODULE_36__.default), +/* harmony export */ "create": () => (/* reexport safe */ _create_js__WEBPACK_IMPORTED_MODULE_37__.default), +/* harmony export */ "clone": () => (/* reexport safe */ _clone_js__WEBPACK_IMPORTED_MODULE_38__.default), +/* harmony export */ "tap": () => (/* reexport safe */ _tap_js__WEBPACK_IMPORTED_MODULE_39__.default), +/* harmony export */ "get": () => (/* reexport safe */ _get_js__WEBPACK_IMPORTED_MODULE_40__.default), +/* harmony export */ "has": () => (/* reexport safe */ _has_js__WEBPACK_IMPORTED_MODULE_41__.default), +/* harmony export */ "mapObject": () => (/* reexport safe */ _mapObject_js__WEBPACK_IMPORTED_MODULE_42__.default), +/* harmony export */ "identity": () => (/* reexport safe */ _identity_js__WEBPACK_IMPORTED_MODULE_43__.default), +/* harmony export */ "constant": () => (/* reexport safe */ _constant_js__WEBPACK_IMPORTED_MODULE_44__.default), +/* harmony export */ "noop": () => (/* reexport safe */ _noop_js__WEBPACK_IMPORTED_MODULE_45__.default), +/* harmony export */ "toPath": () => (/* reexport safe */ _toPath_js__WEBPACK_IMPORTED_MODULE_46__.default), +/* harmony export */ "property": () => (/* reexport safe */ _property_js__WEBPACK_IMPORTED_MODULE_47__.default), +/* harmony export */ "propertyOf": () => (/* reexport safe */ _propertyOf_js__WEBPACK_IMPORTED_MODULE_48__.default), +/* harmony export */ "matcher": () => (/* reexport safe */ _matcher_js__WEBPACK_IMPORTED_MODULE_49__.default), +/* harmony export */ "matches": () => (/* reexport safe */ _matcher_js__WEBPACK_IMPORTED_MODULE_49__.default), +/* harmony export */ "times": () => (/* reexport safe */ _times_js__WEBPACK_IMPORTED_MODULE_50__.default), +/* harmony export */ "random": () => (/* reexport safe */ _random_js__WEBPACK_IMPORTED_MODULE_51__.default), +/* harmony export */ "now": () => (/* reexport safe */ _now_js__WEBPACK_IMPORTED_MODULE_52__.default), +/* harmony export */ "escape": () => (/* reexport safe */ _escape_js__WEBPACK_IMPORTED_MODULE_53__.default), +/* harmony export */ "unescape": () => (/* reexport safe */ _unescape_js__WEBPACK_IMPORTED_MODULE_54__.default), +/* harmony export */ "templateSettings": () => (/* reexport safe */ _templateSettings_js__WEBPACK_IMPORTED_MODULE_55__.default), +/* harmony export */ "template": () => (/* reexport safe */ _template_js__WEBPACK_IMPORTED_MODULE_56__.default), +/* harmony export */ "result": () => (/* reexport safe */ _result_js__WEBPACK_IMPORTED_MODULE_57__.default), +/* harmony export */ "uniqueId": () => (/* reexport safe */ _uniqueId_js__WEBPACK_IMPORTED_MODULE_58__.default), +/* harmony export */ "chain": () => (/* reexport safe */ _chain_js__WEBPACK_IMPORTED_MODULE_59__.default), +/* harmony export */ "iteratee": () => (/* reexport safe */ _iteratee_js__WEBPACK_IMPORTED_MODULE_60__.default), +/* harmony export */ "partial": () => (/* reexport safe */ _partial_js__WEBPACK_IMPORTED_MODULE_61__.default), +/* harmony export */ "bind": () => (/* reexport safe */ _bind_js__WEBPACK_IMPORTED_MODULE_62__.default), +/* harmony export */ "bindAll": () => (/* reexport safe */ _bindAll_js__WEBPACK_IMPORTED_MODULE_63__.default), +/* harmony export */ "memoize": () => (/* reexport safe */ _memoize_js__WEBPACK_IMPORTED_MODULE_64__.default), +/* harmony export */ "delay": () => (/* reexport safe */ _delay_js__WEBPACK_IMPORTED_MODULE_65__.default), +/* harmony export */ "defer": () => (/* reexport safe */ _defer_js__WEBPACK_IMPORTED_MODULE_66__.default), +/* harmony export */ "throttle": () => (/* reexport safe */ _throttle_js__WEBPACK_IMPORTED_MODULE_67__.default), +/* harmony export */ "debounce": () => (/* reexport safe */ _debounce_js__WEBPACK_IMPORTED_MODULE_68__.default), +/* harmony export */ "wrap": () => (/* reexport safe */ _wrap_js__WEBPACK_IMPORTED_MODULE_69__.default), +/* harmony export */ "negate": () => (/* reexport safe */ _negate_js__WEBPACK_IMPORTED_MODULE_70__.default), +/* harmony export */ "compose": () => (/* reexport safe */ _compose_js__WEBPACK_IMPORTED_MODULE_71__.default), +/* harmony export */ "after": () => (/* reexport safe */ _after_js__WEBPACK_IMPORTED_MODULE_72__.default), +/* harmony export */ "before": () => (/* reexport safe */ _before_js__WEBPACK_IMPORTED_MODULE_73__.default), +/* harmony export */ "once": () => (/* reexport safe */ _once_js__WEBPACK_IMPORTED_MODULE_74__.default), +/* harmony export */ "findKey": () => (/* reexport safe */ _findKey_js__WEBPACK_IMPORTED_MODULE_75__.default), +/* harmony export */ "findIndex": () => (/* reexport safe */ _findIndex_js__WEBPACK_IMPORTED_MODULE_76__.default), +/* harmony export */ "findLastIndex": () => (/* reexport safe */ _findLastIndex_js__WEBPACK_IMPORTED_MODULE_77__.default), +/* harmony export */ "sortedIndex": () => (/* reexport safe */ _sortedIndex_js__WEBPACK_IMPORTED_MODULE_78__.default), +/* harmony export */ "indexOf": () => (/* reexport safe */ _indexOf_js__WEBPACK_IMPORTED_MODULE_79__.default), +/* harmony export */ "lastIndexOf": () => (/* reexport safe */ _lastIndexOf_js__WEBPACK_IMPORTED_MODULE_80__.default), +/* harmony export */ "find": () => (/* reexport safe */ _find_js__WEBPACK_IMPORTED_MODULE_81__.default), +/* harmony export */ "detect": () => (/* reexport safe */ _find_js__WEBPACK_IMPORTED_MODULE_81__.default), +/* harmony export */ "findWhere": () => (/* reexport safe */ _findWhere_js__WEBPACK_IMPORTED_MODULE_82__.default), +/* harmony export */ "each": () => (/* reexport safe */ _each_js__WEBPACK_IMPORTED_MODULE_83__.default), +/* harmony export */ "forEach": () => (/* reexport safe */ _each_js__WEBPACK_IMPORTED_MODULE_83__.default), +/* harmony export */ "map": () => (/* reexport safe */ _map_js__WEBPACK_IMPORTED_MODULE_84__.default), +/* harmony export */ "collect": () => (/* reexport safe */ _map_js__WEBPACK_IMPORTED_MODULE_84__.default), +/* harmony export */ "reduce": () => (/* reexport safe */ _reduce_js__WEBPACK_IMPORTED_MODULE_85__.default), +/* harmony export */ "foldl": () => (/* reexport safe */ _reduce_js__WEBPACK_IMPORTED_MODULE_85__.default), +/* harmony export */ "inject": () => (/* reexport safe */ _reduce_js__WEBPACK_IMPORTED_MODULE_85__.default), +/* harmony export */ "reduceRight": () => (/* reexport safe */ _reduceRight_js__WEBPACK_IMPORTED_MODULE_86__.default), +/* harmony export */ "foldr": () => (/* reexport safe */ _reduceRight_js__WEBPACK_IMPORTED_MODULE_86__.default), +/* harmony export */ "filter": () => (/* reexport safe */ _filter_js__WEBPACK_IMPORTED_MODULE_87__.default), +/* harmony export */ "select": () => (/* reexport safe */ _filter_js__WEBPACK_IMPORTED_MODULE_87__.default), +/* harmony export */ "reject": () => (/* reexport safe */ _reject_js__WEBPACK_IMPORTED_MODULE_88__.default), +/* harmony export */ "every": () => (/* reexport safe */ _every_js__WEBPACK_IMPORTED_MODULE_89__.default), +/* harmony export */ "all": () => (/* reexport safe */ _every_js__WEBPACK_IMPORTED_MODULE_89__.default), +/* harmony export */ "some": () => (/* reexport safe */ _some_js__WEBPACK_IMPORTED_MODULE_90__.default), +/* harmony export */ "any": () => (/* reexport safe */ _some_js__WEBPACK_IMPORTED_MODULE_90__.default), +/* harmony export */ "contains": () => (/* reexport safe */ _contains_js__WEBPACK_IMPORTED_MODULE_91__.default), +/* harmony export */ "includes": () => (/* reexport safe */ _contains_js__WEBPACK_IMPORTED_MODULE_91__.default), +/* harmony export */ "include": () => (/* reexport safe */ _contains_js__WEBPACK_IMPORTED_MODULE_91__.default), +/* harmony export */ "invoke": () => (/* reexport safe */ _invoke_js__WEBPACK_IMPORTED_MODULE_92__.default), +/* harmony export */ "pluck": () => (/* reexport safe */ _pluck_js__WEBPACK_IMPORTED_MODULE_93__.default), +/* harmony export */ "where": () => (/* reexport safe */ _where_js__WEBPACK_IMPORTED_MODULE_94__.default), +/* harmony export */ "max": () => (/* reexport safe */ _max_js__WEBPACK_IMPORTED_MODULE_95__.default), +/* harmony export */ "min": () => (/* reexport safe */ _min_js__WEBPACK_IMPORTED_MODULE_96__.default), +/* harmony export */ "shuffle": () => (/* reexport safe */ _shuffle_js__WEBPACK_IMPORTED_MODULE_97__.default), +/* harmony export */ "sample": () => (/* reexport safe */ _sample_js__WEBPACK_IMPORTED_MODULE_98__.default), +/* harmony export */ "sortBy": () => (/* reexport safe */ _sortBy_js__WEBPACK_IMPORTED_MODULE_99__.default), +/* harmony export */ "groupBy": () => (/* reexport safe */ _groupBy_js__WEBPACK_IMPORTED_MODULE_100__.default), +/* harmony export */ "indexBy": () => (/* reexport safe */ _indexBy_js__WEBPACK_IMPORTED_MODULE_101__.default), +/* harmony export */ "countBy": () => (/* reexport safe */ _countBy_js__WEBPACK_IMPORTED_MODULE_102__.default), +/* harmony export */ "partition": () => (/* reexport safe */ _partition_js__WEBPACK_IMPORTED_MODULE_103__.default), +/* harmony export */ "toArray": () => (/* reexport safe */ _toArray_js__WEBPACK_IMPORTED_MODULE_104__.default), +/* harmony export */ "size": () => (/* reexport safe */ _size_js__WEBPACK_IMPORTED_MODULE_105__.default), +/* harmony export */ "pick": () => (/* reexport safe */ _pick_js__WEBPACK_IMPORTED_MODULE_106__.default), +/* harmony export */ "omit": () => (/* reexport safe */ _omit_js__WEBPACK_IMPORTED_MODULE_107__.default), +/* harmony export */ "first": () => (/* reexport safe */ _first_js__WEBPACK_IMPORTED_MODULE_108__.default), +/* harmony export */ "head": () => (/* reexport safe */ _first_js__WEBPACK_IMPORTED_MODULE_108__.default), +/* harmony export */ "take": () => (/* reexport safe */ _first_js__WEBPACK_IMPORTED_MODULE_108__.default), +/* harmony export */ "initial": () => (/* reexport safe */ _initial_js__WEBPACK_IMPORTED_MODULE_109__.default), +/* harmony export */ "last": () => (/* reexport safe */ _last_js__WEBPACK_IMPORTED_MODULE_110__.default), +/* harmony export */ "rest": () => (/* reexport safe */ _rest_js__WEBPACK_IMPORTED_MODULE_111__.default), +/* harmony export */ "tail": () => (/* reexport safe */ _rest_js__WEBPACK_IMPORTED_MODULE_111__.default), +/* harmony export */ "drop": () => (/* reexport safe */ _rest_js__WEBPACK_IMPORTED_MODULE_111__.default), +/* harmony export */ "compact": () => (/* reexport safe */ _compact_js__WEBPACK_IMPORTED_MODULE_112__.default), +/* harmony export */ "flatten": () => (/* reexport safe */ _flatten_js__WEBPACK_IMPORTED_MODULE_113__.default), +/* harmony export */ "without": () => (/* reexport safe */ _without_js__WEBPACK_IMPORTED_MODULE_114__.default), +/* harmony export */ "uniq": () => (/* reexport safe */ _uniq_js__WEBPACK_IMPORTED_MODULE_115__.default), +/* harmony export */ "unique": () => (/* reexport safe */ _uniq_js__WEBPACK_IMPORTED_MODULE_115__.default), +/* harmony export */ "union": () => (/* reexport safe */ _union_js__WEBPACK_IMPORTED_MODULE_116__.default), +/* harmony export */ "intersection": () => (/* reexport safe */ _intersection_js__WEBPACK_IMPORTED_MODULE_117__.default), +/* harmony export */ "difference": () => (/* reexport safe */ _difference_js__WEBPACK_IMPORTED_MODULE_118__.default), +/* harmony export */ "unzip": () => (/* reexport safe */ _unzip_js__WEBPACK_IMPORTED_MODULE_119__.default), +/* harmony export */ "transpose": () => (/* reexport safe */ _unzip_js__WEBPACK_IMPORTED_MODULE_119__.default), +/* harmony export */ "zip": () => (/* reexport safe */ _zip_js__WEBPACK_IMPORTED_MODULE_120__.default), +/* harmony export */ "object": () => (/* reexport safe */ _object_js__WEBPACK_IMPORTED_MODULE_121__.default), +/* harmony export */ "range": () => (/* reexport safe */ _range_js__WEBPACK_IMPORTED_MODULE_122__.default), +/* harmony export */ "chunk": () => (/* reexport safe */ _chunk_js__WEBPACK_IMPORTED_MODULE_123__.default), +/* harmony export */ "mixin": () => (/* reexport safe */ _mixin_js__WEBPACK_IMPORTED_MODULE_124__.default), +/* harmony export */ "default": () => (/* reexport safe */ _underscore_array_methods_js__WEBPACK_IMPORTED_MODULE_125__.default) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isObject.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isObject.js"); +/* harmony import */ var _isNull_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isNull.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isNull.js"); +/* harmony import */ var _isUndefined_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./isUndefined.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isUndefined.js"); +/* harmony import */ var _isBoolean_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isBoolean.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isBoolean.js"); +/* harmony import */ var _isElement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isElement.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isElement.js"); +/* harmony import */ var _isString_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./isString.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isString.js"); +/* harmony import */ var _isNumber_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./isNumber.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isNumber.js"); +/* harmony import */ var _isDate_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./isDate.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isDate.js"); +/* harmony import */ var _isRegExp_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./isRegExp.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isRegExp.js"); +/* harmony import */ var _isError_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./isError.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isError.js"); +/* harmony import */ var _isSymbol_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./isSymbol.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isSymbol.js"); +/* harmony import */ var _isArrayBuffer_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./isArrayBuffer.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArrayBuffer.js"); +/* harmony import */ var _isDataView_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./isDataView.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isDataView.js"); +/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./isArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArray.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _isArguments_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./isArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArguments.js"); +/* harmony import */ var _isFinite_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./isFinite.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFinite.js"); +/* harmony import */ var _isNaN_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./isNaN.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isNaN.js"); +/* harmony import */ var _isTypedArray_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./isTypedArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isTypedArray.js"); +/* harmony import */ var _isEmpty_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./isEmpty.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isEmpty.js"); +/* harmony import */ var _isMatch_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./isMatch.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isMatch.js"); +/* harmony import */ var _isEqual_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./isEqual.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isEqual.js"); +/* harmony import */ var _isMap_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./isMap.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isMap.js"); +/* harmony import */ var _isWeakMap_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./isWeakMap.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isWeakMap.js"); +/* harmony import */ var _isSet_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./isSet.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isSet.js"); +/* harmony import */ var _isWeakSet_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./isWeakSet.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isWeakSet.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); +/* harmony import */ var _allKeys_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./allKeys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js"); +/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./values.js */ "./build/cht-core-4-6/node_modules/underscore/modules/values.js"); +/* harmony import */ var _pairs_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./pairs.js */ "./build/cht-core-4-6/node_modules/underscore/modules/pairs.js"); +/* harmony import */ var _invert_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./invert.js */ "./build/cht-core-4-6/node_modules/underscore/modules/invert.js"); +/* harmony import */ var _functions_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./functions.js */ "./build/cht-core-4-6/node_modules/underscore/modules/functions.js"); +/* harmony import */ var _extend_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./extend.js */ "./build/cht-core-4-6/node_modules/underscore/modules/extend.js"); +/* harmony import */ var _extendOwn_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./extendOwn.js */ "./build/cht-core-4-6/node_modules/underscore/modules/extendOwn.js"); +/* harmony import */ var _defaults_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./defaults.js */ "./build/cht-core-4-6/node_modules/underscore/modules/defaults.js"); +/* harmony import */ var _create_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./create.js */ "./build/cht-core-4-6/node_modules/underscore/modules/create.js"); +/* harmony import */ var _clone_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./clone.js */ "./build/cht-core-4-6/node_modules/underscore/modules/clone.js"); +/* harmony import */ var _tap_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./tap.js */ "./build/cht-core-4-6/node_modules/underscore/modules/tap.js"); +/* harmony import */ var _get_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./get.js */ "./build/cht-core-4-6/node_modules/underscore/modules/get.js"); +/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./has.js */ "./build/cht-core-4-6/node_modules/underscore/modules/has.js"); +/* harmony import */ var _mapObject_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./mapObject.js */ "./build/cht-core-4-6/node_modules/underscore/modules/mapObject.js"); +/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./identity.js */ "./build/cht-core-4-6/node_modules/underscore/modules/identity.js"); +/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./constant.js */ "./build/cht-core-4-6/node_modules/underscore/modules/constant.js"); +/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./noop.js */ "./build/cht-core-4-6/node_modules/underscore/modules/noop.js"); +/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./toPath.js */ "./build/cht-core-4-6/node_modules/underscore/modules/toPath.js"); +/* harmony import */ var _property_js__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./property.js */ "./build/cht-core-4-6/node_modules/underscore/modules/property.js"); +/* harmony import */ var _propertyOf_js__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./propertyOf.js */ "./build/cht-core-4-6/node_modules/underscore/modules/propertyOf.js"); +/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./matcher.js */ "./build/cht-core-4-6/node_modules/underscore/modules/matcher.js"); +/* harmony import */ var _times_js__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./times.js */ "./build/cht-core-4-6/node_modules/underscore/modules/times.js"); +/* harmony import */ var _random_js__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./random.js */ "./build/cht-core-4-6/node_modules/underscore/modules/random.js"); +/* harmony import */ var _now_js__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./now.js */ "./build/cht-core-4-6/node_modules/underscore/modules/now.js"); +/* harmony import */ var _escape_js__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./escape.js */ "./build/cht-core-4-6/node_modules/underscore/modules/escape.js"); +/* harmony import */ var _unescape_js__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./unescape.js */ "./build/cht-core-4-6/node_modules/underscore/modules/unescape.js"); +/* harmony import */ var _templateSettings_js__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./templateSettings.js */ "./build/cht-core-4-6/node_modules/underscore/modules/templateSettings.js"); +/* harmony import */ var _template_js__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./template.js */ "./build/cht-core-4-6/node_modules/underscore/modules/template.js"); +/* harmony import */ var _result_js__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./result.js */ "./build/cht-core-4-6/node_modules/underscore/modules/result.js"); +/* harmony import */ var _uniqueId_js__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./uniqueId.js */ "./build/cht-core-4-6/node_modules/underscore/modules/uniqueId.js"); +/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./chain.js */ "./build/cht-core-4-6/node_modules/underscore/modules/chain.js"); +/* harmony import */ var _iteratee_js__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./iteratee.js */ "./build/cht-core-4-6/node_modules/underscore/modules/iteratee.js"); +/* harmony import */ var _partial_js__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./partial.js */ "./build/cht-core-4-6/node_modules/underscore/modules/partial.js"); +/* harmony import */ var _bind_js__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./bind.js */ "./build/cht-core-4-6/node_modules/underscore/modules/bind.js"); +/* harmony import */ var _bindAll_js__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./bindAll.js */ "./build/cht-core-4-6/node_modules/underscore/modules/bindAll.js"); +/* harmony import */ var _memoize_js__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./memoize.js */ "./build/cht-core-4-6/node_modules/underscore/modules/memoize.js"); +/* harmony import */ var _delay_js__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./delay.js */ "./build/cht-core-4-6/node_modules/underscore/modules/delay.js"); +/* harmony import */ var _defer_js__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./defer.js */ "./build/cht-core-4-6/node_modules/underscore/modules/defer.js"); +/* harmony import */ var _throttle_js__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./throttle.js */ "./build/cht-core-4-6/node_modules/underscore/modules/throttle.js"); +/* harmony import */ var _debounce_js__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./debounce.js */ "./build/cht-core-4-6/node_modules/underscore/modules/debounce.js"); +/* harmony import */ var _wrap_js__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./wrap.js */ "./build/cht-core-4-6/node_modules/underscore/modules/wrap.js"); +/* harmony import */ var _negate_js__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./negate.js */ "./build/cht-core-4-6/node_modules/underscore/modules/negate.js"); +/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./compose.js */ "./build/cht-core-4-6/node_modules/underscore/modules/compose.js"); +/* harmony import */ var _after_js__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./after.js */ "./build/cht-core-4-6/node_modules/underscore/modules/after.js"); +/* harmony import */ var _before_js__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./before.js */ "./build/cht-core-4-6/node_modules/underscore/modules/before.js"); +/* harmony import */ var _once_js__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./once.js */ "./build/cht-core-4-6/node_modules/underscore/modules/once.js"); +/* harmony import */ var _findKey_js__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./findKey.js */ "./build/cht-core-4-6/node_modules/underscore/modules/findKey.js"); +/* harmony import */ var _findIndex_js__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./findIndex.js */ "./build/cht-core-4-6/node_modules/underscore/modules/findIndex.js"); +/* harmony import */ var _findLastIndex_js__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./findLastIndex.js */ "./build/cht-core-4-6/node_modules/underscore/modules/findLastIndex.js"); +/* harmony import */ var _sortedIndex_js__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./sortedIndex.js */ "./build/cht-core-4-6/node_modules/underscore/modules/sortedIndex.js"); +/* harmony import */ var _indexOf_js__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./indexOf.js */ "./build/cht-core-4-6/node_modules/underscore/modules/indexOf.js"); +/* harmony import */ var _lastIndexOf_js__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./lastIndexOf.js */ "./build/cht-core-4-6/node_modules/underscore/modules/lastIndexOf.js"); +/* harmony import */ var _find_js__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./find.js */ "./build/cht-core-4-6/node_modules/underscore/modules/find.js"); +/* harmony import */ var _findWhere_js__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./findWhere.js */ "./build/cht-core-4-6/node_modules/underscore/modules/findWhere.js"); +/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./each.js */ "./build/cht-core-4-6/node_modules/underscore/modules/each.js"); +/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./map.js */ "./build/cht-core-4-6/node_modules/underscore/modules/map.js"); +/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./reduce.js */ "./build/cht-core-4-6/node_modules/underscore/modules/reduce.js"); +/* harmony import */ var _reduceRight_js__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./reduceRight.js */ "./build/cht-core-4-6/node_modules/underscore/modules/reduceRight.js"); +/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./filter.js */ "./build/cht-core-4-6/node_modules/underscore/modules/filter.js"); +/* harmony import */ var _reject_js__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./reject.js */ "./build/cht-core-4-6/node_modules/underscore/modules/reject.js"); +/* harmony import */ var _every_js__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./every.js */ "./build/cht-core-4-6/node_modules/underscore/modules/every.js"); +/* harmony import */ var _some_js__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./some.js */ "./build/cht-core-4-6/node_modules/underscore/modules/some.js"); +/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./contains.js */ "./build/cht-core-4-6/node_modules/underscore/modules/contains.js"); +/* harmony import */ var _invoke_js__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./invoke.js */ "./build/cht-core-4-6/node_modules/underscore/modules/invoke.js"); +/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./pluck.js */ "./build/cht-core-4-6/node_modules/underscore/modules/pluck.js"); +/* harmony import */ var _where_js__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./where.js */ "./build/cht-core-4-6/node_modules/underscore/modules/where.js"); +/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./max.js */ "./build/cht-core-4-6/node_modules/underscore/modules/max.js"); +/* harmony import */ var _min_js__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./min.js */ "./build/cht-core-4-6/node_modules/underscore/modules/min.js"); +/* harmony import */ var _shuffle_js__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./shuffle.js */ "./build/cht-core-4-6/node_modules/underscore/modules/shuffle.js"); +/* harmony import */ var _sample_js__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./sample.js */ "./build/cht-core-4-6/node_modules/underscore/modules/sample.js"); +/* harmony import */ var _sortBy_js__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./sortBy.js */ "./build/cht-core-4-6/node_modules/underscore/modules/sortBy.js"); +/* harmony import */ var _groupBy_js__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./groupBy.js */ "./build/cht-core-4-6/node_modules/underscore/modules/groupBy.js"); +/* harmony import */ var _indexBy_js__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./indexBy.js */ "./build/cht-core-4-6/node_modules/underscore/modules/indexBy.js"); +/* harmony import */ var _countBy_js__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./countBy.js */ "./build/cht-core-4-6/node_modules/underscore/modules/countBy.js"); +/* harmony import */ var _partition_js__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./partition.js */ "./build/cht-core-4-6/node_modules/underscore/modules/partition.js"); +/* harmony import */ var _toArray_js__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./toArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/toArray.js"); +/* harmony import */ var _size_js__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./size.js */ "./build/cht-core-4-6/node_modules/underscore/modules/size.js"); +/* harmony import */ var _pick_js__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./pick.js */ "./build/cht-core-4-6/node_modules/underscore/modules/pick.js"); +/* harmony import */ var _omit_js__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./omit.js */ "./build/cht-core-4-6/node_modules/underscore/modules/omit.js"); +/* harmony import */ var _first_js__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./first.js */ "./build/cht-core-4-6/node_modules/underscore/modules/first.js"); +/* harmony import */ var _initial_js__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./initial.js */ "./build/cht-core-4-6/node_modules/underscore/modules/initial.js"); +/* harmony import */ var _last_js__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./last.js */ "./build/cht-core-4-6/node_modules/underscore/modules/last.js"); +/* harmony import */ var _rest_js__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./rest.js */ "./build/cht-core-4-6/node_modules/underscore/modules/rest.js"); +/* harmony import */ var _compact_js__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./compact.js */ "./build/cht-core-4-6/node_modules/underscore/modules/compact.js"); +/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./flatten.js */ "./build/cht-core-4-6/node_modules/underscore/modules/flatten.js"); +/* harmony import */ var _without_js__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./without.js */ "./build/cht-core-4-6/node_modules/underscore/modules/without.js"); +/* harmony import */ var _uniq_js__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./uniq.js */ "./build/cht-core-4-6/node_modules/underscore/modules/uniq.js"); +/* harmony import */ var _union_js__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./union.js */ "./build/cht-core-4-6/node_modules/underscore/modules/union.js"); +/* harmony import */ var _intersection_js__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./intersection.js */ "./build/cht-core-4-6/node_modules/underscore/modules/intersection.js"); +/* harmony import */ var _difference_js__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./difference.js */ "./build/cht-core-4-6/node_modules/underscore/modules/difference.js"); +/* harmony import */ var _unzip_js__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./unzip.js */ "./build/cht-core-4-6/node_modules/underscore/modules/unzip.js"); +/* harmony import */ var _zip_js__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./zip.js */ "./build/cht-core-4-6/node_modules/underscore/modules/zip.js"); +/* harmony import */ var _object_js__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./object.js */ "./build/cht-core-4-6/node_modules/underscore/modules/object.js"); +/* harmony import */ var _range_js__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./range.js */ "./build/cht-core-4-6/node_modules/underscore/modules/range.js"); +/* harmony import */ var _chunk_js__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./chunk.js */ "./build/cht-core-4-6/node_modules/underscore/modules/chunk.js"); +/* harmony import */ var _mixin_js__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./mixin.js */ "./build/cht-core-4-6/node_modules/underscore/modules/mixin.js"); +/* harmony import */ var _underscore_array_methods_js__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./underscore-array-methods.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore-array-methods.js"); +// Named Exports +// ============= + +// Underscore.js 1.13.6 +// https://underscorejs.org +// (c) 2009-2022 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors +// Underscore may be freely distributed under the MIT license. + +// Baseline setup. + + + +// Object Functions +// ---------------- +// Our most fundamental functions operate on any JavaScript object. +// Most functions in Underscore depend on at least one function in this section. + +// A group of functions that check the types of core JavaScript values. +// These are often informally referred to as the "isType" functions. + + + + + + + + + + + + + + + + + + + + + + + + + + + +// Functions that treat an object as a dictionary of key-value pairs. + + + + + + + + + + + + + + + + +// Utility Functions +// ----------------- +// A bit of a grab bag: Predicate-generating functions for use with filters and +// loops, string escaping and templating, create random numbers and unique ids, +// and functions that facilitate Underscore's chaining and iteration conventions. + + + + + + + + + + + + + + + + + + + +// Function (ahem) Functions +// ------------------------- +// These functions take a function as an argument and return a new function +// as the result. Also known as higher-order functions. + + + + + + + + + + + + + + + +// Finders +// ------- +// Functions that extract (the position of) a single element from an object +// or array based on some criterion. + + + + + + + + + +// Collection Functions +// -------------------- +// Functions that work on any collection of elements: either an array, or +// an object of key-value pairs. + + + + + + + + + + + + + + + + + + + + + + + + +// `_.pick` and `_.omit` are actually object functions, but we put +// them here in order to create a more natural reading order in the +// monolithic build as they depend on `_.contains`. + + + +// Array Functions +// --------------- +// Functions that operate on arrays (and array-likes) only, because they’re +// expressed in terms of operations on an ordered list of values. + + + + + + + + + + + + + + + + + +// OOP +// --- +// These modules support the "object-oriented" calling style. See also +// `underscore.js` and `index-default.js`. + + + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/indexBy.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/indexBy.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _group_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_group.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_group.js"); + + +// Indexes the object's values by a criterion, similar to `_.groupBy`, but for +// when you know that your index values will be unique. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_group_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(result, value, key) { + result[key] = value; +})); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/indexOf.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/indexOf.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _sortedIndex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sortedIndex.js */ "./build/cht-core-4-6/node_modules/underscore/modules/sortedIndex.js"); +/* harmony import */ var _findIndex_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./findIndex.js */ "./build/cht-core-4-6/node_modules/underscore/modules/findIndex.js"); +/* harmony import */ var _createIndexFinder_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_createIndexFinder.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createIndexFinder.js"); + + + + +// Return the position of the first occurrence of an item in an array, +// or -1 if the item is not included in the array. +// If the array is large and already in sort order, pass `true` +// for **isSorted** to use binary search. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createIndexFinder_js__WEBPACK_IMPORTED_MODULE_2__.default)(1, _findIndex_js__WEBPACK_IMPORTED_MODULE_1__.default, _sortedIndex_js__WEBPACK_IMPORTED_MODULE_0__.default)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/initial.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/initial.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ initial) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); + + +// Returns everything but the last entry of the array. Especially useful on +// the arguments object. Passing **n** will return all the values in +// the array, excluding the last N. +function initial(array, n, guard) { + return _setup_js__WEBPACK_IMPORTED_MODULE_0__.slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n))); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/intersection.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/intersection.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ intersection) +/* harmony export */ }); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); +/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./contains.js */ "./build/cht-core-4-6/node_modules/underscore/modules/contains.js"); + + + +// Produce an array that contains every item shared between all the +// passed-in arrays. +function intersection(array) { + var result = []; + var argsLength = arguments.length; + for (var i = 0, length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(array); i < length; i++) { + var item = array[i]; + if ((0,_contains_js__WEBPACK_IMPORTED_MODULE_1__.default)(result, item)) continue; + var j; + for (j = 1; j < argsLength; j++) { + if (!(0,_contains_js__WEBPACK_IMPORTED_MODULE_1__.default)(arguments[j], item)) break; + } + if (j === argsLength) result.push(item); + } + return result; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/invert.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/invert.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ invert) +/* harmony export */ }); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + +// Invert the keys and values of an object. The values must be serializable. +function invert(obj) { + var result = {}; + var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj); + for (var i = 0, length = _keys.length; i < length; i++) { + result[obj[_keys[i]]] = _keys[i]; + } + return result; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/invoke.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/invoke.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ "./build/cht-core-4-6/node_modules/underscore/modules/map.js"); +/* harmony import */ var _deepGet_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_deepGet.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_deepGet.js"); +/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_toPath.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js"); + + + + + + +// Invoke a method (with arguments) on every item in a collection. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(obj, path, args) { + var contextPath, func; + if ((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(path)) { + func = path; + } else { + path = (0,_toPath_js__WEBPACK_IMPORTED_MODULE_4__.default)(path); + contextPath = path.slice(0, -1); + path = path[path.length - 1]; + } + return (0,_map_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj, function(context) { + var method = func; + if (!method) { + if (contextPath && contextPath.length) { + context = (0,_deepGet_js__WEBPACK_IMPORTED_MODULE_3__.default)(context, contextPath); + } + if (context == null) return void 0; + method = context[path]; + } + return method == null ? method : method.apply(context, args); + }); +})); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isArguments.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isArguments.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); +/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_has.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_has.js"); + + + +var isArguments = (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Arguments'); + +// Define a fallback version of the method in browsers (ahem, IE < 9), where +// there isn't any inspectable "Arguments" type. +(function() { + if (!isArguments(arguments)) { + isArguments = function(obj) { + return (0,_has_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj, 'callee'); + }; + } +}()); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isArguments); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isArray.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isArray.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); + + + +// Is a given value an array? +// Delegates to ECMA5's native `Array.isArray`. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_setup_js__WEBPACK_IMPORTED_MODULE_0__.nativeIsArray || (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_1__.default)('Array')); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isArrayBuffer.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isArrayBuffer.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('ArrayBuffer')); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isBoolean.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isBoolean.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isBoolean) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); + + +// Is a given value a boolean? +function isBoolean(obj) { + return obj === true || obj === false || _setup_js__WEBPACK_IMPORTED_MODULE_0__.toString.call(obj) === '[object Boolean]'; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isDataView.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isDataView.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _isArrayBuffer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isArrayBuffer.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArrayBuffer.js"); +/* harmony import */ var _stringTagBug_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_stringTagBug.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js"); + + + + + +var isDataView = (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('DataView'); + +// In IE 10 - Edge 13, we need a different heuristic +// to determine whether an object is a `DataView`. +function ie10IsDataView(obj) { + return obj != null && (0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj.getInt8) && (0,_isArrayBuffer_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj.buffer); +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_stringTagBug_js__WEBPACK_IMPORTED_MODULE_3__.hasStringTagBug ? ie10IsDataView : isDataView); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isDate.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isDate.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Date')); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isElement.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isElement.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isElement) +/* harmony export */ }); +// Is a given value a DOM element? +function isElement(obj) { + return !!(obj && obj.nodeType === 1); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isEmpty.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isEmpty.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isEmpty) +/* harmony export */ }); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); +/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArray.js"); +/* harmony import */ var _isString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isString.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isString.js"); +/* harmony import */ var _isArguments_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArguments.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + + + + + +// Is a given array, string, or object empty? +// An "empty" object has no enumerable own-properties. +function isEmpty(obj) { + if (obj == null) return true; + // Skip the more expensive `toString`-based type checks if `obj` has no + // `.length`. + var length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj); + if (typeof length == 'number' && ( + (0,_isArray_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) || (0,_isString_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj) || (0,_isArguments_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj) + )) return length === 0; + return (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)((0,_keys_js__WEBPACK_IMPORTED_MODULE_4__.default)(obj)) === 0; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isEqual.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isEqual.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isEqual) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _getByteLength_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getByteLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getByteLength.js"); +/* harmony import */ var _isTypedArray_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isTypedArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isTypedArray.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _stringTagBug_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_stringTagBug.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js"); +/* harmony import */ var _isDataView_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isDataView.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isDataView.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); +/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./_has.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_has.js"); +/* harmony import */ var _toBufferView_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./_toBufferView.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_toBufferView.js"); + + + + + + + + + + + +// We use this string twice, so give it a name for minification. +var tagDataView = '[object DataView]'; + +// Internal recursive comparison function for `_.isEqual`. +function eq(a, b, aStack, bStack) { + // Identical objects are equal. `0 === -0`, but they aren't identical. + // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal). + if (a === b) return a !== 0 || 1 / a === 1 / b; + // `null` or `undefined` only equal to itself (strict comparison). + if (a == null || b == null) return false; + // `NaN`s are equivalent, but non-reflexive. + if (a !== a) return b !== b; + // Exhaust primitive checks + var type = typeof a; + if (type !== 'function' && type !== 'object' && typeof b != 'object') return false; + return deepEq(a, b, aStack, bStack); +} + +// Internal recursive comparison function for `_.isEqual`. +function deepEq(a, b, aStack, bStack) { + // Unwrap any wrapped objects. + if (a instanceof _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default) a = a._wrapped; + if (b instanceof _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default) b = b._wrapped; + // Compare `[[Class]]` names. + var className = _setup_js__WEBPACK_IMPORTED_MODULE_1__.toString.call(a); + if (className !== _setup_js__WEBPACK_IMPORTED_MODULE_1__.toString.call(b)) return false; + // Work around a bug in IE 10 - Edge 13. + if (_stringTagBug_js__WEBPACK_IMPORTED_MODULE_5__.hasStringTagBug && className == '[object Object]' && (0,_isDataView_js__WEBPACK_IMPORTED_MODULE_6__.default)(a)) { + if (!(0,_isDataView_js__WEBPACK_IMPORTED_MODULE_6__.default)(b)) return false; + className = tagDataView; + } + switch (className) { + // These types are compared by value. + case '[object RegExp]': + // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i') + case '[object String]': + // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is + // equivalent to `new String("5")`. + return '' + a === '' + b; + case '[object Number]': + // `NaN`s are equivalent, but non-reflexive. + // Object(NaN) is equivalent to NaN. + if (+a !== +a) return +b !== +b; + // An `egal` comparison is performed for other numeric values. + return +a === 0 ? 1 / +a === 1 / b : +a === +b; + case '[object Date]': + case '[object Boolean]': + // Coerce dates and booleans to numeric primitive values. Dates are compared by their + // millisecond representations. Note that invalid dates with millisecond representations + // of `NaN` are not equivalent. + return +a === +b; + case '[object Symbol]': + return _setup_js__WEBPACK_IMPORTED_MODULE_1__.SymbolProto.valueOf.call(a) === _setup_js__WEBPACK_IMPORTED_MODULE_1__.SymbolProto.valueOf.call(b); + case '[object ArrayBuffer]': + case tagDataView: + // Coerce to typed array so we can fall through. + return deepEq((0,_toBufferView_js__WEBPACK_IMPORTED_MODULE_9__.default)(a), (0,_toBufferView_js__WEBPACK_IMPORTED_MODULE_9__.default)(b), aStack, bStack); + } + + var areArrays = className === '[object Array]'; + if (!areArrays && (0,_isTypedArray_js__WEBPACK_IMPORTED_MODULE_3__.default)(a)) { + var byteLength = (0,_getByteLength_js__WEBPACK_IMPORTED_MODULE_2__.default)(a); + if (byteLength !== (0,_getByteLength_js__WEBPACK_IMPORTED_MODULE_2__.default)(b)) return false; + if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true; + areArrays = true; + } + if (!areArrays) { + if (typeof a != 'object' || typeof b != 'object') return false; + + // Objects with different constructors are not equivalent, but `Object`s or `Array`s + // from different frames are. + var aCtor = a.constructor, bCtor = b.constructor; + if (aCtor !== bCtor && !((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_4__.default)(aCtor) && aCtor instanceof aCtor && + (0,_isFunction_js__WEBPACK_IMPORTED_MODULE_4__.default)(bCtor) && bCtor instanceof bCtor) + && ('constructor' in a && 'constructor' in b)) { + return false; + } + } + // Assume equality for cyclic structures. The algorithm for detecting cyclic + // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`. + + // Initializing stack of traversed objects. + // It's done here since we only need them for objects and arrays comparison. + aStack = aStack || []; + bStack = bStack || []; + var length = aStack.length; + while (length--) { + // Linear search. Performance is inversely proportional to the number of + // unique nested structures. + if (aStack[length] === a) return bStack[length] === b; + } + + // Add the first object to the stack of traversed objects. + aStack.push(a); + bStack.push(b); + + // Recursively compare objects and arrays. + if (areArrays) { + // Compare array lengths to determine if a deep comparison is necessary. + length = a.length; + if (length !== b.length) return false; + // Deep compare the contents, ignoring non-numeric properties. + while (length--) { + if (!eq(a[length], b[length], aStack, bStack)) return false; + } + } else { + // Deep compare objects. + var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_7__.default)(a), key; + length = _keys.length; + // Ensure that both objects contain the same number of properties before comparing deep equality. + if ((0,_keys_js__WEBPACK_IMPORTED_MODULE_7__.default)(b).length !== length) return false; + while (length--) { + // Deep compare each member + key = _keys[length]; + if (!((0,_has_js__WEBPACK_IMPORTED_MODULE_8__.default)(b, key) && eq(a[key], b[key], aStack, bStack))) return false; + } + } + // Remove the first object from the stack of traversed objects. + aStack.pop(); + bStack.pop(); + return true; +} + +// Perform a deep comparison to check if two objects are equal. +function isEqual(a, b) { + return eq(a, b); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isError.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isError.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Error')); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isFinite.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isFinite.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isFinite) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _isSymbol_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isSymbol.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isSymbol.js"); + + + +// Is a given object a finite number? +function isFinite(obj) { + return !(0,_isSymbol_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) && (0,_setup_js__WEBPACK_IMPORTED_MODULE_0__._isFinite)(obj) && !isNaN(parseFloat(obj)); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); + + + +var isFunction = (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Function'); + +// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old +// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236). +var nodelist = _setup_js__WEBPACK_IMPORTED_MODULE_1__.root.document && _setup_js__WEBPACK_IMPORTED_MODULE_1__.root.document.childNodes; +if ( true && typeof Int8Array != 'object' && typeof nodelist != 'function') { + isFunction = function(obj) { + return typeof obj == 'function' || false; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isFunction); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isMap.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isMap.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); +/* harmony import */ var _stringTagBug_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_stringTagBug.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js"); +/* harmony import */ var _methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_methodFingerprint.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_methodFingerprint.js"); + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_stringTagBug_js__WEBPACK_IMPORTED_MODULE_1__.isIE11 ? (0,_methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__.ie11fingerprint)(_methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__.mapMethods) : (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Map')); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isMatch.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isMatch.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isMatch) +/* harmony export */ }); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + +// Returns whether an object has a given set of `key:value` pairs. +function isMatch(object, attrs) { + var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_0__.default)(attrs), length = _keys.length; + if (object == null) return !length; + var obj = Object(object); + for (var i = 0; i < length; i++) { + var key = _keys[i]; + if (attrs[key] !== obj[key] || !(key in obj)) return false; + } + return true; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isNaN.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isNaN.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isNaN) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _isNumber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isNumber.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isNumber.js"); + + + +// Is the given value `NaN`? +function isNaN(obj) { + return (0,_isNumber_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) && (0,_setup_js__WEBPACK_IMPORTED_MODULE_0__._isNaN)(obj); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isNull.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isNull.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isNull) +/* harmony export */ }); +// Is a given value equal to null? +function isNull(obj) { + return obj === null; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isNumber.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isNumber.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Number')); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isObject.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isObject.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isObject) +/* harmony export */ }); +// Is a given variable an object? +function isObject(obj) { + var type = typeof obj; + return type === 'function' || (type === 'object' && !!obj); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isRegExp.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isRegExp.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('RegExp')); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isSet.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isSet.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); +/* harmony import */ var _stringTagBug_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_stringTagBug.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js"); +/* harmony import */ var _methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_methodFingerprint.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_methodFingerprint.js"); + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_stringTagBug_js__WEBPACK_IMPORTED_MODULE_1__.isIE11 ? (0,_methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__.ie11fingerprint)(_methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__.setMethods) : (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Set')); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isString.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isString.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('String')); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isSymbol.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isSymbol.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('Symbol')); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isTypedArray.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isTypedArray.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _isDataView_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isDataView.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isDataView.js"); +/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constant.js */ "./build/cht-core-4-6/node_modules/underscore/modules/constant.js"); +/* harmony import */ var _isBufferLike_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_isBufferLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isBufferLike.js"); + + + + + +// Is a given value a typed array? +var typedArrayPattern = /\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/; +function isTypedArray(obj) { + // `ArrayBuffer.isView` is the most future-proof, so use it when available. + // Otherwise, fall back on the above regular expression. + return _setup_js__WEBPACK_IMPORTED_MODULE_0__.nativeIsView ? ((0,_setup_js__WEBPACK_IMPORTED_MODULE_0__.nativeIsView)(obj) && !(0,_isDataView_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj)) : + (0,_isBufferLike_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj) && typedArrayPattern.test(_setup_js__WEBPACK_IMPORTED_MODULE_0__.toString.call(obj)); +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_setup_js__WEBPACK_IMPORTED_MODULE_0__.supportsArrayBuffer ? isTypedArray : (0,_constant_js__WEBPACK_IMPORTED_MODULE_2__.default)(false)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isUndefined.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isUndefined.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ isUndefined) +/* harmony export */ }); +// Is a given variable undefined? +function isUndefined(obj) { + return obj === void 0; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isWeakMap.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isWeakMap.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); +/* harmony import */ var _stringTagBug_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_stringTagBug.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js"); +/* harmony import */ var _methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_methodFingerprint.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_methodFingerprint.js"); + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_stringTagBug_js__WEBPACK_IMPORTED_MODULE_1__.isIE11 ? (0,_methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__.ie11fingerprint)(_methodFingerprint_js__WEBPACK_IMPORTED_MODULE_2__.weakMapMethods) : (0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('WeakMap')); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/isWeakSet.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/isWeakSet.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _tagTester_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_tagTester.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js"); + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_tagTester_js__WEBPACK_IMPORTED_MODULE_0__.default)('WeakSet')); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/iteratee.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/iteratee.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ iteratee) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); +/* harmony import */ var _baseIteratee_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseIteratee.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_baseIteratee.js"); + + + +// External wrapper for our callback generator. Users may customize +// `_.iteratee` if they want additional predicate/iteratee shorthand styles. +// This abstraction hides the internal-only `argCount` argument. +function iteratee(value, context) { + return (0,_baseIteratee_js__WEBPACK_IMPORTED_MODULE_1__.default)(value, context, Infinity); +} +_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.iteratee = iteratee; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/keys.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ keys) +/* harmony export */ }); +/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isObject.js"); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_has.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_has.js"); +/* harmony import */ var _collectNonEnumProps_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_collectNonEnumProps.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_collectNonEnumProps.js"); + + + + + +// Retrieve the names of an object's own properties. +// Delegates to **ECMAScript 5**'s native `Object.keys`. +function keys(obj) { + if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj)) return []; + if (_setup_js__WEBPACK_IMPORTED_MODULE_1__.nativeKeys) return (0,_setup_js__WEBPACK_IMPORTED_MODULE_1__.nativeKeys)(obj); + var keys = []; + for (var key in obj) if ((0,_has_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj, key)) keys.push(key); + // Ahem, IE < 9. + if (_setup_js__WEBPACK_IMPORTED_MODULE_1__.hasEnumBug) (0,_collectNonEnumProps_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj, keys); + return keys; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/last.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/last.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ last) +/* harmony export */ }); +/* harmony import */ var _rest_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rest.js */ "./build/cht-core-4-6/node_modules/underscore/modules/rest.js"); + + +// Get the last element of an array. Passing **n** will return the last N +// values in the array. +function last(array, n, guard) { + if (array == null || array.length < 1) return n == null || guard ? void 0 : []; + if (n == null || guard) return array[array.length - 1]; + return (0,_rest_js__WEBPACK_IMPORTED_MODULE_0__.default)(array, Math.max(0, array.length - n)); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/lastIndexOf.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/lastIndexOf.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _findLastIndex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./findLastIndex.js */ "./build/cht-core-4-6/node_modules/underscore/modules/findLastIndex.js"); +/* harmony import */ var _createIndexFinder_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_createIndexFinder.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createIndexFinder.js"); + + + +// Return the position of the last occurrence of an item in an array, +// or -1 if the item is not included in the array. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createIndexFinder_js__WEBPACK_IMPORTED_MODULE_1__.default)(-1, _findLastIndex_js__WEBPACK_IMPORTED_MODULE_0__.default)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/map.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/map.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ map) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + + + +// Return the results of applying the iteratee to each element. +function map(obj, iteratee, context) { + iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context); + var _keys = !(0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) && (0,_keys_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj), + length = (_keys || obj).length, + results = Array(length); + for (var index = 0; index < length; index++) { + var currentKey = _keys ? _keys[index] : index; + results[index] = iteratee(obj[currentKey], currentKey, obj); + } + return results; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/mapObject.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/mapObject.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ mapObject) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + + +// Returns the results of applying the `iteratee` to each element of `obj`. +// In contrast to `_.map` it returns an object. +function mapObject(obj, iteratee, context) { + iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context); + var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj), + length = _keys.length, + results = {}; + for (var index = 0; index < length; index++) { + var currentKey = _keys[index]; + results[currentKey] = iteratee(obj[currentKey], currentKey, obj); + } + return results; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/matcher.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/matcher.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ matcher) +/* harmony export */ }); +/* harmony import */ var _extendOwn_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./extendOwn.js */ "./build/cht-core-4-6/node_modules/underscore/modules/extendOwn.js"); +/* harmony import */ var _isMatch_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isMatch.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isMatch.js"); + + + +// Returns a predicate for checking whether an object has a given set of +// `key:value` pairs. +function matcher(attrs) { + attrs = (0,_extendOwn_js__WEBPACK_IMPORTED_MODULE_0__.default)({}, attrs); + return function(obj) { + return (0,_isMatch_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj, attrs); + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/max.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/max.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ max) +/* harmony export */ }); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./values.js */ "./build/cht-core-4-6/node_modules/underscore/modules/values.js"); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./each.js */ "./build/cht-core-4-6/node_modules/underscore/modules/each.js"); + + + + + +// Return the maximum element (or element-based computation). +function max(obj, iteratee, context) { + var result = -Infinity, lastComputed = -Infinity, + value, computed; + if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) { + obj = (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj) ? obj : (0,_values_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj); + for (var i = 0, length = obj.length; i < length; i++) { + value = obj[i]; + if (value != null && value > result) { + result = value; + } + } + } else { + iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_2__.default)(iteratee, context); + (0,_each_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj, function(v, index, list) { + computed = iteratee(v, index, list); + if (computed > lastComputed || (computed === -Infinity && result === -Infinity)) { + result = v; + lastComputed = computed; + } + }); + } + return result; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/memoize.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/memoize.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ memoize) +/* harmony export */ }); +/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_has.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_has.js"); + + +// Memoize an expensive function by storing its results. +function memoize(func, hasher) { + var memoize = function(key) { + var cache = memoize.cache; + var address = '' + (hasher ? hasher.apply(this, arguments) : key); + if (!(0,_has_js__WEBPACK_IMPORTED_MODULE_0__.default)(cache, address)) cache[address] = func.apply(this, arguments); + return cache[address]; + }; + memoize.cache = {}; + return memoize; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/min.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/min.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ min) +/* harmony export */ }); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./values.js */ "./build/cht-core-4-6/node_modules/underscore/modules/values.js"); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./each.js */ "./build/cht-core-4-6/node_modules/underscore/modules/each.js"); + + + + + +// Return the minimum element (or element-based computation). +function min(obj, iteratee, context) { + var result = Infinity, lastComputed = Infinity, + value, computed; + if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) { + obj = (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj) ? obj : (0,_values_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj); + for (var i = 0, length = obj.length; i < length; i++) { + value = obj[i]; + if (value != null && value < result) { + result = value; + } + } + } else { + iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_2__.default)(iteratee, context); + (0,_each_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj, function(v, index, list) { + computed = iteratee(v, index, list); + if (computed < lastComputed || (computed === Infinity && result === Infinity)) { + result = v; + lastComputed = computed; + } + }); + } + return result; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/mixin.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/mixin.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ mixin) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); +/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./each.js */ "./build/cht-core-4-6/node_modules/underscore/modules/each.js"); +/* harmony import */ var _functions_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./functions.js */ "./build/cht-core-4-6/node_modules/underscore/modules/functions.js"); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _chainResult_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_chainResult.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_chainResult.js"); + + + + + + +// Add your own custom functions to the Underscore object. +function mixin(obj) { + (0,_each_js__WEBPACK_IMPORTED_MODULE_1__.default)((0,_functions_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj), function(name) { + var func = _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default[name] = obj[name]; + _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.prototype[name] = function() { + var args = [this._wrapped]; + _setup_js__WEBPACK_IMPORTED_MODULE_3__.push.apply(args, arguments); + return (0,_chainResult_js__WEBPACK_IMPORTED_MODULE_4__.default)(this, func.apply(_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default, args)); + }; + }); + return _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/negate.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/negate.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ negate) +/* harmony export */ }); +// Returns a negated version of the passed-in predicate. +function negate(predicate) { + return function() { + return !predicate.apply(this, arguments); + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/noop.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/noop.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ noop) +/* harmony export */ }); +// Predicate-generating function. Often useful outside of Underscore. +function noop(){} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/now.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/now.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +// A (possibly faster) way to get the current timestamp as an integer. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Date.now || function() { + return new Date().getTime(); +}); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/object.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/object.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ object) +/* harmony export */ }); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); + + +// Converts lists into objects. Pass either a single array of `[key, value]` +// pairs, or two parallel arrays of the same length -- one of keys, and one of +// the corresponding values. Passing by pairs is the reverse of `_.pairs`. +function object(list, values) { + var result = {}; + for (var i = 0, length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_0__.default)(list); i < length; i++) { + if (values) { + result[list[i]] = values[i]; + } else { + result[list[i][0]] = list[i][1]; + } + } + return result; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/omit.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/omit.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _negate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./negate.js */ "./build/cht-core-4-6/node_modules/underscore/modules/negate.js"); +/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./map.js */ "./build/cht-core-4-6/node_modules/underscore/modules/map.js"); +/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_flatten.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js"); +/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./contains.js */ "./build/cht-core-4-6/node_modules/underscore/modules/contains.js"); +/* harmony import */ var _pick_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./pick.js */ "./build/cht-core-4-6/node_modules/underscore/modules/pick.js"); + + + + + + + + +// Return a copy of the object without the disallowed properties. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(obj, keys) { + var iteratee = keys[0], context; + if ((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(iteratee)) { + iteratee = (0,_negate_js__WEBPACK_IMPORTED_MODULE_2__.default)(iteratee); + if (keys.length > 1) context = keys[1]; + } else { + keys = (0,_map_js__WEBPACK_IMPORTED_MODULE_3__.default)((0,_flatten_js__WEBPACK_IMPORTED_MODULE_4__.default)(keys, false, false), String); + iteratee = function(value, key) { + return !(0,_contains_js__WEBPACK_IMPORTED_MODULE_5__.default)(keys, key); + }; + } + return (0,_pick_js__WEBPACK_IMPORTED_MODULE_6__.default)(obj, iteratee, context); +})); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/once.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/once.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _partial_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./partial.js */ "./build/cht-core-4-6/node_modules/underscore/modules/partial.js"); +/* harmony import */ var _before_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./before.js */ "./build/cht-core-4-6/node_modules/underscore/modules/before.js"); + + + +// Returns a function that will be executed at most one time, no matter how +// often you call it. Useful for lazy initialization. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_partial_js__WEBPACK_IMPORTED_MODULE_0__.default)(_before_js__WEBPACK_IMPORTED_MODULE_1__.default, 2)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/pairs.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/pairs.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ pairs) +/* harmony export */ }); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + +// Convert an object into a list of `[key, value]` pairs. +// The opposite of `_.object` with one argument. +function pairs(obj) { + var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj); + var length = _keys.length; + var pairs = Array(length); + for (var i = 0; i < length; i++) { + pairs[i] = [_keys[i], obj[_keys[i]]]; + } + return pairs; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/partial.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/partial.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _executeBound_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_executeBound.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_executeBound.js"); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); + + + + +// Partially apply a function by creating a version that has had some of its +// arguments pre-filled, without changing its dynamic `this` context. `_` acts +// as a placeholder by default, allowing any combination of arguments to be +// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument. +var partial = (0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(func, boundArgs) { + var placeholder = partial.placeholder; + var bound = function() { + var position = 0, length = boundArgs.length; + var args = Array(length); + for (var i = 0; i < length; i++) { + args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i]; + } + while (position < arguments.length) args.push(arguments[position++]); + return (0,_executeBound_js__WEBPACK_IMPORTED_MODULE_1__.default)(func, bound, this, this, args); + }; + return bound; +}); + +partial.placeholder = _underscore_js__WEBPACK_IMPORTED_MODULE_2__.default; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (partial); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/partition.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/partition.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _group_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_group.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_group.js"); + + +// Split a collection into two arrays: one whose elements all pass the given +// truth test, and one whose elements all do not pass the truth test. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_group_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(result, value, pass) { + result[pass ? 0 : 1].push(value); +}, true)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/pick.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/pick.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _optimizeCb_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_optimizeCb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js"); +/* harmony import */ var _allKeys_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./allKeys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js"); +/* harmony import */ var _keyInObj_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_keyInObj.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_keyInObj.js"); +/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_flatten.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js"); + + + + + + + +// Return a copy of the object only containing the allowed properties. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(obj, keys) { + var result = {}, iteratee = keys[0]; + if (obj == null) return result; + if ((0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__.default)(iteratee)) { + if (keys.length > 1) iteratee = (0,_optimizeCb_js__WEBPACK_IMPORTED_MODULE_2__.default)(iteratee, keys[1]); + keys = (0,_allKeys_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj); + } else { + iteratee = _keyInObj_js__WEBPACK_IMPORTED_MODULE_4__.default; + keys = (0,_flatten_js__WEBPACK_IMPORTED_MODULE_5__.default)(keys, false, false); + obj = Object(obj); + } + for (var i = 0, length = keys.length; i < length; i++) { + var key = keys[i]; + var value = obj[key]; + if (iteratee(value, key, obj)) result[key] = value; + } + return result; +})); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/pluck.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/pluck.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ pluck) +/* harmony export */ }); +/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./map.js */ "./build/cht-core-4-6/node_modules/underscore/modules/map.js"); +/* harmony import */ var _property_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./property.js */ "./build/cht-core-4-6/node_modules/underscore/modules/property.js"); + + + +// Convenience version of a common use case of `_.map`: fetching a property. +function pluck(obj, key) { + return (0,_map_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, (0,_property_js__WEBPACK_IMPORTED_MODULE_1__.default)(key)); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/property.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/property.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ property) +/* harmony export */ }); +/* harmony import */ var _deepGet_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_deepGet.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_deepGet.js"); +/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_toPath.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js"); + + + +// Creates a function that, when passed an object, will traverse that object’s +// properties down the given `path`, specified as an array of keys or indices. +function property(path) { + path = (0,_toPath_js__WEBPACK_IMPORTED_MODULE_1__.default)(path); + return function(obj) { + return (0,_deepGet_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, path); + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/propertyOf.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/propertyOf.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ propertyOf) +/* harmony export */ }); +/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./noop.js */ "./build/cht-core-4-6/node_modules/underscore/modules/noop.js"); +/* harmony import */ var _get_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./get.js */ "./build/cht-core-4-6/node_modules/underscore/modules/get.js"); + + + +// Generates a function for a given object that returns a given property. +function propertyOf(obj) { + if (obj == null) return _noop_js__WEBPACK_IMPORTED_MODULE_0__.default; + return function(path) { + return (0,_get_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj, path); + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/random.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/random.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ random) +/* harmony export */ }); +// Return a random integer between `min` and `max` (inclusive). +function random(min, max) { + if (max == null) { + max = min; + min = 0; + } + return min + Math.floor(Math.random() * (max - min + 1)); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/range.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/range.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ range) +/* harmony export */ }); +// Generate an integer Array containing an arithmetic progression. A port of +// the native Python `range()` function. See +// [the Python documentation](https://docs.python.org/library/functions.html#range). +function range(start, stop, step) { + if (stop == null) { + stop = start || 0; + start = 0; + } + if (!step) { + step = stop < start ? -1 : 1; + } + + var length = Math.max(Math.ceil((stop - start) / step), 0); + var range = Array(length); + + for (var idx = 0; idx < length; idx++, start += step) { + range[idx] = start; + } + + return range; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/reduce.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/reduce.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createReduce_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createReduce.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createReduce.js"); + + +// **Reduce** builds up a single result from a list of values, aka `inject`, +// or `foldl`. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createReduce_js__WEBPACK_IMPORTED_MODULE_0__.default)(1)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/reduceRight.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/reduceRight.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createReduce_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createReduce.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createReduce.js"); + + +// The right-associative version of reduce, also known as `foldr`. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createReduce_js__WEBPACK_IMPORTED_MODULE_0__.default)(-1)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/reject.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/reject.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ reject) +/* harmony export */ }); +/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./filter.js */ "./build/cht-core-4-6/node_modules/underscore/modules/filter.js"); +/* harmony import */ var _negate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./negate.js */ "./build/cht-core-4-6/node_modules/underscore/modules/negate.js"); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); + + + + +// Return all the elements for which a truth test fails. +function reject(obj, predicate, context) { + return (0,_filter_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, (0,_negate_js__WEBPACK_IMPORTED_MODULE_1__.default)((0,_cb_js__WEBPACK_IMPORTED_MODULE_2__.default)(predicate)), context); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/rest.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/rest.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ rest) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); + + +// Returns everything but the first entry of the `array`. Especially useful on +// the `arguments` object. Passing an **n** will return the rest N values in the +// `array`. +function rest(array, n, guard) { + return _setup_js__WEBPACK_IMPORTED_MODULE_0__.slice.call(array, n == null || guard ? 1 : n); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ restArguments) +/* harmony export */ }); +// Some functions take a variable number of arguments, or a few expected +// arguments at the beginning and then a variable number of values to operate +// on. This helper accumulates all remaining arguments past the function’s +// argument length (or an explicit `startIndex`), into an array that becomes +// the last argument. Similar to ES6’s "rest parameter". +function restArguments(func, startIndex) { + startIndex = startIndex == null ? func.length - 1 : +startIndex; + return function() { + var length = Math.max(arguments.length - startIndex, 0), + rest = Array(length), + index = 0; + for (; index < length; index++) { + rest[index] = arguments[index + startIndex]; + } + switch (startIndex) { + case 0: return func.call(this, rest); + case 1: return func.call(this, arguments[0], rest); + case 2: return func.call(this, arguments[0], arguments[1], rest); + } + var args = Array(startIndex + 1); + for (index = 0; index < startIndex; index++) { + args[index] = arguments[index]; + } + args[startIndex] = rest; + return func.apply(this, args); + }; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/result.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/result.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ result) +/* harmony export */ }); +/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isFunction.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js"); +/* harmony import */ var _toPath_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_toPath.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js"); + + + +// Traverses the children of `obj` along `path`. If a child is a function, it +// is invoked with its parent as context. Returns the value of the final +// child, or `fallback` if any child is undefined. +function result(obj, path, fallback) { + path = (0,_toPath_js__WEBPACK_IMPORTED_MODULE_1__.default)(path); + var length = path.length; + if (!length) { + return (0,_isFunction_js__WEBPACK_IMPORTED_MODULE_0__.default)(fallback) ? fallback.call(obj) : fallback; + } + for (var i = 0; i < length; i++) { + var prop = obj == null ? void 0 : obj[path[i]]; + if (prop === void 0) { + prop = fallback; + i = length; // Ensure we don't continue iterating. + } + obj = (0,_isFunction_js__WEBPACK_IMPORTED_MODULE_0__.default)(prop) ? prop.call(obj) : prop; + } + return obj; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/sample.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/sample.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ sample) +/* harmony export */ }); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./values.js */ "./build/cht-core-4-6/node_modules/underscore/modules/values.js"); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); +/* harmony import */ var _random_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./random.js */ "./build/cht-core-4-6/node_modules/underscore/modules/random.js"); +/* harmony import */ var _toArray_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./toArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/toArray.js"); + + + + + + +// Sample **n** random values from a collection using the modern version of the +// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle). +// If **n** is not specified, returns a single random element. +// The internal `guard` argument allows it to work with `_.map`. +function sample(obj, n, guard) { + if (n == null || guard) { + if (!(0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj)) obj = (0,_values_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj); + return obj[(0,_random_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj.length - 1)]; + } + var sample = (0,_toArray_js__WEBPACK_IMPORTED_MODULE_4__.default)(obj); + var length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_2__.default)(sample); + n = Math.max(Math.min(n, length), 0); + var last = length - 1; + for (var index = 0; index < n; index++) { + var rand = (0,_random_js__WEBPACK_IMPORTED_MODULE_3__.default)(index, last); + var temp = sample[index]; + sample[index] = sample[rand]; + sample[rand] = temp; + } + return sample.slice(0, n); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/shuffle.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/shuffle.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ shuffle) +/* harmony export */ }); +/* harmony import */ var _sample_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sample.js */ "./build/cht-core-4-6/node_modules/underscore/modules/sample.js"); + + +// Shuffle a collection. +function shuffle(obj) { + return (0,_sample_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, Infinity); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/size.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/size.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ size) +/* harmony export */ }); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + + +// Return the number of elements in a collection. +function size(obj) { + if (obj == null) return 0; + return (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj) ? obj.length : (0,_keys_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj).length; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/some.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/some.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ some) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + + + +// Determine if at least one element in the object passes a truth test. +function some(obj, predicate, context) { + predicate = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(predicate, context); + var _keys = !(0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__.default)(obj) && (0,_keys_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj), + length = (_keys || obj).length; + for (var index = 0; index < length; index++) { + var currentKey = _keys ? _keys[index] : index; + if (predicate(obj[currentKey], currentKey, obj)) return true; + } + return false; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/sortBy.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/sortBy.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ sortBy) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pluck.js */ "./build/cht-core-4-6/node_modules/underscore/modules/pluck.js"); +/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ "./build/cht-core-4-6/node_modules/underscore/modules/map.js"); + + + + +// Sort the object's values by a criterion produced by an iteratee. +function sortBy(obj, iteratee, context) { + var index = 0; + iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context); + return (0,_pluck_js__WEBPACK_IMPORTED_MODULE_1__.default)((0,_map_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj, function(value, key, list) { + return { + value: value, + index: index++, + criteria: iteratee(value, key, list) + }; + }).sort(function(left, right) { + var a = left.criteria; + var b = right.criteria; + if (a !== b) { + if (a > b || a === void 0) return 1; + if (a < b || b === void 0) return -1; + } + return left.index - right.index; + }), 'value'); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/sortedIndex.js": +/*!***************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/sortedIndex.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ sortedIndex) +/* harmony export */ }); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); + + + +// Use a comparator function to figure out the smallest index at which +// an object should be inserted so as to maintain order. Uses binary search. +function sortedIndex(array, obj, iteratee, context) { + iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context, 1); + var value = iteratee(obj); + var low = 0, high = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_1__.default)(array); + while (low < high) { + var mid = Math.floor((low + high) / 2); + if (iteratee(array[mid]) < value) low = mid + 1; else high = mid; + } + return low; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/tap.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/tap.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ tap) +/* harmony export */ }); +// Invokes `interceptor` with the `obj` and then returns `obj`. +// The primary purpose of this method is to "tap into" a method chain, in +// order to perform operations on intermediate results within the chain. +function tap(obj, interceptor) { + interceptor(obj); + return obj; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/template.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/template.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ template) +/* harmony export */ }); +/* harmony import */ var _defaults_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaults.js */ "./build/cht-core-4-6/node_modules/underscore/modules/defaults.js"); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); +/* harmony import */ var _templateSettings_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./templateSettings.js */ "./build/cht-core-4-6/node_modules/underscore/modules/templateSettings.js"); + + + + +// When customizing `_.templateSettings`, if you don't want to define an +// interpolation, evaluation or escaping regex, we need one that is +// guaranteed not to match. +var noMatch = /(.)^/; + +// Certain characters need to be escaped so that they can be put into a +// string literal. +var escapes = { + "'": "'", + '\\': '\\', + '\r': 'r', + '\n': 'n', + '\u2028': 'u2028', + '\u2029': 'u2029' +}; + +var escapeRegExp = /\\|'|\r|\n|\u2028|\u2029/g; + +function escapeChar(match) { + return '\\' + escapes[match]; +} + +// In order to prevent third-party code injection through +// `_.templateSettings.variable`, we test it against the following regular +// expression. It is intentionally a bit more liberal than just matching valid +// identifiers, but still prevents possible loopholes through defaults or +// destructuring assignment. +var bareIdentifier = /^\s*(\w|\$)+\s*$/; + +// JavaScript micro-templating, similar to John Resig's implementation. +// Underscore templating handles arbitrary delimiters, preserves whitespace, +// and correctly escapes quotes within interpolated code. +// NB: `oldSettings` only exists for backwards compatibility. +function template(text, settings, oldSettings) { + if (!settings && oldSettings) settings = oldSettings; + settings = (0,_defaults_js__WEBPACK_IMPORTED_MODULE_0__.default)({}, settings, _underscore_js__WEBPACK_IMPORTED_MODULE_1__.default.templateSettings); + + // Combine delimiters into one regular expression via alternation. + var matcher = RegExp([ + (settings.escape || noMatch).source, + (settings.interpolate || noMatch).source, + (settings.evaluate || noMatch).source + ].join('|') + '|$', 'g'); + + // Compile the template source, escaping string literals appropriately. + var index = 0; + var source = "__p+='"; + text.replace(matcher, function(match, escape, interpolate, evaluate, offset) { + source += text.slice(index, offset).replace(escapeRegExp, escapeChar); + index = offset + match.length; + + if (escape) { + source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; + } else if (interpolate) { + source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'"; + } else if (evaluate) { + source += "';\n" + evaluate + "\n__p+='"; + } + + // Adobe VMs need the match returned to produce the correct offset. + return match; + }); + source += "';\n"; + + var argument = settings.variable; + if (argument) { + // Insure against third-party code injection. (CVE-2021-23358) + if (!bareIdentifier.test(argument)) throw new Error( + 'variable is not a bare identifier: ' + argument + ); + } else { + // If a variable is not specified, place data values in local scope. + source = 'with(obj||{}){\n' + source + '}\n'; + argument = 'obj'; + } + + source = "var __t,__p='',__j=Array.prototype.join," + + "print=function(){__p+=__j.call(arguments,'');};\n" + + source + 'return __p;\n'; + + var render; + try { + render = new Function(argument, '_', source); + } catch (e) { + e.source = source; + throw e; + } + + var template = function(data) { + return render.call(this, data, _underscore_js__WEBPACK_IMPORTED_MODULE_1__.default); + }; + + // Provide the compiled source as a convenience for precompilation. + template.source = 'function(' + argument + '){\n' + source + '}'; + + return template; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/templateSettings.js": +/*!********************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/templateSettings.js ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); + + +// By default, Underscore uses ERB-style template delimiters. Change the +// following template settings to use alternative delimiters. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.templateSettings = { + evaluate: /<%([\s\S]+?)%>/g, + interpolate: /<%=([\s\S]+?)%>/g, + escape: /<%-([\s\S]+?)%>/g +}); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/throttle.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/throttle.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ throttle) +/* harmony export */ }); +/* harmony import */ var _now_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./now.js */ "./build/cht-core-4-6/node_modules/underscore/modules/now.js"); + + +// Returns a function, that, when invoked, will only be triggered at most once +// during a given window of time. Normally, the throttled function will run +// as much as it can, without ever going more than once per `wait` duration; +// but if you'd like to disable the execution on the leading edge, pass +// `{leading: false}`. To disable execution on the trailing edge, ditto. +function throttle(func, wait, options) { + var timeout, context, args, result; + var previous = 0; + if (!options) options = {}; + + var later = function() { + previous = options.leading === false ? 0 : (0,_now_js__WEBPACK_IMPORTED_MODULE_0__.default)(); + timeout = null; + result = func.apply(context, args); + if (!timeout) context = args = null; + }; + + var throttled = function() { + var _now = (0,_now_js__WEBPACK_IMPORTED_MODULE_0__.default)(); + if (!previous && options.leading === false) previous = _now; + var remaining = wait - (_now - previous); + context = this; + args = arguments; + if (remaining <= 0 || remaining > wait) { + if (timeout) { + clearTimeout(timeout); + timeout = null; + } + previous = _now; + result = func.apply(context, args); + if (!timeout) context = args = null; + } else if (!timeout && options.trailing !== false) { + timeout = setTimeout(later, remaining); + } + return result; + }; + + throttled.cancel = function() { + clearTimeout(timeout); + previous = 0; + timeout = context = args = null; + }; + + return throttled; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/times.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/times.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ times) +/* harmony export */ }); +/* harmony import */ var _optimizeCb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_optimizeCb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js"); + + +// Run a function **n** times. +function times(n, iteratee, context) { + var accum = Array(Math.max(0, n)); + iteratee = (0,_optimizeCb_js__WEBPACK_IMPORTED_MODULE_0__.default)(iteratee, context, 1); + for (var i = 0; i < n; i++) accum[i] = iteratee(i); + return accum; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/toArray.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/toArray.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toArray) +/* harmony export */ }); +/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArray.js"); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _isString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isString.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isString.js"); +/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_isArrayLike.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js"); +/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map.js */ "./build/cht-core-4-6/node_modules/underscore/modules/map.js"); +/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./identity.js */ "./build/cht-core-4-6/node_modules/underscore/modules/identity.js"); +/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./values.js */ "./build/cht-core-4-6/node_modules/underscore/modules/values.js"); + + + + + + + + +// Safely create a real, live array from anything iterable. +var reStrSymbol = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g; +function toArray(obj) { + if (!obj) return []; + if ((0,_isArray_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj)) return _setup_js__WEBPACK_IMPORTED_MODULE_1__.slice.call(obj); + if ((0,_isString_js__WEBPACK_IMPORTED_MODULE_2__.default)(obj)) { + // Keep surrogate pair characters together. + return obj.match(reStrSymbol); + } + if ((0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_3__.default)(obj)) return (0,_map_js__WEBPACK_IMPORTED_MODULE_4__.default)(obj, _identity_js__WEBPACK_IMPORTED_MODULE_5__.default); + return (0,_values_js__WEBPACK_IMPORTED_MODULE_6__.default)(obj); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/toPath.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/toPath.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toPath) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); +/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isArray.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isArray.js"); + + + +// Normalize a (deep) property `path` to array. +// Like `_.iteratee`, this function can be customized. +function toPath(path) { + return (0,_isArray_js__WEBPACK_IMPORTED_MODULE_1__.default)(path) ? path : [path]; +} +_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.toPath = toPath; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/underscore-array-methods.js": +/*!****************************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/underscore-array-methods.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _underscore_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./underscore.js */ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js"); +/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./each.js */ "./build/cht-core-4-6/node_modules/underscore/modules/each.js"); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); +/* harmony import */ var _chainResult_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_chainResult.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_chainResult.js"); + + + + + +// Add all mutator `Array` functions to the wrapper. +(0,_each_js__WEBPACK_IMPORTED_MODULE_1__.default)(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) { + var method = _setup_js__WEBPACK_IMPORTED_MODULE_2__.ArrayProto[name]; + _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.prototype[name] = function() { + var obj = this._wrapped; + if (obj != null) { + method.apply(obj, arguments); + if ((name === 'shift' || name === 'splice') && obj.length === 0) { + delete obj[0]; + } + } + return (0,_chainResult_js__WEBPACK_IMPORTED_MODULE_3__.default)(this, obj); + }; +}); + +// Add all accessor `Array` functions to the wrapper. +(0,_each_js__WEBPACK_IMPORTED_MODULE_1__.default)(['concat', 'join', 'slice'], function(name) { + var method = _setup_js__WEBPACK_IMPORTED_MODULE_2__.ArrayProto[name]; + _underscore_js__WEBPACK_IMPORTED_MODULE_0__.default.prototype[name] = function() { + var obj = this._wrapped; + if (obj != null) obj = method.apply(obj, arguments); + return (0,_chainResult_js__WEBPACK_IMPORTED_MODULE_3__.default)(this, obj); + }; +}); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_underscore_js__WEBPACK_IMPORTED_MODULE_0__.default); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/underscore.js": +/*!**************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/underscore.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _) +/* harmony export */ }); +/* harmony import */ var _setup_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_setup.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_setup.js"); + + +// If Underscore is called as a function, it returns a wrapped object that can +// be used OO-style. This wrapper holds altered versions of all functions added +// through `_.mixin`. Wrapped objects may be chained. +function _(obj) { + if (obj instanceof _) return obj; + if (!(this instanceof _)) return new _(obj); + this._wrapped = obj; +} + +_.VERSION = _setup_js__WEBPACK_IMPORTED_MODULE_0__.VERSION; + +// Extracts the result from a wrapped and chained object. +_.prototype.value = function() { + return this._wrapped; +}; + +// Provide unwrapping proxies for some methods used in engine operations +// such as arithmetic and JSON stringification. +_.prototype.valueOf = _.prototype.toJSON = _.prototype.value; + +_.prototype.toString = function() { + return String(this._wrapped); +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/unescape.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/unescape.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _createEscaper_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createEscaper.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_createEscaper.js"); +/* harmony import */ var _unescapeMap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_unescapeMap.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_unescapeMap.js"); + + + +// Function for unescaping strings from HTML interpolation. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_createEscaper_js__WEBPACK_IMPORTED_MODULE_0__.default)(_unescapeMap_js__WEBPACK_IMPORTED_MODULE_1__.default)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/union.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/union.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _uniq_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uniq.js */ "./build/cht-core-4-6/node_modules/underscore/modules/uniq.js"); +/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_flatten.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js"); + + + + +// Produce an array that contains the union: each distinct element from all of +// the passed-in arrays. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(arrays) { + return (0,_uniq_js__WEBPACK_IMPORTED_MODULE_1__.default)((0,_flatten_js__WEBPACK_IMPORTED_MODULE_2__.default)(arrays, true, true)); +})); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/uniq.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/uniq.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ uniq) +/* harmony export */ }); +/* harmony import */ var _isBoolean_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isBoolean.js */ "./build/cht-core-4-6/node_modules/underscore/modules/isBoolean.js"); +/* harmony import */ var _cb_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_cb.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_cb.js"); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); +/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./contains.js */ "./build/cht-core-4-6/node_modules/underscore/modules/contains.js"); + + + + + +// Produce a duplicate-free version of the array. If the array has already +// been sorted, you have the option of using a faster algorithm. +// The faster algorithm will not work with an iteratee if the iteratee +// is not a one-to-one function, so providing an iteratee will disable +// the faster algorithm. +function uniq(array, isSorted, iteratee, context) { + if (!(0,_isBoolean_js__WEBPACK_IMPORTED_MODULE_0__.default)(isSorted)) { + context = iteratee; + iteratee = isSorted; + isSorted = false; + } + if (iteratee != null) iteratee = (0,_cb_js__WEBPACK_IMPORTED_MODULE_1__.default)(iteratee, context); + var result = []; + var seen = []; + for (var i = 0, length = (0,_getLength_js__WEBPACK_IMPORTED_MODULE_2__.default)(array); i < length; i++) { + var value = array[i], + computed = iteratee ? iteratee(value, i, array) : value; + if (isSorted && !iteratee) { + if (!i || seen !== computed) result.push(value); + seen = computed; + } else if (iteratee) { + if (!(0,_contains_js__WEBPACK_IMPORTED_MODULE_3__.default)(seen, computed)) { + seen.push(computed); + result.push(value); + } + } else if (!(0,_contains_js__WEBPACK_IMPORTED_MODULE_3__.default)(result, value)) { + result.push(value); + } + } + return result; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/uniqueId.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/uniqueId.js ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ uniqueId) +/* harmony export */ }); +// Generate a unique integer id (unique within the entire client session). +// Useful for temporary DOM ids. +var idCounter = 0; +function uniqueId(prefix) { + var id = ++idCounter + ''; + return prefix ? prefix + id : id; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/unzip.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/unzip.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ unzip) +/* harmony export */ }); +/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./max.js */ "./build/cht-core-4-6/node_modules/underscore/modules/max.js"); +/* harmony import */ var _getLength_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getLength.js */ "./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js"); +/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pluck.js */ "./build/cht-core-4-6/node_modules/underscore/modules/pluck.js"); + + + + +// Complement of zip. Unzip accepts an array of arrays and groups +// each array's elements on shared indices. +function unzip(array) { + var length = (array && (0,_max_js__WEBPACK_IMPORTED_MODULE_0__.default)(array, _getLength_js__WEBPACK_IMPORTED_MODULE_1__.default).length) || 0; + var result = Array(length); + + for (var index = 0; index < length; index++) { + result[index] = (0,_pluck_js__WEBPACK_IMPORTED_MODULE_2__.default)(array, index); + } + return result; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/values.js": +/*!**********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/values.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ values) +/* harmony export */ }); +/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./keys.js */ "./build/cht-core-4-6/node_modules/underscore/modules/keys.js"); + + +// Retrieve the values of an object's properties. +function values(obj) { + var _keys = (0,_keys_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj); + var length = _keys.length; + var values = Array(length); + for (var i = 0; i < length; i++) { + values[i] = obj[_keys[i]]; + } + return values; +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/where.js": +/*!*********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/where.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ where) +/* harmony export */ }); +/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./filter.js */ "./build/cht-core-4-6/node_modules/underscore/modules/filter.js"); +/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./matcher.js */ "./build/cht-core-4-6/node_modules/underscore/modules/matcher.js"); + + + +// Convenience version of a common use case of `_.filter`: selecting only +// objects containing specific `key:value` pairs. +function where(obj, attrs) { + return (0,_filter_js__WEBPACK_IMPORTED_MODULE_0__.default)(obj, (0,_matcher_js__WEBPACK_IMPORTED_MODULE_1__.default)(attrs)); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/without.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/without.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _difference_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./difference.js */ "./build/cht-core-4-6/node_modules/underscore/modules/difference.js"); + + + +// Return a version of the array that does not contain the specified value(s). +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(function(array, otherArrays) { + return (0,_difference_js__WEBPACK_IMPORTED_MODULE_1__.default)(array, otherArrays); +})); + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/wrap.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/wrap.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ wrap) +/* harmony export */ }); +/* harmony import */ var _partial_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./partial.js */ "./build/cht-core-4-6/node_modules/underscore/modules/partial.js"); + + +// Returns the first function passed as an argument to the second, +// allowing you to adjust arguments, run code before and after, and +// conditionally execute the original function. +function wrap(func, wrapper) { + return (0,_partial_js__WEBPACK_IMPORTED_MODULE_0__.default)(wrapper, func); +} + + +/***/ }), + +/***/ "./build/cht-core-4-6/node_modules/underscore/modules/zip.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/node_modules/underscore/modules/zip.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _restArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./restArguments.js */ "./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js"); +/* harmony import */ var _unzip_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./unzip.js */ "./build/cht-core-4-6/node_modules/underscore/modules/unzip.js"); + + + +// Zip together multiple lists into a single array -- elements that share +// an index go together. +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_restArguments_js__WEBPACK_IMPORTED_MODULE_0__.default)(_unzip_js__WEBPACK_IMPORTED_MODULE_1__.default)); + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/calendar-interval/src/index.js": +/*!***********************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/calendar-interval/src/index.js ***! + \***********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const moment = __webpack_require__(/*! moment */ "./build/cht-core-4-6/node_modules/moment/moment.js"); + +const normalizeStartDate = (intervalStartDate) => { + intervalStartDate = parseInt(intervalStartDate); + + if (isNaN(intervalStartDate) || intervalStartDate <= 0 || intervalStartDate > 31) { + intervalStartDate = 1; + } + + return intervalStartDate; +}; + +const getMinimumStartDate = (intervalStartDate, relativeDate) => { + return moment + .min( + relativeDate.clone().subtract(1, 'month').date(intervalStartDate).startOf('day'), + relativeDate.clone().startOf('month') + ) + .valueOf(); +}; + +const getMinimumEndDate = (intervalStartDate, nextMonth, relativeDate) => { + return moment + .min( + relativeDate.clone().add(nextMonth ? 1 : 0, 'month').date(intervalStartDate - 1).endOf('day'), + relativeDate.clone().add(nextMonth ? 1 : 0, 'month').endOf('month') + ) + .valueOf(); +}; + +const getInterval = (intervalStartDate, referenceDate = moment()) => { + intervalStartDate = normalizeStartDate(intervalStartDate); + if (intervalStartDate === 1) { + return { + start: referenceDate.startOf('month').valueOf(), + end: referenceDate.endOf('month').valueOf() + }; + } + + if (intervalStartDate <= referenceDate.date()) { + return { + start: referenceDate.date(intervalStartDate).startOf('day').valueOf(), + end: getMinimumEndDate(intervalStartDate, true, referenceDate) + }; + } + + return { + start: getMinimumStartDate(intervalStartDate, referenceDate), + end: getMinimumEndDate(intervalStartDate, false, referenceDate) + }; +}; + +module.exports = { + // Returns the timestamps of the start and end of the current calendar interval + // @param {Number} [intervalStartDate=1] - day of month when interval starts (1 - 31) + // + // if `intervalStartDate` exceeds month's day count, the start/end of following/current month is returned + // f.e. `intervalStartDate` === 31 would generate next intervals : + // [12-31 -> 01-30], [01-31 -> 02-[28|29]], [03-01 -> 03-30], [03-31 -> 04-30], [05-01 -> 05-30], [05-31 - 06-30] + getCurrent: (intervalStartDate) => getInterval(intervalStartDate), + + /** + * Returns the timestamps of the start and end of the a calendar interval that contains a reference date + * @param {Number} [intervalStartDate=1] - day of month when interval starts (1 - 31) + * @param {Number} timestamp - the reference date the interval should include + * @returns { start: number, end: number } - timestamps that define the calendar interval + */ + getInterval: (intervalStartDate, timestamp) => getInterval(intervalStartDate, moment(timestamp)), +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/cht-script-api/src/auth.js": +/*!*******************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/cht-script-api/src/auth.js ***! + \*******************************************************************/ +/***/ ((module) => { + +/** + * CHT Script API - Auth module + * Provides tools related to Authentication. + */ + +const ADMIN_ROLE = '_admin'; +const DISALLOWED_PERMISSION_PREFIX = '!'; + +const isAdmin = (userRoles) => { + if (!Array.isArray(userRoles)) { + return false; + } + + return userRoles.includes(ADMIN_ROLE); +}; + +const groupPermissions = (permissions) => { + const groups = { allowed: [], disallowed: [] }; + + permissions.forEach(permission => { + if (permission.indexOf(DISALLOWED_PERMISSION_PREFIX) === 0) { + // Removing the DISALLOWED_PERMISSION_PREFIX and keeping the permission name. + groups.disallowed.push(permission.substring(1)); + } else { + groups.allowed.push(permission); + } + }); + + return groups; +}; + +const debug = (reason, permissions, roles) => { + // eslint-disable-next-line no-console + ; +}; + +const checkUserHasPermissions = (permissions, userRoles, chtPermissionsSettings, expectedToHave) => { + return permissions.every(permission => { + const roles = chtPermissionsSettings[permission]; + + if (!roles) { + return !expectedToHave; + } + + return expectedToHave === userRoles.some(role => roles.includes(role)); + }); +}; + +const verifyParameters = (permissions, userRoles, chtPermissionsSettings) => { + if (!Array.isArray(permissions) || !permissions.length) { + debug('Permissions to verify are not provided or have invalid type'); + return false; + } + + if (!Array.isArray(userRoles)) { + debug('User roles are not provided or have invalid type'); + return false; + } + + if (!chtPermissionsSettings || !Object.keys(chtPermissionsSettings).length) { + debug('CHT-Core\'s configured permissions are not provided'); + return false; + } + + return true; +}; + +/** + * Verify if the user's role has the permission(s). + * @param permissions {string | string[]} Permission(s) to verify + * @param userRoles {string[]} Array of user roles. + * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings. + * @return {boolean} + */ +const hasPermissions = (permissions, userRoles, chtPermissionsSettings) => { + if (permissions && typeof permissions === 'string') { + permissions = [ permissions ]; + } + + if (!verifyParameters(permissions, userRoles, chtPermissionsSettings)) { + return false; + } + + const { allowed, disallowed } = groupPermissions(permissions); + + if (isAdmin(userRoles)) { + if (disallowed.length) { + debug('Disallowed permission(s) found for admin', permissions, userRoles); + return false; + } + // Admin has the permissions automatically. + return true; + } + + const hasDisallowed = !checkUserHasPermissions(disallowed, userRoles, chtPermissionsSettings, false); + const hasAllowed = checkUserHasPermissions(allowed, userRoles, chtPermissionsSettings, true); + + if (hasDisallowed) { + debug('Found disallowed permission(s)', permissions, userRoles); + return false; + } + + if (!hasAllowed) { + debug('Missing permission(s)', permissions, userRoles); + return false; + } + + return true; +}; + +/** + * Verify if the user's role has all the permissions of any of the provided groups. + * @param permissionsGroupList {string[][]} Array of groups of permissions due to the complexity of permission grouping + * @param userRoles {string[]} Array of user roles. + * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings. + * @return {boolean} + */ +const hasAnyPermission = (permissionsGroupList, userRoles, chtPermissionsSettings) => { + if (!verifyParameters(permissionsGroupList, userRoles, chtPermissionsSettings)) { + return false; + } + + const validGroup = permissionsGroupList.every(permissions => Array.isArray(permissions)); + if (!validGroup) { + debug('Permission groups to verify are invalid'); + return false; + } + + const allowedGroupList = []; + const disallowedGroupList = []; + permissionsGroupList.forEach(permissions => { + const { allowed, disallowed } = groupPermissions(permissions); + allowedGroupList.push(allowed); + disallowedGroupList.push(disallowed); + }); + + if (isAdmin(userRoles)) { + if (disallowedGroupList.every(permissions => permissions.length)) { + debug('Disallowed permission(s) found for admin', permissionsGroupList, userRoles); + return false; + } + // Admin has the permissions automatically. + return true; + } + + const hasAnyPermissionGroup = permissionsGroupList.some((permissions, i) => { + const hasAnyAllowed = checkUserHasPermissions(allowedGroupList[i], userRoles, chtPermissionsSettings, true); + const hasAnyDisallowed = !checkUserHasPermissions(disallowedGroupList[i], userRoles, chtPermissionsSettings, false); + // Checking the 'permission group' is valid. + return hasAnyAllowed && !hasAnyDisallowed; + }); + + if (!hasAnyPermissionGroup) { + debug('No matching permissions', permissionsGroupList, userRoles); + return false; + } + + return true; +}; + +module.exports = { + hasPermissions, + hasAnyPermission +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/cht-script-api/src/index.js": +/*!********************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/cht-script-api/src/index.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/** + * CHT Script API - Index + * Builds and exports a versioned API from feature modules. + * Whenever possible keep this file clean by defining new features in modules. + */ +const auth = __webpack_require__(/*! ./auth */ "./build/cht-core-4-6/shared-libs/cht-script-api/src/auth.js"); + +/** + * Verify if the user's role has the permission(s). + * @param permissions {string | string[]} Permission(s) to verify + * @param userRoles {string[]} Array of user roles. + * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings. + * @return {boolean} + */ +const hasPermissions = (permissions, userRoles, chtPermissionsSettings) => { + return auth.hasPermissions(permissions, userRoles, chtPermissionsSettings); +}; + +/** + * Verify if the user's role has all the permissions of any of the provided groups. + * @param permissionsGroupList {string[][]} Array of groups of permissions due to the complexity of permission grouping + * @param userRoles {string[]} Array of user roles. + * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings. + * @return {boolean} + */ +const hasAnyPermission = (permissionsGroupList, userRoles, chtPermissionsSettings) => { + return auth.hasAnyPermission(permissionsGroupList, userRoles, chtPermissionsSettings); +}; + +module.exports = { + v1: { + hasPermissions, + hasAnyPermission + } +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/contact-types-utils/src/index.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/contact-types-utils/src/index.js ***! + \*************************************************************************/ +/***/ ((module) => { + +const HARDCODED_PERSON_TYPE = 'person'; +const HARDCODED_TYPES = [ + 'district_hospital', + 'health_center', + 'clinic', + 'person' +]; + +const getContactTypes = config => { + return config && Array.isArray(config.contact_types) && config.contact_types || []; +}; + +const getTypeId = (doc) => { + if (!doc) { + return; + } + return doc.type === 'contact' ? doc.contact_type : doc.type; +}; + +const getTypeById = (config, typeId) => { + const contactTypes = getContactTypes(config); + return contactTypes.find(type => type.id === typeId); +}; + +const isPersonType = (type) => { + return type && (type.person || type.id === HARDCODED_PERSON_TYPE); +}; + +const isPlaceType = (type) => { + return type && !type.person && type.id !== HARDCODED_PERSON_TYPE; +}; + +const hasParents = (type) => !!(type && type.parents && type.parents.length); + +const isParentOf = (parentType, childType) => { + if (!parentType || !childType) { + return false; + } + + const parentTypeId = typeof parentType === 'string' ? parentType : parentType.id; + return !!(childType && childType.parents && childType.parents.includes(parentTypeId)); +}; + +// A leaf place type is a contact type that does not have any child place types, but can have child person types +const getLeafPlaceTypes = (config) => { + const types = getContactTypes(config); + const placeTypes = types.filter(type => !type.person); + return placeTypes.filter(type => { + return placeTypes.every(inner => !inner.parents || !inner.parents.includes(type.id)); + }); +}; + +const getContactType = (config, contact) => { + const typeId = getTypeId(contact); + return typeId && getTypeById(config, typeId); +}; + +// returns true if contact's type exists and is a person type OR if contact's type is the hardcoded person type +const isPerson = (config, contact) => { + const typeId = getTypeId(contact); + const type = getTypeById(config, typeId) || { id: typeId }; + return isPersonType(type); +}; + +const isPlace = (config, contact) => { + const type = getContactType(config, contact); + return isPlaceType(type); +}; + +const isHardcodedType = type => HARDCODED_TYPES.includes(type); + +const isOrphan = (type) => !type.parents || !type.parents.length; +/** + * Returns an array of child types for the given type id. + * If parent is falsey, returns the types with no parent. + */ +const getChildren = (config, parentType) => { + const types = getContactTypes(config); + return types.filter(type => (!parentType && isOrphan(type)) || isParentOf(parentType, type)); +}; + +const getPlaceTypes = (config) => getContactTypes(config).filter(isPlaceType); +const getPersonTypes = (config) => getContactTypes(config).filter(isPersonType); + +module.exports = { + getTypeId, + getTypeById, + isPersonType, + isPlaceType, + hasParents, + isParentOf, + getLeafPlaceTypes, + getContactType, + isPerson, + isPlace, + isHardcodedType, + HARDCODED_TYPES, + getContactTypes, + getChildren, + getPlaceTypes, + getPersonTypes, +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/lineage/src/hydration.js": +/*!*****************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/lineage/src/hydration.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const _ = __webpack_require__(/*! lodash/core */ "./build/cht-core-4-6/node_modules/lodash/core.js"); +_.uniq = __webpack_require__(/*! lodash/uniq */ "./build/cht-core-4-6/node_modules/lodash/uniq.js"); +const utils = __webpack_require__(/*! ./utils */ "./build/cht-core-4-6/shared-libs/lineage/src/utils.js"); + +const deepCopy = obj => JSON.parse(JSON.stringify(obj)); + +const selfAndParents = function(self) { + const parents = []; + let current = self; + while (current) { + if (parents.includes(current)) { + return parents; + } + + parents.push(current); + current = current.parent; + } + return parents; +}; + +const extractParentIds = current => selfAndParents(current) + .map(parent => parent._id) + .filter(id => id); + +const getContactById = (contacts, id) => id && contacts.find(contact => contact && contact._id === id); + +const getContactIds = (contacts) => { + const ids = []; + contacts.forEach(doc => { + if (!doc) { + return; + } + + const id = utils.getId(doc.contact); + id && ids.push(id); + + if (!utils.validLinkedDocs(doc)) { + return; + } + Object.keys(doc.linked_docs).forEach(key => { + const id = utils.getId(doc.linked_docs[key]); + id && ids.push(id); + }); + }); + + return _.uniq(ids); +}; + +module.exports = function(Promise, DB) { + const fillParentsInDocs = function(doc, lineage) { + if (!doc || !lineage.length) { + return doc; + } + + // Parent hierarchy starts at the contact for data_records + let currentParent; + if (utils.isReport(doc)) { + currentParent = doc.contact = lineage.shift() || doc.contact; + } else { + // It's a contact + currentParent = doc; + } + + const parentIds = extractParentIds(currentParent.parent); + lineage.forEach(function(l, i) { + currentParent.parent = l ? deepCopy(l) : { _id: parentIds[i] }; + currentParent = currentParent.parent; + }); + + return doc; + }; + + const fillContactsInDocs = function(docs, contacts) { + if (!contacts || !contacts.length) { + return; + } + + docs.forEach(function(doc) { + if (!doc) { + return; + } + const id = utils.getId(doc.contact); + const contactDoc = getContactById(contacts, id); + if (contactDoc) { + doc.contact = deepCopy(contactDoc); + } + + if (!utils.validLinkedDocs(doc)) { + return; + } + + Object.keys(doc.linked_docs).forEach(key => { + const id = utils.getId(doc.linked_docs[key]); + const contactDoc = getContactById(contacts, id); + if (contactDoc) { + doc.linked_docs[key] = deepCopy(contactDoc); + } + }); + }); + }; + + const fetchContacts = function(lineage) { + const contactIds = getContactIds(lineage); + + // Only fetch docs that are new to us + const lineageContacts = []; + const contactsToFetch = []; + contactIds.forEach(function(id) { + const contact = getContactById(lineage, id); + if (contact) { + lineageContacts.push(deepCopy(contact)); + } else { + contactsToFetch.push(id); + } + }); + + return fetchDocs(contactsToFetch) + .then(function(fetchedContacts) { + return lineageContacts.concat(fetchedContacts); + }); + }; + + const mergeLineagesIntoDoc = function(lineage, contacts, patientLineage, placeLineage) { + const doc = lineage.shift(); + fillParentsInDocs(doc, lineage); + + if (patientLineage && patientLineage.length) { + const patientDoc = patientLineage.shift(); + fillParentsInDocs(patientDoc, patientLineage); + doc.patient = patientDoc; + } + + if (placeLineage && placeLineage.length) { + const placeDoc = placeLineage.shift(); + fillParentsInDocs(placeDoc, placeLineage); + doc.place = placeDoc; + } + + return doc; + }; + + /* + * @returns {Object} subjectMaps + * @returns {Map} subjectMaps.patientUuids - map with [k, v] pairs of [recordUuid, patientUuid] + * @returns {Map} subjectMaps.placeUuids - map with [k, v] pairs of [recordUuid, placeUuid] + */ + const fetchSubjectsUuids = (records) => { + const shortcodes = []; + const recordToPlaceUuidMap = new Map(); + const recordToPatientUuidMap = new Map(); + + records.forEach(record => { + if (!utils.isReport(record)) { + return; + } + + const patientId = utils.getPatientId(record); + const placeId = utils.getPlaceId(record); + recordToPatientUuidMap.set(record._id, patientId); + recordToPlaceUuidMap.set(record._id, placeId); + + shortcodes.push(patientId, placeId); + }); + + if (!shortcodes.some(shortcode => shortcode)) { + return Promise.resolve({ patientUuids: recordToPatientUuidMap, placeUuids: recordToPlaceUuidMap }); + } + + return contactUuidByShortcode(shortcodes).then(shortcodeToUuidMap => { + records.forEach(record => { + const patientShortcode = recordToPatientUuidMap.get(record._id); + recordToPatientUuidMap.set(record._id, shortcodeToUuidMap.get(patientShortcode)); + + const placeShortcode = recordToPlaceUuidMap.get(record._id); + recordToPlaceUuidMap.set(record._id, shortcodeToUuidMap.get(placeShortcode)); + }); + + return { patientUuids: recordToPatientUuidMap, placeUuids: recordToPlaceUuidMap }; + }); + }; + + /* + * @returns {Object} lineages + * @returns {Array} lineages.patientLineage + * @returns {Array} lineages.placeLineage + */ + const fetchSubjectLineage = (record) => { + if (!utils.isReport(record)) { + return Promise.resolve({ patientLineage: [], placeLineage: [] }); + } + + const patientId = utils.getPatientId(record); + const placeId = utils.getPlaceId(record); + + if (!patientId && !placeId) { + return Promise.resolve({ patientLineage: [], placeLineage: [] }); + } + + return contactUuidByShortcode([patientId, placeId]).then((shortcodeToUuidMap) => { + const patientUuid = shortcodeToUuidMap.get(patientId); + const placeUuid = shortcodeToUuidMap.get(placeId); + + return fetchLineageByIds([patientUuid, placeUuid]).then((lineages) => { + const patientLineage = lineages.find(lineage => lineage[0]._id === patientUuid) || []; + const placeLineage = lineages.find(lineage => lineage[0]._id === placeUuid) || []; + + return { patientLineage, placeLineage }; + }); + }); + }; + + /* + * @returns {Map} map with [k, v] pairs of [shortcode, uuid] + */ + const contactUuidByShortcode = function(shortcodes) { + const keys = shortcodes + .filter(shortcode => shortcode) + .map(shortcode => [ 'shortcode', shortcode ]); + + return DB.query('medic-client/contacts_by_reference', { keys }) + .then(function(results) { + const findIdWithKey = key => { + const matchingRow = results.rows.find(row => row.key[1] === key); + return matchingRow && matchingRow.id; + }; + + return new Map(shortcodes.map(shortcode => ([ shortcode, findIdWithKey(shortcode) || shortcode, ]))); + }); + }; + + const fetchLineageById = function(id) { + const options = { + startkey: [id], + endkey: [id, {}], + include_docs: true + }; + return DB.query('medic-client/docs_by_id_lineage', options) + .then(function(result) { + return result.rows.map(function(row) { + return row.doc; + }); + }); + }; + + const fetchLineageByIds = function(ids) { + return fetchDocs(ids).then(function(docs) { + return hydrateDocs(docs).then(function(hydratedDocs) { + // Returning a list of docs just like fetchLineageById + const docsList = []; + hydratedDocs.forEach(function(hdoc) { + const docLineage = selfAndParents(hdoc); + docsList.push(docLineage); + }); + return docsList; + }); + }); + }; + + const fetchDoc = function(id) { + return DB.get(id) + .catch(function(err) { + if (err.status === 404) { + err.statusCode = 404; + } + throw err; + }); + }; + + const fetchHydratedDoc = function(id, options = {}, callback = undefined) { + let lineage; + let patientLineage; + let placeLineage; + if (typeof options === 'function') { + callback = options; + options = {}; + } + + _.defaults(options, { + throwWhenMissingLineage: false, + }); + + return fetchLineageById(id) + .then(function(result) { + lineage = result; + + if (lineage.length === 0) { + if (options.throwWhenMissingLineage) { + const err = new Error(`Document not found: ${id}`); + err.code = 404; + throw err; + } else { + // Not a doc that has lineage, just do a normal fetch. + return fetchDoc(id); + } + } + + return fetchSubjectLineage(lineage[0]) + .then((lineages = {}) => { + patientLineage = lineages.patientLineage; + placeLineage = lineages.placeLineage; + + return fetchContacts(lineage.concat(patientLineage, placeLineage)); + }) + .then(function(contacts) { + fillContactsInDocs(lineage, contacts); + fillContactsInDocs(patientLineage, contacts); + fillContactsInDocs(placeLineage, contacts); + return mergeLineagesIntoDoc(lineage, contacts, patientLineage, placeLineage); + }); + }) + .then(function(result) { + if (callback) { + callback(null, result); + } + return result; + }) + .catch(function(err) { + if (callback) { + callback(err); + } else { + throw err; + } + }); + }; + + // for data_records, include the first-level contact. + const collectParentIds = function(docs) { + const ids = []; + docs.forEach(function(doc) { + let parent = doc.parent; + if (utils.isReport(doc)) { + const contactId = utils.getId(doc.contact); + if (!contactId) { + return; + } + ids.push(contactId); + parent = doc.contact; + } + + ids.push(...extractParentIds(parent)); + }); + return _.uniq(ids); + }; + + // for data_records, doesn't include the first-level contact (it counts as a parent). + const collectLeafContactIds = function(partiallyHydratedDocs) { + const ids = []; + partiallyHydratedDocs.forEach(function(doc) { + const startLineageFrom = utils.isReport(doc) ? doc.contact : doc; + ids.push(...getContactIds(selfAndParents(startLineageFrom))); + }); + + return _.uniq(ids); + }; + + const fetchDocs = function(ids) { + if (!ids || !ids.length) { + return Promise.resolve([]); + } + const keys = _.uniq(ids.filter(id => id)); + if (keys.length === 0) { + return Promise.resolve([]); + } + + return DB.allDocs({ keys, include_docs: true }) + .then(function(results) { + return results.rows + .map(function(row) { + return row.doc; + }) + .filter(function(doc) { + return !!doc; + }); + }); + }; + + const hydrateDocs = function(docs) { + if (!docs.length) { + return Promise.resolve([]); + } + + const hydratedDocs = deepCopy(docs); // a copy of the original docs which we will incrementally hydrate and return + const knownDocs = [...hydratedDocs]; // an array of all documents which we have fetched + + let patientUuids; // a map of [k, v] pairs with [hydratedDocUuid, patientUuid] + let placeUuids; // a map of [k, v] pairs with [hydratedDocUuid, placeUuid] + + return fetchSubjectsUuids(hydratedDocs) + .then((subjectMaps) => { + placeUuids = subjectMaps.placeUuids; + patientUuids = subjectMaps.patientUuids; + + return fetchDocs([...placeUuids.values(), ...patientUuids.values()]); + }) + .then(subjects => { + knownDocs.push(...subjects); + + const firstRoundIdsToFetch = _.uniq([ + ...collectParentIds(hydratedDocs), + ...collectLeafContactIds(hydratedDocs), + + ...collectParentIds(subjects), + ...collectLeafContactIds(subjects), + ]); + + return fetchDocs(firstRoundIdsToFetch); + }) + .then(function(firstRoundFetched) { + knownDocs.push(...firstRoundFetched); + const secondRoundIdsToFetch = collectLeafContactIds(firstRoundFetched) + .filter(id => !knownDocs.some(doc => doc._id === id)); + return fetchDocs(secondRoundIdsToFetch); + }) + .then(function(secondRoundFetched) { + knownDocs.push(...secondRoundFetched); + + fillContactsInDocs(knownDocs, knownDocs); + hydratedDocs.forEach((doc) => { + const reconstructLineage = (docWithLineage, parents) => { + const parentIds = extractParentIds(docWithLineage); + return parentIds.map(id => { + // how can we use hashmaps? + return getContactById(parents, id); + }); + }; + + const isReport = utils.isReport(doc); + const findParentsFor = isReport ? doc.contact : doc; + const lineage = reconstructLineage(findParentsFor, knownDocs); + + if (isReport) { + lineage.unshift(doc); + } + + const patientDoc = getContactById(knownDocs, patientUuids.get(doc._id)); + const patientLineage = reconstructLineage(patientDoc, knownDocs); + + const placeDoc = getContactById(knownDocs, placeUuids.get(doc._id)); + const placeLineage = reconstructLineage(placeDoc, knownDocs); + + mergeLineagesIntoDoc(lineage, knownDocs, patientLineage, placeLineage); + }); + + return hydratedDocs; + }); + }; + + const fetchHydratedDocs = docIds => { + if (!Array.isArray(docIds)) { + return Promise.reject(new Error('Invalid parameter: "docIds" must be an array')); + } + + if (!docIds.length) { + return Promise.resolve([]); + } + + if (docIds.length === 1) { + return fetchHydratedDoc(docIds[0]) + .then(doc => [doc]) + .catch(err => { + if (err.status === 404) { + return []; + } + + throw err; + }); + } + + return DB + .allDocs({ keys: docIds, include_docs: true }) + .then(result => { + const docs = result.rows.map(row => row.doc).filter(doc => doc); + return hydrateDocs(docs); + }); + }; + + return { + /** + * Given a doc id get a doc and all parents, contact (and parents) and patient (and parents) and place (and parents) + * @param {String} id The id of the doc to fetch and hydrate + * @param {Object} [options] Options for the behavior of the hydration + * @param {Boolean} [options.throwWhenMissingLineage=false] When true, throw if the doc has nothing to hydrate. + * When false, does a best effort to return the document regardless of content. + * @returns {Promise} A promise to return the hydrated doc. + */ + fetchHydratedDoc: (id, options, callback) => fetchHydratedDoc(id, options, callback), + + /** + * Given an array of ids, returns hydrated versions of every requested doc (using hydrateDocs or fetchHydratedDoc) + * If a doc is not found, it's simply excluded from the results list + * @param {Object[]} docs The array of docs to hydrate + * @returns {Promise} A promise to return the hydrated docs + */ + fetchHydratedDocs: docIds => fetchHydratedDocs(docIds), + + /** + * Given an array of docs bind the parents, contact (and parents) and patient (and parents) and place (and parents) + * @param {Object[]} docs The array of docs to hydrate + * @returns {Promise} + */ + hydrateDocs: docs => hydrateDocs(docs), + + fetchLineageById, + fetchLineageByIds, + fillContactsInDocs, + fillParentsInDocs, + fetchContacts, + }; +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/lineage/src/index.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/lineage/src/index.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/** + * @module lineage + */ +module.exports = (Promise, DB) => Object.assign( + {}, + __webpack_require__(/*! ./hydration */ "./build/cht-core-4-6/shared-libs/lineage/src/hydration.js")(Promise, DB), + __webpack_require__(/*! ./minify */ "./build/cht-core-4-6/shared-libs/lineage/src/minify.js") +); + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/lineage/src/minify.js": +/*!**************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/lineage/src/minify.js ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const utils = __webpack_require__(/*! ./utils */ "./build/cht-core-4-6/shared-libs/lineage/src/utils.js"); +const RECURSION_LIMIT = 50; + +// Minifies things you would attach to another doc: +// doc.parent = minify(doc.parent) +// Not: +// minify(doc) +const minifyLineage = (parent) => { + if (!parent || !parent._id) { + return parent; + } + + const docId = parent._id; + const result = { _id: parent._id }; + let minified = result; + for (let guard = RECURSION_LIMIT; parent.parent && parent.parent._id; --guard) { + if (guard === 0) { + throw Error(`Could not minify ${docId}, possible parent recursion.`); + } + + minified.parent = { _id: parent.parent._id }; + minified = minified.parent; + parent = parent.parent; + } + + return result; +}; + +/** + * Remove all hyrdrated items and leave just the ids + * @param {Object} doc The doc to minify + */ +const minify = (doc) => { + if (!doc) { + return; + } + if (doc.parent) { + doc.parent = minifyLineage(doc.parent); + } + if (doc.contact && doc.contact._id) { + const miniContact = { _id: doc.contact._id }; + if (doc.contact.parent) { + miniContact.parent = minifyLineage(doc.contact.parent); + } + doc.contact = miniContact; + } + if (doc.type === 'data_record') { + delete doc.patient; + delete doc.place; + } + + if (utils.validLinkedDocs(doc)) { + Object.keys(doc.linked_docs).forEach(key => { + doc.linked_docs[key] = utils.getId(doc.linked_docs[key]); + }); + } +}; + +module.exports = { + minify, + minifyLineage, +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/lineage/src/utils.js": +/*!*************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/lineage/src/utils.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const contactTypeUtils = __webpack_require__(/*! @medic/contact-types-utils */ "./build/cht-core-4-6/shared-libs/contact-types-utils/src/index.js"); +const _ = __webpack_require__(/*! lodash/core */ "./build/cht-core-4-6/node_modules/lodash/core.js"); + +const isContact = doc => { + if (!doc) { + return; + } + + return doc.type === 'contact' || contactTypeUtils.HARDCODED_TYPES.includes(doc.type); +}; + +const getId = (item) => item && (typeof item === 'string' ? item : item._id); + +// don't process linked docs for non-contact types +// linked_docs property should be a key-value object +const validLinkedDocs = doc => { + return isContact(doc) && _.isObject(doc.linked_docs) && !_.isArray(doc.linked_docs); +}; + +const isReport = (doc) => doc.type === 'data_record'; +const getPatientId = (doc) => (doc.fields && (doc.fields.patient_id || doc.fields.patient_uuid)) || doc.patient_id; +const getPlaceId = (doc) => (doc.fields && doc.fields.place_id) || doc.place_id; + + +module.exports = { + getId, + validLinkedDocs, + isReport, + getPatientId, + getPlaceId, +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/registration-utils/src/index.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/registration-utils/src/index.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +const uniq = __webpack_require__(/*! lodash/uniq */ "./build/cht-core-4-6/node_modules/lodash/uniq.js"); + +const formCodeMatches = (conf, form) => { + return (new RegExp('^[^a-z]*' + conf + '[^a-z]*$', 'i')).test(form); +}; + +// Returns whether `doc` is a valid registration against a configuration +// This is done by checks roughly similar to the `registration` transition filter function +// Serves as a replacement for checking for `transitions` metadata within the doc itself +exports.isValidRegistration = (doc, settings) => { + if (!doc || + (doc.errors && doc.errors.length) || + !settings || + !settings.registrations || + doc.type !== 'data_record' || + !doc.form) { + return false; + } + + // Registration transition should be configured for this form + const registrationConfiguration = settings.registrations.find((conf) => { + return conf && + conf.form && + formCodeMatches(conf.form, doc.form); + }); + if (!registrationConfiguration) { + return false; + } + + if (doc.content_type === 'xml') { + return true; + } + + // SMS forms need to be configured + const form = settings.forms && settings.forms[doc.form]; + if (!form) { + return false; + } + + // Require a known submitter or the form to be public. + return Boolean(form.public_form || doc.contact); +}; + +exports._formCodeMatches = formCodeMatches; + +const CONTACT_SUBJECT_PROPERTIES = ['_id', 'patient_id', 'place_id']; +const REPORT_SUBJECT_PROPERTIES = ['patient_id', 'patient_uuid', 'place_id', 'place_uuid']; + +exports.getSubjectIds = (doc) => { + const subjectIds = []; + + if (!doc) { + return subjectIds; + } + + if (doc.type === 'data_record') { + REPORT_SUBJECT_PROPERTIES.forEach(prop => { + if (doc[prop]) { + subjectIds.push(doc[prop]); + } + if (doc.fields && doc.fields[prop]) { + subjectIds.push(doc.fields[prop]); + } + }); + } else { + CONTACT_SUBJECT_PROPERTIES.forEach(prop => { + if (doc[prop]) { + subjectIds.push(doc[prop]); + } + }); + } + + return uniq(subjectIds); +}; + +exports.getSubjectId = report => { + if (!report) { + return false; + } + for (const prop of REPORT_SUBJECT_PROPERTIES) { + if (report[prop]) { + return report[prop]; + } + if (report.fields && report.fields[prop]) { + return report.fields[prop]; + } + } +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/index.js": +/*!******************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/index.js ***! + \******************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/** + * @module rules-engine + * + * Business logic for interacting with rules documents + */ + +const pouchdbProvider = __webpack_require__(/*! ./pouchdb-provider */ "./build/cht-core-4-6/shared-libs/rules-engine/src/pouchdb-provider.js"); +const rulesEmitter = __webpack_require__(/*! ./rules-emitter */ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/index.js"); +const rulesStateStore = __webpack_require__(/*! ./rules-state-store */ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-state-store.js"); +const wireupToProvider = __webpack_require__(/*! ./provider-wireup */ "./build/cht-core-4-6/shared-libs/rules-engine/src/provider-wireup.js"); + +/** + * @param {Object} db Medic pouchdb database + */ +module.exports = db => { + const provider = pouchdbProvider(db); + return { + /** + * @param {Object} settings Settings for the behavior of the rules engine + * @param {Object} settings.rules Rules code from settings doc + * @param {Object[]} settings.taskSchedules Task schedules from settings doc + * @param {Object[]} settings.targets Target definitions from settings doc + * @param {Boolean} settings.enableTasks Flag to enable tasks + * @param {Boolean} settings.enableTargets Flag to enable targets + * @param {Boolean} [settings.rulesAreDeclarative=false] Flag to indicate the content of settings.rules. When true, + * rules is processed as native JavaScript. When false, nools is used. + * @param {RulesEmitter} [settings.customEmitter] Optional custom RulesEmitter object + * @param {Object} settings.contact User's hydrated contact document + * @param {Object} settings.user User's settings document + */ + initialize: (settings) => wireupToProvider.initialize(provider, settings), + + /** + * @returns {Boolean} True if the rules engine is enabled and ready for use + */ + isEnabled: () => rulesEmitter.isEnabled() && rulesEmitter.isLatestNoolsSchema(), + + /** + * Refreshes all rules documents for a set of contacts and returns their task documents + * + * @param {string[]} contactIds An array of contact ids. If undefined, returns tasks for all contacts + * @returns {Promise} All the fresh task docs owned by contactIds + */ + fetchTasksFor: contactIds => wireupToProvider.fetchTasksFor(provider, contactIds), + + /** + * Returns a breakdown of tasks by state and title for the provided list of contacts + * + * @param {string[]} contactIds An array of contact ids. If undefined, returns breakdown for all contacts + * @returns {Promise} The breakdown of tasks counts by state and title + */ + fetchTasksBreakdown: contactIds => wireupToProvider.fetchTasksBreakdown(provider, contactIds), + + /** + * Refreshes all rules documents and returns the latest target document + * + * @param {Object} filterInterval Target emissions with date within the interval will be aggregated into the + * target scores + * @param {Integer} filterInterval.start Start timestamp of interval + * @param {Integer} filterInterval.end End timestamp of interval + * @returns {Promise} Array of fresh targets + */ + fetchTargets: filterInterval => wireupToProvider.fetchTargets(provider, filterInterval), + + /** + * Indicate that the task documents associated with a given subjectId are dirty. + * + * @param {string[]} subjectIds An array of subject ids + * + * @returns {Promise} To mark the subjectIds as dirty + */ + updateEmissionsFor: subjectIds => wireupToProvider.updateEmissionsFor(provider, subjectIds), + + /** + * Determines if either the settings or user's hydrated contact document have changed in a way which will impact + * the result of rules calculations. + * If they have changed in a meaningful way, the calculation state of all contacts is reset + * + * @param {Object} settings Updated settings + * @param {Object} settings.rules Rules code from settings doc + * @param {Object[]} settings.taskSchedules Task schedules from settings doc + * @param {Object[]} settings.targets Target definitions from settings doc + * @param {Boolean} settings.enableTasks Flag to enable tasks + * @param {Boolean} settings.enableTargets Flag to enable targets + * @param {Boolean} [settings.rulesAreDeclarative=false] Flag to indicate the content of settings.rules. When true, + * rules is native JavaScript. When false, nools is used + * @param {RulesEmitter} [settings.customEmitter] Optional custom RulesEmitter object + * @param {Object} settings.contact User's hydrated contact document + * @param {Object} settings.user User's user-settings document + */ + rulesConfigChange: (settings) => { + const cacheIsReset = rulesStateStore.rulesConfigChange(settings); + if (cacheIsReset) { + rulesEmitter.shutdown(); + rulesEmitter.initialize(settings); + } + }, + + /** + * Returns a list of UUIDs of tracked contacts that are marked as dirty + * @returns {Array} list of dirty contacts UUIDs + */ + getDirtyContacts: () => rulesStateStore.getDirtyContacts(), + }; +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/pouchdb-provider.js": +/*!*****************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/pouchdb-provider.js ***! + \*****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/** + * @module pouchdb-provider + * + * Wireup for accessing rules document data via medic pouch db + */ + +/* eslint-disable no-console */ +const moment = __webpack_require__(/*! moment */ "./build/cht-core-4-6/node_modules/moment/moment.js"); +const registrationUtils = __webpack_require__(/*! @medic/registration-utils */ "./build/cht-core-4-6/shared-libs/registration-utils/src/index.js"); +const uniqBy = __webpack_require__(/*! lodash/uniqBy */ "./build/cht-core-4-6/node_modules/lodash/uniqBy.js"); + +const RULES_STATE_DOCID = '_local/rulesStateStore'; +const MAX_QUERY_KEYS = 500; + +const docsOf = (query) => { + return query.then(result => { + const rows = uniqBy(result.rows, 'id'); + return rows.map(row => row.doc).filter(existing => existing); + }); +}; + +const rowsOf = (query) => query.then(result => uniqBy(result.rows, 'id')); + +const medicPouchProvider = db => { + const dbQuery = async (view, params) => { + if (!params?.keys || params.keys.length < MAX_QUERY_KEYS) { + return db.query(view, params); + } + + const keys = new Set(params.keys); + delete params.keys; + const results = await db.query(view, params); + const rows = results.rows.filter(row => keys.has(row.key)); + return { ...results, rows }; + }; + + const self = { + // PouchDB.query slows down when provided with a large keys array. + // For users with ~1000 contacts it is ~50x faster to provider a start/end key instead of specifying all ids + allTasks: prefix => { + const options = { startkey: `${prefix}-`, endkey: `${prefix}-\ufff0`, include_docs: true }; + return docsOf(dbQuery('medic-client/tasks_by_contact', options)); + }, + + allTaskData: userSettingsDoc => { + const userSettingsId = userSettingsDoc?._id; + return Promise.all([ + docsOf(dbQuery('medic-client/contacts_by_type', { include_docs: true })), + docsOf(dbQuery('medic-client/reports_by_subject', { include_docs: true })), + self.allTasks('requester'), + ]) + .then(([contactDocs, reportDocs, taskDocs]) => ({ contactDocs, reportDocs, taskDocs, userSettingsId })); + }, + + contactsBySubjectId: subjectIds => { + const keys = subjectIds.map(key => ['shortcode', key]); + return dbQuery('medic-client/contacts_by_reference', { keys, include_docs: true }) + .then(results => { + const shortcodeIds = results.rows.map(result => result.doc._id); + const idsThatArentShortcodes = subjectIds.filter(id => !results.rows.map(row => row.key[1]).includes(id)); + + return [...shortcodeIds, ...idsThatArentShortcodes]; + }); + }, + + stateChangeCallback: docUpdateClosure(db), + + commitTargetDoc: (targets, userContactDoc, userSettingsDoc, docTag, force = false) => { // NOSONAR + const userContactId = userContactDoc?._id; + const userSettingsId = userSettingsDoc?._id; + const _id = `target~${docTag}~${userContactId}~${userSettingsId}`; + const createNew = () => ({ + _id, + type: 'target', + user: userSettingsId, + owner: userContactId, + reporting_period: docTag, + }); + + const today = moment().startOf('day').valueOf(); + return db.get(_id) + .catch(createNew) + .then(existingDoc => { + if (existingDoc.updated_date === today && !force) { + return false; + } + + existingDoc.targets = targets; + existingDoc.updated_date = today; + return db.put(existingDoc); + }); + }, + + commitTaskDocs: taskDocs => { + if (!taskDocs || taskDocs.length === 0) { + return Promise.resolve([]); + } + + ; + return db.bulkDocs(taskDocs) + .catch(err => console.error('Error committing task documents', err)); + }, + + existingRulesStateStore: () => db.get(RULES_STATE_DOCID).catch(() => ({ _id: RULES_STATE_DOCID })), + + tasksByRelation: (contactIds, prefix) => { + const keys = contactIds.map(contactId => `${prefix}-${contactId}`); + return docsOf(dbQuery( 'medic-client/tasks_by_contact', { keys, include_docs: true })); + }, + + allTaskRowsByOwner: (contactIds) => { + const keys = contactIds.map(contactId => (['owner', 'all', contactId])); + return rowsOf(dbQuery( 'medic-client/tasks_by_contact', { keys })); + }, + + allTaskRows: () => { + const options = { + startkey: ['owner', 'all'], + endkey: ['owner', 'all', '\ufff0'], + }; + + return rowsOf(dbQuery( 'medic-client/tasks_by_contact', options)); + }, + + taskDataFor: (contactIds, userSettingsDoc) => { + if (!contactIds || contactIds.length === 0) { + return Promise.resolve({}); + } + + return docsOf(db.allDocs({ keys: contactIds, include_docs: true })) + .then(contactDocs => { + const subjectIds = contactDocs.reduce((agg, contactDoc) => { + registrationUtils.getSubjectIds(contactDoc).forEach(subjectId => agg.add(subjectId)); + return agg; + }, new Set(contactIds)); + + const keys = Array.from(subjectIds); + return Promise + .all([ + docsOf(dbQuery('medic-client/reports_by_subject', { keys, include_docs: true })), + self.tasksByRelation(contactIds, 'requester'), + ]) + .then(([reportDocs, taskDocs]) => { + // tighten the connection between reports and contacts + // a report will only be allowed to generate tasks for a single contact! + reportDocs = reportDocs.filter(report => { + const subjectId = registrationUtils.getSubjectId(report); + return subjectIds.has(subjectId); + }); + + return { + userSettingsId: userSettingsDoc?._id, + contactDocs, + reportDocs, + taskDocs, + }; + }); + }); + }, + }; + + return self; +}; + +medicPouchProvider.RULES_STATE_DOCID = RULES_STATE_DOCID; + +const docUpdateClosure = db => { + // previousResult helps avoid conflict errors if this functions is used asynchronously + let previousResult = Promise.resolve(); + return (baseDoc, assigned) => { + Object.assign(baseDoc, assigned); + + previousResult = previousResult + .then(() => db.put(baseDoc)) + .then(updatedDoc => (baseDoc._rev = updatedDoc.rev)) + .catch(err => console.error(`Error updating ${baseDoc._id}: ${err}`)) + .then(() => { + // unsure of how browsers handle long promise chains, so break the chain when possible + previousResult = Promise.resolve(); + }); + + return previousResult; + }; +}; + +module.exports = medicPouchProvider; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/provider-wireup.js": +/*!****************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/provider-wireup.js ***! + \****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/** + * @module wireup + * + * Wireup a data provider to the rules-engine + */ + +const moment = __webpack_require__(/*! moment */ "./build/cht-core-4-6/node_modules/moment/moment.js"); +const registrationUtils = __webpack_require__(/*! @medic/registration-utils */ "./build/cht-core-4-6/shared-libs/registration-utils/src/index.js"); + +const TaskStates = __webpack_require__(/*! ./task-states */ "./build/cht-core-4-6/shared-libs/rules-engine/src/task-states.js"); +const refreshRulesEmissions = __webpack_require__(/*! ./refresh-rules-emissions */ "./build/cht-core-4-6/shared-libs/rules-engine/src/refresh-rules-emissions.js"); +const rulesEmitter = __webpack_require__(/*! ./rules-emitter */ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/index.js"); +const rulesStateStore = __webpack_require__(/*! ./rules-state-store */ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-state-store.js"); +const updateTemporalStates = __webpack_require__(/*! ./update-temporal-states */ "./build/cht-core-4-6/shared-libs/rules-engine/src/update-temporal-states.js"); +const calendarInterval = __webpack_require__(/*! @medic/calendar-interval */ "./build/cht-core-4-6/shared-libs/calendar-interval/src/index.js"); + +let wireupOptions; + +module.exports = { + /** + * @param {Object} provider A data provider + * @param {Object} settings Settings for the behavior of the provider + * @param {Object} settings.rules Rules code from settings doc + * @param {Object[]} settings.taskSchedules Task schedules from settings doc + * @param {Object[]} settings.targets Target definitions from settings doc + * @param {Boolean} settings.enableTasks Flag to enable tasks + * @param {Boolean} settings.enableTargets Flag to enable targets + * @param {Boolean} [settings.rulesAreDeclarative=true] Flag to indicate the content of settings.rules. When true, + * rules is processed as native JavaScript. When false, nools is used. + * @param {RulesEmitter} [settings.customEmitter] Optional custom RulesEmitter object + * @param {number} settings.monthStartDate reporting interval start date + * @param {Object} userDoc User's hydrated contact document + */ + initialize: (provider, settings) => { + const isEnabled = rulesEmitter.initialize(settings); + if (!isEnabled) { + return Promise.resolve(); + } + + const { enableTasks=true, enableTargets=true } = settings; + wireupOptions = { enableTasks, enableTargets }; + + return provider + .existingRulesStateStore() + .then(existingStateDoc => { + if (!rulesEmitter.isLatestNoolsSchema()) { + throw Error('Rules Engine: Updates to the nools schema are required'); + } + + const contactClosure = updatedState => provider.stateChangeCallback( + existingStateDoc, + { rulesStateStore: updatedState } + ); + const needsBuilding = rulesStateStore.load(existingStateDoc.rulesStateStore, settings, contactClosure); + return handleIntervalTurnover(provider, settings).then(() => { + if (!needsBuilding) { + return; + } + + rulesStateStore.build(settings, contactClosure); + }); + }); + }, + + /** + * Refreshes the rules emissions for all contacts + * Fetches all tasks in non-terminal state owned by the contacts + * Updates the temporal states of the task documents + * Commits those changes (async) + * + * @param {Object} provider A data provider + * @param {string[]} contactIds An array of contact ids. If undefined, returns tasks for all contacts + * @returns {Promise} All the fresh task docs owned by contacts + */ + fetchTasksFor: (provider, contactIds) => { + if (!rulesEmitter.isEnabled() || !wireupOptions.enableTasks) { + return disabledResponse(); + } + + return enqueue(() => { + const calculationTimestamp = Date.now(); + return refreshRulesEmissionForContacts(provider, calculationTimestamp, contactIds) + .then(() => contactIds ? provider.tasksByRelation(contactIds, 'owner') : provider.allTasks('owner')) + .then(tasksToDisplay => { + const docsToCommit = updateTemporalStates(tasksToDisplay, calculationTimestamp); + provider.commitTaskDocs(docsToCommit); + return tasksToDisplay.filter(taskDoc => taskDoc.state === TaskStates.Ready); + }); + }); + }, + + /** + * Returns a breakdown of task counts by state and title for the provided contacts, or all contacts + * Does NOT refresh rules emissions + * @param {Object} provider A data provider + * @param {string[]} contactIds An array of contact ids. If undefined, returns breakdown for all contacts + * @return {Promise<{ + * Ready: number, + * Draft: number, + * Failed: number, + * Completed: number, + * Cancelled: number, + *}>} + */ + fetchTasksBreakdown: (provider, contactIds) => { + const tasksByState = Object.assign({}, TaskStates.states); + Object + .keys(tasksByState) + .forEach(state => tasksByState[state] = 0); + + if (!rulesEmitter.isEnabled() || !wireupOptions.enableTasks) { + return Promise.resolve(tasksByState); + } + + const getTasks = contactIds ? provider.allTaskRowsByOwner(contactIds) : provider.allTaskRows(); + + return getTasks.then(taskRows => { + taskRows.forEach(({ value: { state } }) => { + if (Object.hasOwnProperty.call(tasksByState, state)) { + tasksByState[state]++; + } + }); + + return tasksByState; + }); + }, + + /** + * Refreshes the rules emissions for all contacts + * + * @param {Object} provider A data provider + * @param {Object} filterInterval Target emissions with date within the interval will be aggregated into the target + * scores + * @param {Integer} filterInterval.start Start timestamp of interval + * @param {Integer} filterInterval.end End timestamp of interval + * @returns {Promise} The fresh aggregate target doc + */ + fetchTargets: (provider, filterInterval) => { + if (!rulesEmitter.isEnabled() || !wireupOptions.enableTargets) { + return disabledResponse(); + } + + const calculationTimestamp = Date.now(); + const targetEmissionFilter = filterInterval && (emission => { + // 4th parameter of isBetween represents inclusivity. By default or using ( is exclusive, [ is inclusive + return moment(emission.date).isBetween(filterInterval.start, filterInterval.end, null, '[]'); + }); + + return enqueue(() => { + return refreshRulesEmissionForContacts(provider, calculationTimestamp) + .then(() => { + const targets = rulesStateStore.aggregateStoredTargetEmissions(targetEmissionFilter); + return storeTargetsDoc(provider, targets, filterInterval).then(() => targets); + }); + }); + }, + + /** + * Indicate that the rules emissions associated with a given subjectId are dirty + * + * @param {Object} provider A data provider + * @param {string[]} subjectIds An array of subject ids + * + * @returns {Promise} To complete the transaction marking the subjectIds as dirty + */ + updateEmissionsFor: (provider, subjectIds) => { + if (!subjectIds) { + subjectIds = []; + } + + if (subjectIds && !Array.isArray(subjectIds)) { + subjectIds = [subjectIds]; + } + + // this function accepts subject ids, but rulesStateStore accepts a contact id, so a conversion is required + return enqueue(() => { + return provider + .contactsBySubjectId(subjectIds) + .then(contactIds => rulesStateStore.markDirty(contactIds)); + }); + }, +}; + +let refreshQueue = Promise.resolve(); +const enqueue = callback => { + const listeners = []; + const eventQueue = []; + const emit = evtName => { + // we have to emit `queued` immediately, but there are no listeners listening at this point + // eventQueue will keep a list of listener-less events. when listeners are registered, we check if they + // have events in eventQueue, and call their callback immediately for each matching queued event. + if (!listeners[evtName]) { + return eventQueue.push(evtName); + } + listeners[evtName].forEach(callback => callback()); + }; + + emit('queued'); + refreshQueue = refreshQueue.then(() => { + emit('running'); + return callback(); + }); + + refreshQueue.on = (evtName, callback) => { + listeners[evtName] = listeners[evtName] || []; + listeners[evtName].push(callback); + eventQueue.forEach(queuedEvent => queuedEvent === evtName && callback()); + return refreshQueue; + }; + + return refreshQueue; +}; + +const disabledResponse = () => { + const p = Promise.resolve([]); + p.on = () => p; + return p; +}; + +const refreshRulesEmissionForContacts = (provider, calculationTimestamp, contactIds) => { + const refreshAndSave = (freshData, updatedContactIds) => ( + refreshRulesEmissions(freshData, calculationTimestamp, wireupOptions) + .then(refreshed => Promise.all([ + rulesStateStore.storeTargetEmissions(updatedContactIds, refreshed.targetEmissions), + provider.commitTaskDocs(refreshed.updatedTaskDocs), + ])) + ); + + const refreshForAllContacts = (calculationTimestamp) => ( + provider.allTaskData(rulesStateStore.currentUserSettings()) + .then(freshData => ( + refreshAndSave(freshData) + .then(() => { + const contactIds = freshData.contactDocs.map(doc => doc._id); + + const subjectIds = freshData.contactDocs.reduce((agg, contactDoc) => { + registrationUtils.getSubjectIds(contactDoc).forEach(subjectId => agg.add(subjectId)); + return agg; + }, new Set()); + + const headlessSubjectIds = freshData.reportDocs + .map(doc => registrationUtils.getSubjectId(doc)) + .filter(subjectId => !subjectIds.has(subjectId)); + + rulesStateStore.markAllFresh(calculationTimestamp, [...contactIds, ...headlessSubjectIds]); + }) + )) + ); + + const refreshForKnownContacts = (calculationTimestamp, contactIds) => { + const dirtyContactIds = contactIds.filter(contactId => rulesStateStore.isDirty(contactId)); + return provider.taskDataFor(dirtyContactIds, rulesStateStore.currentUserSettings()) + .then(freshData => refreshAndSave(freshData, dirtyContactIds)) + .then(() => { + rulesStateStore.markFresh(calculationTimestamp, dirtyContactIds); + }); + }; + + return handleIntervalTurnover(provider, { monthStartDate: rulesStateStore.getMonthStartDate() }).then(() => { + if (contactIds) { + return refreshForKnownContacts(calculationTimestamp, contactIds); + } + + // If the contact state store does not contain all contacts, build up that list (contact doc ids + headless ids in + // reports/tasks) + if (!rulesStateStore.hasAllContacts()) { + return refreshForAllContacts(calculationTimestamp); + } + + // Once the contact state store has all contacts, trust it and only refresh those marked dirty + return refreshForKnownContacts(calculationTimestamp, rulesStateStore.getContactIds()); + }); +}; + +const storeTargetsDoc = (provider, targets, filterInterval, force = false) => { + const targetDocTag = filterInterval ? moment(filterInterval.end).format('YYYY-MM') : 'latest'; + const minifyTarget = target => ({ id: target.id, value: target.value }); + + return provider.commitTargetDoc( + targets.map(minifyTarget), + rulesStateStore.currentUserContact(), + rulesStateStore.currentUserSettings(), + targetDocTag, + force + ); +}; + +// Because we only save the `target` document once per day (when we calculate targets for the first time), +// we're losing all updates to targets that happened in the last day of the reporting period. +// This function takes the last saved state (which may be stale) and generates the targets doc for the corresponding +// reporting interval (that includes the date when the state was calculated). +// We don't recalculate the state prior to this because we support targets that count events infinitely to emit `now`, +// which means that they would all be excluded from the emission filter (being outside the past reporting interval). +// https://github.com/medic/cht-core/issues/6209 +const handleIntervalTurnover = (provider, { monthStartDate }) => { + if (!rulesStateStore.isLoaded() || !wireupOptions.enableTargets) { + return Promise.resolve(); + } + + const stateCalculatedAt = rulesStateStore.stateLastUpdatedAt(); + if (!stateCalculatedAt) { + return Promise.resolve(); + } + + const currentInterval = calendarInterval.getCurrent(monthStartDate); + // 4th parameter of isBetween represents inclusivity. By default or using ( is exclusive, [ is inclusive + if (moment(stateCalculatedAt).isBetween(currentInterval.start, currentInterval.end, null, '[]')) { + return Promise.resolve(); + } + + const filterInterval = calendarInterval.getInterval(monthStartDate, stateCalculatedAt); + const targetEmissionFilter = (emission => { + // 4th parameter of isBetween represents inclusivity. By default or using ( is exclusive, [ is inclusive + return moment(emission.date).isBetween(filterInterval.start, filterInterval.end, null, '[]'); + }); + + const targets = rulesStateStore.aggregateStoredTargetEmissions(targetEmissionFilter); + return storeTargetsDoc(provider, targets, filterInterval, true); +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/refresh-rules-emissions.js": +/*!************************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/refresh-rules-emissions.js ***! + \************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/** + * @module refresh-rules-emissions + * Uses rules-emitter to calculate the fresh emissions for a set of contacts, their reports, and their tasks + * Creates or updates one task document per unique emission id + * Cancels task documents in non-terminal states if they were not emitted + * + * @requires rules-emitter to be initialized + */ + +const rulesEmitter = __webpack_require__(/*! ./rules-emitter */ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/index.js"); +const TaskStates = __webpack_require__(/*! ./task-states */ "./build/cht-core-4-6/shared-libs/rules-engine/src/task-states.js"); +const transformTaskEmissionToDoc = __webpack_require__(/*! ./transform-task-emission-to-doc */ "./build/cht-core-4-6/shared-libs/rules-engine/src/transform-task-emission-to-doc.js"); + +/** + * @param {Object[]} freshData.contactDocs A set of contact documents + * @param {Object[]} freshData.reportDocs All of the contacts' reports + * @param {Object[]} freshData.taskDocs All of the contacts' task documents (must be linked by requester to a contact) + * @param {Object[]} freshData.userSettingsId The id of the user's settings document + * + * @param {int} calculationTimestamp Timestamp for the round of rules calculations + * + * @param {Object=} [options] Options for the behavior when refreshing rules + * @param {Boolean} [options.enableTasks=true] Flag to enable tasks + * @param {Boolean} [options.enableTargets=true] Flag to enable targets + * + * @returns {Object} result + * @returns {Object[]} result.targetEmissions Array of raw target emissions + * @returns {Object[]} result.updatedTaskDocs Array of updated task documents + */ +module.exports = (freshData = {}, calculationTimestamp = Date.now(), { enableTasks=true, enableTargets=true }={}) => { + const { contactDocs = [], reportDocs = [], taskDocs = [] } = freshData; + return rulesEmitter.getEmissionsFor(contactDocs, reportDocs, taskDocs) + .then(emissions => Promise.all([ + enableTasks ? getUpdatedTaskDocs(emissions.tasks, freshData, calculationTimestamp, enableTasks) : [], + enableTargets ? emissions.targets : [], + ])) + .then(([updatedTaskDocs, targetEmissions]) => ({ updatedTaskDocs, targetEmissions })); +}; + +const getUpdatedTaskDocs = (taskEmissions, freshData, calculationTimestamp) => { + const { taskDocs = [], userSettingsId } = freshData; + const { winners: emissionIdToLatestDocMap, duplicates: duplicateTaskDocs } = disambiguateTaskDocs( + taskDocs, + calculationTimestamp + ); + + const timelyEmissions = taskEmissions.filter(emission => TaskStates.isTimely(emission, calculationTimestamp)); + const taskTransforms = disambiguateEmissions(timelyEmissions, calculationTimestamp) + .map(taskEmission => { + const existingDoc = emissionIdToLatestDocMap[taskEmission._id]; + return transformTaskEmissionToDoc(taskEmission, calculationTimestamp, userSettingsId, existingDoc); + }); + + const freshTaskDocs = taskTransforms.map(doc => doc.taskDoc); + const cancelledDocs = getCancellationUpdates(freshTaskDocs, freshData.taskDocs, calculationTimestamp); + const cancelledDuplicatedDocs = getDeduplicationUpdates(duplicateTaskDocs, calculationTimestamp); + const updatedTaskDocs = taskTransforms.filter(doc => doc.isUpdated).map(result => result.taskDoc); + return [...updatedTaskDocs, ...cancelledDocs, ...cancelledDuplicatedDocs]; +}; + +/** + * Examine the existing task documents which were previously emitted by the same contact + * Cancel any doc that is in a non-terminal state and does not have an emission to keep it alive + */ +const getCancellationUpdates = (freshDocs, existingTaskDocs = [], calculatedAt = 0) => { + const existingNonTerminalTaskDocs = existingTaskDocs.filter(doc => !TaskStates.isTerminal(doc.state)); + const currentEmissionIds = new Set(freshDocs.map(doc => doc.emission._id)); + + return existingNonTerminalTaskDocs + .filter(doc => !currentEmissionIds.has(doc.emission._id)) + .map(doc => TaskStates.setStateOnTaskDoc(doc, TaskStates.Cancelled, calculatedAt)); +}; + +/** + * All duplicate task docs that are not in a terminal state are "Cancelled" with a "duplicate" reason + * @param {Array} duplicatedTaskDocs - array of task docs that exist in the local DB + * @param {number} calculatedAt - Timestamp for the round of rules calculations + * @returns {Array} - task docs with updated state + */ +const getDeduplicationUpdates = (duplicatedTaskDocs, calculatedAt) => { + return duplicatedTaskDocs + .filter(doc => !TaskStates.isTerminal(doc.state)) + .map(doc => TaskStates.setStateOnTaskDoc(doc, TaskStates.Cancelled, calculatedAt, 'duplicate')); +}; + +/* +It is possible to receive multiple emissions with the same id. When this happens, we need to pick one winner. +We pick the "most ready" emission. +*/ +const disambiguateEmissions = (taskEmissions, forTime) => { + const winners = taskEmissions.reduce((agg, emission) => { + if (!agg[emission._id]) { + agg[emission._id] = emission; + } else { + const incomingState = TaskStates.calculateState(emission, forTime) || TaskStates.Cancelled; + const currentState = TaskStates.calculateState(agg[emission._id], forTime) || TaskStates.Cancelled; + if (TaskStates.isMoreReadyThan(incomingState, currentState)) { + agg[emission._id] = emission; + } + } + return agg; + }, {}); + + return Object.keys(winners).map(key => winners[key]); // Object.values() +}; + +/** + * It's possible to have multiple task docs with the same emission id. (For example, when the same account logs in + * on multiple devices). When this happens, we pick the "most ready" most recent task. However, tasks that are authored + * in the future are discarded. + * @param {Array} taskDocs - An array of already exiting task documents + * @param {number} forTime - current calculation timestamp + * @returns {Object} result + * @returns {Object} result.winners - A map of emission id to task pairs + * @returns {Array} result.duplicates - A list of task documents that are duplicates and need to be cancelled + */ +const disambiguateTaskDocs = (taskDocs, forTime) => { + const duplicates = []; + const winners = {}; + + const taskDocsByEmissionId = mapEmissionIdToTaskDocs(taskDocs, forTime); + + Object.keys(taskDocsByEmissionId).forEach(emissionId => { + taskDocsByEmissionId[emissionId].forEach(taskDoc => { + if (!winners[emissionId]) { + winners[emissionId] = taskDoc; + return; + } + + const stateComparison = TaskStates.compareState(taskDoc.state, winners[emissionId].state); + if ( + // if taskDoc is more ready + stateComparison < 0 || + // or taskDoc is more recent, when having the same state + (stateComparison === 0 && taskDoc.authoredOn > winners[emissionId].authoredOn) + ) { + duplicates.push(winners[emissionId]); + winners[emissionId] = taskDoc; + } else { + duplicates.push(taskDoc); + } + }); + }); + + return { winners, duplicates }; +}; + +const mapEmissionIdToTaskDocs = (taskDocs, maxTimestamp) => { + const tasksByEmission = {}; + taskDocs + // mitigate the fallout of a user who rewinds their system-clock after creating task docs + .filter(doc => doc.authoredOn <= maxTimestamp) + .forEach(doc => { + const emissionId = doc.emission._id; + if (!tasksByEmission[emissionId]) { + tasksByEmission[emissionId] = []; + } + tasksByEmission[emissionId].push(doc); + }); + return tasksByEmission; +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.javascript.js": +/*!*********************************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.javascript.js ***! + \*********************************************************************************************/ +/***/ ((module) => { + +/** + * @module emitter.javascript + * Processes declarative configuration code by executing javascript rules directly + */ + +class Contact { + constructor({ contact, reports, tasks}) { + this.contact = contact; + this.reports = reports; + this.tasks = tasks; + } +} + +// required by marshalDocsByContact +Contact.prototype.tasks = 'defined'; + +class Task { + constructor(x) { + Object.assign(this, x); + } +} + +class Target { + constructor(x) { + Object.assign(this, x); + } +} + +let processDocsByContact; +const results = { tasks: [], targets: [] }; + +module.exports = { + getContact: () => Contact, + initialize: (settings, scope) => { + const rawFunction = new Function('c', 'Task', 'Target', 'Utils', 'user', 'cht', 'emit', settings.rules); + processDocsByContact = container => rawFunction( + container, + Task, + Target, + scope.Utils, + scope.user, + scope.cht, + emitCallback, + ); + return true; + }, + + startSession: () => { + if (!processDocsByContact) { + throw Error('Failed to start task session. Not initialized'); + } + + results.tasks = []; + results.targets = []; + + return { + processDocsByContact, + result: () => Promise.resolve(results), + dispose: () => {}, + }; + }, + + isLatestNoolsSchema: () => true, + + shutdown: () => { + processDocsByContact = undefined; + }, +}; + +const emitCallback = (instanceType, instance) => { + if (instanceType === 'task') { + results.tasks.push(instance); + } else if (instanceType === 'target') { + results.targets.push(instance); + } +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.nools.js": +/*!****************************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.nools.js ***! + \****************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/** + * @module emitter.nools + * Encapsulates interactions with the nools library + * Promisifies the execution of partner "rules" code + * Ensures memory allocated by nools is freed after each run + */ +const nools = __webpack_require__(/*! nools */ "./build/cht-core-4-6/node_modules/nools/index.js"); + +let flow; + +const startSession = function() { + if (!flow) { + throw Error('Failed to start task session. Not initialized'); + } + + const session = flow.getSession(); + const tasks = []; + const targets = []; + session.on('task', task => tasks.push(task)); + session.on('target', target => targets.push(target)); + + return { + assert: session.assert.bind(session), + dispose: session.dispose.bind(session), + + // session.match can return a thenable but not a promise. so wrap it in a real promise + match: () => new Promise((resolve, reject) => { + session.match(err => { + session.dispose(); + if (err) { + return reject(err); + } + + resolve({ tasks, targets }); + }); + }), + }; +}; + +module.exports = { + getContact: () => flow.getDefined('contact'), + initialize: (settings, scope) => { + flow = nools.compile(settings.rules, { + name: 'medic', + scope, + }); + + return !!flow; + }, + startSession: () => { + const session = startSession(); + return { + processDocsByContact: session.assert, + dispose: session.dispose, + result: session.match, + }; + }, + + /** + * When upgrading to version 3.8, partners are required to make schema changes in their partner code + * https://docs.communityhealthtoolkit.org/core/releases/3.8.0/#breaking-changes + * + * @returns True if the schema changes are in place + */ + isLatestNoolsSchema: () => { + if (!flow) { + throw Error('task emitter is not enabled -- cannot determine schema version'); + } + + const Task = flow.getDefined('task'); + const Target = flow.getDefined('target'); + const hasProperty = (obj, attr) => Object.hasOwnProperty.call(obj, attr); + return hasProperty(Task.prototype, 'readyStart') && + hasProperty(Task.prototype, 'readyEnd') && + hasProperty(Target.prototype, 'contact'); + }, + + shutdown: () => { + nools.deleteFlows(); + flow = undefined; + }, +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/index.js": +/*!********************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/index.js ***! + \********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/** + * @module rules-emitter + * Handles the lifecycle of a @RulesEmitter and marshales of documents into the emitter by contact + * + * @typedef {Object} RulesEmitter Responsible for executing the logic in _rules_ and returning _emissions_ + */ +const nootils = __webpack_require__(/*! cht-nootils */ "./build/cht-core-4-6/node_modules/cht-nootils/src/nootils.js"); +const registrationUtils = __webpack_require__(/*! @medic/registration-utils */ "./build/cht-core-4-6/shared-libs/registration-utils/src/index.js"); + +const javascriptEmitter = __webpack_require__(/*! ./emitter.javascript */ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.javascript.js"); +const noolsEmitter = __webpack_require__(/*! ./emitter.nools */ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.nools.js"); + +let emitter; + +/** +* Sets the rules emitter to an uninitialized state. +*/ +const shutdown = () => { + if (emitter) { + emitter.shutdown(); + } + + emitter = undefined; +}; + +module.exports = { + /** + * Initializes the rules emitter + * + * @param {Object} settings Settings for the behavior of the rules emitter + * @param {Object} settings.rules Rules code from settings doc + * @param {Object[]} settings.taskSchedules Task schedules from settings doc + * @param {Boolean} [settings.rulesAreDeclarative=true] Flag to indicate the content of settings.rules. When true, + * rules is processed as native JavaScript. When false, nools is used. + * @param {RulesEmitter} [settings.customEmitter] Optional custom RulesEmitter object + * @param {Object} settings.contact The logged in user's contact document + * @returns {Boolean} Success + */ + initialize: (settings) => { + if (emitter) { + throw Error('Attempted to initialize the rules emitter multiple times.'); + } + + if (!settings.rules) { + return false; + } + + shutdown(); + emitter = resolveEmitter(settings); + + try { + const settingsDoc = { tasks: { schedules: settings.taskSchedules } }; + const nootilsInstance = nootils(settingsDoc); + const scope = { + Utils: nootilsInstance, + user: settings.contact, + cht: settings.chtScriptApi, + }; + return emitter.initialize(settings, scope); + } catch (err) { + shutdown(); + throw err; + } + }, + + /** + * When upgrading to version 3.8, partners are required to make schema changes in their partner code + * https://docs.communityhealthtoolkit.org/core/releases/3.8.0/#breaking-changes + * + * @returns True if the schema changes are in place + */ + isLatestNoolsSchema: () => { + if (!emitter) { + throw Error('task emitter is not enabled -- cannot determine schema version'); + } + + return emitter.isLatestNoolsSchema(); + }, + + /** + * Runs the partner's rules code for a set of documents and returns all emissions from nools + * + * @param {Object[]} contactDocs A set of contact documents + * @param {Object[]} reportDocs All of the contacts' reports + * @param {Object[]} taskDocs All of the contacts' task documents (must be linked by requester to a contact) + * + * @returns {Promise} emissions The raw emissions from nools + * @returns {Object[]} emissions.tasks Array of task emissions + * @returns {Object[]} emissions.targets Array of target emissions + */ + getEmissionsFor: (contactDocs, reportDocs = [], taskDocs = []) => { + if (!emitter) { + throw Error('task emitter is not enabled -- cannot get emissions'); + } + + if (!Array.isArray(contactDocs)) { + throw Error('invalid argument: contactDocs is expected to be an array'); + } + + if (!Array.isArray(reportDocs)) { + throw Error('invalid argument: reportDocs is expected to be an array'); + } + + if (!Array.isArray(taskDocs)) { + throw Error('invalid argument: taskDocs is expected to be an array'); + } + + const session = emitter.startSession(); + try { + const Contact = emitter.getContact(); + const docsByContact = marshalDocsByContact(Contact, contactDocs, reportDocs, taskDocs); + docsByContact.forEach(session.processDocsByContact); + } catch (err) { + session.dispose(); + throw err; + } + + return session.result(); + }, + + /** + * @returns True if the rules emitter is initialized and ready for use + */ + isEnabled: () => !!emitter, + + shutdown, +}; + +const marshalDocsByContact = (Contact, contactDocs, reportDocs, taskDocs) => { + const factByContactId = contactDocs.reduce((agg, contact) => { + agg[contact._id] = new Contact({ contact, reports: [], tasks: [] }); + return agg; + }, {}); + + const factBySubjectId = contactDocs.reduce((agg, contactDoc) => { + const subjectIds = registrationUtils.getSubjectIds(contactDoc); + for (const subjectId of subjectIds) { + if (!agg[subjectId]) { + agg[subjectId] = factByContactId[contactDoc._id]; + } + } + return agg; + }, {}); + + const addHeadlessContact = (contactId) => { + const contact = contactId ? { _id: contactId } : undefined; + const newFact = new Contact({ contact, reports: [], tasks: [] }); + factByContactId[contactId] = factBySubjectId[contactId] = newFact; + return newFact; + }; + + for (const report of reportDocs) { + const subjectIdInReport = registrationUtils.getSubjectId(report); + const factOfPatient = factBySubjectId[subjectIdInReport] || addHeadlessContact(subjectIdInReport); + factOfPatient.reports.push(report); + } + + if (Object.hasOwnProperty.call(Contact.prototype, 'tasks')) { + for (const task of taskDocs) { + const sourceId = task.requester; + const factOfPatient = factBySubjectId[sourceId] || addHeadlessContact(sourceId); + factOfPatient.tasks.push(task); + } + } + + return Object.keys(factByContactId).map(key => { + factByContactId[key].reports = factByContactId[key].reports.sort((a, b) => a.reported_date - b.reported_date); + return factByContactId[key]; + }); // Object.values(factByContactId) +}; + +const resolveEmitter = (settings = {}) => { + const { rulesAreDeclarative, customEmitter } = settings; + if (customEmitter !== null && typeof customEmitter === 'object') { + return customEmitter; + } + + return rulesAreDeclarative ? javascriptEmitter : noolsEmitter; +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-state-store.js": +/*!******************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/rules-state-store.js ***! + \******************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/** + * @module rules-state-store + * In-memory datastore containing + * 1. Details on the state of each contact's rules calculations + * 2. Target emissions @see target-state + */ +const md5 = __webpack_require__(/*! md5 */ "./build/cht-core-4-6/node_modules/md5/md5.js"); +const calendarInterval = __webpack_require__(/*! @medic/calendar-interval */ "./build/cht-core-4-6/shared-libs/calendar-interval/src/index.js"); +const targetState = __webpack_require__(/*! ./target-state */ "./build/cht-core-4-6/shared-libs/rules-engine/src/target-state.js"); + +const EXPIRE_CALCULATION_AFTER_MS = 7 * 24 * 60 * 60 * 1000; +let state; +let currentUserContact; +let currentUserSettings; +let onStateChange; + +const self = { + /** + * Initializes the rules-state-store from an existing state. If existing state is invalid, builds an empty state. + * + * @param {Object} existingState State object previously passed to the stateChangeCallback + * @param {Object} settings Settings for the behavior of the rules store + * @param {Object} settings.contact User's hydrated contact document + * @param {Object} settings.user User's user-settings document + * @param {Object} stateChangeCallback Callback which is invoked whenever the state changes. + * Receives the updated state as the only parameter. + * @returns {Boolean} that represents whether or not the state needs to be rebuilt + */ + load: (existingState, settings, stateChangeCallback) => { + if (state) { + throw Error('Attempted to initialize the rules-state-store multiple times.'); + } + + state = existingState; + currentUserContact = settings.contact; + currentUserSettings = settings.user; + setOnChangeState(stateChangeCallback); + + const rulesConfigHash = hashRulesConfig(settings); + if (state && state.rulesConfigHash !== rulesConfigHash) { + state.stale = true; + } + + return !state || state.stale; + }, + + /** + * Initializes an empty rules-state-store. + * + * @param {Object} settings Settings for the behavior of the rules store + * @param {Object} settings.contact User's hydrated contact document + * @param {Object} settings.user User's user-settings document + * @param {number} settings.monthStartDate reporting interval start date + * @param {Object} stateChangeCallback Callback which is invoked whenever the state changes. + * Receives the updated state as the only parameter. + */ + build: (settings, stateChangeCallback) => { + if (state && !state.stale) { + throw Error('Attempted to initialize the rules-state-store multiple times.'); + } + + state = { + rulesConfigHash: hashRulesConfig(settings), + contactState: {}, + targetState: targetState.createEmptyState(settings.targets), + monthStartDate: settings.monthStartDate, + }; + currentUserContact = settings.contact; + currentUserSettings = settings.user; + + setOnChangeState(stateChangeCallback); + return onStateChange(state); + }, + + /** + * "Dirty" indicates that the contact's task documents are not up to date. They should be refreshed before being used. + * + * The dirty state can be due to: + * 1. The time of a contact's most recent task calculation is unknown + * 2. The contact's most recent task calculation expires + * 3. The contact is explicitly marked as dirty + * 4. Configurations impacting rules calculations have changed + * + * @param {string} contactId The id of the contact to test for dirtiness + * @returns {Boolean} True if dirty + */ + isDirty: contactId => { + if (!contactId) { + return false; + } + + if (!state.contactState[contactId]) { + return true; + } + + const now = Date.now(); + const { calculatedAt, expireAt, isDirty } = state.contactState[contactId]; + return !expireAt || + isDirty || + calculatedAt > now || /* system clock changed */ + expireAt < now; /* isExpired */ + }, + + /** + * Determines if either the settings document or user's hydrated contact document have changed in a way which + * will impact the result of rules calculations. + * If they have changed in a meaningful way, the calculation state of all contacts is reset + * + * @param {Object} settings Settings for the behavior of the rules store + * @returns {Boolean} True if the state of all contacts has been reset + */ + rulesConfigChange: (settings) => { + const rulesConfigHash = hashRulesConfig(settings); + if (state.rulesConfigHash !== rulesConfigHash) { + state = { + rulesConfigHash, + contactState: {}, + targetState: targetState.createEmptyState(settings.targets), + monthStartDate: settings.monthStartDate, + }; + currentUserContact = settings.contact; + currentUserSettings = settings.user; + + onStateChange(state); + return true; + } + + return false; + }, + + /** + * @param {int} calculatedAt Timestamp of the calculation + * @param {string[]} contactIds Array of contact ids to be marked as freshly calculated + */ + markFresh: (calculatedAt, contactIds) => { + if (!Array.isArray(contactIds)) { + contactIds = [contactIds]; + } + contactIds = contactIds.filter(id => id); + + if (contactIds.length === 0) { + return; + } + + const reportingInterval = calendarInterval.getCurrent(state.monthStartDate); + const defaultExpiry = calculatedAt + EXPIRE_CALCULATION_AFTER_MS; + + for (const contactId of contactIds) { + state.contactState[contactId] = { + calculatedAt, + expireAt: Math.min(reportingInterval.end, defaultExpiry), + }; + } + + return onStateChange(state); + }, + + /** + * @param {string[]} contactIds Array of contact ids to be marked as dirty + */ + markDirty: contactIds => { + if (!Array.isArray(contactIds)) { + contactIds = [contactIds]; + } + contactIds = contactIds.filter(id => id); + + if (contactIds.length === 0) { + return; + } + + for (const contactId of contactIds) { + if (!state.contactState[contactId]) { + state.contactState[contactId] = {}; + } + + state.contactState[contactId].isDirty = true; + } + + return onStateChange(state); + }, + + /** + * @returns {string[]} The id of all contacts tracked by the store + */ + getContactIds: () => Object.keys(state.contactState), + + /** + * The rules system supports the concept of "headless" reports and "headless" task documents. In these scenarios, + * a report exists on a user's device while the associated contact document of that report is not on the device. + * A common scenario associated with this case is during supervisor workflows where supervisors sync reports with the + * needs_signoff attribute but not the associated patient. + * + * In these cases, getting a list of "all the contacts with rules" requires us to look not just through contact + * docs, but also through reports. To avoid this costly operation, the rules-state-store maintains a flag which + * indicates if the contact ids in the store can serve as a trustworthy authority. + * + * markAllFresh should be called when the list of contact ids within the store is the complete set of contacts with + * rules + */ + markAllFresh: (calculatedAt, contactIds) => { + state.allContactIds = true; + return self.markFresh(calculatedAt, contactIds); + }, + + /** + * @returns True if markAllFresh has been called on the current store state. + */ + hasAllContacts: () => !!state.allContactIds, + + /** + * @returns {string} User contact document + */ + currentUserContact: () => currentUserContact, + + /** + * @returns {string} User settings document + */ + currentUserSettings: () => currentUserSettings, + + /** + * @returns {number} The timestamp when the current loaded state was last updated + */ + stateLastUpdatedAt: () => state.calculatedAt, + + /** + * @returns {number} current monthStartDate + */ + getMonthStartDate: () => state.monthStartDate, + + /** + * @returns {boolean} whether or not the state is loaded + */ + isLoaded: () => !!state, + + /** + * Store a set of target emissions which were emitted by refreshing a set of contacts + * + * @param {string[]} contactIds An array of contact ids which produced these targetEmissions by being refreshed. + * If undefined, all contacts are updated. + * @param {Object[]} targetEmissions An array of target emissions (the result of the rules-emitter). + */ + storeTargetEmissions: (contactIds, targetEmissions) => { + const isUpdated = targetState.storeTargetEmissions(state.targetState, contactIds, targetEmissions); + if (isUpdated) { + return onStateChange(state); + } + }, + + /** + * Aggregates the stored target emissions into target models + * + * @param {Function(emission)=} targetEmissionFilter Filter function to filter which target emissions should + * be aggregated + * @example aggregateStoredTargetEmissions(emission => emission.date > moment().startOf('month').valueOf()) + * + * @returns {Object[]} result + * @returns {string} result[n].* All attributes of the target as defined in the settings doc + * @returns {Integer} result[n].total The total number of unique target emission ids matching instanceFilter + * @returns {Integer} result[n].pass The number of unique target emission ids matching instanceFilter with the + * latest emission with truthy "pass" + * @returns {Integer} result[n].percent The percentage of pass/total + */ + aggregateStoredTargetEmissions: targetEmissionFilter => targetState.aggregateStoredTargetEmissions( + state.targetState, + targetEmissionFilter + ), + + /** + * Returns a list of UUIDs of tracked contacts that are marked as dirty + * @returns {Array} list of dirty contacts UUIDs + */ + getDirtyContacts: () => self.getContactIds().filter(self.isDirty), +}; + +const hashRulesConfig = (settings) => { + const asString = JSON.stringify(settings); + return md5(asString); +}; + +const setOnChangeState = (stateChangeCallback) => { + onStateChange = (state) => { + state.calculatedAt = new Date().getTime(); + + if (stateChangeCallback && typeof stateChangeCallback === 'function') { + return stateChangeCallback(state); + } + }; +}; + +// ensure all exported functions are only ever called after initialization +module.exports = Object.keys(self).reduce((agg, key) => { + agg[key] = (...args) => { + if (!['build', 'load', 'isLoaded'].includes(key) && (!state || !state.contactState)) { + throw Error(`Invalid operation: Attempted to invoke rules-state-store.${key} before call to build or load`); + } + + return self[key](...args); + }; + return agg; +}, {}); + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/target-state.js": +/*!*************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/target-state.js ***! + \*************************************************************************/ +/***/ ((module) => { + +/** + * @module target-state + * + * Stores raw target-emissions in a minified, efficient, deterministic structure + * Handles removal of "cancelled" target emissions + * Aggregates target emissions into targets + */ + +/** @summary state + * Functions in this module all accept a "state" parameter or return a "state" object. + * This state has the following structure: + * + * @example + * { + * target.id: { + * id: 'target_id', + * type: 'count', + * goal: 0, + * .. + * + * emissions: { + * emission.id: { + * requestor.id: { + * pass: boolean, + * date: timestamp, + * order: timestamp, + * }, + * .. + * }, + * .. + * } + * }, + * .. + * } + */ + +module.exports = { + /** + * Builds an empty target-state. + * + * @param {Object[]} targets An array of target definitions + */ + createEmptyState: (targets=[]) => { + return targets + .reduce((agg, definition) => { + agg[definition.id] = Object.assign({}, definition, { emissions: {} }); + return agg; + }, {}); + }, + + storeTargetEmissions: (state, contactIds, targetEmissions) => { + let isUpdated = false; + if (!Array.isArray(targetEmissions)) { + throw Error('targetEmissions argument must be an array'); + } + + // Remove all emissions that were previously emitted by the contact ("cancelled emissions") + if (!contactIds) { + for (const targetId of Object.keys(state)) { + state[targetId].emissions = {}; + } + } else { + for (const contactId of contactIds) { + for (const targetId of Object.keys(state)) { + for (const emissionId of Object.keys(state[targetId].emissions)) { + const emission = state[targetId].emissions[emissionId]; + if (emission[contactId]) { + delete emission[contactId]; + isUpdated = true; + } + } + } + } + } + + // Merge the emission data into state + for (const emission of targetEmissions) { + const target = state[emission.type]; + const requestor = emission.contact && emission.contact._id; + if (target && requestor && !emission.deleted) { + const targetRequestors = target.emissions[emission._id] = target.emissions[emission._id] || {}; + targetRequestors[requestor] = { + pass: !!emission.pass, + groupBy: emission.groupBy, + date: emission.date, + order: emission.contact.reported_date || -1, + }; + isUpdated = true; + } + } + + return isUpdated; + }, + + aggregateStoredTargetEmissions: (state, targetEmissionFilter) => { + const pick = (obj, attrs) => attrs + .reduce((agg, attr) => { + if (Object.hasOwnProperty.call(obj, attr)) { + agg[attr] = obj[attr]; + } + return agg; + }, {}); + + const scoreTarget = target => { + const emissionIds = Object.keys(target.emissions); + const relevantEmissions = emissionIds + // emissions passing the "targetEmissionFilter" + .map(emissionId => { + const requestorIds = Object.keys(target.emissions[emissionId]); + const filteredInstanceIds = requestorIds.filter(requestorId => { + return !targetEmissionFilter || targetEmissionFilter(target.emissions[emissionId][requestorId]); + }); + return pick(target.emissions[emissionId], filteredInstanceIds); + }) + + // if there are multiple emissions with the same id emitted by different contacts, disambiguate them + .map(emissionsByRequestor => emissionOfLatestRequestor(emissionsByRequestor)) + .filter(emission => emission); + + const passingThreshold = target.passesIfGroupCount && target.passesIfGroupCount.gte; + if (!passingThreshold) { + return { + pass: relevantEmissions.filter(emission => emission.pass).length, + total: relevantEmissions.length, + }; + } + + const countPassedEmissionsByGroup = {}; + const countEmissionsByGroup = {}; + + relevantEmissions.forEach(emission => { + const groupBy = emission.groupBy; + if (!groupBy) { + return; + } + if (!countPassedEmissionsByGroup[groupBy]) { + countPassedEmissionsByGroup[groupBy] = 0; + countEmissionsByGroup[groupBy] = 0; + } + countEmissionsByGroup[groupBy]++; + if (emission.pass) { + countPassedEmissionsByGroup[groupBy]++; + } + }); + + const groups = Object.keys(countEmissionsByGroup); + + return { + pass: groups.filter(group => countPassedEmissionsByGroup[group] >= passingThreshold).length, + total: groups.length, + }; + }; + + const aggregateTarget = target => { + const aggregated = pick( + target, + ['id', 'type', 'goal', 'translation_key', 'name', 'icon', 'subtitle_translation_key', 'visible'] + ); + aggregated.value = scoreTarget(target); + + if (aggregated.type === 'percent') { + aggregated.value.percent = aggregated.value.total ? + Math.round(aggregated.value.pass * 100 / aggregated.value.total) : 0; + } + + return aggregated; + }; + + const emissionOfLatestRequestor = emissionsByRequestor => { + return Object.keys(emissionsByRequestor).reduce((previousValue, requestorId) => { + const current = emissionsByRequestor[requestorId]; + if (!previousValue || !previousValue.order || current.order > previousValue.order) { + return current; + } + return previousValue; + }, undefined); + }; + + return Object.keys(state).map(targetId => aggregateTarget(state[targetId])); + }, +}; + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/task-states.js": +/*!************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/task-states.js ***! + \************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/** + * @module task-states + * As defined by the FHIR task standard https://www.hl7.org/fhir/task.html#statemachine + */ + +const moment = __webpack_require__(/*! moment */ "./build/cht-core-4-6/node_modules/moment/moment.js"); + +/** + * Problems: + * If all emissions are converted to documents, heavy users will create thousands of legacy task docs after upgrading + * to this rules-engine. + * In order to purge task documents, we need to guarantee that they won't just be recreated after they are purged. + * The two scenarios above are important for maintaining the client-side performance of the app. + * + * Therefore, we only consider task emissions "timely" if they end within a fixed time period. + * However, if this window is too short then users who don't login frequently may fail to create a task document at all. + * Looking at time-between-reports for active projects, a time window of 60 days will ensure that 99.9% of tasks are + * recorded as docs. + */ +const TIMELY_WINDOW = { + start: 60, // days + end: 180 // days +}; + +// This must be a comparable string format to avoid a bunch of parsing. For example, "2000-01-01" < "2010-11-31" +const formatString = 'YYYY-MM-DD'; + +const States = { + /** + * Task has been calculated but it is scheduled in the future + */ + Draft: 'Draft', + + /** + * Task is currently showing to the user + */ + Ready: 'Ready', + + /** + * Task was not emitted when refreshing the contact + * Task resulted from invalid emissions + */ + Cancelled: 'Cancelled', + + /** + * Task was emitted with { resolved: true } + */ + Completed: 'Completed', + + /** + * Task was never terminated and is now outside the allowed time window + */ + Failed: 'Failed', +}; + +const getDisplayWindow = (taskEmission) => { + const hasExistingDisplayWindow = taskEmission.startDate || taskEmission.endDate; + if (hasExistingDisplayWindow) { + return { + dueDate: taskEmission.dueDate, + startDate: taskEmission.startDate, + endDate: taskEmission.endDate, + }; + } + + const dueDate = moment(taskEmission.date); + if (!dueDate.isValid()) { + return { dueDate: NaN, startDate: NaN, endDate: NaN }; + } + + return { + dueDate: dueDate.format(formatString), + startDate: dueDate.clone().subtract(taskEmission.readyStart || 0, 'days').format(formatString), + endDate: dueDate.clone().add(taskEmission.readyEnd || 0, 'days').format(formatString), + }; +}; + +const mostReadyOrder = [States.Ready, States.Draft, States.Completed, States.Failed, States.Cancelled]; +const orderOf = state => { + const order = mostReadyOrder.indexOf(state); + return order >= 0 ? order : mostReadyOrder.length; +}; + +module.exports = { + isTerminal: state => [States.Cancelled, States.Completed, States.Failed].includes(state), + + isMoreReadyThan: (stateA, stateB) => orderOf(stateA) < orderOf(stateB), + + compareState: (stateA, stateB) => orderOf(stateA) - orderOf(stateB), + + calculateState: (taskEmission, timestamp) => { + if (!taskEmission) { + return false; + } + + if (taskEmission.resolved) { + return States.Completed; + } + + if (taskEmission.deleted) { + return States.Cancelled; + } + + // invalid data yields falsey + if (!taskEmission.date && !taskEmission.dueDate) { + return false; + } + + const { startDate, endDate } = getDisplayWindow(taskEmission); + if (!startDate || !endDate || startDate > endDate || endDate < startDate) { + return false; + } + + const timestampAsDate = moment(timestamp).format(formatString); + if (startDate > timestampAsDate) { + return States.Draft; + } + + if (endDate < timestampAsDate) { + return States.Failed; + } + + return States.Ready; + }, + + getDisplayWindow, + + states: States, + + isTimely: (taskEmission, timestamp) => { + const { startDate, endDate } = getDisplayWindow(taskEmission); + const earliest = moment(timestamp).subtract(TIMELY_WINDOW.start, 'days'); + const latest = moment(timestamp).add(TIMELY_WINDOW.end, 'days'); + return earliest.isBefore(endDate) && latest.isAfter(startDate); + }, + + setStateOnTaskDoc: (taskDoc, updatedState, timestamp = Date.now(), reason = '') => { + if (!taskDoc) { + return; + } + + if (!updatedState) { + taskDoc.state = States.Cancelled; + taskDoc.stateReason = 'invalid'; + } else { + taskDoc.state = updatedState; + if (reason) { + taskDoc.stateReason = reason; + } + } + + const stateHistory = taskDoc.stateHistory = taskDoc.stateHistory || []; + const mostRecentState = stateHistory[stateHistory.length - 1]; + if (!mostRecentState || taskDoc.state !== mostRecentState.state) { + const stateChange = { state: taskDoc.state, timestamp }; + stateHistory.push(stateChange); + } + + return taskDoc; + }, +}; + +Object.assign(module.exports, States); + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/transform-task-emission-to-doc.js": +/*!*******************************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/transform-task-emission-to-doc.js ***! + \*******************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/** + * @module transform-task-emission-to-doc + * Transforms a task emission into the schema used by task documents + * Minifies all unneeded data from the emission + * Merges emission data into an existing document, or creates a new task document (as appropriate) + */ + +const TaskStates = __webpack_require__(/*! ./task-states */ "./build/cht-core-4-6/shared-libs/rules-engine/src/task-states.js"); + +/** + * @param {Object} taskEmission A task emission from the rules engine + * @param {int} calculatedAt Epoch timestamp at the time the emission was calculated + * @param {Object} existingDoc The most recent taskDocument with the same emission id + + * @returns {Object} result + * @returns {Object} result.taskDoc The result of the transformation + * @returns {Boolean} result.isUpdated True if the document is new or has been altered + */ +module.exports = (taskEmission, calculatedAt, userSettingsId, existingDoc) => { + const emittedState = TaskStates.calculateState(taskEmission, calculatedAt); + const baseFromExistingDoc = !!existingDoc && + (!TaskStates.isTerminal(existingDoc.state) || existingDoc.state === emittedState); + + // reduce document churn - don't tweak data on existing docs in terminal states + const baselineStateOfExistingDoc = baseFromExistingDoc && + !TaskStates.isTerminal(existingDoc.state) && + JSON.stringify(existingDoc); + const taskDoc = baseFromExistingDoc ? existingDoc : newTaskDoc(taskEmission, userSettingsId, calculatedAt); + taskDoc.user = userSettingsId; + taskDoc.requester = taskEmission.doc && taskEmission.doc.contact && taskEmission.doc.contact._id; + taskDoc.owner = taskEmission.contact && taskEmission.contact._id; + minifyEmission(taskDoc, taskEmission); + TaskStates.setStateOnTaskDoc(taskDoc, emittedState, calculatedAt); + + const isUpdated = (() => { + if (!baseFromExistingDoc) { + // do not create new documents where the initial state is cancelled (invalid emission) + return taskDoc.state !== TaskStates.Cancelled; + } + + return baselineStateOfExistingDoc && JSON.stringify(taskDoc) !== baselineStateOfExistingDoc; + })(); + + return { + isUpdated, + taskDoc, + }; +}; + +const minifyEmission = (taskDoc, emission) => { + const minified = ['_id', 'title', 'icon', 'deleted', 'resolved', 'actions', 'priority', 'priorityLabel' ] + .reduce((agg, attr) => { + if (Object.hasOwnProperty.call(emission, attr)) { + agg[attr] = emission[attr]; + } + return agg; + }, {}); + + /* + The declarative configuration "contactLabel" results in a task emission with a contact with only a name attribute. + For backward compatibility, contacts which don't provide an id should not be minified and rehydrated. + */ + if (emission.contact) { + minified.contact = { name: emission.contact.name }; + } + + if (emission.date || emission.dueDate) { + const timeWindow = TaskStates.getDisplayWindow(emission); + Object.assign(minified, timeWindow); + } + minified.actions && minified.actions + .filter(action => action && action.content) + .forEach(action => { + if (!minified.forId) { + minified.forId = action.content.contact && action.content.contact._id; + } + delete action.content.contact; + }); + + taskDoc.emission = minified; + return taskDoc; +}; + +const newTaskDoc = (emission, userSettingsId, calculatedAt) => ({ + _id: `task~${userSettingsId}~${emission._id}~${calculatedAt}`, + type: 'task', + authoredOn: calculatedAt, + stateHistory: [], +}); + + +/***/ }), + +/***/ "./build/cht-core-4-6/shared-libs/rules-engine/src/update-temporal-states.js": +/*!***********************************************************************************!*\ + !*** ./build/cht-core-4-6/shared-libs/rules-engine/src/update-temporal-states.js ***! + \***********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/** + * @module update-temporal-states + * As time elapses, documents change state because the timing window has been reached. + * Eg. Documents with state Draft move to state Ready just because it is now after midnight + */ +const TaskStates = __webpack_require__(/*! ./task-states */ "./build/cht-core-4-6/shared-libs/rules-engine/src/task-states.js"); + +/** + * @param {Object[]} taskDocs A list of task documents to evaluate + * @param {int} timestamp=Date.now() Epoch timestamp to use when evaluating the current state of the task documents + */ +module.exports = (taskDocs, timestamp = Date.now()) => { + const docsToCommit = []; + for (const taskDoc of taskDocs) { + let updatedState = TaskStates.calculateState(taskDoc.emission, timestamp); + if (taskDoc.authoredOn > timestamp) { + updatedState = TaskStates.Cancelled; + } + + if (!TaskStates.isTerminal(taskDoc.state) && taskDoc.state !== updatedState) { + TaskStates.setStateOnTaskDoc(taskDoc, updatedState, timestamp); + docsToCommit.push(taskDoc); + } + } + + return docsToCommit; +}; + + +/***/ }), + +/***/ "./cht-bundles/cht-core-4-6/bundle.js": +/*!********************************************!*\ + !*** ./cht-bundles/cht-core-4-6/bundle.js ***! + \********************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +module.exports = { + ddocs: __webpack_require__(/*! ../../build/cht-core-4-6-ddocs.json */ "./build/cht-core-4-6-ddocs.json"), + RegistrationUtils: __webpack_require__(/*! ../../build/cht-core-4-6/shared-libs/registration-utils */ "./build/cht-core-4-6/shared-libs/registration-utils/src/index.js"), + CalendarInterval: __webpack_require__(/*! ../../build/cht-core-4-6/shared-libs/calendar-interval */ "./build/cht-core-4-6/shared-libs/calendar-interval/src/index.js"), + RulesEngineCore: __webpack_require__(/*! ../../build/cht-core-4-6/shared-libs/rules-engine */ "./build/cht-core-4-6/shared-libs/rules-engine/src/index.js"), + RulesEmitter: __webpack_require__(/*! ../../build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter */ "./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/index.js"), + nootils: __webpack_require__(/*! ../../build/cht-core-4-6/node_modules/cht-nootils */ "./build/cht-core-4-6/node_modules/cht-nootils/src/nootils.js"), + Lineage: __webpack_require__(/*! ../../build/cht-core-4-6/shared-libs/lineage */ "./build/cht-core-4-6/shared-libs/lineage/src/index.js"), + ChtScriptApi: __webpack_require__(/*! ../../build/cht-core-4-6/shared-libs/cht-script-api */ "./build/cht-core-4-6/shared-libs/cht-script-api/src/index.js"), + convertFormXmlToXFormModel: __webpack_require__(/*! ../../build/cht-core-4-6/api/src/services/generate-xform.js */ "./build/cht-core-4-6/api/src/services/generate-xform.js").generate, +}; + + +/***/ }), + +/***/ "./cht-bundles/cht-core-4-6/xsl-paths.js": +/*!***********************************************!*\ + !*** ./cht-bundles/cht-core-4-6/xsl-paths.js ***! + \***********************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const path = __webpack_require__(/*! path */ "path"); + +module.exports = { + FORM_STYLESHEET: path.join(__dirname, '../dist/cht-core-4-6/xsl/openrosa2html5form.xsl'), + MODEL_STYLESHEET: path.join(__dirname, '../dist/cht-core-4-6/enketo-transformer/xsl/openrosa2xmlmodel.xsl'), +}; + + +/***/ }), + +/***/ "buffer": +/*!*************************!*\ + !*** external "buffer" ***! + \*************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("buffer");; + +/***/ }), + +/***/ "child_process": +/*!********************************!*\ + !*** external "child_process" ***! + \********************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("child_process");; + +/***/ }), + +/***/ "events": +/*!*************************!*\ + !*** external "events" ***! + \*************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("events");; + +/***/ }), + +/***/ "fs": +/*!*********************!*\ + !*** external "fs" ***! + \*********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("fs");; + +/***/ }), + +/***/ "http": +/*!***********************!*\ + !*** external "http" ***! + \***********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("http");; + +/***/ }), + +/***/ "https": +/*!************************!*\ + !*** external "https" ***! + \************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("https");; + +/***/ }), + +/***/ "net": +/*!**********************!*\ + !*** external "net" ***! + \**********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("net");; + +/***/ }), + +/***/ "os": +/*!*********************!*\ + !*** external "os" ***! + \*********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("os");; + +/***/ }), + +/***/ "path": +/*!***********************!*\ + !*** external "path" ***! + \***********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("path");; + +/***/ }), + +/***/ "stream": +/*!*************************!*\ + !*** external "stream" ***! + \*************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("stream");; + +/***/ }), + +/***/ "string_decoder": +/*!*********************************!*\ + !*** external "string_decoder" ***! + \*********************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("string_decoder");; + +/***/ }), + +/***/ "tty": +/*!**********************!*\ + !*** external "tty" ***! + \**********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("tty");; + +/***/ }), + +/***/ "util": +/*!***********************!*\ + !*** external "util" ***! + \***********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("util");; + +/***/ }), + +/***/ "zlib": +/*!***********************!*\ + !*** external "zlib" ***! + \***********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("zlib");; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ id: moduleId, +/******/ loaded: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.loaded = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = __webpack_module_cache__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/node module decorator */ +/******/ (() => { +/******/ __webpack_require__.nmd = (module) => { +/******/ module.paths = []; +/******/ if (!module.children) module.children = []; +/******/ return module; +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // module cache are used so entry inlining is disabled +/******/ // startup +/******/ // Load entry module and return exports +/******/ var __webpack_exports__ = __webpack_require__(__webpack_require__.s = "./cht-bundles/cht-core-4-6/bundle.js"); +/******/ var __webpack_export_target__ = exports; +/******/ for(var i in __webpack_exports__) __webpack_export_target__[i] = __webpack_exports__[i]; +/******/ if(__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, "__esModule", { value: true }); +/******/ +/******/ })() +; +//# sourceMappingURL=cht-core-bundle.dev.js.map \ No newline at end of file diff --git a/dist/cht-core-4-6/cht-core-bundle.dev.js.map b/dist/cht-core-4-6/cht-core-bundle.dev.js.map new file mode 100644 index 00000000..b5d21cd8 --- /dev/null +++ b/dist/cht-core-4-6/cht-core-bundle.dev.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/@colors/colors/lib/colors.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/trap.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/@colors/colors/lib/custom/zalgo.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/america.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/rainbow.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/random.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/@colors/colors/lib/maps/zebra.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/@colors/colors/lib/styles.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/has-flag.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/@colors/colors/lib/system/supports-colors.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/@colors/colors/safe.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/adapters/process.env.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/diagnostics.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/logger/console.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/modifiers/namespace-ansi.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/development.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/@dabh/diagnostics/node/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/asyncify.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/eachOf.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/eachOfLimit.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/eachOfSeries.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/forEach.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/internal/asyncEachOfLimit.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/internal/awaitify.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/internal/breakLoop.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/internal/eachOfLimit.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/internal/getIterator.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/internal/initialParams.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/internal/isArrayLike.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/internal/iterator.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/internal/once.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/internal/onlyOnce.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/internal/parallel.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/internal/setImmediate.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/internal/withoutIndex.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/internal/wrapAsync.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/async/series.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/basic-auth/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/boolbase/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/color-convert/conversions.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/color-convert/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/color-convert/route.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/color-name/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/color-string/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/color/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/colorspace/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/css-select/lib/attributes.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/css-select/lib/compile.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/css-select/lib/general.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/css-select/lib/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/css-select/lib/procedure.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/aliases.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/filters.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/pseudos.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/css-select/lib/pseudo-selectors/subselects.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/css-select/lib/sort.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/css-what/lib/es/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/css-what/lib/es/parse.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/css-what/lib/es/stringify.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/css-what/lib/es/types.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/debug/src/browser.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/debug/src/debug.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/debug/src/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/debug/src/node.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/depd/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/dom-serializer/lib/foreignNames.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/dom-serializer/lib/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/domelementtype/lib/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/domhandler/lib/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/domhandler/lib/node.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/domutils/lib/feeds.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/domutils/lib/helpers.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/domutils/lib/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/domutils/lib/legacy.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/domutils/lib/manipulation.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/domutils/lib/querying.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/domutils/lib/stringify.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/domutils/lib/traversal.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/ee-first/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/enabled/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/entities/lib/decode.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/entities/lib/decode_codepoint.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/entities/lib/encode.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/entities/lib/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/fecha/lib/fecha.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/fn.name/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/he/he.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/inherits/inherits.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/inherits/inherits_browser.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/is-arrayish/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/is-stream/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/kuler/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/align.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/cli.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/colorize.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/combine.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/errors.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/format.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/json.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/label.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/levels.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/logstash.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/metadata.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/ms.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/node_modules/ms/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/pad-levels.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/pretty-print.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/printf.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/simple.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/splat.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/timestamp.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/logform/uncolorize.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/af.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ar-dz.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ar-kw.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ar-ly.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ar-ma.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ar-sa.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ar-tn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ar.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/az.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/be.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/bg.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/bm.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/bn-bd.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/bn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/bo.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/br.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/bs.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ca.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/cs.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/cv.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/cy.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/da.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/de-at.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/de-ch.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/de.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/dv.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/el.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/en-au.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/en-ca.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/en-gb.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/en-ie.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/en-il.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/en-in.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/en-nz.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/en-sg.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/eo.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/es-do.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/es-mx.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/es-us.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/es.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/et.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/eu.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/fa.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/fi.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/fil.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/fo.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/fr-ca.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/fr-ch.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/fr.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/fy.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ga.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/gd.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/gl.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/gom-deva.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/gom-latn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/gu.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/he.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/hi.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/hr.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/hu.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/hy-am.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/id.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/is.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/it-ch.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/it.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ja.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/jv.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ka.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/kk.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/km.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/kn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ko.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ku.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ky.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/lb.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/lo.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/lt.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/lv.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/me.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/mi.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/mk.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ml.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/mn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/mr.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ms-my.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ms.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/mt.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/my.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/nb.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ne.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/nl-be.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/nl.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/nn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/oc-lnc.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/pa-in.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/pl.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/pt-br.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/pt.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ro.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ru.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/sd.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/se.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/si.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/sk.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/sl.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/sq.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/sr-cyrl.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/sr.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ss.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/sv.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/sw.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ta.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/te.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/tet.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/tg.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/th.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/tk.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/tl-ph.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/tlh.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/tr.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/tzl.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/tzm-latn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/tzm.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ug-cn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/uk.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/ur.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/uz-latn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/uz.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/vi.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/x-pseudo.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/yo.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/zh-cn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/zh-hk.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/zh-mo.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/locale/zh-tw.js","webpack://cht-conf-test-harness//var/home/jlkuester7/git/cht-conf-test-harness/build/cht-core-4-6/api/node_modules/moment/locale|sync|/^\\.\\/.*$/","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/moment/moment.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/morgan/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/ms/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/back.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/matcher.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/comment.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/html.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/node.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/text.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/nodes/type.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/node-html-parser/dist/esm/valid.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/nth-check/lib/compile.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/nth-check/lib/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/nth-check/lib/parse.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/on-finished/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/on-headers/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/one-time/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/safe-buffer/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/safe-stable-stringify/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/simple-swizzle/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/stack-trace/lib/stack-trace.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/string_decoder/lib/string_decoder.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/text-hex/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/triple-beam/config/cli.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/triple-beam/config/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/triple-beam/config/npm.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/triple-beam/config/syslog.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/triple-beam/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/util-deprecate/node.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston-transport/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston-transport/legacy.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/errors.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_duplex.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_readable.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/from.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/state.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston-transport/node_modules/readable-stream/lib/internal/streams/stream.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/lib/winston.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/lib/winston/common.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/lib/winston/config/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/lib/winston/container.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/lib/winston/create-logger.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-handler.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/lib/winston/exception-stream.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/lib/winston/logger.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/lib/winston/profiler.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/lib/winston/rejection-handler.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/lib/winston/tail-file.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/console.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/file.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/http.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/lib/winston/transports/stream.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/errors.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_passthrough.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/from.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/state.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/lib/internal/streams/stream.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/node_modules/winston/node_modules/readable-stream/readable.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/src/enketo-transformer/markdown.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/src/logger.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/api/src/services/generate-xform.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/arguments-extended/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/array-extended/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/charenc/charenc.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/cht-nootils/src/nootils.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/crypt/crypt.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/date-extended/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/declare.js/declare.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/declare.js/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/extended/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/extender/extender.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/extender/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/function-extended/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/ht/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/is-buffer/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/is-extended/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/leafy/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_DataView.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_Hash.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_ListCache.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_Map.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_MapCache.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_Promise.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_Set.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_SetCache.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_Stack.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_Symbol.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_Uint8Array.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_WeakMap.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_arrayFilter.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_arrayIncludes.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_arrayIncludesWith.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_arrayLikeKeys.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_arrayMap.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_arrayPush.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_arraySome.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_assocIndexOf.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseFindIndex.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseGet.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseGetAllKeys.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseGetTag.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseHasIn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseIndexOf.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseIsArguments.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseIsEqual.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseIsEqualDeep.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseIsMatch.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseIsNaN.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseIsNative.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseIsTypedArray.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseIteratee.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseKeys.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseMatches.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseMatchesProperty.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseProperty.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_basePropertyDeep.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseTimes.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseToString.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseUnary.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_baseUniq.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_cacheHas.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_castPath.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_coreJsData.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_createSet.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_equalArrays.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_equalByTag.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_equalObjects.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_freeGlobal.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_getAllKeys.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_getMapData.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_getMatchData.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_getNative.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_getRawTag.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_getSymbols.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_getTag.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_getValue.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_hasPath.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_hashClear.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_hashDelete.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_hashGet.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_hashHas.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_hashSet.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_isIndex.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_isKey.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_isKeyable.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_isMasked.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_isPrototype.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_isStrictComparable.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_listCacheClear.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_listCacheDelete.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_listCacheGet.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_listCacheHas.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_listCacheSet.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_mapCacheClear.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_mapCacheDelete.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_mapCacheGet.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_mapCacheHas.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_mapCacheSet.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_mapToArray.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_matchesStrictComparable.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_memoizeCapped.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_nativeCreate.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_nativeKeys.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_nodeUtil.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_objectToString.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_overArg.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_root.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_setCacheAdd.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_setCacheHas.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_setToArray.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_stackClear.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_stackDelete.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_stackGet.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_stackHas.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_stackSet.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_strictIndexOf.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_stringToPath.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_toKey.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/_toSource.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/core.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/eq.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/get.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/hasIn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/identity.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/isArguments.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/isArray.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/isArrayLike.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/isBuffer.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/isFunction.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/isLength.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/isObject.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/isObjectLike.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/isSymbol.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/isTypedArray.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/keys.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/memoize.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/noop.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/property.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/stubArray.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/stubFalse.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/toString.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/uniq.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/lodash/uniqBy.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/md5/md5.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/af.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ar-dz.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ar-kw.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ar-ly.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ar-ma.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ar-sa.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ar-tn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ar.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/az.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/be.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/bg.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/bm.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/bn-bd.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/bn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/bo.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/br.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/bs.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ca.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/cs.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/cv.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/cy.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/da.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/de-at.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/de-ch.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/de.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/dv.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/el.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/en-au.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/en-ca.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/en-gb.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/en-ie.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/en-il.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/en-in.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/en-nz.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/en-sg.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/eo.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/es-do.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/es-mx.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/es-us.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/es.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/et.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/eu.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/fa.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/fi.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/fil.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/fo.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/fr-ca.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/fr-ch.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/fr.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/fy.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ga.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/gd.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/gl.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/gom-deva.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/gom-latn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/gu.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/he.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/hi.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/hr.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/hu.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/hy-am.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/id.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/is.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/it-ch.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/it.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ja.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/jv.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ka.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/kk.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/km.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/kn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ko.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ku.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ky.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/lb.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/lo.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/lt.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/lv.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/me.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/mi.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/mk.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ml.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/mn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/mr.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ms-my.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ms.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/mt.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/my.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/nb.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ne.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/nl-be.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/nl.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/nn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/oc-lnc.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/pa-in.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/pl.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/pt-br.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/pt.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ro.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ru.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/sd.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/se.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/si.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/sk.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/sl.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/sq.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/sr-cyrl.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/sr.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ss.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/sv.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/sw.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ta.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/te.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/tet.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/tg.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/th.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/tk.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/tl-ph.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/tlh.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/tr.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/tzl.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/tzm-latn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/tzm.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ug-cn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/uk.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/ur.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/uz-latn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/uz.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/vi.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/x-pseudo.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/yo.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/zh-cn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/zh-hk.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/zh-mo.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/locale/zh-tw.js","webpack://cht-conf-test-harness//var/home/jlkuester7/git/cht-conf-test-harness/build/cht-core-4-6/node_modules/moment/locale|sync|/^\\.\\/.*$/","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/moment/moment.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/agenda.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/compile/common.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/compile/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/compile/transpile.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/conflict.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/constraint.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/constraintMatcher.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/context.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/executionStrategy.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/extended.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/flow.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/flowContainer.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/linkedList.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nextTick.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/adapterNode.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/aliasNode.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/alphaNode.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/betaNode.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/equalityNode.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/existsFromNode.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/existsNode.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNode.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/fromNotNode.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/joinNode.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/joinReferenceNode.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/leftAdapterNode.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/helpers.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/leftMemory.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/memory.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/rightMemory.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/table.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/misc/tupleEntry.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/node.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/notNode.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/propertyNode.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/rightAdapterNode.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/terminalNode.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/nodes/typeNode.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/parser/constraint/parser.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/parser/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/parser/nools/nool.parser.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/parser/nools/tokens.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/parser/nools/util.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/pattern.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/rule.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/nools/lib/workingMemory.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/object-extended/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/promise-extended/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/string-extended/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_baseCreate.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_baseIteratee.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_cb.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_chainResult.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_collectNonEnumProps.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_createAssigner.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_createEscaper.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_createIndexFinder.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_createPredicateIndexFinder.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_createReduce.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_createSizePropertyCheck.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_deepGet.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_escapeMap.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_executeBound.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_flatten.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_getByteLength.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_getLength.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_group.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_has.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_hasObjectTag.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_isArrayLike.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_isBufferLike.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_keyInObj.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_methodFingerprint.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_optimizeCb.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_setup.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_shallowProperty.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_stringTagBug.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_tagTester.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_toBufferView.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_toPath.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/_unescapeMap.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/after.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/allKeys.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/before.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/bind.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/bindAll.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/chain.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/chunk.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/clone.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/compact.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/compose.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/constant.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/contains.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/countBy.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/create.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/debounce.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/defaults.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/defer.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/delay.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/difference.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/each.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/escape.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/every.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/extend.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/extendOwn.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/filter.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/find.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/findIndex.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/findKey.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/findLastIndex.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/findWhere.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/first.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/flatten.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/functions.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/get.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/groupBy.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/has.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/identity.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/index-all.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/index-default.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/indexBy.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/indexOf.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/initial.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/intersection.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/invert.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/invoke.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isArguments.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isArray.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isArrayBuffer.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isBoolean.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isDataView.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isDate.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isElement.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isEmpty.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isEqual.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isError.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isFinite.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isFunction.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isMap.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isMatch.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isNaN.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isNull.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isNumber.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isObject.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isRegExp.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isSet.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isString.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isSymbol.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isTypedArray.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isUndefined.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isWeakMap.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/isWeakSet.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/iteratee.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/keys.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/last.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/lastIndexOf.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/map.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/mapObject.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/matcher.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/max.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/memoize.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/min.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/mixin.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/negate.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/noop.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/now.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/object.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/omit.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/once.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/pairs.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/partial.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/partition.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/pick.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/pluck.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/property.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/propertyOf.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/random.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/range.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/reduce.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/reduceRight.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/reject.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/rest.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/restArguments.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/result.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/sample.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/shuffle.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/size.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/some.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/sortBy.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/sortedIndex.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/tap.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/template.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/templateSettings.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/throttle.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/times.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/toArray.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/toPath.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/underscore-array-methods.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/underscore.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/unescape.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/union.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/uniq.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/uniqueId.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/unzip.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/values.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/where.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/without.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/wrap.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/node_modules/underscore/modules/zip.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/calendar-interval/src/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/cht-script-api/src/auth.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/cht-script-api/src/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/contact-types-utils/src/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/lineage/src/hydration.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/lineage/src/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/lineage/src/minify.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/lineage/src/utils.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/registration-utils/src/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/rules-engine/src/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/rules-engine/src/pouchdb-provider.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/rules-engine/src/provider-wireup.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/rules-engine/src/refresh-rules-emissions.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.javascript.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/emitter.nools.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter/index.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/rules-engine/src/rules-state-store.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/rules-engine/src/target-state.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/rules-engine/src/task-states.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/rules-engine/src/transform-task-emission-to-doc.js","webpack://cht-conf-test-harness/./build/cht-core-4-6/shared-libs/rules-engine/src/update-temporal-states.js","webpack://cht-conf-test-harness/./cht-bundles/cht-core-4-6/bundle.js","webpack://cht-conf-test-harness/./cht-bundles/cht-core-4-6/xsl-paths.js","webpack://cht-conf-test-harness/external \"buffer\"","webpack://cht-conf-test-harness/external \"child_process\"","webpack://cht-conf-test-harness/external \"events\"","webpack://cht-conf-test-harness/external \"fs\"","webpack://cht-conf-test-harness/external \"http\"","webpack://cht-conf-test-harness/external \"https\"","webpack://cht-conf-test-harness/external \"net\"","webpack://cht-conf-test-harness/external \"os\"","webpack://cht-conf-test-harness/external \"path\"","webpack://cht-conf-test-harness/external \"stream\"","webpack://cht-conf-test-harness/external \"string_decoder\"","webpack://cht-conf-test-harness/external \"tty\"","webpack://cht-conf-test-harness/external \"util\"","webpack://cht-conf-test-harness/external \"zlib\"","webpack://cht-conf-test-harness/webpack/bootstrap","webpack://cht-conf-test-harness/webpack/runtime/compat get default export","webpack://cht-conf-test-harness/webpack/runtime/define property getters","webpack://cht-conf-test-harness/webpack/runtime/hasOwnProperty shorthand","webpack://cht-conf-test-harness/webpack/runtime/make namespace object","webpack://cht-conf-test-harness/webpack/runtime/node module decorator","webpack://cht-conf-test-harness/webpack/startup"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,WAAW,mBAAO,CAAC,kBAAM;AACzB,iCAAiC,mBAAO,CAAC,oFAAU;AACnD;AACA;;AAEA,uBAAuB,uJAAiD;;AAExE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,CAAC;;AAED,4CAA4C;;AAE5C;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,mBAAO,CAAC,8FAAe;AACrC,eAAe,mBAAO,CAAC,gGAAgB;;AAEvC;AACA;AACA,sBAAsB,mBAAO,CAAC,gGAAgB;AAC9C,oBAAoB,mBAAO,CAAC,4FAAc;AAC1C,sBAAsB,mBAAO,CAAC,gGAAgB;AAC9C,qBAAqB,mBAAO,CAAC,8FAAe;;AAE5C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;AClNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC5GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACJA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC9FD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;;AAEA;AACA,mBAAmB,IAAI;AACvB;;AAEA;AACA;;;;;;;;;;;;AClCA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEa;;AAEb,SAAS,mBAAO,CAAC,cAAI;AACrB,cAAc,mBAAO,CAAC,kGAAe;;AAErC;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC,GAAG;AACvC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,wFAAc;AACnC;;;;;;;;;;;ACTA,cAAc,mBAAO,CAAC,uEAAS;;AAE/B;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,YAAY;;AAEjB;AACA;AACA;;;;;;;;;;;ACjBA,cAAc,mBAAO,CAAC,qFAAI;;AAE1B;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACVD;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;;AAEA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACnNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,+DAA+D;AACtE;AACA;;;;;;;;;;;AClBA,iBAAiB,mBAAO,CAAC,6EAAY;AACrC,YAAY,mBAAO,CAAC,mEAAO;;AAE3B;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACnBA,aAAa,mBAAO,CAAC,8FAAgB;AACrC,UAAU,4CAAqB;;AAE/B;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,wHAA6B;AACxD,gBAAgB,mBAAO,CAAC,gHAAyB;AACjD,gBAAgB,mBAAO,CAAC,oGAAmB;;AAE3C;AACA;AACA;AACA;;;;;;;;;;;ACnCA;AACA;AACA;AACA,IAAI,KAAqC,EAAE,EAE1C;AACD,EAAE,2IAA4C;AAC9C;;;;;;;;;;;;ACPa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,eAAe;;AAEf,qBAAqB,mBAAO,CAAC,0GAA6B;;AAE1D;;AAEA,oBAAoB,mBAAO,CAAC,wGAA4B;;AAExD;;AAEA,iBAAiB,mBAAO,CAAC,kGAAyB;;AAElD,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,8BAA8B,oBAAoB;AAClD,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA,iC;;;;;;;;;;;ACrHa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;;AAEF,mBAAmB,mBAAO,CAAC,sGAA2B;;AAEtD;;AAEA,iBAAiB,mBAAO,CAAC,kGAAyB;;AAElD;;AAEA,mBAAmB,mBAAO,CAAC,oFAAkB;;AAE7C;;AAEA,YAAY,mBAAO,CAAC,wFAAoB;;AAExC;;AAEA,gBAAgB,mBAAO,CAAC,gGAAwB;;AAEhD;;AAEA,iBAAiB,mBAAO,CAAC,kGAAyB;;AAElD;;AAEA,gBAAgB,mBAAO,CAAC,gGAAwB;;AAEhD;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,UAAU,gBAAgB;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,WAAW,oCAAoC;AAC/C,WAAW,cAAc;AACzB;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,6BAA6B;AAC7B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,eAAe;AACf;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe;AACf,iC;;;;;;;;;;;ACxLa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;;AAEF,oBAAoB,mBAAO,CAAC,sGAA2B;;AAEvD;;AAEA,iBAAiB,mBAAO,CAAC,kGAAyB;;AAElD;;AAEA,gBAAgB,mBAAO,CAAC,gGAAwB;;AAEhD;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA,0BAA0B,gCAAgC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,WAAW,oCAAoC;AAC/C,WAAW,OAAO;AAClB,WAAW,cAAc;AACzB;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA,eAAe;AACf,iC;;;;;;;;;;;AC9Ca;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;;AAEF,mBAAmB,mBAAO,CAAC,oFAAkB;;AAE7C;;AAEA,gBAAgB,mBAAO,CAAC,gGAAwB;;AAEhD;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA,0BAA0B,gCAAgC;AAC1D;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,WAAW,oCAAoC;AAC/C,WAAW,cAAc;AACzB;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,eAAe;AACf,iC;;;;;;;;;;;ACtCa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;;AAEF,cAAc,mBAAO,CAAC,0EAAa;;AAEnC;;AAEA,oBAAoB,mBAAO,CAAC,wGAA4B;;AAExD;;AAEA,iBAAiB,mBAAO,CAAC,kGAAyB;;AAElD;;AAEA,gBAAgB,mBAAO,CAAC,gGAAwB;;AAEhD;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oCAAoC;AAC/C,WAAW,cAAc;AACzB;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe;AACf,iC;;;;;;;;;;;AChIa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,eAAe;;AAEf,iBAAiB,mBAAO,CAAC,yFAAgB;;AAEzC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iC;;;;;;;;;;;AC1Ea;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,iC;;;;;;;;;;;AC3Ba;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF;AACA;AACA;AACA,eAAe;AACf,iC;;;;;;;;;;;ACTa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;;AAEF,YAAY,mBAAO,CAAC,+EAAW;;AAE/B;;AAEA,gBAAgB,mBAAO,CAAC,uFAAe;;AAEvC;;AAEA,gBAAgB,mBAAO,CAAC,uFAAe;;AAEvC;;AAEA,iBAAiB,mBAAO,CAAC,yFAAgB;;AAEzC,wBAAwB,mBAAO,CAAC,uGAAuB;;AAEvD;;AAEA,iBAAiB,mBAAO,CAAC,yFAAgB;;AAEzC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iC;;;;;;;;;;;ACzFa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;;AAEF,eAAe;AACf;AACA;;AAEA,iC;;;;;;;;;;;ACVa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;;AAEF,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;;;;;;ACba;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,eAAe;AACf;AACA;AACA;AACA,iC;;;;;;;;;;;ACTa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,eAAe;;AAEf,mBAAmB,mBAAO,CAAC,6FAAkB;;AAE7C;;AAEA,mBAAmB,mBAAO,CAAC,6FAAkB;;AAE7C;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAuB;AACjD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iC;;;;;;;;;;;ACxDa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iC;;;;;;;;;;;AChBa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iC;;;;;;;;;;;ACda;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;;AAEF,mBAAmB,mBAAO,CAAC,6FAAkB;;AAE7C;;AAEA,iBAAiB,mBAAO,CAAC,yFAAgB;;AAEzC;;AAEA,gBAAgB,mBAAO,CAAC,uFAAe;;AAEvC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,eAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL,CAAC;AACD,iC;;;;;;;;;;;ACjCa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,gBAAgB;AAChB,YAAY;AACZ;;AAEA,wBAAwB,yBAAyB;AACjD,sBAAsB,uBAAuB;AAC7C,kBAAkB,mBAAmB;;AAErC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;;AAEA,eAAe,gB;;;;;;;;;;;ACjCF;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,eAAe;AACf;AACA;AACA;AACA,iC;;;;;;;;;;;ACTa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,uBAAuB,GAAG,wBAAwB,GAAG,eAAe;;AAEpE,gBAAgB,mBAAO,CAAC,+EAAgB;;AAExC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe;AACf,eAAe;AACf,wBAAwB;AACxB,uBAAuB,mB;;;;;;;;;;;ACjCV;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,eAAe;;AAEf,iBAAiB,mBAAO,CAAC,gGAAwB;;AAEjD;;AAEA,oBAAoB,mBAAO,CAAC,sFAAmB;;AAE/C;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oCAAoC;AAC/C,qBAAqB,oBAAoB;AACzC;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,IAAI;AACJ;AACA,gCAAgC;AAChC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,IAAI;AACJ;AACA,gCAAgC;AAChC,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,YAAY;AACZ;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iC;;;;;;;;;;;ACzLA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ;AACA;AACA;AACA;;AAEA,aAAa,2GAA6B;;AAE1C;AACA;AACA;AACA;;AAEA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACpIA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,E;;;;;;;;;;ACPA;AACA,kBAAkB,mBAAO,CAAC,6EAAY;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,QAAQ,4BAA4B;AACpC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,6BAA6B;AACpC,WAAW,iCAAiC;AAC5C,UAAU,gCAAgC;AAC1C,WAAW,iCAAiC;AAC5C,OAAO,qCAAqC;AAC5C,SAAS,2CAA2C;AACpD,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE,mDAAmD,cAAc;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO,QAAQ;AAC/B,gBAAgB,OAAO,QAAQ;AAC/B,iBAAiB,OAAO,OAAO;AAC/B,iBAAiB,OAAO,OAAO;AAC/B,gBAAgB,QAAQ,OAAO;AAC/B,gBAAgB,QAAQ,OAAO;AAC/B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,sEAAsE;;AAEtE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+CAA+C,EAAE,UAAU,EAAE;AAC7D;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa;AAC5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACn2BA,kBAAkB,mBAAO,CAAC,yFAAe;AACzC,YAAY,mBAAO,CAAC,6EAAS;;AAE7B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wDAAwD,uCAAuC;AAC/F,sDAAsD,qCAAqC;;AAE3F;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF,CAAC;;AAED;;;;;;;;;;;AC7EA,kBAAkB,mBAAO,CAAC,yFAAe;;AAEzC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;;AAEzB;;AAEA;AACA;AACA;;AAEA,yCAAyC,SAAS;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,SAAS;AAC9C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;AC/FY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACvJA;AACA,iBAAiB,mBAAO,CAAC,6EAAY;AACrC,cAAc,mBAAO,CAAC,qFAAgB;AACtC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA,yBAAyB,IAAI;AAC7B,wBAAwB,EAAE,WAAW,EAAE;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mCAAmC,IAAI;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,IAAI;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACjPa;;AAEb,kBAAkB,mBAAO,CAAC,iFAAc;AACxC,cAAc,mBAAO,CAAC,mFAAe;;AAErC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa,mBAAmB;AAChC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,iBAAiB,cAAc;AAC/B;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,qEAAqE,kCAAkC,EAAE;;AAEzG;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACjea;;AAEb,YAAY,mBAAO,CAAC,mEAAO;AAC3B,UAAU,mBAAO,CAAC,yEAAU;;AAE5B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;AAEA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;AC5Ba;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,sBAAsB;AACtB,iBAAiB,mBAAO,CAAC,yEAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gCAAgC,oDAAoD;AACpF,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;ACvOa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,oBAAoB,GAAG,qBAAqB,GAAG,eAAe;AAC9D,iBAAiB,mBAAO,CAAC,gFAAU;AACnC,iBAAiB,mBAAO,CAAC,yEAAU;AACnC,6BAA6B,mBAAO,CAAC,4EAAQ;AAC7C,kBAAkB,mBAAO,CAAC,sFAAa;AACvC,gBAAgB,mBAAO,CAAC,kFAAW;AACnC,mBAAmB,mBAAO,CAAC,0HAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,6CAA6C,uCAAuC,EAAE;AACtF;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qBAAqB,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACtHa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,8BAA8B;AAC9B,mBAAmB,mBAAO,CAAC,wFAAc;AACzC,yBAAyB,mBAAO,CAAC,0GAAoB;AACrD,iBAAiB,mBAAO,CAAC,gFAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0CAA0C,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;;;;;;;;;;;;AC3IjB;AACb;AACA;AACA;AACA;AACA,cAAc,oCAAoC,aAAa,EAAE;AACjE;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,yCAAyC,6BAA6B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe,GAAG,eAAe,GAAG,eAAe,GAAG,UAAU,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,sBAAsB,GAAG,eAAe;AACpM,4BAA4B,mBAAO,CAAC,6EAAU;AAC9C,iBAAiB,mBAAO,CAAC,yEAAU;AACnC,gBAAgB,mBAAO,CAAC,kFAAW;AACnC,mBAAmB,mBAAO,CAAC,0HAA+B;AAC1D,qCAAqC,gBAAgB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,sBAAsB;AACtB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gCAAgC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,yBAAyB,mBAAO,CAAC,0GAAoB;AACrD,2CAA0C,CAAC,qCAAqC,mCAAmC,EAAE,EAAE,EAAC;AACxH,2CAA0C,CAAC,qCAAqC,mCAAmC,EAAE,EAAE,EAAC;AACxH,2CAA0C,CAAC,qCAAqC,mCAAmC,EAAE,EAAE,EAAC;;;;;;;;;;;;ACpJ3G;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,mBAAmB,GAAG,iBAAiB;AACvC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;;;;;;;;;;;ACpBN;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChCa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe;AACf,kCAAkC,mBAAO,CAAC,+EAAW;AACrD,iBAAiB,mBAAO,CAAC,yEAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,+CAA+C;AACnF;AACA,gCAAgC,6CAA6C;AAC7E,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3Ja;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,6BAA6B,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,yEAAU;AACnC,iBAAiB,mBAAO,CAAC,gFAAU;AACnC,gBAAgB,mBAAO,CAAC,mGAAW;AACnC,2CAA0C,CAAC,qCAAqC,0BAA0B,EAAE,EAAE,EAAC;AAC/G,gBAAgB,mBAAO,CAAC,mGAAW;AACnC,2CAA0C,CAAC,qCAAqC,0BAA0B,EAAE,EAAE,EAAC;AAC/G,gBAAgB,mBAAO,CAAC,mGAAW;AACnC,2CAA0C,CAAC,qCAAqC,0BAA0B,EAAE,EAAE,EAAC;AAC/G,mBAAmB,mBAAO,CAAC,yGAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sCAAsC;AACzE,mCAAmC,oDAAoD;AACvF;AACA;AACA;AACA,6BAA6B;;;;;;;;;;;;ACrDhB;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,wBAAwB,GAAG,eAAe;AAC1C;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA,mCAAmC,4BAA4B,EAAE;AACjE;AACA,KAAK;AACL;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA,uCAAuC,yDAAyD,EAAE;AAClG,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;;;;;;;;;;;ACxFX;AACb;AACA,4EAA4E,OAAO;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,kBAAkB,GAAG,uBAAuB,GAAG,mBAAmB,GAAG,2BAA2B;AAChG,iBAAiB,mBAAO,CAAC,yEAAU;AACnC,kBAAkB,mBAAO,CAAC,uFAAc;AACxC;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,0CAA0C;AACtE;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;AC7Ga;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,iBAAiB,mBAAO,CAAC,gFAAU;AACnC,kBAAkB,mBAAO,CAAC,sFAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACpFwB;AACqB;AACL;;;;;;;;;;;;;;;;;;ACFiB;AACzD,wCAAwC,IAAI;AAC5C,6BAA6B,IAAI;AACjC;AACA,sBAAsB,2DAAuB;AAC7C,0BAA0B,yDAAqB;AAC/C,sBAAsB,uDAAmB;AACzC,wBAAwB,uDAAmB;AAC3C,+BAA+B,uDAAmB;AAClD,qBAAqB,0DAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,aAAa,yDAAqB;AAClC,aAAa,sDAAkB;AAC/B,aAAa,2DAAuB;AACpC,aAAa,uDAAmB;AAChC,aAAa,wDAAoB;AACjC,aAAa,iEAA6B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,kDAAkD,SAAS;AAC3D;AACA,+CAA+C,yBAAyB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,8BAA8B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gDAAgD;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2DAAuB;AACtE;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA,kBAAkB,0DAAsB;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2DAAuB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,2DAAuB;AAC9D;AACA,iCAAiC,OAAO,2DAAuB,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sDAAkB;AAC/C;AACA;AACA;AACA;AACA,6BAA6B,uDAAmB;AAChD;AACA;AACA;AACA;AACA,6BAA6B,wDAAoB;AACjD;AACA;AACA;AACA;AACA,6BAA6B,yDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,6CAA6C,2DAAuB;AACpE;AACA;AACA;AACA,0CAA0C,0DAAsB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAsB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8DAA0B;AACxD;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,KAAK;AACpE;AACA;AACA;AACA;AACA;AACA,+EAA+E,KAAK,IAAI,SAAS;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,OAAO,uDAAmB,cAAc;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iEAA6B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO,0DAAsB;AACpD,uBAAuB,OAAO,oDAAgB,mBAAmB;AACjE;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACnawD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sDAAkB;AAC/B;AACA,aAAa,uDAAmB;AAChC;AACA,aAAa,wDAAoB;AACjC;AACA,aAAa,yDAAqB;AAClC;AACA,aAAa,2DAAuB;AACpC;AACA,aAAa,iEAA6B;AAC1C;AACA,aAAa,0DAAsB;AACnC;AACA;AACA;AACA;AACA;AACA,qBAAqB,8BAA8B;AACnD,aAAa,oDAAgB;AAC7B;AACA,aAAa,8DAA0B;AACvC,wBAAwB,4CAA4C,EAAE;AACtE;AACA,sBAAsB,mDAAmD,GAAG;AAC5E,aAAa,uDAAmB;AAChC,uBAAuB,4CAA4C,EAAE;AACrE;AACA,sBAAsB;AACtB;AACA,4CAA4C,GAAG;AAC/C,aAAa,0DAAsB;AACnC;AACA,iCAAiC,0DAAsB;AACvD;AACA;AACA,2BAA2B,6CAA6C;AACxE;AACA;AACA,iCAAiC,2DAAuB;AACxD;AACA;AACA,2BAA2B,6CAA6C;AACxE;AACA;AACA,iCAAiC,0DAAsB;AACvD,2BAA2B,KAAK;AAChC;AACA,uBAAuB,KAAK,EAAE,6BAA6B,IAAI,uDAAuD,GAAG,gEAAgE;AACzL;AACA;AACA;AACA;AACA;AACA,aAAa,0DAAsB;AACnC;AACA,aAAa,2DAAuB;AACpC;AACA,aAAa,yDAAqB;AAClC;AACA,aAAa,uDAAmB;AAChC;AACA,aAAa,uDAAmB;AAChC;AACA,aAAa,uDAAmB;AAChC;AACA,aAAa,0DAAsB;AACnC;AACA,aAAa,0DAAsB;AACnC;AACA;AACA;AACA;AACA,cAAc,8BAA8B,EAAE,4CAA4C;AAC1F;AACA;AACA;AACA,aAAa;AACb;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA,sBAAsB,sBAAsB,IAAI,cAAc;AAC9D;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC7HO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;;;;;;;;;;;ACtC3C;AACA;AACA;AACA;AACA;;AAEA,UAAU,+GAAmC;AAC7C,WAAW;AACX,kBAAkB;AAClB,YAAY;AACZ,YAAY;AACZ,iBAAiB;AACjB,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA;AACA,GAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,MAAM,qBAAqB;AAC3B;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACvLA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd,eAAe;AACf,cAAc;AACd,eAAe;AACf,qGAAgC;;AAEhC;AACA;AACA;;AAEA,aAAa;AACb,aAAa;;AAEb;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;;AAElB;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc;AACd;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;;AAEA,EAAE,aAAa;AACf,EAAE,aAAa;;AAEf;AACA;;AAEA,iBAAiB,SAAS;AAC1B,4BAA4B;AAC5B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACzMA;AACA;AACA;AACA;;AAEA;AACA,EAAE,sHAAwC;AAC1C,CAAC;AACD,EAAE,gHAAqC;AACvC;;;;;;;;;;;ACTA;AACA;AACA;;AAEA,UAAU,mBAAO,CAAC,gBAAK;AACvB,WAAW,mBAAO,CAAC,kBAAM;;AAEzB;AACA;AACA;AACA;AACA;;AAEA,UAAU,+GAAmC;AAC7C,YAAY;AACZ,WAAW;AACX,kBAAkB;AAClB,YAAY;AACZ,YAAY;AACZ,iBAAiB;;AAEjB;AACA;AACA;;AAEA,cAAc;;AAEd;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,2CAA2C,yBAAyB;;AAEpE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC,IAAI;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,mBAAO,CAAC,cAAI;AAC3B,2CAA2C,mBAAmB;AAC9D;AACA;;AAEA;AACA;AACA,gBAAgB,mBAAO,CAAC,gBAAK;AAC7B;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACvPA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,eAAe,gDAAwB;;AAEvC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC;;AAEvC;AACA,4CAA4C;AAC5C;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,WAAW;AAC5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,kBAAkB;AAC1B;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,iCAAiC;AAC5D,cAAc,oBAAoB;AAClC;;AAEA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;ACzhBa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,sBAAsB,GAAG,oBAAoB;AAC7C,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACtGa;AACb;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oCAAoC,aAAa,EAAE,EAAE;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,yCAAyC,6BAA6B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D;AACA;AACA;AACA,+BAA+B,mBAAO,CAAC,yFAAgB;AACvD,iBAAiB,mBAAO,CAAC,6EAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,gGAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU,iBAAiB;AAClE;AACA;AACA;AACA,mCAAmC,UAAU,qBAAqB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClNa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,GAAG,eAAe,GAAG,iBAAiB,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,GAAG,mBAAmB;AACxL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC,mBAAmB,KAAK;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA,iBAAiB;AACjB;AACA,eAAe;AACf;AACA,cAAc;AACd;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA,aAAa;AACb;AACA,eAAe;;;;;;;;;;;;ACtDF;AACb;AACA;AACA;AACA;AACA,cAAc,oCAAoC,aAAa,EAAE;AACjE;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,kBAAkB;AAClB,uBAAuB,mBAAO,CAAC,yFAAgB;AAC/C,aAAa,mBAAO,CAAC,4EAAQ;AAC7B,aAAa,mBAAO,CAAC,4EAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB;AAClB,eAAe;;;;;;;;;;;;AC/KF;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,8EAA8E;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,iBAAiB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,cAAc,GAAG,eAAe,GAAG,aAAa,GAAG,eAAe,GAAG,gBAAgB,GAAG,wBAAwB,GAAG,6BAA6B,GAAG,eAAe,GAAG,YAAY,GAAG,gBAAgB,GAAG,YAAY;AAC5T,uBAAuB,mBAAO,CAAC,yFAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA,CAAC;AACD,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD,8BAA8B;AAC9B;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,2CAA2C,iCAAiC,EAAE;AAC9E;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iCAAiC,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA,2CAA2C,iCAAiC,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,gDAAgD,+BAA+B,EAAE;AACjF,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3ba;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe;AACf,kBAAkB,mBAAO,CAAC,oFAAa;AACvC,eAAe,mBAAO,CAAC,8EAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,iCAAiC;AAClG;AACA;AACA;AACA;AACA;AACA,2DAA2D,8BAA8B;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7La;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,kBAAkB,GAAG,+BAA+B,GAAG,qBAAqB;AAC5E,mBAAmB,mBAAO,CAAC,iFAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,mCAAmC,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB;;;;;;;;;;;;AC5HL;AACb;AACA;AACA,kCAAkC,oCAAoC,aAAa,EAAE,EAAE;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,mBAAmB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,cAAc,GAAG,eAAe,GAAG,aAAa;AAC/G,aAAa,mBAAO,CAAC,oFAAa;AAClC,aAAa,mBAAO,CAAC,oFAAa;AAClC,aAAa,mBAAO,CAAC,0FAAgB;AACrC,aAAa,mBAAO,CAAC,kFAAY;AACjC,aAAa,mBAAO,CAAC,8EAAU;AAC/B,aAAa,mBAAO,CAAC,gFAAW;AAChC,aAAa,mBAAO,CAAC,4EAAS;AAC9B;AACA,mBAAmB,mBAAO,CAAC,iFAAY;AACvC,yCAAwC,CAAC,qCAAqC,2BAA2B,EAAE,EAAE,EAAC;AAC9G,2CAA0C,CAAC,qCAAqC,6BAA6B,EAAE,EAAE,EAAC;AAClH,0CAAyC,CAAC,qCAAqC,4BAA4B,EAAE,EAAE,EAAC;AAChH,6CAA4C,CAAC,qCAAqC,+BAA+B,EAAE,EAAE,EAAC;AACtH,8CAA6C,CAAC,qCAAqC,gCAAgC,EAAE,EAAE,EAAC;AACxH,+CAA8C,CAAC,qCAAqC,iCAAiC,EAAE,EAAE,EAAC;;;;;;;;;;;;AC3B7G;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,4BAA4B,GAAG,4BAA4B,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,mBAAmB;AAChI,mBAAmB,mBAAO,CAAC,iFAAY;AACvC,iBAAiB,mBAAO,CAAC,kFAAY;AACrC;AACA;AACA;AACA,oCAAoC,yDAAyD;AAC7F;AACA;AACA;AACA;AACA,gCAAgC,4DAA4D;AAC5F,KAAK;AACL;AACA;AACA,oCAAoC,wBAAwB;AAC5D;AACA,gCAAgC,2BAA2B;AAC3D,KAAK;AACL;AACA;AACA,oCAAoC,0DAA0D;AAC9F;AACA,gCAAgC,6DAA6D;AAC7F,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qEAAqE;AACrG;AACA,4BAA4B,wEAAwE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C,2BAA2B,kBAAkB;AAC7C;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C,2BAA2B,kBAAkB;AAC7C;AACA;AACA,4BAA4B;;;;;;;;;;;;AC3Hf;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe,GAAG,oBAAoB,GAAG,cAAc,GAAG,mBAAmB,GAAG,sBAAsB,GAAG,qBAAqB;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;;;;;;;;;;;AChIF;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe,GAAG,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,GAAG,YAAY,GAAG,cAAc;AAC5G,mBAAmB,mBAAO,CAAC,iFAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;;;;;;;;;;;AC7HF;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,iBAAiB,GAAG,mBAAmB,GAAG,eAAe,GAAG,oBAAoB,GAAG,oBAAoB;AACvG,mBAAmB,mBAAO,CAAC,iFAAY;AACvC,uCAAuC,mBAAO,CAAC,yFAAgB;AAC/D,uBAAuB,mBAAO,CAAC,yFAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oCAAoC,EAAE;AACnF;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;;;;;;;;;;;ACrFJ;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,0BAA0B,GAAG,0BAA0B,GAAG,eAAe,GAAG,iBAAiB,GAAG,yBAAyB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,mBAAmB;AACzL,mBAAmB,mBAAO,CAAC,iFAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;;;;;;;;;;;;ACpH1B;AACA;AACA;AACA;AACA;;AAEY;;AAEZ;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,iBAAiB,kBAAkB;AACnC;;AAEA;AACA;;AAEA;;AAEA,mBAAmB,gBAAgB;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,iBAAiB;AACpC;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;AC9Fa;;AAEb;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,sBAAsB;AAC9B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACjCa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,kBAAkB,GAAG,wBAAwB,GAAG,iBAAiB;AACjE,sCAAsC,mBAAO,CAAC,mGAAsB;AACpE,oCAAoC,mBAAO,CAAC,+FAAoB;AAChE,iCAAiC,mBAAO,CAAC,yFAAiB;AAC1D,yCAAyC,mBAAO,CAAC,kGAAoB;AACrE,8DAA8D;AAC9D,iBAAiB;AACjB,wBAAwB;AACxB;AACA;AACA,2BAA2B,qDAAqD;AAChF;AACA,8BAA8B,yBAAyB;AACvD,kBAAkB;AAClB;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,sEAAsE,QAAQ;AAC9E;AACA;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,2BAA2B,0CAA0C;AACrE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpDa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,oCAAoC,mBAAO,CAAC,+FAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;;;;;;;;;;;AC7BF;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,kBAAkB,GAAG,cAAc,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,iBAAiB;AACzG,iCAAiC,mBAAO,CAAC,yFAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,iBAAiB;AACjB,sCAAsC,mBAAO,CAAC,mGAAsB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,KAAK,IAAI;AACT;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,0CAA0C,sBAAsB,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,yDAAyD,wCAAwC,EAAE;AACnG;AACA;;;;;;;;;;;;ACvIa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,uBAAuB,GAAG,yBAAyB,GAAG,yBAAyB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,wBAAwB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,cAAc,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,cAAc,GAAG,oBAAoB,GAAG,cAAc;AAChZ,eAAe,mBAAO,CAAC,8EAAU;AACjC,eAAe,mBAAO,CAAC,8EAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,eAAe,mBAAO,CAAC,8EAAU;AACjC,6CAA4C,CAAC,qCAAqC,2BAA2B,EAAE,EAAE,EAAC;AAClH,8CAA6C,CAAC,qCAAqC,4BAA4B,EAAE,EAAE,EAAC;AACpH,sDAAqD,CAAC,qCAAqC,oCAAoC,EAAE,EAAE,EAAC;AACpI,0CAAyC,CAAC,qCAAqC,wBAAwB,EAAE,EAAE,EAAC;AAC5G,8CAA6C,CAAC,qCAAqC,4BAA4B,EAAE,EAAE,EAAC;AACpH;AACA,+CAA8C,CAAC,qCAAqC,4BAA4B,EAAE,EAAE,EAAC;AACrH,+CAA8C,CAAC,qCAAqC,4BAA4B,EAAE,EAAE,EAAC;AACrH,eAAe,mBAAO,CAAC,8EAAU;AACjC,6CAA4C,CAAC,qCAAqC,2BAA2B,EAAE,EAAE,EAAC;AAClH,8CAA6C,CAAC,qCAAqC,4BAA4B,EAAE,EAAE,EAAC;AACpH,oDAAmD,CAAC,qCAAqC,kCAAkC,EAAE,EAAE,EAAC;AAChI;AACA,+CAA8C,CAAC,qCAAqC,4BAA4B,EAAE,EAAE,EAAC;AACrH,+CAA8C,CAAC,qCAAqC,4BAA4B,EAAE,EAAE,EAAC;AACrH,qDAAoD,CAAC,qCAAqC,kCAAkC,EAAE,EAAE,EAAC;AACjI,qDAAoD,CAAC,qCAAqC,kCAAkC,EAAE,EAAE,EAAC;AACjI,mDAAkD,CAAC,qCAAqC,2BAA2B,EAAE,EAAE,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxDxH,eAAe,IAAI,GAAG,IAAI,aAAa,IAAI;AAC3C;AACA;AACA,uBAAuB,EAAE;AACzB,sBAAsB,EAAE;AACxB;AACA;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA;AACA,sCAAsC;AACtC,uDAAuD,wBAAwB,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB,SAAS;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kCAAkC,EAAE;AAC/D,4BAA4B,+BAA+B,EAAE;AAC7D;AACA;AACA,KAAK;AACL,2BAA2B,iCAAiC,EAAE;AAC9D,4BAA4B,8BAA8B,EAAE;AAC5D;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,2BAA2B,uCAAuC,EAAE;AACpE,4BAA4B,oCAAoC,EAAE;AAClE;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,8BAA8B,sCAAsC,EAAE;AACtE,2BAA2B,8CAA8C,EAAE;AAC3E,4BAA4B,2CAA2C,EAAE;AACzE,2BAA2B,mCAAmC,EAAE;AAChE,4BAA4B,gCAAgC,EAAE;AAC9D,2BAA2B,qCAAqC,EAAE;AAClE,4BAA4B,kCAAkC,EAAE;AAChE,2BAA2B,qCAAqC,EAAE;AAClE,4BAA4B,kCAAkC,EAAE;AAChE;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,6BAA6B,0CAA0C,EAAE;AACzE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,wBAAwB,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iBAAiB,EAAE;AAC/D,iDAAiD,gBAAgB,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,mCAAmC;AAC9E;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA,0BAA0B,+BAA+B;AACzD,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,+CAA+C;AAC/C;AACA;AACA;AACA,KAAK;AACL;AACA,6CAA6C,yBAAyB,EAAE;AACxE;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,KAAK;AAChB,aAAa,UAAU;AACvB;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,uDAAuD,yBAAyB,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,SAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,KAAK,EAAC;AACgE;AACrF;;;;;;;;;;;;AClZa;;AAEb;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;;;;;;;;;;;ACzCA;AACA,CAAC;;AAED;AACA,mBAAmB,KAA0B;;AAE7C;AACA,kBAAkB,KAAyB;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,8iBAA8iB,wZAAwZ,WAAW;;AAEn+B;AACA;AACA,cAAc;AACd,aAAa;AACb,eAAe;AACf,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA,wxfAAwxf,inBAAinB,6BAA6B,yBAAyB;AAC/7gB,kBAAkB,4teAA4te,wKAAwK,2uZAA2uZ,wKAAwK,6gFAA6gF;AACtz9B,wBAAwB;AACxB,yBAAyB;AACzB;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0DAA0D;AAC1D;;AAEA;AACA,8BAA8B;AAC9B;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC,mBAAmB,iBAAiB;AACpC,qBAAqB,MAAM,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,wCAAwC,EAAE;AAC1C,KAAK;AACL;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA,uCAAuC;AACvC,IAAI;AACJ,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE,IAEU;AACZ;AACA,EAAE,mCAAO;AACT;AACA,GAAG;AAAA,kGAAC;AACJ,EAAE,MAAM,YAUN;;AAEF,CAAC;;;;;;;;;;;ACxVD;AACA,aAAa,mBAAO,CAAC,kBAAM;AAC3B;AACA;AACA;AACA,CAAC;AACD;AACA,EAAE,uIAAiD;AACnD;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1BA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACRa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3Ba;;AAEb;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB;AACxB,wBAAwB;AACxB,wBAAwB;AACxB,wBAAwB;AACxB,wBAAwB;;AAExB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,0BAA0B,EAAE;AAC5B;;;AAGA;AACA;AACA;AACA;;;;;;;;;;;;ACrHa;;AAEb,eAAe,mBAAO,CAAC,yEAAU;;AAEjC;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA,sBAAsB,aAAa;AACnC;AACA,CAAC;;;;;;;;;;;;ACbY;;AAEb,OAAO,YAAY,GAAG,mBAAO,CAAC,6EAAY;AAC1C,OAAO,SAAS,GAAG,mBAAO,CAAC,iFAAc;AACzC,OAAO,mBAAmB,GAAG,mBAAO,CAAC,+EAAa;;;AAGlD;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,WAAW,GAAG,aAAa;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;;;;;;;;;;;;ACnDR;;AAEb,eAAe,mBAAO,CAAC,yFAAqB;AAC5C,OAAO,iBAAiB,GAAG,mBAAO,CAAC,+EAAa;;AAEhD;AACA;AACA;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK,IAAI;;AAET,0CAA0C,2BAA2B;AACrE;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6DAA6D,SAAS;AACtE;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,iBAAiB;AACxB;AACA;;AAEA;AACA;AACA;AACA,wBAAwB;AACxB,IAAI,qBAAqB;AACzB;;;;;;;;;;;;ACzHa;;AAEb,eAAe,mBAAO,CAAC,yEAAU;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,mCAAmC;AACnC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;;;;;;;;;;;ACjEtB;AACa;;AAEb,eAAe,mBAAO,CAAC,yEAAU;AACjC,OAAO,iBAAiB,GAAG,mBAAO,CAAC,+EAAa;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACtCY;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mCAAmC;;AAE5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnDa;;AAEb;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA,eAAe,+GAAoC;;AAEnD;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA,+GAAoC;;AAEpC;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,mCAAmC,QAAQ,mBAAO,CAAC,uEAAS,EAAE,EAAE;AAChE,oCAAoC,QAAQ,mBAAO,CAAC,yEAAU,EAAE,EAAE;AAClE,iCAAiC,QAAQ,mBAAO,CAAC,mEAAO,EAAE,EAAE;AAC5D,qCAAqC,QAAQ,mBAAO,CAAC,2EAAW,EAAE,EAAE;AACpE,sCAAsC,QAAQ,mBAAO,CAAC,6EAAY,EAAE,EAAE;AACtE,kCAAkC,QAAQ,mBAAO,CAAC,qEAAQ,EAAE,EAAE;AAC9D,mCAAmC,QAAQ,mBAAO,CAAC,uEAAS,EAAE,EAAE;AAChE,sCAAsC,QAAQ,mBAAO,CAAC,6EAAY,EAAE,EAAE;AACtE,sCAAsC,QAAQ,mBAAO,CAAC,6EAAY,EAAE,EAAE;AACtE,gCAAgC,QAAQ,mBAAO,CAAC,iEAAM,EAAE,EAAE;AAC1D,uCAAuC,QAAQ,mBAAO,CAAC,iFAAc,EAAE,EAAE;AACzE,yCAAyC,QAAQ,mBAAO,CAAC,qFAAgB,EAAE,EAAE;AAC7E,oCAAoC,QAAQ,mBAAO,CAAC,yEAAU,EAAE,EAAE;AAClE,oCAAoC,QAAQ,mBAAO,CAAC,yEAAU,EAAE,EAAE;AAClE,mCAAmC,QAAQ,mBAAO,CAAC,uEAAS,EAAE,EAAE;AAChE,uCAAuC,QAAQ,mBAAO,CAAC,+EAAa,EAAE,EAAE;AACxE,wCAAwC,QAAQ,mBAAO,CAAC,iFAAc,EAAE,EAAE;;;;;;;;;;;;ACnD7D;;AAEb,eAAe,mBAAO,CAAC,yEAAU;AACjC,OAAO,UAAU,GAAG,mBAAO,CAAC,+EAAa;AACzC,kBAAkB,mBAAO,CAAC,mGAAuB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC7BY;;AAEb,eAAe,mBAAO,CAAC,yEAAU;;AAEjC;AACA;AACA;AACA;AACA,IAAI,oBAAoB;AACxB;AACA;AACA;AACA,uBAAuB,WAAW,IAAI,aAAa;AACnD;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;;;;;AClBY;;AAEb,OAAO,YAAY,GAAG,mBAAO,CAAC,6EAAY;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACXa;;AAEb,eAAe,mBAAO,CAAC,yEAAU;AACjC,OAAO,UAAU,GAAG,mBAAO,CAAC,+EAAa;AACzC,sBAAsB,mBAAO,CAAC,mGAAuB;;AAErD;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC5BY;;AAEb,eAAe,mBAAO,CAAC,yEAAU;;AAEjC;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;AACA;AACA;AACA;AACA,GAAG,IAAI;;AAEP;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;AC5DY;;AAEb,eAAe,mBAAO,CAAC,yEAAU;AACjC,WAAW,mBAAO,CAAC,kFAAI;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS;AACX,EAAE,aAAa;AACf,gBAAgB,cAAc;;AAE9B;AACA,CAAC;;;;;;;;;;;ACjBD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACjKA;AACa;;AAEb,OAAO,0BAA0B,GAAG,mBAAO,CAAC,+EAAa;;AAEzD;AACA,sBAAsB,6BAA6B;AACnD;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,uBAAuB,OAAO,EAAE,mBAAmB;AACnD;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK;AACnB,cAAc,OAAO;AACrB,eAAe,KAAK;AACpB;AACA;AACA,sBAAsB,2BAA2B,EAAE,aAAa;AAChE;AACA,yBAAyB,2BAA2B,EAAE,cAAc;AACpE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI,kBAAkB;AACtB;AACA;;AAEA,qBAAqB;AACrB,IAAI,qBAAqB;AACzB;;;;;;;;;;;;AClFa;;AAEb,gBAAgB,+CAAuB;AACvC,eAAe,mBAAO,CAAC,yEAAU;AACjC,OAAO,wBAAwB,GAAG,mBAAO,CAAC,+EAAa;;AAEvD;AACA;AACA;AACA;AACA,IAAI,oBAAoB;AACxB;AACA,wCAAwC;AACxC;AACA,WAAW,sBAAsB;AACjC;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;;;;;AC5BY;;AAEb,OAAO,UAAU,GAAG,mBAAO,CAAC,+EAAa;;AAEzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB,IAAI,qBAAqB;AACzB;;;;;;;;;;;;ACzBA;AACa;;AAEb,eAAe,mBAAO,CAAC,yEAAU;AACjC,OAAO,UAAU,GAAG,mBAAO,CAAC,+EAAa;AACzC,sBAAsB,mBAAO,CAAC,mGAAuB;;AAErD;AACA;AACA;AACA;AACA;AACA,aAAa,iCAAiC;AAC9C;AACA,QAAQ,MAAM,IAAI,QAAQ;AAC1B,QAAQ,MAAM,IAAI,QAAQ,GAAG,qBAAqB;AAClD;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA,GAAG;;AAEH;AACA,6BAA6B;AAC7B,uBAAuB,WAAW,GAAG,QAAQ,GAAG,aAAa,GAAG,gBAAgB;AAChF,GAAG;AACH,uBAAuB,WAAW,GAAG,QAAQ,GAAG,aAAa;AAC7D;;AAEA;AACA,CAAC;;;;;;;;;;;;AChCY;;AAEb,aAAa,mBAAO,CAAC,kBAAM;AAC3B,OAAO,QAAQ,GAAG,mBAAO,CAAC,+EAAa;;AAEvC;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uDAAuD,cAAc;AACrE;AACA;AACA,gBAAgB,KAAK;AACrB,gBAAgB,SAAS;AACzB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,mBAAmB;AAC7B,UAAU,mBAAmB;AAC7B;AACA;AACA;AACA;AACA,qDAAqD,aAAa,GAAG,mBAAmB;AACxF;AACA;AACA;AACA,6BAA6B,aAAa,GAAG,mBAAmB;AAChE,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,QAAQ,wCAAwC,OAAO;AACxE;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa;AAClC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,OAAO;AACtB,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,QAAQ,wCAAwC,OAAO;AAC1E;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnIa;;AAEb,cAAc,mBAAO,CAAC,uEAAO;AAC7B,eAAe,mBAAO,CAAC,yEAAU;;AAEjC;AACA;AACA;AACA;AACA;AACA,MAAM,kBAAkB;AACxB,MAAM,6BAA6B;AACnC;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;AC7BY;;AAEb,eAAe,mBAAO,CAAC,yFAAqB;AAC5C,eAAe,mBAAO,CAAC,yEAAU;AACjC,OAAO,UAAU,GAAG,mBAAO,CAAC,+EAAa;;AAEzC;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;AC1BD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,cAAc;AACd,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjFD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtKD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrLD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvMD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChHD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7DD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClLD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChKD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9GD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9LD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5GD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/DD;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gCAAgC;AAChC,+BAA+B;AAC/B,+BAA+B;AAC/B,8BAA8B;AAC9B;AACA;AACA;AACA,yDAAyD;AACzD;AACA,0DAA0D;AAC1D;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3HD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpID;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClLD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtKD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI,IAAI,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxGD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9JD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8CAA8C,IAAI,IAAI,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9FD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yCAAyC,IAAI;AAC7C;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/HD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,IAAI;AAC3D,6DAA6D,IAAI;AACjE,4DAA4D,IAAI;AAChE,kEAAkE,IAAI;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9GD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrND;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrGD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/ND;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/ED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3JD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrLD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,gCAAgC;AAChC,aAAa;AACb,+BAA+B;AAC/B,aAAa;AACb,kCAAkC;AAClC,aAAa;AACb,kCAAkC;AAClC,aAAa;AACb,+BAA+B;AAC/B,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClGD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/HD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;ACnGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjLD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7DD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/DD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClID;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/GD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9GD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,yEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7GD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oG;;;;;;;;;;;ACnSA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAA4D;AAChE,IAAI,CACyB;AAC7B,CAAC,qBAAqB;;AAEtB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wGAAwG,IAAI,wBAAwB,IAAI,uDAAuD,IAAI;AACnM,qEAAqE,IAAI;AACzE,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0CAA0C,YAAY;AACtD;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,IAAI;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,EAAE;AACvB,qBAAqB,EAAE;AACvB,0BAA0B,EAAE;AAC5B;AACA;AACA;AACA,wBAAwB,IAAI;AAC5B,wBAAwB,IAAI;AAC5B,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA,mBAAmB,MAAM,wEAAwE,MAAM,mBAAmB,MAAM,qBAAqB,MAAM,EAAE,IAAI;AACjK;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,OAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB;AACpB,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAO;AACxC,gBAAgB,qGAAe,IAAW,OAAO,CAAC;AAClD;AACA,aAAa;AACb;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA;AACA,qCAAqC,EAAE;AACvC,+BAA+B,EAAE;AACjC,iCAAiC,EAAE;AACnC,+BAA+B,EAAE;AACjC,6BAA6B,EAAE,IAAI,EAAE;AACrC,4BAA4B,EAAE;AAC9B,mCAAmC,GAAG;AACtC,6BAA6B,EAAE;AAC/B,+BAA+B,EAAE,IAAI,EAAE;AACvC,8BAA8B,EAAE,IAAI,EAAE;AACtC,4BAA4B,EAAE;AAC9B,2BAA2B,EAAE;AAC7B,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,IAAI,0DAA0D,IAAI,qEAAqE,EAAE;AACjM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gBAAgB;AACnC;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC,kBAAkB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,cAAc;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,2GAA2G;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,mBAAmB;AACxC;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;ACpjLD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB,qBAAqB;AACrB,oBAAoB;;AAEpB;AACA;AACA;AACA;;AAEA,WAAW,mBAAO,CAAC,6EAAY;AAC/B,YAAY,mBAAO,CAAC,uEAAO;AAC3B,gBAAgB,mBAAO,CAAC,iEAAM;AAC9B,iBAAiB,mBAAO,CAAC,+EAAa;AACtC,gBAAgB,mBAAO,CAAC,6EAAY;;AAEpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,OAAO;AAClB,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8DAA8D,GAAG;AACjE;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,gBAAgB;AAC3B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;AC/hBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACvJe;AACf;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFyD;AACH;AACF;AACT;AACI;AACI;AACA;;;;;;;;;;;;;;;;;ACNf;AACpC;AACA,qCAAqC,6DAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;ACpGwB;AACI;AACf,0BAA0B,0CAAI;AAC7C;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,wBAAwB,uDAAqB;AAC7C;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBoB;AAC8B;AACxB;AACI;AACA;AACG;AACF;AACK;AACpC,UAAU,SAAS;AACnB;AACA;AACA,qCAAqC,gDAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACe,0BAA0B,0CAAI;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uDAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA,sCAAsC,0BAA0B;AAChE;AACA,yCAAyC,IAAI;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,6BAA6B,0CAAQ;AACrC;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,kCAAkC,uDAAqB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oDAAkB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,GAAG;AACjD,SAAS;AACT,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA,2BAA2B,IAAI,EAAE,MAAM;AACvC;AACA,uBAAuB,IAAI,EAAE,MAAM,GAAG,eAAe,IAAI,IAAI;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mDAAmD;AACnD;AACA,oEAAoE,0CAAQ;AAC5E;AACA,qCAAqC;AACrC,+BAA+B,0CAAI;AACnC;AACA;AACA;AACA;AACA,gEAAgE,0CAAQ;AACxE;AACA;AACA;AACA;AACA;AACA,gCAAgC,0CAAI;AACpC;AACA;AACA;AACA,4DAA4D;AAC5D;AACA,iEAAiE,0CAAQ;AACzE;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,YAAY;AAC5B;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA,uCAAuC,uDAAqB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD,0DAA0D,+BAA+B,QAAQ;AACjG,qBAAqB,gBAAgB,EAAE,MAAM,EAAE,SAAS;AACxD;AACA;AACA,2CAA2C,uDAAqB;AAChE;AACA;AACA,gDAAgD,oDAAkB;AAClE;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA,kCAAkC,oDAAkB;AACpD;AACA;AACA;AACA;AACA;AACA,uCAAuC,uDAAqB;AAC5D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,cAAc;AAC9B;AACA;AACA,eAAe,qDAAS;AACxB;AACA,qBAAqB,6CAAO;AAC5B,SAAS;AACT;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,cAAc;AACd;AACA;AACA;AACA;AACA,oBAAoB;AACpB,sBAAsB;AACtB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,YAAY;AAC5B;AACA;AACA,eAAe,qDAAS;AACxB;AACA,qBAAqB,6CAAO;AAC5B,SAAS;AACT;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,gCAAgC,SAAS,UAAU,aAAa;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qDAAS;AAC/B;AACA;AACA,uBAAuB,6CAAO;AAC9B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA,eAAe,8CAAQ;AACvB;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,GAAG,IAAI;AAClC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,GAAG,IAAI;AAClC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,GAAG,iCAAiC;AAC/D,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,oDAAoD,MAAM;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,QAAQ,yCAAyC;AACjD,QAAQ,yCAAyC;AACjD,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,SAAS,yCAAyC;AAClD,SAAS,yCAAyC;AAClD,SAAS,yCAAyC;AAClD,SAAS,yCAAyC;AAClD,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS;AACT;AACA;AACA,SAAS,yCAAyC;AAClD,SAAS,yCAAyC;AAClD,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,QAAQ,uBAAuB;AAC/B,SAAS,+CAA+C;AACxD,SAAS,+CAA+C;AACxD,SAAS,+CAA+C;AACxD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,YAAY;AACxB;AACO,qCAAqC,0CAA0C;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU,GAAG,KAAK,IAAI,UAAU;AAC/C;AACA;AACA;AACA;AACA;AACA,8CAA8C,0CAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,6CAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+CAA+C;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,8CAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0CAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,8CAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,8CAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,gCAAgC,0CAA0C;AACjF;AACA;AACA;AACA;AACA;AACA,0BAA0B,8CAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;;;;;;;;;;;;;;;ACnkCA;AACA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACjB8B;AACJ;AAC1B;AACA;AACA,WAAW,OAAO;AAClB;AACe,uBAAuB,0CAAI;AAC1C;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,wBAAwB,oDAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;ACNkB;AAC1C;AACA;AACA;AACA;AACe,gCAAgC,0CAA0C;AACzF,kBAAkB,uDAAU;AAC5B;AACA;;;;;;;;;;;;ACRa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,GAAG,eAAe;AAClC,iCAAiC,mBAAO,CAAC,yEAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA,iCAAiC,oBAAoB;AACrD;AACA;AACA,uEAAuE,mBAAmB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAA4C;AACxE,4BAA4B,4CAA4C;AACxE;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA,6BAA6B,+BAA+B;AAC5D;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA,gBAAgB;AAChB,mC;;;;;;;;;;;ACxHa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,GAAG,gBAAgB,GAAG,eAAe,GAAG,aAAa;AACrE,iBAAiB,mBAAO,CAAC,gFAAY;AACrC,yCAAwC,CAAC,qCAAqC,yBAAyB,EAAE,EAAE,EAAC;AAC5G,mBAAmB,mBAAO,CAAC,oFAAc;AACzC,2CAA0C,CAAC,qCAAqC,6BAA6B,EAAE,EAAE,EAAC;AAClH,4CAA2C,CAAC,qCAAqC,8BAA8B,EAAE,EAAE,EAAC;AACpH;AACA;AACA,mBAAmB,YAAY,MAAM,cAAc;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,mBAAmB,YAAY,MAAM,eAAe;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,iC;;;;;;;;;;;ACrEa;AACb;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,iC;;;;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;;AAEA,YAAY,mBAAO,CAAC,yEAAU;;AAE9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,kBAAkB;AACrC;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,SAAS;AACrB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB;AACA;;AAEA;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;;AAEA;AACA;;;;;;;;;;;;ACnIa;;AAEb,WAAW,mBAAO,CAAC,uEAAS;;AAE5B;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzCA;AACA,aAAa,mBAAO,CAAC,sBAAQ;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,EAAE,cAAc;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7DY;;AAEZ,OAAO,iBAAiB;;AAExB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,iBAAiB;;AAEjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO,KAAK,sBAAsB;AAChD;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA,mBAAmB,mBAAmB,EAAE,YAAY;AACpD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB,KAAK,mBAAmB;AAC9D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW,EAAE,SAAS;AACzC,iBAAiB,oBAAoB;AACrC,cAAc,UAAU,GAAG,EAAE,IAAI,WAAW,EAAE,SAAS;AACvD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,aAAa;AAC1F,yDAAyD,iBAAiB;AAC1E;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,yBAAyB,YAAY;AACrC;AACA;AACA;AACA,gBAAgB,kCAAkC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,OAAO,0BAA0B;AAC5D;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA,qBAAqB,IAAI;AACzB;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA,sBAAsB,UAAU,GAAG,eAAe,IAAI,WAAW,EAAE,IAAI;AACvE;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU,QAAQ,WAAW,GAAG,0BAA0B;AAC9E;AACA;AACA;AACA,qBAAqB,YAAY,EAAE,IAAI,IAAI,oBAAoB;AAC/D;AACA;AACA,iBAAiB,EAAE,KAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,yBAAyB,YAAY;AACrC;AACA;AACA;AACA,gBAAgB,kCAAkC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,OAAO,0BAA0B;AAC5D;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU,GAAG,eAAe,IAAI,WAAW,EAAE,IAAI;AACvE;AACA;AACA;AACA;AACA,qBAAqB,YAAY,EAAE,IAAI,IAAI,oBAAoB;AAC/D;AACA;AACA,iBAAiB,EAAE,KAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,YAAY;AACrC,6BAA6B,YAAY;AACzC;AACA;AACA,gBAAgB,kCAAkC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,OAAO,0BAA0B;AAC5D;AACA,sBAAsB,oBAAoB;AAC1C;AACA,qBAAqB,IAAI;AACzB;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA,sBAAsB,UAAU,GAAG,eAAe,KAAK,IAAI;AAC3D;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU,UAAU,0BAA0B;AAClE;AACA;AACA;AACA,qBAAqB,YAAY,EAAE,IAAI,IAAI,oBAAoB;AAC/D;AACA;AACA,iBAAiB,EAAE,KAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kCAAkC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA,qBAAqB,IAAI;AACzB;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA,sBAAsB,UAAU,GAAG,eAAe,IAAI,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU,SAAS,0BAA0B;AACjE;AACA;AACA,iBAAiB,EAAE,KAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;AChqBa;;AAEb,iBAAiB,mBAAO,CAAC,+EAAa;;AAEtC;AACA;;AAEA;AACA;;AAEA,mCAAmC,SAAS;AAC5C;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5BA,WAAW;AACX;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8BAA8B,GAAG;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,6BAA6B;AAC7B;AACA;;;;;;;;;;;;ACvIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,aAAa,2GAA6B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,sCAAsC,sCAAsC;AACzG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;ACvSa;;AAEb;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA,UAAU;AACV;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA,UAAU;AACV;AACA,uCAAsC;AACtC,SAAS,mBAAO,CAAC,8EAAO;AACxB,CAAC,EAAC;;AAEF;AACA;AACA,UAAU;AACV;AACA,uCAAsC;AACtC,SAAS,mBAAO,CAAC,8EAAO;AACxB,CAAC,EAAC;;AAEF;AACA;AACA,UAAU;AACV;AACA,0CAAyC;AACzC,SAAS,mBAAO,CAAC,oFAAU;AAC3B,CAAC,EAAC;;;;;;;;;;;;AC/BF;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA,UAAU;AACV;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA,UAAU;AACV;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACrCa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,yCAAwC;AACxC;AACA,CAAC,EAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,2CAA0C;AAC1C;AACA,CAAC,EAAC;;AAEF;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,yCAAwC;AACxC;AACA,CAAC,EAAC;;AAEF;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,2CAA0C;AAC1C,SAAS,mBAAO,CAAC,mFAAU;AAC3B,CAAC,EAAC;;;;;;;;;;;;AC5CF;AACA;AACA;;AAEA,kEAA0C;;;;;;;;;;;;ACL7B;;AAEb,aAAa,mBAAO,CAAC,kBAAM;AAC3B,iBAAiB,mBAAO,CAAC,6JAAyC;AAClE,OAAO,QAAQ,GAAG,mBAAO,CAAC,+EAAa;;AAEvC;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,IAAI,kBAAkB;AACtB,WAAW,SAAS;AACpB;AACA,WAAW,SAAS;AACpB;AACA,8EAA8E;AAC9E,uBAAuB,yDAAyD;;AAEhF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0DAA0D;AAC1D,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,YAAY;AAC9D,WAAW,yBAAyB;AACpC,WAAW,mBAAmB;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;;AAGA;AACA,+IAA0D;;;;;;;;;;;;ACtN7C;;AAEb,aAAa,mBAAO,CAAC,kBAAM;AAC3B,OAAO,QAAQ,GAAG,mBAAO,CAAC,+EAAa;AACvC,wBAAwB,mBAAO,CAAC,4EAAI;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;;AAEA,0FAA0F;AAC1F;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,OAAO,oBAAoB;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACtHa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,MAAM,GAAG,sCAAsC;AACtE;AACA,KAAK;AACL,uBAAuB,MAAM,GAAG,YAAY,MAAM,YAAY;AAC9D,KAAK;AACL,mBAAmB,MAAM,GAAG,YAAY;AACxC;AACA,GAAG;AACH,iBAAiB,MAAM,GAAG,iBAAiB;AAC3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,KAAK,GAAG,WAAW,GAAG,wBAAwB;AAC/D,GAAG;AACH;AACA,kBAAkB,KAAK,IAAI,KAAK,GAAG,WAAW,GAAG,wBAAwB;AACzE;;AAEA,4BAA4B,cAAc;AAC1C;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,oBAAoB;;;;;;;;;;;;ACnHpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,mBAAO,CAAC,wIAAoB;AAC3C,eAAe,mBAAO,CAAC,wIAAoB;AAC3C,mBAAO,CAAC,4EAAU;AAClB;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,E;;;;;;;;;;;AC7HD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS,wDAA8B;AACvC;AACA;AACA;AACA;;AAEA;AACA,aAAa,mBAAO,CAAC,sJAA2B;AAChD;;AAEA,aAAa,kDAAwB;AACrC,8IAA8I;AAC9I;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAO,CAAC,kBAAM;AAC9B;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,gKAAgC;AACzD,kBAAkB,mBAAO,CAAC,wJAA4B;AACtD,eAAe,mBAAO,CAAC,oJAA0B;AACjD;AACA,qBAAqB,4IAA0B;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAO,CAAC,4EAAU;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yEAAyE,mFAAmF;AAC5J;AACA;AACA,qBAAqB,mBAAO,CAAC,oIAAkB;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sIAAwC;AAChF;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,oIAAkB;AAC/C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+FAA+F;AAC/F,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,4FAA4F;AAC5F,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,sIAAwC;AAC9E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mBAAO,CAAC,sKAAmC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA,mDAAmD,+DAA+D;AAClH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,kJAAyB;AAC9C;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA,C;;;;;;;;;;;AClgCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa,mBAAO,CAAC,oFAAgB;AACrC;AACA;;AAEA;AACA,aAAa,mBAAO,CAAC,sJAA2B;AAChD;;AAEA,aAAa,kDAAwB;AACrC,8IAA8I;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,wJAA4B;AACtD,eAAe,mBAAO,CAAC,oJAA0B;AACjD;AACA,qBAAqB,4IAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAO,CAAC,4EAAU;AAClB;AACA;AACA,qBAAqB,mBAAO,CAAC,oIAAkB;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,oIAAkB;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,sDAAsD;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,E;;;;;;;;;;;AChoBa;;AAEb;AACA,2CAA2C,2BAA2B,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;AAC1O,8BAA8B,uCAAuC,oDAAoD;AACzH,oCAAoC,+DAA+D,sCAAsC,0BAA0B,+CAA+C,yCAAyC,qEAAqE,EAAE,qDAAqD;AACvX,eAAe,mBAAO,CAAC,mJAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA;AACA,yFAAyF;AACzF;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,mD;;;;;;;;;;;ACnLa;;AAEb,0CAA0C,gCAAgC,oCAAoC,oDAAoD,6DAA6D,gEAAgE,EAAE,mCAAmC,EAAE,aAAa;AACnV,gCAAgC,gBAAgB,sBAAsB,OAAO,uDAAuD,6DAA6D,2CAA2C,EAAE,mKAAmK,kFAAkF,EAAE,EAAE,EAAE,eAAe;AACxf,2CAA2C,2BAA2B,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;AAC1O,iDAAiD,0CAA0C,0DAA0D,EAAE;AACvJ,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2EAA2E,EAAE;AAC3U,6DAA6D,sEAAsE,8DAA8D,kDAAkD,kBAAkB,EAAE,oBAAoB;AAC3R,8BAA8B,uCAAuC,oDAAoD;AACzH,oCAAoC,+DAA+D,sCAAsC,0BAA0B,+CAA+C,yCAAyC,qEAAqE,EAAE,qDAAqD;AACvX,eAAe,mBAAO,CAAC,sBAAQ;AAC/B;AACA,gBAAgB,mBAAO,CAAC,kBAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA,yDAAyD,cAAc;AACvE;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,CAAC,G;;;;;;;;;;;ACtLY;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wFAAwF;AACxF;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;AC/FA;AACA;;AAEa;;AAEb,iCAAiC,6KAA2D;AAC5F;AACA;AACA;AACA;AACA;AACA,uEAAuE,aAAa;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qB;;;;;;;;;;;ACrFa;;AAEb,4EAA4E,MAAM,0BAA0B,wBAAwB,EAAE,gBAAgB,eAAe,QAAQ,EAAE,iBAAiB,gBAAgB,EAAE,OAAO,4CAA4C,EAAE;AACvQ,gCAAgC,qBAAqB,mCAAmC,gDAAgD,gCAAgC,wBAAwB,wEAAwE,EAAE,uBAAuB,uEAAuE,EAAE,kBAAkB,EAAE,EAAE,GAAG;AACnY,0CAA0C,gCAAgC,oCAAoC,oDAAoD,6DAA6D,gEAAgE,EAAE,mCAAmC,EAAE,aAAa;AACnV,gCAAgC,gBAAgB,sBAAsB,OAAO,uDAAuD,6DAA6D,2CAA2C,EAAE,mKAAmK,kFAAkF,EAAE,EAAE,EAAE,eAAe;AACxf,2CAA2C,2BAA2B,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;AAC1O,8BAA8B,uCAAuC,oDAAoD;AACzH,oCAAoC,+DAA+D,sCAAsC,0BAA0B,+CAA+C,yCAAyC,qEAAqE,EAAE,qDAAqD;AACvX,2BAA2B,uKAAqD;AAChF;AACA;AACA;AACA;AACA,GAAG,kGAAkG,uFAAuF;AAC5L;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnDa;;AAEb,4BAA4B,wKAAsD;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;ACrBA,4DAAkC;;;;;;;;;;;;ACAlC;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,gBAAgB,mBAAO,CAAC,uEAAS;AACjC,OAAO,OAAO,GAAG,mBAAO,CAAC,6FAAkB;;AAE3C;AACA;AACA,UAAU;AACV;AACA,kIAAoD;AACpD;AACA;AACA,UAAU;AACV;AACA,qJAAoD;AACpD;AACA;AACA,UAAU;AACV;AACA,yIAA4C;AAC5C;AACA;AACA,UAAU;AACV;AACA,iBAAiB;AACjB;AACA;AACA,UAAU;AACV;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA,uJAAyD;AACzD;AACA;AACA,UAAU;AACV;AACA,mIAA4C;AAC5C;AACA;AACA,UAAU;AACV;AACA,mKAAiE;AACjE;AACA;AACA,UAAU;AACV;AACA,mKAAiE;AACjE;AACA;AACA,UAAU;AACV;AACA,4IAAkD;AAClD;AACA;AACA,UAAU;AACV;AACA,oIAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA,yCAAwC;AACxC;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC,EAAC;;AAEF;AACA;AACA;AACA,UAAU;AACV;AACA,8CAA6C;AAC7C;AACA;AACA;AACA,CAAC,EAAC;;AAEF;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA,UAAU;AACV;AACA,2CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClLA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,OAAO,SAAS,GAAG,mBAAO,CAAC,kBAAM;;AAEjC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA;AACA,+BAA+B,KAAK;AACpC;AACA,GAAG;AACH;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,gBAAgB,mBAAO,CAAC,uEAAS;AACjC,OAAO,UAAU,GAAG,mBAAO,CAAC,+EAAa;;AAEzC;AACA;AACA,UAAU;AACV;AACA,WAAW;;AAEX;AACA;AACA,UAAU;AACV;AACA,WAAW;;AAEX;AACA;AACA,UAAU;AACV;AACA,cAAc;;AAEd;AACA;AACA,UAAU;AACV;AACA,iBAAiB;;;;;;;;;;;;AClCjB;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,qBAAqB,mBAAO,CAAC,mGAAiB;;AAE9C;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ,YAAY;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,OAAO,QAAQ,GAAG,mBAAO,CAAC,+EAAa;AACvC,eAAe,mBAAO,CAAC,2FAAU;AACjC,eAAe,mBAAO,CAAC,qFAAU;AACjC,cAAc,mBAAO,CAAC,gGAAmB;;AAEzC;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA,oCAAoC;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mEAAmE,SAAS;AAC5E;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;ACvGA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,WAAW,mBAAO,CAAC,cAAI;AACvB,qBAAqB,mBAAO,CAAC,6EAAe;AAC5C,cAAc,mBAAO,CAAC,gGAAmB;AACzC,aAAa,mBAAO,CAAC,yEAAU;AAC/B,mBAAmB,mBAAO,CAAC,yFAAa;AACxC,wBAAwB,mBAAO,CAAC,yGAAoB;;AAEpD;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kCAAkC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,aAAa,UAAU;AACvB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;ACpPA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,OAAO,WAAW,GAAG,mBAAO,CAAC,+GAAiB;;AAE9C;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA,WAAW,mBAAmB;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,OAAO,oBAAoB,GAAG,mBAAO,CAAC,+GAAiB;AACvD,qBAAqB,mBAAO,CAAC,6EAAe;AAC5C,OAAO,eAAe,GAAG,mBAAO,CAAC,+EAAa;AAC9C,iBAAiB,mBAAO,CAAC,2EAAW;AACpC,yBAAyB,mBAAO,CAAC,2GAAqB;AACtD,yBAAyB,mBAAO,CAAC,2GAAqB;AACtD,8BAA8B,mBAAO,CAAC,mGAA0B;AAChE,iBAAiB,mBAAO,CAAC,yFAAY;AACrC,OAAO,OAAO,GAAG,mBAAO,CAAC,qFAAU;AACnC,eAAe,mBAAO,CAAC,2FAAU;;AAEjC;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,WAAW,mBAAmB;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,KAAK;AACR;AACA;AACA;AACA;;AAEA;AACA,2CAA2C,mBAAO,CAAC,2EAAc;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kEAAkE;AAC9E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;AACA,2CAA2C,eAAe;AAC1D;AACA;AACA;AACA,uDAAuD,mBAAmB;AAC1E;AACA;AACA,oBAAoB,sDAAsD;AAC1E,oBAAoB,yDAAyD;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,SAAS;;AAET,4CAA4C,aAAa,GAAG,aAAa;AACzE;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,YAAY;AACjD;;AAEA;AACA;AACA,6DAA6D,mBAAmB;AAChF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,qBAAqB;;AAE7D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO,WAAW;AAC9B,eAAe,OAAO;AACtB;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACnqBA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,WAAW,mBAAO,CAAC,cAAI;AACvB,qBAAqB,mBAAO,CAAC,6EAAe;AAC5C,cAAc,mBAAO,CAAC,gGAAmB;AACzC,aAAa,mBAAO,CAAC,yEAAU;AAC/B,mBAAmB,mBAAO,CAAC,yFAAa;AACxC,wBAAwB,mBAAO,CAAC,yGAAoB;;AAEpD;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,aAAa,UAAU;AACvB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;AC1PA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,WAAW,mBAAO,CAAC,cAAI;AACvB,OAAO,gBAAgB,GAAG,mBAAO,CAAC,sCAAgB;AAClD,OAAO,SAAS,GAAG,mBAAO,CAAC,+GAAiB;;AAE5C;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;AC3HA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,WAAW,mBAAO,CAAC,cAAI;AACvB,OAAO,iBAAiB,GAAG,mBAAO,CAAC,+EAAa;AAChD,wBAAwB,mBAAO,CAAC,2FAAmB;;AAEnD;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ,YAAY;AACjC;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC,cAAc,EAAE,SAAS;AAC1D,OAAO;AACP;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iCAAiC,cAAc,EAAE,SAAS;AAC1D,OAAO;AACP;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,cAAc,EAAE,SAAS;AACxD,KAAK;AACL;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK,IAAI;AACT;AACA;;;;;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,WAAW,mBAAO,CAAC,cAAI;AACvB,aAAa,mBAAO,CAAC,kBAAM;AAC3B,oBAAoB,mBAAO,CAAC,2EAAc;AAC1C,aAAa,mBAAO,CAAC,kBAAM;AAC3B,OAAO,UAAU,GAAG,mBAAO,CAAC,+EAAa;AACzC,OAAO,sBAAsB,GAAG,mBAAO,CAAC,+GAAiB;AACzD,wBAAwB,mBAAO,CAAC,2FAAmB;AACnD,cAAc,mBAAO,CAAC,gGAAmB;AACzC,WAAW,mBAAO,CAAC,cAAI;AACvB,iBAAiB,mBAAO,CAAC,4FAAc;;AAEvC;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA,0BAA0B;AAC1B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,KAAK,OAAO,OAAO;AAC3D;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yCAAyC;AACzC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe;AACf;AACA,8BAA8B,EAAE;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,sBAAsB,cAAc,EAAE,SAAS;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,iBAAiB;AACjB;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,SAAS,GAAG,SAAS;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,eAAe,eAAe;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS,EAAE,WAAW,EAAE,IAAI;AACvC,WAAW,SAAS,EAAE,IAAI;;AAE1B;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;AAC7D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA,0BAA0B,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS;AAC9D;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS;AACtD;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA,mCAAmC,SAAS,EAAE,IAAI;AAClD,mCAAmC,SAAS,GAAG,IAAI,EAAE,SAAS;AAC9D;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA;AACA;AACA;;;;;;;;;;;;AC3tBA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,aAAa,mBAAO,CAAC,kBAAM;AAC3B,cAAc,mBAAO,CAAC,oBAAO;AAC7B,OAAO,SAAS,GAAG,mBAAO,CAAC,+GAAiB;AAC5C,wBAAwB,mBAAO,CAAC,2FAAmB;AACnD,sBAAsB,mBAAO,CAAC,mGAAuB;;AAErD;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ,YAAY;AACjC;AACA;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA,qDAAqD,eAAe;AACpE;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qDAAqD,eAAe;AACpE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,OAAO;AACnB;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,oCAAoC;AACpC;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA,2DAA2D,cAAc,GAAG,cAAc;AAC1F;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACjQA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA,UAAU;AACV;AACA,2CAA0C;AAC1C;AACA;AACA;AACA,WAAW,mBAAO,CAAC,kGAAW;AAC9B;AACA,CAAC,EAAC;;AAEF;AACA;AACA,UAAU;AACV;AACA,wCAAuC;AACvC;AACA;AACA;AACA,WAAW,mBAAO,CAAC,4FAAQ;AAC3B;AACA,CAAC,EAAC;;AAEF;AACA;AACA,UAAU;AACV;AACA,wCAAuC;AACvC;AACA;AACA;AACA,WAAW,mBAAO,CAAC,4FAAQ;AAC3B;AACA,CAAC,EAAC;;AAEF;AACA;AACA,UAAU;AACV;AACA,0CAAyC;AACzC;AACA;AACA;AACA,WAAW,mBAAO,CAAC,gGAAU;AAC7B;AACA,CAAC,EAAC;;;;;;;;;;;;ACvDF;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,iBAAiB,mBAAO,CAAC,2EAAW;AACpC,OAAO,UAAU,GAAG,mBAAO,CAAC,+EAAa;AACzC,WAAW,mBAAO,CAAC,cAAI;AACvB,wBAAwB,mBAAO,CAAC,2FAAmB;;AAEnD;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ,YAAY;AACjC;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;;AAEA,0BAA0B,cAAc,EAAE,SAAS;AACnD;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;;;;;;;;;;;AC9Da;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,MAAM,GAAG,sCAAsC;AACtE;AACA,KAAK;AACL,uBAAuB,MAAM,GAAG,YAAY,MAAM,YAAY;AAC9D,KAAK;AACL,mBAAmB,MAAM,GAAG,YAAY;AACxC;AACA,GAAG;AACH,iBAAiB,MAAM,GAAG,iBAAiB;AAC3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,KAAK,GAAG,WAAW,GAAG,wBAAwB;AAC/D,GAAG;AACH;AACA,kBAAkB,KAAK,IAAI,KAAK,GAAG,WAAW,GAAG,wBAAwB;AACzE;;AAEA,4BAA4B,cAAc;AAC1C;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,oBAAoB;;;;;;;;;;;;ACnHpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,mBAAO,CAAC,8HAAoB;AAC3C,eAAe,mBAAO,CAAC,8HAAoB;AAC3C,mBAAO,CAAC,4EAAU;AAClB;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,E;;;;;;;;;;;AC7HD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEa;;AAEb;AACA,gBAAgB,mBAAO,CAAC,gIAAqB;AAC7C,mBAAO,CAAC,4EAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS,wDAA8B;AACvC;AACA;AACA;AACA;;AAEA;AACA,aAAa,mBAAO,CAAC,4IAA2B;AAChD;;AAEA,aAAa,kDAAwB;AACrC,8IAA8I;AAC9I;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAO,CAAC,kBAAM;AAC9B;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,sJAAgC;AACzD,kBAAkB,mBAAO,CAAC,8IAA4B;AACtD,eAAe,mBAAO,CAAC,0IAA0B;AACjD;AACA,qBAAqB,kIAA0B;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAO,CAAC,4EAAU;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yEAAyE,mFAAmF;AAC5J;AACA;AACA,qBAAqB,mBAAO,CAAC,0HAAkB;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sIAAwC;AAChF;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,0HAAkB;AAC/C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+FAA+F;AAC/F,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,4FAA4F;AAC5F,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,sIAAwC;AAC9E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mBAAO,CAAC,4JAAmC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA,mDAAmD,+DAA+D;AAClH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,wIAAyB;AAC9C;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA,C;;;;;;;;;;;AClgCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA,qBAAqB,kIAA0B;AAC/C;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,0HAAkB;AACvC,mBAAO,CAAC,4EAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa,mBAAO,CAAC,oFAAgB;AACrC;AACA;;AAEA;AACA,aAAa,mBAAO,CAAC,4IAA2B;AAChD;;AAEA,aAAa,kDAAwB;AACrC,8IAA8I;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,8IAA4B;AACtD,eAAe,mBAAO,CAAC,0IAA0B;AACjD;AACA,qBAAqB,kIAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAO,CAAC,4EAAU;AAClB;AACA;AACA,qBAAqB,mBAAO,CAAC,0HAAkB;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,0HAAkB;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,sDAAsD;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,E;;;;;;;;;;;AChoBa;;AAEb;AACA,2CAA2C,2BAA2B,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;AAC1O,8BAA8B,uCAAuC,oDAAoD;AACzH,oCAAoC,+DAA+D,sCAAsC,0BAA0B,+CAA+C,yCAAyC,qEAAqE,EAAE,qDAAqD;AACvX,eAAe,mBAAO,CAAC,yIAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA;AACA,yFAAyF;AACzF;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,mD;;;;;;;;;;;ACnLa;;AAEb,0CAA0C,gCAAgC,oCAAoC,oDAAoD,6DAA6D,gEAAgE,EAAE,mCAAmC,EAAE,aAAa;AACnV,gCAAgC,gBAAgB,sBAAsB,OAAO,uDAAuD,6DAA6D,2CAA2C,EAAE,mKAAmK,kFAAkF,EAAE,EAAE,EAAE,eAAe;AACxf,2CAA2C,2BAA2B,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;AAC1O,iDAAiD,0CAA0C,0DAA0D,EAAE;AACvJ,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2EAA2E,EAAE;AAC3U,6DAA6D,sEAAsE,8DAA8D,kDAAkD,kBAAkB,EAAE,oBAAoB;AAC3R,8BAA8B,uCAAuC,oDAAoD;AACzH,oCAAoC,+DAA+D,sCAAsC,0BAA0B,+CAA+C,yCAAyC,qEAAqE,EAAE,qDAAqD;AACvX,eAAe,mBAAO,CAAC,sBAAQ;AAC/B;AACA,gBAAgB,mBAAO,CAAC,kBAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA,yDAAyD,cAAc;AACvE;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,CAAC,G;;;;;;;;;;;ACtLY;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wFAAwF;AACxF;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;AC/FA;AACA;;AAEa;;AAEb,iCAAiC,mKAA2D;AAC5F;AACA;AACA;AACA;AACA;AACA,uEAAuE,aAAa;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qB;;;;;;;;;;;ACrFa;;AAEb,4EAA4E,MAAM,0BAA0B,wBAAwB,EAAE,gBAAgB,eAAe,QAAQ,EAAE,iBAAiB,gBAAgB,EAAE,OAAO,4CAA4C,EAAE;AACvQ,gCAAgC,qBAAqB,mCAAmC,gDAAgD,gCAAgC,wBAAwB,wEAAwE,EAAE,uBAAuB,uEAAuE,EAAE,kBAAkB,EAAE,EAAE,GAAG;AACnY,0CAA0C,gCAAgC,oCAAoC,oDAAoD,6DAA6D,gEAAgE,EAAE,mCAAmC,EAAE,aAAa;AACnV,gCAAgC,gBAAgB,sBAAsB,OAAO,uDAAuD,6DAA6D,2CAA2C,EAAE,mKAAmK,kFAAkF,EAAE,EAAE,EAAE,eAAe;AACxf,2CAA2C,2BAA2B,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;AAC1O,8BAA8B,uCAAuC,oDAAoD;AACzH,oCAAoC,+DAA+D,sCAAsC,0BAA0B,+CAA+C,yCAAyC,qEAAqE,EAAE,qDAAqD;AACvX,2BAA2B,6JAAqD;AAChF;AACA;AACA;AACA;AACA,GAAG,kGAAkG,uFAAuF;AAC5L;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnDA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wIAAgC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,+BAA+B,mBAAO,CAAC,yIAAiB;AACxD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,aAAa;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,0B;;;;;;;;;;;ACrFa;;AAEb,4BAA4B,8JAAsD;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;ACrBA,4DAAkC;;;;;;;;;;;ACAlC,aAAa,mBAAO,CAAC,sBAAQ;AAC7B;AACA;AACA;AACA,EAAE,qBAAqB;AACvB,CAAC;AACD,YAAY,2KAAqD;AACjE,EAAE,cAAc;AAChB,EAAE,gBAAgB;AAClB,EAAE,6KAAuD;AACzD,EAAE,uKAAmD;AACrD,EAAE,gLAAyD;AAC3D,EAAE,sLAA6D;AAC/D,EAAE,yMAAqE;AACvE,EAAE,+LAAgE;AAClE;;;;;;;;;;;;;;;;;;;;;;ACfA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA,WAAW,oBAAoB,WAAW,WAAW,gBAAgB;AACrE;AACA;AACA;AACA;AACA,WAAW,mBAAmB,WAAW,WAAW,eAAe;AACnE;AACA;AACA;AACA;AACA,WAAW,mBAAmB,WAAW,WAAW,eAAe;AACnE;AACA;AACA;AACA,0BAA0B;AAC1B,4BAA4B;AAC5B,4BAA4B;AAC5B,2BAA2B;AAC3B,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB,mBAAmB;AACnB;AACA,yBAAyB,GAAG;AAC5B;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA,cAAc,MAAM,GAAG,2BAA2B,KAAK,MAAM;AAC7D;;AAEA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA,gBAAgB,MAAM;AACtB;;AAEA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;;AAEA,eAAe,MAAM,GAAG,MAAM;AAC9B;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA,gBAAgB,eAAe;AAC/B;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,QAAQ;AACvB;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA,iBAAiB,oBAAoB,GAAG,QAAQ;AAChD;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;;AAEA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AC/LA,OAAO,mCAAmC,GAAG,mBAAO,CAAC,6EAAS;AAC9D,YAAY,aAAoB,IAAI,CAAa;AACjD,eAAe,mBAAO,CAAC,qEAAQ;AAC/B,eAAe,mBAAO,CAAC,sEAAQ;AAC/B;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,0BAA0B,sBAAsB;AAChD,iCAAiC,eAAe,GAAG,WAAW,IAAI,aAAa,GAAG,6BAA6B;AAC/G;AACA,KAAK;AACL;AACA,CAAC;;AAED;;;;;;;;;;;AChFA;AACA;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,oCAAe;AAC5C,aAAa,mBAAO,CAAC,kBAAM;AAC3B,mBAAmB,mBAAO,CAAC,kGAAkB;AAC7C,eAAe,mBAAO,CAAC,yDAAW;AAClC;AACA;AACA,iBAAiB,mBAAO,CAAC,mGAAgC;;AAEzD;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,oCAAoC,GAAG,mBAAO,CAAC,iEAAkB;AACxE;;AAEA;AACA;AACA;AACA,4DAA4D,aAAa;AACzE;AACA,gEAAgE,aAAa;AAC7E;AACA;AACA;AACA;AACA,8EAA8E,aAAa;AAC3F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0EAA0E,KAAK,iBAAiB,OAAO;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,4BAA4B;AAC5C,kBAAkB;AAClB,kBAAkB;AAClB,iBAAiB;;AAEjB;AACA,SAAS,aAAa;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,MAAM;AACnC;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,MAAM;AAC9B;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,cAAc;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mEAAmE,QAAQ;AAC3E;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA,gCAAgC,kCAAkC;AAClE;AACA;AACA;AACA;AACA,gDAAgD,MAAM;AACtD;AACA;AACA,qCAAqC,MAAM;AAC3C,OAAO;AACP,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,gCAAgC,cAAc,cAAc,+BAA+B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;;AAEP,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnRA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,qDAAqD,mBAAO,CAAC,qEAAU,GAAG,mBAAO,CAAC,2EAAa;;AAE/F;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;ACzCD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;;AAEA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,yCAAyC,mBAAO,CAAC,qEAAU,GAAG,mBAAO,CAAC,2EAAa,GAAG,mBAAO,CAAC,yFAAoB;AAClH;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;;;;;;ACrpBD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA,KAAK;;AAEL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChCA,UAAU,mBAAO,CAAC,qFAAY;;AAE9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,yCAAyC,aAAa;AACtD,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;;AAEA,qBAAqB,mBAAmB,EAAE;AAC1C;;AAEA;AACA;;;;;;;;;;;AClHA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,cAAc;AACnC;AACA;AACA,KAAK;;AAEL;AACA;AACA,0BAA0B,OAAO;AACjC;AACA;AACA,KAAK;;AAEL;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA,KAAK;;AAEL;AACA;AACA,iCAAiC,uBAAuB;AACxD;AACA;AACA,KAAK;;AAEL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA,KAAK;;AAEL;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;AC/FD;AACA;;AAEA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,+HAA+H;AAC/H;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA,6BAA6B,IAAI;AACjC,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB,6BAA6B,UAAU;AACvC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;AACrC,aAAa,oCAAoC;AACjD;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE,kEAAkE;AAClE,kEAAkE;AAClE,kEAAkE;AAClE,kEAAkE;AAClE,kEAAkE;AAClE,kEAAkE;AAClE,uBAAuB,KAAK;AAC5B,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,mCAAmC;AACnC,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D,8DAA8D;AAC9D,8DAA8D;AAC9D,8DAA8D;AAC9D,8DAA8D;AAC9D,8DAA8D;AAC9D,8DAA8D;AAC9D;AACA,uBAAuB,KAAK;AAC5B,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;;AAEA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,gDAAgD;AAChD,8CAA8C;AAC9C,+CAA+C;AAC/C;AACA,uBAAuB,KAAK;AAC5B;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA,iDAAiD;AACjD;AACA;AACA,yBAAyB,OAAO;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,qDAAqD;AACrD;AACA,uBAAuB,YAAY;AACnC,uBAAuB,YAAY;AACnC,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;;;AAGb;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,kDAAkD;AAClD;AACA;AACA,oDAAoD;AACpD,qDAAqD;AACrD;AACA;AACA,kDAAkD;AAClD,mDAAmD;AACnD;AACA;AACA,kDAAkD;AAClD,mDAAmD;AACnD;AACA;AACA,iDAAiD;AACjD,kDAAkD;AAClD;AACA;AACA,gDAAgD;AAChD;AACA;AACA,oDAAoD;AACpD;AACA;AACA,iDAAiD;AACjD;AACA;AACA,mDAAmD;AACnD;AACA;AACA,mDAAmD;AACnD;AACA;AACA,wDAAwD;AACxD;AACA,uBAAuB,KAAK;AAC5B,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B;AAC3B,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,4DAA4D;AAC5D,0DAA0D;AAC1D;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA,uBAAuB,KAAK;AAC5B,uBAAuB,KAAK;AAC5B,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE,oDAAoD;AACpD,8CAA8C;AAC9C,kDAAkD;AAClD,kDAAkD;AAClD,qDAAqD;AACrD,qDAAqD;AACrD,qDAAqD;AACrD,qDAAqD;AACrD;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA,+DAA+D;AAC/D,yEAAyE,KAAK;AAC9E;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG,KAAK;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,OAAO;AACpD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,oBAAoB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,qBAAqB;AACrB,sCAAsC;AACtC;AACA,2HAA2H;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,iBAAiB;AACjB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,wCAAwC,mBAAO,CAAC,qEAAU,GAAG,mBAAO,CAAC,2EAAa,GAAG,mBAAO,CAAC,iFAAgB;;AAE7G;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;;;;;;AC36BD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD,wBAAwB;AACxB,4BAA4B;AAC5B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,OAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;;AAGA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,gDAAgD;AAChD;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC;AACA;AACA,6DAA6D,oBAAoB;AACjF,8CAA8C,yBAAyB;AACvE,6DAA6D;AAC7D,uDAAuD;AACvD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;;;AAGA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,8BAA8B;AAC/E,iDAAiD,8BAA8B;AAC/E,4CAA4C,yBAAyB;AACrE,4CAA4C,yBAAyB;AACrE;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC;AACA;AACA,KAAK,MAAM,EAIN;AACL,CAAC;;;;;;;;;;;;;;ACz5BD,mHAAwC,C;;;;;;;;;;ACAxC;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD,OAAO;AAC5D;AACA;AACA,2BAA2B;AAC3B;AACA,SAAS;;AAET;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,4CAA4C,mBAAO,CAAC,qEAAU;;AAE9D;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;;;;;;AC1FD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,oBAAoB,OAAO,EAAE,OAAO,EAAE,OAAO,sBAAsB;AACnE,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,kDAAkD,OAAO;AACzD;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa;AACb;AACA,kCAAkC;AAClC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA,2BAA2B;AAC3B;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA,sDAAsD,qBAAqB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD,OAAO;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,4CAA4C,mBAAO,CAAC,yEAAY;;AAEhE;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC,a;;;;;;;;;;AC3hBD,mHAAyC,C;;;;;;;;;;ACAzC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,4CAA4C,mBAAO,CAAC,qEAAU,GAAG,mBAAO,CAAC,2EAAa,GAAG,mBAAO,CAAC,yFAAoB;;AAErH;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;;;;;;ACzPD;AACA;;AAEA;;;AAGA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,yCAAyC,uBAAuB;AAChE;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;;AAEA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,8DAA8D,QAAQ;AACtE;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA,SAAS;;;AAGT;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,sCAAsC,mBAAO,CAAC,qEAAU,wBAAwB,mBAAO,CAAC,yEAAY,YAAY,mBAAO,CAAC,2EAAa,YAAY,mBAAO,CAAC,iFAAgB;;AAEzK;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;;;;;;AChQD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACpBA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb,+CAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,2DAA2D,eAAe;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,2DAA2D,mBAAmB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,uCAAuC,mBAAO,CAAC,qEAAU;;AAEzD;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;AClfD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uEAAuE,YAAY;AACnF;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,qBAAqB;;;AAGrB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb,SAAS;;AAET;;AAEA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,qBAAqB;;;AAGrB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;;AAGrB;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,kDAAkD;AACxG,6BAA6B;AAC7B;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;;AAE7B;;AAEA;AACA,iCAAiC;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;;AAGrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,yCAAyC,mBAAO,CAAC,qEAAU;AAC3D,qCAAqC,mBAAO,CAAC,yEAAY;AACzD,0BAA0B,mBAAO,CAAC,2EAAa;AAC/C,0BAA0B,mBAAO,CAAC,iFAAgB;AAClD,0BAA0B,mBAAO,CAAC,mFAAiB;AACnD;;AAEA;AACA,KAAK,MAAM,EAeN;;AAEL,CAAC;;;;;;;;;;;;;;;;;ACt5BD,gBAAgB,mBAAO,CAAC,4EAAc;AACtC,WAAW,mBAAO,CAAC,kEAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACNA,gBAAgB,mBAAO,CAAC,4EAAc;AACtC,iBAAiB,mBAAO,CAAC,8EAAe;AACxC,cAAc,mBAAO,CAAC,wEAAY;AAClC,cAAc,mBAAO,CAAC,wEAAY;AAClC,cAAc,mBAAO,CAAC,wEAAY;;AAElC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA,qBAAqB,mBAAO,CAAC,sFAAmB;AAChD,sBAAsB,mBAAO,CAAC,wFAAoB;AAClD,mBAAmB,mBAAO,CAAC,kFAAiB;AAC5C,mBAAmB,mBAAO,CAAC,kFAAiB;AAC5C,mBAAmB,mBAAO,CAAC,kFAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA,gBAAgB,mBAAO,CAAC,4EAAc;AACtC,WAAW,mBAAO,CAAC,kEAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACNA,oBAAoB,mBAAO,CAAC,oFAAkB;AAC9C,qBAAqB,mBAAO,CAAC,sFAAmB;AAChD,kBAAkB,mBAAO,CAAC,gFAAgB;AAC1C,kBAAkB,mBAAO,CAAC,gFAAgB;AAC1C,kBAAkB,mBAAO,CAAC,gFAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA,gBAAgB,mBAAO,CAAC,4EAAc;AACtC,WAAW,mBAAO,CAAC,kEAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACNA,gBAAgB,mBAAO,CAAC,4EAAc;AACtC,WAAW,mBAAO,CAAC,kEAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACNA,eAAe,mBAAO,CAAC,0EAAa;AACpC,kBAAkB,mBAAO,CAAC,gFAAgB;AAC1C,kBAAkB,mBAAO,CAAC,gFAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,gBAAgB,mBAAO,CAAC,4EAAc;AACtC,iBAAiB,mBAAO,CAAC,8EAAe;AACxC,kBAAkB,mBAAO,CAAC,gFAAgB;AAC1C,eAAe,mBAAO,CAAC,0EAAa;AACpC,eAAe,mBAAO,CAAC,0EAAa;AACpC,eAAe,mBAAO,CAAC,0EAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,WAAW,mBAAO,CAAC,kEAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACLA,WAAW,mBAAO,CAAC,kEAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACLA,gBAAgB,mBAAO,CAAC,4EAAc;AACtC,WAAW,mBAAO,CAAC,kEAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,kBAAkB,mBAAO,CAAC,gFAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,gBAAgB,mBAAO,CAAC,4EAAc;AACtC,kBAAkB,mBAAO,CAAC,8EAAe;AACzC,cAAc,mBAAO,CAAC,sEAAW;AACjC,eAAe,mBAAO,CAAC,wEAAY;AACnC,cAAc,mBAAO,CAAC,wEAAY;AAClC,mBAAmB,mBAAO,CAAC,gFAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA,SAAS,mBAAO,CAAC,4DAAM;;AAEvB;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,eAAe,mBAAO,CAAC,0EAAa;AACpC,YAAY,mBAAO,CAAC,oEAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,EAAE;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,gBAAgB,mBAAO,CAAC,4EAAc;AACtC,cAAc,mBAAO,CAAC,sEAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA,aAAa,mBAAO,CAAC,sEAAW;AAChC,gBAAgB,mBAAO,CAAC,4EAAc;AACtC,qBAAqB,mBAAO,CAAC,sFAAmB;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACZA,oBAAoB,mBAAO,CAAC,oFAAkB;AAC9C,gBAAgB,mBAAO,CAAC,4EAAc;AACtC,oBAAoB,mBAAO,CAAC,oFAAkB;;AAE9C;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA,iBAAiB,mBAAO,CAAC,8EAAe;AACxC,mBAAmB,mBAAO,CAAC,gFAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,sBAAsB,mBAAO,CAAC,wFAAoB;AAClD,mBAAmB,mBAAO,CAAC,gFAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA,YAAY,mBAAO,CAAC,oEAAU;AAC9B,kBAAkB,mBAAO,CAAC,gFAAgB;AAC1C,iBAAiB,mBAAO,CAAC,8EAAe;AACxC,mBAAmB,mBAAO,CAAC,kFAAiB;AAC5C,aAAa,mBAAO,CAAC,sEAAW;AAChC,cAAc,mBAAO,CAAC,sEAAW;AACjC,eAAe,mBAAO,CAAC,wEAAY;AACnC,mBAAmB,mBAAO,CAAC,gFAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClFA,YAAY,mBAAO,CAAC,oEAAU;AAC9B,kBAAkB,mBAAO,CAAC,gFAAgB;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACXA,iBAAiB,mBAAO,CAAC,4EAAc;AACvC,eAAe,mBAAO,CAAC,0EAAa;AACpC,eAAe,mBAAO,CAAC,wEAAY;AACnC,eAAe,mBAAO,CAAC,0EAAa;;AAEpC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9CA,iBAAiB,mBAAO,CAAC,8EAAe;AACxC,eAAe,mBAAO,CAAC,wEAAY;AACnC,mBAAmB,mBAAO,CAAC,gFAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3DA,kBAAkB,mBAAO,CAAC,gFAAgB;AAC1C,0BAA0B,mBAAO,CAAC,gGAAwB;AAC1D,eAAe,mBAAO,CAAC,wEAAY;AACnC,cAAc,mBAAO,CAAC,sEAAW;AACjC,eAAe,mBAAO,CAAC,wEAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9BA,kBAAkB,mBAAO,CAAC,gFAAgB;AAC1C,iBAAiB,mBAAO,CAAC,8EAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7BA,kBAAkB,mBAAO,CAAC,gFAAgB;AAC1C,mBAAmB,mBAAO,CAAC,kFAAiB;AAC5C,8BAA8B,mBAAO,CAAC,wGAA4B;;AAElE;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,kBAAkB,mBAAO,CAAC,gFAAgB;AAC1C,UAAU,mBAAO,CAAC,8DAAO;AACzB,YAAY,mBAAO,CAAC,kEAAS;AAC7B,YAAY,mBAAO,CAAC,oEAAU;AAC9B,yBAAyB,mBAAO,CAAC,8FAAuB;AACxD,8BAA8B,mBAAO,CAAC,wGAA4B;AAClE,YAAY,mBAAO,CAAC,oEAAU;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA,cAAc,mBAAO,CAAC,wEAAY;;AAElC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA,aAAa,mBAAO,CAAC,sEAAW;AAChC,eAAe,mBAAO,CAAC,0EAAa;AACpC,cAAc,mBAAO,CAAC,sEAAW;AACjC,eAAe,mBAAO,CAAC,wEAAY;;AAEnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA,eAAe,mBAAO,CAAC,0EAAa;AACpC,oBAAoB,mBAAO,CAAC,oFAAkB;AAC9C,wBAAwB,mBAAO,CAAC,4FAAsB;AACtD,eAAe,mBAAO,CAAC,0EAAa;AACpC,gBAAgB,mBAAO,CAAC,4EAAc;AACtC,iBAAiB,mBAAO,CAAC,8EAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACZA,cAAc,mBAAO,CAAC,sEAAW;AACjC,YAAY,mBAAO,CAAC,oEAAU;AAC9B,mBAAmB,mBAAO,CAAC,kFAAiB;AAC5C,eAAe,mBAAO,CAAC,wEAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA,WAAW,mBAAO,CAAC,kEAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACLA,UAAU,mBAAO,CAAC,gEAAQ;AAC1B,WAAW,mBAAO,CAAC,gEAAQ;AAC3B,iBAAiB,mBAAO,CAAC,8EAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClBA,eAAe,mBAAO,CAAC,0EAAa;AACpC,gBAAgB,mBAAO,CAAC,4EAAc;AACtC,eAAe,mBAAO,CAAC,0EAAa;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnFA,aAAa,mBAAO,CAAC,sEAAW;AAChC,iBAAiB,mBAAO,CAAC,8EAAe;AACxC,SAAS,mBAAO,CAAC,4DAAM;AACvB,kBAAkB,mBAAO,CAAC,gFAAgB;AAC1C,iBAAiB,mBAAO,CAAC,8EAAe;AACxC,iBAAiB,mBAAO,CAAC,8EAAe;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/GA,iBAAiB,mBAAO,CAAC,8EAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzFA;AACA;;AAEA;;;;;;;;;;;ACHA,qBAAqB,mBAAO,CAAC,sFAAmB;AAChD,iBAAiB,mBAAO,CAAC,8EAAe;AACxC,WAAW,mBAAO,CAAC,gEAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,gBAAgB,mBAAO,CAAC,4EAAc;;AAEtC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,yBAAyB,mBAAO,CAAC,8FAAuB;AACxD,WAAW,mBAAO,CAAC,gEAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvBA,mBAAmB,mBAAO,CAAC,kFAAiB;AAC5C,eAAe,mBAAO,CAAC,0EAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA,aAAa,mBAAO,CAAC,sEAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7CA,kBAAkB,mBAAO,CAAC,gFAAgB;AAC1C,gBAAgB,mBAAO,CAAC,0EAAa;;AAErC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;AC7BA,eAAe,mBAAO,CAAC,0EAAa;AACpC,UAAU,mBAAO,CAAC,gEAAQ;AAC1B,cAAc,mBAAO,CAAC,wEAAY;AAClC,UAAU,mBAAO,CAAC,gEAAQ;AAC1B,cAAc,mBAAO,CAAC,wEAAY;AAClC,iBAAiB,mBAAO,CAAC,8EAAe;AACxC,eAAe,mBAAO,CAAC,0EAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACZA,eAAe,mBAAO,CAAC,0EAAa;AACpC,kBAAkB,mBAAO,CAAC,8EAAe;AACzC,cAAc,mBAAO,CAAC,sEAAW;AACjC,cAAc,mBAAO,CAAC,wEAAY;AAClC,eAAe,mBAAO,CAAC,wEAAY;AACnC,YAAY,mBAAO,CAAC,oEAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtCA,mBAAmB,mBAAO,CAAC,kFAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA,mBAAmB,mBAAO,CAAC,kFAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7BA,mBAAmB,mBAAO,CAAC,kFAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA,mBAAmB,mBAAO,CAAC,kFAAiB;;AAE5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,cAAc,mBAAO,CAAC,sEAAW;AACjC,eAAe,mBAAO,CAAC,wEAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA,iBAAiB,mBAAO,CAAC,8EAAe;;AAExC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACjBA,eAAe,mBAAO,CAAC,wEAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACZA,mBAAmB,mBAAO,CAAC,kFAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClCA,mBAAmB,mBAAO,CAAC,kFAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AClBA,mBAAmB,mBAAO,CAAC,kFAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,mBAAmB,mBAAO,CAAC,kFAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,WAAW,mBAAO,CAAC,kEAAS;AAC5B,gBAAgB,mBAAO,CAAC,4EAAc;AACtC,UAAU,mBAAO,CAAC,gEAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,8EAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,8EAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,8EAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,8EAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA,cAAc,mBAAO,CAAC,sEAAW;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,gBAAgB,mBAAO,CAAC,4EAAc;;AAEtC;AACA;;AAEA;;;;;;;;;;;ACLA,cAAc,mBAAO,CAAC,wEAAY;;AAElC;AACA;;AAEA;;;;;;;;;;;;ACLA,iBAAiB,mBAAO,CAAC,8EAAe;;AAExC;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA,iBAAiB,mBAAO,CAAC,8EAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACRA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;ACjBA,gBAAgB,mBAAO,CAAC,4EAAc;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA,gBAAgB,mBAAO,CAAC,4EAAc;AACtC,UAAU,mBAAO,CAAC,gEAAQ;AAC1B,eAAe,mBAAO,CAAC,0EAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA,oBAAoB,mBAAO,CAAC,oFAAkB;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;;;;;;;;;;;AC1BA,eAAe,mBAAO,CAAC,wEAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,eAAe;AACf,cAAc;AACd,cAAc;AACd,gBAAgB;AAChB,eAAe;AACf;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,KAA0B;;AAE9C;AACA,kCAAkC,QAAa;;AAE/C;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,EAAE;AACf,aAAa,QAAQ;AACrB;AACA,aAAa,SAAS;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA,kCAAkC,6BAA6B,EAAE;AACjE;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,aAAa;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,aAAa,QAAQ;AACrB;AACA;AACA,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,MAAM;AACnB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB,aAAa,OAAO,WAAW;AAC/B,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+CAA+C;AAClF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,aAAa,EAAE;AACf,aAAa,MAAM;AACnB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,KAAK;AAClB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA,QAAQ,qCAAqC;AAC7C,QAAQ,qCAAqC;AAC7C,QAAQ;AACR;AACA;AACA,qCAAqC,2BAA2B,EAAE;AAClE;AACA;AACA;AACA,yBAAyB,kCAAkC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,EAAE;AACf,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA,QAAQ,+BAA+B;AACvC,QAAQ,+BAA+B;AACvC,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,SAAS;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,SAAS;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,QAAQ,8BAA8B;AACtC,QAAQ;AACR;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,cAAc,OAAO;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,+CAA+C;AACvD,QAAQ;AACR;AACA;AACA;AACA,qBAAqB,oCAAoC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA,QAAQ,8CAA8C;AACtD,QAAQ;AACR;AACA;AACA,kCAAkC,kBAAkB,EAAE;AACtD;AACA;AACA;AACA,sBAAsB,4BAA4B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,EAAE;AACjB;AACA;AACA;AACA,QAAQ,+CAA+C;AACvD,QAAQ,gDAAgD;AACxD,QAAQ;AACR;AACA;AACA,gCAAgC,mBAAmB,EAAE;AACrD;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iBAAiB;AAC7B;AACA;AACA;AACA,QAAQ,mBAAmB;AAC3B,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,EAAE;AACf,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,eAAe,yBAAyB;AACxC;AACA;AACA,MAAM,IAAI;AACV,YAAY,8BAA8B;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oBAAoB;AACjC,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,cAAc,OAAO;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mCAAmC;AAC3C,QAAQ;AACR;AACA;AACA;AACA,oBAAoB,oCAAoC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,yBAAyB;AACtC;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA,QAAQ,8BAA8B;AACtC,QAAQ,8BAA8B;AACtC,QAAQ,8BAA8B;AACtC,QAAQ;AACR;AACA;AACA,mCAAmC,eAAe,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd,KAAK;AACL;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,EAAE;AACf,aAAa,KAAK;AAClB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,KAAK;AAClB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,aAAa,KAAK;AAClB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,EAAE;AACjB;AACA;AACA;AACA,qBAAqB,SAAS,GAAG,SAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA,mBAAmB;AACnB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA,+BAA+B,kBAAkB,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA,gDAAgD,kBAAkB,EAAE;AACpE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA,mBAAmB;AACnB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,MAAM;AACrB;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,YAAY;AACZ;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,YAAY;AACZ;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB,eAAe,OAAO;AACtB;AACA;AACA;AACA,iBAAiB,SAAS,GAAG,SAAS,GAAG,SAAS;AAClD,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,aAAa;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA,mBAAmB,OAAO,SAAS;AACnC,2BAA2B,gBAAgB,SAAS,GAAG;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,qBAAqB;AAClC,eAAe,OAAO;AACtB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,YAAY;AACZ;AACA;AACA,8BAA8B;AAC9B,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,aAAa;AAC1B,aAAa,EAAE;AACf,eAAe,EAAE;AACjB;AACA;AACA,mBAAmB,QAAQ,OAAO,+BAA+B,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,EAAE;AACjB;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,SAAS;AACxB;AACA;AACA;AACA,QAAQ,8CAA8C;AACtD,QAAQ;AACR;AACA;AACA;AACA,iCAAiC,mCAAmC;AACpE,aAAa,8CAA8C;AAC3D;AACA;AACA;AACA,aAAa,4BAA4B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA,QAAQ,yBAAyB;AACjC,QAAQ;AACR;AACA;AACA,kCAAkC,iBAAiB;AACnD,aAAa,yBAAyB;AACtC;AACA;AACA,8CAA8C,SAAS,cAAc,SAAS;AAC9E,aAAa,yBAAyB,GAAG,yBAAyB;AAClE;AACA;AACA,gCAAgC;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,aAAa,OAAO;AACpB,aAAa,OAAO,YAAY;AAChC,aAAa,QAAQ;AACrB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB,GAAG,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,qDAAqD;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG,MAAM,iBAAiB;;AAE1B;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA,MAAM,IAA0E;AAChF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,mCAAO;AACX;AACA,KAAK;AAAA,kGAAC;AACN;AACA;AACA,OAAO,EASJ;AACH,CAAC;;;;;;;;;;;ACpyHD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA,cAAc,mBAAO,CAAC,wEAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB,QAAQ,OAAO,SAAS,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChCA,gBAAgB,mBAAO,CAAC,4EAAc;AACtC,cAAc,mBAAO,CAAC,wEAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,gBAAgB,SAAS,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA,sBAAsB,mBAAO,CAAC,wFAAoB;AAClD,mBAAmB,mBAAO,CAAC,gFAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;;AAEA;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,4EAAc;AACvC,eAAe,mBAAO,CAAC,wEAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,WAAW,mBAAO,CAAC,kEAAS;AAC5B,gBAAgB,mBAAO,CAAC,0EAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrCA,iBAAiB,mBAAO,CAAC,8EAAe;AACxC,eAAe,mBAAO,CAAC,wEAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,iBAAiB,mBAAO,CAAC,8EAAe;AACxC,mBAAmB,mBAAO,CAAC,gFAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,uBAAuB,mBAAO,CAAC,0FAAqB;AACpD,gBAAgB,mBAAO,CAAC,4EAAc;AACtC,eAAe,mBAAO,CAAC,0EAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,oBAAoB,mBAAO,CAAC,oFAAkB;AAC9C,eAAe,mBAAO,CAAC,0EAAa;AACpC,kBAAkB,mBAAO,CAAC,8EAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA,eAAe,mBAAO,CAAC,0EAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA,mBAAmB,mBAAO,CAAC,kFAAiB;AAC5C,uBAAuB,mBAAO,CAAC,0FAAqB;AACpD,YAAY,mBAAO,CAAC,oEAAU;AAC9B,YAAY,mBAAO,CAAC,oEAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA,MAAM,OAAO,SAAS,EAAE;AACxB,MAAM,OAAO,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,mBAAmB,mBAAO,CAAC,kFAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA,eAAe,mBAAO,CAAC,0EAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,mBAAmB,mBAAO,CAAC,kFAAiB;AAC5C,eAAe,mBAAO,CAAC,0EAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS,GAAG,SAAS,GAAG,SAAS;AAC/C,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9BA;AACA,cAAc,mBAAO,CAAC,+DAAO;AAC7B,aAAa,+FAAuB;AACpC,iBAAiB,mBAAO,CAAC,uEAAW;AACpC,YAAY,8FAAsB;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,cAAc;;AAEjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;AC/JD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,cAAc;AACd,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjFD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtKD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrLD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvMD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChHD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7DD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClLD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChKD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9GD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9LD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5GD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/DD;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gCAAgC;AAChC,+BAA+B;AAC/B,+BAA+B;AAC/B,8BAA8B;AAC9B;AACA;AACA;AACA,yDAAyD;AACzD;AACA,0DAA0D;AAC1D;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3HD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpID;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClLD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtKD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI,IAAI,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxGD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9JD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8CAA8C,IAAI,IAAI,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9FD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yCAAyC,IAAI;AAC7C;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/HD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,IAAI;AAC3D,6DAA6D,IAAI;AACjE,4DAA4D,IAAI;AAChE,kEAAkE,IAAI;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9GD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrND;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrGD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/ND;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/ED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3JD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrLD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,gCAAgC;AAChC,aAAa;AACb,+BAA+B;AAC/B,aAAa;AACb,kCAAkC;AAClC,aAAa;AACb,kCAAkC;AAClC,aAAa;AACb,+BAA+B;AAC/B,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClGD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/HD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;ACnGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjLD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7DD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/DD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClID;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/GD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9GD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,qEAAW;AACrE,GAAG,CACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7GD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gG;;;;;;;;;;;ACnSA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAA4D;AAChE,IAAI,CACyB;AAC7B,CAAC,qBAAqB;;AAEtB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wGAAwG,IAAI,wBAAwB,IAAI,uDAAuD,IAAI;AACnM,qEAAqE,IAAI;AACzE,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0CAA0C,YAAY;AACtD;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,IAAI;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,EAAE;AACvB,qBAAqB,EAAE;AACvB,0BAA0B,EAAE;AAC5B;AACA;AACA;AACA,wBAAwB,IAAI;AAC5B,wBAAwB,IAAI;AAC5B,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA,mBAAmB,MAAM,wEAAwE,MAAM,mBAAmB,MAAM,qBAAqB,MAAM,EAAE,IAAI;AACjK;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,OAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB;AACpB,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAO;AACxC,gBAAgB,iGAAe,IAAW,OAAO,CAAC;AAClD;AACA,aAAa;AACb;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA;AACA,qCAAqC,EAAE;AACvC,+BAA+B,EAAE;AACjC,iCAAiC,EAAE;AACnC,+BAA+B,EAAE;AACjC,6BAA6B,EAAE,IAAI,EAAE;AACrC,4BAA4B,EAAE;AAC9B,mCAAmC,GAAG;AACtC,6BAA6B,EAAE;AAC/B,+BAA+B,EAAE,IAAI,EAAE;AACvC,8BAA8B,EAAE,IAAI,EAAE;AACtC,4BAA4B,EAAE;AAC9B,2BAA2B,EAAE;AAC7B,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,IAAI,0DAA0D,IAAI,qEAAqE,EAAE;AACjM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gBAAgB;AACnC;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC,kBAAkB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,cAAc;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,2GAA2G;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,mBAAmB;AACxC;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;ACpjLD,2BAA2B,mBAAO,CAAC,mEAAO,E;;;;;;;;;;;ACA7B;AACb,WAAW,mBAAO,CAAC,2EAAY;AAC/B;AACA;AACA;AACA;AACA,mBAAmB,wDAA8B;;;AAGjD;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,4DAA4D,yBAAyB;AACrF;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,qCAAqC,mBAAmB,yBAAyB;AACjF;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC,E;;;;;;;;;;;AC7LD;AACa;AACb,WAAW,mBAAO,CAAC,4EAAa;AAChC;AACA;;AAEA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA,KAAK;;AAEL;AACA;AACA,0DAA0D;AAC1D;AACA,KAAK;AACL,0BAA0B,+CAA+C;AACzE;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA,aAAa;;AAEb;AACA;AACA,6DAA6D,2BAA2B,iGAAiG;AACzL;AACA,aAAa;AACb;AACA,+EAA+E;AAC/E;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED,sBAAsB;AACtB,qBAAqB,iB;;;;;;;;;;;ACzErB;AACa;AACb,WAAW,mBAAO,CAAC,4EAAa;AAChC,aAAa,mBAAO,CAAC,8EAAW;AAChC,wBAAwB,mBAAO,CAAC,iGAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAO,CAAC,oEAAS;AAC7B,aAAa,mBAAO,CAAC,+EAAU;AAC/B;AACA;AACA;;;AAGA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,KAAK;AACL;AACA;AACA,4DAA4D;AAC5D;AACA,KAAK;;AAEL;AACA;AACA,0DAA0D;AAC1D;AACA,KAAK;AACL;AACA;AACA,0CAA0C,gCAAgC;AAC1E;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;;AAED,aAAa;AACb;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2GAA2G,sBAAsB;AAC1J;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA,wIAAoD;;;;;;;;;;;;;;ACrMpD,WAAW,mBAAO,CAAC,4EAAa;AAChC;AACA;AACA;AACA;AACA,gBAAgB,8GAA6B;AAC7C,wBAAwB,mBAAO,CAAC,8FAAsB;AACtD,aAAa,mBAAO,CAAC,8EAAW;;AAEhC;AACA;AACA,uEAAuE;AACvE,4BAA4B;;AAE5B;AACA,uEAAuE;AACvE,KAAK;AACL,+CAA+C,oBAAoB,2BAA2B,sBAAsB;AACpH;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,yHAAyH;AACzH;AACA;AACA,6BAA6B;AAC7B,eAAe;AACf;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,KAAK;AACL;AACA;AACA;AACA,4DAA4D;AAC5D;AACA,KAAK;;AAEL;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,KAAK;AACL;AACA;AACA,yDAAyD;AACzD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA,0BAA0B;AAC1B,uCAAuC;AACvC,sCAAsC;AACtC,6CAA6C,kBAAkB,qCAAqC,aAAa,2GAA2G,8BAA8B;AAC1P,qDAAqD,0BAA0B,4BAA4B;AAC3G,yBAAyB,2GAA2G,sBAAsB;AAC1J;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC,kEAAkE;AAClE;AACA;AACA;AACA;AACA,4HAA4H;AAC5H,KAAK;AACL;AACA;AACA;AACA,gEAAgE;AAChE,KAAK;AACL,sCAAsC;;;AAGtC;AACA,iIAAiI,GAAG,eAAe;AACnJ;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,oBAAoB;AACpB;AACA,KAAK;AACL,eAAe,EAAE;AACjB,gBAAgB;AAChB,eAAe,IAAI;AACnB;AACA;;;;;;;;;;;;;AClLA,UAAU,oGAAyB;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB,gBAAgB;AAChB;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;ACtDa;;AAEb,WAAW,mBAAO,CAAC,2EAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,oCAAoC,mBAAO,CAAC,6FAAqB;AACjE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;;AAGA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;AAED,2BAA2B,WAAW,oBAAoB;AAC1D,2BAA2B,WAAW,oBAAoB;;AAE1D;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,aAAa,WAAW,yCAAyC;AACjE,aAAa,WAAW,gCAAgC;AACxD,aAAa,WAAW,kCAAkC;AAC1D,aAAa,WAAW,gCAAgC;AACxD,aAAa,WAAW,kCAAkC;;;AAG1D;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,6FAA6F;AAC7F;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;ACjQY;;AAEb,WAAW,mBAAO,CAAC,2EAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAO,CAAC,+EAAc;;AAElC;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA,2DAA2D,sDAAsD;AACjH;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,mBAAmB;AACnB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB;AACnB;AACA,KAAK;AACL,uHAAuH,YAAY,kEAAkE;AACrM;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA;AACA,KAAK;AACL;;AAEA,wBAAwB;AACxB;AACA;AACA;AACA,KAAK;AACL;;AAEA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;;AAEA,sBAAsB;AACtB;AACA;;AAEA,8BAA8B;AAC9B;AACA,E;;;;;;;;;;;;AC7da;AACb,WAAW,mBAAO,CAAC,2EAAY;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;ACvID,WAAW,mBAAO,CAAC,2EAAY;AAC/B;AACA,eAAe,mBAAO,CAAC,2EAAY;AACnC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,a;;;;;;;;;;ACvGD,UAAU,mBAAO,CAAC,iFAAgB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,qEAAU;AACnC,cAAc,mBAAO,CAAC,+EAAe;AACrC;AACA,cAAc,mBAAO,CAAC,mFAAiB;AACvC,cAAc,mBAAO,CAAC,mFAAiB;AACvC,cAAc,mBAAO,CAAC,qFAAkB;AACxC,cAAc,mBAAO,CAAC,uFAAmB;AACzC,cAAc,mBAAO,CAAC,2EAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAO,CAAC,yDAAI;AACvC,yBAAyB,mBAAO,CAAC,yEAAY;AAC7C,cAAc,mBAAO,CAAC,+DAAO;AAC7B,4BAA4B,mBAAO,CAAC,+EAAc;;;;;;;;;;;;;ACnJrC;AACb,WAAW,mBAAO,CAAC,2EAAY;AAC/B;AACA;AACA,YAAY,mBAAO,CAAC,2EAAS;AAC7B,mBAAmB,wDAA8B;AACjD,SAAS,mBAAO,CAAC,qFAAiB;AAClC;AACA,wBAAwB,mBAAO,CAAC,6FAAqB;AACrD,iBAAiB,mBAAO,CAAC,uEAAU;;AAEnC;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA,CAAC,E;;;;;;;;;;;;ACpHY;AACb,WAAW,mBAAO,CAAC,2EAAY;AAC/B;AACA;AACA;AACA,kBAAkB,0GAAgC;AAClD,yBAAyB,mBAAO,CAAC,2EAAY;AAC7C;AACA,WAAW,mBAAO,CAAC,mEAAQ;AAC3B,WAAW,mBAAO,CAAC,mEAAQ;;AAE3B;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;;AAEA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,CAAC,a;;;;;;;;;;;AC3GD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;AACb,WAAW,mBAAO,CAAC,2EAAY;AAC/B,SAAS,mBAAO,CAAC,cAAI;AACrB,WAAW,mBAAO,CAAC,kBAAM;AACzB,cAAc,mBAAO,CAAC,+EAAW;AACjC,oBAAoB,mBAAO,CAAC,qFAAiB;;AAE7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,YAAY;;AAEZ,eAAe;AACf,eAAe;;AAEf,kBAAkB;AAClB;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA;;AAEA,YAAY;;AAEZ,eAAe;AACf;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,S;;;;;;;;;;;ACzEb,cAAc,mBAAO,CAAC,yEAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB;AACxB;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;AC/ED;AACA,WAAW,mBAAO,CAAC,2EAAY;AAC/B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA,0B;;;;;;;;;;;ACpCA,WAAW,mBAAO,CAAC,yEAAQ;AAC3B,mBAAmB,8GAAmC;;AAEtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,CAAC,a;;;;;;;;;;;ACjCD,gBAAgB,mBAAO,CAAC,mFAAa;;AAErC;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC,a;;;;;;;;;;;;AC9BY;AACb,WAAW,mBAAO,CAAC,yEAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC,a;;;;;;;;;;;ACnBD,WAAW,mBAAO,CAAC,4EAAa;AAChC;AACA,WAAW,mBAAO,CAAC,yEAAQ;AAC3B,iBAAiB,mBAAO,CAAC,+FAAmB,iBAAiB,mBAAO,CAAC,iGAAoB;;AAEzF;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,a;;;;;;;;;;;AC9PD,gBAAgB,mBAAO,CAAC,mFAAa;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC,a;;;;;;;;;;;ACzCD,kBAAkB,mBAAO,CAAC,uFAAe;AACzC,WAAW,mBAAO,CAAC,4EAAa;AAChC,cAAc,mBAAO,CAAC,0EAAY;AAClC;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,OAAO;AAChE;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,CAAC,a;;;;;;;;;;;AClGD,cAAc,mBAAO,CAAC,+EAAW;AACjC,iBAAiB,mBAAO,CAAC,gFAAe;;;AAGxC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,iBAAiB;AACjB,4BAA4B;AAC5B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,aAAa;AACb;AACA;;;AAGA;AACA;AACA,CAAC,a;;;;;;;;;;;AC5KD,eAAe,mBAAO,CAAC,iFAAY;AACnC,WAAW,mBAAO,CAAC,4EAAa;AAChC,iBAAiB,mBAAO,CAAC,gFAAe;AACxC;AACA;AACA;AACA,cAAc,mBAAO,CAAC,0EAAY;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;;AAET;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,2DAA2D;AAC3D;AACA;;AAEA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA,CAAC,a;;;;;;;;;;;ACrND,eAAe,mBAAO,CAAC,iFAAY;AACnC,WAAW,mBAAO,CAAC,4EAAa;AAChC,iBAAiB,mBAAO,CAAC,gFAAe;AACxC;AACA;AACA;AACA,cAAc,mBAAO,CAAC,0EAAY;AAClC;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,OAAO;AAChE;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA,CAAC,a;;;;;;;;;;;AC9JY;AACb,WAAW,mBAAO,CAAC,4EAAa;AAChC;AACA;AACA;AACA,cAAc,mBAAO,CAAC,6EAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,gFAAe;AACzC;AACA;AACA,gBAAgB,mBAAO,CAAC,mFAAa;AACrC,mBAAmB,mBAAO,CAAC,yFAAgB;AAC3C,eAAe,mBAAO,CAAC,iFAAY;AACnC,eAAe,mBAAO,CAAC,iFAAY;AACnC,cAAc,mBAAO,CAAC,+EAAW;AACjC,eAAe,mBAAO,CAAC,iFAAY;AACnC,kBAAkB,mBAAO,CAAC,uFAAe;AACzC,iBAAiB,mBAAO,CAAC,qFAAc;AACvC,qBAAqB,mBAAO,CAAC,6FAAkB;AAC/C,sBAAsB,mBAAO,CAAC,+FAAmB;AACjD,uBAAuB,mBAAO,CAAC,iGAAoB;AACnD,eAAe,mBAAO,CAAC,iFAAY;AACnC,mBAAmB,mBAAO,CAAC,yFAAgB;AAC3C,mBAAmB,mBAAO,CAAC,yFAAgB;;AAE3C;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA,SAAS;;AAET;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA,SAAS;;AAET;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA,SAAS;;AAET;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;AC5PD,eAAe,mBAAO,CAAC,iFAAY;AACnC,wBAAwB,mBAAO,CAAC,mGAAqB;;AAErD;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA,CAAC,a;;;;;;;;;;;AC5DD,WAAW,mBAAO,CAAC,yEAAQ;AAC3B,kBAAkB,mBAAO,CAAC,gFAAe;AACzC;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,a;;;;;;;;;;;AC3GD,WAAW,mBAAO,CAAC,uFAAe;;AAElC;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,CAAC,a;;;;;;;;;;ACjCD,iBAAiB;;AAEjB,wFAAwF,qBAAqB;;AAE7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;ACtJD,aAAa,mBAAO,CAAC,kFAAU;;AAE/B;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC,a;;;;;;;;;;;ACXD,WAAW,mBAAO,CAAC,+EAAgB;AACnC;AACA;AACA,gBAAgB,mHAA8B;AAC9C,YAAY,mBAAO,CAAC,gFAAS;AAC7B,iBAAiB,mBAAO,CAAC,0FAAc;;;AAGvC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB;AACxB;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;;AAEA;;AAEA,CAAC,a;;;;;;;;;;;ACzID,aAAa,mBAAO,CAAC,kFAAU;;AAE/B;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC,a;;;;;;;;;;;ACXD,WAAW,mBAAO,CAAC,+EAAgB;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;;AAET;AACA,yBAAyB,uBAAuB;AAChD;AACA,SAAS;;AAET;AACA,iCAAiC,SAAS;AAC1C;AACA,SAAS;;AAET;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC,a;;;;;;;;;;;AC9KD,WAAW,mBAAO,CAAC,+EAAgB;AACnC;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,a;;;;;;;;;;;AC7CD,WAAW,mBAAO,CAAC,4EAAa;AAChC;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,0EAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA;AACA;AACA,aAAa;AACb;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;;AC5HD,eAAe,mBAAO,CAAC,iFAAY;AACnC,iBAAiB,mBAAO,CAAC,gFAAe;AACxC,cAAc,mBAAO,CAAC,0EAAY;AAClC,kBAAkB,2GAAiC;;;AAGnD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,oBAAoB;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;;AAGA;AACA;AACA,CAAC,a;;;;;;;;;;;AC9QD,gBAAgB,mBAAO,CAAC,mFAAa;AACrC,cAAc,mBAAO,CAAC,0EAAY;AAClC,WAAW,mBAAO,CAAC,4EAAa;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA;;AAEA;;AAEA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;AC9CD,WAAW,mBAAO,CAAC,uFAAe;;AAElC;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC,a;;;;;;;;;;;ACjCD,WAAW,mBAAO,CAAC,yEAAQ;AAC3B,WAAW,mBAAO,CAAC,4EAAa;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC,a;;;;;;;;;;;AClED,gBAAgB,mBAAO,CAAC,mFAAa;AACrC,cAAc,mBAAO,CAAC,0EAAY;;AAElC;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA,iCAAiC,aAAa;AAC9C;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC5CD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,yBAAyB,EAAE;AACzC,MAAM;AACN,WAAW,sxBAAsxB;AACjyB,aAAa,0SAA0S;AACvT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,+KAA+K,EAAE,MAAM,EAAE,SAAS,kBAAkB,UAAU,gBAAgB,OAAO,8BAA8B,4DAA4D,aAAa,oBAAoB,gBAAgB,4BAA4B,sFAAsF,qBAAqB,iBAAiB,4KAA4K,eAAe,OAAO,uFAAuF,4HAA4H,eAAe,aAAa,6BAA6B,qBAAqB,gBAAgB,6HAA6H,EAAE,6HAA6H,EAAE,QAAQ,EAAE,mKAAmK,EAAE,8JAA8J,EAAE,qJAAqJ,EAAE,qJAAqJ,EAAE,qJAAqJ,EAAE,qJAAqJ,EAAE,qJAAqJ,EAAE,qJAAqJ,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,+IAA+I,EAAE,+IAA+I,EAAE,+IAA+I,EAAE,+IAA+I,EAAE,aAAa,EAAE,6CAA6C,EAAE,4HAA4H,EAAE,UAAU,EAAE,yIAAyI,gBAAgB,iBAAiB,gBAAgB,mIAAmI,EAAE,mIAAmI,EAAE,6HAA6H,EAAE,6HAA6H,EAAE,6HAA6H,oDAAoD,OAAO,8BAA8B,4BAA4B,gBAAgB,4BAA4B,gBAAgB,4BAA4B,gBAAgB,4BAA4B,gBAAgB,4BAA4B,gBAAgB,4BAA4B,8BAA8B,qBAAqB,8BAA8B,qBAAqB,gBAAgB,OAAO,gBAAgB,OAAO,gBAAgB,OAAO,gBAAgB,OAAO,iBAAiB,UAAU,EAAE,UAAU,EAAE,+BAA+B,gBAAgB,iBAAiB,6BAA6B,aAAa,iBAAiB,4GAA4G,eAAe,qBAAqB,gBAAgB,qBAAqB;AACt+J,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,okBAAokB,IAAI;AACxkB,aAAa,WAAW;AACxB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,gBAAgB,8CAA8C;AAC3E,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,gDAA0B,CAAC,iDAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;;;ACvyBA;AACA;AACA,2BAA2B,mBAAO,CAAC,oGAAqB;AACxD,qBAAqB,mBAAO,CAAC,oGAAqB;;AAElD,IAAI,uBAAuB;AAC3B;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,IAAI,oBAAoB;AACxB;AACA;AACA,CAAC,I;;;;;;;;;;;AChBY;;AAEb,aAAa,mBAAO,CAAC,uFAAa;AAClC,WAAW,mBAAO,CAAC,+EAAgB;AACnC;AACA,YAAY,mBAAO,CAAC,mFAAW;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,8FAA8F;AAC9F;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA,aAAa;AACb,mBAAmB;AACnB;AACA;AACA;;;;;;;;;;;;;ACpCa;;AAEb,YAAY,mBAAO,CAAC,mFAAW;AAC/B,SAAS,mBAAO,CAAC,cAAI;AACrB,WAAW,mBAAO,CAAC,+EAAgB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,sBAAsB;AACtB;;AAEA;;AAEA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;;AAEL;AACA,mHAAmH;AACnH;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;;AAEL;AACA,+EAA+E;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA,mCAAmC,mGAAmG;AACtI;AACA;AACA;AACA,wCAAwC;AACxC,2BAA2B,iFAAiF;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA+C;AAC/C,yDAAyD,KAAK;AAC9D;AACA,kEAAkE,MAAM;AACxE;AACA,aAAa;AACb,iEAAiE;AACjE;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,mDAAmD;AACnD,6DAA6D,KAAK;AAClE;AACA;AACA,0DAA0D,MAAM;AAChE;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,qEAAqE;AACrE;AACA,aAAa;AACb;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,yDAAyD,KAAK;AAC9D;AACA;AACA,qCAAqC,yCAAyC;AAC9E;AACA,aAAa;AACb,iEAAiE;AACjE;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,6BAA6B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;;AAEA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,6DAA6D,KAAK;AAClE;AACA;AACA,wCAAwC,6CAA6C;AACrF;AACA,iBAAiB;AACjB,qEAAqE;AACrE;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,4BAA4B,uBAAuB;AACnD,yDAAyD,KAAK;AAC9D;AACA,uCAAuC,MAAM;AAC7C;AACA;AACA,aAAa;AACb,iEAAiE;AACjE;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AC5Va;;AAEb,WAAW,mBAAO,CAAC,kBAAM;AACzB;AACA;;AAEA;AACA,MAAM,KAAK;AACX,MAAM,KAAK;AACX;AACA;AACA;AACA;;AAEA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA;;AAEA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,uBAAuB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA,E;;;;;;;;;;;AC7Fa;AACb,WAAW,mBAAO,CAAC,2EAAY;AAC/B;AACA;AACA;AACA;AACA,wBAAwB,mBAAO,CAAC,6FAAqB;AACrD,iBAAiB,mBAAO,CAAC,+EAAc;AACvC;AACA;;AAEA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,aAAa;AAC5F;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,SAAS;;AAET;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,qDAAqD;AACrD,SAAS;;AAET;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;ACnJY;AACb,WAAW,mBAAO,CAAC,2EAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,6EAAU;AAC/B,cAAc,mBAAO,CAAC,yEAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,qBAAqB;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,qBAAqB;AACrB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,qBAAqB;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,qBAAqB;AACrB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,qBAAqB;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,qBAAqB;AACrB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,kBAAkB;;;;;;;;;;;;;;;ACvTL;AACb,cAAc,mBAAO,CAAC,yEAAY;AAClC,iBAAiB,mBAAO,CAAC,+EAAc;AACvC,kBAAkB,0GAAgC;AAClD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA,CAAC;;;;;;;;;;;;AChHD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,wDAAwD;AACxD,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA,uBAAuB;AACvB;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA,gGAAgG,eAAe,UAAU,WAAW;AACpI;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,0CAA0C,mBAAO,CAAC,qEAAU,GAAG,mBAAO,CAAC,2EAAa,GAAG,mBAAO,CAAC,iFAAgB;;AAE/G;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;;;;;;ACjND;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iBAAiB;;;AAGjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,iBAAiB;;AAEjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;;AAErB;AACA;;;AAGA;AACA,SAAS;;;AAGT;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iBAAiB;;;AAGjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;;AAGjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;;AAGA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,2CAA2C,mBAAO,CAAC,yEAAY,GAAG,mBAAO,CAAC,qEAAU,GAAG,mBAAO,CAAC,iFAAgB,GAAG,mBAAO,CAAC,2EAAa,GAAG,mBAAO,CAAC,uFAAmB,GAAG,mBAAO,CAAC,yFAAoB;AACpM;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;;;;;;AChfD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;AAGA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,YAAY,wDAAwD,MAAM,0BAA0B;AAC1J;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA,aAAa;AACb,SAAS;AACT;AACA;;;AAGA;;AAEA;AACA,8BAA8B,2BAA2B;AACzD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA,iBAAiB;AACjB;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,aAAa,yBAAyB,uBAAuB;AACrI;;AAEA,QAAQ,IAA8B;AACtC,YAAY,KAA6B;AACzC,0CAA0C,mBAAO,CAAC,qEAAU,GAAG,mBAAO,CAAC,2EAAa,GAAG,mBAAO,CAAC,+EAAe,GAAG,mBAAO,CAAC,iFAAgB;;AAEzI;AACA,KAAK,MAAM,EAMN;;AAEL,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AC9nBoC;AACM;;AAE3C;AACA;AACA;AACA;;AAEA;AACe;AACf,OAAO,qDAAQ;AACf,MAAM,mDAAY,SAAS,uDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACjBqC;AACI;AACJ;AACF;AACA;AACE;AACK;;AAE1C;AACA;AACA;AACe;AACf,4BAA4B,iDAAQ;AACpC,MAAM,uDAAU,gBAAgB,uDAAU;AAC1C,MAAM,qDAAQ,YAAY,oDAAO,gBAAgB,oDAAO;AACxD,SAAS,qDAAQ;AACjB;;;;;;;;;;;;;;;;;;;AChBgC;AACc;AACT;;AAErC;AACA;AACe;AACf,MAAM,4DAAU,KAAK,iDAAQ,SAAS,4DAAU;AAChD,SAAS,yDAAY;AACrB;;;;;;;;;;;;;;;;;ACTgC;;AAEhC;AACe;AACf,2BAA2B,uDAAC;AAC5B;;;;;;;;;;;;;;;;;;;ACL2D;AAClB;AACb;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA,6BAA6B,2BAA2B,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACe;AACf;AACA,mBAAmB,gEAAyB;AAC5C;AACA,eAAe,uDAAU,2CAA2C,+CAAQ;;AAE5E;AACA;AACA,MAAM,gDAAG;;AAET;AACA,WAAW,yDAAkB;AAC7B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACvCA;AACe;AACf;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACjB6B;;AAE7B;AACA;AACe;AACf;AACA;AACA;AACA;AACA,uBAAuB,iDAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AChBwC;AACJ;AACL;;AAE/B;AACe;AACf;AACA,wBAAwB,sDAAS;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0BAA0B,iDAAU,oBAAoB,8CAAK;AAC7D;AACA;AACA,wCAAwC,0BAA0B;AAClE;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC3B0B;AACc;;AAExC;AACe;AACf;AACA,gBAAgB,+CAAE;AAClB,iBAAiB,sDAAS;AAC1B;AACA,UAAU,8BAA8B;AACxC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACd4C;AACf;AACa;;AAE1C;AACe;AACf;AACA;AACA;AACA,iBAAiB,wDAAW,SAAS,iDAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,8BAA8B;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,uDAAU;AAClC;AACA;;;;;;;;;;;;;;;;;AC3B8C;;AAE9C;AACe;AACf;AACA;AACA,mFAAmF,sDAAe;AAClG;AACA;;;;;;;;;;;;;;;;ACRA;AACe;AACf;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACRA;AACA,iEAAe;AACf,aAAa;AACb,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,cAAc;AACd,cAAc;AACd,CAAC,EAAC;;;;;;;;;;;;;;;;;;ACRwC;AACL;;AAErC;AACA;AACA;AACe;AACf;AACA,aAAa,uDAAU;AACvB;AACA,MAAM,qDAAQ;AACd;AACA;;;;;;;;;;;;;;;;;;;;ACZwC;AACI;AACT;AACQ;;AAE3C;AACe;AACf;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,2BAA2B,sDAAS,QAAQ,YAAY;AACxD;AACA,QAAQ,wDAAW,YAAY,oDAAO,WAAW,wDAAW;AAC5D;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC9BoD;;AAEpD;AACA,iEAAe,4DAAe,cAAc,EAAC;;;;;;;;;;;;;;;;;ACHO;;AAEpD;AACA,iEAAe,4DAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;ACHf;AACG;;AAE7B;AACe;AACf;AACA;AACA,eAAe,+CAAE;AACjB,IAAI,iDAAI;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;;;;;;;ACd6C;;AAE7C;AACe;AACf,wBAAwB,0DAAmB;AAC3C;;;;;;;;;;;;;;;;;ACLwC;;AAExC,iEAAe,sDAAS,UAAU,EAAC;;;;;;;;;;;;;;;;;;ACFiC;AAC5B;;AAExC;AACA;AACA;AACA;AACA,iEAAe,oEAAuB,CAAC,kDAAS,CAAC,EAAC;;;;;;;;;;;;;;;;;;ACPkB;AACpB;;AAEhD;AACA;AACA,iEAAe,oEAAuB,CAAC,sDAAa,CAAC,EAAC;;;;;;;;;;;;;;;;ACLtD;AACA;AACe;AACf;AACA;;;;;;;;;;;;;;;;;;;;;;ACJwC;AACC;AACN;;AAEnC;AACA;AACA;AACA;AACO;AACP,eAAe,sDAAS;AACxB;AACA;AACA;AACA,eAAe,oDAAO;AACtB,QAAQ,sDAAS;AACjB,mBAAmB,YAAY;AAC/B,WAAW,uDAAU;AACrB;AACA;AACA;AACA;AACA,0CAA0C,uDAAU;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;;ACpCA;AACA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpBA;AACO;;AAEP;AACA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACO;AACA;;AAEP;AACO;AACP;AACA;AACA;;AAEA;AACO;AACP;;AAEA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACO;AACP;;AAEA;AACO,mBAAmB,eAAe;AAClC;AACP;;AAEA;AACO;;;;;;;;;;;;;;;;AC1CP;AACe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACL+C;AACD;;AAE9C;AACA;AACA;AACO;AACP,MAAM,uDAAgB,IAAI,yDAAY;AACtC;AACA,4CAA4C,yDAAY;;;;;;;;;;;;;;;;;ACTjB;;AAEvC;AACe;AACf;AACA;AACA,WAAW,oDAAa;AACxB;AACA;;;;;;;;;;;;;;;;;ACRgD;;AAEhD;AACA;AACe;AACf;AACA;AACA;AACA,IAAI,0DAAa;AACjB;AACA;;;;;;;;;;;;;;;;;;ACVgC;AACX;;AAErB;AACA;AACe;AACf,SAAS,0DAAQ;AACjB;;;;;;;;;;;;;;;;;;ACPiC;AACO;;AAExC;AACA,iEAAe,mDAAM,CAAC,kDAAS,CAAC,EAAC;;;;;;;;;;;;;;;;ACJjC;AACe;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACPqC;AACI;AACmB;;AAE5D;AACe;AACf,OAAO,qDAAQ;AACf;AACA;AACA;AACA,MAAM,iDAAU,EAAE,gEAAmB;AACrC;AACA;;;;;;;;;;;;;;;;ACZA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACX+C;AACN;AACK;;AAE9C;AACA;AACA,iEAAe,0DAAa;AAC5B,OAAO,uDAAU;AACjB,cAAc,0DAAa;AAC3B,WAAW,yDAAY;AACvB,GAAG;AACH;AACA,CAAC,CAAC,EAAC;;;;;;;;;;;;;;;;;;;ACZ4C;AACX;AACP;;AAE7B;AACA;AACA;AACA,iEAAe,0DAAa;AAC5B,SAAS,oDAAO;AAChB;AACA;AACA;AACA;AACA,eAAe,iDAAI;AACnB;AACA;AACA,CAAC,CAAC,EAAC;;;;;;;;;;;;;;;;;AChB6B;;AAEhC;AACe;AACf,iBAAiB,uDAAC;AAClB;AACA;AACA;;;;;;;;;;;;;;;;;ACPoC;;AAEpC;AACA;AACe;AACf;AACA;AACA;AACA;AACA,gBAAgB,iDAAU;AAC1B;AACA;AACA;;;;;;;;;;;;;;;;;;;ACZqC;AACF;AACF;;AAEjC;AACe;AACf,OAAO,qDAAQ;AACf,SAAS,oDAAO,sBAAsB,mDAAM,GAAG;AAC/C;;;;;;;;;;;;;;;;;ACRiC;;AAEjC;AACe;AACf,SAAS,mDAAM;AACf;;;;;;;;;;;;;;;;ACLA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACXA;AACe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACL4C;AACX;AACE;;AAEnC;AACe;AACf,OAAO,wDAAW,aAAa,mDAAM;AACrC;AACA,SAAS,oDAAO;AAChB;;;;;;;;;;;;;;;;;;ACTgC;AACJ;;AAE5B;AACA;AACA;AACA,iEAAe,kDAAK;AACpB,MAAM,gDAAG,6BAA6B;AACtC,CAAC,CAAC,EAAC;;;;;;;;;;;;;;;;;;ACRuC;AACH;;AAEvC;AACA;AACA;AACe;AACf,eAAe,uDAAU;AACzB,aAAa,sDAAS;AACtB;AACA;;;;;;;;;;;;;;;;;;ACV+C;AACpB;;AAE3B;AACA;AACA;AACA;AACe;AACf;;AAEA;AACA,iBAAiB,gDAAG;AACpB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,0DAAa;AAC/B;AACA;AACA,eAAe,gDAAG;AAClB;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACvCkD;AACf;;AAEnC;AACA,iEAAe,2DAAc,CAAC,gDAAO,OAAO,EAAC;;;;;;;;;;;;;;;;;;;ACJV;AACJ;AACC;;AAEhC;AACA;AACA,iEAAe,oDAAO,CAAC,8CAAK,EAAE,mDAAC,IAAI,EAAC;;;;;;;;;;;;;;;;;ACNW;;AAE/C;AACA;AACA,iEAAe,0DAAa;AAC5B;AACA;AACA,GAAG;AACH,CAAC,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;ACR4C;AACX;AACH;AACI;;AAErC;AACA;AACA,iEAAe,0DAAa;AAC5B,SAAS,oDAAO;AAChB,SAAS,mDAAM;AACf,YAAY,qDAAQ;AACpB,GAAG;AACH,CAAC,CAAC,EAAC;;;;;;;;;;;;;;;;;;;ACZuC;AACE;AACf;;AAE7B;AACA;AACA;AACA;AACe;AACf,aAAa,uDAAU;AACvB;AACA,MAAM,wDAAW;AACjB,oCAAoC,YAAY;AAChD;AACA;AACA,GAAG;AACH,gBAAgB,iDAAI;AACpB,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACtBgD;AACR;;AAExC;AACA,iEAAe,0DAAa,CAAC,kDAAS,CAAC,EAAC;;;;;;;;;;;;;;;;;;;ACJd;AACkB;AACf;;AAE7B;AACe;AACf,cAAc,+CAAE;AAChB,eAAe,wDAAW,SAAS,iDAAI;AACvC;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACdkD;AACf;;AAEnC;AACA,iEAAe,2DAAc,CAAC,gDAAO,CAAC,EAAC;;;;;;;;;;;;;;;;;;ACJW;AACrB;;AAE7B;AACA;AACA;AACA,iEAAe,2DAAc,CAAC,6CAAI,CAAC,EAAC;;;;;;;;;;;;;;;;;;ACNV;AACG;;AAE7B;AACe;AACf;AACA,cAAc,+CAAE;AAChB,EAAE,iDAAI;AACN;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;ACX4C;AACL;AACJ;;AAEnC;AACe;AACf,kBAAkB,wDAAW,QAAQ,kDAAS,GAAG,gDAAO;AACxD;AACA;AACA;;;;;;;;;;;;;;;;;ACT0E;;AAE1E;AACA,iEAAe,uEAA0B,GAAG,EAAC;;;;;;;;;;;;;;;;;;ACHnB;AACG;;AAE7B;AACe;AACf,cAAc,+CAAE;AAChB,cAAc,iDAAI;AAClB,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACX0E;;AAE1E;AACA,iEAAe,uEAA0B,IAAI,EAAC;;;;;;;;;;;;;;;;;;ACHjB;AACM;;AAEnC;AACA;AACe;AACf,SAAS,iDAAI,MAAM,oDAAO;AAC1B;;;;;;;;;;;;;;;;;ACPmC;;AAEnC;AACA;AACe;AACf;AACA;AACA,SAAS,oDAAO;AAChB;;;;;;;;;;;;;;;;;ACRqC;;AAErC;AACA;AACe;AACf,SAAS,oDAAQ;AACjB;;;;;;;;;;;;;;;;;ACNyC;;AAEzC;AACe;AACf;AACA;AACA,QAAQ,uDAAU;AAClB;AACA;AACA;;;;;;;;;;;;;;;;;;;ACTkC;AACE;AACO;;AAE3C;AACA;AACA;AACA;AACe;AACf,cAAc,oDAAO,SAAS,mDAAM;AACpC,SAAS,wDAAW;AACpB;;;;;;;;;;;;;;;;;;ACXgC;AACJ;;AAE5B;AACA;AACA,iEAAe,kDAAK;AACpB,MAAM,gDAAG,uCAAuC;AAChD,CAAC,CAAC,EAAC;;;;;;;;;;;;;;;;;;ACP0B;AACK;;AAElC;AACA;AACA;AACe;AACf,SAAS,mDAAM;AACf;AACA,iBAAiB,YAAY;AAC7B;AACA,SAAS,gDAAI;AACb;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACfA;AACe;AACf;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC6C;AAClB;;;;;;;;;;;;;;;;;ACjB3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,IAAI;AAC3C;AACA;AACA;AACA;AACyC;AACN;;AAEnC;AACA,QAAQ,gDAAK,CAAC,sCAAU;AACxB;AACA;AACA;AACA,iEAAe,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BjB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACsC;AACwB;;AAE9D;AACA;AACA;AACA;;AAEA;AACA;AACoD;AACJ;AACU;AACJ;AACA;AACF;AACA;AACJ;AACI;AACF;AACE;AACU;AACN;AACN;AACM;AACE;AACN;AACN;AACc;AACV;AACA;AACA;AACJ;AACQ;AACR;AACQ;;AAEtD;AAC4C;AACM;AACF;AACF;AACE;AAEM;AACN;AAEM;AACF;AACJ;AACF;AACJ;AACA;AACA;AACY;;AAEtD;AACA;AACA;AACA;AACA;AACoD;AACA;AACR;AACI;AACI;AACI;AAEN;AACJ;AACE;AACN;AACM;AACI;AACgB;AAChB;AACJ;AACI;AACN;AACM;;AAEpD;AACA;AACA;AACA;AACkD;AACN;AACM;AACA;AACJ;AACA;AACM;AACA;AACR;AACI;AACE;AACJ;AACE;AACJ;;AAE5C;AACA;AACA;AACA;AACkD;AACI;AACQ;AACJ;AACR;AACQ;AAEZ;AACQ;;AAEtD;AACA;AACA;AACA;AAE+C;AAED;AAGE;AAEU;AAEV;AACA;AAEF;AAEF;AAGQ;AACJ;AACF;AACA;AACJ;AACA;AACQ;AACF;AACA;AACE;AACA;AACA;AACI;AACJ;AACN;;AAE5C;AACA;AACA;AAC4C;AACA;;AAE5C;AACA;AACA;AACA;AAG8C;AACI;AACN;AAGA;AACM;AACA;AACA;AAEJ;AACA;AACc;AACJ;AAEN;AACR;AACM;AACF;AACA;;AAE9C;AACA;AACA;AACA;AAC8C;AACU;;;;;;;;;;;;;;;;;ACvMxB;;AAEhC;AACA;AACA,iEAAe,kDAAK;AACpB;AACA,CAAC,CAAC,EAAC;;;;;;;;;;;;;;;;;;;ACNwC;AACJ;AACiB;;AAExD;AACA;AACA;AACA;AACA,iEAAe,8DAAiB,IAAI,kDAAS,EAAE,oDAAW,CAAC,EAAC;;;;;;;;;;;;;;;;;ACRxB;;AAEpC;AACA;AACA;AACe;AACf,SAAS,iDAAU;AACnB;;;;;;;;;;;;;;;;;;ACPwC;AACH;;AAErC;AACA;AACe;AACf;AACA;AACA,2BAA2B,sDAAS,QAAQ,YAAY;AACxD;AACA,QAAQ,qDAAQ;AAChB;AACA,eAAe,gBAAgB;AAC/B,WAAW,qDAAQ;AACnB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AClB6B;;AAE7B;AACe;AACf;AACA,cAAc,iDAAI;AAClB,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACV+C;AACN;AACd;AACS;AACF;;AAElC;AACA,iEAAe,0DAAa;AAC5B;AACA,MAAM,uDAAU;AAChB;AACA,GAAG;AACH,WAAW,mDAAM;AACjB;AACA;AACA;AACA,SAAS,gDAAG;AACZ;AACA;AACA;AACA,kBAAkB,oDAAO;AACzB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC,CAAC,EAAC;;;;;;;;;;;;;;;;;;AC3BqC;AACZ;;AAE5B,kBAAkB,sDAAS;;AAE3B;AACA;AACA;AACA;AACA;AACA,aAAa,gDAAG;AAChB;AACA;AACA,CAAC;;AAED,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;;ACfiB;AACJ;;AAExC;AACA;AACA,iEAAe,oDAAa,IAAI,sDAAS,SAAS,EAAC;;;;;;;;;;;;;;;;;ACLX;;AAExC,iEAAe,sDAAS,eAAe,EAAC;;;;;;;;;;;;;;;;;ACFD;;AAEvC;AACe;AACf,0CAA0C,oDAAa;AACvD;;;;;;;;;;;;;;;;;;;;ACLwC;AACC;AACM;AACM;;AAErD,iBAAiB,sDAAS;;AAE1B;AACA;AACA;AACA,wBAAwB,uDAAU,iBAAiB,0DAAa;AAChE;;AAEA,iEAAgB,6DAAe,8BAA8B,EAAE;;;;;;;;;;;;;;;;;ACbvB;;AAExC,iEAAe,sDAAS,QAAQ,EAAC;;;;;;;;;;;;;;;;ACFjC;AACe;AACf;AACA;;;;;;;;;;;;;;;;;;;;;ACHwC;AACL;AACE;AACM;AACd;;AAE7B;AACA;AACe;AACf;AACA;AACA;AACA,eAAe,sDAAS;AACxB;AACA,IAAI,oDAAO,SAAS,qDAAQ,SAAS,wDAAW;AAChD;AACA,SAAS,sDAAS,CAAC,iDAAI;AACvB;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBgC;AACoB;AACJ;AACH;AACJ;AACa;AACb;AACZ;AACD;AACkB;;AAE9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,mDAAC;AACpB,mBAAmB,mDAAC;AACpB;AACA,kBAAkB,oDAAa;AAC/B,oBAAoB,oDAAa;AACjC;AACA,MAAM,6DAAe,sCAAsC,uDAAU;AACrE,SAAS,uDAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,+DAAwB,QAAQ,+DAAwB;AACrE;AACA;AACA;AACA,oBAAoB,yDAAY,KAAK,yDAAY;AACjD;;AAEA;AACA,oBAAoB,yDAAY;AAChC,uBAAuB,0DAAa;AACpC,yBAAyB,0DAAa;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,uDAAU;AACvC,6BAA6B,uDAAU;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,gBAAgB,iDAAI;AACpB;AACA;AACA,QAAQ,iDAAI;AACZ;AACA;AACA;AACA,YAAY,gDAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACe;AACf;AACA;;;;;;;;;;;;;;;;;ACzIwC;;AAExC,iEAAe,sDAAS,SAAS,EAAC;;;;;;;;;;;;;;;;;;ACFM;AACH;;AAErC;AACe;AACf,UAAU,qDAAQ,SAAS,oDAAS;AACpC;;;;;;;;;;;;;;;;;;ACNwC;AACL;;AAEnC,iBAAiB,sDAAS;;AAE1B;AACA;AACA,eAAe,oDAAa,IAAI,+DAAwB;AACxD,IAAI,KAAwB;AAC5B;AACA;AACA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;;ACdc;AACI;AAC2B;;AAEvE,iEAAe,oDAAM,GAAG,sEAAe,CAAC,6DAAU,IAAI,sDAAS,OAAO,EAAC;;;;;;;;;;;;;;;;;ACJ1C;;AAE7B;AACe;AACf,cAAc,iDAAI;AAClB;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACZqC;AACA;;AAErC;AACe;AACf,SAAS,qDAAQ,SAAS,iDAAM;AAChC;;;;;;;;;;;;;;;;ACNA;AACe;AACf;AACA;;;;;;;;;;;;;;;;;ACHwC;;AAExC,iEAAe,sDAAS,UAAU,EAAC;;;;;;;;;;;;;;;;ACFnC;AACe;AACf;AACA;AACA;;;;;;;;;;;;;;;;;ACJwC;;AAExC,iEAAe,sDAAS,UAAU,EAAC;;;;;;;;;;;;;;;;;;;ACFK;AACI;AAC2B;;AAEvE,iEAAe,oDAAM,GAAG,sEAAe,CAAC,6DAAU,IAAI,sDAAS,OAAO,EAAC;;;;;;;;;;;;;;;;;ACJ/B;;AAExC,iEAAe,sDAAS,UAAU,EAAC;;;;;;;;;;;;;;;;;ACFK;;AAExC,iEAAe,sDAAS,UAAU,EAAC;;;;;;;;;;;;;;;;;;;;ACFuC;AACjC;AACJ;AACS;;AAE9C;AACA;AACA;AACA;AACA;AACA,SAAS,mDAAY,IAAI,uDAAY,UAAU,uDAAU;AACzD,gBAAgB,yDAAY,gCAAgC,oDAAa;AACzE;;AAEA,iEAAe,0DAAmB,kBAAkB,qDAAQ,OAAO,EAAC;;;;;;;;;;;;;;;;ACdpE;AACe;AACf;AACA;;;;;;;;;;;;;;;;;;;ACHwC;AACI;AAC+B;;AAE3E,iEAAe,oDAAM,GAAG,sEAAe,CAAC,iEAAc,IAAI,sDAAS,WAAW,EAAC;;;;;;;;;;;;;;;;;ACJvC;;AAExC,iEAAe,sDAAS,WAAW,EAAC;;;;;;;;;;;;;;;;;;ACFJ;AACc;;AAE9C;AACA;AACA;AACe;AACf,SAAS,yDAAY;AACrB;AACA,4DAAU;;;;;;;;;;;;;;;;;;;;ACT2B;AACgB;AACzB;AACgC;;AAE5D;AACA;AACe;AACf,OAAO,qDAAQ;AACf,MAAM,iDAAU,SAAS,qDAAU;AACnC;AACA,2BAA2B,gDAAG;AAC9B;AACA,MAAM,iDAAU,EAAE,gEAAmB;AACrC;AACA;;;;;;;;;;;;;;;;;ACf6B;;AAE7B;AACA;AACe;AACf;AACA;AACA,SAAS,iDAAI;AACb;;;;;;;;;;;;;;;;;;ACR+C;AACS;;AAExD;AACA;AACA,iEAAe,8DAAiB,KAAK,sDAAa,CAAC,EAAC;;;;;;;;;;;;;;;;;;;ACL1B;AACkB;AACf;;AAE7B;AACe;AACf,aAAa,+CAAE;AACf,eAAe,wDAAW,SAAS,iDAAI;AACvC;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACf0B;AACG;;AAE7B;AACA;AACe;AACf,aAAa,+CAAE;AACf,cAAc,iDAAI;AAClB;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACfuC;AACJ;;AAEnC;AACA;AACe;AACf,UAAU,sDAAS,GAAG;AACtB;AACA,WAAW,oDAAO;AAClB;AACA;;;;;;;;;;;;;;;;;;;;ACV4C;AACX;AACP;AACG;;AAE7B;AACe;AACf;AACA;AACA;AACA,UAAU,wDAAW,cAAc,mDAAM;AACzC,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,eAAe,+CAAE;AACjB,IAAI,iDAAI;AACR;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;;;;;;;AC5B4B;;AAE5B;AACe;AACf;AACA;AACA;AACA,SAAS,gDAAG;AACZ;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACZ4C;AACX;AACP;AACG;;AAE7B;AACe;AACf;AACA;AACA;AACA,UAAU,wDAAW,cAAc,mDAAM;AACzC,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,eAAe,+CAAE;AACjB,IAAI,iDAAI;AACR;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AC5BgC;AACH;AACU;AACJ;AACS;;AAE5C;AACe;AACf,EAAE,iDAAI,CAAC,sDAAS;AAChB,eAAe,mDAAC;AAChB,IAAI,6DAAW;AACf;AACA,MAAM,iDAAU;AAChB,aAAa,wDAAW,kBAAkB,mDAAC;AAC3C;AACA,GAAG;AACH,SAAS,mDAAC;AACV;;;;;;;;;;;;;;;;ACjBA;AACe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACLA;AACe;;;;;;;;;;;;;;;;ACDf;AACA,iEAAe;AACf;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;ACHuC;;AAEzC;AACA;AACA;AACe;AACf;AACA,2BAA2B,sDAAS,OAAO,YAAY;AACvD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACf+C;AACN;AACR;AACN;AACS;AACC;AACR;;AAE7B;AACA,iEAAe,0DAAa;AAC5B;AACA,MAAM,uDAAU;AAChB,eAAe,mDAAM;AACrB;AACA,GAAG;AACH,WAAW,gDAAG,CAAC,oDAAO;AACtB;AACA,cAAc,qDAAQ;AACtB;AACA;AACA,SAAS,iDAAI;AACb,CAAC,CAAC,EAAC;;;;;;;;;;;;;;;;;;ACrBgC;AACF;;AAEjC;AACA;AACA,iEAAe,oDAAO,CAAC,+CAAM,IAAI,EAAC;;;;;;;;;;;;;;;;;ACLL;;AAE7B;AACA;AACe;AACf,cAAc,iDAAI;AAClB;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACZ+C;AACD;AACd;;AAEhC;AACA;AACA;AACA;AACA,cAAc,0DAAa;AAC3B;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA,WAAW,yDAAY;AACvB;AACA;AACA,CAAC;;AAED,sBAAsB,mDAAC;AACvB,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;ACvBS;;AAEhC;AACA;AACA,iEAAe,kDAAK;AACpB;AACA,CAAC,OAAO,EAAC;;;;;;;;;;;;;;;;;;;;;;ACNsC;AACN;AACC;AACP;AACG;AACF;;AAEpC;AACA,iEAAe,0DAAa;AAC5B,iBAAiB;AACjB;AACA,MAAM,uDAAU;AAChB,oCAAoC,uDAAU;AAC9C,WAAW,oDAAO;AAClB,GAAG;AACH,eAAe,iDAAQ;AACvB,WAAW,oDAAO;AAClB;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAC;;;;;;;;;;;;;;;;;;ACzBwB;AACU;;AAErC;AACe;AACf,SAAS,gDAAG,MAAM,qDAAQ;AAC1B;;;;;;;;;;;;;;;;;;ACNoC;AACF;;AAElC;AACA;AACe;AACf,SAAS,mDAAM;AACf;AACA,WAAW,oDAAO;AAClB;AACA;;;;;;;;;;;;;;;;;;ACV6B;AACF;;AAE3B;AACe;AACf,0BAA0B,6CAAI;AAC9B;AACA,WAAW,gDAAG;AACd;AACA;;;;;;;;;;;;;;;;ACTA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,cAAc;AACjC;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACpB8C;;AAE9C;AACA;AACA,iEAAe,yDAAY,GAAG,EAAC;;;;;;;;;;;;;;;;;ACJe;;AAE9C;AACA,iEAAe,yDAAY,IAAI,EAAC;;;;;;;;;;;;;;;;;;;ACHC;AACA;AACP;;AAE1B;AACe;AACf,SAAS,mDAAM,MAAM,mDAAM,CAAC,+CAAE;AAC9B;;;;;;;;;;;;;;;;;ACPoC;;AAEpC;AACA;AACA;AACe;AACf,SAAS,iDAAU;AACnB;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC1ByC;AACP;;AAElC;AACA;AACA;AACe;AACf,SAAS,mDAAM;AACf;AACA;AACA,WAAW,uDAAU;AACrB;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA,iBAAiB;AACjB;AACA,UAAU,uDAAU;AACpB;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACrB4C;AACX;AACO;AACP;AACE;;AAEnC;AACA;AACA;AACA;AACe;AACf;AACA,SAAS,wDAAW,aAAa,mDAAM;AACvC,eAAe,mDAAM;AACrB;AACA,eAAe,oDAAO;AACtB,eAAe,sDAAS;AACxB;AACA;AACA,qBAAqB,WAAW;AAChC,eAAe,mDAAM;AACrB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC1BiC;;AAEjC;AACe;AACf,SAAS,mDAAM;AACf;;;;;;;;;;;;;;;;;;ACL4C;AACf;;AAE7B;AACe;AACf;AACA,SAAS,wDAAW,qBAAqB,iDAAI;AAC7C;;;;;;;;;;;;;;;;;;;ACP0B;AACkB;AACf;;AAE7B;AACe;AACf,cAAc,+CAAE;AAChB,eAAe,wDAAW,SAAS,iDAAI;AACvC;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACd0B;AACK;AACJ;;AAE3B;AACe;AACf;AACA,aAAa,+CAAE;AACf,SAAS,kDAAK,CAAC,gDAAG;AAClB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;ACvB0B;AACc;;AAExC;AACA;AACe;AACf,aAAa,+CAAE;AACf;AACA,sBAAsB,sDAAS;AAC/B;AACA;AACA,oDAAoD;AACpD;AACA;AACA;;;;;;;;;;;;;;;;ACdA;AACA;AACA;AACe;AACf;AACA;AACA;;;;;;;;;;;;;;;;;;;ACNqC;AACL;AACD;;AAE/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACe;AACf;AACA,aAAa,qDAAQ,GAAG,YAAY,oEAAkB;;AAEtD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,mBAAmB;AACnB;;AAEA;AACA;AACA,GAAG;AACH,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,0BAA0B,EAAE,iBAAiB;AAC7C;AACA;;AAEA;AACA,sBAAsB,8BAA8B;AACpD,yBAAyB;;AAEzB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,mCAAmC,mDAAC;AACpC;;AAEA;AACA,gDAAgD,iBAAiB;;AAEjE;AACA;;;;;;;;;;;;;;;;;ACpGgC;;AAEhC;AACA;AACA,iEAAe,oEAAkB;AACjC;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;ACRyB;;AAE3B;AACA;AACA;AACA;AACA,KAAK,eAAe;AACL;AACf;AACA;AACA;;AAEA;AACA,+CAA+C,gDAAG;AAClD;AACA;AACA;AACA;;AAEA;AACA,eAAe,gDAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;AC9C0C;;AAE1C;AACe;AACf;AACA,aAAa,uDAAU;AACvB,iBAAiB,OAAO;AACxB;AACA;;;;;;;;;;;;;;;;;;;;;;;ACRmC;AACC;AACC;AACO;AACjB;AACU;AACJ;;AAEjC;AACA;AACe;AACf;AACA,MAAM,oDAAO,cAAc,iDAAU;AACrC,MAAM,qDAAQ;AACd;AACA;AACA;AACA,MAAM,wDAAW,cAAc,gDAAG,MAAM,iDAAQ;AAChD,SAAS,mDAAM;AACf;;;;;;;;;;;;;;;;;;ACnBgC;AACG;;AAEnC;AACA;AACe;AACf,SAAS,oDAAO;AAChB;AACA,0DAAQ;;;;;;;;;;;;;;;;;;;;ACRwB;AACH;AACY;AACG;;AAE5C;AACA,iDAAI;AACJ,eAAe,iDAAU;AACzB,EAAE,6DAAW;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wDAAW;AACtB;AACA,CAAC;;AAED;AACA,iDAAI;AACJ,eAAe,iDAAU;AACzB,EAAE,6DAAW;AACb;AACA;AACA,WAAW,wDAAW;AACtB;AACA,CAAC;;AAED,iEAAe,mDAAC,EAAC;;;;;;;;;;;;;;;;;AC9BqB;;AAEtC;AACA;AACA;AACe;AACf;AACA;AACA;AACA;;AAEA,YAAY,8CAAO;;AAEnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;ACxBgD;AACJ;;AAE5C;AACA,iEAAe,0DAAa,CAAC,oDAAW,CAAC,EAAC;;;;;;;;;;;;;;;;;;;ACJK;AAClB;AACO;;AAEpC;AACA;AACA,iEAAe,0DAAa;AAC5B,SAAS,iDAAI,CAAC,oDAAO;AACrB,CAAC,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;ACRoC;AACb;AACc;AACH;;AAErC;AACA;AACA;AACA;AACA;AACe;AACf,OAAO,sDAAS;AAChB;AACA;AACA;AACA;AACA,mCAAmC,+CAAE;AACrC;AACA;AACA,2BAA2B,sDAAS,QAAQ,YAAY;AACxD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,qDAAQ;AACnB;AACA;AACA;AACA,KAAK,WAAW,qDAAQ;AACxB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACnCA;AACA;AACA;AACe;AACf;AACA;AACA;;;;;;;;;;;;;;;;;;;ACN2B;AACa;AACT;;AAE/B;AACA;AACe;AACf,yBAAyB,gDAAG,QAAQ,kDAAS;AAC7C;;AAEA,qBAAqB,gBAAgB;AACrC,oBAAoB,kDAAK;AACzB;AACA;AACA;;;;;;;;;;;;;;;;;ACd6B;;AAE7B;AACe;AACf,cAAc,iDAAI;AAClB;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACXiC;AACE;;AAEnC;AACA;AACe;AACf,SAAS,mDAAM,MAAM,oDAAO;AAC5B;;;;;;;;;;;;;;;;;;ACP+C;AACN;;AAEzC;AACA,iEAAe,0DAAa;AAC5B,SAAS,uDAAU;AACnB,CAAC,CAAC,EAAC;;;;;;;;;;;;;;;;;ACNgC;;AAEnC;AACA;AACA;AACe;AACf,SAAS,oDAAO;AAChB;;;;;;;;;;;;;;;;;;ACP+C;AAChB;;AAE/B;AACA;AACA,iEAAe,0DAAa,CAAC,8CAAK,CAAC,EAAC;;;;;;;;;;;ACLpC,eAAe,mBAAO,CAAC,kEAAQ;;AAE/B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,eAAe,6BAA6B;AAC5C;AACA;AACA;;;;;;;;;;;ACpEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,qCAAqC,OAAO,gBAAgB,MAAM,wBAAwB,YAAY;AACtG;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uBAAuB,kBAAkB;AACzC,qBAAqB,SAAS;AAC9B,kCAAkC,OAAO;AACzC,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,sBAAsB;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gCAAgC,WAAW;AAC3C,qBAAqB,SAAS;AAC9B,kCAAkC,OAAO;AACzC,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACnKA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,2EAAQ;;AAE7B;AACA;AACA,uBAAuB,kBAAkB;AACzC,qBAAqB,SAAS;AAC9B,kCAAkC,OAAO;AACzC,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,WAAW;AAC3C,qBAAqB,SAAS;AAC9B,kCAAkC,OAAO;AACzC,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrGA,UAAU,mBAAO,CAAC,qEAAa;AAC/B,SAAS,mBAAO,CAAC,qEAAa;AAC9B,cAAc,mBAAO,CAAC,sEAAS;;AAE/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,gDAAgD;AAChD;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe,OAAO;AACtB,eAAe,IAAI;AACnB,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,8BAA8B,yEAAyE;AACvG;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP,cAAc;AACd,KAAK;AACL;;AAEA;AACA,cAAc,OAAO;AACrB,cAAc,MAAM;AACpB,cAAc,MAAM;AACpB;AACA;AACA;AACA,8BAA8B,uCAAuC;AACrE;;AAEA;AACA;;AAEA;AACA,8BAA8B,uCAAuC;AACrE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB;AAChB,OAAO;AACP,KAAK;AACL;;AAEA;AACA,cAAc,IAAI;AAClB;AACA;AACA;AACA;AACA;;AAEA,2DAA2D,OAAO;AAClE;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,yDAAyD,GAAG;AAC5D;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC,wCAAwC;;AAExC,qBAAqB;AACrB,mBAAmB;;AAEnB;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA,gBAAgB,mCAAmC;AACnD;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5fA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE,mBAAO,CAAC,8EAAa;AACvB,EAAE,mBAAO,CAAC,wEAAU;AACpB;;;;;;;;;;;ACPA,cAAc,mBAAO,CAAC,sEAAS;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA,mCAAmC,oCAAoC;AACvE;AACA,sCAAsC,MAAM;AAC5C;;AAEA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;AC7DA,yBAAyB,mBAAO,CAAC,qGAA4B;AAC7D,UAAU,mBAAO,CAAC,qEAAa;;AAE/B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC9BA,aAAa,mBAAO,CAAC,qEAAa;;AAElC;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB;;AAExB;AACA;;AAEA,qBAAqB;AACrB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACvFA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,mBAAO,CAAC,iGAAoB;AACpD,qBAAqB,mBAAO,CAAC,iGAAiB;AAC9C,wBAAwB,mBAAO,CAAC,mGAAqB;AACrD,yBAAyB,mBAAO,CAAC,+FAAmB;;AAEpD;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;;AAEA;AACA,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,gBAAgB;AACjC;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,mBAAO,CAAC,kEAAQ;AAC/B,0BAA0B,mBAAO,CAAC,mGAA2B;AAC7D,eAAe,mBAAO,CAAC,yEAAe;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,cAAc,OAAO,eAAe,OAAO;AAClE;AACA,KAAK;;AAEL;AACA;AACA;AACA,yDAAyD,qBAAqB;AAC9E,2DAA2D,qBAAqB;AAChF;AACA;AACA,yDAAyD,oDAAoD;AAC7G,KAAK;;AAEL;AACA;AACA,4DAA4D,2BAA2B;AACvF;AACA;AACA;;AAEA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,2FAA2F;AAC3F;AACA;AACA,4BAA4B,OAAO,GAAG,cAAc,GAAG,eAAe;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;;AAEA,kCAAkC,gBAAgB;AAClD;AACA;AACA,KAAK;;AAEL,2EAA2E,yBAAyB;;AAEpG;AACA,kDAAkD,OAAO,GAAG,UAAU;AACtE,+DAA+D,2BAA2B;AAC1F,KAAK;;AAEL;AACA;AACA,+DAA+D,OAAO;AACtE,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,iCAAiC;AACjC;;AAEA,gCAAgC,uCAAuC;AACvE;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,iEAAiE,2BAA2B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD,YAAY,IAAI,IAAI;AACxE;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;;;;;;;;;;;ACzLA;AACA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,kEAAQ;AAC/B,0BAA0B,mBAAO,CAAC,mGAA2B;;AAE7D,mBAAmB,mBAAO,CAAC,uFAAe;AAC1C,8BAA8B,mBAAO,CAAC,+GAA2B;AACjE,qBAAqB,mBAAO,CAAC,iGAAiB;AAC9C,wBAAwB,mBAAO,CAAC,mGAAqB;AACrD,6BAA6B,mBAAO,CAAC,6GAA0B;AAC/D,yBAAyB,mBAAO,CAAC,iGAA0B;;AAE3D;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA,aAAa,aAAa;AAC1B,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,uCAAuC;AAClD,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT,OAAO;AACP,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,yCAAyC;AACzC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,yBAAyB,SAAS,QAAQ,EAAE;AAC5C;AACA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,2CAA2C,sDAAsD;AACjG;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,mCAAmC,qCAAqC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;;;;;;;;;;AC9TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,mBAAO,CAAC,iGAAiB;AAC9C,mBAAmB,mBAAO,CAAC,uFAAe;AAC1C,mCAAmC,mBAAO,CAAC,6HAAkC;;AAE7E;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,WAAW,IAAI;AACf;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB;AACA,gCAAgC,sCAAsC,uCAAuC,GAAG;AAChH,SAAS,mDAAmD;AAC5D;AACA;AACA;AACA;AACA;AACA,oDAAoD,mCAAmC;AACvF;;AAEA;AACA,SAAS,gCAAgC;AACzC,SAAS,mEAAmE;AAC5E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;;AAEP,uDAAuD;AACvD;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL,GAAG;;AAEH,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AChKA;AACA;AACA;AACA;;AAEA;AACA,eAAe,yBAAyB;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,GAAG;;AAEH;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,+DAAO;;AAE7B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;ACjFA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA,gBAAgB,mBAAO,CAAC,iFAAa;AACrC,0BAA0B,mBAAO,CAAC,mGAA2B;;AAE7D,0BAA0B,mBAAO,CAAC,mHAAsB;AACxD,qBAAqB,mBAAO,CAAC,yGAAiB;;AAE9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB;AACA,aAAa,aAAa;AAC1B,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,SAAS,oCAAoC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB;AACA,eAAe,gBAAgB;AAC/B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oCAAoC,kCAAkC;AACtE;AACA,GAAG,IAAI;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;;AAEP;AACA,iCAAiC,iBAAiB;AAClD,iCAAiC,kCAAkC;AACnE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG,EAAE;AACL;;AAEA,qCAAqC;AACrC,SAAS,qCAAqC;AAC9C;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AClLA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAO,CAAC,yDAAK;AACzB,yBAAyB,mBAAO,CAAC,iGAA0B;AAC3D,oBAAoB,mBAAO,CAAC,yFAAgB;;AAE5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,kCAAkC;AAC7C;AACA;AACA;AACA,qBAAqB;AACrB,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,aAAa,IAAI;AACjB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,aAAa,oBAAoB;AACjC;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8EAA8E,IAAI;AAClF;;AAEA;AACA;AACA;AACA,CAAC,IAAI;;;;;;;;;;;AC3SL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA,6CAA6C,eAAe,cAAc,EAAE;AAC5E;AACA,OAAO,IAAI;AACX,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,GAAG;AACH;;;;;;;;;;;ACpLA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,kEAAQ;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,WAAW,qBAAqB;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA,WAAW,qBAAqB;AAChC;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;AClKA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,mBAAO,CAAC,uFAAe;;AAE1C;AACA,WAAW,OAAO;AAClB,WAAW,IAAI;AACf,WAAW,OAAO;;AAElB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;;AAET;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA,eAAe,eAAe,GAAG,aAAa,GAAG,aAAa;AAC9D;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACxFD;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,uFAAe;;AAE1C;AACA,WAAW,SAAS;AACpB,WAAW,IAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AC1BA;AACA,SAAS,mBAAO,CAAC,4EAAqC;AACtD,qBAAqB,mBAAO,CAAC,iIAAyD;AACtF,oBAAoB,mBAAO,CAAC,+HAAwD;AACpF,mBAAmB,mBAAO,CAAC,qHAAmD;AAC9E,gBAAgB,mBAAO,CAAC,qJAAqE;AAC7F,WAAW,mBAAO,CAAC,uHAAmD;AACtE,WAAW,mBAAO,CAAC,2GAA8C;AACjE,gBAAgB,mBAAO,CAAC,yHAAqD;AAC7E,8BAA8B,0JAA+E;AAC7G;;;;;;;;;;;ACVA,aAAa,mBAAO,CAAC,kBAAM;;AAE3B;AACA;AACA;AACA;;;;;;;;;;;;ACLA,oC;;;;;;;;;;;ACAA,2C;;;;;;;;;;;ACAA,oC;;;;;;;;;;;ACAA,gC;;;;;;;;;;;ACAA,kC;;;;;;;;;;;ACAA,mC;;;;;;;;;;;ACAA,iC;;;;;;;;;;;ACAA,gC;;;;;;;;;;;ACAA,kC;;;;;;;;;;;ACAA,oC;;;;;;;;;;;ACAA,4C;;;;;;;;;;;ACAA,iC;;;;;;;;;;;ACAA,kC;;;;;;;;;;;ACAA,kC;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WC5BA;WACA;WACA;WACA;WACA;WACA,gCAAgC,YAAY;WAC5C;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA,wCAAwC,yCAAyC;WACjF;WACA;WACA,E;;;;;WCPA,wF;;;;;WCAA;WACA;WACA;WACA,sDAAsD,kBAAkB;WACxE;WACA,+CAA+C,cAAc;WAC7D,E;;;;;WCNA;WACA;WACA;WACA;WACA,E;;;;;UCJA;UACA;UACA;UACA","file":"cht-core-bundle.dev.js","sourcesContent":["/*\n\nThe MIT License (MIT)\n\nOriginal Library\n - Copyright (c) Marak Squires\n\nAdditional functionality\n - Copyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n\nvar colors = {};\nmodule['exports'] = colors;\n\ncolors.themes = {};\n\nvar util = require('util');\nvar ansiStyles = colors.styles = require('./styles');\nvar defineProps = Object.defineProperties;\nvar newLineRegex = new RegExp(/[\\r\\n]+/g);\n\ncolors.supportsColor = require('./system/supports-colors').supportsColor;\n\nif (typeof colors.enabled === 'undefined') {\n colors.enabled = colors.supportsColor() !== false;\n}\n\ncolors.enable = function() {\n colors.enabled = true;\n};\n\ncolors.disable = function() {\n colors.enabled = false;\n};\n\ncolors.stripColors = colors.strip = function(str) {\n return ('' + str).replace(/\\x1B\\[\\d+m/g, '');\n};\n\n// eslint-disable-next-line no-unused-vars\nvar stylize = colors.stylize = function stylize(str, style) {\n if (!colors.enabled) {\n return str+'';\n }\n\n var styleMap = ansiStyles[style];\n\n // Stylize should work for non-ANSI styles, too\n if (!styleMap && style in colors) {\n // Style maps like trap operate as functions on strings;\n // they don't have properties like open or close.\n return colors[style](str);\n }\n\n return styleMap.open + str + styleMap.close;\n};\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\nvar escapeStringRegexp = function(str) {\n if (typeof str !== 'string') {\n throw new TypeError('Expected a string');\n }\n return str.replace(matchOperatorsRe, '\\\\$&');\n};\n\nfunction build(_styles) {\n var builder = function builder() {\n return applyStyle.apply(builder, arguments);\n };\n builder._styles = _styles;\n // __proto__ is used because we must return a function, but there is\n // no way to create a function with a different prototype.\n builder.__proto__ = proto;\n return builder;\n}\n\nvar styles = (function() {\n var ret = {};\n ansiStyles.grey = ansiStyles.gray;\n Object.keys(ansiStyles).forEach(function(key) {\n ansiStyles[key].closeRe =\n new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');\n ret[key] = {\n get: function() {\n return build(this._styles.concat(key));\n },\n };\n });\n return ret;\n})();\n\nvar proto = defineProps(function colors() {}, styles);\n\nfunction applyStyle() {\n var args = Array.prototype.slice.call(arguments);\n\n var str = args.map(function(arg) {\n // Use weak equality check so we can colorize null/undefined in safe mode\n if (arg != null && arg.constructor === String) {\n return arg;\n } else {\n return util.inspect(arg);\n }\n }).join(' ');\n\n if (!colors.enabled || !str) {\n return str;\n }\n\n var newLinesPresent = str.indexOf('\\n') != -1;\n\n var nestedStyles = this._styles;\n\n var i = nestedStyles.length;\n while (i--) {\n var code = ansiStyles[nestedStyles[i]];\n str = code.open + str.replace(code.closeRe, code.open) + code.close;\n if (newLinesPresent) {\n str = str.replace(newLineRegex, function(match) {\n return code.close + match + code.open;\n });\n }\n }\n\n return str;\n}\n\ncolors.setTheme = function(theme) {\n if (typeof theme === 'string') {\n console.log('colors.setTheme now only accepts an object, not a string. ' +\n 'If you are trying to set a theme from a file, it is now your (the ' +\n 'caller\\'s) responsibility to require the file. The old syntax ' +\n 'looked like colors.setTheme(__dirname + ' +\n '\\'/../themes/generic-logging.js\\'); The new syntax looks like '+\n 'colors.setTheme(require(__dirname + ' +\n '\\'/../themes/generic-logging.js\\'));');\n return;\n }\n for (var style in theme) {\n (function(style) {\n colors[style] = function(str) {\n if (typeof theme[style] === 'object') {\n var out = str;\n for (var i in theme[style]) {\n out = colors[theme[style][i]](out);\n }\n return out;\n }\n return colors[theme[style]](str);\n };\n })(style);\n }\n};\n\nfunction init() {\n var ret = {};\n Object.keys(styles).forEach(function(name) {\n ret[name] = {\n get: function() {\n return build([name]);\n },\n };\n });\n return ret;\n}\n\nvar sequencer = function sequencer(map, str) {\n var exploded = str.split('');\n exploded = exploded.map(map);\n return exploded.join('');\n};\n\n// custom formatter methods\ncolors.trap = require('./custom/trap');\ncolors.zalgo = require('./custom/zalgo');\n\n// maps\ncolors.maps = {};\ncolors.maps.america = require('./maps/america')(colors);\ncolors.maps.zebra = require('./maps/zebra')(colors);\ncolors.maps.rainbow = require('./maps/rainbow')(colors);\ncolors.maps.random = require('./maps/random')(colors);\n\nfor (var map in colors.maps) {\n (function(map) {\n colors[map] = function(str) {\n return sequencer(colors.maps[map], str);\n };\n })(map);\n}\n\ndefineProps(colors, init());\n","module['exports'] = function runTheTrap(text, options) {\n var result = '';\n text = text || 'Run the trap, drop the bass';\n text = text.split('');\n var trap = {\n a: ['\\u0040', '\\u0104', '\\u023a', '\\u0245', '\\u0394', '\\u039b', '\\u0414'],\n b: ['\\u00df', '\\u0181', '\\u0243', '\\u026e', '\\u03b2', '\\u0e3f'],\n c: ['\\u00a9', '\\u023b', '\\u03fe'],\n d: ['\\u00d0', '\\u018a', '\\u0500', '\\u0501', '\\u0502', '\\u0503'],\n e: ['\\u00cb', '\\u0115', '\\u018e', '\\u0258', '\\u03a3', '\\u03be', '\\u04bc',\n '\\u0a6c'],\n f: ['\\u04fa'],\n g: ['\\u0262'],\n h: ['\\u0126', '\\u0195', '\\u04a2', '\\u04ba', '\\u04c7', '\\u050a'],\n i: ['\\u0f0f'],\n j: ['\\u0134'],\n k: ['\\u0138', '\\u04a0', '\\u04c3', '\\u051e'],\n l: ['\\u0139'],\n m: ['\\u028d', '\\u04cd', '\\u04ce', '\\u0520', '\\u0521', '\\u0d69'],\n n: ['\\u00d1', '\\u014b', '\\u019d', '\\u0376', '\\u03a0', '\\u048a'],\n o: ['\\u00d8', '\\u00f5', '\\u00f8', '\\u01fe', '\\u0298', '\\u047a', '\\u05dd',\n '\\u06dd', '\\u0e4f'],\n p: ['\\u01f7', '\\u048e'],\n q: ['\\u09cd'],\n r: ['\\u00ae', '\\u01a6', '\\u0210', '\\u024c', '\\u0280', '\\u042f'],\n s: ['\\u00a7', '\\u03de', '\\u03df', '\\u03e8'],\n t: ['\\u0141', '\\u0166', '\\u0373'],\n u: ['\\u01b1', '\\u054d'],\n v: ['\\u05d8'],\n w: ['\\u0428', '\\u0460', '\\u047c', '\\u0d70'],\n x: ['\\u04b2', '\\u04fe', '\\u04fc', '\\u04fd'],\n y: ['\\u00a5', '\\u04b0', '\\u04cb'],\n z: ['\\u01b5', '\\u0240'],\n };\n text.forEach(function(c) {\n c = c.toLowerCase();\n var chars = trap[c] || [' '];\n var rand = Math.floor(Math.random() * chars.length);\n if (typeof trap[c] !== 'undefined') {\n result += trap[c][rand];\n } else {\n result += c;\n }\n });\n return result;\n};\n","// please no\nmodule['exports'] = function zalgo(text, options) {\n text = text || ' he is here ';\n var soul = {\n 'up': [\n '̍', '̎', '̄', '̅',\n '̿', '̑', '̆', '̐',\n '͒', '͗', '͑', '̇',\n '̈', '̊', '͂', '̓',\n '̈', '͊', '͋', '͌',\n '̃', '̂', '̌', '͐',\n '̀', '́', '̋', '̏',\n '̒', '̓', '̔', '̽',\n '̉', 'ͣ', 'ͤ', 'ͥ',\n 'ͦ', 'ͧ', 'ͨ', 'ͩ',\n 'ͪ', 'ͫ', 'ͬ', 'ͭ',\n 'ͮ', 'ͯ', '̾', '͛',\n '͆', '̚',\n ],\n 'down': [\n '̖', '̗', '̘', '̙',\n '̜', '̝', '̞', '̟',\n '̠', '̤', '̥', '̦',\n '̩', '̪', '̫', '̬',\n '̭', '̮', '̯', '̰',\n '̱', '̲', '̳', '̹',\n '̺', '̻', '̼', 'ͅ',\n '͇', '͈', '͉', '͍',\n '͎', '͓', '͔', '͕',\n '͖', '͙', '͚', '̣',\n ],\n 'mid': [\n '̕', '̛', '̀', '́',\n '͘', '̡', '̢', '̧',\n '̨', '̴', '̵', '̶',\n '͜', '͝', '͞',\n '͟', '͠', '͢', '̸',\n '̷', '͡', ' ҉',\n ],\n };\n var all = [].concat(soul.up, soul.down, soul.mid);\n\n function randomNumber(range) {\n var r = Math.floor(Math.random() * range);\n return r;\n }\n\n function isChar(character) {\n var bool = false;\n all.filter(function(i) {\n bool = (i === character);\n });\n return bool;\n }\n\n\n function heComes(text, options) {\n var result = '';\n var counts;\n var l;\n options = options || {};\n options['up'] =\n typeof options['up'] !== 'undefined' ? options['up'] : true;\n options['mid'] =\n typeof options['mid'] !== 'undefined' ? options['mid'] : true;\n options['down'] =\n typeof options['down'] !== 'undefined' ? options['down'] : true;\n options['size'] =\n typeof options['size'] !== 'undefined' ? options['size'] : 'maxi';\n text = text.split('');\n for (l in text) {\n if (isChar(l)) {\n continue;\n }\n result = result + text[l];\n counts = {'up': 0, 'down': 0, 'mid': 0};\n switch (options.size) {\n case 'mini':\n counts.up = randomNumber(8);\n counts.mid = randomNumber(2);\n counts.down = randomNumber(8);\n break;\n case 'maxi':\n counts.up = randomNumber(16) + 3;\n counts.mid = randomNumber(4) + 1;\n counts.down = randomNumber(64) + 3;\n break;\n default:\n counts.up = randomNumber(8) + 1;\n counts.mid = randomNumber(6) / 2;\n counts.down = randomNumber(8) + 1;\n break;\n }\n\n var arr = ['up', 'mid', 'down'];\n for (var d in arr) {\n var index = arr[d];\n for (var i = 0; i <= counts[index]; i++) {\n if (options[index]) {\n result = result + soul[index][randomNumber(soul[index].length)];\n }\n }\n }\n }\n return result;\n }\n // don't summon him\n return heComes(text, options);\n};\n\n","module['exports'] = function(colors) {\n return function(letter, i, exploded) {\n if (letter === ' ') return letter;\n switch (i%3) {\n case 0: return colors.red(letter);\n case 1: return colors.white(letter);\n case 2: return colors.blue(letter);\n }\n };\n};\n","module['exports'] = function(colors) {\n // RoY G BiV\n var rainbowColors = ['red', 'yellow', 'green', 'blue', 'magenta'];\n return function(letter, i, exploded) {\n if (letter === ' ') {\n return letter;\n } else {\n return colors[rainbowColors[i++ % rainbowColors.length]](letter);\n }\n };\n};\n\n","module['exports'] = function(colors) {\n var available = ['underline', 'inverse', 'grey', 'yellow', 'red', 'green',\n 'blue', 'white', 'cyan', 'magenta', 'brightYellow', 'brightRed',\n 'brightGreen', 'brightBlue', 'brightWhite', 'brightCyan', 'brightMagenta'];\n return function(letter, i, exploded) {\n return letter === ' ' ? letter :\n colors[\n available[Math.round(Math.random() * (available.length - 2))]\n ](letter);\n };\n};\n","module['exports'] = function(colors) {\n return function(letter, i, exploded) {\n return i % 2 === 0 ? letter : colors.inverse(letter);\n };\n};\n","/*\nThe MIT License (MIT)\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n\nvar styles = {};\nmodule['exports'] = styles;\n\nvar codes = {\n reset: [0, 0],\n\n bold: [1, 22],\n dim: [2, 22],\n italic: [3, 23],\n underline: [4, 24],\n inverse: [7, 27],\n hidden: [8, 28],\n strikethrough: [9, 29],\n\n black: [30, 39],\n red: [31, 39],\n green: [32, 39],\n yellow: [33, 39],\n blue: [34, 39],\n magenta: [35, 39],\n cyan: [36, 39],\n white: [37, 39],\n gray: [90, 39],\n grey: [90, 39],\n\n brightRed: [91, 39],\n brightGreen: [92, 39],\n brightYellow: [93, 39],\n brightBlue: [94, 39],\n brightMagenta: [95, 39],\n brightCyan: [96, 39],\n brightWhite: [97, 39],\n\n bgBlack: [40, 49],\n bgRed: [41, 49],\n bgGreen: [42, 49],\n bgYellow: [43, 49],\n bgBlue: [44, 49],\n bgMagenta: [45, 49],\n bgCyan: [46, 49],\n bgWhite: [47, 49],\n bgGray: [100, 49],\n bgGrey: [100, 49],\n\n bgBrightRed: [101, 49],\n bgBrightGreen: [102, 49],\n bgBrightYellow: [103, 49],\n bgBrightBlue: [104, 49],\n bgBrightMagenta: [105, 49],\n bgBrightCyan: [106, 49],\n bgBrightWhite: [107, 49],\n\n // legacy styles for colors pre v1.0.0\n blackBG: [40, 49],\n redBG: [41, 49],\n greenBG: [42, 49],\n yellowBG: [43, 49],\n blueBG: [44, 49],\n magentaBG: [45, 49],\n cyanBG: [46, 49],\n whiteBG: [47, 49],\n\n};\n\nObject.keys(codes).forEach(function(key) {\n var val = codes[key];\n var style = styles[key] = [];\n style.open = '\\u001b[' + val[0] + 'm';\n style.close = '\\u001b[' + val[1] + 'm';\n});\n","/*\nMIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\n\n'use strict';\n\nmodule.exports = function(flag, argv) {\n argv = argv || process.argv;\n\n var terminatorPos = argv.indexOf('--');\n var prefix = /^-{1,2}/.test(flag) ? '' : '--';\n var pos = argv.indexOf(prefix + flag);\n\n return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);\n};\n","/*\nThe MIT License (MIT)\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n\n'use strict';\n\nvar os = require('os');\nvar hasFlag = require('./has-flag.js');\n\nvar env = process.env;\n\nvar forceColor = void 0;\nif (hasFlag('no-color') || hasFlag('no-colors') || hasFlag('color=false')) {\n forceColor = false;\n} else if (hasFlag('color') || hasFlag('colors') || hasFlag('color=true')\n || hasFlag('color=always')) {\n forceColor = true;\n}\nif ('FORCE_COLOR' in env) {\n forceColor = env.FORCE_COLOR.length === 0\n || parseInt(env.FORCE_COLOR, 10) !== 0;\n}\n\nfunction translateLevel(level) {\n if (level === 0) {\n return false;\n }\n\n return {\n level: level,\n hasBasic: true,\n has256: level >= 2,\n has16m: level >= 3,\n };\n}\n\nfunction supportsColor(stream) {\n if (forceColor === false) {\n return 0;\n }\n\n if (hasFlag('color=16m') || hasFlag('color=full')\n || hasFlag('color=truecolor')) {\n return 3;\n }\n\n if (hasFlag('color=256')) {\n return 2;\n }\n\n if (stream && !stream.isTTY && forceColor !== true) {\n return 0;\n }\n\n var min = forceColor ? 1 : 0;\n\n if (process.platform === 'win32') {\n // Node.js 7.5.0 is the first version of Node.js to include a patch to\n // libuv that enables 256 color output on Windows. Anything earlier and it\n // won't work. However, here we target Node.js 8 at minimum as it is an LTS\n // release, and Node.js 7 is not. Windows 10 build 10586 is the first\n // Windows release that supports 256 colors. Windows 10 build 14931 is the\n // first release that supports 16m/TrueColor.\n var osRelease = os.release().split('.');\n if (Number(process.versions.node.split('.')[0]) >= 8\n && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {\n return Number(osRelease[2]) >= 14931 ? 3 : 2;\n }\n\n return 1;\n }\n\n if ('CI' in env) {\n if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(function(sign) {\n return sign in env;\n }) || env.CI_NAME === 'codeship') {\n return 1;\n }\n\n return min;\n }\n\n if ('TEAMCITY_VERSION' in env) {\n return (/^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0\n );\n }\n\n if ('TERM_PROGRAM' in env) {\n var version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n switch (env.TERM_PROGRAM) {\n case 'iTerm.app':\n return version >= 3 ? 3 : 2;\n case 'Hyper':\n return 3;\n case 'Apple_Terminal':\n return 2;\n // No default\n }\n }\n\n if (/-256(color)?$/i.test(env.TERM)) {\n return 2;\n }\n\n if (/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n return 1;\n }\n\n if ('COLORTERM' in env) {\n return 1;\n }\n\n if (env.TERM === 'dumb') {\n return min;\n }\n\n return min;\n}\n\nfunction getSupportLevel(stream) {\n var level = supportsColor(stream);\n return translateLevel(level);\n}\n\nmodule.exports = {\n supportsColor: getSupportLevel,\n stdout: getSupportLevel(process.stdout),\n stderr: getSupportLevel(process.stderr),\n};\n","//\n// Remark: Requiring this file will use the \"safe\" colors API,\n// which will not touch String.prototype.\n//\n// var colors = require('colors/safe');\n// colors.red(\"foo\")\n//\n//\nvar colors = require('./lib/colors');\nmodule['exports'] = colors;\n","var enabled = require('enabled');\n\n/**\n * Creates a new Adapter.\n *\n * @param {Function} fn Function that returns the value.\n * @returns {Function} The adapter logic.\n * @public\n */\nmodule.exports = function create(fn) {\n return function adapter(namespace) {\n try {\n return enabled(namespace, fn());\n } catch (e) { /* Any failure means that we found nothing */ }\n\n return false;\n };\n}\n","var adapter = require('./');\n\n/**\n * Extracts the values from process.env.\n *\n * @type {Function}\n * @public\n */\nmodule.exports = adapter(function processenv() {\n return process.env.DEBUG || process.env.DIAGNOSTICS;\n});\n","/**\n * Contains all configured adapters for the given environment.\n *\n * @type {Array}\n * @public\n */\nvar adapters = [];\n\n/**\n * Contains all modifier functions.\n *\n * @typs {Array}\n * @public\n */\nvar modifiers = [];\n\n/**\n * Our default logger.\n *\n * @public\n */\nvar logger = function devnull() {};\n\n/**\n * Register a new adapter that will used to find environments.\n *\n * @param {Function} adapter A function that will return the possible env.\n * @returns {Boolean} Indication of a successful add.\n * @public\n */\nfunction use(adapter) {\n if (~adapters.indexOf(adapter)) return false;\n\n adapters.push(adapter);\n return true;\n}\n\n/**\n * Assign a new log method.\n *\n * @param {Function} custom The log method.\n * @public\n */\nfunction set(custom) {\n logger = custom;\n}\n\n/**\n * Check if the namespace is allowed by any of our adapters.\n *\n * @param {String} namespace The namespace that needs to be enabled\n * @returns {Boolean|Promise} Indication if the namespace is enabled by our adapters.\n * @public\n */\nfunction enabled(namespace) {\n var async = [];\n\n for (var i = 0; i < adapters.length; i++) {\n if (adapters[i].async) {\n async.push(adapters[i]);\n continue;\n }\n\n if (adapters[i](namespace)) return true;\n }\n\n if (!async.length) return false;\n\n //\n // Now that we know that we Async functions, we know we run in an ES6\n // environment and can use all the API's that they offer, in this case\n // we want to return a Promise so that we can `await` in React-Native\n // for an async adapter.\n //\n return new Promise(function pinky(resolve) {\n Promise.all(\n async.map(function prebind(fn) {\n return fn(namespace);\n })\n ).then(function resolved(values) {\n resolve(values.some(Boolean));\n });\n });\n}\n\n/**\n * Add a new message modifier to the debugger.\n *\n * @param {Function} fn Modification function.\n * @returns {Boolean} Indication of a successful add.\n * @public\n */\nfunction modify(fn) {\n if (~modifiers.indexOf(fn)) return false;\n\n modifiers.push(fn);\n return true;\n}\n\n/**\n * Write data to the supplied logger.\n *\n * @param {Object} meta Meta information about the log.\n * @param {Array} args Arguments for console.log.\n * @public\n */\nfunction write() {\n logger.apply(logger, arguments);\n}\n\n/**\n * Process the message with the modifiers.\n *\n * @param {Mixed} message The message to be transformed by modifers.\n * @returns {String} Transformed message.\n * @public\n */\nfunction process(message) {\n for (var i = 0; i < modifiers.length; i++) {\n message = modifiers[i].apply(modifiers[i], arguments);\n }\n\n return message;\n}\n\n/**\n * Introduce options to the logger function.\n *\n * @param {Function} fn Calback function.\n * @param {Object} options Properties to introduce on fn.\n * @returns {Function} The passed function\n * @public\n */\nfunction introduce(fn, options) {\n var has = Object.prototype.hasOwnProperty;\n\n for (var key in options) {\n if (has.call(options, key)) {\n fn[key] = options[key];\n }\n }\n\n return fn;\n}\n\n/**\n * Nope, we're not allowed to write messages.\n *\n * @returns {Boolean} false\n * @public\n */\nfunction nope(options) {\n options.enabled = false;\n options.modify = modify;\n options.set = set;\n options.use = use;\n\n return introduce(function diagnopes() {\n return false;\n }, options);\n}\n\n/**\n * Yep, we're allowed to write debug messages.\n *\n * @param {Object} options The options for the process.\n * @returns {Function} The function that does the logging.\n * @public\n */\nfunction yep(options) {\n /**\n * The function that receives the actual debug information.\n *\n * @returns {Boolean} indication that we're logging.\n * @public\n */\n function diagnostics() {\n var args = Array.prototype.slice.call(arguments, 0);\n\n write.call(write, options, process(args, options));\n return true;\n }\n\n options.enabled = true;\n options.modify = modify;\n options.set = set;\n options.use = use;\n\n return introduce(diagnostics, options);\n}\n\n/**\n * Simple helper function to introduce various of helper methods to our given\n * diagnostics function.\n *\n * @param {Function} diagnostics The diagnostics function.\n * @returns {Function} diagnostics\n * @public\n */\nmodule.exports = function create(diagnostics) {\n diagnostics.introduce = introduce;\n diagnostics.enabled = enabled;\n diagnostics.process = process;\n diagnostics.modify = modify;\n diagnostics.write = write;\n diagnostics.nope = nope;\n diagnostics.yep = yep;\n diagnostics.set = set;\n diagnostics.use = use;\n\n return diagnostics;\n}\n","/**\n * An idiot proof logger to be used as default. We've wrapped it in a try/catch\n * statement to ensure the environments without the `console` API do not crash\n * as well as an additional fix for ancient browsers like IE8 where the\n * `console.log` API doesn't have an `apply`, so we need to use the Function's\n * apply functionality to apply the arguments.\n *\n * @param {Object} meta Options of the logger.\n * @param {Array} messages The actuall message that needs to be logged.\n * @public\n */\nmodule.exports = function (meta, messages) {\n //\n // So yea. IE8 doesn't have an apply so we need a work around to puke the\n // arguments in place.\n //\n try { Function.prototype.apply.call(console.log, console, messages); }\n catch (e) {}\n}\n","var colorspace = require('colorspace');\nvar kuler = require('kuler');\n\n/**\n * Prefix the messages with a colored namespace.\n *\n * @param {Array} args The messages array that is getting written.\n * @param {Object} options Options for diagnostics.\n * @returns {Array} Altered messages array.\n * @public\n */\nmodule.exports = function ansiModifier(args, options) {\n var namespace = options.namespace;\n var ansi = options.colors !== false\n ? kuler(namespace +':', colorspace(namespace))\n : namespace +':';\n\n args[0] = ansi +' '+ args[0];\n return args;\n};\n","var create = require('../diagnostics');\nvar tty = require('tty').isatty(1);\n\n/**\n * Create a new diagnostics logger.\n *\n * @param {String} namespace The namespace it should enable.\n * @param {Object} options Additional options.\n * @returns {Function} The logger.\n * @public\n */\nvar diagnostics = create(function dev(namespace, options) {\n options = options || {};\n options.colors = 'colors' in options ? options.colors : tty;\n options.namespace = namespace;\n options.prod = false;\n options.dev = true;\n\n if (!dev.enabled(namespace) && !(options.force || dev.force)) {\n return dev.nope(options);\n }\n \n return dev.yep(options);\n});\n\n//\n// Configure the logger for the given environment.\n//\ndiagnostics.modify(require('../modifiers/namespace-ansi'));\ndiagnostics.use(require('../adapters/process.env'));\ndiagnostics.set(require('../logger/console'));\n\n//\n// Expose the diagnostics logger.\n//\nmodule.exports = diagnostics;\n","//\n// Select the correct build version depending on the environment.\n//\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./production.js');\n} else {\n module.exports = require('./development.js');\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = asyncify;\n\nvar _initialParams = require('./internal/initialParams.js');\n\nvar _initialParams2 = _interopRequireDefault(_initialParams);\n\nvar _setImmediate = require('./internal/setImmediate.js');\n\nvar _setImmediate2 = _interopRequireDefault(_setImmediate);\n\nvar _wrapAsync = require('./internal/wrapAsync.js');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Take a sync function and make it async, passing its return value to a\n * callback. This is useful for plugging sync functions into a waterfall,\n * series, or other async functions. Any arguments passed to the generated\n * function will be passed to the wrapped function (except for the final\n * callback argument). Errors thrown will be passed to the callback.\n *\n * If the function passed to `asyncify` returns a Promise, that promises's\n * resolved/rejected state will be used to call the callback, rather than simply\n * the synchronous return value.\n *\n * This also means you can asyncify ES2017 `async` functions.\n *\n * @name asyncify\n * @static\n * @memberOf module:Utils\n * @method\n * @alias wrapSync\n * @category Util\n * @param {Function} func - The synchronous function, or Promise-returning\n * function to convert to an {@link AsyncFunction}.\n * @returns {AsyncFunction} An asynchronous wrapper of the `func`. To be\n * invoked with `(args..., callback)`.\n * @example\n *\n * // passing a regular synchronous function\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(JSON.parse),\n * function (data, next) {\n * // data is the result of parsing the text.\n * // If there was a parsing error, it would have been caught.\n * }\n * ], callback);\n *\n * // passing a function returning a promise\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(function (contents) {\n * return db.model.create(contents);\n * }),\n * function (model, next) {\n * // `model` is the instantiated model object.\n * // If there was an error, this function would be skipped.\n * }\n * ], callback);\n *\n * // es2017 example, though `asyncify` is not needed if your JS environment\n * // supports async functions out of the box\n * var q = async.queue(async.asyncify(async function(file) {\n * var intermediateStep = await processFile(file);\n * return await somePromise(intermediateStep)\n * }));\n *\n * q.push(files);\n */\nfunction asyncify(func) {\n if ((0, _wrapAsync.isAsync)(func)) {\n return function (...args /*, callback*/) {\n const callback = args.pop();\n const promise = func.apply(this, args);\n return handlePromise(promise, callback);\n };\n }\n\n return (0, _initialParams2.default)(function (args, callback) {\n var result;\n try {\n result = func.apply(this, args);\n } catch (e) {\n return callback(e);\n }\n // if result is Promise object\n if (result && typeof result.then === 'function') {\n return handlePromise(result, callback);\n } else {\n callback(null, result);\n }\n });\n}\n\nfunction handlePromise(promise, callback) {\n return promise.then(value => {\n invokeCallback(callback, null, value);\n }, err => {\n invokeCallback(callback, err && (err instanceof Error || err.message) ? err : new Error(err));\n });\n}\n\nfunction invokeCallback(callback, error, value) {\n try {\n callback(error, value);\n } catch (err) {\n (0, _setImmediate2.default)(e => {\n throw e;\n }, err);\n }\n}\nmodule.exports = exports.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _isArrayLike = require('./internal/isArrayLike.js');\n\nvar _isArrayLike2 = _interopRequireDefault(_isArrayLike);\n\nvar _breakLoop = require('./internal/breakLoop.js');\n\nvar _breakLoop2 = _interopRequireDefault(_breakLoop);\n\nvar _eachOfLimit = require('./eachOfLimit.js');\n\nvar _eachOfLimit2 = _interopRequireDefault(_eachOfLimit);\n\nvar _once = require('./internal/once.js');\n\nvar _once2 = _interopRequireDefault(_once);\n\nvar _onlyOnce = require('./internal/onlyOnce.js');\n\nvar _onlyOnce2 = _interopRequireDefault(_onlyOnce);\n\nvar _wrapAsync = require('./internal/wrapAsync.js');\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nvar _awaitify = require('./internal/awaitify.js');\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// eachOf implementation optimized for array-likes\nfunction eachOfArrayLike(coll, iteratee, callback) {\n callback = (0, _once2.default)(callback);\n var index = 0,\n completed = 0,\n { length } = coll,\n canceled = false;\n if (length === 0) {\n callback(null);\n }\n\n function iteratorCallback(err, value) {\n if (err === false) {\n canceled = true;\n }\n if (canceled === true) return;\n if (err) {\n callback(err);\n } else if (++completed === length || value === _breakLoop2.default) {\n callback(null);\n }\n }\n\n for (; index < length; index++) {\n iteratee(coll[index], index, (0, _onlyOnce2.default)(iteratorCallback));\n }\n}\n\n// a generic version of eachOf which can handle array, object, and iterator cases.\nfunction eachOfGeneric(coll, iteratee, callback) {\n return (0, _eachOfLimit2.default)(coll, Infinity, iteratee, callback);\n}\n\n/**\n * Like [`each`]{@link module:Collections.each}, except that it passes the key (or index) as the second argument\n * to the iteratee.\n *\n * @name eachOf\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEachOf\n * @category Collection\n * @see [async.each]{@link module:Collections.each}\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each\n * item in `coll`.\n * The `key` is the item's key, or index in the case of an array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n * @example\n *\n * // dev.json is a file containing a valid json object config for dev environment\n * // dev.json is a file containing a valid json object config for test environment\n * // prod.json is a file containing a valid json object config for prod environment\n * // invalid.json is a file with a malformed json object\n *\n * let configs = {}; //global variable\n * let validConfigFileMap = {dev: 'dev.json', test: 'test.json', prod: 'prod.json'};\n * let invalidConfigFileMap = {dev: 'dev.json', test: 'test.json', invalid: 'invalid.json'};\n *\n * // asynchronous function that reads a json file and parses the contents as json object\n * function parseFile(file, key, callback) {\n * fs.readFile(file, \"utf8\", function(err, data) {\n * if (err) return calback(err);\n * try {\n * configs[key] = JSON.parse(data);\n * } catch (e) {\n * return callback(e);\n * }\n * callback();\n * });\n * }\n *\n * // Using callbacks\n * async.forEachOf(validConfigFileMap, parseFile, function (err) {\n * if (err) {\n * console.error(err);\n * } else {\n * console.log(configs);\n * // configs is now a map of JSON data, e.g.\n * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json}\n * }\n * });\n *\n * //Error handing\n * async.forEachOf(invalidConfigFileMap, parseFile, function (err) {\n * if (err) {\n * console.error(err);\n * // JSON parse error exception\n * } else {\n * console.log(configs);\n * }\n * });\n *\n * // Using Promises\n * async.forEachOf(validConfigFileMap, parseFile)\n * .then( () => {\n * console.log(configs);\n * // configs is now a map of JSON data, e.g.\n * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json}\n * }).catch( err => {\n * console.error(err);\n * });\n *\n * //Error handing\n * async.forEachOf(invalidConfigFileMap, parseFile)\n * .then( () => {\n * console.log(configs);\n * }).catch( err => {\n * console.error(err);\n * // JSON parse error exception\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.forEachOf(validConfigFileMap, parseFile);\n * console.log(configs);\n * // configs is now a map of JSON data, e.g.\n * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json}\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * //Error handing\n * async () => {\n * try {\n * let result = await async.forEachOf(invalidConfigFileMap, parseFile);\n * console.log(configs);\n * }\n * catch (err) {\n * console.log(err);\n * // JSON parse error exception\n * }\n * }\n *\n */\nfunction eachOf(coll, iteratee, callback) {\n var eachOfImplementation = (0, _isArrayLike2.default)(coll) ? eachOfArrayLike : eachOfGeneric;\n return eachOfImplementation(coll, (0, _wrapAsync2.default)(iteratee), callback);\n}\n\nexports.default = (0, _awaitify2.default)(eachOf, 3);\nmodule.exports = exports.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _eachOfLimit2 = require('./internal/eachOfLimit.js');\n\nvar _eachOfLimit3 = _interopRequireDefault(_eachOfLimit2);\n\nvar _wrapAsync = require('./internal/wrapAsync.js');\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nvar _awaitify = require('./internal/awaitify.js');\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The same as [`eachOf`]{@link module:Collections.eachOf} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name eachOfLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.eachOf]{@link module:Collections.eachOf}\n * @alias forEachOfLimit\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n */\nfunction eachOfLimit(coll, limit, iteratee, callback) {\n return (0, _eachOfLimit3.default)(limit)(coll, (0, _wrapAsync2.default)(iteratee), callback);\n}\n\nexports.default = (0, _awaitify2.default)(eachOfLimit, 4);\nmodule.exports = exports.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _eachOfLimit = require('./eachOfLimit.js');\n\nvar _eachOfLimit2 = _interopRequireDefault(_eachOfLimit);\n\nvar _awaitify = require('./internal/awaitify.js');\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The same as [`eachOf`]{@link module:Collections.eachOf} but runs only a single async operation at a time.\n *\n * @name eachOfSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.eachOf]{@link module:Collections.eachOf}\n * @alias forEachOfSeries\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n */\nfunction eachOfSeries(coll, iteratee, callback) {\n return (0, _eachOfLimit2.default)(coll, 1, iteratee, callback);\n}\nexports.default = (0, _awaitify2.default)(eachOfSeries, 3);\nmodule.exports = exports.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _eachOf = require('./eachOf.js');\n\nvar _eachOf2 = _interopRequireDefault(_eachOf);\n\nvar _withoutIndex = require('./internal/withoutIndex.js');\n\nvar _withoutIndex2 = _interopRequireDefault(_withoutIndex);\n\nvar _wrapAsync = require('./internal/wrapAsync.js');\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nvar _awaitify = require('./internal/awaitify.js');\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Applies the function `iteratee` to each item in `coll`, in parallel.\n * The `iteratee` is called with an item from the list, and a callback for when\n * it has finished. If the `iteratee` passes an error to its `callback`, the\n * main `callback` (for the `each` function) is immediately called with the\n * error.\n *\n * Note, that since this function applies `iteratee` to each item in parallel,\n * there is no guarantee that the iteratee functions will complete in order.\n *\n * @name each\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEach\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to\n * each item in `coll`. Invoked with (item, callback).\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOf`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n * // dir4 does not exist\n *\n * const fileList = [ 'dir1/file2.txt', 'dir2/file3.txt', 'dir/file5.txt'];\n * const withMissingFileList = ['dir1/file1.txt', 'dir4/file2.txt'];\n *\n * // asynchronous function that deletes a file\n * const deleteFile = function(file, callback) {\n * fs.unlink(file, callback);\n * };\n *\n * // Using callbacks\n * async.each(fileList, deleteFile, function(err) {\n * if( err ) {\n * console.log(err);\n * } else {\n * console.log('All files have been deleted successfully');\n * }\n * });\n *\n * // Error Handling\n * async.each(withMissingFileList, deleteFile, function(err){\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4/file2.txt does not exist\n * // dir1/file1.txt could have been deleted\n * });\n *\n * // Using Promises\n * async.each(fileList, deleteFile)\n * .then( () => {\n * console.log('All files have been deleted successfully');\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Error Handling\n * async.each(fileList, deleteFile)\n * .then( () => {\n * console.log('All files have been deleted successfully');\n * }).catch( err => {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4/file2.txt does not exist\n * // dir1/file1.txt could have been deleted\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * await async.each(files, deleteFile);\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // Error Handling\n * async () => {\n * try {\n * await async.each(withMissingFileList, deleteFile);\n * }\n * catch (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4/file2.txt does not exist\n * // dir1/file1.txt could have been deleted\n * }\n * }\n *\n */\nfunction eachLimit(coll, iteratee, callback) {\n return (0, _eachOf2.default)(coll, (0, _withoutIndex2.default)((0, _wrapAsync2.default)(iteratee)), callback);\n}\n\nexports.default = (0, _awaitify2.default)(eachLimit, 3);\nmodule.exports = exports.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = asyncEachOfLimit;\n\nvar _breakLoop = require('./breakLoop.js');\n\nvar _breakLoop2 = _interopRequireDefault(_breakLoop);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// for async generators\nfunction asyncEachOfLimit(generator, limit, iteratee, callback) {\n let done = false;\n let canceled = false;\n let awaiting = false;\n let running = 0;\n let idx = 0;\n\n function replenish() {\n //console.log('replenish')\n if (running >= limit || awaiting || done) return;\n //console.log('replenish awaiting')\n awaiting = true;\n generator.next().then(({ value, done: iterDone }) => {\n //console.log('got value', value)\n if (canceled || done) return;\n awaiting = false;\n if (iterDone) {\n done = true;\n if (running <= 0) {\n //console.log('done nextCb')\n callback(null);\n }\n return;\n }\n running++;\n iteratee(value, idx, iterateeCallback);\n idx++;\n replenish();\n }).catch(handleError);\n }\n\n function iterateeCallback(err, result) {\n //console.log('iterateeCallback')\n running -= 1;\n if (canceled) return;\n if (err) return handleError(err);\n\n if (err === false) {\n done = true;\n canceled = true;\n return;\n }\n\n if (result === _breakLoop2.default || done && running <= 0) {\n done = true;\n //console.log('done iterCb')\n return callback(null);\n }\n replenish();\n }\n\n function handleError(err) {\n if (canceled) return;\n awaiting = false;\n done = true;\n callback(err);\n }\n\n replenish();\n}\nmodule.exports = exports.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = awaitify;\n// conditionally promisify a function.\n// only return a promise if a callback is omitted\nfunction awaitify(asyncFn, arity) {\n if (!arity) arity = asyncFn.length;\n if (!arity) throw new Error('arity is undefined');\n function awaitable(...args) {\n if (typeof args[arity - 1] === 'function') {\n return asyncFn.apply(this, args);\n }\n\n return new Promise((resolve, reject) => {\n args[arity - 1] = (err, ...cbArgs) => {\n if (err) return reject(err);\n resolve(cbArgs.length > 1 ? cbArgs : cbArgs[0]);\n };\n asyncFn.apply(this, args);\n });\n }\n\n return awaitable;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n// A temporary value used to identify if the loop should be broken.\n// See #1064, #1293\nconst breakLoop = {};\nexports.default = breakLoop;\nmodule.exports = exports.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _once = require('./once.js');\n\nvar _once2 = _interopRequireDefault(_once);\n\nvar _iterator = require('./iterator.js');\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _onlyOnce = require('./onlyOnce.js');\n\nvar _onlyOnce2 = _interopRequireDefault(_onlyOnce);\n\nvar _wrapAsync = require('./wrapAsync.js');\n\nvar _asyncEachOfLimit = require('./asyncEachOfLimit.js');\n\nvar _asyncEachOfLimit2 = _interopRequireDefault(_asyncEachOfLimit);\n\nvar _breakLoop = require('./breakLoop.js');\n\nvar _breakLoop2 = _interopRequireDefault(_breakLoop);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = limit => {\n return (obj, iteratee, callback) => {\n callback = (0, _once2.default)(callback);\n if (limit <= 0) {\n throw new RangeError('concurrency limit cannot be less than 1');\n }\n if (!obj) {\n return callback(null);\n }\n if ((0, _wrapAsync.isAsyncGenerator)(obj)) {\n return (0, _asyncEachOfLimit2.default)(obj, limit, iteratee, callback);\n }\n if ((0, _wrapAsync.isAsyncIterable)(obj)) {\n return (0, _asyncEachOfLimit2.default)(obj[Symbol.asyncIterator](), limit, iteratee, callback);\n }\n var nextElem = (0, _iterator2.default)(obj);\n var done = false;\n var canceled = false;\n var running = 0;\n var looping = false;\n\n function iterateeCallback(err, value) {\n if (canceled) return;\n running -= 1;\n if (err) {\n done = true;\n callback(err);\n } else if (err === false) {\n done = true;\n canceled = true;\n } else if (value === _breakLoop2.default || done && running <= 0) {\n done = true;\n return callback(null);\n } else if (!looping) {\n replenish();\n }\n }\n\n function replenish() {\n looping = true;\n while (running < limit && !done) {\n var elem = nextElem();\n if (elem === null) {\n done = true;\n if (running <= 0) {\n callback(null);\n }\n return;\n }\n running += 1;\n iteratee(elem.value, elem.key, (0, _onlyOnce2.default)(iterateeCallback));\n }\n looping = false;\n }\n\n replenish();\n };\n};\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (coll) {\n return coll[Symbol.iterator] && coll[Symbol.iterator]();\n};\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (fn) {\n return function (...args /*, callback*/) {\n var callback = args.pop();\n return fn.call(this, args, callback);\n };\n};\n\nmodule.exports = exports.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isArrayLike;\nfunction isArrayLike(value) {\n return value && typeof value.length === 'number' && value.length >= 0 && value.length % 1 === 0;\n}\nmodule.exports = exports.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createIterator;\n\nvar _isArrayLike = require('./isArrayLike.js');\n\nvar _isArrayLike2 = _interopRequireDefault(_isArrayLike);\n\nvar _getIterator = require('./getIterator.js');\n\nvar _getIterator2 = _interopRequireDefault(_getIterator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createArrayIterator(coll) {\n var i = -1;\n var len = coll.length;\n return function next() {\n return ++i < len ? { value: coll[i], key: i } : null;\n };\n}\n\nfunction createES2015Iterator(iterator) {\n var i = -1;\n return function next() {\n var item = iterator.next();\n if (item.done) return null;\n i++;\n return { value: item.value, key: i };\n };\n}\n\nfunction createObjectIterator(obj) {\n var okeys = obj ? Object.keys(obj) : [];\n var i = -1;\n var len = okeys.length;\n return function next() {\n var key = okeys[++i];\n if (key === '__proto__') {\n return next();\n }\n return i < len ? { value: obj[key], key } : null;\n };\n}\n\nfunction createIterator(coll) {\n if ((0, _isArrayLike2.default)(coll)) {\n return createArrayIterator(coll);\n }\n\n var iterator = (0, _getIterator2.default)(coll);\n return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll);\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = once;\nfunction once(fn) {\n function wrapper(...args) {\n if (fn === null) return;\n var callFn = fn;\n fn = null;\n callFn.apply(this, args);\n }\n Object.assign(wrapper, fn);\n return wrapper;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = onlyOnce;\nfunction onlyOnce(fn) {\n return function (...args) {\n if (fn === null) throw new Error(\"Callback was already called.\");\n var callFn = fn;\n fn = null;\n callFn.apply(this, args);\n };\n}\nmodule.exports = exports.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _isArrayLike = require('./isArrayLike.js');\n\nvar _isArrayLike2 = _interopRequireDefault(_isArrayLike);\n\nvar _wrapAsync = require('./wrapAsync.js');\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nvar _awaitify = require('./awaitify.js');\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = (0, _awaitify2.default)((eachfn, tasks, callback) => {\n var results = (0, _isArrayLike2.default)(tasks) ? [] : {};\n\n eachfn(tasks, (task, key, taskCb) => {\n (0, _wrapAsync2.default)(task)((err, ...result) => {\n if (result.length < 2) {\n [result] = result;\n }\n results[key] = result;\n taskCb(err);\n });\n }, err => callback(err, results));\n}, 3);\nmodule.exports = exports.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fallback = fallback;\nexports.wrap = wrap;\n/* istanbul ignore file */\n\nvar hasQueueMicrotask = exports.hasQueueMicrotask = typeof queueMicrotask === 'function' && queueMicrotask;\nvar hasSetImmediate = exports.hasSetImmediate = typeof setImmediate === 'function' && setImmediate;\nvar hasNextTick = exports.hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function';\n\nfunction fallback(fn) {\n setTimeout(fn, 0);\n}\n\nfunction wrap(defer) {\n return (fn, ...args) => defer(() => fn(...args));\n}\n\nvar _defer;\n\nif (hasQueueMicrotask) {\n _defer = queueMicrotask;\n} else if (hasSetImmediate) {\n _defer = setImmediate;\n} else if (hasNextTick) {\n _defer = process.nextTick;\n} else {\n _defer = fallback;\n}\n\nexports.default = wrap(_defer);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _withoutIndex;\nfunction _withoutIndex(iteratee) {\n return (value, index, callback) => iteratee(value, callback);\n}\nmodule.exports = exports.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isAsyncIterable = exports.isAsyncGenerator = exports.isAsync = undefined;\n\nvar _asyncify = require('../asyncify.js');\n\nvar _asyncify2 = _interopRequireDefault(_asyncify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isAsync(fn) {\n return fn[Symbol.toStringTag] === 'AsyncFunction';\n}\n\nfunction isAsyncGenerator(fn) {\n return fn[Symbol.toStringTag] === 'AsyncGenerator';\n}\n\nfunction isAsyncIterable(obj) {\n return typeof obj[Symbol.asyncIterator] === 'function';\n}\n\nfunction wrapAsync(asyncFn) {\n if (typeof asyncFn !== 'function') throw new Error('expected a function');\n return isAsync(asyncFn) ? (0, _asyncify2.default)(asyncFn) : asyncFn;\n}\n\nexports.default = wrapAsync;\nexports.isAsync = isAsync;\nexports.isAsyncGenerator = isAsyncGenerator;\nexports.isAsyncIterable = isAsyncIterable;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = series;\n\nvar _parallel2 = require('./internal/parallel.js');\n\nvar _parallel3 = _interopRequireDefault(_parallel2);\n\nvar _eachOfSeries = require('./eachOfSeries.js');\n\nvar _eachOfSeries2 = _interopRequireDefault(_eachOfSeries);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Run the functions in the `tasks` collection in series, each one running once\n * the previous function has completed. If any functions in the series pass an\n * error to its callback, no more functions are run, and `callback` is\n * immediately called with the value of the error. Otherwise, `callback`\n * receives an array of results when `tasks` have completed.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function, and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.series}.\n *\n * **Note** that while many implementations preserve the order of object\n * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)\n * explicitly states that\n *\n * > The mechanics and order of enumerating the properties is not specified.\n *\n * So if you rely on the order in which your series of functions are executed,\n * and want this to work on all platforms, consider using an array.\n *\n * @name series\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|AsyncIterable|Object} tasks - A collection containing\n * [async functions]{@link AsyncFunction} to run in series.\n * Each function can complete with any number of optional `result` values.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This function gets a results array (or object)\n * containing all the result arguments passed to the `task` callbacks. Invoked\n * with (err, result).\n * @return {Promise} a promise, if no callback is passed\n * @example\n *\n * //Using Callbacks\n * async.series([\n * function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 'two');\n * }, 100);\n * }\n * ], function(err, results) {\n * console.log(results);\n * // results is equal to ['one','two']\n * });\n *\n * // an example using objects instead of arrays\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * });\n *\n * //Using Promises\n * async.series([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ]).then(results => {\n * console.log(results);\n * // results is equal to ['one','two']\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * // an example using an object instead of an array\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 2);\n * }, 100);\n * }\n * }).then(results => {\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * //Using async/await\n * async () => {\n * try {\n * let results = await async.series([\n * function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 'two');\n * }, 100);\n * }\n * ]);\n * console.log(results);\n * // results is equal to ['one','two']\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // an example using an object instead of an array\n * async () => {\n * try {\n * let results = await async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 2);\n * }, 100);\n * }\n * });\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\nfunction series(tasks, callback) {\n return (0, _parallel3.default)(_eachOfSeries2.default, tasks, callback);\n}\nmodule.exports = exports.default;","/*!\n * basic-auth\n * Copyright(c) 2013 TJ Holowaychuk\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar Buffer = require('safe-buffer').Buffer\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = auth\nmodule.exports.parse = parse\n\n/**\n * RegExp for basic auth credentials\n *\n * credentials = auth-scheme 1*SP token68\n * auth-scheme = \"Basic\" ; case insensitive\n * token68 = 1*( ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\" / \"+\" / \"/\" ) *\"=\"\n * @private\n */\n\nvar CREDENTIALS_REGEXP = /^ *(?:[Bb][Aa][Ss][Ii][Cc]) +([A-Za-z0-9._~+/-]+=*) *$/\n\n/**\n * RegExp for basic auth user/pass\n *\n * user-pass = userid \":\" password\n * userid = *\n * password = *TEXT\n * @private\n */\n\nvar USER_PASS_REGEXP = /^([^:]*):(.*)$/\n\n/**\n * Parse the Authorization header field of a request.\n *\n * @param {object} req\n * @return {object} with .name and .pass\n * @public\n */\n\nfunction auth (req) {\n if (!req) {\n throw new TypeError('argument req is required')\n }\n\n if (typeof req !== 'object') {\n throw new TypeError('argument req is required to be an object')\n }\n\n // get header\n var header = getAuthorization(req)\n\n // parse header\n return parse(header)\n}\n\n/**\n * Decode base64 string.\n * @private\n */\n\nfunction decodeBase64 (str) {\n return Buffer.from(str, 'base64').toString()\n}\n\n/**\n * Get the Authorization header from request object.\n * @private\n */\n\nfunction getAuthorization (req) {\n if (!req.headers || typeof req.headers !== 'object') {\n throw new TypeError('argument req is required to have headers property')\n }\n\n return req.headers.authorization\n}\n\n/**\n * Parse basic auth to object.\n *\n * @param {string} string\n * @return {object}\n * @public\n */\n\nfunction parse (string) {\n if (typeof string !== 'string') {\n return undefined\n }\n\n // parse header\n var match = CREDENTIALS_REGEXP.exec(string)\n\n if (!match) {\n return undefined\n }\n\n // decode user pass\n var userPass = USER_PASS_REGEXP.exec(decodeBase64(match[1]))\n\n if (!userPass) {\n return undefined\n }\n\n // return credentials object\n return new Credentials(userPass[1], userPass[2])\n}\n\n/**\n * Object to represent user credentials.\n * @private\n */\n\nfunction Credentials (name, pass) {\n this.name = name\n this.pass = pass\n}\n","module.exports = {\n\ttrueFunc: function trueFunc(){\n\t\treturn true;\n\t},\n\tfalseFunc: function falseFunc(){\n\t\treturn false;\n\t}\n};","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (obj == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","'use strict';\n\nvar color = require('color')\n , hex = require('text-hex');\n\n/**\n * Generate a color for a given name. But be reasonably smart about it by\n * understanding name spaces and coloring each namespace a bit lighter so they\n * still have the same base color as the root.\n *\n * @param {string} namespace The namespace\n * @param {string} [delimiter] The delimiter\n * @returns {string} color\n */\nmodule.exports = function colorspace(namespace, delimiter) {\n var split = namespace.split(delimiter || ':');\n var base = hex(split[0]);\n\n if (!split.length) return base;\n\n for (var i = 0, l = split.length - 1; i < l; i++) {\n base = color(base)\n .mix(color(hex(split[i + 1])))\n .saturate(1)\n .hex();\n }\n\n return base;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeRules = void 0;\nvar boolbase_1 = require(\"boolbase\");\n/**\n * All reserved characters in a regex, used for escaping.\n *\n * Taken from XRegExp, (c) 2007-2020 Steven Levithan under the MIT license\n * https://github.com/slevithan/xregexp/blob/95eeebeb8fac8754d54eafe2b4743661ac1cf028/src/xregexp.js#L794\n */\nvar reChars = /[-[\\]{}()*+?.,\\\\^$|#\\s]/g;\nfunction escapeRegex(value) {\n return value.replace(reChars, \"\\\\$&\");\n}\n/**\n * Attributes that are case-insensitive in HTML.\n *\n * @private\n * @see https://html.spec.whatwg.org/multipage/semantics-other.html#case-sensitivity-of-selectors\n */\nvar caseInsensitiveAttributes = new Set([\n \"accept\",\n \"accept-charset\",\n \"align\",\n \"alink\",\n \"axis\",\n \"bgcolor\",\n \"charset\",\n \"checked\",\n \"clear\",\n \"codetype\",\n \"color\",\n \"compact\",\n \"declare\",\n \"defer\",\n \"dir\",\n \"direction\",\n \"disabled\",\n \"enctype\",\n \"face\",\n \"frame\",\n \"hreflang\",\n \"http-equiv\",\n \"lang\",\n \"language\",\n \"link\",\n \"media\",\n \"method\",\n \"multiple\",\n \"nohref\",\n \"noresize\",\n \"noshade\",\n \"nowrap\",\n \"readonly\",\n \"rel\",\n \"rev\",\n \"rules\",\n \"scope\",\n \"scrolling\",\n \"selected\",\n \"shape\",\n \"target\",\n \"text\",\n \"type\",\n \"valign\",\n \"valuetype\",\n \"vlink\",\n]);\nfunction shouldIgnoreCase(selector, options) {\n return typeof selector.ignoreCase === \"boolean\"\n ? selector.ignoreCase\n : selector.ignoreCase === \"quirks\"\n ? !!options.quirksMode\n : !options.xmlMode && caseInsensitiveAttributes.has(selector.name);\n}\n/**\n * Attribute selectors\n */\nexports.attributeRules = {\n equals: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length === value.length &&\n attr.toLowerCase() === value &&\n next(elem));\n };\n }\n return function (elem) {\n return adapter.getAttributeValue(elem, name) === value && next(elem);\n };\n },\n hyphen: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n var len = value.length;\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function hyphenIC(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n (attr.length === len || attr.charAt(len) === \"-\") &&\n attr.substr(0, len).toLowerCase() === value &&\n next(elem));\n };\n }\n return function hyphen(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n (attr.length === len || attr.charAt(len) === \"-\") &&\n attr.substr(0, len) === value &&\n next(elem));\n };\n },\n element: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name, value = data.value;\n if (/\\s/.test(value)) {\n return boolbase_1.falseFunc;\n }\n var regex = new RegExp(\"(?:^|\\\\s)\".concat(escapeRegex(value), \"(?:$|\\\\s)\"), shouldIgnoreCase(data, options) ? \"i\" : \"\");\n return function element(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length >= value.length &&\n regex.test(attr) &&\n next(elem));\n };\n },\n exists: function (next, _a, _b) {\n var name = _a.name;\n var adapter = _b.adapter;\n return function (elem) { return adapter.hasAttrib(elem, name) && next(elem); };\n },\n start: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n var len = value.length;\n if (len === 0) {\n return boolbase_1.falseFunc;\n }\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length >= len &&\n attr.substr(0, len).toLowerCase() === value &&\n next(elem));\n };\n }\n return function (elem) {\n var _a;\n return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.startsWith(value)) &&\n next(elem);\n };\n },\n end: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n var len = -value.length;\n if (len === 0) {\n return boolbase_1.falseFunc;\n }\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var _a;\n return ((_a = adapter\n .getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.substr(len).toLowerCase()) === value && next(elem);\n };\n }\n return function (elem) {\n var _a;\n return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.endsWith(value)) &&\n next(elem);\n };\n },\n any: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name, value = data.value;\n if (value === \"\") {\n return boolbase_1.falseFunc;\n }\n if (shouldIgnoreCase(data, options)) {\n var regex_1 = new RegExp(escapeRegex(value), \"i\");\n return function anyIC(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length >= value.length &&\n regex_1.test(attr) &&\n next(elem));\n };\n }\n return function (elem) {\n var _a;\n return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.includes(value)) &&\n next(elem);\n };\n },\n not: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n if (value === \"\") {\n return function (elem) {\n return !!adapter.getAttributeValue(elem, name) && next(elem);\n };\n }\n else if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return ((attr == null ||\n attr.length !== value.length ||\n attr.toLowerCase() !== value) &&\n next(elem));\n };\n }\n return function (elem) {\n return adapter.getAttributeValue(elem, name) !== value && next(elem);\n };\n },\n};\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compileToken = exports.compileUnsafe = exports.compile = void 0;\nvar css_what_1 = require(\"css-what\");\nvar boolbase_1 = require(\"boolbase\");\nvar sort_1 = __importDefault(require(\"./sort\"));\nvar procedure_1 = require(\"./procedure\");\nvar general_1 = require(\"./general\");\nvar subselects_1 = require(\"./pseudo-selectors/subselects\");\n/**\n * Compiles a selector to an executable function.\n *\n * @param selector Selector to compile.\n * @param options Compilation options.\n * @param context Optional context for the selector.\n */\nfunction compile(selector, options, context) {\n var next = compileUnsafe(selector, options, context);\n return (0, subselects_1.ensureIsTag)(next, options.adapter);\n}\nexports.compile = compile;\nfunction compileUnsafe(selector, options, context) {\n var token = typeof selector === \"string\" ? (0, css_what_1.parse)(selector) : selector;\n return compileToken(token, options, context);\n}\nexports.compileUnsafe = compileUnsafe;\nfunction includesScopePseudo(t) {\n return (t.type === \"pseudo\" &&\n (t.name === \"scope\" ||\n (Array.isArray(t.data) &&\n t.data.some(function (data) { return data.some(includesScopePseudo); }))));\n}\nvar DESCENDANT_TOKEN = { type: css_what_1.SelectorType.Descendant };\nvar FLEXIBLE_DESCENDANT_TOKEN = {\n type: \"_flexibleDescendant\",\n};\nvar SCOPE_TOKEN = {\n type: css_what_1.SelectorType.Pseudo,\n name: \"scope\",\n data: null,\n};\n/*\n * CSS 4 Spec (Draft): 3.3.1. Absolutizing a Scope-relative Selector\n * http://www.w3.org/TR/selectors4/#absolutizing\n */\nfunction absolutize(token, _a, context) {\n var adapter = _a.adapter;\n // TODO Use better check if the context is a document\n var hasContext = !!(context === null || context === void 0 ? void 0 : context.every(function (e) {\n var parent = adapter.isTag(e) && adapter.getParent(e);\n return e === subselects_1.PLACEHOLDER_ELEMENT || (parent && adapter.isTag(parent));\n }));\n for (var _i = 0, token_1 = token; _i < token_1.length; _i++) {\n var t = token_1[_i];\n if (t.length > 0 && (0, procedure_1.isTraversal)(t[0]) && t[0].type !== \"descendant\") {\n // Don't continue in else branch\n }\n else if (hasContext && !t.some(includesScopePseudo)) {\n t.unshift(DESCENDANT_TOKEN);\n }\n else {\n continue;\n }\n t.unshift(SCOPE_TOKEN);\n }\n}\nfunction compileToken(token, options, context) {\n var _a;\n token = token.filter(function (t) { return t.length > 0; });\n token.forEach(sort_1.default);\n context = (_a = options.context) !== null && _a !== void 0 ? _a : context;\n var isArrayContext = Array.isArray(context);\n var finalContext = context && (Array.isArray(context) ? context : [context]);\n absolutize(token, options, finalContext);\n var shouldTestNextSiblings = false;\n var query = token\n .map(function (rules) {\n if (rules.length >= 2) {\n var first = rules[0], second = rules[1];\n if (first.type !== \"pseudo\" || first.name !== \"scope\") {\n // Ignore\n }\n else if (isArrayContext && second.type === \"descendant\") {\n rules[1] = FLEXIBLE_DESCENDANT_TOKEN;\n }\n else if (second.type === \"adjacent\" ||\n second.type === \"sibling\") {\n shouldTestNextSiblings = true;\n }\n }\n return compileRules(rules, options, finalContext);\n })\n .reduce(reduceRules, boolbase_1.falseFunc);\n query.shouldTestNextSiblings = shouldTestNextSiblings;\n return query;\n}\nexports.compileToken = compileToken;\nfunction compileRules(rules, options, context) {\n var _a;\n return rules.reduce(function (previous, rule) {\n return previous === boolbase_1.falseFunc\n ? boolbase_1.falseFunc\n : (0, general_1.compileGeneralSelector)(previous, rule, options, context, compileToken);\n }, (_a = options.rootFunc) !== null && _a !== void 0 ? _a : boolbase_1.trueFunc);\n}\nfunction reduceRules(a, b) {\n if (b === boolbase_1.falseFunc || a === boolbase_1.trueFunc) {\n return a;\n }\n if (a === boolbase_1.falseFunc || b === boolbase_1.trueFunc) {\n return b;\n }\n return function combine(elem) {\n return a(elem) || b(elem);\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compileGeneralSelector = void 0;\nvar attributes_1 = require(\"./attributes\");\nvar pseudo_selectors_1 = require(\"./pseudo-selectors\");\nvar css_what_1 = require(\"css-what\");\n/*\n * All available rules\n */\nfunction compileGeneralSelector(next, selector, options, context, compileToken) {\n var adapter = options.adapter, equals = options.equals;\n switch (selector.type) {\n case css_what_1.SelectorType.PseudoElement: {\n throw new Error(\"Pseudo-elements are not supported by css-select\");\n }\n case css_what_1.SelectorType.ColumnCombinator: {\n throw new Error(\"Column combinators are not yet supported by css-select\");\n }\n case css_what_1.SelectorType.Attribute: {\n if (selector.namespace != null) {\n throw new Error(\"Namespaced attributes are not yet supported by css-select\");\n }\n if (!options.xmlMode || options.lowerCaseAttributeNames) {\n selector.name = selector.name.toLowerCase();\n }\n return attributes_1.attributeRules[selector.action](next, selector, options);\n }\n case css_what_1.SelectorType.Pseudo: {\n return (0, pseudo_selectors_1.compilePseudoSelector)(next, selector, options, context, compileToken);\n }\n // Tags\n case css_what_1.SelectorType.Tag: {\n if (selector.namespace != null) {\n throw new Error(\"Namespaced tag names are not yet supported by css-select\");\n }\n var name_1 = selector.name;\n if (!options.xmlMode || options.lowerCaseTags) {\n name_1 = name_1.toLowerCase();\n }\n return function tag(elem) {\n return adapter.getName(elem) === name_1 && next(elem);\n };\n }\n // Traversal\n case css_what_1.SelectorType.Descendant: {\n if (options.cacheResults === false ||\n typeof WeakSet === \"undefined\") {\n return function descendant(elem) {\n var current = elem;\n while ((current = adapter.getParent(current))) {\n if (adapter.isTag(current) && next(current)) {\n return true;\n }\n }\n return false;\n };\n }\n // @ts-expect-error `ElementNode` is not extending object\n var isFalseCache_1 = new WeakSet();\n return function cachedDescendant(elem) {\n var current = elem;\n while ((current = adapter.getParent(current))) {\n if (!isFalseCache_1.has(current)) {\n if (adapter.isTag(current) && next(current)) {\n return true;\n }\n isFalseCache_1.add(current);\n }\n }\n return false;\n };\n }\n case \"_flexibleDescendant\": {\n // Include element itself, only used while querying an array\n return function flexibleDescendant(elem) {\n var current = elem;\n do {\n if (adapter.isTag(current) && next(current))\n return true;\n } while ((current = adapter.getParent(current)));\n return false;\n };\n }\n case css_what_1.SelectorType.Parent: {\n return function parent(elem) {\n return adapter\n .getChildren(elem)\n .some(function (elem) { return adapter.isTag(elem) && next(elem); });\n };\n }\n case css_what_1.SelectorType.Child: {\n return function child(elem) {\n var parent = adapter.getParent(elem);\n return parent != null && adapter.isTag(parent) && next(parent);\n };\n }\n case css_what_1.SelectorType.Sibling: {\n return function sibling(elem) {\n var siblings = adapter.getSiblings(elem);\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling) && next(currentSibling)) {\n return true;\n }\n }\n return false;\n };\n }\n case css_what_1.SelectorType.Adjacent: {\n if (adapter.prevElementSibling) {\n return function adjacent(elem) {\n var previous = adapter.prevElementSibling(elem);\n return previous != null && next(previous);\n };\n }\n return function adjacent(elem) {\n var siblings = adapter.getSiblings(elem);\n var lastElement;\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling)) {\n lastElement = currentSibling;\n }\n }\n return !!lastElement && next(lastElement);\n };\n }\n case css_what_1.SelectorType.Universal: {\n if (selector.namespace != null && selector.namespace !== \"*\") {\n throw new Error(\"Namespaced universal selectors are not yet supported by css-select\");\n }\n return next;\n }\n }\n}\nexports.compileGeneralSelector = compileGeneralSelector;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.aliases = exports.pseudos = exports.filters = exports.is = exports.selectOne = exports.selectAll = exports.prepareContext = exports._compileToken = exports._compileUnsafe = exports.compile = void 0;\nvar DomUtils = __importStar(require(\"domutils\"));\nvar boolbase_1 = require(\"boolbase\");\nvar compile_1 = require(\"./compile\");\nvar subselects_1 = require(\"./pseudo-selectors/subselects\");\nvar defaultEquals = function (a, b) { return a === b; };\nvar defaultOptions = {\n adapter: DomUtils,\n equals: defaultEquals,\n};\nfunction convertOptionFormats(options) {\n var _a, _b, _c, _d;\n /*\n * We force one format of options to the other one.\n */\n // @ts-expect-error Default options may have incompatible `Node` / `ElementNode`.\n var opts = options !== null && options !== void 0 ? options : defaultOptions;\n // @ts-expect-error Same as above.\n (_a = opts.adapter) !== null && _a !== void 0 ? _a : (opts.adapter = DomUtils);\n // @ts-expect-error `equals` does not exist on `Options`\n (_b = opts.equals) !== null && _b !== void 0 ? _b : (opts.equals = (_d = (_c = opts.adapter) === null || _c === void 0 ? void 0 : _c.equals) !== null && _d !== void 0 ? _d : defaultEquals);\n return opts;\n}\nfunction wrapCompile(func) {\n return function addAdapter(selector, options, context) {\n var opts = convertOptionFormats(options);\n return func(selector, opts, context);\n };\n}\n/**\n * Compiles the query, returns a function.\n */\nexports.compile = wrapCompile(compile_1.compile);\nexports._compileUnsafe = wrapCompile(compile_1.compileUnsafe);\nexports._compileToken = wrapCompile(compile_1.compileToken);\nfunction getSelectorFunc(searchFunc) {\n return function select(query, elements, options) {\n var opts = convertOptionFormats(options);\n if (typeof query !== \"function\") {\n query = (0, compile_1.compileUnsafe)(query, opts, elements);\n }\n var filteredElements = prepareContext(elements, opts.adapter, query.shouldTestNextSiblings);\n return searchFunc(query, filteredElements, opts);\n };\n}\nfunction prepareContext(elems, adapter, shouldTestNextSiblings) {\n if (shouldTestNextSiblings === void 0) { shouldTestNextSiblings = false; }\n /*\n * Add siblings if the query requires them.\n * See https://github.com/fb55/css-select/pull/43#issuecomment-225414692\n */\n if (shouldTestNextSiblings) {\n elems = appendNextSiblings(elems, adapter);\n }\n return Array.isArray(elems)\n ? adapter.removeSubsets(elems)\n : adapter.getChildren(elems);\n}\nexports.prepareContext = prepareContext;\nfunction appendNextSiblings(elem, adapter) {\n // Order matters because jQuery seems to check the children before the siblings\n var elems = Array.isArray(elem) ? elem.slice(0) : [elem];\n var elemsLength = elems.length;\n for (var i = 0; i < elemsLength; i++) {\n var nextSiblings = (0, subselects_1.getNextSiblings)(elems[i], adapter);\n elems.push.apply(elems, nextSiblings);\n }\n return elems;\n}\n/**\n * @template Node The generic Node type for the DOM adapter being used.\n * @template ElementNode The Node type for elements for the DOM adapter being used.\n * @param elems Elements to query. If it is an element, its children will be queried..\n * @param query can be either a CSS selector string or a compiled query function.\n * @param [options] options for querying the document.\n * @see compile for supported selector queries.\n * @returns All matching elements.\n *\n */\nexports.selectAll = getSelectorFunc(function (query, elems, options) {\n return query === boolbase_1.falseFunc || !elems || elems.length === 0\n ? []\n : options.adapter.findAll(query, elems);\n});\n/**\n * @template Node The generic Node type for the DOM adapter being used.\n * @template ElementNode The Node type for elements for the DOM adapter being used.\n * @param elems Elements to query. If it is an element, its children will be queried..\n * @param query can be either a CSS selector string or a compiled query function.\n * @param [options] options for querying the document.\n * @see compile for supported selector queries.\n * @returns the first match, or null if there was no match.\n */\nexports.selectOne = getSelectorFunc(function (query, elems, options) {\n return query === boolbase_1.falseFunc || !elems || elems.length === 0\n ? null\n : options.adapter.findOne(query, elems);\n});\n/**\n * Tests whether or not an element is matched by query.\n *\n * @template Node The generic Node type for the DOM adapter being used.\n * @template ElementNode The Node type for elements for the DOM adapter being used.\n * @param elem The element to test if it matches the query.\n * @param query can be either a CSS selector string or a compiled query function.\n * @param [options] options for querying the document.\n * @see compile for supported selector queries.\n * @returns\n */\nfunction is(elem, query, options) {\n var opts = convertOptionFormats(options);\n return (typeof query === \"function\" ? query : (0, compile_1.compile)(query, opts))(elem);\n}\nexports.is = is;\n/**\n * Alias for selectAll(query, elems, options).\n * @see [compile] for supported selector queries.\n */\nexports.default = exports.selectAll;\n// Export filters, pseudos and aliases to allow users to supply their own.\nvar pseudo_selectors_1 = require(\"./pseudo-selectors\");\nObject.defineProperty(exports, \"filters\", { enumerable: true, get: function () { return pseudo_selectors_1.filters; } });\nObject.defineProperty(exports, \"pseudos\", { enumerable: true, get: function () { return pseudo_selectors_1.pseudos; } });\nObject.defineProperty(exports, \"aliases\", { enumerable: true, get: function () { return pseudo_selectors_1.aliases; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isTraversal = exports.procedure = void 0;\nexports.procedure = {\n universal: 50,\n tag: 30,\n attribute: 1,\n pseudo: 0,\n \"pseudo-element\": 0,\n \"column-combinator\": -1,\n descendant: -1,\n child: -1,\n parent: -1,\n sibling: -1,\n adjacent: -1,\n _flexibleDescendant: -1,\n};\nfunction isTraversal(t) {\n return exports.procedure[t.type] < 0;\n}\nexports.isTraversal = isTraversal;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.aliases = void 0;\n/**\n * Aliases are pseudos that are expressed as selectors.\n */\nexports.aliases = {\n // Links\n \"any-link\": \":is(a, area, link)[href]\",\n link: \":any-link:not(:visited)\",\n // Forms\n // https://html.spec.whatwg.org/multipage/scripting.html#disabled-elements\n disabled: \":is(\\n :is(button, input, select, textarea, optgroup, option)[disabled],\\n optgroup[disabled] > option,\\n fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)\\n )\",\n enabled: \":not(:disabled)\",\n checked: \":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)\",\n required: \":is(input, select, textarea)[required]\",\n optional: \":is(input, select, textarea):not([required])\",\n // JQuery extensions\n // https://html.spec.whatwg.org/multipage/form-elements.html#concept-option-selectedness\n selected: \"option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)\",\n checkbox: \"[type=checkbox]\",\n file: \"[type=file]\",\n password: \"[type=password]\",\n radio: \"[type=radio]\",\n reset: \"[type=reset]\",\n image: \"[type=image]\",\n submit: \"[type=submit]\",\n parent: \":not(:empty)\",\n header: \":is(h1, h2, h3, h4, h5, h6)\",\n button: \":is(button, input[type=button])\",\n input: \":is(input, textarea, select, button)\",\n text: \"input:is(:not([type!='']), [type=text])\",\n};\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filters = void 0;\nvar nth_check_1 = __importDefault(require(\"nth-check\"));\nvar boolbase_1 = require(\"boolbase\");\nfunction getChildFunc(next, adapter) {\n return function (elem) {\n var parent = adapter.getParent(elem);\n return parent != null && adapter.isTag(parent) && next(elem);\n };\n}\nexports.filters = {\n contains: function (next, text, _a) {\n var adapter = _a.adapter;\n return function contains(elem) {\n return next(elem) && adapter.getText(elem).includes(text);\n };\n },\n icontains: function (next, text, _a) {\n var adapter = _a.adapter;\n var itext = text.toLowerCase();\n return function icontains(elem) {\n return (next(elem) &&\n adapter.getText(elem).toLowerCase().includes(itext));\n };\n },\n // Location specific methods\n \"nth-child\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.falseFunc)\n return boolbase_1.falseFunc;\n if (func === boolbase_1.trueFunc)\n return getChildFunc(next, adapter);\n return function nthChild(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = 0; i < siblings.length; i++) {\n if (equals(elem, siblings[i]))\n break;\n if (adapter.isTag(siblings[i])) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n \"nth-last-child\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.falseFunc)\n return boolbase_1.falseFunc;\n if (func === boolbase_1.trueFunc)\n return getChildFunc(next, adapter);\n return function nthLastChild(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = siblings.length - 1; i >= 0; i--) {\n if (equals(elem, siblings[i]))\n break;\n if (adapter.isTag(siblings[i])) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n \"nth-of-type\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.falseFunc)\n return boolbase_1.falseFunc;\n if (func === boolbase_1.trueFunc)\n return getChildFunc(next, adapter);\n return function nthOfType(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === adapter.getName(elem)) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n \"nth-last-of-type\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.falseFunc)\n return boolbase_1.falseFunc;\n if (func === boolbase_1.trueFunc)\n return getChildFunc(next, adapter);\n return function nthLastOfType(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = siblings.length - 1; i >= 0; i--) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === adapter.getName(elem)) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n // TODO determine the actual root element\n root: function (next, _rule, _a) {\n var adapter = _a.adapter;\n return function (elem) {\n var parent = adapter.getParent(elem);\n return (parent == null || !adapter.isTag(parent)) && next(elem);\n };\n },\n scope: function (next, rule, options, context) {\n var equals = options.equals;\n if (!context || context.length === 0) {\n // Equivalent to :root\n return exports.filters.root(next, rule, options);\n }\n if (context.length === 1) {\n // NOTE: can't be unpacked, as :has uses this for side-effects\n return function (elem) { return equals(context[0], elem) && next(elem); };\n }\n return function (elem) { return context.includes(elem) && next(elem); };\n },\n hover: dynamicStatePseudo(\"isHovered\"),\n visited: dynamicStatePseudo(\"isVisited\"),\n active: dynamicStatePseudo(\"isActive\"),\n};\n/**\n * Dynamic state pseudos. These depend on optional Adapter methods.\n *\n * @param name The name of the adapter method to call.\n * @returns Pseudo for the `filters` object.\n */\nfunction dynamicStatePseudo(name) {\n return function dynamicPseudo(next, _rule, _a) {\n var adapter = _a.adapter;\n var func = adapter[name];\n if (typeof func !== \"function\") {\n return boolbase_1.falseFunc;\n }\n return function active(elem) {\n return func(elem) && next(elem);\n };\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compilePseudoSelector = exports.aliases = exports.pseudos = exports.filters = void 0;\n/*\n * Pseudo selectors\n *\n * Pseudo selectors are available in three forms:\n *\n * 1. Filters are called when the selector is compiled and return a function\n * that has to return either false, or the results of `next()`.\n * 2. Pseudos are called on execution. They have to return a boolean.\n * 3. Subselects work like filters, but have an embedded selector that will be run separately.\n *\n * Filters are great if you want to do some pre-processing, or change the call order\n * of `next()` and your code.\n * Pseudos should be used to implement simple checks.\n */\nvar boolbase_1 = require(\"boolbase\");\nvar css_what_1 = require(\"css-what\");\nvar filters_1 = require(\"./filters\");\nObject.defineProperty(exports, \"filters\", { enumerable: true, get: function () { return filters_1.filters; } });\nvar pseudos_1 = require(\"./pseudos\");\nObject.defineProperty(exports, \"pseudos\", { enumerable: true, get: function () { return pseudos_1.pseudos; } });\nvar aliases_1 = require(\"./aliases\");\nObject.defineProperty(exports, \"aliases\", { enumerable: true, get: function () { return aliases_1.aliases; } });\nvar subselects_1 = require(\"./subselects\");\nfunction compilePseudoSelector(next, selector, options, context, compileToken) {\n var name = selector.name, data = selector.data;\n if (Array.isArray(data)) {\n return subselects_1.subselects[name](next, data, options, context, compileToken);\n }\n if (name in aliases_1.aliases) {\n if (data != null) {\n throw new Error(\"Pseudo \".concat(name, \" doesn't have any arguments\"));\n }\n // The alias has to be parsed here, to make sure options are respected.\n var alias = (0, css_what_1.parse)(aliases_1.aliases[name]);\n return subselects_1.subselects.is(next, alias, options, context, compileToken);\n }\n if (name in filters_1.filters) {\n return filters_1.filters[name](next, data, options, context);\n }\n if (name in pseudos_1.pseudos) {\n var pseudo_1 = pseudos_1.pseudos[name];\n (0, pseudos_1.verifyPseudoArgs)(pseudo_1, name, data);\n return pseudo_1 === boolbase_1.falseFunc\n ? boolbase_1.falseFunc\n : next === boolbase_1.trueFunc\n ? function (elem) { return pseudo_1(elem, options, data); }\n : function (elem) { return pseudo_1(elem, options, data) && next(elem); };\n }\n throw new Error(\"unmatched pseudo-class :\".concat(name));\n}\nexports.compilePseudoSelector = compilePseudoSelector;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.verifyPseudoArgs = exports.pseudos = void 0;\n// While filters are precompiled, pseudos get called when they are needed\nexports.pseudos = {\n empty: function (elem, _a) {\n var adapter = _a.adapter;\n return !adapter.getChildren(elem).some(function (elem) {\n // FIXME: `getText` call is potentially expensive.\n return adapter.isTag(elem) || adapter.getText(elem) !== \"\";\n });\n },\n \"first-child\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var firstChild = adapter\n .getSiblings(elem)\n .find(function (elem) { return adapter.isTag(elem); });\n return firstChild != null && equals(elem, firstChild);\n },\n \"last-child\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var siblings = adapter.getSiblings(elem);\n for (var i = siblings.length - 1; i >= 0; i--) {\n if (equals(elem, siblings[i]))\n return true;\n if (adapter.isTag(siblings[i]))\n break;\n }\n return false;\n },\n \"first-of-type\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var siblings = adapter.getSiblings(elem);\n var elemName = adapter.getName(elem);\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n return true;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === elemName) {\n break;\n }\n }\n return false;\n },\n \"last-of-type\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var siblings = adapter.getSiblings(elem);\n var elemName = adapter.getName(elem);\n for (var i = siblings.length - 1; i >= 0; i--) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n return true;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === elemName) {\n break;\n }\n }\n return false;\n },\n \"only-of-type\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var elemName = adapter.getName(elem);\n return adapter\n .getSiblings(elem)\n .every(function (sibling) {\n return equals(elem, sibling) ||\n !adapter.isTag(sibling) ||\n adapter.getName(sibling) !== elemName;\n });\n },\n \"only-child\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n return adapter\n .getSiblings(elem)\n .every(function (sibling) { return equals(elem, sibling) || !adapter.isTag(sibling); });\n },\n};\nfunction verifyPseudoArgs(func, name, subselect) {\n if (subselect === null) {\n if (func.length > 2) {\n throw new Error(\"pseudo-selector :\".concat(name, \" requires an argument\"));\n }\n }\n else if (func.length === 2) {\n throw new Error(\"pseudo-selector :\".concat(name, \" doesn't have any arguments\"));\n }\n}\nexports.verifyPseudoArgs = verifyPseudoArgs;\n","\"use strict\";\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.subselects = exports.getNextSiblings = exports.ensureIsTag = exports.PLACEHOLDER_ELEMENT = void 0;\nvar boolbase_1 = require(\"boolbase\");\nvar procedure_1 = require(\"../procedure\");\n/** Used as a placeholder for :has. Will be replaced with the actual element. */\nexports.PLACEHOLDER_ELEMENT = {};\nfunction ensureIsTag(next, adapter) {\n if (next === boolbase_1.falseFunc)\n return boolbase_1.falseFunc;\n return function (elem) { return adapter.isTag(elem) && next(elem); };\n}\nexports.ensureIsTag = ensureIsTag;\nfunction getNextSiblings(elem, adapter) {\n var siblings = adapter.getSiblings(elem);\n if (siblings.length <= 1)\n return [];\n var elemIndex = siblings.indexOf(elem);\n if (elemIndex < 0 || elemIndex === siblings.length - 1)\n return [];\n return siblings.slice(elemIndex + 1).filter(adapter.isTag);\n}\nexports.getNextSiblings = getNextSiblings;\nvar is = function (next, token, options, context, compileToken) {\n var opts = {\n xmlMode: !!options.xmlMode,\n adapter: options.adapter,\n equals: options.equals,\n };\n var func = compileToken(token, opts, context);\n return function (elem) { return func(elem) && next(elem); };\n};\n/*\n * :not, :has, :is, :matches and :where have to compile selectors\n * doing this in src/pseudos.ts would lead to circular dependencies,\n * so we add them here\n */\nexports.subselects = {\n is: is,\n /**\n * `:matches` and `:where` are aliases for `:is`.\n */\n matches: is,\n where: is,\n not: function (next, token, options, context, compileToken) {\n var opts = {\n xmlMode: !!options.xmlMode,\n adapter: options.adapter,\n equals: options.equals,\n };\n var func = compileToken(token, opts, context);\n if (func === boolbase_1.falseFunc)\n return next;\n if (func === boolbase_1.trueFunc)\n return boolbase_1.falseFunc;\n return function not(elem) {\n return !func(elem) && next(elem);\n };\n },\n has: function (next, subselect, options, _context, compileToken) {\n var adapter = options.adapter;\n var opts = {\n xmlMode: !!options.xmlMode,\n adapter: adapter,\n equals: options.equals,\n };\n // @ts-expect-error Uses an array as a pointer to the current element (side effects)\n var context = subselect.some(function (s) {\n return s.some(procedure_1.isTraversal);\n })\n ? [exports.PLACEHOLDER_ELEMENT]\n : undefined;\n var compiled = compileToken(subselect, opts, context);\n if (compiled === boolbase_1.falseFunc)\n return boolbase_1.falseFunc;\n if (compiled === boolbase_1.trueFunc) {\n return function (elem) {\n return adapter.getChildren(elem).some(adapter.isTag) && next(elem);\n };\n }\n var hasElement = ensureIsTag(compiled, adapter);\n var _a = compiled.shouldTestNextSiblings, shouldTestNextSiblings = _a === void 0 ? false : _a;\n /*\n * `shouldTestNextSiblings` will only be true if the query starts with\n * a traversal (sibling or adjacent). That means we will always have a context.\n */\n if (context) {\n return function (elem) {\n context[0] = elem;\n var childs = adapter.getChildren(elem);\n var nextElements = shouldTestNextSiblings\n ? __spreadArray(__spreadArray([], childs, true), getNextSiblings(elem, adapter), true) : childs;\n return (next(elem) && adapter.existsOne(hasElement, nextElements));\n };\n }\n return function (elem) {\n return next(elem) &&\n adapter.existsOne(hasElement, adapter.getChildren(elem));\n };\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar css_what_1 = require(\"css-what\");\nvar procedure_1 = require(\"./procedure\");\nvar attributes = {\n exists: 10,\n equals: 8,\n not: 7,\n start: 6,\n end: 6,\n any: 5,\n hyphen: 4,\n element: 4,\n};\n/**\n * Sort the parts of the passed selector,\n * as there is potential for optimization\n * (some types of selectors are faster than others)\n *\n * @param arr Selector to sort\n */\nfunction sortByProcedure(arr) {\n var procs = arr.map(getProcedure);\n for (var i = 1; i < arr.length; i++) {\n var procNew = procs[i];\n if (procNew < 0)\n continue;\n for (var j = i - 1; j >= 0 && procNew < procs[j]; j--) {\n var token = arr[j + 1];\n arr[j + 1] = arr[j];\n arr[j] = token;\n procs[j + 1] = procs[j];\n procs[j] = procNew;\n }\n }\n}\nexports.default = sortByProcedure;\nfunction getProcedure(token) {\n var proc = procedure_1.procedure[token.type];\n if (token.type === css_what_1.SelectorType.Attribute) {\n proc = attributes[token.action];\n if (proc === attributes.equals && token.name === \"id\") {\n // Prefer ID selectors (eg. #ID)\n proc = 9;\n }\n if (token.ignoreCase) {\n /*\n * IgnoreCase adds some overhead, prefer \"normal\" token\n * this is a binary operation, to ensure it's still an int\n */\n proc >>= 1;\n }\n }\n else if (token.type === css_what_1.SelectorType.Pseudo) {\n if (!token.data) {\n proc = 3;\n }\n else if (token.name === \"has\" || token.name === \"contains\") {\n proc = 0; // Expensive in any case\n }\n else if (Array.isArray(token.data)) {\n // \"matches\" and \"not\"\n proc = 0;\n for (var i = 0; i < token.data.length; i++) {\n // TODO better handling of complex selectors\n if (token.data[i].length !== 1)\n continue;\n var cur = getProcedure(token.data[i][0]);\n // Avoid executing :has or :contains\n if (cur === 0) {\n proc = 0;\n break;\n }\n if (cur > proc)\n proc = cur;\n }\n if (token.data.length > 1 && proc > 0)\n proc -= 1;\n }\n else {\n proc = 1;\n }\n }\n return proc;\n}\n","export * from \"./types\";\nexport { isTraversal, parse } from \"./parse\";\nexport { stringify } from \"./stringify\";\n","import { SelectorType, AttributeAction, } from \"./types\";\nconst reName = /^[^\\\\#]?(?:\\\\(?:[\\da-f]{1,6}\\s?|.)|[\\w\\-\\u00b0-\\uFFFF])+/;\nconst reEscape = /\\\\([\\da-f]{1,6}\\s?|(\\s)|.)/gi;\nconst actionTypes = new Map([\n [126 /* Tilde */, AttributeAction.Element],\n [94 /* Circumflex */, AttributeAction.Start],\n [36 /* Dollar */, AttributeAction.End],\n [42 /* Asterisk */, AttributeAction.Any],\n [33 /* ExclamationMark */, AttributeAction.Not],\n [124 /* Pipe */, AttributeAction.Hyphen],\n]);\n// Pseudos, whose data property is parsed as well.\nconst unpackPseudos = new Set([\n \"has\",\n \"not\",\n \"matches\",\n \"is\",\n \"where\",\n \"host\",\n \"host-context\",\n]);\n/**\n * Checks whether a specific selector is a traversal.\n * This is useful eg. in swapping the order of elements that\n * are not traversals.\n *\n * @param selector Selector to check.\n */\nexport function isTraversal(selector) {\n switch (selector.type) {\n case SelectorType.Adjacent:\n case SelectorType.Child:\n case SelectorType.Descendant:\n case SelectorType.Parent:\n case SelectorType.Sibling:\n case SelectorType.ColumnCombinator:\n return true;\n default:\n return false;\n }\n}\nconst stripQuotesFromPseudos = new Set([\"contains\", \"icontains\"]);\n// Unescape function taken from https://github.com/jquery/sizzle/blob/master/src/sizzle.js#L152\nfunction funescape(_, escaped, escapedWhitespace) {\n const high = parseInt(escaped, 16) - 0x10000;\n // NaN means non-codepoint\n return high !== high || escapedWhitespace\n ? escaped\n : high < 0\n ? // BMP codepoint\n String.fromCharCode(high + 0x10000)\n : // Supplemental Plane codepoint (surrogate pair)\n String.fromCharCode((high >> 10) | 0xd800, (high & 0x3ff) | 0xdc00);\n}\nfunction unescapeCSS(str) {\n return str.replace(reEscape, funescape);\n}\nfunction isQuote(c) {\n return c === 39 /* SingleQuote */ || c === 34 /* DoubleQuote */;\n}\nfunction isWhitespace(c) {\n return (c === 32 /* Space */ ||\n c === 9 /* Tab */ ||\n c === 10 /* NewLine */ ||\n c === 12 /* FormFeed */ ||\n c === 13 /* CarriageReturn */);\n}\n/**\n * Parses `selector`, optionally with the passed `options`.\n *\n * @param selector Selector to parse.\n * @param options Options for parsing.\n * @returns Returns a two-dimensional array.\n * The first dimension represents selectors separated by commas (eg. `sub1, sub2`),\n * the second contains the relevant tokens for that selector.\n */\nexport function parse(selector) {\n const subselects = [];\n const endIndex = parseSelector(subselects, `${selector}`, 0);\n if (endIndex < selector.length) {\n throw new Error(`Unmatched selector: ${selector.slice(endIndex)}`);\n }\n return subselects;\n}\nfunction parseSelector(subselects, selector, selectorIndex) {\n let tokens = [];\n function getName(offset) {\n const match = selector.slice(selectorIndex + offset).match(reName);\n if (!match) {\n throw new Error(`Expected name, found ${selector.slice(selectorIndex)}`);\n }\n const [name] = match;\n selectorIndex += offset + name.length;\n return unescapeCSS(name);\n }\n function stripWhitespace(offset) {\n selectorIndex += offset;\n while (selectorIndex < selector.length &&\n isWhitespace(selector.charCodeAt(selectorIndex))) {\n selectorIndex++;\n }\n }\n function readValueWithParenthesis() {\n selectorIndex += 1;\n const start = selectorIndex;\n let counter = 1;\n for (; counter > 0 && selectorIndex < selector.length; selectorIndex++) {\n if (selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */ &&\n !isEscaped(selectorIndex)) {\n counter++;\n }\n else if (selector.charCodeAt(selectorIndex) ===\n 41 /* RightParenthesis */ &&\n !isEscaped(selectorIndex)) {\n counter--;\n }\n }\n if (counter) {\n throw new Error(\"Parenthesis not matched\");\n }\n return unescapeCSS(selector.slice(start, selectorIndex - 1));\n }\n function isEscaped(pos) {\n let slashCount = 0;\n while (selector.charCodeAt(--pos) === 92 /* BackSlash */)\n slashCount++;\n return (slashCount & 1) === 1;\n }\n function ensureNotTraversal() {\n if (tokens.length > 0 && isTraversal(tokens[tokens.length - 1])) {\n throw new Error(\"Did not expect successive traversals.\");\n }\n }\n function addTraversal(type) {\n if (tokens.length > 0 &&\n tokens[tokens.length - 1].type === SelectorType.Descendant) {\n tokens[tokens.length - 1].type = type;\n return;\n }\n ensureNotTraversal();\n tokens.push({ type });\n }\n function addSpecialAttribute(name, action) {\n tokens.push({\n type: SelectorType.Attribute,\n name,\n action,\n value: getName(1),\n namespace: null,\n ignoreCase: \"quirks\",\n });\n }\n /**\n * We have finished parsing the current part of the selector.\n *\n * Remove descendant tokens at the end if they exist,\n * and return the last index, so that parsing can be\n * picked up from here.\n */\n function finalizeSubselector() {\n if (tokens.length &&\n tokens[tokens.length - 1].type === SelectorType.Descendant) {\n tokens.pop();\n }\n if (tokens.length === 0) {\n throw new Error(\"Empty sub-selector\");\n }\n subselects.push(tokens);\n }\n stripWhitespace(0);\n if (selector.length === selectorIndex) {\n return selectorIndex;\n }\n loop: while (selectorIndex < selector.length) {\n const firstChar = selector.charCodeAt(selectorIndex);\n switch (firstChar) {\n // Whitespace\n case 32 /* Space */:\n case 9 /* Tab */:\n case 10 /* NewLine */:\n case 12 /* FormFeed */:\n case 13 /* CarriageReturn */: {\n if (tokens.length === 0 ||\n tokens[0].type !== SelectorType.Descendant) {\n ensureNotTraversal();\n tokens.push({ type: SelectorType.Descendant });\n }\n stripWhitespace(1);\n break;\n }\n // Traversals\n case 62 /* GreaterThan */: {\n addTraversal(SelectorType.Child);\n stripWhitespace(1);\n break;\n }\n case 60 /* LessThan */: {\n addTraversal(SelectorType.Parent);\n stripWhitespace(1);\n break;\n }\n case 126 /* Tilde */: {\n addTraversal(SelectorType.Sibling);\n stripWhitespace(1);\n break;\n }\n case 43 /* Plus */: {\n addTraversal(SelectorType.Adjacent);\n stripWhitespace(1);\n break;\n }\n // Special attribute selectors: .class, #id\n case 46 /* Period */: {\n addSpecialAttribute(\"class\", AttributeAction.Element);\n break;\n }\n case 35 /* Hash */: {\n addSpecialAttribute(\"id\", AttributeAction.Equals);\n break;\n }\n case 91 /* LeftSquareBracket */: {\n stripWhitespace(1);\n // Determine attribute name and namespace\n let name;\n let namespace = null;\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */) {\n // Equivalent to no namespace\n name = getName(1);\n }\n else if (selector.startsWith(\"*|\", selectorIndex)) {\n namespace = \"*\";\n name = getName(2);\n }\n else {\n name = getName(0);\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&\n selector.charCodeAt(selectorIndex + 1) !==\n 61 /* Equal */) {\n namespace = name;\n name = getName(1);\n }\n }\n stripWhitespace(0);\n // Determine comparison operation\n let action = AttributeAction.Exists;\n const possibleAction = actionTypes.get(selector.charCodeAt(selectorIndex));\n if (possibleAction) {\n action = possibleAction;\n if (selector.charCodeAt(selectorIndex + 1) !==\n 61 /* Equal */) {\n throw new Error(\"Expected `=`\");\n }\n stripWhitespace(2);\n }\n else if (selector.charCodeAt(selectorIndex) === 61 /* Equal */) {\n action = AttributeAction.Equals;\n stripWhitespace(1);\n }\n // Determine value\n let value = \"\";\n let ignoreCase = null;\n if (action !== \"exists\") {\n if (isQuote(selector.charCodeAt(selectorIndex))) {\n const quote = selector.charCodeAt(selectorIndex);\n let sectionEnd = selectorIndex + 1;\n while (sectionEnd < selector.length &&\n (selector.charCodeAt(sectionEnd) !== quote ||\n isEscaped(sectionEnd))) {\n sectionEnd += 1;\n }\n if (selector.charCodeAt(sectionEnd) !== quote) {\n throw new Error(\"Attribute value didn't end\");\n }\n value = unescapeCSS(selector.slice(selectorIndex + 1, sectionEnd));\n selectorIndex = sectionEnd + 1;\n }\n else {\n const valueStart = selectorIndex;\n while (selectorIndex < selector.length &&\n ((!isWhitespace(selector.charCodeAt(selectorIndex)) &&\n selector.charCodeAt(selectorIndex) !==\n 93 /* RightSquareBracket */) ||\n isEscaped(selectorIndex))) {\n selectorIndex += 1;\n }\n value = unescapeCSS(selector.slice(valueStart, selectorIndex));\n }\n stripWhitespace(0);\n // See if we have a force ignore flag\n const forceIgnore = selector.charCodeAt(selectorIndex) | 0x20;\n // If the forceIgnore flag is set (either `i` or `s`), use that value\n if (forceIgnore === 115 /* LowerS */) {\n ignoreCase = false;\n stripWhitespace(1);\n }\n else if (forceIgnore === 105 /* LowerI */) {\n ignoreCase = true;\n stripWhitespace(1);\n }\n }\n if (selector.charCodeAt(selectorIndex) !==\n 93 /* RightSquareBracket */) {\n throw new Error(\"Attribute selector didn't terminate\");\n }\n selectorIndex += 1;\n const attributeSelector = {\n type: SelectorType.Attribute,\n name,\n action,\n value,\n namespace,\n ignoreCase,\n };\n tokens.push(attributeSelector);\n break;\n }\n case 58 /* Colon */: {\n if (selector.charCodeAt(selectorIndex + 1) === 58 /* Colon */) {\n tokens.push({\n type: SelectorType.PseudoElement,\n name: getName(2).toLowerCase(),\n data: selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */\n ? readValueWithParenthesis()\n : null,\n });\n continue;\n }\n const name = getName(1).toLowerCase();\n let data = null;\n if (selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */) {\n if (unpackPseudos.has(name)) {\n if (isQuote(selector.charCodeAt(selectorIndex + 1))) {\n throw new Error(`Pseudo-selector ${name} cannot be quoted`);\n }\n data = [];\n selectorIndex = parseSelector(data, selector, selectorIndex + 1);\n if (selector.charCodeAt(selectorIndex) !==\n 41 /* RightParenthesis */) {\n throw new Error(`Missing closing parenthesis in :${name} (${selector})`);\n }\n selectorIndex += 1;\n }\n else {\n data = readValueWithParenthesis();\n if (stripQuotesFromPseudos.has(name)) {\n const quot = data.charCodeAt(0);\n if (quot === data.charCodeAt(data.length - 1) &&\n isQuote(quot)) {\n data = data.slice(1, -1);\n }\n }\n data = unescapeCSS(data);\n }\n }\n tokens.push({ type: SelectorType.Pseudo, name, data });\n break;\n }\n case 44 /* Comma */: {\n finalizeSubselector();\n tokens = [];\n stripWhitespace(1);\n break;\n }\n default: {\n if (selector.startsWith(\"/*\", selectorIndex)) {\n const endIndex = selector.indexOf(\"*/\", selectorIndex + 2);\n if (endIndex < 0) {\n throw new Error(\"Comment was not terminated\");\n }\n selectorIndex = endIndex + 2;\n // Remove leading whitespace\n if (tokens.length === 0) {\n stripWhitespace(0);\n }\n break;\n }\n let namespace = null;\n let name;\n if (firstChar === 42 /* Asterisk */) {\n selectorIndex += 1;\n name = \"*\";\n }\n else if (firstChar === 124 /* Pipe */) {\n name = \"\";\n if (selector.charCodeAt(selectorIndex + 1) === 124 /* Pipe */) {\n addTraversal(SelectorType.ColumnCombinator);\n stripWhitespace(2);\n break;\n }\n }\n else if (reName.test(selector.slice(selectorIndex))) {\n name = getName(0);\n }\n else {\n break loop;\n }\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&\n selector.charCodeAt(selectorIndex + 1) !== 124 /* Pipe */) {\n namespace = name;\n if (selector.charCodeAt(selectorIndex + 1) ===\n 42 /* Asterisk */) {\n name = \"*\";\n selectorIndex += 2;\n }\n else {\n name = getName(1);\n }\n }\n tokens.push(name === \"*\"\n ? { type: SelectorType.Universal, namespace }\n : { type: SelectorType.Tag, name, namespace });\n }\n }\n }\n finalizeSubselector();\n return selectorIndex;\n}\n","import { SelectorType, AttributeAction } from \"./types\";\nconst attribValChars = [\"\\\\\", '\"'];\nconst pseudoValChars = [...attribValChars, \"(\", \")\"];\nconst charsToEscapeInAttributeValue = new Set(attribValChars.map((c) => c.charCodeAt(0)));\nconst charsToEscapeInPseudoValue = new Set(pseudoValChars.map((c) => c.charCodeAt(0)));\nconst charsToEscapeInName = new Set([\n ...pseudoValChars,\n \"~\",\n \"^\",\n \"$\",\n \"*\",\n \"+\",\n \"!\",\n \"|\",\n \":\",\n \"[\",\n \"]\",\n \" \",\n \".\",\n].map((c) => c.charCodeAt(0)));\n/**\n * Turns `selector` back into a string.\n *\n * @param selector Selector to stringify.\n */\nexport function stringify(selector) {\n return selector\n .map((token) => token.map(stringifyToken).join(\"\"))\n .join(\", \");\n}\nfunction stringifyToken(token, index, arr) {\n switch (token.type) {\n // Simple types\n case SelectorType.Child:\n return index === 0 ? \"> \" : \" > \";\n case SelectorType.Parent:\n return index === 0 ? \"< \" : \" < \";\n case SelectorType.Sibling:\n return index === 0 ? \"~ \" : \" ~ \";\n case SelectorType.Adjacent:\n return index === 0 ? \"+ \" : \" + \";\n case SelectorType.Descendant:\n return \" \";\n case SelectorType.ColumnCombinator:\n return index === 0 ? \"|| \" : \" || \";\n case SelectorType.Universal:\n // Return an empty string if the selector isn't needed.\n return token.namespace === \"*\" &&\n index + 1 < arr.length &&\n \"name\" in arr[index + 1]\n ? \"\"\n : `${getNamespace(token.namespace)}*`;\n case SelectorType.Tag:\n return getNamespacedName(token);\n case SelectorType.PseudoElement:\n return `::${escapeName(token.name, charsToEscapeInName)}${token.data === null\n ? \"\"\n : `(${escapeName(token.data, charsToEscapeInPseudoValue)})`}`;\n case SelectorType.Pseudo:\n return `:${escapeName(token.name, charsToEscapeInName)}${token.data === null\n ? \"\"\n : `(${typeof token.data === \"string\"\n ? escapeName(token.data, charsToEscapeInPseudoValue)\n : stringify(token.data)})`}`;\n case SelectorType.Attribute: {\n if (token.name === \"id\" &&\n token.action === AttributeAction.Equals &&\n token.ignoreCase === \"quirks\" &&\n !token.namespace) {\n return `#${escapeName(token.value, charsToEscapeInName)}`;\n }\n if (token.name === \"class\" &&\n token.action === AttributeAction.Element &&\n token.ignoreCase === \"quirks\" &&\n !token.namespace) {\n return `.${escapeName(token.value, charsToEscapeInName)}`;\n }\n const name = getNamespacedName(token);\n if (token.action === AttributeAction.Exists) {\n return `[${name}]`;\n }\n return `[${name}${getActionValue(token.action)}=\"${escapeName(token.value, charsToEscapeInAttributeValue)}\"${token.ignoreCase === null ? \"\" : token.ignoreCase ? \" i\" : \" s\"}]`;\n }\n }\n}\nfunction getActionValue(action) {\n switch (action) {\n case AttributeAction.Equals:\n return \"\";\n case AttributeAction.Element:\n return \"~\";\n case AttributeAction.Start:\n return \"^\";\n case AttributeAction.End:\n return \"$\";\n case AttributeAction.Any:\n return \"*\";\n case AttributeAction.Not:\n return \"!\";\n case AttributeAction.Hyphen:\n return \"|\";\n case AttributeAction.Exists:\n throw new Error(\"Shouldn't be here\");\n }\n}\nfunction getNamespacedName(token) {\n return `${getNamespace(token.namespace)}${escapeName(token.name, charsToEscapeInName)}`;\n}\nfunction getNamespace(namespace) {\n return namespace !== null\n ? `${namespace === \"*\"\n ? \"*\"\n : escapeName(namespace, charsToEscapeInName)}|`\n : \"\";\n}\nfunction escapeName(str, charsToEscape) {\n let lastIdx = 0;\n let ret = \"\";\n for (let i = 0; i < str.length; i++) {\n if (charsToEscape.has(str.charCodeAt(i))) {\n ret += `${str.slice(lastIdx, i)}\\\\${str.charAt(i)}`;\n lastIdx = i + 1;\n }\n }\n return ret.length > 0 ? ret + str.slice(lastIdx) : str;\n}\n","export var SelectorType;\n(function (SelectorType) {\n SelectorType[\"Attribute\"] = \"attribute\";\n SelectorType[\"Pseudo\"] = \"pseudo\";\n SelectorType[\"PseudoElement\"] = \"pseudo-element\";\n SelectorType[\"Tag\"] = \"tag\";\n SelectorType[\"Universal\"] = \"universal\";\n // Traversals\n SelectorType[\"Adjacent\"] = \"adjacent\";\n SelectorType[\"Child\"] = \"child\";\n SelectorType[\"Descendant\"] = \"descendant\";\n SelectorType[\"Parent\"] = \"parent\";\n SelectorType[\"Sibling\"] = \"sibling\";\n SelectorType[\"ColumnCombinator\"] = \"column-combinator\";\n})(SelectorType || (SelectorType = {}));\n/**\n * Modes for ignore case.\n *\n * This could be updated to an enum, and the object is\n * the current stand-in that will allow code to be updated\n * without big changes.\n */\nexport const IgnoreCaseMode = {\n Unknown: null,\n QuirksMode: \"quirks\",\n IgnoreCase: true,\n CaseSensitive: false,\n};\nexport var AttributeAction;\n(function (AttributeAction) {\n AttributeAction[\"Any\"] = \"any\";\n AttributeAction[\"Element\"] = \"element\";\n AttributeAction[\"End\"] = \"end\";\n AttributeAction[\"Equals\"] = \"equals\";\n AttributeAction[\"Exists\"] = \"exists\";\n AttributeAction[\"Hyphen\"] = \"hyphen\";\n AttributeAction[\"Not\"] = \"not\";\n AttributeAction[\"Start\"] = \"start\";\n})(AttributeAction || (AttributeAction = {}));\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/**\n * Detect Electron renderer process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process !== 'undefined' && process.type === 'renderer') {\n module.exports = require('./browser.js');\n} else {\n module.exports = require('./node.js');\n}\n","/**\n * Module dependencies.\n */\n\nvar tty = require('tty');\nvar util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n // camel-case\n var prop = key\n .substring(6)\n .toLowerCase()\n .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });\n\n // coerce string value into JS value\n var val = process.env[key];\n if (/^(yes|on|true|enabled)$/i.test(val)) val = true;\n else if (/^(no|off|false|disabled)$/i.test(val)) val = false;\n else if (val === 'null') val = null;\n else val = Number(val);\n\n obj[prop] = val;\n return obj;\n}, {});\n\n/**\n * The file descriptor to write the `debug()` calls to.\n * Set the `DEBUG_FD` env variable to override with another value. i.e.:\n *\n * $ DEBUG_FD=3 node script.js 3>debug.log\n */\n\nvar fd = parseInt(process.env.DEBUG_FD, 10) || 2;\n\nif (1 !== fd && 2 !== fd) {\n util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')()\n}\n\nvar stream = 1 === fd ? process.stdout :\n 2 === fd ? process.stderr :\n createWritableStdioStream(fd);\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n return 'colors' in exports.inspectOpts\n ? Boolean(exports.inspectOpts.colors)\n : tty.isatty(fd);\n}\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nexports.formatters.o = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts)\n .split('\\n').map(function(str) {\n return str.trim()\n }).join(' ');\n};\n\n/**\n * Map %o to `util.inspect()`, allowing multiple lines if needed.\n */\n\nexports.formatters.O = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts);\n};\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var name = this.namespace;\n var useColors = this.useColors;\n\n if (useColors) {\n var c = this.color;\n var prefix = ' \\u001b[3' + c + ';1m' + name + ' ' + '\\u001b[0m';\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n args.push('\\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\\u001b[0m');\n } else {\n args[0] = new Date().toUTCString()\n + ' ' + name + ' ' + args[0];\n }\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to `stream`.\n */\n\nfunction log() {\n return stream.write(util.format.apply(util, arguments) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n if (null == namespaces) {\n // If you set a process.env field to null or undefined, it gets cast to the\n // string 'null' or 'undefined'. Just delete instead.\n delete process.env.DEBUG;\n } else {\n process.env.DEBUG = namespaces;\n }\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n return process.env.DEBUG;\n}\n\n/**\n * Copied from `node/src/node.js`.\n *\n * XXX: It's lame that node doesn't expose this API out-of-the-box. It also\n * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.\n */\n\nfunction createWritableStdioStream (fd) {\n var stream;\n var tty_wrap = process.binding('tty_wrap');\n\n // Note stream._type is used for test-module-load-list.js\n\n switch (tty_wrap.guessHandleType(fd)) {\n case 'TTY':\n stream = new tty.WriteStream(fd);\n stream._type = 'tty';\n\n // Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n case 'FILE':\n var fs = require('fs');\n stream = new fs.SyncWriteStream(fd, { autoClose: false });\n stream._type = 'fs';\n break;\n\n case 'PIPE':\n case 'TCP':\n var net = require('net');\n stream = new net.Socket({\n fd: fd,\n readable: false,\n writable: true\n });\n\n // FIXME Should probably have an option in net.Socket to create a\n // stream from an existing fd which is writable only. But for now\n // we'll just add this hack and set the `readable` member to false.\n // Test: ./node test/fixtures/echo.js < /etc/passwd\n stream.readable = false;\n stream.read = null;\n stream._type = 'pipe';\n\n // FIXME Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n default:\n // Probably an error on in uv_guess_handle()\n throw new Error('Implement me. Unknown stream file type!');\n }\n\n // For supporting legacy API we put the FD here.\n stream.fd = fd;\n\n stream._isStdio = true;\n\n return stream;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init (debug) {\n debug.inspectOpts = {};\n\n var keys = Object.keys(exports.inspectOpts);\n for (var i = 0; i < keys.length; i++) {\n debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n }\n}\n\n/**\n * Enable namespaces listed in `process.env.DEBUG` initially.\n */\n\nexports.enable(load());\n","/*!\n * depd\n * Copyright(c) 2014-2018 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar relative = require('path').relative\n\n/**\n * Module exports.\n */\n\nmodule.exports = depd\n\n/**\n * Get the path to base files on.\n */\n\nvar basePath = process.cwd()\n\n/**\n * Determine if namespace is contained in the string.\n */\n\nfunction containsNamespace (str, namespace) {\n var vals = str.split(/[ ,]+/)\n var ns = String(namespace).toLowerCase()\n\n for (var i = 0; i < vals.length; i++) {\n var val = vals[i]\n\n // namespace contained\n if (val && (val === '*' || val.toLowerCase() === ns)) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Convert a data descriptor to accessor descriptor.\n */\n\nfunction convertDataDescriptorToAccessor (obj, prop, message) {\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop)\n var value = descriptor.value\n\n descriptor.get = function getter () { return value }\n\n if (descriptor.writable) {\n descriptor.set = function setter (val) { return (value = val) }\n }\n\n delete descriptor.value\n delete descriptor.writable\n\n Object.defineProperty(obj, prop, descriptor)\n\n return descriptor\n}\n\n/**\n * Create arguments string to keep arity.\n */\n\nfunction createArgumentsString (arity) {\n var str = ''\n\n for (var i = 0; i < arity; i++) {\n str += ', arg' + i\n }\n\n return str.substr(2)\n}\n\n/**\n * Create stack string from stack.\n */\n\nfunction createStackString (stack) {\n var str = this.name + ': ' + this.namespace\n\n if (this.message) {\n str += ' deprecated ' + this.message\n }\n\n for (var i = 0; i < stack.length; i++) {\n str += '\\n at ' + stack[i].toString()\n }\n\n return str\n}\n\n/**\n * Create deprecate for namespace in caller.\n */\n\nfunction depd (namespace) {\n if (!namespace) {\n throw new TypeError('argument namespace is required')\n }\n\n var stack = getStack()\n var site = callSiteLocation(stack[1])\n var file = site[0]\n\n function deprecate (message) {\n // call to self as log\n log.call(deprecate, message)\n }\n\n deprecate._file = file\n deprecate._ignored = isignored(namespace)\n deprecate._namespace = namespace\n deprecate._traced = istraced(namespace)\n deprecate._warned = Object.create(null)\n\n deprecate.function = wrapfunction\n deprecate.property = wrapproperty\n\n return deprecate\n}\n\n/**\n * Determine if event emitter has listeners of a given type.\n *\n * The way to do this check is done three different ways in Node.js >= 0.8\n * so this consolidates them into a minimal set using instance methods.\n *\n * @param {EventEmitter} emitter\n * @param {string} type\n * @returns {boolean}\n * @private\n */\n\nfunction eehaslisteners (emitter, type) {\n var count = typeof emitter.listenerCount !== 'function'\n ? emitter.listeners(type).length\n : emitter.listenerCount(type)\n\n return count > 0\n}\n\n/**\n * Determine if namespace is ignored.\n */\n\nfunction isignored (namespace) {\n if (process.noDeprecation) {\n // --no-deprecation support\n return true\n }\n\n var str = process.env.NO_DEPRECATION || ''\n\n // namespace ignored\n return containsNamespace(str, namespace)\n}\n\n/**\n * Determine if namespace is traced.\n */\n\nfunction istraced (namespace) {\n if (process.traceDeprecation) {\n // --trace-deprecation support\n return true\n }\n\n var str = process.env.TRACE_DEPRECATION || ''\n\n // namespace traced\n return containsNamespace(str, namespace)\n}\n\n/**\n * Display deprecation message.\n */\n\nfunction log (message, site) {\n var haslisteners = eehaslisteners(process, 'deprecation')\n\n // abort early if no destination\n if (!haslisteners && this._ignored) {\n return\n }\n\n var caller\n var callFile\n var callSite\n var depSite\n var i = 0\n var seen = false\n var stack = getStack()\n var file = this._file\n\n if (site) {\n // provided site\n depSite = site\n callSite = callSiteLocation(stack[1])\n callSite.name = depSite.name\n file = callSite[0]\n } else {\n // get call site\n i = 2\n depSite = callSiteLocation(stack[i])\n callSite = depSite\n }\n\n // get caller of deprecated thing in relation to file\n for (; i < stack.length; i++) {\n caller = callSiteLocation(stack[i])\n callFile = caller[0]\n\n if (callFile === file) {\n seen = true\n } else if (callFile === this._file) {\n file = this._file\n } else if (seen) {\n break\n }\n }\n\n var key = caller\n ? depSite.join(':') + '__' + caller.join(':')\n : undefined\n\n if (key !== undefined && key in this._warned) {\n // already warned\n return\n }\n\n this._warned[key] = true\n\n // generate automatic message from call site\n var msg = message\n if (!msg) {\n msg = callSite === depSite || !callSite.name\n ? defaultMessage(depSite)\n : defaultMessage(callSite)\n }\n\n // emit deprecation if listeners exist\n if (haslisteners) {\n var err = DeprecationError(this._namespace, msg, stack.slice(i))\n process.emit('deprecation', err)\n return\n }\n\n // format and write message\n var format = process.stderr.isTTY\n ? formatColor\n : formatPlain\n var output = format.call(this, msg, caller, stack.slice(i))\n process.stderr.write(output + '\\n', 'utf8')\n}\n\n/**\n * Get call site location as array.\n */\n\nfunction callSiteLocation (callSite) {\n var file = callSite.getFileName() || ''\n var line = callSite.getLineNumber()\n var colm = callSite.getColumnNumber()\n\n if (callSite.isEval()) {\n file = callSite.getEvalOrigin() + ', ' + file\n }\n\n var site = [file, line, colm]\n\n site.callSite = callSite\n site.name = callSite.getFunctionName()\n\n return site\n}\n\n/**\n * Generate a default message from the site.\n */\n\nfunction defaultMessage (site) {\n var callSite = site.callSite\n var funcName = site.name\n\n // make useful anonymous name\n if (!funcName) {\n funcName = ''\n }\n\n var context = callSite.getThis()\n var typeName = context && callSite.getTypeName()\n\n // ignore useless type name\n if (typeName === 'Object') {\n typeName = undefined\n }\n\n // make useful type name\n if (typeName === 'Function') {\n typeName = context.name || typeName\n }\n\n return typeName && callSite.getMethodName()\n ? typeName + '.' + funcName\n : funcName\n}\n\n/**\n * Format deprecation message without color.\n */\n\nfunction formatPlain (msg, caller, stack) {\n var timestamp = new Date().toUTCString()\n\n var formatted = timestamp +\n ' ' + this._namespace +\n ' deprecated ' + msg\n\n // add stack trace\n if (this._traced) {\n for (var i = 0; i < stack.length; i++) {\n formatted += '\\n at ' + stack[i].toString()\n }\n\n return formatted\n }\n\n if (caller) {\n formatted += ' at ' + formatLocation(caller)\n }\n\n return formatted\n}\n\n/**\n * Format deprecation message with color.\n */\n\nfunction formatColor (msg, caller, stack) {\n var formatted = '\\x1b[36;1m' + this._namespace + '\\x1b[22;39m' + // bold cyan\n ' \\x1b[33;1mdeprecated\\x1b[22;39m' + // bold yellow\n ' \\x1b[0m' + msg + '\\x1b[39m' // reset\n\n // add stack trace\n if (this._traced) {\n for (var i = 0; i < stack.length; i++) {\n formatted += '\\n \\x1b[36mat ' + stack[i].toString() + '\\x1b[39m' // cyan\n }\n\n return formatted\n }\n\n if (caller) {\n formatted += ' \\x1b[36m' + formatLocation(caller) + '\\x1b[39m' // cyan\n }\n\n return formatted\n}\n\n/**\n * Format call site location.\n */\n\nfunction formatLocation (callSite) {\n return relative(basePath, callSite[0]) +\n ':' + callSite[1] +\n ':' + callSite[2]\n}\n\n/**\n * Get the stack as array of call sites.\n */\n\nfunction getStack () {\n var limit = Error.stackTraceLimit\n var obj = {}\n var prep = Error.prepareStackTrace\n\n Error.prepareStackTrace = prepareObjectStackTrace\n Error.stackTraceLimit = Math.max(10, limit)\n\n // capture the stack\n Error.captureStackTrace(obj)\n\n // slice this function off the top\n var stack = obj.stack.slice(1)\n\n Error.prepareStackTrace = prep\n Error.stackTraceLimit = limit\n\n return stack\n}\n\n/**\n * Capture call site stack from v8.\n */\n\nfunction prepareObjectStackTrace (obj, stack) {\n return stack\n}\n\n/**\n * Return a wrapped function in a deprecation message.\n */\n\nfunction wrapfunction (fn, message) {\n if (typeof fn !== 'function') {\n throw new TypeError('argument fn must be a function')\n }\n\n var args = createArgumentsString(fn.length)\n var stack = getStack()\n var site = callSiteLocation(stack[1])\n\n site.name = fn.name\n\n // eslint-disable-next-line no-new-func\n var deprecatedfn = new Function('fn', 'log', 'deprecate', 'message', 'site',\n '\"use strict\"\\n' +\n 'return function (' + args + ') {' +\n 'log.call(deprecate, message, site)\\n' +\n 'return fn.apply(this, arguments)\\n' +\n '}')(fn, log, this, message, site)\n\n return deprecatedfn\n}\n\n/**\n * Wrap property in a deprecation message.\n */\n\nfunction wrapproperty (obj, prop, message) {\n if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n throw new TypeError('argument obj must be object')\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop)\n\n if (!descriptor) {\n throw new TypeError('must call property on owner object')\n }\n\n if (!descriptor.configurable) {\n throw new TypeError('property must be configurable')\n }\n\n var deprecate = this\n var stack = getStack()\n var site = callSiteLocation(stack[1])\n\n // set site name\n site.name = prop\n\n // convert data descriptor\n if ('value' in descriptor) {\n descriptor = convertDataDescriptorToAccessor(obj, prop, message)\n }\n\n var get = descriptor.get\n var set = descriptor.set\n\n // wrap getter\n if (typeof get === 'function') {\n descriptor.get = function getter () {\n log.call(deprecate, message, site)\n return get.apply(this, arguments)\n }\n }\n\n // wrap setter\n if (typeof set === 'function') {\n descriptor.set = function setter () {\n log.call(deprecate, message, site)\n return set.apply(this, arguments)\n }\n }\n\n Object.defineProperty(obj, prop, descriptor)\n}\n\n/**\n * Create DeprecationError for deprecation\n */\n\nfunction DeprecationError (namespace, message, stack) {\n var error = new Error()\n var stackString\n\n Object.defineProperty(error, 'constructor', {\n value: DeprecationError\n })\n\n Object.defineProperty(error, 'message', {\n configurable: true,\n enumerable: false,\n value: message,\n writable: true\n })\n\n Object.defineProperty(error, 'name', {\n enumerable: false,\n configurable: true,\n value: 'DeprecationError',\n writable: true\n })\n\n Object.defineProperty(error, 'namespace', {\n configurable: true,\n enumerable: false,\n value: namespace,\n writable: true\n })\n\n Object.defineProperty(error, 'stack', {\n configurable: true,\n enumerable: false,\n get: function () {\n if (stackString !== undefined) {\n return stackString\n }\n\n // prepare stack trace\n return (stackString = createStackString.call(this, stack))\n },\n set: function setter (val) {\n stackString = val\n }\n })\n\n return error\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n [\"altglyph\", \"altGlyph\"],\n [\"altglyphdef\", \"altGlyphDef\"],\n [\"altglyphitem\", \"altGlyphItem\"],\n [\"animatecolor\", \"animateColor\"],\n [\"animatemotion\", \"animateMotion\"],\n [\"animatetransform\", \"animateTransform\"],\n [\"clippath\", \"clipPath\"],\n [\"feblend\", \"feBlend\"],\n [\"fecolormatrix\", \"feColorMatrix\"],\n [\"fecomponenttransfer\", \"feComponentTransfer\"],\n [\"fecomposite\", \"feComposite\"],\n [\"feconvolvematrix\", \"feConvolveMatrix\"],\n [\"fediffuselighting\", \"feDiffuseLighting\"],\n [\"fedisplacementmap\", \"feDisplacementMap\"],\n [\"fedistantlight\", \"feDistantLight\"],\n [\"fedropshadow\", \"feDropShadow\"],\n [\"feflood\", \"feFlood\"],\n [\"fefunca\", \"feFuncA\"],\n [\"fefuncb\", \"feFuncB\"],\n [\"fefuncg\", \"feFuncG\"],\n [\"fefuncr\", \"feFuncR\"],\n [\"fegaussianblur\", \"feGaussianBlur\"],\n [\"feimage\", \"feImage\"],\n [\"femerge\", \"feMerge\"],\n [\"femergenode\", \"feMergeNode\"],\n [\"femorphology\", \"feMorphology\"],\n [\"feoffset\", \"feOffset\"],\n [\"fepointlight\", \"fePointLight\"],\n [\"fespecularlighting\", \"feSpecularLighting\"],\n [\"fespotlight\", \"feSpotLight\"],\n [\"fetile\", \"feTile\"],\n [\"feturbulence\", \"feTurbulence\"],\n [\"foreignobject\", \"foreignObject\"],\n [\"glyphref\", \"glyphRef\"],\n [\"lineargradient\", \"linearGradient\"],\n [\"radialgradient\", \"radialGradient\"],\n [\"textpath\", \"textPath\"],\n]);\nexports.attributeNames = new Map([\n [\"definitionurl\", \"definitionURL\"],\n [\"attributename\", \"attributeName\"],\n [\"attributetype\", \"attributeType\"],\n [\"basefrequency\", \"baseFrequency\"],\n [\"baseprofile\", \"baseProfile\"],\n [\"calcmode\", \"calcMode\"],\n [\"clippathunits\", \"clipPathUnits\"],\n [\"diffuseconstant\", \"diffuseConstant\"],\n [\"edgemode\", \"edgeMode\"],\n [\"filterunits\", \"filterUnits\"],\n [\"glyphref\", \"glyphRef\"],\n [\"gradienttransform\", \"gradientTransform\"],\n [\"gradientunits\", \"gradientUnits\"],\n [\"kernelmatrix\", \"kernelMatrix\"],\n [\"kernelunitlength\", \"kernelUnitLength\"],\n [\"keypoints\", \"keyPoints\"],\n [\"keysplines\", \"keySplines\"],\n [\"keytimes\", \"keyTimes\"],\n [\"lengthadjust\", \"lengthAdjust\"],\n [\"limitingconeangle\", \"limitingConeAngle\"],\n [\"markerheight\", \"markerHeight\"],\n [\"markerunits\", \"markerUnits\"],\n [\"markerwidth\", \"markerWidth\"],\n [\"maskcontentunits\", \"maskContentUnits\"],\n [\"maskunits\", \"maskUnits\"],\n [\"numoctaves\", \"numOctaves\"],\n [\"pathlength\", \"pathLength\"],\n [\"patterncontentunits\", \"patternContentUnits\"],\n [\"patterntransform\", \"patternTransform\"],\n [\"patternunits\", \"patternUnits\"],\n [\"pointsatx\", \"pointsAtX\"],\n [\"pointsaty\", \"pointsAtY\"],\n [\"pointsatz\", \"pointsAtZ\"],\n [\"preservealpha\", \"preserveAlpha\"],\n [\"preserveaspectratio\", \"preserveAspectRatio\"],\n [\"primitiveunits\", \"primitiveUnits\"],\n [\"refx\", \"refX\"],\n [\"refy\", \"refY\"],\n [\"repeatcount\", \"repeatCount\"],\n [\"repeatdur\", \"repeatDur\"],\n [\"requiredextensions\", \"requiredExtensions\"],\n [\"requiredfeatures\", \"requiredFeatures\"],\n [\"specularconstant\", \"specularConstant\"],\n [\"specularexponent\", \"specularExponent\"],\n [\"spreadmethod\", \"spreadMethod\"],\n [\"startoffset\", \"startOffset\"],\n [\"stddeviation\", \"stdDeviation\"],\n [\"stitchtiles\", \"stitchTiles\"],\n [\"surfacescale\", \"surfaceScale\"],\n [\"systemlanguage\", \"systemLanguage\"],\n [\"tablevalues\", \"tableValues\"],\n [\"targetx\", \"targetX\"],\n [\"targety\", \"targetY\"],\n [\"textlength\", \"textLength\"],\n [\"viewbox\", \"viewBox\"],\n [\"viewtarget\", \"viewTarget\"],\n [\"xchannelselector\", \"xChannelSelector\"],\n [\"ychannelselector\", \"yChannelSelector\"],\n [\"zoomandpan\", \"zoomAndPan\"],\n]);\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_1 = require(\"./foreignNames\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n if (!attributes)\n return;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return key + \"=\\\"\" + (opts.decodeEntities !== false\n ? entities_1.encodeXML(value)\n : value.replace(/\"/g, \""\")) + \"\\\"\";\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n case ElementType.Directive:\n case ElementType.Doctype:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\" + elem.name;\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \" + attribs;\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"\";\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\" + elem.data + \">\";\n}\nfunction renderText(elem, opts) {\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (opts.decodeEntities !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data = entities_1.encodeXML(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"\";\n}\nfunction renderComment(elem) {\n return \"\";\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for or ...\n const closeMarkup = ``;\n const index = (() => {\n if (options.lowerCaseTagName) {\n return data.toLocaleLowerCase().indexOf(closeMarkup, kMarkupPattern.lastIndex);\n }\n return data.indexOf(closeMarkup, kMarkupPattern.lastIndex);\n })();\n if (element_should_be_ignore(match[2])) {\n let text;\n if (index === -1) {\n // there is no matching ending for the text element.\n text = data.substr(kMarkupPattern.lastIndex);\n }\n else {\n text = data.substring(kMarkupPattern.lastIndex, index);\n }\n if (text.length > 0) {\n currentParent.appendChild(new TextNode(text, currentParent));\n }\n }\n if (index === -1) {\n lastTextPos = kMarkupPattern.lastIndex = data.length + 1;\n }\n else {\n lastTextPos = kMarkupPattern.lastIndex = index + closeMarkup.length;\n match[1] = 'true';\n }\n }\n }\n if (match[1] || match[4] || kSelfClosingElements[match[2]]) {\n // or
                      etc.\n while (true) {\n if (currentParent.rawTagName === match[2]) {\n stack.pop();\n currentParent = arr_back(stack);\n break;\n }\n else {\n const tagName = currentParent.tagName;\n // Trying to close current tag, and move on\n if (kElementsClosedByClosing[tagName]) {\n if (kElementsClosedByClosing[tagName][match[2]]) {\n stack.pop();\n currentParent = arr_back(stack);\n continue;\n }\n }\n // Use aggressive strategy to handle unmatching markups.\n break;\n }\n }\n }\n }\n return stack;\n}\n/**\n * Parses HTML and returns a root element\n * Parse a chuck of HTML source.\n */\nexport function parse(data, options = { lowerCaseTagName: false, comment: false }) {\n const stack = base_parse(data, options);\n const [root] = stack;\n while (stack.length > 1) {\n // Handle each error elements.\n const last = stack.pop();\n const oneBefore = arr_back(stack);\n if (last.parentNode && last.parentNode.parentNode) {\n if (last.parentNode === oneBefore && last.tagName === oneBefore.tagName) {\n // Pair error case

                      handle : Fixes to

                      \n oneBefore.removeChild(last);\n last.childNodes.forEach((child) => {\n oneBefore.parentNode.appendChild(child);\n });\n stack.pop();\n }\n else {\n // Single error

                      handle: Just removes

                      \n oneBefore.removeChild(last);\n last.childNodes.forEach((child) => {\n oneBefore.appendChild(child);\n });\n }\n }\n else {\n // If it's final element just skip.\n }\n }\n // response.childNodes.forEach((node) => {\n // \tif (node instanceof HTMLElement) {\n // \t\tnode.parentNode = null;\n // \t}\n // });\n return root;\n}\n","/**\n * Node Class as base class for TextNode and HTMLElement.\n */\nexport default class Node {\n constructor(parentNode = null) {\n this.parentNode = parentNode;\n this.childNodes = [];\n }\n get innerText() {\n return this.rawText;\n }\n get textContent() {\n return this.rawText;\n }\n set textContent(val) {\n this.rawText = val;\n }\n}\n","import NodeType from './type';\nimport Node from './node';\n/**\n * TextNode to contain a text element in DOM tree.\n * @param {string} value [description]\n */\nexport default class TextNode extends Node {\n constructor(rawText, parentNode) {\n super(parentNode);\n this.rawText = rawText;\n /**\n * Node Type declaration.\n * @type {Number}\n */\n this.nodeType = NodeType.TEXT_NODE;\n }\n /**\n * Returns text with all whitespace trimmed except single leading/trailing non-breaking space\n */\n get trimmedText() {\n if (this._trimmedText !== undefined)\n return this._trimmedText;\n const text = this.rawText;\n let i = 0;\n let startPos;\n let endPos;\n while (i >= 0 && i < text.length) {\n if (/\\S/.test(text[i])) {\n if (startPos === undefined) {\n startPos = i;\n i = text.length;\n }\n else {\n endPos = i;\n i = void 0;\n }\n }\n if (startPos === undefined)\n i++;\n else\n i--;\n }\n if (startPos === undefined)\n startPos = 0;\n if (endPos === undefined)\n endPos = text.length - 1;\n const hasLeadingSpace = startPos > 0 && /[^\\S\\r\\n]/.test(text[startPos - 1]);\n const hasTrailingSpace = endPos < (text.length - 1) && /[^\\S\\r\\n]/.test(text[endPos + 1]);\n this._trimmedText = (hasLeadingSpace ? ' ' : '') + text.slice(startPos, endPos + 1) + (hasTrailingSpace ? ' ' : '');\n return this._trimmedText;\n }\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n get text() {\n return this.rawText;\n }\n /**\n * Detect if the node contains only white space.\n * @return {bool}\n */\n get isWhitespace() {\n return /^(\\s| )*$/.test(this.rawText);\n }\n toString() {\n return this.text;\n }\n}\n","var NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType[NodeType[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType[NodeType[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n})(NodeType || (NodeType = {}));\nexport default NodeType;\n","import { base_parse } from './nodes/html';\n/**\n * Parses HTML and returns a root element\n * Parse a chuck of HTML source.\n */\nexport default function valid(data, options = { lowerCaseTagName: false, comment: false }) {\n const stack = base_parse(data, options);\n return Boolean(stack.length === 1);\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generate = exports.compile = void 0;\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\n/**\n * Returns a function that checks if an elements index matches the given rule\n * highly optimized to return the fastest solution.\n *\n * @param parsed A tuple [a, b], as returned by `parse`.\n * @returns A highly optimized function that returns whether an index matches the nth-check.\n * @example\n *\n * ```js\n * const check = nthCheck.compile([2, 3]);\n *\n * check(0); // `false`\n * check(1); // `false`\n * check(2); // `true`\n * check(3); // `false`\n * check(4); // `true`\n * check(5); // `false`\n * check(6); // `true`\n * ```\n */\nfunction compile(parsed) {\n var a = parsed[0];\n // Subtract 1 from `b`, to convert from one- to zero-indexed.\n var b = parsed[1] - 1;\n /*\n * When `b <= 0`, `a * n` won't be lead to any matches for `a < 0`.\n * Besides, the specification states that no elements are\n * matched when `a` and `b` are 0.\n *\n * `b < 0` here as we subtracted 1 from `b` above.\n */\n if (b < 0 && a <= 0)\n return boolbase_1.default.falseFunc;\n // When `a` is in the range -1..1, it matches any element (so only `b` is checked).\n if (a === -1)\n return function (index) { return index <= b; };\n if (a === 0)\n return function (index) { return index === b; };\n // When `b <= 0` and `a === 1`, they match any element.\n if (a === 1)\n return b < 0 ? boolbase_1.default.trueFunc : function (index) { return index >= b; };\n /*\n * Otherwise, modulo can be used to check if there is a match.\n *\n * Modulo doesn't care about the sign, so let's use `a`s absolute value.\n */\n var absA = Math.abs(a);\n // Get `b mod a`, + a if this is negative.\n var bMod = ((b % absA) + absA) % absA;\n return a > 1\n ? function (index) { return index >= b && index % absA === bMod; }\n : function (index) { return index <= b && index % absA === bMod; };\n}\nexports.compile = compile;\n/**\n * Returns a function that produces a monotonously increasing sequence of indices.\n *\n * If the sequence has an end, the returned function will return `null` after\n * the last index in the sequence.\n *\n * @param parsed A tuple [a, b], as returned by `parse`.\n * @returns A function that produces a sequence of indices.\n * @example Always increasing (2n+3)\n *\n * ```js\n * const gen = nthCheck.generate([2, 3])\n *\n * gen() // `1`\n * gen() // `3`\n * gen() // `5`\n * gen() // `8`\n * gen() // `11`\n * ```\n *\n * @example With end value (-2n+10)\n *\n * ```js\n *\n * const gen = nthCheck.generate([-2, 5]);\n *\n * gen() // 0\n * gen() // 2\n * gen() // 4\n * gen() // null\n * ```\n */\nfunction generate(parsed) {\n var a = parsed[0];\n // Subtract 1 from `b`, to convert from one- to zero-indexed.\n var b = parsed[1] - 1;\n var n = 0;\n // Make sure to always return an increasing sequence\n if (a < 0) {\n var aPos_1 = -a;\n // Get `b mod a`\n var minValue_1 = ((b % aPos_1) + aPos_1) % aPos_1;\n return function () {\n var val = minValue_1 + aPos_1 * n++;\n return val > b ? null : val;\n };\n }\n if (a === 0)\n return b < 0\n ? // There are no result — always return `null`\n function () { return null; }\n : // Return `b` exactly once\n function () { return (n++ === 0 ? b : null); };\n if (b < 0) {\n b += a * Math.ceil(-b / a);\n }\n return function () { return a * n++ + b; };\n}\nexports.generate = generate;\n//# sourceMappingURL=compile.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sequence = exports.generate = exports.compile = exports.parse = void 0;\nvar parse_js_1 = require(\"./parse.js\");\nObject.defineProperty(exports, \"parse\", { enumerable: true, get: function () { return parse_js_1.parse; } });\nvar compile_js_1 = require(\"./compile.js\");\nObject.defineProperty(exports, \"compile\", { enumerable: true, get: function () { return compile_js_1.compile; } });\nObject.defineProperty(exports, \"generate\", { enumerable: true, get: function () { return compile_js_1.generate; } });\n/**\n * Parses and compiles a formula to a highly optimized function.\n * Combination of {@link parse} and {@link compile}.\n *\n * If the formula doesn't match any elements,\n * it returns [`boolbase`](https://github.com/fb55/boolbase)'s `falseFunc`.\n * Otherwise, a function accepting an _index_ is returned, which returns\n * whether or not the passed _index_ matches the formula.\n *\n * Note: The nth-rule starts counting at `1`, the returned function at `0`.\n *\n * @param formula The formula to compile.\n * @example\n * const check = nthCheck(\"2n+3\");\n *\n * check(0); // `false`\n * check(1); // `false`\n * check(2); // `true`\n * check(3); // `false`\n * check(4); // `true`\n * check(5); // `false`\n * check(6); // `true`\n */\nfunction nthCheck(formula) {\n return (0, compile_js_1.compile)((0, parse_js_1.parse)(formula));\n}\nexports.default = nthCheck;\n/**\n * Parses and compiles a formula to a generator that produces a sequence of indices.\n * Combination of {@link parse} and {@link generate}.\n *\n * @param formula The formula to compile.\n * @returns A function that produces a sequence of indices.\n * @example Always increasing\n *\n * ```js\n * const gen = nthCheck.sequence('2n+3')\n *\n * gen() // `1`\n * gen() // `3`\n * gen() // `5`\n * gen() // `8`\n * gen() // `11`\n * ```\n *\n * @example With end value\n *\n * ```js\n *\n * const gen = nthCheck.sequence('-2n+5');\n *\n * gen() // 0\n * gen() // 2\n * gen() // 4\n * gen() // null\n * ```\n */\nfunction sequence(formula) {\n return (0, compile_js_1.generate)((0, parse_js_1.parse)(formula));\n}\nexports.sequence = sequence;\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Following http://www.w3.org/TR/css3-selectors/#nth-child-pseudo\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parse = void 0;\n// Whitespace as per https://www.w3.org/TR/selectors-3/#lex is \" \\t\\r\\n\\f\"\nvar whitespace = new Set([9, 10, 12, 13, 32]);\nvar ZERO = \"0\".charCodeAt(0);\nvar NINE = \"9\".charCodeAt(0);\n/**\n * Parses an expression.\n *\n * @throws An `Error` if parsing fails.\n * @returns An array containing the integer step size and the integer offset of the nth rule.\n * @example nthCheck.parse(\"2n+3\"); // returns [2, 3]\n */\nfunction parse(formula) {\n formula = formula.trim().toLowerCase();\n if (formula === \"even\") {\n return [2, 0];\n }\n else if (formula === \"odd\") {\n return [2, 1];\n }\n // Parse [ ['-'|'+']? INTEGER? {N} [ S* ['-'|'+'] S* INTEGER ]?\n var idx = 0;\n var a = 0;\n var sign = readSign();\n var number = readNumber();\n if (idx < formula.length && formula.charAt(idx) === \"n\") {\n idx++;\n a = sign * (number !== null && number !== void 0 ? number : 1);\n skipWhitespace();\n if (idx < formula.length) {\n sign = readSign();\n skipWhitespace();\n number = readNumber();\n }\n else {\n sign = number = 0;\n }\n }\n // Throw if there is anything else\n if (number === null || idx < formula.length) {\n throw new Error(\"n-th rule couldn't be parsed ('\".concat(formula, \"')\"));\n }\n return [a, sign * number];\n function readSign() {\n if (formula.charAt(idx) === \"-\") {\n idx++;\n return -1;\n }\n if (formula.charAt(idx) === \"+\") {\n idx++;\n }\n return 1;\n }\n function readNumber() {\n var start = idx;\n var value = 0;\n while (idx < formula.length &&\n formula.charCodeAt(idx) >= ZERO &&\n formula.charCodeAt(idx) <= NINE) {\n value = value * 10 + (formula.charCodeAt(idx) - ZERO);\n idx++;\n }\n // Return `null` if we didn't read anything.\n return idx === start ? null : value;\n }\n function skipWhitespace() {\n while (idx < formula.length &&\n whitespace.has(formula.charCodeAt(idx))) {\n idx++;\n }\n }\n}\nexports.parse = parse;\n//# sourceMappingURL=parse.js.map","/*!\n * on-finished\n * Copyright(c) 2013 Jonathan Ong\n * Copyright(c) 2014 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = onFinished\nmodule.exports.isFinished = isFinished\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar first = require('ee-first')\n\n/**\n * Variables.\n * @private\n */\n\n/* istanbul ignore next */\nvar defer = typeof setImmediate === 'function'\n ? setImmediate\n : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) }\n\n/**\n * Invoke callback when the response has finished, useful for\n * cleaning up resources afterwards.\n *\n * @param {object} msg\n * @param {function} listener\n * @return {object}\n * @public\n */\n\nfunction onFinished(msg, listener) {\n if (isFinished(msg) !== false) {\n defer(listener, null, msg)\n return msg\n }\n\n // attach the listener to the message\n attachListener(msg, listener)\n\n return msg\n}\n\n/**\n * Determine if message is already finished.\n *\n * @param {object} msg\n * @return {boolean}\n * @public\n */\n\nfunction isFinished(msg) {\n var socket = msg.socket\n\n if (typeof msg.finished === 'boolean') {\n // OutgoingMessage\n return Boolean(msg.finished || (socket && !socket.writable))\n }\n\n if (typeof msg.complete === 'boolean') {\n // IncomingMessage\n return Boolean(msg.upgrade || !socket || !socket.readable || (msg.complete && !msg.readable))\n }\n\n // don't know\n return undefined\n}\n\n/**\n * Attach a finished listener to the message.\n *\n * @param {object} msg\n * @param {function} callback\n * @private\n */\n\nfunction attachFinishedListener(msg, callback) {\n var eeMsg\n var eeSocket\n var finished = false\n\n function onFinish(error) {\n eeMsg.cancel()\n eeSocket.cancel()\n\n finished = true\n callback(error)\n }\n\n // finished on first message event\n eeMsg = eeSocket = first([[msg, 'end', 'finish']], onFinish)\n\n function onSocket(socket) {\n // remove listener\n msg.removeListener('socket', onSocket)\n\n if (finished) return\n if (eeMsg !== eeSocket) return\n\n // finished on first socket event\n eeSocket = first([[socket, 'error', 'close']], onFinish)\n }\n\n if (msg.socket) {\n // socket already assigned\n onSocket(msg.socket)\n return\n }\n\n // wait for socket to be assigned\n msg.on('socket', onSocket)\n\n if (msg.socket === undefined) {\n // node.js 0.8 patch\n patchAssignSocket(msg, onSocket)\n }\n}\n\n/**\n * Attach the listener to the message.\n *\n * @param {object} msg\n * @return {function}\n * @private\n */\n\nfunction attachListener(msg, listener) {\n var attached = msg.__onFinished\n\n // create a private single listener with queue\n if (!attached || !attached.queue) {\n attached = msg.__onFinished = createListener(msg)\n attachFinishedListener(msg, attached)\n }\n\n attached.queue.push(listener)\n}\n\n/**\n * Create listener on message.\n *\n * @param {object} msg\n * @return {function}\n * @private\n */\n\nfunction createListener(msg) {\n function listener(err) {\n if (msg.__onFinished === listener) msg.__onFinished = null\n if (!listener.queue) return\n\n var queue = listener.queue\n listener.queue = null\n\n for (var i = 0; i < queue.length; i++) {\n queue[i](err, msg)\n }\n }\n\n listener.queue = []\n\n return listener\n}\n\n/**\n * Patch ServerResponse.prototype.assignSocket for node.js 0.8.\n *\n * @param {ServerResponse} res\n * @param {function} callback\n * @private\n */\n\nfunction patchAssignSocket(res, callback) {\n var assignSocket = res.assignSocket\n\n if (typeof assignSocket !== 'function') return\n\n // res.on('socket', callback) is broken in 0.8\n res.assignSocket = function _assignSocket(socket) {\n assignSocket.call(this, socket)\n callback(socket)\n }\n}\n","/*!\n * on-headers\n * Copyright(c) 2014 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = onHeaders\n\n/**\n * Create a replacement writeHead method.\n *\n * @param {function} prevWriteHead\n * @param {function} listener\n * @private\n */\n\nfunction createWriteHead (prevWriteHead, listener) {\n var fired = false\n\n // return function with core name and argument list\n return function writeHead (statusCode) {\n // set headers from arguments\n var args = setWriteHeadHeaders.apply(this, arguments)\n\n // fire listener\n if (!fired) {\n fired = true\n listener.call(this)\n\n // pass-along an updated status code\n if (typeof args[0] === 'number' && this.statusCode !== args[0]) {\n args[0] = this.statusCode\n args.length = 1\n }\n }\n\n return prevWriteHead.apply(this, args)\n }\n}\n\n/**\n * Execute a listener when a response is about to write headers.\n *\n * @param {object} res\n * @return {function} listener\n * @public\n */\n\nfunction onHeaders (res, listener) {\n if (!res) {\n throw new TypeError('argument res is required')\n }\n\n if (typeof listener !== 'function') {\n throw new TypeError('argument listener must be a function')\n }\n\n res.writeHead = createWriteHead(res.writeHead, listener)\n}\n\n/**\n * Set headers contained in array on the response object.\n *\n * @param {object} res\n * @param {array} headers\n * @private\n */\n\nfunction setHeadersFromArray (res, headers) {\n for (var i = 0; i < headers.length; i++) {\n res.setHeader(headers[i][0], headers[i][1])\n }\n}\n\n/**\n * Set headers contained in object on the response object.\n *\n * @param {object} res\n * @param {object} headers\n * @private\n */\n\nfunction setHeadersFromObject (res, headers) {\n var keys = Object.keys(headers)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n if (k) res.setHeader(k, headers[k])\n }\n}\n\n/**\n * Set headers and other properties on the response object.\n *\n * @param {number} statusCode\n * @private\n */\n\nfunction setWriteHeadHeaders (statusCode) {\n var length = arguments.length\n var headerIndex = length > 1 && typeof arguments[1] === 'string'\n ? 2\n : 1\n\n var headers = length >= headerIndex + 1\n ? arguments[headerIndex]\n : undefined\n\n this.statusCode = statusCode\n\n if (Array.isArray(headers)) {\n // handle array case\n setHeadersFromArray(this, headers)\n } else if (headers) {\n // handle object case\n setHeadersFromObject(this, headers)\n }\n\n // copy leading arguments\n var args = new Array(Math.min(length, headerIndex))\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n\n return args\n}\n","'use strict';\n\nvar name = require('fn.name');\n\n/**\n * Wrap callbacks to prevent double execution.\n *\n * @param {Function} fn Function that should only be called once.\n * @returns {Function} A wrapped callback which prevents multiple executions.\n * @public\n */\nmodule.exports = function one(fn) {\n var called = 0\n , value;\n\n /**\n * The function that prevents double execution.\n *\n * @private\n */\n function onetime() {\n if (called) return value;\n\n called = 1;\n value = fn.apply(this, arguments);\n fn = null;\n\n return value;\n }\n\n //\n // To make debugging more easy we want to use the name of the supplied\n // function. So when you look at the functions that are assigned to event\n // listeners you don't see a load of `onetime` functions but actually the\n // names of the functions that this module will call.\n //\n // NOTE: We cannot override the `name` property, as that is `readOnly`\n // property, so displayName will have to do.\n //\n onetime.displayName = name(fn);\n return onetime;\n};\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict'\n\nconst { hasOwnProperty } = Object.prototype\n\nconst stringify = configure()\n\n// @ts-expect-error\nstringify.configure = configure\n// @ts-expect-error\nstringify.stringify = stringify\n\n// @ts-expect-error\nstringify.default = stringify\n\n// @ts-expect-error used for named export\nexports.stringify = stringify\n// @ts-expect-error used for named export\nexports.configure = configure\n\nmodule.exports = stringify\n\n// eslint-disable-next-line no-control-regex\nconst strEscapeSequencesRegExp = /[\\u0000-\\u001f\\u0022\\u005c\\ud800-\\udfff]|[\\ud800-\\udbff](?![\\udc00-\\udfff])|(?:[^\\ud800-\\udbff]|^)[\\udc00-\\udfff]/\nconst strEscapeSequencesReplacer = new RegExp(strEscapeSequencesRegExp, 'g')\n\n// Escaped special characters. Use empty strings to fill up unused entries.\nconst meta = [\n '\\\\u0000', '\\\\u0001', '\\\\u0002', '\\\\u0003', '\\\\u0004',\n '\\\\u0005', '\\\\u0006', '\\\\u0007', '\\\\b', '\\\\t',\n '\\\\n', '\\\\u000b', '\\\\f', '\\\\r', '\\\\u000e',\n '\\\\u000f', '\\\\u0010', '\\\\u0011', '\\\\u0012', '\\\\u0013',\n '\\\\u0014', '\\\\u0015', '\\\\u0016', '\\\\u0017', '\\\\u0018',\n '\\\\u0019', '\\\\u001a', '\\\\u001b', '\\\\u001c', '\\\\u001d',\n '\\\\u001e', '\\\\u001f', '', '', '\\\\\"',\n '', '', '', '', '', '', '', '', '', '',\n '', '', '', '', '', '', '', '', '', '',\n '', '', '', '', '', '', '', '', '', '',\n '', '', '', '', '', '', '', '', '', '',\n '', '', '', '', '', '', '', '', '', '',\n '', '', '', '', '', '', '', '\\\\\\\\'\n]\n\nfunction escapeFn (str) {\n if (str.length === 2) {\n const charCode = str.charCodeAt(1)\n return `${str[0]}\\\\u${charCode.toString(16)}`\n }\n const charCode = str.charCodeAt(0)\n return meta.length > charCode\n ? meta[charCode]\n : `\\\\u${charCode.toString(16)}`\n}\n\n// Escape C0 control characters, double quotes, the backslash and every code\n// unit with a numeric value in the inclusive range 0xD800 to 0xDFFF.\nfunction strEscape (str) {\n // Some magic numbers that worked out fine while benchmarking with v8 8.0\n if (str.length < 5000 && !strEscapeSequencesRegExp.test(str)) {\n return str\n }\n if (str.length > 100) {\n return str.replace(strEscapeSequencesReplacer, escapeFn)\n }\n let result = ''\n let last = 0\n for (let i = 0; i < str.length; i++) {\n const point = str.charCodeAt(i)\n if (point === 34 || point === 92 || point < 32) {\n result += `${str.slice(last, i)}${meta[point]}`\n last = i + 1\n } else if (point >= 0xd800 && point <= 0xdfff) {\n if (point <= 0xdbff && i + 1 < str.length) {\n const nextPoint = str.charCodeAt(i + 1)\n if (nextPoint >= 0xdc00 && nextPoint <= 0xdfff) {\n i++\n continue\n }\n }\n result += `${str.slice(last, i)}\\\\u${point.toString(16)}`\n last = i + 1\n }\n }\n result += str.slice(last)\n return result\n}\n\nfunction insertSort (array) {\n // Insertion sort is very efficient for small input sizes but it has a bad\n // worst case complexity. Thus, use native array sort for bigger values.\n if (array.length > 2e2) {\n return array.sort()\n }\n for (let i = 1; i < array.length; i++) {\n const currentValue = array[i]\n let position = i\n while (position !== 0 && array[position - 1] > currentValue) {\n array[position] = array[position - 1]\n position--\n }\n array[position] = currentValue\n }\n return array\n}\n\nconst typedArrayPrototypeGetSymbolToStringTag =\n Object.getOwnPropertyDescriptor(\n Object.getPrototypeOf(\n Object.getPrototypeOf(\n new Int8Array()\n )\n ),\n Symbol.toStringTag\n ).get\n\nfunction isTypedArrayWithEntries (value) {\n return typedArrayPrototypeGetSymbolToStringTag.call(value) !== undefined && value.length !== 0\n}\n\nfunction stringifyTypedArray (array, separator, maximumBreadth) {\n if (array.length < maximumBreadth) {\n maximumBreadth = array.length\n }\n const whitespace = separator === ',' ? '' : ' '\n let res = `\"0\":${whitespace}${array[0]}`\n for (let i = 1; i < maximumBreadth; i++) {\n res += `${separator}\"${i}\":${whitespace}${array[i]}`\n }\n return res\n}\n\nfunction getCircularValueOption (options) {\n if (hasOwnProperty.call(options, 'circularValue')) {\n const circularValue = options.circularValue\n if (typeof circularValue === 'string') {\n return `\"${circularValue}\"`\n }\n if (circularValue == null) {\n return circularValue\n }\n if (circularValue === Error || circularValue === TypeError) {\n return {\n toString () {\n throw new TypeError('Converting circular structure to JSON')\n }\n }\n }\n throw new TypeError('The \"circularValue\" argument must be of type string or the value null or undefined')\n }\n return '\"[Circular]\"'\n}\n\nfunction getBooleanOption (options, key) {\n let value\n if (hasOwnProperty.call(options, key)) {\n value = options[key]\n if (typeof value !== 'boolean') {\n throw new TypeError(`The \"${key}\" argument must be of type boolean`)\n }\n }\n return value === undefined ? true : value\n}\n\nfunction getPositiveIntegerOption (options, key) {\n let value\n if (hasOwnProperty.call(options, key)) {\n value = options[key]\n if (typeof value !== 'number') {\n throw new TypeError(`The \"${key}\" argument must be of type number`)\n }\n if (!Number.isInteger(value)) {\n throw new TypeError(`The \"${key}\" argument must be an integer`)\n }\n if (value < 1) {\n throw new RangeError(`The \"${key}\" argument must be >= 1`)\n }\n }\n return value === undefined ? Infinity : value\n}\n\nfunction getItemCount (number) {\n if (number === 1) {\n return '1 item'\n }\n return `${number} items`\n}\n\nfunction getUniqueReplacerSet (replacerArray) {\n const replacerSet = new Set()\n for (const value of replacerArray) {\n if (typeof value === 'string' || typeof value === 'number') {\n replacerSet.add(String(value))\n }\n }\n return replacerSet\n}\n\nfunction getStrictOption (options) {\n if (hasOwnProperty.call(options, 'strict')) {\n const value = options.strict\n if (typeof value !== 'boolean') {\n throw new TypeError('The \"strict\" argument must be of type boolean')\n }\n if (value) {\n return (value) => {\n let message = `Object can not safely be stringified. Received type ${typeof value}`\n if (typeof value !== 'function') message += ` (${value.toString()})`\n throw new Error(message)\n }\n }\n }\n}\n\nfunction configure (options) {\n options = { ...options }\n const fail = getStrictOption(options)\n if (fail) {\n if (options.bigint === undefined) {\n options.bigint = false\n }\n if (!('circularValue' in options)) {\n options.circularValue = Error\n }\n }\n const circularValue = getCircularValueOption(options)\n const bigint = getBooleanOption(options, 'bigint')\n const deterministic = getBooleanOption(options, 'deterministic')\n const maximumDepth = getPositiveIntegerOption(options, 'maximumDepth')\n const maximumBreadth = getPositiveIntegerOption(options, 'maximumBreadth')\n\n function stringifyFnReplacer (key, parent, stack, replacer, spacer, indentation) {\n let value = parent[key]\n\n if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n value = replacer.call(parent, key, value)\n\n switch (typeof value) {\n case 'string':\n return `\"${strEscape(value)}\"`\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n\n let res = ''\n let join = ','\n const originalIndentation = indentation\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n if (spacer !== '') {\n indentation += spacer\n res += `\\n${indentation}`\n join = `,\\n${indentation}`\n }\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifyFnReplacer(i, value, stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyFnReplacer(i, value, stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n if (spacer !== '') {\n res += `\\n${originalIndentation}`\n }\n stack.pop()\n return `[${res}]`\n }\n\n let keys = Object.keys(value)\n const keyLength = keys.length\n if (keyLength === 0) {\n return '{}'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Object]\"'\n }\n let whitespace = ''\n let separator = ''\n if (spacer !== '') {\n indentation += spacer\n join = `,\\n${indentation}`\n whitespace = ' '\n }\n let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n if (isTypedArrayWithEntries(value)) {\n res += stringifyTypedArray(value, join, maximumBreadth)\n keys = keys.slice(value.length)\n maximumPropertiesToStringify -= value.length\n separator = join\n }\n if (deterministic) {\n keys = insertSort(keys)\n }\n stack.push(value)\n for (let i = 0; i < maximumPropertiesToStringify; i++) {\n const key = keys[i]\n const tmp = stringifyFnReplacer(key, value, stack, replacer, spacer, indentation)\n if (tmp !== undefined) {\n res += `${separator}\"${strEscape(key)}\":${whitespace}${tmp}`\n separator = join\n }\n }\n if (keyLength > maximumBreadth) {\n const removedKeys = keyLength - maximumBreadth\n res += `${separator}\"...\":${whitespace}\"${getItemCount(removedKeys)} not stringified\"`\n separator = join\n }\n if (spacer !== '' && separator.length > 1) {\n res = `\\n${indentation}${res}\\n${originalIndentation}`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringifyArrayReplacer (key, value, stack, replacer, spacer, indentation) {\n if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n\n switch (typeof value) {\n case 'string':\n return `\"${strEscape(value)}\"`\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n\n const originalIndentation = indentation\n let res = ''\n let join = ','\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n if (spacer !== '') {\n indentation += spacer\n res += `\\n${indentation}`\n join = `,\\n${indentation}`\n }\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifyArrayReplacer(i, value[i], stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyArrayReplacer(i, value[i], stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n if (spacer !== '') {\n res += `\\n${originalIndentation}`\n }\n stack.pop()\n return `[${res}]`\n }\n if (replacer.size === 0) {\n return '{}'\n }\n stack.push(value)\n let whitespace = ''\n if (spacer !== '') {\n indentation += spacer\n join = `,\\n${indentation}`\n whitespace = ' '\n }\n let separator = ''\n for (const key of replacer) {\n const tmp = stringifyArrayReplacer(key, value[key], stack, replacer, spacer, indentation)\n if (tmp !== undefined) {\n res += `${separator}\"${strEscape(key)}\":${whitespace}${tmp}`\n separator = join\n }\n }\n if (spacer !== '' && separator.length > 1) {\n res = `\\n${indentation}${res}\\n${originalIndentation}`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringifyIndent (key, value, stack, spacer, indentation) {\n switch (typeof value) {\n case 'string':\n return `\"${strEscape(value)}\"`\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n // Prevent calling `toJSON` again.\n if (typeof value !== 'object') {\n return stringifyIndent(key, value, stack, spacer, indentation)\n }\n if (value === null) {\n return 'null'\n }\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n const originalIndentation = indentation\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n indentation += spacer\n let res = `\\n${indentation}`\n const join = `,\\n${indentation}`\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifyIndent(i, value[i], stack, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyIndent(i, value[i], stack, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n res += `\\n${originalIndentation}`\n stack.pop()\n return `[${res}]`\n }\n\n let keys = Object.keys(value)\n const keyLength = keys.length\n if (keyLength === 0) {\n return '{}'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Object]\"'\n }\n indentation += spacer\n const join = `,\\n${indentation}`\n let res = ''\n let separator = ''\n let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n if (isTypedArrayWithEntries(value)) {\n res += stringifyTypedArray(value, join, maximumBreadth)\n keys = keys.slice(value.length)\n maximumPropertiesToStringify -= value.length\n separator = join\n }\n if (deterministic) {\n keys = insertSort(keys)\n }\n stack.push(value)\n for (let i = 0; i < maximumPropertiesToStringify; i++) {\n const key = keys[i]\n const tmp = stringifyIndent(key, value[key], stack, spacer, indentation)\n if (tmp !== undefined) {\n res += `${separator}\"${strEscape(key)}\": ${tmp}`\n separator = join\n }\n }\n if (keyLength > maximumBreadth) {\n const removedKeys = keyLength - maximumBreadth\n res += `${separator}\"...\": \"${getItemCount(removedKeys)} not stringified\"`\n separator = join\n }\n if (separator !== '') {\n res = `\\n${indentation}${res}\\n${originalIndentation}`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringifySimple (key, value, stack) {\n switch (typeof value) {\n case 'string':\n return `\"${strEscape(value)}\"`\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n // Prevent calling `toJSON` again\n if (typeof value !== 'object') {\n return stringifySimple(key, value, stack)\n }\n if (value === null) {\n return 'null'\n }\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n\n let res = ''\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifySimple(i, value[i], stack)\n res += tmp !== undefined ? tmp : 'null'\n res += ','\n }\n const tmp = stringifySimple(i, value[i], stack)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `,\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n stack.pop()\n return `[${res}]`\n }\n\n let keys = Object.keys(value)\n const keyLength = keys.length\n if (keyLength === 0) {\n return '{}'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Object]\"'\n }\n let separator = ''\n let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n if (isTypedArrayWithEntries(value)) {\n res += stringifyTypedArray(value, ',', maximumBreadth)\n keys = keys.slice(value.length)\n maximumPropertiesToStringify -= value.length\n separator = ','\n }\n if (deterministic) {\n keys = insertSort(keys)\n }\n stack.push(value)\n for (let i = 0; i < maximumPropertiesToStringify; i++) {\n const key = keys[i]\n const tmp = stringifySimple(key, value[key], stack)\n if (tmp !== undefined) {\n res += `${separator}\"${strEscape(key)}\":${tmp}`\n separator = ','\n }\n }\n if (keyLength > maximumBreadth) {\n const removedKeys = keyLength - maximumBreadth\n res += `${separator}\"...\":\"${getItemCount(removedKeys)} not stringified\"`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringify (value, replacer, space) {\n if (arguments.length > 1) {\n let spacer = ''\n if (typeof space === 'number') {\n spacer = ' '.repeat(Math.min(space, 10))\n } else if (typeof space === 'string') {\n spacer = space.slice(0, 10)\n }\n if (replacer != null) {\n if (typeof replacer === 'function') {\n return stringifyFnReplacer('', { '': value }, [], replacer, spacer, '')\n }\n if (Array.isArray(replacer)) {\n return stringifyArrayReplacer('', value, [], getUniqueReplacerSet(replacer), spacer, '')\n }\n }\n if (spacer.length !== 0) {\n return stringifyIndent('', value, [], spacer, '')\n }\n }\n return stringifySimple('', value, [])\n }\n\n return stringify\n}\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","exports.get = function(belowFn) {\n var oldLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = Infinity;\n\n var dummyObject = {};\n\n var v8Handler = Error.prepareStackTrace;\n Error.prepareStackTrace = function(dummyObject, v8StackTrace) {\n return v8StackTrace;\n };\n Error.captureStackTrace(dummyObject, belowFn || exports.get);\n\n var v8StackTrace = dummyObject.stack;\n Error.prepareStackTrace = v8Handler;\n Error.stackTraceLimit = oldLimit;\n\n return v8StackTrace;\n};\n\nexports.parse = function(err) {\n if (!err.stack) {\n return [];\n }\n\n var self = this;\n var lines = err.stack.split('\\n').slice(1);\n\n return lines\n .map(function(line) {\n if (line.match(/^\\s*[-]{4,}$/)) {\n return self._createParsedCallSite({\n fileName: line,\n lineNumber: null,\n functionName: null,\n typeName: null,\n methodName: null,\n columnNumber: null,\n 'native': null,\n });\n }\n\n var lineMatch = line.match(/at (?:(.+)\\s+\\()?(?:(.+?):(\\d+)(?::(\\d+))?|([^)]+))\\)?/);\n if (!lineMatch) {\n return;\n }\n\n var object = null;\n var method = null;\n var functionName = null;\n var typeName = null;\n var methodName = null;\n var isNative = (lineMatch[5] === 'native');\n\n if (lineMatch[1]) {\n functionName = lineMatch[1];\n var methodStart = functionName.lastIndexOf('.');\n if (functionName[methodStart-1] == '.')\n methodStart--;\n if (methodStart > 0) {\n object = functionName.substr(0, methodStart);\n method = functionName.substr(methodStart + 1);\n var objectEnd = object.indexOf('.Module');\n if (objectEnd > 0) {\n functionName = functionName.substr(objectEnd + 1);\n object = object.substr(0, objectEnd);\n }\n }\n typeName = null;\n }\n\n if (method) {\n typeName = object;\n methodName = method;\n }\n\n if (method === '') {\n methodName = null;\n functionName = null;\n }\n\n var properties = {\n fileName: lineMatch[2] || null,\n lineNumber: parseInt(lineMatch[3], 10) || null,\n functionName: functionName,\n typeName: typeName,\n methodName: methodName,\n columnNumber: parseInt(lineMatch[4], 10) || null,\n 'native': isNative,\n };\n\n return self._createParsedCallSite(properties);\n })\n .filter(function(callSite) {\n return !!callSite;\n });\n};\n\nfunction CallSite(properties) {\n for (var property in properties) {\n this[property] = properties[property];\n }\n}\n\nvar strProperties = [\n 'this',\n 'typeName',\n 'functionName',\n 'methodName',\n 'fileName',\n 'lineNumber',\n 'columnNumber',\n 'function',\n 'evalOrigin'\n];\nvar boolProperties = [\n 'topLevel',\n 'eval',\n 'native',\n 'constructor'\n];\nstrProperties.forEach(function (property) {\n CallSite.prototype[property] = null;\n CallSite.prototype['get' + property[0].toUpperCase() + property.substr(1)] = function () {\n return this[property];\n }\n});\nboolProperties.forEach(function (property) {\n CallSite.prototype[property] = false;\n CallSite.prototype['is' + property[0].toUpperCase() + property.substr(1)] = function () {\n return this[property];\n }\n});\n\nexports._createParsedCallSite = function(properties) {\n return new CallSite(properties);\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","'use strict';\n\n/***\n * Convert string to hex color.\n *\n * @param {String} str Text to hash and convert to hex.\n * @returns {String}\n * @api public\n */\nmodule.exports = function hex(str) {\n for (\n var i = 0, hash = 0;\n i < str.length;\n hash = str.charCodeAt(i++) + ((hash << 5) - hash)\n );\n\n var color = Math.floor(\n Math.abs(\n (Math.sin(hash) * 10000) % 1 * 16777216\n )\n ).toString(16);\n\n return '#' + Array(6 - color.length + 1).join('0') + color;\n};\n","/**\n * cli.js: Config that conform to commonly used CLI logging levels.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\n/**\n * Default levels for the CLI configuration.\n * @type {Object}\n */\nexports.levels = {\n error: 0,\n warn: 1,\n help: 2,\n data: 3,\n info: 4,\n debug: 5,\n prompt: 6,\n verbose: 7,\n input: 8,\n silly: 9\n};\n\n/**\n * Default colors for the CLI configuration.\n * @type {Object}\n */\nexports.colors = {\n error: 'red',\n warn: 'yellow',\n help: 'cyan',\n data: 'grey',\n info: 'green',\n debug: 'blue',\n prompt: 'grey',\n verbose: 'cyan',\n input: 'grey',\n silly: 'magenta'\n};\n","/**\n * index.js: Default settings for all levels that winston knows about.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\n/**\n * Export config set for the CLI.\n * @type {Object}\n */\nObject.defineProperty(exports, 'cli', {\n value: require('./cli')\n});\n\n/**\n * Export config set for npm.\n * @type {Object}\n */\nObject.defineProperty(exports, 'npm', {\n value: require('./npm')\n});\n\n/**\n * Export config set for the syslog.\n * @type {Object}\n */\nObject.defineProperty(exports, 'syslog', {\n value: require('./syslog')\n});\n","/**\n * npm.js: Config that conform to npm logging levels.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\n/**\n * Default levels for the npm configuration.\n * @type {Object}\n */\nexports.levels = {\n error: 0,\n warn: 1,\n info: 2,\n http: 3,\n verbose: 4,\n debug: 5,\n silly: 6\n};\n\n/**\n * Default levels for the npm configuration.\n * @type {Object}\n */\nexports.colors = {\n error: 'red',\n warn: 'yellow',\n info: 'green',\n http: 'green',\n verbose: 'cyan',\n debug: 'blue',\n silly: 'magenta'\n};\n","/**\n * syslog.js: Config that conform to syslog logging levels.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\n/**\n * Default levels for the syslog configuration.\n * @type {Object}\n */\nexports.levels = {\n emerg: 0,\n alert: 1,\n crit: 2,\n error: 3,\n warning: 4,\n notice: 5,\n info: 6,\n debug: 7\n};\n\n/**\n * Default levels for the syslog configuration.\n * @type {Object}\n */\nexports.colors = {\n emerg: 'red',\n alert: 'yellow',\n crit: 'red',\n error: 'red',\n warning: 'red',\n notice: 'yellow',\n info: 'green',\n debug: 'blue'\n};\n","'use strict';\n\n/**\n * A shareable symbol constant that can be used\n * as a non-enumerable / semi-hidden level identifier\n * to allow the readable level property to be mutable for\n * operations like colorization\n *\n * @type {Symbol}\n */\nObject.defineProperty(exports, 'LEVEL', {\n value: Symbol.for('level')\n});\n\n/**\n * A shareable symbol constant that can be used\n * as a non-enumerable / semi-hidden message identifier\n * to allow the final message property to not have\n * side effects on another.\n *\n * @type {Symbol}\n */\nObject.defineProperty(exports, 'MESSAGE', {\n value: Symbol.for('message')\n});\n\n/**\n * A shareable symbol constant that can be used\n * as a non-enumerable / semi-hidden message identifier\n * to allow the extracted splat property be hidden\n *\n * @type {Symbol}\n */\nObject.defineProperty(exports, 'SPLAT', {\n value: Symbol.for('splat')\n});\n\n/**\n * A shareable object constant that can be used\n * as a standard configuration for winston@3.\n *\n * @type {Object}\n */\nObject.defineProperty(exports, 'configs', {\n value: require('./config')\n});\n","\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = require('util').deprecate;\n","'use strict';\n\nconst util = require('util');\nconst Writable = require('readable-stream/lib/_stream_writable.js');\nconst { LEVEL } = require('triple-beam');\n\n/**\n * Constructor function for the TransportStream. This is the base prototype\n * that all `winston >= 3` transports should inherit from.\n * @param {Object} options - Options for this TransportStream instance\n * @param {String} options.level - Highest level according to RFC5424.\n * @param {Boolean} options.handleExceptions - If true, info with\n * { exception: true } will be written.\n * @param {Function} options.log - Custom log function for simple Transport\n * creation\n * @param {Function} options.close - Called on \"unpipe\" from parent.\n */\nconst TransportStream = module.exports = function TransportStream(options = {}) {\n Writable.call(this, { objectMode: true, highWaterMark: options.highWaterMark });\n\n this.format = options.format;\n this.level = options.level;\n this.handleExceptions = options.handleExceptions;\n this.handleRejections = options.handleRejections;\n this.silent = options.silent;\n\n if (options.log) this.log = options.log;\n if (options.logv) this.logv = options.logv;\n if (options.close) this.close = options.close;\n\n // Get the levels from the source we are piped from.\n this.once('pipe', logger => {\n // Remark (indexzero): this bookkeeping can only support multiple\n // Logger parents with the same `levels`. This comes into play in\n // the `winston.Container` code in which `container.add` takes\n // a fully realized set of options with pre-constructed TransportStreams.\n this.levels = logger.levels;\n this.parent = logger;\n });\n\n // If and/or when the transport is removed from this instance\n this.once('unpipe', src => {\n // Remark (indexzero): this bookkeeping can only support multiple\n // Logger parents with the same `levels`. This comes into play in\n // the `winston.Container` code in which `container.add` takes\n // a fully realized set of options with pre-constructed TransportStreams.\n if (src === this.parent) {\n this.parent = null;\n if (this.close) {\n this.close();\n }\n }\n });\n};\n\n/*\n * Inherit from Writeable using Node.js built-ins\n */\nutil.inherits(TransportStream, Writable);\n\n/**\n * Writes the info object to our transport instance.\n * @param {mixed} info - TODO: add param description.\n * @param {mixed} enc - TODO: add param description.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n * @private\n */\nTransportStream.prototype._write = function _write(info, enc, callback) {\n if (this.silent || (info.exception === true && !this.handleExceptions)) {\n return callback(null);\n }\n\n // Remark: This has to be handled in the base transport now because we\n // cannot conditionally write to our pipe targets as stream. We always\n // prefer any explicit level set on the Transport itself falling back to\n // any level set on the parent.\n const level = this.level || (this.parent && this.parent.level);\n\n if (!level || this.levels[level] >= this.levels[info[LEVEL]]) {\n if (info && !this.format) {\n return this.log(info, callback);\n }\n\n let errState;\n let transformed;\n\n // We trap(and re-throw) any errors generated by the user-provided format, but also\n // guarantee that the streams callback is invoked so that we can continue flowing.\n try {\n transformed = this.format.transform(Object.assign({}, info), this.format.options);\n } catch (err) {\n errState = err;\n }\n\n if (errState || !transformed) {\n // eslint-disable-next-line callback-return\n callback();\n if (errState) throw errState;\n return;\n }\n\n return this.log(transformed, callback);\n }\n this._writableState.sync = false;\n return callback(null);\n};\n\n/**\n * Writes the batch of info objects (i.e. \"object chunks\") to our transport\n * instance after performing any necessary filtering.\n * @param {mixed} chunks - TODO: add params description.\n * @param {function} callback - TODO: add params description.\n * @returns {mixed} - TODO: add returns description.\n * @private\n */\nTransportStream.prototype._writev = function _writev(chunks, callback) {\n if (this.logv) {\n const infos = chunks.filter(this._accept, this);\n if (!infos.length) {\n return callback(null);\n }\n\n // Remark (indexzero): from a performance perspective if Transport\n // implementers do choose to implement logv should we make it their\n // responsibility to invoke their format?\n return this.logv(infos, callback);\n }\n\n for (let i = 0; i < chunks.length; i++) {\n if (!this._accept(chunks[i])) continue;\n\n if (chunks[i].chunk && !this.format) {\n this.log(chunks[i].chunk, chunks[i].callback);\n continue;\n }\n\n let errState;\n let transformed;\n\n // We trap(and re-throw) any errors generated by the user-provided format, but also\n // guarantee that the streams callback is invoked so that we can continue flowing.\n try {\n transformed = this.format.transform(\n Object.assign({}, chunks[i].chunk),\n this.format.options\n );\n } catch (err) {\n errState = err;\n }\n\n if (errState || !transformed) {\n // eslint-disable-next-line callback-return\n chunks[i].callback();\n if (errState) {\n // eslint-disable-next-line callback-return\n callback(null);\n throw errState;\n }\n } else {\n this.log(transformed, chunks[i].callback);\n }\n }\n\n return callback(null);\n};\n\n/**\n * Predicate function that returns true if the specfied `info` on the\n * WriteReq, `write`, should be passed down into the derived\n * TransportStream's I/O via `.log(info, callback)`.\n * @param {WriteReq} write - winston@3 Node.js WriteReq for the `info` object\n * representing the log message.\n * @returns {Boolean} - Value indicating if the `write` should be accepted &\n * logged.\n */\nTransportStream.prototype._accept = function _accept(write) {\n const info = write.chunk;\n if (this.silent) {\n return false;\n }\n\n // We always prefer any explicit level set on the Transport itself\n // falling back to any level set on the parent.\n const level = this.level || (this.parent && this.parent.level);\n\n // Immediately check the average case: log level filtering.\n if (\n info.exception === true ||\n !level ||\n this.levels[level] >= this.levels[info[LEVEL]]\n ) {\n // Ensure the info object is valid based on `{ exception }`:\n // 1. { handleExceptions: true }: all `info` objects are valid\n // 2. { exception: false }: accepted by all transports.\n if (this.handleExceptions || info.exception !== true) {\n return true;\n }\n }\n\n return false;\n};\n\n/**\n * _nop is short for \"No operation\"\n * @returns {Boolean} Intentionally false.\n */\nTransportStream.prototype._nop = function _nop() {\n // eslint-disable-next-line no-undefined\n return void undefined;\n};\n\n\n// Expose legacy stream\nmodule.exports.LegacyTransportStream = require('./legacy');\n","'use strict';\n\nconst util = require('util');\nconst { LEVEL } = require('triple-beam');\nconst TransportStream = require('./');\n\n/**\n * Constructor function for the LegacyTransportStream. This is an internal\n * wrapper `winston >= 3` uses to wrap older transports implementing\n * log(level, message, meta).\n * @param {Object} options - Options for this TransportStream instance.\n * @param {Transpot} options.transport - winston@2 or older Transport to wrap.\n */\n\nconst LegacyTransportStream = module.exports = function LegacyTransportStream(options = {}) {\n TransportStream.call(this, options);\n if (!options.transport || typeof options.transport.log !== 'function') {\n throw new Error('Invalid transport, must be an object with a log method.');\n }\n\n this.transport = options.transport;\n this.level = this.level || options.transport.level;\n this.handleExceptions = this.handleExceptions || options.transport.handleExceptions;\n\n // Display our deprecation notice.\n this._deprecated();\n\n // Properly bubble up errors from the transport to the\n // LegacyTransportStream instance, but only once no matter how many times\n // this transport is shared.\n function transportError(err) {\n this.emit('error', err, this.transport);\n }\n\n if (!this.transport.__winstonError) {\n this.transport.__winstonError = transportError.bind(this);\n this.transport.on('error', this.transport.__winstonError);\n }\n};\n\n/*\n * Inherit from TransportStream using Node.js built-ins\n */\nutil.inherits(LegacyTransportStream, TransportStream);\n\n/**\n * Writes the info object to our transport instance.\n * @param {mixed} info - TODO: add param description.\n * @param {mixed} enc - TODO: add param description.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n * @private\n */\nLegacyTransportStream.prototype._write = function _write(info, enc, callback) {\n if (this.silent || (info.exception === true && !this.handleExceptions)) {\n return callback(null);\n }\n\n // Remark: This has to be handled in the base transport now because we\n // cannot conditionally write to our pipe targets as stream.\n if (!this.level || this.levels[this.level] >= this.levels[info[LEVEL]]) {\n this.transport.log(info[LEVEL], info.message, info, this._nop);\n }\n\n callback(null);\n};\n\n/**\n * Writes the batch of info objects (i.e. \"object chunks\") to our transport\n * instance after performing any necessary filtering.\n * @param {mixed} chunks - TODO: add params description.\n * @param {function} callback - TODO: add params description.\n * @returns {mixed} - TODO: add returns description.\n * @private\n */\nLegacyTransportStream.prototype._writev = function _writev(chunks, callback) {\n for (let i = 0; i < chunks.length; i++) {\n if (this._accept(chunks[i])) {\n this.transport.log(\n chunks[i].chunk[LEVEL],\n chunks[i].chunk.message,\n chunks[i].chunk,\n this._nop\n );\n chunks[i].callback();\n }\n }\n\n return callback(null);\n};\n\n/**\n * Displays a deprecation notice. Defined as a function so it can be\n * overriden in tests.\n * @returns {undefined}\n */\nLegacyTransportStream.prototype._deprecated = function _deprecated() {\n // eslint-disable-next-line no-console\n console.error([\n `${this.transport.name} is a legacy winston transport. Consider upgrading: `,\n '- Upgrade docs: https://github.com/winstonjs/winston/blob/master/UPGRADE-3.0.md'\n ].join('\\n'));\n};\n\n/**\n * Clean up error handling state on the legacy transport associated\n * with this instance.\n * @returns {undefined}\n */\nLegacyTransportStream.prototype.close = function close() {\n if (this.transport.close) {\n this.transport.close();\n }\n\n if (this.transport.__winstonError) {\n this.transport.removeListener('error', this.transport.__winstonError);\n this.transport.__winstonError = null;\n }\n};\n","'use strict';\n\nconst codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n\n function getMessage (arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message\n } else {\n return message(arg1, arg2, arg3)\n }\n }\n\n class NodeError extends Base {\n constructor (arg1, arg2, arg3) {\n super(getMessage(arg1, arg2, arg3));\n }\n }\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n const len = expected.length;\n expected = expected.map((i) => String(i));\n if (len > 2) {\n return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` +\n expected[len - 1];\n } else if (len === 2) {\n return `one of ${thing} ${expected[0]} or ${expected[1]}`;\n } else {\n return `of ${thing} ${expected[0]}`;\n }\n } else {\n return `of ${thing} ${String(expected)}`;\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n\treturn str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n\tif (this_len === undefined || this_len > str.length) {\n\t\tthis_len = str.length;\n\t}\n\treturn str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"'\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n let determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n let msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`;\n } else {\n const type = includes(name, '.') ? 'property' : 'argument';\n msg = `The \"${name}\" ${type} ${determiner} ${oneOf(expected, 'type')}`;\n }\n\n msg += `. Received type ${typeof actual}`;\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented'\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\n\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","'use strict';\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar ERR_INVALID_ARG_TYPE = require('../../../errors').codes.ERR_INVALID_ARG_TYPE;\nfunction from(Readable, iterable, opts) {\n var iterator;\n if (iterable && typeof iterable.next === 'function') {\n iterator = iterable;\n } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable);\n var readable = new Readable(_objectSpread({\n objectMode: true\n }, opts));\n // Reading boolean to protect against _read\n // being called before last iteration completion.\n var reading = false;\n readable._read = function () {\n if (!reading) {\n reading = true;\n next();\n }\n };\n function next() {\n return _next2.apply(this, arguments);\n }\n function _next2() {\n _next2 = _asyncToGenerator(function* () {\n try {\n var _yield$iterator$next = yield iterator.next(),\n value = _yield$iterator$next.value,\n done = _yield$iterator$next.done;\n if (done) {\n readable.push(null);\n } else if (readable.push(yield value)) {\n next();\n } else {\n reading = false;\n }\n } catch (err) {\n readable.destroy(err);\n }\n });\n return _next2.apply(this, arguments);\n }\n return readable;\n}\nmodule.exports = from;\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('stream');\n","/**\n * winston.js: Top-level include defining Winston.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst logform = require('logform');\nconst { warn } = require('./winston/common');\n\n/**\n * Expose version. Use `require` method for `webpack` support.\n * @type {string}\n */\nexports.version = require('../package.json').version;\n/**\n * Include transports defined by default by winston\n * @type {Array}\n */\nexports.transports = require('./winston/transports');\n/**\n * Expose utility methods\n * @type {Object}\n */\nexports.config = require('./winston/config');\n/**\n * Hoist format-related functionality from logform.\n * @type {Object}\n */\nexports.addColors = logform.levels;\n/**\n * Hoist format-related functionality from logform.\n * @type {Object}\n */\nexports.format = logform.format;\n/**\n * Expose core Logging-related prototypes.\n * @type {function}\n */\nexports.createLogger = require('./winston/create-logger');\n/**\n * Expose core Logging-related prototypes.\n * @type {function}\n */\nexports.Logger = require('./winston/logger');\n/**\n * Expose core Logging-related prototypes.\n * @type {Object}\n */\nexports.ExceptionHandler = require('./winston/exception-handler');\n/**\n * Expose core Logging-related prototypes.\n * @type {Object}\n */\nexports.RejectionHandler = require('./winston/rejection-handler');\n/**\n * Expose core Logging-related prototypes.\n * @type {Container}\n */\nexports.Container = require('./winston/container');\n/**\n * Expose core Logging-related prototypes.\n * @type {Object}\n */\nexports.Transport = require('winston-transport');\n/**\n * We create and expose a default `Container` to `winston.loggers` so that the\n * programmer may manage multiple `winston.Logger` instances without any\n * additional overhead.\n * @example\n * // some-file1.js\n * const logger = require('winston').loggers.get('something');\n *\n * // some-file2.js\n * const logger = require('winston').loggers.get('something');\n */\nexports.loggers = new exports.Container();\n\n/**\n * We create and expose a 'defaultLogger' so that the programmer may do the\n * following without the need to create an instance of winston.Logger directly:\n * @example\n * const winston = require('winston');\n * winston.log('info', 'some message');\n * winston.error('some error');\n */\nconst defaultLogger = exports.createLogger();\n\n// Pass through the target methods onto `winston.\nObject.keys(exports.config.npm.levels)\n .concat([\n 'log',\n 'query',\n 'stream',\n 'add',\n 'remove',\n 'clear',\n 'profile',\n 'startTimer',\n 'handleExceptions',\n 'unhandleExceptions',\n 'handleRejections',\n 'unhandleRejections',\n 'configure',\n 'child'\n ])\n .forEach(\n method => (exports[method] = (...args) => defaultLogger[method](...args))\n );\n\n/**\n * Define getter / setter for the default logger level which need to be exposed\n * by winston.\n * @type {string}\n */\nObject.defineProperty(exports, 'level', {\n get() {\n return defaultLogger.level;\n },\n set(val) {\n defaultLogger.level = val;\n }\n});\n\n/**\n * Define getter for `exceptions` which replaces `handleExceptions` and\n * `unhandleExceptions`.\n * @type {Object}\n */\nObject.defineProperty(exports, 'exceptions', {\n get() {\n return defaultLogger.exceptions;\n }\n});\n\n/**\n * Define getters / setters for appropriate properties of the default logger\n * which need to be exposed by winston.\n * @type {Logger}\n */\n['exitOnError'].forEach(prop => {\n Object.defineProperty(exports, prop, {\n get() {\n return defaultLogger[prop];\n },\n set(val) {\n defaultLogger[prop] = val;\n }\n });\n});\n\n/**\n * The default transports and exceptionHandlers for the default winston logger.\n * @type {Object}\n */\nObject.defineProperty(exports, 'default', {\n get() {\n return {\n exceptionHandlers: defaultLogger.exceptionHandlers,\n rejectionHandlers: defaultLogger.rejectionHandlers,\n transports: defaultLogger.transports\n };\n }\n});\n\n// Have friendlier breakage notices for properties that were exposed by default\n// on winston < 3.0.\nwarn.deprecated(exports, 'setLevels');\nwarn.forFunctions(exports, 'useFormat', ['cli']);\nwarn.forProperties(exports, 'useFormat', ['padLevels', 'stripColors']);\nwarn.forFunctions(exports, 'deprecated', [\n 'addRewriter',\n 'addFilter',\n 'clone',\n 'extend'\n]);\nwarn.forProperties(exports, 'deprecated', ['emitErrs', 'levelLength']);\n\n","/**\n * common.js: Internal helper and utility functions for winston.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst { format } = require('util');\n\n/**\n * Set of simple deprecation notices and a way to expose them for a set of\n * properties.\n * @type {Object}\n * @private\n */\nexports.warn = {\n deprecated(prop) {\n return () => {\n throw new Error(format('{ %s } was removed in winston@3.0.0.', prop));\n };\n },\n useFormat(prop) {\n return () => {\n throw new Error([\n format('{ %s } was removed in winston@3.0.0.', prop),\n 'Use a custom winston.format = winston.format(function) instead.'\n ].join('\\n'));\n };\n },\n forFunctions(obj, type, props) {\n props.forEach(prop => {\n obj[prop] = exports.warn[type](prop);\n });\n },\n forProperties(obj, type, props) {\n props.forEach(prop => {\n const notice = exports.warn[type](prop);\n Object.defineProperty(obj, prop, {\n get: notice,\n set: notice\n });\n });\n }\n};\n","/**\n * index.js: Default settings for all levels that winston knows about.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst logform = require('logform');\nconst { configs } = require('triple-beam');\n\n/**\n * Export config set for the CLI.\n * @type {Object}\n */\nexports.cli = logform.levels(configs.cli);\n\n/**\n * Export config set for npm.\n * @type {Object}\n */\nexports.npm = logform.levels(configs.npm);\n\n/**\n * Export config set for the syslog.\n * @type {Object}\n */\nexports.syslog = logform.levels(configs.syslog);\n\n/**\n * Hoist addColors from logform where it was refactored into in winston@3.\n * @type {Object}\n */\nexports.addColors = logform.levels;\n","/**\n * container.js: Inversion of control container for winston logger instances.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst createLogger = require('./create-logger');\n\n/**\n * Inversion of control container for winston logger instances.\n * @type {Container}\n */\nmodule.exports = class Container {\n /**\n * Constructor function for the Container object responsible for managing a\n * set of `winston.Logger` instances based on string ids.\n * @param {!Object} [options={}] - Default pass-thru options for Loggers.\n */\n constructor(options = {}) {\n this.loggers = new Map();\n this.options = options;\n }\n\n /**\n * Retrieves a `winston.Logger` instance for the specified `id`. If an\n * instance does not exist, one is created.\n * @param {!string} id - The id of the Logger to get.\n * @param {?Object} [options] - Options for the Logger instance.\n * @returns {Logger} - A configured Logger instance with a specified id.\n */\n add(id, options) {\n if (!this.loggers.has(id)) {\n // Remark: Simple shallow clone for configuration options in case we pass\n // in instantiated protoypal objects\n options = Object.assign({}, options || this.options);\n const existing = options.transports || this.options.transports;\n\n // Remark: Make sure if we have an array of transports we slice it to\n // make copies of those references.\n if (existing) {\n options.transports = Array.isArray(existing) ? existing.slice() : [existing];\n } else {\n options.transports = [];\n }\n\n const logger = createLogger(options);\n logger.on('close', () => this._delete(id));\n this.loggers.set(id, logger);\n }\n\n return this.loggers.get(id);\n }\n\n /**\n * Retreives a `winston.Logger` instance for the specified `id`. If\n * an instance does not exist, one is created.\n * @param {!string} id - The id of the Logger to get.\n * @param {?Object} [options] - Options for the Logger instance.\n * @returns {Logger} - A configured Logger instance with a specified id.\n */\n get(id, options) {\n return this.add(id, options);\n }\n\n /**\n * Check if the container has a logger with the id.\n * @param {?string} id - The id of the Logger instance to find.\n * @returns {boolean} - Boolean value indicating if this instance has a\n * logger with the specified `id`.\n */\n has(id) {\n return !!this.loggers.has(id);\n }\n\n /**\n * Closes a `Logger` instance with the specified `id` if it exists.\n * If no `id` is supplied then all Loggers are closed.\n * @param {?string} id - The id of the Logger instance to close.\n * @returns {undefined}\n */\n close(id) {\n if (id) {\n return this._removeLogger(id);\n }\n\n this.loggers.forEach((val, key) => this._removeLogger(key));\n }\n\n /**\n * Remove a logger based on the id.\n * @param {!string} id - The id of the logger to remove.\n * @returns {undefined}\n * @private\n */\n _removeLogger(id) {\n if (!this.loggers.has(id)) {\n return;\n }\n\n const logger = this.loggers.get(id);\n logger.close();\n this._delete(id);\n }\n\n /**\n * Deletes a `Logger` instance with the specified `id`.\n * @param {!string} id - The id of the Logger instance to delete from\n * container.\n * @returns {undefined}\n * @private\n */\n _delete(id) {\n this.loggers.delete(id);\n }\n};\n","/**\n * create-logger.js: Logger factory for winston logger instances.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst { LEVEL } = require('triple-beam');\nconst config = require('./config');\nconst Logger = require('./logger');\nconst debug = require('@dabh/diagnostics')('winston:create-logger');\n\nfunction isLevelEnabledFunctionName(level) {\n return 'is' + level.charAt(0).toUpperCase() + level.slice(1) + 'Enabled';\n}\n\n/**\n * Create a new instance of a winston Logger. Creates a new\n * prototype for each instance.\n * @param {!Object} opts - Options for the created logger.\n * @returns {Logger} - A newly created logger instance.\n */\nmodule.exports = function (opts = {}) {\n //\n // Default levels: npm\n //\n opts.levels = opts.levels || config.npm.levels;\n\n /**\n * DerivedLogger to attach the logs level methods.\n * @type {DerivedLogger}\n * @extends {Logger}\n */\n class DerivedLogger extends Logger {\n /**\n * Create a new class derived logger for which the levels can be attached to\n * the prototype of. This is a V8 optimization that is well know to increase\n * performance of prototype functions.\n * @param {!Object} options - Options for the created logger.\n */\n constructor(options) {\n super(options);\n }\n }\n\n const logger = new DerivedLogger(opts);\n\n //\n // Create the log level methods for the derived logger.\n //\n Object.keys(opts.levels).forEach(function (level) {\n debug('Define prototype method for \"%s\"', level);\n if (level === 'log') {\n // eslint-disable-next-line no-console\n console.warn('Level \"log\" not defined: conflicts with the method \"log\". Use a different level name.');\n return;\n }\n\n //\n // Define prototype methods for each log level e.g.:\n // logger.log('info', msg) implies these methods are defined:\n // - logger.info(msg)\n // - logger.isInfoEnabled()\n //\n // Remark: to support logger.child this **MUST** be a function\n // so it'll always be called on the instance instead of a fixed\n // place in the prototype chain.\n //\n DerivedLogger.prototype[level] = function (...args) {\n // Prefer any instance scope, but default to \"root\" logger\n const self = this || logger;\n\n // Optimize the hot-path which is the single object.\n if (args.length === 1) {\n const [msg] = args;\n const info = msg && msg.message && msg || { message: msg };\n info.level = info[LEVEL] = level;\n self._addDefaultMeta(info);\n self.write(info);\n return (this || logger);\n }\n\n // When provided nothing assume the empty string\n if (args.length === 0) {\n self.log(level, '');\n return self;\n }\n\n // Otherwise build argument list which could potentially conform to\n // either:\n // . v3 API: log(obj)\n // 2. v1/v2 API: log(level, msg, ... [string interpolate], [{metadata}], [callback])\n return self.log(level, ...args);\n };\n\n DerivedLogger.prototype[isLevelEnabledFunctionName(level)] = function () {\n return (this || logger).isLevelEnabled(level);\n };\n });\n\n return logger;\n};\n","/**\n * exception-handler.js: Object for handling uncaughtException events.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst os = require('os');\nconst asyncForEach = require('async/forEach');\nconst debug = require('@dabh/diagnostics')('winston:exception');\nconst once = require('one-time');\nconst stackTrace = require('stack-trace');\nconst ExceptionStream = require('./exception-stream');\n\n/**\n * Object for handling uncaughtException events.\n * @type {ExceptionHandler}\n */\nmodule.exports = class ExceptionHandler {\n /**\n * TODO: add contructor description\n * @param {!Logger} logger - TODO: add param description\n */\n constructor(logger) {\n if (!logger) {\n throw new Error('Logger is required to handle exceptions');\n }\n\n this.logger = logger;\n this.handlers = new Map();\n }\n\n /**\n * Handles `uncaughtException` events for the current process by adding any\n * handlers passed in.\n * @returns {undefined}\n */\n handle(...args) {\n args.forEach(arg => {\n if (Array.isArray(arg)) {\n return arg.forEach(handler => this._addHandler(handler));\n }\n\n this._addHandler(arg);\n });\n\n if (!this.catcher) {\n this.catcher = this._uncaughtException.bind(this);\n process.on('uncaughtException', this.catcher);\n }\n }\n\n /**\n * Removes any handlers to `uncaughtException` events for the current\n * process. This does not modify the state of the `this.handlers` set.\n * @returns {undefined}\n */\n unhandle() {\n if (this.catcher) {\n process.removeListener('uncaughtException', this.catcher);\n this.catcher = false;\n\n Array.from(this.handlers.values())\n .forEach(wrapper => this.logger.unpipe(wrapper));\n }\n }\n\n /**\n * TODO: add method description\n * @param {Error} err - Error to get information about.\n * @returns {mixed} - TODO: add return description.\n */\n getAllInfo(err) {\n let message = null;\n if (err) {\n message = typeof err === 'string' ? err : err.message;\n }\n\n return {\n error: err,\n // TODO (indexzero): how do we configure this?\n level: 'error',\n message: [\n `uncaughtException: ${(message || '(no error message)')}`,\n err && err.stack || ' No stack trace'\n ].join('\\n'),\n stack: err && err.stack,\n exception: true,\n date: new Date().toString(),\n process: this.getProcessInfo(),\n os: this.getOsInfo(),\n trace: this.getTrace(err)\n };\n }\n\n /**\n * Gets all relevant process information for the currently running process.\n * @returns {mixed} - TODO: add return description.\n */\n getProcessInfo() {\n return {\n pid: process.pid,\n uid: process.getuid ? process.getuid() : null,\n gid: process.getgid ? process.getgid() : null,\n cwd: process.cwd(),\n execPath: process.execPath,\n version: process.version,\n argv: process.argv,\n memoryUsage: process.memoryUsage()\n };\n }\n\n /**\n * Gets all relevant OS information for the currently running process.\n * @returns {mixed} - TODO: add return description.\n */\n getOsInfo() {\n return {\n loadavg: os.loadavg(),\n uptime: os.uptime()\n };\n }\n\n /**\n * Gets a stack trace for the specified error.\n * @param {mixed} err - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n */\n getTrace(err) {\n const trace = err ? stackTrace.parse(err) : stackTrace.get();\n return trace.map(site => {\n return {\n column: site.getColumnNumber(),\n file: site.getFileName(),\n function: site.getFunctionName(),\n line: site.getLineNumber(),\n method: site.getMethodName(),\n native: site.isNative()\n };\n });\n }\n\n /**\n * Helper method to add a transport as an exception handler.\n * @param {Transport} handler - The transport to add as an exception handler.\n * @returns {void}\n */\n _addHandler(handler) {\n if (!this.handlers.has(handler)) {\n handler.handleExceptions = true;\n const wrapper = new ExceptionStream(handler);\n this.handlers.set(handler, wrapper);\n this.logger.pipe(wrapper);\n }\n }\n\n /**\n * Logs all relevant information around the `err` and exits the current\n * process.\n * @param {Error} err - Error to handle\n * @returns {mixed} - TODO: add return description.\n * @private\n */\n _uncaughtException(err) {\n const info = this.getAllInfo(err);\n const handlers = this._getExceptionHandlers();\n // Calculate if we should exit on this error\n let doExit = typeof this.logger.exitOnError === 'function'\n ? this.logger.exitOnError(err)\n : this.logger.exitOnError;\n let timeout;\n\n if (!handlers.length && doExit) {\n // eslint-disable-next-line no-console\n console.warn('winston: exitOnError cannot be true with no exception handlers.');\n // eslint-disable-next-line no-console\n console.warn('winston: not exiting process.');\n doExit = false;\n }\n\n function gracefulExit() {\n debug('doExit', doExit);\n debug('process._exiting', process._exiting);\n\n if (doExit && !process._exiting) {\n // Remark: Currently ignoring any exceptions from transports when\n // catching uncaught exceptions.\n if (timeout) {\n clearTimeout(timeout);\n }\n // eslint-disable-next-line no-process-exit\n process.exit(1);\n }\n }\n\n if (!handlers || handlers.length === 0) {\n return process.nextTick(gracefulExit);\n }\n\n // Log to all transports attempting to listen for when they are completed.\n asyncForEach(handlers, (handler, next) => {\n const done = once(next);\n const transport = handler.transport || handler;\n\n // Debug wrapping so that we can inspect what's going on under the covers.\n function onDone(event) {\n return () => {\n debug(event);\n done();\n };\n }\n\n transport._ending = true;\n transport.once('finish', onDone('finished'));\n transport.once('error', onDone('error'));\n }, () => doExit && gracefulExit());\n\n this.logger.log(info);\n\n // If exitOnError is true, then only allow the logging of exceptions to\n // take up to `3000ms`.\n if (doExit) {\n timeout = setTimeout(gracefulExit, 3000);\n }\n }\n\n /**\n * Returns the list of transports and exceptionHandlers for this instance.\n * @returns {Array} - List of transports and exceptionHandlers for this\n * instance.\n * @private\n */\n _getExceptionHandlers() {\n // Remark (indexzero): since `logger.transports` returns all of the pipes\n // from the _readableState of the stream we actually get the join of the\n // explicit handlers and the implicit transports with\n // `handleExceptions: true`\n return this.logger.transports.filter(wrap => {\n const transport = wrap.transport || wrap;\n return transport.handleExceptions;\n });\n }\n};\n","/**\n * exception-stream.js: TODO: add file header handler.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst { Writable } = require('readable-stream');\n\n/**\n * TODO: add class description.\n * @type {ExceptionStream}\n * @extends {Writable}\n */\nmodule.exports = class ExceptionStream extends Writable {\n /**\n * Constructor function for the ExceptionStream responsible for wrapping a\n * TransportStream; only allowing writes of `info` objects with\n * `info.exception` set to true.\n * @param {!TransportStream} transport - Stream to filter to exceptions\n */\n constructor(transport) {\n super({ objectMode: true });\n\n if (!transport) {\n throw new Error('ExceptionStream requires a TransportStream instance.');\n }\n\n // Remark (indexzero): we set `handleExceptions` here because it's the\n // predicate checked in ExceptionHandler.prototype.__getExceptionHandlers\n this.handleExceptions = true;\n this.transport = transport;\n }\n\n /**\n * Writes the info object to our transport instance if (and only if) the\n * `exception` property is set on the info.\n * @param {mixed} info - TODO: add param description.\n * @param {mixed} enc - TODO: add param description.\n * @param {mixed} callback - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n * @private\n */\n _write(info, enc, callback) {\n if (info.exception) {\n return this.transport.log(info, callback);\n }\n\n callback();\n return true;\n }\n};\n","/**\n * logger.js: TODO: add file header description.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst { Stream, Transform } = require('readable-stream');\nconst asyncForEach = require('async/forEach');\nconst { LEVEL, SPLAT } = require('triple-beam');\nconst isStream = require('is-stream');\nconst ExceptionHandler = require('./exception-handler');\nconst RejectionHandler = require('./rejection-handler');\nconst LegacyTransportStream = require('winston-transport/legacy');\nconst Profiler = require('./profiler');\nconst { warn } = require('./common');\nconst config = require('./config');\n\n/**\n * Captures the number of format (i.e. %s strings) in a given string.\n * Based on `util.format`, see Node.js source:\n * https://github.com/nodejs/node/blob/b1c8f15c5f169e021f7c46eb7b219de95fe97603/lib/util.js#L201-L230\n * @type {RegExp}\n */\nconst formatRegExp = /%[scdjifoO%]/g;\n\n/**\n * TODO: add class description.\n * @type {Logger}\n * @extends {Transform}\n */\nclass Logger extends Transform {\n /**\n * Constructor function for the Logger object responsible for persisting log\n * messages and metadata to one or more transports.\n * @param {!Object} options - foo\n */\n constructor(options) {\n super({ objectMode: true });\n this.configure(options);\n }\n\n child(defaultRequestMetadata) {\n const logger = this;\n return Object.create(logger, {\n write: {\n value: function (info) {\n const infoClone = Object.assign(\n {},\n defaultRequestMetadata,\n info\n );\n\n // Object.assign doesn't copy inherited Error\n // properties so we have to do that explicitly\n //\n // Remark (indexzero): we should remove this\n // since the errors format will handle this case.\n //\n if (info instanceof Error) {\n infoClone.stack = info.stack;\n infoClone.message = info.message;\n }\n\n logger.write(infoClone);\n }\n }\n });\n }\n\n /**\n * This will wholesale reconfigure this instance by:\n * 1. Resetting all transports. Older transports will be removed implicitly.\n * 2. Set all other options including levels, colors, rewriters, filters,\n * exceptionHandlers, etc.\n * @param {!Object} options - TODO: add param description.\n * @returns {undefined}\n */\n configure({\n silent,\n format,\n defaultMeta,\n levels,\n level = 'info',\n exitOnError = true,\n transports,\n colors,\n emitErrs,\n formatters,\n padLevels,\n rewriters,\n stripColors,\n exceptionHandlers,\n rejectionHandlers\n } = {}) {\n // Reset transports if we already have them\n if (this.transports.length) {\n this.clear();\n }\n\n this.silent = silent;\n this.format = format || this.format || require('logform/json')();\n\n this.defaultMeta = defaultMeta || null;\n // Hoist other options onto this instance.\n this.levels = levels || this.levels || config.npm.levels;\n this.level = level;\n if (this.exceptions) {\n this.exceptions.unhandle();\n }\n if (this.rejections) {\n this.rejections.unhandle();\n }\n this.exceptions = new ExceptionHandler(this);\n this.rejections = new RejectionHandler(this);\n this.profilers = {};\n this.exitOnError = exitOnError;\n\n // Add all transports we have been provided.\n if (transports) {\n transports = Array.isArray(transports) ? transports : [transports];\n transports.forEach(transport => this.add(transport));\n }\n\n if (\n colors ||\n emitErrs ||\n formatters ||\n padLevels ||\n rewriters ||\n stripColors\n ) {\n throw new Error(\n [\n '{ colors, emitErrs, formatters, padLevels, rewriters, stripColors } were removed in winston@3.0.0.',\n 'Use a custom winston.format(function) instead.',\n 'See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md'\n ].join('\\n')\n );\n }\n\n if (exceptionHandlers) {\n this.exceptions.handle(exceptionHandlers);\n }\n if (rejectionHandlers) {\n this.rejections.handle(rejectionHandlers);\n }\n }\n\n isLevelEnabled(level) {\n const givenLevelValue = getLevelValue(this.levels, level);\n if (givenLevelValue === null) {\n return false;\n }\n\n const configuredLevelValue = getLevelValue(this.levels, this.level);\n if (configuredLevelValue === null) {\n return false;\n }\n\n if (!this.transports || this.transports.length === 0) {\n return configuredLevelValue >= givenLevelValue;\n }\n\n const index = this.transports.findIndex(transport => {\n let transportLevelValue = getLevelValue(this.levels, transport.level);\n if (transportLevelValue === null) {\n transportLevelValue = configuredLevelValue;\n }\n return transportLevelValue >= givenLevelValue;\n });\n return index !== -1;\n }\n\n /* eslint-disable valid-jsdoc */\n /**\n * Ensure backwards compatibility with a `log` method\n * @param {mixed} level - Level the log message is written at.\n * @param {mixed} msg - TODO: add param description.\n * @param {mixed} meta - TODO: add param description.\n * @returns {Logger} - TODO: add return description.\n *\n * @example\n * // Supports the existing API:\n * logger.log('info', 'Hello world', { custom: true });\n * logger.log('info', new Error('Yo, it\\'s on fire'));\n *\n * // Requires winston.format.splat()\n * logger.log('info', '%s %d%%', 'A string', 50, { thisIsMeta: true });\n *\n * // And the new API with a single JSON literal:\n * logger.log({ level: 'info', message: 'Hello world', custom: true });\n * logger.log({ level: 'info', message: new Error('Yo, it\\'s on fire') });\n *\n * // Also requires winston.format.splat()\n * logger.log({\n * level: 'info',\n * message: '%s %d%%',\n * [SPLAT]: ['A string', 50],\n * meta: { thisIsMeta: true }\n * });\n *\n */\n /* eslint-enable valid-jsdoc */\n log(level, msg, ...splat) {\n // eslint-disable-line max-params\n // Optimize for the hotpath of logging JSON literals\n if (arguments.length === 1) {\n // Yo dawg, I heard you like levels ... seriously ...\n // In this context the LHS `level` here is actually the `info` so read\n // this as: info[LEVEL] = info.level;\n level[LEVEL] = level.level;\n this._addDefaultMeta(level);\n this.write(level);\n return this;\n }\n\n // Slightly less hotpath, but worth optimizing for.\n if (arguments.length === 2) {\n if (msg && typeof msg === 'object') {\n msg[LEVEL] = msg.level = level;\n this._addDefaultMeta(msg);\n this.write(msg);\n return this;\n }\n\n msg = { [LEVEL]: level, level, message: msg };\n this._addDefaultMeta(msg);\n this.write(msg);\n return this;\n }\n\n const [meta] = splat;\n if (typeof meta === 'object' && meta !== null) {\n // Extract tokens, if none available default to empty array to\n // ensure consistancy in expected results\n const tokens = msg && msg.match && msg.match(formatRegExp);\n\n if (!tokens) {\n const info = Object.assign({}, this.defaultMeta, meta, {\n [LEVEL]: level,\n [SPLAT]: splat,\n level,\n message: msg\n });\n\n if (meta.message) info.message = `${info.message} ${meta.message}`;\n if (meta.stack) info.stack = meta.stack;\n\n this.write(info);\n return this;\n }\n }\n\n this.write(Object.assign({}, this.defaultMeta, {\n [LEVEL]: level,\n [SPLAT]: splat,\n level,\n message: msg\n }));\n\n return this;\n }\n\n /**\n * Pushes data so that it can be picked up by all of our pipe targets.\n * @param {mixed} info - TODO: add param description.\n * @param {mixed} enc - TODO: add param description.\n * @param {mixed} callback - Continues stream processing.\n * @returns {undefined}\n * @private\n */\n _transform(info, enc, callback) {\n if (this.silent) {\n return callback();\n }\n\n // [LEVEL] is only soft guaranteed to be set here since we are a proper\n // stream. It is likely that `info` came in through `.log(info)` or\n // `.info(info)`. If it is not defined, however, define it.\n // This LEVEL symbol is provided by `triple-beam` and also used in:\n // - logform\n // - winston-transport\n // - abstract-winston-transport\n if (!info[LEVEL]) {\n info[LEVEL] = info.level;\n }\n\n // Remark: really not sure what to do here, but this has been reported as\n // very confusing by pre winston@2.0.0 users as quite confusing when using\n // custom levels.\n if (!this.levels[info[LEVEL]] && this.levels[info[LEVEL]] !== 0) {\n // eslint-disable-next-line no-console\n console.error('[winston] Unknown logger level: %s', info[LEVEL]);\n }\n\n // Remark: not sure if we should simply error here.\n if (!this._readableState.pipes) {\n // eslint-disable-next-line no-console\n console.error(\n '[winston] Attempt to write logs with no transports, which can increase memory usage: %j',\n info\n );\n }\n\n // Here we write to the `format` pipe-chain, which on `readable` above will\n // push the formatted `info` Object onto the buffer for this instance. We trap\n // (and re-throw) any errors generated by the user-provided format, but also\n // guarantee that the streams callback is invoked so that we can continue flowing.\n try {\n this.push(this.format.transform(info, this.format.options));\n } finally {\n this._writableState.sync = false;\n // eslint-disable-next-line callback-return\n callback();\n }\n }\n\n /**\n * Delays the 'finish' event until all transport pipe targets have\n * also emitted 'finish' or are already finished.\n * @param {mixed} callback - Continues stream processing.\n */\n _final(callback) {\n const transports = this.transports.slice();\n asyncForEach(\n transports,\n (transport, next) => {\n if (!transport || transport.finished) return setImmediate(next);\n transport.once('finish', next);\n transport.end();\n },\n callback\n );\n }\n\n /**\n * Adds the transport to this logger instance by piping to it.\n * @param {mixed} transport - TODO: add param description.\n * @returns {Logger} - TODO: add return description.\n */\n add(transport) {\n // Support backwards compatibility with all existing `winston < 3.x.x`\n // transports which meet one of two criteria:\n // 1. They inherit from winston.Transport in < 3.x.x which is NOT a stream.\n // 2. They expose a log method which has a length greater than 2 (i.e. more then\n // just `log(info, callback)`.\n const target =\n !isStream(transport) || transport.log.length > 2\n ? new LegacyTransportStream({ transport })\n : transport;\n\n if (!target._writableState || !target._writableState.objectMode) {\n throw new Error(\n 'Transports must WritableStreams in objectMode. Set { objectMode: true }.'\n );\n }\n\n // Listen for the `error` event and the `warn` event on the new Transport.\n this._onEvent('error', target);\n this._onEvent('warn', target);\n this.pipe(target);\n\n if (transport.handleExceptions) {\n this.exceptions.handle();\n }\n\n if (transport.handleRejections) {\n this.rejections.handle();\n }\n\n return this;\n }\n\n /**\n * Removes the transport from this logger instance by unpiping from it.\n * @param {mixed} transport - TODO: add param description.\n * @returns {Logger} - TODO: add return description.\n */\n remove(transport) {\n if (!transport) return this;\n let target = transport;\n if (!isStream(transport) || transport.log.length > 2) {\n target = this.transports.filter(\n match => match.transport === transport\n )[0];\n }\n\n if (target) {\n this.unpipe(target);\n }\n return this;\n }\n\n /**\n * Removes all transports from this logger instance.\n * @returns {Logger} - TODO: add return description.\n */\n clear() {\n this.unpipe();\n return this;\n }\n\n /**\n * Cleans up resources (streams, event listeners) for all transports\n * associated with this instance (if necessary).\n * @returns {Logger} - TODO: add return description.\n */\n close() {\n this.exceptions.unhandle();\n this.rejections.unhandle();\n this.clear();\n this.emit('close');\n return this;\n }\n\n /**\n * Sets the `target` levels specified on this instance.\n * @param {Object} Target levels to use on this instance.\n */\n setLevels() {\n warn.deprecated('setLevels');\n }\n\n /**\n * Queries the all transports for this instance with the specified `options`.\n * This will aggregate each transport's results into one object containing\n * a property per transport.\n * @param {Object} options - Query options for this instance.\n * @param {function} callback - Continuation to respond to when complete.\n */\n query(options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n options = options || {};\n const results = {};\n const queryObject = Object.assign({}, options.query || {});\n\n // Helper function to query a single transport\n function queryTransport(transport, next) {\n if (options.query && typeof transport.formatQuery === 'function') {\n options.query = transport.formatQuery(queryObject);\n }\n\n transport.query(options, (err, res) => {\n if (err) {\n return next(err);\n }\n\n if (typeof transport.formatResults === 'function') {\n res = transport.formatResults(res, options.format);\n }\n\n next(null, res);\n });\n }\n\n // Helper function to accumulate the results from `queryTransport` into\n // the `results`.\n function addResults(transport, next) {\n queryTransport(transport, (err, result) => {\n // queryTransport could potentially invoke the callback multiple times\n // since Transport code can be unpredictable.\n if (next) {\n result = err || result;\n if (result) {\n results[transport.name] = result;\n }\n\n // eslint-disable-next-line callback-return\n next();\n }\n\n next = null;\n });\n }\n\n // Iterate over the transports in parallel setting the appropriate key in\n // the `results`.\n asyncForEach(\n this.transports.filter(transport => !!transport.query),\n addResults,\n () => callback(null, results)\n );\n }\n\n /**\n * Returns a log stream for all transports. Options object is optional.\n * @param{Object} options={} - Stream options for this instance.\n * @returns {Stream} - TODO: add return description.\n */\n stream(options = {}) {\n const out = new Stream();\n const streams = [];\n\n out._streams = streams;\n out.destroy = () => {\n let i = streams.length;\n while (i--) {\n streams[i].destroy();\n }\n };\n\n // Create a list of all transports for this instance.\n this.transports\n .filter(transport => !!transport.stream)\n .forEach(transport => {\n const str = transport.stream(options);\n if (!str) {\n return;\n }\n\n streams.push(str);\n\n str.on('log', log => {\n log.transport = log.transport || [];\n log.transport.push(transport.name);\n out.emit('log', log);\n });\n\n str.on('error', err => {\n err.transport = err.transport || [];\n err.transport.push(transport.name);\n out.emit('error', err);\n });\n });\n\n return out;\n }\n\n /**\n * Returns an object corresponding to a specific timing. When done is called\n * the timer will finish and log the duration. e.g.:\n * @returns {Profile} - TODO: add return description.\n * @example\n * const timer = winston.startTimer()\n * setTimeout(() => {\n * timer.done({\n * message: 'Logging message'\n * });\n * }, 1000);\n */\n startTimer() {\n return new Profiler(this);\n }\n\n /**\n * Tracks the time inbetween subsequent calls to this method with the same\n * `id` parameter. The second call to this method will log the difference in\n * milliseconds along with the message.\n * @param {string} id Unique id of the profiler\n * @returns {Logger} - TODO: add return description.\n */\n profile(id, ...args) {\n const time = Date.now();\n if (this.profilers[id]) {\n const timeEnd = this.profilers[id];\n delete this.profilers[id];\n\n // Attempt to be kind to users if they are still using older APIs.\n if (typeof args[args.length - 2] === 'function') {\n // eslint-disable-next-line no-console\n console.warn(\n 'Callback function no longer supported as of winston@3.0.0'\n );\n args.pop();\n }\n\n // Set the duration property of the metadata\n const info = typeof args[args.length - 1] === 'object' ? args.pop() : {};\n info.level = info.level || 'info';\n info.durationMs = time - timeEnd;\n info.message = info.message || id;\n return this.write(info);\n }\n\n this.profilers[id] = time;\n return this;\n }\n\n /**\n * Backwards compatibility to `exceptions.handle` in winston < 3.0.0.\n * @returns {undefined}\n * @deprecated\n */\n handleExceptions(...args) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Deprecated: .handleExceptions() will be removed in winston@4. Use .exceptions.handle()'\n );\n this.exceptions.handle(...args);\n }\n\n /**\n * Backwards compatibility to `exceptions.handle` in winston < 3.0.0.\n * @returns {undefined}\n * @deprecated\n */\n unhandleExceptions(...args) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Deprecated: .unhandleExceptions() will be removed in winston@4. Use .exceptions.unhandle()'\n );\n this.exceptions.unhandle(...args);\n }\n\n /**\n * Throw a more meaningful deprecation notice\n * @throws {Error} - TODO: add throws description.\n */\n cli() {\n throw new Error(\n [\n 'Logger.cli() was removed in winston@3.0.0',\n 'Use a custom winston.formats.cli() instead.',\n 'See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md'\n ].join('\\n')\n );\n }\n\n /**\n * Bubbles the `event` that occured on the specified `transport` up\n * from this instance.\n * @param {string} event - The event that occured\n * @param {Object} transport - Transport on which the event occured\n * @private\n */\n _onEvent(event, transport) {\n function transportEvent(err) {\n // https://github.com/winstonjs/winston/issues/1364\n if (event === 'error' && !this.transports.includes(transport)) {\n this.add(transport);\n }\n this.emit(event, err, transport);\n }\n\n if (!transport['__winston' + event]) {\n transport['__winston' + event] = transportEvent.bind(this);\n transport.on(event, transport['__winston' + event]);\n }\n }\n\n _addDefaultMeta(msg) {\n if (this.defaultMeta) {\n Object.assign(msg, this.defaultMeta);\n }\n }\n}\n\nfunction getLevelValue(levels, level) {\n const value = levels[level];\n if (!value && value !== 0) {\n return null;\n }\n return value;\n}\n\n/**\n * Represents the current readableState pipe targets for this Logger instance.\n * @type {Array|Object}\n */\nObject.defineProperty(Logger.prototype, 'transports', {\n configurable: false,\n enumerable: true,\n get() {\n const { pipes } = this._readableState;\n return !Array.isArray(pipes) ? [pipes].filter(Boolean) : pipes;\n }\n});\n\nmodule.exports = Logger;\n","/**\n * profiler.js: TODO: add file header description.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\n/**\n * TODO: add class description.\n * @type {Profiler}\n * @private\n */\nmodule.exports = class Profiler {\n /**\n * Constructor function for the Profiler instance used by\n * `Logger.prototype.startTimer`. When done is called the timer will finish\n * and log the duration.\n * @param {!Logger} logger - TODO: add param description.\n * @private\n */\n constructor(logger) {\n if (!logger) {\n throw new Error('Logger is required for profiling.');\n }\n\n this.logger = logger;\n this.start = Date.now();\n }\n\n /**\n * Ends the current timer (i.e. Profiler) instance and logs the `msg` along\n * with the duration since creation.\n * @returns {mixed} - TODO: add return description.\n * @private\n */\n done(...args) {\n if (typeof args[args.length - 1] === 'function') {\n // eslint-disable-next-line no-console\n console.warn('Callback function no longer supported as of winston@3.0.0');\n args.pop();\n }\n\n const info = typeof args[args.length - 1] === 'object' ? args.pop() : {};\n info.level = info.level || 'info';\n info.durationMs = (Date.now()) - this.start;\n\n return this.logger.write(info);\n }\n};\n","/**\n * exception-handler.js: Object for handling uncaughtException events.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst os = require('os');\nconst asyncForEach = require('async/forEach');\nconst debug = require('@dabh/diagnostics')('winston:rejection');\nconst once = require('one-time');\nconst stackTrace = require('stack-trace');\nconst ExceptionStream = require('./exception-stream');\n\n/**\n * Object for handling unhandledRejection events.\n * @type {RejectionHandler}\n */\nmodule.exports = class RejectionHandler {\n /**\n * TODO: add contructor description\n * @param {!Logger} logger - TODO: add param description\n */\n constructor(logger) {\n if (!logger) {\n throw new Error('Logger is required to handle rejections');\n }\n\n this.logger = logger;\n this.handlers = new Map();\n }\n\n /**\n * Handles `unhandledRejection` events for the current process by adding any\n * handlers passed in.\n * @returns {undefined}\n */\n handle(...args) {\n args.forEach(arg => {\n if (Array.isArray(arg)) {\n return arg.forEach(handler => this._addHandler(handler));\n }\n\n this._addHandler(arg);\n });\n\n if (!this.catcher) {\n this.catcher = this._unhandledRejection.bind(this);\n process.on('unhandledRejection', this.catcher);\n }\n }\n\n /**\n * Removes any handlers to `unhandledRejection` events for the current\n * process. This does not modify the state of the `this.handlers` set.\n * @returns {undefined}\n */\n unhandle() {\n if (this.catcher) {\n process.removeListener('unhandledRejection', this.catcher);\n this.catcher = false;\n\n Array.from(this.handlers.values()).forEach(wrapper =>\n this.logger.unpipe(wrapper)\n );\n }\n }\n\n /**\n * TODO: add method description\n * @param {Error} err - Error to get information about.\n * @returns {mixed} - TODO: add return description.\n */\n getAllInfo(err) {\n let message = null;\n if (err) {\n message = typeof err === 'string' ? err : err.message;\n }\n\n return {\n error: err,\n // TODO (indexzero): how do we configure this?\n level: 'error',\n message: [\n `unhandledRejection: ${message || '(no error message)'}`,\n err && err.stack || ' No stack trace'\n ].join('\\n'),\n stack: err && err.stack,\n exception: true,\n date: new Date().toString(),\n process: this.getProcessInfo(),\n os: this.getOsInfo(),\n trace: this.getTrace(err)\n };\n }\n\n /**\n * Gets all relevant process information for the currently running process.\n * @returns {mixed} - TODO: add return description.\n */\n getProcessInfo() {\n return {\n pid: process.pid,\n uid: process.getuid ? process.getuid() : null,\n gid: process.getgid ? process.getgid() : null,\n cwd: process.cwd(),\n execPath: process.execPath,\n version: process.version,\n argv: process.argv,\n memoryUsage: process.memoryUsage()\n };\n }\n\n /**\n * Gets all relevant OS information for the currently running process.\n * @returns {mixed} - TODO: add return description.\n */\n getOsInfo() {\n return {\n loadavg: os.loadavg(),\n uptime: os.uptime()\n };\n }\n\n /**\n * Gets a stack trace for the specified error.\n * @param {mixed} err - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n */\n getTrace(err) {\n const trace = err ? stackTrace.parse(err) : stackTrace.get();\n return trace.map(site => {\n return {\n column: site.getColumnNumber(),\n file: site.getFileName(),\n function: site.getFunctionName(),\n line: site.getLineNumber(),\n method: site.getMethodName(),\n native: site.isNative()\n };\n });\n }\n\n /**\n * Helper method to add a transport as an exception handler.\n * @param {Transport} handler - The transport to add as an exception handler.\n * @returns {void}\n */\n _addHandler(handler) {\n if (!this.handlers.has(handler)) {\n handler.handleRejections = true;\n const wrapper = new ExceptionStream(handler);\n this.handlers.set(handler, wrapper);\n this.logger.pipe(wrapper);\n }\n }\n\n /**\n * Logs all relevant information around the `err` and exits the current\n * process.\n * @param {Error} err - Error to handle\n * @returns {mixed} - TODO: add return description.\n * @private\n */\n _unhandledRejection(err) {\n const info = this.getAllInfo(err);\n const handlers = this._getRejectionHandlers();\n // Calculate if we should exit on this error\n let doExit =\n typeof this.logger.exitOnError === 'function'\n ? this.logger.exitOnError(err)\n : this.logger.exitOnError;\n let timeout;\n\n if (!handlers.length && doExit) {\n // eslint-disable-next-line no-console\n console.warn('winston: exitOnError cannot be true with no rejection handlers.');\n // eslint-disable-next-line no-console\n console.warn('winston: not exiting process.');\n doExit = false;\n }\n\n function gracefulExit() {\n debug('doExit', doExit);\n debug('process._exiting', process._exiting);\n\n if (doExit && !process._exiting) {\n // Remark: Currently ignoring any rejections from transports when\n // catching unhandled rejections.\n if (timeout) {\n clearTimeout(timeout);\n }\n // eslint-disable-next-line no-process-exit\n process.exit(1);\n }\n }\n\n if (!handlers || handlers.length === 0) {\n return process.nextTick(gracefulExit);\n }\n\n // Log to all transports attempting to listen for when they are completed.\n asyncForEach(\n handlers,\n (handler, next) => {\n const done = once(next);\n const transport = handler.transport || handler;\n\n // Debug wrapping so that we can inspect what's going on under the covers.\n function onDone(event) {\n return () => {\n debug(event);\n done();\n };\n }\n\n transport._ending = true;\n transport.once('finish', onDone('finished'));\n transport.once('error', onDone('error'));\n },\n () => doExit && gracefulExit()\n );\n\n this.logger.log(info);\n\n // If exitOnError is true, then only allow the logging of exceptions to\n // take up to `3000ms`.\n if (doExit) {\n timeout = setTimeout(gracefulExit, 3000);\n }\n }\n\n /**\n * Returns the list of transports and exceptionHandlers for this instance.\n * @returns {Array} - List of transports and exceptionHandlers for this\n * instance.\n * @private\n */\n _getRejectionHandlers() {\n // Remark (indexzero): since `logger.transports` returns all of the pipes\n // from the _readableState of the stream we actually get the join of the\n // explicit handlers and the implicit transports with\n // `handleRejections: true`\n return this.logger.transports.filter(wrap => {\n const transport = wrap.transport || wrap;\n return transport.handleRejections;\n });\n }\n};\n","/**\n * tail-file.js: TODO: add file header description.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst fs = require('fs');\nconst { StringDecoder } = require('string_decoder');\nconst { Stream } = require('readable-stream');\n\n/**\n * Simple no-op function.\n * @returns {undefined}\n */\nfunction noop() {}\n\n/**\n * TODO: add function description.\n * @param {Object} options - Options for tail.\n * @param {function} iter - Iterator function to execute on every line.\n* `tail -f` a file. Options must include file.\n * @returns {mixed} - TODO: add return description.\n */\nmodule.exports = (options, iter) => {\n const buffer = Buffer.alloc(64 * 1024);\n const decode = new StringDecoder('utf8');\n const stream = new Stream();\n let buff = '';\n let pos = 0;\n let row = 0;\n\n if (options.start === -1) {\n delete options.start;\n }\n\n stream.readable = true;\n stream.destroy = () => {\n stream.destroyed = true;\n stream.emit('end');\n stream.emit('close');\n };\n\n fs.open(options.file, 'a+', '0644', (err, fd) => {\n if (err) {\n if (!iter) {\n stream.emit('error', err);\n } else {\n iter(err);\n }\n stream.destroy();\n return;\n }\n\n (function read() {\n if (stream.destroyed) {\n fs.close(fd, noop);\n return;\n }\n\n return fs.read(fd, buffer, 0, buffer.length, pos, (error, bytes) => {\n if (error) {\n if (!iter) {\n stream.emit('error', error);\n } else {\n iter(error);\n }\n stream.destroy();\n return;\n }\n\n if (!bytes) {\n if (buff) {\n // eslint-disable-next-line eqeqeq\n if (options.start == null || row > options.start) {\n if (!iter) {\n stream.emit('line', buff);\n } else {\n iter(null, buff);\n }\n }\n row++;\n buff = '';\n }\n return setTimeout(read, 1000);\n }\n\n let data = decode.write(buffer.slice(0, bytes));\n if (!iter) {\n stream.emit('data', data);\n }\n\n data = (buff + data).split(/\\n+/);\n\n const l = data.length - 1;\n let i = 0;\n\n for (; i < l; i++) {\n // eslint-disable-next-line eqeqeq\n if (options.start == null || row > options.start) {\n if (!iter) {\n stream.emit('line', data[i]);\n } else {\n iter(null, data[i]);\n }\n }\n row++;\n }\n\n buff = data[l];\n pos += bytes;\n return read();\n });\n }());\n });\n\n if (!iter) {\n return stream;\n }\n\n return stream.destroy;\n};\n","/* eslint-disable no-console */\n/*\n * console.js: Transport for outputting to the console.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst os = require('os');\nconst { LEVEL, MESSAGE } = require('triple-beam');\nconst TransportStream = require('winston-transport');\n\n/**\n * Transport for outputting to the console.\n * @type {Console}\n * @extends {TransportStream}\n */\nmodule.exports = class Console extends TransportStream {\n /**\n * Constructor function for the Console transport object responsible for\n * persisting log messages and metadata to a terminal or TTY.\n * @param {!Object} [options={}] - Options for this instance.\n */\n constructor(options = {}) {\n super(options);\n\n // Expose the name of this Transport on the prototype\n this.name = options.name || 'console';\n this.stderrLevels = this._stringArrayToSet(options.stderrLevels);\n this.consoleWarnLevels = this._stringArrayToSet(options.consoleWarnLevels);\n this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL;\n\n this.setMaxListeners(30);\n }\n\n /**\n * Core logging method exposed to Winston.\n * @param {Object} info - TODO: add param description.\n * @param {Function} callback - TODO: add param description.\n * @returns {undefined}\n */\n log(info, callback) {\n setImmediate(() => this.emit('logged', info));\n\n // Remark: what if there is no raw...?\n if (this.stderrLevels[info[LEVEL]]) {\n if (console._stderr) {\n // Node.js maps `process.stderr` to `console._stderr`.\n console._stderr.write(`${info[MESSAGE]}${this.eol}`);\n } else {\n // console.error adds a newline\n console.error(info[MESSAGE]);\n }\n\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n return;\n } else if (this.consoleWarnLevels[info[LEVEL]]) {\n if (console._stderr) {\n // Node.js maps `process.stderr` to `console._stderr`.\n // in Node.js console.warn is an alias for console.error\n console._stderr.write(`${info[MESSAGE]}${this.eol}`);\n } else {\n // console.warn adds a newline\n console.warn(info[MESSAGE]);\n }\n\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n return;\n }\n\n if (console._stdout) {\n // Node.js maps `process.stdout` to `console._stdout`.\n console._stdout.write(`${info[MESSAGE]}${this.eol}`);\n } else {\n // console.log adds a newline.\n console.log(info[MESSAGE]);\n }\n\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n }\n\n /**\n * Returns a Set-like object with strArray's elements as keys (each with the\n * value true).\n * @param {Array} strArray - Array of Set-elements as strings.\n * @param {?string} [errMsg] - Custom error message thrown on invalid input.\n * @returns {Object} - TODO: add return description.\n * @private\n */\n _stringArrayToSet(strArray, errMsg) {\n if (!strArray)\n return {};\n\n errMsg = errMsg || 'Cannot make set from type other than Array of string elements';\n\n if (!Array.isArray(strArray)) {\n throw new Error(errMsg);\n }\n\n return strArray.reduce((set, el) => {\n if (typeof el !== 'string') {\n throw new Error(errMsg);\n }\n set[el] = true;\n\n return set;\n }, {});\n }\n};\n","/* eslint-disable complexity,max-statements */\n/**\n * file.js: Transport for outputting to a local log file.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst fs = require('fs');\nconst path = require('path');\nconst asyncSeries = require('async/series');\nconst zlib = require('zlib');\nconst { MESSAGE } = require('triple-beam');\nconst { Stream, PassThrough } = require('readable-stream');\nconst TransportStream = require('winston-transport');\nconst debug = require('@dabh/diagnostics')('winston:file');\nconst os = require('os');\nconst tailFile = require('../tail-file');\n\n/**\n * Transport for outputting to a local log file.\n * @type {File}\n * @extends {TransportStream}\n */\nmodule.exports = class File extends TransportStream {\n /**\n * Constructor function for the File transport object responsible for\n * persisting log messages and metadata to one or more files.\n * @param {Object} options - Options for this instance.\n */\n constructor(options = {}) {\n super(options);\n\n // Expose the name of this Transport on the prototype.\n this.name = options.name || 'file';\n\n // Helper function which throws an `Error` in the event that any of the\n // rest of the arguments is present in `options`.\n function throwIf(target, ...args) {\n args.slice(1).forEach(name => {\n if (options[name]) {\n throw new Error(`Cannot set ${name} and ${target} together`);\n }\n });\n }\n\n // Setup the base stream that always gets piped to to handle buffering.\n this._stream = new PassThrough();\n this._stream.setMaxListeners(30);\n\n // Bind this context for listener methods.\n this._onError = this._onError.bind(this);\n\n if (options.filename || options.dirname) {\n throwIf('filename or dirname', 'stream');\n this._basename = this.filename = options.filename\n ? path.basename(options.filename)\n : 'winston.log';\n\n this.dirname = options.dirname || path.dirname(options.filename);\n this.options = options.options || { flags: 'a' };\n } else if (options.stream) {\n // eslint-disable-next-line no-console\n console.warn('options.stream will be removed in winston@4. Use winston.transports.Stream');\n throwIf('stream', 'filename', 'maxsize');\n this._dest = this._stream.pipe(this._setupStream(options.stream));\n this.dirname = path.dirname(this._dest.path);\n // We need to listen for drain events when write() returns false. This\n // can make node mad at times.\n } else {\n throw new Error('Cannot log to file without filename or stream.');\n }\n\n this.maxsize = options.maxsize || null;\n this.rotationFormat = options.rotationFormat || false;\n this.zippedArchive = options.zippedArchive || false;\n this.maxFiles = options.maxFiles || null;\n this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL;\n this.tailable = options.tailable || false;\n this.lazy = options.lazy || false;\n\n // Internal state variables representing the number of files this instance\n // has created and the current size (in bytes) of the current logfile.\n this._size = 0;\n this._pendingSize = 0;\n this._created = 0;\n this._drain = false;\n this._opening = false;\n this._ending = false;\n this._fileExist = false;\n\n if (this.dirname) this._createLogDirIfNotExist(this.dirname);\n if (!this.lazy) this.open();\n }\n\n finishIfEnding() {\n if (this._ending) {\n if (this._opening) {\n this.once('open', () => {\n this._stream.once('finish', () => this.emit('finish'));\n setImmediate(() => this._stream.end());\n });\n } else {\n this._stream.once('finish', () => this.emit('finish'));\n setImmediate(() => this._stream.end());\n }\n }\n }\n\n /**\n * Core logging method exposed to Winston. Metadata is optional.\n * @param {Object} info - TODO: add param description.\n * @param {Function} callback - TODO: add param description.\n * @returns {undefined}\n */\n log(info, callback = () => { }) {\n // Remark: (jcrugzz) What is necessary about this callback(null, true) now\n // when thinking about 3.x? Should silent be handled in the base\n // TransportStream _write method?\n if (this.silent) {\n callback();\n return true;\n }\n\n\n // Output stream buffer is full and has asked us to wait for the drain event\n if (this._drain) {\n this._stream.once('drain', () => {\n this._drain = false;\n this.log(info, callback);\n });\n return;\n }\n if (this._rotate) {\n this._stream.once('rotate', () => {\n this._rotate = false;\n this.log(info, callback);\n });\n return;\n }\n if (this.lazy) {\n if (!this._fileExist) {\n if (!this._opening) {\n this.open();\n }\n this.once('open', () => {\n this._fileExist = true;\n this.log(info, callback);\n return;\n });\n return;\n }\n if (this._needsNewFile(this._pendingSize)) {\n this._dest.once('close', () => {\n if (!this._opening) {\n this.open();\n }\n this.once('open', () => {\n this.log(info, callback);\n return;\n });\n return;\n });\n return;\n }\n }\n\n // Grab the raw string and append the expected EOL.\n const output = `${info[MESSAGE]}${this.eol}`;\n const bytes = Buffer.byteLength(output);\n\n // After we have written to the PassThrough check to see if we need\n // to rotate to the next file.\n //\n // Remark: This gets called too early and does not depict when data\n // has been actually flushed to disk.\n function logged() {\n this._size += bytes;\n this._pendingSize -= bytes;\n\n debug('logged %s %s', this._size, output);\n this.emit('logged', info);\n\n // Do not attempt to rotate files while rotating\n if (this._rotate) {\n return;\n }\n\n // Do not attempt to rotate files while opening\n if (this._opening) {\n return;\n }\n\n // Check to see if we need to end the stream and create a new one.\n if (!this._needsNewFile()) {\n return;\n }\n if (this.lazy) {\n this._endStream(() => {this.emit('fileclosed')});\n return;\n }\n\n // End the current stream, ensure it flushes and create a new one.\n // This could potentially be optimized to not run a stat call but its\n // the safest way since we are supporting `maxFiles`.\n this._rotate = true;\n this._endStream(() => this._rotateFile());\n }\n\n // Keep track of the pending bytes being written while files are opening\n // in order to properly rotate the PassThrough this._stream when the file\n // eventually does open.\n this._pendingSize += bytes;\n if (this._opening\n && !this.rotatedWhileOpening\n && this._needsNewFile(this._size + this._pendingSize)) {\n this.rotatedWhileOpening = true;\n }\n\n const written = this._stream.write(output, logged.bind(this));\n if (!written) {\n this._drain = true;\n this._stream.once('drain', () => {\n this._drain = false;\n callback();\n });\n } else {\n callback(); // eslint-disable-line callback-return\n }\n\n debug('written', written, this._drain);\n\n this.finishIfEnding();\n\n return written;\n }\n\n /**\n * Query the transport. Options object is optional.\n * @param {Object} options - Loggly-like query options for this instance.\n * @param {function} callback - Continuation to respond to when complete.\n * TODO: Refactor me.\n */\n query(options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n options = normalizeQuery(options);\n const file = path.join(this.dirname, this.filename);\n let buff = '';\n let results = [];\n let row = 0;\n\n const stream = fs.createReadStream(file, {\n encoding: 'utf8'\n });\n\n stream.on('error', err => {\n if (stream.readable) {\n stream.destroy();\n }\n if (!callback) {\n return;\n }\n\n return err.code !== 'ENOENT' ? callback(err) : callback(null, results);\n });\n\n stream.on('data', data => {\n data = (buff + data).split(/\\n+/);\n const l = data.length - 1;\n let i = 0;\n\n for (; i < l; i++) {\n if (!options.start || row >= options.start) {\n add(data[i]);\n }\n row++;\n }\n\n buff = data[l];\n });\n\n stream.on('close', () => {\n if (buff) {\n add(buff, true);\n }\n if (options.order === 'desc') {\n results = results.reverse();\n }\n\n // eslint-disable-next-line callback-return\n if (callback) callback(null, results);\n });\n\n function add(buff, attempt) {\n try {\n const log = JSON.parse(buff);\n if (check(log)) {\n push(log);\n }\n } catch (e) {\n if (!attempt) {\n stream.emit('error', e);\n }\n }\n }\n\n function push(log) {\n if (\n options.rows &&\n results.length >= options.rows &&\n options.order !== 'desc'\n ) {\n if (stream.readable) {\n stream.destroy();\n }\n return;\n }\n\n if (options.fields) {\n log = options.fields.reduce((obj, key) => {\n obj[key] = log[key];\n return obj;\n }, {});\n }\n\n if (options.order === 'desc') {\n if (results.length >= options.rows) {\n results.shift();\n }\n }\n results.push(log);\n }\n\n function check(log) {\n if (!log) {\n return;\n }\n\n if (typeof log !== 'object') {\n return;\n }\n\n const time = new Date(log.timestamp);\n if (\n (options.from && time < options.from) ||\n (options.until && time > options.until) ||\n (options.level && options.level !== log.level)\n ) {\n return;\n }\n\n return true;\n }\n\n function normalizeQuery(options) {\n options = options || {};\n\n // limit\n options.rows = options.rows || options.limit || 10;\n\n // starting row offset\n options.start = options.start || 0;\n\n // now\n options.until = options.until || new Date();\n if (typeof options.until !== 'object') {\n options.until = new Date(options.until);\n }\n\n // now - 24\n options.from = options.from || (options.until - (24 * 60 * 60 * 1000));\n if (typeof options.from !== 'object') {\n options.from = new Date(options.from);\n }\n\n // 'asc' or 'desc'\n options.order = options.order || 'desc';\n\n return options;\n }\n }\n\n /**\n * Returns a log stream for this transport. Options object is optional.\n * @param {Object} options - Stream options for this instance.\n * @returns {Stream} - TODO: add return description.\n * TODO: Refactor me.\n */\n stream(options = {}) {\n const file = path.join(this.dirname, this.filename);\n const stream = new Stream();\n const tail = {\n file,\n start: options.start\n };\n\n stream.destroy = tailFile(tail, (err, line) => {\n if (err) {\n return stream.emit('error', err);\n }\n\n try {\n stream.emit('data', line);\n line = JSON.parse(line);\n stream.emit('log', line);\n } catch (e) {\n stream.emit('error', e);\n }\n });\n\n return stream;\n }\n\n /**\n * Checks to see the filesize of.\n * @returns {undefined}\n */\n open() {\n // If we do not have a filename then we were passed a stream and\n // don't need to keep track of size.\n if (!this.filename) return;\n if (this._opening) return;\n\n this._opening = true;\n\n // Stat the target file to get the size and create the stream.\n this.stat((err, size) => {\n if (err) {\n return this.emit('error', err);\n }\n debug('stat done: %s { size: %s }', this.filename, size);\n this._size = size;\n this._dest = this._createStream(this._stream);\n this._opening = false;\n this.once('open', () => {\n if (this._stream.eventNames().includes('rotate')) {\n this._stream.emit('rotate');\n } else {\n this._rotate = false;\n }\n });\n });\n }\n\n /**\n * Stat the file and assess information in order to create the proper stream.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n */\n stat(callback) {\n const target = this._getFile();\n const fullpath = path.join(this.dirname, target);\n\n fs.stat(fullpath, (err, stat) => {\n if (err && err.code === 'ENOENT') {\n debug('ENOENT ok', fullpath);\n // Update internally tracked filename with the new target name.\n this.filename = target;\n return callback(null, 0);\n }\n\n if (err) {\n debug(`err ${err.code} ${fullpath}`);\n return callback(err);\n }\n\n if (!stat || this._needsNewFile(stat.size)) {\n // If `stats.size` is greater than the `maxsize` for this\n // instance then try again.\n return this._incFile(() => this.stat(callback));\n }\n\n // Once we have figured out what the filename is, set it\n // and return the size.\n this.filename = target;\n callback(null, stat.size);\n });\n }\n\n /**\n * Closes the stream associated with this instance.\n * @param {function} cb - TODO: add param description.\n * @returns {undefined}\n */\n close(cb) {\n if (!this._stream) {\n return;\n }\n\n this._stream.end(() => {\n if (cb) {\n cb(); // eslint-disable-line callback-return\n }\n this.emit('flush');\n this.emit('closed');\n });\n }\n\n /**\n * TODO: add method description.\n * @param {number} size - TODO: add param description.\n * @returns {undefined}\n */\n _needsNewFile(size) {\n size = size || this._size;\n return this.maxsize && size >= this.maxsize;\n }\n\n /**\n * TODO: add method description.\n * @param {Error} err - TODO: add param description.\n * @returns {undefined}\n */\n _onError(err) {\n this.emit('error', err);\n }\n\n /**\n * TODO: add method description.\n * @param {Stream} stream - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n */\n _setupStream(stream) {\n stream.on('error', this._onError);\n\n return stream;\n }\n\n /**\n * TODO: add method description.\n * @param {Stream} stream - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n */\n _cleanupStream(stream) {\n stream.removeListener('error', this._onError);\n stream.destroy();\n return stream;\n }\n\n /**\n * TODO: add method description.\n */\n _rotateFile() {\n this._incFile(() => this.open());\n }\n\n /**\n * Unpipe from the stream that has been marked as full and end it so it\n * flushes to disk.\n *\n * @param {function} callback - Callback for when the current file has closed.\n * @private\n */\n _endStream(callback = () => { }) {\n if (this._dest) {\n this._stream.unpipe(this._dest);\n this._dest.end(() => {\n this._cleanupStream(this._dest);\n callback();\n });\n } else {\n callback(); // eslint-disable-line callback-return\n }\n }\n\n /**\n * Returns the WritableStream for the active file on this instance. If we\n * should gzip the file then a zlib stream is returned.\n *\n * @param {ReadableStream} source –PassThrough to pipe to the file when open.\n * @returns {WritableStream} Stream that writes to disk for the active file.\n */\n _createStream(source) {\n const fullpath = path.join(this.dirname, this.filename);\n\n debug('create stream start', fullpath, this.options);\n const dest = fs.createWriteStream(fullpath, this.options)\n // TODO: What should we do with errors here?\n .on('error', err => debug(err))\n .on('close', () => debug('close', dest.path, dest.bytesWritten))\n .on('open', () => {\n debug('file open ok', fullpath);\n this.emit('open', fullpath);\n source.pipe(dest);\n\n // If rotation occured during the open operation then we immediately\n // start writing to a new PassThrough, begin opening the next file\n // and cleanup the previous source and dest once the source has drained.\n if (this.rotatedWhileOpening) {\n this._stream = new PassThrough();\n this._stream.setMaxListeners(30);\n this._rotateFile();\n this.rotatedWhileOpening = false;\n this._cleanupStream(dest);\n source.end();\n }\n });\n\n debug('create stream ok', fullpath);\n if (this.zippedArchive) {\n const gzip = zlib.createGzip();\n gzip.pipe(dest);\n return gzip;\n }\n\n return dest;\n }\n\n /**\n * TODO: add method description.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n */\n _incFile(callback) {\n debug('_incFile', this.filename);\n const ext = path.extname(this._basename);\n const basename = path.basename(this._basename, ext);\n\n if (!this.tailable) {\n this._created += 1;\n this._checkMaxFilesIncrementing(ext, basename, callback);\n } else {\n this._checkMaxFilesTailable(ext, basename, callback);\n }\n }\n\n /**\n * Gets the next filename to use for this instance in the case that log\n * filesizes are being capped.\n * @returns {string} - TODO: add return description.\n * @private\n */\n _getFile() {\n const ext = path.extname(this._basename);\n const basename = path.basename(this._basename, ext);\n const isRotation = this.rotationFormat\n ? this.rotationFormat()\n : this._created;\n\n // Caveat emptor (indexzero): rotationFormat() was broken by design When\n // combined with max files because the set of files to unlink is never\n // stored.\n const target = !this.tailable && this._created\n ? `${basename}${isRotation}${ext}`\n : `${basename}${ext}`;\n\n return this.zippedArchive && !this.tailable\n ? `${target}.gz`\n : target;\n }\n\n /**\n * Increment the number of files created or checked by this instance.\n * @param {mixed} ext - TODO: add param description.\n * @param {mixed} basename - TODO: add param description.\n * @param {mixed} callback - TODO: add param description.\n * @returns {undefined}\n * @private\n */\n _checkMaxFilesIncrementing(ext, basename, callback) {\n // Check for maxFiles option and delete file.\n if (!this.maxFiles || this._created < this.maxFiles) {\n return setImmediate(callback);\n }\n\n const oldest = this._created - this.maxFiles;\n const isOldest = oldest !== 0 ? oldest : '';\n const isZipped = this.zippedArchive ? '.gz' : '';\n const filePath = `${basename}${isOldest}${ext}${isZipped}`;\n const target = path.join(this.dirname, filePath);\n\n fs.unlink(target, callback);\n }\n\n /**\n * Roll files forward based on integer, up to maxFiles. e.g. if base if\n * file.log and it becomes oversized, roll to file1.log, and allow file.log\n * to be re-used. If file is oversized again, roll file1.log to file2.log,\n * roll file.log to file1.log, and so on.\n * @param {mixed} ext - TODO: add param description.\n * @param {mixed} basename - TODO: add param description.\n * @param {mixed} callback - TODO: add param description.\n * @returns {undefined}\n * @private\n */\n _checkMaxFilesTailable(ext, basename, callback) {\n const tasks = [];\n if (!this.maxFiles) {\n return;\n }\n\n // const isZipped = this.zippedArchive ? '.gz' : '';\n const isZipped = this.zippedArchive ? '.gz' : '';\n for (let x = this.maxFiles - 1; x > 1; x--) {\n tasks.push(function (i, cb) {\n let fileName = `${basename}${(i - 1)}${ext}${isZipped}`;\n const tmppath = path.join(this.dirname, fileName);\n\n fs.exists(tmppath, exists => {\n if (!exists) {\n return cb(null);\n }\n\n fileName = `${basename}${i}${ext}${isZipped}`;\n fs.rename(tmppath, path.join(this.dirname, fileName), cb);\n });\n }.bind(this, x));\n }\n\n asyncSeries(tasks, () => {\n fs.rename(\n path.join(this.dirname, `${basename}${ext}`),\n path.join(this.dirname, `${basename}1${ext}${isZipped}`),\n callback\n );\n });\n }\n\n _createLogDirIfNotExist(dirPath) {\n /* eslint-disable no-sync */\n if (!fs.existsSync(dirPath)) {\n fs.mkdirSync(dirPath, { recursive: true });\n }\n /* eslint-enable no-sync */\n }\n};\n","/**\n * http.js: Transport for outputting to a json-rpcserver.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst http = require('http');\nconst https = require('https');\nconst { Stream } = require('readable-stream');\nconst TransportStream = require('winston-transport');\nconst jsonStringify = require('safe-stable-stringify');\n\n/**\n * Transport for outputting to a json-rpc server.\n * @type {Stream}\n * @extends {TransportStream}\n */\nmodule.exports = class Http extends TransportStream {\n /**\n * Constructor function for the Http transport object responsible for\n * persisting log messages and metadata to a terminal or TTY.\n * @param {!Object} [options={}] - Options for this instance.\n */\n // eslint-disable-next-line max-statements\n constructor(options = {}) {\n super(options);\n\n this.options = options;\n this.name = options.name || 'http';\n this.ssl = !!options.ssl;\n this.host = options.host || 'localhost';\n this.port = options.port;\n this.auth = options.auth;\n this.path = options.path || '';\n this.agent = options.agent;\n this.headers = options.headers || {};\n this.headers['content-type'] = 'application/json';\n this.batch = options.batch || false;\n this.batchInterval = options.batchInterval || 5000;\n this.batchCount = options.batchCount || 10;\n this.batchOptions = [];\n this.batchTimeoutID = -1;\n this.batchCallback = {};\n\n if (!this.port) {\n this.port = this.ssl ? 443 : 80;\n }\n }\n\n /**\n * Core logging method exposed to Winston.\n * @param {Object} info - TODO: add param description.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n */\n log(info, callback) {\n this._request(info, null, null, (err, res) => {\n if (res && res.statusCode !== 200) {\n err = new Error(`Invalid HTTP Status Code: ${res.statusCode}`);\n }\n\n if (err) {\n this.emit('warn', err);\n } else {\n this.emit('logged', info);\n }\n });\n\n // Remark: (jcrugzz) Fire and forget here so requests dont cause buffering\n // and block more requests from happening?\n if (callback) {\n setImmediate(callback);\n }\n }\n\n /**\n * Query the transport. Options object is optional.\n * @param {Object} options - Loggly-like query options for this instance.\n * @param {function} callback - Continuation to respond to when complete.\n * @returns {undefined}\n */\n query(options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n options = {\n method: 'query',\n params: this.normalizeQuery(options)\n };\n\n const auth = options.params.auth || null;\n delete options.params.auth;\n\n const path = options.params.path || null;\n delete options.params.path;\n\n this._request(options, auth, path, (err, res, body) => {\n if (res && res.statusCode !== 200) {\n err = new Error(`Invalid HTTP Status Code: ${res.statusCode}`);\n }\n\n if (err) {\n return callback(err);\n }\n\n if (typeof body === 'string') {\n try {\n body = JSON.parse(body);\n } catch (e) {\n return callback(e);\n }\n }\n\n callback(null, body);\n });\n }\n\n /**\n * Returns a log stream for this transport. Options object is optional.\n * @param {Object} options - Stream options for this instance.\n * @returns {Stream} - TODO: add return description\n */\n stream(options = {}) {\n const stream = new Stream();\n options = {\n method: 'stream',\n params: options\n };\n\n const path = options.params.path || null;\n delete options.params.path;\n\n const auth = options.params.auth || null;\n delete options.params.auth;\n\n let buff = '';\n const req = this._request(options, auth, path);\n\n stream.destroy = () => req.destroy();\n req.on('data', data => {\n data = (buff + data).split(/\\n+/);\n const l = data.length - 1;\n\n let i = 0;\n for (; i < l; i++) {\n try {\n stream.emit('log', JSON.parse(data[i]));\n } catch (e) {\n stream.emit('error', e);\n }\n }\n\n buff = data[l];\n });\n req.on('error', err => stream.emit('error', err));\n\n return stream;\n }\n\n /**\n * Make a request to a winstond server or any http server which can\n * handle json-rpc.\n * @param {function} options - Options to sent the request.\n * @param {Object?} auth - authentication options\n * @param {string} path - request path\n * @param {function} callback - Continuation to respond to when complete.\n */\n _request(options, auth, path, callback) {\n options = options || {};\n\n auth = auth || this.auth;\n path = path || this.path || '';\n\n if (this.batch) {\n this._doBatch(options, callback, auth, path);\n } else {\n this._doRequest(options, callback, auth, path);\n }\n }\n\n /**\n * Send or memorize the options according to batch configuration\n * @param {function} options - Options to sent the request.\n * @param {function} callback - Continuation to respond to when complete.\n * @param {Object?} auth - authentication options\n * @param {string} path - request path\n */\n _doBatch(options, callback, auth, path) {\n this.batchOptions.push(options);\n if (this.batchOptions.length === 1) {\n // First message stored, it's time to start the timeout!\n const me = this;\n this.batchCallback = callback;\n this.batchTimeoutID = setTimeout(function () {\n // timeout is reached, send all messages to endpoint\n me.batchTimeoutID = -1;\n me._doBatchRequest(me.batchCallback, auth, path);\n }, this.batchInterval);\n }\n if (this.batchOptions.length === this.batchCount) {\n // max batch count is reached, send all messages to endpoint\n this._doBatchRequest(this.batchCallback, auth, path);\n }\n }\n\n /**\n * Initiate a request with the memorized batch options, stop the batch timeout\n * @param {function} callback - Continuation to respond to when complete.\n * @param {Object?} auth - authentication options\n * @param {string} path - request path\n */\n _doBatchRequest(callback, auth, path) {\n if (this.batchTimeoutID > 0) {\n clearTimeout(this.batchTimeoutID);\n this.batchTimeoutID = -1;\n }\n const batchOptionsCopy = this.batchOptions.slice();\n this.batchOptions = [];\n this._doRequest(batchOptionsCopy, callback, auth, path);\n }\n\n /**\n * Make a request to a winstond server or any http server which can\n * handle json-rpc.\n * @param {function} options - Options to sent the request.\n * @param {function} callback - Continuation to respond to when complete.\n * @param {Object?} auth - authentication options\n * @param {string} path - request path\n */\n _doRequest(options, callback, auth, path) {\n // Prepare options for outgoing HTTP request\n const headers = Object.assign({}, this.headers);\n if (auth && auth.bearer) {\n headers.Authorization = `Bearer ${auth.bearer}`;\n }\n const req = (this.ssl ? https : http).request({\n ...this.options,\n method: 'POST',\n host: this.host,\n port: this.port,\n path: `/${path.replace(/^\\//, '')}`,\n headers: headers,\n auth: (auth && auth.username && auth.password) ? (`${auth.username}:${auth.password}`) : '',\n agent: this.agent\n });\n\n req.on('error', callback);\n req.on('response', res => (\n res.on('end', () => callback(null, res)).resume()\n ));\n req.end(Buffer.from(jsonStringify(options, this.options.replacer), 'utf8'));\n }\n};\n","/**\n * transports.js: Set of all transports Winston knows about.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\n/**\n * TODO: add property description.\n * @type {Console}\n */\nObject.defineProperty(exports, 'Console', {\n configurable: true,\n enumerable: true,\n get() {\n return require('./console');\n }\n});\n\n/**\n * TODO: add property description.\n * @type {File}\n */\nObject.defineProperty(exports, 'File', {\n configurable: true,\n enumerable: true,\n get() {\n return require('./file');\n }\n});\n\n/**\n * TODO: add property description.\n * @type {Http}\n */\nObject.defineProperty(exports, 'Http', {\n configurable: true,\n enumerable: true,\n get() {\n return require('./http');\n }\n});\n\n/**\n * TODO: add property description.\n * @type {Stream}\n */\nObject.defineProperty(exports, 'Stream', {\n configurable: true,\n enumerable: true,\n get() {\n return require('./stream');\n }\n});\n","/**\n * stream.js: Transport for outputting to any arbitrary stream.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst isStream = require('is-stream');\nconst { MESSAGE } = require('triple-beam');\nconst os = require('os');\nconst TransportStream = require('winston-transport');\n\n/**\n * Transport for outputting to any arbitrary stream.\n * @type {Stream}\n * @extends {TransportStream}\n */\nmodule.exports = class Stream extends TransportStream {\n /**\n * Constructor function for the Console transport object responsible for\n * persisting log messages and metadata to a terminal or TTY.\n * @param {!Object} [options={}] - Options for this instance.\n */\n constructor(options = {}) {\n super(options);\n\n if (!options.stream || !isStream(options.stream)) {\n throw new Error('options.stream is required.');\n }\n\n // We need to listen for drain events when write() returns false. This can\n // make node mad at times.\n this._stream = options.stream;\n this._stream.setMaxListeners(Infinity);\n this.isObjectMode = options.stream._writableState.objectMode;\n this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL;\n }\n\n /**\n * Core logging method exposed to Winston.\n * @param {Object} info - TODO: add param description.\n * @param {Function} callback - TODO: add param description.\n * @returns {undefined}\n */\n log(info, callback) {\n setImmediate(() => this.emit('logged', info));\n if (this.isObjectMode) {\n this._stream.write(info);\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n return;\n }\n\n this._stream.write(`${info[MESSAGE]}${this.eol}`);\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n return;\n }\n};\n","'use strict';\n\nconst codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n\n function getMessage (arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message\n } else {\n return message(arg1, arg2, arg3)\n }\n }\n\n class NodeError extends Base {\n constructor (arg1, arg2, arg3) {\n super(getMessage(arg1, arg2, arg3));\n }\n }\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n const len = expected.length;\n expected = expected.map((i) => String(i));\n if (len > 2) {\n return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` +\n expected[len - 1];\n } else if (len === 2) {\n return `one of ${thing} ${expected[0]} or ${expected[1]}`;\n } else {\n return `of ${thing} ${expected[0]}`;\n }\n } else {\n return `of ${thing} ${String(expected)}`;\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n\treturn str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n\tif (this_len === undefined || this_len > str.length) {\n\t\tthis_len = str.length;\n\t}\n\treturn str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"'\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n let determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n let msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`;\n } else {\n const type = includes(name, '.') ? 'property' : 'argument';\n msg = `The \"${name}\" ${type} ${determiner} ${oneOf(expected, 'type')}`;\n }\n\n msg += `. Received type ${typeof actual}`;\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented'\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\n\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","'use strict';\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar ERR_INVALID_ARG_TYPE = require('../../../errors').codes.ERR_INVALID_ARG_TYPE;\nfunction from(Readable, iterable, opts) {\n var iterator;\n if (iterable && typeof iterable.next === 'function') {\n iterator = iterable;\n } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable);\n var readable = new Readable(_objectSpread({\n objectMode: true\n }, opts));\n // Reading boolean to protect against _read\n // being called before last iteration completion.\n var reading = false;\n readable._read = function () {\n if (!reading) {\n reading = true;\n next();\n }\n };\n function next() {\n return _next2.apply(this, arguments);\n }\n function _next2() {\n _next2 = _asyncToGenerator(function* () {\n try {\n var _yield$iterator$next = yield iterator.next(),\n value = _yield$iterator$next.value,\n done = _yield$iterator$next.done;\n if (done) {\n readable.push(null);\n } else if (readable.push(yield value)) {\n next();\n } else {\n reading = false;\n }\n } catch (err) {\n readable.destroy(err);\n }\n });\n return _next2.apply(this, arguments);\n }\n return readable;\n}\nmodule.exports = from;\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('stream');\n","var Stream = require('stream');\nif (process.env.READABLE_STREAM === 'disable' && Stream) {\n module.exports = Stream.Readable;\n Object.assign(module.exports, Stream);\n module.exports.Stream = Stream;\n} else {\n exports = module.exports = require('./lib/_stream_readable.js');\n exports.Stream = Stream || exports;\n exports.Readable = exports;\n exports.Writable = require('./lib/_stream_writable.js');\n exports.Duplex = require('./lib/_stream_duplex.js');\n exports.Transform = require('./lib/_stream_transform.js');\n exports.PassThrough = require('./lib/_stream_passthrough.js');\n exports.finished = require('./lib/internal/streams/end-of-stream.js');\n exports.pipeline = require('./lib/internal/streams/pipeline.js');\n}\n","// identical copy of https://github.com/enketo/enketo-transformer/blob/2.1.5/src/markdown.js\n// committed because of https://github.com/medic/cht-core/issues/7771\n\n/**\n * @module markdown\n */\n\n/**\n * Transforms XForm label and hint textnode content with a subset of Markdown into HTML\n *\n * Supported:\n * - `_`, `__`, `*`, `**`, `[]()`, `#`, `##`, `###`, `####`, `#####`,\n * - span tags and html-encoded span tags,\n * - single-level unordered markdown lists and single-level ordered markdown lists\n * - newline characters\n *\n * Also HTML encodes any unsupported HTML tags for safe use inside web-based clients\n *\n * @static\n * @param {string} text - Text content of a textnode.\n * @return {string} transformed text content of a textnode.\n */\nfunction markdownToHtml(text) {\n // note: in JS $ matches end of line as well as end of string, and ^ both beginning of line and string\n const html = text\n // html encoding of < because libXMLJs Element.text() converts html entities\n .replace(//gm, '>')\n // span\n .replace(\n /<\\s?span([^/\\n]*)>((?:(?!<\\/).)+)<\\/\\s?span\\s?>/gm,\n _createSpan\n )\n // sup\n .replace(\n /<\\s?sup([^/\\n]*)>((?:(?!<\\/).)+)<\\/\\s?sup\\s?>/gm,\n _createSup\n )\n // sub\n .replace(\n /<\\s?sub([^/\\n]*)>((?:(?!<\\/).)+)<\\/\\s?sub\\s?>/gm,\n _createSub\n )\n // \"\\\" will be used as escape character for *, _\n .replace(/&/gm, '&')\n .replace(/\\\\\\\\/gm, '&92;')\n .replace(/\\\\\\*/gm, '&42;')\n .replace(/\\\\_/gm, '&95;')\n .replace(/\\\\#/gm, '&35;')\n // strong\n .replace(/__(.*?)__/gm, '$1')\n .replace(/\\*\\*(.*?)\\*\\*/gm, '$1')\n // emphasis\n .replace(/_([^\\s][^_\\n]*)_/gm, '$1')\n .replace(/\\*([^\\s][^*\\n]*)\\*/gm, '$1')\n // links\n .replace(\n /\\[([^\\]]*)\\]\\(([^)]+)\\)/gm,\n '$1'\n )\n // headers\n .replace(/^\\s*(#{1,6})\\s?([^#][^\\n]*)(\\n|$)/gm, _createHeader)\n // unordered lists\n .replace(/^((\\*|\\+|-) (.*)(\\n|$))+/gm, _createUnorderedList)\n // ordered lists, which have to be preceded by a newline since numbered labels are common\n .replace(/(\\n([0-9]+\\.) (.*))+$/gm, _createOrderedList)\n // newline characters followed by
                        tag\n .replace(/\\n(
                          )/gm, '$1')\n // reverting escape of special characters\n .replace(/&35;/gm, '#')\n .replace(/&95;/gm, '_')\n .replace(/&92;/gm, '\\\\')\n .replace(/&42;/gm, '*')\n .replace(/&/gm, '&')\n // paragraphs\n .replace(/([^\\n]+)\\n{2,}/gm, _createParagraph)\n // any remaining newline characters\n .replace(/([^\\n]+)\\n/gm, '$1
                          ');\n\n return html;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @param {*} hashtags - Before header text. `#` gives `

                          `, `####` gives `

                          `.\n * @param {string} content - Header text.\n * @return {string} HTML string.\n */\nfunction _createHeader(match, hashtags, content) {\n const level = hashtags.length;\n\n return `${content.replace(/#+$/, '')}`;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @return {string} HTML string.\n */\nfunction _createUnorderedList(match) {\n const items = match.replace(/(\\*|\\+|-)(.*)\\n?/gm, _createItem);\n\n return `
                            ${items}
                          `;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @return {string} HTML string.\n */\nfunction _createOrderedList(match) {\n const startMatches = match.match(/^\\n?(?[0-9]+)\\./);\n const start =\n startMatches && startMatches.groups && startMatches.groups.start !== '1'\n ? ` start=\"${startMatches.groups.start}\"`\n : '';\n const items = match.replace(/\\n?([0-9]+\\.)(.*)/gm, _createItem);\n\n return `${items}`;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @param {string} bullet - The list item bullet/number.\n * @param {string} content - Item text.\n * @return {string} HTML string.\n */\nfunction _createItem(match, bullet, content) {\n return `
                        • ${content.trim()}
                        • `;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @param {string} line - The line.\n * @return {string} HTML string.\n */\nfunction _createParagraph(match, line) {\n const trimmed = line.trim();\n if (/^<\\/?(ul|ol|li|h|p|bl)/i.test(trimmed)) {\n return line;\n }\n\n return `

                          ${trimmed}

                          `;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @param {string} attributes - Attributes to be added for ``\n * @param {string} content - Span text.\n * @return {string} HTML string.\n */\nfunction _createSpan(match, attributes, content) {\n const sanitizedAttributes = _sanitizeAttributes(attributes);\n\n return `${content}`;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @param {string} attributes - The attributes.\n * @param {string} content - Sup text.\n * @return {string} HTML string.\n */\nfunction _createSup(match, attributes, content) {\n // ignore attributes completely\n return `${content}`;\n}\n\n/**\n * @param {string} match - The matched substring.\n * @param {string} attributes - The attributes.\n * @param {string} content - Sub text.\n * @return {string} HTML string.\n */\nfunction _createSub(match, attributes, content) {\n // ignore attributes completely\n return `${content}`;\n}\n\n/**\n * @param {string} attributes - The attributes.\n * @return {string} style\n */\nfunction _sanitizeAttributes(attributes) {\n const styleMatches = attributes.match(/( style=([\"'])[^\"']*\\2)/);\n const style = styleMatches && styleMatches.length ? styleMatches[0] : '';\n\n return style;\n}\n\nmodule.exports = {\n toHtml: markdownToHtml,\n};\n","const { createLogger, format, transports } = require('winston');\nconst env = process.env.NODE_ENV || 'development';\nconst morgan = require('morgan');\nconst moment = require('moment');\nconst DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ss.SSS';\nmorgan.token('date', () => moment().format(DATE_FORMAT));\n\n\nconst cleanUpErrorsFromSymbolProperties = (info) => {\n if (!info) {\n return;\n }\n\n // errors can be passed as \"Symbol('splat')\" properties, when doing: logger.error('message: %o', actualError);\n // see https://github.com/winstonjs/winston/blob/2625f60c5c85b8c4926c65e98a591f8b42e0db9a/README.md#streams-objectmode-and-info-objects\n Object.getOwnPropertySymbols(info).forEach(property => {\n const values = info[property];\n if (Array.isArray(values)) {\n values.forEach(value => cleanUpRequestError(value));\n }\n });\n};\n\nconst cleanUpRequestError = (error) => {\n // These are the error types that we're expecting from request-promise-native\n // https://github.com/request/promise-core/blob/v1.1.4/lib/errors.js\n const requestErrorConstructors = ['RequestError', 'StatusCodeError', 'TransformError'];\n if (error && error.constructor && requestErrorConstructors.includes(error.constructor.name)) {\n // these properties could contain sensitive information, like passwords or auth tokens, and are not safe to log\n delete error.options;\n delete error.request;\n delete error.response;\n }\n};\n\nconst enumerateErrorFormat = format(info => {\n cleanUpErrorsFromSymbolProperties(info);\n cleanUpRequestError(info);\n cleanUpRequestError(info.message);\n\n if (info.message instanceof Error) {\n info.message = Object.assign({\n message: info.message.message,\n stack: info.message.stack\n }, info.message);\n }\n\n if (info instanceof Error) {\n return Object.assign({\n message: info.message,\n stack: info.stack\n }, info);\n }\n\n return info;\n});\n\nconst logger = createLogger({\n format: format.combine(\n enumerateErrorFormat(),\n format.splat(),\n format.simple()\n ),\n transports: [\n new transports.Console({\n // change level if in dev environment versus production\n level: env === 'development' ? 'debug' : 'info',\n format: format.combine(\n // https://github.com/winstonjs/winston/issues/1345\n format(info => {\n info.level = info.level.toUpperCase();\n return info;\n })(),\n format.timestamp({ format: DATE_FORMAT }),\n format.printf(info => `${info.timestamp} ${info.level}: ${info.message} ${info.stack ? info.stack : ''}`)\n ),\n }),\n ],\n});\n\nmodule.exports = logger;\n","/**\n * XForm generation service\n * @module generate-xform\n */\nconst childProcess = require('child_process');\nconst path = require('path');\nconst htmlParser = require('node-html-parser');\nconst logger = require('../logger');\n// const db = require('../db');\n// const formsService = require('./forms');\nconst markdown = require('../enketo-transformer/markdown');\n\nconst MODEL_ROOT_OPEN = '';\nconst ROOT_CLOSE = '';\nconst JAVAROSA_SRC = / src=\"jr:\\/\\//gi;\nconst MEDIA_SRC_ATTR = ' data-media-src=\"';\n\n// const FORM_STYLESHEET = path.join(__dirname, '../xsl/openrosa2html5form.xsl');\n// const MODEL_STYLESHEET = path.join(__dirname, '../enketo-transformer/xsl/openrosa2xmlmodel.xsl');\nconst { FORM_STYLESHEET, MODEL_STYLESHEET } = require('../xsl/xsl-paths');\nconst XSLTPROC_CMD = 'xsltproc';\n\nconst processErrorHandler = (xsltproc, err, reject) => {\n xsltproc.stdin.end();\n if (err.code === 'EPIPE' // Node v10,v12,v14\n || (err.code === 'ENOENT' && err.syscall === `spawn ${XSLTPROC_CMD}`) // Node v8,v16+\n ) {\n const errMsg = `Unable to continue execution, check that '${XSLTPROC_CMD}' command is available.`;\n logger.error(errMsg);\n return reject(new Error(errMsg));\n }\n logger.error(err);\n return reject(new Error(`Unknown Error: An error occurred when executing '${XSLTPROC_CMD}' command`));\n};\n\nconst transform = (formXml, stylesheet) => {\n return new Promise((resolve, reject) => {\n const xsltproc = childProcess.spawn(XSLTPROC_CMD, [ stylesheet, '-' ]);\n let stdout = '';\n let stderr = '';\n xsltproc.stdout.on('data', data => stdout += data);\n xsltproc.stderr.on('data', data => stderr += data);\n xsltproc.stdin.setEncoding('utf-8');\n xsltproc.stdin.on('error', err => {\n // Errors related with spawned processes and stdin are handled here on Node v10\n return processErrorHandler(xsltproc, err, reject);\n });\n try {\n xsltproc.stdin.write(formXml);\n xsltproc.stdin.end();\n } catch (err) {\n // Errors related with spawned processes and stdin are handled here on Node v12\n return processErrorHandler(xsltproc, err, reject);\n }\n xsltproc.on('close', (code, signal) => {\n if (code !== 0 || signal || stderr.length) {\n let errorMsg = `Error transforming xml. xsltproc returned code \"${code}\", and signal \"${signal}\"`;\n if (stderr.length) {\n errorMsg += '. xsltproc stderr output:\\n' + stderr;\n }\n return reject(new Error(errorMsg));\n }\n if (!stdout) {\n return reject(new Error(`Error transforming xml. xsltproc returned no error but no output.`));\n }\n resolve(stdout);\n });\n xsltproc.on('error', err => {\n // Errors related with spawned processes are handled here on Node v8,v14,v16+\n return processErrorHandler(xsltproc, err, reject);\n });\n });\n};\n\nconst convertDynamicUrls = (original) => original.replace(\n /]+href=\"([^\"]*---output[^\"]*)\"[^>]*>(.*?)<\\/a>/gm,\n '' +\n '$2$1' +\n ''\n);\n\nconst convertEmbeddedHtml = (original) => original\n .replace(/<\\s*(\\/)?\\s*([\\s\\S]*?)\\s*>/gm, '<$1$2>')\n .replace(/"/g, '\"')\n .replace(/'/g, '\\'')\n .replace(/&/g, '&');\n\nconst replaceNode = (currentNode, newNode) => {\n const { parentNode } = currentNode;\n const idx = parentNode.childNodes.findIndex((child) => child === currentNode);\n parentNode.childNodes = [\n ...parentNode.childNodes.slice(0, idx),\n newNode,\n ...parentNode.childNodes.slice(idx + 1),\n ];\n};\n\n// Based on enketo/enketo-transformer\n// https://github.com/enketo/enketo-transformer/blob/377caf14153586b040367f8c2de53c9d794c19d4/src/transformer.js#L430\nconst replaceAllMarkdown = (formString) => {\n const replacements = {};\n const form = htmlParser.parse(formString).querySelector('form');\n\n // First turn all outputs into text so ** can be detected\n form.querySelectorAll('span.or-output').forEach((el, index) => {\n const key = `---output-${index}`;\n const textNode = el.childNodes[0];\n replacements[key] = el.toString();\n textNode.textContent = key;\n replaceNode(el, textNode);\n // Note that we end up in a situation where we likely have sibling text nodes...\n });\n\n // Now render markdown\n const questions = form.querySelectorAll('span.question-label');\n const hints = form.querySelectorAll('span.or-hint');\n questions.concat(hints).forEach((el, index) => {\n const original = el.innerHTML;\n let rendered = markdown.toHtml(original);\n rendered = convertDynamicUrls(rendered);\n rendered = convertEmbeddedHtml(rendered);\n\n if (original !== rendered) {\n const key = `$$$${index}`;\n replacements[key] = rendered;\n el.innerHTML = key;\n }\n });\n\n let result = form.toString();\n\n // Now replace the placeholders with the rendered HTML\n // in reverse order so outputs are done last\n Object.keys(replacements).reverse().forEach(key => {\n const replacement = replacements[key];\n if (replacement) {\n result = result.replace(key, replacement);\n }\n });\n\n return result;\n};\n\nconst generateForm = formXml => {\n return transform(formXml, FORM_STYLESHEET).then(form => {\n form = replaceAllMarkdown(form);\n // rename the media src attributes so the browser doesn't try and\n // request them, instead leaving it to custom code in the Enketo\n // service to load them asynchronously\n return form.replace(JAVAROSA_SRC, MEDIA_SRC_ATTR);\n });\n};\n\nconst generateModel = formXml => {\n return transform(formXml, MODEL_STYLESHEET).then(model => {\n // remove the root node leaving just the model\n model = model.replace(MODEL_ROOT_OPEN, '');\n const index = model.lastIndexOf(ROOT_CLOSE);\n if (index === -1) {\n return model;\n }\n return model.slice(0, index) + model.slice(index + ROOT_CLOSE.length);\n });\n};\n\nconst getEnketoForm = doc => {\n const collect = doc.context && doc.context.collect;\n return !collect && formsService.getXFormAttachment(doc);\n};\n\nconst generate = formXml => {\n return Promise.all([ generateForm(formXml), generateModel(formXml) ])\n .then(([ form, model ]) => ({ form, model }));\n};\n\nconst updateAttachment = (doc, updated, name, type) => {\n const attachmentData = doc._attachments &&\n doc._attachments[name] &&\n doc._attachments[name].data &&\n doc._attachments[name].data.toString();\n if (attachmentData === updated) {\n return false;\n }\n doc._attachments[name] = {\n data: Buffer.from(updated),\n content_type: type\n };\n return true;\n};\n\nconst updateAttachmentsIfRequired = (doc, updated) => {\n const formUpdated = updateAttachment(doc, updated.form, 'form.html', 'text/html');\n const modelUpdated = updateAttachment(doc, updated.model, 'model.xml', 'text/xml');\n return formUpdated || modelUpdated;\n};\n\nconst updateAttachments = (accumulator, doc) => {\n return accumulator.then(results => {\n const form = getEnketoForm(doc);\n if (!form) {\n results.push(null); // not an enketo form - no update required\n return results;\n }\n logger.debug(`Generating html and xml model for enketo form \"${doc._id}\"`);\n return module.exports.generate(form.data.toString()).then(result => {\n results.push(result);\n return results;\n });\n });\n};\n\n// Returns array of docs that need saving.\nconst updateAllAttachments = docs => {\n // spawn the child processes in series so we don't smash the server\n return docs.reduce(updateAttachments, Promise.resolve([])).then(results => {\n return docs.filter((doc, i) => {\n return results[i] && updateAttachmentsIfRequired(doc, results[i]);\n });\n });\n};\n\nmodule.exports = {\n\n /**\n * Updates the model and form attachments of the given form if necessary.\n * @param {string} docId - The db id of the doc defining the form.\n */\n update: docId => {\n return db.medic.get(docId, { attachments: true, binary: true })\n .then(doc => updateAllAttachments([ doc ]))\n .then(docs => {\n const doc = docs.length && docs[0];\n if (doc) {\n logger.info(`Updating form with ID \"${docId}\"`);\n return db.medic.put(doc);\n }\n logger.info(`Form with ID \"${docId}\" does not need to be updated.`);\n });\n },\n\n /**\n * Updates the model and form attachments for all forms if necessary.\n */\n updateAll: () => {\n return formsService\n .getFormDocs()\n .then(docs => {\n if (!docs.length) {\n return [];\n }\n return updateAllAttachments(docs);\n })\n .then(toSave => {\n logger.info(`Updating ${toSave.length} enketo form${toSave.length === 1 ? '' : 's'}`);\n if (!toSave.length) {\n return;\n }\n return db.saveDocs(db.medic, toSave).then(results => {\n const failures = results.filter(result => !result.ok);\n if (failures.length) {\n logger.error('Bulk save failed with: %o', failures);\n throw new Error('Failed to save updated xforms to the database');\n }\n });\n });\n\n },\n\n /**\n * @param formXml The XML form string\n * @returns a promise with the XML form transformed following\n * the stylesheet rules defined (XSL transformations)\n */\n generate\n\n};\n","(function () {\n \"use strict\";\n\n function defineArgumentsExtended(extended, is) {\n\n var pSlice = Array.prototype.slice,\n isArguments = is.isArguments;\n\n function argsToArray(args, slice) {\n var i = -1, j = 0, l = args.length, ret = [];\n slice = slice || 0;\n i += slice;\n while (++i < l) {\n ret[j++] = args[i];\n }\n return ret;\n }\n\n\n return extended\n .define(isArguments, {\n toArray: argsToArray\n })\n .expose({\n argsToArray: argsToArray\n });\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineArgumentsExtended(require(\"extended\"), require(\"is-extended\"));\n\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"extended\", \"is-extended\"], function (extended, is) {\n return defineArgumentsExtended(extended, is);\n });\n } else {\n this.argumentsExtended = defineArgumentsExtended(this.extended, this.isExtended);\n }\n\n}).call(this);\n\n","(function () {\n \"use strict\";\n /*global define*/\n\n function defineArray(extended, is, args) {\n\n var isString = is.isString,\n isArray = Array.isArray || is.isArray,\n isDate = is.isDate,\n floor = Math.floor,\n abs = Math.abs,\n mathMax = Math.max,\n mathMin = Math.min,\n arrayProto = Array.prototype,\n arrayIndexOf = arrayProto.indexOf,\n arrayForEach = arrayProto.forEach,\n arrayMap = arrayProto.map,\n arrayReduce = arrayProto.reduce,\n arrayReduceRight = arrayProto.reduceRight,\n arrayFilter = arrayProto.filter,\n arrayEvery = arrayProto.every,\n arraySome = arrayProto.some,\n argsToArray = args.argsToArray;\n\n\n function cross(num, cros) {\n return reduceRight(cros, function (a, b) {\n if (!isArray(b)) {\n b = [b];\n }\n b.unshift(num);\n a.unshift(b);\n return a;\n }, []);\n }\n\n function permute(num, cross, length) {\n var ret = [];\n for (var i = 0; i < cross.length; i++) {\n ret.push([num].concat(rotate(cross, i)).slice(0, length));\n }\n return ret;\n }\n\n\n function intersection(a, b) {\n var ret = [], aOne, i = -1, l;\n l = a.length;\n while (++i < l) {\n aOne = a[i];\n if (indexOf(b, aOne) !== -1) {\n ret.push(aOne);\n }\n }\n return ret;\n }\n\n\n var _sort = (function () {\n\n var isAll = function (arr, test) {\n return every(arr, test);\n };\n\n var defaultCmp = function (a, b) {\n return a - b;\n };\n\n var dateSort = function (a, b) {\n return a.getTime() - b.getTime();\n };\n\n return function _sort(arr, property) {\n var ret = [];\n if (isArray(arr)) {\n ret = arr.slice();\n if (property) {\n if (typeof property === \"function\") {\n ret.sort(property);\n } else {\n ret.sort(function (a, b) {\n var aProp = a[property], bProp = b[property];\n if (isString(aProp) && isString(bProp)) {\n return aProp > bProp ? 1 : aProp < bProp ? -1 : 0;\n } else if (isDate(aProp) && isDate(bProp)) {\n return aProp.getTime() - bProp.getTime();\n } else {\n return aProp - bProp;\n }\n });\n }\n } else {\n if (isAll(ret, isString)) {\n ret.sort();\n } else if (isAll(ret, isDate)) {\n ret.sort(dateSort);\n } else {\n ret.sort(defaultCmp);\n }\n }\n }\n return ret;\n };\n\n })();\n\n function indexOf(arr, searchElement, from) {\n var index = (from || 0) - 1,\n length = arr.length;\n while (++index < length) {\n if (arr[index] === searchElement) {\n return index;\n }\n }\n return -1;\n }\n\n function lastIndexOf(arr, searchElement, from) {\n if (!isArray(arr)) {\n throw new TypeError();\n }\n\n var t = Object(arr);\n var len = t.length >>> 0;\n if (len === 0) {\n return -1;\n }\n\n var n = len;\n if (arguments.length > 2) {\n n = Number(arguments[2]);\n if (n !== n) {\n n = 0;\n } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) {\n n = (n > 0 || -1) * floor(abs(n));\n }\n }\n\n var k = n >= 0 ? mathMin(n, len - 1) : len - abs(n);\n\n for (; k >= 0; k--) {\n if (k in t && t[k] === searchElement) {\n return k;\n }\n }\n return -1;\n }\n\n function filter(arr, iterator, scope) {\n if (arr && arrayFilter && arrayFilter === arr.filter) {\n return arr.filter(iterator, scope);\n }\n if (!isArray(arr) || typeof iterator !== \"function\") {\n throw new TypeError();\n }\n\n var t = Object(arr);\n var len = t.length >>> 0;\n var res = [];\n for (var i = 0; i < len; i++) {\n if (i in t) {\n var val = t[i]; // in case fun mutates this\n if (iterator.call(scope, val, i, t)) {\n res.push(val);\n }\n }\n }\n return res;\n }\n\n function forEach(arr, iterator, scope) {\n if (!isArray(arr) || typeof iterator !== \"function\") {\n throw new TypeError();\n }\n if (arr && arrayForEach && arrayForEach === arr.forEach) {\n arr.forEach(iterator, scope);\n return arr;\n }\n for (var i = 0, len = arr.length; i < len; ++i) {\n iterator.call(scope || arr, arr[i], i, arr);\n }\n\n return arr;\n }\n\n function every(arr, iterator, scope) {\n if (arr && arrayEvery && arrayEvery === arr.every) {\n return arr.every(iterator, scope);\n }\n if (!isArray(arr) || typeof iterator !== \"function\") {\n throw new TypeError();\n }\n var t = Object(arr);\n var len = t.length >>> 0;\n for (var i = 0; i < len; i++) {\n if (i in t && !iterator.call(scope, t[i], i, t)) {\n return false;\n }\n }\n return true;\n }\n\n function some(arr, iterator, scope) {\n if (arr && arraySome && arraySome === arr.some) {\n return arr.some(iterator, scope);\n }\n if (!isArray(arr) || typeof iterator !== \"function\") {\n throw new TypeError();\n }\n var t = Object(arr);\n var len = t.length >>> 0;\n for (var i = 0; i < len; i++) {\n if (i in t && iterator.call(scope, t[i], i, t)) {\n return true;\n }\n }\n return false;\n }\n\n function map(arr, iterator, scope) {\n if (arr && arrayMap && arrayMap === arr.map) {\n return arr.map(iterator, scope);\n }\n if (!isArray(arr) || typeof iterator !== \"function\") {\n throw new TypeError();\n }\n\n var t = Object(arr);\n var len = t.length >>> 0;\n var res = [];\n for (var i = 0; i < len; i++) {\n if (i in t) {\n res.push(iterator.call(scope, t[i], i, t));\n }\n }\n return res;\n }\n\n function reduce(arr, accumulator, curr) {\n var initial = arguments.length > 2;\n if (arr && arrayReduce && arrayReduce === arr.reduce) {\n return initial ? arr.reduce(accumulator, curr) : arr.reduce(accumulator);\n }\n if (!isArray(arr) || typeof accumulator !== \"function\") {\n throw new TypeError();\n }\n var i = 0, l = arr.length >> 0;\n if (arguments.length < 3) {\n if (l === 0) {\n throw new TypeError(\"Array length is 0 and no second argument\");\n }\n curr = arr[0];\n i = 1; // start accumulating at the second element\n } else {\n curr = arguments[2];\n }\n while (i < l) {\n if (i in arr) {\n curr = accumulator.call(undefined, curr, arr[i], i, arr);\n }\n ++i;\n }\n return curr;\n }\n\n function reduceRight(arr, accumulator, curr) {\n var initial = arguments.length > 2;\n if (arr && arrayReduceRight && arrayReduceRight === arr.reduceRight) {\n return initial ? arr.reduceRight(accumulator, curr) : arr.reduceRight(accumulator);\n }\n if (!isArray(arr) || typeof accumulator !== \"function\") {\n throw new TypeError();\n }\n\n var t = Object(arr);\n var len = t.length >>> 0;\n\n // no value to return if no initial value, empty array\n if (len === 0 && arguments.length === 2) {\n throw new TypeError();\n }\n\n var k = len - 1;\n if (arguments.length >= 3) {\n curr = arguments[2];\n } else {\n do {\n if (k in arr) {\n curr = arr[k--];\n break;\n }\n }\n while (true);\n }\n while (k >= 0) {\n if (k in t) {\n curr = accumulator.call(undefined, curr, t[k], k, t);\n }\n k--;\n }\n return curr;\n }\n\n\n function toArray(o) {\n var ret = [];\n if (o !== null) {\n var args = argsToArray(arguments);\n if (args.length === 1) {\n if (isArray(o)) {\n ret = o;\n } else if (is.isHash(o)) {\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n ret.push([i, o[i]]);\n }\n }\n } else {\n ret.push(o);\n }\n } else {\n forEach(args, function (a) {\n ret = ret.concat(toArray(a));\n });\n }\n }\n return ret;\n }\n\n function sum(array) {\n array = array || [];\n if (array.length) {\n return reduce(array, function (a, b) {\n return a + b;\n });\n } else {\n return 0;\n }\n }\n\n function avg(arr) {\n arr = arr || [];\n if (arr.length) {\n var total = sum(arr);\n if (is.isNumber(total)) {\n return total / arr.length;\n } else {\n throw new Error(\"Cannot average an array of non numbers.\");\n }\n } else {\n return 0;\n }\n }\n\n function sort(arr, cmp) {\n return _sort(arr, cmp);\n }\n\n function min(arr, cmp) {\n return _sort(arr, cmp)[0];\n }\n\n function max(arr, cmp) {\n return _sort(arr, cmp)[arr.length - 1];\n }\n\n function difference(arr1) {\n var ret = arr1, args = flatten(argsToArray(arguments, 1));\n if (isArray(arr1)) {\n ret = filter(arr1, function (a) {\n return indexOf(args, a) === -1;\n });\n }\n return ret;\n }\n\n function removeDuplicates(arr) {\n var ret = [], i = -1, l, retLength = 0;\n if (arr) {\n l = arr.length;\n while (++i < l) {\n var item = arr[i];\n if (indexOf(ret, item) === -1) {\n ret[retLength++] = item;\n }\n }\n }\n return ret;\n }\n\n\n function unique(arr) {\n return removeDuplicates(arr);\n }\n\n\n function rotate(arr, numberOfTimes) {\n var ret = arr.slice();\n if (typeof numberOfTimes !== \"number\") {\n numberOfTimes = 1;\n }\n if (numberOfTimes && isArray(arr)) {\n if (numberOfTimes > 0) {\n ret.push(ret.shift());\n numberOfTimes--;\n } else {\n ret.unshift(ret.pop());\n numberOfTimes++;\n }\n return rotate(ret, numberOfTimes);\n } else {\n return ret;\n }\n }\n\n function permutations(arr, length) {\n var ret = [];\n if (isArray(arr)) {\n var copy = arr.slice(0);\n if (typeof length !== \"number\") {\n length = arr.length;\n }\n if (!length) {\n ret = [\n []\n ];\n } else if (length <= arr.length) {\n ret = reduce(arr, function (a, b, i) {\n var ret;\n if (length > 1) {\n ret = permute(b, rotate(copy, i).slice(1), length);\n } else {\n ret = [\n [b]\n ];\n }\n return a.concat(ret);\n }, []);\n }\n }\n return ret;\n }\n\n function zip() {\n var ret = [];\n var arrs = argsToArray(arguments);\n if (arrs.length > 1) {\n var arr1 = arrs.shift();\n if (isArray(arr1)) {\n ret = reduce(arr1, function (a, b, i) {\n var curr = [b];\n for (var j = 0; j < arrs.length; j++) {\n var currArr = arrs[j];\n if (isArray(currArr) && !is.isUndefined(currArr[i])) {\n curr.push(currArr[i]);\n } else {\n curr.push(null);\n }\n }\n a.push(curr);\n return a;\n }, []);\n }\n }\n return ret;\n }\n\n function transpose(arr) {\n var ret = [];\n if (isArray(arr) && arr.length) {\n var last;\n forEach(arr, function (a) {\n if (isArray(a) && (!last || a.length === last.length)) {\n forEach(a, function (b, i) {\n if (!ret[i]) {\n ret[i] = [];\n }\n ret[i].push(b);\n });\n last = a;\n }\n });\n }\n return ret;\n }\n\n function valuesAt(arr, indexes) {\n var ret = [];\n indexes = argsToArray(arguments);\n arr = indexes.shift();\n if (isArray(arr) && indexes.length) {\n for (var i = 0, l = indexes.length; i < l; i++) {\n ret.push(arr[indexes[i]] || null);\n }\n }\n return ret;\n }\n\n function union() {\n var ret = [];\n var arrs = argsToArray(arguments);\n if (arrs.length > 1) {\n for (var i = 0, l = arrs.length; i < l; i++) {\n ret = ret.concat(arrs[i]);\n }\n ret = removeDuplicates(ret);\n }\n return ret;\n }\n\n function intersect() {\n var collect = [], sets, i = -1 , l;\n if (arguments.length > 1) {\n //assume we are intersections all the lists in the array\n sets = argsToArray(arguments);\n } else {\n sets = arguments[0];\n }\n if (isArray(sets)) {\n collect = sets[0];\n i = 0;\n l = sets.length;\n while (++i < l) {\n collect = intersection(collect, sets[i]);\n }\n }\n return removeDuplicates(collect);\n }\n\n function powerSet(arr) {\n var ret = [];\n if (isArray(arr) && arr.length) {\n ret = reduce(arr, function (a, b) {\n var ret = map(a, function (c) {\n return c.concat(b);\n });\n return a.concat(ret);\n }, [\n []\n ]);\n }\n return ret;\n }\n\n function cartesian(a, b) {\n var ret = [];\n if (isArray(a) && isArray(b) && a.length && b.length) {\n ret = cross(a[0], b).concat(cartesian(a.slice(1), b));\n }\n return ret;\n }\n\n function compact(arr) {\n var ret = [];\n if (isArray(arr) && arr.length) {\n ret = filter(arr, function (item) {\n return !is.isUndefinedOrNull(item);\n });\n }\n return ret;\n }\n\n function multiply(arr, times) {\n times = is.isNumber(times) ? times : 1;\n if (!times) {\n //make sure times is greater than zero if it is zero then dont multiply it\n times = 1;\n }\n arr = toArray(arr || []);\n var ret = [], i = 0;\n while (++i <= times) {\n ret = ret.concat(arr);\n }\n return ret;\n }\n\n function flatten(arr) {\n var set;\n var args = argsToArray(arguments);\n if (args.length > 1) {\n //assume we are intersections all the lists in the array\n set = args;\n } else {\n set = toArray(arr);\n }\n return reduce(set, function (a, b) {\n return a.concat(b);\n }, []);\n }\n\n function pluck(arr, prop) {\n prop = prop.split(\".\");\n var result = arr.slice(0);\n forEach(prop, function (prop) {\n var exec = prop.match(/(\\w+)\\(\\)$/);\n result = map(result, function (item) {\n return exec ? item[exec[1]]() : item[prop];\n });\n });\n return result;\n }\n\n function invoke(arr, func, args) {\n args = argsToArray(arguments, 2);\n return map(arr, function (item) {\n var exec = isString(func) ? item[func] : func;\n return exec.apply(item, args);\n });\n }\n\n\n var array = {\n toArray: toArray,\n sum: sum,\n avg: avg,\n sort: sort,\n min: min,\n max: max,\n difference: difference,\n removeDuplicates: removeDuplicates,\n unique: unique,\n rotate: rotate,\n permutations: permutations,\n zip: zip,\n transpose: transpose,\n valuesAt: valuesAt,\n union: union,\n intersect: intersect,\n powerSet: powerSet,\n cartesian: cartesian,\n compact: compact,\n multiply: multiply,\n flatten: flatten,\n pluck: pluck,\n invoke: invoke,\n forEach: forEach,\n map: map,\n filter: filter,\n reduce: reduce,\n reduceRight: reduceRight,\n some: some,\n every: every,\n indexOf: indexOf,\n lastIndexOf: lastIndexOf\n };\n\n return extended.define(isArray, array).expose(array);\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineArray(require(\"extended\"), require(\"is-extended\"), require(\"arguments-extended\"));\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"extended\", \"is-extended\", \"arguments-extended\"], function (extended, is, args) {\n return defineArray(extended, is, args);\n });\n } else {\n this.arrayExtended = defineArray(this.extended, this.isExtended, this.argumentsExtended);\n }\n\n}).call(this);\n\n\n\n\n\n\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","const _ = require('underscore');\n\nconst NO_LMP_DATE_MODIFIER = 4;\n\nmodule.exports = function(settings) {\n const taskSchedules = settings && settings.tasks && settings.tasks.schedules;\n const lib = {\n /**\n * @function\n * In legacy versions, partner code is required to only emit tasks which are ready to be displayed to the user. Utils.isTimely is the mechanism used for this.\n * With the rules-engine improvements in webapp 3.8, this responsibility shifts. Partner code should emit all tasks and the webapp's rules-engine decides what to display.\n * To this end - Utils.isTimely becomes a pass-through in nootils@4.x\n * @returns True\n */\n isTimely: () => true,\n\n addDate: function(date, days) {\n let result;\n if (date) {\n result = new Date(date.getTime());\n } else {\n result = lib.now();\n }\n result.setDate(result.getDate() + days);\n result.setHours(0, 0, 0, 0);\n return result;\n },\n\n getLmpDate: function(doc) {\n const weeks = doc.fields.last_menstrual_period || NO_LMP_DATE_MODIFIER;\n return lib.addDate(new Date(doc.reported_date), weeks * -7);\n },\n\n // TODO getSchedule() can be removed when tasks.json support is dropped\n getSchedule: function(name) {\n return _.findWhere(taskSchedules, { name: name });\n },\n\n getMostRecentTimestamp: function(reports, form, fields) {\n const report = lib.getMostRecentReport(reports, form, fields);\n return report && report.reported_date;\n },\n\n getMostRecentReport: function(reports, forms, fields) {\n if (!Array.isArray(forms)) {\n forms = [forms];\n }\n let result = null;\n reports.forEach(function(report) {\n if (forms.includes(report.form) &&\n !report.deleted &&\n (!result || (report.reported_date > result.reported_date)) &&\n (!fields || (report.fields && lib.fieldsMatch(report, fields)))) {\n result = report;\n }\n });\n return result;\n },\n\n isFormSubmittedInWindow: function(reports, form, start, end, count) {\n let result = false;\n reports.forEach(function(report) {\n if (!result && report.form === form) {\n if (report.reported_date >= start && report.reported_date <= end) {\n if (!count ||\n (count && report.fields && report.fields.follow_up_count > count)) {\n result = true;\n }\n }\n }\n });\n return result;\n },\n\n isFirstReportNewer: function(firstReport, secondReport) {\n if (firstReport && firstReport.reported_date) {\n if (secondReport && secondReport.reported_date) {\n return firstReport.reported_date > secondReport.reported_date;\n }\n return true;\n }\n return null;\n },\n\n isDateValid: function(date) {\n return !isNaN(date.getTime());\n },\n\n /**\n * @function\n * @name getField\n *\n * Gets the value of specified field path.\n * @param {Object} report - The report object.\n * @param {string} field - Period separated json path assuming report.fields as\n * the root node e.g 'dob' (equivalent to report.fields.dob)\n * or 'screening.test_result' equivalent to report.fields.screening.test_result\n */\n getField: function(report, field) {\n return _.propertyOf(report.fields)(field.split('.'));\n },\n\n fieldsMatch: function(report, fieldValues) {\n return Object.keys(fieldValues).every(function(field) {\n return lib.getField(report, field) === fieldValues[field];\n });\n },\n\n MS_IN_DAY: 24*60*60*1000, // 1 day in ms\n\n now: function() { return new Date(); },\n };\n\n return lib;\n};\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","(function () {\n \"use strict\";\n\n function defineDate(extended, is, array) {\n\n function _pad(string, length, ch, end) {\n string = \"\" + string; //check for numbers\n ch = ch || \" \";\n var strLen = string.length;\n while (strLen < length) {\n if (end) {\n string += ch;\n } else {\n string = ch + string;\n }\n strLen++;\n }\n return string;\n }\n\n function _truncate(string, length, end) {\n var ret = string;\n if (is.isString(ret)) {\n if (string.length > length) {\n if (end) {\n var l = string.length;\n ret = string.substring(l - length, l);\n } else {\n ret = string.substring(0, length);\n }\n }\n } else {\n ret = _truncate(\"\" + ret, length);\n }\n return ret;\n }\n\n function every(arr, iterator, scope) {\n if (!is.isArray(arr) || typeof iterator !== \"function\") {\n throw new TypeError();\n }\n var t = Object(arr);\n var len = t.length >>> 0;\n for (var i = 0; i < len; i++) {\n if (i in t && !iterator.call(scope, t[i], i, t)) {\n return false;\n }\n }\n return true;\n }\n\n\n var transforms = (function () {\n var floor = Math.floor, round = Math.round;\n\n var addMap = {\n day: function addDay(date, amount) {\n return [amount, \"Date\", false];\n },\n weekday: function addWeekday(date, amount) {\n // Divide the increment time span into weekspans plus leftover days\n // e.g., 8 days is one 5-day weekspan / and two leftover days\n // Can't have zero leftover days, so numbers divisible by 5 get\n // a days value of 5, and the remaining days make up the number of weeks\n var days, weeks, mod = amount % 5, strt = date.getDay(), adj = 0;\n if (!mod) {\n days = (amount > 0) ? 5 : -5;\n weeks = (amount > 0) ? ((amount - 5) / 5) : ((amount + 5) / 5);\n } else {\n days = mod;\n weeks = parseInt(amount / 5, 10);\n }\n if (strt === 6 && amount > 0) {\n adj = 1;\n } else if (strt === 0 && amount < 0) {\n // Orig date is Sun / negative increment\n // Jump back over Sat\n adj = -1;\n }\n // Get weekday val for the new date\n var trgt = strt + days;\n // New date is on Sat or Sun\n if (trgt === 0 || trgt === 6) {\n adj = (amount > 0) ? 2 : -2;\n }\n // Increment by number of weeks plus leftover days plus\n // weekend adjustments\n return [(7 * weeks) + days + adj, \"Date\", false];\n },\n year: function addYear(date, amount) {\n return [amount, \"FullYear\", true];\n },\n week: function addWeek(date, amount) {\n return [amount * 7, \"Date\", false];\n },\n quarter: function addYear(date, amount) {\n return [amount * 3, \"Month\", true];\n },\n month: function addYear(date, amount) {\n return [amount, \"Month\", true];\n }\n };\n\n function addTransform(interval, date, amount) {\n interval = interval.replace(/s$/, \"\");\n if (addMap.hasOwnProperty(interval)) {\n return addMap[interval](date, amount);\n }\n return [amount, \"UTC\" + interval.charAt(0).toUpperCase() + interval.substring(1) + \"s\", false];\n }\n\n\n var differenceMap = {\n \"quarter\": function quarterDifference(date1, date2, utc) {\n var yearDiff = date2.getFullYear() - date1.getFullYear();\n var m1 = date1[utc ? \"getUTCMonth\" : \"getMonth\"]();\n var m2 = date2[utc ? \"getUTCMonth\" : \"getMonth\"]();\n // Figure out which quarter the months are in\n var q1 = floor(m1 / 3) + 1;\n var q2 = floor(m2 / 3) + 1;\n // Add quarters for any year difference between the dates\n q2 += (yearDiff * 4);\n return q2 - q1;\n },\n\n \"weekday\": function weekdayDifference(date1, date2, utc) {\n var days = differenceTransform(\"day\", date1, date2, utc), weeks;\n var mod = days % 7;\n // Even number of weeks\n if (mod === 0) {\n days = differenceTransform(\"week\", date1, date2, utc) * 5;\n } else {\n // Weeks plus spare change (< 7 days)\n var adj = 0, aDay = date1[utc ? \"getUTCDay\" : \"getDay\"](), bDay = date2[utc ? \"getUTCDay\" : \"getDay\"]();\n weeks = parseInt(days / 7, 10);\n // Mark the date advanced by the number of\n // round weeks (may be zero)\n var dtMark = new Date(+date1);\n dtMark.setDate(dtMark[utc ? \"getUTCDate\" : \"getDate\"]() + (weeks * 7));\n var dayMark = dtMark[utc ? \"getUTCDay\" : \"getDay\"]();\n\n // Spare change days -- 6 or less\n if (days > 0) {\n if (aDay === 6 || bDay === 6) {\n adj = -1;\n } else if (aDay === 0) {\n adj = 0;\n } else if (bDay === 0 || (dayMark + mod) > 5) {\n adj = -2;\n }\n } else if (days < 0) {\n if (aDay === 6) {\n adj = 0;\n } else if (aDay === 0 || bDay === 0) {\n adj = 1;\n } else if (bDay === 6 || (dayMark + mod) < 0) {\n adj = 2;\n }\n }\n days += adj;\n days -= (weeks * 2);\n }\n return days;\n },\n year: function (date1, date2) {\n return date2.getFullYear() - date1.getFullYear();\n },\n month: function (date1, date2, utc) {\n var m1 = date1[utc ? \"getUTCMonth\" : \"getMonth\"]();\n var m2 = date2[utc ? \"getUTCMonth\" : \"getMonth\"]();\n return (m2 - m1) + ((date2.getFullYear() - date1.getFullYear()) * 12);\n },\n week: function (date1, date2, utc) {\n return round(differenceTransform(\"day\", date1, date2, utc) / 7);\n },\n day: function (date1, date2) {\n return 1.1574074074074074e-8 * (date2.getTime() - date1.getTime());\n },\n hour: function (date1, date2) {\n return 2.7777777777777776e-7 * (date2.getTime() - date1.getTime());\n },\n minute: function (date1, date2) {\n return 0.000016666666666666667 * (date2.getTime() - date1.getTime());\n },\n second: function (date1, date2) {\n return 0.001 * (date2.getTime() - date1.getTime());\n },\n millisecond: function (date1, date2) {\n return date2.getTime() - date1.getTime();\n }\n };\n\n\n function differenceTransform(interval, date1, date2, utc) {\n interval = interval.replace(/s$/, \"\");\n return round(differenceMap[interval](date1, date2, utc));\n }\n\n\n return {\n addTransform: addTransform,\n differenceTransform: differenceTransform\n };\n }()),\n addTransform = transforms.addTransform,\n differenceTransform = transforms.differenceTransform;\n\n\n /**\n * @ignore\n * Based on DOJO Date Implementation\n *\n * Dojo is available under *either* the terms of the modified BSD license *or* the\n * Academic Free License version 2.1. As a recipient of Dojo, you may choose which\n * license to receive this code under (except as noted in per-module LICENSE\n * files). Some modules may not be the copyright of the Dojo Foundation. These\n * modules contain explicit declarations of copyright in both the LICENSE files in\n * the directories in which they reside and in the code itself. No external\n * contributions are allowed under licenses which are fundamentally incompatible\n * with the AFL or BSD licenses that Dojo is distributed under.\n *\n */\n\n var floor = Math.floor, round = Math.round, min = Math.min, pow = Math.pow, ceil = Math.ceil, abs = Math.abs;\n var monthNames = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n var monthAbbr = [\"Jan.\", \"Feb.\", \"Mar.\", \"Apr.\", \"May.\", \"Jun.\", \"Jul.\", \"Aug.\", \"Sep.\", \"Oct.\", \"Nov.\", \"Dec.\"];\n var dayNames = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n var dayAbbr = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n var eraNames = [\"Before Christ\", \"Anno Domini\"];\n var eraAbbr = [\"BC\", \"AD\"];\n\n\n function getDayOfYear(/*Date*/dateObject, utc) {\n // summary: gets the day of the year as represented by dateObject\n return date.difference(new Date(dateObject.getFullYear(), 0, 1, dateObject.getHours()), dateObject, null, utc) + 1; // Number\n }\n\n function getWeekOfYear(/*Date*/dateObject, /*Number*/firstDayOfWeek, utc) {\n firstDayOfWeek = firstDayOfWeek || 0;\n var fullYear = dateObject[utc ? \"getUTCFullYear\" : \"getFullYear\"]();\n var firstDayOfYear = new Date(fullYear, 0, 1).getDay(),\n adj = (firstDayOfYear - firstDayOfWeek + 7) % 7,\n week = floor((getDayOfYear(dateObject) + adj - 1) / 7);\n\n // if year starts on the specified day, start counting weeks at 1\n if (firstDayOfYear === firstDayOfWeek) {\n week++;\n }\n\n return week; // Number\n }\n\n function getTimezoneName(/*Date*/dateObject) {\n var str = dateObject.toString();\n var tz = '';\n var pos = str.indexOf('(');\n if (pos > -1) {\n tz = str.substring(++pos, str.indexOf(')'));\n }\n return tz; // String\n }\n\n\n function buildDateEXP(pattern, tokens) {\n return pattern.replace(/([a-z])\\1*/ig,function (match) {\n // Build a simple regexp. Avoid captures, which would ruin the tokens list\n var s,\n c = match.charAt(0),\n l = match.length,\n p2 = '0?',\n p3 = '0{0,2}';\n if (c === 'y') {\n s = '\\\\d{2,4}';\n } else if (c === \"M\") {\n s = (l > 2) ? '\\\\S+?' : '1[0-2]|' + p2 + '[1-9]';\n } else if (c === \"D\") {\n s = '[12][0-9][0-9]|3[0-5][0-9]|36[0-6]|' + p3 + '[1-9][0-9]|' + p2 + '[1-9]';\n } else if (c === \"d\") {\n s = '3[01]|[12]\\\\d|' + p2 + '[1-9]';\n } else if (c === \"w\") {\n s = '[1-4][0-9]|5[0-3]|' + p2 + '[1-9]';\n } else if (c === \"E\") {\n s = '\\\\S+';\n } else if (c === \"h\") {\n s = '1[0-2]|' + p2 + '[1-9]';\n } else if (c === \"K\") {\n s = '1[01]|' + p2 + '\\\\d';\n } else if (c === \"H\") {\n s = '1\\\\d|2[0-3]|' + p2 + '\\\\d';\n } else if (c === \"k\") {\n s = '1\\\\d|2[0-4]|' + p2 + '[1-9]';\n } else if (c === \"m\" || c === \"s\") {\n s = '[0-5]\\\\d';\n } else if (c === \"S\") {\n s = '\\\\d{' + l + '}';\n } else if (c === \"a\") {\n var am = 'AM', pm = 'PM';\n s = am + '|' + pm;\n if (am !== am.toLowerCase()) {\n s += '|' + am.toLowerCase();\n }\n if (pm !== pm.toLowerCase()) {\n s += '|' + pm.toLowerCase();\n }\n s = s.replace(/\\./g, \"\\\\.\");\n } else if (c === 'v' || c === 'z' || c === 'Z' || c === 'G' || c === 'q' || c === 'Q') {\n s = \".*\";\n } else {\n s = c === \" \" ? \"\\\\s*\" : c + \"*\";\n }\n if (tokens) {\n tokens.push(match);\n }\n\n return \"(\" + s + \")\"; // add capture\n }).replace(/[\\xa0 ]/g, \"[\\\\s\\\\xa0]\"); // normalize whitespace. Need explicit handling of \\xa0 for IE.\n }\n\n\n /**\n * @namespace Utilities for Dates\n */\n var date = {\n\n /**@lends date*/\n\n /**\n * Returns the number of days in the month of a date\n *\n * @example\n *\n * dateExtender.getDaysInMonth(new Date(2006, 1, 1)); //28\n * dateExtender.getDaysInMonth(new Date(2004, 1, 1)); //29\n * dateExtender.getDaysInMonth(new Date(2006, 2, 1)); //31\n * dateExtender.getDaysInMonth(new Date(2006, 3, 1)); //30\n * dateExtender.getDaysInMonth(new Date(2006, 4, 1)); //31\n * dateExtender.getDaysInMonth(new Date(2006, 5, 1)); //30\n * dateExtender.getDaysInMonth(new Date(2006, 6, 1)); //31\n * @param {Date} dateObject the date containing the month\n * @return {Number} the number of days in the month\n */\n getDaysInMonth: function (/*Date*/dateObject) {\n //\tsummary:\n //\t\tReturns the number of days in the month used by dateObject\n var month = dateObject.getMonth();\n var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n if (month === 1 && date.isLeapYear(dateObject)) {\n return 29;\n } // Number\n return days[month]; // Number\n },\n\n /**\n * Determines if a date is a leap year\n *\n * @example\n *\n * dateExtender.isLeapYear(new Date(1600, 0, 1)); //true\n * dateExtender.isLeapYear(new Date(2004, 0, 1)); //true\n * dateExtender.isLeapYear(new Date(2000, 0, 1)); //true\n * dateExtender.isLeapYear(new Date(2006, 0, 1)); //false\n * dateExtender.isLeapYear(new Date(1900, 0, 1)); //false\n * dateExtender.isLeapYear(new Date(1800, 0, 1)); //false\n * dateExtender.isLeapYear(new Date(1700, 0, 1)); //false\n *\n * @param {Date} dateObject\n * @returns {Boolean} true if it is a leap year false otherwise\n */\n isLeapYear: function (/*Date*/dateObject, utc) {\n var year = dateObject[utc ? \"getUTCFullYear\" : \"getFullYear\"]();\n return (year % 400 === 0) || (year % 4 === 0 && year % 100 !== 0);\n\n },\n\n /**\n * Determines if a date is on a weekend\n *\n * @example\n *\n * var thursday = new Date(2006, 8, 21);\n * var saturday = new Date(2006, 8, 23);\n * var sunday = new Date(2006, 8, 24);\n * var monday = new Date(2006, 8, 25);\n * dateExtender.isWeekend(thursday)); //false\n * dateExtender.isWeekend(saturday); //true\n * dateExtender.isWeekend(sunday); //true\n * dateExtender.isWeekend(monday)); //false\n *\n * @param {Date} dateObject the date to test\n *\n * @returns {Boolean} true if the date is a weekend\n */\n isWeekend: function (/*Date?*/dateObject, utc) {\n // summary:\n //\tDetermines if the date falls on a weekend, according to local custom.\n var day = (dateObject || new Date())[utc ? \"getUTCDay\" : \"getDay\"]();\n return day === 0 || day === 6;\n },\n\n /**\n * Get the timezone of a date\n *\n * @example\n * //just setting the strLocal to simulate the toString() of a date\n * dt.str = 'Sun Sep 17 2006 22:25:51 GMT-0500 (CDT)';\n * //just setting the strLocal to simulate the locale\n * dt.strLocale = 'Sun 17 Sep 2006 10:25:51 PM CDT';\n * dateExtender.getTimezoneName(dt); //'CDT'\n * dt.str = 'Sun Sep 17 2006 22:57:18 GMT-0500 (CDT)';\n * dt.strLocale = 'Sun Sep 17 22:57:18 2006';\n * dateExtender.getTimezoneName(dt); //'CDT'\n * @param dateObject the date to get the timezone from\n *\n * @returns {String} the timezone of the date\n */\n getTimezoneName: getTimezoneName,\n\n /**\n * Compares two dates\n *\n * @example\n *\n * var d1 = new Date();\n * d1.setHours(0);\n * dateExtender.compare(d1, d1); // 0\n *\n * var d1 = new Date();\n * d1.setHours(0);\n * var d2 = new Date();\n * d2.setFullYear(2005);\n * d2.setHours(12);\n * dateExtender.compare(d1, d2, \"date\"); // 1\n * dateExtender.compare(d1, d2, \"datetime\"); // 1\n *\n * var d1 = new Date();\n * d1.setHours(0);\n * var d2 = new Date();\n * d2.setFullYear(2005);\n * d2.setHours(12);\n * dateExtender.compare(d2, d1, \"date\"); // -1\n * dateExtender.compare(d1, d2, \"time\"); //-1\n *\n * @param {Date|String} date1 the date to comapare\n * @param {Date|String} [date2=new Date()] the date to compare date1 againse\n * @param {\"date\"|\"time\"|\"datetime\"} portion compares the portion specified\n *\n * @returns -1 if date1 is < date2 0 if date1 === date2 1 if date1 > date2\n */\n compare: function (/*Date*/date1, /*Date*/date2, /*String*/portion) {\n date1 = new Date(+date1);\n date2 = new Date(+(date2 || new Date()));\n\n if (portion === \"date\") {\n // Ignore times and compare dates.\n date1.setHours(0, 0, 0, 0);\n date2.setHours(0, 0, 0, 0);\n } else if (portion === \"time\") {\n // Ignore dates and compare times.\n date1.setFullYear(0, 0, 0);\n date2.setFullYear(0, 0, 0);\n }\n return date1 > date2 ? 1 : date1 < date2 ? -1 : 0;\n },\n\n\n /**\n * Adds a specified interval and amount to a date\n *\n * @example\n * var dtA = new Date(2005, 11, 27);\n * dateExtender.add(dtA, \"year\", 1); //new Date(2006, 11, 27);\n * dateExtender.add(dtA, \"years\", 1); //new Date(2006, 11, 27);\n *\n * dtA = new Date(2000, 0, 1);\n * dateExtender.add(dtA, \"quarter\", 1); //new Date(2000, 3, 1);\n * dateExtender.add(dtA, \"quarters\", 1); //new Date(2000, 3, 1);\n *\n * dtA = new Date(2000, 0, 1);\n * dateExtender.add(dtA, \"month\", 1); //new Date(2000, 1, 1);\n * dateExtender.add(dtA, \"months\", 1); //new Date(2000, 1, 1);\n *\n * dtA = new Date(2000, 0, 31);\n * dateExtender.add(dtA, \"month\", 1); //new Date(2000, 1, 29);\n * dateExtender.add(dtA, \"months\", 1); //new Date(2000, 1, 29);\n *\n * dtA = new Date(2000, 0, 1);\n * dateExtender.add(dtA, \"week\", 1); //new Date(2000, 0, 8);\n * dateExtender.add(dtA, \"weeks\", 1); //new Date(2000, 0, 8);\n *\n * dtA = new Date(2000, 0, 1);\n * dateExtender.add(dtA, \"day\", 1); //new Date(2000, 0, 2);\n *\n * dtA = new Date(2000, 0, 1);\n * dateExtender.add(dtA, \"weekday\", 1); //new Date(2000, 0, 3);\n *\n * dtA = new Date(2000, 0, 1, 11);\n * dateExtender.add(dtA, \"hour\", 1); //new Date(2000, 0, 1, 12);\n *\n * dtA = new Date(2000, 11, 31, 23, 59);\n * dateExtender.add(dtA, \"minute\", 1); //new Date(2001, 0, 1, 0, 0);\n *\n * dtA = new Date(2000, 11, 31, 23, 59, 59);\n * dateExtender.add(dtA, \"second\", 1); //new Date(2001, 0, 1, 0, 0, 0);\n *\n * dtA = new Date(2000, 11, 31, 23, 59, 59, 999);\n * dateExtender.add(dtA, \"millisecond\", 1); //new Date(2001, 0, 1, 0, 0, 0, 0);\n *\n * @param {Date} date\n * @param {String} interval the interval to add\n *
                            \n *
                          • day | days
                          • \n *
                          • weekday | weekdays
                          • \n *
                          • year | years
                          • \n *
                          • week | weeks
                          • \n *
                          • quarter | quarters
                          • \n *
                          • months | months
                          • \n *
                          • hour | hours
                          • \n *
                          • minute | minutes
                          • \n *
                          • second | seconds
                          • \n *
                          • millisecond | milliseconds
                          • \n *
                          \n * @param {Number} [amount=0] the amount to add\n */\n add: function (/*Date*/date, /*String*/interval, /*int*/amount) {\n var res = addTransform(interval, date, amount || 0);\n amount = res[0];\n var property = res[1];\n var sum = new Date(+date);\n var fixOvershoot = res[2];\n if (property) {\n sum[\"set\" + property](sum[\"get\" + property]() + amount);\n }\n\n if (fixOvershoot && (sum.getDate() < date.getDate())) {\n sum.setDate(0);\n }\n\n return sum; // Date\n },\n\n /**\n * Finds the difference between two dates based on the specified interval\n *\n * @example\n *\n * var dtA, dtB;\n *\n * dtA = new Date(2005, 11, 27);\n * dtB = new Date(2006, 11, 27);\n * dateExtender.difference(dtA, dtB, \"year\"); //1\n *\n * dtA = new Date(2000, 1, 29);\n * dtB = new Date(2001, 2, 1);\n * dateExtender.difference(dtA, dtB, \"quarter\"); //4\n * dateExtender.difference(dtA, dtB, \"month\"); //13\n *\n * dtA = new Date(2000, 1, 1);\n * dtB = new Date(2000, 1, 8);\n * dateExtender.difference(dtA, dtB, \"week\"); //1\n *\n * dtA = new Date(2000, 1, 29);\n * dtB = new Date(2000, 2, 1);\n * dateExtender.difference(dtA, dtB, \"day\"); //1\n *\n * dtA = new Date(2006, 7, 3);\n * dtB = new Date(2006, 7, 11);\n * dateExtender.difference(dtA, dtB, \"weekday\"); //6\n *\n * dtA = new Date(2000, 11, 31, 23);\n * dtB = new Date(2001, 0, 1, 0);\n * dateExtender.difference(dtA, dtB, \"hour\"); //1\n *\n * dtA = new Date(2000, 11, 31, 23, 59);\n * dtB = new Date(2001, 0, 1, 0, 0);\n * dateExtender.difference(dtA, dtB, \"minute\"); //1\n *\n * dtA = new Date(2000, 11, 31, 23, 59, 59);\n * dtB = new Date(2001, 0, 1, 0, 0, 0);\n * dateExtender.difference(dtA, dtB, \"second\"); //1\n *\n * dtA = new Date(2000, 11, 31, 23, 59, 59, 999);\n * dtB = new Date(2001, 0, 1, 0, 0, 0, 0);\n * dateExtender.difference(dtA, dtB, \"millisecond\"); //1\n *\n *\n * @param {Date} date1\n * @param {Date} [date2 = new Date()]\n * @param {String} [interval = \"day\"] the intercal to find the difference of.\n *
                            \n *
                          • day | days
                          • \n *
                          • weekday | weekdays
                          • \n *
                          • year | years
                          • \n *
                          • week | weeks
                          • \n *
                          • quarter | quarters
                          • \n *
                          • months | months
                          • \n *
                          • hour | hours
                          • \n *
                          • minute | minutes
                          • \n *
                          • second | seconds
                          • \n *
                          • millisecond | milliseconds
                          • \n *
                          \n */\n difference: function (/*Date*/date1, /*Date?*/date2, /*String*/interval, utc) {\n date2 = date2 || new Date();\n interval = interval || \"day\";\n return differenceTransform(interval, date1, date2, utc);\n },\n\n /**\n * Formats a date to the specidifed format string\n *\n * @example\n *\n * var date = new Date(2006, 7, 11, 0, 55, 12, 345);\n * dateExtender.format(date, \"EEEE, MMMM dd, yyyy\"); //\"Friday, August 11, 2006\"\n * dateExtender.format(date, \"M/dd/yy\"); //\"8/11/06\"\n * dateExtender.format(date, \"E\"); //\"6\"\n * dateExtender.format(date, \"h:m a\"); //\"12:55 AM\"\n * dateExtender.format(date, 'h:m:s'); //\"12:55:12\"\n * dateExtender.format(date, 'h:m:s.SS'); //\"12:55:12.35\"\n * dateExtender.format(date, 'k:m:s.SS'); //\"24:55:12.35\"\n * dateExtender.format(date, 'H:m:s.SS'); //\"0:55:12.35\"\n * dateExtender.format(date, \"ddMMyyyy\"); //\"11082006\"\n *\n * @param date the date to format\n * @param {String} format the format of the date composed of the following options\n *
                            \n *
                          • G Era designator Text AD
                          • \n *
                          • y Year Year 1996; 96
                          • \n *
                          • M Month in year Month July; Jul; 07
                          • \n *
                          • w Week in year Number 27
                          • \n *
                          • W Week in month Number 2
                          • \n *
                          • D Day in year Number 189
                          • \n *
                          • d Day in month Number 10
                          • \n *
                          • E Day in week Text Tuesday; Tue
                          • \n *
                          • a Am/pm marker Text PM
                          • \n *
                          • H Hour in day (0-23) Number 0
                          • \n *
                          • k Hour in day (1-24) Number 24
                          • \n *
                          • K Hour in am/pm (0-11) Number 0
                          • \n *
                          • h Hour in am/pm (1-12) Number 12
                          • \n *
                          • m Minute in hour Number 30
                          • \n *
                          • s Second in minute Number 55
                          • \n *
                          • S Millisecond Number 978
                          • \n *
                          • z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
                          • \n *
                          • Z Time zone RFC 822 time zone -0800
                          • \n *
                          \n */\n format: function (date, format, utc) {\n utc = utc || false;\n var fullYear, month, day, d, hour, minute, second, millisecond;\n if (utc) {\n fullYear = date.getUTCFullYear();\n month = date.getUTCMonth();\n day = date.getUTCDay();\n d = date.getUTCDate();\n hour = date.getUTCHours();\n minute = date.getUTCMinutes();\n second = date.getUTCSeconds();\n millisecond = date.getUTCMilliseconds();\n } else {\n fullYear = date.getFullYear();\n month = date.getMonth();\n d = date.getDate();\n day = date.getDay();\n hour = date.getHours();\n minute = date.getMinutes();\n second = date.getSeconds();\n millisecond = date.getMilliseconds();\n }\n return format.replace(/([A-Za-z])\\1*/g, function (match) {\n var s, pad,\n c = match.charAt(0),\n l = match.length;\n if (c === 'd') {\n s = \"\" + d;\n pad = true;\n } else if (c === \"H\" && !s) {\n s = \"\" + hour;\n pad = true;\n } else if (c === 'm' && !s) {\n s = \"\" + minute;\n pad = true;\n } else if (c === 's') {\n if (!s) {\n s = \"\" + second;\n }\n pad = true;\n } else if (c === \"G\") {\n s = ((l < 4) ? eraAbbr : eraNames)[fullYear < 0 ? 0 : 1];\n } else if (c === \"y\") {\n s = fullYear;\n if (l > 1) {\n if (l === 2) {\n s = _truncate(\"\" + s, 2, true);\n } else {\n pad = true;\n }\n }\n } else if (c.toUpperCase() === \"Q\") {\n s = ceil((month + 1) / 3);\n pad = true;\n } else if (c === \"M\") {\n if (l < 3) {\n s = month + 1;\n pad = true;\n } else {\n s = (l === 3 ? monthAbbr : monthNames)[month];\n }\n } else if (c === \"w\") {\n s = getWeekOfYear(date, 0, utc);\n pad = true;\n } else if (c === \"D\") {\n s = getDayOfYear(date, utc);\n pad = true;\n } else if (c === \"E\") {\n if (l < 3) {\n s = day + 1;\n pad = true;\n } else {\n s = (l === -3 ? dayAbbr : dayNames)[day];\n }\n } else if (c === 'a') {\n s = (hour < 12) ? 'AM' : 'PM';\n } else if (c === \"h\") {\n s = (hour % 12) || 12;\n pad = true;\n } else if (c === \"K\") {\n s = (hour % 12);\n pad = true;\n } else if (c === \"k\") {\n s = hour || 24;\n pad = true;\n } else if (c === \"S\") {\n s = round(millisecond * pow(10, l - 3));\n pad = true;\n } else if (c === \"z\" || c === \"v\" || c === \"Z\") {\n s = getTimezoneName(date);\n if ((c === \"z\" || c === \"v\") && !s) {\n l = 4;\n }\n if (!s || c === \"Z\") {\n var offset = date.getTimezoneOffset();\n var tz = [\n (offset >= 0 ? \"-\" : \"+\"),\n _pad(floor(abs(offset) / 60), 2, \"0\"),\n _pad(abs(offset) % 60, 2, \"0\")\n ];\n if (l === 4) {\n tz.splice(0, 0, \"GMT\");\n tz.splice(3, 0, \":\");\n }\n s = tz.join(\"\");\n }\n } else {\n s = match;\n }\n if (pad) {\n s = _pad(s, l, '0');\n }\n return s;\n });\n }\n\n };\n\n var numberDate = {};\n\n function addInterval(interval) {\n numberDate[interval + \"sFromNow\"] = function (val) {\n return date.add(new Date(), interval, val);\n };\n numberDate[interval + \"sAgo\"] = function (val) {\n return date.add(new Date(), interval, -val);\n };\n }\n\n var intervals = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\"];\n for (var i = 0, l = intervals.length; i < l; i++) {\n addInterval(intervals[i]);\n }\n\n var stringDate = {\n\n parseDate: function (dateStr, format) {\n if (!format) {\n throw new Error('format required when calling dateExtender.parse');\n }\n var tokens = [], regexp = buildDateEXP(format, tokens),\n re = new RegExp(\"^\" + regexp + \"$\", \"i\"),\n match = re.exec(dateStr);\n if (!match) {\n return null;\n } // null\n var result = [1970, 0, 1, 0, 0, 0, 0], // will get converted to a Date at the end\n amPm = \"\",\n valid = every(match, function (v, i) {\n if (i) {\n var token = tokens[i - 1];\n var l = token.length, type = token.charAt(0);\n if (type === 'y') {\n if (v < 100) {\n v = parseInt(v, 10);\n //choose century to apply, according to a sliding window\n //of 80 years before and 20 years after present year\n var year = '' + new Date().getFullYear(),\n century = year.substring(0, 2) * 100,\n cutoff = min(year.substring(2, 4) + 20, 99);\n result[0] = (v < cutoff) ? century + v : century - 100 + v;\n } else {\n result[0] = v;\n }\n } else if (type === \"M\") {\n if (l > 2) {\n var months = monthNames, j, k;\n if (l === 3) {\n months = monthAbbr;\n }\n //Tolerate abbreviating period in month part\n //Case-insensitive comparison\n v = v.replace(\".\", \"\").toLowerCase();\n var contains = false;\n for (j = 0, k = months.length; j < k && !contains; j++) {\n var s = months[j].replace(\".\", \"\").toLocaleLowerCase();\n if (s === v) {\n v = j;\n contains = true;\n }\n }\n if (!contains) {\n return false;\n }\n } else {\n v--;\n }\n result[1] = v;\n } else if (type === \"E\" || type === \"e\") {\n var days = dayNames;\n if (l === 3) {\n days = dayAbbr;\n }\n //Case-insensitive comparison\n v = v.toLowerCase();\n days = array.map(days, function (d) {\n return d.toLowerCase();\n });\n var d = array.indexOf(days, v);\n if (d === -1) {\n v = parseInt(v, 10);\n if (isNaN(v) || v > days.length) {\n return false;\n }\n } else {\n v = d;\n }\n } else if (type === 'D' || type === \"d\") {\n if (type === \"D\") {\n result[1] = 0;\n }\n result[2] = v;\n } else if (type === \"a\") {\n var am = \"am\";\n var pm = \"pm\";\n var period = /\\./g;\n v = v.replace(period, '').toLowerCase();\n // we might not have seen the hours field yet, so store the state and apply hour change later\n amPm = (v === pm) ? 'p' : (v === am) ? 'a' : '';\n } else if (type === \"k\" || type === \"h\" || type === \"H\" || type === \"K\") {\n if (type === \"k\" && (+v) === 24) {\n v = 0;\n }\n result[3] = v;\n } else if (type === \"m\") {\n result[4] = v;\n } else if (type === \"s\") {\n result[5] = v;\n } else if (type === \"S\") {\n result[6] = v;\n }\n }\n return true;\n });\n if (valid) {\n var hours = +result[3];\n //account for am/pm\n if (amPm === 'p' && hours < 12) {\n result[3] = hours + 12; //e.g., 3pm -> 15\n } else if (amPm === 'a' && hours === 12) {\n result[3] = 0; //12am -> 0\n }\n var dateObject = new Date(result[0], result[1], result[2], result[3], result[4], result[5], result[6]); // Date\n var dateToken = (array.indexOf(tokens, 'd') !== -1),\n monthToken = (array.indexOf(tokens, 'M') !== -1),\n month = result[1],\n day = result[2],\n dateMonth = dateObject.getMonth(),\n dateDay = dateObject.getDate();\n if ((monthToken && dateMonth > month) || (dateToken && dateDay > day)) {\n return null;\n }\n return dateObject; // Date\n } else {\n return null;\n }\n }\n };\n\n\n var ret = extended.define(is.isDate, date).define(is.isString, stringDate).define(is.isNumber, numberDate);\n for (i in date) {\n if (date.hasOwnProperty(i)) {\n ret[i] = date[i];\n }\n }\n\n for (i in stringDate) {\n if (stringDate.hasOwnProperty(i)) {\n ret[i] = stringDate[i];\n }\n }\n for (i in numberDate) {\n if (numberDate.hasOwnProperty(i)) {\n ret[i] = numberDate[i];\n }\n }\n return ret;\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineDate(require(\"extended\"), require(\"is-extended\"), require(\"array-extended\"));\n\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"extended\", \"is-extended\", \"array-extended\"], function (extended, is, arr) {\n return defineDate(extended, is, arr);\n });\n } else {\n this.dateExtended = defineDate(this.extended, this.isExtended, this.arrayExtended);\n }\n\n}).call(this);\n\n\n\n\n\n\n","(function () {\n\n /**\n * @projectName declare\n * @github http://github.com/doug-martin/declare.js\n * @header\n *\n * Declare is a library designed to allow writing object oriented code the same way in both the browser and node.js.\n *\n * ##Installation\n *\n * `npm install declare.js`\n *\n * Or [download the source](https://raw.github.com/doug-martin/declare.js/master/declare.js) ([minified](https://raw.github.com/doug-martin/declare.js/master/declare-min.js))\n *\n * ###Requirejs\n *\n * To use with requirejs place the `declare` source in the root scripts directory\n *\n * ```\n *\n * define([\"declare\"], function(declare){\n * return declare({\n * instance : {\n * hello : function(){\n * return \"world\";\n * }\n * }\n * });\n * });\n *\n * ```\n *\n *\n * ##Usage\n *\n * declare.js provides\n *\n * Class methods\n *\n * * `as(module | object, name)` : exports the object to module or the object with the name\n * * `mixin(mixin)` : mixes in an object but does not inherit directly from the object. **Note** this does not return a new class but changes the original class.\n * * `extend(proto)` : extend a class with the given properties. A shortcut to `declare(Super, {})`;\n *\n * Instance methods\n *\n * * `_super(arguments)`: calls the super of the current method, you can pass in either the argments object or an array with arguments you want passed to super\n * * `_getSuper()`: returns a this methods direct super.\n * * `_static` : use to reference class properties and methods.\n * * `get(prop)` : gets a property invoking the getter if it exists otherwise it just returns the named property on the object.\n * * `set(prop, val)` : sets a property invoking the setter if it exists otherwise it just sets the named property on the object.\n *\n *\n * ###Declaring a new Class\n *\n * Creating a new class with declare is easy!\n *\n * ```\n *\n * var Mammal = declare({\n * //define your instance methods and properties\n * instance : {\n *\n * //will be called whenever a new instance is created\n * constructor: function(options) {\n * options = options || {};\n * this._super(arguments);\n * this._type = options.type || \"mammal\";\n * },\n *\n * speak : function() {\n * return \"A mammal of type \" + this._type + \" sounds like\";\n * },\n *\n * //Define your getters\n * getters : {\n *\n * //can be accessed by using the get method. (mammal.get(\"type\"))\n * type : function() {\n * return this._type;\n * }\n * },\n *\n * //Define your setters\n * setters : {\n *\n * //can be accessed by using the set method. (mammal.set(\"type\", \"mammalType\"))\n * type : function(t) {\n * this._type = t;\n * }\n * }\n * },\n *\n * //Define your static methods\n * static : {\n *\n * //Mammal.soundOff(); //\"Im a mammal!!\"\n * soundOff : function() {\n * return \"Im a mammal!!\";\n * }\n * }\n * });\n *\n *\n * ```\n *\n * You can use Mammal just like you would any other class.\n *\n * ```\n * Mammal.soundOff(\"Im a mammal!!\");\n *\n * var myMammal = new Mammal({type : \"mymammal\"});\n * myMammal.speak(); // \"A mammal of type mymammal sounds like\"\n * myMammal.get(\"type\"); //\"mymammal\"\n * myMammal.set(\"type\", \"mammal\");\n * myMammal.get(\"type\"); //\"mammal\"\n *\n *\n * ```\n *\n * ###Extending a class\n *\n * If you want to just extend a single class use the .extend method.\n *\n * ```\n *\n * var Wolf = Mammal.extend({\n *\n * //define your instance method\n * instance: {\n *\n * //You can override super constructors just be sure to call `_super`\n * constructor: function(options) {\n * options = options || {};\n * this._super(arguments); //call our super constructor.\n * this._sound = \"growl\";\n * this._color = options.color || \"grey\";\n * },\n *\n * //override Mammals `speak` method by appending our own data to it.\n * speak : function() {\n * return this._super(arguments) + \" a \" + this._sound;\n * },\n *\n * //add new getters for sound and color\n * getters : {\n *\n * //new Wolf().get(\"type\")\n * //notice color is read only as we did not define a setter\n * color : function() {\n * return this._color;\n * },\n *\n * //new Wolf().get(\"sound\")\n * sound : function() {\n * return this._sound;\n * }\n * },\n *\n * setters : {\n *\n * //new Wolf().set(\"sound\", \"howl\")\n * sound : function(s) {\n * this._sound = s;\n * }\n * }\n *\n * },\n *\n * static : {\n *\n * //You can override super static methods also! And you can still use _super\n * soundOff : function() {\n * //You can even call super in your statics!!!\n * //should return \"I'm a mammal!! that growls\"\n * return this._super(arguments) + \" that growls\";\n * }\n * }\n * });\n *\n * Wolf.soundOff(); //Im a mammal!! that growls\n *\n * var myWolf = new Wolf();\n * myWolf instanceof Mammal //true\n * myWolf instanceof Wolf //true\n *\n * ```\n *\n * You can also extend a class by using the declare method and just pass in the super class.\n *\n * ```\n * //Typical hierarchical inheritance\n * // Mammal->Wolf->Dog\n * var Dog = declare(Wolf, {\n * instance: {\n * constructor: function(options) {\n * options = options || {};\n * this._super(arguments);\n * //override Wolfs initialization of sound to woof.\n * this._sound = \"woof\";\n *\n * },\n *\n * speak : function() {\n * //Should return \"A mammal of type mammal sounds like a growl thats domesticated\"\n * return this._super(arguments) + \" thats domesticated\";\n * }\n * },\n *\n * static : {\n * soundOff : function() {\n * //should return \"I'm a mammal!! that growls but now barks\"\n * return this._super(arguments) + \" but now barks\";\n * }\n * }\n * });\n *\n * Dog.soundOff(); //Im a mammal!! that growls but now barks\n *\n * var myDog = new Dog();\n * myDog instanceof Mammal //true\n * myDog instanceof Wolf //true\n * myDog instanceof Dog //true\n *\n *\n * //Notice you still get the extend method.\n *\n * // Mammal->Wolf->Dog->Breed\n * var Breed = Dog.extend({\n * instance: {\n *\n * //initialize outside of constructor\n * _pitch : \"high\",\n *\n * constructor: function(options) {\n * options = options || {};\n * this._super(arguments);\n * this.breed = options.breed || \"lab\";\n * },\n *\n * speak : function() {\n * //Should return \"A mammal of type mammal sounds like a\n * //growl thats domesticated with a high pitch!\"\n * return this._super(arguments) + \" with a \" + this._pitch + \" pitch!\";\n * },\n *\n * getters : {\n * pitch : function() {\n * return this._pitch;\n * }\n * }\n * },\n *\n * static : {\n * soundOff : function() {\n * //should return \"I'M A MAMMAL!! THAT GROWLS BUT NOW BARKS!\"\n * return this._super(arguments).toUpperCase() + \"!\";\n * }\n * }\n * });\n *\n *\n * Breed.soundOff()//\"IM A MAMMAL!! THAT GROWLS BUT NOW BARKS!\"\n *\n * var myBreed = new Breed({color : \"gold\", type : \"lab\"}),\n * myBreed instanceof Dog //true\n * myBreed instanceof Wolf //true\n * myBreed instanceof Mammal //true\n * myBreed.speak() //\"A mammal of type lab sounds like a woof thats domesticated with a high pitch!\"\n * myBreed.get(\"type\") //\"lab\"\n * myBreed.get(\"color\") //\"gold\"\n * myBreed.get(\"sound\")\" //\"woof\"\n * ```\n *\n * ###Multiple Inheritance / Mixins\n *\n * declare also allows the use of multiple super classes.\n * This is useful if you have generic classes that provide functionality but shouldnt be used on their own.\n *\n * Lets declare a mixin that allows us to watch for property changes.\n *\n * ```\n * //Notice that we set up the functions outside of declare because we can reuse them\n *\n * function _set(prop, val) {\n * //get the old value\n * var oldVal = this.get(prop);\n * //call super to actually set the property\n * var ret = this._super(arguments);\n * //call our handlers\n * this.__callHandlers(prop, oldVal, val);\n * return ret;\n * }\n *\n * function _callHandlers(prop, oldVal, newVal) {\n * //get our handlers for the property\n * var handlers = this.__watchers[prop], l;\n * //if the handlers exist and their length does not equal 0 then we call loop through them\n * if (handlers && (l = handlers.length) !== 0) {\n * for (var i = 0; i < l; i++) {\n * //call the handler\n * handlers[i].call(null, prop, oldVal, newVal);\n * }\n * }\n * }\n *\n *\n * //the watch function\n * function _watch(prop, handler) {\n * if (\"function\" !== typeof handler) {\n * //if its not a function then its an invalid handler\n * throw new TypeError(\"Invalid handler.\");\n * }\n * if (!this.__watchers[prop]) {\n * //create the watchers if it doesnt exist\n * this.__watchers[prop] = [handler];\n * } else {\n * //otherwise just add it to the handlers array\n * this.__watchers[prop].push(handler);\n * }\n * }\n *\n * function _unwatch(prop, handler) {\n * if (\"function\" !== typeof handler) {\n * throw new TypeError(\"Invalid handler.\");\n * }\n * var handlers = this.__watchers[prop], index;\n * if (handlers && (index = handlers.indexOf(handler)) !== -1) {\n * //remove the handler if it is found\n * handlers.splice(index, 1);\n * }\n * }\n *\n * declare({\n * instance:{\n * constructor:function () {\n * this._super(arguments);\n * //set up our watchers\n * this.__watchers = {};\n * },\n *\n * //override the default set function so we can watch values\n * \"set\":_set,\n * //set up our callhandlers function\n * __callHandlers:_callHandlers,\n * //add the watch function\n * watch:_watch,\n * //add the unwatch function\n * unwatch:_unwatch\n * },\n *\n * \"static\":{\n *\n * init:function () {\n * this._super(arguments);\n * this.__watchers = {};\n * },\n * //override the default set function so we can watch values\n * \"set\":_set,\n * //set our callHandlers function\n * __callHandlers:_callHandlers,\n * //add the watch\n * watch:_watch,\n * //add the unwatch function\n * unwatch:_unwatch\n * }\n * })\n *\n * ```\n *\n * Now lets use the mixin\n *\n * ```\n * var WatchDog = declare([Dog, WatchMixin]);\n *\n * var watchDog = new WatchDog();\n * //create our handler\n * function watch(id, oldVal, newVal) {\n * console.log(\"watchdog's %s was %s, now %s\", id, oldVal, newVal);\n * }\n *\n * //watch for property changes\n * watchDog.watch(\"type\", watch);\n * watchDog.watch(\"color\", watch);\n * watchDog.watch(\"sound\", watch);\n *\n * //now set the properties each handler will be called\n * watchDog.set(\"type\", \"newDog\");\n * watchDog.set(\"color\", \"newColor\");\n * watchDog.set(\"sound\", \"newSound\");\n *\n *\n * //unwatch the property changes\n * watchDog.unwatch(\"type\", watch);\n * watchDog.unwatch(\"color\", watch);\n * watchDog.unwatch(\"sound\", watch);\n *\n * //no handlers will be called this time\n * watchDog.set(\"type\", \"newDog\");\n * watchDog.set(\"color\", \"newColor\");\n * watchDog.set(\"sound\", \"newSound\");\n *\n *\n * ```\n *\n * ###Accessing static methods and properties witin an instance.\n *\n * To access static properties on an instance use the `_static` property which is a reference to your constructor.\n *\n * For example if your in your constructor and you want to have configurable default values.\n *\n * ```\n * consturctor : function constructor(opts){\n * this.opts = opts || {};\n * this._type = opts.type || this._static.DEFAULT_TYPE;\n * }\n * ```\n *\n *\n *\n * ###Creating a new instance of within an instance.\n *\n * Often times you want to create a new instance of an object within an instance. If your subclassed however you cannot return a new instance of the parent class as it will not be the right sub class. `declare` provides a way around this by setting the `_static` property on each isntance of the class.\n *\n * Lets add a reproduce method `Mammal`\n *\n * ```\n * reproduce : function(options){\n * return new this._static(options);\n * }\n * ```\n *\n * Now in each subclass you can call reproduce and get the proper type.\n *\n * ```\n * var myDog = new Dog();\n * var myDogsChild = myDog.reproduce();\n *\n * myDogsChild instanceof Dog; //true\n * ```\n *\n * ###Using the `as`\n *\n * `declare` also provides an `as` method which allows you to add your class to an object or if your using node.js you can pass in `module` and the class will be exported as the module.\n *\n * ```\n * var animals = {};\n *\n * Mammal.as(animals, \"Dog\");\n * Wolf.as(animals, \"Wolf\");\n * Dog.as(animals, \"Dog\");\n * Breed.as(animals, \"Breed\");\n *\n * var myDog = new animals.Dog();\n *\n * ```\n *\n * Or in node\n *\n * ```\n * Mammal.as(exports, \"Dog\");\n * Wolf.as(exports, \"Wolf\");\n * Dog.as(exports, \"Dog\");\n * Breed.as(exports, \"Breed\");\n *\n * ```\n *\n * To export a class as the `module` in node\n *\n * ```\n * Mammal.as(module);\n * ```\n *\n *\n */\n function createDeclared() {\n var arraySlice = Array.prototype.slice, classCounter = 0, Base, forceNew = new Function();\n\n var SUPER_REGEXP = /(super)/g;\n\n function argsToArray(args, slice) {\n slice = slice || 0;\n return arraySlice.call(args, slice);\n }\n\n function isArray(obj) {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n }\n\n function isObject(obj) {\n var undef;\n return obj !== null && obj !== undef && typeof obj === \"object\";\n }\n\n function isHash(obj) {\n var ret = isObject(obj);\n return ret && obj.constructor === Object;\n }\n\n var isArguments = function _isArguments(object) {\n return Object.prototype.toString.call(object) === '[object Arguments]';\n };\n\n if (!isArguments(arguments)) {\n isArguments = function _isArguments(obj) {\n return !!(obj && obj.hasOwnProperty(\"callee\"));\n };\n }\n\n function indexOf(arr, item) {\n if (arr && arr.length) {\n for (var i = 0, l = arr.length; i < l; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n }\n return -1;\n }\n\n function merge(target, source, exclude) {\n var name, s;\n for (name in source) {\n if (source.hasOwnProperty(name) && indexOf(exclude, name) === -1) {\n s = source[name];\n if (!(name in target) || (target[name] !== s)) {\n target[name] = s;\n }\n }\n }\n return target;\n }\n\n function callSuper(args, a) {\n var meta = this.__meta,\n supers = meta.supers,\n l = supers.length, superMeta = meta.superMeta, pos = superMeta.pos;\n if (l > pos) {\n args = !args ? [] : (!isArguments(args) && !isArray(args)) ? [args] : args;\n var name = superMeta.name, f = superMeta.f, m;\n do {\n m = supers[pos][name];\n if (\"function\" === typeof m && (m = m._f || m) !== f) {\n superMeta.pos = 1 + pos;\n return m.apply(this, args);\n }\n } while (l > ++pos);\n }\n\n return null;\n }\n\n function getSuper() {\n var meta = this.__meta,\n supers = meta.supers,\n l = supers.length, superMeta = meta.superMeta, pos = superMeta.pos;\n if (l > pos) {\n var name = superMeta.name, f = superMeta.f, m;\n do {\n m = supers[pos][name];\n if (\"function\" === typeof m && (m = m._f || m) !== f) {\n superMeta.pos = 1 + pos;\n return m.bind(this);\n }\n } while (l > ++pos);\n }\n return null;\n }\n\n function getter(name) {\n var getters = this.__getters__;\n if (getters.hasOwnProperty(name)) {\n return getters[name].apply(this);\n } else {\n return this[name];\n }\n }\n\n function setter(name, val) {\n var setters = this.__setters__;\n if (isHash(name)) {\n for (var i in name) {\n var prop = name[i];\n if (setters.hasOwnProperty(i)) {\n setters[name].call(this, prop);\n } else {\n this[i] = prop;\n }\n }\n } else {\n if (setters.hasOwnProperty(name)) {\n return setters[name].apply(this, argsToArray(arguments, 1));\n } else {\n return this[name] = val;\n }\n }\n }\n\n\n function defaultFunction() {\n var meta = this.__meta || {},\n supers = meta.supers,\n l = supers.length, superMeta = meta.superMeta, pos = superMeta.pos;\n if (l > pos) {\n var name = superMeta.name, f = superMeta.f, m;\n do {\n m = supers[pos][name];\n if (\"function\" === typeof m && (m = m._f || m) !== f) {\n superMeta.pos = 1 + pos;\n return m.apply(this, arguments);\n }\n } while (l > ++pos);\n }\n return null;\n }\n\n\n function functionWrapper(f, name) {\n if (f.toString().match(SUPER_REGEXP)) {\n var wrapper = function wrapper() {\n var ret, meta = this.__meta || {};\n var orig = meta.superMeta;\n meta.superMeta = {f: f, pos: 0, name: name};\n switch (arguments.length) {\n case 0:\n ret = f.call(this);\n break;\n case 1:\n ret = f.call(this, arguments[0]);\n break;\n case 2:\n ret = f.call(this, arguments[0], arguments[1]);\n break;\n\n case 3:\n ret = f.call(this, arguments[0], arguments[1], arguments[2]);\n break;\n default:\n ret = f.apply(this, arguments);\n }\n meta.superMeta = orig;\n return ret;\n };\n wrapper._f = f;\n return wrapper;\n } else {\n f._f = f;\n return f;\n }\n }\n\n function defineMixinProps(child, proto) {\n\n var operations = proto.setters || {}, __setters = child.__setters__, __getters = child.__getters__;\n for (var i in operations) {\n if (!__setters.hasOwnProperty(i)) { //make sure that the setter isnt already there\n __setters[i] = operations[i];\n }\n }\n operations = proto.getters || {};\n for (i in operations) {\n if (!__getters.hasOwnProperty(i)) { //make sure that the setter isnt already there\n __getters[i] = operations[i];\n }\n }\n for (var j in proto) {\n if (j !== \"getters\" && j !== \"setters\") {\n var p = proto[j];\n if (\"function\" === typeof p) {\n if (!child.hasOwnProperty(j)) {\n child[j] = functionWrapper(defaultFunction, j);\n }\n } else {\n child[j] = p;\n }\n }\n }\n }\n\n function mixin() {\n var args = argsToArray(arguments), l = args.length;\n var child = this.prototype;\n var childMeta = child.__meta, thisMeta = this.__meta, bases = child.__meta.bases, staticBases = bases.slice(),\n staticSupers = thisMeta.supers || [], supers = childMeta.supers || [];\n for (var i = 0; i < l; i++) {\n var m = args[i], mProto = m.prototype;\n var protoMeta = mProto.__meta, meta = m.__meta;\n !protoMeta && (protoMeta = (mProto.__meta = {proto: mProto || {}}));\n !meta && (meta = (m.__meta = {proto: m.__proto__ || {}}));\n defineMixinProps(child, protoMeta.proto || {});\n defineMixinProps(this, meta.proto || {});\n //copy the bases for static,\n\n mixinSupers(m.prototype, supers, bases);\n mixinSupers(m, staticSupers, staticBases);\n }\n return this;\n }\n\n function mixinSupers(sup, arr, bases) {\n var meta = sup.__meta;\n !meta && (meta = (sup.__meta = {}));\n var unique = sup.__meta.unique;\n !unique && (meta.unique = \"declare\" + ++classCounter);\n //check it we already have this super mixed into our prototype chain\n //if true then we have already looped their supers!\n if (indexOf(bases, unique) === -1) {\n //add their id to our bases\n bases.push(unique);\n var supers = sup.__meta.supers || [], i = supers.length - 1 || 0;\n while (i >= 0) {\n mixinSupers(supers[i--], arr, bases);\n }\n arr.unshift(sup);\n }\n }\n\n function defineProps(child, proto) {\n var operations = proto.setters,\n __setters = child.__setters__,\n __getters = child.__getters__;\n if (operations) {\n for (var i in operations) {\n __setters[i] = operations[i];\n }\n }\n operations = proto.getters || {};\n if (operations) {\n for (i in operations) {\n __getters[i] = operations[i];\n }\n }\n for (i in proto) {\n if (i != \"getters\" && i != \"setters\") {\n var f = proto[i];\n if (\"function\" === typeof f) {\n var meta = f.__meta || {};\n if (!meta.isConstructor) {\n child[i] = functionWrapper(f, i);\n } else {\n child[i] = f;\n }\n } else {\n child[i] = f;\n }\n }\n }\n\n }\n\n function _export(obj, name) {\n if (obj && name) {\n obj[name] = this;\n } else {\n obj.exports = obj = this;\n }\n return this;\n }\n\n function extend(proto) {\n return declare(this, proto);\n }\n\n function getNew(ctor) {\n // create object with correct prototype using a do-nothing\n // constructor\n forceNew.prototype = ctor.prototype;\n var t = new forceNew();\n forceNew.prototype = null;\t// clean up\n return t;\n }\n\n\n function __declare(child, sup, proto) {\n var childProto = {}, supers = [];\n var unique = \"declare\" + ++classCounter, bases = [], staticBases = [];\n var instanceSupers = [], staticSupers = [];\n var meta = {\n supers: instanceSupers,\n unique: unique,\n bases: bases,\n superMeta: {\n f: null,\n pos: 0,\n name: null\n }\n };\n var childMeta = {\n supers: staticSupers,\n unique: unique,\n bases: staticBases,\n isConstructor: true,\n superMeta: {\n f: null,\n pos: 0,\n name: null\n }\n };\n\n if (isHash(sup) && !proto) {\n proto = sup;\n sup = Base;\n }\n\n if (\"function\" === typeof sup || isArray(sup)) {\n supers = isArray(sup) ? sup : [sup];\n sup = supers.shift();\n child.__meta = childMeta;\n childProto = getNew(sup);\n childProto.__meta = meta;\n childProto.__getters__ = merge({}, childProto.__getters__ || {});\n childProto.__setters__ = merge({}, childProto.__setters__ || {});\n child.__getters__ = merge({}, child.__getters__ || {});\n child.__setters__ = merge({}, child.__setters__ || {});\n mixinSupers(sup.prototype, instanceSupers, bases);\n mixinSupers(sup, staticSupers, staticBases);\n } else {\n child.__meta = childMeta;\n childProto.__meta = meta;\n childProto.__getters__ = childProto.__getters__ || {};\n childProto.__setters__ = childProto.__setters__ || {};\n child.__getters__ = child.__getters__ || {};\n child.__setters__ = child.__setters__ || {};\n }\n child.prototype = childProto;\n if (proto) {\n var instance = meta.proto = proto.instance || {};\n var stat = childMeta.proto = proto.static || {};\n stat.init = stat.init || defaultFunction;\n defineProps(childProto, instance);\n defineProps(child, stat);\n if (!instance.hasOwnProperty(\"constructor\")) {\n childProto.constructor = instance.constructor = functionWrapper(defaultFunction, \"constructor\");\n } else {\n childProto.constructor = functionWrapper(instance.constructor, \"constructor\");\n }\n } else {\n meta.proto = {};\n childMeta.proto = {};\n child.init = functionWrapper(defaultFunction, \"init\");\n childProto.constructor = functionWrapper(defaultFunction, \"constructor\");\n }\n if (supers.length) {\n mixin.apply(child, supers);\n }\n if (sup) {\n //do this so we mixin our super methods directly but do not ov\n merge(child, merge(merge({}, sup), child));\n }\n childProto._super = child._super = callSuper;\n childProto._getSuper = child._getSuper = getSuper;\n childProto._static = child;\n }\n\n function declare(sup, proto) {\n function declared() {\n switch (arguments.length) {\n case 0:\n this.constructor.call(this);\n break;\n case 1:\n this.constructor.call(this, arguments[0]);\n break;\n case 2:\n this.constructor.call(this, arguments[0], arguments[1]);\n break;\n case 3:\n this.constructor.call(this, arguments[0], arguments[1], arguments[2]);\n break;\n default:\n this.constructor.apply(this, arguments);\n }\n }\n\n __declare(declared, sup, proto);\n return declared.init() || declared;\n }\n\n function singleton(sup, proto) {\n var retInstance;\n\n function declaredSingleton() {\n if (!retInstance) {\n this.constructor.apply(this, arguments);\n retInstance = this;\n }\n return retInstance;\n }\n\n __declare(declaredSingleton, sup, proto);\n return declaredSingleton.init() || declaredSingleton;\n }\n\n Base = declare({\n instance: {\n \"get\": getter,\n \"set\": setter\n },\n\n \"static\": {\n \"get\": getter,\n \"set\": setter,\n mixin: mixin,\n extend: extend,\n as: _export\n }\n });\n\n declare.singleton = singleton;\n return declare;\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = createDeclared();\n }\n } else if (\"function\" === typeof define && define.amd) {\n define(createDeclared);\n } else {\n this.declare = createDeclared();\n }\n}());\n\n\n\n","module.exports = require(\"./declare.js\");","(function () {\n \"use strict\";\n /*global extender is, dateExtended*/\n\n function defineExtended(extender) {\n\n\n var merge = (function merger() {\n function _merge(target, source) {\n var name, s;\n for (name in source) {\n if (source.hasOwnProperty(name)) {\n s = source[name];\n if (!(name in target) || (target[name] !== s)) {\n target[name] = s;\n }\n }\n }\n return target;\n }\n\n return function merge(obj) {\n if (!obj) {\n obj = {};\n }\n for (var i = 1, l = arguments.length; i < l; i++) {\n _merge(obj, arguments[i]);\n }\n return obj; // Object\n };\n }());\n\n function getExtended() {\n\n var loaded = {};\n\n\n //getInitial instance;\n var extended = extender.define();\n extended.expose({\n register: function register(alias, extendWith) {\n if (!extendWith) {\n extendWith = alias;\n alias = null;\n }\n var type = typeof extendWith;\n if (alias) {\n extended[alias] = extendWith;\n } else if (extendWith && type === \"function\") {\n extended.extend(extendWith);\n } else if (type === \"object\") {\n extended.expose(extendWith);\n } else {\n throw new TypeError(\"extended.register must be called with an extender function\");\n }\n return extended;\n },\n\n define: function () {\n return extender.define.apply(extender, arguments);\n }\n });\n\n return extended;\n }\n\n function extended() {\n return getExtended();\n }\n\n extended.define = function define() {\n return extender.define.apply(extender, arguments);\n };\n\n return extended;\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineExtended(require(\"extender\"));\n\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"extender\"], function (extender) {\n return defineExtended(extender);\n });\n } else {\n this.extended = defineExtended(this.extender);\n }\n\n}).call(this);\n\n\n\n\n\n\n","(function () {\n /*jshint strict:false*/\n\n\n /**\n *\n * @projectName extender\n * @github http://github.com/doug-martin/extender\n * @header\n * [![build status](https://secure.travis-ci.org/doug-martin/extender.png)](http://travis-ci.org/doug-martin/extender)\n * # Extender\n *\n * `extender` is a library that helps in making chainable APIs, by creating a function that accepts different values and returns an object decorated with functions based on the type.\n *\n * ## Why Is Extender Different?\n *\n * Extender is different than normal chaining because is does more than return `this`. It decorates your values in a type safe manner.\n *\n * For example if you return an array from a string based method then the returned value will be decorated with array methods and not the string methods. This allow you as the developer to focus on your API and not worrying about how to properly build and connect your API.\n *\n *\n * ## Installation\n *\n * ```\n * npm install extender\n * ```\n *\n * Or [download the source](https://raw.github.com/doug-martin/extender/master/extender.js) ([minified](https://raw.github.com/doug-martin/extender/master/extender-min.js))\n *\n * **Note** `extender` depends on [`declare.js`](http://doug-martin.github.com/declare.js/).\n *\n * ### Requirejs\n *\n * To use with requirejs place the `extend` source in the root scripts directory\n *\n * ```javascript\n *\n * define([\"extender\"], function(extender){\n * });\n *\n * ```\n *\n *\n * ## Usage\n *\n * **`extender.define(tester, decorations)`**\n *\n * To create your own extender call the `extender.define` function.\n *\n * This function accepts an optional tester which is used to determine a value should be decorated with the specified `decorations`\n *\n * ```javascript\n * function isString(obj) {\n * return !isUndefinedOrNull(obj) && (typeof obj === \"string\" || obj instanceof String);\n * }\n *\n *\n * var myExtender = extender.define(isString, {\n *\t\tmultiply: function (str, times) {\n *\t\t\tvar ret = str;\n *\t\t\tfor (var i = 1; i < times; i++) {\n *\t\t\t\tret += str;\n *\t\t\t}\n *\t\t\treturn ret;\n *\t\t},\n *\t\ttoArray: function (str, delim) {\n *\t\t\tdelim = delim || \"\";\n *\t\t\treturn str.split(delim);\n *\t\t}\n *\t});\n *\n * myExtender(\"hello\").multiply(2).value(); //hellohello\n *\n * ```\n *\n * If you do not specify a tester function and just pass in an object of `functions` then all values passed in will be decorated with methods.\n *\n * ```javascript\n *\n * function isUndefined(obj) {\n * var undef;\n * return obj === undef;\n * }\n *\n * function isUndefinedOrNull(obj) {\n *\tvar undef;\n * return obj === undef || obj === null;\n * }\n *\n * function isArray(obj) {\n * return Object.prototype.toString.call(obj) === \"[object Array]\";\n * }\n *\n * function isBoolean(obj) {\n * var undef, type = typeof obj;\n * return !isUndefinedOrNull(obj) && type === \"boolean\" || type === \"Boolean\";\n * }\n *\n * function isString(obj) {\n * return !isUndefinedOrNull(obj) && (typeof obj === \"string\" || obj instanceof String);\n * }\n *\n * var myExtender = extender.define({\n *\tisUndefined : isUndefined,\n *\tisUndefinedOrNull : isUndefinedOrNull,\n *\tisArray : isArray,\n *\tisBoolean : isBoolean,\n *\tisString : isString\n * });\n *\n * ```\n *\n * To use\n *\n * ```\n * var undef;\n * myExtender(\"hello\").isUndefined().value(); //false\n * myExtender(undef).isUndefined().value(); //true\n * ```\n *\n * You can also chain extenders so that they accept multiple types and decorates accordingly.\n *\n * ```javascript\n * myExtender\n * .define(isArray, {\n *\t\tpluck: function (arr, m) {\n *\t\t\tvar ret = [];\n *\t\t\tfor (var i = 0, l = arr.length; i < l; i++) {\n *\t\t\t\tret.push(arr[i][m]);\n *\t\t\t}\n *\t\t\treturn ret;\n *\t\t}\n *\t})\n * .define(isBoolean, {\n *\t\tinvert: function (val) {\n *\t\t\treturn !val;\n *\t\t}\n *\t});\n *\n * myExtender([{a: \"a\"},{a: \"b\"},{a: \"c\"}]).pluck(\"a\").value(); //[\"a\", \"b\", \"c\"]\n * myExtender(\"I love javascript!\").toArray(/\\s+/).pluck(\"0\"); //[\"I\", \"l\", \"j\"]\n *\n * ```\n *\n * Notice that we reuse the same extender as defined above.\n *\n * **Return Values**\n *\n * When creating an extender if you return a value from one of the decoration functions then that value will also be decorated. If you do not return any values then the extender will be returned.\n *\n * **Default decoration methods**\n *\n * By default every value passed into an extender is decorated with the following methods.\n *\n * * `value` : The value this extender represents.\n * * `eq(otherValue)` : Tests strict equality of the currently represented value to the `otherValue`\n * * `neq(oterValue)` : Tests strict inequality of the currently represented value.\n * * `print` : logs the current value to the console.\n *\n * **Extender initialization**\n *\n * When creating an extender you can also specify a constructor which will be invoked with the current value.\n *\n * ```javascript\n * myExtender.define(isString, {\n *\tconstructor : function(val){\n * //set our value to the string trimmed\n *\t\tthis._value = val.trimRight().trimLeft();\n *\t}\n * });\n * ```\n *\n * **`noWrap`**\n *\n * `extender` also allows you to specify methods that should not have the value wrapped providing a cleaner exit function other than `value()`.\n *\n * For example suppose you have an API that allows you to build a validator, rather than forcing the user to invoke the `value` method you could add a method called `validator` which makes more syntactic sense.\n *\n * ```\n *\n * var myValidator = extender.define({\n * //chainable validation methods\n * //...\n * //end chainable validation methods\n *\n * noWrap : {\n * validator : function(){\n * //return your validator\n * }\n * }\n * });\n *\n * myValidator().isNotNull().isEmailAddress().validator(); //now you dont need to call .value()\n *\n *\n * ```\n * **`extender.extend(extendr)`**\n *\n * You may also compose extenders through the use of `extender.extend(extender)`, which will return an entirely new extender that is the composition of extenders.\n *\n * Suppose you have the following two extenders.\n *\n * ```javascript\n * var myExtender = extender\n * .define({\n * isFunction: is.function,\n * isNumber: is.number,\n * isString: is.string,\n * isDate: is.date,\n * isArray: is.array,\n * isBoolean: is.boolean,\n * isUndefined: is.undefined,\n * isDefined: is.defined,\n * isUndefinedOrNull: is.undefinedOrNull,\n * isNull: is.null,\n * isArguments: is.arguments,\n * isInstanceOf: is.instanceOf,\n * isRegExp: is.regExp\n * });\n * var myExtender2 = extender.define(is.array, {\n * pluck: function (arr, m) {\n * var ret = [];\n * for (var i = 0, l = arr.length; i < l; i++) {\n * ret.push(arr[i][m]);\n * }\n * return ret;\n * },\n *\n * noWrap: {\n * pluckPlain: function (arr, m) {\n * var ret = [];\n * for (var i = 0, l = arr.length; i < l; i++) {\n * ret.push(arr[i][m]);\n * }\n * return ret;\n * }\n * }\n * });\n *\n *\n * ```\n *\n * And you do not want to alter either of them but instead what to create a third that is the union of the two.\n *\n *\n * ```javascript\n * var composed = extender.extend(myExtender).extend(myExtender2);\n * ```\n * So now you can use the new extender with the joined functionality if `myExtender` and `myExtender2`.\n *\n * ```javascript\n * var extended = composed([\n * {a: \"a\"},\n * {a: \"b\"},\n * {a: \"c\"}\n * ]);\n * extended.isArray().value(); //true\n * extended.pluck(\"a\").value(); // [\"a\", \"b\", \"c\"]);\n *\n * ```\n *\n * **Note** `myExtender` and `myExtender2` will **NOT** be altered.\n *\n * **`extender.expose(methods)`**\n *\n * The `expose` method allows you to add methods to your extender that are not wrapped or automatically chained by exposing them on the extender directly.\n *\n * ```\n * var isMethods = {\n * isFunction: is.function,\n * isNumber: is.number,\n * isString: is.string,\n * isDate: is.date,\n * isArray: is.array,\n * isBoolean: is.boolean,\n * isUndefined: is.undefined,\n * isDefined: is.defined,\n * isUndefinedOrNull: is.undefinedOrNull,\n * isNull: is.null,\n * isArguments: is.arguments,\n * isInstanceOf: is.instanceOf,\n * isRegExp: is.regExp\n * };\n *\n * var myExtender = extender.define(isMethods).expose(isMethods);\n *\n * myExtender.isArray([]); //true\n * myExtender([]).isArray([]).value(); //true\n *\n * ```\n *\n *\n * **Using `instanceof`**\n *\n * When using extenders you can test if a value is an `instanceof` of an extender by using the instanceof operator.\n *\n * ```javascript\n * var str = myExtender(\"hello\");\n *\n * str instanceof myExtender; //true\n * ```\n *\n * ## Examples\n *\n * To see more examples click [here](https://github.com/doug-martin/extender/tree/master/examples)\n */\n function defineExtender(declare) {\n\n\n var slice = Array.prototype.slice, undef;\n\n function indexOf(arr, item) {\n if (arr && arr.length) {\n for (var i = 0, l = arr.length; i < l; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n }\n return -1;\n }\n\n function isArray(obj) {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n }\n\n var merge = (function merger() {\n function _merge(target, source, exclude) {\n var name, s;\n for (name in source) {\n if (source.hasOwnProperty(name) && indexOf(exclude, name) === -1) {\n s = source[name];\n if (!(name in target) || (target[name] !== s)) {\n target[name] = s;\n }\n }\n }\n return target;\n }\n\n return function merge(obj) {\n if (!obj) {\n obj = {};\n }\n var l = arguments.length;\n var exclude = arguments[arguments.length - 1];\n if (isArray(exclude)) {\n l--;\n } else {\n exclude = [];\n }\n for (var i = 1; i < l; i++) {\n _merge(obj, arguments[i], exclude);\n }\n return obj; // Object\n };\n }());\n\n\n function extender(supers) {\n supers = supers || [];\n var Base = declare({\n instance: {\n constructor: function (value) {\n this._value = value;\n },\n\n value: function () {\n return this._value;\n },\n\n eq: function eq(val) {\n return this[\"__extender__\"](this._value === val);\n },\n\n neq: function neq(other) {\n return this[\"__extender__\"](this._value !== other);\n },\n print: function () {\n console.log(this._value);\n return this;\n }\n }\n }), defined = [];\n\n function addMethod(proto, name, func) {\n if (\"function\" !== typeof func) {\n throw new TypeError(\"when extending type you must provide a function\");\n }\n var extendedMethod;\n if (name === \"constructor\") {\n extendedMethod = function () {\n this._super(arguments);\n func.apply(this, arguments);\n };\n } else {\n extendedMethod = function extendedMethod() {\n var args = slice.call(arguments);\n args.unshift(this._value);\n var ret = func.apply(this, args);\n return ret !== undef ? this[\"__extender__\"](ret) : this;\n };\n }\n proto[name] = extendedMethod;\n }\n\n function addNoWrapMethod(proto, name, func) {\n if (\"function\" !== typeof func) {\n throw new TypeError(\"when extending type you must provide a function\");\n }\n var extendedMethod;\n if (name === \"constructor\") {\n extendedMethod = function () {\n this._super(arguments);\n func.apply(this, arguments);\n };\n } else {\n extendedMethod = function extendedMethod() {\n var args = slice.call(arguments);\n args.unshift(this._value);\n return func.apply(this, args);\n };\n }\n proto[name] = extendedMethod;\n }\n\n function decorateProto(proto, decoration, nowrap) {\n for (var i in decoration) {\n if (decoration.hasOwnProperty(i)) {\n if (i !== \"getters\" && i !== \"setters\") {\n if (i === \"noWrap\") {\n decorateProto(proto, decoration[i], true);\n } else if (nowrap) {\n addNoWrapMethod(proto, i, decoration[i]);\n } else {\n addMethod(proto, i, decoration[i]);\n }\n } else {\n proto[i] = decoration[i];\n }\n }\n }\n }\n\n function _extender(obj) {\n var ret = obj, i, l;\n if (!(obj instanceof Base)) {\n var OurBase = Base;\n for (i = 0, l = defined.length; i < l; i++) {\n var definer = defined[i];\n if (definer[0](obj)) {\n OurBase = OurBase.extend({instance: definer[1]});\n }\n }\n ret = new OurBase(obj);\n ret[\"__extender__\"] = _extender;\n }\n return ret;\n }\n\n function always() {\n return true;\n }\n\n function define(tester, decorate) {\n if (arguments.length) {\n if (typeof tester === \"object\") {\n decorate = tester;\n tester = always;\n }\n decorate = decorate || {};\n var proto = {};\n decorateProto(proto, decorate);\n //handle browsers like which skip over the constructor while looping\n if (!proto.hasOwnProperty(\"constructor\")) {\n if (decorate.hasOwnProperty(\"constructor\")) {\n addMethod(proto, \"constructor\", decorate.constructor);\n } else {\n proto.constructor = function () {\n this._super(arguments);\n };\n }\n }\n defined.push([tester, proto]);\n }\n return _extender;\n }\n\n function extend(supr) {\n if (supr && supr.hasOwnProperty(\"__defined__\")) {\n _extender[\"__defined__\"] = defined = defined.concat(supr[\"__defined__\"]);\n }\n merge(_extender, supr, [\"define\", \"extend\", \"expose\", \"__defined__\"]);\n return _extender;\n }\n\n _extender.define = define;\n _extender.extend = extend;\n _extender.expose = function expose() {\n var methods;\n for (var i = 0, l = arguments.length; i < l; i++) {\n methods = arguments[i];\n if (typeof methods === \"object\") {\n merge(_extender, methods, [\"define\", \"extend\", \"expose\", \"__defined__\"]);\n }\n }\n return _extender;\n };\n _extender[\"__defined__\"] = defined;\n\n\n return _extender;\n }\n\n return {\n define: function () {\n return extender().define.apply(extender, arguments);\n },\n\n extend: function (supr) {\n return extender().define().extend(supr);\n }\n };\n\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineExtender(require(\"declare.js\"));\n\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"declare\"], function (declare) {\n return defineExtender(declare);\n });\n } else {\n this.extender = defineExtender(this.declare);\n }\n\n}).call(this);","module.exports = require(\"./extender.js\");","(function () {\n \"use strict\";\n\n function defineFunction(extended, is, args) {\n\n var isArray = is.isArray,\n isObject = is.isObject,\n isString = is.isString,\n isFunction = is.isFunction,\n argsToArray = args.argsToArray;\n\n function spreadArgs(f, args, scope) {\n var ret;\n switch ((args || []).length) {\n case 0:\n ret = f.call(scope);\n break;\n case 1:\n ret = f.call(scope, args[0]);\n break;\n case 2:\n ret = f.call(scope, args[0], args[1]);\n break;\n case 3:\n ret = f.call(scope, args[0], args[1], args[2]);\n break;\n default:\n ret = f.apply(scope, args);\n }\n return ret;\n }\n\n function hitch(scope, method, args) {\n args = argsToArray(arguments, 2);\n if ((isString(method) && !(method in scope))) {\n throw new Error(method + \" property not defined in scope\");\n } else if (!isString(method) && !isFunction(method)) {\n throw new Error(method + \" is not a function\");\n }\n if (isString(method)) {\n return function () {\n var func = scope[method];\n if (isFunction(func)) {\n return spreadArgs(func, args.concat(argsToArray(arguments)), scope);\n } else {\n return func;\n }\n };\n } else {\n if (args.length) {\n return function () {\n return spreadArgs(method, args.concat(argsToArray(arguments)), scope);\n };\n } else {\n\n return function () {\n return spreadArgs(method, arguments, scope);\n };\n }\n }\n }\n\n\n function applyFirst(method, args) {\n args = argsToArray(arguments, 1);\n if (!isString(method) && !isFunction(method)) {\n throw new Error(method + \" must be the name of a property or function to execute\");\n }\n if (isString(method)) {\n return function () {\n var scopeArgs = argsToArray(arguments), scope = scopeArgs.shift();\n var func = scope[method];\n if (isFunction(func)) {\n scopeArgs = args.concat(scopeArgs);\n return spreadArgs(func, scopeArgs, scope);\n } else {\n return func;\n }\n };\n } else {\n return function () {\n var scopeArgs = argsToArray(arguments), scope = scopeArgs.shift();\n scopeArgs = args.concat(scopeArgs);\n return spreadArgs(method, scopeArgs, scope);\n };\n }\n }\n\n\n function hitchIgnore(scope, method, args) {\n args = argsToArray(arguments, 2);\n if ((isString(method) && !(method in scope))) {\n throw new Error(method + \" property not defined in scope\");\n } else if (!isString(method) && !isFunction(method)) {\n throw new Error(method + \" is not a function\");\n }\n if (isString(method)) {\n return function () {\n var func = scope[method];\n if (isFunction(func)) {\n return spreadArgs(func, args, scope);\n } else {\n return func;\n }\n };\n } else {\n return function () {\n return spreadArgs(method, args, scope);\n };\n }\n }\n\n\n function hitchAll(scope) {\n var funcs = argsToArray(arguments, 1);\n if (!isObject(scope) && !isFunction(scope)) {\n throw new TypeError(\"scope must be an object\");\n }\n if (funcs.length === 1 && isArray(funcs[0])) {\n funcs = funcs[0];\n }\n if (!funcs.length) {\n funcs = [];\n for (var k in scope) {\n if (scope.hasOwnProperty(k) && isFunction(scope[k])) {\n funcs.push(k);\n }\n }\n }\n for (var i = 0, l = funcs.length; i < l; i++) {\n scope[funcs[i]] = hitch(scope, scope[funcs[i]]);\n }\n return scope;\n }\n\n\n function partial(method, args) {\n args = argsToArray(arguments, 1);\n if (!isString(method) && !isFunction(method)) {\n throw new Error(method + \" must be the name of a property or function to execute\");\n }\n if (isString(method)) {\n return function () {\n var func = this[method];\n if (isFunction(func)) {\n var scopeArgs = args.concat(argsToArray(arguments));\n return spreadArgs(func, scopeArgs, this);\n } else {\n return func;\n }\n };\n } else {\n return function () {\n var scopeArgs = args.concat(argsToArray(arguments));\n return spreadArgs(method, scopeArgs, this);\n };\n }\n }\n\n function curryFunc(f, execute) {\n return function () {\n var args = argsToArray(arguments);\n return execute ? spreadArgs(f, arguments, this) : function () {\n return spreadArgs(f, args.concat(argsToArray(arguments)), this);\n };\n };\n }\n\n\n function curry(depth, cb, scope) {\n var f;\n if (scope) {\n f = hitch(scope, cb);\n } else {\n f = cb;\n }\n if (depth) {\n var len = depth - 1;\n for (var i = len; i >= 0; i--) {\n f = curryFunc(f, i === len);\n }\n }\n return f;\n }\n\n return extended\n .define(isObject, {\n bind: hitch,\n bindAll: hitchAll,\n bindIgnore: hitchIgnore,\n curry: function (scope, depth, fn) {\n return curry(depth, fn, scope);\n }\n })\n .define(isFunction, {\n bind: function (fn, obj) {\n return spreadArgs(hitch, [obj, fn].concat(argsToArray(arguments, 2)), this);\n },\n bindIgnore: function (fn, obj) {\n return spreadArgs(hitchIgnore, [obj, fn].concat(argsToArray(arguments, 2)), this);\n },\n partial: partial,\n applyFirst: applyFirst,\n curry: function (fn, num, scope) {\n return curry(num, fn, scope);\n },\n noWrap: {\n f: function () {\n return this.value();\n }\n }\n })\n .define(isString, {\n bind: function (str, scope) {\n return hitch(scope, str);\n },\n bindIgnore: function (str, scope) {\n return hitchIgnore(scope, str);\n },\n partial: partial,\n applyFirst: applyFirst,\n curry: function (fn, depth, scope) {\n return curry(depth, fn, scope);\n }\n })\n .expose({\n bind: hitch,\n bindAll: hitchAll,\n bindIgnore: hitchIgnore,\n partial: partial,\n applyFirst: applyFirst,\n curry: curry\n });\n\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineFunction(require(\"extended\"), require(\"is-extended\"), require(\"arguments-extended\"));\n\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"extended\", \"is-extended\", \"arguments-extended\"], function (extended, is, args) {\n return defineFunction(extended, is, args);\n });\n } else {\n this.functionExtended = defineFunction(this.extended, this.isExtended, this.argumentsExtended);\n }\n\n}).call(this);\n\n\n\n\n\n\n","(function () {\n \"use strict\";\n\n function defineHt(_) {\n\n\n var hashFunction = function (key) {\n if (typeof key === \"string\") {\n return key;\n } else if (typeof key === \"object\") {\n return key.hashCode ? key.hashCode() : \"\" + key;\n } else {\n return \"\" + key;\n }\n };\n\n var Bucket = _.declare({\n\n instance: {\n\n constructor: function () {\n this.__entries = [];\n this.__keys = [];\n this.__values = [];\n },\n\n pushValue: function (key, value) {\n this.__keys.push(key);\n this.__values.push(value);\n this.__entries.push({key: key, value: value});\n return value;\n },\n\n remove: function (key) {\n var ret = null, map = this.__entries, val, keys = this.__keys, vals = this.__values;\n var i = map.length - 1;\n for (; i >= 0; i--) {\n if (!!(val = map[i]) && val.key === key) {\n map.splice(i, 1);\n keys.splice(i, 1);\n vals.splice(i, 1);\n return val.value;\n }\n }\n return ret;\n },\n\n \"set\": function (key, value) {\n var ret = null, map = this.__entries, vals = this.__values;\n var i = map.length - 1;\n for (; i >= 0; i--) {\n var val = map[i];\n if (val && key === val.key) {\n vals[i] = value;\n val.value = value;\n ret = value;\n break;\n }\n }\n if (!ret) {\n map.push({key: key, value: value});\n }\n return ret;\n },\n\n find: function (key) {\n var ret = null, map = this.__entries, val;\n var i = map.length - 1;\n for (; i >= 0; i--) {\n val = map[i];\n if (val && key === val.key) {\n ret = val.value;\n break;\n }\n }\n return ret;\n },\n\n getEntrySet: function () {\n return this.__entries;\n },\n\n getKeys: function () {\n return this.__keys;\n },\n\n getValues: function (arr) {\n return this.__values;\n }\n }\n });\n\n return _.declare({\n\n instance: {\n\n constructor: function () {\n this.__map = {};\n },\n\n entrySet: function () {\n var ret = [], map = this.__map;\n for (var i in map) {\n if (map.hasOwnProperty(i)) {\n ret = ret.concat(map[i].getEntrySet());\n }\n }\n return ret;\n },\n\n put: function (key, value) {\n var hash = hashFunction(key);\n var bucket = null;\n if (!(bucket = this.__map[hash])) {\n bucket = (this.__map[hash] = new Bucket());\n }\n bucket.pushValue(key, value);\n return value;\n },\n\n remove: function (key) {\n var hash = hashFunction(key), ret = null;\n var bucket = this.__map[hash];\n if (bucket) {\n ret = bucket.remove(key);\n }\n return ret;\n },\n\n \"get\": function (key) {\n var hash = hashFunction(key), ret = null, bucket;\n if (!!(bucket = this.__map[hash])) {\n ret = bucket.find(key);\n }\n return ret;\n },\n\n \"set\": function (key, value) {\n var hash = hashFunction(key), ret = null, bucket = null, map = this.__map;\n if (!!(bucket = map[hash])) {\n ret = bucket.set(key, value);\n } else {\n ret = (map[hash] = new Bucket()).pushValue(key, value);\n }\n return ret;\n },\n\n contains: function (key) {\n var hash = hashFunction(key), ret = false, bucket = null;\n if (!!(bucket = this.__map[hash])) {\n ret = !!(bucket.find(key));\n }\n return ret;\n },\n\n concat: function (hashTable) {\n if (hashTable instanceof this._static) {\n var ret = new this._static();\n var otherEntrySet = hashTable.entrySet().concat(this.entrySet());\n for (var i = otherEntrySet.length - 1; i >= 0; i--) {\n var e = otherEntrySet[i];\n ret.put(e.key, e.value);\n }\n return ret;\n } else {\n throw new TypeError(\"When joining hashtables the joining arg must be a HashTable\");\n }\n },\n\n filter: function (cb, scope) {\n var es = this.entrySet(), ret = new this._static();\n es = _.filter(es, cb, scope);\n for (var i = es.length - 1; i >= 0; i--) {\n var e = es[i];\n ret.put(e.key, e.value);\n }\n return ret;\n },\n\n forEach: function (cb, scope) {\n var es = this.entrySet();\n _.forEach(es, cb, scope);\n },\n\n every: function (cb, scope) {\n var es = this.entrySet();\n return _.every(es, cb, scope);\n },\n\n map: function (cb, scope) {\n var es = this.entrySet();\n return _.map(es, cb, scope);\n },\n\n some: function (cb, scope) {\n var es = this.entrySet();\n return _.some(es, cb, scope);\n },\n\n reduce: function (cb, scope) {\n var es = this.entrySet();\n return _.reduce(es, cb, scope);\n },\n\n reduceRight: function (cb, scope) {\n var es = this.entrySet();\n return _.reduceRight(es, cb, scope);\n },\n\n clear: function () {\n this.__map = {};\n },\n\n keys: function () {\n var ret = [], map = this.__map;\n for (var i in map) {\n //if (map.hasOwnProperty(i)) {\n ret = ret.concat(map[i].getKeys());\n //}\n }\n return ret;\n },\n\n values: function () {\n var ret = [], map = this.__map;\n for (var i in map) {\n //if (map.hasOwnProperty(i)) {\n ret = ret.concat(map[i].getValues());\n //}\n }\n return ret;\n },\n\n isEmpty: function () {\n return this.keys().length === 0;\n }\n }\n\n });\n\n\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineHt(require(\"extended\")().register(\"declare\", require(\"declare.js\")).register(require(\"is-extended\")).register(require(\"array-extended\")));\n\n }\n } else if (\"function\" === typeof define) {\n define([\"extended\", \"declare\", \"is-extended\", \"array-extended\"], function (extended, declare, is, array) {\n return defineHt(extended().register(\"declare\", declare).register(is).register(array));\n });\n } else {\n this.Ht = defineHt(this.extended().register(\"declare\", this.declare).register(this.isExtended).register(this.arrayExtended));\n }\n\n}).call(this);\n\n\n\n\n\n\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","(function () {\n \"use strict\";\n\n function defineIsa(extended) {\n\n var pSlice = Array.prototype.slice;\n\n var hasOwn = Object.prototype.hasOwnProperty;\n var toStr = Object.prototype.toString;\n\n function argsToArray(args, slice) {\n var i = -1, j = 0, l = args.length, ret = [];\n slice = slice || 0;\n i += slice;\n while (++i < l) {\n ret[j++] = args[i];\n }\n return ret;\n }\n\n function keys(obj) {\n var ret = [];\n for (var i in obj) {\n if (hasOwn.call(obj, i)) {\n ret.push(i);\n }\n }\n return ret;\n }\n\n //taken from node js assert.js\n //https://github.com/joyent/node/blob/master/lib/assert.js\n function deepEqual(actual, expected) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (typeof Buffer !== \"undefined\" && Buffer.isBuffer(actual) && Buffer.isBuffer(expected)) {\n if (actual.length !== expected.length) {\n return false;\n }\n for (var i = 0; i < actual.length; i++) {\n if (actual[i] !== expected[i]) {\n return false;\n }\n }\n return true;\n\n // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (isDate(actual) && isDate(expected)) {\n return actual.getTime() === expected.getTime();\n\n // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (isRegExp(actual) && isRegExp(expected)) {\n return actual.source === expected.source &&\n actual.global === expected.global &&\n actual.multiline === expected.multiline &&\n actual.lastIndex === expected.lastIndex &&\n actual.ignoreCase === expected.ignoreCase;\n\n // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (isString(actual) && isString(expected) && actual !== expected) {\n return false;\n } else if (typeof actual !== 'object' && typeof expected !== 'object') {\n return actual === expected;\n\n // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected);\n }\n }\n\n\n function objEquiv(a, b) {\n var key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) {\n return false;\n }\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) {\n return false;\n }\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b);\n }\n try {\n var ka = keys(a),\n kb = keys(b),\n i;\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length !== kb.length) {\n return false;\n }\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] !== kb[i]) {\n return false;\n }\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n return true;\n }\n\n\n var isFunction = function (obj) {\n return toStr.call(obj) === '[object Function]';\n };\n\n //ie hack\n if (\"undefined\" !== typeof window && !isFunction(window.alert)) {\n (function (alert) {\n isFunction = function (obj) {\n return toStr.call(obj) === '[object Function]' || obj === alert;\n };\n }(window.alert));\n }\n\n function isObject(obj) {\n var undef;\n return obj !== null && typeof obj === \"object\";\n }\n\n function isHash(obj) {\n var ret = isObject(obj);\n return ret && obj.constructor === Object && !obj.nodeType && !obj.setInterval;\n }\n\n function isEmpty(object) {\n if (isArguments(object)) {\n return object.length === 0;\n } else if (isObject(object)) {\n return keys(object).length === 0;\n } else if (isString(object) || isArray(object)) {\n return object.length === 0;\n }\n return true;\n }\n\n function isBoolean(obj) {\n return obj === true || obj === false || toStr.call(obj) === \"[object Boolean]\";\n }\n\n function isUndefined(obj) {\n return typeof obj === 'undefined';\n }\n\n function isDefined(obj) {\n return !isUndefined(obj);\n }\n\n function isUndefinedOrNull(obj) {\n return isUndefined(obj) || isNull(obj);\n }\n\n function isNull(obj) {\n return obj === null;\n }\n\n\n var isArguments = function _isArguments(object) {\n return toStr.call(object) === '[object Arguments]';\n };\n\n if (!isArguments(arguments)) {\n isArguments = function _isArguments(obj) {\n return !!(obj && hasOwn.call(obj, \"callee\"));\n };\n }\n\n\n function isInstanceOf(obj, clazz) {\n if (isFunction(clazz)) {\n return obj instanceof clazz;\n } else {\n return false;\n }\n }\n\n function isRegExp(obj) {\n return toStr.call(obj) === '[object RegExp]';\n }\n\n var isArray = Array.isArray || function isArray(obj) {\n return toStr.call(obj) === \"[object Array]\";\n };\n\n function isDate(obj) {\n return toStr.call(obj) === '[object Date]';\n }\n\n function isString(obj) {\n return toStr.call(obj) === '[object String]';\n }\n\n function isNumber(obj) {\n return toStr.call(obj) === '[object Number]';\n }\n\n function isTrue(obj) {\n return obj === true;\n }\n\n function isFalse(obj) {\n return obj === false;\n }\n\n function isNotNull(obj) {\n return !isNull(obj);\n }\n\n function isEq(obj, obj2) {\n /*jshint eqeqeq:false*/\n return obj == obj2;\n }\n\n function isNeq(obj, obj2) {\n /*jshint eqeqeq:false*/\n return obj != obj2;\n }\n\n function isSeq(obj, obj2) {\n return obj === obj2;\n }\n\n function isSneq(obj, obj2) {\n return obj !== obj2;\n }\n\n function isIn(obj, arr) {\n if ((isArray(arr) && Array.prototype.indexOf) || isString(arr)) {\n return arr.indexOf(obj) > -1;\n } else if (isArray(arr)) {\n for (var i = 0, l = arr.length; i < l; i++) {\n if (isEq(obj, arr[i])) {\n return true;\n }\n }\n }\n return false;\n }\n\n function isNotIn(obj, arr) {\n return !isIn(obj, arr);\n }\n\n function isLt(obj, obj2) {\n return obj < obj2;\n }\n\n function isLte(obj, obj2) {\n return obj <= obj2;\n }\n\n function isGt(obj, obj2) {\n return obj > obj2;\n }\n\n function isGte(obj, obj2) {\n return obj >= obj2;\n }\n\n function isLike(obj, reg) {\n if (isString(reg)) {\n return (\"\" + obj).match(reg) !== null;\n } else if (isRegExp(reg)) {\n return reg.test(obj);\n }\n return false;\n }\n\n function isNotLike(obj, reg) {\n return !isLike(obj, reg);\n }\n\n function contains(arr, obj) {\n return isIn(obj, arr);\n }\n\n function notContains(arr, obj) {\n return !isIn(obj, arr);\n }\n\n function containsAt(arr, obj, index) {\n if (isArray(arr) && arr.length > index) {\n return isEq(arr[index], obj);\n }\n return false;\n }\n\n function notContainsAt(arr, obj, index) {\n if (isArray(arr)) {\n return !isEq(arr[index], obj);\n }\n return false;\n }\n\n function has(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n function notHas(obj, prop) {\n return !has(obj, prop);\n }\n\n function length(obj, l) {\n if (has(obj, \"length\")) {\n return obj.length === l;\n }\n return false;\n }\n\n function notLength(obj, l) {\n if (has(obj, \"length\")) {\n return obj.length !== l;\n }\n return false;\n }\n\n var isa = {\n isFunction: isFunction,\n isObject: isObject,\n isEmpty: isEmpty,\n isHash: isHash,\n isNumber: isNumber,\n isString: isString,\n isDate: isDate,\n isArray: isArray,\n isBoolean: isBoolean,\n isUndefined: isUndefined,\n isDefined: isDefined,\n isUndefinedOrNull: isUndefinedOrNull,\n isNull: isNull,\n isArguments: isArguments,\n instanceOf: isInstanceOf,\n isRegExp: isRegExp,\n deepEqual: deepEqual,\n isTrue: isTrue,\n isFalse: isFalse,\n isNotNull: isNotNull,\n isEq: isEq,\n isNeq: isNeq,\n isSeq: isSeq,\n isSneq: isSneq,\n isIn: isIn,\n isNotIn: isNotIn,\n isLt: isLt,\n isLte: isLte,\n isGt: isGt,\n isGte: isGte,\n isLike: isLike,\n isNotLike: isNotLike,\n contains: contains,\n notContains: notContains,\n has: has,\n notHas: notHas,\n isLength: length,\n isNotLength: notLength,\n containsAt: containsAt,\n notContainsAt: notContainsAt\n };\n\n var tester = {\n constructor: function () {\n this._testers = [];\n },\n\n noWrap: {\n tester: function () {\n var testers = this._testers;\n return function tester(value) {\n var isa = false;\n for (var i = 0, l = testers.length; i < l && !isa; i++) {\n isa = testers[i](value);\n }\n return isa;\n };\n }\n }\n };\n\n var switcher = {\n constructor: function () {\n this._cases = [];\n this.__default = null;\n },\n\n def: function (val, fn) {\n this.__default = fn;\n },\n\n noWrap: {\n switcher: function () {\n var testers = this._cases, __default = this.__default;\n return function tester() {\n var handled = false, args = argsToArray(arguments), caseRet;\n for (var i = 0, l = testers.length; i < l && !handled; i++) {\n caseRet = testers[i](args);\n if (caseRet.length > 1) {\n if (caseRet[1] || caseRet[0]) {\n return caseRet[1];\n }\n }\n }\n if (!handled && __default) {\n return __default.apply(this, args);\n }\n };\n }\n }\n };\n\n function addToTester(func) {\n tester[func] = function isaTester() {\n this._testers.push(isa[func]);\n };\n }\n\n function addToSwitcher(func) {\n switcher[func] = function isaTester() {\n var args = argsToArray(arguments, 1), isFunc = isa[func], handler, doBreak = true;\n if (args.length <= isFunc.length - 1) {\n throw new TypeError(\"A handler must be defined when calling using switch\");\n } else {\n handler = args.pop();\n if (isBoolean(handler)) {\n doBreak = handler;\n handler = args.pop();\n }\n }\n if (!isFunction(handler)) {\n throw new TypeError(\"handler must be defined\");\n }\n this._cases.push(function (testArgs) {\n if (isFunc.apply(isa, testArgs.concat(args))) {\n return [doBreak, handler.apply(this, testArgs)];\n }\n return [false];\n });\n };\n }\n\n for (var i in isa) {\n if (hasOwn.call(isa, i)) {\n addToSwitcher(i);\n addToTester(i);\n }\n }\n\n var is = extended.define(isa).expose(isa);\n is.tester = extended.define(tester);\n is.switcher = extended.define(switcher);\n return is;\n\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineIsa(require(\"extended\"));\n\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"extended\"], function (extended) {\n return defineIsa(extended);\n });\n } else {\n this.isExtended = defineIsa(this.extended);\n }\n\n}).call(this);\n\n","(function () {\n \"use strict\";\n\n function defineLeafy(_) {\n\n function compare(a, b) {\n var ret = 0;\n if (a > b) {\n return 1;\n } else if (a < b) {\n return -1;\n } else if (!b) {\n return 1;\n }\n return ret;\n }\n\n var multiply = _.multiply;\n\n var Tree = _.declare({\n\n instance: {\n\n /**\n * Prints a node\n * @param node node to print\n * @param level the current level the node is at, Used for formatting\n */\n __printNode: function (node, level) {\n //console.log(level);\n var str = [];\n if (_.isUndefinedOrNull(node)) {\n str.push(multiply('\\t', level));\n str.push(\"~\");\n console.log(str.join(\"\"));\n } else {\n this.__printNode(node.right, level + 1);\n str.push(multiply('\\t', level));\n str.push(node.data + \"\\n\");\n console.log(str.join(\"\"));\n this.__printNode(node.left, level + 1);\n }\n },\n\n constructor: function (options) {\n options = options || {};\n this.compare = options.compare || compare;\n this.__root = null;\n },\n\n insert: function () {\n throw new Error(\"Not Implemented\");\n },\n\n remove: function () {\n throw new Error(\"Not Implemented\");\n },\n\n clear: function () {\n this.__root = null;\n },\n\n isEmpty: function () {\n return !(this.__root);\n },\n\n traverseWithCondition: function (node, order, callback) {\n var cont = true;\n if (node) {\n order = order || Tree.PRE_ORDER;\n if (order === Tree.PRE_ORDER) {\n cont = callback(node.data);\n if (cont) {\n cont = this.traverseWithCondition(node.left, order, callback);\n if (cont) {\n cont = this.traverseWithCondition(node.right, order, callback);\n }\n\n }\n } else if (order === Tree.IN_ORDER) {\n cont = this.traverseWithCondition(node.left, order, callback);\n if (cont) {\n cont = callback(node.data);\n if (cont) {\n cont = this.traverseWithCondition(node.right, order, callback);\n }\n }\n } else if (order === Tree.POST_ORDER) {\n cont = this.traverseWithCondition(node.left, order, callback);\n if (cont) {\n if (cont) {\n cont = this.traverseWithCondition(node.right, order, callback);\n }\n if (cont) {\n cont = callback(node.data);\n }\n }\n } else if (order === Tree.REVERSE_ORDER) {\n cont = this.traverseWithCondition(node.right, order, callback);\n if (cont) {\n cont = callback(node.data);\n if (cont) {\n cont = this.traverseWithCondition(node.left, order, callback);\n }\n }\n }\n }\n return cont;\n },\n\n traverse: function (node, order, callback) {\n if (node) {\n order = order || Tree.PRE_ORDER;\n if (order === Tree.PRE_ORDER) {\n callback(node.data);\n this.traverse(node.left, order, callback);\n this.traverse(node.right, order, callback);\n } else if (order === Tree.IN_ORDER) {\n this.traverse(node.left, order, callback);\n callback(node.data);\n this.traverse(node.right, order, callback);\n } else if (order === Tree.POST_ORDER) {\n this.traverse(node.left, order, callback);\n this.traverse(node.right, order, callback);\n callback(node.data);\n } else if (order === Tree.REVERSE_ORDER) {\n this.traverse(node.right, order, callback);\n callback(node.data);\n this.traverse(node.left, order, callback);\n\n }\n }\n },\n\n forEach: function (cb, scope, order) {\n if (typeof cb !== \"function\") {\n throw new TypeError();\n }\n order = order || Tree.IN_ORDER;\n scope = scope || this;\n this.traverse(this.__root, order, function (node) {\n cb.call(scope, node, this);\n });\n },\n\n map: function (cb, scope, order) {\n if (typeof cb !== \"function\") {\n throw new TypeError();\n }\n\n order = order || Tree.IN_ORDER;\n scope = scope || this;\n var ret = new this._static();\n this.traverse(this.__root, order, function (node) {\n ret.insert(cb.call(scope, node, this));\n });\n return ret;\n },\n\n filter: function (cb, scope, order) {\n if (typeof cb !== \"function\") {\n throw new TypeError();\n }\n\n order = order || Tree.IN_ORDER;\n scope = scope || this;\n var ret = new this._static();\n this.traverse(this.__root, order, function (node) {\n if (cb.call(scope, node, this)) {\n ret.insert(node);\n }\n });\n return ret;\n },\n\n reduce: function (fun, accumulator, order) {\n var arr = this.toArray(order);\n var args = [arr, fun];\n if (!_.isUndefinedOrNull(accumulator)) {\n args.push(accumulator);\n }\n return _.reduce.apply(_, args);\n },\n\n reduceRight: function (fun, accumulator, order) {\n var arr = this.toArray(order);\n var args = [arr, fun];\n if (!_.isUndefinedOrNull(accumulator)) {\n args.push(accumulator);\n }\n return _.reduceRight.apply(_, args);\n },\n\n every: function (cb, scope, order) {\n if (typeof cb !== \"function\") {\n throw new TypeError();\n }\n order = order || Tree.IN_ORDER;\n scope = scope || this;\n var ret = false;\n this.traverseWithCondition(this.__root, order, function (node) {\n ret = cb.call(scope, node, this);\n return ret;\n });\n return ret;\n },\n\n some: function (cb, scope, order) {\n if (typeof cb !== \"function\") {\n throw new TypeError();\n }\n\n order = order || Tree.IN_ORDER;\n scope = scope || this;\n var ret;\n this.traverseWithCondition(this.__root, order, function (node) {\n ret = cb.call(scope, node, this);\n return !ret;\n });\n return ret;\n },\n\n toArray: function (order) {\n order = order || Tree.IN_ORDER;\n var arr = [];\n this.traverse(this.__root, order, function (node) {\n arr.push(node);\n });\n return arr;\n },\n\n contains: function (value) {\n var ret = false;\n var root = this.__root;\n while (root !== null) {\n var cmp = this.compare(value, root.data);\n if (cmp) {\n root = root[(cmp === -1) ? \"left\" : \"right\"];\n } else {\n ret = true;\n root = null;\n }\n }\n return ret;\n },\n\n find: function (value) {\n var ret;\n var root = this.__root;\n while (root) {\n var cmp = this.compare(value, root.data);\n if (cmp) {\n root = root[(cmp === -1) ? \"left\" : \"right\"];\n } else {\n ret = root.data;\n break;\n }\n }\n return ret;\n },\n\n findLessThan: function (value, exclusive) {\n //find a better way!!!!\n var ret = [], compare = this.compare;\n this.traverseWithCondition(this.__root, Tree.IN_ORDER, function (v) {\n var cmp = compare(value, v);\n if ((!exclusive && cmp === 0) || cmp === 1) {\n ret.push(v);\n return true;\n } else {\n return false;\n }\n });\n return ret;\n },\n\n findGreaterThan: function (value, exclusive) {\n //find a better way!!!!\n var ret = [], compare = this.compare;\n this.traverse(this.__root, Tree.REVERSE_ORDER, function (v) {\n var cmp = compare(value, v);\n if ((!exclusive && cmp === 0) || cmp === -1) {\n ret.push(v);\n return true;\n } else {\n return false;\n }\n });\n return ret;\n },\n\n print: function () {\n this.__printNode(this.__root, 0);\n }\n },\n\n \"static\": {\n PRE_ORDER: \"pre_order\",\n IN_ORDER: \"in_order\",\n POST_ORDER: \"post_order\",\n REVERSE_ORDER: \"reverse_order\"\n }\n });\n\n var AVLTree = (function () {\n var abs = Math.abs;\n\n\n var makeNode = function (data) {\n return {\n data: data,\n balance: 0,\n left: null,\n right: null\n };\n };\n\n var rotateSingle = function (root, dir, otherDir) {\n var save = root[otherDir];\n root[otherDir] = save[dir];\n save[dir] = root;\n return save;\n };\n\n\n var rotateDouble = function (root, dir, otherDir) {\n root[otherDir] = rotateSingle(root[otherDir], otherDir, dir);\n return rotateSingle(root, dir, otherDir);\n };\n\n var adjustBalance = function (root, dir, bal) {\n var otherDir = dir === \"left\" ? \"right\" : \"left\";\n var n = root[dir], nn = n[otherDir];\n if (nn.balance === 0) {\n root.balance = n.balance = 0;\n } else if (nn.balance === bal) {\n root.balance = -bal;\n n.balance = 0;\n } else { /* nn.balance == -bal */\n root.balance = 0;\n n.balance = bal;\n }\n nn.balance = 0;\n };\n\n var insertAdjustBalance = function (root, dir) {\n var otherDir = dir === \"left\" ? \"right\" : \"left\";\n\n var n = root[dir];\n var bal = dir === \"right\" ? -1 : +1;\n\n if (n.balance === bal) {\n root.balance = n.balance = 0;\n root = rotateSingle(root, otherDir, dir);\n } else {\n adjustBalance(root, dir, bal);\n root = rotateDouble(root, otherDir, dir);\n }\n\n return root;\n\n };\n\n var removeAdjustBalance = function (root, dir, done) {\n var otherDir = dir === \"left\" ? \"right\" : \"left\";\n var n = root[otherDir];\n var bal = dir === \"right\" ? -1 : 1;\n if (n.balance === -bal) {\n root.balance = n.balance = 0;\n root = rotateSingle(root, dir, otherDir);\n } else if (n.balance === bal) {\n adjustBalance(root, otherDir, -bal);\n root = rotateDouble(root, dir, otherDir);\n } else { /* n.balance == 0 */\n root.balance = -bal;\n n.balance = bal;\n root = rotateSingle(root, dir, otherDir);\n done.done = true;\n }\n return root;\n };\n\n function insert(tree, data, cmp) {\n /* Empty tree case */\n var root = tree.__root;\n if (root === null || root === undefined) {\n tree.__root = makeNode(data);\n } else {\n var it = root, upd = [], up = [], top = 0, dir;\n while (true) {\n dir = upd[top] = cmp(data, it.data) === -1 ? \"left\" : \"right\";\n up[top++] = it;\n if (!it[dir]) {\n it[dir] = makeNode(data);\n break;\n }\n it = it[dir];\n }\n if (!it[dir]) {\n return null;\n }\n while (--top >= 0) {\n up[top].balance += upd[top] === \"right\" ? -1 : 1;\n if (up[top].balance === 0) {\n break;\n } else if (abs(up[top].balance) > 1) {\n up[top] = insertAdjustBalance(up[top], upd[top]);\n if (top !== 0) {\n up[top - 1][upd[top - 1]] = up[top];\n } else {\n tree.__root = up[0];\n }\n break;\n }\n }\n }\n }\n\n function remove(tree, data, cmp) {\n var root = tree.__root;\n if (root !== null && root !== undefined) {\n var it = root, top = 0, up = [], upd = [], done = {done: false}, dir, compare;\n while (true) {\n if (!it) {\n return;\n } else if ((compare = cmp(data, it.data)) === 0) {\n break;\n }\n dir = upd[top] = compare === -1 ? \"left\" : \"right\";\n up[top++] = it;\n it = it[dir];\n }\n var l = it.left, r = it.right;\n if (!l || !r) {\n dir = !l ? \"right\" : \"left\";\n if (top !== 0) {\n up[top - 1][upd[top - 1]] = it[dir];\n } else {\n tree.__root = it[dir];\n }\n } else {\n var heir = l;\n upd[top] = \"left\";\n up[top++] = it;\n while (heir.right) {\n upd[top] = \"right\";\n up[top++] = heir;\n heir = heir.right;\n }\n it.data = heir.data;\n up[top - 1][up[top - 1] === it ? \"left\" : \"right\"] = heir.left;\n }\n while (--top >= 0 && !done.done) {\n up[top].balance += upd[top] === \"left\" ? -1 : +1;\n if (abs(up[top].balance) === 1) {\n break;\n } else if (abs(up[top].balance) > 1) {\n up[top] = removeAdjustBalance(up[top], upd[top], done);\n if (top !== 0) {\n up[top - 1][upd[top - 1]] = up[top];\n } else {\n tree.__root = up[0];\n }\n }\n }\n }\n }\n\n\n return Tree.extend({\n instance: {\n\n insert: function (data) {\n insert(this, data, this.compare);\n },\n\n\n remove: function (data) {\n remove(this, data, this.compare);\n },\n\n __printNode: function (node, level) {\n var str = [];\n if (!node) {\n str.push(multiply('\\t', level));\n str.push(\"~\");\n console.log(str.join(\"\"));\n } else {\n this.__printNode(node.right, level + 1);\n str.push(multiply('\\t', level));\n str.push(node.data + \":\" + node.balance + \"\\n\");\n console.log(str.join(\"\"));\n this.__printNode(node.left, level + 1);\n }\n }\n\n }\n });\n }());\n\n var AnderssonTree = (function () {\n\n var nil = {level: 0, data: null};\n\n function makeNode(data, level) {\n return {\n data: data,\n level: level,\n left: nil,\n right: nil\n };\n }\n\n function skew(root) {\n if (root.level !== 0 && root.left.level === root.level) {\n var save = root.left;\n root.left = save.right;\n save.right = root;\n root = save;\n }\n return root;\n }\n\n function split(root) {\n if (root.level !== 0 && root.right.right.level === root.level) {\n var save = root.right;\n root.right = save.left;\n save.left = root;\n root = save;\n root.level++;\n }\n return root;\n }\n\n function insert(root, data, compare) {\n if (root === nil) {\n root = makeNode(data, 1);\n }\n else {\n var dir = compare(data, root.data) === -1 ? \"left\" : \"right\";\n root[dir] = insert(root[dir], data, compare);\n root = skew(root);\n root = split(root);\n }\n return root;\n }\n\n var remove = function (root, data, compare) {\n var rLeft, rRight;\n if (root !== nil) {\n var cmp = compare(data, root.data);\n if (cmp === 0) {\n rLeft = root.left, rRight = root.right;\n if (rLeft !== nil && rRight !== nil) {\n var heir = rLeft;\n while (heir.right !== nil) {\n heir = heir.right;\n }\n root.data = heir.data;\n root.left = remove(rLeft, heir.data, compare);\n } else {\n root = root[rLeft === nil ? \"right\" : \"left\"];\n }\n } else {\n var dir = cmp === -1 ? \"left\" : \"right\";\n root[dir] = remove(root[dir], data, compare);\n }\n }\n if (root !== nil) {\n var rLevel = root.level;\n var rLeftLevel = root.left.level, rRightLevel = root.right.level;\n if (rLeftLevel < rLevel - 1 || rRightLevel < rLevel - 1) {\n if (rRightLevel > --root.level) {\n root.right.level = root.level;\n }\n root = skew(root);\n root = split(root);\n }\n }\n return root;\n };\n\n return Tree.extend({\n\n instance: {\n\n isEmpty: function () {\n return this.__root === nil || this._super(arguments);\n },\n\n insert: function (data) {\n if (!this.__root) {\n this.__root = nil;\n }\n this.__root = insert(this.__root, data, this.compare);\n },\n\n remove: function (data) {\n this.__root = remove(this.__root, data, this.compare);\n },\n\n\n traverseWithCondition: function (node) {\n var cont = true;\n if (node !== nil) {\n return this._super(arguments);\n }\n return cont;\n },\n\n\n traverse: function (node) {\n if (node !== nil) {\n this._super(arguments);\n }\n },\n\n contains: function () {\n if (this.__root !== nil) {\n return this._super(arguments);\n }\n return false;\n },\n\n __printNode: function (node, level) {\n var str = [];\n if (!node || !node.data) {\n str.push(multiply('\\t', level));\n str.push(\"~\");\n console.log(str.join(\"\"));\n } else {\n this.__printNode(node.right, level + 1);\n str.push(multiply('\\t', level));\n str.push(node.data + \":\" + node.level + \"\\n\");\n console.log(str.join(\"\"));\n this.__printNode(node.left, level + 1);\n }\n }\n\n }\n\n });\n }());\n\n var BinaryTree = Tree.extend({\n instance: {\n insert: function (data) {\n if (!this.__root) {\n this.__root = {\n data: data,\n parent: null,\n left: null,\n right: null\n };\n return this.__root;\n }\n var compare = this.compare;\n var root = this.__root;\n while (root !== null) {\n var cmp = compare(data, root.data);\n if (cmp) {\n var leaf = (cmp === -1) ? \"left\" : \"right\";\n var next = root[leaf];\n if (!next) {\n return (root[leaf] = {data: data, parent: root, left: null, right: null});\n } else {\n root = next;\n }\n } else {\n return;\n }\n }\n },\n\n remove: function (data) {\n if (this.__root !== null) {\n var head = {right: this.__root}, it = head;\n var p, f = null;\n var dir = \"right\";\n while (it[dir] !== null) {\n p = it;\n it = it[dir];\n var cmp = this.compare(data, it.data);\n if (!cmp) {\n f = it;\n }\n dir = (cmp === -1 ? \"left\" : \"right\");\n }\n if (f !== null) {\n f.data = it.data;\n p[p.right === it ? \"right\" : \"left\"] = it[it.left === null ? \"right\" : \"left\"];\n }\n this.__root = head.right;\n }\n\n }\n }\n });\n\n var RedBlackTree = (function () {\n var RED = \"RED\", BLACK = \"BLACK\";\n\n var isRed = function (node) {\n return node !== null && node.red;\n };\n\n var makeNode = function (data) {\n return {\n data: data,\n red: true,\n left: null,\n right: null\n };\n };\n\n var insert = function (root, data, compare) {\n if (!root) {\n return makeNode(data);\n\n } else {\n var cmp = compare(data, root.data);\n if (cmp) {\n var dir = cmp === -1 ? \"left\" : \"right\";\n var otherDir = dir === \"left\" ? \"right\" : \"left\";\n root[dir] = insert(root[dir], data, compare);\n var node = root[dir];\n\n if (isRed(node)) {\n\n var sibling = root[otherDir];\n if (isRed(sibling)) {\n /* Case 1 */\n root.red = true;\n node.red = false;\n sibling.red = false;\n } else {\n\n if (isRed(node[dir])) {\n\n root = rotateSingle(root, otherDir);\n } else if (isRed(node[otherDir])) {\n\n root = rotateDouble(root, otherDir);\n }\n }\n\n }\n }\n }\n return root;\n };\n\n var rotateSingle = function (root, dir) {\n var otherDir = dir === \"left\" ? \"right\" : \"left\";\n var save = root[otherDir];\n root[otherDir] = save[dir];\n save[dir] = root;\n root.red = true;\n save.red = false;\n return save;\n };\n\n var rotateDouble = function (root, dir) {\n var otherDir = dir === \"left\" ? \"right\" : \"left\";\n root[otherDir] = rotateSingle(root[otherDir], otherDir);\n return rotateSingle(root, dir);\n };\n\n\n var remove = function (root, data, done, compare) {\n if (!root) {\n done.done = true;\n } else {\n var dir;\n if (compare(data, root.data) === 0) {\n if (!root.left || !root.right) {\n var save = root[!root.left ? \"right\" : \"left\"];\n /* Case 0 */\n if (isRed(root)) {\n done.done = true;\n } else if (isRed(save)) {\n save.red = false;\n done.done = true;\n }\n return save;\n }\n else {\n var heir = root.right, p;\n while (heir.left !== null) {\n p = heir;\n heir = heir.left;\n }\n if (p) {\n p.left = null;\n }\n root.data = heir.data;\n data = heir.data;\n }\n }\n dir = compare(data, root.data) === -1 ? \"left\" : \"right\";\n root[dir] = remove(root[dir], data, done, compare);\n if (!done.done) {\n root = removeBalance(root, dir, done);\n }\n }\n return root;\n };\n\n var removeBalance = function (root, dir, done) {\n var notDir = dir === \"left\" ? \"right\" : \"left\";\n var p = root, s = p[notDir];\n if (isRed(s)) {\n root = rotateSingle(root, dir);\n s = p[notDir];\n }\n if (s !== null) {\n if (!isRed(s.left) && !isRed(s.right)) {\n if (isRed(p)) {\n done.done = true;\n }\n p.red = 0;\n s.red = 1;\n } else {\n var save = p.red, newRoot = ( root === p );\n p = (isRed(s[notDir]) ? rotateSingle : rotateDouble)(p, dir);\n p.red = save;\n p.left.red = p.right.red = 0;\n if (newRoot) {\n root = p;\n } else {\n root[dir] = p;\n }\n done.done = true;\n }\n }\n return root;\n };\n\n return Tree.extend({\n instance: {\n insert: function (data) {\n this.__root = insert(this.__root, data, this.compare);\n this.__root.red = false;\n },\n\n remove: function (data) {\n var done = {done: false};\n var root = remove(this.__root, data, done, this.compare);\n if (root !== null) {\n root.red = 0;\n }\n this.__root = root;\n return data;\n },\n\n\n __printNode: function (node, level) {\n var str = [];\n if (!node) {\n str.push(multiply('\\t', level));\n str.push(\"~\");\n console.log(str.join(\"\"));\n } else {\n this.__printNode(node.right, level + 1);\n str.push(multiply('\\t', level));\n str.push((node.red ? RED : BLACK) + \":\" + node.data + \"\\n\");\n console.log(str.join(\"\"));\n this.__printNode(node.left, level + 1);\n }\n }\n\n }\n });\n\n }());\n\n\n return {\n Tree: Tree,\n AVLTree: AVLTree,\n AnderssonTree: AnderssonTree,\n BinaryTree: BinaryTree,\n RedBlackTree: RedBlackTree,\n IN_ORDER: Tree.IN_ORDER,\n PRE_ORDER: Tree.PRE_ORDER,\n POST_ORDER: Tree.POST_ORDER,\n REVERSE_ORDER: Tree.REVERSE_ORDER\n\n };\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineLeafy(require(\"extended\")()\n .register(\"declare\", require(\"declare.js\"))\n .register(require(\"is-extended\"))\n .register(require(\"array-extended\"))\n .register(require(\"string-extended\"))\n );\n\n }\n } else if (\"function\" === typeof define) {\n define([\"extended\", \"declare.js\", \"is-extended\", \"array-extended\", \"string-extended\"], function (extended, declare, is, array, string) {\n return defineLeafy(extended()\n .register(\"declare\", declare)\n .register(is)\n .register(array)\n .register(string)\n );\n });\n } else {\n this.leafy = defineLeafy(this.extended()\n .register(\"declare\", this.declare)\n .register(this.isExtended)\n .register(this.arrayExtended)\n .register(this.stringExtended));\n }\n\n}).call(this);\n\n\n\n\n\n\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * @license\n * Lodash (Custom Build) \n * Build: `lodash core -o ./dist/lodash.core.js`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Error message constants. */\n var FUNC_ERROR_TEXT = 'Expected a function';\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_PARTIAL_FLAG = 32;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n stringTag = '[object String]';\n\n /** Used to match HTML entities and HTML characters. */\n var reUnescapedHtml = /[&<>\"']/g,\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n array.push.apply(array, values);\n return array;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return baseMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /*--------------------------------------------------------------------------*/\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n objectProto = Object.prototype;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Built-in value references. */\n var objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeIsFinite = root.isFinite,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n return value instanceof LodashWrapper\n ? value\n : new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n }\n\n LodashWrapper.prototype = baseCreate(lodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n object[key] = value;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !false)\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return baseFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n return objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n var baseIsArguments = noop;\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : baseGetTag(object),\n othTag = othIsArr ? arrayTag : baseGetTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n stack || (stack = []);\n var objStack = find(stack, function(entry) {\n return entry[0] == object;\n });\n var othStack = find(stack, function(entry) {\n return entry[0] == other;\n });\n if (objStack && othStack) {\n return objStack[1] == other;\n }\n stack.push([object, other]);\n stack.push([other, object]);\n if (isSameTag && !objIsObj) {\n var result = (objIsArr)\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n stack.pop();\n return result;\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n var result = equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n stack.pop();\n return result;\n }\n }\n if (!isSameTag) {\n return false;\n }\n var result = equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n stack.pop();\n return result;\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(func) {\n if (typeof func == 'function') {\n return func;\n }\n if (func == null) {\n return identity;\n }\n return (typeof func == 'object' ? baseMatches : baseProperty)(func);\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var props = nativeKeys(source);\n return function(object) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length];\n if (!(key in object &&\n baseIsEqual(source[key], object[key], COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG)\n )) {\n return false;\n }\n }\n return true;\n };\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, props) {\n object = Object(object);\n return reduce(props, function(result, key) {\n if (key in object) {\n result[key] = object[key];\n }\n return result;\n }, {});\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source) {\n return baseSlice(source, 0, source.length);\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n return reduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = false;\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = false;\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return fn.apply(isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? [] : undefined;\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n var compared;\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!baseSome(other, function(othValue, othIndex) {\n if (!indexOf(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n var compared;\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return func.apply(this, otherArgs);\n };\n }\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = identity;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n return baseFilter(array, Boolean);\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (typeof fromIndex == 'number') {\n fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : fromIndex;\n } else {\n fromIndex = 0;\n }\n var index = (fromIndex || 0) - 1,\n isReflexive = value === value;\n\n while (++index < length) {\n var other = array[index];\n if ((isReflexive ? other === value : other !== other)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n start = start == null ? 0 : +start;\n end = end === undefined ? length : +end;\n return length ? baseSlice(array, start, end) : [];\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n predicate = guard ? undefined : predicate;\n return baseEvery(collection, baseIteratee(predicate));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n return baseFilter(collection, baseIteratee(predicate));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n return baseEach(collection, baseIteratee(iteratee));\n }\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n return baseMap(collection, baseIteratee(iteratee));\n }\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n return baseReduce(collection, baseIteratee(iteratee), accumulator, arguments.length < 3, baseEach);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n collection = isArrayLike(collection) ? collection : nativeKeys(collection);\n return collection.length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n predicate = guard ? undefined : predicate;\n return baseSome(collection, baseIteratee(predicate));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n function sortBy(collection, iteratee) {\n var index = 0;\n iteratee = baseIteratee(iteratee);\n\n return baseMap(baseMap(collection, function(value, key, collection) {\n return { 'value': value, 'index': index++, 'criteria': iteratee(value, key, collection) };\n }).sort(function(object, other) {\n return compareAscending(object.criteria, other.criteria) || (object.index - other.index);\n }), baseProperty('value'));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n return createPartial(func, WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG, thisArg, partials);\n });\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n if (!isObject(value)) {\n return value;\n }\n return isArray(value) ? copyArray(value) : copyObject(value, nativeKeys(value));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = baseIsDate;\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (isArrayLike(value) &&\n (isArray(value) || isString(value) ||\n isFunction(value.splice) || isArguments(value))) {\n return !value.length;\n }\n return !nativeKeys(value).length;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = baseIsRegExp;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!isArrayLike(value)) {\n return values(value);\n }\n return value.length ? copyArray(value) : [];\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n var toInteger = Number;\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n var toNumber = Number;\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n if (typeof value == 'string') {\n return value;\n }\n return value == null ? '' : (value + '');\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n copyObject(source, nativeKeys(source), object);\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, nativeKeysIn(source), object);\n });\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : assign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasOwnProperty.call(object, path);\n }\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n var keys = nativeKeys;\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n var keysIn = nativeKeysIn;\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n var value = object == null ? undefined : object[path];\n if (value === undefined) {\n value = defaultValue;\n }\n return isFunction(value) ? value.call(object) : value;\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\n function identity(value) {\n return value;\n }\n\n /**\n * Creates a function that invokes `func` with the arguments of the created\n * function. If `func` is a property name, the created function returns the\n * property value for a given element. If `func` is an array or object, the\n * created function returns `true` for elements that contain the equivalent\n * source properties, otherwise it returns `false`.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Util\n * @param {*} [func=_.identity] The value to convert to a callback.\n * @returns {Function} Returns the callback.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));\n * // => [{ 'user': 'barney', 'age': 36, 'active': true }]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, _.iteratee(['user', 'fred']));\n * // => [{ 'user': 'fred', 'age': 40 }]\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, _.iteratee('user'));\n * // => ['barney', 'fred']\n *\n * // Create custom iteratee shorthands.\n * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {\n * return !_.isRegExp(func) ? iteratee(func) : function(string) {\n * return func.test(string);\n * };\n * });\n *\n * _.filter(['abc', 'def'], /ef/);\n * // => ['def']\n */\n var iteratee = baseIteratee;\n\n /**\n * Creates a function that performs a partial deep comparison between a given\n * object and `source`, returning `true` if the given object has equivalent\n * property values, else `false`.\n *\n * **Note:** The created function is equivalent to `_.isMatch` with `source`\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));\n * // => [{ 'a': 4, 'b': 5, 'c': 6 }]\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\n function matches(source) {\n return baseMatches(assign({}, source));\n }\n\n /**\n * Adds all own enumerable string keyed function properties of a source\n * object to the destination object. If `object` is a function, then methods\n * are added to its prototype as well.\n *\n * **Note:** Use `_.runInContext` to create a pristine `lodash` function to\n * avoid conflicts caused by modifying the original.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Function|Object} [object=lodash] The destination object.\n * @param {Object} source The object of functions to add.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.chain=true] Specify whether mixins are chainable.\n * @returns {Function|Object} Returns `object`.\n * @example\n *\n * function vowels(string) {\n * return _.filter(string, function(v) {\n * return /[aeiou]/i.test(v);\n * });\n * }\n *\n * _.mixin({ 'vowels': vowels });\n * _.vowels('fred');\n * // => ['e']\n *\n * _('fred').vowels().value();\n * // => ['e']\n *\n * _.mixin({ 'vowels': vowels }, { 'chain': false });\n * _('fred').vowels();\n * // => ['e']\n */\n function mixin(object, source, options) {\n var props = keys(source),\n methodNames = baseFunctions(source, props);\n\n if (options == null &&\n !(isObject(source) && (methodNames.length || !props.length))) {\n options = source;\n source = object;\n object = this;\n methodNames = baseFunctions(source, keys(source));\n }\n var chain = !(isObject(options) && 'chain' in options) || !!options.chain,\n isFunc = isFunction(object);\n\n baseEach(methodNames, function(methodName) {\n var func = source[methodName];\n object[methodName] = func;\n if (isFunc) {\n object.prototype[methodName] = function() {\n var chainAll = this.__chain__;\n if (chain || chainAll) {\n var result = object(this.__wrapped__),\n actions = result.__actions__ = copyArray(this.__actions__);\n\n actions.push({ 'func': func, 'args': arguments, 'thisArg': object });\n result.__chain__ = chainAll;\n return result;\n }\n return func.apply(object, arrayPush([this.value()], arguments));\n };\n }\n });\n\n return object;\n }\n\n /**\n * Reverts the `_` variable to its previous value and returns a reference to\n * the `lodash` function.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @returns {Function} Returns the `lodash` function.\n * @example\n *\n * var lodash = _.noConflict();\n */\n function noConflict() {\n if (root._ === this) {\n root._ = oldDash;\n }\n return this;\n }\n\n /**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\n function noop() {\n // No operation performed.\n }\n\n /**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\n function uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\n function max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n }\n\n /**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\n function min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n }\n\n /*------------------------------------------------------------------------*/\n\n // Add methods that return wrapped values in chain sequences.\n lodash.assignIn = assignIn;\n lodash.before = before;\n lodash.bind = bind;\n lodash.chain = chain;\n lodash.compact = compact;\n lodash.concat = concat;\n lodash.create = create;\n lodash.defaults = defaults;\n lodash.defer = defer;\n lodash.delay = delay;\n lodash.filter = filter;\n lodash.flatten = flatten;\n lodash.flattenDeep = flattenDeep;\n lodash.iteratee = iteratee;\n lodash.keys = keys;\n lodash.map = map;\n lodash.matches = matches;\n lodash.mixin = mixin;\n lodash.negate = negate;\n lodash.once = once;\n lodash.pick = pick;\n lodash.slice = slice;\n lodash.sortBy = sortBy;\n lodash.tap = tap;\n lodash.thru = thru;\n lodash.toArray = toArray;\n lodash.values = values;\n\n // Add aliases.\n lodash.extend = assignIn;\n\n // Add methods to `lodash.prototype`.\n mixin(lodash, lodash);\n\n /*------------------------------------------------------------------------*/\n\n // Add methods that return unwrapped values in chain sequences.\n lodash.clone = clone;\n lodash.escape = escape;\n lodash.every = every;\n lodash.find = find;\n lodash.forEach = forEach;\n lodash.has = has;\n lodash.head = head;\n lodash.identity = identity;\n lodash.indexOf = indexOf;\n lodash.isArguments = isArguments;\n lodash.isArray = isArray;\n lodash.isBoolean = isBoolean;\n lodash.isDate = isDate;\n lodash.isEmpty = isEmpty;\n lodash.isEqual = isEqual;\n lodash.isFinite = isFinite;\n lodash.isFunction = isFunction;\n lodash.isNaN = isNaN;\n lodash.isNull = isNull;\n lodash.isNumber = isNumber;\n lodash.isObject = isObject;\n lodash.isRegExp = isRegExp;\n lodash.isString = isString;\n lodash.isUndefined = isUndefined;\n lodash.last = last;\n lodash.max = max;\n lodash.min = min;\n lodash.noConflict = noConflict;\n lodash.noop = noop;\n lodash.reduce = reduce;\n lodash.result = result;\n lodash.size = size;\n lodash.some = some;\n lodash.uniqueId = uniqueId;\n\n // Add aliases.\n lodash.each = forEach;\n lodash.first = head;\n\n mixin(lodash, (function() {\n var source = {};\n baseForOwn(lodash, function(func, methodName) {\n if (!hasOwnProperty.call(lodash.prototype, methodName)) {\n source[methodName] = func;\n }\n });\n return source;\n }()), { 'chain': false });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The semantic version number.\n *\n * @static\n * @memberOf _\n * @type {string}\n */\n lodash.VERSION = VERSION;\n\n // Add `Array` methods to `lodash.prototype`.\n baseEach(['pop', 'join', 'replace', 'reverse', 'split', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) {\n var func = (/^(?:replace|split)$/.test(methodName) ? String.prototype : arrayProto)[methodName],\n chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru',\n retUnwrapped = /^(?:pop|join|replace|shift)$/.test(methodName);\n\n lodash.prototype[methodName] = function() {\n var args = arguments;\n if (retUnwrapped && !this.__chain__) {\n var value = this.value();\n return func.apply(isArray(value) ? value : [], args);\n }\n return this[chainName](function(value) {\n return func.apply(isArray(value) ? value : [], args);\n });\n };\n });\n\n // Add chain sequence methods to the `lodash` wrapper.\n lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;\n\n /*--------------------------------------------------------------------------*/\n\n // Some AMD build optimizers, like r.js, check for condition patterns like:\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n // Expose Lodash on the global object to prevent errors when Lodash is\n // loaded by a script tag in the presence of an AMD loader.\n // See http://requirejs.org/docs/errors.html#mismatch for more details.\n // Use `_.noConflict` to remove Lodash from the global object.\n root._ = lodash;\n\n // Define as an anonymous module so, through path mapping, it can be\n // referenced as the \"underscore\" module.\n define(function() {\n return lodash;\n });\n }\n // Check for `exports` after `define` in case a build optimizer adds it.\n else if (freeModule) {\n // Export for Node.js.\n (freeModule.exports = lodash)._ = lodash;\n // Export for CommonJS support.\n freeExports._ = lodash;\n }\n else {\n // Export to the global object.\n root._ = lodash;\n }\n}.call(this));\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانفي',\n 'فيفري',\n 'مارس',\n 'أفريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Libya) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays:\n 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone:\n 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort:\n 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone:\n 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n w: 'седмица',\n ww: '%d седмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bnBd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort:\n 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays:\n 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex =\n /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone:\n 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = {\n format: 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n standalone:\n 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(\n '_'\n ),\n },\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex =\n /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex:\n /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex:\n /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays:\n 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays:\n 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl:\n 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl:\n 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return esMx;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return es;\n\n})));\n","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort:\n 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays:\n 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort:\n 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰',\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort:\n 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast =\n 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort:\n 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays:\n 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\n","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays:\n 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsStrictRegex =\n /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort:\n 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone:\n 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone:\n 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '૧',\n 2: '૨',\n 3: '૩',\n 4: '૪',\n 5: '૫',\n 6: '૬',\n 7: '૭',\n 8: '૮',\n 9: '૯',\n 0: '૦',\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0',\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n '_'\n ),\n monthsShort:\n 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return gu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort:\n 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse:\n /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n },\n monthsParse = [\n /^जन/i,\n /^फ़र|फर/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सितं|सित/i,\n /^अक्टू/i,\n /^नव|नवं/i,\n /^दिसं|दिस/i,\n ],\n shortMonthsParse = [\n /^जन/i,\n /^फ़र/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सित/i,\n /^अक्टू/i,\n /^नव/i,\n /^दिस/i,\n ];\n\n var hi = moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n '_'\n ),\n standalone:\n 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n '_'\n ),\n },\n monthsShort:\n 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: shortMonthsParse,\n\n monthsRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsShortRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsStrictRegex:\n /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n monthsShortStrictRegex:\n /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return hi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone:\n 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort:\n 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings =\n 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone:\n 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays:\n 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays:\n 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n","//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone:\n 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\n isFormat: /(წინა|შემდეგ)/,\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(\n /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,\n function ($0, $1, $2) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n }\n );\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០',\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort:\n 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return km;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: '೭',\n 8: '೮',\n 9: '೯',\n 0: '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort:\n 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays:\n 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort:\n 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n var ky = moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ky;\n\n})));\n","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort:\n 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone:\n 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone:\n 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays:\n 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan : https://github.com/johnideal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort:\n 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort:\n 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n","//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n '_'\n ),\n monthsShort:\n '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n return mn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort:\n 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays:\n 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀',\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n","//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n w: 'en uke',\n ww: '%d uker',\n M: 'en måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort:\n 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nlBe;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone:\n 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort:\n 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative =\n 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective =\n 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n '_'\n ),\n monthsParse = [\n /^sty/i,\n /^lut/i,\n /^mar/i,\n /^kwi/i,\n /^maj/i,\n /^cze/i,\n /^lip/i,\n /^sie/i,\n /^wrz/i,\n /^paź/i,\n /^lis/i,\n /^gru/i,\n ];\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays:\n 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate,\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida',\n });\n\n return ptBr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort:\n 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone:\n 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone:\n 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone:\n 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex:\n /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex:\n /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделя',\n ww: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort:\n 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays:\n 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays:\n 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months =\n 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једног минута'],\n mm: ['минут', 'минута', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n d: ['један дан', 'једног дана'],\n dd: ['дан', 'дана', 'дана'],\n M: ['један месец', 'једног месеца'],\n MM: ['месец', 'месеца', 'месеци'],\n y: ['једну годину', 'једне године'],\n yy: ['годину', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'једна година';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n\n return number + ' ' + word;\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort:\n 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n d: ['jedan dan', 'jednog dana'],\n dd: ['dan', 'dana', 'dana'],\n M: ['jedan mesec', 'jednog meseca'],\n MM: ['mesec', 'meseca', 'meseci'],\n y: ['jednu godinu', 'jedne godine'],\n yy: ['godinu', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'jedna godina';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'godinu') {\n return number + ' godina';\n }\n\n return number + ' ' + word;\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays:\n 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays:\n 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort:\n 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays:\n 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort:\n 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n '_'\n ),\n standalone:\n 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort:\n 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort:\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort:\n 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n monthsShort:\n 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort:\n 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative:\n 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative:\n 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive:\n 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone:\n 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays:\n 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort:\n 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort:\n 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhTw;\n\n})));\n","var map = {\n\t\"./af\": \"./build/cht-core-4-6/node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./build/cht-core-4-6/node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./build/cht-core-4-6/node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./build/cht-core-4-6/node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./build/cht-core-4-6/node_modules/moment/locale/az.js\",\n\t\"./be\": \"./build/cht-core-4-6/node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./build/cht-core-4-6/node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./build/cht-core-4-6/node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./build/cht-core-4-6/node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./build/cht-core-4-6/node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./build/cht-core-4-6/node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./build/cht-core-4-6/node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./build/cht-core-4-6/node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./build/cht-core-4-6/node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./build/cht-core-4-6/node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./build/cht-core-4-6/node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./build/cht-core-4-6/node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./build/cht-core-4-6/node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./build/cht-core-4-6/node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./build/cht-core-4-6/node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./build/cht-core-4-6/node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./build/cht-core-4-6/node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./build/cht-core-4-6/node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./build/cht-core-4-6/node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./build/cht-core-4-6/node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./build/cht-core-4-6/node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./build/cht-core-4-6/node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./build/cht-core-4-6/node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./build/cht-core-4-6/node_modules/moment/locale/da.js\",\n\t\"./de\": \"./build/cht-core-4-6/node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./build/cht-core-4-6/node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./build/cht-core-4-6/node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./build/cht-core-4-6/node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./build/cht-core-4-6/node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./build/cht-core-4-6/node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./build/cht-core-4-6/node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./build/cht-core-4-6/node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./build/cht-core-4-6/node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./build/cht-core-4-6/node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./build/cht-core-4-6/node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./build/cht-core-4-6/node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./build/cht-core-4-6/node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./build/cht-core-4-6/node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./build/cht-core-4-6/node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./build/cht-core-4-6/node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./build/cht-core-4-6/node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./build/cht-core-4-6/node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./build/cht-core-4-6/node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./build/cht-core-4-6/node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./build/cht-core-4-6/node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./build/cht-core-4-6/node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./build/cht-core-4-6/node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./build/cht-core-4-6/node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./build/cht-core-4-6/node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./build/cht-core-4-6/node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./build/cht-core-4-6/node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./build/cht-core-4-6/node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./build/cht-core-4-6/node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./build/cht-core-4-6/node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./build/cht-core-4-6/node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./build/cht-core-4-6/node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./build/cht-core-4-6/node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./build/cht-core-4-6/node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./build/cht-core-4-6/node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./build/cht-core-4-6/node_modules/moment/locale/es.js\",\n\t\"./et\": \"./build/cht-core-4-6/node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./build/cht-core-4-6/node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./build/cht-core-4-6/node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./build/cht-core-4-6/node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./build/cht-core-4-6/node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./build/cht-core-4-6/node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./build/cht-core-4-6/node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./build/cht-core-4-6/node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./build/cht-core-4-6/node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./build/cht-core-4-6/node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./build/cht-core-4-6/node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./build/cht-core-4-6/node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./build/cht-core-4-6/node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./build/cht-core-4-6/node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./build/cht-core-4-6/node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./build/cht-core-4-6/node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./build/cht-core-4-6/node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./build/cht-core-4-6/node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./build/cht-core-4-6/node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./build/cht-core-4-6/node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./build/cht-core-4-6/node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./build/cht-core-4-6/node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./build/cht-core-4-6/node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./build/cht-core-4-6/node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./build/cht-core-4-6/node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./build/cht-core-4-6/node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./build/cht-core-4-6/node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./build/cht-core-4-6/node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./build/cht-core-4-6/node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./build/cht-core-4-6/node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./build/cht-core-4-6/node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./build/cht-core-4-6/node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./build/cht-core-4-6/node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./build/cht-core-4-6/node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./build/cht-core-4-6/node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./build/cht-core-4-6/node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./build/cht-core-4-6/node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./build/cht-core-4-6/node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./build/cht-core-4-6/node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./build/cht-core-4-6/node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./build/cht-core-4-6/node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./build/cht-core-4-6/node_modules/moment/locale/id.js\",\n\t\"./is\": \"./build/cht-core-4-6/node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./build/cht-core-4-6/node_modules/moment/locale/is.js\",\n\t\"./it\": \"./build/cht-core-4-6/node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./build/cht-core-4-6/node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./build/cht-core-4-6/node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./build/cht-core-4-6/node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./build/cht-core-4-6/node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./build/cht-core-4-6/node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./build/cht-core-4-6/node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./build/cht-core-4-6/node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./build/cht-core-4-6/node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./build/cht-core-4-6/node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./build/cht-core-4-6/node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./build/cht-core-4-6/node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./build/cht-core-4-6/node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./build/cht-core-4-6/node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./build/cht-core-4-6/node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./build/cht-core-4-6/node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./build/cht-core-4-6/node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./build/cht-core-4-6/node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./build/cht-core-4-6/node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./build/cht-core-4-6/node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./build/cht-core-4-6/node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./build/cht-core-4-6/node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./build/cht-core-4-6/node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./build/cht-core-4-6/node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./build/cht-core-4-6/node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./build/cht-core-4-6/node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./build/cht-core-4-6/node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./build/cht-core-4-6/node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./build/cht-core-4-6/node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./build/cht-core-4-6/node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./build/cht-core-4-6/node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./build/cht-core-4-6/node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./build/cht-core-4-6/node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./build/cht-core-4-6/node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./build/cht-core-4-6/node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./build/cht-core-4-6/node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./build/cht-core-4-6/node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./build/cht-core-4-6/node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./build/cht-core-4-6/node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./build/cht-core-4-6/node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./build/cht-core-4-6/node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./build/cht-core-4-6/node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./build/cht-core-4-6/node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./build/cht-core-4-6/node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./build/cht-core-4-6/node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./build/cht-core-4-6/node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./build/cht-core-4-6/node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./build/cht-core-4-6/node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./build/cht-core-4-6/node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./build/cht-core-4-6/node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./build/cht-core-4-6/node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./build/cht-core-4-6/node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./build/cht-core-4-6/node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./build/cht-core-4-6/node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./build/cht-core-4-6/node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./build/cht-core-4-6/node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./build/cht-core-4-6/node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./build/cht-core-4-6/node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./build/cht-core-4-6/node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./build/cht-core-4-6/node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./build/cht-core-4-6/node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./build/cht-core-4-6/node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./build/cht-core-4-6/node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./build/cht-core-4-6/node_modules/moment/locale/se.js\",\n\t\"./si\": \"./build/cht-core-4-6/node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./build/cht-core-4-6/node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./build/cht-core-4-6/node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./build/cht-core-4-6/node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./build/cht-core-4-6/node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./build/cht-core-4-6/node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./build/cht-core-4-6/node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./build/cht-core-4-6/node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./build/cht-core-4-6/node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./build/cht-core-4-6/node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./build/cht-core-4-6/node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./build/cht-core-4-6/node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./build/cht-core-4-6/node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./build/cht-core-4-6/node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./build/cht-core-4-6/node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./build/cht-core-4-6/node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./build/cht-core-4-6/node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./build/cht-core-4-6/node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./build/cht-core-4-6/node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./build/cht-core-4-6/node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./build/cht-core-4-6/node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./build/cht-core-4-6/node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./build/cht-core-4-6/node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./build/cht-core-4-6/node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./build/cht-core-4-6/node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./build/cht-core-4-6/node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./build/cht-core-4-6/node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./build/cht-core-4-6/node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./build/cht-core-4-6/node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./build/cht-core-4-6/node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./build/cht-core-4-6/node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./build/cht-core-4-6/node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./build/cht-core-4-6/node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./build/cht-core-4-6/node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./build/cht-core-4-6/node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./build/cht-core-4-6/node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./build/cht-core-4-6/node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./build/cht-core-4-6/node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./build/cht-core-4-6/node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./build/cht-core-4-6/node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./build/cht-core-4-6/node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./build/cht-core-4-6/node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./build/cht-core-4-6/node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./build/cht-core-4-6/node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./build/cht-core-4-6/node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./build/cht-core-4-6/node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./build/cht-core-4-6/node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./build/cht-core-4-6/node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./build/cht-core-4-6/node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./build/cht-core-4-6/node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./build/cht-core-4-6/node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./build/cht-core-4-6/node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./build/cht-core-4-6/node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./build/cht-core-4-6/node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./build/cht-core-4-6/node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./build/cht-core-4-6/node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./build/cht-core-4-6/node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./build/cht-core-4-6/node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./build/cht-core-4-6/node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./build/cht-core-4-6/node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./build/cht-core-4-6/node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./build/cht-core-4-6/node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","module.exports = exports = require(\"./lib\");","\"use strict\";\nvar extd = require(\"./extended\"),\n declare = extd.declare,\n AVLTree = extd.AVLTree,\n LinkedList = extd.LinkedList,\n isPromise = extd.isPromiseLike,\n EventEmitter = require(\"events\").EventEmitter;\n\n\nvar FactHash = declare({\n instance: {\n constructor: function () {\n this.memory = {};\n this.memoryValues = new LinkedList();\n },\n\n clear: function () {\n this.memoryValues.clear();\n this.memory = {};\n },\n\n\n remove: function (v) {\n var hashCode = v.hashCode,\n memory = this.memory,\n ret = memory[hashCode];\n if (ret) {\n this.memoryValues.remove(ret);\n delete memory[hashCode];\n }\n return ret;\n },\n\n insert: function (insert) {\n var hashCode = insert.hashCode;\n if (hashCode in this.memory) {\n throw new Error(\"Activation already in agenda \" + insert.rule.name + \" agenda\");\n }\n this.memoryValues.push((this.memory[hashCode] = insert));\n }\n }\n});\n\n\nvar DEFAULT_AGENDA_GROUP = \"main\";\nmodule.exports = declare(EventEmitter, {\n\n instance: {\n constructor: function (flow, conflictResolution) {\n this.agendaGroups = {};\n this.agendaGroupStack = [DEFAULT_AGENDA_GROUP];\n this.rules = {};\n this.flow = flow;\n this.comparator = conflictResolution;\n this.setFocus(DEFAULT_AGENDA_GROUP).addAgendaGroup(DEFAULT_AGENDA_GROUP);\n },\n\n addAgendaGroup: function (groupName) {\n if (!extd.has(this.agendaGroups, groupName)) {\n this.agendaGroups[groupName] = new AVLTree({compare: this.comparator});\n }\n },\n\n getAgendaGroup: function (groupName) {\n return this.agendaGroups[groupName || DEFAULT_AGENDA_GROUP];\n },\n\n setFocus: function (agendaGroup) {\n if (agendaGroup !== this.getFocused() && this.agendaGroups[agendaGroup]) {\n this.agendaGroupStack.push(agendaGroup);\n this.emit(\"focused\", agendaGroup);\n }\n return this;\n },\n\n getFocused: function () {\n var ags = this.agendaGroupStack;\n return ags[ags.length - 1];\n },\n\n getFocusedAgenda: function () {\n return this.agendaGroups[this.getFocused()];\n },\n\n register: function (node) {\n var agendaGroup = node.rule.agendaGroup;\n this.rules[node.name] = {tree: new AVLTree({compare: this.comparator}), factTable: new FactHash()};\n if (agendaGroup) {\n this.addAgendaGroup(agendaGroup);\n }\n },\n\n isEmpty: function () {\n var agendaGroupStack = this.agendaGroupStack, changed = false;\n while (this.getFocusedAgenda().isEmpty() && this.getFocused() !== DEFAULT_AGENDA_GROUP) {\n agendaGroupStack.pop();\n changed = true;\n }\n if (changed) {\n this.emit(\"focused\", this.getFocused());\n }\n return this.getFocusedAgenda().isEmpty();\n },\n\n fireNext: function () {\n var agendaGroupStack = this.agendaGroupStack, ret = false;\n while (this.getFocusedAgenda().isEmpty() && this.getFocused() !== DEFAULT_AGENDA_GROUP) {\n agendaGroupStack.pop();\n }\n if (!this.getFocusedAgenda().isEmpty()) {\n var activation = this.pop();\n this.emit(\"fire\", activation.rule.name, activation.match.factHash);\n var fired = activation.rule.fire(this.flow, activation.match);\n if (isPromise(fired)) {\n ret = fired.then(function () {\n //return true if an activation fired\n return true;\n });\n } else {\n ret = true;\n }\n }\n //return false if activation not fired\n return ret;\n },\n\n pop: function () {\n var tree = this.getFocusedAgenda(), root = tree.__root;\n while (root.right) {\n root = root.right;\n }\n var v = root.data;\n tree.remove(v);\n var rule = this.rules[v.name];\n rule.tree.remove(v);\n rule.factTable.remove(v);\n return v;\n },\n\n peek: function () {\n var tree = this.getFocusedAgenda(), root = tree.__root;\n while (root.right) {\n root = root.right;\n }\n return root.data;\n },\n\n modify: function (node, context) {\n this.retract(node, context);\n this.insert(node, context);\n },\n\n retract: function (node, retract) {\n var rule = this.rules[node.name];\n retract.rule = node;\n var activation = rule.factTable.remove(retract);\n if (activation) {\n this.getAgendaGroup(node.rule.agendaGroup).remove(activation);\n rule.tree.remove(activation);\n }\n },\n\n insert: function (node, insert) {\n var rule = this.rules[node.name], nodeRule = node.rule, agendaGroup = nodeRule.agendaGroup;\n rule.tree.insert(insert);\n this.getAgendaGroup(agendaGroup).insert(insert);\n if (nodeRule.autoFocus) {\n this.setFocus(agendaGroup);\n }\n\n rule.factTable.insert(insert);\n },\n\n dispose: function () {\n for (var i in this.agendaGroups) {\n this.agendaGroups[i].clear();\n }\n var rules = this.rules;\n for (i in rules) {\n if (i in rules) {\n rules[i].tree.clear();\n rules[i].factTable.clear();\n\n }\n }\n this.rules = {};\n }\n }\n\n});","/*jshint evil:true*/\n\"use strict\";\nvar extd = require(\"../extended\"),\n forEach = extd.forEach,\n isString = extd.isString;\n\nexports.modifiers = [\"assert\", \"modify\", \"retract\", \"emit\", \"halt\", \"focus\", \"getFacts\"];\n\nvar createFunction = function (body, defined, scope, scopeNames, definedNames) {\n var declares = [];\n forEach(definedNames, function (i) {\n if (body.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= defined.\" + i + \";\");\n }\n });\n\n forEach(scopeNames, function (i) {\n if (body.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= scope.\" + i + \";\");\n }\n });\n body = [\"((function(){\", declares.join(\"\"), \"\\n\\treturn \", body, \"\\n})())\"].join(\"\");\n try {\n return eval(body);\n } catch (e) {\n throw new Error(\"Invalid action : \" + body + \"\\n\" + e.message);\n }\n};\n\nvar createDefined = (function () {\n\n var _createDefined = function (action, defined, scope) {\n if (isString(action)) {\n var declares = [];\n extd(defined).keys().forEach(function (i) {\n if (action.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= defined.\" + i + \";\");\n }\n });\n\n extd(scope).keys().forEach(function (i) {\n if (action.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= function(){var prop = scope.\" + i + \"; return __objToStr__.call(prop) === '[object Function]' ? prop.apply(void 0, arguments) : prop;};\");\n }\n });\n if (declares.length) {\n declares.unshift(\"var __objToStr__ = Object.prototype.toString;\");\n }\n action = [declares.join(\"\"), \"return \", action, \";\"].join(\"\");\n action = new Function(\"defined\", \"scope\", action)(defined, scope);\n }\n var ret = action.hasOwnProperty(\"constructor\") && \"function\" === typeof action.constructor ? action.constructor : function (opts) {\n opts = opts || {};\n for (var i in opts) {\n if (i in action) {\n this[i] = opts[i];\n }\n }\n };\n var proto = ret.prototype;\n for (var i in action) {\n proto[i] = action[i];\n }\n return ret;\n\n };\n\n return function (options, defined, scope) {\n return _createDefined(options.properties, defined, scope);\n };\n})();\n\nexports.createFunction = createFunction;\nexports.createDefined = createDefined;","/*jshint evil:true*/\n\"use strict\";\nvar extd = require(\"../extended\"),\n parser = require(\"../parser\"),\n constraintMatcher = require(\"../constraintMatcher.js\"),\n indexOf = extd.indexOf,\n forEach = extd.forEach,\n removeDuplicates = extd.removeDuplicates,\n map = extd.map,\n obj = extd.hash,\n keys = obj.keys,\n merge = extd.merge,\n rules = require(\"../rule\"),\n common = require(\"./common\"),\n modifiers = common.modifiers,\n createDefined = common.createDefined,\n createFunction = common.createFunction;\n\n\n/**\n * @private\n * Parses an action from a rule definition\n * @param {String} action the body of the action to execute\n * @param {Array} identifiers array of identifiers collected\n * @param {Object} defined an object of defined\n * @param scope\n * @return {Object}\n */\nvar parseAction = function (action, identifiers, defined, scope) {\n var declares = [];\n forEach(identifiers, function (i) {\n if (action.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= facts.\" + i + \";\");\n }\n });\n extd(defined).keys().forEach(function (i) {\n if (action.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= defined.\" + i + \";\");\n }\n });\n\n extd(scope).keys().forEach(function (i) {\n if (action.indexOf(i) !== -1) {\n declares.push(\"var \" + i + \"= scope.\" + i + \";\");\n }\n });\n extd(modifiers).forEach(function (i) {\n if (action.indexOf(i) !== -1) {\n declares.push(\"if(!\" + i + \"){ var \" + i + \"= flow.\" + i + \";}\");\n }\n });\n var params = [\"facts\", 'flow'];\n if (/next\\(.*\\)/.test(action)) {\n params.push(\"next\");\n }\n action = declares.join(\"\") + action;\n try {\n return new Function(\"defined, scope\", \"return \" + new Function(params.join(\",\"), action).toString())(defined, scope);\n } catch (e) {\n throw new Error(\"Invalid action : \" + action + \"\\n\" + e.message);\n }\n};\n\nvar createRuleFromObject = (function () {\n var __resolveRule = function (rule, identifiers, conditions, defined, name) {\n var condition = [], definedClass = rule[0], alias = rule[1], constraint = rule[2], refs = rule[3];\n if (extd.isHash(constraint)) {\n refs = constraint;\n constraint = null;\n }\n if (definedClass && !!(definedClass = defined[definedClass])) {\n condition.push(definedClass);\n } else {\n throw new Error(\"Invalid class \" + rule[0] + \" for rule \" + name);\n }\n condition.push(alias, constraint, refs);\n conditions.push(condition);\n identifiers.push(alias);\n if (constraint) {\n forEach(constraintMatcher.getIdentifiers(parser.parseConstraint(constraint)), function (i) {\n identifiers.push(i);\n });\n }\n if (extd.isObject(refs)) {\n for (var j in refs) {\n var ident = refs[j];\n if (indexOf(identifiers, ident) === -1) {\n identifiers.push(ident);\n }\n }\n }\n };\n\n function parseRule(rule, conditions, identifiers, defined, name) {\n if (rule.length) {\n var r0 = rule[0];\n if (r0 === \"not\" || r0 === \"exists\") {\n var temp = [];\n rule.shift();\n __resolveRule(rule, identifiers, temp, defined, name);\n var cond = temp[0];\n cond.unshift(r0);\n conditions.push(cond);\n } else if (r0 === \"or\") {\n var conds = [r0];\n rule.shift();\n forEach(rule, function (cond) {\n parseRule(cond, conds, identifiers, defined, name);\n });\n conditions.push(conds);\n } else {\n __resolveRule(rule, identifiers, conditions, defined, name);\n identifiers = removeDuplicates(identifiers);\n }\n }\n\n }\n\n return function (obj, defined, scope) {\n var name = obj.name;\n if (extd.isEmpty(obj)) {\n throw new Error(\"Rule is empty\");\n }\n var options = obj.options || {};\n options.scope = scope;\n var constraints = obj.constraints || [], l = constraints.length;\n if (!l) {\n constraints = [\"true\"];\n }\n var action = obj.action;\n if (extd.isUndefined(action)) {\n throw new Error(\"No action was defined for rule \" + name);\n }\n var conditions = [], identifiers = [];\n forEach(constraints, function (rule) {\n parseRule(rule, conditions, identifiers, defined, name);\n });\n return rules.createRule(name, options, conditions, parseAction(action, identifiers, defined, scope));\n };\n})();\n\nexports.parse = function (src, file) {\n //parse flow from file\n return parser.parseRuleSet(src, file);\n\n};\nexports.compile = function (flowObj, options, cb, Container) {\n if (extd.isFunction(options)) {\n cb = options;\n options = {};\n } else {\n options = options || {};\n }\n var name = flowObj.name || options.name;\n //if !name throw an error\n if (!name) {\n throw new Error(\"Name must be present in JSON or options\");\n }\n var flow = new Container(name);\n var defined = merge({Array: Array, String: String, Number: Number, Boolean: Boolean, RegExp: RegExp, Date: Date, Object: Object}, options.define || {});\n if (typeof Buffer !== \"undefined\") {\n defined.Buffer = Buffer;\n }\n var scope = merge({console: console}, options.scope);\n //add the anything added to the scope as a property\n forEach(flowObj.scope, function (s) {\n scope[s.name] = true;\n });\n //add any defined classes in the parsed flowObj to defined\n forEach(flowObj.define, function (d) {\n defined[d.name] = createDefined(d, defined, scope);\n });\n\n //expose any defined classes to the flow.\n extd(defined).forEach(function (cls, name) {\n flow.addDefined(name, cls);\n });\n\n var scopeNames = extd(flowObj.scope).pluck(\"name\").union(extd(scope).keys().value()).value();\n var definedNames = map(keys(defined), function (s) {\n return s;\n });\n forEach(flowObj.scope, function (s) {\n scope[s.name] = createFunction(s.body, defined, scope, scopeNames, definedNames);\n });\n var rules = flowObj.rules;\n if (rules.length) {\n forEach(rules, function (rule) {\n flow.__rules = flow.__rules.concat(createRuleFromObject(rule, defined, scope));\n });\n }\n if (cb) {\n cb.call(flow, flow);\n }\n return flow;\n};\n\nexports.transpile = require(\"./transpile\").transpile;\n\n\n\n","var extd = require(\"../extended\"),\n forEach = extd.forEach,\n indexOf = extd.indexOf,\n merge = extd.merge,\n isString = extd.isString,\n modifiers = require(\"./common\").modifiers,\n constraintMatcher = require(\"../constraintMatcher\"),\n parser = require(\"../parser\");\n\nfunction definedToJs(options) {\n /*jshint evil:true*/\n options = isString(options) ? new Function(\"return \" + options + \";\")() : options;\n var ret = [\"(function(){\"], value;\n\n if (options.hasOwnProperty(\"constructor\") && \"function\" === typeof options.constructor) {\n ret.push(\"var Defined = \" + options.constructor.toString() + \";\");\n } else {\n ret.push(\"var Defined = function(opts){ for(var i in opts){if(opts.hasOwnProperty(i)){this[i] = opts[i];}}};\");\n }\n ret.push(\"var proto = Defined.prototype;\");\n for (var key in options) {\n if (options.hasOwnProperty(key)) {\n value = options[key];\n ret.push(\"proto.\" + key + \" = \" + (extd.isFunction(value) ? value.toString() : extd.format(\"%j\", value)) + \";\");\n }\n }\n ret.push(\"return Defined;\");\n ret.push(\"}())\");\n return ret.join(\"\");\n\n}\n\nfunction actionToJs(action, identifiers, defined, scope) {\n var declares = [], usedVars = {};\n forEach(identifiers, function (i) {\n if (action.indexOf(i) !== -1) {\n usedVars[i] = true;\n declares.push(\"var \" + i + \"= facts.\" + i + \";\");\n }\n });\n extd(defined).keys().forEach(function (i) {\n if (action.indexOf(i) !== -1 && !usedVars[i]) {\n usedVars[i] = true;\n declares.push(\"var \" + i + \"= defined.\" + i + \";\");\n }\n });\n\n extd(scope).keys().forEach(function (i) {\n if (action.indexOf(i) !== -1 && !usedVars[i]) {\n usedVars[i] = true;\n declares.push(\"var \" + i + \"= scope.\" + i + \";\");\n }\n });\n extd(modifiers).forEach(function (i) {\n if (action.indexOf(i) !== -1 && !usedVars[i]) {\n declares.push(\"var \" + i + \"= flow.\" + i + \";\");\n }\n });\n var params = [\"facts\", 'flow'];\n if (/next\\(.*\\)/.test(action)) {\n params.push(\"next\");\n }\n action = declares.join(\"\") + action;\n try {\n return [\"function(\", params.join(\",\"), \"){\", action, \"}\"].join(\"\");\n } catch (e) {\n throw new Error(\"Invalid action : \" + action + \"\\n\" + e.message);\n }\n}\n\nfunction parseConstraintModifier(constraint, ret) {\n if (constraint.length && extd.isString(constraint[0])) {\n var modifier = constraint[0].match(\" *(from)\");\n if (modifier) {\n modifier = modifier[0];\n switch (modifier) {\n case \"from\":\n ret.push(', \"', constraint.shift(), '\"');\n break;\n default:\n throw new Error(\"Unrecognized modifier \" + modifier);\n }\n }\n }\n}\n\nfunction parseConstraintHash(constraint, ret, identifiers) {\n if (constraint.length && extd.isHash(constraint[0])) {\n //ret of options\n var refs = constraint.shift();\n extd(refs).values().forEach(function (ident) {\n if (indexOf(identifiers, ident) === -1) {\n identifiers.push(ident);\n }\n });\n ret.push(',' + extd.format('%j', [refs]));\n }\n}\n\nfunction constraintsToJs(constraint, identifiers) {\n constraint = constraint.slice(0);\n var ret = [];\n if (constraint[0] === \"or\") {\n ret.push('[\"' + constraint.shift() + '\"');\n ret.push(extd.map(constraint,function (c) {\n return constraintsToJs(c, identifiers);\n }).join(\",\") + \"]\");\n return ret;\n } else if (constraint[0] === \"not\" || constraint[0] === \"exists\") {\n ret.push('\"', constraint.shift(), '\", ');\n }\n identifiers.push(constraint[1]);\n ret.push(constraint[0], ', \"' + constraint[1].replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + '\"');\n constraint.splice(0, 2);\n if (constraint.length) {\n //constraint\n var c = constraint.shift();\n if (extd.isString(c) && c) {\n ret.push(',\"' + c.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\"), '\"');\n forEach(constraintMatcher.getIdentifiers(parser.parseConstraint(c)), function (i) {\n identifiers.push(i);\n });\n } else {\n ret.push(',\"true\"');\n constraint.unshift(c);\n }\n }\n parseConstraintModifier(constraint, ret);\n parseConstraintHash(constraint, ret, identifiers);\n return '[' + ret.join(\"\") + ']';\n}\n\nexports.transpile = function (flowObj, options) {\n options = options || {};\n var ret = [];\n ret.push(\"(function(){\");\n ret.push(\"return function(options){\");\n ret.push(\"options = options || {};\");\n ret.push(\"var bind = function(scope, fn){return function(){return fn.apply(scope, arguments);};}, defined = {Array: Array, String: String, Number: Number, Boolean: Boolean, RegExp: RegExp, Date: Date, Object: Object}, scope = options.scope || {};\");\n ret.push(\"var optDefined = options.defined || {}; for(var i in optDefined){defined[i] = optDefined[i];}\");\n var defined = merge({Array: Array, String: String, Number: Number, Boolean: Boolean, RegExp: RegExp, Date: Date, Object: Object}, options.define || {});\n if (typeof Buffer !== \"undefined\") {\n defined.Buffer = Buffer;\n }\n var scope = merge({console: console}, options.scope);\n ret.push([\"return nools.flow('\", options.name, \"', function(){\"].join(\"\"));\n //add any defined classes in the parsed flowObj to defined\n ret.push(extd(flowObj.define || []).map(function (defined) {\n var name = defined.name;\n defined[name] = {};\n return [\"var\", name, \"= defined.\" + name, \"= this.addDefined('\" + name + \"',\", definedToJs(defined.properties) + \");\"].join(\" \");\n }).value().join(\"\\n\"));\n ret.push(extd(flowObj.scope || []).map(function (s) {\n var name = s.name;\n scope[name] = {};\n return [\"var\", name, \"= scope.\" + name, \"= \", s.body, \";\"].join(\" \");\n }).value().join(\"\\n\"));\n ret.push(\"scope.console = console;\\n\");\n\n\n ret.push(extd(flowObj.rules || []).map(function (rule) {\n var identifiers = [], ret = [\"this.rule('\", rule.name.replace(/'/g, \"\\\\'\"), \"'\"], options = extd.merge(rule.options || {}, {scope: \"scope\"});\n ret.push(\",\", extd.format(\"%j\", [options]).replace(/(:\"scope\")/, \":scope\"));\n if (rule.constraints && !extd.isEmpty(rule.constraints)) {\n ret.push(\", [\");\n ret.push(extd(rule.constraints).map(function (c) {\n return constraintsToJs(c, identifiers);\n }).value().join(\",\"));\n ret.push(\"]\");\n }\n ret.push(\",\", actionToJs(rule.action, identifiers, defined, scope));\n ret.push(\");\");\n return ret.join(\"\");\n }).value().join(\"\"));\n ret.push(\"});\");\n ret.push(\"};\");\n ret.push(\"}());\");\n return ret.join(\"\");\n};\n\n\n","var map = require(\"./extended\").map;\n\nfunction salience(a, b) {\n return a.rule.priority - b.rule.priority;\n}\n\nfunction bucketCounter(a, b) {\n return a.counter - b.counter;\n}\n\nfunction factRecency(a, b) {\n /*jshint noempty: false*/\n\n var i = 0;\n var aMatchRecency = a.match.recency,\n bMatchRecency = b.match.recency, aLength = aMatchRecency.length - 1, bLength = bMatchRecency.length - 1;\n while (aMatchRecency[i] === bMatchRecency[i] && i < aLength && i < bLength && i++) {\n }\n var ret = aMatchRecency[i] - bMatchRecency[i];\n if (!ret) {\n ret = aLength - bLength;\n }\n return ret;\n}\n\nfunction activationRecency(a, b) {\n return a.recency - b.recency;\n}\n\nvar strategies = {\n salience: salience,\n bucketCounter: bucketCounter,\n factRecency: factRecency,\n activationRecency: activationRecency\n};\n\nexports.strategies = strategies;\nexports.strategy = function (strats) {\n strats = map(strats, function (s) {\n return strategies[s];\n });\n var stratsLength = strats.length;\n\n return function (a, b) {\n var i = -1, ret = 0;\n var equal = (a === b) || (a.name === b.name && a.hashCode === b.hashCode);\n if (!equal) {\n while (++i < stratsLength && !ret) {\n ret = strats[i](a, b);\n }\n ret = ret > 0 ? 1 : -1;\n }\n return ret;\n };\n};","\"use strict\";\n\nvar extd = require(\"./extended\"),\n deepEqual = extd.deepEqual,\n merge = extd.merge,\n instanceOf = extd.instanceOf,\n filter = extd.filter,\n declare = extd.declare,\n constraintMatcher;\n\nvar id = 0;\nvar Constraint = declare({\n\n type: null,\n\n instance: {\n constructor: function (constraint) {\n if (!constraintMatcher) {\n constraintMatcher = require(\"./constraintMatcher\");\n }\n this.id = id++;\n this.constraint = constraint;\n extd.bindAll(this, [\"assert\"]);\n },\n \"assert\": function () {\n throw new Error(\"not implemented\");\n },\n\n getIndexableProperties: function () {\n return [];\n },\n\n equal: function (constraint) {\n return instanceOf(constraint, this._static) && this.get(\"alias\") === constraint.get(\"alias\") && extd.deepEqual(this.constraint, constraint.constraint);\n },\n\n getters: {\n variables: function () {\n return [this.get(\"alias\")];\n }\n }\n\n\n }\n});\n\nConstraint.extend({\n instance: {\n\n type: \"object\",\n\n constructor: function (type) {\n this._super([type]);\n },\n\n \"assert\": function (param) {\n return param instanceof this.constraint || param.constructor === this.constraint;\n },\n\n equal: function (constraint) {\n return instanceOf(constraint, this._static) && this.constraint === constraint.constraint;\n }\n }\n}).as(exports, \"ObjectConstraint\");\n\nvar EqualityConstraint = Constraint.extend({\n\n instance: {\n\n type: \"equality\",\n\n constructor: function (constraint, options) {\n this._super([constraint]);\n options = options || {};\n this.pattern = options.pattern;\n this._matcher = constraintMatcher.getMatcher(constraint, options, true);\n },\n\n \"assert\": function (values) {\n return this._matcher(values);\n }\n }\n}).as(exports, \"EqualityConstraint\");\n\nEqualityConstraint.extend({instance: {type: \"inequality\"}}).as(exports, \"InequalityConstraint\");\nEqualityConstraint.extend({instance: {type: \"comparison\"}}).as(exports, \"ComparisonConstraint\");\n\nConstraint.extend({\n\n instance: {\n\n type: \"equality\",\n\n constructor: function () {\n this._super([\n [true]\n ]);\n },\n\n equal: function (constraint) {\n return instanceOf(constraint, this._static) && this.get(\"alias\") === constraint.get(\"alias\");\n },\n\n\n \"assert\": function () {\n return true;\n }\n }\n}).as(exports, \"TrueConstraint\");\n\nvar ReferenceConstraint = Constraint.extend({\n\n instance: {\n\n type: \"reference\",\n\n constructor: function (constraint, options) {\n this.cache = {};\n this._super([constraint]);\n options = options || {};\n this.values = [];\n this.pattern = options.pattern;\n this._options = options;\n this._matcher = constraintMatcher.getMatcher(constraint, options, false);\n },\n\n \"assert\": function (fact, fh) {\n try {\n return this._matcher(fact, fh);\n } catch (e) {\n throw new Error(\"Error with evaluating pattern \" + this.pattern + \" \" + e.message);\n }\n\n },\n\n merge: function (that) {\n var ret = this;\n if (that instanceof ReferenceConstraint) {\n ret = new this._static([this.constraint, that.constraint, \"and\"], merge({}, this._options, this._options));\n ret._alias = this._alias || that._alias;\n ret.vars = this.vars.concat(that.vars);\n }\n return ret;\n },\n\n equal: function (constraint) {\n return instanceOf(constraint, this._static) && extd.deepEqual(this.constraint, constraint.constraint);\n },\n\n\n getters: {\n variables: function () {\n return this.vars;\n },\n\n alias: function () {\n return this._alias;\n }\n },\n\n setters: {\n alias: function (alias) {\n this._alias = alias;\n this.vars = filter(constraintMatcher.getIdentifiers(this.constraint), function (v) {\n return v !== alias;\n });\n }\n }\n }\n\n}).as(exports, \"ReferenceConstraint\");\n\n\nReferenceConstraint.extend({\n instance: {\n type: \"reference_equality\",\n op: \"eq\",\n getIndexableProperties: function () {\n return constraintMatcher.getIndexableProperties(this.constraint);\n }\n }\n}).as(exports, \"ReferenceEqualityConstraint\")\n .extend({instance: {type: \"reference_inequality\", op: \"neq\"}}).as(exports, \"ReferenceInequalityConstraint\")\n .extend({instance: {type: \"reference_gt\", op: \"gt\"}}).as(exports, \"ReferenceGTConstraint\")\n .extend({instance: {type: \"reference_gte\", op: \"gte\"}}).as(exports, \"ReferenceGTEConstraint\")\n .extend({instance: {type: \"reference_lt\", op: \"lt\"}}).as(exports, \"ReferenceLTConstraint\")\n .extend({instance: {type: \"reference_lte\", op: \"lte\"}}).as(exports, \"ReferenceLTEConstraint\");\n\n\nConstraint.extend({\n instance: {\n\n type: \"hash\",\n\n constructor: function (hash) {\n this._super([hash]);\n },\n\n equal: function (constraint) {\n return extd.instanceOf(constraint, this._static) && this.get(\"alias\") === constraint.get(\"alias\") && extd.deepEqual(this.constraint, constraint.constraint);\n },\n\n \"assert\": function () {\n return true;\n },\n\n getters: {\n variables: function () {\n return this.constraint;\n }\n }\n\n }\n}).as(exports, \"HashConstraint\");\n\nConstraint.extend({\n instance: {\n constructor: function (constraints, options) {\n this.type = \"from\";\n this.constraints = constraintMatcher.getSourceMatcher(constraints, (options || {}), true);\n extd.bindAll(this, [\"assert\"]);\n },\n\n equal: function (constraint) {\n return instanceOf(constraint, this._static) && this.get(\"alias\") === constraint.get(\"alias\") && deepEqual(this.constraints, constraint.constraints);\n },\n\n \"assert\": function (fact, fh) {\n return this.constraints(fact, fh);\n },\n\n getters: {\n variables: function () {\n return this.constraint;\n }\n }\n\n }\n}).as(exports, \"FromConstraint\");\n\nConstraint.extend({\n instance: {\n constructor: function (func, options) {\n this.type = \"custom\";\n this.fn = func;\n this.options = options;\n extd.bindAll(this, [\"assert\"]);\n },\n\n equal: function (constraint) {\n return instanceOf(constraint, this._static) && this.fn === constraint.constraint;\n },\n\n \"assert\": function (fact, fh) {\n return this.fn(fact, fh);\n }\n }\n}).as(exports, \"CustomConstraint\");\n\n\n","\"use strict\";\n\nvar extd = require(\"./extended\"),\n isArray = extd.isArray,\n forEach = extd.forEach,\n some = extd.some,\n indexOf = extd.indexOf,\n isNumber = extd.isNumber,\n removeDups = extd.removeDuplicates,\n atoms = require(\"./constraint\");\n\nfunction getProps(val) {\n return extd(val).map(function mapper(val) {\n return isArray(val) ? isArray(val[0]) ? getProps(val).value() : val.reverse().join(\".\") : val;\n }).flatten().filter(function (v) {\n return !!v;\n });\n}\n\nvar definedFuncs = {\n indexOf: extd.indexOf,\n now: function () {\n return new Date();\n },\n\n Date: function (y, m, d, h, min, s, ms) {\n var date = new Date();\n if (isNumber(y)) {\n date.setYear(y);\n }\n if (isNumber(m)) {\n date.setMonth(m);\n }\n if (isNumber(d)) {\n date.setDate(d);\n }\n if (isNumber(h)) {\n date.setHours(h);\n }\n if (isNumber(min)) {\n date.setMinutes(min);\n }\n if (isNumber(s)) {\n date.setSeconds(s);\n }\n if (isNumber(ms)) {\n date.setMilliseconds(ms);\n }\n return date;\n },\n\n lengthOf: function (arr, length) {\n return arr.length === length;\n },\n\n isTrue: function (val) {\n return val === true;\n },\n\n isFalse: function (val) {\n return val === false;\n },\n\n isNotNull: function (actual) {\n return actual !== null;\n },\n\n dateCmp: function (dt1, dt2) {\n return extd.compare(dt1, dt2);\n }\n\n};\n\nforEach([\"years\", \"days\", \"months\", \"hours\", \"minutes\", \"seconds\"], function (k) {\n definedFuncs[k + \"FromNow\"] = extd[k + \"FromNow\"];\n definedFuncs[k + \"Ago\"] = extd[k + \"Ago\"];\n});\n\n\nforEach([\"isArray\", \"isNumber\", \"isHash\", \"isObject\", \"isDate\", \"isBoolean\", \"isString\", \"isRegExp\", \"isNull\", \"isEmpty\",\n \"isUndefined\", \"isDefined\", \"isUndefinedOrNull\", \"isPromiseLike\", \"isFunction\", \"deepEqual\"], function (k) {\n var m = extd[k];\n definedFuncs[k] = function () {\n return m.apply(extd, arguments);\n };\n});\n\n\nvar lang = {\n\n equal: function (c1, c2) {\n var ret = false;\n if (c1 === c2) {\n ret = true;\n } else {\n if (c1[2] === c2[2]) {\n if (indexOf([\"string\", \"number\", \"boolean\", \"regexp\", \"identifier\", \"null\"], c1[2]) !== -1) {\n ret = c1[0] === c2[0];\n } else if (c1[2] === \"unary\" || c1[2] === \"logicalNot\") {\n ret = this.equal(c1[0], c2[0]);\n } else {\n ret = this.equal(c1[0], c2[0]) && this.equal(c1[1], c2[1]);\n }\n }\n }\n return ret;\n },\n\n __getProperties: function (rule) {\n var ret = [];\n if (rule) {\n var rule2 = rule[2];\n if (!rule2) {\n return ret;\n }\n if (rule2 !== \"prop\" &&\n rule2 !== \"identifier\" &&\n rule2 !== \"string\" &&\n rule2 !== \"number\" &&\n rule2 !== \"boolean\" &&\n rule2 !== \"regexp\" &&\n rule2 !== \"unary\" &&\n rule2 !== \"unary\") {\n ret[0] = this.__getProperties(rule[0]);\n ret[1] = this.__getProperties(rule[1]);\n } else if (rule2 === \"identifier\") {\n //at the bottom\n ret = [rule[0]];\n } else {\n ret = lang.__getProperties(rule[1]).concat(lang.__getProperties(rule[0]));\n }\n }\n return ret;\n },\n\n getIndexableProperties: function (rule) {\n if (rule[2] === \"composite\") {\n return this.getIndexableProperties(rule[0]);\n } else if (/^(\\w+(\\['[^']*'])*) *([!=]==?|[<>]=?) (\\w+(\\['[^']*'])*)$/.test(this.parse(rule))) {\n return getProps(this.__getProperties(rule)).flatten().value();\n } else {\n return [];\n }\n },\n\n getIdentifiers: function (rule) {\n var ret = [];\n var rule2 = rule[2];\n\n if (rule2 === \"identifier\") {\n //its an identifier so stop\n return [rule[0]];\n } else if (rule2 === \"function\") {\n ret = ret.concat(this.getIdentifiers(rule[0])).concat(this.getIdentifiers(rule[1]));\n } else if (rule2 !== \"string\" &&\n rule2 !== \"number\" &&\n rule2 !== \"boolean\" &&\n rule2 !== \"regexp\" &&\n rule2 !== \"unary\" &&\n rule2 !== \"unary\") {\n //its an expression so keep going\n if (rule2 === \"prop\") {\n ret = ret.concat(this.getIdentifiers(rule[0]));\n if (rule[1]) {\n var propChain = rule[1];\n //go through the member variables and collect any identifiers that may be in functions\n while (isArray(propChain)) {\n if (propChain[2] === \"function\") {\n ret = ret.concat(this.getIdentifiers(propChain[1]));\n break;\n } else {\n propChain = propChain[1];\n }\n }\n }\n\n } else {\n if (rule[0]) {\n ret = ret.concat(this.getIdentifiers(rule[0]));\n }\n if (rule[1]) {\n ret = ret.concat(this.getIdentifiers(rule[1]));\n }\n }\n }\n //remove dups and return\n return removeDups(ret);\n },\n\n toConstraints: function (rule, options) {\n var ret = [],\n alias = options.alias,\n scope = options.scope || {};\n\n var rule2 = rule[2];\n\n\n if (rule2 === \"and\") {\n ret = ret.concat(this.toConstraints(rule[0], options)).concat(this.toConstraints(rule[1], options));\n } else if (\n rule2 === \"composite\" ||\n rule2 === \"or\" ||\n rule2 === \"lt\" ||\n rule2 === \"gt\" ||\n rule2 === \"lte\" ||\n rule2 === \"gte\" ||\n rule2 === \"like\" ||\n rule2 === \"notLike\" ||\n rule2 === \"eq\" ||\n rule2 === \"neq\" ||\n rule2 === \"seq\" ||\n rule2 === \"sneq\" ||\n rule2 === \"in\" ||\n rule2 === \"notIn\" ||\n rule2 === \"prop\" ||\n rule2 === \"propLookup\" ||\n rule2 === \"function\" ||\n rule2 === \"logicalNot\") {\n var isReference = some(this.getIdentifiers(rule), function (i) {\n return i !== alias && !(i in definedFuncs) && !(i in scope);\n });\n switch (rule2) {\n case \"eq\":\n ret.push(new atoms[isReference ? \"ReferenceEqualityConstraint\" : \"EqualityConstraint\"](rule, options));\n break;\n case \"seq\":\n ret.push(new atoms[isReference ? \"ReferenceEqualityConstraint\" : \"EqualityConstraint\"](rule, options));\n break;\n case \"neq\":\n ret.push(new atoms[isReference ? \"ReferenceInequalityConstraint\" : \"InequalityConstraint\"](rule, options));\n break;\n case \"sneq\":\n ret.push(new atoms[isReference ? \"ReferenceInequalityConstraint\" : \"InequalityConstraint\"](rule, options));\n break;\n case \"gt\":\n ret.push(new atoms[isReference ? \"ReferenceGTConstraint\" : \"ComparisonConstraint\"](rule, options));\n break;\n case \"gte\":\n ret.push(new atoms[isReference ? \"ReferenceGTEConstraint\" : \"ComparisonConstraint\"](rule, options));\n break;\n case \"lt\":\n ret.push(new atoms[isReference ? \"ReferenceLTConstraint\" : \"ComparisonConstraint\"](rule, options));\n break;\n case \"lte\":\n ret.push(new atoms[isReference ? \"ReferenceLTEConstraint\" : \"ComparisonConstraint\"](rule, options));\n break;\n default:\n ret.push(new atoms[isReference ? \"ReferenceConstraint\" : \"ComparisonConstraint\"](rule, options));\n }\n\n }\n return ret;\n },\n\n\n parse: function (rule) {\n return this[rule[2]](rule[0], rule[1]);\n },\n\n composite: function (lhs) {\n return this.parse(lhs);\n },\n\n and: function (lhs, rhs) {\n return [\"(\", this.parse(lhs), \"&&\", this.parse(rhs), \")\"].join(\" \");\n },\n\n or: function (lhs, rhs) {\n return [\"(\", this.parse(lhs), \"||\", this.parse(rhs), \")\"].join(\" \");\n },\n\n prop: function (name, prop) {\n if (prop[2] === \"function\") {\n return [this.parse(name), this.parse(prop)].join(\".\");\n } else {\n return [this.parse(name), \"['\", this.parse(prop), \"']\"].join(\"\");\n }\n },\n\n propLookup: function (name, prop) {\n if (prop[2] === \"function\") {\n return [this.parse(name), this.parse(prop)].join(\".\");\n } else {\n return [this.parse(name), \"[\", this.parse(prop), \"]\"].join(\"\");\n }\n },\n\n unary: function (lhs) {\n return -1 * this.parse(lhs);\n },\n\n plus: function (lhs, rhs) {\n return [this.parse(lhs), \"+\", this.parse(rhs)].join(\" \");\n },\n minus: function (lhs, rhs) {\n return [this.parse(lhs), \"-\", this.parse(rhs)].join(\" \");\n },\n\n mult: function (lhs, rhs) {\n return [this.parse(lhs), \"*\", this.parse(rhs)].join(\" \");\n },\n\n div: function (lhs, rhs) {\n return [this.parse(lhs), \"/\", this.parse(rhs)].join(\" \");\n },\n\n mod: function (lhs, rhs) {\n return [this.parse(lhs), \"%\", this.parse(rhs)].join(\" \");\n },\n\n lt: function (lhs, rhs) {\n return [this.parse(lhs), \"<\", this.parse(rhs)].join(\" \");\n },\n gt: function (lhs, rhs) {\n return [this.parse(lhs), \">\", this.parse(rhs)].join(\" \");\n },\n lte: function (lhs, rhs) {\n return [this.parse(lhs), \"<=\", this.parse(rhs)].join(\" \");\n },\n gte: function (lhs, rhs) {\n return [this.parse(lhs), \">=\", this.parse(rhs)].join(\" \");\n },\n like: function (lhs, rhs) {\n return [this.parse(rhs), \".test(\", this.parse(lhs), \")\"].join(\"\");\n },\n notLike: function (lhs, rhs) {\n return [\"!\", this.parse(rhs), \".test(\", this.parse(lhs), \")\"].join(\"\");\n },\n eq: function (lhs, rhs) {\n return [this.parse(lhs), \"==\", this.parse(rhs)].join(\" \");\n },\n\n seq: function (lhs, rhs) {\n return [this.parse(lhs), \"===\", this.parse(rhs)].join(\" \");\n },\n\n neq: function (lhs, rhs) {\n return [this.parse(lhs), \"!=\", this.parse(rhs)].join(\" \");\n },\n\n sneq: function (lhs, rhs) {\n return [this.parse(lhs), \"!==\", this.parse(rhs)].join(\" \");\n },\n\n \"in\": function (lhs, rhs) {\n return [\"(indexOf(\", this.parse(rhs), \",\", this.parse(lhs), \")) != -1\"].join(\"\");\n },\n\n \"notIn\": function (lhs, rhs) {\n return [\"(indexOf(\", this.parse(rhs), \",\", this.parse(lhs), \")) == -1\"].join(\"\");\n },\n\n \"arguments\": function (lhs, rhs) {\n var ret = [];\n if (lhs) {\n ret.push(this.parse(lhs));\n }\n if (rhs) {\n ret.push(this.parse(rhs));\n }\n return ret.join(\",\");\n },\n\n \"array\": function (lhs) {\n var args = [];\n if (lhs) {\n args = this.parse(lhs);\n if (isArray(args)) {\n return args;\n } else {\n return [\"[\", args, \"]\"].join(\"\");\n }\n }\n return [\"[\", args.join(\",\"), \"]\"].join(\"\");\n },\n\n \"function\": function (lhs, rhs) {\n var args = this.parse(rhs);\n return [this.parse(lhs), \"(\", args, \")\"].join(\"\");\n },\n\n \"string\": function (lhs) {\n return \"'\" + lhs + \"'\";\n },\n\n \"number\": function (lhs) {\n return lhs;\n },\n\n \"boolean\": function (lhs) {\n return lhs;\n },\n\n regexp: function (lhs) {\n return lhs;\n },\n\n identifier: function (lhs) {\n return lhs;\n },\n\n \"null\": function () {\n return \"null\";\n },\n\n logicalNot: function (lhs) {\n return [\"!(\", this.parse(lhs), \")\"].join(\"\");\n }\n};\n\nvar matcherCount = 0;\nvar toJs = exports.toJs = function (rule, scope, alias, equality, wrap) {\n /*jshint evil:true*/\n var js = lang.parse(rule);\n scope = scope || {};\n var vars = lang.getIdentifiers(rule);\n var closureVars = [\"var indexOf = definedFuncs.indexOf; var hasOwnProperty = Object.prototype.hasOwnProperty;\"], funcVars = [];\n extd(vars).filter(function (v) {\n var ret = [\"var \", v, \" = \"];\n if (definedFuncs.hasOwnProperty(v)) {\n ret.push(\"definedFuncs['\", v, \"']\");\n } else if (scope.hasOwnProperty(v)) {\n ret.push(\"scope['\", v, \"']\");\n } else {\n return true;\n }\n ret.push(\";\");\n closureVars.push(ret.join(\"\"));\n return false;\n }).forEach(function (v) {\n var ret = [\"var \", v, \" = \"];\n if (equality || v !== alias) {\n ret.push(\"fact.\" + v);\n } else if (v === alias) {\n ret.push(\"hash.\", v, \"\");\n }\n ret.push(\";\");\n funcVars.push(ret.join(\"\"));\n });\n var closureBody = closureVars.join(\"\") + \"return function matcher\" + (matcherCount++) + (!equality ? \"(fact, hash){\" : \"(fact){\") + funcVars.join(\"\") + \" return \" + (wrap ? wrap(js) : js) + \";}\";\n var f = new Function(\"definedFuncs, scope\", closureBody)(definedFuncs, scope);\n //console.log(f.toString());\n return f;\n};\n\nexports.getMatcher = function (rule, options, equality) {\n options = options || {};\n return toJs(rule, options.scope, options.alias, equality, function (src) {\n return \"!!(\" + src + \")\";\n });\n};\n\nexports.getSourceMatcher = function (rule, options, equality) {\n options = options || {};\n return toJs(rule, options.scope, options.alias, equality, function (src) {\n return src;\n });\n};\n\nexports.toConstraints = function (constraint, options) {\n if (typeof constraint === 'function') {\n return [new atoms.CustomConstraint(constraint, options)];\n }\n //constraint.split(\"&&\")\n return lang.toConstraints(constraint, options);\n};\n\nexports.equal = function (c1, c2) {\n return lang.equal(c1, c2);\n};\n\nexports.getIdentifiers = function (constraint) {\n return lang.getIdentifiers(constraint);\n};\n\nexports.getIndexableProperties = function (constraint) {\n return lang.getIndexableProperties(constraint);\n};","\"use strict\";\nvar extd = require(\"./extended\"),\n isBoolean = extd.isBoolean,\n declare = extd.declare,\n indexOf = extd.indexOf,\n pPush = Array.prototype.push;\n\nfunction createContextHash(paths, hashCode) {\n var ret = \"\",\n i = -1,\n l = paths.length;\n while (++i < l) {\n ret += paths[i].id + \":\";\n }\n ret += hashCode;\n return ret;\n}\n\nfunction merge(h1, h2, aliases) {\n var i = -1, l = aliases.length, alias;\n while (++i < l) {\n alias = aliases[i];\n h1[alias] = h2[alias];\n }\n}\n\nfunction unionRecency(arr, arr1, arr2) {\n pPush.apply(arr, arr1);\n var i = -1, l = arr2.length, val, j = arr.length;\n while (++i < l) {\n val = arr2[i];\n if (indexOf(arr, val) === -1) {\n arr[j++] = val;\n }\n }\n}\n\nvar Match = declare({\n instance: {\n\n isMatch: true,\n hashCode: \"\",\n facts: null,\n factIds: null,\n factHash: null,\n recency: null,\n aliases: null,\n\n constructor: function () {\n this.facts = [];\n this.factIds = [];\n this.factHash = {};\n this.recency = [];\n this.aliases = [];\n },\n\n addFact: function (assertable) {\n pPush.call(this.facts, assertable);\n pPush.call(this.recency, assertable.recency);\n pPush.call(this.factIds, assertable.id);\n this.hashCode = this.factIds.join(\":\");\n return this;\n },\n\n merge: function (mr) {\n var ret = new Match();\n ret.isMatch = mr.isMatch;\n pPush.apply(ret.facts, this.facts);\n pPush.apply(ret.facts, mr.facts);\n pPush.apply(ret.aliases, this.aliases);\n pPush.apply(ret.aliases, mr.aliases);\n ret.hashCode = this.hashCode + \":\" + mr.hashCode;\n merge(ret.factHash, this.factHash, this.aliases);\n merge(ret.factHash, mr.factHash, mr.aliases);\n unionRecency(ret.recency, this.recency, mr.recency);\n return ret;\n }\n }\n});\n\nvar Context = declare({\n instance: {\n match: null,\n factHash: null,\n aliases: null,\n fact: null,\n hashCode: null,\n paths: null,\n pathsHash: null,\n\n constructor: function (fact, paths, mr) {\n this.fact = fact;\n if (mr) {\n this.match = mr;\n } else {\n this.match = new Match().addFact(fact);\n }\n this.factHash = this.match.factHash;\n this.aliases = this.match.aliases;\n this.hashCode = this.match.hashCode;\n if (paths) {\n this.paths = paths;\n this.pathsHash = createContextHash(paths, this.hashCode);\n } else {\n this.pathsHash = this.hashCode;\n }\n },\n\n \"set\": function (key, value) {\n this.factHash[key] = value;\n this.aliases.push(key);\n return this;\n },\n\n isMatch: function (isMatch) {\n if (isBoolean(isMatch)) {\n this.match.isMatch = isMatch;\n } else {\n return this.match.isMatch;\n }\n return this;\n },\n\n mergeMatch: function (merge) {\n var match = this.match = this.match.merge(merge);\n this.factHash = match.factHash;\n this.hashCode = match.hashCode;\n this.aliases = match.aliases;\n return this;\n },\n\n clone: function (fact, paths, match) {\n return new Context(fact || this.fact, paths || this.path, match || this.match);\n }\n }\n}).as(module);\n\n\n","var extd = require(\"./extended\"),\n Promise = extd.Promise,\n nextTick = require(\"./nextTick\"),\n isPromiseLike = extd.isPromiseLike;\n\nPromise.extend({\n instance: {\n\n looping: false,\n\n constructor: function (flow, matchUntilHalt) {\n this._super([]);\n this.flow = flow;\n this.agenda = flow.agenda;\n this.rootNode = flow.rootNode;\n this.matchUntilHalt = !!(matchUntilHalt);\n extd.bindAll(this, [\"onAlter\", \"callNext\"]);\n },\n\n halt: function () {\n this.__halted = true;\n if (!this.looping) {\n this.callback();\n }\n },\n\n onAlter: function () {\n this.flowAltered = true;\n if (!this.looping && this.matchUntilHalt && !this.__halted) {\n this.callNext();\n }\n },\n\n setup: function () {\n var flow = this.flow;\n this.rootNode.resetCounter();\n flow.on(\"assert\", this.onAlter);\n flow.on(\"modify\", this.onAlter);\n flow.on(\"retract\", this.onAlter);\n },\n\n tearDown: function () {\n var flow = this.flow;\n flow.removeListener(\"assert\", this.onAlter);\n flow.removeListener(\"modify\", this.onAlter);\n flow.removeListener(\"retract\", this.onAlter);\n },\n\n __handleAsyncNext: function (next) {\n var self = this, agenda = self.agenda;\n return next.then(function () {\n self.looping = false;\n if (!agenda.isEmpty()) {\n if (self.flowAltered) {\n self.rootNode.incrementCounter();\n self.flowAltered = false;\n }\n if (!self.__halted) {\n self.callNext();\n } else {\n self.callback();\n }\n } else if (!self.matchUntilHalt || self.__halted) {\n self.callback();\n }\n self = null;\n }, this.errback);\n },\n\n __handleSyncNext: function (next) {\n this.looping = false;\n if (!this.agenda.isEmpty()) {\n if (this.flowAltered) {\n this.rootNode.incrementCounter();\n this.flowAltered = false;\n }\n }\n if (next && !this.__halted) {\n nextTick(this.callNext);\n } else if (!this.matchUntilHalt || this.__halted) {\n this.callback();\n }\n return next;\n },\n\n callback: function () {\n this.tearDown();\n this._super(arguments);\n },\n\n\n callNext: function () {\n this.looping = true;\n var next = this.agenda.fireNext();\n return isPromiseLike(next) ? this.__handleAsyncNext(next) : this.__handleSyncNext(next);\n },\n\n execute: function () {\n this.setup();\n this.callNext();\n return this;\n }\n }\n}).as(module);","var arr = require(\"array-extended\"),\n unique = arr.unique,\n indexOf = arr.indexOf,\n map = arr.map,\n pSlice = Array.prototype.slice,\n pSplice = Array.prototype.splice;\n\nfunction plucked(prop) {\n var exec = prop.match(/(\\w+)\\(\\)$/);\n if (exec) {\n prop = exec[1];\n return function (item) {\n return item[prop]();\n };\n } else {\n return function (item) {\n return item[prop];\n };\n }\n}\n\nfunction plucker(prop) {\n prop = prop.split(\".\");\n if (prop.length === 1) {\n return plucked(prop[0]);\n } else {\n var pluckers = map(prop, function (prop) {\n return plucked(prop);\n });\n var l = pluckers.length;\n return function (item) {\n var i = -1, res = item;\n while (++i < l) {\n res = pluckers[i](res);\n }\n return res;\n };\n }\n}\n\nfunction intersection(a, b) {\n a = pSlice.call(a);\n var aOne, i = -1, l;\n l = a.length;\n while (++i < l) {\n aOne = a[i];\n if (indexOf(b, aOne) === -1) {\n pSplice.call(a, i--, 1);\n l--;\n }\n }\n return a;\n}\n\nfunction inPlaceIntersection(a, b) {\n var aOne, i = -1, l;\n l = a.length;\n while (++i < l) {\n aOne = a[i];\n if (indexOf(b, aOne) === -1) {\n pSplice.call(a, i--, 1);\n l--;\n }\n }\n return a;\n}\n\nfunction inPlaceDifference(a, b) {\n var aOne, i = -1, l;\n l = a.length;\n while (++i < l) {\n aOne = a[i];\n if (indexOf(b, aOne) !== -1) {\n pSplice.call(a, i--, 1);\n l--;\n }\n }\n return a;\n}\n\nfunction diffArr(arr1, arr2) {\n var ret = [], i = -1, j, l2 = arr2.length, l1 = arr1.length, a, found;\n if (l2 > l1) {\n ret = arr1.slice();\n while (++i < l2) {\n a = arr2[i];\n j = -1;\n l1 = ret.length;\n while (++j < l1) {\n if (ret[j] === a) {\n ret.splice(j, 1);\n break;\n }\n }\n }\n } else {\n while (++i < l1) {\n a = arr1[i];\n j = -1;\n found = false;\n while (++j < l2) {\n if (arr2[j] === a) {\n found = true;\n break;\n }\n }\n if (!found) {\n ret.push(a);\n }\n }\n }\n return ret;\n}\n\nfunction diffHash(h1, h2) {\n var ret = {};\n for (var i in h1) {\n if (!hasOwnProperty.call(h2, i)) {\n ret[i] = h1[i];\n }\n }\n return ret;\n}\n\n\nfunction union(arr1, arr2) {\n return unique(arr1.concat(arr2));\n}\n\nmodule.exports = require(\"extended\")()\n .register(require(\"date-extended\"))\n .register(arr)\n .register(require(\"object-extended\"))\n .register(require(\"string-extended\"))\n .register(require(\"promise-extended\"))\n .register(require(\"function-extended\"))\n .register(require(\"is-extended\"))\n .register(\"intersection\", intersection)\n .register(\"inPlaceIntersection\", inPlaceIntersection)\n .register(\"inPlaceDifference\", inPlaceDifference)\n .register(\"diffArr\", diffArr)\n .register(\"diffHash\", diffHash)\n .register(\"unionArr\", union)\n .register(\"plucker\", plucker)\n .register(\"HashTable\", require(\"ht\"))\n .register(\"declare\", require(\"declare.js\"))\n .register(require(\"leafy\"))\n .register(\"LinkedList\", require(\"./linkedList\"));\n\n","\"use strict\";\nvar extd = require(\"./extended\"),\n bind = extd.bind,\n declare = extd.declare,\n nodes = require(\"./nodes\"),\n EventEmitter = require(\"events\").EventEmitter,\n wm = require(\"./workingMemory\"),\n WorkingMemory = wm.WorkingMemory,\n ExecutionStragegy = require(\"./executionStrategy\"),\n AgendaTree = require(\"./agenda\");\n\nmodule.exports = declare(EventEmitter, {\n\n instance: {\n\n name: null,\n\n executionStrategy: null,\n\n constructor: function (name, conflictResolutionStrategy) {\n this.env = null;\n this.name = name;\n this.__rules = {};\n this.conflictResolutionStrategy = conflictResolutionStrategy;\n this.workingMemory = new WorkingMemory();\n this.agenda = new AgendaTree(this, conflictResolutionStrategy);\n this.agenda.on(\"fire\", bind(this, \"emit\", \"fire\"));\n this.agenda.on(\"focused\", bind(this, \"emit\", \"focused\"));\n this.rootNode = new nodes.RootNode(this.workingMemory, this.agenda);\n extd.bindAll(this, \"halt\", \"assert\", \"retract\", \"modify\", \"focus\",\n \"emit\", \"getFacts\", \"getFact\");\n },\n\n getFacts: function (Type) {\n var ret;\n if (Type) {\n ret = this.workingMemory.getFactsByType(Type);\n } else {\n ret = this.workingMemory.getFacts();\n }\n return ret;\n },\n\n getFact: function (Type) {\n var ret;\n if (Type) {\n ret = this.workingMemory.getFactsByType(Type);\n } else {\n ret = this.workingMemory.getFacts();\n }\n return ret && ret[0];\n },\n\n focus: function (focused) {\n this.agenda.setFocus(focused);\n return this;\n },\n\n halt: function () {\n this.executionStrategy.halt();\n return this;\n },\n\n dispose: function () {\n this.workingMemory.dispose();\n this.agenda.dispose();\n this.rootNode.dispose();\n },\n\n assert: function (fact) {\n this.rootNode.assertFact(this.workingMemory.assertFact(fact));\n this.emit(\"assert\", fact);\n return fact;\n },\n\n // This method is called to remove an existing fact from working memory\n retract: function (fact) {\n //fact = this.workingMemory.getFact(fact);\n this.rootNode.retractFact(this.workingMemory.retractFact(fact));\n this.emit(\"retract\", fact);\n return fact;\n },\n\n // This method is called to alter an existing fact. It is essentially a\n // retract followed by an assert.\n modify: function (fact, cb) {\n //fact = this.workingMemory.getFact(fact);\n if (\"function\" === typeof cb) {\n cb.call(fact, fact);\n }\n this.rootNode.modifyFact(this.workingMemory.modifyFact(fact));\n this.emit(\"modify\", fact);\n return fact;\n },\n\n print: function () {\n this.rootNode.print();\n },\n\n containsRule: function (name) {\n return this.rootNode.containsRule(name);\n },\n\n rule: function (rule) {\n this.rootNode.assertRule(rule);\n },\n\n matchUntilHalt: function (cb) {\n return (this.executionStrategy = new ExecutionStragegy(this, true)).execute().classic(cb).promise();\n },\n\n match: function (cb) {\n return (this.executionStrategy = new ExecutionStragegy(this)).execute().classic(cb).promise();\n }\n\n }\n});","\"use strict\";\nvar extd = require(\"./extended\"),\n instanceOf = extd.instanceOf,\n forEach = extd.forEach,\n declare = extd.declare,\n InitialFact = require(\"./pattern\").InitialFact,\n conflictStrategies = require(\"./conflict\"),\n conflictResolution = conflictStrategies.strategy([\"salience\", \"activationRecency\"]),\n rule = require(\"./rule\"),\n Flow = require(\"./flow\");\n\nvar flows = {};\nvar FlowContainer = declare({\n\n instance: {\n\n constructor: function (name, cb) {\n this.name = name;\n this.cb = cb;\n this.__rules = [];\n this.__defined = {};\n this.conflictResolutionStrategy = conflictResolution;\n if (cb) {\n cb.call(this, this);\n }\n if (!flows.hasOwnProperty(name)) {\n flows[name] = this;\n } else {\n throw new Error(\"Flow with \" + name + \" already defined\");\n }\n },\n\n conflictResolution: function (strategies) {\n this.conflictResolutionStrategy = conflictStrategies.strategy(strategies);\n return this;\n },\n\n getDefined: function (name) {\n var ret = this.__defined[name.toLowerCase()];\n if (!ret) {\n throw new Error(name + \" flow class is not defined\");\n }\n return ret;\n },\n\n addDefined: function (name, cls) {\n //normalize\n this.__defined[name.toLowerCase()] = cls;\n return cls;\n },\n\n rule: function () {\n this.__rules = this.__rules.concat(rule.createRule.apply(rule, arguments));\n return this;\n },\n\n getSession: function () {\n var flow = new Flow(this.name, this.conflictResolutionStrategy);\n forEach(this.__rules, function (rule) {\n flow.rule(rule);\n });\n flow.assert(new InitialFact());\n for (var i = 0, l = arguments.length; i < l; i++) {\n flow.assert(arguments[i]);\n }\n return flow;\n },\n\n containsRule: function (name) {\n return extd.some(this.__rules, function (rule) {\n return rule.name === name;\n });\n }\n\n },\n\n \"static\": {\n getFlow: function (name) {\n return flows[name];\n },\n\n hasFlow: function (name) {\n return extd.has(flows, name);\n },\n\n deleteFlow: function (name) {\n if (instanceOf(name, FlowContainer)) {\n name = name.name;\n }\n delete flows[name];\n return FlowContainer;\n },\n\n deleteFlows: function () {\n for (var name in flows) {\n if (name in flows) {\n delete flows[name];\n }\n }\n return FlowContainer;\n },\n\n create: function (name, cb) {\n return new FlowContainer(name, cb);\n }\n }\n\n}).as(module);","/**\n *\n * @projectName nools\n * @github https://github.com/C2FO/nools\n * @includeDoc [Examples] ../docs-md/examples.md\n * @includeDoc [Change Log] ../history.md\n * @header [../readme.md]\n */\n\n\"use strict\";\nvar extd = require(\"./extended\"),\n fs = require(\"fs\"),\n path = require(\"path\"),\n compile = require(\"./compile\"),\n FlowContainer = require(\"./flowContainer\");\n\nfunction isNoolsFile(file) {\n return (/\\.nools$/).test(file);\n}\n\nfunction parse(source) {\n var ret;\n if (isNoolsFile(source)) {\n ret = compile.parse(fs.readFileSync(source, \"utf8\"), source);\n } else {\n ret = compile.parse(source);\n }\n return ret;\n}\n\nexports.Flow = FlowContainer;\n\nexports.getFlow = FlowContainer.getFlow;\nexports.hasFlow = FlowContainer.hasFlow;\n\nexports.deleteFlow = function (name) {\n FlowContainer.deleteFlow(name);\n return this;\n};\n\nexports.deleteFlows = function () {\n FlowContainer.deleteFlows();\n return this;\n};\n\nexports.flow = FlowContainer.create;\n\nexports.compile = function (file, options, cb) {\n if (extd.isFunction(options)) {\n cb = options;\n options = {};\n } else {\n options = options || {};\n }\n if (extd.isString(file)) {\n options.name = options.name || (isNoolsFile(file) ? path.basename(file, path.extname(file)) : null);\n file = parse(file);\n }\n if (!options.name) {\n throw new Error(\"Name required when compiling nools source\");\n }\n return compile.compile(file, options, cb, FlowContainer);\n};\n\nexports.transpile = function (file, options) {\n options = options || {};\n if (extd.isString(file)) {\n options.name = options.name || (isNoolsFile(file) ? path.basename(file, path.extname(file)) : null);\n file = parse(file);\n }\n return compile.transpile(file, options);\n};\n\nexports.parse = parse;","var declare = require(\"declare.js\");\ndeclare({\n\n instance: {\n constructor: function () {\n this.head = null;\n this.tail = null;\n this.length = null;\n },\n\n push: function (data) {\n var tail = this.tail, head = this.head, node = {data: data, prev: tail, next: null};\n if (tail) {\n this.tail.next = node;\n }\n this.tail = node;\n if (!head) {\n this.head = node;\n }\n this.length++;\n return node;\n },\n\n remove: function (node) {\n if (node.prev) {\n node.prev.next = node.next;\n } else {\n this.head = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n } else {\n this.tail = node.prev;\n }\n //node.data = node.prev = node.next = null;\n this.length--;\n },\n\n forEach: function (cb) {\n var head = {next: this.head};\n while ((head = head.next)) {\n cb(head.data);\n }\n },\n\n toArray: function () {\n var head = {next: this.head}, ret = [];\n while ((head = head.next)) {\n ret.push(head);\n }\n return ret;\n },\n\n removeByData: function (data) {\n var head = {next: this.head};\n while ((head = head.next)) {\n if (head.data === data) {\n this.remove(head);\n break;\n }\n }\n },\n\n getByData: function (data) {\n var head = {next: this.head};\n while ((head = head.next)) {\n if (head.data === data) {\n return head;\n }\n }\n },\n\n clear: function () {\n this.head = this.tail = null;\n this.length = 0;\n }\n\n }\n\n}).as(module);\n","/*global setImmediate, window, MessageChannel*/\nvar extd = require(\"./extended\");\nvar nextTick;\nif (typeof setImmediate === \"function\") {\n // In IE10, or use https://github.com/NobleJS/setImmediate\n if (typeof window !== \"undefined\") {\n nextTick = extd.bind(window, setImmediate);\n } else {\n nextTick = setImmediate;\n }\n} else if (typeof process !== \"undefined\") {\n // node\n nextTick = process.nextTick;\n} else if (typeof MessageChannel !== \"undefined\") {\n // modern browsers\n // http://www.nonblocking.io/2011/06/windownexttick.html\n var channel = new MessageChannel();\n // linked list of tasks (single, with head node)\n var head = {}, tail = head;\n channel.port1.onmessage = function () {\n head = head.next;\n var task = head.task;\n delete head.task;\n task();\n };\n nextTick = function (task) {\n tail = tail.next = {task: task};\n channel.port2.postMessage(0);\n };\n} else {\n // old browsers\n nextTick = function (task) {\n setTimeout(task, 0);\n };\n}\n\nmodule.exports = nextTick;","var Node = require(\"./node\"),\n intersection = require(\"../extended\").intersection;\n\nNode.extend({\n instance: {\n\n __propagatePaths: function (method, context) {\n var entrySet = this.__entrySet, i = entrySet.length, entry, outNode, paths, continuingPaths;\n while (--i > -1) {\n entry = entrySet[i];\n outNode = entry.key;\n paths = entry.value;\n if ((continuingPaths = intersection(paths, context.paths)).length) {\n outNode[method](context.clone(null, continuingPaths, null));\n }\n }\n },\n\n __propagateNoPaths: function (method, context) {\n var entrySet = this.__entrySet, i = entrySet.length;\n while (--i > -1) {\n entrySet[i].key[method](context);\n }\n },\n\n __propagate: function (method, context) {\n if (context.paths) {\n this.__propagatePaths(method, context);\n } else {\n this.__propagateNoPaths(method, context);\n }\n }\n }\n}).as(module);","var AlphaNode = require(\"./alphaNode\");\n\nAlphaNode.extend({\n instance: {\n\n constructor: function () {\n this._super(arguments);\n this.alias = this.constraint.get(\"alias\");\n },\n\n toString: function () {\n return \"AliasNode\" + this.__count;\n },\n\n assert: function (context) {\n return this.__propagate(\"assert\", context.set(this.alias, context.fact.object));\n },\n\n modify: function (context) {\n return this.__propagate(\"modify\", context.set(this.alias, context.fact.object));\n },\n\n retract: function (context) {\n return this.__propagate(\"retract\", context.set(this.alias, context.fact.object));\n },\n\n equal: function (other) {\n return other instanceof this._static && this.alias === other.alias;\n }\n }\n}).as(module);","\"use strict\";\nvar Node = require(\"./node\");\n\nNode.extend({\n instance: {\n constructor: function (constraint) {\n this._super([]);\n this.constraint = constraint;\n this.constraintAssert = this.constraint.assert;\n },\n\n toString: function () {\n return \"AlphaNode \" + this.__count;\n },\n\n equal: function (constraint) {\n return this.constraint.equal(constraint.constraint);\n }\n }\n}).as(module);","var extd = require(\"../extended\"),\n keys = extd.hash.keys,\n Node = require(\"./node\"),\n LeftMemory = require(\"./misc/leftMemory\"), RightMemory = require(\"./misc/rightMemory\");\n\nNode.extend({\n\n instance: {\n\n nodeType: \"BetaNode\",\n\n constructor: function () {\n this._super([]);\n this.leftMemory = {};\n this.rightMemory = {};\n this.leftTuples = new LeftMemory();\n this.rightTuples = new RightMemory();\n },\n\n __propagate: function (method, context) {\n var entrySet = this.__entrySet, i = entrySet.length, entry, outNode;\n while (--i > -1) {\n entry = entrySet[i];\n outNode = entry.key;\n outNode[method](context);\n }\n },\n\n dispose: function () {\n this.leftMemory = {};\n this.rightMemory = {};\n this.leftTuples.clear();\n this.rightTuples.clear();\n },\n\n disposeLeft: function (fact) {\n this.leftMemory = {};\n this.leftTuples.clear();\n this.propagateDispose(fact);\n },\n\n disposeRight: function (fact) {\n this.rightMemory = {};\n this.rightTuples.clear();\n this.propagateDispose(fact);\n },\n\n hashCode: function () {\n return this.nodeType + \" \" + this.__count;\n },\n\n toString: function () {\n return this.nodeType + \" \" + this.__count;\n },\n\n retractLeft: function (context) {\n context = this.removeFromLeftMemory(context).data;\n var rightMatches = context.rightMatches,\n hashCodes = keys(rightMatches),\n i = -1,\n l = hashCodes.length;\n while (++i < l) {\n this.__propagate(\"retract\", rightMatches[hashCodes[i]].clone());\n }\n },\n\n retractRight: function (context) {\n context = this.removeFromRightMemory(context).data;\n var leftMatches = context.leftMatches,\n hashCodes = keys(leftMatches),\n i = -1,\n l = hashCodes.length;\n while (++i < l) {\n this.__propagate(\"retract\", leftMatches[hashCodes[i]].clone());\n }\n },\n\n assertLeft: function (context) {\n this.__addToLeftMemory(context);\n var rm = this.rightTuples.getRightMemory(context), i = -1, l = rm.length;\n while (++i < l) {\n this.propagateFromLeft(context, rm[i].data);\n }\n },\n\n assertRight: function (context) {\n this.__addToRightMemory(context);\n var lm = this.leftTuples.getLeftMemory(context), i = -1, l = lm.length;\n while (++i < l) {\n this.propagateFromRight(context, lm[i].data);\n }\n },\n\n modifyLeft: function (context) {\n var previousContext = this.removeFromLeftMemory(context).data;\n this.__addToLeftMemory(context);\n var rm = this.rightTuples.getRightMemory(context), l = rm.length, i = -1, rightMatches;\n if (!l) {\n this.propagateRetractModifyFromLeft(previousContext);\n } else {\n rightMatches = previousContext.rightMatches;\n while (++i < l) {\n this.propagateAssertModifyFromLeft(context, rightMatches, rm[i].data);\n }\n\n }\n },\n\n modifyRight: function (context) {\n var previousContext = this.removeFromRightMemory(context).data;\n this.__addToRightMemory(context);\n var lm = this.leftTuples.getLeftMemory(context);\n if (!lm.length) {\n this.propagateRetractModifyFromRight(previousContext);\n } else {\n var leftMatches = previousContext.leftMatches, i = -1, l = lm.length;\n while (++i < l) {\n this.propagateAssertModifyFromRight(context, leftMatches, lm[i].data);\n }\n }\n },\n\n propagateFromLeft: function (context, rc) {\n this.__propagate(\"assert\", this.__addToMemoryMatches(rc, context, context.clone(null, null, context.match.merge(rc.match))));\n },\n\n propagateFromRight: function (context, lc) {\n this.__propagate(\"assert\", this.__addToMemoryMatches(context, lc, lc.clone(null, null, lc.match.merge(context.match))));\n },\n\n propagateRetractModifyFromLeft: function (context) {\n var rightMatches = context.rightMatches,\n hashCodes = keys(rightMatches),\n l = hashCodes.length,\n i = -1;\n while (++i < l) {\n this.__propagate(\"retract\", rightMatches[hashCodes[i]].clone());\n }\n },\n\n propagateRetractModifyFromRight: function (context) {\n var leftMatches = context.leftMatches,\n hashCodes = keys(leftMatches),\n l = hashCodes.length,\n i = -1;\n while (++i < l) {\n this.__propagate(\"retract\", leftMatches[hashCodes[i]].clone());\n }\n },\n\n propagateAssertModifyFromLeft: function (context, rightMatches, rm) {\n var factId = rm.hashCode;\n if (factId in rightMatches) {\n this.__propagate(\"modify\", this.__addToMemoryMatches(rm, context, context.clone(null, null, context.match.merge(rm.match))));\n } else {\n this.propagateFromLeft(context, rm);\n }\n },\n\n propagateAssertModifyFromRight: function (context, leftMatches, lm) {\n var factId = lm.hashCode;\n if (factId in leftMatches) {\n this.__propagate(\"modify\", this.__addToMemoryMatches(context, lm, context.clone(null, null, lm.match.merge(context.match))));\n } else {\n this.propagateFromRight(context, lm);\n }\n },\n\n removeFromRightMemory: function (context) {\n var hashCode = context.hashCode, ret;\n context = this.rightMemory[hashCode] || null;\n var tuples = this.rightTuples;\n if (context) {\n var leftMemory = this.leftMemory;\n ret = context.data;\n var leftMatches = ret.leftMatches;\n tuples.remove(context);\n var hashCodes = keys(leftMatches), i = -1, l = hashCodes.length;\n while (++i < l) {\n delete leftMemory[hashCodes[i]].data.rightMatches[hashCode];\n }\n delete this.rightMemory[hashCode];\n }\n return context;\n },\n\n removeFromLeftMemory: function (context) {\n var hashCode = context.hashCode;\n context = this.leftMemory[hashCode] || null;\n if (context) {\n var rightMemory = this.rightMemory;\n var rightMatches = context.data.rightMatches;\n this.leftTuples.remove(context);\n var hashCodes = keys(rightMatches), i = -1, l = hashCodes.length;\n while (++i < l) {\n delete rightMemory[hashCodes[i]].data.leftMatches[hashCode];\n }\n delete this.leftMemory[hashCode];\n }\n return context;\n },\n\n getRightMemoryMatches: function (context) {\n var lm = this.leftMemory[context.hashCode], ret = {};\n if (lm) {\n ret = lm.rightMatches;\n }\n return ret;\n },\n\n __addToMemoryMatches: function (rightContext, leftContext, createdContext) {\n var rightFactId = rightContext.hashCode,\n rm = this.rightMemory[rightFactId],\n lm, leftFactId = leftContext.hashCode;\n if (rm) {\n rm = rm.data;\n if (leftFactId in rm.leftMatches) {\n throw new Error(\"Duplicate left fact entry\");\n }\n rm.leftMatches[leftFactId] = createdContext;\n }\n lm = this.leftMemory[leftFactId];\n if (lm) {\n lm = lm.data;\n if (rightFactId in lm.rightMatches) {\n throw new Error(\"Duplicate right fact entry\");\n }\n lm.rightMatches[rightFactId] = createdContext;\n }\n return createdContext;\n },\n\n __addToRightMemory: function (context) {\n var hashCode = context.hashCode, rm = this.rightMemory;\n if (hashCode in rm) {\n return false;\n }\n rm[hashCode] = this.rightTuples.push(context);\n context.leftMatches = {};\n return true;\n },\n\n\n __addToLeftMemory: function (context) {\n var hashCode = context.hashCode, lm = this.leftMemory;\n if (hashCode in lm) {\n return false;\n }\n lm[hashCode] = this.leftTuples.push(context);\n context.rightMatches = {};\n return true;\n }\n }\n\n}).as(module);","var AlphaNode = require(\"./alphaNode\");\n\nAlphaNode.extend({\n instance: {\n\n constructor: function () {\n this.memory = {};\n this._super(arguments);\n this.constraintAssert = this.constraint.assert;\n },\n\n assert: function (context) {\n if ((this.memory[context.pathsHash] = this.constraintAssert(context.factHash))) {\n this.__propagate(\"assert\", context);\n }\n },\n\n modify: function (context) {\n var memory = this.memory,\n hashCode = context.pathsHash,\n wasMatch = memory[hashCode];\n if ((memory[hashCode] = this.constraintAssert(context.factHash))) {\n this.__propagate(wasMatch ? \"modify\" : \"assert\", context);\n } else if (wasMatch) {\n this.__propagate(\"retract\", context);\n }\n },\n\n retract: function (context) {\n var hashCode = context.pathsHash,\n memory = this.memory;\n if (memory[hashCode]) {\n this.__propagate(\"retract\", context);\n }\n delete memory[hashCode];\n },\n\n toString: function () {\n return \"EqualityNode\" + this.__count;\n }\n }\n}).as(module);","var FromNotNode = require(\"./fromNotNode\"),\n extd = require(\"../extended\"),\n Context = require(\"../context\"),\n isDefined = extd.isDefined,\n isArray = extd.isArray;\n\nFromNotNode.extend({\n instance: {\n\n nodeType: \"ExistsFromNode\",\n\n retractLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context);\n if (ctx) {\n ctx = ctx.data;\n if (ctx.blocked) {\n this.__propagate(\"retract\", ctx.clone());\n }\n }\n },\n\n __modify: function (context, leftContext) {\n var leftContextBlocked = leftContext.blocked;\n var fh = context.factHash, o = this.from(fh);\n if (isArray(o)) {\n for (var i = 0, l = o.length; i < l; i++) {\n if (this.__isMatch(context, o[i], true)) {\n context.blocked = true;\n break;\n }\n }\n } else if (isDefined(o)) {\n context.blocked = this.__isMatch(context, o, true);\n }\n var newContextBlocked = context.blocked;\n if (newContextBlocked) {\n if (leftContextBlocked) {\n this.__propagate(\"modify\", context.clone());\n } else {\n this.__propagate(\"assert\", context.clone());\n }\n } else if (leftContextBlocked) {\n this.__propagate(\"retract\", context.clone());\n }\n\n },\n\n __findMatches: function (context) {\n var fh = context.factHash, o = this.from(fh), isMatch = false;\n if (isArray(o)) {\n for (var i = 0, l = o.length; i < l; i++) {\n if (this.__isMatch(context, o[i], true)) {\n context.blocked = true;\n this.__propagate(\"assert\", context.clone());\n return;\n }\n }\n } else if (isDefined(o) && (this.__isMatch(context, o, true))) {\n context.blocked = true;\n this.__propagate(\"assert\", context.clone());\n }\n return isMatch;\n },\n\n __isMatch: function (oc, o, add) {\n var ret = false;\n if (this.type(o)) {\n var createdFact = this.workingMemory.getFactHandle(o);\n var context = new Context(createdFact, null, null)\n .mergeMatch(oc.match)\n .set(this.alias, o);\n if (add) {\n var fm = this.fromMemory[createdFact.id];\n if (!fm) {\n fm = this.fromMemory[createdFact.id] = {};\n }\n fm[oc.hashCode] = oc;\n }\n var fh = context.factHash;\n var eqConstraints = this.__equalityConstraints;\n for (var i = 0, l = eqConstraints.length; i < l; i++) {\n if (eqConstraints[i](fh)) {\n ret = true;\n } else {\n ret = false;\n break;\n }\n }\n }\n return ret;\n },\n\n assertLeft: function (context) {\n this.__addToLeftMemory(context);\n this.__findMatches(context);\n }\n\n }\n}).as(module);","var NotNode = require(\"./notNode\"),\n LinkedList = require(\"../linkedList\");\n\n\nNotNode.extend({\n instance: {\n\n nodeType: \"ExistsNode\",\n\n blockedContext: function (leftContext, rightContext) {\n leftContext.blocker = rightContext;\n this.removeFromLeftMemory(leftContext);\n this.addToLeftBlockedMemory(rightContext.blocking.push(leftContext));\n this.__propagate(\"assert\", this.__cloneContext(leftContext));\n },\n\n notBlockedContext: function (leftContext, propagate) {\n this.__addToLeftMemory(leftContext);\n propagate && this.__propagate(\"retract\", this.__cloneContext(leftContext));\n },\n\n propagateFromLeft: function (leftContext) {\n this.notBlockedContext(leftContext, false);\n },\n\n\n retractLeft: function (context) {\n var ctx;\n if (!this.removeFromLeftMemory(context)) {\n if ((ctx = this.removeFromLeftBlockedMemory(context))) {\n this.__propagate(\"retract\", this.__cloneContext(ctx.data));\n } else {\n throw new Error();\n }\n }\n },\n \n modifyLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context),\n leftContext,\n thisConstraint = this.constraint,\n rightTuples = this.rightTuples,\n l = rightTuples.length,\n isBlocked = false,\n node, rc, blocker;\n if (!ctx) {\n //blocked before\n ctx = this.removeFromLeftBlockedMemory(context);\n isBlocked = true;\n }\n if (ctx) {\n leftContext = ctx.data;\n\n if (leftContext && leftContext.blocker) {\n //we were blocked before so only check nodes previous to our blocker\n blocker = this.rightMemory[leftContext.blocker.hashCode];\n }\n if (blocker) {\n if (thisConstraint.isMatch(context, rc = blocker.data)) {\n //propogate as a modify or assert\n this.__propagate(!isBlocked ? \"assert\" : \"modify\", this.__cloneContext(leftContext));\n context.blocker = rc;\n this.addToLeftBlockedMemory(rc.blocking.push(context));\n context = null;\n }\n if (context) {\n node = {next: blocker.next};\n }\n } else {\n node = {next: rightTuples.head};\n }\n if (context && l) {\n node = {next: rightTuples.head};\n //we were propagated before\n while ((node = node.next)) {\n if (thisConstraint.isMatch(context, rc = node.data)) {\n //we cant be proagated so retract previous\n\n //we were asserted before so retract\n this.__propagate(!isBlocked ? \"assert\" : \"modify\", this.__cloneContext(leftContext));\n\n this.addToLeftBlockedMemory(rc.blocking.push(context));\n context.blocker = rc;\n context = null;\n break;\n }\n }\n }\n if (context) {\n //we can still be propogated\n this.__addToLeftMemory(context);\n if (isBlocked) {\n //we were blocked so retract\n this.__propagate(\"retract\", this.__cloneContext(context));\n }\n\n }\n } else {\n throw new Error();\n }\n\n },\n\n modifyRight: function (context) {\n var ctx = this.removeFromRightMemory(context);\n if (ctx) {\n var rightContext = ctx.data,\n leftTuples = this.leftTuples,\n leftTuplesLength = leftTuples.length,\n leftContext,\n thisConstraint = this.constraint,\n node,\n blocking = rightContext.blocking;\n this.__addToRightMemory(context);\n context.blocking = new LinkedList();\n if (leftTuplesLength || blocking.length) {\n if (blocking.length) {\n var rc;\n //check old blocked contexts\n //check if the same contexts blocked before are still blocked\n var blockingNode = {next: blocking.head};\n while ((blockingNode = blockingNode.next)) {\n leftContext = blockingNode.data;\n leftContext.blocker = null;\n if (thisConstraint.isMatch(leftContext, context)) {\n leftContext.blocker = context;\n this.addToLeftBlockedMemory(context.blocking.push(leftContext));\n this.__propagate(\"assert\", this.__cloneContext(leftContext));\n leftContext = null;\n } else {\n //we arent blocked anymore\n leftContext.blocker = null;\n node = ctx;\n while ((node = node.next)) {\n if (thisConstraint.isMatch(leftContext, rc = node.data)) {\n leftContext.blocker = rc;\n this.addToLeftBlockedMemory(rc.blocking.push(leftContext));\n this.__propagate(\"assert\", this.__cloneContext(leftContext));\n leftContext = null;\n break;\n }\n }\n if (leftContext) {\n this.__addToLeftMemory(leftContext);\n }\n }\n }\n }\n\n if (leftTuplesLength) {\n //check currently left tuples in memory\n node = {next: leftTuples.head};\n while ((node = node.next)) {\n leftContext = node.data;\n if (thisConstraint.isMatch(leftContext, context)) {\n this.__propagate(\"assert\", this.__cloneContext(leftContext));\n this.removeFromLeftMemory(leftContext);\n this.addToLeftBlockedMemory(context.blocking.push(leftContext));\n leftContext.blocker = context;\n }\n }\n }\n\n\n }\n } else {\n throw new Error();\n }\n\n\n }\n }\n}).as(module);","var JoinNode = require(\"./joinNode\"),\n extd = require(\"../extended\"),\n constraint = require(\"../constraint\"),\n EqualityConstraint = constraint.EqualityConstraint,\n HashConstraint = constraint.HashConstraint,\n ReferenceConstraint = constraint.ReferenceConstraint,\n Context = require(\"../context\"),\n isDefined = extd.isDefined,\n isEmpty = extd.isEmpty,\n forEach = extd.forEach,\n isArray = extd.isArray;\n\nvar DEFAULT_MATCH = {\n isMatch: function () {\n return false;\n }\n};\n\nJoinNode.extend({\n instance: {\n\n nodeType: \"FromNode\",\n\n constructor: function (pattern, wm) {\n this._super(arguments);\n this.workingMemory = wm;\n this.fromMemory = {};\n this.pattern = pattern;\n this.type = pattern.get(\"constraints\")[0].assert;\n this.alias = pattern.get(\"alias\");\n this.from = pattern.from.assert;\n var eqConstraints = this.__equalityConstraints = [];\n var vars = [];\n forEach(this.constraints = this.pattern.get(\"constraints\").slice(1), function (c) {\n if (c instanceof EqualityConstraint || c instanceof ReferenceConstraint) {\n eqConstraints.push(c.assert);\n } else if (c instanceof HashConstraint) {\n vars = vars.concat(c.get(\"variables\"));\n }\n });\n this.__variables = vars;\n },\n\n __createMatches: function (context) {\n var fh = context.factHash, o = this.from(fh);\n if (isArray(o)) {\n for (var i = 0, l = o.length; i < l; i++) {\n this.__checkMatch(context, o[i], true);\n }\n } else if (isDefined(o)) {\n this.__checkMatch(context, o, true);\n }\n },\n\n __checkMatch: function (context, o, propogate) {\n var newContext;\n if ((newContext = this.__createMatch(context, o)).isMatch() && propogate) {\n this.__propagate(\"assert\", newContext.clone());\n }\n return newContext;\n },\n\n __createMatch: function (lc, o) {\n if (this.type(o)) {\n var createdFact = this.workingMemory.getFactHandle(o, true),\n createdContext,\n rc = new Context(createdFact, null, null)\n .set(this.alias, o),\n createdFactId = createdFact.id;\n var fh = rc.factHash, lcFh = lc.factHash;\n for (var key in lcFh) {\n fh[key] = lcFh[key];\n }\n var eqConstraints = this.__equalityConstraints, vars = this.__variables, i = -1, l = eqConstraints.length;\n while (++i < l) {\n if (!eqConstraints[i](fh, fh)) {\n createdContext = DEFAULT_MATCH;\n break;\n }\n }\n var fm = this.fromMemory[createdFactId];\n if (!fm) {\n fm = this.fromMemory[createdFactId] = {};\n }\n if (!createdContext) {\n var prop;\n i = -1;\n l = vars.length;\n while (++i < l) {\n prop = vars[i];\n fh[prop] = o[prop];\n }\n lc.fromMatches[createdFact.id] = createdContext = rc.clone(createdFact, null, lc.match.merge(rc.match));\n }\n fm[lc.hashCode] = [lc, createdContext];\n return createdContext;\n }\n return DEFAULT_MATCH;\n },\n\n retractRight: function () {\n throw new Error(\"Shouldnt have gotten here\");\n },\n\n removeFromFromMemory: function (context) {\n var factId = context.fact.id;\n var fm = this.fromMemory[factId];\n if (fm) {\n var entry;\n for (var i in fm) {\n entry = fm[i];\n if (entry[1] === context) {\n delete fm[i];\n if (isEmpty(fm)) {\n delete this.fromMemory[factId];\n }\n break;\n }\n }\n }\n\n },\n\n retractLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context);\n if (ctx) {\n ctx = ctx.data;\n var fromMatches = ctx.fromMatches;\n for (var i in fromMatches) {\n this.removeFromFromMemory(fromMatches[i]);\n this.__propagate(\"retract\", fromMatches[i].clone());\n }\n }\n },\n\n modifyLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context), newContext, i, l, factId, fact;\n if (ctx) {\n this.__addToLeftMemory(context);\n\n var leftContext = ctx.data,\n fromMatches = (context.fromMatches = {}),\n rightMatches = leftContext.fromMatches,\n o = this.from(context.factHash);\n\n if (isArray(o)) {\n for (i = 0, l = o.length; i < l; i++) {\n newContext = this.__checkMatch(context, o[i], false);\n if (newContext.isMatch()) {\n factId = newContext.fact.id;\n if (factId in rightMatches) {\n this.__propagate(\"modify\", newContext.clone());\n } else {\n this.__propagate(\"assert\", newContext.clone());\n }\n }\n }\n } else if (isDefined(o)) {\n newContext = this.__checkMatch(context, o, false);\n if (newContext.isMatch()) {\n factId = newContext.fact.id;\n if (factId in rightMatches) {\n this.__propagate(\"modify\", newContext.clone());\n } else {\n this.__propagate(\"assert\", newContext.clone());\n }\n }\n }\n for (i in rightMatches) {\n if (!(i in fromMatches)) {\n this.removeFromFromMemory(rightMatches[i]);\n this.__propagate(\"retract\", rightMatches[i].clone());\n }\n }\n } else {\n this.assertLeft(context);\n }\n fact = context.fact;\n factId = fact.id;\n var fm = this.fromMemory[factId];\n this.fromMemory[factId] = {};\n if (fm) {\n var lc, entry, cc, createdIsMatch, factObject = fact.object;\n for (i in fm) {\n entry = fm[i];\n lc = entry[0];\n cc = entry[1];\n createdIsMatch = cc.isMatch();\n if (lc.hashCode !== context.hashCode) {\n newContext = this.__createMatch(lc, factObject, false);\n if (createdIsMatch) {\n this.__propagate(\"retract\", cc.clone());\n }\n if (newContext.isMatch()) {\n this.__propagate(createdIsMatch ? \"modify\" : \"assert\", newContext.clone());\n }\n\n }\n }\n }\n },\n\n assertLeft: function (context) {\n this.__addToLeftMemory(context);\n context.fromMatches = {};\n this.__createMatches(context);\n },\n\n assertRight: function () {\n throw new Error(\"Shouldnt have gotten here\");\n }\n\n }\n}).as(module);","var JoinNode = require(\"./joinNode\"),\n extd = require(\"../extended\"),\n constraint = require(\"../constraint\"),\n EqualityConstraint = constraint.EqualityConstraint,\n HashConstraint = constraint.HashConstraint,\n ReferenceConstraint = constraint.ReferenceConstraint,\n Context = require(\"../context\"),\n isDefined = extd.isDefined,\n forEach = extd.forEach,\n isArray = extd.isArray;\n\nJoinNode.extend({\n instance: {\n\n nodeType: \"FromNotNode\",\n\n constructor: function (pattern, workingMemory) {\n this._super(arguments);\n this.workingMemory = workingMemory;\n this.pattern = pattern;\n this.type = pattern.get(\"constraints\")[0].assert;\n this.alias = pattern.get(\"alias\");\n this.from = pattern.from.assert;\n this.fromMemory = {};\n var eqConstraints = this.__equalityConstraints = [];\n var vars = [];\n forEach(this.constraints = this.pattern.get(\"constraints\").slice(1), function (c) {\n if (c instanceof EqualityConstraint || c instanceof ReferenceConstraint) {\n eqConstraints.push(c.assert);\n } else if (c instanceof HashConstraint) {\n vars = vars.concat(c.get(\"variables\"));\n }\n });\n this.__variables = vars;\n\n },\n\n retractLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context);\n if (ctx) {\n ctx = ctx.data;\n if (!ctx.blocked) {\n this.__propagate(\"retract\", ctx.clone());\n }\n }\n },\n\n __modify: function (context, leftContext) {\n var leftContextBlocked = leftContext.blocked;\n var fh = context.factHash, o = this.from(fh);\n if (isArray(o)) {\n for (var i = 0, l = o.length; i < l; i++) {\n if (this.__isMatch(context, o[i], true)) {\n context.blocked = true;\n break;\n }\n }\n } else if (isDefined(o)) {\n context.blocked = this.__isMatch(context, o, true);\n }\n var newContextBlocked = context.blocked;\n if (!newContextBlocked) {\n if (leftContextBlocked) {\n this.__propagate(\"assert\", context.clone());\n } else {\n this.__propagate(\"modify\", context.clone());\n }\n } else if (!leftContextBlocked) {\n this.__propagate(\"retract\", leftContext.clone());\n }\n\n },\n\n modifyLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context);\n if (ctx) {\n this.__addToLeftMemory(context);\n this.__modify(context, ctx.data);\n } else {\n throw new Error();\n }\n var fm = this.fromMemory[context.fact.id];\n this.fromMemory[context.fact.id] = {};\n if (fm) {\n for (var i in fm) {\n // update any contexts associated with this fact\n if (i !== context.hashCode) {\n var lc = fm[i];\n ctx = this.removeFromLeftMemory(lc);\n if (ctx) {\n lc = lc.clone();\n lc.blocked = false;\n this.__addToLeftMemory(lc);\n this.__modify(lc, ctx.data);\n }\n }\n }\n }\n },\n\n __findMatches: function (context) {\n var fh = context.factHash, o = this.from(fh), isMatch = false;\n if (isArray(o)) {\n for (var i = 0, l = o.length; i < l; i++) {\n if (this.__isMatch(context, o[i], true)) {\n context.blocked = true;\n return;\n }\n }\n this.__propagate(\"assert\", context.clone());\n } else if (isDefined(o) && !(context.blocked = this.__isMatch(context, o, true))) {\n this.__propagate(\"assert\", context.clone());\n }\n return isMatch;\n },\n\n __isMatch: function (oc, o, add) {\n var ret = false;\n if (this.type(o)) {\n var createdFact = this.workingMemory.getFactHandle(o);\n var context = new Context(createdFact, null)\n .mergeMatch(oc.match)\n .set(this.alias, o);\n if (add) {\n var fm = this.fromMemory[createdFact.id];\n if (!fm) {\n fm = this.fromMemory[createdFact.id] = {};\n }\n fm[oc.hashCode] = oc;\n }\n var fh = context.factHash;\n var eqConstraints = this.__equalityConstraints;\n for (var i = 0, l = eqConstraints.length; i < l; i++) {\n if (eqConstraints[i](fh, fh)) {\n ret = true;\n } else {\n ret = false;\n break;\n }\n }\n }\n return ret;\n },\n\n assertLeft: function (context) {\n this.__addToLeftMemory(context);\n this.__findMatches(context);\n },\n\n assertRight: function () {\n throw new Error(\"Shouldnt have gotten here\");\n },\n\n retractRight: function () {\n throw new Error(\"Shouldnt have gotten here\");\n }\n\n }\n}).as(module);","\"use strict\";\nvar extd = require(\"../extended\"),\n forEach = extd.forEach,\n some = extd.some,\n declare = extd.declare,\n pattern = require(\"../pattern.js\"),\n ObjectPattern = pattern.ObjectPattern,\n FromPattern = pattern.FromPattern,\n FromNotPattern = pattern.FromNotPattern,\n ExistsPattern = pattern.ExistsPattern,\n FromExistsPattern = pattern.FromExistsPattern,\n NotPattern = pattern.NotPattern,\n CompositePattern = pattern.CompositePattern,\n InitialFactPattern = pattern.InitialFactPattern,\n constraints = require(\"../constraint\"),\n HashConstraint = constraints.HashConstraint,\n ReferenceConstraint = constraints.ReferenceConstraint,\n AliasNode = require(\"./aliasNode\"),\n EqualityNode = require(\"./equalityNode\"),\n JoinNode = require(\"./joinNode\"),\n BetaNode = require(\"./betaNode\"),\n NotNode = require(\"./notNode\"),\n FromNode = require(\"./fromNode\"),\n FromNotNode = require(\"./fromNotNode\"),\n ExistsNode = require(\"./existsNode\"),\n ExistsFromNode = require(\"./existsFromNode\"),\n LeftAdapterNode = require(\"./leftAdapterNode\"),\n RightAdapterNode = require(\"./rightAdapterNode\"),\n TypeNode = require(\"./typeNode\"),\n TerminalNode = require(\"./terminalNode\"),\n PropertyNode = require(\"./propertyNode\");\n\nfunction hasRefernceConstraints(pattern) {\n return some(pattern.constraints || [], function (c) {\n return c instanceof ReferenceConstraint;\n });\n}\n\ndeclare({\n instance: {\n constructor: function (wm, agendaTree) {\n this.terminalNodes = [];\n this.joinNodes = [];\n this.nodes = [];\n this.constraints = [];\n this.typeNodes = [];\n this.__ruleCount = 0;\n this.bucket = {\n counter: 0,\n recency: 0\n };\n this.agendaTree = agendaTree;\n this.workingMemory = wm;\n },\n\n assertRule: function (rule) {\n var terminalNode = new TerminalNode(this.bucket, this.__ruleCount++, rule, this.agendaTree);\n this.__addToNetwork(rule, rule.pattern, terminalNode);\n this.__mergeJoinNodes();\n this.terminalNodes.push(terminalNode);\n },\n\n resetCounter: function () {\n this.bucket.counter = 0;\n },\n\n incrementCounter: function () {\n this.bucket.counter++;\n },\n\n assertFact: function (fact) {\n var typeNodes = this.typeNodes, i = typeNodes.length - 1;\n for (; i >= 0; i--) {\n typeNodes[i].assert(fact);\n }\n },\n\n retractFact: function (fact) {\n var typeNodes = this.typeNodes, i = typeNodes.length - 1;\n for (; i >= 0; i--) {\n typeNodes[i].retract(fact);\n }\n },\n\n modifyFact: function (fact) {\n var typeNodes = this.typeNodes, i = typeNodes.length - 1;\n for (; i >= 0; i--) {\n typeNodes[i].modify(fact);\n }\n },\n\n\n containsRule: function (name) {\n return some(this.terminalNodes, function (n) {\n return n.rule.name === name;\n });\n },\n\n dispose: function () {\n var typeNodes = this.typeNodes, i = typeNodes.length - 1;\n for (; i >= 0; i--) {\n typeNodes[i].dispose();\n }\n },\n\n __mergeJoinNodes: function () {\n var joinNodes = this.joinNodes;\n for (var i = 0; i < joinNodes.length; i++) {\n var j1 = joinNodes[i], j2 = joinNodes[i + 1];\n if (j1 && j2 && (j1.constraint && j2.constraint && j1.constraint.equal(j2.constraint))) {\n j1.merge(j2);\n joinNodes.splice(i + 1, 1);\n }\n }\n },\n\n __checkEqual: function (node) {\n var constraints = this.constraints, i = constraints.length - 1;\n for (; i >= 0; i--) {\n var n = constraints[i];\n if (node.equal(n)) {\n return n;\n }\n }\n constraints.push(node);\n return node;\n },\n\n __createTypeNode: function (rule, pattern) {\n var ret = new TypeNode(pattern.get(\"constraints\")[0]);\n var constraints = this.typeNodes, i = constraints.length - 1;\n for (; i >= 0; i--) {\n var n = constraints[i];\n if (ret.equal(n)) {\n return n;\n }\n }\n constraints.push(ret);\n return ret;\n },\n\n __createEqualityNode: function (rule, constraint) {\n return this.__checkEqual(new EqualityNode(constraint)).addRule(rule);\n },\n\n __createPropertyNode: function (rule, constraint) {\n return this.__checkEqual(new PropertyNode(constraint)).addRule(rule);\n },\n\n __createAliasNode: function (rule, pattern) {\n return this.__checkEqual(new AliasNode(pattern)).addRule(rule);\n },\n\n __createAdapterNode: function (rule, side) {\n return (side === \"left\" ? new LeftAdapterNode() : new RightAdapterNode()).addRule(rule);\n },\n\n __createJoinNode: function (rule, pattern, outNode, side) {\n var joinNode;\n if (pattern.rightPattern instanceof NotPattern) {\n joinNode = new NotNode();\n } else if (pattern.rightPattern instanceof FromExistsPattern) {\n joinNode = new ExistsFromNode(pattern.rightPattern, this.workingMemory);\n } else if (pattern.rightPattern instanceof ExistsPattern) {\n joinNode = new ExistsNode();\n } else if (pattern.rightPattern instanceof FromNotPattern) {\n joinNode = new FromNotNode(pattern.rightPattern, this.workingMemory);\n } else if (pattern.rightPattern instanceof FromPattern) {\n joinNode = new FromNode(pattern.rightPattern, this.workingMemory);\n } else if (pattern instanceof CompositePattern && !hasRefernceConstraints(pattern.leftPattern) && !hasRefernceConstraints(pattern.rightPattern)) {\n joinNode = new BetaNode();\n this.joinNodes.push(joinNode);\n } else {\n joinNode = new JoinNode();\n this.joinNodes.push(joinNode);\n }\n joinNode[\"__rule__\"] = rule;\n var parentNode = joinNode;\n if (outNode instanceof BetaNode) {\n var adapterNode = this.__createAdapterNode(rule, side);\n parentNode.addOutNode(adapterNode, pattern);\n parentNode = adapterNode;\n }\n parentNode.addOutNode(outNode, pattern);\n return joinNode.addRule(rule);\n },\n\n __addToNetwork: function (rule, pattern, outNode, side) {\n if (pattern instanceof ObjectPattern) {\n if (!(pattern instanceof InitialFactPattern) && (!side || side === \"left\")) {\n this.__createBetaNode(rule, new CompositePattern(new InitialFactPattern(), pattern), outNode, side);\n } else {\n this.__createAlphaNode(rule, pattern, outNode, side);\n }\n } else if (pattern instanceof CompositePattern) {\n this.__createBetaNode(rule, pattern, outNode, side);\n }\n },\n\n __createBetaNode: function (rule, pattern, outNode, side) {\n var joinNode = this.__createJoinNode(rule, pattern, outNode, side);\n this.__addToNetwork(rule, pattern.rightPattern, joinNode, \"right\");\n this.__addToNetwork(rule, pattern.leftPattern, joinNode, \"left\");\n outNode.addParentNode(joinNode);\n return joinNode;\n },\n\n\n __createAlphaNode: function (rule, pattern, outNode, side) {\n var typeNode, parentNode;\n if (!(pattern instanceof FromPattern)) {\n\n var constraints = pattern.get(\"constraints\");\n typeNode = this.__createTypeNode(rule, pattern);\n var aliasNode = this.__createAliasNode(rule, pattern);\n typeNode.addOutNode(aliasNode, pattern);\n aliasNode.addParentNode(typeNode);\n parentNode = aliasNode;\n var i = constraints.length - 1;\n for (; i > 0; i--) {\n var constraint = constraints[i], node;\n if (constraint instanceof HashConstraint) {\n node = this.__createPropertyNode(rule, constraint);\n } else if (constraint instanceof ReferenceConstraint) {\n outNode.constraint.addConstraint(constraint);\n continue;\n } else {\n node = this.__createEqualityNode(rule, constraint);\n }\n parentNode.addOutNode(node, pattern);\n node.addParentNode(parentNode);\n parentNode = node;\n }\n\n if (outNode instanceof BetaNode) {\n var adapterNode = this.__createAdapterNode(rule, side);\n adapterNode.addParentNode(parentNode);\n parentNode.addOutNode(adapterNode, pattern);\n parentNode = adapterNode;\n }\n outNode.addParentNode(parentNode);\n parentNode.addOutNode(outNode, pattern);\n return typeNode;\n }\n },\n\n print: function () {\n forEach(this.terminalNodes, function (t) {\n t.print(\" \");\n });\n }\n }\n}).as(exports, \"RootNode\");\n\n\n\n\n\n","var BetaNode = require(\"./betaNode\"),\n JoinReferenceNode = require(\"./joinReferenceNode\");\n\nBetaNode.extend({\n\n instance: {\n constructor: function () {\n this._super(arguments);\n this.constraint = new JoinReferenceNode(this.leftTuples, this.rightTuples);\n },\n\n nodeType: \"JoinNode\",\n\n propagateFromLeft: function (context, rm) {\n var mr;\n if ((mr = this.constraint.match(context, rm)).isMatch) {\n this.__propagate(\"assert\", this.__addToMemoryMatches(rm, context, context.clone(null, null, mr)));\n }\n return this;\n },\n\n propagateFromRight: function (context, lm) {\n var mr;\n if ((mr = this.constraint.match(lm, context)).isMatch) {\n this.__propagate(\"assert\", this.__addToMemoryMatches(context, lm, context.clone(null, null, mr)));\n }\n return this;\n },\n\n propagateAssertModifyFromLeft: function (context, rightMatches, rm) {\n var factId = rm.hashCode, mr;\n if (factId in rightMatches) {\n mr = this.constraint.match(context, rm);\n var mrIsMatch = mr.isMatch;\n if (!mrIsMatch) {\n this.__propagate(\"retract\", rightMatches[factId].clone());\n } else {\n this.__propagate(\"modify\", this.__addToMemoryMatches(rm, context, context.clone(null, null, mr)));\n }\n } else {\n this.propagateFromLeft(context, rm);\n }\n },\n\n propagateAssertModifyFromRight: function (context, leftMatches, lm) {\n var factId = lm.hashCode, mr;\n if (factId in leftMatches) {\n mr = this.constraint.match(lm, context);\n var mrIsMatch = mr.isMatch;\n if (!mrIsMatch) {\n this.__propagate(\"retract\", leftMatches[factId].clone());\n } else {\n this.__propagate(\"modify\", this.__addToMemoryMatches(context, lm, context.clone(null, null, mr)));\n }\n } else {\n this.propagateFromRight(context, lm);\n }\n }\n }\n\n}).as(module);","var Node = require(\"./node\"),\n constraints = require(\"../constraint\"),\n ReferenceEqualityConstraint = constraints.ReferenceEqualityConstraint;\n\nvar DEFUALT_CONSTRAINT = {\n isDefault: true,\n assert: function () {\n return true;\n },\n\n equal: function () {\n return false;\n }\n};\n\nvar inversions = {\n \"gt\": \"lte\",\n \"gte\": \"lte\",\n \"lt\": \"gte\",\n \"lte\": \"gte\",\n \"eq\": \"eq\",\n \"neq\": \"neq\"\n};\n\nfunction normalizeRightIndexConstraint(rightIndex, indexes, op) {\n if (rightIndex === indexes[1]) {\n op = inversions[op];\n }\n return op;\n}\n\nfunction normalizeLeftIndexConstraint(leftIndex, indexes, op) {\n if (leftIndex === indexes[1]) {\n op = inversions[op];\n }\n return op;\n}\n\nNode.extend({\n\n instance: {\n\n constraint: DEFUALT_CONSTRAINT,\n\n constructor: function (leftMemory, rightMemory) {\n this._super(arguments);\n this.constraint = DEFUALT_CONSTRAINT;\n this.constraintAssert = DEFUALT_CONSTRAINT.assert;\n this.rightIndexes = [];\n this.leftIndexes = [];\n this.constraintLength = 0;\n this.leftMemory = leftMemory;\n this.rightMemory = rightMemory;\n },\n\n addConstraint: function (constraint) {\n if (constraint instanceof ReferenceEqualityConstraint) {\n var identifiers = constraint.getIndexableProperties();\n var alias = constraint.get(\"alias\");\n if (identifiers.length === 2 && alias) {\n var leftIndex, rightIndex, i = -1, indexes = [];\n while (++i < 2) {\n var index = identifiers[i];\n if (index.match(new RegExp(\"^\" + alias + \"(\\\\.?)\")) === null) {\n indexes.push(index);\n leftIndex = index;\n } else {\n indexes.push(index);\n rightIndex = index;\n }\n }\n if (leftIndex && rightIndex) {\n var leftOp = normalizeLeftIndexConstraint(leftIndex, indexes, constraint.op),\n rightOp = normalizeRightIndexConstraint(rightIndex, indexes, constraint.op);\n this.rightMemory.addIndex(rightIndex, leftIndex, rightOp);\n this.leftMemory.addIndex(leftIndex, rightIndex, leftOp);\n }\n }\n }\n if (this.constraint.isDefault) {\n this.constraint = constraint;\n this.isDefault = false;\n } else {\n this.constraint = this.constraint.merge(constraint);\n }\n this.constraintAssert = this.constraint.assert;\n\n },\n\n equal: function (constraint) {\n return this.constraint.equal(constraint.constraint);\n },\n\n isMatch: function (lc, rc) {\n return this.constraintAssert(lc.factHash, rc.factHash);\n },\n\n match: function (lc, rc) {\n var ret = {isMatch: false};\n if (this.constraintAssert(lc.factHash, rc.factHash)) {\n ret = lc.match.merge(rc.match);\n }\n return ret;\n }\n\n }\n\n}).as(module);","var Node = require(\"./adapterNode\");\n\nNode.extend({\n instance: {\n propagateAssert: function (context) {\n this.__propagate(\"assertLeft\", context);\n },\n\n propagateRetract: function (context) {\n this.__propagate(\"retractLeft\", context);\n },\n\n propagateResolve: function (context) {\n this.__propagate(\"retractResolve\", context);\n },\n\n propagateModify: function (context) {\n this.__propagate(\"modifyLeft\", context);\n },\n\n retractResolve: function (match) {\n this.__propagate(\"retractResolve\", match);\n },\n\n dispose: function (context) {\n this.propagateDispose(context);\n },\n\n toString: function () {\n return \"LeftAdapterNode \" + this.__count;\n }\n }\n\n}).as(module);","exports.getMemory = (function () {\n\n var pPush = Array.prototype.push, NPL = 0, EMPTY_ARRAY = [], NOT_POSSIBLES_HASH = {}, POSSIBLES_HASH = {}, PL = 0;\n\n function mergePossibleTuples(ret, a, l) {\n var val, j = 0, i = -1;\n if (PL < l) {\n while (PL && ++i < l) {\n if (POSSIBLES_HASH[(val = a[i]).hashCode]) {\n ret[j++] = val;\n PL--;\n }\n }\n } else {\n pPush.apply(ret, a);\n }\n PL = 0;\n POSSIBLES_HASH = {};\n }\n\n\n function mergeNotPossibleTuples(ret, a, l) {\n var val, j = 0, i = -1;\n if (NPL < l) {\n while (++i < l) {\n if (!NPL) {\n ret[j++] = a[i];\n } else if (!NOT_POSSIBLES_HASH[(val = a[i]).hashCode]) {\n ret[j++] = val;\n } else {\n NPL--;\n }\n }\n }\n NPL = 0;\n NOT_POSSIBLES_HASH = {};\n }\n\n function mergeBothTuples(ret, a, l) {\n if (PL === l) {\n mergeNotPossibles(ret, a, l);\n } else if (NPL < l) {\n var val, j = 0, i = -1, hashCode;\n while (++i < l) {\n if (!NOT_POSSIBLES_HASH[(hashCode = (val = a[i]).hashCode)] && POSSIBLES_HASH[hashCode]) {\n ret[j++] = val;\n }\n }\n }\n NPL = 0;\n NOT_POSSIBLES_HASH = {};\n PL = 0;\n POSSIBLES_HASH = {};\n }\n\n function mergePossiblesAndNotPossibles(a, l) {\n var ret = EMPTY_ARRAY;\n if (l) {\n if (NPL || PL) {\n ret = [];\n if (!NPL) {\n mergePossibleTuples(ret, a, l);\n } else if (!PL) {\n mergeNotPossibleTuples(ret, a, l);\n } else {\n mergeBothTuples(ret, a, l);\n }\n } else {\n ret = a;\n }\n }\n return ret;\n }\n\n function getRangeTuples(op, currEntry, val) {\n var ret;\n if (op === \"gt\") {\n ret = currEntry.findGT(val);\n } else if (op === \"gte\") {\n ret = currEntry.findGTE(val);\n } else if (op === \"lt\") {\n ret = currEntry.findLT(val);\n } else if (op === \"lte\") {\n ret = currEntry.findLTE(val);\n }\n return ret;\n }\n\n function mergeNotPossibles(tuples, tl) {\n if (tl) {\n var j = -1, hashCode;\n while (++j < tl) {\n hashCode = tuples[j].hashCode;\n if (!NOT_POSSIBLES_HASH[hashCode]) {\n NOT_POSSIBLES_HASH[hashCode] = true;\n NPL++;\n }\n }\n }\n }\n\n function mergePossibles(tuples, tl) {\n if (tl) {\n var j = -1, hashCode;\n while (++j < tl) {\n hashCode = tuples[j].hashCode;\n if (!POSSIBLES_HASH[hashCode]) {\n POSSIBLES_HASH[hashCode] = true;\n PL++;\n }\n }\n }\n }\n\n return function _getMemory(entry, factHash, indexes) {\n var i = -1, l = indexes.length,\n ret = entry.tuples,\n rl = ret.length,\n intersected = false,\n tables = entry.tables,\n index, val, op, nextEntry, currEntry, tuples, tl;\n while (++i < l && rl) {\n index = indexes[i];\n val = index[3](factHash);\n op = index[4];\n currEntry = tables[index[0]];\n if (op === \"eq\" || op === \"seq\") {\n if ((nextEntry = currEntry.get(val))) {\n rl = (ret = (entry = nextEntry).tuples).length;\n tables = nextEntry.tables;\n } else {\n rl = (ret = EMPTY_ARRAY).length;\n }\n } else if (op === \"neq\" || op === \"sneq\") {\n if ((nextEntry = currEntry.get(val))) {\n tl = (tuples = nextEntry.tuples).length;\n mergeNotPossibles(tuples, tl);\n }\n } else if (!intersected) {\n rl = (ret = getRangeTuples(op, currEntry, val)).length;\n intersected = true;\n } else if ((tl = (tuples = getRangeTuples(op, currEntry, val)).length)) {\n mergePossibles(tuples, tl);\n } else {\n ret = tuples;\n rl = tl;\n }\n }\n return mergePossiblesAndNotPossibles(ret, rl);\n };\n}());","var Memory = require(\"./memory\");\n\nMemory.extend({\n\n instance: {\n\n getLeftMemory: function (tuple) {\n return this.getMemory(tuple);\n }\n }\n\n}).as(module);","var extd = require(\"../../extended\"),\n plucker = extd.plucker,\n declare = extd.declare,\n getMemory = require(\"./helpers\").getMemory,\n Table = require(\"./table\"),\n TupleEntry = require(\"./tupleEntry\");\n\n\nvar id = 0;\ndeclare({\n\n instance: {\n length: 0,\n\n constructor: function () {\n this.head = null;\n this.tail = null;\n this.indexes = [];\n this.tables = new TupleEntry(null, new Table(), false);\n },\n\n push: function (data) {\n var tail = this.tail, head = this.head, node = {data: data, tuples: [], hashCode: id++, prev: tail, next: null};\n if (tail) {\n this.tail.next = node;\n }\n this.tail = node;\n if (!head) {\n this.head = node;\n }\n this.length++;\n this.__index(node);\n this.tables.addNode(node);\n return node;\n },\n\n remove: function (node) {\n if (node.prev) {\n node.prev.next = node.next;\n } else {\n this.head = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n } else {\n this.tail = node.prev;\n }\n this.tables.removeNode(node);\n this.__removeFromIndex(node);\n this.length--;\n },\n\n forEach: function (cb) {\n var head = {next: this.head};\n while ((head = head.next)) {\n cb(head.data);\n }\n },\n\n toArray: function () {\n return this.tables.tuples.slice();\n },\n\n clear: function () {\n this.head = this.tail = null;\n this.length = 0;\n this.clearIndexes();\n },\n\n clearIndexes: function () {\n this.tables = {};\n this.indexes.length = 0;\n },\n\n __index: function (node) {\n var data = node.data,\n factHash = data.factHash,\n indexes = this.indexes,\n entry = this.tables,\n i = -1, l = indexes.length,\n tuples, index, val, path, tables, currEntry, prevLookup;\n while (++i < l) {\n index = indexes[i];\n val = index[2](factHash);\n path = index[0];\n tables = entry.tables;\n if (!(tuples = (currEntry = tables[path] || (tables[path] = new Table())).get(val))) {\n tuples = new TupleEntry(val, currEntry, true);\n currEntry.set(val, tuples);\n }\n if (currEntry !== prevLookup) {\n node.tuples.push(tuples.addNode(node));\n }\n prevLookup = currEntry;\n if (index[4] === \"eq\") {\n entry = tuples;\n }\n }\n },\n\n __removeFromIndex: function (node) {\n var tuples = node.tuples, i = tuples.length;\n while (--i >= 0) {\n tuples[i].removeNode(node);\n }\n node.tuples.length = 0;\n },\n\n getMemory: function (tuple) {\n var ret;\n if (!this.length) {\n ret = [];\n } else {\n ret = getMemory(this.tables, tuple.factHash, this.indexes);\n }\n return ret;\n },\n\n __createIndexTree: function () {\n var table = this.tables.tables = {};\n var indexes = this.indexes;\n table[indexes[0][0]] = new Table();\n },\n\n\n addIndex: function (primary, lookup, op) {\n this.indexes.push([primary, lookup, plucker(primary), plucker(lookup), op || \"eq\"]);\n this.indexes.sort(function (a, b) {\n var aOp = a[4], bOp = b[4];\n return aOp === bOp ? 0 : aOp > bOp ? 1 : aOp === bOp ? 0 : -1;\n });\n this.__createIndexTree();\n\n }\n\n }\n\n}).as(module);","var Memory = require(\"./memory\");\n\nMemory.extend({\n\n instance: {\n\n getRightMemory: function (tuple) {\n return this.getMemory(tuple);\n }\n }\n\n}).as(module);","var extd = require(\"../../extended\"),\n pPush = Array.prototype.push,\n HashTable = extd.HashTable,\n AVLTree = extd.AVLTree;\n\nfunction compare(a, b) {\n /*jshint eqeqeq: false*/\n a = a.key;\n b = b.key;\n var ret;\n if (a == b) {\n ret = 0;\n } else if (a > b) {\n ret = 1;\n } else if (a < b) {\n ret = -1;\n } else {\n ret = 1;\n }\n return ret;\n}\n\nfunction compareGT(v1, v2) {\n return compare(v1, v2) === 1;\n}\nfunction compareGTE(v1, v2) {\n return compare(v1, v2) !== -1;\n}\n\nfunction compareLT(v1, v2) {\n return compare(v1, v2) === -1;\n}\nfunction compareLTE(v1, v2) {\n return compare(v1, v2) !== 1;\n}\n\nvar STACK = [],\n VALUE = {key: null};\nfunction traverseInOrder(tree, key, comparator) {\n VALUE.key = key;\n var ret = [];\n var i = 0, current = tree.__root, v;\n while (true) {\n if (current) {\n current = (STACK[i++] = current).left;\n } else {\n if (i > 0) {\n v = (current = STACK[--i]).data;\n if (comparator(v, VALUE)) {\n pPush.apply(ret, v.value.tuples);\n current = current.right;\n } else {\n break;\n }\n } else {\n break;\n }\n }\n }\n STACK.length = 0;\n return ret;\n}\n\nfunction traverseReverseOrder(tree, key, comparator) {\n VALUE.key = key;\n var ret = [];\n var i = 0, current = tree.__root, v;\n while (true) {\n if (current) {\n current = (STACK[i++] = current).right;\n } else {\n if (i > 0) {\n v = (current = STACK[--i]).data;\n if (comparator(v, VALUE)) {\n pPush.apply(ret, v.value.tuples);\n current = current.left;\n } else {\n break;\n }\n } else {\n break;\n }\n }\n }\n STACK.length = 0;\n return ret;\n}\n\nAVLTree.extend({\n instance: {\n\n constructor: function () {\n this._super([\n {\n compare: compare\n }\n ]);\n this.gtCache = new HashTable();\n this.gteCache = new HashTable();\n this.ltCache = new HashTable();\n this.lteCache = new HashTable();\n this.hasGTCache = false;\n this.hasGTECache = false;\n this.hasLTCache = false;\n this.hasLTECache = false;\n },\n\n clearCache: function () {\n this.hasGTCache && this.gtCache.clear() && (this.hasGTCache = false);\n this.hasGTECache && this.gteCache.clear() && (this.hasGTECache = false);\n this.hasLTCache && this.ltCache.clear() && (this.hasLTCache = false);\n this.hasLTECache && this.lteCache.clear() && (this.hasLTECache = false);\n },\n\n contains: function (key) {\n return this._super([\n {key: key}\n ]);\n },\n\n \"set\": function (key, value) {\n this.insert({key: key, value: value});\n this.clearCache();\n },\n\n \"get\": function (key) {\n var ret = this.find({key: key});\n return ret && ret.value;\n },\n\n \"remove\": function (key) {\n this.clearCache();\n return this._super([\n {key: key}\n ]);\n },\n\n findGT: function (key) {\n var ret = this.gtCache.get(key);\n if (!ret) {\n this.hasGTCache = true;\n this.gtCache.put(key, (ret = traverseReverseOrder(this, key, compareGT)));\n }\n return ret;\n },\n\n findGTE: function (key) {\n var ret = this.gteCache.get(key);\n if (!ret) {\n this.hasGTECache = true;\n this.gteCache.put(key, (ret = traverseReverseOrder(this, key, compareGTE)));\n }\n return ret;\n },\n\n findLT: function (key) {\n var ret = this.ltCache.get(key);\n if (!ret) {\n this.hasLTCache = true;\n this.ltCache.put(key, (ret = traverseInOrder(this, key, compareLT)));\n }\n return ret;\n },\n\n findLTE: function (key) {\n var ret = this.lteCache.get(key);\n if (!ret) {\n this.hasLTECache = true;\n this.lteCache.put(key, (ret = traverseInOrder(this, key, compareLTE)));\n }\n return ret;\n }\n\n }\n}).as(module);","var extd = require(\"../../extended\"),\n indexOf = extd.indexOf;\n// HashSet = require(\"./hashSet\");\n\n\nvar TUPLE_ID = 0;\nextd.declare({\n\n instance: {\n tuples: null,\n tupleMap: null,\n hashCode: null,\n tables: null,\n entry: null,\n constructor: function (val, entry, canRemove) {\n this.val = val;\n this.canRemove = canRemove;\n this.tuples = [];\n this.tupleMap = {};\n this.hashCode = TUPLE_ID++;\n this.tables = {};\n this.length = 0;\n this.entry = entry;\n },\n\n addNode: function (node) {\n this.tuples[this.length++] = node;\n if (this.length > 1) {\n this.entry.clearCache();\n }\n return this;\n },\n\n removeNode: function (node) {\n var tuples = this.tuples, index = indexOf(tuples, node);\n if (index !== -1) {\n tuples.splice(index, 1);\n this.length--;\n this.entry.clearCache();\n }\n if (this.canRemove && !this.length) {\n this.entry.remove(this.val);\n }\n }\n }\n}).as(module);","var extd = require(\"../extended\"),\n forEach = extd.forEach,\n indexOf = extd.indexOf,\n intersection = extd.intersection,\n declare = extd.declare,\n HashTable = extd.HashTable,\n Context = require(\"../context\");\n\nvar count = 0;\ndeclare({\n instance: {\n constructor: function () {\n this.nodes = new HashTable();\n this.rules = [];\n this.parentNodes = [];\n this.__count = count++;\n this.__entrySet = [];\n },\n\n addRule: function (rule) {\n if (indexOf(this.rules, rule) === -1) {\n this.rules.push(rule);\n }\n return this;\n },\n\n merge: function (that) {\n that.nodes.forEach(function (entry) {\n var patterns = entry.value, node = entry.key;\n for (var i = 0, l = patterns.length; i < l; i++) {\n this.addOutNode(node, patterns[i]);\n }\n that.nodes.remove(node);\n }, this);\n var thatParentNodes = that.parentNodes;\n for (var i = 0, l = that.parentNodes.l; i < l; i++) {\n var parentNode = thatParentNodes[i];\n this.addParentNode(parentNode);\n parentNode.nodes.remove(that);\n }\n return this;\n },\n\n resolve: function (mr1, mr2) {\n return mr1.hashCode === mr2.hashCode;\n },\n\n print: function (tab) {\n console.log(tab + this.toString());\n forEach(this.parentNodes, function (n) {\n n.print(\" \" + tab);\n });\n },\n\n addOutNode: function (outNode, pattern) {\n if (!this.nodes.contains(outNode)) {\n this.nodes.put(outNode, []);\n }\n this.nodes.get(outNode).push(pattern);\n this.__entrySet = this.nodes.entrySet();\n },\n\n addParentNode: function (n) {\n if (indexOf(this.parentNodes, n) === -1) {\n this.parentNodes.push(n);\n }\n },\n\n shareable: function () {\n return false;\n },\n\n __propagate: function (method, context) {\n var entrySet = this.__entrySet, i = entrySet.length, entry, outNode, paths, continuingPaths;\n while (--i > -1) {\n entry = entrySet[i];\n outNode = entry.key;\n paths = entry.value;\n\n if ((continuingPaths = intersection(paths, context.paths)).length) {\n outNode[method](new Context(context.fact, continuingPaths, context.match));\n }\n\n }\n },\n\n dispose: function (assertable) {\n this.propagateDispose(assertable);\n },\n\n retract: function (assertable) {\n this.propagateRetract(assertable);\n },\n\n propagateDispose: function (assertable, outNodes) {\n outNodes = outNodes || this.nodes;\n var entrySet = this.__entrySet, i = entrySet.length - 1;\n for (; i >= 0; i--) {\n var entry = entrySet[i], outNode = entry.key;\n outNode.dispose(assertable);\n }\n },\n\n propagateAssert: function (assertable) {\n this.__propagate(\"assert\", assertable);\n },\n\n propagateRetract: function (assertable) {\n this.__propagate(\"retract\", assertable);\n },\n\n assert: function (assertable) {\n this.propagateAssert(assertable);\n },\n\n modify: function (assertable) {\n this.propagateModify(assertable);\n },\n\n propagateModify: function (assertable) {\n this.__propagate(\"modify\", assertable);\n }\n }\n\n}).as(module);\n","var JoinNode = require(\"./joinNode\"),\n LinkedList = require(\"../linkedList\"),\n Context = require(\"../context\"),\n InitialFact = require(\"../pattern\").InitialFact;\n\n\nJoinNode.extend({\n instance: {\n\n nodeType: \"NotNode\",\n\n constructor: function () {\n this._super(arguments);\n this.leftTupleMemory = {};\n //use this ensure a unique match for and propagated context.\n this.notMatch = new Context(new InitialFact()).match;\n },\n\n __cloneContext: function (context) {\n return context.clone(null, null, context.match.merge(this.notMatch));\n },\n\n\n retractRight: function (context) {\n var ctx = this.removeFromRightMemory(context),\n rightContext = ctx.data,\n blocking = rightContext.blocking;\n if (blocking.length) {\n //if we are blocking left contexts\n var leftContext, thisConstraint = this.constraint, blockingNode = {next: blocking.head}, rc;\n while ((blockingNode = blockingNode.next)) {\n leftContext = blockingNode.data;\n this.removeFromLeftBlockedMemory(leftContext);\n var rm = this.rightTuples.getRightMemory(leftContext), l = rm.length, i;\n i = -1;\n while (++i < l) {\n if (thisConstraint.isMatch(leftContext, rc = rm[i].data)) {\n this.blockedContext(leftContext, rc);\n leftContext = null;\n break;\n }\n }\n if (leftContext) {\n this.notBlockedContext(leftContext, true);\n }\n }\n blocking.clear();\n }\n\n },\n\n blockedContext: function (leftContext, rightContext, propagate) {\n leftContext.blocker = rightContext;\n this.removeFromLeftMemory(leftContext);\n this.addToLeftBlockedMemory(rightContext.blocking.push(leftContext));\n propagate && this.__propagate(\"retract\", this.__cloneContext(leftContext));\n },\n\n notBlockedContext: function (leftContext, propagate) {\n this.__addToLeftMemory(leftContext);\n propagate && this.__propagate(\"assert\", this.__cloneContext(leftContext));\n },\n\n propagateFromLeft: function (leftContext) {\n this.notBlockedContext(leftContext, true);\n },\n\n propagateFromRight: function (leftContext) {\n this.notBlockedContext(leftContext, true);\n },\n\n blockFromAssertRight: function (leftContext, rightContext) {\n this.blockedContext(leftContext, rightContext, true);\n },\n\n blockFromAssertLeft: function (leftContext, rightContext) {\n this.blockedContext(leftContext, rightContext, false);\n },\n\n\n retractLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context);\n if (ctx) {\n ctx = ctx.data;\n this.__propagate(\"retract\", this.__cloneContext(ctx));\n } else {\n if (!this.removeFromLeftBlockedMemory(context)) {\n throw new Error();\n }\n }\n },\n\n assertLeft: function (context) {\n var values = this.rightTuples.getRightMemory(context),\n thisConstraint = this.constraint, rc, i = -1, l = values.length;\n while (++i < l) {\n if (thisConstraint.isMatch(context, rc = values[i].data)) {\n this.blockFromAssertLeft(context, rc);\n context = null;\n i = l;\n }\n }\n if (context) {\n this.propagateFromLeft(context);\n }\n },\n\n assertRight: function (context) {\n this.__addToRightMemory(context);\n context.blocking = new LinkedList();\n var fl = this.leftTuples.getLeftMemory(context).slice(),\n i = -1, l = fl.length,\n leftContext, thisConstraint = this.constraint;\n while (++i < l) {\n leftContext = fl[i].data;\n if (thisConstraint.isMatch(leftContext, context)) {\n this.blockFromAssertRight(leftContext, context);\n }\n }\n },\n\n addToLeftBlockedMemory: function (context) {\n var data = context.data, hashCode = data.hashCode;\n var ctx = this.leftMemory[hashCode];\n this.leftTupleMemory[hashCode] = context;\n if (ctx) {\n this.leftTuples.remove(ctx);\n }\n return this;\n },\n\n removeFromLeftBlockedMemory: function (context) {\n var ret = this.leftTupleMemory[context.hashCode] || null;\n if (ret) {\n delete this.leftTupleMemory[context.hashCode];\n ret.data.blocker.blocking.remove(ret);\n }\n return ret;\n },\n\n modifyLeft: function (context) {\n var ctx = this.removeFromLeftMemory(context),\n leftContext,\n thisConstraint = this.constraint,\n rightTuples = this.rightTuples.getRightMemory(context),\n l = rightTuples.length,\n isBlocked = false,\n i, rc, blocker;\n if (!ctx) {\n //blocked before\n ctx = this.removeFromLeftBlockedMemory(context);\n isBlocked = true;\n }\n if (ctx) {\n leftContext = ctx.data;\n\n if (leftContext && leftContext.blocker) {\n //we were blocked before so only check nodes previous to our blocker\n blocker = this.rightMemory[leftContext.blocker.hashCode];\n leftContext.blocker = null;\n }\n if (blocker) {\n if (thisConstraint.isMatch(context, rc = blocker.data)) {\n //we cant be proagated so retract previous\n if (!isBlocked) {\n //we were asserted before so retract\n this.__propagate(\"retract\", this.__cloneContext(leftContext));\n }\n context.blocker = rc;\n this.addToLeftBlockedMemory(rc.blocking.push(context));\n context = null;\n }\n }\n if (context && l) {\n i = -1;\n //we were propogated before\n while (++i < l) {\n if (thisConstraint.isMatch(context, rc = rightTuples[i].data)) {\n //we cant be proagated so retract previous\n if (!isBlocked) {\n //we were asserted before so retract\n this.__propagate(\"retract\", this.__cloneContext(leftContext));\n }\n this.addToLeftBlockedMemory(rc.blocking.push(context));\n context.blocker = rc;\n context = null;\n break;\n }\n }\n }\n if (context) {\n //we can still be propogated\n this.__addToLeftMemory(context);\n if (!isBlocked) {\n //we weren't blocked before so modify\n this.__propagate(\"modify\", this.__cloneContext(context));\n } else {\n //we were blocked before but aren't now\n this.__propagate(\"assert\", this.__cloneContext(context));\n }\n\n }\n } else {\n throw new Error();\n }\n\n },\n\n modifyRight: function (context) {\n var ctx = this.removeFromRightMemory(context);\n if (ctx) {\n var rightContext = ctx.data,\n leftTuples = this.leftTuples.getLeftMemory(context).slice(),\n leftTuplesLength = leftTuples.length,\n leftContext,\n thisConstraint = this.constraint,\n i, node,\n blocking = rightContext.blocking;\n this.__addToRightMemory(context);\n context.blocking = new LinkedList();\n\n var rc;\n //check old blocked contexts\n //check if the same contexts blocked before are still blocked\n var blockingNode = {next: blocking.head};\n while ((blockingNode = blockingNode.next)) {\n leftContext = blockingNode.data;\n leftContext.blocker = null;\n if (thisConstraint.isMatch(leftContext, context)) {\n leftContext.blocker = context;\n this.addToLeftBlockedMemory(context.blocking.push(leftContext));\n leftContext = null;\n } else {\n //we arent blocked anymore\n leftContext.blocker = null;\n node = ctx;\n while ((node = node.next)) {\n if (thisConstraint.isMatch(leftContext, rc = node.data)) {\n leftContext.blocker = rc;\n this.addToLeftBlockedMemory(rc.blocking.push(leftContext));\n leftContext = null;\n break;\n }\n }\n if (leftContext) {\n this.__addToLeftMemory(leftContext);\n this.__propagate(\"assert\", this.__cloneContext(leftContext));\n }\n }\n }\n if (leftTuplesLength) {\n //check currently left tuples in memory\n i = -1;\n while (++i < leftTuplesLength) {\n leftContext = leftTuples[i].data;\n if (thisConstraint.isMatch(leftContext, context)) {\n this.__propagate(\"retract\", this.__cloneContext(leftContext));\n this.removeFromLeftMemory(leftContext);\n this.addToLeftBlockedMemory(context.blocking.push(leftContext));\n leftContext.blocker = context;\n }\n }\n }\n } else {\n throw new Error();\n }\n\n\n }\n }\n}).as(module);","var AlphaNode = require(\"./alphaNode\"),\n Context = require(\"../context\"),\n extd = require(\"../extended\");\n\nAlphaNode.extend({\n instance: {\n\n constructor: function () {\n this._super(arguments);\n this.alias = this.constraint.get(\"alias\");\n this.varLength = (this.variables = extd(this.constraint.get(\"variables\")).toArray().value()).length;\n },\n\n assert: function (context) {\n var c = new Context(context.fact, context.paths);\n var variables = this.variables, o = context.fact.object, item;\n c.set(this.alias, o);\n for (var i = 0, l = this.varLength; i < l; i++) {\n item = variables[i];\n c.set(item[1], o[item[0]]);\n }\n\n this.__propagate(\"assert\", c);\n\n },\n\n retract: function (context) {\n this.__propagate(\"retract\", new Context(context.fact, context.paths));\n },\n\n modify: function (context) {\n var c = new Context(context.fact, context.paths);\n var variables = this.variables, o = context.fact.object, item;\n c.set(this.alias, o);\n for (var i = 0, l = this.varLength; i < l; i++) {\n item = variables[i];\n c.set(item[1], o[item[0]]);\n }\n this.__propagate(\"modify\", c);\n },\n\n\n toString: function () {\n return \"PropertyNode\" + this.__count;\n }\n }\n}).as(module);\n\n\n","var Node = require(\"./adapterNode\");\n\nNode.extend({\n instance: {\n\n retractResolve: function (match) {\n this.__propagate(\"retractResolve\", match);\n },\n\n dispose: function (context) {\n this.propagateDispose(context);\n },\n\n propagateAssert: function (context) {\n this.__propagate(\"assertRight\", context);\n },\n\n propagateRetract: function (context) {\n this.__propagate(\"retractRight\", context);\n },\n\n propagateResolve: function (context) {\n this.__propagate(\"retractResolve\", context);\n },\n\n propagateModify: function (context) {\n this.__propagate(\"modifyRight\", context);\n },\n\n toString: function () {\n return \"RightAdapterNode \" + this.__count;\n }\n }\n}).as(module);","var Node = require(\"./node\"),\n extd = require(\"../extended\"),\n bind = extd.bind;\n\nNode.extend({\n instance: {\n constructor: function (bucket, index, rule, agenda) {\n this._super([]);\n this.resolve = bind(this, this.resolve);\n this.rule = rule;\n this.index = index;\n this.name = this.rule.name;\n this.agenda = agenda;\n this.bucket = bucket;\n agenda.register(this);\n },\n\n __assertModify: function (context) {\n var match = context.match;\n if (match.isMatch) {\n var rule = this.rule, bucket = this.bucket;\n this.agenda.insert(this, {\n rule: rule,\n hashCode: context.hashCode,\n index: this.index,\n name: rule.name,\n recency: bucket.recency++,\n match: match,\n counter: bucket.counter\n });\n }\n },\n\n assert: function (context) {\n this.__assertModify(context);\n },\n\n modify: function (context) {\n this.agenda.retract(this, context);\n this.__assertModify(context);\n },\n\n retract: function (context) {\n this.agenda.retract(this, context);\n },\n\n retractRight: function (context) {\n this.agenda.retract(this, context);\n },\n\n retractLeft: function (context) {\n this.agenda.retract(this, context);\n },\n\n assertLeft: function (context) {\n this.__assertModify(context);\n },\n\n assertRight: function (context) {\n this.__assertModify(context);\n },\n\n toString: function () {\n return \"TerminalNode \" + this.rule.name;\n }\n }\n}).as(module);","var AlphaNode = require(\"./alphaNode\"),\n Context = require(\"../context\");\n\nAlphaNode.extend({\n instance: {\n\n assert: function (fact) {\n if (this.constraintAssert(fact.object)) {\n this.__propagate(\"assert\", fact);\n }\n },\n\n modify: function (fact) {\n if (this.constraintAssert(fact.object)) {\n this.__propagate(\"modify\", fact);\n }\n },\n\n retract: function (fact) {\n if (this.constraintAssert(fact.object)) {\n this.__propagate(\"retract\", fact);\n }\n },\n\n toString: function () {\n return \"TypeNode\" + this.__count;\n },\n\n dispose: function () {\n var es = this.__entrySet, i = es.length - 1;\n for (; i >= 0; i--) {\n var e = es[i], outNode = e.key, paths = e.value;\n outNode.dispose({paths: paths});\n }\n },\n\n __propagate: function (method, fact) {\n var es = this.__entrySet, i = -1, l = es.length;\n while (++i < l) {\n var e = es[i], outNode = e.key, paths = e.value;\n outNode[method](new Context(fact, paths));\n }\n }\n }\n}).as(module);\n\n","/* parser generated by jison 0.4.17 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,29],$V1=[1,30],$V2=[1,26],$V3=[1,24],$V4=[1,16],$V5=[1,18],$V6=[1,19],$V7=[1,20],$V8=[1,21],$V9=[1,22],$Va=[5,38,49],$Vb=[1,33],$Vc=[5,36,38,49],$Vd=[5,8,11,12,13,15,17,19,20,21,22,24,25,26,27,28,29,36,38,49],$Ve=[2,2],$Vf=[5,24,25,26,27,28,29,36,38,49],$Vg=[1,42],$Vh=[1,43],$Vi=[1,44],$Vj=[1,45],$Vk=[5,8,11,12,13,15,17,19,20,21,22,24,25,26,27,28,29,31,33,36,38,40,46,49],$Vl=[1,46],$Vm=[1,47],$Vn=[1,48],$Vo=[5,19,20,21,22,24,25,26,27,28,29,36,38,49],$Vp=[1,50],$Vq=[5,8,11,12,13,15,17,19,20,21,22,24,25,26,27,28,29,31,33,36,38,40,43,44,46,48,49],$Vr=[5,17,19,20,21,22,24,25,26,27,28,29,36,38,49],$Vs=[1,55],$Vt=[1,54],$Vu=[5,8,15,17,19,20,21,22,24,25,26,27,28,29,36,38,49],$Vv=[1,56],$Vw=[1,57],$Vx=[1,58],$Vy=[1,87],$Vz=[40,46,49];\nvar parser = {trace: function trace() { },\nyy: {},\nsymbols_: {\"error\":2,\"expressions\":3,\"EXPRESSION\":4,\"EOF\":5,\"UNARY_EXPRESSION\":6,\"LITERAL_EXPRESSION\":7,\"-\":8,\"!\":9,\"MULTIPLICATIVE_EXPRESSION\":10,\"*\":11,\"/\":12,\"%\":13,\"ADDITIVE_EXPRESSION\":14,\"+\":15,\"EXPONENT_EXPRESSION\":16,\"^\":17,\"RELATIONAL_EXPRESSION\":18,\"<\":19,\">\":20,\"<=\":21,\">=\":22,\"EQUALITY_EXPRESSION\":23,\"==\":24,\"===\":25,\"!=\":26,\"!==\":27,\"=~\":28,\"!=~\":29,\"IN_EXPRESSION\":30,\"in\":31,\"ARRAY_EXPRESSION\":32,\"notIn\":33,\"OBJECT_EXPRESSION\":34,\"AND_EXPRESSION\":35,\"&&\":36,\"OR_EXPRESSION\":37,\"||\":38,\"ARGUMENT_LIST\":39,\",\":40,\"IDENTIFIER_EXPRESSION\":41,\"IDENTIFIER\":42,\".\":43,\"[\":44,\"STRING_EXPRESSION\":45,\"]\":46,\"NUMBER_EXPRESSION\":47,\"(\":48,\")\":49,\"STRING\":50,\"NUMBER\":51,\"REGEXP_EXPRESSION\":52,\"REGEXP\":53,\"BOOLEAN_EXPRESSION\":54,\"BOOLEAN\":55,\"NULL_EXPRESSION\":56,\"NULL\":57,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",5:\"EOF\",8:\"-\",9:\"!\",11:\"*\",12:\"/\",13:\"%\",15:\"+\",17:\"^\",19:\"<\",20:\">\",21:\"<=\",22:\">=\",24:\"==\",25:\"===\",26:\"!=\",27:\"!==\",28:\"=~\",29:\"!=~\",31:\"in\",33:\"notIn\",36:\"&&\",38:\"||\",40:\",\",42:\"IDENTIFIER\",43:\".\",44:\"[\",46:\"]\",48:\"(\",49:\")\",50:\"STRING\",51:\"NUMBER\",53:\"REGEXP\",55:\"BOOLEAN\",57:\"NULL\"},\nproductions_: [0,[3,2],[6,1],[6,2],[6,2],[10,1],[10,3],[10,3],[10,3],[14,1],[14,3],[14,3],[16,1],[16,3],[18,1],[18,3],[18,3],[18,3],[18,3],[23,1],[23,3],[23,3],[23,3],[23,3],[23,3],[23,3],[30,1],[30,3],[30,3],[30,3],[30,3],[35,1],[35,3],[37,1],[37,3],[39,1],[39,3],[41,1],[34,1],[34,3],[34,4],[34,4],[34,4],[34,3],[34,4],[45,1],[47,1],[52,1],[54,1],[56,1],[32,2],[32,3],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,3],[4,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\nreturn $$[$0-1];\nbreak;\ncase 3:\nthis.$ = [$$[$0], null, 'unary'];\nbreak;\ncase 4:\nthis.$ = [$$[$0], null, 'logicalNot'];\nbreak;\ncase 6:\nthis.$ = [$$[$0-2], $$[$0], 'mult'];\nbreak;\ncase 7:\nthis.$ = [$$[$0-2], $$[$0], 'div'];\nbreak;\ncase 8:\nthis.$ = [$$[$0-2], $$[$0], 'mod'];\nbreak;\ncase 10:\nthis.$ = [$$[$0-2], $$[$0], 'plus'];\nbreak;\ncase 11:\nthis.$ = [$$[$0-2], $$[$0], 'minus'];\nbreak;\ncase 13:\nthis.$ = [$$[$0-2], $$[$0], 'pow'];\nbreak;\ncase 15:\nthis.$ = [$$[$0-2], $$[$0], 'lt'];\nbreak;\ncase 16:\nthis.$ = [$$[$0-2], $$[$0], 'gt'];\nbreak;\ncase 17:\nthis.$ = [$$[$0-2], $$[$0], 'lte'];\nbreak;\ncase 18:\nthis.$ = [$$[$0-2], $$[$0], 'gte'];\nbreak;\ncase 20:\nthis.$ = [$$[$0-2], $$[$0], 'eq'];\nbreak;\ncase 21:\nthis.$ = [$$[$0-2], $$[$0], 'seq'];\nbreak;\ncase 22:\nthis.$ = [$$[$0-2], $$[$0], 'neq'];\nbreak;\ncase 23:\nthis.$ = [$$[$0-2], $$[$0], 'sneq'];\nbreak;\ncase 24:\nthis.$ = [$$[$0-2], $$[$0], 'like'];\nbreak;\ncase 25:\nthis.$ = [$$[$0-2], $$[$0], 'notLike'];\nbreak;\ncase 27: case 29:\nthis.$ = [$$[$0-2], $$[$0], 'in'];\nbreak;\ncase 28: case 30:\nthis.$ = [$$[$0-2], $$[$0], 'notIn'];\nbreak;\ncase 32:\nthis.$ = [$$[$0-2], $$[$0], 'and'];\nbreak;\ncase 34:\nthis.$ = [$$[$0-2], $$[$0], 'or'];\nbreak;\ncase 36:\nthis.$ = [$$[$0-2], $$[$0], 'arguments']\nbreak;\ncase 37:\nthis.$ = [String(yytext), null, 'identifier'];\nbreak;\ncase 39:\nthis.$ = [$$[$0-2],$$[$0], 'prop'];\nbreak;\ncase 40: case 41: case 42:\nthis.$ = [$$[$0-3],$$[$0-1], 'propLookup'];\nbreak;\ncase 43:\nthis.$ = [$$[$0-2], [null, null, 'arguments'], 'function']\nbreak;\ncase 44:\nthis.$ = [$$[$0-3], $$[$0-1], 'function']\nbreak;\ncase 45:\nthis.$ = [String(yytext.replace(/^['|\"]|['|\"]$/g, '')), null, 'string'];\nbreak;\ncase 46:\nthis.$ = [Number(yytext), null, 'number'];\nbreak;\ncase 47:\nthis.$ = [yytext, null, 'regexp'];\nbreak;\ncase 48:\nthis.$ = [yytext.replace(/^\\s+/, '') == 'true', null, 'boolean'];\nbreak;\ncase 49:\nthis.$ = [null, null, 'null'];\nbreak;\ncase 50:\nthis.$ = [null, null, 'array'];\nbreak;\ncase 51:\nthis.$ = [$$[$0-1], null, 'array'];\nbreak;\ncase 59:\nthis.$ = [$$[$0-1], null, 'composite']\nbreak;\n}\n},\ntable: [{3:1,4:2,6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:5,32:15,34:14,35:4,37:3,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{1:[3]},{5:[1,31]},o([5,49],[2,60],{38:[1,32]}),o($Va,[2,33],{36:$Vb}),o($Vc,[2,31]),o($Vc,[2,26],{24:[1,34],25:[1,35],26:[1,36],27:[1,37],28:[1,38],29:[1,39]}),o($Vd,$Ve,{31:[1,40],33:[1,41]}),o($Vf,[2,19],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vk,[2,52]),o($Vk,[2,53]),o($Vk,[2,54]),o($Vk,[2,55]),o($Vk,[2,56]),o($Vk,[2,57],{43:$Vl,44:$Vm,48:$Vn}),o($Vk,[2,58]),{4:49,6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:5,32:15,34:14,35:4,37:3,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vo,[2,14],{17:$Vp}),o($Vk,[2,45]),o($Vk,[2,46]),o($Vk,[2,47]),o($Vk,[2,48]),o($Vk,[2,49]),o($Vq,[2,38]),{7:53,32:15,34:14,39:52,41:23,42:$V2,44:$V3,45:9,46:[1,51],47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vr,[2,12],{8:$Vs,15:$Vt}),o($Vq,[2,37]),o($Vu,[2,9],{11:$Vv,12:$Vw,13:$Vx}),o($Vd,[2,5]),{6:59,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:61,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{1:[2,1]},{6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:5,32:15,34:14,35:62,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:7,8:$V0,9:$V1,10:27,14:25,16:17,18:8,23:6,30:63,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:64,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:65,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:66,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:67,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:68,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:17,18:69,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{32:70,34:71,41:23,42:$V2,44:$V3},{32:72,34:73,41:23,42:$V2,44:$V3},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:74,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:75,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:76,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:27,14:25,16:77,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{41:78,42:$V2},{34:81,41:23,42:$V2,45:79,47:80,50:$V5,51:$V6},{7:53,32:15,34:14,39:83,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,49:[1,82],50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{49:[1,84]},{6:28,7:60,8:$V0,9:$V1,10:27,14:85,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vk,[2,50]),{40:$Vy,46:[1,86]},o($Vz,[2,35]),{6:28,7:60,8:$V0,9:$V1,10:88,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:28,7:60,8:$V0,9:$V1,10:89,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:90,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:91,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},{6:92,7:60,8:$V0,9:$V1,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vd,[2,3]),o($Vd,$Ve),o($Vd,[2,4]),o($Va,[2,34],{36:$Vb}),o($Vc,[2,32]),o($Vf,[2,20],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,21],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,22],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,23],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,24],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vf,[2,25],{19:$Vg,20:$Vh,21:$Vi,22:$Vj}),o($Vc,[2,27]),o($Vc,[2,29],{43:$Vl,44:$Vm,48:$Vn}),o($Vc,[2,28]),o($Vc,[2,30],{43:$Vl,44:$Vm,48:$Vn}),o($Vo,[2,15],{17:$Vp}),o($Vo,[2,16],{17:$Vp}),o($Vo,[2,17],{17:$Vp}),o($Vo,[2,18],{17:$Vp}),o($Vq,[2,39]),{46:[1,93]},{46:[1,94]},{43:$Vl,44:$Vm,46:[1,95],48:$Vn},o($Vq,[2,43]),{40:$Vy,49:[1,96]},o($Vk,[2,59]),o($Vr,[2,13],{8:$Vs,15:$Vt}),o($Vk,[2,51]),{7:97,32:15,34:14,41:23,42:$V2,44:$V3,45:9,47:10,48:$V4,50:$V5,51:$V6,52:11,53:$V7,54:12,55:$V8,56:13,57:$V9},o($Vu,[2,10],{11:$Vv,12:$Vw,13:$Vx}),o($Vu,[2,11],{11:$Vv,12:$Vw,13:$Vx}),o($Vd,[2,6]),o($Vd,[2,7]),o($Vd,[2,8]),o($Vq,[2,40]),o($Vq,[2,41]),o($Vq,[2,42]),o($Vq,[2,44]),o($Vz,[2,36])],\ndefaultActions: {31:[2,1]},\nparseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n function _parseError (msg, hash) {\n this.message = msg;\n this.hash = hash;\n }\n _parseError.prototype = Error;\n\n throw new _parseError(str, hash);\n }\n},\nparse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n _token_stack:\n var lex = function () {\n var token;\n token = lexer.lex() || EOF;\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n return token;\n };\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n}};\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0,0];\n }\n this.offset = 0;\n return this;\n },\n\n// consumes and returns one char from the input\ninput:function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n\n }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function (match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n\n// return next match that has a token\nlex:function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin(condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n\n// alias for begin(condition)\npushState:function pushState(condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:return 31;\nbreak;\ncase 1:return 33;\nbreak;\ncase 2:return 'from';\nbreak;\ncase 3:return 24;\nbreak;\ncase 4:return 25;\nbreak;\ncase 5:return 26;\nbreak;\ncase 6:return 27;\nbreak;\ncase 7:return 21;\nbreak;\ncase 8:return 19;\nbreak;\ncase 9:return 22;\nbreak;\ncase 10:return 20;\nbreak;\ncase 11:return 28;\nbreak;\ncase 12:return 29;\nbreak;\ncase 13:return 36;\nbreak;\ncase 14:return 38;\nbreak;\ncase 15:return 57;\nbreak;\ncase 16:return 55;\nbreak;\ncase 17:/* skip whitespace */\nbreak;\ncase 18:return 51;\nbreak;\ncase 19:return 50;\nbreak;\ncase 20:return 50;\nbreak;\ncase 21:return 42;\nbreak;\ncase 22:return 53;\nbreak;\ncase 23:return 43;\nbreak;\ncase 24:return 11;\nbreak;\ncase 25:return 12;\nbreak;\ncase 26:return 13;\nbreak;\ncase 27:return 40;\nbreak;\ncase 28:return 8;\nbreak;\ncase 29:return 28;\nbreak;\ncase 30:return 29;\nbreak;\ncase 31:return 25;\nbreak;\ncase 32:return 24;\nbreak;\ncase 33:return 27;\nbreak;\ncase 34:return 26;\nbreak;\ncase 35:return 21;\nbreak;\ncase 36:return 22;\nbreak;\ncase 37:return 20;\nbreak;\ncase 38:return 19;\nbreak;\ncase 39:return 36;\nbreak;\ncase 40:return 38;\nbreak;\ncase 41:return 15;\nbreak;\ncase 42:return 17;\nbreak;\ncase 43:return 48;\nbreak;\ncase 44:return 46;\nbreak;\ncase 45:return 44;\nbreak;\ncase 46:return 49;\nbreak;\ncase 47:return 9;\nbreak;\ncase 48:return 5;\nbreak;\n}\n},\nrules: [/^(?:\\s+in\\b)/,/^(?:\\s+notIn\\b)/,/^(?:\\s+from\\b)/,/^(?:\\s+(eq|EQ)\\b)/,/^(?:\\s+(seq|SEQ)\\b)/,/^(?:\\s+(neq|NEQ)\\b)/,/^(?:\\s+(sneq|SNEQ)\\b)/,/^(?:\\s+(lte|LTE)\\b)/,/^(?:\\s+(lt|LT)\\b)/,/^(?:\\s+(gte|GTE)\\b)/,/^(?:\\s+(gt|GT)\\b)/,/^(?:\\s+(like|LIKE)\\b)/,/^(?:\\s+(notLike|NOT_LIKE)\\b)/,/^(?:\\s+(and|AND)\\b)/,/^(?:\\s+(or|OR)\\b)/,/^(?:\\s*(null)\\b)/,/^(?:\\s*(true|false)\\b)/,/^(?:\\s+)/,/^(?:-?[0-9]+(?:\\.[0-9]+)?\\b)/,/^(?:'[^']*')/,/^(?:\"[^\"]*\")/,/^(?:([a-zA-Z_$][0-9a-zA-Z_$]*))/,/^(?:^\\/((?![\\s=])[^[\\/\\n\\\\]*(?:(?:\\\\[\\s\\S]|\\[[^\\]\\n\\\\]*(?:\\\\[\\s\\S][^\\]\\n\\\\]*)*])[^[\\/\\n\\\\]*)*\\/[imgy]{0,4})(?!\\w))/,/^(?:\\.)/,/^(?:\\*)/,/^(?:\\/)/,/^(?:\\%)/,/^(?:,)/,/^(?:-)/,/^(?:=~)/,/^(?:!=~)/,/^(?:===)/,/^(?:==)/,/^(?:!==)/,/^(?:!=)/,/^(?:<=)/,/^(?:>=)/,/^(?:>)/,/^(?:<)/,/^(?:&&)/,/^(?:\\|\\|)/,/^(?:\\+)/,/^(?:\\^)/,/^(?:\\()/,/^(?:\\])/,/^(?:\\[)/,/^(?:\\))/,/^(?:!)/,/^(?:$)/],\nconditions: {\"INITIAL\":{\"rules\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain(args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","(function () {\n \"use strict\";\n var constraintParser = require(\"./constraint/parser\"),\n noolParser = require(\"./nools/nool.parser\");\n\n exports.parseConstraint = function (expression) {\n try {\n return constraintParser.parse(expression);\n } catch (e) {\n throw new Error(\"Invalid expression '\" + expression + \"'\");\n }\n };\n\n exports.parseRuleSet = function (source, file) {\n return noolParser.parse(source, file);\n };\n})();","\"use strict\";\n\nvar tokens = require(\"./tokens.js\"),\n extd = require(\"../../extended\"),\n keys = extd.hash.keys,\n utils = require(\"./util.js\");\n\nvar parse = function (src, keywords, context) {\n var orig = src;\n src = src.replace(/\\/\\/(.*)/g, \"\").replace(/\\r\\n|\\r|\\n/g, \" \");\n\n var blockTypes = new RegExp(\"^(\" + keys(keywords).join(\"|\") + \")\"), index;\n while (src && (index = utils.findNextTokenIndex(src)) !== -1) {\n src = src.substr(index);\n var blockType = src.match(blockTypes);\n if (blockType !== null) {\n blockType = blockType[1];\n if (blockType in keywords) {\n try {\n src = keywords[blockType](src, context, parse).replace(/^\\s*|\\s*$/g, \"\");\n } catch (e) {\n throw new Error(\"Invalid \" + blockType + \" definition \\n\" + e.message + \"; \\nstarting at : \" + orig);\n }\n } else {\n throw new Error(\"Unknown token\" + blockType);\n }\n } else {\n throw new Error(\"Error parsing \" + src);\n }\n }\n};\n\nexports.parse = function (src, file) {\n var context = {define: [], rules: [], scope: [], loaded: [], file: file};\n parse(src, tokens, context);\n return context;\n};\n\n","\"use strict\";\n\nvar utils = require(\"./util.js\"),\n fs = require(\"fs\"),\n extd = require(\"../../extended\"),\n filter = extd.filter,\n indexOf = extd.indexOf,\n predicates = [\"not\", \"or\", \"exists\"],\n predicateRegExp = new RegExp(\"^(\" + predicates.join(\"|\") + \") *\\\\((.*)\\\\)$\", \"m\"),\n predicateBeginExp = new RegExp(\" *(\" + predicates.join(\"|\") + \") *\\\\(\", \"g\");\n\nvar isWhiteSpace = function (str) {\n return str.replace(/[\\s|\\n|\\r|\\t]/g, \"\").length === 0;\n};\n\nvar joinFunc = function (m, str) {\n return \"; \" + str;\n};\n\nvar splitRuleLineByPredicateExpressions = function (ruleLine) {\n var str = ruleLine.replace(/,\\s*(\\$?\\w+\\s*:)/g, joinFunc);\n var parts = filter(str.split(predicateBeginExp), function (str) {\n return str !== \"\";\n }),\n l = parts.length, ret = [];\n\n if (l) {\n for (var i = 0; i < l; i++) {\n if (indexOf(predicates, parts[i]) !== -1) {\n ret.push([parts[i], \"(\", parts[++i].replace(/, *$/, \"\")].join(\"\"));\n } else {\n ret.push(parts[i].replace(/, *$/, \"\"));\n }\n }\n } else {\n return str;\n }\n return ret.join(\";\");\n};\n\nvar ruleTokens = {\n\n salience: (function () {\n var salienceRegexp = /^(salience|priority)\\s*:\\s*(-?\\d+)\\s*[,;]?/;\n return function (src, context) {\n if (salienceRegexp.test(src)) {\n var parts = src.match(salienceRegexp),\n priority = parseInt(parts[2], 10);\n if (!isNaN(priority)) {\n context.options.priority = priority;\n } else {\n throw new Error(\"Invalid salience/priority \" + parts[2]);\n }\n return src.replace(parts[0], \"\");\n } else {\n throw new Error(\"invalid format\");\n }\n };\n })(),\n\n agendaGroup: (function () {\n var agendaGroupRegexp = /^(agenda-group|agendaGroup)\\s*:\\s*([a-zA-Z_$][0-9a-zA-Z_$]*|\"[^\"]*\"|'[^']*')\\s*[,;]?/;\n return function (src, context) {\n if (agendaGroupRegexp.test(src)) {\n var parts = src.match(agendaGroupRegexp),\n agendaGroup = parts[2];\n if (agendaGroup) {\n context.options.agendaGroup = agendaGroup.replace(/^[\"']|[\"']$/g, \"\");\n } else {\n throw new Error(\"Invalid agenda-group \" + parts[2]);\n }\n return src.replace(parts[0], \"\");\n } else {\n throw new Error(\"invalid format\");\n }\n };\n })(),\n\n autoFocus: (function () {\n var autoFocusRegexp = /^(auto-focus|autoFocus)\\s*:\\s*(true|false)\\s*[,;]?/;\n return function (src, context) {\n if (autoFocusRegexp.test(src)) {\n var parts = src.match(autoFocusRegexp),\n autoFocus = parts[2];\n if (autoFocus) {\n context.options.autoFocus = autoFocus === \"true\" ? true : false;\n } else {\n throw new Error(\"Invalid auto-focus \" + parts[2]);\n }\n return src.replace(parts[0], \"\");\n } else {\n throw new Error(\"invalid format\");\n }\n };\n })(),\n\n \"agenda-group\": function () {\n return this.agendaGroup.apply(this, arguments);\n },\n\n \"auto-focus\": function () {\n return this.autoFocus.apply(this, arguments);\n },\n\n priority: function () {\n return this.salience.apply(this, arguments);\n },\n\n when: (function () {\n /*jshint evil:true*/\n\n var ruleRegExp = /^(\\$?\\w+) *: *(\\w+)(.*)/;\n\n var constraintRegExp = /(\\{ *(?:[\"']?\\$?\\w+[\"']?\\s*:\\s*[\"']?\\$?\\w+[\"']? *(?:, *[\"']?\\$?\\w+[\"']?\\s*:\\s*[\"']?\\$?\\w+[\"']?)*)+ *\\})/;\n var fromRegExp = /(\\bfrom\\s+.*)/;\n var parseRules = function (str) {\n var rules = [];\n var ruleLines = str.split(\";\"), l = ruleLines.length, ruleLine;\n for (var i = 0; i < l && (ruleLine = ruleLines[i].replace(/^\\s*|\\s*$/g, \"\").replace(/\\n/g, \"\")); i++) {\n if (!isWhiteSpace(ruleLine)) {\n var rule = [];\n if (predicateRegExp.test(ruleLine)) {\n var m = ruleLine.match(predicateRegExp);\n var pred = m[1].replace(/^\\s*|\\s*$/g, \"\");\n rule.push(pred);\n ruleLine = m[2].replace(/^\\s*|\\s*$/g, \"\");\n if (pred === \"or\") {\n rule = rule.concat(parseRules(splitRuleLineByPredicateExpressions(ruleLine)));\n rules.push(rule);\n continue;\n }\n\n }\n var parts = ruleLine.match(ruleRegExp);\n if (parts && parts.length) {\n rule.push(parts[2], parts[1]);\n var constraints = parts[3].replace(/^\\s*|\\s*$/g, \"\");\n var hashParts = constraints.match(constraintRegExp), from = null, fromMatch;\n if (hashParts) {\n var hash = hashParts[1], constraint = constraints.replace(hash, \"\");\n if (fromRegExp.test(constraint)) {\n fromMatch = constraint.match(fromRegExp);\n from = fromMatch[0];\n constraint = constraint.replace(fromMatch[0], \"\");\n }\n if (constraint) {\n rule.push(constraint.replace(/^\\s*|\\s*$/g, \"\"));\n }\n if (hash) {\n rule.push(eval(\"(\" + hash.replace(/(\\$?\\w+)\\s*:\\s*(\\$?\\w+)/g, '\"$1\" : \"$2\"') + \")\"));\n }\n } else if (constraints && !isWhiteSpace(constraints)) {\n if (fromRegExp.test(constraints)) {\n fromMatch = constraints.match(fromRegExp);\n from = fromMatch[0];\n constraints = constraints.replace(fromMatch[0], \"\");\n }\n rule.push(constraints);\n }\n if (from) {\n rule.push(from);\n }\n rules.push(rule);\n } else {\n throw new Error(\"Invalid constraint \" + ruleLine);\n }\n }\n }\n return rules;\n };\n\n return function (orig, context) {\n var src = orig.replace(/^when\\s*/, \"\").replace(/^\\s*|\\s*$/g, \"\");\n if (utils.findNextToken(src) === \"{\") {\n var body = utils.getTokensBetween(src, \"{\", \"}\", true).join(\"\");\n src = src.replace(body, \"\");\n context.constraints = parseRules(body.replace(/^\\{\\s*|\\}\\s*$/g, \"\"));\n return src;\n } else {\n throw new Error(\"unexpected token : expected : '{' found : '\" + utils.findNextToken(src) + \"'\");\n }\n };\n })(),\n\n then: (function () {\n return function (orig, context) {\n if (!context.action) {\n var src = orig.replace(/^then\\s*/, \"\").replace(/^\\s*|\\s*$/g, \"\");\n if (utils.findNextToken(src) === \"{\") {\n var body = utils.getTokensBetween(src, \"{\", \"}\", true).join(\"\");\n src = src.replace(body, \"\");\n if (!context.action) {\n context.action = body.replace(/^\\{\\s*|\\}\\s*$/g, \"\");\n }\n if (!isWhiteSpace(src)) {\n throw new Error(\"Error parsing then block \" + orig);\n }\n return src;\n } else {\n throw new Error(\"unexpected token : expected : '{' found : '\" + utils.findNextToken(src) + \"'\");\n }\n } else {\n throw new Error(\"action already defined for rule\" + context.name);\n }\n\n };\n })()\n};\n\nvar topLevelTokens = {\n \"/\": function (orig) {\n if (orig.match(/^\\/\\*/)) {\n // Block Comment parse\n return orig.replace(/\\/\\*.*?\\*\\//, \"\");\n } else {\n return orig;\n }\n },\n\n \"define\": function (orig, context) {\n var src = orig.replace(/^define\\s*/, \"\");\n var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*)/);\n if (name) {\n src = src.replace(name[0], \"\").replace(/^\\s*|\\s*$/g, \"\");\n if (utils.findNextToken(src) === \"{\") {\n name = name[1];\n var body = utils.getTokensBetween(src, \"{\", \"}\", true).join(\"\");\n src = src.replace(body, \"\");\n //should\n context.define.push({name: name, properties: \"(\" + body + \")\"});\n return src;\n } else {\n throw new Error(\"unexpected token : expected : '{' found : '\" + utils.findNextToken(src) + \"'\");\n }\n } else {\n throw new Error(\"missing name\");\n }\n },\n\n \"import\": function (orig, context, parse) {\n if (typeof window !== 'undefined') {\n throw new Error(\"import cannot be used in a browser\");\n }\n var src = orig.replace(/^import\\s*/, \"\");\n if (utils.findNextToken(src) === \"(\") {\n var file = utils.getParamList(src);\n src = src.replace(file, \"\").replace(/^\\s*|\\s*$/g, \"\");\n utils.findNextToken(src) === \";\" && (src = src.replace(/\\s*;/, \"\"));\n file = file.replace(/[\\(|\\)]/g, \"\").split(\",\");\n if (file.length === 1) {\n file = utils.resolve(context.file || process.cwd(), file[0].replace(/[\"|']/g, \"\"));\n if (indexOf(context.loaded, file) === -1) {\n var origFile = context.file;\n context.file = file;\n parse(fs.readFileSync(file, \"utf8\"), topLevelTokens, context);\n context.loaded.push(file);\n context.file = origFile;\n }\n return src;\n } else {\n throw new Error(\"import accepts a single file\");\n }\n } else {\n throw new Error(\"unexpected token : expected : '(' found : '\" + utils.findNextToken(src) + \"'\");\n }\n\n },\n\n //define a global\n \"global\": function (orig, context) {\n var src = orig.replace(/^global\\s*/, \"\");\n var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*\\s*)/);\n if (name) {\n src = src.replace(name[0], \"\").replace(/^\\s*|\\s*$/g, \"\");\n if (utils.findNextToken(src) === \"=\") {\n name = name[1].replace(/^\\s+|\\s+$/g, '');\n var fullbody = utils.getTokensBetween(src, \"=\", \";\", true).join(\"\");\n var body = fullbody.substring(1, fullbody.length - 1);\n body = body.replace(/^\\s+|\\s+$/g, '');\n if (/^require\\(/.test(body)) {\n var file = utils.getParamList(body.replace(\"require\")).replace(/[\\(|\\)]/g, \"\").split(\",\");\n if (file.length === 1) {\n //handle relative require calls\n file = file[0].replace(/[\"|']/g, \"\");\n body = [\"require('\", utils.resolve(context.file || process.cwd(), file) , \"')\"].join(\"\");\n }\n }\n context.scope.push({name: name, body: body});\n src = src.replace(fullbody, \"\");\n return src;\n } else {\n throw new Error(\"unexpected token : expected : '=' found : '\" + utils.findNextToken(src) + \"'\");\n }\n } else {\n throw new Error(\"missing name\");\n }\n },\n\n //define a function\n \"function\": function (orig, context) {\n var src = orig.replace(/^function\\s*/, \"\");\n //parse the function name\n var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*)\\s*/);\n if (name) {\n src = src.replace(name[0], \"\");\n if (utils.findNextToken(src) === \"(\") {\n name = name[1];\n var params = utils.getParamList(src);\n src = src.replace(params, \"\").replace(/^\\s*|\\s*$/g, \"\");\n if (utils.findNextToken(src) === \"{\") {\n var body = utils.getTokensBetween(src, \"{\", \"}\", true).join(\"\");\n src = src.replace(body, \"\");\n //should\n context.scope.push({name: name, body: \"function\" + params + body});\n return src;\n } else {\n throw new Error(\"unexpected token : expected : '{' found : '\" + utils.findNextToken(src) + \"'\");\n }\n } else {\n throw new Error(\"unexpected token : expected : '(' found : '\" + utils.findNextToken(src) + \"'\");\n }\n } else {\n throw new Error(\"missing name\");\n }\n },\n\n \"rule\": function (orig, context, parse) {\n var src = orig.replace(/^rule\\s*/, \"\");\n var name = src.match(/^([a-zA-Z_$][0-9a-zA-Z_$]*|\"[^\"]*\"|'[^']*')/);\n if (name) {\n src = src.replace(name[0], \"\").replace(/^\\s*|\\s*$/g, \"\");\n if (utils.findNextToken(src) === \"{\") {\n name = name[1].replace(/^[\"']|[\"']$/g, \"\");\n var rule = {name: name, options: {}, constraints: null, action: null};\n var body = utils.getTokensBetween(src, \"{\", \"}\", true).join(\"\");\n src = src.replace(body, \"\");\n parse(body.replace(/^\\{\\s*|\\}\\s*$/g, \"\"), ruleTokens, rule);\n context.rules.push(rule);\n return src;\n } else {\n throw new Error(\"unexpected token : expected : '{' found : '\" + utils.findNextToken(src) + \"'\");\n }\n } else {\n throw new Error(\"missing name\");\n }\n\n }\n};\nmodule.exports = topLevelTokens;\n\n","\"use strict\";\n\nvar path = require(\"path\");\nvar WHITE_SPACE_REG = /[\\s|\\n|\\r|\\t]/,\n pathSep = path.sep || ( process.platform === 'win32' ? '\\\\' : '/' );\n\nvar TOKEN_INVERTS = {\n \"{\": \"}\",\n \"}\": \"{\",\n \"(\": \")\",\n \")\": \"(\",\n \"[\": \"]\"\n};\n\nvar getTokensBetween = exports.getTokensBetween = function (str, start, stop, includeStartEnd) {\n var depth = 0, ret = [];\n if (!start) {\n start = TOKEN_INVERTS[stop];\n depth = 1;\n }\n if (!stop) {\n stop = TOKEN_INVERTS[start];\n }\n str = Object(str);\n var startPushing = false, token, cursor = 0, found = false;\n while ((token = str.charAt(cursor++))) {\n if (token === start) {\n depth++;\n if (!startPushing) {\n startPushing = true;\n if (includeStartEnd) {\n ret.push(token);\n }\n } else {\n ret.push(token);\n }\n } else if (token === stop && cursor) {\n depth--;\n if (depth === 0) {\n if (includeStartEnd) {\n ret.push(token);\n }\n found = true;\n break;\n }\n ret.push(token);\n } else if (startPushing) {\n ret.push(token);\n }\n }\n if (!found) {\n throw new Error(\"Unable to match \" + start + \" in \" + str);\n }\n return ret;\n};\n\nexports.getParamList = function (str) {\n return getTokensBetween(str, \"(\", \")\", true).join(\"\");\n};\n\nexports.resolve = function (from, to) {\n if (process.platform === 'win32') {\n to = to.replace(/\\//g, '\\\\');\n }\n if (path.extname(from) !== '') {\n from = path.dirname(from);\n }\n if (to.split(pathSep).length === 1) {\n return to;\n }\n return path.resolve(from, to).replace(/\\\\/g, '/');\n\n};\n\nvar findNextTokenIndex = exports.findNextTokenIndex = function (str, startIndex, endIndex) {\n startIndex = startIndex || 0;\n endIndex = endIndex || str.length;\n var ret = -1, l = str.length;\n if (!endIndex || endIndex > l) {\n endIndex = l;\n }\n for (; startIndex < endIndex; startIndex++) {\n var c = str.charAt(startIndex);\n if (!WHITE_SPACE_REG.test(c)) {\n ret = startIndex;\n break;\n }\n }\n return ret;\n};\n\nexports.findNextToken = function (str, startIndex, endIndex) {\n return str.charAt(findNextTokenIndex(str, startIndex, endIndex));\n};","\"use strict\";\nvar extd = require(\"./extended\"),\n isEmpty = extd.isEmpty,\n merge = extd.merge,\n forEach = extd.forEach,\n declare = extd.declare,\n constraintMatcher = require(\"./constraintMatcher\"),\n constraint = require(\"./constraint\"),\n EqualityConstraint = constraint.EqualityConstraint,\n FromConstraint = constraint.FromConstraint;\n\nvar id = 0;\nvar Pattern = declare({});\n\nvar ObjectPattern = Pattern.extend({\n instance: {\n constructor: function (type, alias, conditions, store, options) {\n options = options || {};\n this.id = id++;\n this.type = type;\n this.alias = alias;\n this.conditions = conditions;\n this.pattern = options.pattern;\n var constraints = [new constraint.ObjectConstraint(type)];\n var constrnts = constraintMatcher.toConstraints(conditions, merge({alias: alias}, options));\n if (constrnts.length) {\n constraints = constraints.concat(constrnts);\n } else {\n var cnstrnt = new constraint.TrueConstraint();\n constraints.push(cnstrnt);\n }\n if (store && !isEmpty(store)) {\n var atm = new constraint.HashConstraint(store);\n constraints.push(atm);\n }\n\n forEach(constraints, function (constraint) {\n constraint.set(\"alias\", alias);\n });\n this.constraints = constraints;\n },\n\n getSpecificity: function () {\n var constraints = this.constraints, specificity = 0;\n for (var i = 0, l = constraints.length; i < l; i++) {\n if (constraints[i] instanceof EqualityConstraint) {\n specificity++;\n }\n }\n return specificity;\n },\n\n hasConstraint: function (type) {\n return extd.some(this.constraints, function (c) {\n return c instanceof type;\n });\n },\n\n hashCode: function () {\n return [this.type, this.alias, extd.format(\"%j\", this.conditions)].join(\":\");\n },\n\n toString: function () {\n return extd.format(\"%j\", this.constraints);\n }\n }\n}).as(exports, \"ObjectPattern\");\n\nvar FromPattern = ObjectPattern.extend({\n instance: {\n constructor: function (type, alias, conditions, store, from, options) {\n this._super([type, alias, conditions, store, options]);\n this.from = new FromConstraint(from, options);\n },\n\n hasConstraint: function (type) {\n return extd.some(this.constraints, function (c) {\n return c instanceof type;\n });\n },\n\n getSpecificity: function () {\n return this._super(arguments) + 1;\n },\n\n hashCode: function () {\n return [this.type, this.alias, extd.format(\"%j\", this.conditions), this.from.from].join(\":\");\n },\n\n toString: function () {\n return extd.format(\"%j from %s\", this.constraints, this.from.from);\n }\n }\n}).as(exports, \"FromPattern\");\n\n\nFromPattern.extend().as(exports, \"FromNotPattern\");\nObjectPattern.extend().as(exports, \"NotPattern\");\nObjectPattern.extend().as(exports, \"ExistsPattern\");\nFromPattern.extend().as(exports, \"FromExistsPattern\");\n\nPattern.extend({\n\n instance: {\n constructor: function (left, right) {\n this.id = id++;\n this.leftPattern = left;\n this.rightPattern = right;\n },\n\n hashCode: function () {\n return [this.leftPattern.hashCode(), this.rightPattern.hashCode()].join(\":\");\n },\n\n getSpecificity: function () {\n return this.rightPattern.getSpecificity() + this.leftPattern.getSpecificity();\n },\n\n getters: {\n constraints: function () {\n return this.leftPattern.constraints.concat(this.rightPattern.constraints);\n }\n }\n }\n\n}).as(exports, \"CompositePattern\");\n\n\nvar InitialFact = declare({\n instance: {\n constructor: function () {\n this.id = id++;\n this.recency = 0;\n }\n }\n}).as(exports, \"InitialFact\");\n\nObjectPattern.extend({\n instance: {\n constructor: function () {\n this._super([InitialFact, \"__i__\", [], {}]);\n },\n\n assert: function () {\n return true;\n }\n }\n}).as(exports, \"InitialFactPattern\");\n\n\n\n","\"use strict\";\nvar extd = require(\"./extended\"),\n isArray = extd.isArray,\n Promise = extd.Promise,\n declare = extd.declare,\n isHash = extd.isHash,\n isString = extd.isString,\n format = extd.format,\n parser = require(\"./parser\"),\n pattern = require(\"./pattern\"),\n ObjectPattern = pattern.ObjectPattern,\n FromPattern = pattern.FromPattern,\n NotPattern = pattern.NotPattern,\n ExistsPattern = pattern.ExistsPattern,\n FromNotPattern = pattern.FromNotPattern,\n FromExistsPattern = pattern.FromExistsPattern,\n CompositePattern = pattern.CompositePattern;\n\nvar parseConstraint = function (constraint) {\n if (typeof constraint === 'function') {\n // No parsing is needed for constraint functions\n return constraint;\n }\n return parser.parseConstraint(constraint);\n};\n\nvar parseExtra = extd\n .switcher()\n .isUndefinedOrNull(function () {\n return null;\n })\n .isLike(/^from +/, function (s) {\n return {from: s.replace(/^from +/, \"\").replace(/^\\s*|\\s*$/g, \"\")};\n })\n .def(function (o) {\n throw new Error(\"invalid rule constraint option \" + o);\n })\n .switcher();\n\nvar normailizeConstraint = extd\n .switcher()\n .isLength(1, function (c) {\n throw new Error(\"invalid rule constraint \" + format(\"%j\", [c]));\n })\n .isLength(2, function (c) {\n c.push(\"true\");\n return c;\n })\n //handle case where c[2] is a hash rather than a constraint string\n .isLength(3, function (c) {\n if (isString(c[2]) && /^from +/.test(c[2])) {\n var extra = c[2];\n c.splice(2, 0, \"true\");\n c[3] = null;\n c[4] = parseExtra(extra);\n } else if (isHash(c[2])) {\n c.splice(2, 0, \"true\");\n }\n return c;\n })\n //handle case where c[3] is a from clause rather than a hash for references\n .isLength(4, function (c) {\n if (isString(c[3])) {\n c.splice(3, 0, null);\n c[4] = parseExtra(c[4]);\n }\n return c;\n })\n .def(function (c) {\n if (c.length === 5) {\n c[4] = parseExtra(c[4]);\n }\n return c;\n })\n .switcher();\n\nvar getParamType = function getParamType(type, scope) {\n scope = scope || {};\n var getParamTypeSwitch = extd\n .switcher()\n .isEq(\"string\", function () {\n return String;\n })\n .isEq(\"date\", function () {\n return Date;\n })\n .isEq(\"array\", function () {\n return Array;\n })\n .isEq(\"boolean\", function () {\n return Boolean;\n })\n .isEq(\"regexp\", function () {\n return RegExp;\n })\n .isEq(\"number\", function () {\n return Number;\n })\n .isEq(\"object\", function () {\n return Object;\n })\n .isEq(\"hash\", function () {\n return Object;\n })\n .def(function (param) {\n throw new TypeError(\"invalid param type \" + param);\n })\n .switcher();\n\n var _getParamType = extd\n .switcher()\n .isString(function (param) {\n var t = scope[param];\n if (!t) {\n return getParamTypeSwitch(param.toLowerCase());\n } else {\n return t;\n }\n })\n .isFunction(function (func) {\n return func;\n })\n .deepEqual([], function () {\n return Array;\n })\n .def(function (param) {\n throw new Error(\"invalid param type \" + param);\n })\n .switcher();\n\n return _getParamType(type);\n};\n\nvar parsePattern = extd\n .switcher()\n .containsAt(\"or\", 0, function (condition) {\n condition.shift();\n return extd(condition).map(function (cond) {\n cond.scope = condition.scope;\n return parsePattern(cond);\n }).flatten().value();\n })\n .containsAt(\"not\", 0, function (condition) {\n condition.shift();\n condition = normailizeConstraint(condition);\n if (condition[4] && condition[4].from) {\n return [\n new FromNotPattern(\n getParamType(condition[0], condition.scope),\n condition[1] || \"m\",\n parseConstraint(condition[2] || \"true\"),\n condition[3] || {},\n parseConstraint(condition[4].from),\n {scope: condition.scope, pattern: condition[2]}\n )\n ];\n } else {\n return [\n new NotPattern(\n getParamType(condition[0], condition.scope),\n condition[1] || \"m\",\n parseConstraint(condition[2] || \"true\"),\n condition[3] || {},\n {scope: condition.scope, pattern: condition[2]}\n )\n ];\n }\n })\n .containsAt(\"exists\", 0, function (condition) {\n condition.shift();\n condition = normailizeConstraint(condition);\n if (condition[4] && condition[4].from) {\n return [\n new FromExistsPattern(\n getParamType(condition[0], condition.scope),\n condition[1] || \"m\",\n parseConstraint(condition[2] || \"true\"),\n condition[3] || {},\n parseConstraint(condition[4].from),\n {scope: condition.scope, pattern: condition[2]}\n )\n ];\n } else {\n return [\n new ExistsPattern(\n getParamType(condition[0], condition.scope),\n condition[1] || \"m\",\n parseConstraint(condition[2] || \"true\"),\n condition[3] || {},\n {scope: condition.scope, pattern: condition[2]}\n )\n ];\n }\n })\n .def(function (condition) {\n if (typeof condition === 'function') {\n return [condition];\n }\n condition = normailizeConstraint(condition);\n if (condition[4] && condition[4].from) {\n return [\n new FromPattern(\n getParamType(condition[0], condition.scope),\n condition[1] || \"m\",\n parseConstraint(condition[2] || \"true\"),\n condition[3] || {},\n parseConstraint(condition[4].from),\n {scope: condition.scope, pattern: condition[2]}\n )\n ];\n } else {\n return [\n new ObjectPattern(\n getParamType(condition[0], condition.scope),\n condition[1] || \"m\",\n parseConstraint(condition[2] || \"true\"),\n condition[3] || {},\n {scope: condition.scope, pattern: condition[2]}\n )\n ];\n }\n }).switcher();\n\nvar Rule = declare({\n instance: {\n constructor: function (name, options, pattern, cb) {\n this.name = name;\n this.pattern = pattern;\n this.cb = cb;\n if (options.agendaGroup) {\n this.agendaGroup = options.agendaGroup;\n this.autoFocus = extd.isBoolean(options.autoFocus) ? options.autoFocus : false;\n }\n this.priority = options.priority || options.salience || 0;\n },\n\n fire: function (flow, match) {\n var ret = new Promise(), cb = this.cb;\n try {\n if (cb.length === 3) {\n cb.call(flow, match.factHash, flow, ret.resolve);\n } else {\n ret = cb.call(flow, match.factHash, flow);\n }\n } catch (e) {\n ret.errback(e);\n }\n return ret;\n }\n }\n});\n\nfunction createRule(name, options, conditions, cb) {\n if (isArray(options)) {\n cb = conditions;\n conditions = options;\n } else {\n options = options || {};\n }\n var isRules = extd.every(conditions, function (cond) {\n return isArray(cond);\n });\n if (isRules && conditions.length === 1) {\n conditions = conditions[0];\n isRules = false;\n }\n var rules = [];\n var scope = options.scope || {};\n conditions.scope = scope;\n if (isRules) {\n var _mergePatterns = function (patt, i) {\n if (!patterns[i]) {\n patterns[i] = i === 0 ? [] : patterns[i - 1].slice();\n //remove dup\n if (i !== 0) {\n patterns[i].pop();\n }\n patterns[i].push(patt);\n } else {\n extd(patterns).forEach(function (p) {\n p.push(patt);\n });\n }\n\n };\n var l = conditions.length, patterns = [], condition;\n for (var i = 0; i < l; i++) {\n condition = conditions[i];\n condition.scope = scope;\n extd.forEach(parsePattern(condition), _mergePatterns);\n\n }\n rules = extd.map(patterns, function (patterns) {\n var compPat = null;\n for (var i = 0; i < patterns.length; i++) {\n if (compPat === null) {\n compPat = new CompositePattern(patterns[i++], patterns[i]);\n } else {\n compPat = new CompositePattern(compPat, patterns[i]);\n }\n }\n return new Rule(name, options, compPat, cb);\n });\n } else {\n rules = extd.map(parsePattern(conditions), function (cond) {\n return new Rule(name, options, cond, cb);\n });\n }\n return rules;\n}\n\nexports.createRule = createRule;\n\n\n\n","\"use strict\";\nvar declare = require(\"declare.js\"),\n LinkedList = require(\"./linkedList\"),\n InitialFact = require(\"./pattern\").InitialFact,\n id = 0;\n\nvar Fact = declare({\n\n instance: {\n constructor: function (obj) {\n this.object = obj;\n this.recency = 0;\n this.id = id++;\n },\n\n equals: function (fact) {\n return fact === this.object;\n },\n\n hashCode: function () {\n return this.id;\n }\n }\n\n});\n\ndeclare({\n\n instance: {\n\n constructor: function () {\n this.recency = 0;\n this.facts = new LinkedList();\n },\n\n dispose: function () {\n this.facts.clear();\n },\n\n getFacts: function () {\n var head = {next: this.facts.head}, ret = [], i = 0, val;\n while ((head = head.next)) {\n if (!((val = head.data.object) instanceof InitialFact)) {\n ret[i++] = val;\n }\n }\n return ret;\n },\n\n getFactsByType: function (Type) {\n var head = {next: this.facts.head}, ret = [], i = 0;\n while ((head = head.next)) {\n var val = head.data.object;\n if (!(val instanceof InitialFact) && (val instanceof Type || val.constructor === Type)) {\n ret[i++] = val;\n }\n }\n return ret;\n },\n\n getFactHandle: function (o) {\n var head = {next: this.facts.head}, ret;\n while ((head = head.next)) {\n var existingFact = head.data;\n if (existingFact.equals(o)) {\n return existingFact;\n }\n }\n if (!ret) {\n ret = new Fact(o);\n ret.recency = this.recency++;\n //this.facts.push(ret);\n }\n return ret;\n },\n\n modifyFact: function (fact) {\n var head = {next: this.facts.head};\n while ((head = head.next)) {\n var existingFact = head.data;\n if (existingFact.equals(fact)) {\n existingFact.recency = this.recency++;\n return existingFact;\n }\n }\n //if we made it here we did not find the fact\n throw new Error(\"the fact to modify does not exist\");\n },\n\n assertFact: function (fact) {\n var ret = new Fact(fact);\n ret.recency = this.recency++;\n this.facts.push(ret);\n return ret;\n },\n\n retractFact: function (fact) {\n var facts = this.facts, head = {next: facts.head};\n while ((head = head.next)) {\n var existingFact = head.data;\n if (existingFact.equals(fact)) {\n facts.remove(head);\n return existingFact;\n }\n }\n //if we made it here we did not find the fact\n throw new Error(\"the fact to remove does not exist\");\n\n\n }\n }\n\n}).as(exports, \"WorkingMemory\");\n\n","(function () {\n \"use strict\";\n /*global extended isExtended*/\n\n function defineObject(extended, is, arr) {\n\n var deepEqual = is.deepEqual,\n isString = is.isString,\n isHash = is.isHash,\n difference = arr.difference,\n hasOwn = Object.prototype.hasOwnProperty,\n isFunction = is.isFunction;\n\n function _merge(target, source) {\n var name, s;\n for (name in source) {\n if (hasOwn.call(source, name)) {\n s = source[name];\n if (!(name in target) || (target[name] !== s)) {\n target[name] = s;\n }\n }\n }\n return target;\n }\n\n function _deepMerge(target, source) {\n var name, s, t;\n for (name in source) {\n if (hasOwn.call(source, name)) {\n s = source[name];\n t = target[name];\n if (!deepEqual(t, s)) {\n if (isHash(t) && isHash(s)) {\n target[name] = _deepMerge(t, s);\n } else if (isHash(s)) {\n target[name] = _deepMerge({}, s);\n } else {\n target[name] = s;\n }\n }\n }\n }\n return target;\n }\n\n\n function merge(obj) {\n if (!obj) {\n obj = {};\n }\n for (var i = 1, l = arguments.length; i < l; i++) {\n _merge(obj, arguments[i]);\n }\n return obj; // Object\n }\n\n function deepMerge(obj) {\n if (!obj) {\n obj = {};\n }\n for (var i = 1, l = arguments.length; i < l; i++) {\n _deepMerge(obj, arguments[i]);\n }\n return obj; // Object\n }\n\n\n function extend(parent, child) {\n var proto = parent.prototype || parent;\n merge(proto, child);\n return parent;\n }\n\n function forEach(hash, iterator, scope) {\n if (!isHash(hash) || !isFunction(iterator)) {\n throw new TypeError();\n }\n var objKeys = keys(hash), key;\n for (var i = 0, len = objKeys.length; i < len; ++i) {\n key = objKeys[i];\n iterator.call(scope || hash, hash[key], key, hash);\n }\n return hash;\n }\n\n function filter(hash, iterator, scope) {\n if (!isHash(hash) || !isFunction(iterator)) {\n throw new TypeError();\n }\n var objKeys = keys(hash), key, value, ret = {};\n for (var i = 0, len = objKeys.length; i < len; ++i) {\n key = objKeys[i];\n value = hash[key];\n if (iterator.call(scope || hash, value, key, hash)) {\n ret[key] = value;\n }\n }\n return ret;\n }\n\n function values(hash) {\n if (!isHash(hash)) {\n throw new TypeError();\n }\n var objKeys = keys(hash), ret = [];\n for (var i = 0, len = objKeys.length; i < len; ++i) {\n ret.push(hash[objKeys[i]]);\n }\n return ret;\n }\n\n\n function keys(hash) {\n if (!isHash(hash)) {\n throw new TypeError();\n }\n var ret = [];\n for (var i in hash) {\n if (hasOwn.call(hash, i)) {\n ret.push(i);\n }\n }\n return ret;\n }\n\n function invert(hash) {\n if (!isHash(hash)) {\n throw new TypeError();\n }\n var objKeys = keys(hash), key, ret = {};\n for (var i = 0, len = objKeys.length; i < len; ++i) {\n key = objKeys[i];\n ret[hash[key]] = key;\n }\n return ret;\n }\n\n function toArray(hash) {\n if (!isHash(hash)) {\n throw new TypeError();\n }\n var objKeys = keys(hash), key, ret = [];\n for (var i = 0, len = objKeys.length; i < len; ++i) {\n key = objKeys[i];\n ret.push([key, hash[key]]);\n }\n return ret;\n }\n\n function omit(hash, omitted) {\n if (!isHash(hash)) {\n throw new TypeError();\n }\n if (isString(omitted)) {\n omitted = [omitted];\n }\n var objKeys = difference(keys(hash), omitted), key, ret = {};\n for (var i = 0, len = objKeys.length; i < len; ++i) {\n key = objKeys[i];\n ret[key] = hash[key];\n }\n return ret;\n }\n\n var hash = {\n forEach: forEach,\n filter: filter,\n invert: invert,\n values: values,\n toArray: toArray,\n keys: keys,\n omit: omit\n };\n\n\n var obj = {\n extend: extend,\n merge: merge,\n deepMerge: deepMerge,\n omit: omit\n };\n\n var ret = extended.define(is.isObject, obj).define(isHash, hash).define(is.isFunction, {extend: extend}).expose({hash: hash}).expose(obj);\n var orig = ret.extend;\n ret.extend = function __extend() {\n if (arguments.length === 1) {\n return orig.extend.apply(ret, arguments);\n } else {\n extend.apply(null, arguments);\n }\n };\n return ret;\n\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineObject(require(\"extended\"), require(\"is-extended\"), require(\"array-extended\"));\n\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"extended\", \"is-extended\", \"array-extended\"], function (extended, is, array) {\n return defineObject(extended, is, array);\n });\n } else {\n this.objectExtended = defineObject(this.extended, this.isExtended, this.arrayExtended);\n }\n\n}).call(this);\n\n\n\n\n\n\n","(function () {\n \"use strict\";\n /*global setImmediate, MessageChannel*/\n\n\n function definePromise(declare, extended, array, is, fn, args) {\n\n var forEach = array.forEach,\n isUndefinedOrNull = is.isUndefinedOrNull,\n isArray = is.isArray,\n isFunction = is.isFunction,\n isBoolean = is.isBoolean,\n bind = fn.bind,\n bindIgnore = fn.bindIgnore,\n argsToArray = args.argsToArray;\n\n function createHandler(fn, promise) {\n return function _handler() {\n try {\n when(fn.apply(null, arguments))\n .addCallback(promise)\n .addErrback(promise);\n } catch (e) {\n promise.errback(e);\n }\n };\n }\n\n var nextTick;\n if (typeof setImmediate === \"function\") {\n // In IE10, or use https://github.com/NobleJS/setImmediate\n if (typeof window !== \"undefined\") {\n nextTick = setImmediate.bind(window);\n } else {\n nextTick = setImmediate;\n }\n } else if (typeof process !== \"undefined\") {\n // node\n nextTick = function (cb) {\n process.nextTick(cb);\n };\n } else if (typeof MessageChannel !== \"undefined\") {\n // modern browsers\n // http://www.nonblocking.io/2011/06/windownexttick.html\n var channel = new MessageChannel();\n // linked list of tasks (single, with head node)\n var head = {}, tail = head;\n channel.port1.onmessage = function () {\n head = head.next;\n var task = head.task;\n delete head.task;\n task();\n };\n nextTick = function (task) {\n tail = tail.next = {task: task};\n channel.port2.postMessage(0);\n };\n } else {\n // old browsers\n nextTick = function (task) {\n setTimeout(task, 0);\n };\n }\n\n\n //noinspection JSHint\n var Promise = declare({\n instance: {\n __fired: false,\n\n __results: null,\n\n __error: null,\n\n __errorCbs: null,\n\n __cbs: null,\n\n constructor: function () {\n this.__errorCbs = [];\n this.__cbs = [];\n fn.bindAll(this, [\"callback\", \"errback\", \"resolve\", \"classic\", \"__resolve\", \"addCallback\", \"addErrback\"]);\n },\n\n __resolve: function () {\n if (!this.__fired) {\n this.__fired = true;\n var cbs = this.__error ? this.__errorCbs : this.__cbs,\n len = cbs.length, i,\n results = this.__error || this.__results;\n for (i = 0; i < len; i++) {\n this.__callNextTick(cbs[i], results);\n }\n\n }\n },\n\n __callNextTick: function (cb, results) {\n nextTick(function () {\n cb.apply(this, results);\n });\n },\n\n addCallback: function (cb) {\n if (cb) {\n if (isPromiseLike(cb) && cb.callback) {\n cb = cb.callback;\n }\n if (this.__fired && this.__results) {\n this.__callNextTick(cb, this.__results);\n } else {\n this.__cbs.push(cb);\n }\n }\n return this;\n },\n\n\n addErrback: function (cb) {\n if (cb) {\n if (isPromiseLike(cb) && cb.errback) {\n cb = cb.errback;\n }\n if (this.__fired && this.__error) {\n this.__callNextTick(cb, this.__error);\n } else {\n this.__errorCbs.push(cb);\n }\n }\n return this;\n },\n\n callback: function (args) {\n if (!this.__fired) {\n this.__results = arguments;\n this.__resolve();\n }\n return this.promise();\n },\n\n errback: function (args) {\n if (!this.__fired) {\n this.__error = arguments;\n this.__resolve();\n }\n return this.promise();\n },\n\n resolve: function (err, args) {\n if (err) {\n this.errback(err);\n } else {\n this.callback.apply(this, argsToArray(arguments, 1));\n }\n return this;\n },\n\n classic: function (cb) {\n if (\"function\" === typeof cb) {\n this.addErrback(function (err) {\n cb(err);\n });\n this.addCallback(function () {\n cb.apply(this, [null].concat(argsToArray(arguments)));\n });\n }\n return this;\n },\n\n then: function (callback, errback) {\n\n var promise = new Promise(), errorHandler = promise;\n if (isFunction(errback)) {\n errorHandler = createHandler(errback, promise);\n }\n this.addErrback(errorHandler);\n if (isFunction(callback)) {\n this.addCallback(createHandler(callback, promise));\n } else {\n this.addCallback(promise);\n }\n\n return promise.promise();\n },\n\n both: function (callback) {\n return this.then(callback, callback);\n },\n\n promise: function () {\n var ret = {\n then: bind(this, \"then\"),\n both: bind(this, \"both\"),\n promise: function () {\n return ret;\n }\n };\n forEach([\"addCallback\", \"addErrback\", \"classic\"], function (action) {\n ret[action] = bind(this, function () {\n this[action].apply(this, arguments);\n return ret;\n });\n }, this);\n\n return ret;\n }\n\n\n }\n });\n\n\n var PromiseList = Promise.extend({\n instance: {\n\n /*@private*/\n __results: null,\n\n /*@private*/\n __errors: null,\n\n /*@private*/\n __promiseLength: 0,\n\n /*@private*/\n __defLength: 0,\n\n /*@private*/\n __firedLength: 0,\n\n normalizeResults: false,\n\n constructor: function (defs, normalizeResults) {\n this.__errors = [];\n this.__results = [];\n this.normalizeResults = isBoolean(normalizeResults) ? normalizeResults : false;\n this._super(arguments);\n if (defs && defs.length) {\n this.__defLength = defs.length;\n forEach(defs, this.__addPromise, this);\n } else {\n this.__resolve();\n }\n },\n\n __addPromise: function (promise, i) {\n promise.then(\n bind(this, function () {\n var args = argsToArray(arguments);\n args.unshift(i);\n this.callback.apply(this, args);\n }),\n bind(this, function () {\n var args = argsToArray(arguments);\n args.unshift(i);\n this.errback.apply(this, args);\n })\n );\n },\n\n __resolve: function () {\n if (!this.__fired) {\n this.__fired = true;\n var cbs = this.__errors.length ? this.__errorCbs : this.__cbs,\n len = cbs.length, i,\n results = this.__errors.length ? this.__errors : this.__results;\n for (i = 0; i < len; i++) {\n this.__callNextTick(cbs[i], results);\n }\n\n }\n },\n\n __callNextTick: function (cb, results) {\n nextTick(function () {\n cb.apply(null, [results]);\n });\n },\n\n addCallback: function (cb) {\n if (cb) {\n if (isPromiseLike(cb) && cb.callback) {\n cb = bind(cb, \"callback\");\n }\n if (this.__fired && !this.__errors.length) {\n this.__callNextTick(cb, this.__results);\n } else {\n this.__cbs.push(cb);\n }\n }\n return this;\n },\n\n addErrback: function (cb) {\n if (cb) {\n if (isPromiseLike(cb) && cb.errback) {\n cb = bind(cb, \"errback\");\n }\n if (this.__fired && this.__errors.length) {\n this.__callNextTick(cb, this.__errors);\n } else {\n this.__errorCbs.push(cb);\n }\n }\n return this;\n },\n\n\n callback: function (i) {\n if (this.__fired) {\n throw new Error(\"Already fired!\");\n }\n var args = argsToArray(arguments);\n if (this.normalizeResults) {\n args = args.slice(1);\n args = args.length === 1 ? args.pop() : args;\n }\n this.__results[i] = args;\n this.__firedLength++;\n if (this.__firedLength === this.__defLength) {\n this.__resolve();\n }\n return this.promise();\n },\n\n\n errback: function (i) {\n if (this.__fired) {\n throw new Error(\"Already fired!\");\n }\n var args = argsToArray(arguments);\n if (this.normalizeResults) {\n args = args.slice(1);\n args = args.length === 1 ? args.pop() : args;\n }\n this.__errors[i] = args;\n this.__firedLength++;\n if (this.__firedLength === this.__defLength) {\n this.__resolve();\n }\n return this.promise();\n }\n\n }\n });\n\n\n function callNext(list, results, propogate) {\n var ret = new Promise().callback();\n forEach(list, function (listItem) {\n ret = ret.then(propogate ? listItem : bindIgnore(null, listItem));\n if (!propogate) {\n ret = ret.then(function (res) {\n results.push(res);\n return results;\n });\n }\n });\n return ret;\n }\n\n function isPromiseLike(obj) {\n return !isUndefinedOrNull(obj) && (isFunction(obj.then));\n }\n\n function wrapThenPromise(p) {\n var ret = new Promise();\n p.then(bind(ret, \"callback\"), bind(ret, \"errback\"));\n return ret.promise();\n }\n\n function when(args) {\n var p;\n args = argsToArray(arguments);\n if (!args.length) {\n p = new Promise().callback(args).promise();\n } else if (args.length === 1) {\n args = args.pop();\n if (isPromiseLike(args)) {\n if (args.addCallback && args.addErrback) {\n p = new Promise();\n args.addCallback(p.callback);\n args.addErrback(p.errback);\n } else {\n p = wrapThenPromise(args);\n }\n } else if (isArray(args) && array.every(args, isPromiseLike)) {\n p = new PromiseList(args, true).promise();\n } else {\n p = new Promise().callback(args);\n }\n } else {\n p = new PromiseList(array.map(args, function (a) {\n return when(a);\n }), true).promise();\n }\n return p;\n\n }\n\n function wrap(fn, scope) {\n return function _wrap() {\n var ret = new Promise();\n var args = argsToArray(arguments);\n args.push(ret.resolve);\n fn.apply(scope || this, args);\n return ret.promise();\n };\n }\n\n function serial(list) {\n if (isArray(list)) {\n return callNext(list, [], false);\n } else {\n throw new Error(\"When calling promise.serial the first argument must be an array\");\n }\n }\n\n\n function chain(list) {\n if (isArray(list)) {\n return callNext(list, [], true);\n } else {\n throw new Error(\"When calling promise.serial the first argument must be an array\");\n }\n }\n\n\n function wait(args, fn) {\n args = argsToArray(arguments);\n var resolved = false;\n fn = args.pop();\n var p = when(args);\n return function waiter() {\n if (!resolved) {\n args = arguments;\n return p.then(bind(this, function doneWaiting() {\n resolved = true;\n return fn.apply(this, args);\n }));\n } else {\n return when(fn.apply(this, arguments));\n }\n };\n }\n\n function createPromise() {\n return new Promise();\n }\n\n function createPromiseList(promises) {\n return new PromiseList(promises, true).promise();\n }\n\n function createRejected(val) {\n return createPromise().errback(val);\n }\n\n function createResolved(val) {\n return createPromise().callback(val);\n }\n\n\n return extended\n .define({\n isPromiseLike: isPromiseLike\n }).expose({\n isPromiseLike: isPromiseLike,\n when: when,\n wrap: wrap,\n wait: wait,\n serial: serial,\n chain: chain,\n Promise: Promise,\n PromiseList: PromiseList,\n promise: createPromise,\n defer: createPromise,\n deferredList: createPromiseList,\n reject: createRejected,\n resolve: createResolved\n });\n\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = definePromise(require(\"declare.js\"), require(\"extended\"), require(\"array-extended\"), require(\"is-extended\"), require(\"function-extended\"), require(\"arguments-extended\"));\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"declare\", \"extended\", \"array-extended\", \"is-extended\", \"function-extended\", \"arguments-extended\"], function (declare, extended, array, is, fn, args) {\n return definePromise(declare, extended, array, is, fn, args);\n });\n } else {\n this.promiseExtended = definePromise(this.declare, this.extended, this.arrayExtended, this.isExtended, this.functionExtended, this.argumentsExtended);\n }\n\n}).call(this);\n\n\n\n\n\n\n","(function () {\n \"use strict\";\n\n function defineString(extended, is, date, arr) {\n\n var stringify;\n if (typeof JSON === \"undefined\") {\n /*\n json2.js\n 2012-10-08\n\n Public Domain.\n\n NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n */\n\n (function () {\n function f(n) {\n // Format integers to have at least two digits.\n return n < 10 ? '0' + n : n;\n }\n\n var isPrimitive = is.tester().isString().isNumber().isBoolean().tester();\n\n function toJSON(obj) {\n if (is.isDate(obj)) {\n return isFinite(obj.valueOf()) ? obj.getUTCFullYear() + '-' +\n f(obj.getUTCMonth() + 1) + '-' +\n f(obj.getUTCDate()) + 'T' +\n f(obj.getUTCHours()) + ':' +\n f(obj.getUTCMinutes()) + ':' +\n f(obj.getUTCSeconds()) + 'Z'\n : null;\n } else if (isPrimitive(obj)) {\n return obj.valueOf();\n }\n return obj;\n }\n\n var cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n gap,\n indent,\n meta = { // table of character substitutions\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\'\n },\n rep;\n\n\n function quote(string) {\n escapable.lastIndex = 0;\n return escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\n var c = meta[a];\n return typeof c === 'string' ? c : '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n }) + '\"' : '\"' + string + '\"';\n }\n\n\n function str(key, holder) {\n\n var i, k, v, length, mind = gap, partial, value = holder[key];\n if (value) {\n value = toJSON(value);\n }\n if (typeof rep === 'function') {\n value = rep.call(holder, key, value);\n }\n switch (typeof value) {\n case 'string':\n return quote(value);\n case 'number':\n return isFinite(value) ? String(value) : 'null';\n case 'boolean':\n case 'null':\n return String(value);\n case 'object':\n if (!value) {\n return 'null';\n }\n gap += indent;\n partial = [];\n if (Object.prototype.toString.apply(value) === '[object Array]') {\n length = value.length;\n for (i = 0; i < length; i += 1) {\n partial[i] = str(i, value) || 'null';\n }\n v = partial.length === 0 ? '[]' : gap ? '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']' : '[' + partial.join(',') + ']';\n gap = mind;\n return v;\n }\n if (rep && typeof rep === 'object') {\n length = rep.length;\n for (i = 0; i < length; i += 1) {\n if (typeof rep[i] === 'string') {\n k = rep[i];\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n } else {\n for (k in value) {\n if (Object.prototype.hasOwnProperty.call(value, k)) {\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n }\n v = partial.length === 0 ? '{}' : gap ? '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}' : '{' + partial.join(',') + '}';\n gap = mind;\n return v;\n }\n }\n\n stringify = function (value, replacer, space) {\n var i;\n gap = '';\n indent = '';\n if (typeof space === 'number') {\n for (i = 0; i < space; i += 1) {\n indent += ' ';\n }\n } else if (typeof space === 'string') {\n indent = space;\n }\n rep = replacer;\n if (replacer && typeof replacer !== 'function' &&\n (typeof replacer !== 'object' ||\n typeof replacer.length !== 'number')) {\n throw new Error('JSON.stringify');\n }\n return str('', {'': value});\n };\n }());\n } else {\n stringify = JSON.stringify;\n }\n\n\n var isHash = is.isHash, aSlice = Array.prototype.slice;\n\n var FORMAT_REGEX = /%((?:-?\\+?.?\\d*)?|(?:\\[[^\\[|\\]]*\\]))?([sjdDZ])/g;\n var INTERP_REGEX = /\\{(?:\\[([^\\[|\\]]*)\\])?(\\w+)\\}/g;\n var STR_FORMAT = /(-?)(\\+?)([A-Z|a-z|\\W]?)([1-9][0-9]*)?$/;\n var OBJECT_FORMAT = /([1-9][0-9]*)$/g;\n\n function formatString(string, format) {\n var ret = string;\n if (STR_FORMAT.test(format)) {\n var match = format.match(STR_FORMAT);\n var isLeftJustified = match[1], padChar = match[3], width = match[4];\n if (width) {\n width = parseInt(width, 10);\n if (ret.length < width) {\n ret = pad(ret, width, padChar, isLeftJustified);\n } else {\n ret = truncate(ret, width);\n }\n }\n }\n return ret;\n }\n\n function formatNumber(number, format) {\n var ret;\n if (is.isNumber(number)) {\n ret = \"\" + number;\n if (STR_FORMAT.test(format)) {\n var match = format.match(STR_FORMAT);\n var isLeftJustified = match[1], signed = match[2], padChar = match[3], width = match[4];\n if (signed) {\n ret = (number > 0 ? \"+\" : \"\") + ret;\n }\n if (width) {\n width = parseInt(width, 10);\n if (ret.length < width) {\n ret = pad(ret, width, padChar || \"0\", isLeftJustified);\n } else {\n ret = truncate(ret, width);\n }\n }\n\n }\n } else {\n throw new Error(\"stringExtended.format : when using %d the parameter must be a number!\");\n }\n return ret;\n }\n\n function formatObject(object, format) {\n var ret, match = format.match(OBJECT_FORMAT), spacing = 0;\n if (match) {\n spacing = parseInt(match[0], 10);\n if (isNaN(spacing)) {\n spacing = 0;\n }\n }\n try {\n ret = stringify(object, null, spacing);\n } catch (e) {\n throw new Error(\"stringExtended.format : Unable to parse json from \", object);\n }\n return ret;\n }\n\n\n var styles = {\n //styles\n bold: 1,\n bright: 1,\n italic: 3,\n underline: 4,\n blink: 5,\n inverse: 7,\n crossedOut: 9,\n\n red: 31,\n green: 32,\n yellow: 33,\n blue: 34,\n magenta: 35,\n cyan: 36,\n white: 37,\n\n redBackground: 41,\n greenBackground: 42,\n yellowBackground: 43,\n blueBackground: 44,\n magentaBackground: 45,\n cyanBackground: 46,\n whiteBackground: 47,\n\n encircled: 52,\n overlined: 53,\n grey: 90,\n black: 90\n };\n\n var characters = {\n SMILEY: \"☺\",\n SOLID_SMILEY: \"☻\",\n HEART: \"♥\",\n DIAMOND: \"♦\",\n CLOVE: \"♣\",\n SPADE: \"♠\",\n DOT: \"•\",\n SQUARE_CIRCLE: \"◘\",\n CIRCLE: \"○\",\n FILLED_SQUARE_CIRCLE: \"◙\",\n MALE: \"♂\",\n FEMALE: \"♀\",\n EIGHT_NOTE: \"♪\",\n DOUBLE_EIGHTH_NOTE: \"♫\",\n SUN: \"☼\",\n PLAY: \"►\",\n REWIND: \"◄\",\n UP_DOWN: \"↕\",\n PILCROW: \"¶\",\n SECTION: \"§\",\n THICK_MINUS: \"▬\",\n SMALL_UP_DOWN: \"↨\",\n UP_ARROW: \"↑\",\n DOWN_ARROW: \"↓\",\n RIGHT_ARROW: \"→\",\n LEFT_ARROW: \"←\",\n RIGHT_ANGLE: \"∟\",\n LEFT_RIGHT_ARROW: \"↔\",\n TRIANGLE: \"▲\",\n DOWN_TRIANGLE: \"▼\",\n HOUSE: \"⌂\",\n C_CEDILLA: \"Ç\",\n U_UMLAUT: \"ü\",\n E_ACCENT: \"é\",\n A_LOWER_CIRCUMFLEX: \"â\",\n A_LOWER_UMLAUT: \"ä\",\n A_LOWER_GRAVE_ACCENT: \"à\",\n A_LOWER_CIRCLE_OVER: \"å\",\n C_LOWER_CIRCUMFLEX: \"ç\",\n E_LOWER_CIRCUMFLEX: \"ê\",\n E_LOWER_UMLAUT: \"ë\",\n E_LOWER_GRAVE_ACCENT: \"è\",\n I_LOWER_UMLAUT: \"ï\",\n I_LOWER_CIRCUMFLEX: \"î\",\n I_LOWER_GRAVE_ACCENT: \"ì\",\n A_UPPER_UMLAUT: \"Ä\",\n A_UPPER_CIRCLE: \"Å\",\n E_UPPER_ACCENT: \"É\",\n A_E_LOWER: \"æ\",\n A_E_UPPER: \"Æ\",\n O_LOWER_CIRCUMFLEX: \"ô\",\n O_LOWER_UMLAUT: \"ö\",\n O_LOWER_GRAVE_ACCENT: \"ò\",\n U_LOWER_CIRCUMFLEX: \"û\",\n U_LOWER_GRAVE_ACCENT: \"ù\",\n Y_LOWER_UMLAUT: \"ÿ\",\n O_UPPER_UMLAUT: \"Ö\",\n U_UPPER_UMLAUT: \"Ü\",\n CENTS: \"¢\",\n POUND: \"£\",\n YEN: \"¥\",\n CURRENCY: \"¤\",\n PTS: \"₧\",\n FUNCTION: \"ƒ\",\n A_LOWER_ACCENT: \"á\",\n I_LOWER_ACCENT: \"í\",\n O_LOWER_ACCENT: \"ó\",\n U_LOWER_ACCENT: \"ú\",\n N_LOWER_TILDE: \"ñ\",\n N_UPPER_TILDE: \"Ñ\",\n A_SUPER: \"ª\",\n O_SUPER: \"º\",\n UPSIDEDOWN_QUESTION: \"¿\",\n SIDEWAYS_L: \"⌐\",\n NEGATION: \"¬\",\n ONE_HALF: \"½\",\n ONE_FOURTH: \"¼\",\n UPSIDEDOWN_EXCLAMATION: \"¡\",\n DOUBLE_LEFT: \"«\",\n DOUBLE_RIGHT: \"»\",\n LIGHT_SHADED_BOX: \"░\",\n MEDIUM_SHADED_BOX: \"▒\",\n DARK_SHADED_BOX: \"▓\",\n VERTICAL_LINE: \"│\",\n MAZE__SINGLE_RIGHT_T: \"┤\",\n MAZE_SINGLE_RIGHT_TOP: \"┐\",\n MAZE_SINGLE_RIGHT_BOTTOM_SMALL: \"┘\",\n MAZE_SINGLE_LEFT_TOP_SMALL: \"┌\",\n MAZE_SINGLE_LEFT_BOTTOM_SMALL: \"└\",\n MAZE_SINGLE_LEFT_T: \"├\",\n MAZE_SINGLE_BOTTOM_T: \"┴\",\n MAZE_SINGLE_TOP_T: \"┬\",\n MAZE_SINGLE_CENTER: \"┼\",\n MAZE_SINGLE_HORIZONTAL_LINE: \"─\",\n MAZE_SINGLE_RIGHT_DOUBLECENTER_T: \"╡\",\n MAZE_SINGLE_RIGHT_DOUBLE_BL: \"╛\",\n MAZE_SINGLE_RIGHT_DOUBLE_T: \"╢\",\n MAZE_SINGLE_RIGHT_DOUBLEBOTTOM_TOP: \"╖\",\n MAZE_SINGLE_RIGHT_DOUBLELEFT_TOP: \"╕\",\n MAZE_SINGLE_LEFT_DOUBLE_T: \"╞\",\n MAZE_SINGLE_BOTTOM_DOUBLE_T: \"╧\",\n MAZE_SINGLE_TOP_DOUBLE_T: \"╤\",\n MAZE_SINGLE_TOP_DOUBLECENTER_T: \"╥\",\n MAZE_SINGLE_BOTTOM_DOUBLECENTER_T: \"╨\",\n MAZE_SINGLE_LEFT_DOUBLERIGHT_BOTTOM: \"╘\",\n MAZE_SINGLE_LEFT_DOUBLERIGHT_TOP: \"╒\",\n MAZE_SINGLE_LEFT_DOUBLEBOTTOM_TOP: \"╓\",\n MAZE_SINGLE_LEFT_DOUBLETOP_BOTTOM: \"╙\",\n MAZE_SINGLE_LEFT_TOP: \"Γ\",\n MAZE_SINGLE_RIGHT_BOTTOM: \"╜\",\n MAZE_SINGLE_LEFT_CENTER: \"╟\",\n MAZE_SINGLE_DOUBLECENTER_CENTER: \"╫\",\n MAZE_SINGLE_DOUBLECROSS_CENTER: \"╪\",\n MAZE_DOUBLE_LEFT_CENTER: \"╣\",\n MAZE_DOUBLE_VERTICAL: \"║\",\n MAZE_DOUBLE_RIGHT_TOP: \"╗\",\n MAZE_DOUBLE_RIGHT_BOTTOM: \"╝\",\n MAZE_DOUBLE_LEFT_BOTTOM: \"╚\",\n MAZE_DOUBLE_LEFT_TOP: \"╔\",\n MAZE_DOUBLE_BOTTOM_T: \"╩\",\n MAZE_DOUBLE_TOP_T: \"╦\",\n MAZE_DOUBLE_LEFT_T: \"╠\",\n MAZE_DOUBLE_HORIZONTAL: \"═\",\n MAZE_DOUBLE_CROSS: \"╬\",\n SOLID_RECTANGLE: \"█\",\n THICK_LEFT_VERTICAL: \"▌\",\n THICK_RIGHT_VERTICAL: \"▐\",\n SOLID_SMALL_RECTANGLE_BOTTOM: \"▄\",\n SOLID_SMALL_RECTANGLE_TOP: \"▀\",\n PHI_UPPER: \"Φ\",\n INFINITY: \"∞\",\n INTERSECTION: \"∩\",\n DEFINITION: \"≡\",\n PLUS_MINUS: \"±\",\n GT_EQ: \"≥\",\n LT_EQ: \"≤\",\n THEREFORE: \"⌠\",\n SINCE: \"∵\",\n DOESNOT_EXIST: \"∄\",\n EXISTS: \"∃\",\n FOR_ALL: \"∀\",\n EXCLUSIVE_OR: \"⊕\",\n BECAUSE: \"⌡\",\n DIVIDE: \"÷\",\n APPROX: \"≈\",\n DEGREE: \"°\",\n BOLD_DOT: \"∙\",\n DOT_SMALL: \"·\",\n CHECK: \"√\",\n ITALIC_X: \"✗\",\n SUPER_N: \"ⁿ\",\n SQUARED: \"²\",\n CUBED: \"³\",\n SOLID_BOX: \"■\",\n PERMILE: \"‰\",\n REGISTERED_TM: \"®\",\n COPYRIGHT: \"©\",\n TRADEMARK: \"™\",\n BETA: \"β\",\n GAMMA: \"γ\",\n ZETA: \"ζ\",\n ETA: \"η\",\n IOTA: \"ι\",\n KAPPA: \"κ\",\n LAMBDA: \"λ\",\n NU: \"ν\",\n XI: \"ξ\",\n OMICRON: \"ο\",\n RHO: \"ρ\",\n UPSILON: \"υ\",\n CHI_LOWER: \"φ\",\n CHI_UPPER: \"χ\",\n PSI: \"ψ\",\n ALPHA: \"α\",\n ESZETT: \"ß\",\n PI: \"π\",\n SIGMA_UPPER: \"Σ\",\n SIGMA_LOWER: \"σ\",\n MU: \"µ\",\n TAU: \"τ\",\n THETA: \"Θ\",\n OMEGA: \"Ω\",\n DELTA: \"δ\",\n PHI_LOWER: \"φ\",\n EPSILON: \"ε\"\n };\n\n function pad(string, length, ch, end) {\n string = \"\" + string; //check for numbers\n ch = ch || \" \";\n var strLen = string.length;\n while (strLen < length) {\n if (end) {\n string += ch;\n } else {\n string = ch + string;\n }\n strLen++;\n }\n return string;\n }\n\n function truncate(string, length, end) {\n var ret = string;\n if (is.isString(ret)) {\n if (string.length > length) {\n if (end) {\n var l = string.length;\n ret = string.substring(l - length, l);\n } else {\n ret = string.substring(0, length);\n }\n }\n } else {\n ret = truncate(\"\" + ret, length);\n }\n return ret;\n }\n\n function format(str, obj) {\n if (obj instanceof Array) {\n var i = 0, len = obj.length;\n //find the matches\n return str.replace(FORMAT_REGEX, function (m, format, type) {\n var replacer, ret;\n if (i < len) {\n replacer = obj[i++];\n } else {\n //we are out of things to replace with so\n //just return the match?\n return m;\n }\n if (m === \"%s\" || m === \"%d\" || m === \"%D\") {\n //fast path!\n ret = replacer + \"\";\n } else if (m === \"%Z\") {\n ret = replacer.toUTCString();\n } else if (m === \"%j\") {\n try {\n ret = stringify(replacer);\n } catch (e) {\n throw new Error(\"stringExtended.format : Unable to parse json from \", replacer);\n }\n } else {\n format = format.replace(/^\\[|\\]$/g, \"\");\n switch (type) {\n case \"s\":\n ret = formatString(replacer, format);\n break;\n case \"d\":\n ret = formatNumber(replacer, format);\n break;\n case \"j\":\n ret = formatObject(replacer, format);\n break;\n case \"D\":\n ret = date.format(replacer, format);\n break;\n case \"Z\":\n ret = date.format(replacer, format, true);\n break;\n }\n }\n return ret;\n });\n } else if (isHash(obj)) {\n return str.replace(INTERP_REGEX, function (m, format, value) {\n value = obj[value];\n if (!is.isUndefined(value)) {\n if (format) {\n if (is.isString(value)) {\n return formatString(value, format);\n } else if (is.isNumber(value)) {\n return formatNumber(value, format);\n } else if (is.isDate(value)) {\n return date.format(value, format);\n } else if (is.isObject(value)) {\n return formatObject(value, format);\n }\n } else {\n return \"\" + value;\n }\n }\n return m;\n });\n } else {\n var args = aSlice.call(arguments).slice(1);\n return format(str, args);\n }\n }\n\n function toArray(testStr, delim) {\n var ret = [];\n if (testStr) {\n if (testStr.indexOf(delim) > 0) {\n ret = testStr.replace(/\\s+/g, \"\").split(delim);\n }\n else {\n ret.push(testStr);\n }\n }\n return ret;\n }\n\n function multiply(str, times) {\n var ret = [];\n if (times) {\n for (var i = 0; i < times; i++) {\n ret.push(str);\n }\n }\n return ret.join(\"\");\n }\n\n\n function style(str, options) {\n var ret, i, l;\n if (options) {\n if (is.isArray(str)) {\n ret = [];\n for (i = 0, l = str.length; i < l; i++) {\n ret.push(style(str[i], options));\n }\n } else if (options instanceof Array) {\n ret = str;\n for (i = 0, l = options.length; i < l; i++) {\n ret = style(ret, options[i]);\n }\n } else if (options in styles) {\n ret = '\\x1B[' + styles[options] + 'm' + str + '\\x1B[0m';\n }\n }\n return ret;\n }\n\n function escape(str, except) {\n return str.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, function (ch) {\n if (except && arr.indexOf(except, ch) !== -1) {\n return ch;\n }\n return \"\\\\\" + ch;\n });\n }\n\n function trim(str) {\n return str.replace(/^\\s*|\\s*$/g, \"\");\n }\n\n function trimLeft(str) {\n return str.replace(/^\\s*/, \"\");\n }\n\n function trimRight(str) {\n return str.replace(/\\s*$/, \"\");\n }\n\n function isEmpty(str) {\n return str.length === 0;\n }\n\n\n var string = {\n toArray: toArray,\n pad: pad,\n truncate: truncate,\n multiply: multiply,\n format: format,\n style: style,\n escape: escape,\n trim: trim,\n trimLeft: trimLeft,\n trimRight: trimRight,\n isEmpty: isEmpty\n };\n return extended.define(is.isString, string).define(is.isArray, {style: style}).expose(string).expose({characters: characters});\n }\n\n if (\"undefined\" !== typeof exports) {\n if (\"undefined\" !== typeof module && module.exports) {\n module.exports = defineString(require(\"extended\"), require(\"is-extended\"), require(\"date-extended\"), require(\"array-extended\"));\n\n }\n } else if (\"function\" === typeof define && define.amd) {\n define([\"extended\", \"is-extended\", \"date-extended\", \"array-extended\"], function (extended, is, date, arr) {\n return defineString(extended, is, date, arr);\n });\n } else {\n this.stringExtended = defineString(this.extended, this.isExtended, this.dateExtended, this.arrayExtended);\n }\n\n}).call(this);\n\n\n\n\n\n\n","import isObject from './isObject.js';\nimport { nativeCreate } from './_setup.js';\n\n// Create a naked function reference for surrogate-prototype-swapping.\nfunction ctor() {\n return function(){};\n}\n\n// An internal function for creating a new object that inherits from another.\nexport default function baseCreate(prototype) {\n if (!isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n var Ctor = ctor();\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n}\n","import identity from './identity.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport matcher from './matcher.js';\nimport property from './property.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// An internal function to generate callbacks that can be applied to each\n// element in a collection, returning the desired result — either `_.identity`,\n// an arbitrary callback, a property matcher, or a property accessor.\nexport default function baseIteratee(value, context, argCount) {\n if (value == null) return identity;\n if (isFunction(value)) return optimizeCb(value, context, argCount);\n if (isObject(value) && !isArray(value)) return matcher(value);\n return property(value);\n}\n","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\nimport iteratee from './iteratee.js';\n\n// The function we call internally to generate a callback. It invokes\n// `_.iteratee` if overridden, otherwise `baseIteratee`.\nexport default function cb(value, context, argCount) {\n if (_.iteratee !== iteratee) return _.iteratee(value, context);\n return baseIteratee(value, context, argCount);\n}\n","import _ from './underscore.js';\n\n// Helper function to continue chaining intermediate results.\nexport default function chainResult(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n}\n","import { nonEnumerableProps, ObjProto } from './_setup.js';\nimport isFunction from './isFunction.js';\nimport has from './_has.js';\n\n// Internal helper to create a simple lookup structure.\n// `collectNonEnumProps` used to depend on `_.contains`, but this led to\n// circular imports. `emulatedSet` is a one-off solution that only works for\n// arrays of strings.\nfunction emulatedSet(keys) {\n var hash = {};\n for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;\n return {\n contains: function(key) { return hash[key] === true; },\n push: function(key) {\n hash[key] = true;\n return keys.push(key);\n }\n };\n}\n\n// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't\n// be iterated by `for key in ...` and thus missed. Extends `keys` in place if\n// needed.\nexport default function collectNonEnumProps(obj, keys) {\n keys = emulatedSet(keys);\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = (isFunction(constructor) && constructor.prototype) || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (has(obj, prop) && !keys.contains(prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) {\n keys.push(prop);\n }\n }\n}\n","// An internal function for creating assigner functions.\nexport default function createAssigner(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n}\n","import keys from './keys.js';\n\n// Internal helper to generate functions for escaping and unescaping strings\n// to/from HTML interpolation.\nexport default function createEscaper(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n}\n","import getLength from './_getLength.js';\nimport { slice } from './_setup.js';\nimport isNaN from './isNaN.js';\n\n// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.\nexport default function createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n}\n","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Internal function to generate `_.findIndex` and `_.findLastIndex`.\nexport default function createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n}\n","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// Internal helper to create a reducing function, iterating left or right.\nexport default function createReduce(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[_keys ? _keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = _keys ? _keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n };\n}\n","import { MAX_ARRAY_INDEX } from './_setup.js';\n\n// Common internal logic for `isArrayLike` and `isBufferLike`.\nexport default function createSizePropertyCheck(getSizeProperty) {\n return function(collection) {\n var sizeProperty = getSizeProperty(collection);\n return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX;\n }\n}\n","// Internal function to obtain a nested property in `obj` along `path`.\nexport default function deepGet(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n}\n","// Internal list of HTML entities for escaping.\nexport default {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n};\n","import baseCreate from './_baseCreate.js';\nimport isObject from './isObject.js';\n\n// Internal function to execute `sourceFunc` bound to `context` with optional\n// `args`. Determines whether to execute a function as a constructor or as a\n// normal function.\nexport default function executeBound(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (isObject(result)) return result;\n return self;\n}\n","import getLength from './_getLength.js';\nimport isArrayLike from './_isArrayLike.js';\nimport isArray from './isArray.js';\nimport isArguments from './isArguments.js';\n\n// Internal implementation of a recursive `flatten` function.\nexport default function flatten(input, depth, strict, output) {\n output = output || [];\n if (!depth && depth !== 0) {\n depth = Infinity;\n } else if (depth <= 0) {\n return output.concat(input);\n }\n var idx = output.length;\n for (var i = 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (isArray(value) || isArguments(value))) {\n // Flatten current level of array or arguments object.\n if (depth > 1) {\n flatten(value, depth - 1, strict, output);\n idx = output.length;\n } else {\n var j = 0, len = value.length;\n while (j < len) output[idx++] = value[j++];\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n}\n","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `byteLength` property of an object.\nexport default shallowProperty('byteLength');\n","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `length` property of an object.\nexport default shallowProperty('length');\n","import cb from './_cb.js';\nimport each from './each.js';\n\n// An internal function used for aggregate \"group by\" operations.\nexport default function group(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = cb(iteratee, context);\n each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n}\n","import { hasOwnProperty } from './_setup.js';\n\n// Internal function to check whether `key` is an own property name of `obj`.\nexport default function has(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n}\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Object');\n","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getLength from './_getLength.js';\n\n// Internal helper for collection methods to determine whether a collection\n// should be iterated as an array or as an object.\n// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\nexport default createSizePropertyCheck(getLength);\n","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getByteLength from './_getByteLength.js';\n\n// Internal helper to determine whether we should spend extensive checks against\n// `ArrayBuffer` et al.\nexport default createSizePropertyCheck(getByteLength);\n","// Internal `_.pick` helper function to determine whether `key` is an enumerable\n// property name of `obj`.\nexport default function keyInObj(value, key, obj) {\n return key in obj;\n}\n","import getLength from './_getLength.js';\nimport isFunction from './isFunction.js';\nimport allKeys from './allKeys.js';\n\n// Since the regular `Object.prototype.toString` type tests don't work for\n// some types in IE 11, we use a fingerprinting heuristic instead, based\n// on the methods. It's not great, but it's the best we got.\n// The fingerprint method lists are defined below.\nexport function ie11fingerprint(methods) {\n var length = getLength(methods);\n return function(obj) {\n if (obj == null) return false;\n // `Map`, `WeakMap` and `Set` have no enumerable keys.\n var keys = allKeys(obj);\n if (getLength(keys)) return false;\n for (var i = 0; i < length; i++) {\n if (!isFunction(obj[methods[i]])) return false;\n }\n // If we are testing against `WeakMap`, we need to ensure that\n // `obj` doesn't have a `forEach` method in order to distinguish\n // it from a regular `Map`.\n return methods !== weakMapMethods || !isFunction(obj[forEachName]);\n };\n}\n\n// In the interest of compact minification, we write\n// each string in the fingerprints only once.\nvar forEachName = 'forEach',\n hasName = 'has',\n commonInit = ['clear', 'delete'],\n mapTail = ['get', hasName, 'set'];\n\n// `Map`, `WeakMap` and `Set` each have slightly different\n// combinations of the above sublists.\nexport var mapMethods = commonInit.concat(forEachName, mapTail),\n weakMapMethods = commonInit.concat(mapTail),\n setMethods = ['add'].concat(commonInit, forEachName, hasName);\n","// Internal function that returns an efficient (for current engines) version\n// of the passed-in callback, to be repeatedly applied in other Underscore\n// functions.\nexport default function optimizeCb(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n}\n","// Current version.\nexport var VERSION = '1.13.6';\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nexport var root = (typeof self == 'object' && self.self === self && self) ||\n (typeof global == 'object' && global.global === global && global) ||\n Function('return this')() ||\n {};\n\n// Save bytes in the minified (but not gzipped) version:\nexport var ArrayProto = Array.prototype, ObjProto = Object.prototype;\nexport var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nexport var push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n// Modern feature detection.\nexport var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined',\n supportsDataView = typeof DataView !== 'undefined';\n\n// All **ECMAScript 5+** native function implementations that we hope to use\n// are declared here.\nexport var nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create,\n nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;\n\n// Create references to these builtin functions because we override them.\nexport var _isNaN = isNaN,\n _isFinite = isFinite;\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nexport var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nexport var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n// The largest integer that can be represented exactly.\nexport var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n","// Internal helper to generate a function to obtain property `key` from `obj`.\nexport default function shallowProperty(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n}\n","import { supportsDataView } from './_setup.js';\nimport hasObjectTag from './_hasObjectTag.js';\n\n// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`.\n// In IE 11, the most common among them, this problem also applies to\n// `Map`, `WeakMap` and `Set`.\nexport var hasStringTagBug = (\n supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8)))\n ),\n isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map));\n","import { toString } from './_setup.js';\n\n// Internal function for creating a `toString`-based type tester.\nexport default function tagTester(name) {\n var tag = '[object ' + name + ']';\n return function(obj) {\n return toString.call(obj) === tag;\n };\n}\n","import getByteLength from './_getByteLength.js';\n\n// Internal function to wrap or shallow-copy an ArrayBuffer,\n// typed array or DataView to a new view, reusing the buffer.\nexport default function toBufferView(bufferSource) {\n return new Uint8Array(\n bufferSource.buffer || bufferSource,\n bufferSource.byteOffset || 0,\n getByteLength(bufferSource)\n );\n}\n","import _ from './underscore.js';\nimport './toPath.js';\n\n// Internal wrapper for `_.toPath` to enable minification.\n// Similar to `cb` for `_.iteratee`.\nexport default function toPath(path) {\n return _.toPath(path);\n}\n","import invert from './invert.js';\nimport escapeMap from './_escapeMap.js';\n\n// Internal list of HTML entities for unescaping.\nexport default invert(escapeMap);\n","// Returns a function that will only be executed on and after the Nth call.\nexport default function after(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n","import isObject from './isObject.js';\nimport { hasEnumBug } from './_setup.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve all the enumerable property names of an object.\nexport default function allKeys(obj) {\n if (!isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n","// Returns a function that will only be executed up to (but not including) the\n// Nth call.\nexport default function before(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport executeBound from './_executeBound.js';\n\n// Create a function bound to a given object (assigning `this`, and arguments,\n// optionally).\nexport default restArguments(function(func, context, args) {\n if (!isFunction(func)) throw new TypeError('Bind must be called on a function');\n var bound = restArguments(function(callArgs) {\n return executeBound(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n});\n","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport bind from './bind.js';\n\n// Bind a number of an object's methods to that object. Remaining arguments\n// are the method names to be bound. Useful for ensuring that all callbacks\n// defined on an object belong to it.\nexport default restArguments(function(obj, keys) {\n keys = flatten(keys, false, false);\n var index = keys.length;\n if (index < 1) throw new Error('bindAll must be passed function names');\n while (index--) {\n var key = keys[index];\n obj[key] = bind(obj[key], obj);\n }\n return obj;\n});\n","import _ from './underscore.js';\n\n// Start chaining a wrapped Underscore object.\nexport default function chain(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n}\n","import { slice } from './_setup.js';\n\n// Chunk a single array into multiple arrays, each containing `count` or fewer\n// items.\nexport default function chunk(array, count) {\n if (count == null || count < 1) return [];\n var result = [];\n var i = 0, length = array.length;\n while (i < length) {\n result.push(slice.call(array, i, i += count));\n }\n return result;\n}\n","import isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport extend from './extend.js';\n\n// Create a (shallow-cloned) duplicate of an object.\nexport default function clone(obj) {\n if (!isObject(obj)) return obj;\n return isArray(obj) ? obj.slice() : extend({}, obj);\n}\n","import filter from './filter.js';\n\n// Trim out all falsy values from an array.\nexport default function compact(array) {\n return filter(array, Boolean);\n}\n","// Returns a function that is the composition of a list of functions, each\n// consuming the return value of the function that follows.\nexport default function compose() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n","// Predicate-generating function. Often useful outside of Underscore.\nexport default function constant(value) {\n return function() {\n return value;\n };\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport indexOf from './indexOf.js';\n\n// Determine if the array or object contains a given item (using `===`).\nexport default function contains(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return indexOf(obj, item, fromIndex) >= 0;\n}\n","import group from './_group.js';\nimport has from './_has.js';\n\n// Counts instances of an object that group by a certain criterion. Pass\n// either a string attribute to count by, or a function that returns the\n// criterion.\nexport default group(function(result, value, key) {\n if (has(result, key)) result[key]++; else result[key] = 1;\n});\n","import baseCreate from './_baseCreate.js';\nimport extendOwn from './extendOwn.js';\n\n// Creates an object that inherits from the given prototype object.\n// If additional properties are provided then they will be added to the\n// created object.\nexport default function create(prototype, props) {\n var result = baseCreate(prototype);\n if (props) extendOwn(result, props);\n return result;\n}\n","import restArguments from './restArguments.js';\nimport now from './now.js';\n\n// When a sequence of calls of the returned function ends, the argument\n// function is triggered. The end of a sequence is defined by the `wait`\n// parameter. If `immediate` is passed, the argument function will be\n// triggered at the beginning of the sequence instead of at the end.\nexport default function debounce(func, wait, immediate) {\n var timeout, previous, args, result, context;\n\n var later = function() {\n var passed = now() - previous;\n if (wait > passed) {\n timeout = setTimeout(later, wait - passed);\n } else {\n timeout = null;\n if (!immediate) result = func.apply(context, args);\n // This check is needed because `func` can recursively invoke `debounced`.\n if (!timeout) args = context = null;\n }\n };\n\n var debounced = restArguments(function(_args) {\n context = this;\n args = _args;\n previous = now();\n if (!timeout) {\n timeout = setTimeout(later, wait);\n if (immediate) result = func.apply(context, args);\n }\n return result;\n });\n\n debounced.cancel = function() {\n clearTimeout(timeout);\n timeout = args = context = null;\n };\n\n return debounced;\n}\n","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Fill in a given object with default properties.\nexport default createAssigner(allKeys, true);\n","import partial from './partial.js';\nimport delay from './delay.js';\nimport _ from './underscore.js';\n\n// Defers a function, scheduling it to run after the current call stack has\n// cleared.\nexport default partial(delay, _, 1);\n","import restArguments from './restArguments.js';\n\n// Delays a function for the given number of milliseconds, and then calls\n// it with the arguments supplied.\nexport default restArguments(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n});\n","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport filter from './filter.js';\nimport contains from './contains.js';\n\n// Take the difference between one array and a number of other arrays.\n// Only the elements present in just the first array will remain.\nexport default restArguments(function(array, rest) {\n rest = flatten(rest, true, true);\n return filter(array, function(value){\n return !contains(rest, value);\n });\n});\n","import optimizeCb from './_optimizeCb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// The cornerstone for collection functions, an `each`\n// implementation, aka `forEach`.\n// Handles raw objects in addition to array-likes. Treats all\n// sparse array-likes as if they were dense.\nexport default function each(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var _keys = keys(obj);\n for (i = 0, length = _keys.length; i < length; i++) {\n iteratee(obj[_keys[i]], _keys[i], obj);\n }\n }\n return obj;\n}\n","import createEscaper from './_createEscaper.js';\nimport escapeMap from './_escapeMap.js';\n\n// Function for escaping strings to HTML interpolation.\nexport default createEscaper(escapeMap);\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine whether all of the elements pass a truth test.\nexport default function every(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n}\n","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Extend a given object with all the properties in passed-in object(s).\nexport default createAssigner(allKeys);\n","import createAssigner from './_createAssigner.js';\nimport keys from './keys.js';\n\n// Assigns a given object with all the own properties in the passed-in\n// object(s).\n// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\nexport default createAssigner(keys);\n","import cb from './_cb.js';\nimport each from './each.js';\n\n// Return all the elements that pass a truth test.\nexport default function filter(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport findIndex from './findIndex.js';\nimport findKey from './findKey.js';\n\n// Return the first value which passes a truth test.\nexport default function find(obj, predicate, context) {\n var keyFinder = isArrayLike(obj) ? findIndex : findKey;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n}\n","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the first index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(1);\n","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the first key on an object that passes a truth test.\nexport default function findKey(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = keys(obj), key;\n for (var i = 0, length = _keys.length; i < length; i++) {\n key = _keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n}\n","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the last index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(-1);\n","import find from './find.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.find`: getting the first\n// object containing specific `key:value` pairs.\nexport default function findWhere(obj, attrs) {\n return find(obj, matcher(attrs));\n}\n","import initial from './initial.js';\n\n// Get the first element of an array. Passing **n** will return the first N\n// values in the array. The **guard** check allows it to work with `_.map`.\nexport default function first(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[0];\n return initial(array, array.length - n);\n}\n","import _flatten from './_flatten.js';\n\n// Flatten out an array, either recursively (by default), or up to `depth`.\n// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively.\nexport default function flatten(array, depth) {\n return _flatten(array, depth, false);\n}\n","import isFunction from './isFunction.js';\n\n// Return a sorted list of the function names available on the object.\nexport default function functions(obj) {\n var names = [];\n for (var key in obj) {\n if (isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n}\n","import toPath from './_toPath.js';\nimport deepGet from './_deepGet.js';\nimport isUndefined from './isUndefined.js';\n\n// Get the value of the (deep) property on `path` from `object`.\n// If any property in `path` does not exist or if the value is\n// `undefined`, return `defaultValue` instead.\n// The `path` is normalized through `_.toPath`.\nexport default function get(object, path, defaultValue) {\n var value = deepGet(object, toPath(path));\n return isUndefined(value) ? defaultValue : value;\n}\n","import group from './_group.js';\nimport has from './_has.js';\n\n// Groups the object's values by a criterion. Pass either a string attribute\n// to group by, or a function that returns the criterion.\nexport default group(function(result, value, key) {\n if (has(result, key)) result[key].push(value); else result[key] = [value];\n});\n","import _has from './_has.js';\nimport toPath from './_toPath.js';\n\n// Shortcut function for checking if an object has a given property directly on\n// itself (in other words, not on a prototype). Unlike the internal `has`\n// function, this public version can also traverse nested properties.\nexport default function has(obj, path) {\n path = toPath(path);\n var length = path.length;\n for (var i = 0; i < length; i++) {\n var key = path[i];\n if (!_has(obj, key)) return false;\n obj = obj[key];\n }\n return !!length;\n}\n","// Keep the identity function around for default iteratees.\nexport default function identity(value) {\n return value;\n}\n","// ESM Exports\n// ===========\n// This module is the package entry point for ES module users. In other words,\n// it is the module they are interfacing with when they import from the whole\n// package instead of from a submodule, like this:\n//\n// ```js\n// import { map } from 'underscore';\n// ```\n//\n// The difference with `./index-default`, which is the package entry point for\n// CommonJS, AMD and UMD users, is purely technical. In ES modules, named and\n// default exports are considered to be siblings, so when you have a default\n// export, its properties are not automatically available as named exports. For\n// this reason, we re-export the named exports in addition to providing the same\n// default export as in `./index-default`.\nexport { default } from './index-default.js';\nexport * from './index.js';\n","// Default Export\n// ==============\n// In this module, we mix our bundled exports into the `_` object and export\n// the result. This is analogous to setting `module.exports = _` in CommonJS.\n// Hence, this module is also the entry point of our UMD bundle and the package\n// entry point for CommonJS and AMD users. In other words, this is (the source\n// of) the module you are interfacing with when you do any of the following:\n//\n// ```js\n// // CommonJS\n// var _ = require('underscore');\n//\n// // AMD\n// define(['underscore'], function(_) {...});\n//\n// // UMD in the browser\n// // _ is available as a global variable\n// ```\nimport * as allExports from './index.js';\nimport { mixin } from './index.js';\n\n// Add all of the Underscore functions to the wrapper object.\nvar _ = mixin(allExports);\n// Legacy Node.js API.\n_._ = _;\n// Export the Underscore API.\nexport default _;\n","// Named Exports\n// =============\n\n// Underscore.js 1.13.6\n// https://underscorejs.org\n// (c) 2009-2022 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n// Baseline setup.\nexport { VERSION } from './_setup.js';\nexport { default as restArguments } from './restArguments.js';\n\n// Object Functions\n// ----------------\n// Our most fundamental functions operate on any JavaScript object.\n// Most functions in Underscore depend on at least one function in this section.\n\n// A group of functions that check the types of core JavaScript values.\n// These are often informally referred to as the \"isType\" functions.\nexport { default as isObject } from './isObject.js';\nexport { default as isNull } from './isNull.js';\nexport { default as isUndefined } from './isUndefined.js';\nexport { default as isBoolean } from './isBoolean.js';\nexport { default as isElement } from './isElement.js';\nexport { default as isString } from './isString.js';\nexport { default as isNumber } from './isNumber.js';\nexport { default as isDate } from './isDate.js';\nexport { default as isRegExp } from './isRegExp.js';\nexport { default as isError } from './isError.js';\nexport { default as isSymbol } from './isSymbol.js';\nexport { default as isArrayBuffer } from './isArrayBuffer.js';\nexport { default as isDataView } from './isDataView.js';\nexport { default as isArray } from './isArray.js';\nexport { default as isFunction } from './isFunction.js';\nexport { default as isArguments } from './isArguments.js';\nexport { default as isFinite } from './isFinite.js';\nexport { default as isNaN } from './isNaN.js';\nexport { default as isTypedArray } from './isTypedArray.js';\nexport { default as isEmpty } from './isEmpty.js';\nexport { default as isMatch } from './isMatch.js';\nexport { default as isEqual } from './isEqual.js';\nexport { default as isMap } from './isMap.js';\nexport { default as isWeakMap } from './isWeakMap.js';\nexport { default as isSet } from './isSet.js';\nexport { default as isWeakSet } from './isWeakSet.js';\n\n// Functions that treat an object as a dictionary of key-value pairs.\nexport { default as keys } from './keys.js';\nexport { default as allKeys } from './allKeys.js';\nexport { default as values } from './values.js';\nexport { default as pairs } from './pairs.js';\nexport { default as invert } from './invert.js';\nexport { default as functions,\n default as methods } from './functions.js';\nexport { default as extend } from './extend.js';\nexport { default as extendOwn,\n default as assign } from './extendOwn.js';\nexport { default as defaults } from './defaults.js';\nexport { default as create } from './create.js';\nexport { default as clone } from './clone.js';\nexport { default as tap } from './tap.js';\nexport { default as get } from './get.js';\nexport { default as has } from './has.js';\nexport { default as mapObject } from './mapObject.js';\n\n// Utility Functions\n// -----------------\n// A bit of a grab bag: Predicate-generating functions for use with filters and\n// loops, string escaping and templating, create random numbers and unique ids,\n// and functions that facilitate Underscore's chaining and iteration conventions.\nexport { default as identity } from './identity.js';\nexport { default as constant } from './constant.js';\nexport { default as noop } from './noop.js';\nexport { default as toPath } from './toPath.js';\nexport { default as property } from './property.js';\nexport { default as propertyOf } from './propertyOf.js';\nexport { default as matcher,\n default as matches } from './matcher.js';\nexport { default as times } from './times.js';\nexport { default as random } from './random.js';\nexport { default as now } from './now.js';\nexport { default as escape } from './escape.js';\nexport { default as unescape } from './unescape.js';\nexport { default as templateSettings } from './templateSettings.js';\nexport { default as template } from './template.js';\nexport { default as result } from './result.js';\nexport { default as uniqueId } from './uniqueId.js';\nexport { default as chain } from './chain.js';\nexport { default as iteratee } from './iteratee.js';\n\n// Function (ahem) Functions\n// -------------------------\n// These functions take a function as an argument and return a new function\n// as the result. Also known as higher-order functions.\nexport { default as partial } from './partial.js';\nexport { default as bind } from './bind.js';\nexport { default as bindAll } from './bindAll.js';\nexport { default as memoize } from './memoize.js';\nexport { default as delay } from './delay.js';\nexport { default as defer } from './defer.js';\nexport { default as throttle } from './throttle.js';\nexport { default as debounce } from './debounce.js';\nexport { default as wrap } from './wrap.js';\nexport { default as negate } from './negate.js';\nexport { default as compose } from './compose.js';\nexport { default as after } from './after.js';\nexport { default as before } from './before.js';\nexport { default as once } from './once.js';\n\n// Finders\n// -------\n// Functions that extract (the position of) a single element from an object\n// or array based on some criterion.\nexport { default as findKey } from './findKey.js';\nexport { default as findIndex } from './findIndex.js';\nexport { default as findLastIndex } from './findLastIndex.js';\nexport { default as sortedIndex } from './sortedIndex.js';\nexport { default as indexOf } from './indexOf.js';\nexport { default as lastIndexOf } from './lastIndexOf.js';\nexport { default as find,\n default as detect } from './find.js';\nexport { default as findWhere } from './findWhere.js';\n\n// Collection Functions\n// --------------------\n// Functions that work on any collection of elements: either an array, or\n// an object of key-value pairs.\nexport { default as each,\n default as forEach } from './each.js';\nexport { default as map,\n default as collect } from './map.js';\nexport { default as reduce,\n default as foldl,\n default as inject } from './reduce.js';\nexport { default as reduceRight,\n default as foldr } from './reduceRight.js';\nexport { default as filter,\n default as select } from './filter.js';\nexport { default as reject } from './reject.js';\nexport { default as every,\n default as all } from './every.js';\nexport { default as some,\n default as any } from './some.js';\nexport { default as contains,\n default as includes,\n default as include } from './contains.js';\nexport { default as invoke } from './invoke.js';\nexport { default as pluck } from './pluck.js';\nexport { default as where } from './where.js';\nexport { default as max } from './max.js';\nexport { default as min } from './min.js';\nexport { default as shuffle } from './shuffle.js';\nexport { default as sample } from './sample.js';\nexport { default as sortBy } from './sortBy.js';\nexport { default as groupBy } from './groupBy.js';\nexport { default as indexBy } from './indexBy.js';\nexport { default as countBy } from './countBy.js';\nexport { default as partition } from './partition.js';\nexport { default as toArray } from './toArray.js';\nexport { default as size } from './size.js';\n\n// `_.pick` and `_.omit` are actually object functions, but we put\n// them here in order to create a more natural reading order in the\n// monolithic build as they depend on `_.contains`.\nexport { default as pick } from './pick.js';\nexport { default as omit } from './omit.js';\n\n// Array Functions\n// ---------------\n// Functions that operate on arrays (and array-likes) only, because they’re\n// expressed in terms of operations on an ordered list of values.\nexport { default as first,\n default as head,\n default as take } from './first.js';\nexport { default as initial } from './initial.js';\nexport { default as last } from './last.js';\nexport { default as rest,\n default as tail,\n default as drop } from './rest.js';\nexport { default as compact } from './compact.js';\nexport { default as flatten } from './flatten.js';\nexport { default as without } from './without.js';\nexport { default as uniq,\n default as unique } from './uniq.js';\nexport { default as union } from './union.js';\nexport { default as intersection } from './intersection.js';\nexport { default as difference } from './difference.js';\nexport { default as unzip,\n default as transpose } from './unzip.js';\nexport { default as zip } from './zip.js';\nexport { default as object } from './object.js';\nexport { default as range } from './range.js';\nexport { default as chunk } from './chunk.js';\n\n// OOP\n// ---\n// These modules support the \"object-oriented\" calling style. See also\n// `underscore.js` and `index-default.js`.\nexport { default as mixin } from './mixin.js';\nexport { default } from './underscore-array-methods.js';\n","import group from './_group.js';\n\n// Indexes the object's values by a criterion, similar to `_.groupBy`, but for\n// when you know that your index values will be unique.\nexport default group(function(result, value, key) {\n result[key] = value;\n});\n","import sortedIndex from './sortedIndex.js';\nimport findIndex from './findIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the first occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n// If the array is large and already in sort order, pass `true`\n// for **isSorted** to use binary search.\nexport default createIndexFinder(1, findIndex, sortedIndex);\n","import { slice } from './_setup.js';\n\n// Returns everything but the last entry of the array. Especially useful on\n// the arguments object. Passing **n** will return all the values in\n// the array, excluding the last N.\nexport default function initial(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n}\n","import getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce an array that contains every item shared between all the\n// passed-in arrays.\nexport default function intersection(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (contains(result, item)) continue;\n var j;\n for (j = 1; j < argsLength; j++) {\n if (!contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n}\n","import keys from './keys.js';\n\n// Invert the keys and values of an object. The values must be serializable.\nexport default function invert(obj) {\n var result = {};\n var _keys = keys(obj);\n for (var i = 0, length = _keys.length; i < length; i++) {\n result[obj[_keys[i]]] = _keys[i];\n }\n return result;\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport map from './map.js';\nimport deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Invoke a method (with arguments) on every item in a collection.\nexport default restArguments(function(obj, path, args) {\n var contextPath, func;\n if (isFunction(path)) {\n func = path;\n } else {\n path = toPath(path);\n contextPath = path.slice(0, -1);\n path = path[path.length - 1];\n }\n return map(obj, function(context) {\n var method = func;\n if (!method) {\n if (contextPath && contextPath.length) {\n context = deepGet(context, contextPath);\n }\n if (context == null) return void 0;\n method = context[path];\n }\n return method == null ? method : method.apply(context, args);\n });\n});\n","import tagTester from './_tagTester.js';\nimport has from './_has.js';\n\nvar isArguments = tagTester('Arguments');\n\n// Define a fallback version of the method in browsers (ahem, IE < 9), where\n// there isn't any inspectable \"Arguments\" type.\n(function() {\n if (!isArguments(arguments)) {\n isArguments = function(obj) {\n return has(obj, 'callee');\n };\n }\n}());\n\nexport default isArguments;\n","import { nativeIsArray } from './_setup.js';\nimport tagTester from './_tagTester.js';\n\n// Is a given value an array?\n// Delegates to ECMA5's native `Array.isArray`.\nexport default nativeIsArray || tagTester('Array');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('ArrayBuffer');\n","import { toString } from './_setup.js';\n\n// Is a given value a boolean?\nexport default function isBoolean(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n}\n","import tagTester from './_tagTester.js';\nimport isFunction from './isFunction.js';\nimport isArrayBuffer from './isArrayBuffer.js';\nimport { hasStringTagBug } from './_stringTagBug.js';\n\nvar isDataView = tagTester('DataView');\n\n// In IE 10 - Edge 13, we need a different heuristic\n// to determine whether an object is a `DataView`.\nfunction ie10IsDataView(obj) {\n return obj != null && isFunction(obj.getInt8) && isArrayBuffer(obj.buffer);\n}\n\nexport default (hasStringTagBug ? ie10IsDataView : isDataView);\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Date');\n","// Is a given value a DOM element?\nexport default function isElement(obj) {\n return !!(obj && obj.nodeType === 1);\n}\n","import getLength from './_getLength.js';\nimport isArray from './isArray.js';\nimport isString from './isString.js';\nimport isArguments from './isArguments.js';\nimport keys from './keys.js';\n\n// Is a given array, string, or object empty?\n// An \"empty\" object has no enumerable own-properties.\nexport default function isEmpty(obj) {\n if (obj == null) return true;\n // Skip the more expensive `toString`-based type checks if `obj` has no\n // `.length`.\n var length = getLength(obj);\n if (typeof length == 'number' && (\n isArray(obj) || isString(obj) || isArguments(obj)\n )) return length === 0;\n return getLength(keys(obj)) === 0;\n}\n","import _ from './underscore.js';\nimport { toString, SymbolProto } from './_setup.js';\nimport getByteLength from './_getByteLength.js';\nimport isTypedArray from './isTypedArray.js';\nimport isFunction from './isFunction.js';\nimport { hasStringTagBug } from './_stringTagBug.js';\nimport isDataView from './isDataView.js';\nimport keys from './keys.js';\nimport has from './_has.js';\nimport toBufferView from './_toBufferView.js';\n\n// We use this string twice, so give it a name for minification.\nvar tagDataView = '[object DataView]';\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction eq(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) return b !== b;\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n return deepEq(a, b, aStack, bStack);\n}\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction deepEq(a, b, aStack, bStack) {\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n // Work around a bug in IE 10 - Edge 13.\n if (hasStringTagBug && className == '[object Object]' && isDataView(a)) {\n if (!isDataView(b)) return false;\n className = tagDataView;\n }\n switch (className) {\n // These types are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case '[object Symbol]':\n return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);\n case '[object ArrayBuffer]':\n case tagDataView:\n // Coerce to typed array so we can fall through.\n return deepEq(toBufferView(a), toBufferView(b), aStack, bStack);\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays && isTypedArray(a)) {\n var byteLength = getByteLength(a);\n if (byteLength !== getByteLength(b)) return false;\n if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true;\n areArrays = true;\n }\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor &&\n isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var _keys = keys(a), key;\n length = _keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = _keys[length];\n if (!(has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\n\n// Perform a deep comparison to check if two objects are equal.\nexport default function isEqual(a, b) {\n return eq(a, b);\n}\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Error');\n","import { _isFinite } from './_setup.js';\nimport isSymbol from './isSymbol.js';\n\n// Is a given object a finite number?\nexport default function isFinite(obj) {\n return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj));\n}\n","import tagTester from './_tagTester.js';\nimport { root } from './_setup.js';\n\nvar isFunction = tagTester('Function');\n\n// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old\n// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = root.document && root.document.childNodes;\nif (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n}\n\nexport default isFunction;\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, mapMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map');\n","import keys from './keys.js';\n\n// Returns whether an object has a given set of `key:value` pairs.\nexport default function isMatch(object, attrs) {\n var _keys = keys(attrs), length = _keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = _keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n}\n","import { _isNaN } from './_setup.js';\nimport isNumber from './isNumber.js';\n\n// Is the given value `NaN`?\nexport default function isNaN(obj) {\n return isNumber(obj) && _isNaN(obj);\n}\n","// Is a given value equal to null?\nexport default function isNull(obj) {\n return obj === null;\n}\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Number');\n","// Is a given variable an object?\nexport default function isObject(obj) {\n var type = typeof obj;\n return type === 'function' || (type === 'object' && !!obj);\n}\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('RegExp');\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, setMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(setMethods) : tagTester('Set');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('String');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Symbol');\n","import { supportsArrayBuffer, nativeIsView, toString } from './_setup.js';\nimport isDataView from './isDataView.js';\nimport constant from './constant.js';\nimport isBufferLike from './_isBufferLike.js';\n\n// Is a given value a typed array?\nvar typedArrayPattern = /\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;\nfunction isTypedArray(obj) {\n // `ArrayBuffer.isView` is the most future-proof, so use it when available.\n // Otherwise, fall back on the above regular expression.\n return nativeIsView ? (nativeIsView(obj) && !isDataView(obj)) :\n isBufferLike(obj) && typedArrayPattern.test(toString.call(obj));\n}\n\nexport default supportsArrayBuffer ? isTypedArray : constant(false);\n","// Is a given variable undefined?\nexport default function isUndefined(obj) {\n return obj === void 0;\n}\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, weakMapMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('WeakSet');\n","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\n\n// External wrapper for our callback generator. Users may customize\n// `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n// This abstraction hides the internal-only `argCount` argument.\nexport default function iteratee(value, context) {\n return baseIteratee(value, context, Infinity);\n}\n_.iteratee = iteratee;\n","import isObject from './isObject.js';\nimport { nativeKeys, hasEnumBug } from './_setup.js';\nimport has from './_has.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nexport default function keys(obj) {\n if (!isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n","import rest from './rest.js';\n\n// Get the last element of an array. Passing **n** will return the last N\n// values in the array.\nexport default function last(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[array.length - 1];\n return rest(array, Math.max(0, array.length - n));\n}\n","import findLastIndex from './findLastIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the last occurrence of an item in an array,\n// or -1 if the item is not included in the array.\nexport default createIndexFinder(-1, findLastIndex);\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the results of applying the iteratee to each element.\nexport default function map(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the results of applying the `iteratee` to each element of `obj`.\n// In contrast to `_.map` it returns an object.\nexport default function mapObject(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = keys(obj),\n length = _keys.length,\n results = {};\n for (var index = 0; index < length; index++) {\n var currentKey = _keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n","import extendOwn from './extendOwn.js';\nimport isMatch from './isMatch.js';\n\n// Returns a predicate for checking whether an object has a given set of\n// `key:value` pairs.\nexport default function matcher(attrs) {\n attrs = extendOwn({}, attrs);\n return function(obj) {\n return isMatch(obj, attrs);\n };\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the maximum element (or element-based computation).\nexport default function max(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || (computed === -Infinity && result === -Infinity)) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n","import has from './_has.js';\n\n// Memoize an expensive function by storing its results.\nexport default function memoize(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the minimum element (or element-based computation).\nexport default function min(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed < lastComputed || (computed === Infinity && result === Infinity)) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n","import _ from './underscore.js';\nimport each from './each.js';\nimport functions from './functions.js';\nimport { push } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add your own custom functions to the Underscore object.\nexport default function mixin(obj) {\n each(functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return chainResult(this, func.apply(_, args));\n };\n });\n return _;\n}\n","// Returns a negated version of the passed-in predicate.\nexport default function negate(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n}\n","// Predicate-generating function. Often useful outside of Underscore.\nexport default function noop(){}\n","// A (possibly faster) way to get the current timestamp as an integer.\nexport default Date.now || function() {\n return new Date().getTime();\n};\n","import getLength from './_getLength.js';\n\n// Converts lists into objects. Pass either a single array of `[key, value]`\n// pairs, or two parallel arrays of the same length -- one of keys, and one of\n// the corresponding values. Passing by pairs is the reverse of `_.pairs`.\nexport default function object(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport negate from './negate.js';\nimport map from './map.js';\nimport flatten from './_flatten.js';\nimport contains from './contains.js';\nimport pick from './pick.js';\n\n// Return a copy of the object without the disallowed properties.\nexport default restArguments(function(obj, keys) {\n var iteratee = keys[0], context;\n if (isFunction(iteratee)) {\n iteratee = negate(iteratee);\n if (keys.length > 1) context = keys[1];\n } else {\n keys = map(flatten(keys, false, false), String);\n iteratee = function(value, key) {\n return !contains(keys, key);\n };\n }\n return pick(obj, iteratee, context);\n});\n","import partial from './partial.js';\nimport before from './before.js';\n\n// Returns a function that will be executed at most one time, no matter how\n// often you call it. Useful for lazy initialization.\nexport default partial(before, 2);\n","import keys from './keys.js';\n\n// Convert an object into a list of `[key, value]` pairs.\n// The opposite of `_.object` with one argument.\nexport default function pairs(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [_keys[i], obj[_keys[i]]];\n }\n return pairs;\n}\n","import restArguments from './restArguments.js';\nimport executeBound from './_executeBound.js';\nimport _ from './underscore.js';\n\n// Partially apply a function by creating a version that has had some of its\n// arguments pre-filled, without changing its dynamic `this` context. `_` acts\n// as a placeholder by default, allowing any combination of arguments to be\n// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\nvar partial = restArguments(function(func, boundArgs) {\n var placeholder = partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n});\n\npartial.placeholder = _;\nexport default partial;\n","import group from './_group.js';\n\n// Split a collection into two arrays: one whose elements all pass the given\n// truth test, and one whose elements all do not pass the truth test.\nexport default group(function(result, value, pass) {\n result[pass ? 0 : 1].push(value);\n}, true);\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport optimizeCb from './_optimizeCb.js';\nimport allKeys from './allKeys.js';\nimport keyInObj from './_keyInObj.js';\nimport flatten from './_flatten.js';\n\n// Return a copy of the object only containing the allowed properties.\nexport default restArguments(function(obj, keys) {\n var result = {}, iteratee = keys[0];\n if (obj == null) return result;\n if (isFunction(iteratee)) {\n if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n keys = allKeys(obj);\n } else {\n iteratee = keyInObj;\n keys = flatten(keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n});\n","import map from './map.js';\nimport property from './property.js';\n\n// Convenience version of a common use case of `_.map`: fetching a property.\nexport default function pluck(obj, key) {\n return map(obj, property(key));\n}\n","import deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Creates a function that, when passed an object, will traverse that object’s\n// properties down the given `path`, specified as an array of keys or indices.\nexport default function property(path) {\n path = toPath(path);\n return function(obj) {\n return deepGet(obj, path);\n };\n}\n","import noop from './noop.js';\nimport get from './get.js';\n\n// Generates a function for a given object that returns a given property.\nexport default function propertyOf(obj) {\n if (obj == null) return noop;\n return function(path) {\n return get(obj, path);\n };\n}\n","// Return a random integer between `min` and `max` (inclusive).\nexport default function random(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n}\n","// Generate an integer Array containing an arithmetic progression. A port of\n// the native Python `range()` function. See\n// [the Python documentation](https://docs.python.org/library/functions.html#range).\nexport default function range(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n if (!step) {\n step = stop < start ? -1 : 1;\n }\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n}\n","import createReduce from './_createReduce.js';\n\n// **Reduce** builds up a single result from a list of values, aka `inject`,\n// or `foldl`.\nexport default createReduce(1);\n","import createReduce from './_createReduce.js';\n\n// The right-associative version of reduce, also known as `foldr`.\nexport default createReduce(-1);\n","import filter from './filter.js';\nimport negate from './negate.js';\nimport cb from './_cb.js';\n\n// Return all the elements for which a truth test fails.\nexport default function reject(obj, predicate, context) {\n return filter(obj, negate(cb(predicate)), context);\n}\n","import { slice } from './_setup.js';\n\n// Returns everything but the first entry of the `array`. Especially useful on\n// the `arguments` object. Passing an **n** will return the rest N values in the\n// `array`.\nexport default function rest(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n}\n","// Some functions take a variable number of arguments, or a few expected\n// arguments at the beginning and then a variable number of values to operate\n// on. This helper accumulates all remaining arguments past the function’s\n// argument length (or an explicit `startIndex`), into an array that becomes\n// the last argument. Similar to ES6’s \"rest parameter\".\nexport default function restArguments(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n}\n","import isFunction from './isFunction.js';\nimport toPath from './_toPath.js';\n\n// Traverses the children of `obj` along `path`. If a child is a function, it\n// is invoked with its parent as context. Returns the value of the final\n// child, or `fallback` if any child is undefined.\nexport default function result(obj, path, fallback) {\n path = toPath(path);\n var length = path.length;\n if (!length) {\n return isFunction(fallback) ? fallback.call(obj) : fallback;\n }\n for (var i = 0; i < length; i++) {\n var prop = obj == null ? void 0 : obj[path[i]];\n if (prop === void 0) {\n prop = fallback;\n i = length; // Ensure we don't continue iterating.\n }\n obj = isFunction(prop) ? prop.call(obj) : prop;\n }\n return obj;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport getLength from './_getLength.js';\nimport random from './random.js';\nimport toArray from './toArray.js';\n\n// Sample **n** random values from a collection using the modern version of the\n// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n// If **n** is not specified, returns a single random element.\n// The internal `guard` argument allows it to work with `_.map`.\nexport default function sample(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n return obj[random(obj.length - 1)];\n }\n var sample = toArray(obj);\n var length = getLength(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = random(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n}\n","import sample from './sample.js';\n\n// Shuffle a collection.\nexport default function shuffle(obj) {\n return sample(obj, Infinity);\n}\n","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the number of elements in a collection.\nexport default function size(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : keys(obj).length;\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine if at least one element in the object passes a truth test.\nexport default function some(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n}\n","import cb from './_cb.js';\nimport pluck from './pluck.js';\nimport map from './map.js';\n\n// Sort the object's values by a criterion produced by an iteratee.\nexport default function sortBy(obj, iteratee, context) {\n var index = 0;\n iteratee = cb(iteratee, context);\n return pluck(map(obj, function(value, key, list) {\n return {\n value: value,\n index: index++,\n criteria: iteratee(value, key, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n}\n","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Use a comparator function to figure out the smallest index at which\n// an object should be inserted so as to maintain order. Uses binary search.\nexport default function sortedIndex(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n}\n","// Invokes `interceptor` with the `obj` and then returns `obj`.\n// The primary purpose of this method is to \"tap into\" a method chain, in\n// order to perform operations on intermediate results within the chain.\nexport default function tap(obj, interceptor) {\n interceptor(obj);\n return obj;\n}\n","import defaults from './defaults.js';\nimport _ from './underscore.js';\nimport './templateSettings.js';\n\n// When customizing `_.templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/;\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\nvar escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\nfunction escapeChar(match) {\n return '\\\\' + escapes[match];\n}\n\n// In order to prevent third-party code injection through\n// `_.templateSettings.variable`, we test it against the following regular\n// expression. It is intentionally a bit more liberal than just matching valid\n// identifiers, but still prevents possible loopholes through defaults or\n// destructuring assignment.\nvar bareIdentifier = /^\\s*(\\w|\\$)+\\s*$/;\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\n// NB: `oldSettings` only exists for backwards compatibility.\nexport default function template(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offset.\n return match;\n });\n source += \"';\\n\";\n\n var argument = settings.variable;\n if (argument) {\n // Insure against third-party code injection. (CVE-2021-23358)\n if (!bareIdentifier.test(argument)) throw new Error(\n 'variable is not a bare identifier: ' + argument\n );\n } else {\n // If a variable is not specified, place data values in local scope.\n source = 'with(obj||{}){\\n' + source + '}\\n';\n argument = 'obj';\n }\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n var render;\n try {\n render = new Function(argument, '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n}\n","import _ from './underscore.js';\n\n// By default, Underscore uses ERB-style template delimiters. Change the\n// following template settings to use alternative delimiters.\nexport default _.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n};\n","import now from './now.js';\n\n// Returns a function, that, when invoked, will only be triggered at most once\n// during a given window of time. Normally, the throttled function will run\n// as much as it can, without ever going more than once per `wait` duration;\n// but if you'd like to disable the execution on the leading edge, pass\n// `{leading: false}`. To disable execution on the trailing edge, ditto.\nexport default function throttle(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function() {\n previous = options.leading === false ? 0 : now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function() {\n var _now = now();\n if (!previous && options.leading === false) previous = _now;\n var remaining = wait - (_now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = _now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n","import optimizeCb from './_optimizeCb.js';\n\n// Run a function **n** times.\nexport default function times(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n}\n","import isArray from './isArray.js';\nimport { slice } from './_setup.js';\nimport isString from './isString.js';\nimport isArrayLike from './_isArrayLike.js';\nimport map from './map.js';\nimport identity from './identity.js';\nimport values from './values.js';\n\n// Safely create a real, live array from anything iterable.\nvar reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\nexport default function toArray(obj) {\n if (!obj) return [];\n if (isArray(obj)) return slice.call(obj);\n if (isString(obj)) {\n // Keep surrogate pair characters together.\n return obj.match(reStrSymbol);\n }\n if (isArrayLike(obj)) return map(obj, identity);\n return values(obj);\n}\n","import _ from './underscore.js';\nimport isArray from './isArray.js';\n\n// Normalize a (deep) property `path` to array.\n// Like `_.iteratee`, this function can be customized.\nexport default function toPath(path) {\n return isArray(path) ? path : [path];\n}\n_.toPath = toPath;\n","import _ from './underscore.js';\nimport each from './each.js';\nimport { ArrayProto } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add all mutator `Array` functions to the wrapper.\neach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) {\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) {\n delete obj[0];\n }\n }\n return chainResult(this, obj);\n };\n});\n\n// Add all accessor `Array` functions to the wrapper.\neach(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) obj = method.apply(obj, arguments);\n return chainResult(this, obj);\n };\n});\n\nexport default _;\n","import { VERSION } from './_setup.js';\n\n// If Underscore is called as a function, it returns a wrapped object that can\n// be used OO-style. This wrapper holds altered versions of all functions added\n// through `_.mixin`. Wrapped objects may be chained.\nexport default function _(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n}\n\n_.VERSION = VERSION;\n\n// Extracts the result from a wrapped and chained object.\n_.prototype.value = function() {\n return this._wrapped;\n};\n\n// Provide unwrapping proxies for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n_.prototype.toString = function() {\n return String(this._wrapped);\n};\n","import createEscaper from './_createEscaper.js';\nimport unescapeMap from './_unescapeMap.js';\n\n// Function for unescaping strings from HTML interpolation.\nexport default createEscaper(unescapeMap);\n","import restArguments from './restArguments.js';\nimport uniq from './uniq.js';\nimport flatten from './_flatten.js';\n\n// Produce an array that contains the union: each distinct element from all of\n// the passed-in arrays.\nexport default restArguments(function(arrays) {\n return uniq(flatten(arrays, true, true));\n});\n","import isBoolean from './isBoolean.js';\nimport cb from './_cb.js';\nimport getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce a duplicate-free version of the array. If the array has already\n// been sorted, you have the option of using a faster algorithm.\n// The faster algorithm will not work with an iteratee if the iteratee\n// is not a one-to-one function, so providing an iteratee will disable\n// the faster algorithm.\nexport default function uniq(array, isSorted, iteratee, context) {\n if (!isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n}\n","// Generate a unique integer id (unique within the entire client session).\n// Useful for temporary DOM ids.\nvar idCounter = 0;\nexport default function uniqueId(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n}\n","import max from './max.js';\nimport getLength from './_getLength.js';\nimport pluck from './pluck.js';\n\n// Complement of zip. Unzip accepts an array of arrays and groups\n// each array's elements on shared indices.\nexport default function unzip(array) {\n var length = (array && max(array, getLength).length) || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = pluck(array, index);\n }\n return result;\n}\n","import keys from './keys.js';\n\n// Retrieve the values of an object's properties.\nexport default function values(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[_keys[i]];\n }\n return values;\n}\n","import filter from './filter.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.filter`: selecting only\n// objects containing specific `key:value` pairs.\nexport default function where(obj, attrs) {\n return filter(obj, matcher(attrs));\n}\n","import restArguments from './restArguments.js';\nimport difference from './difference.js';\n\n// Return a version of the array that does not contain the specified value(s).\nexport default restArguments(function(array, otherArrays) {\n return difference(array, otherArrays);\n});\n","import partial from './partial.js';\n\n// Returns the first function passed as an argument to the second,\n// allowing you to adjust arguments, run code before and after, and\n// conditionally execute the original function.\nexport default function wrap(func, wrapper) {\n return partial(wrapper, func);\n}\n","import restArguments from './restArguments.js';\nimport unzip from './unzip.js';\n\n// Zip together multiple lists into a single array -- elements that share\n// an index go together.\nexport default restArguments(unzip);\n","const moment = require('moment');\n\nconst normalizeStartDate = (intervalStartDate) => {\n intervalStartDate = parseInt(intervalStartDate);\n\n if (isNaN(intervalStartDate) || intervalStartDate <= 0 || intervalStartDate > 31) {\n intervalStartDate = 1;\n }\n\n return intervalStartDate;\n};\n\nconst getMinimumStartDate = (intervalStartDate, relativeDate) => {\n return moment\n .min(\n relativeDate.clone().subtract(1, 'month').date(intervalStartDate).startOf('day'),\n relativeDate.clone().startOf('month')\n )\n .valueOf();\n};\n\nconst getMinimumEndDate = (intervalStartDate, nextMonth, relativeDate) => {\n return moment\n .min(\n relativeDate.clone().add(nextMonth ? 1 : 0, 'month').date(intervalStartDate - 1).endOf('day'),\n relativeDate.clone().add(nextMonth ? 1 : 0, 'month').endOf('month')\n )\n .valueOf();\n};\n\nconst getInterval = (intervalStartDate, referenceDate = moment()) => {\n intervalStartDate = normalizeStartDate(intervalStartDate);\n if (intervalStartDate === 1) {\n return {\n start: referenceDate.startOf('month').valueOf(),\n end: referenceDate.endOf('month').valueOf()\n };\n }\n\n if (intervalStartDate <= referenceDate.date()) {\n return {\n start: referenceDate.date(intervalStartDate).startOf('day').valueOf(),\n end: getMinimumEndDate(intervalStartDate, true, referenceDate)\n };\n }\n\n return {\n start: getMinimumStartDate(intervalStartDate, referenceDate),\n end: getMinimumEndDate(intervalStartDate, false, referenceDate)\n };\n};\n\nmodule.exports = {\n // Returns the timestamps of the start and end of the current calendar interval\n // @param {Number} [intervalStartDate=1] - day of month when interval starts (1 - 31)\n //\n // if `intervalStartDate` exceeds month's day count, the start/end of following/current month is returned\n // f.e. `intervalStartDate` === 31 would generate next intervals :\n // [12-31 -> 01-30], [01-31 -> 02-[28|29]], [03-01 -> 03-30], [03-31 -> 04-30], [05-01 -> 05-30], [05-31 - 06-30]\n getCurrent: (intervalStartDate) => getInterval(intervalStartDate),\n\n /**\n * Returns the timestamps of the start and end of the a calendar interval that contains a reference date\n * @param {Number} [intervalStartDate=1] - day of month when interval starts (1 - 31)\n * @param {Number} timestamp - the reference date the interval should include\n * @returns { start: number, end: number } - timestamps that define the calendar interval\n */\n getInterval: (intervalStartDate, timestamp) => getInterval(intervalStartDate, moment(timestamp)),\n};\n","/**\n * CHT Script API - Auth module\n * Provides tools related to Authentication.\n */\n\nconst ADMIN_ROLE = '_admin';\nconst DISALLOWED_PERMISSION_PREFIX = '!';\n\nconst isAdmin = (userRoles) => {\n if (!Array.isArray(userRoles)) {\n return false;\n }\n\n return userRoles.includes(ADMIN_ROLE);\n};\n\nconst groupPermissions = (permissions) => {\n const groups = { allowed: [], disallowed: [] };\n\n permissions.forEach(permission => {\n if (permission.indexOf(DISALLOWED_PERMISSION_PREFIX) === 0) {\n // Removing the DISALLOWED_PERMISSION_PREFIX and keeping the permission name.\n groups.disallowed.push(permission.substring(1));\n } else {\n groups.allowed.push(permission);\n }\n });\n\n return groups;\n};\n\nconst debug = (reason, permissions, roles) => {\n // eslint-disable-next-line no-console\n console.debug(`CHT Script API :: ${reason}. User roles: ${roles}. Wanted permissions: ${permissions}`);\n};\n\nconst checkUserHasPermissions = (permissions, userRoles, chtPermissionsSettings, expectedToHave) => {\n return permissions.every(permission => {\n const roles = chtPermissionsSettings[permission];\n\n if (!roles) {\n return !expectedToHave;\n }\n\n return expectedToHave === userRoles.some(role => roles.includes(role));\n });\n};\n\nconst verifyParameters = (permissions, userRoles, chtPermissionsSettings) => {\n if (!Array.isArray(permissions) || !permissions.length) {\n debug('Permissions to verify are not provided or have invalid type');\n return false;\n }\n\n if (!Array.isArray(userRoles)) {\n debug('User roles are not provided or have invalid type');\n return false;\n }\n\n if (!chtPermissionsSettings || !Object.keys(chtPermissionsSettings).length) {\n debug('CHT-Core\\'s configured permissions are not provided');\n return false;\n }\n\n return true;\n};\n\n/**\n * Verify if the user's role has the permission(s).\n * @param permissions {string | string[]} Permission(s) to verify\n * @param userRoles {string[]} Array of user roles.\n * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings.\n * @return {boolean}\n */\nconst hasPermissions = (permissions, userRoles, chtPermissionsSettings) => {\n if (permissions && typeof permissions === 'string') {\n permissions = [ permissions ];\n }\n\n if (!verifyParameters(permissions, userRoles, chtPermissionsSettings)) {\n return false;\n }\n\n const { allowed, disallowed } = groupPermissions(permissions);\n\n if (isAdmin(userRoles)) {\n if (disallowed.length) {\n debug('Disallowed permission(s) found for admin', permissions, userRoles);\n return false;\n }\n // Admin has the permissions automatically.\n return true;\n }\n\n const hasDisallowed = !checkUserHasPermissions(disallowed, userRoles, chtPermissionsSettings, false);\n const hasAllowed = checkUserHasPermissions(allowed, userRoles, chtPermissionsSettings, true);\n\n if (hasDisallowed) {\n debug('Found disallowed permission(s)', permissions, userRoles);\n return false;\n }\n\n if (!hasAllowed) {\n debug('Missing permission(s)', permissions, userRoles);\n return false;\n }\n\n return true;\n};\n\n/**\n * Verify if the user's role has all the permissions of any of the provided groups.\n * @param permissionsGroupList {string[][]} Array of groups of permissions due to the complexity of permission grouping\n * @param userRoles {string[]} Array of user roles.\n * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings.\n * @return {boolean}\n */\nconst hasAnyPermission = (permissionsGroupList, userRoles, chtPermissionsSettings) => {\n if (!verifyParameters(permissionsGroupList, userRoles, chtPermissionsSettings)) {\n return false;\n }\n\n const validGroup = permissionsGroupList.every(permissions => Array.isArray(permissions));\n if (!validGroup) {\n debug('Permission groups to verify are invalid');\n return false;\n }\n\n const allowedGroupList = [];\n const disallowedGroupList = [];\n permissionsGroupList.forEach(permissions => {\n const { allowed, disallowed } = groupPermissions(permissions);\n allowedGroupList.push(allowed);\n disallowedGroupList.push(disallowed);\n });\n\n if (isAdmin(userRoles)) {\n if (disallowedGroupList.every(permissions => permissions.length)) {\n debug('Disallowed permission(s) found for admin', permissionsGroupList, userRoles);\n return false;\n }\n // Admin has the permissions automatically.\n return true;\n }\n\n const hasAnyPermissionGroup = permissionsGroupList.some((permissions, i) => {\n const hasAnyAllowed = checkUserHasPermissions(allowedGroupList[i], userRoles, chtPermissionsSettings, true);\n const hasAnyDisallowed = !checkUserHasPermissions(disallowedGroupList[i], userRoles, chtPermissionsSettings, false);\n // Checking the 'permission group' is valid.\n return hasAnyAllowed && !hasAnyDisallowed;\n });\n\n if (!hasAnyPermissionGroup) {\n debug('No matching permissions', permissionsGroupList, userRoles);\n return false;\n }\n\n return true;\n};\n\nmodule.exports = {\n hasPermissions,\n hasAnyPermission\n};\n","/**\n * CHT Script API - Index\n * Builds and exports a versioned API from feature modules.\n * Whenever possible keep this file clean by defining new features in modules.\n */\nconst auth = require('./auth');\n\n/**\n * Verify if the user's role has the permission(s).\n * @param permissions {string | string[]} Permission(s) to verify\n * @param userRoles {string[]} Array of user roles.\n * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings.\n * @return {boolean}\n */\nconst hasPermissions = (permissions, userRoles, chtPermissionsSettings) => {\n return auth.hasPermissions(permissions, userRoles, chtPermissionsSettings);\n};\n\n/**\n * Verify if the user's role has all the permissions of any of the provided groups.\n * @param permissionsGroupList {string[][]} Array of groups of permissions due to the complexity of permission grouping\n * @param userRoles {string[]} Array of user roles.\n * @param chtPermissionsSettings {object} Object of configured permissions in CHT-Core's settings.\n * @return {boolean}\n */\nconst hasAnyPermission = (permissionsGroupList, userRoles, chtPermissionsSettings) => {\n return auth.hasAnyPermission(permissionsGroupList, userRoles, chtPermissionsSettings);\n};\n\nmodule.exports = {\n v1: {\n hasPermissions,\n hasAnyPermission\n }\n};\n","const HARDCODED_PERSON_TYPE = 'person';\nconst HARDCODED_TYPES = [\n 'district_hospital',\n 'health_center',\n 'clinic',\n 'person'\n];\n\nconst getContactTypes = config => {\n return config && Array.isArray(config.contact_types) && config.contact_types || [];\n};\n\nconst getTypeId = (doc) => {\n if (!doc) {\n return;\n }\n return doc.type === 'contact' ? doc.contact_type : doc.type;\n};\n\nconst getTypeById = (config, typeId) => {\n const contactTypes = getContactTypes(config);\n return contactTypes.find(type => type.id === typeId);\n};\n\nconst isPersonType = (type) => {\n return type && (type.person || type.id === HARDCODED_PERSON_TYPE);\n};\n\nconst isPlaceType = (type) => {\n return type && !type.person && type.id !== HARDCODED_PERSON_TYPE;\n};\n\nconst hasParents = (type) => !!(type && type.parents && type.parents.length);\n\nconst isParentOf = (parentType, childType) => {\n if (!parentType || !childType) {\n return false;\n }\n\n const parentTypeId = typeof parentType === 'string' ? parentType : parentType.id;\n return !!(childType && childType.parents && childType.parents.includes(parentTypeId));\n};\n\n// A leaf place type is a contact type that does not have any child place types, but can have child person types\nconst getLeafPlaceTypes = (config) => {\n const types = getContactTypes(config);\n const placeTypes = types.filter(type => !type.person);\n return placeTypes.filter(type => {\n return placeTypes.every(inner => !inner.parents || !inner.parents.includes(type.id));\n });\n};\n\nconst getContactType = (config, contact) => {\n const typeId = getTypeId(contact);\n return typeId && getTypeById(config, typeId);\n};\n\n// returns true if contact's type exists and is a person type OR if contact's type is the hardcoded person type\nconst isPerson = (config, contact) => {\n const typeId = getTypeId(contact);\n const type = getTypeById(config, typeId) || { id: typeId };\n return isPersonType(type);\n};\n\nconst isPlace = (config, contact) => {\n const type = getContactType(config, contact);\n return isPlaceType(type);\n};\n\nconst isHardcodedType = type => HARDCODED_TYPES.includes(type);\n\nconst isOrphan = (type) => !type.parents || !type.parents.length;\n/**\n * Returns an array of child types for the given type id.\n * If parent is falsey, returns the types with no parent.\n */\nconst getChildren = (config, parentType) => {\n const types = getContactTypes(config);\n return types.filter(type => (!parentType && isOrphan(type)) || isParentOf(parentType, type));\n};\n\nconst getPlaceTypes = (config) => getContactTypes(config).filter(isPlaceType);\nconst getPersonTypes = (config) => getContactTypes(config).filter(isPersonType);\n\nmodule.exports = {\n getTypeId,\n getTypeById,\n isPersonType,\n isPlaceType,\n hasParents,\n isParentOf,\n getLeafPlaceTypes,\n getContactType,\n isPerson,\n isPlace,\n isHardcodedType,\n HARDCODED_TYPES,\n getContactTypes,\n getChildren,\n getPlaceTypes,\n getPersonTypes,\n};\n","const _ = require('lodash/core');\n_.uniq = require('lodash/uniq');\nconst utils = require('./utils');\n\nconst deepCopy = obj => JSON.parse(JSON.stringify(obj));\n\nconst selfAndParents = function(self) {\n const parents = [];\n let current = self;\n while (current) {\n if (parents.includes(current)) {\n return parents;\n }\n\n parents.push(current);\n current = current.parent;\n }\n return parents;\n};\n\nconst extractParentIds = current => selfAndParents(current)\n .map(parent => parent._id)\n .filter(id => id);\n\nconst getContactById = (contacts, id) => id && contacts.find(contact => contact && contact._id === id);\n\nconst getContactIds = (contacts) => {\n const ids = [];\n contacts.forEach(doc => {\n if (!doc) {\n return;\n }\n\n const id = utils.getId(doc.contact);\n id && ids.push(id);\n\n if (!utils.validLinkedDocs(doc)) {\n return;\n }\n Object.keys(doc.linked_docs).forEach(key => {\n const id = utils.getId(doc.linked_docs[key]);\n id && ids.push(id);\n });\n });\n\n return _.uniq(ids);\n};\n\nmodule.exports = function(Promise, DB) {\n const fillParentsInDocs = function(doc, lineage) {\n if (!doc || !lineage.length) {\n return doc;\n }\n\n // Parent hierarchy starts at the contact for data_records\n let currentParent;\n if (utils.isReport(doc)) {\n currentParent = doc.contact = lineage.shift() || doc.contact;\n } else {\n // It's a contact\n currentParent = doc;\n }\n\n const parentIds = extractParentIds(currentParent.parent);\n lineage.forEach(function(l, i) {\n currentParent.parent = l ? deepCopy(l) : { _id: parentIds[i] };\n currentParent = currentParent.parent;\n });\n\n return doc;\n };\n\n const fillContactsInDocs = function(docs, contacts) {\n if (!contacts || !contacts.length) {\n return;\n }\n\n docs.forEach(function(doc) {\n if (!doc) {\n return;\n }\n const id = utils.getId(doc.contact);\n const contactDoc = getContactById(contacts, id);\n if (contactDoc) {\n doc.contact = deepCopy(contactDoc);\n }\n\n if (!utils.validLinkedDocs(doc)) {\n return;\n }\n\n Object.keys(doc.linked_docs).forEach(key => {\n const id = utils.getId(doc.linked_docs[key]);\n const contactDoc = getContactById(contacts, id);\n if (contactDoc) {\n doc.linked_docs[key] = deepCopy(contactDoc);\n }\n });\n });\n };\n\n const fetchContacts = function(lineage) {\n const contactIds = getContactIds(lineage);\n\n // Only fetch docs that are new to us\n const lineageContacts = [];\n const contactsToFetch = [];\n contactIds.forEach(function(id) {\n const contact = getContactById(lineage, id);\n if (contact) {\n lineageContacts.push(deepCopy(contact));\n } else {\n contactsToFetch.push(id);\n }\n });\n\n return fetchDocs(contactsToFetch)\n .then(function(fetchedContacts) {\n return lineageContacts.concat(fetchedContacts);\n });\n };\n\n const mergeLineagesIntoDoc = function(lineage, contacts, patientLineage, placeLineage) {\n const doc = lineage.shift();\n fillParentsInDocs(doc, lineage);\n\n if (patientLineage && patientLineage.length) {\n const patientDoc = patientLineage.shift();\n fillParentsInDocs(patientDoc, patientLineage);\n doc.patient = patientDoc;\n }\n\n if (placeLineage && placeLineage.length) {\n const placeDoc = placeLineage.shift();\n fillParentsInDocs(placeDoc, placeLineage);\n doc.place = placeDoc;\n }\n\n return doc;\n };\n\n /*\n * @returns {Object} subjectMaps\n * @returns {Map} subjectMaps.patientUuids - map with [k, v] pairs of [recordUuid, patientUuid]\n * @returns {Map} subjectMaps.placeUuids - map with [k, v] pairs of [recordUuid, placeUuid]\n */\n const fetchSubjectsUuids = (records) => {\n const shortcodes = [];\n const recordToPlaceUuidMap = new Map();\n const recordToPatientUuidMap = new Map();\n\n records.forEach(record => {\n if (!utils.isReport(record)) {\n return;\n }\n\n const patientId = utils.getPatientId(record);\n const placeId = utils.getPlaceId(record);\n recordToPatientUuidMap.set(record._id, patientId);\n recordToPlaceUuidMap.set(record._id, placeId);\n\n shortcodes.push(patientId, placeId);\n });\n\n if (!shortcodes.some(shortcode => shortcode)) {\n return Promise.resolve({ patientUuids: recordToPatientUuidMap, placeUuids: recordToPlaceUuidMap });\n }\n\n return contactUuidByShortcode(shortcodes).then(shortcodeToUuidMap => {\n records.forEach(record => {\n const patientShortcode = recordToPatientUuidMap.get(record._id);\n recordToPatientUuidMap.set(record._id, shortcodeToUuidMap.get(patientShortcode));\n\n const placeShortcode = recordToPlaceUuidMap.get(record._id);\n recordToPlaceUuidMap.set(record._id, shortcodeToUuidMap.get(placeShortcode));\n });\n\n return { patientUuids: recordToPatientUuidMap, placeUuids: recordToPlaceUuidMap };\n });\n };\n\n /*\n * @returns {Object} lineages\n * @returns {Array} lineages.patientLineage\n * @returns {Array} lineages.placeLineage\n */\n const fetchSubjectLineage = (record) => {\n if (!utils.isReport(record)) {\n return Promise.resolve({ patientLineage: [], placeLineage: [] });\n }\n\n const patientId = utils.getPatientId(record);\n const placeId = utils.getPlaceId(record);\n\n if (!patientId && !placeId) {\n return Promise.resolve({ patientLineage: [], placeLineage: [] });\n }\n\n return contactUuidByShortcode([patientId, placeId]).then((shortcodeToUuidMap) => {\n const patientUuid = shortcodeToUuidMap.get(patientId);\n const placeUuid = shortcodeToUuidMap.get(placeId);\n\n return fetchLineageByIds([patientUuid, placeUuid]).then((lineages) => {\n const patientLineage = lineages.find(lineage => lineage[0]._id === patientUuid) || [];\n const placeLineage = lineages.find(lineage => lineage[0]._id === placeUuid) || [];\n\n return { patientLineage, placeLineage };\n });\n });\n };\n\n /*\n * @returns {Map} map with [k, v] pairs of [shortcode, uuid]\n */\n const contactUuidByShortcode = function(shortcodes) {\n const keys = shortcodes\n .filter(shortcode => shortcode)\n .map(shortcode => [ 'shortcode', shortcode ]);\n\n return DB.query('medic-client/contacts_by_reference', { keys })\n .then(function(results) {\n const findIdWithKey = key => {\n const matchingRow = results.rows.find(row => row.key[1] === key);\n return matchingRow && matchingRow.id;\n };\n\n return new Map(shortcodes.map(shortcode => ([ shortcode, findIdWithKey(shortcode) || shortcode, ])));\n });\n };\n\n const fetchLineageById = function(id) {\n const options = {\n startkey: [id],\n endkey: [id, {}],\n include_docs: true\n };\n return DB.query('medic-client/docs_by_id_lineage', options)\n .then(function(result) {\n return result.rows.map(function(row) {\n return row.doc;\n });\n });\n };\n\n const fetchLineageByIds = function(ids) {\n return fetchDocs(ids).then(function(docs) {\n return hydrateDocs(docs).then(function(hydratedDocs) {\n // Returning a list of docs just like fetchLineageById\n const docsList = [];\n hydratedDocs.forEach(function(hdoc) {\n const docLineage = selfAndParents(hdoc);\n docsList.push(docLineage);\n });\n return docsList;\n });\n });\n };\n\n const fetchDoc = function(id) {\n return DB.get(id)\n .catch(function(err) {\n if (err.status === 404) {\n err.statusCode = 404;\n }\n throw err;\n });\n };\n\n const fetchHydratedDoc = function(id, options = {}, callback = undefined) {\n let lineage;\n let patientLineage;\n let placeLineage;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n _.defaults(options, {\n throwWhenMissingLineage: false,\n });\n\n return fetchLineageById(id)\n .then(function(result) {\n lineage = result;\n\n if (lineage.length === 0) {\n if (options.throwWhenMissingLineage) {\n const err = new Error(`Document not found: ${id}`);\n err.code = 404;\n throw err;\n } else {\n // Not a doc that has lineage, just do a normal fetch.\n return fetchDoc(id);\n }\n }\n\n return fetchSubjectLineage(lineage[0])\n .then((lineages = {}) => {\n patientLineage = lineages.patientLineage;\n placeLineage = lineages.placeLineage;\n\n return fetchContacts(lineage.concat(patientLineage, placeLineage));\n })\n .then(function(contacts) {\n fillContactsInDocs(lineage, contacts);\n fillContactsInDocs(patientLineage, contacts);\n fillContactsInDocs(placeLineage, contacts);\n return mergeLineagesIntoDoc(lineage, contacts, patientLineage, placeLineage);\n });\n })\n .then(function(result) {\n if (callback) {\n callback(null, result);\n }\n return result;\n })\n .catch(function(err) {\n if (callback) {\n callback(err);\n } else {\n throw err;\n }\n });\n };\n\n // for data_records, include the first-level contact.\n const collectParentIds = function(docs) {\n const ids = [];\n docs.forEach(function(doc) {\n let parent = doc.parent;\n if (utils.isReport(doc)) {\n const contactId = utils.getId(doc.contact);\n if (!contactId) {\n return;\n }\n ids.push(contactId);\n parent = doc.contact;\n }\n\n ids.push(...extractParentIds(parent));\n });\n return _.uniq(ids);\n };\n\n // for data_records, doesn't include the first-level contact (it counts as a parent).\n const collectLeafContactIds = function(partiallyHydratedDocs) {\n const ids = [];\n partiallyHydratedDocs.forEach(function(doc) {\n const startLineageFrom = utils.isReport(doc) ? doc.contact : doc;\n ids.push(...getContactIds(selfAndParents(startLineageFrom)));\n });\n\n return _.uniq(ids);\n };\n\n const fetchDocs = function(ids) {\n if (!ids || !ids.length) {\n return Promise.resolve([]);\n }\n const keys = _.uniq(ids.filter(id => id));\n if (keys.length === 0) {\n return Promise.resolve([]);\n }\n\n return DB.allDocs({ keys, include_docs: true })\n .then(function(results) {\n return results.rows\n .map(function(row) {\n return row.doc;\n })\n .filter(function(doc) {\n return !!doc;\n });\n });\n };\n\n const hydrateDocs = function(docs) {\n if (!docs.length) {\n return Promise.resolve([]);\n }\n\n const hydratedDocs = deepCopy(docs); // a copy of the original docs which we will incrementally hydrate and return\n const knownDocs = [...hydratedDocs]; // an array of all documents which we have fetched\n\n let patientUuids; // a map of [k, v] pairs with [hydratedDocUuid, patientUuid]\n let placeUuids; // a map of [k, v] pairs with [hydratedDocUuid, placeUuid]\n\n return fetchSubjectsUuids(hydratedDocs)\n .then((subjectMaps) => {\n placeUuids = subjectMaps.placeUuids;\n patientUuids = subjectMaps.patientUuids;\n\n return fetchDocs([...placeUuids.values(), ...patientUuids.values()]);\n })\n .then(subjects => {\n knownDocs.push(...subjects);\n\n const firstRoundIdsToFetch = _.uniq([\n ...collectParentIds(hydratedDocs),\n ...collectLeafContactIds(hydratedDocs),\n\n ...collectParentIds(subjects),\n ...collectLeafContactIds(subjects),\n ]);\n\n return fetchDocs(firstRoundIdsToFetch);\n })\n .then(function(firstRoundFetched) {\n knownDocs.push(...firstRoundFetched);\n const secondRoundIdsToFetch = collectLeafContactIds(firstRoundFetched)\n .filter(id => !knownDocs.some(doc => doc._id === id));\n return fetchDocs(secondRoundIdsToFetch);\n })\n .then(function(secondRoundFetched) {\n knownDocs.push(...secondRoundFetched);\n\n fillContactsInDocs(knownDocs, knownDocs);\n hydratedDocs.forEach((doc) => {\n const reconstructLineage = (docWithLineage, parents) => {\n const parentIds = extractParentIds(docWithLineage);\n return parentIds.map(id => {\n // how can we use hashmaps?\n return getContactById(parents, id);\n });\n };\n\n const isReport = utils.isReport(doc);\n const findParentsFor = isReport ? doc.contact : doc;\n const lineage = reconstructLineage(findParentsFor, knownDocs);\n\n if (isReport) {\n lineage.unshift(doc);\n }\n\n const patientDoc = getContactById(knownDocs, patientUuids.get(doc._id));\n const patientLineage = reconstructLineage(patientDoc, knownDocs);\n\n const placeDoc = getContactById(knownDocs, placeUuids.get(doc._id));\n const placeLineage = reconstructLineage(placeDoc, knownDocs);\n\n mergeLineagesIntoDoc(lineage, knownDocs, patientLineage, placeLineage);\n });\n\n return hydratedDocs;\n });\n };\n\n const fetchHydratedDocs = docIds => {\n if (!Array.isArray(docIds)) {\n return Promise.reject(new Error('Invalid parameter: \"docIds\" must be an array'));\n }\n\n if (!docIds.length) {\n return Promise.resolve([]);\n }\n\n if (docIds.length === 1) {\n return fetchHydratedDoc(docIds[0])\n .then(doc => [doc])\n .catch(err => {\n if (err.status === 404) {\n return [];\n }\n\n throw err;\n });\n }\n\n return DB\n .allDocs({ keys: docIds, include_docs: true })\n .then(result => {\n const docs = result.rows.map(row => row.doc).filter(doc => doc);\n return hydrateDocs(docs);\n });\n };\n\n return {\n /**\n * Given a doc id get a doc and all parents, contact (and parents) and patient (and parents) and place (and parents)\n * @param {String} id The id of the doc to fetch and hydrate\n * @param {Object} [options] Options for the behavior of the hydration\n * @param {Boolean} [options.throwWhenMissingLineage=false] When true, throw if the doc has nothing to hydrate.\n * When false, does a best effort to return the document regardless of content.\n * @returns {Promise} A promise to return the hydrated doc.\n */\n fetchHydratedDoc: (id, options, callback) => fetchHydratedDoc(id, options, callback),\n\n /**\n * Given an array of ids, returns hydrated versions of every requested doc (using hydrateDocs or fetchHydratedDoc)\n * If a doc is not found, it's simply excluded from the results list\n * @param {Object[]} docs The array of docs to hydrate\n * @returns {Promise} A promise to return the hydrated docs\n */\n fetchHydratedDocs: docIds => fetchHydratedDocs(docIds),\n\n /**\n * Given an array of docs bind the parents, contact (and parents) and patient (and parents) and place (and parents)\n * @param {Object[]} docs The array of docs to hydrate\n * @returns {Promise}\n */\n hydrateDocs: docs => hydrateDocs(docs),\n\n fetchLineageById,\n fetchLineageByIds,\n fillContactsInDocs,\n fillParentsInDocs,\n fetchContacts,\n };\n};\n","/**\n * @module lineage\n */\nmodule.exports = (Promise, DB) => Object.assign(\n {},\n require('./hydration')(Promise, DB),\n require('./minify')\n);\n","const utils = require('./utils');\nconst RECURSION_LIMIT = 50;\n\n// Minifies things you would attach to another doc:\n// doc.parent = minify(doc.parent)\n// Not:\n// minify(doc)\nconst minifyLineage = (parent) => {\n if (!parent || !parent._id) {\n return parent;\n }\n\n const docId = parent._id;\n const result = { _id: parent._id };\n let minified = result;\n for (let guard = RECURSION_LIMIT; parent.parent && parent.parent._id; --guard) {\n if (guard === 0) {\n throw Error(`Could not minify ${docId}, possible parent recursion.`);\n }\n\n minified.parent = { _id: parent.parent._id };\n minified = minified.parent;\n parent = parent.parent;\n }\n\n return result;\n};\n\n/**\n * Remove all hyrdrated items and leave just the ids\n * @param {Object} doc The doc to minify\n */\nconst minify = (doc) => {\n if (!doc) {\n return;\n }\n if (doc.parent) {\n doc.parent = minifyLineage(doc.parent);\n }\n if (doc.contact && doc.contact._id) {\n const miniContact = { _id: doc.contact._id };\n if (doc.contact.parent) {\n miniContact.parent = minifyLineage(doc.contact.parent);\n }\n doc.contact = miniContact;\n }\n if (doc.type === 'data_record') {\n delete doc.patient;\n delete doc.place;\n }\n\n if (utils.validLinkedDocs(doc)) {\n Object.keys(doc.linked_docs).forEach(key => {\n doc.linked_docs[key] = utils.getId(doc.linked_docs[key]);\n });\n }\n};\n\nmodule.exports = {\n minify,\n minifyLineage,\n};\n","const contactTypeUtils = require('@medic/contact-types-utils');\nconst _ = require('lodash/core');\n\nconst isContact = doc => {\n if (!doc) {\n return;\n }\n\n return doc.type === 'contact' || contactTypeUtils.HARDCODED_TYPES.includes(doc.type);\n};\n\nconst getId = (item) => item && (typeof item === 'string' ? item : item._id);\n\n// don't process linked docs for non-contact types\n// linked_docs property should be a key-value object\nconst validLinkedDocs = doc => {\n return isContact(doc) && _.isObject(doc.linked_docs) && !_.isArray(doc.linked_docs);\n};\n\nconst isReport = (doc) => doc.type === 'data_record';\nconst getPatientId = (doc) => (doc.fields && (doc.fields.patient_id || doc.fields.patient_uuid)) || doc.patient_id;\nconst getPlaceId = (doc) => (doc.fields && doc.fields.place_id) || doc.place_id;\n\n\nmodule.exports = {\n getId,\n validLinkedDocs,\n isReport,\n getPatientId,\n getPlaceId,\n};\n","const uniq = require('lodash/uniq');\n\nconst formCodeMatches = (conf, form) => {\n return (new RegExp('^[^a-z]*' + conf + '[^a-z]*$', 'i')).test(form);\n};\n\n// Returns whether `doc` is a valid registration against a configuration\n// This is done by checks roughly similar to the `registration` transition filter function\n// Serves as a replacement for checking for `transitions` metadata within the doc itself\nexports.isValidRegistration = (doc, settings) => {\n if (!doc ||\n (doc.errors && doc.errors.length) ||\n !settings ||\n !settings.registrations ||\n doc.type !== 'data_record' ||\n !doc.form) {\n return false;\n }\n\n // Registration transition should be configured for this form\n const registrationConfiguration = settings.registrations.find((conf) => {\n return conf &&\n conf.form &&\n formCodeMatches(conf.form, doc.form);\n });\n if (!registrationConfiguration) {\n return false;\n }\n\n if (doc.content_type === 'xml') {\n return true;\n }\n\n // SMS forms need to be configured\n const form = settings.forms && settings.forms[doc.form];\n if (!form) {\n return false;\n }\n\n // Require a known submitter or the form to be public.\n return Boolean(form.public_form || doc.contact);\n};\n\nexports._formCodeMatches = formCodeMatches;\n\nconst CONTACT_SUBJECT_PROPERTIES = ['_id', 'patient_id', 'place_id'];\nconst REPORT_SUBJECT_PROPERTIES = ['patient_id', 'patient_uuid', 'place_id', 'place_uuid'];\n\nexports.getSubjectIds = (doc) => {\n const subjectIds = [];\n\n if (!doc) {\n return subjectIds;\n }\n\n if (doc.type === 'data_record') {\n REPORT_SUBJECT_PROPERTIES.forEach(prop => {\n if (doc[prop]) {\n subjectIds.push(doc[prop]);\n }\n if (doc.fields && doc.fields[prop]) {\n subjectIds.push(doc.fields[prop]);\n }\n });\n } else {\n CONTACT_SUBJECT_PROPERTIES.forEach(prop => {\n if (doc[prop]) {\n subjectIds.push(doc[prop]);\n }\n });\n }\n\n return uniq(subjectIds);\n};\n\nexports.getSubjectId = report => {\n if (!report) {\n return false;\n }\n for (const prop of REPORT_SUBJECT_PROPERTIES) {\n if (report[prop]) {\n return report[prop];\n }\n if (report.fields && report.fields[prop]) {\n return report.fields[prop];\n }\n }\n};\n","/**\n * @module rules-engine\n *\n * Business logic for interacting with rules documents\n */\n\nconst pouchdbProvider = require('./pouchdb-provider');\nconst rulesEmitter = require('./rules-emitter');\nconst rulesStateStore = require('./rules-state-store');\nconst wireupToProvider = require('./provider-wireup');\n\n/**\n * @param {Object} db Medic pouchdb database\n */\nmodule.exports = db => {\n const provider = pouchdbProvider(db);\n return {\n /**\n * @param {Object} settings Settings for the behavior of the rules engine\n * @param {Object} settings.rules Rules code from settings doc\n * @param {Object[]} settings.taskSchedules Task schedules from settings doc\n * @param {Object[]} settings.targets Target definitions from settings doc\n * @param {Boolean} settings.enableTasks Flag to enable tasks\n * @param {Boolean} settings.enableTargets Flag to enable targets\n * @param {Boolean} [settings.rulesAreDeclarative=false] Flag to indicate the content of settings.rules. When true, \n * rules is processed as native JavaScript. When false, nools is used.\n * @param {RulesEmitter} [settings.customEmitter] Optional custom RulesEmitter object\n * @param {Object} settings.contact User's hydrated contact document\n * @param {Object} settings.user User's settings document\n */\n initialize: (settings) => wireupToProvider.initialize(provider, settings),\n\n /**\n * @returns {Boolean} True if the rules engine is enabled and ready for use\n */\n isEnabled: () => rulesEmitter.isEnabled() && rulesEmitter.isLatestNoolsSchema(),\n\n /**\n * Refreshes all rules documents for a set of contacts and returns their task documents\n *\n * @param {string[]} contactIds An array of contact ids. If undefined, returns tasks for all contacts\n * @returns {Promise} All the fresh task docs owned by contactIds\n */\n fetchTasksFor: contactIds => wireupToProvider.fetchTasksFor(provider, contactIds),\n\n /**\n * Returns a breakdown of tasks by state and title for the provided list of contacts\n *\n * @param {string[]} contactIds An array of contact ids. If undefined, returns breakdown for all contacts\n * @returns {Promise} The breakdown of tasks counts by state and title\n */\n fetchTasksBreakdown: contactIds => wireupToProvider.fetchTasksBreakdown(provider, contactIds),\n\n /**\n * Refreshes all rules documents and returns the latest target document\n *\n * @param {Object} filterInterval Target emissions with date within the interval will be aggregated into the\n * target scores\n * @param {Integer} filterInterval.start Start timestamp of interval\n * @param {Integer} filterInterval.end End timestamp of interval\n * @returns {Promise} Array of fresh targets\n */\n fetchTargets: filterInterval => wireupToProvider.fetchTargets(provider, filterInterval),\n\n /**\n * Indicate that the task documents associated with a given subjectId are dirty.\n *\n * @param {string[]} subjectIds An array of subject ids\n *\n * @returns {Promise} To mark the subjectIds as dirty\n */\n updateEmissionsFor: subjectIds => wireupToProvider.updateEmissionsFor(provider, subjectIds),\n\n /**\n * Determines if either the settings or user's hydrated contact document have changed in a way which will impact\n * the result of rules calculations.\n * If they have changed in a meaningful way, the calculation state of all contacts is reset\n *\n * @param {Object} settings Updated settings\n * @param {Object} settings.rules Rules code from settings doc\n * @param {Object[]} settings.taskSchedules Task schedules from settings doc\n * @param {Object[]} settings.targets Target definitions from settings doc\n * @param {Boolean} settings.enableTasks Flag to enable tasks\n * @param {Boolean} settings.enableTargets Flag to enable targets\n * @param {Boolean} [settings.rulesAreDeclarative=false] Flag to indicate the content of settings.rules. When true, \n * rules is native JavaScript. When false, nools is used\n * @param {RulesEmitter} [settings.customEmitter] Optional custom RulesEmitter object\n * @param {Object} settings.contact User's hydrated contact document\n * @param {Object} settings.user User's user-settings document\n */\n rulesConfigChange: (settings) => {\n const cacheIsReset = rulesStateStore.rulesConfigChange(settings);\n if (cacheIsReset) {\n rulesEmitter.shutdown();\n rulesEmitter.initialize(settings);\n }\n },\n\n /**\n * Returns a list of UUIDs of tracked contacts that are marked as dirty\n * @returns {Array} list of dirty contacts UUIDs\n */\n getDirtyContacts: () => rulesStateStore.getDirtyContacts(),\n };\n};\n","/**\n * @module pouchdb-provider\n *\n * Wireup for accessing rules document data via medic pouch db\n */\n\n/* eslint-disable no-console */\nconst moment = require('moment');\nconst registrationUtils = require('@medic/registration-utils');\nconst uniqBy = require('lodash/uniqBy');\n\nconst RULES_STATE_DOCID = '_local/rulesStateStore';\nconst MAX_QUERY_KEYS = 500;\n\nconst docsOf = (query) => {\n return query.then(result => {\n const rows = uniqBy(result.rows, 'id');\n return rows.map(row => row.doc).filter(existing => existing);\n });\n};\n\nconst rowsOf = (query) => query.then(result => uniqBy(result.rows, 'id'));\n\nconst medicPouchProvider = db => {\n const dbQuery = async (view, params) => {\n if (!params?.keys || params.keys.length < MAX_QUERY_KEYS) {\n return db.query(view, params);\n }\n\n const keys = new Set(params.keys);\n delete params.keys;\n const results = await db.query(view, params);\n const rows = results.rows.filter(row => keys.has(row.key));\n return { ...results, rows };\n };\n\n const self = {\n // PouchDB.query slows down when provided with a large keys array.\n // For users with ~1000 contacts it is ~50x faster to provider a start/end key instead of specifying all ids\n allTasks: prefix => {\n const options = { startkey: `${prefix}-`, endkey: `${prefix}-\\ufff0`, include_docs: true };\n return docsOf(dbQuery('medic-client/tasks_by_contact', options));\n },\n\n allTaskData: userSettingsDoc => {\n const userSettingsId = userSettingsDoc?._id;\n return Promise.all([\n docsOf(dbQuery('medic-client/contacts_by_type', { include_docs: true })),\n docsOf(dbQuery('medic-client/reports_by_subject', { include_docs: true })),\n self.allTasks('requester'),\n ])\n .then(([contactDocs, reportDocs, taskDocs]) => ({ contactDocs, reportDocs, taskDocs, userSettingsId }));\n },\n\n contactsBySubjectId: subjectIds => {\n const keys = subjectIds.map(key => ['shortcode', key]);\n return dbQuery('medic-client/contacts_by_reference', { keys, include_docs: true })\n .then(results => {\n const shortcodeIds = results.rows.map(result => result.doc._id);\n const idsThatArentShortcodes = subjectIds.filter(id => !results.rows.map(row => row.key[1]).includes(id));\n\n return [...shortcodeIds, ...idsThatArentShortcodes];\n });\n },\n\n stateChangeCallback: docUpdateClosure(db),\n\n commitTargetDoc: (targets, userContactDoc, userSettingsDoc, docTag, force = false) => { // NOSONAR\n const userContactId = userContactDoc?._id;\n const userSettingsId = userSettingsDoc?._id;\n const _id = `target~${docTag}~${userContactId}~${userSettingsId}`;\n const createNew = () => ({\n _id,\n type: 'target',\n user: userSettingsId,\n owner: userContactId,\n reporting_period: docTag,\n });\n\n const today = moment().startOf('day').valueOf();\n return db.get(_id)\n .catch(createNew)\n .then(existingDoc => {\n if (existingDoc.updated_date === today && !force) {\n return false;\n }\n\n existingDoc.targets = targets;\n existingDoc.updated_date = today;\n return db.put(existingDoc);\n });\n },\n\n commitTaskDocs: taskDocs => {\n if (!taskDocs || taskDocs.length === 0) {\n return Promise.resolve([]);\n }\n\n console.debug(`Committing ${taskDocs.length} task document updates`);\n return db.bulkDocs(taskDocs)\n .catch(err => console.error('Error committing task documents', err));\n },\n\n existingRulesStateStore: () => db.get(RULES_STATE_DOCID).catch(() => ({ _id: RULES_STATE_DOCID })),\n\n tasksByRelation: (contactIds, prefix) => {\n const keys = contactIds.map(contactId => `${prefix}-${contactId}`);\n return docsOf(dbQuery( 'medic-client/tasks_by_contact', { keys, include_docs: true }));\n },\n\n allTaskRowsByOwner: (contactIds) => {\n const keys = contactIds.map(contactId => (['owner', 'all', contactId]));\n return rowsOf(dbQuery( 'medic-client/tasks_by_contact', { keys }));\n },\n\n allTaskRows: () => {\n const options = {\n startkey: ['owner', 'all'],\n endkey: ['owner', 'all', '\\ufff0'],\n };\n\n return rowsOf(dbQuery( 'medic-client/tasks_by_contact', options));\n },\n\n taskDataFor: (contactIds, userSettingsDoc) => {\n if (!contactIds || contactIds.length === 0) {\n return Promise.resolve({});\n }\n\n return docsOf(db.allDocs({ keys: contactIds, include_docs: true }))\n .then(contactDocs => {\n const subjectIds = contactDocs.reduce((agg, contactDoc) => {\n registrationUtils.getSubjectIds(contactDoc).forEach(subjectId => agg.add(subjectId));\n return agg;\n }, new Set(contactIds));\n\n const keys = Array.from(subjectIds);\n return Promise\n .all([\n docsOf(dbQuery('medic-client/reports_by_subject', { keys, include_docs: true })),\n self.tasksByRelation(contactIds, 'requester'),\n ])\n .then(([reportDocs, taskDocs]) => {\n // tighten the connection between reports and contacts\n // a report will only be allowed to generate tasks for a single contact!\n reportDocs = reportDocs.filter(report => {\n const subjectId = registrationUtils.getSubjectId(report);\n return subjectIds.has(subjectId);\n });\n\n return {\n userSettingsId: userSettingsDoc?._id,\n contactDocs,\n reportDocs,\n taskDocs,\n };\n });\n });\n },\n };\n\n return self;\n};\n\nmedicPouchProvider.RULES_STATE_DOCID = RULES_STATE_DOCID;\n\nconst docUpdateClosure = db => {\n // previousResult helps avoid conflict errors if this functions is used asynchronously\n let previousResult = Promise.resolve();\n return (baseDoc, assigned) => {\n Object.assign(baseDoc, assigned);\n\n previousResult = previousResult\n .then(() => db.put(baseDoc))\n .then(updatedDoc => (baseDoc._rev = updatedDoc.rev))\n .catch(err => console.error(`Error updating ${baseDoc._id}: ${err}`))\n .then(() => {\n // unsure of how browsers handle long promise chains, so break the chain when possible\n previousResult = Promise.resolve();\n });\n\n return previousResult;\n };\n};\n\nmodule.exports = medicPouchProvider;\n","/**\n * @module wireup\n *\n * Wireup a data provider to the rules-engine\n */\n\nconst moment = require('moment');\nconst registrationUtils = require('@medic/registration-utils');\n\nconst TaskStates = require('./task-states');\nconst refreshRulesEmissions = require('./refresh-rules-emissions');\nconst rulesEmitter = require('./rules-emitter');\nconst rulesStateStore = require('./rules-state-store');\nconst updateTemporalStates = require('./update-temporal-states');\nconst calendarInterval = require('@medic/calendar-interval');\n\nlet wireupOptions;\n\nmodule.exports = {\n /**\n * @param {Object} provider A data provider\n * @param {Object} settings Settings for the behavior of the provider\n * @param {Object} settings.rules Rules code from settings doc\n * @param {Object[]} settings.taskSchedules Task schedules from settings doc\n * @param {Object[]} settings.targets Target definitions from settings doc\n * @param {Boolean} settings.enableTasks Flag to enable tasks\n * @param {Boolean} settings.enableTargets Flag to enable targets\n * @param {Boolean} [settings.rulesAreDeclarative=true] Flag to indicate the content of settings.rules. When true,\n * rules is processed as native JavaScript. When false, nools is used.\n * @param {RulesEmitter} [settings.customEmitter] Optional custom RulesEmitter object\n * @param {number} settings.monthStartDate reporting interval start date\n * @param {Object} userDoc User's hydrated contact document\n */\n initialize: (provider, settings) => {\n const isEnabled = rulesEmitter.initialize(settings);\n if (!isEnabled) {\n return Promise.resolve();\n }\n\n const { enableTasks=true, enableTargets=true } = settings;\n wireupOptions = { enableTasks, enableTargets };\n\n return provider\n .existingRulesStateStore()\n .then(existingStateDoc => {\n if (!rulesEmitter.isLatestNoolsSchema()) {\n throw Error('Rules Engine: Updates to the nools schema are required');\n }\n\n const contactClosure = updatedState => provider.stateChangeCallback(\n existingStateDoc,\n { rulesStateStore: updatedState }\n );\n const needsBuilding = rulesStateStore.load(existingStateDoc.rulesStateStore, settings, contactClosure);\n return handleIntervalTurnover(provider, settings).then(() => {\n if (!needsBuilding) {\n return;\n }\n\n rulesStateStore.build(settings, contactClosure);\n });\n });\n },\n\n /**\n * Refreshes the rules emissions for all contacts\n * Fetches all tasks in non-terminal state owned by the contacts\n * Updates the temporal states of the task documents\n * Commits those changes (async)\n *\n * @param {Object} provider A data provider\n * @param {string[]} contactIds An array of contact ids. If undefined, returns tasks for all contacts\n * @returns {Promise} All the fresh task docs owned by contacts\n */\n fetchTasksFor: (provider, contactIds) => {\n if (!rulesEmitter.isEnabled() || !wireupOptions.enableTasks) {\n return disabledResponse();\n }\n\n return enqueue(() => {\n const calculationTimestamp = Date.now();\n return refreshRulesEmissionForContacts(provider, calculationTimestamp, contactIds)\n .then(() => contactIds ? provider.tasksByRelation(contactIds, 'owner') : provider.allTasks('owner'))\n .then(tasksToDisplay => {\n const docsToCommit = updateTemporalStates(tasksToDisplay, calculationTimestamp);\n provider.commitTaskDocs(docsToCommit);\n return tasksToDisplay.filter(taskDoc => taskDoc.state === TaskStates.Ready);\n });\n });\n },\n\n /**\n * Returns a breakdown of task counts by state and title for the provided contacts, or all contacts\n * Does NOT refresh rules emissions\n * @param {Object} provider A data provider\n * @param {string[]} contactIds An array of contact ids. If undefined, returns breakdown for all contacts\n * @return {Promise<{\n * Ready: number,\n * Draft: number,\n * Failed: number,\n * Completed: number,\n * Cancelled: number,\n *}>}\n */\n fetchTasksBreakdown: (provider, contactIds) => {\n const tasksByState = Object.assign({}, TaskStates.states);\n Object\n .keys(tasksByState)\n .forEach(state => tasksByState[state] = 0);\n\n if (!rulesEmitter.isEnabled() || !wireupOptions.enableTasks) {\n return Promise.resolve(tasksByState);\n }\n\n const getTasks = contactIds ? provider.allTaskRowsByOwner(contactIds) : provider.allTaskRows();\n\n return getTasks.then(taskRows => {\n taskRows.forEach(({ value: { state } }) => {\n if (Object.hasOwnProperty.call(tasksByState, state)) {\n tasksByState[state]++;\n }\n });\n\n return tasksByState;\n });\n },\n\n /**\n * Refreshes the rules emissions for all contacts\n *\n * @param {Object} provider A data provider\n * @param {Object} filterInterval Target emissions with date within the interval will be aggregated into the target\n * scores\n * @param {Integer} filterInterval.start Start timestamp of interval\n * @param {Integer} filterInterval.end End timestamp of interval\n * @returns {Promise} The fresh aggregate target doc\n */\n fetchTargets: (provider, filterInterval) => {\n if (!rulesEmitter.isEnabled() || !wireupOptions.enableTargets) {\n return disabledResponse();\n }\n\n const calculationTimestamp = Date.now();\n const targetEmissionFilter = filterInterval && (emission => {\n // 4th parameter of isBetween represents inclusivity. By default or using ( is exclusive, [ is inclusive\n return moment(emission.date).isBetween(filterInterval.start, filterInterval.end, null, '[]');\n });\n\n return enqueue(() => {\n return refreshRulesEmissionForContacts(provider, calculationTimestamp)\n .then(() => {\n const targets = rulesStateStore.aggregateStoredTargetEmissions(targetEmissionFilter);\n return storeTargetsDoc(provider, targets, filterInterval).then(() => targets);\n });\n });\n },\n\n /**\n * Indicate that the rules emissions associated with a given subjectId are dirty\n *\n * @param {Object} provider A data provider\n * @param {string[]} subjectIds An array of subject ids\n *\n * @returns {Promise} To complete the transaction marking the subjectIds as dirty\n */\n updateEmissionsFor: (provider, subjectIds) => {\n if (!subjectIds) {\n subjectIds = [];\n }\n\n if (subjectIds && !Array.isArray(subjectIds)) {\n subjectIds = [subjectIds];\n }\n\n // this function accepts subject ids, but rulesStateStore accepts a contact id, so a conversion is required\n return enqueue(() => {\n return provider\n .contactsBySubjectId(subjectIds)\n .then(contactIds => rulesStateStore.markDirty(contactIds));\n });\n },\n};\n\nlet refreshQueue = Promise.resolve();\nconst enqueue = callback => {\n const listeners = [];\n const eventQueue = [];\n const emit = evtName => {\n // we have to emit `queued` immediately, but there are no listeners listening at this point\n // eventQueue will keep a list of listener-less events. when listeners are registered, we check if they\n // have events in eventQueue, and call their callback immediately for each matching queued event.\n if (!listeners[evtName]) {\n return eventQueue.push(evtName);\n }\n listeners[evtName].forEach(callback => callback());\n };\n\n emit('queued');\n refreshQueue = refreshQueue.then(() => {\n emit('running');\n return callback();\n });\n\n refreshQueue.on = (evtName, callback) => {\n listeners[evtName] = listeners[evtName] || [];\n listeners[evtName].push(callback);\n eventQueue.forEach(queuedEvent => queuedEvent === evtName && callback());\n return refreshQueue;\n };\n\n return refreshQueue;\n};\n\nconst disabledResponse = () => {\n const p = Promise.resolve([]);\n p.on = () => p;\n return p;\n};\n\nconst refreshRulesEmissionForContacts = (provider, calculationTimestamp, contactIds) => {\n const refreshAndSave = (freshData, updatedContactIds) => (\n refreshRulesEmissions(freshData, calculationTimestamp, wireupOptions)\n .then(refreshed => Promise.all([\n rulesStateStore.storeTargetEmissions(updatedContactIds, refreshed.targetEmissions),\n provider.commitTaskDocs(refreshed.updatedTaskDocs),\n ]))\n );\n\n const refreshForAllContacts = (calculationTimestamp) => (\n provider.allTaskData(rulesStateStore.currentUserSettings())\n .then(freshData => (\n refreshAndSave(freshData)\n .then(() => {\n const contactIds = freshData.contactDocs.map(doc => doc._id);\n\n const subjectIds = freshData.contactDocs.reduce((agg, contactDoc) => {\n registrationUtils.getSubjectIds(contactDoc).forEach(subjectId => agg.add(subjectId));\n return agg;\n }, new Set());\n\n const headlessSubjectIds = freshData.reportDocs\n .map(doc => registrationUtils.getSubjectId(doc))\n .filter(subjectId => !subjectIds.has(subjectId));\n\n rulesStateStore.markAllFresh(calculationTimestamp, [...contactIds, ...headlessSubjectIds]);\n })\n ))\n );\n\n const refreshForKnownContacts = (calculationTimestamp, contactIds) => {\n const dirtyContactIds = contactIds.filter(contactId => rulesStateStore.isDirty(contactId));\n return provider.taskDataFor(dirtyContactIds, rulesStateStore.currentUserSettings())\n .then(freshData => refreshAndSave(freshData, dirtyContactIds))\n .then(() => {\n rulesStateStore.markFresh(calculationTimestamp, dirtyContactIds);\n });\n };\n\n return handleIntervalTurnover(provider, { monthStartDate: rulesStateStore.getMonthStartDate() }).then(() => {\n if (contactIds) {\n return refreshForKnownContacts(calculationTimestamp, contactIds);\n }\n\n // If the contact state store does not contain all contacts, build up that list (contact doc ids + headless ids in\n // reports/tasks)\n if (!rulesStateStore.hasAllContacts()) {\n return refreshForAllContacts(calculationTimestamp);\n }\n\n // Once the contact state store has all contacts, trust it and only refresh those marked dirty\n return refreshForKnownContacts(calculationTimestamp, rulesStateStore.getContactIds());\n });\n};\n\nconst storeTargetsDoc = (provider, targets, filterInterval, force = false) => {\n const targetDocTag = filterInterval ? moment(filterInterval.end).format('YYYY-MM') : 'latest';\n const minifyTarget = target => ({ id: target.id, value: target.value });\n\n return provider.commitTargetDoc(\n targets.map(minifyTarget),\n rulesStateStore.currentUserContact(),\n rulesStateStore.currentUserSettings(),\n targetDocTag,\n force\n );\n};\n\n// Because we only save the `target` document once per day (when we calculate targets for the first time),\n// we're losing all updates to targets that happened in the last day of the reporting period.\n// This function takes the last saved state (which may be stale) and generates the targets doc for the corresponding\n// reporting interval (that includes the date when the state was calculated).\n// We don't recalculate the state prior to this because we support targets that count events infinitely to emit `now`,\n// which means that they would all be excluded from the emission filter (being outside the past reporting interval).\n// https://github.com/medic/cht-core/issues/6209\nconst handleIntervalTurnover = (provider, { monthStartDate }) => {\n if (!rulesStateStore.isLoaded() || !wireupOptions.enableTargets) {\n return Promise.resolve();\n }\n\n const stateCalculatedAt = rulesStateStore.stateLastUpdatedAt();\n if (!stateCalculatedAt) {\n return Promise.resolve();\n }\n\n const currentInterval = calendarInterval.getCurrent(monthStartDate);\n // 4th parameter of isBetween represents inclusivity. By default or using ( is exclusive, [ is inclusive\n if (moment(stateCalculatedAt).isBetween(currentInterval.start, currentInterval.end, null, '[]')) {\n return Promise.resolve();\n }\n\n const filterInterval = calendarInterval.getInterval(monthStartDate, stateCalculatedAt);\n const targetEmissionFilter = (emission => {\n // 4th parameter of isBetween represents inclusivity. By default or using ( is exclusive, [ is inclusive\n return moment(emission.date).isBetween(filterInterval.start, filterInterval.end, null, '[]');\n });\n\n const targets = rulesStateStore.aggregateStoredTargetEmissions(targetEmissionFilter);\n return storeTargetsDoc(provider, targets, filterInterval, true);\n};\n","/**\n * @module refresh-rules-emissions\n * Uses rules-emitter to calculate the fresh emissions for a set of contacts, their reports, and their tasks\n * Creates or updates one task document per unique emission id\n * Cancels task documents in non-terminal states if they were not emitted\n *\n * @requires rules-emitter to be initialized\n */\n\nconst rulesEmitter = require('./rules-emitter');\nconst TaskStates = require('./task-states');\nconst transformTaskEmissionToDoc = require('./transform-task-emission-to-doc');\n\n/**\n * @param {Object[]} freshData.contactDocs A set of contact documents\n * @param {Object[]} freshData.reportDocs All of the contacts' reports\n * @param {Object[]} freshData.taskDocs All of the contacts' task documents (must be linked by requester to a contact)\n * @param {Object[]} freshData.userSettingsId The id of the user's settings document\n *\n * @param {int} calculationTimestamp Timestamp for the round of rules calculations\n *\n * @param {Object=} [options] Options for the behavior when refreshing rules\n * @param {Boolean} [options.enableTasks=true] Flag to enable tasks\n * @param {Boolean} [options.enableTargets=true] Flag to enable targets\n *\n * @returns {Object} result\n * @returns {Object[]} result.targetEmissions Array of raw target emissions\n * @returns {Object[]} result.updatedTaskDocs Array of updated task documents\n */\nmodule.exports = (freshData = {}, calculationTimestamp = Date.now(), { enableTasks=true, enableTargets=true }={}) => {\n const { contactDocs = [], reportDocs = [], taskDocs = [] } = freshData;\n return rulesEmitter.getEmissionsFor(contactDocs, reportDocs, taskDocs)\n .then(emissions => Promise.all([\n enableTasks ? getUpdatedTaskDocs(emissions.tasks, freshData, calculationTimestamp, enableTasks) : [],\n enableTargets ? emissions.targets : [],\n ]))\n .then(([updatedTaskDocs, targetEmissions]) => ({ updatedTaskDocs, targetEmissions }));\n};\n\nconst getUpdatedTaskDocs = (taskEmissions, freshData, calculationTimestamp) => {\n const { taskDocs = [], userSettingsId } = freshData;\n const { winners: emissionIdToLatestDocMap, duplicates: duplicateTaskDocs } = disambiguateTaskDocs(\n taskDocs,\n calculationTimestamp\n );\n\n const timelyEmissions = taskEmissions.filter(emission => TaskStates.isTimely(emission, calculationTimestamp));\n const taskTransforms = disambiguateEmissions(timelyEmissions, calculationTimestamp)\n .map(taskEmission => {\n const existingDoc = emissionIdToLatestDocMap[taskEmission._id];\n return transformTaskEmissionToDoc(taskEmission, calculationTimestamp, userSettingsId, existingDoc);\n });\n\n const freshTaskDocs = taskTransforms.map(doc => doc.taskDoc);\n const cancelledDocs = getCancellationUpdates(freshTaskDocs, freshData.taskDocs, calculationTimestamp);\n const cancelledDuplicatedDocs = getDeduplicationUpdates(duplicateTaskDocs, calculationTimestamp);\n const updatedTaskDocs = taskTransforms.filter(doc => doc.isUpdated).map(result => result.taskDoc);\n return [...updatedTaskDocs, ...cancelledDocs, ...cancelledDuplicatedDocs];\n};\n\n/**\n * Examine the existing task documents which were previously emitted by the same contact\n * Cancel any doc that is in a non-terminal state and does not have an emission to keep it alive\n */\nconst getCancellationUpdates = (freshDocs, existingTaskDocs = [], calculatedAt = 0) => {\n const existingNonTerminalTaskDocs = existingTaskDocs.filter(doc => !TaskStates.isTerminal(doc.state));\n const currentEmissionIds = new Set(freshDocs.map(doc => doc.emission._id));\n\n return existingNonTerminalTaskDocs\n .filter(doc => !currentEmissionIds.has(doc.emission._id))\n .map(doc => TaskStates.setStateOnTaskDoc(doc, TaskStates.Cancelled, calculatedAt));\n};\n\n/**\n * All duplicate task docs that are not in a terminal state are \"Cancelled\" with a \"duplicate\" reason\n * @param {Array} duplicatedTaskDocs - array of task docs that exist in the local DB\n * @param {number} calculatedAt - Timestamp for the round of rules calculations\n * @returns {Array} - task docs with updated state\n */\nconst getDeduplicationUpdates = (duplicatedTaskDocs, calculatedAt) => {\n return duplicatedTaskDocs\n .filter(doc => !TaskStates.isTerminal(doc.state))\n .map(doc => TaskStates.setStateOnTaskDoc(doc, TaskStates.Cancelled, calculatedAt, 'duplicate'));\n};\n\n/*\nIt is possible to receive multiple emissions with the same id. When this happens, we need to pick one winner.\nWe pick the \"most ready\" emission.\n*/\nconst disambiguateEmissions = (taskEmissions, forTime) => {\n const winners = taskEmissions.reduce((agg, emission) => {\n if (!agg[emission._id]) {\n agg[emission._id] = emission;\n } else {\n const incomingState = TaskStates.calculateState(emission, forTime) || TaskStates.Cancelled;\n const currentState = TaskStates.calculateState(agg[emission._id], forTime) || TaskStates.Cancelled;\n if (TaskStates.isMoreReadyThan(incomingState, currentState)) {\n agg[emission._id] = emission;\n }\n }\n return agg;\n }, {});\n\n return Object.keys(winners).map(key => winners[key]); // Object.values()\n};\n\n/**\n * It's possible to have multiple task docs with the same emission id. (For example, when the same account logs in\n * on multiple devices). When this happens, we pick the \"most ready\" most recent task. However, tasks that are authored\n * in the future are discarded.\n * @param {Array} taskDocs - An array of already exiting task documents\n * @param {number} forTime - current calculation timestamp\n * @returns {Object} result\n * @returns {Object} result.winners - A map of emission id to task pairs\n * @returns {Array} result.duplicates - A list of task documents that are duplicates and need to be cancelled\n */\nconst disambiguateTaskDocs = (taskDocs, forTime) => {\n const duplicates = [];\n const winners = {};\n\n const taskDocsByEmissionId = mapEmissionIdToTaskDocs(taskDocs, forTime);\n\n Object.keys(taskDocsByEmissionId).forEach(emissionId => {\n taskDocsByEmissionId[emissionId].forEach(taskDoc => {\n if (!winners[emissionId]) {\n winners[emissionId] = taskDoc;\n return;\n }\n\n const stateComparison = TaskStates.compareState(taskDoc.state, winners[emissionId].state);\n if (\n // if taskDoc is more ready\n stateComparison < 0 ||\n // or taskDoc is more recent, when having the same state\n (stateComparison === 0 && taskDoc.authoredOn > winners[emissionId].authoredOn)\n ) {\n duplicates.push(winners[emissionId]);\n winners[emissionId] = taskDoc;\n } else {\n duplicates.push(taskDoc);\n }\n });\n });\n\n return { winners, duplicates };\n};\n\nconst mapEmissionIdToTaskDocs = (taskDocs, maxTimestamp) => {\n const tasksByEmission = {};\n taskDocs\n // mitigate the fallout of a user who rewinds their system-clock after creating task docs\n .filter(doc => doc.authoredOn <= maxTimestamp)\n .forEach(doc => {\n const emissionId = doc.emission._id;\n if (!tasksByEmission[emissionId]) {\n tasksByEmission[emissionId] = [];\n }\n tasksByEmission[emissionId].push(doc);\n });\n return tasksByEmission;\n};\n","/**\n * @module emitter.javascript\n * Processes declarative configuration code by executing javascript rules directly\n */\n\nclass Contact {\n constructor({ contact, reports, tasks}) {\n this.contact = contact;\n this.reports = reports;\n this.tasks = tasks;\n }\n}\n\n// required by marshalDocsByContact\nContact.prototype.tasks = 'defined';\n\nclass Task {\n constructor(x) {\n Object.assign(this, x);\n }\n}\n\nclass Target {\n constructor(x) {\n Object.assign(this, x);\n }\n}\n\nlet processDocsByContact;\nconst results = { tasks: [], targets: [] };\n\nmodule.exports = {\n getContact: () => Contact,\n initialize: (settings, scope) => {\n const rawFunction = new Function('c', 'Task', 'Target', 'Utils', 'user', 'cht', 'emit', settings.rules);\n processDocsByContact = container => rawFunction(\n container,\n Task,\n Target,\n scope.Utils,\n scope.user,\n scope.cht,\n emitCallback,\n );\n return true;\n },\n\n startSession: () => {\n if (!processDocsByContact) {\n throw Error('Failed to start task session. Not initialized');\n }\n\n results.tasks = [];\n results.targets = [];\n \n return {\n processDocsByContact,\n result: () => Promise.resolve(results),\n dispose: () => {},\n };\n },\n\n isLatestNoolsSchema: () => true,\n\n shutdown: () => {\n processDocsByContact = undefined;\n },\n};\n\nconst emitCallback = (instanceType, instance) => {\n if (instanceType === 'task') {\n results.tasks.push(instance);\n } else if (instanceType === 'target') {\n results.targets.push(instance);\n }\n};\n","/**\n * @module emitter.nools\n * Encapsulates interactions with the nools library\n * Promisifies the execution of partner \"rules\" code\n * Ensures memory allocated by nools is freed after each run\n */\nconst nools = require('nools');\n\nlet flow;\n\nconst startSession = function() {\n if (!flow) {\n throw Error('Failed to start task session. Not initialized');\n }\n\n const session = flow.getSession();\n const tasks = [];\n const targets = [];\n session.on('task', task => tasks.push(task));\n session.on('target', target => targets.push(target));\n\n return {\n assert: session.assert.bind(session),\n dispose: session.dispose.bind(session),\n\n // session.match can return a thenable but not a promise. so wrap it in a real promise\n match: () => new Promise((resolve, reject) => {\n session.match(err => {\n session.dispose();\n if (err) {\n return reject(err);\n }\n\n resolve({ tasks, targets });\n });\n }),\n };\n};\n\nmodule.exports = {\n getContact: () => flow.getDefined('contact'),\n initialize: (settings, scope) => {\n flow = nools.compile(settings.rules, {\n name: 'medic',\n scope,\n });\n\n return !!flow;\n },\n startSession: () => {\n const session = startSession();\n return {\n processDocsByContact: session.assert,\n dispose: session.dispose,\n result: session.match,\n };\n },\n\n /**\n * When upgrading to version 3.8, partners are required to make schema changes in their partner code\n * https://docs.communityhealthtoolkit.org/core/releases/3.8.0/#breaking-changes\n *\n * @returns True if the schema changes are in place\n */\n isLatestNoolsSchema: () => {\n if (!flow) {\n throw Error('task emitter is not enabled -- cannot determine schema version');\n }\n\n const Task = flow.getDefined('task');\n const Target = flow.getDefined('target');\n const hasProperty = (obj, attr) => Object.hasOwnProperty.call(obj, attr);\n return hasProperty(Task.prototype, 'readyStart') &&\n hasProperty(Task.prototype, 'readyEnd') &&\n hasProperty(Target.prototype, 'contact');\n },\n\n shutdown: () => {\n nools.deleteFlows();\n flow = undefined;\n },\n};\n","/**\n * @module rules-emitter\n * Handles the lifecycle of a @RulesEmitter and marshales of documents into the emitter by contact\n * \n * @typedef {Object} RulesEmitter Responsible for executing the logic in _rules_ and returning _emissions_\n */\nconst nootils = require('cht-nootils');\nconst registrationUtils = require('@medic/registration-utils');\n\nconst javascriptEmitter = require('./emitter.javascript');\nconst noolsEmitter = require('./emitter.nools');\n\nlet emitter;\n\n/**\n* Sets the rules emitter to an uninitialized state.\n*/\nconst shutdown = () => {\n if (emitter) {\n emitter.shutdown();\n }\n\n emitter = undefined;\n};\n\nmodule.exports = {\n /**\n * Initializes the rules emitter\n *\n * @param {Object} settings Settings for the behavior of the rules emitter\n * @param {Object} settings.rules Rules code from settings doc\n * @param {Object[]} settings.taskSchedules Task schedules from settings doc\n * @param {Boolean} [settings.rulesAreDeclarative=true] Flag to indicate the content of settings.rules. When true, \n * rules is processed as native JavaScript. When false, nools is used.\n * @param {RulesEmitter} [settings.customEmitter] Optional custom RulesEmitter object\n * @param {Object} settings.contact The logged in user's contact document\n * @returns {Boolean} Success\n */\n initialize: (settings) => {\n if (emitter) {\n throw Error('Attempted to initialize the rules emitter multiple times.');\n }\n\n if (!settings.rules) {\n return false;\n }\n\n shutdown();\n emitter = resolveEmitter(settings);\n\n try {\n const settingsDoc = { tasks: { schedules: settings.taskSchedules } };\n const nootilsInstance = nootils(settingsDoc);\n const scope = {\n Utils: nootilsInstance,\n user: settings.contact,\n cht: settings.chtScriptApi,\n };\n return emitter.initialize(settings, scope);\n } catch (err) {\n shutdown();\n throw err;\n }\n },\n\n /**\n * When upgrading to version 3.8, partners are required to make schema changes in their partner code\n * https://docs.communityhealthtoolkit.org/core/releases/3.8.0/#breaking-changes\n *\n * @returns True if the schema changes are in place\n */\n isLatestNoolsSchema: () => {\n if (!emitter) {\n throw Error('task emitter is not enabled -- cannot determine schema version');\n }\n\n return emitter.isLatestNoolsSchema();\n },\n\n /**\n * Runs the partner's rules code for a set of documents and returns all emissions from nools\n *\n * @param {Object[]} contactDocs A set of contact documents\n * @param {Object[]} reportDocs All of the contacts' reports\n * @param {Object[]} taskDocs All of the contacts' task documents (must be linked by requester to a contact)\n *\n * @returns {Promise} emissions The raw emissions from nools\n * @returns {Object[]} emissions.tasks Array of task emissions\n * @returns {Object[]} emissions.targets Array of target emissions\n */\n getEmissionsFor: (contactDocs, reportDocs = [], taskDocs = []) => {\n if (!emitter) {\n throw Error('task emitter is not enabled -- cannot get emissions');\n }\n\n if (!Array.isArray(contactDocs)) {\n throw Error('invalid argument: contactDocs is expected to be an array');\n }\n\n if (!Array.isArray(reportDocs)) {\n throw Error('invalid argument: reportDocs is expected to be an array');\n }\n\n if (!Array.isArray(taskDocs)) {\n throw Error('invalid argument: taskDocs is expected to be an array');\n }\n\n const session = emitter.startSession();\n try {\n const Contact = emitter.getContact();\n const docsByContact = marshalDocsByContact(Contact, contactDocs, reportDocs, taskDocs);\n docsByContact.forEach(session.processDocsByContact);\n } catch (err) {\n session.dispose();\n throw err;\n }\n\n return session.result();\n },\n\n /**\n * @returns True if the rules emitter is initialized and ready for use\n */\n isEnabled: () => !!emitter,\n\n shutdown,\n};\n\nconst marshalDocsByContact = (Contact, contactDocs, reportDocs, taskDocs) => {\n const factByContactId = contactDocs.reduce((agg, contact) => {\n agg[contact._id] = new Contact({ contact, reports: [], tasks: [] });\n return agg;\n }, {});\n\n const factBySubjectId = contactDocs.reduce((agg, contactDoc) => {\n const subjectIds = registrationUtils.getSubjectIds(contactDoc);\n for (const subjectId of subjectIds) {\n if (!agg[subjectId]) {\n agg[subjectId] = factByContactId[contactDoc._id];\n }\n }\n return agg;\n }, {});\n\n const addHeadlessContact = (contactId) => {\n const contact = contactId ? { _id: contactId } : undefined;\n const newFact = new Contact({ contact, reports: [], tasks: [] });\n factByContactId[contactId] = factBySubjectId[contactId] = newFact;\n return newFact;\n };\n\n for (const report of reportDocs) {\n const subjectIdInReport = registrationUtils.getSubjectId(report);\n const factOfPatient = factBySubjectId[subjectIdInReport] || addHeadlessContact(subjectIdInReport);\n factOfPatient.reports.push(report);\n }\n\n if (Object.hasOwnProperty.call(Contact.prototype, 'tasks')) {\n for (const task of taskDocs) {\n const sourceId = task.requester;\n const factOfPatient = factBySubjectId[sourceId] || addHeadlessContact(sourceId);\n factOfPatient.tasks.push(task);\n }\n }\n\n return Object.keys(factByContactId).map(key => {\n factByContactId[key].reports = factByContactId[key].reports.sort((a, b) => a.reported_date - b.reported_date);\n return factByContactId[key];\n }); // Object.values(factByContactId)\n};\n\nconst resolveEmitter = (settings = {}) => {\n const { rulesAreDeclarative, customEmitter } = settings;\n if (customEmitter !== null && typeof customEmitter === 'object') {\n return customEmitter;\n }\n \n return rulesAreDeclarative ? javascriptEmitter : noolsEmitter;\n};\n","/**\n * @module rules-state-store\n * In-memory datastore containing\n * 1. Details on the state of each contact's rules calculations\n * 2. Target emissions @see target-state\n */\nconst md5 = require('md5');\nconst calendarInterval = require('@medic/calendar-interval');\nconst targetState = require('./target-state');\n\nconst EXPIRE_CALCULATION_AFTER_MS = 7 * 24 * 60 * 60 * 1000;\nlet state;\nlet currentUserContact;\nlet currentUserSettings;\nlet onStateChange;\n\nconst self = {\n /**\n * Initializes the rules-state-store from an existing state. If existing state is invalid, builds an empty state.\n *\n * @param {Object} existingState State object previously passed to the stateChangeCallback\n * @param {Object} settings Settings for the behavior of the rules store\n * @param {Object} settings.contact User's hydrated contact document\n * @param {Object} settings.user User's user-settings document\n * @param {Object} stateChangeCallback Callback which is invoked whenever the state changes.\n * Receives the updated state as the only parameter.\n * @returns {Boolean} that represents whether or not the state needs to be rebuilt\n */\n load: (existingState, settings, stateChangeCallback) => {\n if (state) {\n throw Error('Attempted to initialize the rules-state-store multiple times.');\n }\n\n state = existingState;\n currentUserContact = settings.contact;\n currentUserSettings = settings.user;\n setOnChangeState(stateChangeCallback);\n\n const rulesConfigHash = hashRulesConfig(settings);\n if (state && state.rulesConfigHash !== rulesConfigHash) {\n state.stale = true;\n }\n\n return !state || state.stale;\n },\n\n /**\n * Initializes an empty rules-state-store.\n *\n * @param {Object} settings Settings for the behavior of the rules store\n * @param {Object} settings.contact User's hydrated contact document\n * @param {Object} settings.user User's user-settings document\n * @param {number} settings.monthStartDate reporting interval start date\n * @param {Object} stateChangeCallback Callback which is invoked whenever the state changes.\n * Receives the updated state as the only parameter.\n */\n build: (settings, stateChangeCallback) => {\n if (state && !state.stale) {\n throw Error('Attempted to initialize the rules-state-store multiple times.');\n }\n\n state = {\n rulesConfigHash: hashRulesConfig(settings),\n contactState: {},\n targetState: targetState.createEmptyState(settings.targets),\n monthStartDate: settings.monthStartDate,\n };\n currentUserContact = settings.contact;\n currentUserSettings = settings.user;\n\n setOnChangeState(stateChangeCallback);\n return onStateChange(state);\n },\n\n /**\n * \"Dirty\" indicates that the contact's task documents are not up to date. They should be refreshed before being used.\n *\n * The dirty state can be due to:\n * 1. The time of a contact's most recent task calculation is unknown\n * 2. The contact's most recent task calculation expires\n * 3. The contact is explicitly marked as dirty\n * 4. Configurations impacting rules calculations have changed\n *\n * @param {string} contactId The id of the contact to test for dirtiness\n * @returns {Boolean} True if dirty\n */\n isDirty: contactId => {\n if (!contactId) {\n return false;\n }\n\n if (!state.contactState[contactId]) {\n return true;\n }\n\n const now = Date.now();\n const { calculatedAt, expireAt, isDirty } = state.contactState[contactId];\n return !expireAt ||\n isDirty ||\n calculatedAt > now || /* system clock changed */\n expireAt < now; /* isExpired */\n },\n\n /**\n * Determines if either the settings document or user's hydrated contact document have changed in a way which\n * will impact the result of rules calculations.\n * If they have changed in a meaningful way, the calculation state of all contacts is reset\n *\n * @param {Object} settings Settings for the behavior of the rules store\n * @returns {Boolean} True if the state of all contacts has been reset\n */\n rulesConfigChange: (settings) => {\n const rulesConfigHash = hashRulesConfig(settings);\n if (state.rulesConfigHash !== rulesConfigHash) {\n state = {\n rulesConfigHash,\n contactState: {},\n targetState: targetState.createEmptyState(settings.targets),\n monthStartDate: settings.monthStartDate,\n };\n currentUserContact = settings.contact;\n currentUserSettings = settings.user;\n\n onStateChange(state);\n return true;\n }\n\n return false;\n },\n\n /**\n * @param {int} calculatedAt Timestamp of the calculation\n * @param {string[]} contactIds Array of contact ids to be marked as freshly calculated\n */\n markFresh: (calculatedAt, contactIds) => {\n if (!Array.isArray(contactIds)) {\n contactIds = [contactIds];\n }\n contactIds = contactIds.filter(id => id);\n\n if (contactIds.length === 0) {\n return;\n }\n\n const reportingInterval = calendarInterval.getCurrent(state.monthStartDate);\n const defaultExpiry = calculatedAt + EXPIRE_CALCULATION_AFTER_MS;\n\n for (const contactId of contactIds) {\n state.contactState[contactId] = {\n calculatedAt,\n expireAt: Math.min(reportingInterval.end, defaultExpiry),\n };\n }\n\n return onStateChange(state);\n },\n\n /**\n * @param {string[]} contactIds Array of contact ids to be marked as dirty\n */\n markDirty: contactIds => {\n if (!Array.isArray(contactIds)) {\n contactIds = [contactIds];\n }\n contactIds = contactIds.filter(id => id);\n\n if (contactIds.length === 0) {\n return;\n }\n\n for (const contactId of contactIds) {\n if (!state.contactState[contactId]) {\n state.contactState[contactId] = {};\n }\n\n state.contactState[contactId].isDirty = true;\n }\n\n return onStateChange(state);\n },\n\n /**\n * @returns {string[]} The id of all contacts tracked by the store\n */\n getContactIds: () => Object.keys(state.contactState),\n\n /**\n * The rules system supports the concept of \"headless\" reports and \"headless\" task documents. In these scenarios,\n * a report exists on a user's device while the associated contact document of that report is not on the device.\n * A common scenario associated with this case is during supervisor workflows where supervisors sync reports with the\n * needs_signoff attribute but not the associated patient.\n *\n * In these cases, getting a list of \"all the contacts with rules\" requires us to look not just through contact\n * docs, but also through reports. To avoid this costly operation, the rules-state-store maintains a flag which\n * indicates if the contact ids in the store can serve as a trustworthy authority.\n *\n * markAllFresh should be called when the list of contact ids within the store is the complete set of contacts with\n * rules\n */\n markAllFresh: (calculatedAt, contactIds) => {\n state.allContactIds = true;\n return self.markFresh(calculatedAt, contactIds);\n },\n\n /**\n * @returns True if markAllFresh has been called on the current store state.\n */\n hasAllContacts: () => !!state.allContactIds,\n\n /**\n * @returns {string} User contact document\n */\n currentUserContact: () => currentUserContact,\n\n /**\n * @returns {string} User settings document\n */\n currentUserSettings: () => currentUserSettings,\n\n /**\n * @returns {number} The timestamp when the current loaded state was last updated\n */\n stateLastUpdatedAt: () => state.calculatedAt,\n\n /**\n * @returns {number} current monthStartDate\n */\n getMonthStartDate: () => state.monthStartDate,\n\n /**\n * @returns {boolean} whether or not the state is loaded\n */\n isLoaded: () => !!state,\n\n /**\n * Store a set of target emissions which were emitted by refreshing a set of contacts\n *\n * @param {string[]} contactIds An array of contact ids which produced these targetEmissions by being refreshed.\n * If undefined, all contacts are updated.\n * @param {Object[]} targetEmissions An array of target emissions (the result of the rules-emitter).\n */\n storeTargetEmissions: (contactIds, targetEmissions) => {\n const isUpdated = targetState.storeTargetEmissions(state.targetState, contactIds, targetEmissions);\n if (isUpdated) {\n return onStateChange(state);\n }\n },\n\n /**\n * Aggregates the stored target emissions into target models\n *\n * @param {Function(emission)=} targetEmissionFilter Filter function to filter which target emissions should\n * be aggregated\n * @example aggregateStoredTargetEmissions(emission => emission.date > moment().startOf('month').valueOf())\n *\n * @returns {Object[]} result\n * @returns {string} result[n].* All attributes of the target as defined in the settings doc\n * @returns {Integer} result[n].total The total number of unique target emission ids matching instanceFilter\n * @returns {Integer} result[n].pass The number of unique target emission ids matching instanceFilter with the\n * latest emission with truthy \"pass\"\n * @returns {Integer} result[n].percent The percentage of pass/total\n */\n aggregateStoredTargetEmissions: targetEmissionFilter => targetState.aggregateStoredTargetEmissions(\n state.targetState,\n targetEmissionFilter\n ),\n\n /**\n * Returns a list of UUIDs of tracked contacts that are marked as dirty\n * @returns {Array} list of dirty contacts UUIDs\n */\n getDirtyContacts: () => self.getContactIds().filter(self.isDirty),\n};\n\nconst hashRulesConfig = (settings) => {\n const asString = JSON.stringify(settings);\n return md5(asString);\n};\n\nconst setOnChangeState = (stateChangeCallback) => {\n onStateChange = (state) => {\n state.calculatedAt = new Date().getTime();\n\n if (stateChangeCallback && typeof stateChangeCallback === 'function') {\n return stateChangeCallback(state);\n }\n };\n};\n\n// ensure all exported functions are only ever called after initialization\nmodule.exports = Object.keys(self).reduce((agg, key) => {\n agg[key] = (...args) => {\n if (!['build', 'load', 'isLoaded'].includes(key) && (!state || !state.contactState)) {\n throw Error(`Invalid operation: Attempted to invoke rules-state-store.${key} before call to build or load`);\n }\n\n return self[key](...args);\n };\n return agg;\n}, {});\n","/**\n * @module target-state\n *\n * Stores raw target-emissions in a minified, efficient, deterministic structure\n * Handles removal of \"cancelled\" target emissions\n * Aggregates target emissions into targets\n */\n\n/** @summary state\n * Functions in this module all accept a \"state\" parameter or return a \"state\" object.\n * This state has the following structure:\n *\n * @example\n * {\n * target.id: {\n * id: 'target_id',\n * type: 'count',\n * goal: 0,\n * ..\n *\n * emissions: {\n * emission.id: {\n * requestor.id: {\n * pass: boolean,\n * date: timestamp,\n * order: timestamp,\n * },\n * ..\n * },\n * ..\n * }\n * },\n * ..\n * }\n */\n\nmodule.exports = {\n /**\n * Builds an empty target-state.\n *\n * @param {Object[]} targets An array of target definitions\n */\n createEmptyState: (targets=[]) => {\n return targets\n .reduce((agg, definition) => {\n agg[definition.id] = Object.assign({}, definition, { emissions: {} });\n return agg;\n }, {});\n },\n\n storeTargetEmissions: (state, contactIds, targetEmissions) => {\n let isUpdated = false;\n if (!Array.isArray(targetEmissions)) {\n throw Error('targetEmissions argument must be an array');\n }\n\n // Remove all emissions that were previously emitted by the contact (\"cancelled emissions\")\n if (!contactIds) {\n for (const targetId of Object.keys(state)) {\n state[targetId].emissions = {};\n }\n } else {\n for (const contactId of contactIds) {\n for (const targetId of Object.keys(state)) {\n for (const emissionId of Object.keys(state[targetId].emissions)) {\n const emission = state[targetId].emissions[emissionId];\n if (emission[contactId]) {\n delete emission[contactId];\n isUpdated = true;\n }\n }\n }\n }\n }\n\n // Merge the emission data into state\n for (const emission of targetEmissions) {\n const target = state[emission.type];\n const requestor = emission.contact && emission.contact._id;\n if (target && requestor && !emission.deleted) {\n const targetRequestors = target.emissions[emission._id] = target.emissions[emission._id] || {};\n targetRequestors[requestor] = {\n pass: !!emission.pass,\n groupBy: emission.groupBy,\n date: emission.date,\n order: emission.contact.reported_date || -1,\n };\n isUpdated = true;\n }\n }\n\n return isUpdated;\n },\n\n aggregateStoredTargetEmissions: (state, targetEmissionFilter) => {\n const pick = (obj, attrs) => attrs\n .reduce((agg, attr) => {\n if (Object.hasOwnProperty.call(obj, attr)) {\n agg[attr] = obj[attr];\n }\n return agg;\n }, {});\n\n const scoreTarget = target => {\n const emissionIds = Object.keys(target.emissions);\n const relevantEmissions = emissionIds\n // emissions passing the \"targetEmissionFilter\"\n .map(emissionId => {\n const requestorIds = Object.keys(target.emissions[emissionId]);\n const filteredInstanceIds = requestorIds.filter(requestorId => {\n return !targetEmissionFilter || targetEmissionFilter(target.emissions[emissionId][requestorId]);\n });\n return pick(target.emissions[emissionId], filteredInstanceIds);\n })\n\n // if there are multiple emissions with the same id emitted by different contacts, disambiguate them\n .map(emissionsByRequestor => emissionOfLatestRequestor(emissionsByRequestor))\n .filter(emission => emission);\n\n const passingThreshold = target.passesIfGroupCount && target.passesIfGroupCount.gte;\n if (!passingThreshold) {\n return {\n pass: relevantEmissions.filter(emission => emission.pass).length,\n total: relevantEmissions.length,\n };\n }\n\n const countPassedEmissionsByGroup = {};\n const countEmissionsByGroup = {};\n\n relevantEmissions.forEach(emission => {\n const groupBy = emission.groupBy;\n if (!groupBy) {\n return;\n }\n if (!countPassedEmissionsByGroup[groupBy]) {\n countPassedEmissionsByGroup[groupBy] = 0;\n countEmissionsByGroup[groupBy] = 0;\n }\n countEmissionsByGroup[groupBy]++;\n if (emission.pass) {\n countPassedEmissionsByGroup[groupBy]++;\n }\n });\n\n const groups = Object.keys(countEmissionsByGroup);\n\n return {\n pass: groups.filter(group => countPassedEmissionsByGroup[group] >= passingThreshold).length,\n total: groups.length,\n };\n };\n\n const aggregateTarget = target => {\n const aggregated = pick(\n target,\n ['id', 'type', 'goal', 'translation_key', 'name', 'icon', 'subtitle_translation_key', 'visible']\n );\n aggregated.value = scoreTarget(target);\n\n if (aggregated.type === 'percent') {\n aggregated.value.percent = aggregated.value.total ?\n Math.round(aggregated.value.pass * 100 / aggregated.value.total) : 0;\n }\n\n return aggregated;\n };\n\n const emissionOfLatestRequestor = emissionsByRequestor => {\n return Object.keys(emissionsByRequestor).reduce((previousValue, requestorId) => {\n const current = emissionsByRequestor[requestorId];\n if (!previousValue || !previousValue.order || current.order > previousValue.order) {\n return current;\n }\n return previousValue;\n }, undefined);\n };\n\n return Object.keys(state).map(targetId => aggregateTarget(state[targetId]));\n },\n};\n","/**\n * @module task-states\n * As defined by the FHIR task standard https://www.hl7.org/fhir/task.html#statemachine\n */\n\nconst moment = require('moment');\n\n/**\n * Problems:\n * If all emissions are converted to documents, heavy users will create thousands of legacy task docs after upgrading\n * to this rules-engine.\n * In order to purge task documents, we need to guarantee that they won't just be recreated after they are purged.\n * The two scenarios above are important for maintaining the client-side performance of the app.\n *\n * Therefore, we only consider task emissions \"timely\" if they end within a fixed time period.\n * However, if this window is too short then users who don't login frequently may fail to create a task document at all.\n * Looking at time-between-reports for active projects, a time window of 60 days will ensure that 99.9% of tasks are\n * recorded as docs.\n */\nconst TIMELY_WINDOW = {\n start: 60, // days\n end: 180 // days\n};\n\n// This must be a comparable string format to avoid a bunch of parsing. For example, \"2000-01-01\" < \"2010-11-31\"\nconst formatString = 'YYYY-MM-DD';\n\nconst States = {\n /**\n * Task has been calculated but it is scheduled in the future\n */\n Draft: 'Draft',\n\n /**\n * Task is currently showing to the user\n */\n Ready: 'Ready',\n\n /**\n * Task was not emitted when refreshing the contact\n * Task resulted from invalid emissions\n */\n Cancelled: 'Cancelled',\n\n /**\n * Task was emitted with { resolved: true }\n */\n Completed: 'Completed',\n\n /**\n * Task was never terminated and is now outside the allowed time window\n */\n Failed: 'Failed',\n};\n\nconst getDisplayWindow = (taskEmission) => {\n const hasExistingDisplayWindow = taskEmission.startDate || taskEmission.endDate;\n if (hasExistingDisplayWindow) {\n return {\n dueDate: taskEmission.dueDate,\n startDate: taskEmission.startDate,\n endDate: taskEmission.endDate,\n };\n }\n\n const dueDate = moment(taskEmission.date);\n if (!dueDate.isValid()) {\n return { dueDate: NaN, startDate: NaN, endDate: NaN };\n }\n\n return {\n dueDate: dueDate.format(formatString),\n startDate: dueDate.clone().subtract(taskEmission.readyStart || 0, 'days').format(formatString),\n endDate: dueDate.clone().add(taskEmission.readyEnd || 0, 'days').format(formatString),\n };\n};\n\nconst mostReadyOrder = [States.Ready, States.Draft, States.Completed, States.Failed, States.Cancelled];\nconst orderOf = state => {\n const order = mostReadyOrder.indexOf(state);\n return order >= 0 ? order : mostReadyOrder.length;\n};\n\nmodule.exports = {\n isTerminal: state => [States.Cancelled, States.Completed, States.Failed].includes(state),\n\n isMoreReadyThan: (stateA, stateB) => orderOf(stateA) < orderOf(stateB),\n\n compareState: (stateA, stateB) => orderOf(stateA) - orderOf(stateB),\n\n calculateState: (taskEmission, timestamp) => {\n if (!taskEmission) {\n return false;\n }\n\n if (taskEmission.resolved) {\n return States.Completed;\n }\n\n if (taskEmission.deleted) {\n return States.Cancelled;\n }\n\n // invalid data yields falsey\n if (!taskEmission.date && !taskEmission.dueDate) {\n return false;\n }\n\n const { startDate, endDate } = getDisplayWindow(taskEmission);\n if (!startDate || !endDate || startDate > endDate || endDate < startDate) {\n return false;\n }\n\n const timestampAsDate = moment(timestamp).format(formatString);\n if (startDate > timestampAsDate) {\n return States.Draft;\n }\n\n if (endDate < timestampAsDate) {\n return States.Failed;\n }\n\n return States.Ready;\n },\n\n getDisplayWindow,\n\n states: States,\n\n isTimely: (taskEmission, timestamp) => {\n const { startDate, endDate } = getDisplayWindow(taskEmission);\n const earliest = moment(timestamp).subtract(TIMELY_WINDOW.start, 'days');\n const latest = moment(timestamp).add(TIMELY_WINDOW.end, 'days');\n return earliest.isBefore(endDate) && latest.isAfter(startDate);\n },\n\n setStateOnTaskDoc: (taskDoc, updatedState, timestamp = Date.now(), reason = '') => {\n if (!taskDoc) {\n return;\n }\n\n if (!updatedState) {\n taskDoc.state = States.Cancelled;\n taskDoc.stateReason = 'invalid';\n } else {\n taskDoc.state = updatedState;\n if (reason) {\n taskDoc.stateReason = reason;\n }\n }\n\n const stateHistory = taskDoc.stateHistory = taskDoc.stateHistory || [];\n const mostRecentState = stateHistory[stateHistory.length - 1];\n if (!mostRecentState || taskDoc.state !== mostRecentState.state) {\n const stateChange = { state: taskDoc.state, timestamp };\n stateHistory.push(stateChange);\n }\n\n return taskDoc;\n },\n};\n\nObject.assign(module.exports, States);\n","/**\n * @module transform-task-emission-to-doc\n * Transforms a task emission into the schema used by task documents\n * Minifies all unneeded data from the emission\n * Merges emission data into an existing document, or creates a new task document (as appropriate)\n */\n\nconst TaskStates = require('./task-states');\n\n/**\n * @param {Object} taskEmission A task emission from the rules engine\n * @param {int} calculatedAt Epoch timestamp at the time the emission was calculated\n * @param {Object} existingDoc The most recent taskDocument with the same emission id\n\n * @returns {Object} result\n * @returns {Object} result.taskDoc The result of the transformation\n * @returns {Boolean} result.isUpdated True if the document is new or has been altered\n */\nmodule.exports = (taskEmission, calculatedAt, userSettingsId, existingDoc) => {\n const emittedState = TaskStates.calculateState(taskEmission, calculatedAt);\n const baseFromExistingDoc = !!existingDoc &&\n (!TaskStates.isTerminal(existingDoc.state) || existingDoc.state === emittedState);\n\n // reduce document churn - don't tweak data on existing docs in terminal states\n const baselineStateOfExistingDoc = baseFromExistingDoc &&\n !TaskStates.isTerminal(existingDoc.state) &&\n JSON.stringify(existingDoc);\n const taskDoc = baseFromExistingDoc ? existingDoc : newTaskDoc(taskEmission, userSettingsId, calculatedAt);\n taskDoc.user = userSettingsId;\n taskDoc.requester = taskEmission.doc && taskEmission.doc.contact && taskEmission.doc.contact._id;\n taskDoc.owner = taskEmission.contact && taskEmission.contact._id;\n minifyEmission(taskDoc, taskEmission);\n TaskStates.setStateOnTaskDoc(taskDoc, emittedState, calculatedAt);\n\n const isUpdated = (() => {\n if (!baseFromExistingDoc) {\n // do not create new documents where the initial state is cancelled (invalid emission)\n return taskDoc.state !== TaskStates.Cancelled;\n }\n\n return baselineStateOfExistingDoc && JSON.stringify(taskDoc) !== baselineStateOfExistingDoc;\n })();\n\n return {\n isUpdated,\n taskDoc,\n };\n};\n\nconst minifyEmission = (taskDoc, emission) => {\n const minified = ['_id', 'title', 'icon', 'deleted', 'resolved', 'actions', 'priority', 'priorityLabel' ]\n .reduce((agg, attr) => {\n if (Object.hasOwnProperty.call(emission, attr)) {\n agg[attr] = emission[attr];\n }\n return agg;\n }, {});\n\n /*\n The declarative configuration \"contactLabel\" results in a task emission with a contact with only a name attribute.\n For backward compatibility, contacts which don't provide an id should not be minified and rehydrated.\n */\n if (emission.contact) {\n minified.contact = { name: emission.contact.name };\n }\n\n if (emission.date || emission.dueDate) {\n const timeWindow = TaskStates.getDisplayWindow(emission);\n Object.assign(minified, timeWindow);\n }\n minified.actions && minified.actions\n .filter(action => action && action.content)\n .forEach(action => {\n if (!minified.forId) {\n minified.forId = action.content.contact && action.content.contact._id;\n }\n delete action.content.contact;\n });\n\n taskDoc.emission = minified;\n return taskDoc;\n};\n\nconst newTaskDoc = (emission, userSettingsId, calculatedAt) => ({\n _id: `task~${userSettingsId}~${emission._id}~${calculatedAt}`,\n type: 'task',\n authoredOn: calculatedAt,\n stateHistory: [],\n});\n","/**\n * @module update-temporal-states\n * As time elapses, documents change state because the timing window has been reached.\n * Eg. Documents with state Draft move to state Ready just because it is now after midnight\n */\nconst TaskStates = require('./task-states');\n\n/**\n * @param {Object[]} taskDocs A list of task documents to evaluate\n * @param {int} timestamp=Date.now() Epoch timestamp to use when evaluating the current state of the task documents\n */\nmodule.exports = (taskDocs, timestamp = Date.now()) => {\n const docsToCommit = [];\n for (const taskDoc of taskDocs) {\n let updatedState = TaskStates.calculateState(taskDoc.emission, timestamp);\n if (taskDoc.authoredOn > timestamp) {\n updatedState = TaskStates.Cancelled;\n }\n\n if (!TaskStates.isTerminal(taskDoc.state) && taskDoc.state !== updatedState) {\n TaskStates.setStateOnTaskDoc(taskDoc, updatedState, timestamp);\n docsToCommit.push(taskDoc);\n }\n }\n\n return docsToCommit;\n};\n","module.exports = {\n ddocs: require('../../build/cht-core-4-6-ddocs.json'),\n RegistrationUtils: require('../../build/cht-core-4-6/shared-libs/registration-utils'),\n CalendarInterval: require('../../build/cht-core-4-6/shared-libs/calendar-interval'),\n RulesEngineCore: require('../../build/cht-core-4-6/shared-libs/rules-engine'),\n RulesEmitter: require('../../build/cht-core-4-6/shared-libs/rules-engine/src/rules-emitter'),\n nootils: require('../../build/cht-core-4-6/node_modules/cht-nootils'),\n Lineage: require('../../build/cht-core-4-6/shared-libs/lineage'),\n ChtScriptApi: require('../../build/cht-core-4-6/shared-libs/cht-script-api'),\n convertFormXmlToXFormModel: require('../../build/cht-core-4-6/api/src/services/generate-xform.js').generate,\n};\n","const path = require('path');\n\nmodule.exports = {\n FORM_STYLESHEET: path.join(__dirname, '../dist/cht-core-4-6/xsl/openrosa2html5form.xsl'),\n MODEL_STYLESHEET: path.join(__dirname, '../dist/cht-core-4-6/enketo-transformer/xsl/openrosa2xmlmodel.xsl'),\n};\n","module.exports = require(\"buffer\");;","module.exports = require(\"child_process\");;","module.exports = require(\"events\");;","module.exports = require(\"fs\");;","module.exports = require(\"http\");;","module.exports = require(\"https\");;","module.exports = require(\"net\");;","module.exports = require(\"os\");;","module.exports = require(\"path\");;","module.exports = require(\"stream\");;","module.exports = require(\"string_decoder\");;","module.exports = require(\"tty\");;","module.exports = require(\"util\");;","module.exports = require(\"zlib\");;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the module cache\n__webpack_require__.c = __webpack_module_cache__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// module cache are used so entry inlining is disabled\n// startup\n// Load entry module and return exports\nvar __webpack_exports__ = __webpack_require__(__webpack_require__.s = \"./cht-bundles/cht-core-4-6/bundle.js\");\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/cht-core-4-6/cht-form.js b/dist/cht-core-4-6/cht-form.js new file mode 100644 index 00000000..f8fbc231 --- /dev/null +++ b/dist/cht-core-4-6/cht-form.js @@ -0,0 +1,805 @@ +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ 212: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +module.exports = __webpack_require__.p + "fontawesome-webfont.eot"; + +/***/ }), + +/***/ 556: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +module.exports = __webpack_require__.p + "fontawesome-webfont.svg"; + +/***/ }), + +/***/ 882: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +module.exports = __webpack_require__.p + "fontawesome-webfont.ttf"; + +/***/ }), + +/***/ 553: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +module.exports = __webpack_require__.p + "fontawesome-webfont.woff"; + +/***/ }), + +/***/ 808: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +module.exports = __webpack_require__.p + "fontawesome-webfont.woff2"; + +/***/ }), + +/***/ 460: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +module.exports = __webpack_require__.p + "NotoSans-Bold.ttf"; + +/***/ }), + +/***/ 259: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +module.exports = __webpack_require__.p + "NotoSans-Regular.ttf"; + +/***/ }), + +/***/ 781: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +module.exports = __webpack_require__.p + "enketo-icons-v2.svg"; + +/***/ }), + +/***/ 609: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +module.exports = __webpack_require__.p + "enketo-icons-v2.ttf"; + +/***/ }), + +/***/ 437: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +module.exports = __webpack_require__.p + "enketo-icons-v2.woff"; + +/***/ }), + +/***/ 503: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +module.exports = __webpack_require__.p + "glyphicons-halflings-regular.eot"; + +/***/ }), + +/***/ 817: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +module.exports = __webpack_require__.p + "glyphicons-halflings-regular.svg"; + +/***/ }), + +/***/ 631: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +module.exports = __webpack_require__.p + "glyphicons-halflings-regular.ttf"; + +/***/ }), + +/***/ 226: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +module.exports = __webpack_require__.p + "glyphicons-halflings-regular.woff"; + +/***/ }), + +/***/ 723: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +module.exports = __webpack_require__.p + "glyphicons-halflings-regular.woff2"; + +/***/ }), + +/***/ 696: +/***/ ((module, exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +(self.webpackChunkcht_form=self.webpackChunkcht_form||[]).push([[179],{3078:(o,l,p)=>{"use strict";function w(t){return"function"==typeof t}function m(t){const r=t(i=>{Error.call(i),i.stack=(new Error).stack});return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}const T=m(t=>function(r){t(this),this.message=r?`${r.length} errors occurred during unsubscription:\n${r.map((i,s)=>`${s+1}) ${i.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=r});function M(t,n){if(t){const r=t.indexOf(n);0<=r&&t.splice(r,1)}}class q{constructor(n){this.initialTeardown=n,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let n;if(!this.closed){this.closed=!0;const{_parentage:r}=this;if(r)if(this._parentage=null,Array.isArray(r))for(const h of r)h.remove(this);else r.remove(this);const{initialTeardown:i}=this;if(w(i))try{i()}catch(h){n=h instanceof T?h.errors:[h]}const{_finalizers:s}=this;if(s){this._finalizers=null;for(const h of s)try{z(h)}catch(y){n=n??[],y instanceof T?n=[...n,...y.errors]:n.push(y)}}if(n)throw new T(n)}}add(n){var r;if(n&&n!==this)if(this.closed)z(n);else{if(n instanceof q){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._finalizers=null!==(r=this._finalizers)&&void 0!==r?r:[]).push(n)}}_hasParent(n){const{_parentage:r}=this;return r===n||Array.isArray(r)&&r.includes(n)}_addParent(n){const{_parentage:r}=this;this._parentage=Array.isArray(r)?(r.push(n),r):r?[r,n]:n}_removeParent(n){const{_parentage:r}=this;r===n?this._parentage=null:Array.isArray(r)&&M(r,n)}remove(n){const{_finalizers:r}=this;r&&M(r,n),n instanceof q&&n._removeParent(this)}}q.EMPTY=(()=>{const t=new q;return t.closed=!0,t})();const ee=q.EMPTY;function V(t){return t instanceof q||t&&"closed"in t&&w(t.remove)&&w(t.add)&&w(t.unsubscribe)}function z(t){w(t)?t():t.unsubscribe()}const F={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},G={setTimeout(t,n,...r){const{delegate:i}=G;return null!=i&&i.setTimeout?i.setTimeout(t,n,...r):setTimeout(t,n,...r)},clearTimeout(t){const{delegate:n}=G;return((null==n?void 0:n.clearTimeout)||clearTimeout)(t)},delegate:void 0};function j(t){G.setTimeout(()=>{const{onUnhandledError:n}=F;if(!n)throw t;n(t)})}function O(){}const x=Q("C",void 0,void 0);function Q(t,n,r){return{kind:t,value:n,error:r}}let se=null;function me(t){if(F.useDeprecatedSynchronousErrorHandling){const n=!se;if(n&&(se={errorThrown:!1,error:null}),t(),n){const{errorThrown:r,error:i}=se;if(se=null,r)throw i}}else t()}class Pe extends q{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,V(n)&&n.add(this)):this.destination=Ve}static create(n,r,i){return new ye(n,r,i)}next(n){this.isStopped?ze(function Y(t){return Q("N",t,void 0)}(n),this):this._next(n)}error(n){this.isStopped?ze(function U(t){return Q("E",void 0,t)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?ze(x,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(n){this.destination.next(n)}_error(n){try{this.destination.error(n)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const Se=Function.prototype.bind;function re(t,n){return Se.call(t,n)}class C{constructor(n){this.partialObserver=n}next(n){const{partialObserver:r}=this;if(r.next)try{r.next(n)}catch(i){Te(i)}}error(n){const{partialObserver:r}=this;if(r.error)try{r.error(n)}catch(i){Te(i)}else Te(n)}complete(){const{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(r){Te(r)}}}class ye extends Pe{constructor(n,r,i){let s;if(super(),w(n)||!n)s={next:n??void 0,error:r??void 0,complete:i??void 0};else{let h;this&&F.useDeprecatedNextContext?(h=Object.create(n),h.unsubscribe=()=>this.unsubscribe(),s={next:n.next&&re(n.next,h),error:n.error&&re(n.error,h),complete:n.complete&&re(n.complete,h)}):s=n}this.destination=new C(s)}}function Te(t){F.useDeprecatedSynchronousErrorHandling?function Ae(t){F.useDeprecatedSynchronousErrorHandling&&se&&(se.errorThrown=!0,se.error=t)}(t):j(t)}function ze(t,n){const{onStoppedNotification:r}=F;r&&G.setTimeout(()=>r(t,n))}const Ve={closed:!0,next:O,error:function Re(t){throw t},complete:O},dt="function"==typeof Symbol&&Symbol.observable||"@@observable";function xt(t){return t}let Ee=(()=>{class t{constructor(r){r&&(this._subscribe=r)}lift(r){const i=new t;return i.source=this,i.operator=r,i}subscribe(r,i,s){const h=function Ge(t){return t&&t instanceof Pe||function Be(t){return t&&w(t.next)&&w(t.error)&&w(t.complete)}(t)&&V(t)}(r)?r:new ye(r,i,s);return me(()=>{const{operator:y,source:S}=this;h.add(y?y.call(h,S):S?this._subscribe(h):this._trySubscribe(h))}),h}_trySubscribe(r){try{return this._subscribe(r)}catch(i){r.error(i)}}forEach(r,i){return new(i=Ce(i))((s,h)=>{const y=new ye({next:S=>{try{r(S)}catch(N){h(N),y.unsubscribe()}},error:h,complete:s});this.subscribe(y)})}_subscribe(r){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(r)}[dt](){return this}pipe(...r){return function le(t){return 0===t.length?xt:1===t.length?t[0]:function(r){return t.reduce((i,s)=>s(i),r)}}(r)(this)}toPromise(r){return new(r=Ce(r))((i,s)=>{let h;this.subscribe(y=>h=y,y=>s(y),()=>i(h))})}}return t.create=n=>new t(n),t})();function Ce(t){var n;return null!==(n=t??F.Promise)&&void 0!==n?n:Promise}const Tt=m(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let it=(()=>{class t extends Ee{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(r){const i=new De(this,this);return i.operator=r,i}_throwIfClosed(){if(this.closed)throw new Tt}next(r){me(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(r)}})}error(r){me(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=r;const{observers:i}=this;for(;i.length;)i.shift().error(r)}})}complete(){me(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:r}=this;for(;r.length;)r.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var r;return(null===(r=this.observers)||void 0===r?void 0:r.length)>0}_trySubscribe(r){return this._throwIfClosed(),super._trySubscribe(r)}_subscribe(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)}_innerSubscribe(r){const{hasError:i,isStopped:s,observers:h}=this;return i||s?ee:(this.currentObservers=null,h.push(r),new q(()=>{this.currentObservers=null,M(h,r)}))}_checkFinalizedStatuses(r){const{hasError:i,thrownError:s,isStopped:h}=this;i?r.error(s):h&&r.complete()}asObservable(){const r=new Ee;return r.source=this,r}}return t.create=(n,r)=>new De(n,r),t})();class De extends it{constructor(n,r){super(),this.destination=n,this.source=r}next(n){var r,i;null===(i=null===(r=this.destination)||void 0===r?void 0:r.next)||void 0===i||i.call(r,n)}error(n){var r,i;null===(i=null===(r=this.destination)||void 0===r?void 0:r.error)||void 0===i||i.call(r,n)}complete(){var n,r;null===(r=null===(n=this.destination)||void 0===n?void 0:n.complete)||void 0===r||r.call(n)}_subscribe(n){var r,i;return null!==(i=null===(r=this.source)||void 0===r?void 0:r.subscribe(n))&&void 0!==i?i:ee}}function ke(t){return n=>{if(function be(t){return w(null==t?void 0:t.lift)}(n))return n.lift(function(r){try{return t(r,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function Je(t,n,r,i,s){return new Rt(t,n,r,i,s)}class Rt extends Pe{constructor(n,r,i,s,h,y){super(n),this.onFinalize=h,this.shouldUnsubscribe=y,this._next=r?function(S){try{r(S)}catch(N){n.error(N)}}:super._next,this._error=s?function(S){try{s(S)}catch(N){n.error(N)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(S){n.error(S)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:r}=this;super.unsubscribe(),!r&&(null===(n=this.onFinalize)||void 0===n||n.call(this))}}}function $t(t,n){return ke((r,i)=>{let s=0;r.subscribe(Je(i,h=>{i.next(t.call(n,h,s++))}))})}function kr(t){return this instanceof kr?(this.v=t,this):new kr(t)}function Oo(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,n=t[Symbol.asyncIterator];return n?n.call(t):(t=function gn(t){var n="function"==typeof Symbol&&Symbol.iterator,r=n&&t[n],i=0;if(r)return r.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&i>=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(t),r={},i("next"),i("throw"),i("return"),r[Symbol.asyncIterator]=function(){return this},r);function i(h){r[h]=t[h]&&function(y){return new Promise(function(S,N){!function s(h,y,S,N){Promise.resolve(N).then(function(H){h({value:H,done:S})},y)}(S,N,(y=t[h](y)).done,y.value)})}}}const Le=t=>t&&"number"==typeof t.length&&"function"!=typeof t;function We(t){return w(null==t?void 0:t.then)}function Qe(t){return w(t[dt])}function Et(t){return Symbol.asyncIterator&&w(null==t?void 0:t[Symbol.asyncIterator])}function ht(t){return new TypeError(`You provided ${null!==t&&"object"==typeof t?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const nn=function Mt(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function rn(t){return w(null==t?void 0:t[nn])}function hn(t){return function Xi(t,n,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var s,i=r.apply(t,n||[]),h=[];return s={},y("next"),y("throw"),y("return"),s[Symbol.asyncIterator]=function(){return this},s;function y($e){i[$e]&&(s[$e]=function(Ue){return new Promise(function(Xe,ut){h.push([$e,Ue,Xe,ut])>1||S($e,Ue)})})}function S($e,Ue){try{!function N($e){$e.value instanceof kr?Promise.resolve($e.value.v).then(H,ne):ce(h[0][2],$e)}(i[$e](Ue))}catch(Xe){ce(h[0][3],Xe)}}function H($e){S("next",$e)}function ne($e){S("throw",$e)}function ce($e,Ue){$e(Ue),h.shift(),h.length&&S(h[0][0],h[0][1])}}(this,arguments,function*(){const r=t.getReader();try{for(;;){const{value:i,done:s}=yield kr(r.read());if(s)return yield kr(void 0);yield yield kr(i)}}finally{r.releaseLock()}})}function Dn(t){return w(null==t?void 0:t.getReader)}function yn(t){if(t instanceof Ee)return t;if(null!=t){if(Qe(t))return function Ct(t){return new Ee(n=>{const r=t[dt]();if(w(r.subscribe))return r.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(t);if(Le(t))return function Ht(t){return new Ee(n=>{for(let r=0;r{t.then(r=>{n.closed||(n.next(r),n.complete())},r=>n.error(r)).then(null,j)})}(t);if(Et(t))return Xr(t);if(rn(t))return function mt(t){return new Ee(n=>{for(const r of t)if(n.next(r),n.closed)return;n.complete()})}(t);if(Dn(t))return function Tn(t){return Xr(hn(t))}(t)}throw ht(t)}function Xr(t){return new Ee(n=>{(function Fr(t,n){var r,i,s,h;return function Ot(t,n,r,i){return new(r||(r=Promise))(function(h,y){function S(ne){try{H(i.next(ne))}catch(ce){y(ce)}}function N(ne){try{H(i.throw(ne))}catch(ce){y(ce)}}function H(ne){ne.done?h(ne.value):function s(h){return h instanceof r?h:new r(function(y){y(h)})}(ne.value).then(S,N)}H((i=i.apply(t,n||[])).next())})}(this,void 0,void 0,function*(){try{for(r=Oo(t);!(i=yield r.next()).done;)if(n.next(i.value),n.closed)return}catch(y){s={error:y}}finally{try{i&&!i.done&&(h=r.return)&&(yield h.call(r))}finally{if(s)throw s.error}}n.complete()})})(t,n).catch(r=>n.error(r))})}function dr(t,n,r,i=0,s=!1){const h=n.schedule(function(){r(),s?t.add(this.schedule(null,i)):this.unsubscribe()},i);if(t.add(h),!s)return h}function Ur(t,n,r=1/0){return w(n)?Ur((i,s)=>$t((h,y)=>n(i,h,s,y))(yn(t(i,s))),r):("number"==typeof n&&(r=n),ke((i,s)=>function Xn(t,n,r,i,s,h,y,S){const N=[];let H=0,ne=0,ce=!1;const $e=()=>{ce&&!N.length&&!H&&n.complete()},Ue=ut=>H{h&&n.next(ut),H++;let Lt=!1;yn(r(ut,ne++)).subscribe(Je(n,vt=>{null==s||s(vt),h?Ue(vt):n.next(vt)},()=>{Lt=!0},void 0,()=>{if(Lt)try{for(H--;N.length&&HXe(vt)):Xe(vt)}$e()}catch(vt){n.error(vt)}}))};return t.subscribe(Je(n,Ue,()=>{ce=!0,$e()})),()=>{null==S||S()}}(i,s,t,r)))}function Hn(t=1/0){return Ur(xt,t)}const Wn=new Ee(t=>t.complete());function Qi(t){return t[t.length-1]}function Pi(t){return function ci(t){return t&&w(t.schedule)}(Qi(t))?t.pop():void 0}function Jr(t,n=0){return ke((r,i)=>{r.subscribe(Je(i,s=>dr(i,t,()=>i.next(s),n),()=>dr(i,t,()=>i.complete(),n),s=>dr(i,t,()=>i.error(s),n)))})}function sn(t,n=0){return ke((r,i)=>{i.add(t.schedule(()=>r.subscribe(i),n))})}function wo(t,n){if(!t)throw new Error("Iterable cannot be null");return new Ee(r=>{dr(r,n,()=>{const i=t[Symbol.asyncIterator]();dr(r,n,()=>{i.next().then(s=>{s.done?r.complete():r.next(s.value)})},0,!0)})})}function er(t,n){return n?function $n(t,n){if(null!=t){if(Qe(t))return function bn(t,n){return yn(t).pipe(sn(n),Jr(n))}(t,n);if(Le(t))return function Rn(t,n){return new Ee(r=>{let i=0;return n.schedule(function(){i===t.length?r.complete():(r.next(t[i++]),r.closed||this.schedule())})})}(t,n);if(We(t))return function tn(t,n){return yn(t).pipe(sn(n),Jr(n))}(t,n);if(Et(t))return wo(t,n);if(rn(t))return function rs(t,n){return new Ee(r=>{let i;return dr(r,n,()=>{i=t[nn](),dr(r,n,()=>{let s,h;try{({value:s,done:h}=i.next())}catch(y){return void r.error(y)}h?r.complete():r.next(s)},0,!0)}),()=>w(null==i?void 0:i.return)&&i.return()})}(t,n);if(Dn(t))return function mo(t,n){return wo(hn(t),n)}(t,n)}throw ht(t)}(t,n):yn(t)}function Ii(...t){const n=Pi(t),r=function bt(t,n){return"number"==typeof Qi(t)?t.pop():n}(t,1/0),i=t;return i.length?1===i.length?yn(i[0]):Hn(r)(er(i,n)):Wn}class eo extends it{constructor(n){super(),this._value=n}get value(){return this.getValue()}_subscribe(n){const r=super._subscribe(n);return!r.closed&&n.next(this._value),r}getValue(){const{hasError:n,thrownError:r,_value:i}=this;if(n)throw r;return this._throwIfClosed(),i}next(n){super.next(this._value=n)}}function rt(...t){return er(t,Pi(t))}function Pt(t={}){const{connector:n=(()=>new it),resetOnError:r=!0,resetOnComplete:i=!0,resetOnRefCountZero:s=!0}=t;return h=>{let y,S,N,H=0,ne=!1,ce=!1;const $e=()=>{null==S||S.unsubscribe(),S=void 0},Ue=()=>{$e(),y=N=void 0,ne=ce=!1},Xe=()=>{const ut=y;Ue(),null==ut||ut.unsubscribe()};return ke((ut,Lt)=>{H++,!ce&&!ne&&$e();const vt=N=N??n();Lt.add(()=>{H--,0===H&&!ce&&!ne&&(S=_t(Xe,s))}),vt.subscribe(Lt),!y&&H>0&&(y=new ye({next:et=>vt.next(et),error:et=>{ce=!0,$e(),S=_t(Ue,r,et),vt.error(et)},complete:()=>{ne=!0,$e(),S=_t(Ue,i),vt.complete()}}),yn(ut).subscribe(y))})(h)}}function _t(t,n,...r){if(!0===n)return void t();if(!1===n)return;const i=new ye({next:()=>{i.unsubscribe(),t()}});return yn(n(...r)).subscribe(i)}function Yt(t,n){return ke((r,i)=>{let s=null,h=0,y=!1;const S=()=>y&&!s&&i.complete();r.subscribe(Je(i,N=>{null==s||s.unsubscribe();let H=0;const ne=h++;yn(t(N,ne)).subscribe(s=Je(i,ce=>i.next(n?n(N,ce,ne,H++):ce),()=>{s=null,S()}))},()=>{y=!0,S()}))})}function ii(t,n){return t===n}function Fn(t){for(let n in t)if(t[n]===Fn)return n;throw Error("Could not find renamed property on target object.")}function Lr(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(Lr).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const n=t.toString();if(null==n)return""+n;const r=n.indexOf("\n");return-1===r?n:n.substring(0,r)}function Ai(t,n){return null==t||""===t?null===n?"":n:null==n||""===n?t:t+" "+n}const Qr=Fn({__forward_ref__:Fn});function to(t){return t.__forward_ref__=to,t.toString=function(){return Lr(this())},t}function on(t){return no(t)?t():t}function no(t){return"function"==typeof t&&t.hasOwnProperty(Qr)&&t.__forward_ref__===to}function is(t){return t&&!!t.\u0275providers}class Xt extends Error{constructor(n,r){super(function _o(t,n){return`NG0${Math.abs(t)}${n?": "+n:""}`}(n,r)),this.code=n}}function Nn(t){return"string"==typeof t?t:null==t?"":String(t)}function ha(t,n){throw new Xt(-201,!1)}function Hi(t,n){null==t&&function _n(t,n,r,i){throw new Error(`ASSERTION ERROR: ${t}`+(null==i?"":` [Expected=> ${r} ${i} ${n} <=Actual]`))}(n,t,null,"!=")}function En(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function Uo(t){return{providers:t.providers||[],imports:t.imports||[]}}function Vi(t){return js(t,W)||js(t,ue)}function js(t,n){return t.hasOwnProperty(n)?t[n]:null}function P(t){return t&&(t.hasOwnProperty(X)||t.hasOwnProperty(fe))?t[X]:null}const W=Fn({\u0275prov:Fn}),X=Fn({\u0275inj:Fn}),ue=Fn({ngInjectableDef:Fn}),fe=Fn({ngInjectorDef:Fn});var ge=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}(ge||{});let xe;function Ye(t){const n=xe;return xe=t,n}function ot(t,n,r){const i=Vi(t);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:r&ge.Optional?null:void 0!==n?n:void ha(Lr(t))}const qe=globalThis,Zo={},oi="__NG_DI_FLAG__",ei="ngTempTokenPath",xi=/\n/gm,Oi="__source";let $i;function zi(t){const n=$i;return $i=t,n}function zs(t,n=ge.Default){if(void 0===$i)throw new Xt(-203,!1);return null===$i?ot(t,void 0,n):$i.get(t,n&ge.Optional?null:void 0,n)}function Ut(t,n=ge.Default){return(function Oe(){return xe}()||zs)(on(t),n)}function br(t,n=ge.Default){return Ut(t,ss(n))}function ss(t){return typeof t>"u"||"number"==typeof t?t:0|(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function cr(t){const n=[];for(let r=0;rn){y=h-1;break}}}for(;hh?"":s[ce+1].toLowerCase();const Ue=8&i?$e:null;if(Ue&&-1!==oo(Ue,H,0)||2&i&&H!==$e){if(ho(i))return!1;y=!0}}}}else{if(!y&&!ho(i)&&!ho(N))return!1;if(y&&ho(N))continue;y=!1,i=N|1&i}}return ho(i)||y}function ho(t){return 0==(1&t)}function $o(t,n,r,i){if(null===n)return-1;let s=0;if(i||!r){let h=!1;for(;s-1)for(r++;r0?'="'+S+'"':"")+"]"}else 8&i?s+="."+y:4&i&&(s+=" "+y);else""!==s&&!ho(y)&&(n+=fo(h,s),s=""),i=y,h=h||!ho(i);r++}return""!==s&&(n+=fo(h,s)),n}function za(t){return To(()=>{const n=Sr(t),r={...n,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===as.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&t.dependencies||null,getStandaloneInjector:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||yi.Emulated,styles:t.styles||hr,_:null,schemas:t.schemas||null,tView:null,id:""};pn(r);const i=t.dependencies;return r.directiveDefs=Yr(i,!1),r.pipeDefs=Yr(i,!0),r.id=function so(t){let n=0;const r=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,t.consts,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery].join("|");for(const s of r)n=Math.imul(31,n)+s.charCodeAt(0)<<0;return n+=2147483648,"c"+n}(r),r})}function Fe(t){return Dt(t)||Qt(t)}function je(t){return null!==t}function gt(t){return To(()=>({type:t.type,bootstrap:t.bootstrap||hr,declarations:t.declarations||hr,imports:t.imports||hr,exports:t.exports||hr,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function wt(t,n){if(null==t)return Ci;const r={};for(const i in t)if(t.hasOwnProperty(i)){let s=t[i],h=s;Array.isArray(s)&&(h=s[1],s=s[0]),r[s]=i,n&&(n[s]=h)}return r}function St(t){return To(()=>{const n=Sr(t);return pn(n),n})}function kt(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:!0===t.standalone,onDestroy:t.type.prototype.ngOnDestroy||null}}function Dt(t){return t[Gs]||null}function Qt(t){return t[co]||null}function en(t){return t[bs]||null}function Sr(t){const n={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:n,inputTransforms:null,inputConfig:t.inputs||Ci,exportAs:t.exportAs||null,standalone:!0===t.standalone,signals:!0===t.signals,selectors:t.selectors||hr,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:wt(t.inputs,n),outputs:wt(t.outputs)}}function pn(t){var n;null==(n=t.features)||n.forEach(r=>r(t))}function Yr(t,n){if(!t)return null;const r=n?en:Fe;return()=>("function"==typeof t?t():t).map(i=>r(i)).filter(je)}const xn=0,jt=1,Mn=2,or=3,Co=4,va=5,Fi=6,ws=7,ai=8,u=9,_=10,D=11,R=12,ie=13,_e=14,Ie=15,tt=16,at=17,Nt=18,Kt=19,Pn=20,Vn=21,ti=22,ui=23,Yi=24,Ln=25,pu=1,Mu=2,Xo=7,Zs=9,gr=11;function po(t){return Array.isArray(t)&&"object"==typeof t[pu]}function ao(t){return Array.isArray(t)&&!0===t[pu]}function mu(t){return 0!=(4&t.flags)}function ds(t){return t.componentOffset>-1}function As(t){return 1==(1&t.flags)}function Vo(t){return!!t.template}function cl(t){return 0!=(512&t[Mn])}function Ar(t,n){return t.hasOwnProperty(Ni)?t[Ni]:null}let pt=null,Jo=!1;function Jn(t){const n=pt;return pt=t,n}const No={version:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{}};function gd(t){if(!Ga(t)||t.dirty){if(!t.producerMustRecompute(t)&&!_d(t))return void(t.dirty=!1);t.producerRecomputeValue(t),t.dirty=!1}}function Ss(t){var n;t.dirty=!0,function md(t){if(void 0===t.liveConsumerNode)return;const n=Jo;Jo=!0;try{for(const r of t.liveConsumerNode)r.dirty||Ss(r)}finally{Jo=n}}(t),null==(n=t.consumerMarkedDirty)||n.call(t,t)}function Pu(t){return t&&(t.nextProducerIndex=0),Jn(t)}function _u(t,n){if(Jn(n),t&&void 0!==t.producerNode&&void 0!==t.producerIndexOfThis&&void 0!==t.producerLastReadVersion){if(Ga(t))for(let r=t.nextProducerIndex;r0}function Ks(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}let bd=null;const Sd=()=>{},Jc={...No,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:t=>{t.schedule(t.ref)},hasRun:!1,cleanupFn:Sd};class Sa{constructor(n,r,i){this.previousValue=n,this.currentValue=r,this.firstChange=i}isFirstChange(){return this.firstChange}}function Dd(t){return t.type.prototype.ngOnChanges&&(t.setInput=eh),Qc}function Qc(){const t=xu(this),n=null==t?void 0:t.current;if(n){const r=t.previous;if(r===Ci)t.previous=n;else for(let i in n)r[i]=n[i];t.current=null,this.ngOnChanges(n)}}function eh(t,n,r,i){const s=this.declaredInputs[r],h=xu(t)||function Wa(t,n){return t[Td]=n}(t,{previous:Ci,current:null}),y=h.current||(h.current={}),S=h.previous,N=S[s];y[s]=new Sa(N&&N.currentValue,n,S===Ci),t[i]=n}const Td="__ngSimpleChanges__";function xu(t){return t[Td]||null}const E=function(t,n,r){};function ae(t){for(;Array.isArray(t);)t=t[xn];return t}function ct(t,n){return ae(n[t.index])}function mr(t,n){return t.data[n]}function vi(t,n){const r=n[t];return po(r)?r:r[xn]}function Za(t,n){return null==n?null:t[n]}function mp(t){t[at]=0}function p0(t){1024&t[Mn]||(t[Mn]|=1024,yp(t,1))}function _p(t){1024&t[Mn]&&(t[Mn]&=-1025,yp(t,-1))}function yp(t,n){let r=t[or];if(null===r)return;r[va]+=n;let i=r;for(r=r[or];null!==r&&(1===n&&1===i[va]||-1===n&&0===i[va]);)r[va]+=n,i=r,r=r[or]}const Yn={lFrame:Mp(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function Ep(){return Yn.bindingsEnabled}function It(){return Yn.lFrame.lView}function Nr(){return Yn.lFrame.tView}function vo(){let t=wp();for(;null!==t&&64===t.type;)t=t.parent;return t}function wp(){return Yn.lFrame.currentTNode}function ea(t,n){const r=Yn.lFrame;r.currentTNode=t,r.isParent=n}function th(){return Yn.lFrame.isParent}function Ru(){return Yn.lFrame.bindingIndex++}function N0(t,n){const r=Yn.lFrame;r.bindingIndex=r.bindingRootIndex=t,rh(n)}function rh(t){Yn.lFrame.currentDirectiveIndex=t}function oh(t){Yn.lFrame.currentQueryIndex=t}function P0(t){const n=t[jt];return 2===n.type?n.declTNode:1===n.type?t[Fi]:null}function Cp(t,n,r){if(r&ge.SkipSelf){let s=n,h=t;for(;!(s=s.parent,null!==s||r&ge.Host||(s=P0(h),null===s||(h=h[_e],10&s.type))););if(null===s)return!1;n=s,t=h}const i=Yn.lFrame=Np();return i.currentTNode=n,i.lView=t,!0}function sh(t){const n=Np(),r=t[jt];Yn.lFrame=n,n.currentTNode=r.firstChild,n.lView=t,n.tView=r,n.contextLView=t,n.bindingIndex=r.bindingStartIndex,n.inI18n=!1}function Np(){const t=Yn.lFrame,n=null===t?null:t.child;return null===n?Mp(t):n}function Mp(t){const n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=n),n}function Pp(){const t=Yn.lFrame;return Yn.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const Lp=Pp;function ah(){const t=Pp();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function zo(){return Yn.lFrame.selectedIndex}function vu(t){Yn.lFrame.selectedIndex=t}function Mi(){const t=Yn.lFrame;return mr(t.tView,t.selectedIndex)}let Ip=!0;function $d(){return Ip}function qa(t){Ip=t}function Cd(t,n){for(let r=n.directiveStart,i=n.directiveEnd;r=i)break}else n[N]<0&&(t[at]+=65536),(S>13>16&&(3&t[Mn])===n&&(t[Mn]+=8192,Op(S,h)):Op(S,h)}const ku=-1;class bl{constructor(n,r,i){this.factory=n,this.resolving=!1,this.canSeeViewProviders=r,this.injectImpl=i}}function dh(t){return t!==ku}function El(t){return 32767&t}function wl(t,n){let r=function V0(t){return t>>16}(t),i=n;for(;r>0;)i=i[_e],r--;return i}let ch=!0;function Pd(t){const n=ch;return ch=t,n}const Rp=255,kp=5;let j0=0;const ta={};function Ld(t,n){const r=Fp(t,n);if(-1!==r)return r;const i=n[jt];i.firstCreatePass&&(t.injectorIndex=n.length,hh(i.data,t),hh(n,null),hh(i.blueprint,null));const s=Ad(t,n),h=t.injectorIndex;if(dh(s)){const y=El(s),S=wl(s,n),N=S[jt].data;for(let H=0;H<8;H++)n[h+H]=S[y+H]|N[y+H]}return n[h+8]=s,h}function hh(t,n){t.push(0,0,0,0,0,0,0,0,n)}function Fp(t,n){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===n[t.injectorIndex+8]?-1:t.injectorIndex}function Ad(t,n){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let r=0,i=null,s=n;for(;null!==s;){if(i=Gp(s),null===i)return ku;if(r++,s=s[_e],-1!==i.injectorIndex)return i.injectorIndex|r<<16}return ku}function fh(t,n,r){!function z0(t,n,r){let i;"string"==typeof r?i=r.charCodeAt(0)||0:r.hasOwnProperty(fi)&&(i=r[fi]),null==i&&(i=r[fi]=j0++);const s=i&Rp;n.data[t+(s>>kp)]|=1<=0?n&Rp:q0:n}(r);if("function"==typeof h){if(!Cp(n,t,i))return i&ge.Host?Up(s,0,i):Bp(n,r,i,s);try{let y;if(y=h(i),null!=y||i&ge.Optional)return y;ha()}finally{Lp()}}else if("number"==typeof h){let y=null,S=Fp(t,n),N=ku,H=i&ge.Host?n[Ie][Fi]:null;for((-1===S||i&ge.SkipSelf)&&(N=-1===S?Ad(t,n):n[S+8],N!==ku&&zp(i,!1)?(y=n[jt],S=El(N),n=wl(N,n)):S=-1);-1!==S;){const ne=n[jt];if(jp(h,S,ne.data)){const ce=W0(S,n,r,y,i,H);if(ce!==ta)return ce}N=n[S+8],N!==ku&&zp(i,n[jt].data[S+8]===H)&&jp(h,S,n)?(y=ne,S=El(N),n=wl(N,n)):S=-1}}return s}function W0(t,n,r,i,s,h){const y=n[jt],S=y.data[t+8],ne=function Id(t,n,r,i,s){const h=t.providerIndexes,y=n.data,S=1048575&h,N=t.directiveStart,ne=h>>20,$e=s?S+ne:t.directiveEnd;for(let Ue=i?S:S+ne;Ue<$e;Ue++){const Xe=y[Ue];if(Ue=N&&Xe.type===r)return Ue}if(s){const Ue=y[N];if(Ue&&Vo(Ue)&&Ue.type===r)return N}return null}(S,y,r,null==i?ds(S)&&ch:i!=y&&0!=(3&S.type),s&ge.Host&&h===S);return null!==ne?bu(n,y,ne,S):ta}function bu(t,n,r,i){let s=t[r];const h=n.data;if(function U0(t){return t instanceof bl}(s)){const y=s;y.resolving&&function _s(t,n){const r=n?`. Dependency path: ${n.join(" > ")} > ${t}`:"";throw new Xt(-200,`Circular dependency in DI detected for ${t}${r}`)}(function fr(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():Nn(t)}(h[r]));const S=Pd(y.canSeeViewProviders);y.resolving=!0;const H=y.injectImpl?Ye(y.injectImpl):null;Cp(t,i,ge.Default);try{s=t[r]=y.factory(void 0,h,t,i),n.firstCreatePass&&r>=i.directiveStart&&function k0(t,n,r){const{ngOnChanges:i,ngOnInit:s,ngDoCheck:h}=n.type.prototype;if(i){const y=Dd(n);(r.preOrderHooks??=[]).push(t,y),(r.preOrderCheckHooks??=[]).push(t,y)}s&&(r.preOrderHooks??=[]).push(0-t,s),h&&((r.preOrderHooks??=[]).push(t,h),(r.preOrderCheckHooks??=[]).push(t,h))}(r,h[r],n)}finally{null!==H&&Ye(H),Pd(S),y.resolving=!1,Lp()}}return s}function jp(t,n,r){return!!(r[n+(t>>kp)]&1<{const n=t.prototype.constructor,r=n[Ni]||ph(n),i=Object.prototype;let s=Object.getPrototypeOf(t.prototype).constructor;for(;s&&s!==i;){const h=s[Ni]||ph(s);if(h&&h!==r)return h;s=Object.getPrototypeOf(s)}return h=>new h})}function ph(t){return no(t)?()=>{const n=ph(on(t));return n&&n()}:Ar(t)}function Gp(t){const n=t[jt],r=n.type;return 2===r?n.declTNode:1===r?t[Fi]:null}function ju(t,n){t.forEach(r=>Array.isArray(r)?ju(r,n):n(r))}function Yp(t,n,r){n>=t.length?t.push(r):t.splice(n,0,r)}function Od(t,n){return n>=t.length-1?t.pop():t.splice(n,1)[0]}function Hd(t){return 128==(128&t.flags)}var Ka=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}(Ka||{});const Dh=new Map;let S2=0;const $h="__ngContext__";function Mo(t,n){po(n)?(t[$h]=n[Kt],function T2(t){Dh.set(t[Kt],t)}(n)):t[$h]=n}let Ch;function Nh(t,n){return Ch(t,n)}function Nl(t){const n=t[or];return ao(n)?n[or]:n}function pg(t){return mg(t[R])}function gg(t){return mg(t[Co])}function mg(t){for(;null!==t&&!ao(t);)t=t[Co];return t}function Yu(t,n,r,i,s){if(null!=i){let h,y=!1;ao(i)?h=i:po(i)&&(y=!0,i=i[xn]);const S=ae(i);0===t&&null!==r?null==s?bg(n,r,S):wu(n,r,S,s||null,!0):1===t&&null!==r?wu(n,r,S,s||null,!0):2===t?function Zd(t,n,r){const i=Wd(t,n);i&&function z2(t,n,r,i){t.removeChild(n,r,i)}(t,i,n,r)}(n,S,y):3===t&&n.destroyNode(S),null!=h&&function Y2(t,n,r,i,s){const h=r[Xo];h!==ae(r)&&Yu(n,t,i,h,s);for(let S=gr;S0&&(t[r-1][Co]=i[Co]);const h=Od(t,gr+n);!function R2(t,n){Pl(t,n,n[D],2,null,null),n[xn]=null,n[Fi]=null}(i[jt],i);const y=h[Nt];null!==y&&y.detachView(h[jt]),i[or]=null,i[Co]=null,i[Mn]&=-129}return i}function Ph(t,n){if(!(256&n[Mn])){const r=n[D];n[ui]&&yd(n[ui]),n[Yi]&&yd(n[Yi]),r.destroyNode&&Pl(t,n,r,3,null,null),function U2(t){let n=t[R];if(!n)return Lh(t[jt],t);for(;n;){let r=null;if(po(n))r=n[R];else{const i=n[gr];i&&(r=i)}if(!r){for(;n&&!n[Co]&&n!==t;)po(n)&&Lh(n[jt],n),n=n[or];null===n&&(n=t),po(n)&&Lh(n[jt],n),r=n&&n[Co]}n=r}}(n)}}function Lh(t,n){if(!(256&n[Mn])){n[Mn]&=-129,n[Mn]|=256,function j2(t,n){let r;if(null!=t&&null!=(r=t.destroyHooks))for(let i=0;i=0?i[y]():i[-y].unsubscribe(),h+=2}else r[h].call(i[r[h+1]]);null!==i&&(n[ws]=null);const s=n[Vn];if(null!==s){n[Vn]=null;for(let h=0;h-1){const{encapsulation:h}=t.data[i.directiveStart+s];if(h===yi.None||h===yi.Emulated)return null}return ct(i,r)}}(t,n.parent,r)}function wu(t,n,r,i,s){t.insertBefore(n,r,i,s)}function bg(t,n,r){t.appendChild(n,r)}function Eg(t,n,r,i,s){null!==i?wu(t,n,r,i,s):bg(t,n,r)}function Wd(t,n){return t.parentNode(n)}let Ih,kh,Dg=function Sg(t,n,r){return 40&t.type?ct(t,r):null};function Yd(t,n,r,i){const s=Ah(t,i,n),h=n[D],S=function wg(t,n,r){return Dg(t,n,r)}(i.parent||n[Fi],i,n);if(null!=s)if(Array.isArray(r))for(let N=0;N{r.push(y)};return ju(n,y=>{const S=y;Qd(S,h,[],i)&&(s||=[],s.push(S))}),void 0!==s&&Yg(s,h),r}function Yg(t,n){for(let r=0;r{n(h,i)})}}function Qd(t,n,r,i){if(!(t=on(t)))return!1;let s=null,h=P(t);const y=!h&&Dt(t);if(h||y){if(y&&!y.standalone)return!1;s=t}else{const N=t.ngModule;if(h=P(N),!h)return!1;s=N}const S=i.has(s);if(y){if(S)return!1;if(i.add(s),y.dependencies){const N="function"==typeof y.dependencies?y.dependencies():y.dependencies;for(const H of N)Qd(H,n,r,i)}}else{if(!h)return!1;{if(null!=h.imports&&!S){let H;i.add(s);try{ju(h.imports,ne=>{Qd(ne,n,r,i)&&(H||=[],H.push(ne))})}finally{}void 0!==H&&Yg(H,n)}if(!S){const H=Ar(s)||(()=>new s);n({provide:s,useFactory:H,deps:hr},s),n({provide:zg,useValue:s,multi:!0},s),n({provide:Jd,useValue:()=>Ut(s),multi:!0},s)}const N=h.providers;if(null!=N&&!S){const H=t;Xu(N,ne=>{n(ne,H)})}}}return s!==t&&void 0!==t.providers}function Xu(t,n){for(let r of t)is(r)&&(r=r.\u0275providers),Array.isArray(r)?Xu(r,n):n(r)}const xl=Fn({provide:String,useValue:Fn});function tc(t){return null!==t&&"object"==typeof t&&xl in t}function Ja(t){return"function"==typeof t}const k=new Zn("Set Injector scope."),Z={},K={};let te;function pe(){return void 0===te&&(te=new jh),te}class Me{}class Ze extends Me{get destroyed(){return this._destroyed}constructor(n,r,i,s){super(),this.parent=r,this.source=i,this.scopes=s,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,bi(n,y=>this.processProvider(y)),this.records.set(jg,jn(void 0,this)),s.has("environment")&&this.records.set(Me,jn(void 0,this));const h=this.records.get(k);null!=h&&"string"==typeof h.value&&this.scopes.add(h.value),this.injectorDefTypes=new Set(this.get(zg.multi,hr,ge.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const r of this._ngOnDestroyHooks)r.ngOnDestroy();const n=this._onDestroyHooks;this._onDestroyHooks=[];for(const r of n)r()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear()}}onDestroy(n){return this.assertNotDestroyed(),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){this.assertNotDestroyed();const r=zi(this),i=Ye(void 0);try{return n()}finally{zi(r),Ye(i)}}get(n,r=Zo,i=ge.Default){if(this.assertNotDestroyed(),n.hasOwnProperty(ma))return n[ma](this);i=ss(i);const h=zi(this),y=Ye(void 0);try{if(!(i&ge.SkipSelf)){let N=this.records.get(n);if(void 0===N){const H=function pi(t){return"function"==typeof t||"object"==typeof t&&t instanceof Zn}(n)&&Vi(n);N=H&&this.injectableDefInScope(H)?jn(lt(n),Z):null,this.records.set(n,N)}if(null!=N)return this.hydrate(n,N)}return(i&ge.Self?pe():this.parent).get(n,r=i&ge.Optional&&r===Zo?null:r)}catch(S){if("NullInjectorError"===S.name){if((S[ei]=S[ei]||[]).unshift(Lr(n)),h)throw S;return function ga(t,n,r,i){const s=t[ei];throw n[Oi]&&s.unshift(n[Oi]),t.message=function Ms(t,n,r,i=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.slice(2):t;let s=Lr(n);if(Array.isArray(n))s=n.map(Lr).join(" -> ");else if("object"==typeof n){let h=[];for(let y in n)if(n.hasOwnProperty(y)){let S=n[y];h.push(y+":"+("string"==typeof S?JSON.stringify(S):Lr(S)))}s=`{${h.join(", ")}}`}return`${r}${i?"("+i+")":""}[${s}]: ${t.replace(xi,"\n ")}`}("\n"+t.message,s,r,i),t.ngTokenPath=s,t[ei]=null,t}(S,n,"R3InjectorError",this.source)}throw S}finally{Ye(y),zi(h)}}resolveInjectorInitializers(){const n=zi(this),r=Ye(void 0);try{const s=this.get(Jd.multi,hr,ge.Self);for(const h of s)h()}finally{zi(n),Ye(r)}}toString(){const n=[],r=this.records;for(const i of r.keys())n.push(Lr(i));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Xt(205,!1)}processProvider(n){let r=Ja(n=on(n))?n:on(n&&n.provide);const i=function Bn(t){return tc(t)?jn(void 0,t.useValue):jn(function tr(t,n,r){let i;if(Ja(t)){const s=on(t);return Ar(s)||lt(s)}if(tc(t))i=()=>on(t.useValue);else if(function Gh(t){return!(!t||!t.useFactory)}(t))i=()=>t.useFactory(...cr(t.deps||[]));else if(function zh(t){return!(!t||!t.useExisting)}(t))i=()=>Ut(on(t.useExisting));else{const s=on(t&&(t.useClass||t.provide));if(!function Jt(t){return!!t.deps}(t))return Ar(s)||lt(s);i=()=>new s(...cr(t.deps))}return i}(t),Z)}(n);if(Ja(n)||!0!==n.multi)this.records.get(r);else{let s=this.records.get(r);s||(s=jn(void 0,Z,!0),s.factory=()=>cr(s.multi),this.records.set(r,s)),r=n,s.multi.push(n)}this.records.set(r,i)}hydrate(n,r){return r.value===Z&&(r.value=K,r.value=r.factory()),"object"==typeof r.value&&r.value&&function Zr(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(r.value)&&this._ngOnDestroyHooks.add(r.value),r.value}injectableDefInScope(n){if(!n.providedIn)return!1;const r=on(n.providedIn);return"string"==typeof r?"any"===r||this.scopes.has(r):this.injectorDefTypes.has(r)}removeOnDestroy(n){const r=this._onDestroyHooks.indexOf(n);-1!==r&&this._onDestroyHooks.splice(r,1)}}function lt(t){const n=Vi(t),r=null!==n?n.factory:Ar(t);if(null!==r)return r;if(t instanceof Zn)throw new Xt(204,!1);if(t instanceof Function)return function Bt(t){const n=t.length;if(n>0)throw function Tl(t,n){const r=[];for(let i=0;ir.factory(t):()=>new t}(t);throw new Xt(204,!1)}function jn(t,n,r=!1){return{factory:t,value:n,multi:r?[]:void 0}}function bi(t,n){for(const r of t)Array.isArray(r)?bi(r,n):r&&is(r)?bi(r.\u0275providers,n):n(r)}const Zi=new Zn("AppId",{providedIn:"root",factory:()=>ps}),ps="ng",ia=new Zn("Platform Initializer"),Wo=new Zn("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),Ei=new Zn("CSP nonce",{providedIn:"root",factory:()=>{var t,n;return(null==(n=null==(t=function qu(){if(void 0!==kh)return kh;if(typeof document<"u")return document;throw new Xt(210,!1)}().body)?void 0:t.querySelector("[ngCspNonce]"))?void 0:n.getAttribute("ngCspNonce"))||null}});let Qa=(t,n,r)=>null;function rc(t,n,r=!1){return Qa(t,n,r)}class L8{}class $_{}class I8{resolveComponentFactory(n){throw function A8(t){const n=Error(`No component factory found for ${Lr(t)}.`);return n.ngComponent=t,n}(n)}}let kl=(()=>{class t{static#e=this.NULL=new I8}return t})();function x8(){return Fl(vo(),It())}function Fl(t,n){return new Ul(ct(t,n))}let Ul=(()=>{class t{constructor(r){this.nativeElement=r}static#e=this.__NG_ELEMENT_ID__=x8}return t})();class N_{}let k8=(()=>{class t{static#e=this.\u0275prov=En({token:t,providedIn:"root",factory:()=>null})}return t})();class Zh{constructor(n){this.full=n,this.major=n.split(".")[0],this.minor=n.split(".")[1],this.patch=n.split(".").slice(2).join(".")}}const F8=new Zh("16.2.5"),Kg={};function I_(t,n=null,r=null,i){const s=x_(t,n,r,i);return s.resolveInjectorInitializers(),s}function x_(t,n=null,r=null,i,s=new Set){const h=[r||hr,S_(t)];return i=i||("object"==typeof t?void 0:Lr(t)),new Ze(h,n||pe(),i||null,s)}let Rs=(()=>{class t{static#e=this.THROW_IF_NOT_FOUND=Zo;static#t=this.NULL=new jh;static create(r,i){if(Array.isArray(r))return I_({name:""},i,r,"");{const s=r.name??"";return I_({name:s},r.parent,r.providers,s)}}static#n=this.\u0275prov=En({token:t,providedIn:"any",factory:()=>Ut(jg)});static#r=this.__NG_ELEMENT_ID__=-1}return t})();function Jg(t){return t.ngOriginalError}class eu{constructor(){this._console=console}handleError(n){const r=this._findOriginalError(n);this._console.error("ERROR",n),r&&this._console.error("ORIGINAL ERROR",r)}_findOriginalError(n){let r=n&&Jg(n);for(;r&&Jg(r);)r=Jg(r);return r||null}}function e1(t){return n=>{setTimeout(t,void 0,n)}}const bo=class G8 extends it{constructor(n=!1){super(),this.__isAsync=n}emit(n){super.next(n)}subscribe(n,r,i){var N,H,ne;let s=n,h=r||(()=>null),y=i;if(n&&"object"==typeof n){const ce=n;s=null==(N=ce.next)?void 0:N.bind(ce),h=null==(H=ce.error)?void 0:H.bind(ce),y=null==(ne=ce.complete)?void 0:ne.bind(ce)}this.__isAsync&&(h=e1(h),s&&(s=e1(s)),y&&(y=e1(y)));const S=super.subscribe({next:s,error:h,complete:y});return n instanceof q&&n.add(S),S}};function R_(...t){}class wi{constructor({enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:r=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new bo(!1),this.onMicrotaskEmpty=new bo(!1),this.onStable=new bo(!1),this.onError=new bo(!1),typeof Zone>"u")throw new Xt(908,!1);Zone.assertZonePatched();const s=this;s._nesting=0,s._outer=s._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(s._inner=s._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(s._inner=s._inner.fork(Zone.longStackTraceZoneSpec)),s.shouldCoalesceEventChangeDetection=!i&&r,s.shouldCoalesceRunChangeDetection=i,s.lastRequestAnimationFrameId=-1,s.nativeRequestAnimationFrame=function W8(){const t="function"==typeof qe.requestAnimationFrame;let n=qe[t?"requestAnimationFrame":"setTimeout"],r=qe[t?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&n&&r){const i=n[Zone.__symbol__("OriginalDelegate")];i&&(n=i);const s=r[Zone.__symbol__("OriginalDelegate")];s&&(r=s)}return{nativeRequestAnimationFrame:n,nativeCancelAnimationFrame:r}}().nativeRequestAnimationFrame,function q8(t){const n=()=>{!function Z8(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(qe,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,n1(t),t.isCheckStableRunning=!0,t1(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),n1(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(r,i,s,h,y,S)=>{if(function X8(t){var n;return!(!Array.isArray(t)||1!==t.length)&&!0===(null==(n=t[0].data)?void 0:n.__ignore_ng_zone__)}(S))return r.invokeTask(s,h,y,S);try{return k_(t),r.invokeTask(s,h,y,S)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===h.type||t.shouldCoalesceRunChangeDetection)&&n(),F_(t)}},onInvoke:(r,i,s,h,y,S,N)=>{try{return k_(t),r.invoke(s,h,y,S,N)}finally{t.shouldCoalesceRunChangeDetection&&n(),F_(t)}},onHasTask:(r,i,s,h)=>{r.hasTask(s,h),i===s&&("microTask"==h.change?(t._hasPendingMicrotasks=h.microTask,n1(t),t1(t)):"macroTask"==h.change&&(t.hasPendingMacrotasks=h.macroTask))},onHandleError:(r,i,s,h)=>(r.handleError(s,h),t.runOutsideAngular(()=>t.onError.emit(h)),!1)})}(s)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!wi.isInAngularZone())throw new Xt(909,!1)}static assertNotInAngularZone(){if(wi.isInAngularZone())throw new Xt(909,!1)}run(n,r,i){return this._inner.run(n,r,i)}runTask(n,r,i,s){const h=this._inner,y=h.scheduleEventTask("NgZoneEvent: "+s,n,Y8,R_,R_);try{return h.runTask(y,r,i)}finally{h.cancelTask(y)}}runGuarded(n,r,i){return this._inner.runGuarded(n,r,i)}runOutsideAngular(n){return this._outer.run(n)}}const Y8={};function t1(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function n1(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function k_(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function F_(t){t._nesting--,t1(t)}class K8{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new bo,this.onMicrotaskEmpty=new bo,this.onStable=new bo,this.onError=new bo}run(n,r,i){return n.apply(r,i)}runGuarded(n,r,i){return n.apply(r,i)}runOutsideAngular(n){return n()}runTask(n,r,i,s){return n.apply(r,i)}}const U_=new Zn("",{providedIn:"root",factory:B_});function B_(){const t=br(wi);let n=!0;return Ii(new Ee(s=>{n=t.isStable&&!t.hasPendingMacrotasks&&!t.hasPendingMicrotasks,t.runOutsideAngular(()=>{s.next(n),s.complete()})}),new Ee(s=>{let h;t.runOutsideAngular(()=>{h=t.onStable.subscribe(()=>{wi.assertNotInAngularZone(),queueMicrotask(()=>{!n&&!t.hasPendingMacrotasks&&!t.hasPendingMicrotasks&&(n=!0,s.next(!0))})})});const y=t.onUnstable.subscribe(()=>{wi.assertInAngularZone(),n&&(n=!1,t.runOutsideAngular(()=>{s.next(!1)}))});return()=>{h.unsubscribe(),y.unsubscribe()}}).pipe(Pt()))}let r1=(()=>{class t{constructor(){this.renderDepth=0,this.handler=null}begin(){var r;null==(r=this.handler)||r.validateBegin(),this.renderDepth++}end(){var r;this.renderDepth--,0===this.renderDepth&&(null==(r=this.handler)||r.execute())}ngOnDestroy(){var r;null==(r=this.handler)||r.destroy(),this.handler=null}static#e=this.\u0275prov=En({token:t,providedIn:"root",factory:()=>new t})}return t})();function ic(t){for(;t;){t[Mn]|=64;const n=Nl(t);if(cl(t)&&!n)return t;t=n}return null}const G_=new Zn("",{providedIn:"root",factory:()=>!1});let Kh=null;function q_(t,n){return t[n]??J_()}function K_(t,n){var i;const r=J_();null!=(i=r.producerNode)&&i.length&&(t[n]=Kh,r.lView=t,Kh=X_())}const a5={...No,consumerIsAlwaysLive:!0,consumerMarkedDirty:t=>{ic(t.lView)},lView:null};function X_(){return Object.create(a5)}function J_(){return Kh??=X_(),Kh}const sr={};function Ts(t){Q_(Nr(),It(),zo()+t,!1)}function Q_(t,n,r,i){if(!i)if(3==(3&n[Mn])){const h=t.preOrderCheckHooks;null!==h&&Nd(n,h,r)}else{const h=t.preOrderHooks;null!==h&&Md(n,h,0,r)}vu(r)}function ar(t,n=ge.Default){const r=It();return null===r?Ut(t,n):Hp(vo(),r,on(t),n)}function Xh(t,n,r,i,s,h,y,S,N,H,ne){const ce=n.blueprint.slice();return ce[xn]=s,ce[Mn]=140|i,(null!==H||t&&2048&t[Mn])&&(ce[Mn]|=2048),mp(ce),ce[or]=ce[_e]=t,ce[ai]=r,ce[_]=y||t&&t[_],ce[D]=S||t&&t[D],ce[u]=N||t&&t[u]||null,ce[Fi]=h,ce[Kt]=function D2(){return S2++}(),ce[ti]=ne,ce[Pn]=H,ce[Ie]=2==n.type?t[Ie]:ce,ce}function Vl(t,n,r,i,s){let h=t.data[n];if(null===h)h=function o1(t,n,r,i,s){const h=wp(),y=th(),N=t.data[n]=function m5(t,n,r,i,s,h){let y=n?n.injectorIndex:-1,S=0;return function Ou(){return null!==Yn.skipHydrationRootTNode}()&&(S|=128),{type:r,index:i,insertBeforeIndex:null,injectorIndex:y,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:S,providerIndexes:0,value:s,attrs:h,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:n,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,y?h:h&&h.parent,r,n,i,s);return null===t.firstChild&&(t.firstChild=N),null!==h&&(y?null==h.child&&null!==N.parent&&(h.child=N):null===h.next&&(h.next=N,N.prev=h)),N}(t,n,r,i,s),function C0(){return Yn.lFrame.inI18n}()&&(h.flags|=32);else if(64&h.type){h.type=r,h.value=i,h.attrs=s;const y=function vl(){const t=Yn.lFrame,n=t.currentTNode;return t.isParent?n:n.parent}();h.injectorIndex=null===y?-1:y.injectorIndex}return ea(h,!0),h}function oc(t,n,r,i){if(0===r)return-1;const s=n.length;for(let h=0;hLn&&Q_(t,n,Ln,!1),E(S?2:0,s);const H=S?h:null,ne=Pu(H);try{null!==H&&(H.dirty=!1),r(i,s)}finally{_u(H,ne)}}finally{S&&null===n[ui]&&K_(n,ui),vu(y),E(S?3:1,s)}}function s1(t,n,r){if(mu(n)){const i=Jn(null);try{const h=n.directiveEnd;for(let y=n.directiveStart;ynull;function ry(t,n,r,i){for(let s in t)if(t.hasOwnProperty(s)){r=null===r?{}:r;const h=t[s];null===i?iy(r,n,s,h):i.hasOwnProperty(s)&&iy(r,n,i[s],h)}return r}function iy(t,n,r,i){t.hasOwnProperty(r)?t[r].push(n,i):t[r]=[n,i]}function d1(t,n,r,i){if(Ep()){const s=null===i?null:{"":-1},h=function T5(t,n){var h;const r=t.directiveRegistry;let i=null,s=null;if(r)for(let y=0;y0;){const r=t[--n];if("number"==typeof r&&r<0)return r}return 0})(y)!=S&&y.push(S),y.push(r,i,h)}}(t,n,i,oc(t,r,s.hostVars,sr),s)}function La(t,n,r,i,s,h){const y=ct(t,n);!function h1(t,n,r,i,s,h,y){if(null==h)t.removeAttribute(n,s,r);else{const S=null==y?Nn(h):y(h,i||"",s);t.setAttribute(n,s,S,r)}}(n[D],y,h,t.value,r,i,s)}function L5(t,n,r,i,s,h){const y=h[n];if(null!==y)for(let S=0;S{class t{constructor(){this.all=new Set,this.queue=new Map}create(r,i,s){const h=typeof Zone>"u"?null:Zone.current,y=function Xc(t,n,r){const i=Object.create(Jc);r&&(i.consumerAllowSignalWrites=!0),i.fn=t,i.schedule=n;const s=y=>{i.cleanupFn=y};return i.ref={notify:()=>Ss(i),run:()=>{if(i.dirty=!1,i.hasRun&&!_d(i))return;i.hasRun=!0;const y=Pu(i);try{i.cleanupFn(),i.cleanupFn=Sd,i.fn(s)}finally{_u(i,y)}},cleanup:()=>i.cleanupFn()},i.ref}(r,H=>{this.all.has(H)&&this.queue.set(H,h)},s);let S;this.all.add(y),y.notify();const N=()=>{y.cleanup(),null==S||S(),this.all.delete(y),this.queue.delete(y)};return S=null==i?void 0:i.onDestroy(N),{destroy:N}}flush(){if(0!==this.queue.size)for(const[r,i]of this.queue)this.queue.delete(r),i?i.run(()=>r.run()):r.run()}get isQueueEmpty(){return 0===this.queue.size}static#e=this.\u0275prov=En({token:t,providedIn:"root",factory:()=>new t})}return t})();function Qh(t,n,r){let i=r?t.styles:null,s=r?t.classes:null,h=0;if(null!==n)for(let y=0;y0){_y(t,1);const s=r.components;null!==s&&vy(t,s,1)}}function vy(t,n,r){for(let i=0;i-1&&(Gd(n,i),Od(r,i))}this._attachedToViewContainer=!1}Ph(this._lView[jt],this._lView)}onDestroy(n){!function vp(t,n){if(256==(256&t[Mn]))throw new Xt(911,!1);null===t[Vn]&&(t[Vn]=[]),t[Vn].push(n)}(this._lView,n)}markForCheck(){ic(this._cdRefInjectingView||this._lView)}detach(){this._lView[Mn]&=-129}reattach(){this._lView[Mn]|=128}detectChanges(){ef(this._lView[jt],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new Xt(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function F2(t,n){Pl(t,n,n[D],2,null,null)}(this._lView[jt],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new Xt(902,!1);this._appRef=n}}class B5 extends ac{constructor(n){super(n),this._view=n}detectChanges(){const n=this._view;ef(n[jt],n,n[ai],!1)}checkNoChanges(){}get context(){return null}}class by extends kl{constructor(n){super(),this.ngModule=n}resolveComponentFactory(n){const r=Dt(n);return new uc(r,this.ngModule)}}function Ey(t){const n=[];for(let r in t)t.hasOwnProperty(r)&&n.push({propName:t[r],templateName:r});return n}class V5{constructor(n,r){this.injector=n,this.parentInjector=r}get(n,r,i){i=ss(i);const s=this.injector.get(n,Kg,i);return s!==Kg||r===Kg?s:this.parentInjector.get(n,r,i)}}class uc extends $_{get inputs(){const n=this.componentDef,r=n.inputTransforms,i=Ey(n.inputs);if(null!==r)for(const s of i)r.hasOwnProperty(s.propName)&&(s.transform=r[s.propName]);return i}get outputs(){return Ey(this.componentDef.outputs)}constructor(n,r){super(),this.componentDef=n,this.ngModule=r,this.componentType=n.type,this.selector=function Ys(t){return t.map(us).join(",")}(n.selectors),this.ngContentSelectors=n.ngContentSelectors?n.ngContentSelectors:[],this.isBoundToModule=!!r}create(n,r,i,s){let h=(s=s||this.ngModule)instanceof Me?s:null==s?void 0:s.injector;h&&null!==this.componentDef.getStandaloneInjector&&(h=this.componentDef.getStandaloneInjector(h)||h);const y=h?new V5(n,h):n,S=y.get(N_,null);if(null===S)throw new Xt(407,!1);const ce={rendererFactory:S,sanitizer:y.get(k8,null),effectManager:y.get(py,null),afterRenderEventManager:y.get(r1,null)},$e=S.createRenderer(null,this.componentDef),Ue=this.componentDef.selectors[0][0]||"div",Xe=i?function c5(t,n,r,i){const h=i.get(G_,!1)||r===yi.ShadowDom,y=t.selectRootElement(n,h);return function h5(t){ny(t)}(y),y}($e,i,this.componentDef.encapsulation,y):zd($e,Ue,function H5(t){const n=t.toLowerCase();return"svg"===n?"svg":"math"===n?"math":null}(Ue)),vt=this.componentDef.signals?4608:this.componentDef.onPush?576:528;let et=null;null!==Xe&&(et=rc(Xe,y,!0));const Vt=l1(0,null,null,1,0,null,null,null,null,null,null),un=Xh(null,Vt,null,vt,null,null,ce,$e,y,null,et);let vn,Bi;sh(un);try{const ca=this.componentDef;let hd,h0=null;ca.findHostDirectiveDefs?(hd=[],h0=new Map,ca.findHostDirectiveDefs(ca,hd,h0),hd.push(ca)):hd=[ca];const Vx=function z5(t,n){const r=t[jt],i=Ln;return t[i]=n,Vl(r,i,2,"#host",null)}(un,Xe),jx=function G5(t,n,r,i,s,h,y){const S=s[jt];!function W5(t,n,r,i){for(const s of t)n.mergedAttrs=yo(n.mergedAttrs,s.hostAttrs);null!==n.mergedAttrs&&(Qh(n,n.mergedAttrs,!0),null!==r&&Pg(i,r,n))}(i,t,n,y);let N=null;null!==n&&(N=rc(n,s[u]));const H=h.rendererFactory.createRenderer(n,r);let ne=16;r.signals?ne=4096:r.onPush&&(ne=64);const ce=Xh(s,ty(r),null,ne,s[t.index],t,h,H,null,null,N);return S.firstCreatePass&&c1(S,t,i.length-1),Jh(s,ce),s[t.index]=ce}(Vx,Xe,ca,hd,un,ce,$e);Bi=mr(Vt,Ln),Xe&&function Z5(t,n,r,i){if(i)Bo(t,r,["ng-version",F8.full]);else{const{attrs:s,classes:h}=function ls(t){const n=[],r=[];let i=1,s=2;for(;i0&&Mg(t,r,h.join(" "))}}($e,ca,Xe,i),void 0!==r&&function q5(t,n,r){const i=t.projection=[];for(let s=0;s(qa(!0),zd(i,s,function Ap(){return Yn.lFrame.currentNamespace}()));function C1(t){return!!t&&"function"==typeof t.then}function zy(t){return!!t&&"function"==typeof t.subscribe}function lf(t,n,r,i){const s=It(),h=Nr(),y=vo();return function Wy(t,n,r,i,s,h,y){const S=As(i),H=t.firstCreatePass&&function cy(t){return t.cleanup||(t.cleanup=[])}(t),ne=n[ai],ce=function dy(t){return t[ws]||(t[ws]=[])}(n);let $e=!0;if(3&i.type||y){const ut=ct(i,n),Lt=y?y(ut):ut,vt=ce.length,et=y?un=>y(ae(un[i.index])):i.index;let Vt=null;if(!y&&S&&(Vt=function F6(t,n,r,i){const s=t.cleanup;if(null!=s)for(let h=0;hN?S[N]:null}"string"==typeof y&&(h+=2)}return null}(t,n,s,i.index)),null!==Vt)(Vt.__ngLastListenerFn__||Vt).__ngNextListenerFn__=h,Vt.__ngLastListenerFn__=h,$e=!1;else{h=Zy(i,n,ne,h,!1);const un=r.listen(Lt,s,h);ce.push(h,un),H&&H.push(s,et,vt,vt+1)}}else h=Zy(i,n,ne,h,!1);const Ue=i.outputs;let Xe;if($e&&null!==Ue&&(Xe=Ue[s])){const ut=Xe.length;if(ut)for(let Lt=0;Lt-1?vi(t.index,n):n);let N=Yy(n,r,i,y),H=h.__ngNextListenerFn__;for(;H;)N=Yy(n,r,H,y)&&N,H=H.__ngNextListenerFn__;return s&&!1===N&&y.preventDefault(),N}}function qy(t=1){return function L0(t){return(Yn.lFrame.contextLView=function A0(t,n){for(;t>0;)n=n[_e],t--;return n}(t,Yn.lFrame.contextLView))[ai]}(t)}function Vr(t,n=""){const r=It(),i=Nr(),s=t+Ln,h=i.firstCreatePass?Vl(i,s,1,n,null):i.data[s],y=bv(i,r,h,n,t);r[s]=y,$d()&&Yd(i,r,y,h),ea(h,!1)}let bv=(t,n,r,i,s)=>(qa(!0),function jd(t,n){return t.createText(n)}(n[D],i));function nl(t){return I1("",t,""),nl}function I1(t,n,r){const i=It(),s=function zl(t,n,r,i){return Yo(t,Ru(),r)?n+Nn(r)+i:sr}(i,t,n,r);return s!==sr&&nu(i,zo(),s),I1}const ed="en-US";let Vv=ed;class il{}class Aw{}class B1 extends il{constructor(n,r,i){super(),this._parent=r,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new by(this);const s=function wn(t,n){const r=t[Gi]||null;if(!r&&!0===n)throw new Error(`Type ${Lr(t)} does not have '\u0275mod' property.`);return r}(n);this._bootstrapComponents=function tu(t){return t instanceof Function?t():t}(s.bootstrap),this._r3Injector=x_(n,r,[{provide:il,useValue:this},{provide:kl,useValue:this.componentFactoryResolver},...i],Lr(n),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(n)}get injector(){return this._r3Injector}destroy(){const n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(r=>r()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}}class H1 extends Aw{constructor(n){super(),this.moduleType=n}create(n){return new B1(this.moduleType,n,[])}}function E3(t,n,r,i,s,h){const y=n+r;return Yo(t,y,s)?function Aa(t,n,r){return t[n]=r}(t,y+1,h?i.call(h,s):i(s)):function vc(t,n){const r=t[n];return r===sr?void 0:r}(t,y+1)}function bc(t,n){const r=Nr();let i;const s=t+Ln;r.firstCreatePass?(i=function n7(t,n){if(n)for(let r=n.length-1;r>=0;r--){const i=n[r];if(t===i.name)return i}}(n,r.pipeRegistry),r.data[s]=i,i.onDestroy&&(r.destroyHooks??=[]).push(s,i.onDestroy)):i=r.data[s];const h=i.factory||(i.factory=Ar(i.type)),S=Ye(ar);try{const N=Pd(!1),H=h();return Pd(N),function M6(t,n,r,i){r>=t.data.length&&(t.data[r]=null,t.blueprint[r]=null),n[r]=i}(r,It(),s,H),H}finally{Ye(S)}}function Ec(t,n,r){const i=t+Ln,s=It(),h=function Ir(t,n){return t[n]}(s,i);return function wc(t,n){return t[jt].data[n].pure}(s,i)?E3(s,function jo(){const t=Yn.lFrame;let n=t.bindingRootIndex;return-1===n&&(n=t.bindingRootIndex=t.tView.bindingStartIndex),n}(),n,h.transform,r,h):h.transform(r)}function l7(t,n,r,i=!0){const s=n[jt];if(function B2(t,n,r,i){const s=gr+i,h=r.length;i>0&&(r[s-1][Co]=n),i{class t{static#e=this.__NG_ELEMENT_ID__=h7}return t})();const d7=ru,c7=class extends d7{constructor(n,r,i){super(),this._declarationLView=n,this._declarationTContainer=r,this.elementRef=i}get ssrId(){var n;return(null==(n=this._declarationTContainer.tView)?void 0:n.ssrId)||null}createEmbeddedView(n,r){return this.createEmbeddedViewImpl(n,r)}createEmbeddedViewImpl(n,r,i){const s=function u7(t,n,r,i){const s=n.tView,S=Xh(t,s,r,4096&t[Mn]?4096:16,null,n,null,null,null,(null==i?void 0:i.injector)??null,(null==i?void 0:i.hydrationInfo)??null);S[tt]=t[n.index];const H=t[Nt];return null!==H&&(S[Nt]=H.createEmbeddedView(s)),g1(s,S,r),S}(this._declarationLView,this._declarationTContainer,n,{injector:r,hydrationInfo:i});return new ac(s)}};function h7(){return function mf(t,n){return 4&t.type?new c7(n,t,Fl(t,n)):null}(vo(),It())}let Oa=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=y7}return t})();function y7(){return function A3(t,n){let r;const i=n[t.index];return ao(i)?r=i:(r=uy(i,n,null,t),n[t.index]=r,Jh(n,r)),I3(r,n,t,i),new P3(r,t,n)}(vo(),It())}const v7=Oa,P3=class extends v7{constructor(n,r,i){super(),this._lContainer=n,this._hostTNode=r,this._hostLView=i}get element(){return Fl(this._hostTNode,this._hostLView)}get injector(){return new Go(this._hostTNode,this._hostLView)}get parentInjector(){const n=Ad(this._hostTNode,this._hostLView);if(dh(n)){const r=wl(n,this._hostLView),i=El(n);return new Go(r[jt].data[i+8],r)}return new Go(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const r=L3(this._lContainer);return null!==r&&r[n]||null}get length(){return this._lContainer.length-gr}createEmbeddedView(n,r,i){let s,h;"number"==typeof i?s=i:null!=i&&(s=i.index,h=i.injector);const S=n.createEmbeddedViewImpl(r||{},h,null);return this.insertImpl(S,s,false),S}createComponent(n,r,i,s,h){const y=n&&!function Dl(t){return"function"==typeof t}(n);let S;if(y)S=r;else{const ut=r||{};S=ut.index,i=ut.injector,s=ut.projectableNodes,h=ut.environmentInjector||ut.ngModuleRef}const N=y?n:new uc(Dt(n)),H=i||this.parentInjector;if(!h&&null==N.ngModule){const Lt=(y?H:this.parentInjector).get(Me,null);Lt&&(h=Lt)}Dt(N.componentType??{});const Ue=N.create(H,s,null,h);return this.insertImpl(Ue.hostView,S,false),Ue}insert(n,r){return this.insertImpl(n,r,!1)}insertImpl(n,r,i){const s=n._lView;if(function f0(t){return ao(t[or])}(s)){const N=this.indexOf(n);if(-1!==N)this.detach(N);else{const H=s[or],ne=new P3(H,H[Fi],H[or]);ne.detach(ne.indexOf(n))}}const y=this._adjustIndex(r),S=this._lContainer;return l7(S,s,y,!i),n.attachToViewContainerRef(),Yp(z1(S),y,n),n}move(n,r){return this.insert(n,r)}indexOf(n){const r=L3(this._lContainer);return null!==r?r.indexOf(n):-1}remove(n){const r=this._adjustIndex(n,-1),i=Gd(this._lContainer,r);i&&(Od(z1(this._lContainer),r),Ph(i[jt],i))}detach(n){const r=this._adjustIndex(n,-1),i=Gd(this._lContainer,r);return i&&null!=Od(z1(this._lContainer),r)?new ac(i):null}_adjustIndex(n,r=0){return n??this.length+r}};function L3(t){return t[8]}function z1(t){return t[8]||(t[8]=[])}let I3=function x3(t,n,r,i){if(t[Xo])return;let s;s=8&r.type?ae(i):function b7(t,n){const r=t[D],i=r.createComment(""),s=ct(n,t);return wu(r,Wd(r,s),i,function G2(t,n){return t.nextSibling(n)}(r,s),!1),i}(n,r),t[Xo]=s};const eS=new Zn("Application Initializer");let em=(()=>{class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((r,i)=>{this.resolve=r,this.reject=i}),this.appInits=br(eS,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const r=[];for(const s of this.appInits){const h=s();if(C1(h))r.push(h);else if(zy(h)){const y=new Promise((S,N)=>{h.subscribe({complete:S,error:N})});r.push(y)}}const i=()=>{this.done=!0,this.resolve()};Promise.all(r).then(()=>{i()}).catch(s=>{this.reject(s)}),0===r.length&&i(),this.initialized=!0}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const iu=new Zn("LocaleId",{providedIn:"root",factory:()=>br(iu,ge.Optional|ge.SkipSelf)||function nS(){return typeof $localize<"u"&&$localize.locale||ed}()});let oS=(()=>{class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new eo(!1)}add(){this.hasPendingTasks.next(!0);const r=this.taskId++;return this.pendingTasks.add(r),r}remove(r){this.pendingTasks.delete(r),0===this.pendingTasks.size&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const s4=new Zn(""),bf=new Zn("");let Tc,rm=(()=>{class t{constructor(r,i,s){this._ngZone=r,this.registry=i,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,Tc||(function $S(t){Tc=t}(s),s.addToWindow(i)),this._watchAngularEvents(),r.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{wi.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let r=this._callbacks.pop();clearTimeout(r.timeoutId),r.doneCb(this._didWork)}this._didWork=!1});else{let r=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(r)||(clearTimeout(i.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(r=>({source:r.source,creationLocation:r.creationLocation,data:r.data})):[]}addCallback(r,i,s){let h=-1;i&&i>0&&(h=setTimeout(()=>{this._callbacks=this._callbacks.filter(y=>y.timeoutId!==h),r(this._didWork,this.getPendingTasks())},i)),this._callbacks.push({doneCb:r,timeoutId:h,updateCb:s})}whenStable(r,i,s){if(s&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(r,i,s),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(r){this.registry.registerApplication(r,this)}unregisterApplication(r){this.registry.unregisterApplication(r)}findProviders(r,i,s){return[]}static#e=this.\u0275fac=function(i){return new(i||t)(Ut(wi),Ut(im),Ut(bf))};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac})}return t})(),im=(()=>{class t{constructor(){this._applications=new Map}registerApplication(r,i){this._applications.set(r,i)}unregisterApplication(r){this._applications.delete(r)}unregisterAllApplications(){this._applications.clear()}getTestability(r){return this._applications.get(r)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(r,i=!0){return(null==Tc?void 0:Tc.findTestabilityInTree(this,r,i))??null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),Ra=null;const a4=new Zn("AllowMultipleToken"),om=new Zn("PlatformDestroyListeners"),u4=new Zn("appBootstrapListener");function c4(t,n,r=[]){const i=`Platform: ${n}`,s=new Zn(i);return(h=[])=>{let y=sm();if(!y||y.injector.get(a4,!1)){const S=[...r,...h,{provide:s,useValue:!0}];t?t(S):function MS(t){if(Ra&&!Ra.get(a4,!1))throw new Xt(400,!1);(function l4(){!function Wc(t){bd=t}(()=>{throw new Xt(600,!1)})})(),Ra=t;const n=t.get(f4);(function d4(t){const n=t.get(ia,null);null==n||n.forEach(r=>r())})(t)}(function h4(t=[],n){return Rs.create({name:n,providers:[{provide:k,useValue:"platform"},{provide:om,useValue:new Set([()=>Ra=null])},...t]})}(S,i))}return function LS(t){const n=sm();if(!n)throw new Xt(401,!1);return n}()}}function sm(){return(null==Ra?void 0:Ra.get(f4))??null}let f4=(()=>{class t{constructor(r){this._injector=r,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(r,i){const s=function AS(t="zone.js",n){return"noop"===t?new K8:"zone.js"===t?new wi(n):t}(null==i?void 0:i.ngZone,function p4(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:(null==t?void 0:t.eventCoalescing)??!1,shouldCoalesceRunChangeDetection:(null==t?void 0:t.runCoalescing)??!1}}({eventCoalescing:null==i?void 0:i.ngZoneEventCoalescing,runCoalescing:null==i?void 0:i.ngZoneRunCoalescing}));return s.run(()=>{const h=function xw(t,n,r){return new B1(t,n,r)}(r.moduleType,this.injector,function v4(t){return[{provide:wi,useFactory:t},{provide:Jd,multi:!0,useFactory:()=>{const n=br(xS,{optional:!0});return()=>n.initialize()}},{provide:y4,useFactory:IS},{provide:U_,useFactory:B_}]}(()=>s)),y=h.injector.get(eu,null);return s.runOutsideAngular(()=>{const S=s.onError.subscribe({next:N=>{y.handleError(N)}});h.onDestroy(()=>{Ef(this._modules,h),S.unsubscribe()})}),function g4(t,n,r){try{const i=r();return C1(i)?i.catch(s=>{throw n.runOutsideAngular(()=>t.handleError(s)),s}):i}catch(i){throw n.runOutsideAngular(()=>t.handleError(i)),i}}(y,s,()=>{const S=h.injector.get(em);return S.runInitializers(),S.donePromise.then(()=>(function jv(t){Hi(t,"Expected localeId to be defined"),"string"==typeof t&&(Vv=t.toLowerCase().replace(/_/g,"-"))}(h.injector.get(iu,ed)||ed),this._moduleDoBootstrap(h),h))})})}bootstrapModule(r,i=[]){const s=m4({},i);return function CS(t,n,r){const i=new H1(r);return Promise.resolve(i)}(0,0,r).then(h=>this.bootstrapModuleFactory(h,s))}_moduleDoBootstrap(r){const i=r.injector.get(rd);if(r._bootstrapComponents.length>0)r._bootstrapComponents.forEach(s=>i.bootstrap(s));else{if(!r.instance.ngDoBootstrap)throw new Xt(-403,!1);r.instance.ngDoBootstrap(i)}this._modules.push(r)}onDestroy(r){this._destroyListeners.push(r)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Xt(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const r=this._injector.get(om,null);r&&(r.forEach(i=>i()),r.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(i){return new(i||t)(Ut(Rs))};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function m4(t,n){return Array.isArray(n)?n.reduce(m4,t):{...t,...n}}let rd=(()=>{class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=br(y4),this.zoneIsStable=br(U_),this.componentTypes=[],this.components=[],this.isStable=br(oS).hasPendingTasks.pipe(Yt(r=>r?rt(!1):this.zoneIsStable),function _i(t,n=xt){return t=t??ii,ke((r,i)=>{let s,h=!0;r.subscribe(Je(i,y=>{const S=n(y);(h||!t(s,S))&&(h=!1,s=S,i.next(y))}))})}(),Pt()),this._injector=br(Me)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(r,i){const s=r instanceof $_;if(!this._injector.get(em).done)throw!s&&function cn(t){const n=Dt(t)||Qt(t)||en(t);return null!==n&&n.standalone}(r),new Xt(405,!1);let y;y=s?r:this._injector.get(kl).resolveComponentFactory(r),this.componentTypes.push(y.componentType);const S=function NS(t){return t.isBoundToModule}(y)?void 0:this._injector.get(il),H=y.create(Rs.NULL,[],i||y.selector,S),ne=H.location.nativeElement,ce=H.injector.get(s4,null);return null==ce||ce.registerApplication(ne),H.onDestroy(()=>{this.detachView(H.hostView),Ef(this.components,H),null==ce||ce.unregisterApplication(ne)}),this._loadComponent(H),H}tick(){if(this._runningTick)throw new Xt(101,!1);try{this._runningTick=!0;for(let r of this._views)r.detectChanges()}catch(r){this.internalErrorHandler(r)}finally{this._runningTick=!1}}attachView(r){const i=r;this._views.push(i),i.attachToAppRef(this)}detachView(r){const i=r;Ef(this._views,i),i.detachFromAppRef()}_loadComponent(r){this.attachView(r.hostView),this.tick(),this.components.push(r);const i=this._injector.get(u4,[]);i.push(...this._bootstrapListeners),i.forEach(s=>s(r))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(r=>r()),this._views.slice().forEach(r=>r.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(r){return this._destroyListeners.push(r),()=>Ef(this._destroyListeners,r)}destroy(){if(this._destroyed)throw new Xt(406,!1);const r=this._injector;r.destroy&&!r.destroyed&&r.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Ef(t,n){const r=t.indexOf(n);r>-1&&t.splice(r,1)}const y4=new Zn("",{providedIn:"root",factory:()=>br(eu).handleError.bind(void 0)});function IS(){const t=br(wi),n=br(eu);return r=>t.runOutsideAngular(()=>n.handleError(r))}let xS=(()=>{class t{constructor(){this.zone=br(wi),this.applicationRef=br(rd)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){var r;null==(r=this._onMicrotaskEmptySubscription)||r.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();let am=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=RS}return t})();function RS(t){return function kS(t,n,r){if(ds(t)&&!r){const i=vi(t.index,n);return new ac(i,i)}return 47&t.type?new ac(n[Ie],n):null}(vo(),It(),16==(16&t))}const KS=c4(null,"core",[]);let XS=(()=>{class t{constructor(r){}static#e=this.\u0275fac=function(i){return new(i||t)(Ut(rd))};static#t=this.\u0275mod=gt({type:t});static#n=this.\u0275inj=Uo({})}return t})(),fm=null;function pm(){return fm}class dD{}const sl=new Zn("DocumentToken");let Z4=(()=>{class t{constructor(r,i){this._viewContainer=r,this._context=new tT,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(r){this._context.$implicit=this._context.ngIf=r,this._updateView()}set ngIfThen(r){q4("ngIfThen",r),this._thenTemplateRef=r,this._thenViewRef=null,this._updateView()}set ngIfElse(r){q4("ngIfElse",r),this._elseTemplateRef=r,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(r,i){return!0}static#e=this.\u0275fac=function(i){return new(i||t)(ar(Oa),ar(ru))};static#t=this.\u0275dir=St({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return t})();class tT{constructor(){this.$implicit=null,this.ngIf=null}}function q4(t,n){if(n&&!n.createEmbeddedView)throw new Error(`${t} must be a TemplateRef, but received '${Lr(n)}'.`)}let $T=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=gt({type:t});static#n=this.\u0275inj=Uo({})}return t})();function Q4(t){return"server"===t}class e$ extends dD{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Lm extends e${static makeCurrent(){!function lD(t){fm||(fm=t)}(new Lm)}onAndCancel(n,r,i){return n.addEventListener(r,i),()=>{n.removeEventListener(r,i)}}dispatchEvent(n,r){n.dispatchEvent(r)}remove(n){n.parentNode&&n.parentNode.removeChild(n)}createElement(n,r){return(r=r||this.getDefaultDocument()).createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,r){return"window"===r?window:"document"===r?n:"body"===r?n.body:null}getBaseHref(n){const r=function t$(){return Pc=Pc||document.querySelector("base"),Pc?Pc.getAttribute("href"):null}();return null==r?null:function n$(t){Ff=Ff||document.createElement("a"),Ff.setAttribute("href",t);const n=Ff.pathname;return"/"===n.charAt(0)?n:`/${n}`}(r)}resetBaseElement(){Pc=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return function KD(t,n){n=encodeURIComponent(n);for(const r of t.split(";")){const i=r.indexOf("="),[s,h]=-1==i?[r,""]:[r.slice(0,i),r.slice(i+1)];if(s.trim()===n)return decodeURIComponent(h)}return null}(document.cookie,n)}}let Ff,Pc=null,i$=(()=>{class t{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac})}return t})();const Am=new Zn("EventManagerPlugins");let i9=(()=>{class t{constructor(r,i){this._zone=i,this._eventNameToPlugin=new Map,r.forEach(s=>{s.manager=this}),this._plugins=r.slice().reverse()}addEventListener(r,i,s){return this._findPluginFor(i).addEventListener(r,i,s)}getZone(){return this._zone}_findPluginFor(r){let i=this._eventNameToPlugin.get(r);if(i)return i;if(i=this._plugins.find(h=>h.supports(r)),!i)throw new Xt(5101,!1);return this._eventNameToPlugin.set(r,i),i}static#e=this.\u0275fac=function(i){return new(i||t)(Ut(Am),Ut(wi))};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac})}return t})();class o9{constructor(n){this._doc=n}}const Im="ng-app-id";let s9=(()=>{class t{constructor(r,i,s,h={}){this.doc=r,this.appId=i,this.nonce=s,this.platformId=h,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=Q4(h),this.resetHostNodes()}addStyles(r){for(const i of r)1===this.changeUsageCount(i,1)&&this.onStyleAdded(i)}removeStyles(r){for(const i of r)this.changeUsageCount(i,-1)<=0&&this.onStyleRemoved(i)}ngOnDestroy(){const r=this.styleNodesInDOM;r&&(r.forEach(i=>i.remove()),r.clear());for(const i of this.getAllStyles())this.onStyleRemoved(i);this.resetHostNodes()}addHost(r){this.hostNodes.add(r);for(const i of this.getAllStyles())this.addStyleToHost(r,i)}removeHost(r){this.hostNodes.delete(r)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(r){for(const i of this.hostNodes)this.addStyleToHost(i,r)}onStyleRemoved(r){var s,h;const i=this.styleRef;null==(h=null==(s=i.get(r))?void 0:s.elements)||h.forEach(y=>y.remove()),i.delete(r)}collectServerRenderedStyles(){var i;const r=null==(i=this.doc.head)?void 0:i.querySelectorAll(`style[${Im}="${this.appId}"]`);if(null!=r&&r.length){const s=new Map;return r.forEach(h=>{null!=h.textContent&&s.set(h.textContent,h)}),s}return null}changeUsageCount(r,i){const s=this.styleRef;if(s.has(r)){const h=s.get(r);return h.usage+=i,h.usage}return s.set(r,{usage:i,elements:[]}),i}getStyleElement(r,i){const s=this.styleNodesInDOM,h=null==s?void 0:s.get(i);if((null==h?void 0:h.parentNode)===r)return s.delete(i),h.removeAttribute(Im),h;{const y=this.doc.createElement("style");return this.nonce&&y.setAttribute("nonce",this.nonce),y.textContent=i,this.platformIsServer&&y.setAttribute(Im,this.appId),y}}addStyleToHost(r,i){var S;const s=this.getStyleElement(r,i);r.appendChild(s);const h=this.styleRef,y=null==(S=h.get(i))?void 0:S.elements;y?y.push(s):h.set(i,{elements:[s],usage:1})}resetHostNodes(){const r=this.hostNodes;r.clear(),r.add(this.doc.head)}static#e=this.\u0275fac=function(i){return new(i||t)(Ut(sl),Ut(Zi),Ut(Ei,8),Ut(Wo))};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac})}return t})();const xm={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},Om=/%COMP%/g,u$=new Zn("RemoveStylesOnCompDestroy",{providedIn:"root",factory:()=>!1});function u9(t,n){return n.map(r=>r.replace(Om,t))}let l9=(()=>{class t{constructor(r,i,s,h,y,S,N,H=null){this.eventManager=r,this.sharedStylesHost=i,this.appId=s,this.removeStylesOnCompDestroy=h,this.doc=y,this.platformId=S,this.ngZone=N,this.nonce=H,this.rendererByCompId=new Map,this.platformIsServer=Q4(S),this.defaultRenderer=new Rm(r,y,N,this.platformIsServer)}createRenderer(r,i){if(!r||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===yi.ShadowDom&&(i={...i,encapsulation:yi.Emulated});const s=this.getOrCreateRenderer(r,i);return s instanceof c9?s.applyToHost(r):s instanceof km&&s.applyStyles(),s}getOrCreateRenderer(r,i){const s=this.rendererByCompId;let h=s.get(i.id);if(!h){const y=this.doc,S=this.ngZone,N=this.eventManager,H=this.sharedStylesHost,ne=this.removeStylesOnCompDestroy,ce=this.platformIsServer;switch(i.encapsulation){case yi.Emulated:h=new c9(N,H,i,this.appId,ne,y,S,ce);break;case yi.ShadowDom:return new h$(N,H,r,i,y,S,this.nonce,ce);default:h=new km(N,H,i,ne,y,S,ce)}s.set(i.id,h)}return h}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(i){return new(i||t)(Ut(i9),Ut(s9),Ut(Zi),Ut(u$),Ut(sl),Ut(Wo),Ut(wi),Ut(Ei))};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac})}return t})();class Rm{constructor(n,r,i,s){this.eventManager=n,this.doc=r,this.ngZone=i,this.platformIsServer=s,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(n,r){return r?this.doc.createElementNS(xm[r]||r,n):this.doc.createElement(n)}createComment(n){return this.doc.createComment(n)}createText(n){return this.doc.createTextNode(n)}appendChild(n,r){(d9(n)?n.content:n).appendChild(r)}insertBefore(n,r,i){n&&(d9(n)?n.content:n).insertBefore(r,i)}removeChild(n,r){n&&n.removeChild(r)}selectRootElement(n,r){let i="string"==typeof n?this.doc.querySelector(n):n;if(!i)throw new Xt(-5104,!1);return r||(i.textContent=""),i}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,r,i,s){if(s){r=s+":"+r;const h=xm[s];h?n.setAttributeNS(h,r,i):n.setAttribute(r,i)}else n.setAttribute(r,i)}removeAttribute(n,r,i){if(i){const s=xm[i];s?n.removeAttributeNS(s,r):n.removeAttribute(`${i}:${r}`)}else n.removeAttribute(r)}addClass(n,r){n.classList.add(r)}removeClass(n,r){n.classList.remove(r)}setStyle(n,r,i,s){s&(Ka.DashCase|Ka.Important)?n.style.setProperty(r,i,s&Ka.Important?"important":""):n.style[r]=i}removeStyle(n,r,i){i&Ka.DashCase?n.style.removeProperty(r):n.style[r]=""}setProperty(n,r,i){n[r]=i}setValue(n,r){n.nodeValue=r}listen(n,r,i){if("string"==typeof n&&!(n=pm().getGlobalEventTarget(this.doc,n)))throw new Error(`Unsupported event target ${n} for event ${r}`);return this.eventManager.addEventListener(n,r,this.decoratePreventDefault(i))}decoratePreventDefault(n){return r=>{if("__ngUnwrap__"===r)return n;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>n(r)):n(r))&&r.preventDefault()}}}function d9(t){return"TEMPLATE"===t.tagName&&void 0!==t.content}class h$ extends Rm{constructor(n,r,i,s,h,y,S,N){super(n,h,y,N),this.sharedStylesHost=r,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const H=u9(s.id,s.styles);for(const ne of H){const ce=document.createElement("style");S&&ce.setAttribute("nonce",S),ce.textContent=ne,this.shadowRoot.appendChild(ce)}}nodeOrShadowRoot(n){return n===this.hostEl?this.shadowRoot:n}appendChild(n,r){return super.appendChild(this.nodeOrShadowRoot(n),r)}insertBefore(n,r,i){return super.insertBefore(this.nodeOrShadowRoot(n),r,i)}removeChild(n,r){return super.removeChild(this.nodeOrShadowRoot(n),r)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class km extends Rm{constructor(n,r,i,s,h,y,S,N){super(n,h,y,S),this.sharedStylesHost=r,this.removeStylesOnCompDestroy=s,this.styles=N?u9(N,i.styles):i.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class c9 extends km{constructor(n,r,i,s,h,y,S,N){const H=s+"-"+i.id;super(n,r,i,h,y,S,N,H),this.contentAttr=function l$(t){return"_ngcontent-%COMP%".replace(Om,t)}(H),this.hostAttr=function d$(t){return"_nghost-%COMP%".replace(Om,t)}(H)}applyToHost(n){this.applyStyles(),this.setAttribute(n,this.hostAttr,"")}createElement(n,r){const i=super.createElement(n,r);return super.setAttribute(i,this.contentAttr,""),i}}let f$=(()=>{class t extends o9{constructor(r){super(r)}supports(r){return!0}addEventListener(r,i,s){return r.addEventListener(i,s,!1),()=>this.removeEventListener(r,i,s)}removeEventListener(r,i,s){return r.removeEventListener(i,s)}static#e=this.\u0275fac=function(i){return new(i||t)(Ut(sl))};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac})}return t})();const h9=["alt","control","meta","shift"],p$={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},g$={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let m$=(()=>{class t extends o9{constructor(r){super(r)}supports(r){return null!=t.parseEventName(r)}addEventListener(r,i,s){const h=t.parseEventName(i),y=t.eventCallback(h.fullKey,s,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>pm().onAndCancel(r,h.domEventName,y))}static parseEventName(r){const i=r.toLowerCase().split("."),s=i.shift();if(0===i.length||"keydown"!==s&&"keyup"!==s)return null;const h=t._normalizeKey(i.pop());let y="",S=i.indexOf("code");if(S>-1&&(i.splice(S,1),y="code."),h9.forEach(H=>{const ne=i.indexOf(H);ne>-1&&(i.splice(ne,1),y+=H+".")}),y+=h,0!=i.length||0===h.length)return null;const N={};return N.domEventName=s,N.fullKey=y,N}static matchEventFullKeyCode(r,i){let s=p$[r.key]||r.key,h="";return i.indexOf("code.")>-1&&(s=r.code,h="code."),!(null==s||!s)&&(s=s.toLowerCase()," "===s?s="space":"."===s&&(s="dot"),h9.forEach(y=>{y!==s&&(0,g$[y])(r)&&(h+=y+".")}),h+=s,h===i)}static eventCallback(r,i,s){return h=>{t.matchEventFullKeyCode(h,r)&&s.runGuarded(()=>i(h))}}static _normalizeKey(r){return"esc"===r?"escape":r}static#e=this.\u0275fac=function(i){return new(i||t)(Ut(sl))};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac})}return t})();const p9=[{provide:Wo,useValue:"browser"},{provide:ia,useValue:function _$(){Lm.makeCurrent()},multi:!0},{provide:sl,useFactory:function v$(){return function Q2(t){kh=t}(document),document},deps:[]}],b$=c4(KS,"browser",p9),E$=new Zn(""),g9=[{provide:bf,useClass:class r${addToWindow(n){qe.getAngularTestability=(i,s=!0)=>{const h=n.findTestabilityInTree(i,s);if(null==h)throw new Xt(5103,!1);return h},qe.getAllAngularTestabilities=()=>n.getAllTestabilities(),qe.getAllAngularRootElements=()=>n.getAllRootElements(),qe.frameworkStabilizers||(qe.frameworkStabilizers=[]),qe.frameworkStabilizers.push(i=>{const s=qe.getAllAngularTestabilities();let h=s.length,y=!1;const S=function(N){y=y||N,h--,0==h&&i(y)};s.forEach(N=>{N.whenStable(S)})})}findTestabilityInTree(n,r,i){return null==r?null:n.getTestability(r)??(i?pm().isShadowRoot(r)?this.findTestabilityInTree(n,r.host,!0):this.findTestabilityInTree(n,r.parentElement,!0):null)}},deps:[]},{provide:s4,useClass:rm,deps:[wi,im,bf]},{provide:rm,useClass:rm,deps:[wi,im,bf]}],m9=[{provide:k,useValue:"root"},{provide:eu,useFactory:function y$(){return new eu},deps:[]},{provide:Am,useClass:f$,multi:!0,deps:[sl,wi,Wo]},{provide:Am,useClass:m$,multi:!0,deps:[sl]},l9,s9,i9,{provide:N_,useExisting:l9},{provide:class LT{},useClass:i$,deps:[]},[]];let w$=(()=>{class t{constructor(r){}static withServerTransition(r){return{ngModule:t,providers:[{provide:Zi,useValue:r.appId}]}}static#e=this.\u0275fac=function(i){return new(i||t)(Ut(E$,12))};static#t=this.\u0275mod=gt({type:t});static#n=this.\u0275inj=Uo({providers:[...m9,...g9],imports:[$T,XS]})}return t})();function b9(t,n,r,i,s,h,y){try{var S=t[h](y),N=S.value}catch(H){return void r(H)}S.done?n(N):Promise.resolve(N).then(i,s)}function Eo(t){return function(){var n=this,r=arguments;return new Promise(function(i,s){var h=t.apply(n,r);function y(N){b9(h,i,s,y,S,"next",N)}function S(N){b9(h,i,s,y,S,"throw",N)}y(void 0)})}}function al(t){return!!t&&(t instanceof Ee||w(t.lift)&&w(t.subscribe))}typeof window<"u"&&window;const{isArray:M$}=Array,{getPrototypeOf:P$,prototype:L$,keys:A$}=Object;const{isArray:O$}=Array;function F$(t,n){return t.reduce((r,i,s)=>(r[i]=n[s],r),{})}function U$(...t){const n=function Di(t){return w(Qi(t))?t.pop():void 0}(t),{args:r,keys:i}=function I$(t){if(1===t.length){const n=t[0];if(M$(n))return{args:n,keys:null};if(function x$(t){return t&&"object"==typeof t&&P$(t)===L$}(n)){const r=A$(n);return{args:r.map(i=>n[i]),keys:r}}}return{args:t,keys:null}}(t),s=new Ee(h=>{const{length:y}=r;if(!y)return void h.complete();const S=new Array(y);let N=y,H=y;for(let ne=0;ne{ce||(ce=!0,H--),S[ne]=$e},()=>N--,void 0,()=>{(!N||!ce)&&(H||h.next(i?F$(i,S):S),h.complete())}))}});return n?s.pipe(function k$(t){return $t(n=>function R$(t,n){return O$(n)?t(...n):t(n)}(t,n))}(n)):s}function E9(...t){return function B$(){return Hn(1)}()(er(t,Pi(t)))}function w9(t){return new Ee(n=>{yn(t()).subscribe(n)})}function Uf(t){return t<=0?()=>Wn:ke((n,r)=>{let i=0;n.subscribe(Je(r,s=>{++i<=t&&(r.next(s),t<=i&&r.complete())}))})}const S9={now:()=>(S9.delegate||Date).now(),delegate:void 0};class D9 extends it{constructor(n=1/0,r=1/0,i=S9){super(),this._bufferSize=n,this._windowTime=r,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=r===1/0,this._bufferSize=Math.max(1,n),this._windowTime=Math.max(1,r)}next(n){const{isStopped:r,_buffer:i,_infiniteTimeWindow:s,_timestampProvider:h,_windowTime:y}=this;r||(i.push(n),!s&&i.push(h.now()+y)),this._trimBuffer(),super.next(n)}_subscribe(n){this._throwIfClosed(),this._trimBuffer();const r=this._innerSubscribe(n),{_infiniteTimeWindow:i,_buffer:s}=this,h=s.slice();for(let y=0;ynew D9(i,n,r),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:s})}class Lc{}let $9=(()=>{class t extends Lc{getTranslation(r){return rt({})}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=xd(t)))(i||t)}}(),t.\u0275prov=En({token:t,factory:t.\u0275fac}),t})();class Um{}let C9=(()=>{class t{handle(r){return r.key}}return t.\u0275fac=function(r){return new(r||t)},t.\u0275prov=En({token:t,factory:t.\u0275fac}),t})();function Bf(t,n){if(t===n)return!0;if(null===t||null===n)return!1;if(t!=t&&n!=n)return!0;let s,h,y,r=typeof t;if(r==typeof n&&"object"==r){if(!Array.isArray(t)){if(Array.isArray(n))return!1;for(h in y=Object.create(null),t){if(!Bf(t[h],n[h]))return!1;y[h]=!0}for(h in n)if(!(h in y)&&typeof n[h]<"u")return!1;return!0}if(!Array.isArray(n))return!1;if((s=t.length)==n.length){for(h=0;h{Bm(n[i])?i in t?r[i]=N9(t[i],n[i]):Object.assign(r,{[i]:n[i]}):Object.assign(r,{[i]:n[i]})}),r}class Hf{}let M9=(()=>{class t extends Hf{constructor(){super(...arguments),this.templateMatcher=/{{\s?([^{}\s]*)\s?}}/g}interpolate(r,i){let s;return s="string"==typeof r?this.interpolateString(r,i):"function"==typeof r?this.interpolateFunction(r,i):r,s}getValue(r,i){let s="string"==typeof i?i.split("."):[i];i="";do{i+=s.shift(),!Cu(r)||!Cu(r[i])||"object"!=typeof r[i]&&s.length?s.length?i+=".":r=void 0:(r=r[i],i="")}while(s.length);return r}interpolateFunction(r,i){return r(i)}interpolateString(r,i){return i?r.replace(this.templateMatcher,(s,h)=>{let y=this.getValue(i,h);return Cu(y)?y:s}):r}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=xd(t)))(i||t)}}(),t.\u0275prov=En({token:t,factory:t.\u0275fac}),t})();class od{}let P9=(()=>{class t extends od{compile(r,i){return r}compileTranslations(r,i){return r}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=xd(t)))(i||t)}}(),t.\u0275prov=En({token:t,factory:t.\u0275fac}),t})();class L9{constructor(){this.currentLang=this.defaultLang,this.translations={},this.langs=[],this.onTranslationChange=new bo,this.onLangChange=new bo,this.onDefaultLangChange=new bo}}const Hm=new Zn("USE_STORE"),Vm=new Zn("USE_DEFAULT_LANG"),jm=new Zn("DEFAULT_LANGUAGE"),zm=new Zn("USE_EXTEND");let Ac=(()=>{class t{constructor(r,i,s,h,y,S=!0,N=!1,H=!1,ne){this.store=r,this.currentLoader=i,this.compiler=s,this.parser=h,this.missingTranslationHandler=y,this.useDefaultLang=S,this.isolate=N,this.extend=H,this.pending=!1,this._onTranslationChange=new bo,this._onLangChange=new bo,this._onDefaultLangChange=new bo,this._langs=[],this._translations={},this._translationRequests={},ne&&this.setDefaultLang(ne)}get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(r){this.isolate?this._defaultLang=r:this.store.defaultLang=r}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(r){this.isolate?this._currentLang=r:this.store.currentLang=r}get langs(){return this.isolate?this._langs:this.store.langs}set langs(r){this.isolate?this._langs=r:this.store.langs=r}get translations(){return this.isolate?this._translations:this.store.translations}set translations(r){this.isolate?this._translations=r:this.store.translations=r}setDefaultLang(r){if(r===this.defaultLang)return;let i=this.retrieveTranslations(r);typeof i<"u"?(null==this.defaultLang&&(this.defaultLang=r),i.pipe(Uf(1)).subscribe(s=>{this.changeDefaultLang(r)})):this.changeDefaultLang(r)}getDefaultLang(){return this.defaultLang}use(r){if(r===this.currentLang)return rt(this.translations[r]);let i=this.retrieveTranslations(r);return typeof i<"u"?(this.currentLang||(this.currentLang=r),i.pipe(Uf(1)).subscribe(s=>{this.changeLang(r)}),i):(this.changeLang(r),rt(this.translations[r]))}retrieveTranslations(r){let i;return(typeof this.translations[r]>"u"||this.extend)&&(this._translationRequests[r]=this._translationRequests[r]||this.getTranslation(r),i=this._translationRequests[r]),i}getTranslation(r){this.pending=!0;const i=this.currentLoader.getTranslation(r).pipe(T9(1),Uf(1));return this.loadingTranslations=i.pipe($t(s=>this.compiler.compileTranslations(s,r)),T9(1),Uf(1)),this.loadingTranslations.subscribe({next:s=>{this.translations[r]=this.extend&&this.translations[r]?{...s,...this.translations[r]}:s,this.updateLangs(),this.pending=!1},error:s=>{this.pending=!1}}),i}setTranslation(r,i,s=!1){i=this.compiler.compileTranslations(i,r),this.translations[r]=(s||this.extend)&&this.translations[r]?N9(this.translations[r],i):i,this.updateLangs(),this.onTranslationChange.emit({lang:r,translations:this.translations[r]})}getLangs(){return this.langs}addLangs(r){r.forEach(i=>{-1===this.langs.indexOf(i)&&this.langs.push(i)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResult(r,i,s){let h;if(i instanceof Array){let y={},S=!1;for(let N of i)y[N]=this.getParsedResult(r,N,s),al(y[N])&&(S=!0);return S?U$(i.map(H=>al(y[H])?y[H]:rt(y[H]))).pipe($t(H=>{let ne={};return H.forEach((ce,$e)=>{ne[i[$e]]=ce}),ne})):y}if(r&&(h=this.parser.interpolate(this.parser.getValue(r,i),s)),typeof h>"u"&&null!=this.defaultLang&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(h=this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang],i),s)),typeof h>"u"){let y={key:i,translateService:this};typeof s<"u"&&(y.interpolateParams=s),h=this.missingTranslationHandler.handle(y)}return typeof h<"u"?h:i}get(r,i){if(!Cu(r)||!r.length)throw new Error('Parameter "key" required');if(this.pending)return this.loadingTranslations.pipe(function H$(t,n){return w(n)?Ur(t,n,1):Ur(t,1)}(s=>al(s=this.getParsedResult(s,r,i))?s:rt(s)));{let s=this.getParsedResult(this.translations[this.currentLang],r,i);return al(s)?s:rt(s)}}getStreamOnTranslationChange(r,i){if(!Cu(r)||!r.length)throw new Error('Parameter "key" required');return E9(w9(()=>this.get(r,i)),this.onTranslationChange.pipe(Yt(s=>{const h=this.getParsedResult(s.translations,r,i);return"function"==typeof h.subscribe?h:rt(h)})))}stream(r,i){if(!Cu(r)||!r.length)throw new Error('Parameter "key" required');return E9(w9(()=>this.get(r,i)),this.onLangChange.pipe(Yt(s=>{const h=this.getParsedResult(s.translations,r,i);return al(h)?h:rt(h)})))}instant(r,i){if(!Cu(r)||!r.length)throw new Error('Parameter "key" required');let s=this.getParsedResult(this.translations[this.currentLang],r,i);if(al(s)){if(r instanceof Array){let h={};return r.forEach((y,S)=>{h[r[S]]=r[S]}),h}return r}return s}set(r,i,s=this.currentLang){this.translations[s][r]=this.compiler.compile(i,s),this.updateLangs(),this.onTranslationChange.emit({lang:s,translations:this.translations[s]})}changeLang(r){this.currentLang=r,this.onLangChange.emit({lang:r,translations:this.translations[r]}),null==this.defaultLang&&this.changeDefaultLang(r)}changeDefaultLang(r){this.defaultLang=r,this.onDefaultLangChange.emit({lang:r,translations:this.translations[r]})}reloadLang(r){return this.resetLang(r),this.getTranslation(r)}resetLang(r){this._translationRequests[r]=void 0,this.translations[r]=void 0}getBrowserLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let r=window.navigator.languages?window.navigator.languages[0]:null;return r=r||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,typeof r>"u"?void 0:(-1!==r.indexOf("-")&&(r=r.split("-")[0]),-1!==r.indexOf("_")&&(r=r.split("_")[0]),r)}getBrowserCultureLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let r=window.navigator.languages?window.navigator.languages[0]:null;return r=r||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,r}}return t.\u0275fac=function(r){return new(r||t)(Ut(L9),Ut(Lc),Ut(od),Ut(Hf),Ut(Um),Ut(Vm),Ut(Hm),Ut(zm),Ut(jm))},t.\u0275prov=En({token:t,factory:t.\u0275fac}),t})(),V$=(()=>{class t{constructor(r,i){this.translate=r,this._ref=i,this.value="",this.lastKey=null,this.lastParams=[]}updateValue(r,i,s){let h=y=>{this.value=void 0!==y?y:r,this.lastKey=r,this._ref.markForCheck()};if(s){let y=this.translate.getParsedResult(s,r,i);al(y.subscribe)?y.subscribe(h):h(y)}this.translate.get(r,i).subscribe(h)}transform(r,...i){if(!r||!r.length)return r;if(Bf(r,this.lastKey)&&Bf(i,this.lastParams))return this.value;let s;if(Cu(i[0])&&i.length)if("string"==typeof i[0]&&i[0].length){let h=i[0].replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g,'"$2":').replace(/:(\s)?(\')(.*?)(\')/g,':"$3"');try{s=JSON.parse(h)}catch{throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${i[0]}`)}}else"object"==typeof i[0]&&!Array.isArray(i[0])&&(s=i[0]);return this.lastKey=r,this.lastParams=i,this.updateValue(r,s),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(h=>{this.lastKey&&h.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(r,s,h.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(h=>{this.lastKey&&(this.lastKey=null,this.updateValue(r,s,h.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(r,s))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}}return t.\u0275fac=function(r){return new(r||t)(ar(Ac,16),ar(am,16))},t.\u0275pipe=kt({name:"translate",type:t,pure:!1}),t.\u0275prov=En({token:t,factory:t.\u0275fac}),t})(),j$=(()=>{class t{static forRoot(r={}){return{ngModule:t,providers:[r.loader||{provide:Lc,useClass:$9},r.compiler||{provide:od,useClass:P9},r.parser||{provide:Hf,useClass:M9},r.missingTranslationHandler||{provide:Um,useClass:C9},L9,{provide:Hm,useValue:r.isolate},{provide:Vm,useValue:r.useDefaultLang},{provide:zm,useValue:r.extend},{provide:jm,useValue:r.defaultLanguage},Ac]}}static forChild(r={}){return{ngModule:t,providers:[r.loader||{provide:Lc,useClass:$9},r.compiler||{provide:od,useClass:P9},r.parser||{provide:Hf,useClass:M9},r.missingTranslationHandler||{provide:Um,useClass:C9},{provide:Hm,useValue:r.isolate},{provide:Vm,useValue:r.useDefaultLang},{provide:zm,useValue:r.extend},{provide:jm,useValue:r.defaultLanguage},Ac]}}}return t.\u0275fac=function(r){return new(r||t)},t.\u0275mod=gt({type:t}),t.\u0275inj=Uo({}),t})(),Ic=(()=>{class t{get(){return{get:()=>Promise.resolve(),query:(r=Eo(function*(i,s){if("medic-client/contacts_by_phone"===i)return{rows:[]};throw new Error(`Unsupported selector: DbService.get.query(${i}, ${JSON.stringify(s)})`)}),function(s,h){return r.apply(this,arguments)}),getAttachment:()=>Promise.resolve(new Blob)};var r}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var z$=p(304);class au{static#e=this.DOC_ID_PREFIX="messages-";static#t=this.translationsDocIdMatcher=new RegExp(`^${au.DOC_ID_PREFIX}(.+)$`);static test(n){return n&&au.translationsDocIdMatcher.test(n)}static getLocaleCode(n){if(!n)return!1;const r=n.toString().match(au.translationsDocIdMatcher);return r&&r[1]}static getTranslationsDocId(n){return!!n&&au.DOC_ID_PREFIX+n}static#n=this.\u0275fac=function(r){return new(r||au)};static#r=this.\u0275prov=En({token:au,factory:au.\u0275fac})}let G$=(()=>{class t{constructor(r){this.db=r,this.loadingPromises={}}getTranslation(r){if(!r)return;if(this.loadingPromises[r])return er(this.loadingPromises[r]);let i=!1;"test"===r&&(r="en",i=!0);const h=au.getTranslationsDocId(r),y=this.db.get().get(h).then(S=>{const N=Object.assign(S.generic||{},S.custom||{});return i&&(S=>{Object.keys(S).forEach(N=>{S[N]="-"+S[N]+"-"})})(N),z$.loadTranslations(N)}).catch(S=>{if([401,404].includes(S.status))return{};throw S}).finally(()=>{delete this.loadingPromises[r]});return this.loadingPromises[r]=y,er(y)}static#e=this.\u0275fac=function(i){return new(i||t)(Ut(Ic))};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac})}return t})();var W$=p(5870),Y$=p.n(W$);class Z$ extends od{constructor(){super(),this.doubleOrNoneCurlyBraces=new RegExp(/\{{|^[^{]+$/),this.messageFormat=new(Y$())([])}getCompiledMessageFormat(n,r){const i=this.messageFormat.compile(n,r);return s=>{try{return i(s)}catch{return console.warn("Error while interpolating",n),n}}}compile(n,r){if(this.doubleOrNoneCurlyBraces.test(n))return n;try{return this.getCompiledMessageFormat(n,r)}catch(s){return console.error("messageformat compile error",s),n}}compileTranslations(n,r){return Object.keys(n).forEach(i=>{n[i]=this.compile(n[i],r)}),n}}const Vf={schedule(t,n){const r=setTimeout(t,n);return()=>clearTimeout(r)},scheduleBeforeRender(t){if(typeof window>"u")return Vf.schedule(t,0);if(typeof window.requestAnimationFrame>"u")return Vf.schedule(t,16);const n=window.requestAnimationFrame(t);return()=>window.cancelAnimationFrame(n)}};let Gm;function rC(t,n,r){let i=r;return function K$(t){return!!t&&t.nodeType===Node.ELEMENT_NODE}(t)&&n.some((s,h)=>!("*"===s||!function J$(t,n){if(!Gm){const r=Element.prototype;Gm=r.matches||r.matchesSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector||r.webkitMatchesSelector}return t.nodeType===Node.ELEMENT_NODE&&Gm.call(t,n)}(t,s)||(i=h,0))),i}class oC{constructor(n,r){this.componentFactory=r.get(kl).resolveComponentFactory(n)}create(n){return new sC(this.componentFactory,n)}}class sC{constructor(n,r){this.componentFactory=n,this.injector=r,this.eventEmitters=new D9(1),this.events=this.eventEmitters.pipe(Yt(i=>Ii(...i))),this.componentRef=null,this.viewChangeDetectorRef=null,this.inputChanges=null,this.hasInputChanges=!1,this.implementsOnChanges=!1,this.scheduledChangeDetectionFn=null,this.scheduledDestroyFn=null,this.initialInputValues=new Map,this.unchangedInputs=new Set(this.componentFactory.inputs.map(({propName:i})=>i)),this.ngZone=this.injector.get(wi),this.elementZone=typeof Zone>"u"?null:this.ngZone.run(()=>Zone.current)}connect(n){this.runInZone(()=>{if(null!==this.scheduledDestroyFn)return this.scheduledDestroyFn(),void(this.scheduledDestroyFn=null);null===this.componentRef&&this.initializeComponent(n)})}disconnect(){this.runInZone(()=>{null===this.componentRef||null!==this.scheduledDestroyFn||(this.scheduledDestroyFn=Vf.schedule(()=>{null!==this.componentRef&&(this.componentRef.destroy(),this.componentRef=null,this.viewChangeDetectorRef=null)},10))})}getInputValue(n){return this.runInZone(()=>null===this.componentRef?this.initialInputValues.get(n):this.componentRef.instance[n])}setInputValue(n,r,i){this.runInZone(()=>{var s;i&&(r=i.call(null==(s=this.componentRef)?void 0:s.instance,r)),null!==this.componentRef?function Q$(t,n){return t===n||t!=t&&n!=n}(r,this.getInputValue(n))&&(void 0!==r||!this.unchangedInputs.has(n))||(this.recordInputChange(n,r),this.unchangedInputs.delete(n),this.hasInputChanges=!0,this.componentRef.instance[n]=r,this.scheduleDetectChanges()):this.initialInputValues.set(n,r)})}initializeComponent(n){const r=Rs.create({providers:[],parent:this.injector}),i=function nC(t,n){const r=t.childNodes,i=n.map(()=>[]);let s=-1;n.some((h,y)=>"*"===h&&(s=y,!0));for(let h=0,y=r.length;h{this.initialInputValues.has(n)&&this.setInputValue(n,this.initialInputValues.get(n),r)}),this.initialInputValues.clear()}initializeOutputs(n){const r=this.componentFactory.outputs.map(({propName:i,templateName:s})=>n.instance[i].pipe($t(y=>({name:s,value:y}))));this.eventEmitters.next(r)}callNgOnChanges(n){if(!this.implementsOnChanges||null===this.inputChanges)return;const r=this.inputChanges;this.inputChanges=null,n.instance.ngOnChanges(r)}markViewForCheck(n){this.hasInputChanges&&(this.hasInputChanges=!1,n.markForCheck())}scheduleDetectChanges(){this.scheduledChangeDetectionFn||(this.scheduledChangeDetectionFn=Vf.scheduleBeforeRender(()=>{this.scheduledChangeDetectionFn=null,this.detectChanges()}))}recordInputChange(n,r){if(!this.implementsOnChanges)return;null===this.inputChanges&&(this.inputChanges={});const i=this.inputChanges[n];if(i)return void(i.currentValue=r);const s=this.unchangedInputs.has(n),h=s?void 0:this.getInputValue(n);this.inputChanges[n]=new Sa(h,r,s)}detectChanges(){null!==this.componentRef&&(this.callNgOnChanges(this.componentRef),this.markViewForCheck(this.viewChangeDetectorRef),this.componentRef.changeDetectorRef.detectChanges())}runInZone(n){return this.elementZone&&Zone.current!==this.elementZone?this.ngZone.run(n):n()}}class aC extends HTMLElement{constructor(){super(...arguments),this.ngElementEventsSubscription=null}}var jf,lC=new Uint8Array(16);function dC(){if(!jf&&!(jf=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return jf(lC)}const cC=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;for(var Io=[],Wm=0;Wm<256;++Wm)Io.push((Wm+256).toString(16).substr(1));const gC=function pC(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=(Io[t[n+0]]+Io[t[n+1]]+Io[t[n+2]]+Io[t[n+3]]+"-"+Io[t[n+4]]+Io[t[n+5]]+"-"+Io[t[n+6]]+Io[t[n+7]]+"-"+Io[t[n+8]]+Io[t[n+9]]+"-"+Io[t[n+10]]+Io[t[n+11]]+Io[t[n+12]]+Io[t[n+13]]+Io[t[n+14]]+Io[t[n+15]]).toLowerCase();if(!function hC(t){return"string"==typeof t&&cC.test(t)}(r))throw TypeError("Stringified UUID is invalid");return r},zf=function mC(t,n,r){var i=(t=t||{}).random||(t.rng||dC)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,n){r=r||0;for(var s=0;s<16;++s)n[r+s]=i[s];return n}return gC(i)};var _C=p(6589);const sd={getElementXPath:function(t){return t&&t.id?'//*[@id="'+t.id+'"]':sd.getElementTreeXPath(t)},getElementTreeXPath:function(t){for(var n=[];t&&t.nodeType==Node.ELEMENT_NODE;t=t.parentNode){for(var r=0,i=!1,s=t.previousSibling;s;s=s.previousSibling)s.nodeType!=Node.DOCUMENT_TYPE_NODE&&s.nodeName==t.nodeName&&++r;for(s=t.nextSibling;s&&!i;s=s.nextSibling)s.nodeName==t.nodeName&&(i=!0);n.splice(0,0,(t.prefix?t.prefix+":":"")+t.localName+(r||i?"["+(r+1)+"]":""))}return n.length?"/"+n.join("/"):null}};let vC=(()=>{class t{add(r,i,s,h,y){r&&(r._attachments||(r._attachments={}),y||(s=new Blob([s],{type:h})),r._attachments[i]={data:s,content_type:h})}remove(r,i){!r||!r._attachments||!i||delete r._attachments[i]}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const A9="object"==typeof __webpack_require__.g&&__webpack_require__.g&&__webpack_require__.g.Object===Object&&__webpack_require__.g;var EC="object"==typeof self&&self&&self.Object===Object&&self;const uu=A9||EC||Function("return this")(),Nu=uu.Symbol;var I9=Object.prototype,DC=I9.hasOwnProperty,TC=I9.toString,xc=Nu?Nu.toStringTag:void 0;var MC=Object.prototype.toString;var x9=Nu?Nu.toStringTag:void 0;const lu=function xC(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":x9&&x9 in Object(t)?function $C(t){var n=DC.call(t,xc),r=t[xc];try{t[xc]=void 0;var i=!0}catch{}var s=TC.call(t);return i&&(n?t[xc]=r:delete t[xc]),s}(t):function PC(t){return MC.call(t)}(t)},da=Array.isArray,du=function RC(t){return null!=t&&"object"==typeof t};let Ym=(()=>{class t{withElements(r){return Array.from(r).filter(i=>i.nodeType===Node.ELEMENT_NODE)}findChildNode(r,i){return this.withElements(r.childNodes).find(s=>s.nodeName===i)}getHiddenFieldListRecursive(r,i,s){r.forEach(h=>{const y=i+h.nodeName,S=h.attributes.getNamedItem("tag");if(S&&S.value&&"hidden"===S.value.toLowerCase())s.add(y);else{const N=this.withElements(h.childNodes);this.getHiddenFieldListRecursive(N,y+".",s)}})}nodesToJs(r,i,s){i=i||[],s=s||"";const h={};return this.withElements(r).forEach(y=>{const S=y.attributes.getNamedItem("type"),N=s+"/"+y.nodeName;let H;H=this.withElements(y.childNodes).length>0?this.nodesToJs(y.childNodes,i,N):S&&"binary"===S.value?"":y.textContent,-1!==i.indexOf(N)?(h[y.nodeName]||(h[y.nodeName]=[]),h[y.nodeName].push(H)):h[y.nodeName]=H}),h}repeatsToJs(r){const i=this.findChildNode(r,"repeat");if(!i)return;const s={};return this.withElements(i.childNodes).forEach(h=>{const y=h.nodeName+"_data";s[y]||(s[y]=[]),s[y].push(this.nodesToJs(h.childNodes))}),s}findCurrentElement(r,i,s){if(s){const h=s(i),y=r.find(h);return y.length>1&&console.warn(`Enketo bindJsonToXml: Using the matcher "${h}" we found ${y.length} elements. We should only ever bind one.`,r,i),y}return r.children(i)}bindJsonToXml(r,i,s){if(r.removeAttr("jr:template"),r.removeAttr("template"),null!==i&&"object"==typeof i){if(Array.isArray(i)){const h=r.parent();return r.remove(),void i.forEach(y=>{const S=r.clone();this.bindJsonToXml(S,y),h.append(S)})}r.children().length||this.bindJsonToXml(r,i._id),Object.keys(i).forEach(h=>{const y=i[h],S=this.findCurrentElement(r,h,s);this.bindJsonToXml(S,y)})}else r.text(i)}getHiddenFieldList(r,i){if(!(r=$.parseXML(r).firstChild))return;const s=this.withElements(r.childNodes),h=new Set(i);return this.getHiddenFieldListRecursive(s,"",h),[...h]}getRepeatPaths(r){return $(r).find("repeat[nodeset]").map((i,s)=>$(s).attr("nodeset")).get()}reportRecordToJs(r,i){const s=$.parseXML(r).firstChild;if(!i)return this.nodesToJs(s.childNodes);const h=this.getRepeatPaths(i);return this.nodesToJs(s.childNodes,h,"/"+s.nodeName)}contactRecordToJs(r){const i=$.parseXML(r).firstChild,s={doc:null,siblings:{}},h=this.repeatsToJs(i);h&&(s.repeats=h);const y=["meta","inputs","repeat"];return this.withElements(i.childNodes).filter(S=>!y.includes(S.nodeName)&&S.childElementCount>0).forEach(S=>{s.doc?s.siblings[S.nodeName]=this.nodesToJs(S.childNodes):s.doc=this.nodesToJs(S.childNodes)}),s}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),BC=(()=>{class t{constructor(r){this.enketoTranslationService=r}get(r,i,s){if(s&&function FC(t){return"string"==typeof t||!da(t)&&du(t)&&"[object String]"==lu(t)}(s))return s;const y=$($.parseXML(i)).find("model instance").children().first(),S=y.find(">inputs>user");return s&&this.enketoTranslationService.bindJsonToXml(y,s,N=>">%, >inputs>%".replace(/%/g,N)),S.length&&this.enketoTranslationService.bindJsonToXml(S,r),(new XMLSerializer).serializeToString(y[0])}static#e=this.\u0275fac=function(i){return new(i||t)(Ut(Ym))};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),O9=(()=>{class t{constructor(){}extract(r){if(!r)return r;const i={_id:r._id};let s=i;for(;r.parent;)s.parent={_id:r.parent._id},s=s.parent,r=r.parent;return i}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const ad=function jC(t,n){return t===n||t!=t&&n!=n},Gf=function zC(t,n){for(var r=t.length;r--;)if(ad(t[r][0],n))return r;return-1};var WC=Array.prototype.splice;function ud(t){var n=-1,r=null==t?0:t.length;for(this.clear();++n-1},ud.prototype.set=function QC(t,n){var r=this.__data__,i=Gf(r,t);return i<0?(++this.size,r.push([t,n])):r[i][1]=n,this};const Wf=ud,cu=function lN(t){var n=typeof t;return null!=t&&("object"==n||"function"==n)},R9=function pN(t){if(!cu(t))return!1;var n=lu(t);return"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n};var t,gN=uu["__core-js_shared__"],k9=(t=/[^.]+$/.exec(gN&&gN.keys&&gN.keys.IE_PROTO||""))?"Symbol(src)_1."+t:"";var vN=Function.prototype.toString;const ul=function bN(t){if(null!=t){try{return vN.call(t)}catch{}try{return t+""}catch{}}return""};var wN=/^\[object .+?Constructor\]$/,CN=RegExp("^"+Function.prototype.toString.call(Object.prototype.hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");const MN=function NN(t){return!(!cu(t)||function mN(t){return!!k9&&k9 in t}(t))&&(R9(t)?CN:wN).test(ul(t))},ll=function AN(t,n){var r=function PN(t,n){return null==t?void 0:t[n]}(t,n);return MN(r)?r:void 0},Oc=ll(uu,"Map"),Rc=ll(Object,"create");var HN=Object.prototype.hasOwnProperty;var GN=Object.prototype.hasOwnProperty;function ld(t){var n=-1,r=null==t?0:t.length;for(this.clear();++nS))return!1;var H=h.get(t),ne=h.get(n);if(H&&ne)return H==n&&ne==t;var ce=-1,$e=!0,Ue=2&r?new yM:void 0;for(h.set(t,n),h.set(n,t);++ce-1&&t%1==0&&t-1&&t%1==0&&t<=9007199254740991};var Si={};Si["[object Float32Array]"]=Si["[object Float64Array]"]=Si["[object Int8Array]"]=Si["[object Int16Array]"]=Si["[object Int32Array]"]=Si["[object Uint8Array]"]=Si["[object Uint8ClampedArray]"]=Si["[object Uint16Array]"]=Si["[object Uint32Array]"]=!0,Si["[object Arguments]"]=Si["[object Array]"]=Si["[object ArrayBuffer]"]=Si["[object Boolean]"]=Si["[object DataView]"]=Si["[object Date]"]=Si["[object Error]"]=Si["[object Function]"]=Si["[object Map]"]=Si["[object Number]"]=Si["[object Object]"]=Si["[object RegExp]"]=Si["[object Set]"]=Si["[object String]"]=Si["[object WeakMap]"]=!1;var q9= true&&exports&&!exports.nodeType&&exports,kc=q9&&"object"=="object"&&module&&!module.nodeType&&module,Qm=kc&&kc.exports===q9&&A9.process,KP=function(){try{return kc&&kc.require&&kc.require("util").types||Qm&&Qm.binding&&Qm.binding("util")}catch{}}(),X9=KP&&KP.isTypedArray;const J9=X9?function YP(t){return function(n){return t(n)}}(X9):function GP(t){return du(t)&&Jm(t.length)&&!!Si[lu(t)]};var QP=Object.prototype.hasOwnProperty;const Q9=function eL(t,n){var r=da(t),i=!r&&G9(t),s=!r&&!i&&Km(t),h=!r&&!i&&!s&&J9(t),y=r||i||s||h,S=y?function iP(t,n){for(var r=-1,i=Array(t);++r-1?s[h?n[y]:y]:void 0}}(function JA(t,n,r){var i=null==t?0:t.length;if(!i)return-1;var s=null==r?0:function qA(t){var n=ZA(t),r=n%1;return n==n?r?n-r:n:0}(r);return s<0&&(s=XA(i+s,0)),function AA(t,n,r,i){for(var s=t.length,h=r+(i?1:-1);i?h--:++h0){if(++n>=800)return arguments[0]}else n=0;return t.apply(void 0,arguments)}}(_I);const DI=SI,l0=function TI(t,n){return DI(function fI(t,n,r){return n=Nb(void 0===n?t.length-1:n,0),function(){for(var i=arguments,s=-1,h=Nb(i.length-n,0),y=Array(h);++s1?r[s-1]:void 0,y=s>2?r[2]:void 0;for(h=t.length>3&&"function"==typeof h?(s--,h):void 0,y&&d0(r[0],r[1],y)&&(h=s<3?void 0:h,s=1),n=Object(n);++i/g,ax=function rx(t){return function(n){return null==t?void 0:t[n]}}({"&":"&","<":"<",">":">",'"':""","'":"'"});var Rb=/[&<>"']/g,ux=RegExp(Rb.source);const kb={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:Ob,variable:"",imports:{_:{escape:function lx(t){return(t=a0(t))&&ux.test(t)?t.replace(Rb,ax):t}}}};var mx=/\b__p \+= '';/g,_x=/\b(__p \+=) '' \+/g,yx=/(__e\(.*?\)|\b__t\)) \+\n'';/g,vx=/[()=,{}\[\]\/\s]/,bx=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,np=/($^)/,Ex=/['\n\r\u2028\u2029\\]/g,Fb=Object.prototype.hasOwnProperty;let Tx=(()=>{class t{constructor(r){this.ngxTranslateService=r}getLabel(r,i){if(i=i||"en",da(r)){const s=eI(r,{locale:i});return s?s.content:r.length?r[0].content:void 0}return cu(r)?r[i]||function nI(t){return null==t?[]:Tb(t,Fc(t))}(r)[0]:r}get(r,i){if(!r)return;const s=this.getLabel(r,this.ngxTranslateService.currentLang);return i&&s&&-1!==s.indexOf("{{")?function Sx(t,n,r){var i=kb.imports._.templateSettings||kb;r&&d0(t,n,r)&&(n=void 0),t=a0(t),n=Pb({},n,i,xb);var S,N,s=Pb({},n.imports,i.imports,xb),h=Fc(s),y=Tb(s,h),H=0,ne=n.interpolate||np,ce="__p += '",$e=RegExp((n.escape||np).source+"|"+ne.source+"|"+(ne===Ob?bx:np).source+"|"+(n.evaluate||np).source+"|$","g"),Ue=Fb.call(n,"sourceURL")?"//# sourceURL="+(n.sourceURL+"").replace(/\s/g," ")+"\n":"";t.replace($e,function(Lt,vt,et,Vt,un,vn){return et||(et=Vt),ce+=t.slice(H,vn).replace(Ex,tx),vt&&(S=!0,ce+="' +\n__e("+vt+") +\n'"),un&&(N=!0,ce+="';\n"+un+";\n__p += '"),et&&(ce+="' +\n((__t = ("+et+")) == null ? '' : __t) +\n'"),H=vn+Lt.length,Lt}),ce+="';\n";var Xe=Fb.call(n,"variable")&&n.variable;if(Xe){if(vx.test(Xe))throw new Error("Invalid `variable` option passed into `_.template`")}else ce="with (obj) {\n"+ce+"\n}\n";ce=(N?ce.replace(mx,""):ce).replace(_x,"$1").replace(yx,"$1;"),ce="function("+(Xe||"obj")+") {\n"+(Xe?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(S?", __e = _.escape":"")+(N?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+ce+"return __p\n}";var ut=KI(function(){return Function(h,Ue+"return "+ce).apply(void 0,y)});if(ut.source=ce,Ab(ut))throw ut;return ut}(s)(i):s}static#e=this.\u0275fac=function(i){return new(i||t)(Ut(Ac))};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),c0=(()=>{class t{constructor(r){this.ngxTranslateService=r}fieldIsRequired(r){return this.get(r).then(i=>this.get("field is required",{field:i}))}invalidKey(r){return!r||!r.length}get(r,i){return this.invalidKey(r)?Promise.resolve(r):this.ngxTranslateService.get(r,i).toPromise()}instant(r,i){return this.invalidKey(r)?r:this.ngxTranslateService.instant(r,i)}static#e=this.\u0275fac=function(i){return new(i||t)(Ut(Ac))};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),$x=(()=>{class t{constructor(r,i,s,h,y,S,N,H){this.attachmentService=r,this.dbService=i,this.enketoPrepopulationDataService=s,this.enketoTranslationService=h,this.extractLineageService=y,this.translateFromService=S,this.translateService=N,this.ngZone=H,this.objUrls=[]}getCurrentForm(){return this.currentForm}replaceDataI18nTranslations(r){r.find("[data-i18n]").each((i,s)=>{const h=$(s);h.text(this.translateService.instant("enketo."+h.attr("data-i18n")))})}replaceJavarosaMediaWithLoaders(r){r.find("[data-media-src]").each((i,s)=>{const h=$(s),y=h.attr("lang"),S=h.is(".active")?"active":"";h.css("visibility","hidden").wrap(()=>'
                          ')})}replaceMediaLoaders(r,i){r.find("[data-media-src]").each((s,h)=>{const y=$(h),S=y.attr("data-media-src");this.dbService.get().getAttachment(i._id,S).then(N=>{const H=(window.URL||window.webkitURL).createObjectURL(N);this.objUrls.push(H),y.attr("src",H).css("visibility","").unwrap()}).catch(N=>{console.error("Error fetching media file",i._id,S,N),y.closest(".loader").hide()})})}handleKeypressOnInputField(r){if(!window.medicmobile_android||9!==r.keyCode&&13!==r.keyCode)return;const i=$(this);r.preventDefault();const s=i.closest(".question");if("page"!==s.attr("role")){const S=s.find("~ .question:not(.disabled):not(.or-appearance-hidden), ~ .repeat-buttons button.repeat:not(:disabled)");if(S.length)return void("LABEL"!==S[0].tagName?i.trigger("blur"):setTimeout(()=>{S.first().trigger("focus")},10))}i.trigger("change");const h=s.closest(".enketo"),y=h.find(".btn.next-page:enabled:not(.disabled)");y.length?y.trigger("click"):h.find(".btn.submit").trigger("click")}convertContactSummaryToXML(r){if(r)try{const i=_C({context:r.context});return{id:"contact-summary",xml:(new DOMParser).parseFromString(i,"text/xml")}}catch{throw console.error("Error while converting app_summary.contact_summary.context to xml."),new Error("contact_summary context is misconfigured")}}getEnketoForm(r,i,s,h,y){var S=this;return Eo(function*(){const N=S.convertContactSummaryToXML(h),H=yield S.enketoPrepopulationDataService.get(y,i.model,s),ne={modelStr:i.model,instanceStr:H};N&&(ne.external=[N]);const ce=r.find("form")[0];return new window.EnketoForm(ce,ne,{language:y.language})})()}renderFromXmls(r,i){const{doc:s,instanceData:h,titleKey:y,wrapper:S,isFormInModal:N,contactSummary:H}=r;return S.find(".container").first().html(s.html.get(0)),this.getEnketoForm(S,s,h,H,i).then(ce=>{this.currentForm=ce;const $e=this.currentForm.init();if(null!=$e&&$e.length)return Promise.reject(new Error(JSON.stringify($e)))}).then(()=>this.getFormTitle(y,s)).then(ce=>(this.setFormTitle(S,ce),S.show(),S.find("input").on("keydown",this.handleKeypressOnInputField),this.setNavigation(this.currentForm,S,!N),this.addPopStateHandler(this.currentForm,S),this.forceRecalculate(this.currentForm),this.currentForm.editStatus=!1,this.setupNavButtons(S,0),this.currentForm))}getFormTitle(r,i){return r?this.translateService.get(r):i.title?Promise.resolve(this.translateFromService.get(i.title)):void 0}setFormTitle(r,i){const s=r.find("#form-title");i?s.text(i):"No Title"===s.text()&&s.remove()}setNavigation(r,i,s=!0){s&&window.history.replaceState({enketo_page_number:0},""),i.find(".btn.next-page").off(".pagemode").on("click.pagemode",()=>(r.pages._next().then(h=>{if(h){const y=r.pages._getCurrentIndex();s&&window.history.pushState({enketo_page_number:y},""),this.setupNavButtons(i,y)}this.forceRecalculate(r)}),!1)),i.find(".btn.previous-page").off(".pagemode").on("click.pagemode",()=>{let h;return s?(window.history.back(),h=r.pages._getCurrentIndex()-1):(r.pages._prev(),h=r.pages._getCurrentIndex()),this.setupNavButtons(i,h),this.forceRecalculate(r),!1})}addPopStateHandler(r,i){$(window).on("popstate.enketo-pagemode",s=>{if(s.originalEvent&&s.originalEvent.state&&"number"==typeof s.originalEvent.state.enketo_page_number&&i.find(".container").not(":empty")){const y=r.pages;s.originalEvent.state.enketo_page_number>y._getCurrentIndex()?y._next():y._prev()}})}registerEditedListener(r,i){i&&r.on("edited",()=>this.ngZone.run(()=>i()))}registerValuechangeListener(r,i){i&&r.on("xforms-value-changed",()=>this.ngZone.run(()=>i()))}registerAddrepeatListener(r,i){r.on("addrepeat",s=>{setTimeout(()=>{this.replaceMediaLoaders($(s.target),i)})})}registerEnketoListeners(r,i,s){this.registerAddrepeatListener(r,s.formDoc),this.registerEditedListener(r,s.editedListener),this.registerValuechangeListener(r,s.valuechangeListener),this.registerValuechangeListener(r,()=>this.setupNavButtons(r,i.pages._getCurrentIndex()))}renderForm(r,i,s){var h=this;return Eo(function*(){const{formDoc:y,instanceData:S,selector:N,titleKey:H,isFormInModal:ne}=r;h.replaceDataI18nTranslations(i.html),h.replaceJavarosaMediaWithLoaders(i.html);const ce={doc:i,wrapper:$(N),instanceData:S,titleKey:H,isFormInModal:ne,contactSummary:r.contactSummary},$e=yield h.renderFromXmls(ce,s),Ue=ce.wrapper.find(".container").first();return h.replaceMediaLoaders(Ue,y),h.registerEnketoListeners(ce.wrapper,$e,r),window.CHTCore.debugFormModel=()=>$e.model.getStr(),$e})()}xmlToDocs(r,i,s,h){const y=$.parseXML(h),S=$($(y).children()[0]),N=this.enketoTranslationService.getRepeatPaths(i),H=(vt,et)=>{if(!et){const Vt=$(vt).children("_id");Vt.length&&(et=Vt.text()),et||(et=zf())}vt._couchId=et};H(S[0],r._id||zf());const ne=vt=>{const et=y.evaluate(vt,y,null,XPathResult.ANY_TYPE,null);let Vt=et.iterateNext();for(;Vt;){if(Vt._couchId)return Vt._couchId;Vt=et.iterateNext()}},Ue=vt=>vt.outerHTML?vt.outerHTML:$("").append($(vt).clone()).html(),Xe=[];S.find("[db-doc]").filter((vt,et)=>{var Vt;return"true"===(null==(Vt=$(et).attr("db-doc"))?void 0:Vt.toLowerCase())}).each((vt,et)=>{H(et),Xe.push(et.tagName)}),S.find("[db-doc-ref]").each((vt,et)=>{const Vt=$(et),un=Vt.attr("db-doc-ref"),vn=((vt,et,Vt)=>{const un=(vt=>{if(!vt)return;vt=vt.trim();const et=null==N?void 0:N.find(Vt=>vt===Vt||vt.startsWith(`${Vt}/`));return et?et===vt?vt.split("/").slice(-1)[0]:vt.replace(`${et}/`,""):vt.startsWith("./")?vt.replace("./",""):void 0})(Vt);if(!un)return;vt.id||(vt.id=zf());const Bi=`//${vt.nodeName}[@id="${vt.id}"]/ancestor-or-self::*/descendant-or-self::${un}`;try{return y.evaluate(Bi,y),Bi}catch(ca){console.error("Error while evaluating closest path",Bi,ca)}})(et,0,un),Bi=vn&&ne(vn)||ne(un);Vt.text(Bi)});const ut=S.find("[db-doc=true]").map((vt,et)=>{const Vt=this.enketoTranslationService.reportRecordToJs(Ue(et));return Vt._id=ne(sd.getElementXPath(et)),Vt.reported_date=Date.now(),Vt}).get();r._id=ne("/*"),s&&(r.form_version=s),r.hidden_fields=this.enketoTranslationService.getHiddenFieldList(h,Xe);const Lt=(vt,et,Vt,un,vn)=>{const Bi="user-file"+((vn=vn||sd.getElementXPath(vt)).startsWith("/"+r.form)?vn:vn.replace(/^\/[^/]+/,"/"+r.form));this.attachmentService.add(r,Bi,et,Vt,un)};return S.find("[type=file]").each((vt,et)=>{const Vt=sd.getElementXPath(et),vn=$('input[type=file][name="'+Vt+'"]')[0].files[0];vn&&Lt(et,vn,vn.type,!1,Vt)}),S.find("[type=binary]").each((vt,et)=>{const Vt=$(et).text();Vt&&($(et).text(""),Lt(et,Vt,"image/png",!0))}),h=Ue(S[0]),this.attachmentService.remove(r,"content"),ut.unshift(r),r.fields=this.enketoTranslationService.reportRecordToJs(h,i),ut}update(r){return this.dbService.get().get(r).then(i=>(delete i.content,i))}create(r,i){return{form:r,type:"data_record",content_type:"xml",reported_date:Date.now(),contact:this.extractLineageService.extract(i),from:i&&i.phone}}forceRecalculate(r){r.calc.update(),r.output.update()}setupNavButtons(r,i){var y;if(null==(y=this.currentForm)||!y.pages)return;const s=this.currentForm.pages.activePages.length-1,h=r.find(".form-footer");h.removeClass("end"),h.find(".previous-page, .next-page").removeClass("disabled"),i>=s&&(h.addClass("end"),h.find(".next-page").addClass("disabled")),i<=0&&h.find(".previous-page").addClass("disabled")}prepareForSave(r){return Eo(function*(){if(!(yield r.validate()))throw new Error("Form is invalid");$("form.or").trigger("beforesave")})()}completeNewReport(r,i,s,h){var y=this;return Eo(function*(){return yield y.prepareForSave(i),y.ngZone.runOutsideAngular(Eo(function*(){const S=y.create(r,h);return y._save(i,s,S)}))})()}completeExistingReport(r,i,s){var h=this;return Eo(function*(){return yield h.prepareForSave(r),h.ngZone.runOutsideAngular(Eo(function*(){const y=yield h.update(s);return h._save(r,i,y)}))})()}_save(r,i,s){var h=this;return Eo(function*(){const y=r.getDataStr({irrelevant:!1});return h.xmlToDocs(s,i.xml,i.doc.xmlVersion,y)})()}unload(r){r===this.currentForm&&($(window).off(".enketo-pagemode"),null==r||r.resetView(),this.objUrls.forEach(i=>{(window.URL||window.webkitURL).revokeObjectURL(i)}),delete window.CHTCore.debugFormModel,delete this.currentForm,this.objUrls.length=0)}static#e=this.\u0275fac=function(i){return new(i||t)(Ut(vC),Ut(Ic),Ut(BC),Ut(Ym),Ut(O9),Ut(Tx),Ut(c0),Ut(wi))};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class Cx{constructor(n,r,i,s){this.selector=n,this.type=r,this.formDoc=i,this.instanceData=s}shouldEvaluateExpression(){return!("task"===this.type||"report"===this.type&&this.editing)}requiresContact(){return"contact"!==this.type}}var Nx=p(3463),Mx=p(5598),Px=p.n(Mx),Lx=p(3420),Ub=Object.prototype,Ax=Ub.hasOwnProperty,Ix=l0(function(t,n){t=Object(t);var r=-1,i=n.length,s=i>2?n[2]:void 0;for(s&&d0(n[0],n[1],s)&&(i=1);++r{class t{constructor(r,i,s,h){this.dbService=r,this.enketoTranslationService=i,this.extractLineageService=s,this.ngZone=h,this.CONTACT_FIELD_NAMES=["parent","contact"]}prepareSubmittedDocsForSave(r,i,s){r?xx(i.doc,r):Object.assign(i.doc,s);const h=this.prepare(i.doc);return this.prepareAndAttachSiblingDocs(i.doc,r,i.siblings).then(y=>{const S=H=>{H.parent=H.parent&&this.extractLineageService.extract(H.parent),H.contact=H.contact&&this.extractLineageService.extract(H.contact)};y.forEach(S),S(h);const N=this.prepareRepeatedDocs(i.doc,i.repeats);return{docId:h._id,preparedDocs:[h].concat(N,y)}})}prepare(r){return r._id||(r._id=zf()),r._rev||(r.reported_date=Date.now()),r}prepareRepeatedDocs(r,i){return((null==i?void 0:i.child_data)||[]).map(h=>(h.parent=this.extractLineageService.extract(r),this.prepare(h)))}extractIfRequired(r,i){return this.CONTACT_FIELD_NAMES.includes(r)?this.extractLineageService.extract(i):i}prepareNewSibling(r,i,s){const h=this.prepare(s[i]);return h.type||(h.type="person"),"PARENT"===h.parent?(delete h.parent,r[i]={...h},h.parent=r):r[i]=this.extractIfRequired(i,h),h}getContact(r,i,s){return this.dbService.get().get(s).then(h=>{r[i]=this.extractIfRequired(i,h)})}prepareAndAttachSiblingDocs(r,i,s){if(!r._id)throw new Error("doc passed must already be prepared with an _id");const h=[];let y=Promise.resolve();return this.CONTACT_FIELD_NAMES.forEach(S=>{var H;let N=r[S];if(cu(N)&&(N=r[S]._id),N)if("NEW"===N){const ne=this.prepareNewSibling(r,S,s);h.push(ne)}else(null==(H=null==i?void 0:i[S])?void 0:H._id)===N?r[S]=i[S]:y=y.then(()=>this.getContact(r,S,N))}),y.then(()=>h)}save(r,i,s,h){var y=this;return Eo(function*(){return y.ngZone.runOutsideAngular(Eo(function*(){const S=i?yield y.dbService.get().get(i):null,N=y.enketoTranslationService.contactRecordToJs(r.getDataStr({irrelevant:!1})),H=yield y.prepareSubmittedDocsForSave(S,N,s);if(h)for(const ne of H.preparedDocs)ne.form_version=h;return H}))})()}static#e=this.\u0275fac=function(i){return new(i||t)(Ut(Ic),Ut(Ym),Ut(O9),Ut(wi))};static#t=this.\u0275prov=En({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Rx(t,n){1&t&&uf(0,"div",16)}function kx(t,n){if(1&t&&(Lo(0,"span",17),Vr(1),Ao()),2&t){const r=qy();Ts(1),nl(null==r.status?null:r.status.error)}}let Fx=(()=>{class t{constructor(r,i,s){this.contactSaveService=r,this.enketoService=i,this.translateService=s,this.DEFAULT_FORM_ID="cht-form-id",this.DEFAULT_USER={contact_id:"default_user",language:"en"},this.DEFAULT_STATUS={saving:!1,error:null},this.HARDCODED_TYPES=["district_hospital","health_center","clinic","person"],this._formId=this.DEFAULT_FORM_ID,this._content=null,this._user=this.DEFAULT_USER,this.reRenderForm=!1,this.editing=!1,this.status={...this.DEFAULT_STATUS},this.onRender=new bo,this.onCancel=new bo,this.onSubmit=new bo,Nx.init({},Lx.toBik_text,Px(),{})}set formId(r){if(null==r||!r.trim().length)throw new Error("The Form Id must be populated.");this._formId=r,this.queueRenderForm()}set formHtml(r){if(null==r||!r.trim().length)throw new Error("The Form HTML must be populated.");this._formHtml=r,this.queueRenderForm()}set formModel(r){if(null==r||!r.trim().length)throw new Error("The Form Model must be populated.");this._formModel=r,this.queueRenderForm()}set formXml(r){if(null==r||!r.trim().length)throw new Error("The Form XML must be populated.");this._formXml=r,this.queueRenderForm()}set contactSummary(r){this._contactSummary=r?{context:r}:void 0,this.queueRenderForm()}set contactType(r){this._contactType=r,this.queueRenderForm()}set content(r){var i;this._content=r,null!=(i=this._content)&&i.contact&&!this._content.source&&(this._content.source="contact"),this.queueRenderForm()}set user(r){if(!r)throw new Error("The user must be populated.");this._user={...this.DEFAULT_USER,...r},this.queueRenderForm()}get formId(){return this._formId}cancelForm(){this.tearDownForm(),this.onCancel.emit()}submitForm(){var r=this;return Eo(function*(){r.status.saving=!0;try{const i=yield r.getDocsFromForm();r.onSubmit.emit(i)}catch(i){console.error("Error submitting form data: ",i),r.status.error=yield r.translateService.get("error.report.save")}finally{r.status.saving=!1}})()}getDocsFromForm(){var r=this;return Eo(function*(){var h;const i=r.enketoService.getCurrentForm();if(r._contactType){const y=r.HARDCODED_TYPES.includes(r._contactType)?{type:r._contactType}:{type:"contact",contact_type:r._contactType},{preparedDocs:S}=yield r.contactSaveService.save(i,null,y,null);return S}return r.enketoService.completeNewReport(r._formId,i,{xml:r._formXml,doc:{}},null==(h=r._content)?void 0:h.contact)})()}queueRenderForm(){this.currentRender?this.reRenderForm=!0:this.currentRender=this.renderForm().catch(r=>console.error("Error rendering form: ",r)).finally(()=>{this.currentRender=void 0,this.reRenderForm&&(this.reRenderForm=!1,this.queueRenderForm())})}renderForm(){var r=this;return Eo(function*(){if(r.unloadForm(),!r._formHtml||!r._formModel||!r._formXml)return;const i=`#${r._formId}`;if(!$(i).length)return r.waitForSelector(i).then(()=>r.renderForm());const N=new Cx(i,r._contactType?"contact":"report",{_id:r._formId},r._content);N.editedListener=()=>r.editing=!0,N.valuechangeListener=()=>r.status.error=null,N.contactSummary=r._contactSummary;const H=r.getFormDetails();yield r.enketoService.renderForm(N,H,r._user),r.onRender.emit()})()}unloadForm(){const r=this.enketoService.getCurrentForm();r&&this.enketoService.unload(r)}waitForSelector(r){return Eo(function*(){return new Promise(i=>{const s=new MutationObserver(()=>{if($(r).length)return s.disconnect(),i(!0)});s.observe($(".body").get(0),{subtree:!0,attributeFilter:["id"]})})})()}getFormDetails(){const r=$(this._formHtml),i=1===$(this._formModel).find('> instance[id="contact-summary"]').length;return{html:r,model:this._formModel,hasContactSummary:i}}tearDownForm(){this.unloadForm(),this._formXml=void 0,this._formHtml=void 0,this._formModel=void 0,this._contactSummary=void 0,this._contactType=void 0,this._content=null,this._formId=this.DEFAULT_FORM_ID,this._user=this.DEFAULT_USER,this.editing=!1,this.status={...this.DEFAULT_STATUS}}static#e=this.\u0275fac=function(i){return new(i||t)(ar(Ox),ar($x),ar(c0))};static#t=this.\u0275cmp=za({type:t,selectors:[["cht-form"]],inputs:{editing:"editing",status:"status",formId:"formId",formHtml:"formHtml",formModel:"formModel",formXml:"formXml",contactSummary:"contactSummary",contactType:"contactType",content:"content",user:"user"},outputs:{onRender:"onRender",onCancel:"onCancel",onSubmit:"onSubmit"},decls:49,vars:20,consts:[[1,"reports"],[1,"content"],[1,"page",2,"top","0"],[1,"content-pane",2,"width","100%"],[1,"item-content"],[1,"report-wrap"],[1,"body"],[1,"enketo"],[1,"container","pages"],[1,"form-footer"],[1,"btn","btn-link","cancel",3,"disabled","click"],["class","loader inline small",4,"ngIf"],["class","error",4,"ngIf"],[1,"btn","btn-default","previous-page",3,"disabled"],[1,"btn","btn-primary","next-page",3,"disabled"],[1,"btn","submit","btn-primary",3,"disabled","click"],[1,"loader","inline","small"],[1,"error"]],template:function(i,s){1&i&&(Lo(0,"div",0),Vr(1,"\n "),Lo(2,"div",1),Vr(3,"\n "),Lo(4,"div",2),Vr(5,"\n "),Lo(6,"div",3),Vr(7,"\n "),Lo(8,"div",4),Vr(9,"\n "),Lo(10,"div",5),Vr(11,"\n "),Lo(12,"div",6),Vr(13,"\n "),Lo(14,"div",7),Vr(15,"\n "),uf(16,"div",8),Vr(17,"\n "),Lo(18,"div",9),Vr(19,"\n "),Lo(20,"button",10),lf("click",function(){return s.cancelForm()}),Vr(21),bc(22,"translate"),Ao(),Vr(23,"\n "),S1(24,Rx,1,0,"div",11),Vr(25,"\n "),S1(26,kx,2,1,"span",12),Vr(27,"\n "),Lo(28,"button",13),Vr(29),bc(30,"translate"),Ao(),Vr(31,"\n "),Lo(32,"button",14),Vr(33),bc(34,"translate"),Ao(),Vr(35,"\n "),Lo(36,"button",15),lf("click",function(){return s.submitForm()}),Vr(37),bc(38,"translate"),Ao(),Vr(39,"\n "),Ao(),Vr(40,"\n "),Ao(),Vr(41,"\n "),Ao(),Vr(42,"\n "),Ao(),Vr(43,"\n "),Ao(),Vr(44,"\n "),Ao(),Vr(45,"\n "),Ao(),Vr(46,"\n "),Ao(),Vr(47,"\n"),Ao(),Vr(48,"\n")),2&i&&(Ts(14),_1("id",s.formId)("data-editing",s.editing),Ts(6),Du("disabled",null==s.status?null:s.status.saving),Ts(1),nl(Ec(22,12,"Cancel")),Ts(3),Du("ngIf",null==s.status?null:s.status.saving),Ts(2),Du("ngIf",null==s.status?null:s.status.error),Ts(2),Du("disabled",null==s.status?null:s.status.saving),Ts(1),nl(Ec(30,14,"Previous")),Ts(3),Du("disabled",null==s.status?null:s.status.saving),Ts(1),nl(Ec(34,16,"Next")),Ts(3),Du("disabled",null==s.status?null:s.status.saving),Ts(1),nl(Ec(38,18,"Submit")))},dependencies:[Z4,V$],encapsulation:2})}return t})(),Ux=(()=>{class t{constructor(r,i,s){this.dbService=i,this.translateService=s;const h=function uC(t,n){const r=function tC(t,n){return n.get(kl).resolveComponentFactory(t).inputs}(t,n.injector),i=n.strategyFactory||new oC(t,n.injector),s=function eC(t){const n={};return t.forEach(({propName:r,templateName:i,transform:s})=>{n[function q$(t){return t.replace(/[A-Z]/g,n=>`-${n.toLowerCase()}`)}(i)]=[r,s]}),n}(r);class h extends aC{static#e=this.observedAttributes=Object.keys(s);get ngElementStrategy(){if(!this._ngElementStrategy){const S=this._ngElementStrategy=i.create(this.injector||n.injector);r.forEach(({propName:N,transform:H})=>{if(!this.hasOwnProperty(N))return;const ne=this[N];delete this[N],S.setInputValue(N,ne,H)})}return this._ngElementStrategy}constructor(S){super(),this.injector=S}attributeChangedCallback(S,N,H,ne){const[ce,$e]=s[S];this.ngElementStrategy.setInputValue(ce,H,$e)}connectedCallback(){let S=!1;this.ngElementStrategy.events&&(this.subscribeToEvents(),S=!0),this.ngElementStrategy.connect(this),S||this.subscribeToEvents()}disconnectedCallback(){this._ngElementStrategy&&this._ngElementStrategy.disconnect(),this.ngElementEventsSubscription&&(this.ngElementEventsSubscription.unsubscribe(),this.ngElementEventsSubscription=null)}subscribeToEvents(){this.ngElementEventsSubscription=this.ngElementStrategy.events.subscribe(S=>{const N=new CustomEvent(S.name,{detail:S.value});this.dispatchEvent(N)})}}return r.forEach(({propName:y,transform:S})=>{Object.defineProperty(h.prototype,y,{get(){return this.ngElementStrategy.getInputValue(y)},set(N){this.ngElementStrategy.setInputValue(y,N,S)},configurable:!0,enumerable:!0})}),h}(Fx,{injector:r});customElements.define("cht-form",h)}ngDoBootstrap(){var r;window.CHTCore={AndroidAppLauncher:{isEnabled:()=>!1},Language:{get:(r=Eo(function*(){return"en"}),function(){return r.apply(this,arguments)})},MRDT:{enabled:()=>!1},Select2Search:{init:function(){var r=Eo(function*(){});return function(){return r.apply(this,arguments)}}()},Settings:{get:function(){var r=Eo(function*(){return{default_country_code:"1"}});return function(){return r.apply(this,arguments)}}()},Translate:this.translateService,DB:this.dbService}}static#e=this.\u0275fac=function(i){return new(i||t)(Ut(Rs),Ut(Ic),Ut(c0))};static#t=this.\u0275mod=gt({type:t});static#n=this.\u0275inj=Uo({imports:[w$,j$.forRoot({loader:{provide:Lc,useFactory:r=>new G$(r),deps:[Ic]},compiler:{provide:od,useClass:Z$}})]})}return t})();var Bx=p(7978);window.$=window.jQuery=p(7978),p(3056),p(9325),p(1152),p(4339),p(2455),p(3630),p(8828),p(7654),p(5793),p(5455),p(334),p(9471),p(3641);const Hx=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi;Object.defineProperties(Bx,{htmlPrefilter:{value:t=>t.replace(Hx,"<$1>")}}),b$().bootstrapModule(Ux).catch(t=>console.error(t))},3895:module=>{var o;o=function(){var define,module,exports;return function o(l,p,w){function m(q,ee){if(!p[q]){if(!l[q]){if(T)return T(q,!0);var z=new Error("Cannot find module '"+q+"'");throw z.code="MODULE_NOT_FOUND",z}var F=p[q]={exports:{}};l[q][0].call(F.exports,function(G){return m(l[q][1][G]||G)},F,F.exports,o,l,p,w)}return p[q].exports}for(var T=void 0,M=0;M=m}},"es6","es3"),$jscomp.findInternal=function(o,l,p){o instanceof String&&(o=String(o));for(var w=o.length,m=0;m=T}},"es6","es3"),$jscomp.polyfill("String.prototype.repeat",function(o){return o||function(l){var p=$jscomp.checkStringArgs(this,null,"repeat");if(0>l||1342177279>>=1)&&(p+=p);return w}},"es6","es3"),$jscomp.initSymbol=function(){},$jscomp.polyfill("Symbol",function(o){if(o)return o;var l=function(m,T){this.$jscomp$symbol$id_=m,$jscomp.defineProperty(this,"description",{configurable:!0,writable:!0,value:T})};l.prototype.toString=function(){return this.$jscomp$symbol$id_};var p=0,w=function(m){if(this instanceof w)throw new TypeError("Symbol is not a constructor");return new l("jscomp_symbol_"+(m||"")+"_"+p++,m)};return w},"es6","es3"),$jscomp.polyfill("Symbol.iterator",function(o){if(o)return o;o=Symbol("Symbol.iterator");for(var l="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),p=0;p(p=p||0)&&(p=Math.max(p+m,0));p"u"||w.execScript("var "+o[0]);for(var m;o.length&&(m=o.shift());)if(o.length||void 0===l)w=w[m]&&w[m]!==Object.prototype[m]?w[m]:w[m]={};else if(!p&&goog.isObject(l)&&goog.isObject(w[m]))for(var T in l)l.hasOwnProperty(T)&&(w[m][T]=l[T]);else w[m]=l},goog.define=function(o,l){if(!COMPILED){var p=goog.global.CLOSURE_UNCOMPILED_DEFINES,w=goog.global.CLOSURE_DEFINES;p&&void 0===p.nodeType&&Object.prototype.hasOwnProperty.call(p,o)?l=p[o]:w&&void 0===w.nodeType&&Object.prototype.hasOwnProperty.call(w,o)&&(l=w[o])}return l},goog.FEATURESET_YEAR=2012,goog.DEBUG=!0,goog.LOCALE="en",goog.TRUSTED_SITE=!0,goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG,goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1,goog.provide=function(o){if(goog.isInModuleLoader_())throw Error("goog.provide cannot be used within a module.");if(!COMPILED&&goog.isProvided_(o))throw Error('Namespace "'+o+'" already declared.');goog.constructNamespace_(o)},goog.constructNamespace_=function(o,l,p){if(!COMPILED){delete goog.implicitNamespaces_[o];for(var w=o;(w=w.substring(0,w.lastIndexOf(".")))&&!goog.getObjectByName(w);)goog.implicitNamespaces_[w]=!0}goog.exportPath_(o,l,p)},goog.getScriptNonce=function(o){return o&&o!=goog.global?goog.getScriptNonce_(o.document):(null===goog.cspNonce_&&(goog.cspNonce_=goog.getScriptNonce_(goog.global.document)),goog.cspNonce_)},goog.NONCE_PATTERN_=/^[\w+/_-]+[=]{0,2}$/,goog.cspNonce_=null,goog.getScriptNonce_=function(o){return(o=o.querySelector&&o.querySelector("script[nonce]"))&&(o=o.nonce||o.getAttribute("nonce"))&&goog.NONCE_PATTERN_.test(o)?o:""},goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/,goog.module=function(o){if("string"!=typeof o||!o||-1==o.search(goog.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!goog.isInGoogModuleLoader_())throw Error("Module "+o+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");if(goog.moduleLoaderState_.moduleName=o,!COMPILED){if(goog.isProvided_(o))throw Error('Namespace "'+o+'" already declared.');delete goog.implicitNamespaces_[o]}},goog.module.get=function(o){return goog.module.getInternal_(o)},goog.module.getInternal_=function(o){if(!COMPILED){if(o in goog.loadedModules_)return goog.loadedModules_[o].exports;if(!goog.implicitNamespaces_[o])return(o=goog.getObjectByName(o))??null}return null},goog.ModuleType={ES6:"es6",GOOG:"goog"},goog.moduleLoaderState_=null,goog.isInModuleLoader_=function(){return goog.isInGoogModuleLoader_()||goog.isInEs6ModuleLoader_()},goog.isInGoogModuleLoader_=function(){return!!goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.GOOG},goog.isInEs6ModuleLoader_=function(){if(goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.ES6)return!0;var o=goog.global.$jscomp;return!!o&&"function"==typeof o.getCurrentModulePath&&!!o.getCurrentModulePath()},goog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInGoogModuleLoader_())throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");goog.moduleLoaderState_.declareLegacyNamespace=!0},goog.declareModuleId=function(o){if(!COMPILED){if(!goog.isInEs6ModuleLoader_())throw Error("goog.declareModuleId may only be called from within an ES6 module");if(goog.moduleLoaderState_&&goog.moduleLoaderState_.moduleName)throw Error("goog.declareModuleId may only be called once per module.");if(o in goog.loadedModules_)throw Error('Module with namespace "'+o+'" already exists.')}if(goog.moduleLoaderState_)goog.moduleLoaderState_.moduleName=o;else{var l=goog.global.$jscomp;if(!l||"function"!=typeof l.getCurrentModulePath)throw Error('Module with namespace "'+o+'" has been loaded incorrectly.');l=l.require(l.getCurrentModulePath()),goog.loadedModules_[o]={exports:l,type:goog.ModuleType.ES6,moduleId:o}}},goog.setTestOnly=function(o){if(goog.DISALLOW_TEST_ONLY_CODE)throw o=o||"",Error("Importing test-only code into non-debug environment"+(o?": "+o:"."))},goog.forwardDeclare=function(o){},COMPILED||(goog.isProvided_=function(o){return o in goog.loadedModules_||!goog.implicitNamespaces_[o]&&null!=goog.getObjectByName(o)},goog.implicitNamespaces_={"goog.module":!0}),goog.getObjectByName=function(o,l){o=o.split("."),l=l||goog.global;for(var p=0;p>>0),goog.uidCounter_=0,goog.cloneObject=function(o){var l=goog.typeOf(o);if("object"==l||"array"==l){if("function"==typeof o.clone)return o.clone();for(var p in l="array"==l?[]:{},o)l[p]=goog.cloneObject(o[p]);return l}return o},goog.bindNative_=function(o,l,p){return o.call.apply(o.bind,arguments)},goog.bindJs_=function(o,l,p){if(!o)throw Error();if(2").replace(/'/g,"'").replace(/"/g,'"').replace(/&/g,"&")),l&&(o=o.replace(/\{\$([^}]+)}/g,function(w,m){return null!=l&&m in l?l[m]:w})),o},goog.getMsgWithFallback=function(o,l){return o},goog.exportSymbol=function(o,l,p){goog.exportPath_(o,l,!0,p)},goog.exportProperty=function(o,l,p){o[l]=p},goog.inherits=function(o,l){function p(){}p.prototype=l.prototype,o.superClass_=l.prototype,o.prototype=new p,o.prototype.constructor=o,o.base=function(w,m,T){for(var M=Array(arguments.length-2),q=2;q{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')}),a("es7",function(){return b("2 ** 2 == 4")}),a("es8",function(){return b("async () => 1, true")}),a("es9",function(){return b("({...rest} = {}), true")}),a("es_next",function(){return!1}),{target:c,map:d}},goog.Transpiler.prototype.needsTranspile=function(o,l){if("always"==goog.TRANSPILE)return!0;if("never"==goog.TRANSPILE)return!1;if(!this.requiresTranspilation_){var p=this.createRequiresTranspilation_();this.requiresTranspilation_=p.map,this.transpilationTarget_=this.transpilationTarget_||p.target}if(o in this.requiresTranspilation_)return!!this.requiresTranspilation_[o]||!(!goog.inHtmlDocument_()||"es6"!=l||"noModule"in goog.global.document.createElement("script"));throw Error("Unknown language mode: "+o)},goog.Transpiler.prototype.transpile=function(o,l){return goog.transpile_(o,l,this.transpilationTarget_)},goog.transpiler_=new goog.Transpiler,goog.protectScriptTag_=function(o){return o.replace(/<\/(SCRIPT)/gi,"\\x3c/$1")},goog.DebugLoader_=function(){this.dependencies_={},this.idToPath_={},this.written_={},this.loadingDeps_=[],this.depsToLoad_=[],this.paused_=!1,this.factory_=new goog.DependencyFactory(goog.transpiler_),this.deferredCallbacks_={},this.deferredQueue_=[]},goog.DebugLoader_.prototype.bootstrap=function(o,l){function p(){w&&(goog.global.setTimeout(w,0),w=null)}var w=l;if(o.length){l=[];for(var m=0;m<\/script>';T+="",T=goog.Dependency.defer_?T+"document.getElementById('script-"+m+"').onload = function() {\n goog.Dependency.callback_('"+m+"', this);\n};\n":T+"goog.Dependency.callback_('"+m+"', document.getElementById('script-"+m+"'));",T+="<\/script>",l.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(T):T)}else{var M=l.createElement("script");M.defer=goog.Dependency.defer_,M.async=!1,p&&(M.nonce=p),goog.DebugLoader_.IS_OLD_IE_?(o.pause(),M.onreadystatechange=function(){("loaded"==M.readyState||"complete"==M.readyState)&&(o.loaded(),o.resume())}):M.onload=function(){M.onload=null,o.loaded()},M.src=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScriptURL(this.path):this.path,l.head.appendChild(M)}}else goog.logToConsole_("Cannot use default debug loader outside of HTML documents."),"deps.js"==this.relativePath?(goog.logToConsole_("Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, or setting CLOSURE_NO_DEPS to true."),o.loaded()):o.pause()},goog.Es6ModuleDependency=function(o,l,p,w,m){goog.Dependency.call(this,o,l,p,w,m)},goog.inherits(goog.Es6ModuleDependency,goog.Dependency),goog.Es6ModuleDependency.prototype.load=function(o){if(goog.global.CLOSURE_IMPORT_SCRIPT)goog.global.CLOSURE_IMPORT_SCRIPT(this.path)?o.loaded():o.pause();else if(goog.inHtmlDocument_()){var w=goog.global.document,m=this;if(goog.isDocumentLoading_()){var T=function l(V,z){var F="",G=goog.getScriptNonce();G&&(F=' nonce="'+G+'"'),V=z?' diff --git a/docs/core-adapter.js.html b/docs/core-adapter.js.html index a10e9125..ed917162 100644 --- a/docs/core-adapter.js.html +++ b/docs/core-adapter.js.html @@ -279,7 +279,7 @@

                          Source: core-adapter.js

                          const addNoolsBoilerplate = settingsTasks.isDeclarative && semver.lt(actualCoreVersion, '4.2.0-dev'); const rules = addNoolsBoilerplate ? addNoolsBoilerplateToCode(settingsTasks.rules) : settingsTasks.rules; // do not set the isDeclarative flag when the code has nools boilerplate - const rulesAreDeclarative = addNoolsBoilerplate && !!settingsTasks.isDeclarative; + const rulesAreDeclarative = !addNoolsBoilerplate && settingsTasks.isDeclarative; return { rules, rulesAreDeclarative }; }; @@ -300,7 +300,7 @@

                          Home

                          Modules

                          • diff --git a/docs/dev-mode_mock.cht-conf.contact-summary-lib.js.html b/docs/dev-mode_mock.cht-conf.contact-summary-lib.js.html index c09dedd0..4771c396 100644 --- a/docs/dev-mode_mock.cht-conf.contact-summary-lib.js.html +++ b/docs/dev-mode_mock.cht-conf.contact-summary-lib.js.html @@ -73,7 +73,7 @@

                            Home

                            Modules

                            • diff --git a/docs/dev-mode_mock.cht-conf.nools-lib.js.html b/docs/dev-mode_mock.cht-conf.nools-lib.js.html index 9c3d6238..41ce6505 100644 --- a/docs/dev-mode_mock.cht-conf.nools-lib.js.html +++ b/docs/dev-mode_mock.cht-conf.nools-lib.js.html @@ -76,7 +76,7 @@

                              Home

                              Modules

                              • diff --git a/docs/dev-mode_mock.rules-engine.rules-emitter.js.html b/docs/dev-mode_mock.rules-engine.rules-emitter.js.html index 48282e46..779f8434 100644 --- a/docs/dev-mode_mock.rules-engine.rules-emitter.js.html +++ b/docs/dev-mode_mock.rules-engine.rules-emitter.js.html @@ -175,7 +175,7 @@

                                Home

                                Modules

                                • diff --git a/docs/form-host_form-filler.js.html b/docs/form-host_form-filler.js.html index 77804b9c..05b8594b 100644 --- a/docs/form-host_form-filler.js.html +++ b/docs/form-host_form-filler.js.html @@ -27,11 +27,55 @@

                                  Source: form-host/form-filler.js

                                  const _ = require('lodash');
                                  -const $ = require('jquery');
                                  +
                                  +const getForm = () => $('form');
                                  +const getValidationErrors = () => getForm()
                                  +  .find('.invalid-required:not(.disabled), .invalid-constraint:not(.disabled), .invalid-relevant:not(.disabled)')
                                  +  .children('span.active:not(.question-label)')
                                  +  .filter(function() {
                                  +    return $(this).css('display') === 'block';
                                  +  });
                                  +
                                  +const getSiblingElement = ( element, selector = '*' ) =>{
                                  +  let found;
                                  +  let current = element.parentElement.firstElementChild;
                                  +
                                  +  while ( current && !found ) {
                                  +    if ( current !== element && current.matches( selector ) ) {
                                  +      found = current;
                                  +    }
                                  +    current = current.nextElementSibling;
                                  +  }
                                  +
                                  +  return found;
                                  +};
                                  +
                                  +// Copied from https://github.com/enketo/enketo-core/blob/master/src/js/page.js
                                  +const getPages = () => {
                                  +  const form = getForm()[0];
                                  +  if(!form.classList.contains('pages')) {
                                  +    // This is not a multipage form
                                  +    return [form];
                                  +  }
                                  +
                                  +  const allPages = [...getForm()[0].querySelectorAll( '[role="page"]' )];
                                  +  return allPages.filter( el => {
                                  +    return !el.closest( '.disabled' ) &&
                                  +      ( el.matches( '.question' ) || el.querySelector( '.question:not(.disabled)' ) ||
                                  +        // or-repeat-info is only considered a page by itself if it has no sibling repeats
                                  +        // When there are siblings repeats, we use CSS trickery to show the + button underneath the last
                                  +        // repeat.
                                  +        ( el.matches( '.or-repeat-info' ) && !getSiblingElement( el, '.or-repeat' ) ) );
                                  +  } );
                                  +};
                                  +
                                  +const getCurrentPage = () => {
                                  +  const pages = getPages();
                                  +  return pages.find( page => page.classList.contains( 'current' ) ) || pages[pages.length - 1];
                                  +};
                                   
                                   class FormFiller {
                                  -  constructor(form, options) {
                                  -    this.form = form;
                                  +  constructor(options) {
                                       this.options = _.defaults(options, {
                                         verbose: true,
                                       });
                                  @@ -61,14 +105,7 @@ 

                                  Source: form-host/form-filler.js

                                  // Modified from enketo-core/src/js/Form.js validateContent async getVisibleValidationErrors() { - const self = this; - const $container = self.form.view.$; - const validationErrors = $container - .find('.invalid-required:not(.disabled), .invalid-constraint:not(.disabled), .invalid-relevant:not(.disabled)') - .children('span.active:not(.question-label)') - .filter(function() { - return $(this).css('display') === 'block'; - }); + const validationErrors = getValidationErrors(); return Array.from(validationErrors) .map(span => ({ @@ -101,11 +138,11 @@

                                  Source: form-host/form-filler.js

                                  let pageHasAdvanced; // attempt to submit all the way to the end (replacement for validateAll) do { - pageHasAdvanced = await nextPage(self.form); + pageHasAdvanced = await nextPage(); errors = await self.getVisibleValidationErrors(); - - const lastPage = self.form.pages.activePages[self.form.pages.activePages.length - 1]; - isComplete = !lastPage || self.form.pages.current === lastPage; + + const pages = getPages(); + isComplete = pages.indexOf(getCurrentPage()) === pages.length - 1; } while (pageHasAdvanced && !isComplete && !errors.length); const incompleteError = isComplete ? [] : [{ type: 'general', msg: 'Form is incomplete' }]; @@ -121,7 +158,7 @@

                                  Source: form-host/form-filler.js

                                  const answeredQuestions = new Set(); for (let i = 0; i < pageAnswer.length; i++) { const answer = pageAnswer[i]; - const $questions = getVisibleQuestions(self.form); + const $questions = getVisibleQuestions(); if ($questions.length <= i) { return { errors: [{ @@ -138,7 +175,7 @@

                                  Source: form-host/form-filler.js

                                  fillQuestion(nextUnansweredQuestion, answer); } - const allPagesSuccessful = hasPages(self.form) ? await nextPage(self.form) : true; + const allPagesSuccessful = await nextPage(); const validationErrors = await self.getVisibleValidationErrors(); const advanceFailure = allPagesSuccessful || validationErrors.length ? [] : [{ type: 'general', @@ -243,11 +280,8 @@

                                  Source: form-host/form-filler.js

                                  } }; -const getVisibleQuestions = form => { - const currentPage = !form.pages.current ? - // in cases where forms have a single page, the current page is undefined - form.view.$ : - $(form.pages.current); +const getVisibleQuestions = () => { + const currentPage = $(getCurrentPage()); if (!currentPage) { throw Error('Form has no active pages'); @@ -280,21 +314,34 @@

                                  Source: form-host/form-filler.js

                                  return findQuestionsInSection(currentPage); }; -const nextPage = async form => { - const valid = await form.pages._next(); - - // Work-around for stale jr:choice-name() references in labels. ref #3870 - form.calc.update(); +const nextPage = async () => { + const currentPageIndex = getPages().indexOf(getCurrentPage()); + const nextButton = $('button.next-page'); + if(nextButton.is(':hidden')) { + return !getValidationErrors().length; + } - // Force forms to update jr:itext references in output fields that contain - // calculated values. ref #4111 - form.output.update(); + return new Promise(resolve => { + const observer = new MutationObserver(() => { + if(getPages().indexOf(getCurrentPage()) > currentPageIndex) { + observer.disconnect(); + return resolve(true); + } + if(getValidationErrors().length) { + observer.disconnect(); + return resolve(false); + } + }); - return valid; + observer.observe(getForm().get(0), { + childList: true, + subtree: true, + attributeFilter: ['class', 'display'], + }); + nextButton.click(); + }); }; -const hasPages = form => form.pages.activePages.length > 0; - module.exports = FormFiller;
                                  @@ -312,7 +359,7 @@

                                  Home

                                  Modules

                                  • diff --git a/docs/global.html b/docs/global.html index 3c27c80c..24c739a7 100644 --- a/docs/global.html +++ b/docs/global.html @@ -279,7 +279,7 @@
                                    Parameters:
                                    Source:
                                    @@ -455,7 +455,7 @@
                                    Properties:
                                    Source:
                                    @@ -602,7 +602,7 @@
                                    Properties:
                                    Source:
                                    @@ -795,7 +795,7 @@
                                    Properties:
                                    Source:
                                    @@ -1267,7 +1267,7 @@
                                    Properties:
                                    Source:
                                    @@ -1880,7 +1880,7 @@

                                    Home

                                    Modules

                                    • diff --git a/docs/harness.js.html b/docs/harness.js.html index 6d0bae45..0fc863bd 100644 --- a/docs/harness.js.html +++ b/docs/harness.js.html @@ -542,13 +542,14 @@

                                      Source: harness.js

                                      get consoleErrors() { return this._state.console .filter(msg => msg.type() !== 'log') + .filter(msg => !msg.text().startsWith('Error submitting form data:')) + .filter(msg => !msg.text().startsWith('Slow network is detected. See https://www.chromestatus.com/feature/5636954674692096 for more details. Fallback font will be used while loading:')) .filter(msg => msg.text() !== 'Failed to load resource: net::ERR_REQUEST_RANGE_NOT_SATISFIABLE') // BUG: #219 .filter(msg => msg.text() !== 'Failed to load resource: net::ERR_UNKNOWN_URL_SCHEME') // BUG: #220 .filter(msg => msg.text() !== 'Failed to load resource: net::ERR_FILE_NOT_FOUND') // BUG: #221 .filter(msg => !msg.text().startsWith('Error fetching media file')) // BUG: #222 .filter(msg => !msg.text().startsWith('Deprecation warning:')) // BUG: #223 .filter(msg => !msg.text().includes('with null-based index')) // BUG: #224 - .filter(msg => msg.text() !== 'Data node: /*/meta/deprecatedID with null-based index: undefined not found. Ignored.') // BUG ; } @@ -867,7 +868,7 @@

                                      Home

                                      Modules

                                      • diff --git a/docs/index.html b/docs/index.html index 52703495..d4279f7c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -141,7 +141,7 @@

                                        Home

                                        Modules

                                        • diff --git a/docs/jsdocs.js.html b/docs/jsdocs.js.html index e9cec54f..955648ca 100644 --- a/docs/jsdocs.js.html +++ b/docs/jsdocs.js.html @@ -156,7 +156,7 @@

                                          Home

                                          Modules

                                          • diff --git a/docs/mock.cht-conf.module_contact-summary-lib.html b/docs/mock.cht-conf.module_contact-summary-lib.html index 71a2a5a6..02f85eb2 100644 --- a/docs/mock.cht-conf.module_contact-summary-lib.html +++ b/docs/mock.cht-conf.module_contact-summary-lib.html @@ -123,7 +123,7 @@

                                            Home

                                            Modules

                                            • diff --git a/docs/mock.cht-conf.module_nools-lib.html b/docs/mock.cht-conf.module_nools-lib.html index 4b571014..9bf52738 100644 --- a/docs/mock.cht-conf.module_nools-lib.html +++ b/docs/mock.cht-conf.module_nools-lib.html @@ -123,7 +123,7 @@

                                              Home

                                              Modules

                                              • diff --git a/docs/mock.rules-engine.module_rules-emitter.html b/docs/mock.rules-engine.module_rules-emitter.html index 7a0621ef..b0fcfe57 100644 --- a/docs/mock.rules-engine.module_rules-emitter.html +++ b/docs/mock.rules-engine.module_rules-emitter.html @@ -628,7 +628,7 @@

                                                Home

                                                Modules

                                                • diff --git a/docs/module-core-adapter.html b/docs/module-core-adapter.html index e905deb1..9c206270 100644 --- a/docs/module-core-adapter.html +++ b/docs/module-core-adapter.html @@ -76,7 +76,7 @@

                                                  Home

                                                  Modules

                                                  • diff --git a/ext/styles.css b/ext/styles.css deleted file mode 100644 index 788ffd73..00000000 --- a/ext/styles.css +++ /dev/null @@ -1,21916 +0,0 @@ -/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** css ../node_modules/@angular-devkit/build-angular/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[7].rules[0].oneOf[1].use[1]!../node_modules/@angular-devkit/build-angular/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[7].rules[0].oneOf[1].use[2]!../node_modules/@angular-devkit/build-angular/node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[7].rules[1].use[0]!./src/css/inbox.less ***! - \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ - - html, body, div, span, applet, object, iframe, - h1, h2, h3, h4, h5, h6, p, blockquote, pre, - a, abbr, acronym, address, big, cite, code, - del, dfn, em, img, ins, kbd, q, s, samp, - small, strike, strong, sub, sup, tt, var, - b, u, i, center, - dl, dt, dd, ol, ul, li, - fieldset, form, label, legend, - table, caption, tbody, tfoot, thead, tr, th, td, - article, aside, canvas, details, embed, - figure, figcaption, footer, header, hgroup, - menu, nav, output, ruby, section, summary, - time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - font: inherit; - vertical-align: baseline; - } - - article, aside, details, figcaption, figure, - footer, header, hgroup, menu, nav, section { - display: block; - } - - body { - line-height: 1; - } - - ol, ul { - list-style: none; - } - - blockquote, q { - quotes: none; - } - - blockquote:before, blockquote:after, - q:before, q:after { - content: ''; - content: none; - } - - table { - border-collapse: collapse; - border-spacing: 0; - } - - /*! - * Bootstrap v3.4.1 (https://getbootstrap.com/) - * Copyright 2011-2019 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - - /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ - - html { - font-family: sans-serif; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; - } - - body { - margin: 0; - } - - article, - aside, - details, - figcaption, - figure, - footer, - header, - hgroup, - main, - menu, - nav, - section, - summary { - display: block; - } - - audio, - canvas, - progress, - video { - display: inline-block; - vertical-align: baseline; - } - - audio:not([controls]) { - display: none; - height: 0; - } - - [hidden], - template { - display: none; - } - - a { - background-color: transparent; - } - - a:active, - a:hover { - outline: 0; - } - - abbr[title] { - border-bottom: none; - text-decoration: underline; - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; - } - - b, - strong { - font-weight: bold; - } - - dfn { - font-style: italic; - } - - h1 { - font-size: 2em; - margin: 0.67em 0; - } - - mark { - background: #ff0; - color: #000; - } - - small { - font-size: 80%; - } - - sub, - sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; - } - - sup { - top: -0.5em; - } - - sub { - bottom: -0.25em; - } - - img { - border: 0; - } - - svg:not(:root) { - overflow: hidden; - } - - figure { - margin: 1em 40px; - } - - hr { - box-sizing: content-box; - height: 0; - } - - pre { - overflow: auto; - } - - code, - kbd, - pre, - samp { - font-family: monospace, monospace; - font-size: 1em; - } - - button, - input, - optgroup, - select, - textarea { - color: inherit; - font: inherit; - margin: 0; - } - - button { - overflow: visible; - } - - button, - select { - text-transform: none; - } - - button, - html input[type="button"], - input[type="reset"], - input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; - } - - button[disabled], - html input[disabled] { - cursor: default; - } - - button::-moz-focus-inner, - input::-moz-focus-inner { - border: 0; - padding: 0; - } - - input { - line-height: normal; - } - - input[type="checkbox"], - input[type="radio"] { - box-sizing: border-box; - padding: 0; - } - - input[type="number"]::-webkit-inner-spin-button, - input[type="number"]::-webkit-outer-spin-button { - height: auto; - } - - input[type="search"] { - -webkit-appearance: textfield; - box-sizing: content-box; - } - - input[type="search"]::-webkit-search-cancel-button, - input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; - } - - fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; - } - - legend { - border: 0; - padding: 0; - } - - textarea { - overflow: auto; - } - - optgroup { - font-weight: bold; - } - - table { - border-collapse: collapse; - border-spacing: 0; - } - - td, - th { - padding: 0; - } - - /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ - - @media print { - *, - *:before, - *:after { - color: #000 !important; - text-shadow: none !important; - background: transparent !important; - box-shadow: none !important; - } - a, - a:visited { - text-decoration: underline; - } - a[href]:after { - content: " (" attr(href) ")"; - } - abbr[title]:after { - content: " (" attr(title) ")"; - } - a[href^="#"]:after, - a[href^="javascript:"]:after { - content: ""; - } - pre, - blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - img { - max-width: 100% !important; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - .navbar { - display: none; - } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; - } - .label { - border: 1px solid #000; - } - .table { - border-collapse: collapse !important; - } - .table td, - .table th { - background-color: #fff !important; - } - .table-bordered th, - .table-bordered td { - border: 1px solid #ddd !important; - } - } - - @font-face { - font-family: "Glyphicons Halflings"; - src: url('glyphicons-halflings-regular.eot'); - src: url('glyphicons-halflings-regular.eot?#iefix') format("embedded-opentype"), url('glyphicons-halflings-regular.woff2') format("woff2"), url('glyphicons-halflings-regular.woff') format("woff"), url('glyphicons-halflings-regular.ttf') format("truetype"), url('glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format("svg"); - } - - .glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: "Glyphicons Halflings"; - font-style: normal; - font-weight: 400; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } - - .glyphicon-asterisk:before { - content: "\002a"; - } - - .glyphicon-plus:before { - content: "\002b"; - } - - .glyphicon-euro:before, - .glyphicon-eur:before { - content: "\20ac"; - } - - .glyphicon-minus:before { - content: "\2212"; - } - - .glyphicon-cloud:before { - content: "\2601"; - } - - .glyphicon-envelope:before { - content: "\2709"; - } - - .glyphicon-pencil:before { - content: "\270f"; - } - - .glyphicon-glass:before { - content: "\e001"; - } - - .glyphicon-music:before { - content: "\e002"; - } - - .glyphicon-search:before { - content: "\e003"; - } - - .glyphicon-heart:before { - content: "\e005"; - } - - .glyphicon-star:before { - content: "\e006"; - } - - .glyphicon-star-empty:before { - content: "\e007"; - } - - .glyphicon-user:before { - content: "\e008"; - } - - .glyphicon-film:before { - content: "\e009"; - } - - .glyphicon-th-large:before { - content: "\e010"; - } - - .glyphicon-th:before { - content: "\e011"; - } - - .glyphicon-th-list:before { - content: "\e012"; - } - - .glyphicon-ok:before { - content: "\e013"; - } - - .glyphicon-remove:before { - content: "\e014"; - } - - .glyphicon-zoom-in:before { - content: "\e015"; - } - - .glyphicon-zoom-out:before { - content: "\e016"; - } - - .glyphicon-off:before { - content: "\e017"; - } - - .glyphicon-signal:before { - content: "\e018"; - } - - .glyphicon-cog:before { - content: "\e019"; - } - - .glyphicon-trash:before { - content: "\e020"; - } - - .glyphicon-home:before { - content: "\e021"; - } - - .glyphicon-file:before { - content: "\e022"; - } - - .glyphicon-time:before { - content: "\e023"; - } - - .glyphicon-road:before { - content: "\e024"; - } - - .glyphicon-download-alt:before { - content: "\e025"; - } - - .glyphicon-download:before { - content: "\e026"; - } - - .glyphicon-upload:before { - content: "\e027"; - } - - .glyphicon-inbox:before { - content: "\e028"; - } - - .glyphicon-play-circle:before { - content: "\e029"; - } - - .glyphicon-repeat:before { - content: "\e030"; - } - - .glyphicon-refresh:before { - content: "\e031"; - } - - .glyphicon-list-alt:before { - content: "\e032"; - } - - .glyphicon-lock:before { - content: "\e033"; - } - - .glyphicon-flag:before { - content: "\e034"; - } - - .glyphicon-headphones:before { - content: "\e035"; - } - - .glyphicon-volume-off:before { - content: "\e036"; - } - - .glyphicon-volume-down:before { - content: "\e037"; - } - - .glyphicon-volume-up:before { - content: "\e038"; - } - - .glyphicon-qrcode:before { - content: "\e039"; - } - - .glyphicon-barcode:before { - content: "\e040"; - } - - .glyphicon-tag:before { - content: "\e041"; - } - - .glyphicon-tags:before { - content: "\e042"; - } - - .glyphicon-book:before { - content: "\e043"; - } - - .glyphicon-bookmark:before { - content: "\e044"; - } - - .glyphicon-print:before { - content: "\e045"; - } - - .glyphicon-camera:before { - content: "\e046"; - } - - .glyphicon-font:before { - content: "\e047"; - } - - .glyphicon-bold:before { - content: "\e048"; - } - - .glyphicon-italic:before { - content: "\e049"; - } - - .glyphicon-text-height:before { - content: "\e050"; - } - - .glyphicon-text-width:before { - content: "\e051"; - } - - .glyphicon-align-left:before { - content: "\e052"; - } - - .glyphicon-align-center:before { - content: "\e053"; - } - - .glyphicon-align-right:before { - content: "\e054"; - } - - .glyphicon-align-justify:before { - content: "\e055"; - } - - .glyphicon-list:before { - content: "\e056"; - } - - .glyphicon-indent-left:before { - content: "\e057"; - } - - .glyphicon-indent-right:before { - content: "\e058"; - } - - .glyphicon-facetime-video:before { - content: "\e059"; - } - - .glyphicon-picture:before { - content: "\e060"; - } - - .glyphicon-map-marker:before { - content: "\e062"; - } - - .glyphicon-adjust:before { - content: "\e063"; - } - - .glyphicon-tint:before { - content: "\e064"; - } - - .glyphicon-edit:before { - content: "\e065"; - } - - .glyphicon-share:before { - content: "\e066"; - } - - .glyphicon-check:before { - content: "\e067"; - } - - .glyphicon-move:before { - content: "\e068"; - } - - .glyphicon-step-backward:before { - content: "\e069"; - } - - .glyphicon-fast-backward:before { - content: "\e070"; - } - - .glyphicon-backward:before { - content: "\e071"; - } - - .glyphicon-play:before { - content: "\e072"; - } - - .glyphicon-pause:before { - content: "\e073"; - } - - .glyphicon-stop:before { - content: "\e074"; - } - - .glyphicon-forward:before { - content: "\e075"; - } - - .glyphicon-fast-forward:before { - content: "\e076"; - } - - .glyphicon-step-forward:before { - content: "\e077"; - } - - .glyphicon-eject:before { - content: "\e078"; - } - - .glyphicon-chevron-left:before { - content: "\e079"; - } - - .glyphicon-chevron-right:before { - content: "\e080"; - } - - .glyphicon-plus-sign:before { - content: "\e081"; - } - - .glyphicon-minus-sign:before { - content: "\e082"; - } - - .glyphicon-remove-sign:before { - content: "\e083"; - } - - .glyphicon-ok-sign:before { - content: "\e084"; - } - - .glyphicon-question-sign:before { - content: "\e085"; - } - - .glyphicon-info-sign:before { - content: "\e086"; - } - - .glyphicon-screenshot:before { - content: "\e087"; - } - - .glyphicon-remove-circle:before { - content: "\e088"; - } - - .glyphicon-ok-circle:before { - content: "\e089"; - } - - .glyphicon-ban-circle:before { - content: "\e090"; - } - - .glyphicon-arrow-left:before { - content: "\e091"; - } - - .glyphicon-arrow-right:before { - content: "\e092"; - } - - .glyphicon-arrow-up:before { - content: "\e093"; - } - - .glyphicon-arrow-down:before { - content: "\e094"; - } - - .glyphicon-share-alt:before { - content: "\e095"; - } - - .glyphicon-resize-full:before { - content: "\e096"; - } - - .glyphicon-resize-small:before { - content: "\e097"; - } - - .glyphicon-exclamation-sign:before { - content: "\e101"; - } - - .glyphicon-gift:before { - content: "\e102"; - } - - .glyphicon-leaf:before { - content: "\e103"; - } - - .glyphicon-fire:before { - content: "\e104"; - } - - .glyphicon-eye-open:before { - content: "\e105"; - } - - .glyphicon-eye-close:before { - content: "\e106"; - } - - .glyphicon-warning-sign:before { - content: "\e107"; - } - - .glyphicon-plane:before { - content: "\e108"; - } - - .glyphicon-calendar:before { - content: "\e109"; - } - - .glyphicon-random:before { - content: "\e110"; - } - - .glyphicon-comment:before { - content: "\e111"; - } - - .glyphicon-magnet:before { - content: "\e112"; - } - - .glyphicon-chevron-up:before { - content: "\e113"; - } - - .glyphicon-chevron-down:before { - content: "\e114"; - } - - .glyphicon-retweet:before { - content: "\e115"; - } - - .glyphicon-shopping-cart:before { - content: "\e116"; - } - - .glyphicon-folder-close:before { - content: "\e117"; - } - - .glyphicon-folder-open:before { - content: "\e118"; - } - - .glyphicon-resize-vertical:before { - content: "\e119"; - } - - .glyphicon-resize-horizontal:before { - content: "\e120"; - } - - .glyphicon-hdd:before { - content: "\e121"; - } - - .glyphicon-bullhorn:before { - content: "\e122"; - } - - .glyphicon-bell:before { - content: "\e123"; - } - - .glyphicon-certificate:before { - content: "\e124"; - } - - .glyphicon-thumbs-up:before { - content: "\e125"; - } - - .glyphicon-thumbs-down:before { - content: "\e126"; - } - - .glyphicon-hand-right:before { - content: "\e127"; - } - - .glyphicon-hand-left:before { - content: "\e128"; - } - - .glyphicon-hand-up:before { - content: "\e129"; - } - - .glyphicon-hand-down:before { - content: "\e130"; - } - - .glyphicon-circle-arrow-right:before { - content: "\e131"; - } - - .glyphicon-circle-arrow-left:before { - content: "\e132"; - } - - .glyphicon-circle-arrow-up:before { - content: "\e133"; - } - - .glyphicon-circle-arrow-down:before { - content: "\e134"; - } - - .glyphicon-globe:before { - content: "\e135"; - } - - .glyphicon-wrench:before { - content: "\e136"; - } - - .glyphicon-tasks:before { - content: "\e137"; - } - - .glyphicon-filter:before { - content: "\e138"; - } - - .glyphicon-briefcase:before { - content: "\e139"; - } - - .glyphicon-fullscreen:before { - content: "\e140"; - } - - .glyphicon-dashboard:before { - content: "\e141"; - } - - .glyphicon-paperclip:before { - content: "\e142"; - } - - .glyphicon-heart-empty:before { - content: "\e143"; - } - - .glyphicon-link:before { - content: "\e144"; - } - - .glyphicon-phone:before { - content: "\e145"; - } - - .glyphicon-pushpin:before { - content: "\e146"; - } - - .glyphicon-usd:before { - content: "\e148"; - } - - .glyphicon-gbp:before { - content: "\e149"; - } - - .glyphicon-sort:before { - content: "\e150"; - } - - .glyphicon-sort-by-alphabet:before { - content: "\e151"; - } - - .glyphicon-sort-by-alphabet-alt:before { - content: "\e152"; - } - - .glyphicon-sort-by-order:before { - content: "\e153"; - } - - .glyphicon-sort-by-order-alt:before { - content: "\e154"; - } - - .glyphicon-sort-by-attributes:before { - content: "\e155"; - } - - .glyphicon-sort-by-attributes-alt:before { - content: "\e156"; - } - - .glyphicon-unchecked:before { - content: "\e157"; - } - - .glyphicon-expand:before { - content: "\e158"; - } - - .glyphicon-collapse-down:before { - content: "\e159"; - } - - .glyphicon-collapse-up:before { - content: "\e160"; - } - - .glyphicon-log-in:before { - content: "\e161"; - } - - .glyphicon-flash:before { - content: "\e162"; - } - - .glyphicon-log-out:before { - content: "\e163"; - } - - .glyphicon-new-window:before { - content: "\e164"; - } - - .glyphicon-record:before { - content: "\e165"; - } - - .glyphicon-save:before { - content: "\e166"; - } - - .glyphicon-open:before { - content: "\e167"; - } - - .glyphicon-saved:before { - content: "\e168"; - } - - .glyphicon-import:before { - content: "\e169"; - } - - .glyphicon-export:before { - content: "\e170"; - } - - .glyphicon-send:before { - content: "\e171"; - } - - .glyphicon-floppy-disk:before { - content: "\e172"; - } - - .glyphicon-floppy-saved:before { - content: "\e173"; - } - - .glyphicon-floppy-remove:before { - content: "\e174"; - } - - .glyphicon-floppy-save:before { - content: "\e175"; - } - - .glyphicon-floppy-open:before { - content: "\e176"; - } - - .glyphicon-credit-card:before { - content: "\e177"; - } - - .glyphicon-transfer:before { - content: "\e178"; - } - - .glyphicon-cutlery:before { - content: "\e179"; - } - - .glyphicon-header:before { - content: "\e180"; - } - - .glyphicon-compressed:before { - content: "\e181"; - } - - .glyphicon-earphone:before { - content: "\e182"; - } - - .glyphicon-phone-alt:before { - content: "\e183"; - } - - .glyphicon-tower:before { - content: "\e184"; - } - - .glyphicon-stats:before { - content: "\e185"; - } - - .glyphicon-sd-video:before { - content: "\e186"; - } - - .glyphicon-hd-video:before { - content: "\e187"; - } - - .glyphicon-subtitles:before { - content: "\e188"; - } - - .glyphicon-sound-stereo:before { - content: "\e189"; - } - - .glyphicon-sound-dolby:before { - content: "\e190"; - } - - .glyphicon-sound-5-1:before { - content: "\e191"; - } - - .glyphicon-sound-6-1:before { - content: "\e192"; - } - - .glyphicon-sound-7-1:before { - content: "\e193"; - } - - .glyphicon-copyright-mark:before { - content: "\e194"; - } - - .glyphicon-registration-mark:before { - content: "\e195"; - } - - .glyphicon-cloud-download:before { - content: "\e197"; - } - - .glyphicon-cloud-upload:before { - content: "\e198"; - } - - .glyphicon-tree-conifer:before { - content: "\e199"; - } - - .glyphicon-tree-deciduous:before { - content: "\e200"; - } - - .glyphicon-cd:before { - content: "\e201"; - } - - .glyphicon-save-file:before { - content: "\e202"; - } - - .glyphicon-open-file:before { - content: "\e203"; - } - - .glyphicon-level-up:before { - content: "\e204"; - } - - .glyphicon-copy:before { - content: "\e205"; - } - - .glyphicon-paste:before { - content: "\e206"; - } - - .glyphicon-alert:before { - content: "\e209"; - } - - .glyphicon-equalizer:before { - content: "\e210"; - } - - .glyphicon-king:before { - content: "\e211"; - } - - .glyphicon-queen:before { - content: "\e212"; - } - - .glyphicon-pawn:before { - content: "\e213"; - } - - .glyphicon-bishop:before { - content: "\e214"; - } - - .glyphicon-knight:before { - content: "\e215"; - } - - .glyphicon-baby-formula:before { - content: "\e216"; - } - - .glyphicon-tent:before { - content: "\26fa"; - } - - .glyphicon-blackboard:before { - content: "\e218"; - } - - .glyphicon-bed:before { - content: "\e219"; - } - - .glyphicon-apple:before { - content: "\f8ff"; - } - - .glyphicon-erase:before { - content: "\e221"; - } - - .glyphicon-hourglass:before { - content: "\231b"; - } - - .glyphicon-lamp:before { - content: "\e223"; - } - - .glyphicon-duplicate:before { - content: "\e224"; - } - - .glyphicon-piggy-bank:before { - content: "\e225"; - } - - .glyphicon-scissors:before { - content: "\e226"; - } - - .glyphicon-bitcoin:before { - content: "\e227"; - } - - .glyphicon-btc:before { - content: "\e227"; - } - - .glyphicon-xbt:before { - content: "\e227"; - } - - .glyphicon-yen:before { - content: "\00a5"; - } - - .glyphicon-jpy:before { - content: "\00a5"; - } - - .glyphicon-ruble:before { - content: "\20bd"; - } - - .glyphicon-rub:before { - content: "\20bd"; - } - - .glyphicon-scale:before { - content: "\e230"; - } - - .glyphicon-ice-lolly:before { - content: "\e231"; - } - - .glyphicon-ice-lolly-tasted:before { - content: "\e232"; - } - - .glyphicon-education:before { - content: "\e233"; - } - - .glyphicon-option-horizontal:before { - content: "\e234"; - } - - .glyphicon-option-vertical:before { - content: "\e235"; - } - - .glyphicon-menu-hamburger:before { - content: "\e236"; - } - - .glyphicon-modal-window:before { - content: "\e237"; - } - - .glyphicon-oil:before { - content: "\e238"; - } - - .glyphicon-grain:before { - content: "\e239"; - } - - .glyphicon-sunglasses:before { - content: "\e240"; - } - - .glyphicon-text-size:before { - content: "\e241"; - } - - .glyphicon-text-color:before { - content: "\e242"; - } - - .glyphicon-text-background:before { - content: "\e243"; - } - - .glyphicon-object-align-top:before { - content: "\e244"; - } - - .glyphicon-object-align-bottom:before { - content: "\e245"; - } - - .glyphicon-object-align-horizontal:before { - content: "\e246"; - } - - .glyphicon-object-align-left:before { - content: "\e247"; - } - - .glyphicon-object-align-vertical:before { - content: "\e248"; - } - - .glyphicon-object-align-right:before { - content: "\e249"; - } - - .glyphicon-triangle-right:before { - content: "\e250"; - } - - .glyphicon-triangle-left:before { - content: "\e251"; - } - - .glyphicon-triangle-bottom:before { - content: "\e252"; - } - - .glyphicon-triangle-top:before { - content: "\e253"; - } - - .glyphicon-console:before { - content: "\e254"; - } - - .glyphicon-superscript:before { - content: "\e255"; - } - - .glyphicon-subscript:before { - content: "\e256"; - } - - .glyphicon-menu-left:before { - content: "\e257"; - } - - .glyphicon-menu-right:before { - content: "\e258"; - } - - .glyphicon-menu-down:before { - content: "\e259"; - } - - .glyphicon-menu-up:before { - content: "\e260"; - } - - * { - box-sizing: border-box; - } - - *:before, - *:after { - box-sizing: border-box; - } - - html { - font-size: 10px; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - } - - body { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 1.42857143; - color: #777777; - background-color: #fff; - } - - input, - button, - select, - textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; - } - - a { - color: #337ab7; - text-decoration: none; - } - - a:hover, - a:focus { - color: #23527c; - text-decoration: underline; - } - - a:focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; - } - - figure { - margin: 0; - } - - img { - vertical-align: middle; - } - - .img-responsive, - .thumbnail > img, - .thumbnail a > img, - .carousel-inner > .item > img, - .carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; - } - - .img-rounded { - border-radius: 6px; - } - - .img-thumbnail { - padding: 4px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - transition: all 0.2s ease-in-out; - display: inline-block; - max-width: 100%; - height: auto; - } - - .img-circle { - border-radius: 50%; - } - - hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid #eeeeee; - } - - .sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - } - - .sr-only-focusable:active, - .sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; - } - - [role="button"] { - cursor: pointer; - } - - h1, - h2, - h3, - h4, - h5, - h6, - .h1, - .h2, - .h3, - .h4, - .h5, - .h6 { - font-family: inherit; - font-weight: 500; - line-height: 1.1; - color: inherit; - } - - h1 small, - h2 small, - h3 small, - h4 small, - h5 small, - h6 small, - .h1 small, - .h2 small, - .h3 small, - .h4 small, - .h5 small, - .h6 small, - h1 .small, - h2 .small, - h3 .small, - h4 .small, - h5 .small, - h6 .small, - .h1 .small, - .h2 .small, - .h3 .small, - .h4 .small, - .h5 .small, - .h6 .small { - font-weight: 400; - line-height: 1; - color: #E0E0E0; - } - - h1, - .h1, - h2, - .h2, - h3, - .h3 { - margin-top: 20px; - margin-bottom: 10px; - } - - h1 small, - .h1 small, - h2 small, - .h2 small, - h3 small, - .h3 small, - h1 .small, - .h1 .small, - h2 .small, - .h2 .small, - h3 .small, - .h3 .small { - font-size: 65%; - } - - h4, - .h4, - h5, - .h5, - h6, - .h6 { - margin-top: 10px; - margin-bottom: 10px; - } - - h4 small, - .h4 small, - h5 small, - .h5 small, - h6 small, - .h6 small, - h4 .small, - .h4 .small, - h5 .small, - .h5 .small, - h6 .small, - .h6 .small { - font-size: 75%; - } - - h1, - .h1 { - font-size: 36px; - } - - h2, - .h2 { - font-size: 30px; - } - - h3, - .h3 { - font-size: 24px; - } - - h4, - .h4 { - font-size: 18px; - } - - h5, - .h5 { - font-size: 14px; - } - - h6, - .h6 { - font-size: 12px; - } - - p { - margin: 0 0 10px; - } - - .lead { - margin-bottom: 20px; - font-size: 16px; - font-weight: 300; - line-height: 1.4; - } - - @media (min-width: 768px) { - .lead { - font-size: 21px; - } - } - - small, - .small { - font-size: 85%; - } - - mark, - .mark { - padding: 0.2em; - background-color: #fcf8e3; - } - - .text-left { - text-align: left; - } - - .text-right { - text-align: right; - } - - .text-center { - text-align: center; - } - - .text-justify { - text-align: justify; - } - - .text-nowrap { - white-space: nowrap; - } - - .text-lowercase { - text-transform: lowercase; - } - - .text-uppercase { - text-transform: uppercase; - } - - .text-capitalize { - text-transform: capitalize; - } - - .text-muted { - color: #E0E0E0; - } - - .text-primary { - color: #337ab7; - } - - a.text-primary:hover, - a.text-primary:focus { - color: #286090; - } - - .text-success { - color: #3c763d; - } - - a.text-success:hover, - a.text-success:focus { - color: #2b542c; - } - - .text-info { - color: #31708f; - } - - a.text-info:hover, - a.text-info:focus { - color: #245269; - } - - .text-warning { - color: #8a6d3b; - } - - a.text-warning:hover, - a.text-warning:focus { - color: #66512c; - } - - .text-danger { - color: #a94442; - } - - a.text-danger:hover, - a.text-danger:focus { - color: #843534; - } - - .bg-primary { - color: #fff; - background-color: #337ab7; - } - - a.bg-primary:hover, - a.bg-primary:focus { - background-color: #286090; - } - - .bg-success { - background-color: #dff0d8; - } - - a.bg-success:hover, - a.bg-success:focus { - background-color: #c1e2b3; - } - - .bg-info { - background-color: #d9edf7; - } - - a.bg-info:hover, - a.bg-info:focus { - background-color: #afd9ee; - } - - .bg-warning { - background-color: #fcf8e3; - } - - a.bg-warning:hover, - a.bg-warning:focus { - background-color: #f7ecb5; - } - - .bg-danger { - background-color: #f2dede; - } - - a.bg-danger:hover, - a.bg-danger:focus { - background-color: #e4b9b9; - } - - .page-header { - padding-bottom: 9px; - margin: 40px 0 20px; - border-bottom: 1px solid #eeeeee; - } - - ul, - ol { - margin-top: 0; - margin-bottom: 10px; - } - - ul ul, - ol ul, - ul ol, - ol ol { - margin-bottom: 0; - } - - .list-unstyled { - padding-left: 0; - list-style: none; - } - - .list-inline { - padding-left: 0; - list-style: none; - margin-left: -5px; - } - - .list-inline > li { - display: inline-block; - padding-right: 5px; - padding-left: 5px; - } - - dl { - margin-top: 0; - margin-bottom: 20px; - } - - dt, - dd { - line-height: 1.42857143; - } - - dt { - font-weight: 700; - } - - dd { - margin-left: 0; - } - - @media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - clear: left; - text-align: right; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - .dl-horizontal dd { - margin-left: 180px; - } - } - - abbr[title], - abbr[data-original-title] { - cursor: help; - } - - .initialism { - font-size: 90%; - text-transform: uppercase; - } - - blockquote { - padding: 10px 20px; - margin: 0 0 20px; - font-size: 17.5px; - border-left: 5px solid #eeeeee; - } - - blockquote p:last-child, - blockquote ul:last-child, - blockquote ol:last-child { - margin-bottom: 0; - } - - blockquote footer, - blockquote small, - blockquote .small { - display: block; - font-size: 80%; - line-height: 1.42857143; - color: #E0E0E0; - } - - blockquote footer:before, - blockquote small:before, - blockquote .small:before { - content: "\2014 \00A0"; - } - - .blockquote-reverse, - blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - text-align: right; - border-right: 5px solid #eeeeee; - border-left: 0; - } - - .blockquote-reverse footer:before, - blockquote.pull-right footer:before, - .blockquote-reverse small:before, - blockquote.pull-right small:before, - .blockquote-reverse .small:before, - blockquote.pull-right .small:before { - content: ""; - } - - .blockquote-reverse footer:after, - blockquote.pull-right footer:after, - .blockquote-reverse small:after, - blockquote.pull-right small:after, - .blockquote-reverse .small:after, - blockquote.pull-right .small:after { - content: "\00A0 \2014"; - } - - address { - margin-bottom: 20px; - font-style: normal; - line-height: 1.42857143; - } - - code, - kbd, - pre, - samp { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - } - - code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - background-color: #f9f2f4; - border-radius: 4px; - } - - kbd { - padding: 2px 4px; - font-size: 90%; - color: #fff; - background-color: #333; - border-radius: 3px; - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); - } - - kbd kbd { - padding: 0; - font-size: 100%; - font-weight: 700; - box-shadow: none; - } - - pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 1.42857143; - color: #777777; - word-break: break-all; - word-wrap: break-word; - background-color: #f5f5f5; - border: 1px solid #ccc; - border-radius: 4px; - } - - pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; - } - - .pre-scrollable { - max-height: 340px; - overflow-y: scroll; - } - - .container { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; - } - - @media (min-width: 768px) { - .container { - width: 750px; - } - } - - @media (min-width: 992px) { - .container { - width: 970px; - } - } - - @media (min-width: 1200px) { - .container { - width: 1170px; - } - } - - .container-fluid { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; - } - - .row { - margin-right: -15px; - margin-left: -15px; - } - - .row-no-gutters { - margin-right: 0; - margin-left: 0; - } - - .row-no-gutters [class*="col-"] { - padding-right: 0; - padding-left: 0; - } - - .col-xs-1, - .col-sm-1, - .col-md-1, - .col-lg-1, - .col-xs-2, - .col-sm-2, - .col-md-2, - .col-lg-2, - .col-xs-3, - .col-sm-3, - .col-md-3, - .col-lg-3, - .col-xs-4, - .col-sm-4, - .col-md-4, - .col-lg-4, - .col-xs-5, - .col-sm-5, - .col-md-5, - .col-lg-5, - .col-xs-6, - .col-sm-6, - .col-md-6, - .col-lg-6, - .col-xs-7, - .col-sm-7, - .col-md-7, - .col-lg-7, - .col-xs-8, - .col-sm-8, - .col-md-8, - .col-lg-8, - .col-xs-9, - .col-sm-9, - .col-md-9, - .col-lg-9, - .col-xs-10, - .col-sm-10, - .col-md-10, - .col-lg-10, - .col-xs-11, - .col-sm-11, - .col-md-11, - .col-lg-11, - .col-xs-12, - .col-sm-12, - .col-md-12, - .col-lg-12 { - position: relative; - min-height: 1px; - padding-right: 15px; - padding-left: 15px; - } - - .col-xs-1, - .col-xs-2, - .col-xs-3, - .col-xs-4, - .col-xs-5, - .col-xs-6, - .col-xs-7, - .col-xs-8, - .col-xs-9, - .col-xs-10, - .col-xs-11, - .col-xs-12 { - float: left; - } - - .col-xs-12 { - width: 100%; - } - - .col-xs-11 { - width: 91.66666667%; - } - - .col-xs-10 { - width: 83.33333333%; - } - - .col-xs-9 { - width: 75%; - } - - .col-xs-8 { - width: 66.66666667%; - } - - .col-xs-7 { - width: 58.33333333%; - } - - .col-xs-6 { - width: 50%; - } - - .col-xs-5 { - width: 41.66666667%; - } - - .col-xs-4 { - width: 33.33333333%; - } - - .col-xs-3 { - width: 25%; - } - - .col-xs-2 { - width: 16.66666667%; - } - - .col-xs-1 { - width: 8.33333333%; - } - - .col-xs-pull-12 { - right: 100%; - } - - .col-xs-pull-11 { - right: 91.66666667%; - } - - .col-xs-pull-10 { - right: 83.33333333%; - } - - .col-xs-pull-9 { - right: 75%; - } - - .col-xs-pull-8 { - right: 66.66666667%; - } - - .col-xs-pull-7 { - right: 58.33333333%; - } - - .col-xs-pull-6 { - right: 50%; - } - - .col-xs-pull-5 { - right: 41.66666667%; - } - - .col-xs-pull-4 { - right: 33.33333333%; - } - - .col-xs-pull-3 { - right: 25%; - } - - .col-xs-pull-2 { - right: 16.66666667%; - } - - .col-xs-pull-1 { - right: 8.33333333%; - } - - .col-xs-pull-0 { - right: auto; - } - - .col-xs-push-12 { - left: 100%; - } - - .col-xs-push-11 { - left: 91.66666667%; - } - - .col-xs-push-10 { - left: 83.33333333%; - } - - .col-xs-push-9 { - left: 75%; - } - - .col-xs-push-8 { - left: 66.66666667%; - } - - .col-xs-push-7 { - left: 58.33333333%; - } - - .col-xs-push-6 { - left: 50%; - } - - .col-xs-push-5 { - left: 41.66666667%; - } - - .col-xs-push-4 { - left: 33.33333333%; - } - - .col-xs-push-3 { - left: 25%; - } - - .col-xs-push-2 { - left: 16.66666667%; - } - - .col-xs-push-1 { - left: 8.33333333%; - } - - .col-xs-push-0 { - left: auto; - } - - .col-xs-offset-12 { - margin-left: 100%; - } - - .col-xs-offset-11 { - margin-left: 91.66666667%; - } - - .col-xs-offset-10 { - margin-left: 83.33333333%; - } - - .col-xs-offset-9 { - margin-left: 75%; - } - - .col-xs-offset-8 { - margin-left: 66.66666667%; - } - - .col-xs-offset-7 { - margin-left: 58.33333333%; - } - - .col-xs-offset-6 { - margin-left: 50%; - } - - .col-xs-offset-5 { - margin-left: 41.66666667%; - } - - .col-xs-offset-4 { - margin-left: 33.33333333%; - } - - .col-xs-offset-3 { - margin-left: 25%; - } - - .col-xs-offset-2 { - margin-left: 16.66666667%; - } - - .col-xs-offset-1 { - margin-left: 8.33333333%; - } - - .col-xs-offset-0 { - margin-left: 0%; - } - - @media (min-width: 768px) { - .col-sm-1, - .col-sm-2, - .col-sm-3, - .col-sm-4, - .col-sm-5, - .col-sm-6, - .col-sm-7, - .col-sm-8, - .col-sm-9, - .col-sm-10, - .col-sm-11, - .col-sm-12 { - float: left; - } - .col-sm-12 { - width: 100%; - } - .col-sm-11 { - width: 91.66666667%; - } - .col-sm-10 { - width: 83.33333333%; - } - .col-sm-9 { - width: 75%; - } - .col-sm-8 { - width: 66.66666667%; - } - .col-sm-7 { - width: 58.33333333%; - } - .col-sm-6 { - width: 50%; - } - .col-sm-5 { - width: 41.66666667%; - } - .col-sm-4 { - width: 33.33333333%; - } - .col-sm-3 { - width: 25%; - } - .col-sm-2 { - width: 16.66666667%; - } - .col-sm-1 { - width: 8.33333333%; - } - .col-sm-pull-12 { - right: 100%; - } - .col-sm-pull-11 { - right: 91.66666667%; - } - .col-sm-pull-10 { - right: 83.33333333%; - } - .col-sm-pull-9 { - right: 75%; - } - .col-sm-pull-8 { - right: 66.66666667%; - } - .col-sm-pull-7 { - right: 58.33333333%; - } - .col-sm-pull-6 { - right: 50%; - } - .col-sm-pull-5 { - right: 41.66666667%; - } - .col-sm-pull-4 { - right: 33.33333333%; - } - .col-sm-pull-3 { - right: 25%; - } - .col-sm-pull-2 { - right: 16.66666667%; - } - .col-sm-pull-1 { - right: 8.33333333%; - } - .col-sm-pull-0 { - right: auto; - } - .col-sm-push-12 { - left: 100%; - } - .col-sm-push-11 { - left: 91.66666667%; - } - .col-sm-push-10 { - left: 83.33333333%; - } - .col-sm-push-9 { - left: 75%; - } - .col-sm-push-8 { - left: 66.66666667%; - } - .col-sm-push-7 { - left: 58.33333333%; - } - .col-sm-push-6 { - left: 50%; - } - .col-sm-push-5 { - left: 41.66666667%; - } - .col-sm-push-4 { - left: 33.33333333%; - } - .col-sm-push-3 { - left: 25%; - } - .col-sm-push-2 { - left: 16.66666667%; - } - .col-sm-push-1 { - left: 8.33333333%; - } - .col-sm-push-0 { - left: auto; - } - .col-sm-offset-12 { - margin-left: 100%; - } - .col-sm-offset-11 { - margin-left: 91.66666667%; - } - .col-sm-offset-10 { - margin-left: 83.33333333%; - } - .col-sm-offset-9 { - margin-left: 75%; - } - .col-sm-offset-8 { - margin-left: 66.66666667%; - } - .col-sm-offset-7 { - margin-left: 58.33333333%; - } - .col-sm-offset-6 { - margin-left: 50%; - } - .col-sm-offset-5 { - margin-left: 41.66666667%; - } - .col-sm-offset-4 { - margin-left: 33.33333333%; - } - .col-sm-offset-3 { - margin-left: 25%; - } - .col-sm-offset-2 { - margin-left: 16.66666667%; - } - .col-sm-offset-1 { - margin-left: 8.33333333%; - } - .col-sm-offset-0 { - margin-left: 0%; - } - } - - @media (min-width: 992px) { - .col-md-1, - .col-md-2, - .col-md-3, - .col-md-4, - .col-md-5, - .col-md-6, - .col-md-7, - .col-md-8, - .col-md-9, - .col-md-10, - .col-md-11, - .col-md-12 { - float: left; - } - .col-md-12 { - width: 100%; - } - .col-md-11 { - width: 91.66666667%; - } - .col-md-10 { - width: 83.33333333%; - } - .col-md-9 { - width: 75%; - } - .col-md-8 { - width: 66.66666667%; - } - .col-md-7 { - width: 58.33333333%; - } - .col-md-6 { - width: 50%; - } - .col-md-5 { - width: 41.66666667%; - } - .col-md-4 { - width: 33.33333333%; - } - .col-md-3 { - width: 25%; - } - .col-md-2 { - width: 16.66666667%; - } - .col-md-1 { - width: 8.33333333%; - } - .col-md-pull-12 { - right: 100%; - } - .col-md-pull-11 { - right: 91.66666667%; - } - .col-md-pull-10 { - right: 83.33333333%; - } - .col-md-pull-9 { - right: 75%; - } - .col-md-pull-8 { - right: 66.66666667%; - } - .col-md-pull-7 { - right: 58.33333333%; - } - .col-md-pull-6 { - right: 50%; - } - .col-md-pull-5 { - right: 41.66666667%; - } - .col-md-pull-4 { - right: 33.33333333%; - } - .col-md-pull-3 { - right: 25%; - } - .col-md-pull-2 { - right: 16.66666667%; - } - .col-md-pull-1 { - right: 8.33333333%; - } - .col-md-pull-0 { - right: auto; - } - .col-md-push-12 { - left: 100%; - } - .col-md-push-11 { - left: 91.66666667%; - } - .col-md-push-10 { - left: 83.33333333%; - } - .col-md-push-9 { - left: 75%; - } - .col-md-push-8 { - left: 66.66666667%; - } - .col-md-push-7 { - left: 58.33333333%; - } - .col-md-push-6 { - left: 50%; - } - .col-md-push-5 { - left: 41.66666667%; - } - .col-md-push-4 { - left: 33.33333333%; - } - .col-md-push-3 { - left: 25%; - } - .col-md-push-2 { - left: 16.66666667%; - } - .col-md-push-1 { - left: 8.33333333%; - } - .col-md-push-0 { - left: auto; - } - .col-md-offset-12 { - margin-left: 100%; - } - .col-md-offset-11 { - margin-left: 91.66666667%; - } - .col-md-offset-10 { - margin-left: 83.33333333%; - } - .col-md-offset-9 { - margin-left: 75%; - } - .col-md-offset-8 { - margin-left: 66.66666667%; - } - .col-md-offset-7 { - margin-left: 58.33333333%; - } - .col-md-offset-6 { - margin-left: 50%; - } - .col-md-offset-5 { - margin-left: 41.66666667%; - } - .col-md-offset-4 { - margin-left: 33.33333333%; - } - .col-md-offset-3 { - margin-left: 25%; - } - .col-md-offset-2 { - margin-left: 16.66666667%; - } - .col-md-offset-1 { - margin-left: 8.33333333%; - } - .col-md-offset-0 { - margin-left: 0%; - } - } - - @media (min-width: 1200px) { - .col-lg-1, - .col-lg-2, - .col-lg-3, - .col-lg-4, - .col-lg-5, - .col-lg-6, - .col-lg-7, - .col-lg-8, - .col-lg-9, - .col-lg-10, - .col-lg-11, - .col-lg-12 { - float: left; - } - .col-lg-12 { - width: 100%; - } - .col-lg-11 { - width: 91.66666667%; - } - .col-lg-10 { - width: 83.33333333%; - } - .col-lg-9 { - width: 75%; - } - .col-lg-8 { - width: 66.66666667%; - } - .col-lg-7 { - width: 58.33333333%; - } - .col-lg-6 { - width: 50%; - } - .col-lg-5 { - width: 41.66666667%; - } - .col-lg-4 { - width: 33.33333333%; - } - .col-lg-3 { - width: 25%; - } - .col-lg-2 { - width: 16.66666667%; - } - .col-lg-1 { - width: 8.33333333%; - } - .col-lg-pull-12 { - right: 100%; - } - .col-lg-pull-11 { - right: 91.66666667%; - } - .col-lg-pull-10 { - right: 83.33333333%; - } - .col-lg-pull-9 { - right: 75%; - } - .col-lg-pull-8 { - right: 66.66666667%; - } - .col-lg-pull-7 { - right: 58.33333333%; - } - .col-lg-pull-6 { - right: 50%; - } - .col-lg-pull-5 { - right: 41.66666667%; - } - .col-lg-pull-4 { - right: 33.33333333%; - } - .col-lg-pull-3 { - right: 25%; - } - .col-lg-pull-2 { - right: 16.66666667%; - } - .col-lg-pull-1 { - right: 8.33333333%; - } - .col-lg-pull-0 { - right: auto; - } - .col-lg-push-12 { - left: 100%; - } - .col-lg-push-11 { - left: 91.66666667%; - } - .col-lg-push-10 { - left: 83.33333333%; - } - .col-lg-push-9 { - left: 75%; - } - .col-lg-push-8 { - left: 66.66666667%; - } - .col-lg-push-7 { - left: 58.33333333%; - } - .col-lg-push-6 { - left: 50%; - } - .col-lg-push-5 { - left: 41.66666667%; - } - .col-lg-push-4 { - left: 33.33333333%; - } - .col-lg-push-3 { - left: 25%; - } - .col-lg-push-2 { - left: 16.66666667%; - } - .col-lg-push-1 { - left: 8.33333333%; - } - .col-lg-push-0 { - left: auto; - } - .col-lg-offset-12 { - margin-left: 100%; - } - .col-lg-offset-11 { - margin-left: 91.66666667%; - } - .col-lg-offset-10 { - margin-left: 83.33333333%; - } - .col-lg-offset-9 { - margin-left: 75%; - } - .col-lg-offset-8 { - margin-left: 66.66666667%; - } - .col-lg-offset-7 { - margin-left: 58.33333333%; - } - .col-lg-offset-6 { - margin-left: 50%; - } - .col-lg-offset-5 { - margin-left: 41.66666667%; - } - .col-lg-offset-4 { - margin-left: 33.33333333%; - } - .col-lg-offset-3 { - margin-left: 25%; - } - .col-lg-offset-2 { - margin-left: 16.66666667%; - } - .col-lg-offset-1 { - margin-left: 8.33333333%; - } - .col-lg-offset-0 { - margin-left: 0%; - } - } - - table { - background-color: transparent; - } - - table col[class*="col-"] { - position: static; - display: table-column; - float: none; - } - - table td[class*="col-"], - table th[class*="col-"] { - position: static; - display: table-cell; - float: none; - } - - caption { - padding-top: 8px; - padding-bottom: 8px; - color: #E0E0E0; - text-align: left; - } - - th { - text-align: left; - } - - .table { - width: 100%; - max-width: 100%; - margin-bottom: 20px; - } - - .table > thead > tr > th, - .table > tbody > tr > th, - .table > tfoot > tr > th, - .table > thead > tr > td, - .table > tbody > tr > td, - .table > tfoot > tr > td { - padding: 8px; - line-height: 1.42857143; - vertical-align: top; - border-top: 1px solid #ddd; - } - - .table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #ddd; - } - - .table > caption + thead > tr:first-child > th, - .table > colgroup + thead > tr:first-child > th, - .table > thead:first-child > tr:first-child > th, - .table > caption + thead > tr:first-child > td, - .table > colgroup + thead > tr:first-child > td, - .table > thead:first-child > tr:first-child > td { - border-top: 0; - } - - .table > tbody + tbody { - border-top: 2px solid #ddd; - } - - .table .table { - background-color: #fff; - } - - .table-condensed > thead > tr > th, - .table-condensed > tbody > tr > th, - .table-condensed > tfoot > tr > th, - .table-condensed > thead > tr > td, - .table-condensed > tbody > tr > td, - .table-condensed > tfoot > tr > td { - padding: 5px; - } - - .table-bordered { - border: 1px solid #ddd; - } - - .table-bordered > thead > tr > th, - .table-bordered > tbody > tr > th, - .table-bordered > tfoot > tr > th, - .table-bordered > thead > tr > td, - .table-bordered > tbody > tr > td, - .table-bordered > tfoot > tr > td { - border: 1px solid #ddd; - } - - .table-bordered > thead > tr > th, - .table-bordered > thead > tr > td { - border-bottom-width: 2px; - } - - .table-striped > tbody > tr:nth-of-type(odd) { - background-color: #f9f9f9; - } - - .table-hover > tbody > tr:hover { - background-color: #f5f5f5; - } - - .table > thead > tr > td.active, - .table > tbody > tr > td.active, - .table > tfoot > tr > td.active, - .table > thead > tr > th.active, - .table > tbody > tr > th.active, - .table > tfoot > tr > th.active, - .table > thead > tr.active > td, - .table > tbody > tr.active > td, - .table > tfoot > tr.active > td, - .table > thead > tr.active > th, - .table > tbody > tr.active > th, - .table > tfoot > tr.active > th { - background-color: #f5f5f5; - } - - .table-hover > tbody > tr > td.active:hover, - .table-hover > tbody > tr > th.active:hover, - .table-hover > tbody > tr.active:hover > td, - .table-hover > tbody > tr:hover > .active, - .table-hover > tbody > tr.active:hover > th { - background-color: #e8e8e8; - } - - .table > thead > tr > td.success, - .table > tbody > tr > td.success, - .table > tfoot > tr > td.success, - .table > thead > tr > th.success, - .table > tbody > tr > th.success, - .table > tfoot > tr > th.success, - .table > thead > tr.success > td, - .table > tbody > tr.success > td, - .table > tfoot > tr.success > td, - .table > thead > tr.success > th, - .table > tbody > tr.success > th, - .table > tfoot > tr.success > th { - background-color: #dff0d8; - } - - .table-hover > tbody > tr > td.success:hover, - .table-hover > tbody > tr > th.success:hover, - .table-hover > tbody > tr.success:hover > td, - .table-hover > tbody > tr:hover > .success, - .table-hover > tbody > tr.success:hover > th { - background-color: #d0e9c6; - } - - .table > thead > tr > td.info, - .table > tbody > tr > td.info, - .table > tfoot > tr > td.info, - .table > thead > tr > th.info, - .table > tbody > tr > th.info, - .table > tfoot > tr > th.info, - .table > thead > tr.info > td, - .table > tbody > tr.info > td, - .table > tfoot > tr.info > td, - .table > thead > tr.info > th, - .table > tbody > tr.info > th, - .table > tfoot > tr.info > th { - background-color: #d9edf7; - } - - .table-hover > tbody > tr > td.info:hover, - .table-hover > tbody > tr > th.info:hover, - .table-hover > tbody > tr.info:hover > td, - .table-hover > tbody > tr:hover > .info, - .table-hover > tbody > tr.info:hover > th { - background-color: #c4e3f3; - } - - .table > thead > tr > td.warning, - .table > tbody > tr > td.warning, - .table > tfoot > tr > td.warning, - .table > thead > tr > th.warning, - .table > tbody > tr > th.warning, - .table > tfoot > tr > th.warning, - .table > thead > tr.warning > td, - .table > tbody > tr.warning > td, - .table > tfoot > tr.warning > td, - .table > thead > tr.warning > th, - .table > tbody > tr.warning > th, - .table > tfoot > tr.warning > th { - background-color: #fcf8e3; - } - - .table-hover > tbody > tr > td.warning:hover, - .table-hover > tbody > tr > th.warning:hover, - .table-hover > tbody > tr.warning:hover > td, - .table-hover > tbody > tr:hover > .warning, - .table-hover > tbody > tr.warning:hover > th { - background-color: #faf2cc; - } - - .table > thead > tr > td.danger, - .table > tbody > tr > td.danger, - .table > tfoot > tr > td.danger, - .table > thead > tr > th.danger, - .table > tbody > tr > th.danger, - .table > tfoot > tr > th.danger, - .table > thead > tr.danger > td, - .table > tbody > tr.danger > td, - .table > tfoot > tr.danger > td, - .table > thead > tr.danger > th, - .table > tbody > tr.danger > th, - .table > tfoot > tr.danger > th { - background-color: #f2dede; - } - - .table-hover > tbody > tr > td.danger:hover, - .table-hover > tbody > tr > th.danger:hover, - .table-hover > tbody > tr.danger:hover > td, - .table-hover > tbody > tr:hover > .danger, - .table-hover > tbody > tr.danger:hover > th { - background-color: #ebcccc; - } - - .table-responsive { - min-height: 0.01%; - overflow-x: auto; - } - - @media screen and (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 15px; - overflow-y: hidden; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #ddd; - } - .table-responsive > .table { - margin-bottom: 0; - } - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - .table-responsive > .table-bordered { - border: 0; - } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } - } - - fieldset { - min-width: 0; - padding: 0; - margin: 0; - border: 0; - } - - legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: inherit; - color: #777777; - border: 0; - border-bottom: 1px solid #e5e5e5; - } - - label { - display: inline-block; - max-width: 100%; - margin-bottom: 5px; - font-weight: 700; - } - - input[type="search"] { - box-sizing: border-box; - -webkit-appearance: none; - appearance: none; - } - - input[type="radio"], - input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - line-height: normal; - } - - input[type="radio"][disabled], - input[type="checkbox"][disabled], - input[type="radio"].disabled, - input[type="checkbox"].disabled, - fieldset[disabled] input[type="radio"], - fieldset[disabled] input[type="checkbox"] { - cursor: not-allowed; - } - - input[type="file"] { - display: block; - } - - input[type="range"] { - display: block; - width: 100%; - } - - select[multiple], - select[size] { - height: auto; - } - - input[type="file"]:focus, - input[type="radio"]:focus, - input[type="checkbox"]:focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; - } - - output { - display: block; - padding-top: 7px; - font-size: 14px; - line-height: 1.42857143; - color: #555555; - } - - .form-control { - display: block; - width: 100%; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - } - - .form-control:focus { - border-color: #66afe9; - outline: 0; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6); - } - - .form-control::-moz-placeholder { - color: #999; - opacity: 1; - } - - .form-control:-ms-input-placeholder { - color: #999; - } - - .form-control::-webkit-input-placeholder { - color: #999; - } - - .form-control::-ms-expand { - background-color: transparent; - border: 0; - } - - .form-control[disabled], - .form-control[readonly], - fieldset[disabled] .form-control { - background-color: #eeeeee; - opacity: 1; - } - - .form-control[disabled], - fieldset[disabled] .form-control { - cursor: not-allowed; - } - - textarea.form-control { - height: auto; - } - - @media screen and (-webkit-min-device-pixel-ratio: 0) { - input[type="date"].form-control, - input[type="time"].form-control, - input[type="datetime-local"].form-control, - input[type="month"].form-control { - line-height: 34px; - } - input[type="date"].input-sm, - input[type="time"].input-sm, - input[type="datetime-local"].input-sm, - input[type="month"].input-sm, - .input-group-sm input[type="date"], - .input-group-sm input[type="time"], - .input-group-sm input[type="datetime-local"], - .input-group-sm input[type="month"] { - line-height: 30px; - } - input[type="date"].input-lg, - input[type="time"].input-lg, - input[type="datetime-local"].input-lg, - input[type="month"].input-lg, - .input-group-lg input[type="date"], - .input-group-lg input[type="time"], - .input-group-lg input[type="datetime-local"], - .input-group-lg input[type="month"] { - line-height: 46px; - } - } - - .form-group { - margin-bottom: 15px; - } - - .radio, - .checkbox { - position: relative; - display: block; - margin-top: 10px; - margin-bottom: 10px; - } - - .radio.disabled label, - .checkbox.disabled label, - fieldset[disabled] .radio label, - fieldset[disabled] .checkbox label { - cursor: not-allowed; - } - - .radio label, - .checkbox label { - min-height: 20px; - padding-left: 20px; - margin-bottom: 0; - font-weight: 400; - cursor: pointer; - } - - .radio input[type="radio"], - .radio-inline input[type="radio"], - .checkbox input[type="checkbox"], - .checkbox-inline input[type="checkbox"] { - position: absolute; - margin-top: 4px \9; - margin-left: -20px; - } - - .radio + .radio, - .checkbox + .checkbox { - margin-top: -5px; - } - - .radio-inline, - .checkbox-inline { - position: relative; - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - font-weight: 400; - vertical-align: middle; - cursor: pointer; - } - - .radio-inline.disabled, - .checkbox-inline.disabled, - fieldset[disabled] .radio-inline, - fieldset[disabled] .checkbox-inline { - cursor: not-allowed; - } - - .radio-inline + .radio-inline, - .checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; - } - - .form-control-static { - min-height: 34px; - padding-top: 7px; - padding-bottom: 7px; - margin-bottom: 0; - } - - .form-control-static.input-lg, - .form-control-static.input-sm { - padding-right: 0; - padding-left: 0; - } - - .input-sm { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; - } - - select.input-sm { - height: 30px; - line-height: 30px; - } - - textarea.input-sm, - select[multiple].input-sm { - height: auto; - } - - .form-group-sm .form-control { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; - } - - .form-group-sm select.form-control { - height: 30px; - line-height: 30px; - } - - .form-group-sm textarea.form-control, - .form-group-sm select[multiple].form-control { - height: auto; - } - - .form-group-sm .form-control-static { - height: 30px; - min-height: 32px; - padding: 6px 10px; - font-size: 12px; - line-height: 1.5; - } - - .input-lg { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; - } - - select.input-lg { - height: 46px; - line-height: 46px; - } - - textarea.input-lg, - select[multiple].input-lg { - height: auto; - } - - .form-group-lg .form-control { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; - } - - .form-group-lg select.form-control { - height: 46px; - line-height: 46px; - } - - .form-group-lg textarea.form-control, - .form-group-lg select[multiple].form-control { - height: auto; - } - - .form-group-lg .form-control-static { - height: 46px; - min-height: 38px; - padding: 11px 16px; - font-size: 18px; - line-height: 1.3333333; - } - - .has-feedback { - position: relative; - } - - .has-feedback .form-control { - padding-right: 42.5px; - } - - .form-control-feedback { - position: absolute; - top: 0; - right: 0; - z-index: 2; - display: block; - width: 34px; - height: 34px; - line-height: 34px; - text-align: center; - pointer-events: none; - } - - .input-lg + .form-control-feedback, - .input-group-lg + .form-control-feedback, - .form-group-lg .form-control + .form-control-feedback { - width: 46px; - height: 46px; - line-height: 46px; - } - - .input-sm + .form-control-feedback, - .input-group-sm + .form-control-feedback, - .form-group-sm .form-control + .form-control-feedback { - width: 30px; - height: 30px; - line-height: 30px; - } - - .has-success .help-block, - .has-success .control-label, - .has-success .radio, - .has-success .checkbox, - .has-success .radio-inline, - .has-success .checkbox-inline, - .has-success.radio label, - .has-success.checkbox label, - .has-success.radio-inline label, - .has-success.checkbox-inline label { - color: #3c763d; - } - - .has-success .form-control { - border-color: #3c763d; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - } - - .has-success .form-control:focus { - border-color: #2b542c; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; - } - - .has-success .input-group-addon { - color: #3c763d; - background-color: #dff0d8; - border-color: #3c763d; - } - - .has-success .form-control-feedback { - color: #3c763d; - } - - .has-warning .help-block, - .has-warning .control-label, - .has-warning .radio, - .has-warning .checkbox, - .has-warning .radio-inline, - .has-warning .checkbox-inline, - .has-warning.radio label, - .has-warning.checkbox label, - .has-warning.radio-inline label, - .has-warning.checkbox-inline label { - color: #8a6d3b; - } - - .has-warning .form-control { - border-color: #8a6d3b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - } - - .has-warning .form-control:focus { - border-color: #66512c; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; - } - - .has-warning .input-group-addon { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #8a6d3b; - } - - .has-warning .form-control-feedback { - color: #8a6d3b; - } - - .has-error .help-block, - .has-error .control-label, - .has-error .radio, - .has-error .checkbox, - .has-error .radio-inline, - .has-error .checkbox-inline, - .has-error.radio label, - .has-error.checkbox label, - .has-error.radio-inline label, - .has-error.checkbox-inline label { - color: #a94442; - } - - .has-error .form-control { - border-color: #a94442; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - } - - .has-error .form-control:focus { - border-color: #843534; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; - } - - .has-error .input-group-addon { - color: #a94442; - background-color: #f2dede; - border-color: #a94442; - } - - .has-error .form-control-feedback { - color: #a94442; - } - - .has-feedback label ~ .form-control-feedback { - top: 25px; - } - - .has-feedback label.sr-only ~ .form-control-feedback { - top: 0; - } - - .help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #b7b7b7; - } - - @media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .form-inline .form-control-static { - display: inline-block; - } - .form-inline .input-group { - display: inline-table; - vertical-align: middle; - } - .form-inline .input-group .input-group-addon, - .form-inline .input-group .input-group-btn, - .form-inline .input-group .form-control { - width: auto; - } - .form-inline .input-group > .form-control { - width: 100%; - } - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio label, - .form-inline .checkbox label { - padding-left: 0; - } - .form-inline .radio input[type="radio"], - .form-inline .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - .form-inline .has-feedback .form-control-feedback { - top: 0; - } - } - - .form-horizontal .radio, - .form-horizontal .checkbox, - .form-horizontal .radio-inline, - .form-horizontal .checkbox-inline { - padding-top: 7px; - margin-top: 0; - margin-bottom: 0; - } - - .form-horizontal .radio, - .form-horizontal .checkbox { - min-height: 27px; - } - - .form-horizontal .form-group { - margin-right: -15px; - margin-left: -15px; - } - - @media (min-width: 768px) { - .form-horizontal .control-label { - padding-top: 7px; - margin-bottom: 0; - text-align: right; - } - } - - .form-horizontal .has-feedback .form-control-feedback { - right: 15px; - } - - @media (min-width: 768px) { - .form-horizontal .form-group-lg .control-label { - padding-top: 11px; - font-size: 18px; - } - } - - @media (min-width: 768px) { - .form-horizontal .form-group-sm .control-label { - padding-top: 6px; - font-size: 12px; - } - } - - .btn { - display: inline-block; - margin-bottom: 0; - font-weight: normal; - text-align: center; - white-space: nowrap; - vertical-align: middle; - touch-action: manipulation; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - border-radius: 4px; - -webkit-user-select: none; - user-select: none; - } - - .btn:focus, - .btn:active:focus, - .btn.active:focus, - .btn.focus, - .btn:active.focus, - .btn.active.focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; - } - - .btn:hover, - .btn:focus, - .btn.focus { - color: #333; - text-decoration: none; - } - - .btn:active, - .btn.active { - background-image: none; - outline: 0; - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - } - - .btn.disabled, - .btn[disabled], - fieldset[disabled] .btn { - cursor: not-allowed; - filter: alpha(opacity=65); - opacity: 0.65; - box-shadow: none; - } - - a.btn.disabled, - fieldset[disabled] a.btn { - pointer-events: none; - } - - .btn-default { - color: #333; - background-color: #fff; - border-color: #ccc; - } - - .btn-default:focus, - .btn-default.focus { - color: #333; - background-color: #e6e6e6; - border-color: #8c8c8c; - } - - .btn-default:hover { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; - } - - .btn-default:active, - .btn-default.active, - .open > .dropdown-toggle.btn-default { - color: #333; - background-color: #e6e6e6; - background-image: none; - border-color: #adadad; - } - - .btn-default:active:hover, - .btn-default.active:hover, - .open > .dropdown-toggle.btn-default:hover, - .btn-default:active:focus, - .btn-default.active:focus, - .open > .dropdown-toggle.btn-default:focus, - .btn-default:active.focus, - .btn-default.active.focus, - .open > .dropdown-toggle.btn-default.focus { - color: #333; - background-color: #d4d4d4; - border-color: #8c8c8c; - } - - .btn-default.disabled:hover, - .btn-default[disabled]:hover, - fieldset[disabled] .btn-default:hover, - .btn-default.disabled:focus, - .btn-default[disabled]:focus, - fieldset[disabled] .btn-default:focus, - .btn-default.disabled.focus, - .btn-default[disabled].focus, - fieldset[disabled] .btn-default.focus { - background-color: #fff; - border-color: #ccc; - } - - .btn-default .badge { - color: #fff; - background-color: #333; - } - - .btn-primary { - color: #fff; - background-color: #337ab7; - border-color: #2e6da4; - } - - .btn-primary:focus, - .btn-primary.focus { - color: #fff; - background-color: #286090; - border-color: #122b40; - } - - .btn-primary:hover { - color: #fff; - background-color: #286090; - border-color: #204d74; - } - - .btn-primary:active, - .btn-primary.active, - .open > .dropdown-toggle.btn-primary { - color: #fff; - background-color: #286090; - background-image: none; - border-color: #204d74; - } - - .btn-primary:active:hover, - .btn-primary.active:hover, - .open > .dropdown-toggle.btn-primary:hover, - .btn-primary:active:focus, - .btn-primary.active:focus, - .open > .dropdown-toggle.btn-primary:focus, - .btn-primary:active.focus, - .btn-primary.active.focus, - .open > .dropdown-toggle.btn-primary.focus { - color: #fff; - background-color: #204d74; - border-color: #122b40; - } - - .btn-primary.disabled:hover, - .btn-primary[disabled]:hover, - fieldset[disabled] .btn-primary:hover, - .btn-primary.disabled:focus, - .btn-primary[disabled]:focus, - fieldset[disabled] .btn-primary:focus, - .btn-primary.disabled.focus, - .btn-primary[disabled].focus, - fieldset[disabled] .btn-primary.focus { - background-color: #337ab7; - border-color: #2e6da4; - } - - .btn-primary .badge { - color: #337ab7; - background-color: #fff; - } - - .btn-success { - color: #fff; - background-color: #5cb85c; - border-color: #4cae4c; - } - - .btn-success:focus, - .btn-success.focus { - color: #fff; - background-color: #449d44; - border-color: #255625; - } - - .btn-success:hover { - color: #fff; - background-color: #449d44; - border-color: #398439; - } - - .btn-success:active, - .btn-success.active, - .open > .dropdown-toggle.btn-success { - color: #fff; - background-color: #449d44; - background-image: none; - border-color: #398439; - } - - .btn-success:active:hover, - .btn-success.active:hover, - .open > .dropdown-toggle.btn-success:hover, - .btn-success:active:focus, - .btn-success.active:focus, - .open > .dropdown-toggle.btn-success:focus, - .btn-success:active.focus, - .btn-success.active.focus, - .open > .dropdown-toggle.btn-success.focus { - color: #fff; - background-color: #398439; - border-color: #255625; - } - - .btn-success.disabled:hover, - .btn-success[disabled]:hover, - fieldset[disabled] .btn-success:hover, - .btn-success.disabled:focus, - .btn-success[disabled]:focus, - fieldset[disabled] .btn-success:focus, - .btn-success.disabled.focus, - .btn-success[disabled].focus, - fieldset[disabled] .btn-success.focus { - background-color: #5cb85c; - border-color: #4cae4c; - } - - .btn-success .badge { - color: #5cb85c; - background-color: #fff; - } - - .btn-info { - color: #fff; - background-color: #5bc0de; - border-color: #46b8da; - } - - .btn-info:focus, - .btn-info.focus { - color: #fff; - background-color: #31b0d5; - border-color: #1b6d85; - } - - .btn-info:hover { - color: #fff; - background-color: #31b0d5; - border-color: #269abc; - } - - .btn-info:active, - .btn-info.active, - .open > .dropdown-toggle.btn-info { - color: #fff; - background-color: #31b0d5; - background-image: none; - border-color: #269abc; - } - - .btn-info:active:hover, - .btn-info.active:hover, - .open > .dropdown-toggle.btn-info:hover, - .btn-info:active:focus, - .btn-info.active:focus, - .open > .dropdown-toggle.btn-info:focus, - .btn-info:active.focus, - .btn-info.active.focus, - .open > .dropdown-toggle.btn-info.focus { - color: #fff; - background-color: #269abc; - border-color: #1b6d85; - } - - .btn-info.disabled:hover, - .btn-info[disabled]:hover, - fieldset[disabled] .btn-info:hover, - .btn-info.disabled:focus, - .btn-info[disabled]:focus, - fieldset[disabled] .btn-info:focus, - .btn-info.disabled.focus, - .btn-info[disabled].focus, - fieldset[disabled] .btn-info.focus { - background-color: #5bc0de; - border-color: #46b8da; - } - - .btn-info .badge { - color: #5bc0de; - background-color: #fff; - } - - .btn-warning { - color: #fff; - background-color: #f0ad4e; - border-color: #eea236; - } - - .btn-warning:focus, - .btn-warning.focus { - color: #fff; - background-color: #ec971f; - border-color: #985f0d; - } - - .btn-warning:hover { - color: #fff; - background-color: #ec971f; - border-color: #d58512; - } - - .btn-warning:active, - .btn-warning.active, - .open > .dropdown-toggle.btn-warning { - color: #fff; - background-color: #ec971f; - background-image: none; - border-color: #d58512; - } - - .btn-warning:active:hover, - .btn-warning.active:hover, - .open > .dropdown-toggle.btn-warning:hover, - .btn-warning:active:focus, - .btn-warning.active:focus, - .open > .dropdown-toggle.btn-warning:focus, - .btn-warning:active.focus, - .btn-warning.active.focus, - .open > .dropdown-toggle.btn-warning.focus { - color: #fff; - background-color: #d58512; - border-color: #985f0d; - } - - .btn-warning.disabled:hover, - .btn-warning[disabled]:hover, - fieldset[disabled] .btn-warning:hover, - .btn-warning.disabled:focus, - .btn-warning[disabled]:focus, - fieldset[disabled] .btn-warning:focus, - .btn-warning.disabled.focus, - .btn-warning[disabled].focus, - fieldset[disabled] .btn-warning.focus { - background-color: #f0ad4e; - border-color: #eea236; - } - - .btn-warning .badge { - color: #f0ad4e; - background-color: #fff; - } - - .btn-danger { - color: #fff; - background-color: #d9534f; - border-color: #d43f3a; - } - - .btn-danger:focus, - .btn-danger.focus { - color: #fff; - background-color: #c9302c; - border-color: #761c19; - } - - .btn-danger:hover { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; - } - - .btn-danger:active, - .btn-danger.active, - .open > .dropdown-toggle.btn-danger { - color: #fff; - background-color: #c9302c; - background-image: none; - border-color: #ac2925; - } - - .btn-danger:active:hover, - .btn-danger.active:hover, - .open > .dropdown-toggle.btn-danger:hover, - .btn-danger:active:focus, - .btn-danger.active:focus, - .open > .dropdown-toggle.btn-danger:focus, - .btn-danger:active.focus, - .btn-danger.active.focus, - .open > .dropdown-toggle.btn-danger.focus { - color: #fff; - background-color: #ac2925; - border-color: #761c19; - } - - .btn-danger.disabled:hover, - .btn-danger[disabled]:hover, - fieldset[disabled] .btn-danger:hover, - .btn-danger.disabled:focus, - .btn-danger[disabled]:focus, - fieldset[disabled] .btn-danger:focus, - .btn-danger.disabled.focus, - .btn-danger[disabled].focus, - fieldset[disabled] .btn-danger.focus { - background-color: #d9534f; - border-color: #d43f3a; - } - - .btn-danger .badge { - color: #d9534f; - background-color: #fff; - } - - .btn-link { - font-weight: 400; - color: #337ab7; - border-radius: 0; - } - - .btn-link, - .btn-link:active, - .btn-link.active, - .btn-link[disabled], - fieldset[disabled] .btn-link { - background-color: transparent; - box-shadow: none; - } - - .btn-link, - .btn-link:hover, - .btn-link:focus, - .btn-link:active { - border-color: transparent; - } - - .btn-link:hover, - .btn-link:focus { - color: #23527c; - text-decoration: underline; - background-color: transparent; - } - - .btn-link[disabled]:hover, - fieldset[disabled] .btn-link:hover, - .btn-link[disabled]:focus, - fieldset[disabled] .btn-link:focus { - color: #E0E0E0; - text-decoration: none; - } - - .btn-lg, - .btn-group-lg > .btn { - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; - } - - .btn-sm, - .btn-group-sm > .btn { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; - } - - .btn-xs, - .btn-group-xs > .btn { - padding: 1px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; - } - - .btn-block { - display: block; - width: 100%; - } - - .btn-block + .btn-block { - margin-top: 5px; - } - - input[type="submit"].btn-block, - input[type="reset"].btn-block, - input[type="button"].btn-block { - width: 100%; - } - - .fade { - opacity: 0; - transition: opacity 0.15s linear; - } - - .fade.in { - opacity: 1; - } - - .collapse { - display: none; - } - - .collapse.in { - display: block; - } - - tr.collapse.in { - display: table-row; - } - - tbody.collapse.in { - display: table-row-group; - } - - .collapsing { - position: relative; - height: 0; - overflow: hidden; - transition-property: height, visibility; - transition-duration: 0.35s; - transition-timing-function: ease; - } - - .caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px dashed; - border-top: 4px solid \9; - border-right: 4px solid transparent; - border-left: 4px solid transparent; - } - - .dropup, - .dropdown { - position: relative; - } - - .dropdown-toggle:focus { - outline: 0; - } - - .dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - font-size: 14px; - text-align: left; - list-style: none; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 4px; - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - } - - .dropdown-menu.pull-right { - right: 0; - left: auto; - } - - .dropdown-menu .divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; - } - - .dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: 400; - line-height: 1.42857143; - color: #777777; - white-space: nowrap; - } - - .dropdown-menu > li > a:hover, - .dropdown-menu > li > a:focus { - color: #6a6a6a; - text-decoration: none; - background-color: #f5f5f5; - } - - .dropdown-menu > .active > a, - .dropdown-menu > .active > a:hover, - .dropdown-menu > .active > a:focus { - color: #fff; - text-decoration: none; - background-color: #337ab7; - outline: 0; - } - - .dropdown-menu > .disabled > a, - .dropdown-menu > .disabled > a:hover, - .dropdown-menu > .disabled > a:focus { - color: #E0E0E0; - } - - .dropdown-menu > .disabled > a:hover, - .dropdown-menu > .disabled > a:focus { - text-decoration: none; - cursor: not-allowed; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - } - - .open > .dropdown-menu { - display: block; - } - - .open > a { - outline: 0; - } - - .dropdown-menu-right { - right: 0; - left: auto; - } - - .dropdown-menu-left { - right: auto; - left: 0; - } - - .dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.42857143; - color: #E0E0E0; - white-space: nowrap; - } - - .dropdown-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 990; - } - - .pull-right > .dropdown-menu { - right: 0; - left: auto; - } - - .dropup .caret, - .navbar-fixed-bottom .dropdown .caret { - content: ""; - border-top: 0; - border-bottom: 4px dashed; - border-bottom: 4px solid \9; - } - - .dropup .dropdown-menu, - .navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 2px; - } - - @media (min-width: 768px) { - .navbar-right .dropdown-menu { - right: 0; - left: auto; - } - .navbar-right .dropdown-menu-left { - right: auto; - left: 0; - } - } - - .btn-group, - .btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; - } - - .btn-group > .btn, - .btn-group-vertical > .btn { - position: relative; - float: left; - } - - .btn-group > .btn:hover, - .btn-group-vertical > .btn:hover, - .btn-group > .btn:focus, - .btn-group-vertical > .btn:focus, - .btn-group > .btn:active, - .btn-group-vertical > .btn:active, - .btn-group > .btn.active, - .btn-group-vertical > .btn.active { - z-index: 2; - } - - .btn-group .btn + .btn, - .btn-group .btn + .btn-group, - .btn-group .btn-group + .btn, - .btn-group .btn-group + .btn-group { - margin-left: -1px; - } - - .btn-toolbar { - margin-left: -5px; - } - - .btn-toolbar .btn, - .btn-toolbar .btn-group, - .btn-toolbar .input-group { - float: left; - } - - .btn-toolbar > .btn, - .btn-toolbar > .btn-group, - .btn-toolbar > .input-group { - margin-left: 5px; - } - - .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; - } - - .btn-group > .btn:first-child { - margin-left: 0; - } - - .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - } - - .btn-group > .btn:last-child:not(:first-child), - .btn-group > .dropdown-toggle:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - } - - .btn-group > .btn-group { - float: left; - } - - .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; - } - - .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, - .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - } - - .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - } - - .btn-group .dropdown-toggle:active, - .btn-group.open .dropdown-toggle { - outline: 0; - } - - .btn-group > .btn + .dropdown-toggle { - padding-right: 8px; - padding-left: 8px; - } - - .btn-group > .btn-lg + .dropdown-toggle { - padding-right: 12px; - padding-left: 12px; - } - - .btn-group.open .dropdown-toggle { - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - } - - .btn-group.open .dropdown-toggle.btn-link { - box-shadow: none; - } - - .btn .caret { - margin-left: 0; - } - - .btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; - } - - .dropup .btn-lg .caret { - border-width: 0 5px 5px; - } - - .btn-group-vertical > .btn, - .btn-group-vertical > .btn-group, - .btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; - } - - .btn-group-vertical > .btn-group > .btn { - float: none; - } - - .btn-group-vertical > .btn + .btn, - .btn-group-vertical > .btn + .btn-group, - .btn-group-vertical > .btn-group + .btn, - .btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; - } - - .btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; - } - - .btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - } - - .btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; - } - - .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; - } - - .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, - .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - } - - .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-left-radius: 0; - border-top-right-radius: 0; - } - - .btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; - } - - .btn-group-justified > .btn, - .btn-group-justified > .btn-group { - display: table-cell; - float: none; - width: 1%; - } - - .btn-group-justified > .btn-group .btn { - width: 100%; - } - - .btn-group-justified > .btn-group .dropdown-menu { - left: auto; - } - - [data-toggle="buttons"] > .btn input[type="radio"], - [data-toggle="buttons"] > .btn-group > .btn input[type="radio"], - [data-toggle="buttons"] > .btn input[type="checkbox"], - [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; - } - - .input-group { - position: relative; - display: table; - border-collapse: separate; - } - - .input-group[class*="col-"] { - float: none; - padding-right: 0; - padding-left: 0; - } - - .input-group .form-control { - position: relative; - z-index: 2; - float: left; - width: 100%; - margin-bottom: 0; - } - - .input-group .form-control:focus { - z-index: 3; - } - - .input-group-lg > .form-control, - .input-group-lg > .input-group-addon, - .input-group-lg > .input-group-btn > .btn { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; - } - - select.input-group-lg > .form-control, - select.input-group-lg > .input-group-addon, - select.input-group-lg > .input-group-btn > .btn { - height: 46px; - line-height: 46px; - } - - textarea.input-group-lg > .form-control, - textarea.input-group-lg > .input-group-addon, - textarea.input-group-lg > .input-group-btn > .btn, - select[multiple].input-group-lg > .form-control, - select[multiple].input-group-lg > .input-group-addon, - select[multiple].input-group-lg > .input-group-btn > .btn { - height: auto; - } - - .input-group-sm > .form-control, - .input-group-sm > .input-group-addon, - .input-group-sm > .input-group-btn > .btn { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; - } - - select.input-group-sm > .form-control, - select.input-group-sm > .input-group-addon, - select.input-group-sm > .input-group-btn > .btn { - height: 30px; - line-height: 30px; - } - - textarea.input-group-sm > .form-control, - textarea.input-group-sm > .input-group-addon, - textarea.input-group-sm > .input-group-btn > .btn, - select[multiple].input-group-sm > .form-control, - select[multiple].input-group-sm > .input-group-addon, - select[multiple].input-group-sm > .input-group-btn > .btn { - height: auto; - } - - .input-group-addon, - .input-group-btn, - .input-group .form-control { - display: table-cell; - } - - .input-group-addon:not(:first-child):not(:last-child), - .input-group-btn:not(:first-child):not(:last-child), - .input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; - } - - .input-group-addon, - .input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; - } - - .input-group-addon { - padding: 6px 12px; - font-size: 14px; - font-weight: 400; - line-height: 1; - color: #555555; - text-align: center; - background-color: #eeeeee; - border: 1px solid #ccc; - border-radius: 4px; - } - - .input-group-addon.input-sm { - padding: 5px 10px; - font-size: 12px; - border-radius: 3px; - } - - .input-group-addon.input-lg { - padding: 10px 16px; - font-size: 18px; - border-radius: 6px; - } - - .input-group-addon input[type="radio"], - .input-group-addon input[type="checkbox"] { - margin-top: 0; - } - - .input-group .form-control:first-child, - .input-group-addon:first-child, - .input-group-btn:first-child > .btn, - .input-group-btn:first-child > .btn-group > .btn, - .input-group-btn:first-child > .dropdown-toggle, - .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), - .input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - } - - .input-group-addon:first-child { - border-right: 0; - } - - .input-group .form-control:last-child, - .input-group-addon:last-child, - .input-group-btn:last-child > .btn, - .input-group-btn:last-child > .btn-group > .btn, - .input-group-btn:last-child > .dropdown-toggle, - .input-group-btn:first-child > .btn:not(:first-child), - .input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - } - - .input-group-addon:last-child { - border-left: 0; - } - - .input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; - } - - .input-group-btn > .btn { - position: relative; - } - - .input-group-btn > .btn + .btn { - margin-left: -1px; - } - - .input-group-btn > .btn:hover, - .input-group-btn > .btn:focus, - .input-group-btn > .btn:active { - z-index: 2; - } - - .input-group-btn:first-child > .btn, - .input-group-btn:first-child > .btn-group { - margin-right: -1px; - } - - .input-group-btn:last-child > .btn, - .input-group-btn:last-child > .btn-group { - z-index: 2; - margin-left: -1px; - } - - .nav { - padding-left: 0; - margin-bottom: 0; - list-style: none; - } - - .nav > li { - position: relative; - display: block; - } - - .nav > li > a { - position: relative; - display: block; - padding: 10px 15px; - } - - .nav > li > a:hover, - .nav > li > a:focus { - text-decoration: none; - background-color: #eeeeee; - } - - .nav > li.disabled > a { - color: #E0E0E0; - } - - .nav > li.disabled > a:hover, - .nav > li.disabled > a:focus { - color: #E0E0E0; - text-decoration: none; - cursor: not-allowed; - background-color: transparent; - } - - .nav .open > a, - .nav .open > a:hover, - .nav .open > a:focus { - background-color: #eeeeee; - border-color: #337ab7; - } - - .nav .nav-divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; - } - - .nav > li > a > img { - max-width: none; - } - - .nav-tabs { - border-bottom: 1px solid #ddd; - } - - .nav-tabs > li { - float: left; - margin-bottom: -1px; - } - - .nav-tabs > li > a { - margin-right: 2px; - line-height: 1.42857143; - border: 1px solid transparent; - border-radius: 4px 4px 0 0; - } - - .nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #ddd; - } - - .nav-tabs > li.active > a, - .nav-tabs > li.active > a:hover, - .nav-tabs > li.active > a:focus { - color: #555555; - cursor: default; - background-color: #fff; - border: 1px solid #ddd; - border-bottom-color: transparent; - } - - .nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; - } - - .nav-tabs.nav-justified > li { - float: none; - } - - .nav-tabs.nav-justified > li > a { - margin-bottom: 5px; - text-align: center; - } - - .nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; - } - - @media (min-width: 768px) { - .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-tabs.nav-justified > li > a { - margin-bottom: 0; - } - } - - .nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 4px; - } - - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #ddd; - } - - @media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #fff; - } - } - - .nav-pills > li { - float: left; - } - - .nav-pills > li > a { - border-radius: 4px; - } - - .nav-pills > li + li { - margin-left: 2px; - } - - .nav-pills > li.active > a, - .nav-pills > li.active > a:hover, - .nav-pills > li.active > a:focus { - color: #fff; - background-color: #337ab7; - } - - .nav-stacked > li { - float: none; - } - - .nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; - } - - .nav-justified { - width: 100%; - } - - .nav-justified > li { - float: none; - } - - .nav-justified > li > a { - margin-bottom: 5px; - text-align: center; - } - - .nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; - } - - @media (min-width: 768px) { - .nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-justified > li > a { - margin-bottom: 0; - } - } - - .nav-tabs-justified { - border-bottom: 0; - } - - .nav-tabs-justified > li > a { - margin-right: 0; - border-radius: 4px; - } - - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border: 1px solid #ddd; - } - - @media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border-bottom-color: #fff; - } - } - - .tab-content > .tab-pane { - display: none; - } - - .tab-content > .active { - display: block; - } - - .nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-left-radius: 0; - border-top-right-radius: 0; - } - - .navbar { - position: relative; - min-height: 50px; - margin-bottom: 20px; - border: 1px solid transparent; - } - - @media (min-width: 768px) { - .navbar { - border-radius: 4px; - } - } - - @media (min-width: 768px) { - .navbar-header { - float: left; - } - } - - .navbar-collapse { - padding-right: 15px; - padding-left: 15px; - overflow-x: visible; - border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-overflow-scrolling: touch; - } - - .navbar-collapse.in { - overflow-y: auto; - } - - @media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - box-shadow: none; - } - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; - } - .navbar-collapse.in { - overflow-y: visible; - } - .navbar-fixed-top .navbar-collapse, - .navbar-static-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - padding-right: 0; - padding-left: 0; - } - } - - .navbar-fixed-top, - .navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; - } - - .navbar-fixed-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - max-height: 340px; - } - - @media (max-device-width: 480px) and (orientation: landscape) { - .navbar-fixed-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - max-height: 200px; - } - } - - @media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; - } - } - - .navbar-fixed-top { - top: 0; - border-width: 0 0 1px; - } - - .navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; - } - - .container > .navbar-header, - .container-fluid > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; - } - - @media (min-width: 768px) { - .container > .navbar-header, - .container-fluid > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-collapse { - margin-right: 0; - margin-left: 0; - } - } - - .navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; - } - - @media (min-width: 768px) { - .navbar-static-top { - border-radius: 0; - } - } - - .navbar-brand { - float: left; - height: 50px; - padding: 15px 15px; - font-size: 18px; - line-height: 20px; - } - - .navbar-brand:hover, - .navbar-brand:focus { - text-decoration: none; - } - - .navbar-brand > img { - display: block; - } - - @media (min-width: 768px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-left: -15px; - } - } - - .navbar-toggle { - position: relative; - float: right; - padding: 9px 10px; - margin-right: 15px; - margin-top: 8px; - margin-bottom: 8px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; - } - - .navbar-toggle:focus { - outline: 0; - } - - .navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; - } - - .navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; - } - - @media (min-width: 768px) { - .navbar-toggle { - display: none; - } - } - - .navbar-nav { - margin: 7.5px -15px; - } - - .navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 20px; - } - - @media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - box-shadow: none; - } - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; - } - .navbar-nav .open .dropdown-menu > li > a { - line-height: 20px; - } - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; - } - } - - @media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; - } - .navbar-nav > li { - float: left; - } - .navbar-nav > li > a { - padding-top: 15px; - padding-bottom: 15px; - } - } - - .navbar-form { - padding: 10px 15px; - margin-right: -15px; - margin-left: -15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - margin-top: 8px; - margin-bottom: 8px; - } - - @media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .navbar-form .form-control-static { - display: inline-block; - } - .navbar-form .input-group { - display: inline-table; - vertical-align: middle; - } - .navbar-form .input-group .input-group-addon, - .navbar-form .input-group .input-group-btn, - .navbar-form .input-group .form-control { - width: auto; - } - .navbar-form .input-group > .form-control { - width: 100%; - } - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio label, - .navbar-form .checkbox label { - padding-left: 0; - } - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - .navbar-form .has-feedback .form-control-feedback { - top: 0; - } - } - - @media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; - } - .navbar-form .form-group:last-child { - margin-bottom: 0; - } - } - - @media (min-width: 768px) { - .navbar-form { - width: auto; - padding-top: 0; - padding-bottom: 0; - margin-right: 0; - margin-left: 0; - border: 0; - box-shadow: none; - } - } - - .navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-left-radius: 0; - border-top-right-radius: 0; - } - - .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - margin-bottom: 0; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - } - - .navbar-btn { - margin-top: 8px; - margin-bottom: 8px; - } - - .navbar-btn.btn-sm { - margin-top: 10px; - margin-bottom: 10px; - } - - .navbar-btn.btn-xs { - margin-top: 14px; - margin-bottom: 14px; - } - - .navbar-text { - margin-top: 15px; - margin-bottom: 15px; - } - - @media (min-width: 768px) { - .navbar-text { - float: left; - margin-right: 15px; - margin-left: 15px; - } - } - - @media (min-width: 768px) { - .navbar-left { - float: left !important; - float: left; - } - .navbar-right { - float: right !important; - float: right; - margin-right: -15px; - } - .navbar-right ~ .navbar-right { - margin-right: 0; - } - } - - .navbar-default { - background-color: #f8f8f8; - border-color: #e7e7e7; - } - - .navbar-default .navbar-brand { - color: #777; - } - - .navbar-default .navbar-brand:hover, - .navbar-default .navbar-brand:focus { - color: #5e5e5e; - background-color: transparent; - } - - .navbar-default .navbar-text { - color: #777; - } - - .navbar-default .navbar-nav > li > a { - color: #777; - } - - .navbar-default .navbar-nav > li > a:hover, - .navbar-default .navbar-nav > li > a:focus { - color: #333; - background-color: transparent; - } - - .navbar-default .navbar-nav > .active > a, - .navbar-default .navbar-nav > .active > a:hover, - .navbar-default .navbar-nav > .active > a:focus { - color: #555; - background-color: #e7e7e7; - } - - .navbar-default .navbar-nav > .disabled > a, - .navbar-default .navbar-nav > .disabled > a:hover, - .navbar-default .navbar-nav > .disabled > a:focus { - color: #ccc; - background-color: transparent; - } - - .navbar-default .navbar-nav > .open > a, - .navbar-default .navbar-nav > .open > a:hover, - .navbar-default .navbar-nav > .open > a:focus { - color: #555; - background-color: #e7e7e7; - } - - @media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #777; - } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #333; - background-color: transparent; - } - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #555; - background-color: #e7e7e7; - } - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #ccc; - background-color: transparent; - } - } - - .navbar-default .navbar-toggle { - border-color: #ddd; - } - - .navbar-default .navbar-toggle:hover, - .navbar-default .navbar-toggle:focus { - background-color: #ddd; - } - - .navbar-default .navbar-toggle .icon-bar { - background-color: #888; - } - - .navbar-default .navbar-collapse, - .navbar-default .navbar-form { - border-color: #e7e7e7; - } - - .navbar-default .navbar-link { - color: #777; - } - - .navbar-default .navbar-link:hover { - color: #333; - } - - .navbar-default .btn-link { - color: #777; - } - - .navbar-default .btn-link:hover, - .navbar-default .btn-link:focus { - color: #333; - } - - .navbar-default .btn-link[disabled]:hover, - fieldset[disabled] .navbar-default .btn-link:hover, - .navbar-default .btn-link[disabled]:focus, - fieldset[disabled] .navbar-default .btn-link:focus { - color: #ccc; - } - - .navbar-inverse { - background-color: #222; - border-color: #080808; - } - - .navbar-inverse .navbar-brand { - color: #ffffff; - } - - .navbar-inverse .navbar-brand:hover, - .navbar-inverse .navbar-brand:focus { - color: #fff; - background-color: transparent; - } - - .navbar-inverse .navbar-text { - color: #ffffff; - } - - .navbar-inverse .navbar-nav > li > a { - color: #ffffff; - } - - .navbar-inverse .navbar-nav > li > a:hover, - .navbar-inverse .navbar-nav > li > a:focus { - color: #fff; - background-color: transparent; - } - - .navbar-inverse .navbar-nav > .active > a, - .navbar-inverse .navbar-nav > .active > a:hover, - .navbar-inverse .navbar-nav > .active > a:focus { - color: #fff; - background-color: #080808; - } - - .navbar-inverse .navbar-nav > .disabled > a, - .navbar-inverse .navbar-nav > .disabled > a:hover, - .navbar-inverse .navbar-nav > .disabled > a:focus { - color: #444; - background-color: transparent; - } - - .navbar-inverse .navbar-nav > .open > a, - .navbar-inverse .navbar-nav > .open > a:hover, - .navbar-inverse .navbar-nav > .open > a:focus { - color: #fff; - background-color: #080808; - } - - @media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #ffffff; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #fff; - background-color: transparent; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #fff; - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #444; - background-color: transparent; - } - } - - .navbar-inverse .navbar-toggle { - border-color: #333; - } - - .navbar-inverse .navbar-toggle:hover, - .navbar-inverse .navbar-toggle:focus { - background-color: #333; - } - - .navbar-inverse .navbar-toggle .icon-bar { - background-color: #fff; - } - - .navbar-inverse .navbar-collapse, - .navbar-inverse .navbar-form { - border-color: #101010; - } - - .navbar-inverse .navbar-link { - color: #ffffff; - } - - .navbar-inverse .navbar-link:hover { - color: #fff; - } - - .navbar-inverse .btn-link { - color: #ffffff; - } - - .navbar-inverse .btn-link:hover, - .navbar-inverse .btn-link:focus { - color: #fff; - } - - .navbar-inverse .btn-link[disabled]:hover, - fieldset[disabled] .navbar-inverse .btn-link:hover, - .navbar-inverse .btn-link[disabled]:focus, - fieldset[disabled] .navbar-inverse .btn-link:focus { - color: #444; - } - - .breadcrumb { - padding: 8px 15px; - margin-bottom: 20px; - list-style: none; - background-color: #f5f5f5; - border-radius: 4px; - } - - .breadcrumb > li { - display: inline-block; - } - - .breadcrumb > li + li:before { - padding: 0 5px; - color: #ccc; - content: "/\00a0"; - } - - .breadcrumb > .active { - color: #E0E0E0; - } - - .pagination { - display: inline-block; - padding-left: 0; - margin: 20px 0; - border-radius: 4px; - } - - .pagination > li { - display: inline; - } - - .pagination > li > a, - .pagination > li > span { - position: relative; - float: left; - padding: 6px 12px; - margin-left: -1px; - line-height: 1.42857143; - color: #337ab7; - text-decoration: none; - background-color: #fff; - border: 1px solid #ddd; - } - - .pagination > li > a:hover, - .pagination > li > span:hover, - .pagination > li > a:focus, - .pagination > li > span:focus { - z-index: 2; - color: #23527c; - background-color: #eeeeee; - border-color: #ddd; - } - - .pagination > li:first-child > a, - .pagination > li:first-child > span { - margin-left: 0; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; - } - - .pagination > li:last-child > a, - .pagination > li:last-child > span { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - } - - .pagination > .active > a, - .pagination > .active > span, - .pagination > .active > a:hover, - .pagination > .active > span:hover, - .pagination > .active > a:focus, - .pagination > .active > span:focus { - z-index: 3; - color: #fff; - cursor: default; - background-color: #337ab7; - border-color: #337ab7; - } - - .pagination > .disabled > span, - .pagination > .disabled > span:hover, - .pagination > .disabled > span:focus, - .pagination > .disabled > a, - .pagination > .disabled > a:hover, - .pagination > .disabled > a:focus { - color: #E0E0E0; - cursor: not-allowed; - background-color: #fff; - border-color: #ddd; - } - - .pagination-lg > li > a, - .pagination-lg > li > span { - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - } - - .pagination-lg > li:first-child > a, - .pagination-lg > li:first-child > span { - border-top-left-radius: 6px; - border-bottom-left-radius: 6px; - } - - .pagination-lg > li:last-child > a, - .pagination-lg > li:last-child > span { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; - } - - .pagination-sm > li > a, - .pagination-sm > li > span { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - } - - .pagination-sm > li:first-child > a, - .pagination-sm > li:first-child > span { - border-top-left-radius: 3px; - border-bottom-left-radius: 3px; - } - - .pagination-sm > li:last-child > a, - .pagination-sm > li:last-child > span { - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - } - - .pager { - padding-left: 0; - margin: 20px 0; - text-align: center; - list-style: none; - } - - .pager li { - display: inline; - } - - .pager li > a, - .pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 15px; - } - - .pager li > a:hover, - .pager li > a:focus { - text-decoration: none; - background-color: #eeeeee; - } - - .pager .next > a, - .pager .next > span { - float: right; - } - - .pager .previous > a, - .pager .previous > span { - float: left; - } - - .pager .disabled > a, - .pager .disabled > a:hover, - .pager .disabled > a:focus, - .pager .disabled > span { - color: #E0E0E0; - cursor: not-allowed; - background-color: #fff; - } - - .label { - display: inline; - padding: 0.2em 0.6em 0.3em; - font-size: 75%; - font-weight: 700; - line-height: 1; - color: #777777; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: 0.25em; - } - - a.label:hover, - a.label:focus { - color: #fff; - text-decoration: none; - cursor: pointer; - } - - .label:empty { - display: none; - } - - .btn .label { - position: relative; - top: -1px; - } - - .label-default { - background-color: #E0E0E0; - } - - .label-default[href]:hover, - .label-default[href]:focus { - background-color: #c7c7c7; - } - - .label-primary { - background-color: #337ab7; - } - - .label-primary[href]:hover, - .label-primary[href]:focus { - background-color: #286090; - } - - .label-success { - background-color: #5cb85c; - } - - .label-success[href]:hover, - .label-success[href]:focus { - background-color: #449d44; - } - - .label-info { - background-color: #5bc0de; - } - - .label-info[href]:hover, - .label-info[href]:focus { - background-color: #31b0d5; - } - - .label-warning { - background-color: #f0ad4e; - } - - .label-warning[href]:hover, - .label-warning[href]:focus { - background-color: #ec971f; - } - - .label-danger { - background-color: #d9534f; - } - - .label-danger[href]:hover, - .label-danger[href]:focus { - background-color: #c9302c; - } - - .badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: middle; - background-color: #E0E0E0; - border-radius: 10px; - } - - .badge:empty { - display: none; - } - - .btn .badge { - position: relative; - top: -1px; - } - - .btn-xs .badge, - .btn-group-xs > .btn .badge { - top: 0; - padding: 1px 5px; - } - - a.badge:hover, - a.badge:focus { - color: #fff; - text-decoration: none; - cursor: pointer; - } - - .list-group-item.active > .badge, - .nav-pills > .active > a > .badge { - color: #337ab7; - background-color: #fff; - } - - .list-group-item > .badge { - float: right; - } - - .list-group-item > .badge + .badge { - margin-right: 5px; - } - - .nav-pills > li > a > .badge { - margin-left: 3px; - } - - .jumbotron { - padding-top: 30px; - padding-bottom: 30px; - margin-bottom: 30px; - color: inherit; - background-color: #eeeeee; - } - - .jumbotron h1, - .jumbotron .h1 { - color: inherit; - } - - .jumbotron p { - margin-bottom: 15px; - font-size: 21px; - font-weight: 200; - } - - .jumbotron > hr { - border-top-color: #d5d5d5; - } - - .container .jumbotron, - .container-fluid .jumbotron { - padding-right: 15px; - padding-left: 15px; - border-radius: 6px; - } - - .jumbotron .container { - max-width: 100%; - } - - @media screen and (min-width: 768px) { - .jumbotron { - padding-top: 48px; - padding-bottom: 48px; - } - .container .jumbotron, - .container-fluid .jumbotron { - padding-right: 60px; - padding-left: 60px; - } - .jumbotron h1, - .jumbotron .h1 { - font-size: 63px; - } - } - - .thumbnail { - display: block; - padding: 4px; - margin-bottom: 20px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - transition: border 0.2s ease-in-out; - } - - .thumbnail > img, - .thumbnail a > img { - margin-right: auto; - margin-left: auto; - } - - a.thumbnail:hover, - a.thumbnail:focus, - a.thumbnail.active { - border-color: #337ab7; - } - - .thumbnail .caption { - padding: 9px; - color: #777777; - } - - .alert { - padding: 15px; - margin-bottom: 20px; - border: 1px solid transparent; - border-radius: 4px; - } - - .alert h4 { - margin-top: 0; - color: inherit; - } - - .alert .alert-link { - font-weight: bold; - } - - .alert > p, - .alert > ul { - margin-bottom: 0; - } - - .alert > p + p { - margin-top: 5px; - } - - .alert-dismissable, - .alert-dismissible { - padding-right: 35px; - } - - .alert-dismissable .close, - .alert-dismissible .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; - } - - .alert-success { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; - } - - .alert-success hr { - border-top-color: #c9e2b3; - } - - .alert-success .alert-link { - color: #2b542c; - } - - .alert-info { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; - } - - .alert-info hr { - border-top-color: #a6e1ec; - } - - .alert-info .alert-link { - color: #245269; - } - - .alert-warning { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; - } - - .alert-warning hr { - border-top-color: #f7e1b5; - } - - .alert-warning .alert-link { - color: #66512c; - } - - .alert-danger { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; - } - - .alert-danger hr { - border-top-color: #e4b9c0; - } - - .alert-danger .alert-link { - color: #843534; - } - - @keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } - } - - .progress { - height: 20px; - margin-bottom: 20px; - overflow: hidden; - background-color: #f5f5f5; - border-radius: 4px; - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - } - - .progress-bar { - float: left; - width: 0%; - height: 100%; - font-size: 12px; - line-height: 20px; - color: #fff; - text-align: center; - background-color: #337ab7; - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - transition: width 0.6s ease; - } - - .progress-striped .progress-bar, - .progress-bar-striped { - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size: 40px 40px; - } - - .progress.active .progress-bar, - .progress-bar.active { - animation: progress-bar-stripes 2s linear infinite; - } - - .progress-bar-success { - background-color: #5cb85c; - } - - .progress-striped .progress-bar-success { - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - } - - .progress-bar-info { - background-color: #5bc0de; - } - - .progress-striped .progress-bar-info { - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - } - - .progress-bar-warning { - background-color: #f0ad4e; - } - - .progress-striped .progress-bar-warning { - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - } - - .progress-bar-danger { - background-color: #d9534f; - } - - .progress-striped .progress-bar-danger { - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - } - - .media { - margin-top: 15px; - } - - .media:first-child { - margin-top: 0; - } - - .media, - .media-body { - overflow: hidden; - zoom: 1; - } - - .media-body { - width: 10000px; - } - - .media-object { - display: block; - } - - .media-object.img-thumbnail { - max-width: none; - } - - .media-right, - .media > .pull-right { - padding-left: 10px; - } - - .media-left, - .media > .pull-left { - padding-right: 10px; - } - - .media-left, - .media-right, - .media-body { - display: table-cell; - vertical-align: top; - } - - .media-middle { - vertical-align: middle; - } - - .media-bottom { - vertical-align: bottom; - } - - .media-heading { - margin-top: 0; - margin-bottom: 5px; - } - - .media-list { - padding-left: 0; - list-style: none; - } - - .list-group { - padding-left: 0; - margin-bottom: 20px; - } - - .list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #fff; - border: 1px solid #ddd; - } - - .list-group-item:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - } - - .list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; - } - - .list-group-item.disabled, - .list-group-item.disabled:hover, - .list-group-item.disabled:focus { - color: #E0E0E0; - cursor: not-allowed; - background-color: #eeeeee; - } - - .list-group-item.disabled .list-group-item-heading, - .list-group-item.disabled:hover .list-group-item-heading, - .list-group-item.disabled:focus .list-group-item-heading { - color: inherit; - } - - .list-group-item.disabled .list-group-item-text, - .list-group-item.disabled:hover .list-group-item-text, - .list-group-item.disabled:focus .list-group-item-text { - color: #E0E0E0; - } - - .list-group-item.active, - .list-group-item.active:hover, - .list-group-item.active:focus { - z-index: 2; - color: #fff; - background-color: #337ab7; - border-color: #337ab7; - } - - .list-group-item.active .list-group-item-heading, - .list-group-item.active:hover .list-group-item-heading, - .list-group-item.active:focus .list-group-item-heading, - .list-group-item.active .list-group-item-heading > small, - .list-group-item.active:hover .list-group-item-heading > small, - .list-group-item.active:focus .list-group-item-heading > small, - .list-group-item.active .list-group-item-heading > .small, - .list-group-item.active:hover .list-group-item-heading > .small, - .list-group-item.active:focus .list-group-item-heading > .small { - color: inherit; - } - - .list-group-item.active .list-group-item-text, - .list-group-item.active:hover .list-group-item-text, - .list-group-item.active:focus .list-group-item-text { - color: #c7ddef; - } - - a.list-group-item, - button.list-group-item { - color: #555; - } - - a.list-group-item .list-group-item-heading, - button.list-group-item .list-group-item-heading { - color: #333; - } - - a.list-group-item:hover, - button.list-group-item:hover, - a.list-group-item:focus, - button.list-group-item:focus { - color: #555; - text-decoration: none; - background-color: #f5f5f5; - } - - button.list-group-item { - width: 100%; - text-align: left; - } - - .list-group-item-success { - color: #3c763d; - background-color: #dff0d8; - } - - a.list-group-item-success, - button.list-group-item-success { - color: #3c763d; - } - - a.list-group-item-success .list-group-item-heading, - button.list-group-item-success .list-group-item-heading { - color: inherit; - } - - a.list-group-item-success:hover, - button.list-group-item-success:hover, - a.list-group-item-success:focus, - button.list-group-item-success:focus { - color: #3c763d; - background-color: #d0e9c6; - } - - a.list-group-item-success.active, - button.list-group-item-success.active, - a.list-group-item-success.active:hover, - button.list-group-item-success.active:hover, - a.list-group-item-success.active:focus, - button.list-group-item-success.active:focus { - color: #fff; - background-color: #3c763d; - border-color: #3c763d; - } - - .list-group-item-info { - color: #31708f; - background-color: #d9edf7; - } - - a.list-group-item-info, - button.list-group-item-info { - color: #31708f; - } - - a.list-group-item-info .list-group-item-heading, - button.list-group-item-info .list-group-item-heading { - color: inherit; - } - - a.list-group-item-info:hover, - button.list-group-item-info:hover, - a.list-group-item-info:focus, - button.list-group-item-info:focus { - color: #31708f; - background-color: #c4e3f3; - } - - a.list-group-item-info.active, - button.list-group-item-info.active, - a.list-group-item-info.active:hover, - button.list-group-item-info.active:hover, - a.list-group-item-info.active:focus, - button.list-group-item-info.active:focus { - color: #fff; - background-color: #31708f; - border-color: #31708f; - } - - .list-group-item-warning { - color: #8a6d3b; - background-color: #fcf8e3; - } - - a.list-group-item-warning, - button.list-group-item-warning { - color: #8a6d3b; - } - - a.list-group-item-warning .list-group-item-heading, - button.list-group-item-warning .list-group-item-heading { - color: inherit; - } - - a.list-group-item-warning:hover, - button.list-group-item-warning:hover, - a.list-group-item-warning:focus, - button.list-group-item-warning:focus { - color: #8a6d3b; - background-color: #faf2cc; - } - - a.list-group-item-warning.active, - button.list-group-item-warning.active, - a.list-group-item-warning.active:hover, - button.list-group-item-warning.active:hover, - a.list-group-item-warning.active:focus, - button.list-group-item-warning.active:focus { - color: #fff; - background-color: #8a6d3b; - border-color: #8a6d3b; - } - - .list-group-item-danger { - color: #a94442; - background-color: #f2dede; - } - - a.list-group-item-danger, - button.list-group-item-danger { - color: #a94442; - } - - a.list-group-item-danger .list-group-item-heading, - button.list-group-item-danger .list-group-item-heading { - color: inherit; - } - - a.list-group-item-danger:hover, - button.list-group-item-danger:hover, - a.list-group-item-danger:focus, - button.list-group-item-danger:focus { - color: #a94442; - background-color: #ebcccc; - } - - a.list-group-item-danger.active, - button.list-group-item-danger.active, - a.list-group-item-danger.active:hover, - button.list-group-item-danger.active:hover, - a.list-group-item-danger.active:focus, - button.list-group-item-danger.active:focus { - color: #fff; - background-color: #a94442; - border-color: #a94442; - } - - .list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; - } - - .list-group-item-text { - margin-bottom: 0; - line-height: 1.3; - } - - .panel { - margin-bottom: 20px; - background-color: #fff; - border: 1px solid transparent; - border-radius: 4px; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); - } - - .panel-body { - padding: 15px; - } - - .panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-left-radius: 3px; - border-top-right-radius: 3px; - } - - .panel-heading > .dropdown .dropdown-toggle { - color: inherit; - } - - .panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 16px; - color: inherit; - } - - .panel-title > a, - .panel-title > small, - .panel-title > .small, - .panel-title > small > a, - .panel-title > .small > a { - color: inherit; - } - - .panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; - } - - .panel > .list-group, - .panel > .panel-collapse > .list-group { - margin-bottom: 0; - } - - .panel > .list-group .list-group-item, - .panel > .panel-collapse > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; - } - - .panel > .list-group:first-child .list-group-item:first-child, - .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { - border-top: 0; - border-top-left-radius: 3px; - border-top-right-radius: 3px; - } - - .panel > .list-group:last-child .list-group-item:last-child, - .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { - border-bottom: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; - } - - .panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { - border-top-left-radius: 0; - border-top-right-radius: 0; - } - - .panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; - } - - .list-group + .panel-footer { - border-top-width: 0; - } - - .panel > .table, - .panel > .table-responsive > .table, - .panel > .panel-collapse > .table { - margin-bottom: 0; - } - - .panel > .table caption, - .panel > .table-responsive > .table caption, - .panel > .panel-collapse > .table caption { - padding-right: 15px; - padding-left: 15px; - } - - .panel > .table:first-child, - .panel > .table-responsive:first-child > .table:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; - } - - .panel > .table:first-child > thead:first-child > tr:first-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, - .panel > .table:first-child > tbody:first-child > tr:first-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; - } - - .panel > .table:first-child > thead:first-child > tr:first-child td:first-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, - .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, - .panel > .table:first-child > thead:first-child > tr:first-child th:first-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, - .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: 3px; - } - - .panel > .table:first-child > thead:first-child > tr:first-child td:last-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, - .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, - .panel > .table:first-child > thead:first-child > tr:first-child th:last-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, - .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: 3px; - } - - .panel > .table:last-child, - .panel > .table-responsive:last-child > .table:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; - } - - .panel > .table:last-child > tbody:last-child > tr:last-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; - } - - .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, - .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: 3px; - } - - .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, - .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: 3px; - } - - .panel > .panel-body + .table, - .panel > .panel-body + .table-responsive, - .panel > .table + .panel-body, - .panel > .table-responsive + .panel-body { - border-top: 1px solid #ddd; - } - - .panel > .table > tbody:first-child > tr:first-child th, - .panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; - } - - .panel > .table-bordered, - .panel > .table-responsive > .table-bordered { - border: 0; - } - - .panel > .table-bordered > thead > tr > th:first-child, - .panel > .table-responsive > .table-bordered > thead > tr > th:first-child, - .panel > .table-bordered > tbody > tr > th:first-child, - .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, - .panel > .table-bordered > tfoot > tr > th:first-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .panel > .table-bordered > thead > tr > td:first-child, - .panel > .table-responsive > .table-bordered > thead > tr > td:first-child, - .panel > .table-bordered > tbody > tr > td:first-child, - .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, - .panel > .table-bordered > tfoot > tr > td:first-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - - .panel > .table-bordered > thead > tr > th:last-child, - .panel > .table-responsive > .table-bordered > thead > tr > th:last-child, - .panel > .table-bordered > tbody > tr > th:last-child, - .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, - .panel > .table-bordered > tfoot > tr > th:last-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .panel > .table-bordered > thead > tr > td:last-child, - .panel > .table-responsive > .table-bordered > thead > tr > td:last-child, - .panel > .table-bordered > tbody > tr > td:last-child, - .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, - .panel > .table-bordered > tfoot > tr > td:last-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - - .panel > .table-bordered > thead > tr:first-child > td, - .panel > .table-responsive > .table-bordered > thead > tr:first-child > td, - .panel > .table-bordered > tbody > tr:first-child > td, - .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, - .panel > .table-bordered > thead > tr:first-child > th, - .panel > .table-responsive > .table-bordered > thead > tr:first-child > th, - .panel > .table-bordered > tbody > tr:first-child > th, - .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; - } - - .panel > .table-bordered > tbody > tr:last-child > td, - .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, - .panel > .table-bordered > tfoot > tr:last-child > td, - .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, - .panel > .table-bordered > tbody > tr:last-child > th, - .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, - .panel > .table-bordered > tfoot > tr:last-child > th, - .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; - } - - .panel > .table-responsive { - margin-bottom: 0; - border: 0; - } - - .panel-group { - margin-bottom: 20px; - } - - .panel-group .panel { - margin-bottom: 0; - border-radius: 4px; - } - - .panel-group .panel + .panel { - margin-top: 5px; - } - - .panel-group .panel-heading { - border-bottom: 0; - } - - .panel-group .panel-heading + .panel-collapse > .panel-body, - .panel-group .panel-heading + .panel-collapse > .list-group { - border-top: 1px solid #ddd; - } - - .panel-group .panel-footer { - border-top: 0; - } - - .panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #ddd; - } - - .panel-default { - border-color: #ddd; - } - - .panel-default > .panel-heading { - color: #777777; - background-color: #f5f5f5; - border-color: #ddd; - } - - .panel-default > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ddd; - } - - .panel-default > .panel-heading .badge { - color: #f5f5f5; - background-color: #777777; - } - - .panel-default > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ddd; - } - - .panel-primary { - border-color: #337ab7; - } - - .panel-primary > .panel-heading { - color: #fff; - background-color: #337ab7; - border-color: #337ab7; - } - - .panel-primary > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #337ab7; - } - - .panel-primary > .panel-heading .badge { - color: #337ab7; - background-color: #fff; - } - - .panel-primary > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #337ab7; - } - - .panel-success { - border-color: #d6e9c6; - } - - .panel-success > .panel-heading { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; - } - - .panel-success > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #d6e9c6; - } - - .panel-success > .panel-heading .badge { - color: #dff0d8; - background-color: #3c763d; - } - - .panel-success > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #d6e9c6; - } - - .panel-info { - border-color: #bce8f1; - } - - .panel-info > .panel-heading { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; - } - - .panel-info > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #bce8f1; - } - - .panel-info > .panel-heading .badge { - color: #d9edf7; - background-color: #31708f; - } - - .panel-info > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #bce8f1; - } - - .panel-warning { - border-color: #faebcc; - } - - .panel-warning > .panel-heading { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; - } - - .panel-warning > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #faebcc; - } - - .panel-warning > .panel-heading .badge { - color: #fcf8e3; - background-color: #8a6d3b; - } - - .panel-warning > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #faebcc; - } - - .panel-danger { - border-color: #ebccd1; - } - - .panel-danger > .panel-heading { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; - } - - .panel-danger > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ebccd1; - } - - .panel-danger > .panel-heading .badge { - color: #f2dede; - background-color: #a94442; - } - - .panel-danger > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ebccd1; - } - - .embed-responsive { - position: relative; - display: block; - height: 0; - padding: 0; - overflow: hidden; - } - - .embed-responsive .embed-responsive-item, - .embed-responsive iframe, - .embed-responsive embed, - .embed-responsive object, - .embed-responsive video { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 100%; - height: 100%; - border: 0; - } - - .embed-responsive-16by9 { - padding-bottom: 56.25%; - } - - .embed-responsive-4by3 { - padding-bottom: 75%; - } - - .well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - border-radius: 4px; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - } - - .well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); - } - - .well-lg { - padding: 24px; - border-radius: 6px; - } - - .well-sm { - padding: 9px; - border-radius: 3px; - } - - .close { - float: right; - font-size: 21px; - font-weight: bold; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - filter: alpha(opacity=20); - opacity: 0.2; - } - - .close:hover, - .close:focus { - color: #000; - text-decoration: none; - cursor: pointer; - filter: alpha(opacity=50); - opacity: 0.5; - } - - button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; - appearance: none; - } - - .modal-open { - overflow: hidden; - } - - .modal { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - display: none; - overflow: hidden; - -webkit-overflow-scrolling: touch; - outline: 0; - } - - .modal.fade .modal-dialog { - transform: translate(0, -25%); - transition: transform 0.3s ease-out; - } - - .modal.in .modal-dialog { - transform: translate(0, 0); - } - - .modal-open .modal { - overflow-x: hidden; - overflow-y: auto; - } - - .modal-dialog { - position: relative; - width: auto; - margin: 10px; - } - - .modal-content { - position: relative; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - outline: 0; - } - - .modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000; - } - - .modal-backdrop.fade { - filter: alpha(opacity=0); - opacity: 0; - } - - .modal-backdrop.in { - filter: alpha(opacity=50); - opacity: 0.5; - } - - .modal-header { - padding: 15px; - border-bottom: 1px solid #e5e5e5; - } - - .modal-header .close { - margin-top: -2px; - } - - .modal-title { - margin: 0; - line-height: 1.42857143; - } - - .modal-body { - position: relative; - padding: 15px; - } - - .modal-footer { - padding: 15px; - text-align: right; - border-top: 1px solid #e5e5e5; - } - - .modal-footer .btn + .btn { - margin-bottom: 0; - margin-left: 5px; - } - - .modal-footer .btn-group .btn + .btn { - margin-left: -1px; - } - - .modal-footer .btn-block + .btn-block { - margin-left: 0; - } - - .modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; - } - - @media (min-width: 768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; - } - .modal-content { - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - } - .modal-sm { - width: 300px; - } - } - - @media (min-width: 992px) { - .modal-lg { - width: 900px; - } - } - - .tooltip { - position: absolute; - z-index: 1070; - display: block; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-style: normal; - font-weight: 400; - line-height: 1.42857143; - line-break: auto; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - white-space: normal; - font-size: 12px; - filter: alpha(opacity=0); - opacity: 0; - } - - .tooltip.in { - filter: alpha(opacity=90); - opacity: 0.9; - } - - .tooltip.top { - padding: 5px 0; - margin-top: -3px; - } - - .tooltip.right { - padding: 0 5px; - margin-left: 3px; - } - - .tooltip.bottom { - padding: 5px 0; - margin-top: 3px; - } - - .tooltip.left { - padding: 0 5px; - margin-left: -3px; - } - - .tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #000; - } - - .tooltip.top-left .tooltip-arrow { - right: 5px; - bottom: 0; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000; - } - - .tooltip.top-right .tooltip-arrow { - bottom: 0; - left: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000; - } - - .tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #000; - } - - .tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #000; - } - - .tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; - } - - .tooltip.bottom-left .tooltip-arrow { - top: 0; - right: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; - } - - .tooltip.bottom-right .tooltip-arrow { - top: 0; - left: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; - } - - .tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #fff; - text-align: center; - background-color: #000; - border-radius: 4px; - } - - .tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; - } - - .popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: none; - max-width: 276px; - padding: 1px; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-style: normal; - font-weight: 400; - line-height: 1.42857143; - line-break: auto; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - white-space: normal; - font-size: 14px; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - } - - .popover.top { - margin-top: -10px; - } - - .popover.right { - margin-left: 10px; - } - - .popover.bottom { - margin-top: 10px; - } - - .popover.left { - margin-left: -10px; - } - - .popover > .arrow { - border-width: 11px; - } - - .popover > .arrow, - .popover > .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; - } - - .popover > .arrow:after { - content: ""; - border-width: 10px; - } - - .popover.top > .arrow { - bottom: -11px; - left: 50%; - margin-left: -11px; - border-top-color: #999999; - border-top-color: rgba(0, 0, 0, 0.25); - border-bottom-width: 0; - } - - .popover.top > .arrow:after { - bottom: 1px; - margin-left: -10px; - content: " "; - border-top-color: #fff; - border-bottom-width: 0; - } - - .popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-right-color: #999999; - border-right-color: rgba(0, 0, 0, 0.25); - border-left-width: 0; - } - - .popover.right > .arrow:after { - bottom: -10px; - left: 1px; - content: " "; - border-right-color: #fff; - border-left-width: 0; - } - - .popover.bottom > .arrow { - top: -11px; - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #999999; - border-bottom-color: rgba(0, 0, 0, 0.25); - } - - .popover.bottom > .arrow:after { - top: 1px; - margin-left: -10px; - content: " "; - border-top-width: 0; - border-bottom-color: #fff; - } - - .popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: #999999; - border-left-color: rgba(0, 0, 0, 0.25); - } - - .popover.left > .arrow:after { - right: 1px; - bottom: -10px; - content: " "; - border-right-width: 0; - border-left-color: #fff; - } - - .popover-title { - padding: 8px 14px; - margin: 0; - font-size: 14px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 0 0; - } - - .popover-content { - padding: 9px 14px; - } - - .carousel { - position: relative; - } - - .carousel-inner { - position: relative; - width: 100%; - overflow: hidden; - } - - .carousel-inner > .item { - position: relative; - display: none; - transition: 0.6s ease-in-out left; - } - - .carousel-inner > .item > img, - .carousel-inner > .item > a > img { - line-height: 1; - } - - @media all and (transform-3d), (-webkit-transform-3d) { - .carousel-inner > .item { - transition: transform 0.6s ease-in-out; - backface-visibility: hidden; - perspective: 1000px; - } - .carousel-inner > .item.next, - .carousel-inner > .item.active.right { - transform: translate3d(100%, 0, 0); - left: 0; - } - .carousel-inner > .item.prev, - .carousel-inner > .item.active.left { - transform: translate3d(-100%, 0, 0); - left: 0; - } - .carousel-inner > .item.next.left, - .carousel-inner > .item.prev.right, - .carousel-inner > .item.active { - transform: translate3d(0, 0, 0); - left: 0; - } - } - - .carousel-inner > .active, - .carousel-inner > .next, - .carousel-inner > .prev { - display: block; - } - - .carousel-inner > .active { - left: 0; - } - - .carousel-inner > .next, - .carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; - } - - .carousel-inner > .next { - left: 100%; - } - - .carousel-inner > .prev { - left: -100%; - } - - .carousel-inner > .next.left, - .carousel-inner > .prev.right { - left: 0; - } - - .carousel-inner > .active.left { - left: -100%; - } - - .carousel-inner > .active.right { - left: 100%; - } - - .carousel-control { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 15%; - font-size: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); - background-color: rgba(0, 0, 0, 0); - filter: alpha(opacity=50); - opacity: 0.5; - } - - .carousel-control.left { - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); - background-repeat: repeat-x; - } - - .carousel-control.right { - right: 0; - left: auto; - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); - background-repeat: repeat-x; - } - - .carousel-control:hover, - .carousel-control:focus { - color: #fff; - text-decoration: none; - outline: 0; - filter: alpha(opacity=90); - opacity: 0.9; - } - - .carousel-control .icon-prev, - .carousel-control .icon-next, - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - z-index: 5; - display: inline-block; - margin-top: -10px; - } - - .carousel-control .icon-prev, - .carousel-control .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; - } - - .carousel-control .icon-next, - .carousel-control .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; - } - - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 20px; - height: 20px; - font-family: serif; - line-height: 1; - } - - .carousel-control .icon-prev:before { - content: "\2039"; - } - - .carousel-control .icon-next:before { - content: "\203a"; - } - - .carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - padding-left: 0; - margin-left: -30%; - text-align: center; - list-style: none; - } - - .carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); - border: 1px solid #fff; - border-radius: 10px; - } - - .carousel-indicators .active { - width: 12px; - height: 12px; - margin: 0; - background-color: #fff; - } - - .carousel-caption { - position: absolute; - right: 15%; - bottom: 20px; - left: 15%; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); - } - - .carousel-caption .btn { - text-shadow: none; - } - - @media screen and (min-width: 768px) { - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -10px; - font-size: 30px; - } - .carousel-control .glyphicon-chevron-left, - .carousel-control .icon-prev { - margin-left: -10px; - } - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-next { - margin-right: -10px; - } - .carousel-caption { - right: 20%; - left: 20%; - padding-bottom: 30px; - } - .carousel-indicators { - bottom: 20px; - } - } - - .clearfix:before, - .clearfix:after, - .dl-horizontal dd:before, - .dl-horizontal dd:after, - .container:before, - .container:after, - .container-fluid:before, - .container-fluid:after, - .row:before, - .row:after, - .form-horizontal .form-group:before, - .form-horizontal .form-group:after, - .btn-toolbar:before, - .btn-toolbar:after, - .btn-group-vertical > .btn-group:before, - .btn-group-vertical > .btn-group:after, - .nav:before, - .nav:after, - .navbar:before, - .navbar:after, - .navbar-header:before, - .navbar-header:after, - .navbar-collapse:before, - .navbar-collapse:after, - .pager:before, - .pager:after, - .panel-body:before, - .panel-body:after, - .modal-header:before, - .modal-header:after, - .modal-footer:before, - .modal-footer:after { - display: table; - content: " "; - } - - .clearfix:after, - .dl-horizontal dd:after, - .container:after, - .container-fluid:after, - .row:after, - .form-horizontal .form-group:after, - .btn-toolbar:after, - .btn-group-vertical > .btn-group:after, - .nav:after, - .navbar:after, - .navbar-header:after, - .navbar-collapse:after, - .pager:after, - .panel-body:after, - .modal-header:after, - .modal-footer:after { - clear: both; - } - - .center-block { - display: block; - margin-right: auto; - margin-left: auto; - } - - .pull-right { - float: right !important; - } - - .pull-left { - float: left !important; - } - - .hide { - display: none !important; - } - - .show { - display: block !important; - } - - .invisible { - visibility: hidden; - } - - .text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; - } - - .hidden { - display: none !important; - } - - .affix { - position: fixed; - } - - .visible-xs, - .visible-sm, - .visible-md, - .visible-lg { - display: none !important; - } - - .visible-xs-block, - .visible-xs-inline, - .visible-xs-inline-block, - .visible-sm-block, - .visible-sm-inline, - .visible-sm-inline-block, - .visible-md-block, - .visible-md-inline, - .visible-md-inline-block, - .visible-lg-block, - .visible-lg-inline, - .visible-lg-inline-block { - display: none !important; - } - - @media (max-width: 767px) { - .visible-xs { - display: block !important; - } - table.visible-xs { - display: table !important; - } - tr.visible-xs { - display: table-row !important; - } - th.visible-xs, - td.visible-xs { - display: table-cell !important; - } - } - - @media (max-width: 767px) { - .visible-xs-block { - display: block !important; - } - } - - @media (max-width: 767px) { - .visible-xs-inline { - display: inline !important; - } - } - - @media (max-width: 767px) { - .visible-xs-inline-block { - display: inline-block !important; - } - } - - @media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; - } - table.visible-sm { - display: table !important; - } - tr.visible-sm { - display: table-row !important; - } - th.visible-sm, - td.visible-sm { - display: table-cell !important; - } - } - - @media (min-width: 768px) and (max-width: 991px) { - .visible-sm-block { - display: block !important; - } - } - - @media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline { - display: inline !important; - } - } - - @media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline-block { - display: inline-block !important; - } - } - - @media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; - } - table.visible-md { - display: table !important; - } - tr.visible-md { - display: table-row !important; - } - th.visible-md, - td.visible-md { - display: table-cell !important; - } - } - - @media (min-width: 992px) and (max-width: 1199px) { - .visible-md-block { - display: block !important; - } - } - - @media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline { - display: inline !important; - } - } - - @media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline-block { - display: inline-block !important; - } - } - - @media (min-width: 1200px) { - .visible-lg { - display: block !important; - } - table.visible-lg { - display: table !important; - } - tr.visible-lg { - display: table-row !important; - } - th.visible-lg, - td.visible-lg { - display: table-cell !important; - } - } - - @media (min-width: 1200px) { - .visible-lg-block { - display: block !important; - } - } - - @media (min-width: 1200px) { - .visible-lg-inline { - display: inline !important; - } - } - - @media (min-width: 1200px) { - .visible-lg-inline-block { - display: inline-block !important; - } - } - - @media (max-width: 767px) { - .hidden-xs { - display: none !important; - } - } - - @media (min-width: 768px) and (max-width: 991px) { - .hidden-sm { - display: none !important; - } - } - - @media (min-width: 992px) and (max-width: 1199px) { - .hidden-md { - display: none !important; - } - } - - @media (min-width: 1200px) { - .hidden-lg { - display: none !important; - } - } - - .visible-print { - display: none !important; - } - - @media print { - .visible-print { - display: block !important; - } - table.visible-print { - display: table !important; - } - tr.visible-print { - display: table-row !important; - } - th.visible-print, - td.visible-print { - display: table-cell !important; - } - } - - .visible-print-block { - display: none !important; - } - - @media print { - .visible-print-block { - display: block !important; - } - } - - .visible-print-inline { - display: none !important; - } - - @media print { - .visible-print-inline { - display: inline !important; - } - } - - .visible-print-inline-block { - display: none !important; - } - - @media print { - .visible-print-inline-block { - display: inline-block !important; - } - } - - @media print { - .hidden-print { - display: none !important; - } - } - - /*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ - - /* FONT PATH - * -------------------------- */ - - @font-face { - font-family: 'FontAwesome'; - src: url('fontawesome-webfont.eot'); - src: url('fontawesome-webfont.eot?#iefix') format('embedded-opentype'), url('fontawesome-webfont.woff2') format('woff2'), url('fontawesome-webfont.woff') format('woff'), url('fontawesome-webfont.ttf') format('truetype'), url('fontawesome-webfont.svg#fontawesomeregular') format('svg'); - font-weight: normal; - font-style: normal; - } - - .fa { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } - - /* makes the font 33% larger relative to the icon container */ - - .fa-lg { - font-size: 1.33333333em; - line-height: 0.75em; - vertical-align: -15%; - } - - .fa-2x { - font-size: 2em; - } - - .fa-3x { - font-size: 3em; - } - - .fa-4x { - font-size: 4em; - } - - .fa-5x { - font-size: 5em; - } - - .fa-fw { - width: 1.28571429em; - text-align: center; - } - - .fa-ul { - padding-left: 0; - margin-left: 2.14285714em; - list-style-type: none; - } - - .fa-ul > li { - position: relative; - } - - .fa-li { - position: absolute; - left: -2.14285714em; - width: 2.14285714em; - top: 0.14285714em; - text-align: center; - } - - .fa-li.fa-lg { - left: -1.85714286em; - } - - .fa-border { - padding: 0.2em 0.25em 0.15em; - border: solid 0.08em #eee; - border-radius: 0.1em; - } - - .fa-pull-left { - float: left; - } - - .fa-pull-right { - float: right; - } - - .fa.fa-pull-left { - margin-right: 0.3em; - } - - .fa.fa-pull-right { - margin-left: 0.3em; - } - - /* Deprecated as of 4.4.0 */ - - .pull-right { - float: right; - } - - .pull-left { - float: left; - } - - .fa.pull-left { - margin-right: 0.3em; - } - - .fa.pull-right { - margin-left: 0.3em; - } - - .fa-spin { - animation: fa-spin 2s infinite linear; - } - - .fa-pulse { - animation: fa-spin 1s infinite steps(8); - } - - @keyframes fa-spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(359deg); - } - } - - .fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - transform: rotate(90deg); - } - - .fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - transform: rotate(180deg); - } - - .fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - transform: rotate(270deg); - } - - .fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - transform: scale(-1, 1); - } - - .fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - transform: scale(1, -1); - } - - :root .fa-rotate-90, - :root .fa-rotate-180, - :root .fa-rotate-270, - :root .fa-flip-horizontal, - :root .fa-flip-vertical { - filter: none; - } - - .fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; - } - - .fa-stack-1x, - .fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; - } - - .fa-stack-1x { - line-height: inherit; - } - - .fa-stack-2x { - font-size: 2em; - } - - .fa-inverse { - color: #fff; - } - - /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ - - .fa-glass:before { - content: "\f000"; - } - - .fa-music:before { - content: "\f001"; - } - - .fa-search:before { - content: "\f002"; - } - - .fa-envelope-o:before { - content: "\f003"; - } - - .fa-heart:before { - content: "\f004"; - } - - .fa-star:before { - content: "\f005"; - } - - .fa-star-o:before { - content: "\f006"; - } - - .fa-user:before { - content: "\f007"; - } - - .fa-film:before { - content: "\f008"; - } - - .fa-th-large:before { - content: "\f009"; - } - - .fa-th:before { - content: "\f00a"; - } - - .fa-th-list:before { - content: "\f00b"; - } - - .fa-check:before { - content: "\f00c"; - } - - .fa-remove:before, - .fa-close:before, - .fa-times:before { - content: "\f00d"; - } - - .fa-search-plus:before { - content: "\f00e"; - } - - .fa-search-minus:before { - content: "\f010"; - } - - .fa-power-off:before { - content: "\f011"; - } - - .fa-signal:before { - content: "\f012"; - } - - .fa-gear:before, - .fa-cog:before { - content: "\f013"; - } - - .fa-trash-o:before { - content: "\f014"; - } - - .fa-home:before { - content: "\f015"; - } - - .fa-file-o:before { - content: "\f016"; - } - - .fa-clock-o:before { - content: "\f017"; - } - - .fa-road:before { - content: "\f018"; - } - - .fa-download:before { - content: "\f019"; - } - - .fa-arrow-circle-o-down:before { - content: "\f01a"; - } - - .fa-arrow-circle-o-up:before { - content: "\f01b"; - } - - .fa-inbox:before { - content: "\f01c"; - } - - .fa-play-circle-o:before { - content: "\f01d"; - } - - .fa-rotate-right:before, - .fa-repeat:before { - content: "\f01e"; - } - - .fa-refresh:before { - content: "\f021"; - } - - .fa-list-alt:before { - content: "\f022"; - } - - .fa-lock:before { - content: "\f023"; - } - - .fa-flag:before { - content: "\f024"; - } - - .fa-headphones:before { - content: "\f025"; - } - - .fa-volume-off:before { - content: "\f026"; - } - - .fa-volume-down:before { - content: "\f027"; - } - - .fa-volume-up:before { - content: "\f028"; - } - - .fa-qrcode:before { - content: "\f029"; - } - - .fa-barcode:before { - content: "\f02a"; - } - - .fa-tag:before { - content: "\f02b"; - } - - .fa-tags:before { - content: "\f02c"; - } - - .fa-book:before { - content: "\f02d"; - } - - .fa-bookmark:before { - content: "\f02e"; - } - - .fa-print:before { - content: "\f02f"; - } - - .fa-camera:before { - content: "\f030"; - } - - .fa-font:before { - content: "\f031"; - } - - .fa-bold:before { - content: "\f032"; - } - - .fa-italic:before { - content: "\f033"; - } - - .fa-text-height:before { - content: "\f034"; - } - - .fa-text-width:before { - content: "\f035"; - } - - .fa-align-left:before { - content: "\f036"; - } - - .fa-align-center:before { - content: "\f037"; - } - - .fa-align-right:before { - content: "\f038"; - } - - .fa-align-justify:before { - content: "\f039"; - } - - .fa-list:before { - content: "\f03a"; - } - - .fa-dedent:before, - .fa-outdent:before { - content: "\f03b"; - } - - .fa-indent:before { - content: "\f03c"; - } - - .fa-video-camera:before { - content: "\f03d"; - } - - .fa-photo:before, - .fa-image:before, - .fa-picture-o:before { - content: "\f03e"; - } - - .fa-pencil:before { - content: "\f040"; - } - - .fa-map-marker:before { - content: "\f041"; - } - - .fa-adjust:before { - content: "\f042"; - } - - .fa-tint:before { - content: "\f043"; - } - - .fa-edit:before, - .fa-pencil-square-o:before { - content: "\f044"; - } - - .fa-share-square-o:before { - content: "\f045"; - } - - .fa-check-square-o:before { - content: "\f046"; - } - - .fa-arrows:before { - content: "\f047"; - } - - .fa-step-backward:before { - content: "\f048"; - } - - .fa-fast-backward:before { - content: "\f049"; - } - - .fa-backward:before { - content: "\f04a"; - } - - .fa-play:before { - content: "\f04b"; - } - - .fa-pause:before { - content: "\f04c"; - } - - .fa-stop:before { - content: "\f04d"; - } - - .fa-forward:before { - content: "\f04e"; - } - - .fa-fast-forward:before { - content: "\f050"; - } - - .fa-step-forward:before { - content: "\f051"; - } - - .fa-eject:before { - content: "\f052"; - } - - .fa-chevron-left:before { - content: "\f053"; - } - - .fa-chevron-right:before { - content: "\f054"; - } - - .fa-plus-circle:before { - content: "\f055"; - } - - .fa-minus-circle:before { - content: "\f056"; - } - - .fa-times-circle:before { - content: "\f057"; - } - - .fa-check-circle:before { - content: "\f058"; - } - - .fa-question-circle:before { - content: "\f059"; - } - - .fa-info-circle:before { - content: "\f05a"; - } - - .fa-crosshairs:before { - content: "\f05b"; - } - - .fa-times-circle-o:before { - content: "\f05c"; - } - - .fa-check-circle-o:before { - content: "\f05d"; - } - - .fa-ban:before { - content: "\f05e"; - } - - .fa-arrow-left:before { - content: "\f060"; - } - - .fa-arrow-right:before { - content: "\f061"; - } - - .fa-arrow-up:before { - content: "\f062"; - } - - .fa-arrow-down:before { - content: "\f063"; - } - - .fa-mail-forward:before, - .fa-share:before { - content: "\f064"; - } - - .fa-expand:before { - content: "\f065"; - } - - .fa-compress:before { - content: "\f066"; - } - - .fa-plus:before { - content: "\f067"; - } - - .fa-minus:before { - content: "\f068"; - } - - .fa-asterisk:before { - content: "\f069"; - } - - .fa-exclamation-circle:before { - content: "\f06a"; - } - - .fa-gift:before { - content: "\f06b"; - } - - .fa-leaf:before { - content: "\f06c"; - } - - .fa-fire:before { - content: "\f06d"; - } - - .fa-eye:before { - content: "\f06e"; - } - - .fa-eye-slash:before { - content: "\f070"; - } - - .fa-warning:before, - .fa-exclamation-triangle:before { - content: "\f071"; - } - - .fa-plane:before { - content: "\f072"; - } - - .fa-calendar:before { - content: "\f073"; - } - - .fa-random:before { - content: "\f074"; - } - - .fa-comment:before { - content: "\f075"; - } - - .fa-magnet:before { - content: "\f076"; - } - - .fa-chevron-up:before { - content: "\f077"; - } - - .fa-chevron-down:before { - content: "\f078"; - } - - .fa-retweet:before { - content: "\f079"; - } - - .fa-shopping-cart:before { - content: "\f07a"; - } - - .fa-folder:before { - content: "\f07b"; - } - - .fa-folder-open:before { - content: "\f07c"; - } - - .fa-arrows-v:before { - content: "\f07d"; - } - - .fa-arrows-h:before { - content: "\f07e"; - } - - .fa-bar-chart-o:before, - .fa-bar-chart:before { - content: "\f080"; - } - - .fa-twitter-square:before { - content: "\f081"; - } - - .fa-facebook-square:before { - content: "\f082"; - } - - .fa-camera-retro:before { - content: "\f083"; - } - - .fa-key:before { - content: "\f084"; - } - - .fa-gears:before, - .fa-cogs:before { - content: "\f085"; - } - - .fa-comments:before { - content: "\f086"; - } - - .fa-thumbs-o-up:before { - content: "\f087"; - } - - .fa-thumbs-o-down:before { - content: "\f088"; - } - - .fa-star-half:before { - content: "\f089"; - } - - .fa-heart-o:before { - content: "\f08a"; - } - - .fa-sign-out:before { - content: "\f08b"; - } - - .fa-linkedin-square:before { - content: "\f08c"; - } - - .fa-thumb-tack:before { - content: "\f08d"; - } - - .fa-external-link:before { - content: "\f08e"; - } - - .fa-sign-in:before { - content: "\f090"; - } - - .fa-trophy:before { - content: "\f091"; - } - - .fa-github-square:before { - content: "\f092"; - } - - .fa-upload:before { - content: "\f093"; - } - - .fa-lemon-o:before { - content: "\f094"; - } - - .fa-phone:before { - content: "\f095"; - } - - .fa-square-o:before { - content: "\f096"; - } - - .fa-bookmark-o:before { - content: "\f097"; - } - - .fa-phone-square:before { - content: "\f098"; - } - - .fa-twitter:before { - content: "\f099"; - } - - .fa-facebook-f:before, - .fa-facebook:before { - content: "\f09a"; - } - - .fa-github:before { - content: "\f09b"; - } - - .fa-unlock:before { - content: "\f09c"; - } - - .fa-credit-card:before { - content: "\f09d"; - } - - .fa-feed:before, - .fa-rss:before { - content: "\f09e"; - } - - .fa-hdd-o:before { - content: "\f0a0"; - } - - .fa-bullhorn:before { - content: "\f0a1"; - } - - .fa-bell:before { - content: "\f0f3"; - } - - .fa-certificate:before { - content: "\f0a3"; - } - - .fa-hand-o-right:before { - content: "\f0a4"; - } - - .fa-hand-o-left:before { - content: "\f0a5"; - } - - .fa-hand-o-up:before { - content: "\f0a6"; - } - - .fa-hand-o-down:before { - content: "\f0a7"; - } - - .fa-arrow-circle-left:before { - content: "\f0a8"; - } - - .fa-arrow-circle-right:before { - content: "\f0a9"; - } - - .fa-arrow-circle-up:before { - content: "\f0aa"; - } - - .fa-arrow-circle-down:before { - content: "\f0ab"; - } - - .fa-globe:before { - content: "\f0ac"; - } - - .fa-wrench:before { - content: "\f0ad"; - } - - .fa-tasks:before { - content: "\f0ae"; - } - - .fa-filter:before { - content: "\f0b0"; - } - - .fa-briefcase:before { - content: "\f0b1"; - } - - .fa-arrows-alt:before { - content: "\f0b2"; - } - - .fa-group:before, - .fa-users:before { - content: "\f0c0"; - } - - .fa-chain:before, - .fa-link:before { - content: "\f0c1"; - } - - .fa-cloud:before { - content: "\f0c2"; - } - - .fa-flask:before { - content: "\f0c3"; - } - - .fa-cut:before, - .fa-scissors:before { - content: "\f0c4"; - } - - .fa-copy:before, - .fa-files-o:before { - content: "\f0c5"; - } - - .fa-paperclip:before { - content: "\f0c6"; - } - - .fa-save:before, - .fa-floppy-o:before { - content: "\f0c7"; - } - - .fa-square:before { - content: "\f0c8"; - } - - .fa-navicon:before, - .fa-reorder:before, - .fa-bars:before { - content: "\f0c9"; - } - - .fa-list-ul:before { - content: "\f0ca"; - } - - .fa-list-ol:before { - content: "\f0cb"; - } - - .fa-strikethrough:before { - content: "\f0cc"; - } - - .fa-underline:before { - content: "\f0cd"; - } - - .fa-table:before { - content: "\f0ce"; - } - - .fa-magic:before { - content: "\f0d0"; - } - - .fa-truck:before { - content: "\f0d1"; - } - - .fa-pinterest:before { - content: "\f0d2"; - } - - .fa-pinterest-square:before { - content: "\f0d3"; - } - - .fa-google-plus-square:before { - content: "\f0d4"; - } - - .fa-google-plus:before { - content: "\f0d5"; - } - - .fa-money:before { - content: "\f0d6"; - } - - .fa-caret-down:before { - content: "\f0d7"; - } - - .fa-caret-up:before { - content: "\f0d8"; - } - - .fa-caret-left:before { - content: "\f0d9"; - } - - .fa-caret-right:before { - content: "\f0da"; - } - - .fa-columns:before { - content: "\f0db"; - } - - .fa-unsorted:before, - .fa-sort:before { - content: "\f0dc"; - } - - .fa-sort-down:before, - .fa-sort-desc:before { - content: "\f0dd"; - } - - .fa-sort-up:before, - .fa-sort-asc:before { - content: "\f0de"; - } - - .fa-envelope:before { - content: "\f0e0"; - } - - .fa-linkedin:before { - content: "\f0e1"; - } - - .fa-rotate-left:before, - .fa-undo:before { - content: "\f0e2"; - } - - .fa-legal:before, - .fa-gavel:before { - content: "\f0e3"; - } - - .fa-dashboard:before, - .fa-tachometer:before { - content: "\f0e4"; - } - - .fa-comment-o:before { - content: "\f0e5"; - } - - .fa-comments-o:before { - content: "\f0e6"; - } - - .fa-flash:before, - .fa-bolt:before { - content: "\f0e7"; - } - - .fa-sitemap:before { - content: "\f0e8"; - } - - .fa-umbrella:before { - content: "\f0e9"; - } - - .fa-paste:before, - .fa-clipboard:before { - content: "\f0ea"; - } - - .fa-lightbulb-o:before { - content: "\f0eb"; - } - - .fa-exchange:before { - content: "\f0ec"; - } - - .fa-cloud-download:before { - content: "\f0ed"; - } - - .fa-cloud-upload:before { - content: "\f0ee"; - } - - .fa-user-md:before { - content: "\f0f0"; - } - - .fa-stethoscope:before { - content: "\f0f1"; - } - - .fa-suitcase:before { - content: "\f0f2"; - } - - .fa-bell-o:before { - content: "\f0a2"; - } - - .fa-coffee:before { - content: "\f0f4"; - } - - .fa-cutlery:before { - content: "\f0f5"; - } - - .fa-file-text-o:before { - content: "\f0f6"; - } - - .fa-building-o:before { - content: "\f0f7"; - } - - .fa-hospital-o:before { - content: "\f0f8"; - } - - .fa-ambulance:before { - content: "\f0f9"; - } - - .fa-medkit:before { - content: "\f0fa"; - } - - .fa-fighter-jet:before { - content: "\f0fb"; - } - - .fa-beer:before { - content: "\f0fc"; - } - - .fa-h-square:before { - content: "\f0fd"; - } - - .fa-plus-square:before { - content: "\f0fe"; - } - - .fa-angle-double-left:before { - content: "\f100"; - } - - .fa-angle-double-right:before { - content: "\f101"; - } - - .fa-angle-double-up:before { - content: "\f102"; - } - - .fa-angle-double-down:before { - content: "\f103"; - } - - .fa-angle-left:before { - content: "\f104"; - } - - .fa-angle-right:before { - content: "\f105"; - } - - .fa-angle-up:before { - content: "\f106"; - } - - .fa-angle-down:before { - content: "\f107"; - } - - .fa-desktop:before { - content: "\f108"; - } - - .fa-laptop:before { - content: "\f109"; - } - - .fa-tablet:before { - content: "\f10a"; - } - - .fa-mobile-phone:before, - .fa-mobile:before { - content: "\f10b"; - } - - .fa-circle-o:before { - content: "\f10c"; - } - - .fa-quote-left:before { - content: "\f10d"; - } - - .fa-quote-right:before { - content: "\f10e"; - } - - .fa-spinner:before { - content: "\f110"; - } - - .fa-circle:before { - content: "\f111"; - } - - .fa-mail-reply:before, - .fa-reply:before { - content: "\f112"; - } - - .fa-github-alt:before { - content: "\f113"; - } - - .fa-folder-o:before { - content: "\f114"; - } - - .fa-folder-open-o:before { - content: "\f115"; - } - - .fa-smile-o:before { - content: "\f118"; - } - - .fa-frown-o:before { - content: "\f119"; - } - - .fa-meh-o:before { - content: "\f11a"; - } - - .fa-gamepad:before { - content: "\f11b"; - } - - .fa-keyboard-o:before { - content: "\f11c"; - } - - .fa-flag-o:before { - content: "\f11d"; - } - - .fa-flag-checkered:before { - content: "\f11e"; - } - - .fa-terminal:before { - content: "\f120"; - } - - .fa-code:before { - content: "\f121"; - } - - .fa-mail-reply-all:before, - .fa-reply-all:before { - content: "\f122"; - } - - .fa-star-half-empty:before, - .fa-star-half-full:before, - .fa-star-half-o:before { - content: "\f123"; - } - - .fa-location-arrow:before { - content: "\f124"; - } - - .fa-crop:before { - content: "\f125"; - } - - .fa-code-fork:before { - content: "\f126"; - } - - .fa-unlink:before, - .fa-chain-broken:before { - content: "\f127"; - } - - .fa-question:before { - content: "\f128"; - } - - .fa-info:before { - content: "\f129"; - } - - .fa-exclamation:before { - content: "\f12a"; - } - - .fa-superscript:before { - content: "\f12b"; - } - - .fa-subscript:before { - content: "\f12c"; - } - - .fa-eraser:before { - content: "\f12d"; - } - - .fa-puzzle-piece:before { - content: "\f12e"; - } - - .fa-microphone:before { - content: "\f130"; - } - - .fa-microphone-slash:before { - content: "\f131"; - } - - .fa-shield:before { - content: "\f132"; - } - - .fa-calendar-o:before { - content: "\f133"; - } - - .fa-fire-extinguisher:before { - content: "\f134"; - } - - .fa-rocket:before { - content: "\f135"; - } - - .fa-maxcdn:before { - content: "\f136"; - } - - .fa-chevron-circle-left:before { - content: "\f137"; - } - - .fa-chevron-circle-right:before { - content: "\f138"; - } - - .fa-chevron-circle-up:before { - content: "\f139"; - } - - .fa-chevron-circle-down:before { - content: "\f13a"; - } - - .fa-html5:before { - content: "\f13b"; - } - - .fa-css3:before { - content: "\f13c"; - } - - .fa-anchor:before { - content: "\f13d"; - } - - .fa-unlock-alt:before { - content: "\f13e"; - } - - .fa-bullseye:before { - content: "\f140"; - } - - .fa-ellipsis-h:before { - content: "\f141"; - } - - .fa-ellipsis-v:before { - content: "\f142"; - } - - .fa-rss-square:before { - content: "\f143"; - } - - .fa-play-circle:before { - content: "\f144"; - } - - .fa-ticket:before { - content: "\f145"; - } - - .fa-minus-square:before { - content: "\f146"; - } - - .fa-minus-square-o:before { - content: "\f147"; - } - - .fa-level-up:before { - content: "\f148"; - } - - .fa-level-down:before { - content: "\f149"; - } - - .fa-check-square:before { - content: "\f14a"; - } - - .fa-pencil-square:before { - content: "\f14b"; - } - - .fa-external-link-square:before { - content: "\f14c"; - } - - .fa-share-square:before { - content: "\f14d"; - } - - .fa-compass:before { - content: "\f14e"; - } - - .fa-toggle-down:before, - .fa-caret-square-o-down:before { - content: "\f150"; - } - - .fa-toggle-up:before, - .fa-caret-square-o-up:before { - content: "\f151"; - } - - .fa-toggle-right:before, - .fa-caret-square-o-right:before { - content: "\f152"; - } - - .fa-euro:before, - .fa-eur:before { - content: "\f153"; - } - - .fa-gbp:before { - content: "\f154"; - } - - .fa-dollar:before, - .fa-usd:before { - content: "\f155"; - } - - .fa-rupee:before, - .fa-inr:before { - content: "\f156"; - } - - .fa-cny:before, - .fa-rmb:before, - .fa-yen:before, - .fa-jpy:before { - content: "\f157"; - } - - .fa-ruble:before, - .fa-rouble:before, - .fa-rub:before { - content: "\f158"; - } - - .fa-won:before, - .fa-krw:before { - content: "\f159"; - } - - .fa-bitcoin:before, - .fa-btc:before { - content: "\f15a"; - } - - .fa-file:before { - content: "\f15b"; - } - - .fa-file-text:before { - content: "\f15c"; - } - - .fa-sort-alpha-asc:before { - content: "\f15d"; - } - - .fa-sort-alpha-desc:before { - content: "\f15e"; - } - - .fa-sort-amount-asc:before { - content: "\f160"; - } - - .fa-sort-amount-desc:before { - content: "\f161"; - } - - .fa-sort-numeric-asc:before { - content: "\f162"; - } - - .fa-sort-numeric-desc:before { - content: "\f163"; - } - - .fa-thumbs-up:before { - content: "\f164"; - } - - .fa-thumbs-down:before { - content: "\f165"; - } - - .fa-youtube-square:before { - content: "\f166"; - } - - .fa-youtube:before { - content: "\f167"; - } - - .fa-xing:before { - content: "\f168"; - } - - .fa-xing-square:before { - content: "\f169"; - } - - .fa-youtube-play:before { - content: "\f16a"; - } - - .fa-dropbox:before { - content: "\f16b"; - } - - .fa-stack-overflow:before { - content: "\f16c"; - } - - .fa-instagram:before { - content: "\f16d"; - } - - .fa-flickr:before { - content: "\f16e"; - } - - .fa-adn:before { - content: "\f170"; - } - - .fa-bitbucket:before { - content: "\f171"; - } - - .fa-bitbucket-square:before { - content: "\f172"; - } - - .fa-tumblr:before { - content: "\f173"; - } - - .fa-tumblr-square:before { - content: "\f174"; - } - - .fa-long-arrow-down:before { - content: "\f175"; - } - - .fa-long-arrow-up:before { - content: "\f176"; - } - - .fa-long-arrow-left:before { - content: "\f177"; - } - - .fa-long-arrow-right:before { - content: "\f178"; - } - - .fa-apple:before { - content: "\f179"; - } - - .fa-windows:before { - content: "\f17a"; - } - - .fa-android:before { - content: "\f17b"; - } - - .fa-linux:before { - content: "\f17c"; - } - - .fa-dribbble:before { - content: "\f17d"; - } - - .fa-skype:before { - content: "\f17e"; - } - - .fa-foursquare:before { - content: "\f180"; - } - - .fa-trello:before { - content: "\f181"; - } - - .fa-female:before { - content: "\f182"; - } - - .fa-male:before { - content: "\f183"; - } - - .fa-gittip:before, - .fa-gratipay:before { - content: "\f184"; - } - - .fa-sun-o:before { - content: "\f185"; - } - - .fa-moon-o:before { - content: "\f186"; - } - - .fa-archive:before { - content: "\f187"; - } - - .fa-bug:before { - content: "\f188"; - } - - .fa-vk:before { - content: "\f189"; - } - - .fa-weibo:before { - content: "\f18a"; - } - - .fa-renren:before { - content: "\f18b"; - } - - .fa-pagelines:before { - content: "\f18c"; - } - - .fa-stack-exchange:before { - content: "\f18d"; - } - - .fa-arrow-circle-o-right:before { - content: "\f18e"; - } - - .fa-arrow-circle-o-left:before { - content: "\f190"; - } - - .fa-toggle-left:before, - .fa-caret-square-o-left:before { - content: "\f191"; - } - - .fa-dot-circle-o:before { - content: "\f192"; - } - - .fa-wheelchair:before { - content: "\f193"; - } - - .fa-vimeo-square:before { - content: "\f194"; - } - - .fa-turkish-lira:before, - .fa-try:before { - content: "\f195"; - } - - .fa-plus-square-o:before { - content: "\f196"; - } - - .fa-space-shuttle:before { - content: "\f197"; - } - - .fa-slack:before { - content: "\f198"; - } - - .fa-envelope-square:before { - content: "\f199"; - } - - .fa-wordpress:before { - content: "\f19a"; - } - - .fa-openid:before { - content: "\f19b"; - } - - .fa-institution:before, - .fa-bank:before, - .fa-university:before { - content: "\f19c"; - } - - .fa-mortar-board:before, - .fa-graduation-cap:before { - content: "\f19d"; - } - - .fa-yahoo:before { - content: "\f19e"; - } - - .fa-google:before { - content: "\f1a0"; - } - - .fa-reddit:before { - content: "\f1a1"; - } - - .fa-reddit-square:before { - content: "\f1a2"; - } - - .fa-stumbleupon-circle:before { - content: "\f1a3"; - } - - .fa-stumbleupon:before { - content: "\f1a4"; - } - - .fa-delicious:before { - content: "\f1a5"; - } - - .fa-digg:before { - content: "\f1a6"; - } - - .fa-pied-piper-pp:before { - content: "\f1a7"; - } - - .fa-pied-piper-alt:before { - content: "\f1a8"; - } - - .fa-drupal:before { - content: "\f1a9"; - } - - .fa-joomla:before { - content: "\f1aa"; - } - - .fa-language:before { - content: "\f1ab"; - } - - .fa-fax:before { - content: "\f1ac"; - } - - .fa-building:before { - content: "\f1ad"; - } - - .fa-child:before { - content: "\f1ae"; - } - - .fa-paw:before { - content: "\f1b0"; - } - - .fa-spoon:before { - content: "\f1b1"; - } - - .fa-cube:before { - content: "\f1b2"; - } - - .fa-cubes:before { - content: "\f1b3"; - } - - .fa-behance:before { - content: "\f1b4"; - } - - .fa-behance-square:before { - content: "\f1b5"; - } - - .fa-steam:before { - content: "\f1b6"; - } - - .fa-steam-square:before { - content: "\f1b7"; - } - - .fa-recycle:before { - content: "\f1b8"; - } - - .fa-automobile:before, - .fa-car:before { - content: "\f1b9"; - } - - .fa-cab:before, - .fa-taxi:before { - content: "\f1ba"; - } - - .fa-tree:before { - content: "\f1bb"; - } - - .fa-spotify:before { - content: "\f1bc"; - } - - .fa-deviantart:before { - content: "\f1bd"; - } - - .fa-soundcloud:before { - content: "\f1be"; - } - - .fa-database:before { - content: "\f1c0"; - } - - .fa-file-pdf-o:before { - content: "\f1c1"; - } - - .fa-file-word-o:before { - content: "\f1c2"; - } - - .fa-file-excel-o:before { - content: "\f1c3"; - } - - .fa-file-powerpoint-o:before { - content: "\f1c4"; - } - - .fa-file-photo-o:before, - .fa-file-picture-o:before, - .fa-file-image-o:before { - content: "\f1c5"; - } - - .fa-file-zip-o:before, - .fa-file-archive-o:before { - content: "\f1c6"; - } - - .fa-file-sound-o:before, - .fa-file-audio-o:before { - content: "\f1c7"; - } - - .fa-file-movie-o:before, - .fa-file-video-o:before { - content: "\f1c8"; - } - - .fa-file-code-o:before { - content: "\f1c9"; - } - - .fa-vine:before { - content: "\f1ca"; - } - - .fa-codepen:before { - content: "\f1cb"; - } - - .fa-jsfiddle:before { - content: "\f1cc"; - } - - .fa-life-bouy:before, - .fa-life-buoy:before, - .fa-life-saver:before, - .fa-support:before, - .fa-life-ring:before { - content: "\f1cd"; - } - - .fa-circle-o-notch:before { - content: "\f1ce"; - } - - .fa-ra:before, - .fa-resistance:before, - .fa-rebel:before { - content: "\f1d0"; - } - - .fa-ge:before, - .fa-empire:before { - content: "\f1d1"; - } - - .fa-git-square:before { - content: "\f1d2"; - } - - .fa-git:before { - content: "\f1d3"; - } - - .fa-y-combinator-square:before, - .fa-yc-square:before, - .fa-hacker-news:before { - content: "\f1d4"; - } - - .fa-tencent-weibo:before { - content: "\f1d5"; - } - - .fa-qq:before { - content: "\f1d6"; - } - - .fa-wechat:before, - .fa-weixin:before { - content: "\f1d7"; - } - - .fa-send:before, - .fa-paper-plane:before { - content: "\f1d8"; - } - - .fa-send-o:before, - .fa-paper-plane-o:before { - content: "\f1d9"; - } - - .fa-history:before { - content: "\f1da"; - } - - .fa-circle-thin:before { - content: "\f1db"; - } - - .fa-header:before { - content: "\f1dc"; - } - - .fa-paragraph:before { - content: "\f1dd"; - } - - .fa-sliders:before { - content: "\f1de"; - } - - .fa-share-alt:before { - content: "\f1e0"; - } - - .fa-share-alt-square:before { - content: "\f1e1"; - } - - .fa-bomb:before { - content: "\f1e2"; - } - - .fa-soccer-ball-o:before, - .fa-futbol-o:before { - content: "\f1e3"; - } - - .fa-tty:before { - content: "\f1e4"; - } - - .fa-binoculars:before { - content: "\f1e5"; - } - - .fa-plug:before { - content: "\f1e6"; - } - - .fa-slideshare:before { - content: "\f1e7"; - } - - .fa-twitch:before { - content: "\f1e8"; - } - - .fa-yelp:before { - content: "\f1e9"; - } - - .fa-newspaper-o:before { - content: "\f1ea"; - } - - .fa-wifi:before { - content: "\f1eb"; - } - - .fa-calculator:before { - content: "\f1ec"; - } - - .fa-paypal:before { - content: "\f1ed"; - } - - .fa-google-wallet:before { - content: "\f1ee"; - } - - .fa-cc-visa:before { - content: "\f1f0"; - } - - .fa-cc-mastercard:before { - content: "\f1f1"; - } - - .fa-cc-discover:before { - content: "\f1f2"; - } - - .fa-cc-amex:before { - content: "\f1f3"; - } - - .fa-cc-paypal:before { - content: "\f1f4"; - } - - .fa-cc-stripe:before { - content: "\f1f5"; - } - - .fa-bell-slash:before { - content: "\f1f6"; - } - - .fa-bell-slash-o:before { - content: "\f1f7"; - } - - .fa-trash:before { - content: "\f1f8"; - } - - .fa-copyright:before { - content: "\f1f9"; - } - - .fa-at:before { - content: "\f1fa"; - } - - .fa-eyedropper:before { - content: "\f1fb"; - } - - .fa-paint-brush:before { - content: "\f1fc"; - } - - .fa-birthday-cake:before { - content: "\f1fd"; - } - - .fa-area-chart:before { - content: "\f1fe"; - } - - .fa-pie-chart:before { - content: "\f200"; - } - - .fa-line-chart:before { - content: "\f201"; - } - - .fa-lastfm:before { - content: "\f202"; - } - - .fa-lastfm-square:before { - content: "\f203"; - } - - .fa-toggle-off:before { - content: "\f204"; - } - - .fa-toggle-on:before { - content: "\f205"; - } - - .fa-bicycle:before { - content: "\f206"; - } - - .fa-bus:before { - content: "\f207"; - } - - .fa-ioxhost:before { - content: "\f208"; - } - - .fa-angellist:before { - content: "\f209"; - } - - .fa-cc:before { - content: "\f20a"; - } - - .fa-shekel:before, - .fa-sheqel:before, - .fa-ils:before { - content: "\f20b"; - } - - .fa-meanpath:before { - content: "\f20c"; - } - - .fa-buysellads:before { - content: "\f20d"; - } - - .fa-connectdevelop:before { - content: "\f20e"; - } - - .fa-dashcube:before { - content: "\f210"; - } - - .fa-forumbee:before { - content: "\f211"; - } - - .fa-leanpub:before { - content: "\f212"; - } - - .fa-sellsy:before { - content: "\f213"; - } - - .fa-shirtsinbulk:before { - content: "\f214"; - } - - .fa-simplybuilt:before { - content: "\f215"; - } - - .fa-skyatlas:before { - content: "\f216"; - } - - .fa-cart-plus:before { - content: "\f217"; - } - - .fa-cart-arrow-down:before { - content: "\f218"; - } - - .fa-diamond:before { - content: "\f219"; - } - - .fa-ship:before { - content: "\f21a"; - } - - .fa-user-secret:before { - content: "\f21b"; - } - - .fa-motorcycle:before { - content: "\f21c"; - } - - .fa-street-view:before { - content: "\f21d"; - } - - .fa-heartbeat:before { - content: "\f21e"; - } - - .fa-venus:before { - content: "\f221"; - } - - .fa-mars:before { - content: "\f222"; - } - - .fa-mercury:before { - content: "\f223"; - } - - .fa-intersex:before, - .fa-transgender:before { - content: "\f224"; - } - - .fa-transgender-alt:before { - content: "\f225"; - } - - .fa-venus-double:before { - content: "\f226"; - } - - .fa-mars-double:before { - content: "\f227"; - } - - .fa-venus-mars:before { - content: "\f228"; - } - - .fa-mars-stroke:before { - content: "\f229"; - } - - .fa-mars-stroke-v:before { - content: "\f22a"; - } - - .fa-mars-stroke-h:before { - content: "\f22b"; - } - - .fa-neuter:before { - content: "\f22c"; - } - - .fa-genderless:before { - content: "\f22d"; - } - - .fa-facebook-official:before { - content: "\f230"; - } - - .fa-pinterest-p:before { - content: "\f231"; - } - - .fa-whatsapp:before { - content: "\f232"; - } - - .fa-server:before { - content: "\f233"; - } - - .fa-user-plus:before { - content: "\f234"; - } - - .fa-user-times:before { - content: "\f235"; - } - - .fa-hotel:before, - .fa-bed:before { - content: "\f236"; - } - - .fa-viacoin:before { - content: "\f237"; - } - - .fa-train:before { - content: "\f238"; - } - - .fa-subway:before { - content: "\f239"; - } - - .fa-medium:before { - content: "\f23a"; - } - - .fa-yc:before, - .fa-y-combinator:before { - content: "\f23b"; - } - - .fa-optin-monster:before { - content: "\f23c"; - } - - .fa-opencart:before { - content: "\f23d"; - } - - .fa-expeditedssl:before { - content: "\f23e"; - } - - .fa-battery-4:before, - .fa-battery:before, - .fa-battery-full:before { - content: "\f240"; - } - - .fa-battery-3:before, - .fa-battery-three-quarters:before { - content: "\f241"; - } - - .fa-battery-2:before, - .fa-battery-half:before { - content: "\f242"; - } - - .fa-battery-1:before, - .fa-battery-quarter:before { - content: "\f243"; - } - - .fa-battery-0:before, - .fa-battery-empty:before { - content: "\f244"; - } - - .fa-mouse-pointer:before { - content: "\f245"; - } - - .fa-i-cursor:before { - content: "\f246"; - } - - .fa-object-group:before { - content: "\f247"; - } - - .fa-object-ungroup:before { - content: "\f248"; - } - - .fa-sticky-note:before { - content: "\f249"; - } - - .fa-sticky-note-o:before { - content: "\f24a"; - } - - .fa-cc-jcb:before { - content: "\f24b"; - } - - .fa-cc-diners-club:before { - content: "\f24c"; - } - - .fa-clone:before { - content: "\f24d"; - } - - .fa-balance-scale:before { - content: "\f24e"; - } - - .fa-hourglass-o:before { - content: "\f250"; - } - - .fa-hourglass-1:before, - .fa-hourglass-start:before { - content: "\f251"; - } - - .fa-hourglass-2:before, - .fa-hourglass-half:before { - content: "\f252"; - } - - .fa-hourglass-3:before, - .fa-hourglass-end:before { - content: "\f253"; - } - - .fa-hourglass:before { - content: "\f254"; - } - - .fa-hand-grab-o:before, - .fa-hand-rock-o:before { - content: "\f255"; - } - - .fa-hand-stop-o:before, - .fa-hand-paper-o:before { - content: "\f256"; - } - - .fa-hand-scissors-o:before { - content: "\f257"; - } - - .fa-hand-lizard-o:before { - content: "\f258"; - } - - .fa-hand-spock-o:before { - content: "\f259"; - } - - .fa-hand-pointer-o:before { - content: "\f25a"; - } - - .fa-hand-peace-o:before { - content: "\f25b"; - } - - .fa-trademark:before { - content: "\f25c"; - } - - .fa-registered:before { - content: "\f25d"; - } - - .fa-creative-commons:before { - content: "\f25e"; - } - - .fa-gg:before { - content: "\f260"; - } - - .fa-gg-circle:before { - content: "\f261"; - } - - .fa-tripadvisor:before { - content: "\f262"; - } - - .fa-odnoklassniki:before { - content: "\f263"; - } - - .fa-odnoklassniki-square:before { - content: "\f264"; - } - - .fa-get-pocket:before { - content: "\f265"; - } - - .fa-wikipedia-w:before { - content: "\f266"; - } - - .fa-safari:before { - content: "\f267"; - } - - .fa-chrome:before { - content: "\f268"; - } - - .fa-firefox:before { - content: "\f269"; - } - - .fa-opera:before { - content: "\f26a"; - } - - .fa-internet-explorer:before { - content: "\f26b"; - } - - .fa-tv:before, - .fa-television:before { - content: "\f26c"; - } - - .fa-contao:before { - content: "\f26d"; - } - - .fa-500px:before { - content: "\f26e"; - } - - .fa-amazon:before { - content: "\f270"; - } - - .fa-calendar-plus-o:before { - content: "\f271"; - } - - .fa-calendar-minus-o:before { - content: "\f272"; - } - - .fa-calendar-times-o:before { - content: "\f273"; - } - - .fa-calendar-check-o:before { - content: "\f274"; - } - - .fa-industry:before { - content: "\f275"; - } - - .fa-map-pin:before { - content: "\f276"; - } - - .fa-map-signs:before { - content: "\f277"; - } - - .fa-map-o:before { - content: "\f278"; - } - - .fa-map:before { - content: "\f279"; - } - - .fa-commenting:before { - content: "\f27a"; - } - - .fa-commenting-o:before { - content: "\f27b"; - } - - .fa-houzz:before { - content: "\f27c"; - } - - .fa-vimeo:before { - content: "\f27d"; - } - - .fa-black-tie:before { - content: "\f27e"; - } - - .fa-fonticons:before { - content: "\f280"; - } - - .fa-reddit-alien:before { - content: "\f281"; - } - - .fa-edge:before { - content: "\f282"; - } - - .fa-credit-card-alt:before { - content: "\f283"; - } - - .fa-codiepie:before { - content: "\f284"; - } - - .fa-modx:before { - content: "\f285"; - } - - .fa-fort-awesome:before { - content: "\f286"; - } - - .fa-usb:before { - content: "\f287"; - } - - .fa-product-hunt:before { - content: "\f288"; - } - - .fa-mixcloud:before { - content: "\f289"; - } - - .fa-scribd:before { - content: "\f28a"; - } - - .fa-pause-circle:before { - content: "\f28b"; - } - - .fa-pause-circle-o:before { - content: "\f28c"; - } - - .fa-stop-circle:before { - content: "\f28d"; - } - - .fa-stop-circle-o:before { - content: "\f28e"; - } - - .fa-shopping-bag:before { - content: "\f290"; - } - - .fa-shopping-basket:before { - content: "\f291"; - } - - .fa-hashtag:before { - content: "\f292"; - } - - .fa-bluetooth:before { - content: "\f293"; - } - - .fa-bluetooth-b:before { - content: "\f294"; - } - - .fa-percent:before { - content: "\f295"; - } - - .fa-gitlab:before { - content: "\f296"; - } - - .fa-wpbeginner:before { - content: "\f297"; - } - - .fa-wpforms:before { - content: "\f298"; - } - - .fa-envira:before { - content: "\f299"; - } - - .fa-universal-access:before { - content: "\f29a"; - } - - .fa-wheelchair-alt:before { - content: "\f29b"; - } - - .fa-question-circle-o:before { - content: "\f29c"; - } - - .fa-blind:before { - content: "\f29d"; - } - - .fa-audio-description:before { - content: "\f29e"; - } - - .fa-volume-control-phone:before { - content: "\f2a0"; - } - - .fa-braille:before { - content: "\f2a1"; - } - - .fa-assistive-listening-systems:before { - content: "\f2a2"; - } - - .fa-asl-interpreting:before, - .fa-american-sign-language-interpreting:before { - content: "\f2a3"; - } - - .fa-deafness:before, - .fa-hard-of-hearing:before, - .fa-deaf:before { - content: "\f2a4"; - } - - .fa-glide:before { - content: "\f2a5"; - } - - .fa-glide-g:before { - content: "\f2a6"; - } - - .fa-signing:before, - .fa-sign-language:before { - content: "\f2a7"; - } - - .fa-low-vision:before { - content: "\f2a8"; - } - - .fa-viadeo:before { - content: "\f2a9"; - } - - .fa-viadeo-square:before { - content: "\f2aa"; - } - - .fa-snapchat:before { - content: "\f2ab"; - } - - .fa-snapchat-ghost:before { - content: "\f2ac"; - } - - .fa-snapchat-square:before { - content: "\f2ad"; - } - - .fa-pied-piper:before { - content: "\f2ae"; - } - - .fa-first-order:before { - content: "\f2b0"; - } - - .fa-yoast:before { - content: "\f2b1"; - } - - .fa-themeisle:before { - content: "\f2b2"; - } - - .fa-google-plus-circle:before, - .fa-google-plus-official:before { - content: "\f2b3"; - } - - .fa-fa:before, - .fa-font-awesome:before { - content: "\f2b4"; - } - - .fa-handshake-o:before { - content: "\f2b5"; - } - - .fa-envelope-open:before { - content: "\f2b6"; - } - - .fa-envelope-open-o:before { - content: "\f2b7"; - } - - .fa-linode:before { - content: "\f2b8"; - } - - .fa-address-book:before { - content: "\f2b9"; - } - - .fa-address-book-o:before { - content: "\f2ba"; - } - - .fa-vcard:before, - .fa-address-card:before { - content: "\f2bb"; - } - - .fa-vcard-o:before, - .fa-address-card-o:before { - content: "\f2bc"; - } - - .fa-user-circle:before { - content: "\f2bd"; - } - - .fa-user-circle-o:before { - content: "\f2be"; - } - - .fa-user-o:before { - content: "\f2c0"; - } - - .fa-id-badge:before { - content: "\f2c1"; - } - - .fa-drivers-license:before, - .fa-id-card:before { - content: "\f2c2"; - } - - .fa-drivers-license-o:before, - .fa-id-card-o:before { - content: "\f2c3"; - } - - .fa-quora:before { - content: "\f2c4"; - } - - .fa-free-code-camp:before { - content: "\f2c5"; - } - - .fa-telegram:before { - content: "\f2c6"; - } - - .fa-thermometer-4:before, - .fa-thermometer:before, - .fa-thermometer-full:before { - content: "\f2c7"; - } - - .fa-thermometer-3:before, - .fa-thermometer-three-quarters:before { - content: "\f2c8"; - } - - .fa-thermometer-2:before, - .fa-thermometer-half:before { - content: "\f2c9"; - } - - .fa-thermometer-1:before, - .fa-thermometer-quarter:before { - content: "\f2ca"; - } - - .fa-thermometer-0:before, - .fa-thermometer-empty:before { - content: "\f2cb"; - } - - .fa-shower:before { - content: "\f2cc"; - } - - .fa-bathtub:before, - .fa-s15:before, - .fa-bath:before { - content: "\f2cd"; - } - - .fa-podcast:before { - content: "\f2ce"; - } - - .fa-window-maximize:before { - content: "\f2d0"; - } - - .fa-window-minimize:before { - content: "\f2d1"; - } - - .fa-window-restore:before { - content: "\f2d2"; - } - - .fa-times-rectangle:before, - .fa-window-close:before { - content: "\f2d3"; - } - - .fa-times-rectangle-o:before, - .fa-window-close-o:before { - content: "\f2d4"; - } - - .fa-bandcamp:before { - content: "\f2d5"; - } - - .fa-grav:before { - content: "\f2d6"; - } - - .fa-etsy:before { - content: "\f2d7"; - } - - .fa-imdb:before { - content: "\f2d8"; - } - - .fa-ravelry:before { - content: "\f2d9"; - } - - .fa-eercast:before { - content: "\f2da"; - } - - .fa-microchip:before { - content: "\f2db"; - } - - .fa-snowflake-o:before { - content: "\f2dc"; - } - - .fa-superpowers:before { - content: "\f2dd"; - } - - .fa-wpexplorer:before { - content: "\f2de"; - } - - .fa-meetup:before { - content: "\f2e0"; - } - - .sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - } - - .sr-only-focusable:active, - .sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; - } - - .sr-only-focusable:active, - .sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; - } - - .select2-container { - box-sizing: border-box; - display: inline-block; - margin: 0; - position: relative; - vertical-align: middle; } - - .select2-container .select2-selection--single { - box-sizing: border-box; - cursor: pointer; - display: block; - height: 28px; - user-select: none; - -webkit-user-select: none; } - - .select2-container .select2-selection--single .select2-selection__rendered { - display: block; - padding-left: 8px; - padding-right: 20px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; } - - .select2-container .select2-selection--single .select2-selection__clear { - position: relative; } - - .select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered { - padding-right: 8px; - padding-left: 20px; } - - .select2-container .select2-selection--multiple { - box-sizing: border-box; - cursor: pointer; - display: block; - min-height: 32px; - user-select: none; - -webkit-user-select: none; } - - .select2-container .select2-selection--multiple .select2-selection__rendered { - display: inline-block; - overflow: hidden; - padding-left: 8px; - text-overflow: ellipsis; - white-space: nowrap; } - - .select2-container .select2-search--inline { - float: left; } - - .select2-container .select2-search--inline .select2-search__field { - box-sizing: border-box; - border: none; - font-size: 100%; - margin-top: 5px; - padding: 0; } - - .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button { - -webkit-appearance: none; } - - .select2-dropdown { - background-color: white; - border: 1px solid #aaa; - border-radius: 4px; - box-sizing: border-box; - display: block; - position: absolute; - left: -100000px; - width: 100%; - z-index: 1051; } - - .select2-results { - display: block; } - - .select2-results__options { - list-style: none; - margin: 0; - padding: 0; } - - .select2-results__option { - padding: 6px; - user-select: none; - -webkit-user-select: none; } - - .select2-results__option[aria-selected] { - cursor: pointer; } - - .select2-container--open .select2-dropdown { - left: 0; } - - .select2-container--open .select2-dropdown--above { - border-bottom: none; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; } - - .select2-container--open .select2-dropdown--below { - border-top: none; - border-top-left-radius: 0; - border-top-right-radius: 0; } - - .select2-search--dropdown { - display: block; - padding: 4px; } - - .select2-search--dropdown .select2-search__field { - padding: 4px; - width: 100%; - box-sizing: border-box; } - - .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button { - -webkit-appearance: none; } - - .select2-search--dropdown.select2-search--hide { - display: none; } - - .select2-close-mask { - border: 0; - margin: 0; - padding: 0; - display: block; - position: fixed; - left: 0; - top: 0; - min-height: 100%; - min-width: 100%; - height: auto; - width: auto; - opacity: 0; - z-index: 99; - background-color: #fff; - filter: alpha(opacity=0); } - - .select2-hidden-accessible { - border: 0 !important; - clip: rect(0 0 0 0) !important; - height: 1px !important; - margin: -1px !important; - overflow: hidden !important; - padding: 0 !important; - position: absolute !important; - width: 1px !important; } - - .select2-container--default .select2-selection--single { - background-color: #fff; - border: 1px solid #aaa; - border-radius: 4px; } - - .select2-container--default .select2-selection--single .select2-selection__rendered { - color: #444; - line-height: 28px; } - - .select2-container--default .select2-selection--single .select2-selection__clear { - cursor: pointer; - float: right; - font-weight: bold; } - - .select2-container--default .select2-selection--single .select2-selection__placeholder { - color: #999; } - - .select2-container--default .select2-selection--single .select2-selection__arrow { - height: 26px; - position: absolute; - top: 1px; - right: 1px; - width: 20px; } - - .select2-container--default .select2-selection--single .select2-selection__arrow b { - border-color: #888 transparent transparent transparent; - border-style: solid; - border-width: 5px 4px 0 4px; - height: 0; - left: 50%; - margin-left: -4px; - margin-top: -2px; - position: absolute; - top: 50%; - width: 0; } - - .select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear { - float: left; } - - .select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow { - left: 1px; - right: auto; } - - .select2-container--default.select2-container--disabled .select2-selection--single { - background-color: #eee; - cursor: default; } - - .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear { - display: none; } - - .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b { - border-color: transparent transparent #888 transparent; - border-width: 0 4px 5px 4px; } - - .select2-container--default .select2-selection--multiple { - background-color: white; - border: 1px solid #aaa; - border-radius: 4px; - cursor: text; } - - .select2-container--default .select2-selection--multiple .select2-selection__rendered { - box-sizing: border-box; - list-style: none; - margin: 0; - padding: 0 5px; - width: 100%; } - - .select2-container--default .select2-selection--multiple .select2-selection__rendered li { - list-style: none; } - - .select2-container--default .select2-selection--multiple .select2-selection__placeholder { - color: #999; - margin-top: 5px; - float: left; } - - .select2-container--default .select2-selection--multiple .select2-selection__clear { - cursor: pointer; - float: right; - font-weight: bold; - margin-top: 5px; - margin-right: 10px; } - - .select2-container--default .select2-selection--multiple .select2-selection__choice { - background-color: #e4e4e4; - border: 1px solid #aaa; - border-radius: 4px; - cursor: default; - float: left; - margin-right: 5px; - margin-top: 5px; - padding: 0 5px; } - - .select2-container--default .select2-selection--multiple .select2-selection__choice__remove { - color: #999; - cursor: pointer; - display: inline-block; - font-weight: bold; - margin-right: 2px; } - - .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover { - color: #333; } - - .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline { - float: right; } - - .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice { - margin-left: 5px; - margin-right: auto; } - - .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { - margin-left: 2px; - margin-right: auto; } - - .select2-container--default.select2-container--focus .select2-selection--multiple { - border: solid black 1px; - outline: 0; } - - .select2-container--default.select2-container--disabled .select2-selection--multiple { - background-color: #eee; - cursor: default; } - - .select2-container--default.select2-container--disabled .select2-selection__choice__remove { - display: none; } - - .select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple { - border-top-left-radius: 0; - border-top-right-radius: 0; } - - .select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; } - - .select2-container--default .select2-search--dropdown .select2-search__field { - border: 1px solid #aaa; } - - .select2-container--default .select2-search--inline .select2-search__field { - background: transparent; - border: none; - outline: 0; - box-shadow: none; - -webkit-appearance: textfield; } - - .select2-container--default .select2-results > .select2-results__options { - max-height: 200px; - overflow-y: auto; } - - .select2-container--default .select2-results__option[role=group] { - padding: 0; } - - .select2-container--default .select2-results__option[aria-disabled=true] { - color: #999; } - - .select2-container--default .select2-results__option[aria-selected=true] { - background-color: #ddd; } - - .select2-container--default .select2-results__option .select2-results__option { - padding-left: 1em; } - - .select2-container--default .select2-results__option .select2-results__option .select2-results__group { - padding-left: 0; } - - .select2-container--default .select2-results__option .select2-results__option .select2-results__option { - margin-left: -1em; - padding-left: 2em; } - - .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -2em; - padding-left: 3em; } - - .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -3em; - padding-left: 4em; } - - .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -4em; - padding-left: 5em; } - - .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -5em; - padding-left: 6em; } - - .select2-container--default .select2-results__option--highlighted[aria-selected] { - background-color: #5897fb; - color: white; } - - .select2-container--default .select2-results__group { - cursor: default; - display: block; - padding: 6px; } - - .select2-container--classic .select2-selection--single { - background-color: #f7f7f7; - border: 1px solid #aaa; - border-radius: 4px; - outline: 0; - background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); } - - .select2-container--classic .select2-selection--single:focus { - border: 1px solid #5897fb; } - - .select2-container--classic .select2-selection--single .select2-selection__rendered { - color: #444; - line-height: 28px; } - - .select2-container--classic .select2-selection--single .select2-selection__clear { - cursor: pointer; - float: right; - font-weight: bold; - margin-right: 10px; } - - .select2-container--classic .select2-selection--single .select2-selection__placeholder { - color: #999; } - - .select2-container--classic .select2-selection--single .select2-selection__arrow { - background-color: #ddd; - border: none; - border-left: 1px solid #aaa; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - height: 26px; - position: absolute; - top: 1px; - right: 1px; - width: 20px; - background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); } - - .select2-container--classic .select2-selection--single .select2-selection__arrow b { - border-color: #888 transparent transparent transparent; - border-style: solid; - border-width: 5px 4px 0 4px; - height: 0; - left: 50%; - margin-left: -4px; - margin-top: -2px; - position: absolute; - top: 50%; - width: 0; } - - .select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear { - float: left; } - - .select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow { - border: none; - border-right: 1px solid #aaa; - border-radius: 0; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; - left: 1px; - right: auto; } - - .select2-container--classic.select2-container--open .select2-selection--single { - border: 1px solid #5897fb; } - - .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow { - background: transparent; - border: none; } - - .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b { - border-color: transparent transparent #888 transparent; - border-width: 0 4px 5px 4px; } - - .select2-container--classic.select2-container--open.select2-container--above .select2-selection--single { - border-top: none; - border-top-left-radius: 0; - border-top-right-radius: 0; - background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); } - - .select2-container--classic.select2-container--open.select2-container--below .select2-selection--single { - border-bottom: none; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); } - - .select2-container--classic .select2-selection--multiple { - background-color: white; - border: 1px solid #aaa; - border-radius: 4px; - cursor: text; - outline: 0; } - - .select2-container--classic .select2-selection--multiple:focus { - border: 1px solid #5897fb; } - - .select2-container--classic .select2-selection--multiple .select2-selection__rendered { - list-style: none; - margin: 0; - padding: 0 5px; } - - .select2-container--classic .select2-selection--multiple .select2-selection__clear { - display: none; } - - .select2-container--classic .select2-selection--multiple .select2-selection__choice { - background-color: #e4e4e4; - border: 1px solid #aaa; - border-radius: 4px; - cursor: default; - float: left; - margin-right: 5px; - margin-top: 5px; - padding: 0 5px; } - - .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove { - color: #888; - cursor: pointer; - display: inline-block; - font-weight: bold; - margin-right: 2px; } - - .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover { - color: #555; } - - .select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice { - float: right; } - - .select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice { - margin-left: 5px; - margin-right: auto; } - - .select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { - margin-left: 2px; - margin-right: auto; } - - .select2-container--classic.select2-container--open .select2-selection--multiple { - border: 1px solid #5897fb; } - - .select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple { - border-top: none; - border-top-left-radius: 0; - border-top-right-radius: 0; } - - .select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple { - border-bottom: none; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; } - - .select2-container--classic .select2-search--dropdown .select2-search__field { - border: 1px solid #aaa; - outline: 0; } - - .select2-container--classic .select2-search--inline .select2-search__field { - outline: 0; - box-shadow: none; } - - .select2-container--classic .select2-dropdown { - background-color: white; - border: 1px solid transparent; } - - .select2-container--classic .select2-dropdown--above { - border-bottom: none; } - - .select2-container--classic .select2-dropdown--below { - border-top: none; } - - .select2-container--classic .select2-results > .select2-results__options { - max-height: 200px; - overflow-y: auto; } - - .select2-container--classic .select2-results__option[role=group] { - padding: 0; } - - .select2-container--classic .select2-results__option[aria-disabled=true] { - color: grey; } - - .select2-container--classic .select2-results__option--highlighted[aria-selected] { - background-color: #3875d7; - color: white; } - - .select2-container--classic .select2-results__group { - cursor: default; - display: block; - padding: 6px; } - - .select2-container--classic.select2-container--open .select2-dropdown { - border-color: #5897fb; } - - .daterangepicker { - position: absolute; - color: inherit; - background-color: #fff; - border-radius: 4px; - width: 278px; - padding: 4px; - margin-top: 1px; - top: 100px; - left: 20px; - /* Calendars */ } - - .daterangepicker:before, .daterangepicker:after { - position: absolute; - display: inline-block; - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; } - - .daterangepicker:before { - top: -7px; - border-right: 7px solid transparent; - border-left: 7px solid transparent; - border-bottom: 7px solid #ccc; } - - .daterangepicker:after { - top: -6px; - border-right: 6px solid transparent; - border-bottom: 6px solid #fff; - border-left: 6px solid transparent; } - - .daterangepicker.opensleft:before { - right: 9px; } - - .daterangepicker.opensleft:after { - right: 10px; } - - .daterangepicker.openscenter:before { - left: 0; - right: 0; - width: 0; - margin-left: auto; - margin-right: auto; } - - .daterangepicker.openscenter:after { - left: 0; - right: 0; - width: 0; - margin-left: auto; - margin-right: auto; } - - .daterangepicker.opensright:before { - left: 9px; } - - .daterangepicker.opensright:after { - left: 10px; } - - .daterangepicker.dropup { - margin-top: -5px; } - - .daterangepicker.dropup:before { - top: initial; - bottom: -7px; - border-bottom: initial; - border-top: 7px solid #ccc; } - - .daterangepicker.dropup:after { - top: initial; - bottom: -6px; - border-bottom: initial; - border-top: 6px solid #fff; } - - .daterangepicker.dropdown-menu { - max-width: none; - z-index: 3001; } - - .daterangepicker.single .ranges, .daterangepicker.single .calendar { - float: none; } - - .daterangepicker.show-calendar .calendar { - display: block; } - - .daterangepicker .calendar { - display: none; - max-width: 270px; - margin: 4px; } - - .daterangepicker .calendar.single .calendar-table { - border: none; } - - .daterangepicker .calendar th, .daterangepicker .calendar td { - white-space: nowrap; - text-align: center; - min-width: 32px; } - - .daterangepicker .calendar-table { - border: 1px solid #fff; - padding: 4px; - border-radius: 4px; - background-color: #fff; } - - .daterangepicker table { - width: 100%; - margin: 0; } - - .daterangepicker td, .daterangepicker th { - text-align: center; - width: 20px; - height: 20px; - border-radius: 4px; - border: 1px solid transparent; - white-space: nowrap; - cursor: pointer; } - - .daterangepicker td.available:hover, .daterangepicker th.available:hover { - background-color: #eee; - border-color: transparent; - color: inherit; } - - .daterangepicker td.week, .daterangepicker th.week { - font-size: 80%; - color: #ccc; } - - .daterangepicker td.off, .daterangepicker td.off.in-range, .daterangepicker td.off.start-date, .daterangepicker td.off.end-date { - background-color: #fff; - border-color: transparent; - color: #999; } - - .daterangepicker td.in-range { - background-color: #ebf4f8; - border-color: transparent; - color: #000; - border-radius: 0; } - - .daterangepicker td.start-date { - border-radius: 4px 0 0 4px; } - - .daterangepicker td.end-date { - border-radius: 0 4px 4px 0; } - - .daterangepicker td.start-date.end-date { - border-radius: 4px; } - - .daterangepicker td.active, .daterangepicker td.active:hover { - background-color: #357ebd; - border-color: transparent; - color: #fff; } - - .daterangepicker th.month { - width: auto; } - - .daterangepicker td.disabled, .daterangepicker option.disabled { - color: #999; - cursor: not-allowed; - text-decoration: line-through; } - - .daterangepicker select.monthselect, .daterangepicker select.yearselect { - font-size: 12px; - padding: 1px; - height: auto; - margin: 0; - cursor: default; } - - .daterangepicker select.monthselect { - margin-right: 2%; - width: 56%; } - - .daterangepicker select.yearselect { - width: 40%; } - - .daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.secondselect, .daterangepicker select.ampmselect { - width: 50px; - margin-bottom: 0; } - - .daterangepicker .input-mini { - border: 1px solid #ccc; - border-radius: 4px; - color: #555; - height: 30px; - line-height: 30px; - display: block; - vertical-align: middle; - margin: 0 0 5px 0; - padding: 0 6px 0 28px; - width: 100%; } - - .daterangepicker .input-mini.active { - border: 1px solid #08c; - border-radius: 4px; } - - .daterangepicker .daterangepicker_input { - position: relative; } - - .daterangepicker .daterangepicker_input i { - position: absolute; - left: 8px; - top: 8px; } - - .daterangepicker.rtl .input-mini { - padding-right: 28px; - padding-left: 6px; } - - .daterangepicker.rtl .daterangepicker_input i { - left: auto; - right: 8px; } - - .daterangepicker .calendar-time { - text-align: center; - margin: 5px auto; - line-height: 30px; - position: relative; - padding-left: 28px; } - - .daterangepicker .calendar-time select.disabled { - color: #ccc; - cursor: not-allowed; } - - .ranges { - font-size: 11px; - float: none; - margin: 4px; - text-align: left; } - - .ranges ul { - list-style: none; - margin: 0 auto; - padding: 0; - width: 100%; } - - .ranges li { - font-size: 13px; - background-color: #f5f5f5; - border: 1px solid #f5f5f5; - border-radius: 4px; - color: #08c; - padding: 3px 12px; - margin-bottom: 8px; - cursor: pointer; } - - .ranges li:hover { - background-color: #08c; - border: 1px solid #08c; - color: #fff; } - - .ranges li.active { - background-color: #08c; - border: 1px solid #08c; - color: #fff; } - - /* Larger Screen Styling */ - - @media (min-width: 564px) { - .daterangepicker { - width: auto; } - .daterangepicker .ranges ul { - width: 160px; } - .daterangepicker.single .ranges ul { - width: 100%; } - .daterangepicker.single .calendar.left { - clear: none; } - .daterangepicker.single.ltr .ranges, .daterangepicker.single.ltr .calendar { - float: left; } - .daterangepicker.single.rtl .ranges, .daterangepicker.single.rtl .calendar { - float: right; } - .daterangepicker.ltr { - direction: ltr; - text-align: left; } - .daterangepicker.ltr .calendar.left { - clear: left; - margin-right: 0; } - .daterangepicker.ltr .calendar.left .calendar-table { - border-right: none; - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - .daterangepicker.ltr .calendar.right { - margin-left: 0; } - .daterangepicker.ltr .calendar.right .calendar-table { - border-left: none; - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - .daterangepicker.ltr .left .daterangepicker_input { - padding-right: 12px; } - .daterangepicker.ltr .calendar.left .calendar-table { - padding-right: 12px; } - .daterangepicker.ltr .ranges, .daterangepicker.ltr .calendar { - float: left; } - .daterangepicker.rtl { - direction: rtl; - text-align: right; } - .daterangepicker.rtl .calendar.left { - clear: right; - margin-left: 0; } - .daterangepicker.rtl .calendar.left .calendar-table { - border-left: none; - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - .daterangepicker.rtl .calendar.right { - margin-right: 0; } - .daterangepicker.rtl .calendar.right .calendar-table { - border-right: none; - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - .daterangepicker.rtl .left .daterangepicker_input { - padding-left: 12px; } - .daterangepicker.rtl .calendar.left .calendar-table { - padding-left: 12px; } - .daterangepicker.rtl .ranges, .daterangepicker.rtl .calendar { - text-align: right; - float: right; } } - - @media (min-width: 730px) { - .daterangepicker .ranges { - width: auto; } - .daterangepicker.ltr .ranges { - float: left; } - .daterangepicker.rtl .ranges { - float: right; } - .daterangepicker .calendar.left { - clear: none !important; } } - - /* ======================================================================== - * bootstrap-tour - v0.11.0 - * http://bootstraptour.com - * ======================================================================== - * Copyright 2012-2015 Ulrich Sossou - * - * ======================================================================== - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ======================================================================== - */ - - .tour-backdrop { - position: absolute; - z-index: 1100; - background-color: #000; - opacity: 0.8; - filter: alpha(opacity=80); - } - - .popover[class*="tour-"] { - z-index: 1102; - } - - .popover[class*="tour-"] .popover-navigation { - padding: 9px 14px; - overflow: hidden; - } - - .popover[class*="tour-"] .popover-navigation *[data-role="end"] { - float: right; - } - - .popover[class*="tour-"] .popover-navigation *[data-role="prev"], - .popover[class*="tour-"] .popover-navigation *[data-role="next"], - .popover[class*="tour-"] .popover-navigation *[data-role="end"] { - cursor: pointer; - } - - .popover[class*="tour-"] .popover-navigation *[data-role="prev"].disabled, - .popover[class*="tour-"] .popover-navigation *[data-role="next"].disabled, - .popover[class*="tour-"] .popover-navigation *[data-role="end"].disabled { - cursor: default; - } - - .popover[class*="tour-"].orphan { - position: fixed; - margin-top: 0; - } - - .popover[class*="tour-"].orphan .arrow { - display: none; - } - - /* Basic colors. WARNING: Don't use these outside this file as the variable names are not useful */ - - /* app colors */ - - /* tab colors */ - - /* state colors */ - - /* Visit count progress colors */ - - /* sizes */ - - /* font sizes */ - - /* icons */ - - /* functions */ - - @font-face { - font-family: 'Noto'; - src: url(/fonts/NotoSans-Regular.ttf) format("truetype"); - font-weight: normal; - } - - @font-face { - font-family: 'Noto'; - src: url(/fonts/NotoSans-Bold.ttf) format("truetype"); - font-weight: bold; - } - - body { - font-family: Noto, sans-serif; - color: #333333; - } - - html, - .input-group-btn { - /* for some reason bootstrap sets this to 0 */ - font-size: 16px; - } - - body, - .app-root, - .dropdown-menu, - .btn, - .form-control { - font-size: 100%; - } - - h1, - h2, - h3, - h4 { - font-weight: bold; - } - - h1 { - font-size: 1.5rem; - } - - h2 { - font-size: 1.25rem; - } - - h3 { - font-size: 1.125rem; - } - - h4 { - font-size: 1rem; - line-height: 1; - } - - .small-font { - font-size: 0.875rem; - } - - /* bootstrap removed this mixin: adding stub for backwards compatibility */ - - .mm-badge-border { - border: solid 1px #fff; - } - - .mm-badge { - background-color: #fff; - text-align: center; - border-radius: 100px; - padding: 2px 6px; - margin: 5px; - vertical-align: top; - display: inline-block; - text-shadow: rgba(0, 0, 0, 0.5) 1px 1px 2px; - } - - .mm-badge .fa { - text-shadow: none; - } - - .mm-badge-red { - color: #fff; - background-color: #E33030; - } - - .mm-badge-green { - color: #fff; - background-color: #A0BA62; - } - - .mm-badge-overlay { - overflow: visible; - position: absolute; - z-index: 100; - font-size: 0.5rem; - margin: 0; - right: 15%; - } - - .mm-badge-overlay-top { - top: -3px; - } - - .verification-badge svg { - width: 14px; - height: 14px; - } - - .verification-badge.verified svg path { - fill: #218E7F; - } - - .verification-badge.error svg path { - fill: #E33030; - } - - .mm-button { - display: inline-block; - vertical-align: top; - cursor: pointer; - min-height: 40px; - overflow: hidden; - padding-left: 10px; - box-shadow: rgba(0, 0, 0, 0.25) 1px 1px 1px; - background-color: rgba(255, 255, 255, 0.45); - } - - .mm-button-inverse { - background-color: rgba(255, 255, 255, 0.2); - border: solid 1px rgba(255, 255, 255, 0.1); - box-shadow: rgba(255, 255, 255, 0.1) 1px 1px 1px; - } - - .mm-button-dropdown { - color: #333; - float: right; - padding: 10px 10px 0 0; - cursor: pointer; - } - - .mm-button-inverse .mm-button-dropdown, - .mm-button-inverse .mm-button-icon, - .mm-button-inverse .mm-button-text { - color: #eee; - } - - .mm-button-inverse .mm-button-icon { - text-shadow: rgba(0, 0, 0, 0.5) 1px 1px 1px; - } - - .mm-button-inverse .mm-button-text { - text-shadow: rgba(0, 0, 0, 0.6) 1px 1px 1px; - } - - .mm-button-icon { - float: left; - color: #222; - font-size: 1.4rem; - text-shadow: rgba(255, 255, 255, 0.5) 1px 1px 1px; - padding: 5px 5px 5px 0; - } - - .mm-button-text { - color: #222; - font-weight: normal; - padding-right: 32px; - text-overflow: ellipsis; - vertical-align: bottom; - text-shadow: rgba(255, 255, 255, 0.5) 1px 1px 1px; - } - - span.mm-button-text { - line-height: 40px; - vertical-align: middle; - } - - div.mm-button-text { - padding: 0.95em 0 0 0; - } - - .mm-button-disabled .mm-button-text, - .mm-button-disabled .mm-button-icon, - .mm-button-disabled .mm-button-dropdown { - opacity: 0.7; - } - - .mm-button-disabled { - cursor: auto; - background-color: rgba(255, 255, 255, 0.2); - pointer-events: none; - } - - .mm-button-disabled.mm-button-inverse { - background-color: rgba(255, 255, 255, 0.1); - } - - .mm-navigation-menu { - text-align: center; - margin: 10px auto; - } - - .mm-navigation-menu li { - width: 200px; - vertical-align: top; - font-size: 1.5rem; - margin: 20px; - display: inline-block; - } - - .mm-navigation-menu li a { - color: inherit; - cursor: pointer; - background-color: #E0E0E0; - border: 1px solid #777777; - border-radius: 10px; - box-sizing: border-box; - text-align: center; - padding: 5px; - width: 100%; - min-height: 130px; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - } - - .mm-navigation-menu li a:hover { - text-decoration: none; - } - - .mm-navigation-menu li a .fa { - font-size: 30px; - } - - @media (max-width: 767px) { - .mm-navigation-menu li { - font-size: 1.125rem; - } - } - - @media (max-width: 400px) { - .mm-navigation-menu li { - margin: 10px; - } - } - - /** - * @name mm-dropdown-menu: - * Restyles and extends Bootstrap's `dropdown-menu`. - */ - - .mm-dropdown-menu { - top: 0; - right: 0; - padding: 10px 0; - margin: 41px 0; - overflow-x: hidden; - border-radius: 0 0 5px 5px; - border: 0; - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.4); - height: auto; - max-height: 80vh; - } - - .mm-dropdown-menu li a, - .mm-dropdown-menu li.dropdown-header a { - text-overflow: ellipsis; - overflow: hidden; - cursor: pointer; - color: #333333; - } - - .mm-dropdown-menu li a:hover, - .mm-dropdown-menu li.dropdown-header a:hover { - color: #333333; - background-color: #F2F2F2; - } - - .mm-dropdown-menu li.dropdown-header a { - font-size: 0.875rem; - } - - .mm-dropdown-menu.with-icon li > a { - display: flex; - justify-content: space-between; - align-items: center; - vertical-align: middle; - } - - .mm-dropdown-menu.with-icon li > a > span { - margin-right: 10px; - } - - .mm-dropdown-menu.with-icon li > a .content { - flex-grow: 1; - overflow: hidden; - text-overflow: ellipsis; - } - - .mm-dropdown-menu.with-icon li > a img, - .mm-dropdown-menu.with-icon li > a svg { - width: 30px; - height: 30px; - } - - .mm-dropdown-menu.with-icon li > a:after { - color: #777777; - content: '\f054'; - font-family: FontAwesome; - } - - .dropup .dropdown-menu.mm-dropdown-menu { - padding: 0; - border-top: 5px solid #777777; - border-radius: 0; - box-shadow: 0 -6px 12px rgba(0, 0, 0, 0.4); - max-width: 90%; - margin-bottom: 1px; - } - - .dropup .dropdown-menu.mm-dropdown-menu li { - border-bottom: 1px solid #E0E0E0; - } - - .dropup .dropdown-menu.mm-dropdown-menu li > a { - padding: 10px; - } - - .mm-dropdown { - display: inline-block; - } - - .mm-dropdown .dropdown-menu { - min-width: 260px; - } - - .mm-dropdown .dropdown-menu a:before { - display: inline-block; - width: 1.28571429em; - text-align: center; - font-family: FontAwesome; - content: ' '; - } - - .mm-dropdown .dropdown-menu .selected:before { - content: '\f00c'; - } - - .mm-dropdown.multidropdown .dropdown-menu { - padding-bottom: 50px; - } - - .mm-dropdown.multidropdown .dropdown-menu > ul { - max-height: 300px; - overflow-x: hidden; - } - - .mm-dropdown.multidropdown .dropdown-menu a:before, - .mm-dropdown.multidropdown .dropdown-menu li:before { - content: none; - } - - .mm-dropdown.multidropdown .dropdown-menu li > a[role="menuitem"] { - padding: 5px 20px 3px 35px; - text-indent: -20px; - } - - .mm-dropdown.multidropdown .dropdown-menu li > a[role="menuitem"].indent-1 { - padding-left: 50px; - } - - .mm-dropdown.multidropdown .dropdown-menu li > a[role="menuitem"].indent-2 { - padding-left: 60px; - } - - .mm-dropdown.multidropdown .dropdown-menu li > a[role="menuitem"].indent-3 { - padding-left: 70px; - } - - .mm-dropdown.multidropdown .dropdown-menu li > a[role="menuitem"].indent-4 { - padding-left: 80px; - } - - .mm-dropdown.multidropdown .dropdown-menu li a, - .mm-dropdown.multidropdown .dropdown-menu li.dropdown-header { - padding-left: 10px; - padding-right: 10px; - } - - .mm-dropdown.multidropdown .dropdown-menu li.dropdown-header { - margin-top: 10px; - font-size: 0.875rem; - } - - .mm-dropdown.multidropdown .dropdown-menu li.dropdown-header:first-child { - margin-top: 0; - } - - .mm-dropdown.multidropdown .dropdown-menu li a:before { - content: '\f096'; - } - - .mm-dropdown.multidropdown .dropdown-menu li.selected a:before { - content: '\f046'; - } - - .mm-dropdown.multidropdown .dropdown-menu li.disabled, - .mm-dropdown.multidropdown .dropdown-menu li.disabled a { - color: #A0A0A0; - cursor: default; - } - - .mm-dropdown.multidropdown .dropdown-menu li.disabled a:hover { - background-color: inherit; - } - - .mm-dropdown.multidropdown .dropdown-menu .dropdown-child a { - text-indent: 10px; - } - - .mm-dropdown.multidropdown .dropdown-menu .actions { - margin: 0; - text-align: center; - position: absolute; - bottom: 0px; - left: 0; - right: 0; - border-top: 1px solid silver; - background-color: white; - } - - .mm-dropdown.dropdown.pair-left { - padding-right: 0; - } - - .mm-dropdown.dropdown.pair-left .mm-button { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-right-width: 0; - } - - .mm-dropdown.dropdown.pair-left .mm-button-dropdown { - float: left; - } - - .mm-dropdown.dropdown.pair-left .mm-button-text { - text-align: right; - width: 95%; - } - - .mm-dropdown.dropdown.pair-right { - padding-left: 0; - } - - .mm-dropdown.dropdown.pair-right .mm-button { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - padding-left: 5px; - border-left-color: #aaa; - } - - .mm-dropdown.disabled .mm-button { - cursor: not-allowed; - } - - .mm-dropdown.disabled .mm-button-dropdown { - visibility: hidden; - } - - .mm-dropdown.disabled .mm-button-icon, - .mm-dropdown.disabled .mm-button-text { - color: #777777; - } - - .mm-dropdown-menu-inverse li a:hover { - color: #000; - background-color: rgba(255, 255, 255, 0.8); - background-image: none; - } - - .mm-dropdown-menu-inverse { - background-color: rgba(0, 0, 0, 0.85); - border-color: rgba(255, 255, 255, 0.25); - } - - .mm-dropdown-menu-inverse, - .mm-dropdown-menu-inverse li a { - color: #fff; - } - - .mm-dropdown-menu-modal { - margin: 0; - position: fixed; - display: block; - padding: 10px 0; - border-width: 1px; - } - - .mm-dropdown-menu-modal li a { - padding: 5px 10px; - text-shadow: none; - font-weight: bold; - } - - .mm-dropdown .mm-dropdown-menu ul { - margin-bottom: 0; - } - - .mm-dropdown .mm-dropdown-menu li > a { - display: block; - padding: 5px 20px; - clear: both; - font-weight: normal; - line-height: 1.42857; - color: #333; - white-space: normal; - } - - .mm-dropdown .mm-dropdown-menu li > a:hover, - .mm-dropdown .mm-dropdown-menu li > a:focus { - text-decoration: none; - } - - @media (max-width: 767px) { - .open .mm-dropdown-menu { - top: 111px; - left: 10px; - right: 10px; - margin: 0; - position: fixed; - display: block; - padding: 10px 0; - border-width: 1px; - } - .open .mm-dropdown-menu li a { - padding: 5px 10px; - text-shadow: none; - font-weight: bold; - } - .dropup .mm-dropdown-menu { - position: absolute; - top: auto; - bottom: 100%; - padding: 0; - border-top: 5px solid #777777; - left: 0; - right: 0; - margin-bottom: 1px; - } - .dropup .mm-dropdown-menu li > a { - padding: 3px 0; - } - } - - @media (max-width: 400px) { - .open .mm-dropdown-menu { - top: 101px; - } - .dropup .mm-dropdown-menu { - top: auto; - } - } - - .panel-group { - margin-bottom: 0; - } - - .panel-group .panel { - box-shadow: none; - } - - .panel-group .panel.disabled .panel-heading { - color: #A0A0A0; - } - - .panel-group .panel + .panel { - border-top: 1px solid #E0E0E0; - clear: right; - } - - .panel-group .panel-default > .panel-heading { - background-color: inherit; - } - - .panel-group .panel-default { - border: 0; - } - - .panel-group .panel-heading + .panel-collapse > .panel-body { - border: 0; - } - - .panel-group .panel-body { - padding-top: 0; - padding-bottom: 0; - } - - .panel-group .panel-heading { - flex-grow: 1; - padding: 0; - } - - .panel-group .panel-heading .panel-title { - cursor: pointer; - width: 100%; - display: block; - padding-top: 3px; - outline: 0; - font-size: 1.25rem; - } - - .panel-group .panel-heading .panel-title:hover, - .panel-group .panel-heading .panel-title:focus { - text-decoration: none; - } - - .panel-group .panel-heading .panel-title:hover .count { - background-color: #E0E0E0; - } - - .panel-group .panel-heading .accordion-toggle { - display: flex; - } - - .panel-group .panel-heading .accordion-toggle:before { - color: #333333; - font-family: FontAwesome; - margin-right: 10px; - width: 10px; - } - - .panel-group .panel-heading .accordion-toggle[aria-expanded="false"]:before { - content: '\f0da'; - } - - .panel-group .panel-heading .accordion-toggle[aria-expanded="true"]:before { - content: '\f0d7'; - } - - .panel-group .panel-heading .count { - box-sizing: border-box; - display: inline-block; - width: 20px; - height: 20px; - line-height: 15px; - border-radius: 10px; - border: 2px solid #E0E0E0; - text-align: center; - margin-right: 5px; - font-size: 14px; - } - - .panel-group .panel-heading .count .fa { - display: none; - } - - .panel-group .panel-heading .value { - float: right; - font-size: 0.875rem; - line-height: 20px; - text-align: right; - } - - .panel-group .panel-complete .panel-heading .count .number { - display: none; - } - - .panel-group .panel-complete .panel-heading .count .fa { - display: inline; - } - - .panel-group .panel-complete .panel-heading .value, - .panel-group .panel-complete .panel-heading .count .fa { - color: #A0BA62; - } - - .panel-group .panel.collapsible-list .panel-body { - padding: 0; - } - - .panel-group .panel.collapsible-list .list-group { - margin: 0; - } - - .panel-group .panel.collapsible-list .list-group .list-group-item { - border-right: none; - border-left: none; - } - - /** - * @name mm-icon: - */ - - .mm-icon { - cursor: pointer; - text-align: center; - position: relative; - } - - .mm-icon, - .mm-icon:focus { - color: #333333; - text-shadow: rgba(255, 255, 255, 0.5) 1px 1px 2px; - } - - .mm-icon svg, - .mm-icon:focus svg { - filter: drop-shadow(1px 1px 2px rgba(255, 255, 255, 0.5)); - } - - .mm-icon svg circle, - .mm-icon:focus svg circle, - .mm-icon svg path, - .mm-icon:focus svg path { - fill: #333333; - } - - .mm-icon:hover, - .mm-icon.active { - color: #FFFFFF; - } - - .mm-icon:hover svg circle, - .mm-icon.active svg circle, - .mm-icon:hover svg path, - .mm-icon.active svg path { - fill: #FFFFFF; - } - - .mm-icon-inverse, - .mm-icon-inverse:focus { - color: #E0E0E0; - text-shadow: rgba(0, 0, 0, 0.5) 1px 1px 2px; - } - - .mm-icon-inverse svg, - .mm-icon-inverse:focus svg { - filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.5)); - } - - .mm-icon-inverse svg circle, - .mm-icon-inverse:focus svg circle, - .mm-icon-inverse svg path, - .mm-icon-inverse:focus svg path { - fill: #E0E0E0; - } - - .mm-icon-disabled, - .mm-icon-disabled:hover, - .mm-icon-disabled:focus { - text-decoration: none; - cursor: default; - pointer-events: none; - color: #777777; - } - - .mm-icon-disabled svg circle, - .mm-icon-disabled:hover svg circle, - .mm-icon-disabled:focus svg circle, - .mm-icon-disabled svg path, - .mm-icon-disabled:hover svg path, - .mm-icon-disabled:focus svg path { - fill: #777777; - } - - .mm-icon-caption { - font-size: 0.875rem; - font-weight: bold; - } - - .mm-icon-caption p { - margin-top: 5px; - margin-bottom: 5px; - } - - .loader { - margin: 10px auto; - position: relative; - border: 5px solid rgba(0, 0, 0, 0.1); - border-left-color: rgba(0, 0, 0, 0.5); - transform: translateZ(0); - animation: loader 1.1s infinite linear; - border-radius: 50%; - width: 40px; - height: 40px; - } - - .loader.inline { - vertical-align: middle; - display: inline-block; - margin: 10px; - } - - .loader.small { - width: 20px; - height: 20px; - border-width: 3px; - } - - @keyframes loader { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } - } - - .modal-dialog .modal-header h2 { - margin: 0; - } - - .modal-dialog .modal-header .close { - border: none; - background: none; - outline: none; - } - - .modal-dialog .modal-body { - overflow-y: auto; - min-height: 50px; - max-height: 73vh; - } - - .modal-dialog .modal-body textarea { - margin: 0; - width: 100%; - padding: 5px; - } - - .modal-dialog .modal-footer { - padding-top: 5px; - padding-bottom: 5px; - } - - .modal-dialog .modal-footer .note { - font-weight: bold; - color: #E33030; - } - - .modal-dialog .modal-footer .btn.cancel, - .modal-dialog .modal-footer .left { - float: left; - } - - @media (min-width: 992px) { - .modal-dialog.welcome { - width: 900px; - } - } - - .tooltip .tooltip-inner { - text-align: left; - } - - a { - cursor: pointer; - } - - .btn-primary { - background-color: #007AC0; - } - - .nav-tabs { - padding: 0 10px; - } - - .nav-tabs a { - outline: 0; - } - - .tab-content { - padding: 10px; - } - - .form-control { - padding-top: 5px; - padding-bottom: 5px; - } - - .form-control.medium { - max-width: 400px; - } - - .form-control.small { - max-width: 180px; - } - - .form-control.tiny { - max-width: 80px; - } - - .form-control.inline { - display: inline-block; - } - - .action-list .btn .fa, - .action-list .btn .fa-stack { - margin-right: 5px; - } - - .btn-link { - color: #007AC0; - } - - .btn-link:hover, - .btn-link:focus { - color: #23527C; - } - - .btn-link.btn-danger { - color: #E33030; - } - - .select2-chosen, - .select2-choice > span:first-child, - .select2-container .select2-choices .select2-search-field input { - padding: 5px; - } - - .select2-container .select2-selection--single { - height: 34px; - } - - .select2-container--default .select2-selection--single { - border: 1px solid #ccc; - } - - .select2-container--default .select2-selection--single .select2-selection__arrow b { - margin-top: 0; - } - - .select2-missing + span.select2-container .select2-selection__rendered { - color: #A0A0A0; - } - - .popover .popover-title { - background-color: #F2F2F2; - } - - .popover.tour { - border-color: #000000; - border-width: 2px; - padding: 0; - } - - .popover.tour .popover-title { - font-weight: bold; - } - - .popover.tour.right > .arrow { - border-right-color: #000000; - } - - .popover.tour.right > .arrow::after { - left: 2px; - } - - .popover.tour.left > .arrow { - border-left-color: #000000; - } - - .popover.tour.left > .arrow::after { - right: 2px; - } - - .popover.tour.bottom > .arrow { - border-bottom-color: #000000; - } - - .popover.tour.bottom > .arrow::after { - border-bottom-color: #F2F2F2; - top: 2px; - } - - .popover.tour.top > .arrow { - border-top-color: #000000; - } - - .popover.tour.top > .arrow::after { - bottom: 2px; - } - - .item-summary { - padding: 10px; - } - - .item-summary .icon { - float: left; - } - - .item-summary .icon img, - .item-summary .icon svg { - width: 30px; - height: 30px; - } - - .item-summary .detail { - overflow: auto; - } - - .item-summary .detail .status { - float: right; - text-align: right; - clear: right; - margin-left: 10px; - } - - .item-summary .detail .time .full-date { - color: #777777; - } - - .item-summary .detail .name { - font-weight: bold; - } - - .progress { - background-color: #E0E0E0; - box-shadow: none; - margin: 20px 0; - } - - .progress .progress-bar { - box-shadow: none; - border-right: 2px solid #FFFFFF; - } - - dl.horizontal dt { - width: 200px; - float: left; - text-align: right; - margin-bottom: 5px; - } - - dl.horizontal dd { - margin-left: 0; - padding-left: 220px; - word-break: break-all; - } - - dl.horizontal dd:after { - content: ''; - display: block; - clear: both; - } - - .weeks-pregnant.upcoming-edd { - color: #A0BA62; - } - - .weeks-pregnant.approximate:before { - content: '~'; - } - - .targets { - display: flex; - align-items: stretch; - flex-flow: row wrap; - justify-content: center; - padding: 35px 0; - } - - .targets .target { - padding: 10px; - width: 350px; - min-height: 180px; - background-color: #FFFFFF; - border: 1px solid #E0E0E0; - border-radius: 4px; - margin: 15px; - display: flex; - flex-direction: column; - justify-content: space-between; - } - - .targets .target .heading .title { - margin-left: 65px; - } - - .targets .target .heading .title h2 { - margin: 0; - } - - .targets .target .heading .title p { - color: #777777; - } - - .targets .target .heading .icon { - float: left; - } - - .targets .target .heading .icon img, - .targets .target .heading .icon svg { - width: 60px; - height: 60px; - } - - .targets .target .body { - clear: both; - position: relative; - margin: 0 5px; - } - - .targets .target .body .percent { - position: relative; - } - - .targets .target .body .count { - text-align: center; - } - - .targets .target .body .count .number { - font-size: 56px; - line-height: 1; - font-weight: bold; - margin-bottom: 15px; - } - - .targets .target .body .count .goal { - position: absolute; - right: 0; - bottom: 20px; - color: #777777; - } - - .targets .target .body .count .goal p { - font-size: 1.5rem; - line-height: 1; - margin-bottom: 0; - } - - .targets .target .body .count .goal label { - font-size: 0.875rem; - line-height: 1; - margin-bottom: 0; - } - - .target.has-goal .number, - .target.has-goal:not(.goal-met) .number, - .target .percent .number { - color: #E33030; - } - - .target.has-goal .progress-bar, - .target.has-goal:not(.goal-met) .progress-bar, - .target .percent .progress-bar { - background-color: #E33030; - } - - .target.goal-met .number, - .target .percent .number { - color: #76B0B0; - } - - .target.goal-met .progress-bar, - .target .percent .progress-bar { - background-color: #76B0B0; - } - - .target:not(.has-goal) .goal { - display: none; - } - - .target .target-progress .goal { - position: absolute; - top: -10px; - } - - .target .target-progress .goal label { - margin-left: -50%; - /* center aligned */ - white-space: nowrap; - font-size: 0.875rem; - color: #777777; - padding-top: 5px; - } - - .target .target-progress .goal label.pin-left { - margin-left: 0; - /* left aligned */ - } - - .target .target-progress .goal label.pin-right { - margin-left: -100%; - /* right aligned */ - } - - .target .target-progress .goal .bar { - position: absolute; - top: 25px; - height: 30px; - width: 8px; - margin-left: -4px; - /* center */ - background-color: #777777; - border: 2px solid #FFFFFF; - border-radius: 10px; - } - - .target .target-progress .value { - font-size: 1.5rem; - line-height: 1; - font-weight: bold; - } - - .target-aggregates { - max-width: 1170px; - left: 0; - right: 0; - } - - #target-aggregates-list .content-row.selected { - background-color: #e4efef; - } - - #target-aggregates-list .content-row .aggregate-status { - color: #777777; - white-space: nowrap; - } - - #target-aggregates-list .content-row .aggregate-status.error { - font-weight: bold; - color: #E33030; - } - - #target-aggregates-list .content-row .aggregate-status.success { - font-weight: bold; - color: #76B0B0; - } - - .aggregate-detail .target .target-progress .progress { - margin: 20px 0 0 0; - } - - .aggregate-detail .target .target-progress .progress.placeholder { - background: #F2F2F2; - } - - .aggregate-detail .target .target-progress .progress .progress-bar { - font-weight: bold; - text-align: left; - color: #333333; - } - - .aggregate-detail .target .target-progress .progress .progress-bar.no-border { - border: none; - } - - .aggregate-detail .target .target-progress .progress .progress-bar span { - font-size: 0.875rem; - padding: 0 4px; - color: #FFFFFF; - } - - .aggregate-detail .target .target-progress .goal { - width: 100%; - } - - .aggregate-detail .target .target-progress .goal label { - position: absolute; - right: 0; - } - - @media (max-width: 400px) { - .targets { - padding: 0; - } - .targets .target { - width: 100%; - margin: 0 0 8px 0; - border-radius: 0; - border-left-width: 0; - border-right-width: 0; - } - } - - .material .card { - border: 1px solid #E0E0E0; - background-color: white; - margin-bottom: 16px; - border-radius: 4px; - padding-top: 0; - padding-bottom: 0; - clear: both; - } - - .material .card a.cell { - display: inline-block; - width: 100%; - padding-left: 10px; - border-left: 5px solid transparent; - color: inherit; - } - - .material .card a.cell:hover { - text-decoration: none; - } - - .material .card .action-icon { - float: left; - } - - .material .card.children .cell { - display: flex; - align-items: center; - } - - .material .grid .cell { - display: flex; - align-items: center; - } - - .material .grid .cell div { - flex-grow: 100; - } - - .material .grid .cell span.relative-date.future.age { - color: #E33030; - } - - .material ul:last-child mm-content-row:last-child li, - .material .deceased li, - .material .muted li { - border-bottom: 0; - } - - .material .meta .heading { - padding: 20px; - display: flex; - align-items: center; - } - - .material .meta .heading img, - .material .meta .heading svg { - width: 60px; - height: 60px; - margin-left: -10px; - margin-right: 5px; - } - - .material .field-icon { - margin-right: 10px; - } - - .material .row { - margin: 0; - } - - .material .row.flex { - display: flex; - flex-wrap: wrap; - } - - .material .cell { - padding: 10px 20px; - } - - .material .tasks-count .badge { - background-color: #777777; - } - - .material .tasks-count, - .material .tasks-title { - text-align: right; - line-height: 1; - } - - .material h2 { - margin: 0; - } - - .material .heading-content > *:not(.muted) { - display: inline-block; - margin-right: 30px; - } - - .material .action-header { - border-bottom: 3px solid #E0E0E0; - } - - .material .action-header h3 { - margin: 0; - font-weight: normal; - padding: 6px 0; - } - - .material .col-xs-1, - .material .col-xs-2, - .material .col-xs-3, - .material .col-xs-4, - .material .col-xs-5, - .material .col-xs-6, - .material .col-xs-7, - .material .col-xs-8, - .material .col-xs-9, - .material .col-xs-10, - .material .col-xs-11, - .material .col-xs-12, - .material .col-sm-1, - .material .col-sm-2, - .material .col-sm-3, - .material .col-sm-4, - .material .col-sm-5, - .material .col-sm-6, - .material .col-sm-7, - .material .col-sm-8, - .material .col-sm-9, - .material .col-sm-10, - .material .col-sm-11, - .material .col-sm-12 { - padding: 0; - } - - #snackbar { - position: fixed; - bottom: 0; - cursor: default; - z-index: 10000; - will-change: transform; - transform: translate3d(0, 50px, 0) rotateZ(0deg); - transition: 0.25s linear; - left: 0px; - right: 0px; - text-align: center; - pointer-events: none; - } - - #snackbar .snackbar-content { - pointer-events: initial; - text-align: left; - display: flex; - justify-content: space-between; - padding: 14px 24px; - vertical-align: middle; - min-width: 288px; - max-width: 568px; - border-radius: 2px 2px 0 0; - background-color: #333333; - color: #ffffff; - margin: 0 auto; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - } - - #snackbar .snackbar-content .snackbar-message { - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 2; - overflow: hidden; - max-width: 80%; - word-break: break-word; - white-space: normal; - } - - #snackbar .snackbar-content .snackbar-action { - align-self: center; - cursor: pointer; - color: #007AC0; - text-transform: uppercase; - } - - #snackbar .snackbar-content .snackbar-action:hover { - color: #23527C; - } - - #snackbar.active { - transform: translate3d(0, 0, 0); - } - - @media (max-width: 767px) { - .material .card { - border-radius: 0; - border-left: 0; - border-right: 0; - } - .material .heading img { - float: left; - } - .material .field-icon { - margin-right: 0; - margin-left: 10px; - order: 1; - } - .material .heading-content > * { - display: inherit; - margin-right: 0; - } - #snackbar .snackbar-content { - width: 100%; - min-width: 100%; - max-width: 100%; - left: 0; - border-radius: 0; - } - } - - .content-row { - cursor: pointer; - border-bottom: 1px solid #E0E0E0; - position: relative; - } - - .content-row.primary { - background-color: #E0E0E0; - } - - .content-row.unread > a:before { - content: ''; - background: #007AC0; - position: absolute; - top: 0; - right: 0; - width: 50px; - height: 4px; - border-bottom-left-radius: 10px; - border-top-left-radius: 10px; - } - - .content-row.unread > a .content .date { - color: #007AC0; - font-weight: bold; - } - - .content-row .date { - color: #777777; - white-space: nowrap; - } - - .content-row.overdue .date { - color: #E33030; - font-weight: bold; - } - - .content-row.overdue.visit-count .summary p { - color: #E33030; - } - - .content-row input[type="checkbox"] { - display: none; - float: left; - margin-left: -5px; - margin-right: 5px; - } - - .content-row > a { - display: flex; - align-items: center; - min-height: 70px; - padding: 10px 20px 10px 15px; - color: inherit; - border-left: 5px solid transparent; - } - - .content-row > a:hover, - .content-row > a:focus { - text-decoration: none; - } - - .content-row > a .icon { - align-self: start; - margin: 5px; - margin-left: -10px; - } - - .content-row > a .icon img, - .content-row > a .icon svg { - height: 30px; - width: 30px; - } - - .content-row > a .content { - flex-grow: 1; - display: flex; - flex-direction: column; - align-content: center; - min-width: 0; - /* magic to make the ellipsis work: https://css-tricks.com/flexbox-truncated-text/ */ - } - - .content-row > a .content h4 { - line-height: 1.2rem; - } - - .content-row > a .content h4, - .content-row > a .content p { - margin: 0; - } - - .content-row > a .content .date, - .content-row > a .content .detail { - font-size: 0.875rem; - } - - .content-row > a .content .heading, - .content-row > a .content .summary, - .content-row > a .content .detail { - margin: 2px 0; - } - - .content-row > a .content .heading { - display: flex; - justify-content: space-between; - align-items: baseline; - } - - .content-row > a .content .summary { - display: flex; - justify-content: space-between; - align-items: baseline; - } - - .content-row > a .content .heading h4, - .content-row > a .content .detail .lineage, - .content-row > a .content .summary p { - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - } - - .content-row > a .content .heading .visits { - font-size: 1.5rem; - line-height: 1rem; - font-weight: bold; - } - - .content-row > a .content .heading .visits.warning:before, - .content-row > a .content .heading .visits.danger:before { - content: '\f071'; - color: #E33030; - font-family: FontAwesome; - margin-right: 3px; - font-size: 1rem; - vertical-align: middle; - } - - .content-row > a .content .summary .visits { - font-size: 0.875rem; - font-weight: bold; - } - - .content-row > a .content .visits.warning { - color: #C78330; - } - - .content-row > a .content .visits.danger { - color: #E33030; - } - - .content-row > a .content .visits.success { - color: #218E7F; - } - - .content-row.visit-count > a { - padding-right: 10px; - } - - .content-row.muted.visit-count .summary p { - color: #A0A0A0; - } - - .content-row.muted.visit-count .visits.warning, - .content-row.muted.visit-count .visits.danger, - .content-row.muted.visit-count .visits.success { - color: #A0A0A0; - } - - .content-row.muted.visit-count .visits.warning:before, - .content-row.muted.visit-count .visits.danger:before, - .content-row.muted.visit-count .visits.success:before { - display: none; - } - - .action { - background-color: #E0E0E0; - } - - .contacts .action .content-row > a { - min-height: inherit; - } - - .contacts .action .content-row > a:hover { - border-left-color: transparent; - } - - .contacts .action .content-row > a .fa { - right: 10px; - position: absolute; - } - - .inbox.reports .content-row > a .content .heading h4, - .inbox.reports .content-row > a .content .detail .lineage, - .inbox.reports .content-row > a .content .summary p { - text-overflow: initial; - overflow: initial; - white-space: initial; - } - - .select-mode .content-row input[type="checkbox"] { - display: inline; - } - - .reports .content-row.selected, - .contacts .reports .content-row.selected { - background-color: #FCF6E7; - } - - .reports .content-row > a:hover, - .contacts .reports .content-row > a:hover { - border-left-color: #E9AA22; - } - - .select-mode.reports .content-row.selected { - background: #FFFFFF; - } - - .contacts .content-row.selected { - background-color: #FDF1EF; - } - - .contacts .content-row > a:hover { - border-left-color: #F47B63; - } - - .messages .content-row { - outline: none; - } - - .messages .content-row.selected { - background-color: #EFF5F9; - } - - .messages .content-row > a:hover { - border-left-color: #63A2C6; - } - - .tasks .content-row.selected, - .contacts .tasks .content-row.selected { - background-color: #F0F4FD; - } - - .tasks .content-row > a:hover, - .contacts .tasks .content-row > a:hover { - border-left-color: #7193EE; - } - - /** - * Some of the widths set up in the enketo.css file assume the form is being - * viewed full-screen. These overrides are required when enketo is embedded in - * a modal dialog. - */ - - .enketo { - /** The next styles are meant to easily customize the background and border of radiobuttons and checkboxes, not their size! */ - /** end radiobuttons and checkboxes */ - /** hide stuff **/ - /** hints **/ - /* required styles for Leaflet (unchanged from https://github.com/Leaflet/Leaflet/blob/master/dist/leaflet.css) */ - /* Safari renders non-retina tile on retina better with this, but Chrome is worse */ - /* hack that prevents hw layers "stretching" when loading new tiles */ - /* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ - /* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ - /* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ - /* control positioning */ - /* zoom and fade animations */ - /* cursors */ - /* marker & overlays interactivity */ - /* visual tweaks */ - /* general typography */ - /* general toolbar styles */ - /* zoom control */ - /* layers control */ - /* Default icon URLs */ - /* attribution and scale controls */ - /* popup */ - /* div icon */ - /* Tooltip */ - /* Base styles for the element that has a tooltip */ - /* Directions */ - /*! - * Datepicker for Bootstrap v1.9.0 (https://github.com/uxsolutions/bootstrap-datepicker) - * - * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) - */ - /** fixes by martijn **/ - /*! - * Timepicker - * - * Forked from https://github.com/jdewit/bootstrap-timepicker: - * - * Copyright 2013 Joris de Wit and timepicker contributors - * - * Contributors https://github.com/jdewit/bootstrap-timepicker/graphs/contributors - * Contributors https://github.com/enketo/timepicker-basic/graphs/contributors - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - /** Removed media query adjustment here to fix print issue (MvdR) */ - /* distress flavor of vertical range widget*/ - /* - CSS-Tricks Example - by Chris Coyier - http://css-tricks.com - */ - /*legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: $line-height-computed; - font-size: $font-size-base * 1.5; - line-height: inherit; - color: $legend-color; - border: 0; - border-bottom: 1px solid $legend-border-color; - }*/ - } - - @font-face { - font-family: 'enketo-icons'; - src: url("/fonts/enketo-icons-v2.woff") format("woff"), url("/fonts/enketo-icons-v2.ttf") format("truetype"), url("/fonts/enketo-icons-v2.svg#enketo-icons") format("svg"); - font-weight: normal; - font-style: normal; - } - - .enketo * { - box-sizing: border-box; - } - - .enketo *:before, - .enketo *:after { - box-sizing: border-box; - } - - .enketo html { - font-size: 62.5%; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - } - - .enketo body { - font-family: 'OpenSans', Arial, sans-serif; - font-weight: normal; - font-style: normal; - font-size: 15px; - line-height: 1.42857; - color: #333333; - background-color: white; - } - - .enketo input, - .enketo button, - .enketo select, - .enketo textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; - } - - .enketo a { - color: #337ab7; - } - - .enketo a:hover, - .enketo a:focus { - color: #22527b; - } - - .enketo a:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; - } - - .enketo figure { - margin: 0; - } - - .enketo img { - vertical-align: middle; - } - - .enketo hr { - margin-top: 21px; - margin-bottom: 21px; - border: 0; - border-top: 1px solid #eeeeee; - } - - .enketo strong { - font-weight: bold; - } - - .enketo h1 { - font-size: 41.25px; - } - - .enketo h2 { - font-size: 33.75px; - } - - .enketo h3 { - font-size: 26.25px; - } - - .enketo h4 { - font-size: 18.75px; - } - - .enketo h5, - .enketo .or-analog-scale-initialized .show-value__box { - font-size: 15px; - } - - .enketo h6 { - font-size: 12.75px; - } - - .enketo h2, - .enketo h3, - .enketo h4 { - font-weight: bold; - } - - .enketo input, - .enketo select, - .enketo textarea { - font-weight: normal; - } - - .enketo .clearfix:before, - .enketo .clearfix:after, - .enketo .dl-horizontal dd:before, - .enketo .dl-horizontal dd:after, - .enketo .container:before, - .enketo .container:after, - .enketo .container-fluid:before, - .enketo .container-fluid:after, - .enketo .row:before, - .enketo .row:after, - .enketo .form-horizontal .form-group:before, - .enketo .form-horizontal .form-group:after, - .enketo .btn-toolbar:before, - .enketo .btn-toolbar:after, - .enketo .btn-group-vertical > .btn-group:before, - .enketo .btn-group-vertical > .btn-group:after, - .enketo .nav:before, - .enketo .nav:after, - .enketo .navbar:before, - .enketo .navbar:after, - .enketo .navbar-header:before, - .enketo .navbar-header:after, - .enketo .navbar-collapse:before, - .enketo .navbar-collapse:after, - .enketo .pager:before, - .enketo .pager:after, - .enketo .panel-body:before, - .enketo .panel-body:after, - .enketo .modal-header:before, - .enketo .modal-header:after, - .enketo .modal-footer:before, - .enketo .modal-footer:after { - content: " "; - display: table; - } - - .enketo .clearfix:after, - .enketo .dl-horizontal dd:after, - .enketo .container:after, - .enketo .container-fluid:after, - .enketo .row:after, - .enketo .form-horizontal .form-group:after, - .enketo .btn-toolbar:after, - .enketo .btn-group-vertical > .btn-group:after, - .enketo .nav:after, - .enketo .navbar:after, - .enketo .navbar-header:after, - .enketo .navbar-collapse:after, - .enketo .pager:after, - .enketo .panel-body:after, - .enketo .modal-header:after, - .enketo .modal-footer:after { - clear: both; - } - - .enketo .center-block { - display: block; - margin-left: auto; - margin-right: auto; - } - - .enketo .pull-right { - float: right !important; - } - - .enketo .pull-left { - float: left !important; - } - - .enketo .hide { - display: none !important; - } - - .enketo .show { - display: block !important; - } - - .enketo .invisible { - visibility: hidden; - } - - .enketo .text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; - } - - .enketo .hidden { - display: none !important; - visibility: hidden !important; - } - - .enketo .affix { - position: fixed; - } - - .enketo .icon, - .enketo .enketo-geopoint-marker, - .enketo .glyphicon-chevron-up, - .enketo .glyphicon-chevron-down { - width: 15px; - height: 15px; - display: inline-block; - font-style: normal; - font-weight: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } - - .enketo .icon-refresh { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAaCAYAAABCfffNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjM5QkI5NkQ3MDY4NDExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjM5QkI5NkQ2MDY4NDExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMTgwMTE3NDA3MjA2ODExODA4M0ZFMkJBM0M1RUU2NSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNjgwMTE3NDA3MjA2ODExODA4M0U3NkRBMDNEMDVDMSIvPiA8ZGM6dGl0bGU+IDxyZGY6QWx0PiA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPmdseXBoaWNvbnM8L3JkZjpsaT4gPC9yZGY6QWx0PiA8L2RjOnRpdGxlPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsJbPswAAAFNSURBVHjavFaLEYIwDKUsIBvIBjICI7CBjMAIjsAIsAEj6AaOUDZgg5po8dKY1qLV3L07hTQvH/paZYzJUptSqoS4+vkASUIAawADABcZBm3fNcS/B1ydGG+CS4F9QN+O/C+DJDY78yW6NZ7iM4F+IsGRtXkGTBbUGou9MJoLxK5fZiJUsNCMAq2dPNUUTrtsRpygiiCoAi1rOYneShCYH64/OyRCFW0MQSykbHRKAkROvpLVhgQ7/gQwFnol2RGfcwJluZLf+xx1hjksCUicGHn2B8sdtXxYkSBuIVUyk2d1AhIaY1Y/Ok800bMxS70nmNybe1XkZWs/30WQiSGSoGLrNdeuziNyW4SSJ1hzktJDMkW2iBP04qEFA8OdehBmufXQGiFuK14kAi3bgl5UYc8B1H1wkai9Us+I0Pn06ZVIgnSRKAWp+cpuAgwAPkkCh0r98rYAAAAASUVORK5CYII=) no-repeat center center; - background-size: 100% 100%; - } - - .enketo .icon-crosshairs { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjE2REQ5QzVCMDZDRjExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjE2REQ5QzVBMDZDRjExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMTgwMTE3NDA3MjA2ODExODA4M0ZFMkJBM0M1RUU2NSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNjgwMTE3NDA3MjA2ODExODA4M0U3NkRBMDNEMDVDMSIvPiA8ZGM6dGl0bGU+IDxyZGY6QWx0PiA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPmdseXBoaWNvbnM8L3JkZjpsaT4gPC9yZGY6QWx0PiA8L2RjOnRpdGxlPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pg5Eh0MAAAFTSURBVHjarFZRtcMgDG2rAAergyEBCZNQCUiohEmohEngOZgEJHQKGGzJDs0SRvvgnPvRAveGhCR0IYROQhxjhI1wEYHBPeKa1hV5BHIFm8MOOEmME9AR604BRNo3FUXSAmHjAnMG/hn4XgSDJlZEOEFymSKGhErXThsRWOhL1kgi2f8LMXLFGOGCuUagJJIJbS5DLrLSiSMiME9dN3Lq+p8iihidRF835JNcJYJaUM4BjwPDdW1GznMe4Ori8I1Evnh+ZjJxxUxjVIFNfthGMTG5yECONjZy14ZngHKNwzQSyXn+uDwxDfIk57M44Rtm/PKV8UKJtwdrF+W50lLvaoQKVXhi+pCiIorpJ47GiMkbLbwBtNQZpdaLDwb7Ceb7+17TgqXb4Q72eM9V8e5HEP2OB8RMWzWiB0Jx9H1/geTSkMmniAe4Khlxixy3EsdTgAEAvBuj4rowYWwAAAAASUVORK5CYII=) no-repeat center center; - background-size: 100% 100%; - } - - .enketo .icon-search { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkFGNUM0QUMyMDY3NzExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkFGNUM0QUMxMDY3NzExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMTgwMTE3NDA3MjA2ODExODA4M0ZFMkJBM0M1RUU2NSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNjgwMTE3NDA3MjA2ODExODA4M0U3NkRBMDNEMDVDMSIvPiA8ZGM6dGl0bGU+IDxyZGY6QWx0PiA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPmdseXBoaWNvbnM8L3JkZjpsaT4gPC9yZGY6QWx0PiA8L2RjOnRpdGxlPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Ps6B9iMAAAE1SURBVHjatFZREcIwDG1RMAmVMAk4AAdMChImoTiYBCRMwnAwFJQEOm48mjblRu7e8bEkL3lNU2wIwaTMWtvRz57g4NOV4CluMhpjgjXIjgQODgV4QoPxX/kguVckXmMmtDkCu0hEknDyEzR4IwwxEVtLOIDPnaWkPKMoUZQFK+uSLb/OZAD/MSsRaF5sW5BTKsh0GkcheF3YJBH4klOGAItz6LODOR9MnaE/3pknwdrmmuxUYdF/Z/5sSNDWBNPdUfmfSwelHVVpihwQDMrkLe6m3EXzGmdIPms6XwKaRMAU57yBxNJC9NltKlRVC19a10wybkmSWwFT5g3wcTiKcpUmxcVn8w3FVv0gMTXLrWJ1L+g3WRVEwpJeEp/cJh0InfCwNFb62/Kr0X7q49nxwzU/BBgAoWEIkbFXnzUAAAAASUVORK5CYII=) no-repeat center center; - background-size: 100% 100%; - } - - .enketo .icon-trash { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAcCAYAAABh2p9gAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjBFMkE3QzdBMDY3NTExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjBFMkE3Qzc5MDY3NTExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMTgwMTE3NDA3MjA2ODExODA4M0ZFMkJBM0M1RUU2NSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNjgwMTE3NDA3MjA2ODExODA4M0U3NkRBMDNEMDVDMSIvPiA8ZGM6dGl0bGU+IDxyZGY6QWx0PiA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPmdseXBoaWNvbnM8L3JkZjpsaT4gPC9yZGY6QWx0PiA8L2RjOnRpdGxlPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pm+MpIcAAACQSURBVHjaYvj//z8DNgwEDUD8HwduwKWPEaoZBTAyMgoAqfcMeABQHyM2cRYGAgBdI9Cy//jUM+Ew5AMDmQBkO0gzPwN1wEcmBioDrJFCEYAa+AFPEiEWf4AnG0IxR4LjGKkehtgMzIZicsSwJuzHFIgx0MXLowaOGjhqIM0NxFY4yFIgNkQLWLKrUBABEGAAN/VrGlKCq9UAAAAASUVORK5CYII=) no-repeat center center; - background-size: 100% 100%; - } - - .enketo .icon-globe { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjBGMDY0QjYwMDZDRDExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjBGMDY0QjVGMDZDRDExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMTgwMTE3NDA3MjA2ODExODA4M0ZFMkJBM0M1RUU2NSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNjgwMTE3NDA3MjA2ODExODA4M0U3NkRBMDNEMDVDMSIvPiA8ZGM6dGl0bGU+IDxyZGY6QWx0PiA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPmdseXBoaWNvbnM8L3JkZjpsaT4gPC9yZGY6QWx0PiA8L2RjOnRpdGxlPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiF8RHEAAAF8SURBVHjarFYLbcQwDL1UA1AGC4PLEKxDsEIIgxVCIQxCx+DGIBA6BgehQ5Czb89SGuXX6Sw9RU0TP/fFsau896eSKaUMDQOBR43pK2ElONq/Fh0wQQpkFo58BbzGZv0kHHOUrsFxDN7TFwkgw/YP5wLea5IEiHwryGCwbsCcnAHP9YQlIOlTBGslMh1Hl5BXSNyOAAfaovFUIoAvOT8bEpSyZYYEuuY8kPouoVwBU4l8JFwQBEswNpCIVOz7HuHRbJkqBKOs64LbmbIfwhvhhfBF+CV8I8KSOYzmVLhUW053bLTBM0s4SXoGqeyeClHwIV0z75j8k+rUBonPhHcmoDlOiA9Z2CH/DxmIDXAOXtnQOSdGh+xI2StFMxEGVNQUyRBNP8cqtKSpDy9OIlNKMC0XTbBkcj1bxnldh0+ZG6TXlefY5l3DaegBLlF5l+raxnLt/2Jpkmd3f442HFOpvPmG86CWqas9+dFNXx34bdFSvOCUcan9ttwEGABhK6KZzv1HQAAAAABJRU5ErkJggg==) no-repeat center center; - background-size: 100% 100%; - } - - .enketo .icon-arrow-left { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjMyRTYzRjRFMDZBNDExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjMyRTYzRjREMDZBNDExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMTgwMTE3NDA3MjA2ODExODA4M0ZFMkJBM0M1RUU2NSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNjgwMTE3NDA3MjA2ODExODA4M0U3NkRBMDNEMDVDMSIvPiA8ZGM6dGl0bGU+IDxyZGY6QWx0PiA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPmdseXBoaWNvbnM8L3JkZjpsaT4gPC9yZGY6QWx0PiA8L2RjOnRpdGxlPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgFCos8AAABzSURBVHjaYvj//z8DMRgICohSR4RBAkB8gAGslEIDgcAAiD+ADKPYQJAXYQZRZCDUiwvQDSPLQKgXL2AzjGQDgSAAObzIxB9ghk2g0CBkjNuL5GAmBmoDqnuZJpFCk2RDk4RNk6xHs8KBJsUXOQUsQIABABEJv77soFPFAAAAAElFTkSuQmCC) no-repeat center center; - background-size: 100% 100%; - } - - .enketo .icon-marker, - .enketo .enketo-geopoint-marker { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAYCAYAAADzoH0MAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkM0NDY2QkUyMDZBQzExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkM0NDY2QkUxMDZBQzExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMTgwMTE3NDA3MjA2ODExODA4M0ZFMkJBM0M1RUU2NSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNjgwMTE3NDA3MjA2ODExODA4M0U3NkRBMDNEMDVDMSIvPiA8ZGM6dGl0bGU+IDxyZGY6QWx0PiA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPmdseXBoaWNvbnM8L3JkZjpsaT4gPC9yZGY6QWx0PiA8L2RjOnRpdGxlPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pm/BtdAAAADxSURBVHjalFNRDYUwDBzkCZgEHICESZkEJCABCUh4UpAwCTjY25LyUtorsCb30/XaW3dzOWfHUSIUfAuyQM0FVS/IGyBKbLDBS7JqcpJjA/lE5A0SKFgKBsICzhNx3QQOZ7DcGdRN59Z58pBk1uQQtaF3OpKzQ52hBmPXdYNMUm5U1SRN3m0v8Ey6p9yljr8C8sBB+Q3c/e8Fbt9WHwTpxL2BvCMrx1YXos+UXpDT3W+MLdNRA29snL+M55xeeKIWrDdOXKnmaqSXKtR0peBBhZ6OFBgq4HSowFCBp1sKhApzesXHWnedWL7wyhTB+AkwAEan53kvrTn0AAAAAElFTkSuQmCC) no-repeat center center; - background-size: 100% 100%; - } - - .enketo .icon-plus { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJBNDNBQjg1MDY5RjExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJBNDNBQjg0MDY5RjExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMTgwMTE3NDA3MjA2ODExODA4M0ZFMkJBM0M1RUU2NSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNjgwMTE3NDA3MjA2ODExODA4M0U3NkRBMDNEMDVDMSIvPiA8ZGM6dGl0bGU+IDxyZGY6QWx0PiA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPmdseXBoaWNvbnM8L3JkZjpsaT4gPC9yZGY6QWx0PiA8L2RjOnRpdGxlPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCMOuYAAADqSURBVHjavFaLDYQgDKVMwAiMgJs5yo3iKIzACG7AFQMXjvApKm3SmCh9z9LyCnjvBcUAQONDF68dxjsSQCBqeQT+BMCwtOEurtFdrAaBisF+0kOMIhGhGXR7gyR5iDVdokhyPiBJfpZk5XbZF0jyzFSNiFITU2Q/rNkfUeyu4V9W6knJ7OpGGbt8F+ts/52jwTl5mpFLoqCpBb5JdG2frMhKsg3BIPeKqpTftwaWlh1psrPF6MVIwWPtjFCtzSxaJ8axNQNbe6etOxbW58gP7HIJ4hVV1jHBNvhYRznr5WTVdQu4LpBfAQYA48fhpdMtHxcAAAAASUVORK5CYII=) no-repeat center center; - background-size: 100% 100%; - } - - .enketo .icon-minus { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJBNDNBQjg5MDY5RjExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJBNDNBQjg4MDY5RjExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMTgwMTE3NDA3MjA2ODExODA4M0ZFMkJBM0M1RUU2NSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNjgwMTE3NDA3MjA2ODExODA4M0U3NkRBMDNEMDVDMSIvPiA8ZGM6dGl0bGU+IDxyZGY6QWx0PiA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPmdseXBoaWNvbnM8L3JkZjpsaT4gPC9yZGY6QWx0PiA8L2RjOnRpdGxlPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjBen84AAADMSURBVHjavJaNDYQgDIXFCRiBERjBERnNETqCG/RoUgwSwd6dvCYvJqbtF7E/OGZeLOacC/kRmteU48mUQEA9aeIkCcW1I1KfMMzVAXgN5i8lMd4Eyhaz9h8gRRIbhyCFHH9Aio4W1h7X/gKk/jJ/B0ovQs5/dgFpdfEkhRqUJoJSDaKJICpDYeaxnccnoG3gEEfdftMavTzbEGSFVLAuaF0wFtaHiR2tmR58CVcMsPJGNyxmBMGGKnRNwBYfdJVDLyezrlsOdYH8CDAAn5YfwrN58ucAAAAASUVORK5CYII=) no-repeat center center; - background-size: 100% 100%; - } - - .enketo .icon-chevron-right, - .enketo .icon-chevron-left, - .enketo .icon-chevron-down, - .enketo .glyphicon-chevron-down, - .enketo .icon-chevron-up, - .enketo .glyphicon-chevron-up { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAWCAYAAAAfD8YZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjA1OUQzQkZEMDZBODExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjA1OUQzQkZDMDZBODExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMTgwMTE3NDA3MjA2ODExODA4M0ZFMkJBM0M1RUU2NSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNjgwMTE3NDA3MjA2ODExODA4M0U3NkRBMDNEMDVDMSIvPiA8ZGM6dGl0bGU+IDxyZGY6QWx0PiA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPmdseXBoaWNvbnM8L3JkZjpsaT4gPC9yZGY6QWx0PiA8L2RjOnRpdGxlPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po6G6sQAAAB/SURBVHjaYvj//z8DDANBARALIIvhw8gaFwAxiHGBWAPQNf4nxQBsGok2gAGq6D85BoCAALkGwEwgywBkJ5BsALofSDIAWyAQbQCuUCTKACYGSgDVnE12gJEdVWQnEoqSJyUZgwmqABu4CMQOQEUf8EYV2YUBxcUQuQUgQIABAENaIhLMSm8LAAAAAElFTkSuQmCC) no-repeat center center; - background-size: 100% 100%; - transform: rotate(0); - } - - .enketo .icon-chevron-left { - transform: rotate(180deg); - } - - .enketo .icon-chevron-down, - .enketo .glyphicon-chevron-down { - transform: rotate(90deg); - } - - .enketo .icon-chevron-up, - .enketo .glyphicon-chevron-up { - transform: rotate(270deg); - } - - .enketo .icon-sticky-note, - .enketo .icon-sticky-note-o { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAVCAYAAABc6S4mAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjIzNDQzNjRDMDY5NTExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjIzNDQzNjRCMDY5NTExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMTgwMTE3NDA3MjA2ODExODA4M0ZFMkJBM0M1RUU2NSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNjgwMTE3NDA3MjA2ODExODA4M0U3NkRBMDNEMDVDMSIvPiA8ZGM6dGl0bGU+IDxyZGY6QWx0PiA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPmdseXBoaWNvbnM8L3JkZjpsaT4gPC9yZGY6QWx0PiA8L2RjOnRpdGxlPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PloLmqsAAADnSURBVHjatJXhDYQgDIXhJrkRHOFGcARHYoSOwii6gRvUVovhemqgcE3eD2j5HiG2OkR0PUURSJE07Os/wFG0sklP+LQDD3AyiSk5kuYsUSIGveU8yB4ok5DgaIAPCo7KJEj+vDkYngVuLjBlNcdmRziounqDUrjJoAZebVALrzKwwIsNVIf+wNMnazKQPtEd+gXnXIvBetGhoPJoMpD5ctmhWQ22GEQ1Hj4XNTYDHmTnRMxav9bASwEvvFPhvedpObuHoJrb8xwv0iKFoJMF8HRmeaqzjGut8fYJG344KGfGpybdBBgAGVCuLGXPNnQAAAAASUVORK5CYII=); - background-size: contain; - background-repeat: no-repeat; - background-color: #555555; - } - - .enketo .icon-sticky-note-o { - background-color: transparent; - } - - .enketo .icon-download { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjAxMDNFRDY5MDZBMjExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjAxMDNFRDY4MDZBMjExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMTgwMTE3NDA3MjA2ODExODA4M0ZFMkJBM0M1RUU2NSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNjgwMTE3NDA3MjA2ODExODA4M0U3NkRBMDNEMDVDMSIvPiA8ZGM6dGl0bGU+IDxyZGY6QWx0PiA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPmdseXBoaWNvbnM8L3JkZjpsaT4gPC9yZGY6QWx0PiA8L2RjOnRpdGxlPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv3vYmkAAAFJSURBVHjaxFYLjcMwDF1KYGWwQCiEQhiEQegxOAgbg0EohEEYhByDHIKcPXlSltqu0107S0+VWtuv/iYupbSziHPOw8MXrwPYB5MDJJJAjs/oEFUFBNLxqi+BoCXjVAm0aU1EIB3gvoDkCbTtSr8urxHUAUlugH2R4R/ASMjlSDgU738BPfi+T2pE6SojiYBByz3ZDqRbRtZOUsfUJHIpUMg6huz8QkTdpZIwTh56BjKfE5XRDMwfs8UX0jiJ6vkxn5MgpMZEJPlraOLzrhl370vu44AcDbNW/pvo0QPNzH6LgIRQdBIhKq50IpBTRRS98i00MwsXU3AxkHy9bAEpLGnIsi66KbttZPTLcfGm9qb1FIUjorW0d83A9gxRVzuw3rLnQL5nfkZfQTVLlWbkumipbnFMbH/wrX2Uf+5ystZ1y211gfwTYADx5i7OHxKEDQAAAABJRU5ErkJggg==) no-repeat center center; - background-size: 100% 100%; - } - - .enketo .icon-undo { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAASCAYAAABB7B6eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjQ5MUFGOTFFMDZBNzExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQ5MUFGOTFEMDZBNzExRTI5OUZEQTZGODg4RDc1ODdCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMTgwMTE3NDA3MjA2ODExODA4M0ZFMkJBM0M1RUU2NSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNjgwMTE3NDA3MjA2ODExODA4M0U3NkRBMDNEMDVDMSIvPiA8ZGM6dGl0bGU+IDxyZGY6QWx0PiA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPmdseXBoaWNvbnM8L3JkZjpsaT4gPC9yZGY6QWx0PiA8L2RjOnRpdGxlPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjWjp3cAAADwSURBVHjatFVREYMwDG0wsDoYDoYEJEzCJEwCc4AEJCBhDoaESWAKupdbOHqsa0kH7+4dfKRJ30ubknPOrAURVYgfjALFysQWbPH7MFqwghiBCuRdu0+4Mxqmkl/AcUq+WQHAgp2fOLcALZvMjcSnB48/XL2JqgFr76oeANfQriMcRWkdtUgs6ZXJl2Q1ZcBuU4LPP5P7iiq/QGG2xYGVSB/nHmxk0VKJ/TqmGU2Osck6pohHCJXSu0k9rzmDJy/0hVgbu2i99qJJ0daLr3cZFaKI1zWUGtdiWTfJZ4tWTuA6qSA0m1SDDkpo7wfnLcAA4K8eYpcm41cAAAAASUVORK5CYII=) no-repeat center center; - background-size: 100% 100%; - } - - .enketo html { - height: 100%; - } - - .enketo body { - /*IE10*/ - display: flex; - -moz-flex-direction: column; - flex-direction: column; - flex-wrap: nowrap; - position: relative; - min-height: 100%; - } - - .enketo .paper { - border-radius: 7px; - border: 7px solid #ddd; - background-color: #fff; - position: relative; - min-height: 100%; - } - - .enketo .or { - flex: 1; - margin-bottom: 20px; - } - - .enketo .main { - flex: 1; - /*IE10*/ - display: flex; - -moz-flex-direction: column; - flex-direction: column; - flex-wrap: nowrap; - margin: 0 auto; - padding: 100px 0 70px 0; - position: relative; - width: 100%; - max-width: 720px; - } - - .enketo .paper { - flex: 1; - /*IE10*/ - display: flex; - -moz-flex-direction: column; - flex-direction: column; - flex-wrap: nowrap; - padding: 45px; - position: relative; - min-height: 100%; - } - - .enketo .form-header { - box-sizing: border-box; - display: flex; - flex-direction: row; - align-items: center; - justify-content: flex-end; - position: absolute; - left: 0; - top: -76px; - width: 100%; - min-height: 69px; - padding: 16px 0; - } - - .enketo .form-language-selector { - padding: 0; - margin-left: 10px; - font-size: 0.8em; - } - - .enketo #form-languages { - display: inline; - width: auto; - height: 36px; - background: none; - min-width: 11em; - border: 1px solid #ccc; - margin: 0 0 0 16px; - font-size: 0.9em; - } - - .enketo [dir="rtl"] #form-languages { - margin: 0 16px 0 0; - } - - .enketo .form-footer { - margin: 45px -45px -45px -45px; - } - - .enketo .enketo-power { - position: relative; - left: 50%; - margin: 30px 0 0 -100px; - width: 200px; - font-size: 16px; - line-height: 23px; - text-align: center; - } - - .enketo .enketo-power a { - font-style: italic; - } - - .enketo .enketo-power img { - float: none; - vertical-align: top; - width: 48px; - } - - .enketo button { - background: none; - border: none; - } - - .enketo .btn { - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 0; - font-weight: normal; - text-align: center; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - white-space: nowrap; - padding: 6px 12px; - font-size: 15px; - line-height: 1.25; - border-radius: 4px; - -webkit-user-select: none; - user-select: none; - } - - .enketo .btn:focus, - .enketo .btn:link, - .enketo .btn:active, - .enketo .btn:visited { - text-decoration: none; - } - - .enketo .btn-default { - color: #333333; - background-color: white; - border-color: #cccccc; - } - - .enketo .btn-default:hover, - .enketo .btn-default:focus, - .enketo .btn-default:active, - .enketo .btn-default.active { - color: #333333; - background-color: #ebebeb; - border-color: #adadad; - } - - .enketo .open .btn-default.dropdown-toggle { - color: #333333; - background-color: #ebebeb; - border-color: #adadad; - } - - .enketo .btn-default:active, - .enketo .btn-default.active { - background-image: none; - } - - .enketo .open .btn-default.dropdown-toggle { - background-image: none; - } - - .enketo .btn-default.disabled, - .enketo .btn-default.disabled:hover, - .enketo .btn-default.disabled:focus, - .enketo .btn-default.disabled:active, - .enketo .btn-default.disabled.active, - .enketo .btn-default[disabled], - .enketo .btn-default[disabled]:hover, - .enketo .btn-default[disabled]:focus, - .enketo .btn-default[disabled]:active, - .enketo .btn-default[disabled].active, - .enketo fieldset[disabled] .btn-default, - .enketo fieldset[disabled] .btn-default:hover, - .enketo fieldset[disabled] .btn-default:focus, - .enketo fieldset[disabled] .btn-default:active, - .enketo fieldset[disabled] .btn-default.active { - background-color: white; - border-color: #cccccc; - } - - .enketo .btn-default .badge { - color: white; - background-color: #333333; - } - - .enketo .btn-primary { - color: white; - background-color: #337ab7; - border-color: #2d6da3; - } - - .enketo .btn-primary:hover, - .enketo .btn-primary:focus, - .enketo .btn-primary:active, - .enketo .btn-primary.active { - color: white; - background-color: #2a6597; - border-color: #204d73; - } - - .enketo .open .btn-primary.dropdown-toggle { - color: white; - background-color: #2a6597; - border-color: #204d73; - } - - .enketo .btn-primary:active, - .enketo .btn-primary.active { - background-image: none; - } - - .enketo .open .btn-primary.dropdown-toggle { - background-image: none; - } - - .enketo .btn-primary.disabled, - .enketo .btn-primary.disabled:hover, - .enketo .btn-primary.disabled:focus, - .enketo .btn-primary.disabled:active, - .enketo .btn-primary.disabled.active, - .enketo .btn-primary[disabled], - .enketo .btn-primary[disabled]:hover, - .enketo .btn-primary[disabled]:focus, - .enketo .btn-primary[disabled]:active, - .enketo .btn-primary[disabled].active, - .enketo fieldset[disabled] .btn-primary, - .enketo fieldset[disabled] .btn-primary:hover, - .enketo fieldset[disabled] .btn-primary:focus, - .enketo fieldset[disabled] .btn-primary:active, - .enketo fieldset[disabled] .btn-primary.active { - background-color: #337ab7; - border-color: #2d6da3; - } - - .enketo .btn-primary .badge { - color: #337ab7; - background-color: white; - } - - .enketo .btn-reset[disabled] { - display: none; - } - - .enketo .btn-icon-only { - margin: 0 10px 0 10px; - padding: 7px; - color: #333333; - background: none; - border: none; - width: 34px; - height: 34px; - box-shadow: none; - opacity: 0.7; - } - - .enketo .btn-icon-only:hover, - .enketo .btn-icon-only:focus, - .enketo .btn-icon-only:active, - .enketo .btn-icon-only.active, - .enketo .btn-icon-only:disabled, - .enketo .btn-icon-only.disabled { - background: none; - box-shadow: none; - } - - .enketo .btn-icon-only:hover, - .enketo .btn-icon-only:disabled, - .enketo .btn-icon-only.disabled { - color: #333333; - opacity: 0.5; - } - - .enketo .or [lang]:not(.active), - .enketo .or-option-translations, - .enketo .or-appearance-page-break, - .enketo .or-constraint-msg, - .enketo .or-required-msg, - .enketo .or-relevant-msg, - .enketo .option-wrapper .itemset-template, - .enketo .itemset-labels { - display: none; - } - - .enketo .or > h3, - .enketo .or-group > h3 { - padding: 5px 0 15px 0; - word-wrap: break-word; - color: #337ab7; - text-align: center; - } - - .enketo .or > h4, - .enketo .or-group > h4 { - text-align: inherit; - margin-top: 9px; - margin-bottom: 9px; - color: #337ab7; - } - - .enketo .or > h4 strong, - .enketo .or-group > h4 strong { - font-size: inherit; - } - - .enketo .or.hide { - display: none; - } - - .enketo .or .question-label h1, - .enketo .or .question-label h2, - .enketo .or .question-label h3, - .enketo .or .question-label h4, - .enketo .or .question-label h5, - .enketo .or .question-label .or-analog-scale-initialized .show-value__box, - .enketo .or-analog-scale-initialized .or .question-label .show-value__box, - .enketo .or .question-label h6, - .enketo .or .or-hint h1, - .enketo .or .or-hint h2, - .enketo .or .or-hint h3, - .enketo .or .or-hint h4, - .enketo .or .or-hint h5, - .enketo .or .or-hint .or-analog-scale-initialized .show-value__box, - .enketo .or-analog-scale-initialized .or .or-hint .show-value__box, - .enketo .or .or-hint h6 { - margin-top: 10px; - margin-bottom: 10px; - } - - .enketo .or .question-label h1:first-child, - .enketo .or .question-label h2:first-child, - .enketo .or .question-label h3:first-child, - .enketo .or .question-label h4:first-child, - .enketo .or .question-label h5:first-child, - .enketo .or .question-label .or-analog-scale-initialized .show-value__box:first-child, - .enketo .or-analog-scale-initialized .or .question-label .show-value__box:first-child, - .enketo .or .question-label h6:first-child, - .enketo .or .or-hint h1:first-child, - .enketo .or .or-hint h2:first-child, - .enketo .or .or-hint h3:first-child, - .enketo .or .or-hint h4:first-child, - .enketo .or .or-hint h5:first-child, - .enketo .or .or-hint .or-analog-scale-initialized .show-value__box:first-child, - .enketo .or-analog-scale-initialized .or .or-hint .show-value__box:first-child, - .enketo .or .or-hint h6:first-child { - margin-top: 0; - } - - .enketo .or .question-label h1:last-child, - .enketo .or .question-label h2:last-child, - .enketo .or .question-label h3:last-child, - .enketo .or .question-label h4:last-child, - .enketo .or .question-label h5:last-child, - .enketo .or .question-label .or-analog-scale-initialized .show-value__box:last-child, - .enketo .or-analog-scale-initialized .or .question-label .show-value__box:last-child, - .enketo .or .question-label h6:last-child, - .enketo .or .or-hint h1:last-child, - .enketo .or .or-hint h2:last-child, - .enketo .or .or-hint h3:last-child, - .enketo .or .or-hint h4:last-child, - .enketo .or .or-hint h5:last-child, - .enketo .or .or-hint .or-analog-scale-initialized .show-value__box:last-child, - .enketo .or-analog-scale-initialized .or .or-hint .show-value__box:last-child, - .enketo .or .or-hint h6:last-child { - margin-bottom: 0; - } - - .enketo .or .question-label { - word-break: break-word; - display: inline-block; - } - - .enketo .or-hint.active { - font-family: 'OpenSans', Arial, sans-serif; - font-style: normal; - color: #888888; - display: block; - line-height: 16px; - font-weight: normal; - font-size: 11px; - font-style: italic; - padding-top: 5px; - } - - .enketo .or-hint.active ~ br { - display: none; - } - - .enketo .or-form-guidance.active { - margin: 5px 0; - color: #337ab7; - } - - .enketo .or-form-guidance.active summary { - color: #888888; - } - - .enketo .or .form-logo { - display: block; - text-align: center; - width: 100%; - } - - .enketo .or .form-logo img { - float: none; - display: inline; - max-height: 200px; - max-width: 120px; - } - - .enketo .or-repeat { - background-color: white; - margin: 0 0 3px 0; - padding: 20px 10px 10px 10px; - position: relative; - } - - .enketo .or-repeat.empty { - padding: 0; - } - - .enketo .or-repeat.empty .repeat-number { - display: none; - } - - .enketo .or-repeat .repeat-number { - display: block; - position: absolute; - top: 7px; - right: 10px; - color: #337ab7; - } - - .enketo .or-repeat .repeat-number + .or-group { - border-top: none; - } - - .enketo .or-repeat .or-repeat { - background-color: white; - } - - .enketo .or-repeat .or-repeat .or-repeat { - background-color: white; - } - - .enketo .or-repeat .or-repeat .or-repeat .or-repeat { - background-color: white; - } - - .enketo .or-group { - border-top: 3px solid #bbbbbb; - margin: 1.5em 0 0.4em 0; - } - - .enketo .or-group .or-group { - margin: 1.5em 0 0.5em 0; - } - - .enketo .or-group .or-group > h4 .active { - font-size: 80%; - } - - .enketo .or-group .or-group > h4 .active::before { - content: "\00BB "; - } - - .enketo .or-group .or-group .or-group > h4 .active::before { - content: "\00BB \00BB "; - } - - .enketo .or-group .or-group .or-group .or-group > h4 .active::before { - content: "\00BB \00BB \00BB "; - } - - .enketo .or-group .or-group .or-group .or-group .or-group > h4 .active::before { - content: "\00BB \00BB \00BB \00BB"; - } - - .enketo .or-group .or-group .or-group .or-group .or-group .or-group > h4 .active::before { - content: "\00BB \00BB \00BB \00BB \00BB"; - } - - .enketo .or-group .or-group .or-group .or-group .or-group .or-group .or-group > h4 .active::before { - content: "\00BB \00BB \00BB \00BB \00BB \00BB"; - } - - .enketo .or-group:not(.or-appearance-no-collapse) > h4 { - position: relative; - pointer-events: none; - } - - .enketo .or-group:not(.or-appearance-no-collapse) > h4::before { - width: 0; - height: 0; - border-left: 12px solid transparent; - border-right: 12px solid transparent; - border-top: 12px solid #337ab7; - border-bottom: 0; - display: block; - position: absolute; - content: ''; - top: 5px; - left: -30px; - right: -30px; - pointer-events: all; - } - - .enketo .or-group:not(.or-appearance-no-collapse).or-appearance-compact > h4::before { - width: 0; - height: 0; - border-top: 12px solid transparent; - border-bottom: 12px solid transparent; - border-left: 12px solid #337ab7; - border-right: 0; - left: -22px; - right: -22px; - top: 0; - } - - .enketo .or-group:not(.or-appearance-no-collapse).or-appearance-compact > h4 ~ * { - display: none !important; - } - - .enketo [dir="rtl"] .or-group:not(.or-appearance-no-collapse).or-appearance-compact > h4::before { - border-left: 0; - border-right: 12px solid #337ab7; - } - - .enketo #stats + .or-group, - .enketo #or-preload-items + .or-group, - .enketo #form-languages + .or-group { - border-top: none; - } - - .enketo .question:not(.readonly) { - font-weight: bold; - } - - .enketo .question { - display: block; - margin: 0 0 9px 0; - padding-top: 15px; - border: none; - position: relative; - } - - .enketo .question > fieldset { - padding: 0; - margin: 0; - border: none; - } - - .enketo .question-label strong { - font-size: 16px; - } - - .enketo .question > img, - .enketo .question > video, - .enketo .question > audio { - margin: 10px auto 10px; - } - - .enketo .question.readonly input[readonly].empty, - .enketo .question.readonly select[readonly].empty, - .enketo .question.readonly textarea[readonly].empty { - display: none; - } - - .enketo .question.readonly strong { - font-size: inherit; - } - - .enketo label, - .enketo legend { - font-size: 15px; - } - - .enketo .or img, - .enketo .or audio, - .enketo .or video { - display: block; - max-height: 300px; - max-width: 70%; - } - - .enketo .or video { - max-width: 100%; - } - - .enketo legend { - display: block; - position: relative; - border: none; - width: 100%; - padding: 0; - margin-bottom: 12px; - } - - .enketo .option-wrapper { - /*IE10*/ - display: flex; - -moz-flex-direction: column; - flex-direction: column; - } - - .enketo .option-wrapper > label { - font-family: 'OpenSans', Arial, sans-serif; - font-weight: normal; - font-style: normal; - display: block; - margin: 0; - cursor: pointer; - padding: 4px; - margin: 0 8px 1px 10px; - } - - .enketo .option-wrapper > label:hover:not(.filler) { - background-color: #eff5fa; - } - - .enketo .option-wrapper > label:before, - .enketo .option-wrapper > label:after { - content: " "; - display: table; - } - - .enketo .option-wrapper > label:after { - clear: both; - } - - .enketo .option-wrapper .option-label { - margin-left: 30px; - display: block; - word-break: break-word; - } - - .enketo .option-wrapper img, - .enketo .option-wrapper video, - .enketo .option-wrapper audio { - float: right; - margin: 10px 0 10px 10px; - } - - .enketo .or[dir="rtl"] .option-wrapper .option-label { - margin-right: 30px; - } - - .enketo .or[dir="rtl"] .option-wrapper img, - .enketo .or[dir="rtl"] .option-wrapper video, - .enketo .or[dir="rtl"] .option-wrapper audio { - float: left; - margin: 10px 10px 10px 0; - } - - .enketo .touch .question.simple-select .option-wrapper > label { - background-color: transparent; - border: 1px solid #ccc; - border-radius: 4px; - margin: 0 1px 6.4px 1px; - padding: 10px; - } - - .enketo .touch .question.simple-select .option-wrapper > label input[type="radio"], - .enketo .touch .question.simple-select .option-wrapper > label input[type="checkbox"] { - margin-left: 5px; - } - - .enketo .touch .question.simple-select .option-wrapper > label:focus, - .enketo .touch .question.simple-select .option-wrapper > label:hover, - .enketo .touch .question.simple-select .option-wrapper > label:active { - background-color: #eff5fa; - } - - .enketo .touch input[type=text], - .enketo .touch .print-input-text, - .enketo .touch input[type=tel], - .enketo .touch input[type=password], - .enketo .touch input[type=url], - .enketo .touch input[type=email], - .enketo .touch input[type=file], - .enketo .touch input[type=date], - .enketo .touch input[type=month], - .enketo .touch input[type=time], - .enketo .touch input[type=datetime-local], - .enketo .touch input[type=number], - .enketo .touch textarea, - .enketo .touch select { - margin: 10px 0 10px 0; - color: #104b66; - } - - .enketo .touch input[type=text], - .enketo .touch .print-input-text, - .enketo .touch input[type=tel], - .enketo .touch input[type=password], - .enketo .touch input[type=url], - .enketo .touch input[type=email], - .enketo .touch input[type=file], - .enketo .touch input[type=date], - .enketo .touch input[type=month], - .enketo .touch input[type=time], - .enketo .touch input[type=datetime-local], - .enketo .touch input[type=number], - .enketo .touch textarea { - border: 1px solid #ddd8ce; - } - - .enketo .touch select { - width: 100%; - } - - .enketo input[type=text], - .enketo .print-input-text, - .enketo input[type=tel], - .enketo input[type=password], - .enketo input[type=url], - .enketo input[type=email], - .enketo input[type=file], - .enketo input[type=date], - .enketo input[type=month], - .enketo input[type=time], - .enketo input[type=datetime-local], - .enketo input[type=number], - .enketo input[type=range], - .enketo textarea, - .enketo select, - .enketo .widget, - .enketo input[type="tel"] { - display: block; - margin: 8px 0 8px 0; - } - - .enketo input:not([type="radio"]):not([type="checkbox"]), - .enketo textarea, - .enketo .print-input-text { - height: 34px; - } - - .enketo select { - width: 80%; - } - - .enketo .question input[type=text], - .enketo .question input[type=tel], - .enketo .question input[type=password], - .enketo .question input[type=url], - .enketo .question input[type=email], - .enketo .question input[type=file], - .enketo .question input[type="tel"] { - width: 80%; - } - - .enketo .question input[type=date], - .enketo .question input[type=month], - .enketo .question input[type=datetime-local], - .enketo .question input[type=number], - .enketo .question input[type=time], - .enketo .question input[type=text].mask-date { - width: 240px; - } - - .enketo .question input[type="radio"], - .enketo .question input[type=checkbox] { - float: left; - display: block; - margin-top: 2px; - } - - .enketo .question .print-input-text { - width: 80%; - } - - .enketo .or[dir="rtl"] .question input[type=radio], - .enketo .or[dir="rtl"] .question input[type=checkbox] { - float: right; - } - - .enketo .question textarea { - width: 80%; - resize: vertical; - min-height: 9em; - } - - .enketo .or-repeat .repeat-buttons { - margin-top: 30px; - display: flex; - flex-direction: row; - flex-wrap: nowrap; - justify-content: flex-end; - } - - .enketo .or-repeat .remove { - margin-bottom: 0; - margin-right: 0; - } - - .enketo .or-repeat-info:not(:empty) { - padding-top: 10px; - } - - .enketo .add-repeat-btn { - display: block; - margin: 0 auto 10px auto; - min-width: 150px; - } - - .enketo .or[dir="rtl"] .remove { - float: left; - } - - .enketo .alert { - margin-bottom: 4px; - } - - .enketo .required { - position: absolute; - top: 10px; - left: -10px; - color: #337ab7; - } - - .enketo legend .required { - top: 0; - } - - .enketo .or[dir="rtl"] .required { - left: auto; - right: -10px; - } - - .enketo .disabled { - opacity: 0.6; - } - - .enketo .invalid-constraint, - .enketo .invalid-required, - .enketo .invalid-relevant { - transition: all 0.6s ease-out; - background-color: #f2dede; - border-color: #ebccd1; - border-radius: 3px; - margin-right: -10px; - margin-left: -10px; - padding-left: 10px; - padding-right: 10px; - padding-bottom: 10px; - } - - .enketo .invalid-constraint .or-constraint-msg.active, - .enketo .invalid-required .or-required-msg.active, - .enketo .question.invalid-relevant .or-relevant-msg.active { - display: block; - } - - .enketo .or-required-msg.active, - .enketo .or-constraint-msg.active, - .enketo .or-relevant-msg.active { - font-weight: bold; - padding-top: 5px; - font-size: 0.85em; - color: #a94442; - } - - .enketo .or-branch.disabled, - .enketo .or-branch.or-branch.pre-init { - display: none; - } - - .enketo .pages.or .or-group, - .enketo .pages.or .or-group-data, - .enketo .pages.or .or-repeat { - display: none; - } - - .enketo .pages.or .or-group.contains-current, - .enketo .pages.or .or-group-data.contains-current, - .enketo .pages.or .or-repeat.contains-current { - display: block; - } - - .enketo .pages.or .or-repeat[role="page"].current + .or-repeat-info { - display: block; - } - - .enketo .pages.or [role="page"] { - display: none; - } - - .enketo .pages.or [role="page"].current { - display: block; - } - - .enketo .pages.or [role="page"].current .or-group:not(.disabled), - .enketo .pages.or [role="page"].current .or-group-data:not(.disabled), - .enketo .pages.or [role="page"].current .or-repeat:not(.disabled) { - display: block; - } - - .enketo .pages.or [role="page"].hidden { - opacity: 0; - } - - .enketo .pages.or [role="page"].fade-out { - opacity: 0; - transition: all 0.6s ease-out; - } - - .enketo .pages.or #form-title { - margin: 0; - } - - .enketo .pages ~ .form-footer { - margin-top: 0; - } - - .enketo .pages ~ .form-footer.end .btn { - display: inline-block; - } - - .enketo .pages ~ .form-footer.end .next-page { - display: none; - } - - .enketo .pages ~ .form-footer.end .logout, - .enketo .pages ~ .form-footer.end .draft { - display: block; - } - - .enketo .pages ~ .form-footer .logout { - margin-bottom: 50px; - } - - .enketo .pages ~ .form-footer .btn { - display: none; - } - - .enketo .pages ~ .form-footer .previous-page, - .enketo .pages ~ .form-footer .next-page { - display: inline-block; - } - - .enketo .pages ~ .form-footer .previous-page.disabled, - .enketo .pages ~ .form-footer .next-page.disabled { - display: none; - } - - .enketo .pages ~ .form-footer .first-page, - .enketo .pages ~ .form-footer .last-page { - display: inline-block; - } - - .enketo .pages ~ .form-footer .logout, - .enketo .pages ~ .form-footer .draft { - display: none; - } - - .enketo .pages-toc__list { - border: 1px solid black; - border-radius: 2px; - border: 2px solid #555555; - position: absolute; - right: 0; - left: 0; - top: 69px; - width: 320px; - height: 0; - max-height: calc(100vh - 100px); - max-width: 100vw; - margin: 0 auto; - list-style: none; - padding: 0; - background: white; - z-index: 1000; - overflow: scroll; - transition: height 1s ease-out; - opacity: 0; - } - - .enketo .pages-toc__list li { - border-top: 1px solid #555555; - padding: 0; - margin: 0; - } - - .enketo .pages-toc__list li a:hover { - background: #eff5fa; - } - - .enketo .pages-toc__list li > details { - margin-left: 18px; - } - - .enketo .pages-toc__list li > details summary { - padding: 8px 20px 8px 0px; - } - - .enketo .pages-toc__list li > details ul { - list-style: none; - padding-left: 0; - } - - .enketo .pages-toc__list li > details a { - padding-left: 18px; - } - - .enketo .pages-toc__list a, - .enketo .pages-toc__list a:link, - .enketo .pages-toc__list a:visited { - text-decoration: none; - color: inherit; - display: block; - width: 100%; - height: 100%; - padding: 8px 20px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - - .enketo .pages-toc__overlay { - display: none; - position: fixed; - top: 0; - left: 0; - background: #555555; - width: 100%; - height: 100%; - z-index: 999; - opacity: 0.5; - } - - .enketo .pages-toc #toc-toggle { - display: none; - } - - .enketo .pages-toc #toc-toggle:checked + .pages-toc__list { - height: auto; - opacity: 1; - } - - .enketo .pages-toc #toc-toggle:checked ~ .pages-toc__overlay { - display: block; - } - - .enketo .pages-toc label[for="toc-toggle"] { - display: block; - width: 27px; - height: 27px; - margin: 5px 0 5px 20px; - background: repeating-linear-gradient(#555555 2px, #555555 5px, transparent 5px, transparent 12px); - } - - .enketo .pages-toc label[for="toc-toggle"]:hover { - opacity: 0.7; - } - - .enketo .enketo-geopoint-marker { - margin-top: -24px; - width: 24px; - height: 24px; - font-size: 24px; - font-style: normal; - font-weight: 400; - line-height: 1; - text-align: center; - color: #508ecd; - } - - .enketo .enketo-area-popup .leaflet-popup-content-wrapper { - border-radius: 2px; - color: black; - background: none; - box-shadow: none; - } - - .enketo .enketo-area-popup .leaflet-popup-content { - margin: 3px 20px; - } - - .enketo .enketo-area-popup .leaflet-popup-tip-container { - display: none; - } - - .enketo .leaflet-container .enketo-area-popup:hover a.leaflet-popup-close-button { - display: block; - } - - .enketo .leaflet-container .enketo-area-popup a.leaflet-popup-close-button { - z-index: 1; - display: none; - font-weight: normal; - color: black; - } - - .enketo .enketo-geopoint-circle-marker, - .enketo .geopicker .point { - width: 16px; - height: 16px; - margin-top: -8px; - border-radius: 8px; - border: 1px solid #4e4e4e; - background: #818181; - } - - .enketo .enketo-geopoint-circle-marker-active, - .enketo .geopicker .point.active { - width: 16px; - height: 16px; - margin-top: -8px; - border-radius: 8px; - border: 1px solid #508ecd; - background: #9fc1e4; - } - - .enketo .geopicker { - margin-top: 25px; - } - - .enketo .geopicker img { - margin: 0; - max-height: none; - max-width: none; - } - - .enketo .geopicker .geo-inputs { - position: relative; - min-width: 160px; - width: 27%; - margin: 0 4% 0 0; - } - - @media screen and (max-width: 720px) { - .enketo .geopicker .geo-inputs { - width: 100%; - } - } - - .enketo .geopicker .geo-inputs .paste-progress, - .enketo .geopicker .geo-inputs .disabled-msg { - position: absolute; - display: block; - top: 50%; - width: calc(100% - 20px); - text-align: center; - margin: 0px 10px; - } - - .enketo .geopicker .geo-inputs .disabled-msg { - display: none; - color: #a94442; - } - - .enketo .geopicker .map-canvas-wrapper { - position: relative; - } - - .enketo .geopicker .map-canvas-wrapper, - .enketo .geopicker .search-bar { - width: 65%; - float: right; - padding-left: 4%; - border-left: solid 1px #bbbbbb; - } - - @media screen and (max-width: 720px) { - .enketo .geopicker .map-canvas-wrapper, - .enketo .geopicker .search-bar { - width: 100%; - float: none; - padding-left: 0; - border-left: none; - } - } - - .enketo .geopicker .search-bar { - margin-top: 0; - display: flex; - justify-content: space-between; - } - - .enketo .geopicker .search-bar .input-group { - display: flex; - width: 80%; - order: 2; - } - - .enketo .geopicker .search-bar [name="search"] { - margin: 0 !important; - width: calc(100% - 40px); - border-top-right-radius: 0; - border-bottom-right-radius: 0; - } - - .enketo .geopicker .search-bar .hide-map-btn { - display: none; - } - - .enketo .geopicker .search-bar .search-btn { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - border-left: 0; - } - - .enketo .geopicker .btn:not(.close-chain-btn):not(.toggle-input-type-btn) { - height: 34px; - } - - .enketo .geopicker .btn[name="geodetect"] { - font-size: 16px; - margin: 0 0 0 4%; - order: 3; - } - - .enketo .geopicker .close-chain-btn { - font-family: 'OpenSans', Arial, sans-serif; - font-weight: normal; - font-style: normal; - display: inline-block; - padding: 0 5px; - margin-left: 15px; - } - - .enketo .geopicker .toggle-input-visibility-btn { - position: absolute; - top: calc(50% - 15px); - left: -16px; - background: none; - border-left: 3px solid #aaaaaa; - border-bottom: 2px solid #aaaaaa; - border-top: 2px solid #aaaaaa; - border-right: none; - height: 30px; - width: 7px; - padding: 0; - z-index: 10; - } - - .enketo .geopicker .toggle-input-visibility-btn.open { - left: -20px; - border-left: none; - border-right: 3px solid #aaaaaa; - } - - .enketo .geopicker .points { - width: 100%; - padding-bottom: 15px; - } - - .enketo .geopicker .point { - margin-right: 10px; - display: inline-block; - opacity: 0.9; - } - - .enketo .geopicker .point.has-error:not(.active) { - border: 1px solid #a94442; - background: #F2DEDE; - opacity: 1; - } - - .enketo .geopicker .addpoint { - border: none; - background: none; - height: 16px; - width: 16px; - font-weight: bold; - font-size: 16px; - padding: 0; - vertical-align: top; - line-height: 16px; - margin: 0; - display: inline-block; - margin-top: -1px; - } - - .enketo .geopicker .btn-remove[disabled], - .enketo .geopicker .close-chain-btn[disabled], - .enketo .geopicker button[name=geodetect][disabled], - .enketo .geopicker input[name=search][disabled], - .enketo .geopicker .search-btn[disabled] { - display: none; - } - - .enketo .geopicker .hide-search.no-map { - border-left: none; - } - - .enketo .geopicker .hide-search .input-group { - display: none; - } - - .enketo .geopicker .hide-search .btn[name="geodetect"] { - margin: 15px auto 15px auto; - width: 50%; - } - - .enketo .geopicker label.geo { - font-family: 'OpenSans', Arial, sans-serif; - font-weight: normal; - font-style: normal; - display: block; - border: none; - padding: 0; - margin: 15px 0 0 0; - } - - .enketo .geopicker label.geo.lat, - .enketo .geopicker label.geo.kml { - padding-top: 5px; - } - - .enketo .geopicker label.geo.long { - margin-bottom: 20px; - } - - .enketo .geopicker label.geo.alt { - border-top: solid 1px #bbbbbb; - padding: 12px 0 0 0; - margin: 0 0 0 0; - } - - @media screen and (max-width: 720px) { - .enketo .geopicker label.geo.alt { - border-top: none; - } - } - - .enketo .geopicker label.geo.acc { - padding: 0; - margin: 5px 0 0 0; - } - - .enketo .geopicker label.geo.alt, - .enketo .geopicker label.geo.acc { - min-height: 70px; - line-height: 50px; - font-size: 11.25px; - } - - .enketo .geopicker input[name="lat"], - .enketo .geopicker input[name="long"], - .enketo .geopicker textarea[name="kml"] { - float: none; - box-sizing: border-box; - width: 100%; - /*&:invalid { - //copied from bootstrap - color: $state-danger-text; - border-color: $state-danger-text; - @include box-shadow(inset 0 1px 1px rgba(0, 0, 0, 0.075)); - // Redeclare so transitions work - &:focus { - border-color: darken($state-danger-text, 10%); - $shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px lighten($state-danger-text, 20%); - @include box-shadow($shadow); - } - }*/ - } - - .enketo .geopicker input[name="alt"], - .enketo .geopicker input[name="acc"] { - box-sizing: border-box; - display: block; - float: right; - width: 40%; - } - - @media screen and (max-width: 720px) { - .enketo .geopicker input[name="alt"], - .enketo .geopicker input[name="acc"] { - width: 50%; - } - } - - .enketo .geopicker textarea[name="kml"] { - min-height: 260px; - overflow: auto; - } - - .enketo .geopicker textarea[name="kml"]:disabled + .disabled-msg { - display: block; - } - - .enketo .geopicker .geo.kml { - display: none; - margin-bottom: 10px; - } - - .enketo .geopicker .toggle-input-type-btn { - border: none; - background: none; - color: #ccc; - position: absolute; - top: -10px; - right: 0; - font-family: 'OpenSans', Arial, sans-serif; - font-weight: normal; - font-style: normal; - font-size: 12px; - } - - .enketo .geopicker .toggle-input-type-btn .kml-input { - display: block; - } - - .enketo .geopicker .toggle-input-type-btn .points-input { - display: none; - } - - .enketo .geopicker .kml-input-mode .geo { - display: none; - } - - .enketo .geopicker .kml-input-mode .geo.kml { - display: block; - } - - .enketo .geopicker .kml-input-mode .toggle-input-type-btn .kml-input { - display: none; - } - - .enketo .geopicker .kml-input-mode .toggle-input-type-btn .points-input { - display: block; - } - - .enketo .geopicker .map-canvas { - width: 100%; - border: 1px solid #ccc; - border-radius: 3px; - margin-top: 10px; - height: 275px; - display: flex; - flex-direction: column; - justify-content: center; - cursor: crosshair; - } - - .enketo .geopicker .map-canvas img { - max-width: none; - } - - .enketo .geopicker .map-canvas .attribution { - position: absolute; - right: 0; - bottom: 0; - font-size: 10px; - } - - .enketo .geopicker .map-canvas.static { - cursor: not-allowed; - } - - .enketo .geopicker .map-canvas .show-map-btn { - width: 150px; - margin: 120px auto; - display: block; - } - - .enketo .geopicker.full-screen { - /*IE10*/ - display: flex; - -moz-flex-direction: column; - flex-direction: column; - flex-wrap: nowrap; - position: fixed; - left: 0; - top: 0; - width: 100%; - height: 100%; - z-index: 10000; - background: white; - margin-top: 0; - padding-top: 25px; - } - - .enketo .geopicker.full-screen .geo-inputs { - margin-left: 25px; - margin-bottom: 15px; - } - - .enketo .geopicker.full-screen .geo-inputs .geo, - .enketo .geopicker.full-screen .geo-inputs .toggle-input-type-btn { - display: none; - } - - .enketo .geopicker.full-screen .geo-inputs .close-chain-btn { - margin-left: 20px; - margin-top: 0; - } - - .enketo .geopicker.full-screen .map-canvas-wrapper { - float: none; - width: 100%; - padding: 0 25px 15px 25px; - flex: 1; - /*IE10*/ - display: flex; - -moz-flex-direction: column; - flex-direction: column; - flex-wrap: nowrap; - } - - .enketo .geopicker.full-screen .map-canvas-wrapper .map-canvas { - height: 100%; - flex: 1; - } - - .enketo .geopicker.full-screen .map-canvas-wrapper .show-map-btn { - display: none; - } - - .enketo .geopicker.full-screen .search-bar { - width: 100%; - padding: 0 25px 15px 25px; - } - - .enketo .geopicker.full-screen .search-bar.hide-search { - display: block; - } - - .enketo .geopicker.full-screen .search-bar .hide-map-btn { - display: block; - width: 70px; - margin-right: 15px; - order: 1; - } - - .enketo .geopicker.full-screen .search-bar [name="geodetect"] { - width: 70px; - margin-left: 15px; - } - - .enketo .geopicker.full-screen .search-bar .input-group { - width: auto; - flex: 100%; - } - - .enketo .geopicker.full-screen .points { - display: none; - } - - .enketo .geopicker.full-screen .btn-remove { - margin-left: 0; - } - - .enketo .geopicker .leaflet-control-layers-toggle, - .enketo .geopicker .leaflet-retina .leaflet-control-layers-toggle { - background: none; - color: #888; - text-align: center; - font-size: 20px; - line-height: 44px; - } - - .enketo .geopicker .leaflet-control-layers-toggle .icon-globe, - .enketo .geopicker .leaflet-retina .leaflet-control-layers-toggle .icon-globe { - margin: -1px auto 0 auto; - } - - .enketo .geopicker .leaflet-control-layers-list label { - text-align: left; - padding: 5px; - } - - .enketo .geopicker .leaflet-control-layers-list label .option-label { - margin-left: 30px; - display: block; - line-height: 20px; - } - - .enketo .geopicker:not(.full-screen).hide-input.wide .map-canvas { - height: 375px; - } - - .enketo .geopicker:not(.full-screen).hide-input .geo-inputs .geo { - display: none; - } - - .enketo .geopicker:not(.full-screen).hide-input .toggle-input-type-btn { - display: none; - } - - .enketo .geopicker:not(.full-screen).hide-input .btn-remove { - margin: 10px 0 5px 0; - } - - .enketo .geopicker:not(.full-screen).hide-input .map-canvas-wrapper, - .enketo .geopicker:not(.full-screen).hide-input .search-bar { - width: 100%; - border-left: none; - padding-left: 0; - } - - .enketo .or[dir="rtl"] .geopicker .geo-inputs { - margin: 0 0 0 4%; - } - - .enketo .or[dir="rtl"] .geopicker .map-canvas-wrapper, - .enketo .or[dir="rtl"] .geopicker .search-bar { - float: left; - border-left: none; - border-right: solid 1px #bbbbbb; - } - - @media screen and (max-width: 720px) { - .enketo .or[dir="rtl"] .geopicker .map-canvas-wrapper, - .enketo .or[dir="rtl"] .geopicker .search-bar { - border-right: none; - } - } - - .enketo .or[dir="rtl"] .geopicker .map-canvas-wrapper .input-group, - .enketo .or[dir="rtl"] .geopicker .search-bar .input-group { - flex-direction: row-reverse; - } - - .enketo .or[dir="rtl"] .geopicker .toggle-input-visibility-btn { - right: -16px; - border-right: 3px solid #aaaaaa; - border-bottom: 2px solid #aaaaaa; - border-top: 2px solid #aaaaaa; - border-left: none; - } - - .enketo .or[dir="rtl"] .geopicker .toggle-input-visibility-btn.open { - right: -20px; - border-right: none; - border-left: 3px solid #aaaaaa; - } - - .enketo .or[dir="rtl"] .geopicker input[name="alt"], - .enketo .or[dir="rtl"] .geopicker input[name="acc"] { - float: left; - } - - .enketo .or[dir="rtl"] .geopicker .btn[name="geodetect"] { - font-size: 16px; - margin: 0 4% 0 0; - } - - .enketo .or[dir="rtl"] .geopicker .hide-map-btn { - margin: 0 0 0 4%; - } - - .enketo .or[dir="rtl"] .geopicker .hide-search .btn[name="geodetect"] { - margin: 15px auto; - width: 50%; - } - - .enketo .or[dir="rtl"] .geopicker .close-chain-btn { - margin-left: 0; - margin-right: 15px; - } - - .enketo .or[dir="rtl"] .geopicker .toggle-input-type-btn { - left: 0; - right: auto; - } - - .enketo .or[dir="rtl"] .geopicker:not(.full-screen).hide-input .map-canvas-wrapper, - .enketo .or[dir="rtl"] .geopicker:not(.full-screen).hide-input .search-bar { - border-right: none; - padding-right: 4%; - padding-left: 0; - } - - @media screen and (max-width: 500px) { - .enketo .full-screen.geopicker .search-bar .search-btn { - display: none; - } - .enketo .full-screen.geopicker .search-bar [name="search"] { - width: 100%; - } - .enketo .full-screen.geopicker .search-bar [name="search"] { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - } - } - - .enketo .question:not(.or-appearance-label):not(.or-appearance-compact):not(.or-appearance-quickcompact) .geopicker label { - line-height: 16px; - font-weight: normal; - } - - .enketo .question:not(.or-appearance-label):not(.or-appearance-compact):not(.or-appearance-quickcompact) .geopicker label input[type=radio] ~ .option-label::before { - font-size: 16px; - height: 16px; - margin-right: 2px; - } - - .enketo .leaflet-pane, - .enketo .leaflet-tile, - .enketo .leaflet-marker-icon, - .enketo .leaflet-marker-shadow, - .enketo .leaflet-tile-container, - .enketo .leaflet-pane > svg, - .enketo .leaflet-pane > canvas, - .enketo .leaflet-zoom-box, - .enketo .leaflet-image-layer, - .enketo .leaflet-layer { - position: absolute; - left: 0; - top: 0; - } - - .enketo .leaflet-container { - overflow: hidden; - } - - .enketo .leaflet-tile, - .enketo .leaflet-marker-icon, - .enketo .leaflet-marker-shadow { - -webkit-user-select: none; - user-select: none; - -webkit-user-drag: none; - } - - .enketo .leaflet-safari .leaflet-tile { - image-rendering: -webkit-optimize-contrast; - } - - .enketo .leaflet-safari .leaflet-tile-container { - width: 1600px; - height: 1600px; - -webkit-transform-origin: 0 0; - } - - .enketo .leaflet-marker-icon, - .enketo .leaflet-marker-shadow { - display: block; - } - - .enketo .leaflet-container .leaflet-overlay-pane svg, - .enketo .leaflet-container .leaflet-marker-pane img, - .enketo .leaflet-container .leaflet-shadow-pane img, - .enketo .leaflet-container .leaflet-tile-pane img, - .enketo .leaflet-container img.leaflet-image-layer { - max-width: none !important; - max-height: none !important; - } - - .enketo .leaflet-container.leaflet-touch-zoom { - touch-action: pan-x pan-y; - } - - .enketo .leaflet-container.leaflet-touch-drag { - /* Fallback for FF which doesn't support pinch-zoom */ - touch-action: none; - touch-action: pinch-zoom; - } - - .enketo .leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { - touch-action: none; - } - - .enketo .leaflet-container { - -webkit-tap-highlight-color: transparent; - } - - .enketo .leaflet-container a { - -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); - } - - .enketo .leaflet-tile { - filter: inherit; - visibility: hidden; - } - - .enketo .leaflet-tile-loaded { - visibility: inherit; - } - - .enketo .leaflet-zoom-box { - width: 0; - height: 0; - box-sizing: border-box; - z-index: 800; - } - - .enketo .leaflet-overlay-pane svg { - -moz-user-select: none; - } - - .enketo .leaflet-pane { - z-index: 400; - } - - .enketo .leaflet-tile-pane { - z-index: 200; - } - - .enketo .leaflet-overlay-pane { - z-index: 400; - } - - .enketo .leaflet-shadow-pane { - z-index: 500; - } - - .enketo .leaflet-marker-pane { - z-index: 600; - } - - .enketo .leaflet-tooltip-pane { - z-index: 650; - } - - .enketo .leaflet-popup-pane { - z-index: 700; - } - - .enketo .leaflet-map-pane canvas { - z-index: 100; - } - - .enketo .leaflet-map-pane svg { - z-index: 200; - } - - .enketo .leaflet-vml-shape { - width: 1px; - height: 1px; - } - - .enketo .lvml { - behavior: url(#default#VML); - display: inline-block; - position: absolute; - } - - .enketo .leaflet-control { - position: relative; - z-index: 800; - pointer-events: visiblePainted; - /* IE 9-10 doesn't have auto */ - pointer-events: auto; - } - - .enketo .leaflet-top, - .enketo .leaflet-bottom { - position: absolute; - z-index: 1000; - pointer-events: none; - } - - .enketo .leaflet-top { - top: 0; - } - - .enketo .leaflet-right { - right: 0; - } - - .enketo .leaflet-bottom { - bottom: 0; - } - - .enketo .leaflet-left { - left: 0; - } - - .enketo .leaflet-control { - float: left; - clear: both; - } - - .enketo .leaflet-right .leaflet-control { - float: right; - } - - .enketo .leaflet-top .leaflet-control { - margin-top: 10px; - } - - .enketo .leaflet-bottom .leaflet-control { - margin-bottom: 10px; - } - - .enketo .leaflet-left .leaflet-control { - margin-left: 10px; - } - - .enketo .leaflet-right .leaflet-control { - margin-right: 10px; - } - - .enketo .leaflet-fade-anim .leaflet-tile { - will-change: opacity; - } - - .enketo .leaflet-fade-anim .leaflet-popup { - opacity: 0; - transition: opacity 0.2s linear; - } - - .enketo .leaflet-fade-anim .leaflet-map-pane .leaflet-popup { - opacity: 1; - } - - .enketo .leaflet-zoom-animated { - transform-origin: 0 0; - } - - .enketo .leaflet-zoom-anim .leaflet-zoom-animated { - will-change: transform; - } - - .enketo .leaflet-zoom-anim .leaflet-zoom-animated { - transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1); - } - - .enketo .leaflet-zoom-anim .leaflet-tile, - .enketo .leaflet-pan-anim .leaflet-tile { - transition: none; - } - - .enketo .leaflet-zoom-anim .leaflet-zoom-hide { - visibility: hidden; - } - - .enketo .leaflet-interactive { - cursor: pointer; - } - - .enketo .leaflet-grab { - cursor: -webkit-grab; - cursor: -moz-grab; - } - - .enketo .leaflet-crosshair, - .enketo .leaflet-crosshair .leaflet-interactive { - cursor: crosshair; - } - - .enketo .leaflet-popup-pane, - .enketo .leaflet-control { - cursor: auto; - } - - .enketo .leaflet-dragging .leaflet-grab, - .enketo .leaflet-dragging .leaflet-grab .leaflet-interactive, - .enketo .leaflet-dragging .leaflet-marker-draggable { - cursor: move; - cursor: -webkit-grabbing; - cursor: -moz-grabbing; - } - - .enketo .leaflet-marker-icon, - .enketo .leaflet-marker-shadow, - .enketo .leaflet-image-layer, - .enketo .leaflet-pane > svg path, - .enketo .leaflet-tile-container { - pointer-events: none; - } - - .enketo .leaflet-marker-icon.leaflet-interactive, - .enketo .leaflet-image-layer.leaflet-interactive, - .enketo .leaflet-pane > svg path.leaflet-interactive { - pointer-events: visiblePainted; - /* IE 9-10 doesn't have auto */ - pointer-events: auto; - } - - .enketo .leaflet-container { - background: #ddd; - outline: 0; - } - - .enketo .leaflet-container a { - color: #0078A8; - } - - .enketo .leaflet-container a.leaflet-active { - outline: 2px solid orange; - } - - .enketo .leaflet-zoom-box { - border: 2px dotted #38f; - background: rgba(255, 255, 255, 0.5); - } - - .enketo .leaflet-container { - font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; - } - - .enketo .leaflet-bar { - box-shadow: 0 1px 5px rgba(0, 0, 0, 0.65); - border-radius: 4px; - } - - .enketo .leaflet-bar a, - .enketo .leaflet-bar a:hover { - background-color: #fff; - border-bottom: 1px solid #ccc; - width: 26px; - height: 26px; - line-height: 26px; - display: block; - text-align: center; - text-decoration: none; - color: black; - } - - .enketo .leaflet-bar a, - .enketo .leaflet-control-layers-toggle { - background-position: 50% 50%; - background-repeat: no-repeat; - display: block; - } - - .enketo .leaflet-bar a:hover { - background-color: #f4f4f4; - } - - .enketo .leaflet-bar a:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - } - - .enketo .leaflet-bar a:last-child { - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom: none; - } - - .enketo .leaflet-bar a.leaflet-disabled { - cursor: default; - background-color: #f4f4f4; - color: #bbb; - } - - .enketo .leaflet-touch .leaflet-bar a { - width: 30px; - height: 30px; - line-height: 30px; - } - - .enketo .leaflet-touch .leaflet-bar a:first-child { - border-top-left-radius: 2px; - border-top-right-radius: 2px; - } - - .enketo .leaflet-touch .leaflet-bar a:last-child { - border-bottom-left-radius: 2px; - border-bottom-right-radius: 2px; - } - - .enketo .leaflet-control-zoom-in, - .enketo .leaflet-control-zoom-out { - font: bold 18px 'Lucida Console', Monaco, monospace; - text-indent: 1px; - } - - .enketo .leaflet-touch .leaflet-control-zoom-in, - .enketo .leaflet-touch .leaflet-control-zoom-out { - font-size: 22px; - } - - .enketo .leaflet-control-layers { - box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4); - background: #fff; - border-radius: 5px; - } - - .enketo .leaflet-control-layers-toggle { - width: 36px; - height: 36px; - } - - .enketo .leaflet-retina .leaflet-control-layers-toggle { - background-size: 26px 26px; - } - - .enketo .leaflet-touch .leaflet-control-layers-toggle { - width: 44px; - height: 44px; - } - - .enketo .leaflet-control-layers .leaflet-control-layers-list, - .enketo .leaflet-control-layers-expanded .leaflet-control-layers-toggle { - display: none; - } - - .enketo .leaflet-control-layers-expanded .leaflet-control-layers-list { - display: block; - position: relative; - } - - .enketo .leaflet-control-layers-expanded { - padding: 6px 10px 6px 6px; - color: #333; - background: #fff; - } - - .enketo .leaflet-control-layers-scrollbar { - overflow-y: scroll; - overflow-x: hidden; - padding-right: 5px; - } - - .enketo .leaflet-control-layers-selector { - margin-top: 2px; - position: relative; - top: 1px; - } - - .enketo .leaflet-control-layers label { - display: block; - } - - .enketo .leaflet-control-layers-separator { - height: 0; - border-top: 1px solid #ddd; - margin: 5px -10px 5px -6px; - } - - .enketo .leaflet-container .leaflet-control-attribution { - background: #fff; - background: rgba(255, 255, 255, 0.7); - margin: 0; - } - - .enketo .leaflet-control-attribution, - .enketo .leaflet-control-scale-line { - padding: 0 5px; - color: #333; - } - - .enketo .leaflet-control-attribution a { - text-decoration: none; - } - - .enketo .leaflet-control-attribution a:hover { - text-decoration: underline; - } - - .enketo .leaflet-container .leaflet-control-attribution, - .enketo .leaflet-container .leaflet-control-scale { - font-size: 11px; - } - - .enketo .leaflet-left .leaflet-control-scale { - margin-left: 5px; - } - - .enketo .leaflet-bottom .leaflet-control-scale { - margin-bottom: 5px; - } - - .enketo .leaflet-control-scale-line { - border: 2px solid #777; - border-top: none; - line-height: 1.1; - padding: 2px 5px 1px; - font-size: 11px; - white-space: nowrap; - overflow: hidden; - box-sizing: border-box; - background: #fff; - background: rgba(255, 255, 255, 0.5); - } - - .enketo .leaflet-control-scale-line:not(:first-child) { - border-top: 2px solid #777; - border-bottom: none; - margin-top: -2px; - } - - .enketo .leaflet-control-scale-line:not(:first-child):not(:last-child) { - border-bottom: 2px solid #777; - } - - .enketo .leaflet-touch .leaflet-control-attribution, - .enketo .leaflet-touch .leaflet-control-layers, - .enketo .leaflet-touch .leaflet-bar { - box-shadow: none; - } - - .enketo .leaflet-touch .leaflet-control-layers, - .enketo .leaflet-touch .leaflet-bar { - border: 2px solid rgba(0, 0, 0, 0.2); - background-clip: padding-box; - } - - .enketo .leaflet-popup { - position: absolute; - text-align: center; - margin-bottom: 20px; - } - - .enketo .leaflet-popup-content-wrapper { - padding: 1px; - text-align: left; - border-radius: 12px; - } - - .enketo .leaflet-popup-content { - margin: 13px 19px; - line-height: 1.4; - } - - .enketo .leaflet-popup-content p { - margin: 18px 0; - } - - .enketo .leaflet-popup-tip-container { - width: 40px; - height: 20px; - position: absolute; - left: 50%; - margin-left: -20px; - overflow: hidden; - pointer-events: none; - } - - .enketo .leaflet-popup-tip { - width: 17px; - height: 17px; - padding: 1px; - margin: -10px auto 0; - transform: rotate(45deg); - } - - .enketo .leaflet-popup-content-wrapper, - .enketo .leaflet-popup-tip { - background: white; - color: #333; - box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4); - } - - .enketo .leaflet-container a.leaflet-popup-close-button { - position: absolute; - top: 0; - right: 0; - padding: 4px 4px 0 0; - border: none; - text-align: center; - width: 18px; - height: 14px; - font: 16px/14px Tahoma, Verdana, sans-serif; - color: #c3c3c3; - text-decoration: none; - font-weight: bold; - background: transparent; - } - - .enketo .leaflet-container a.leaflet-popup-close-button:hover { - color: #999; - } - - .enketo .leaflet-popup-scrolled { - overflow: auto; - border-bottom: 1px solid #ddd; - border-top: 1px solid #ddd; - } - - .enketo .leaflet-oldie .leaflet-popup-content-wrapper { - zoom: 1; - } - - .enketo .leaflet-oldie .leaflet-popup-tip { - width: 24px; - margin: 0 auto; - -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; - filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); - } - - .enketo .leaflet-oldie .leaflet-popup-tip-container { - margin-top: -1px; - } - - .enketo .leaflet-oldie .leaflet-control-zoom, - .enketo .leaflet-oldie .leaflet-control-layers, - .enketo .leaflet-oldie .leaflet-popup-content-wrapper, - .enketo .leaflet-oldie .leaflet-popup-tip { - border: 1px solid #999; - } - - .enketo .leaflet-div-icon { - background: #fff; - border: 1px solid #666; - } - - .enketo .leaflet-tooltip { - position: absolute; - padding: 6px; - background-color: #fff; - border: 1px solid #fff; - border-radius: 3px; - color: #222; - white-space: nowrap; - -webkit-user-select: none; - user-select: none; - pointer-events: none; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); - } - - .enketo .leaflet-tooltip.leaflet-clickable { - cursor: pointer; - pointer-events: auto; - } - - .enketo .leaflet-tooltip-top:before, - .enketo .leaflet-tooltip-bottom:before, - .enketo .leaflet-tooltip-left:before, - .enketo .leaflet-tooltip-right:before { - position: absolute; - pointer-events: none; - border: 6px solid transparent; - background: transparent; - content: ""; - } - - .enketo .leaflet-tooltip-bottom { - margin-top: 6px; - } - - .enketo .leaflet-tooltip-top { - margin-top: -6px; - } - - .enketo .leaflet-tooltip-bottom:before, - .enketo .leaflet-tooltip-top:before { - left: 50%; - margin-left: -6px; - } - - .enketo .leaflet-tooltip-top:before { - bottom: 0; - margin-bottom: -12px; - border-top-color: #fff; - } - - .enketo .leaflet-tooltip-bottom:before { - top: 0; - margin-top: -12px; - margin-left: -6px; - border-bottom-color: #fff; - } - - .enketo .leaflet-tooltip-left { - margin-left: -6px; - } - - .enketo .leaflet-tooltip-right { - margin-left: 6px; - } - - .enketo .leaflet-tooltip-left:before, - .enketo .leaflet-tooltip-right:before { - top: 50%; - margin-top: -6px; - } - - .enketo .leaflet-tooltip-left:before { - right: 0; - margin-right: -12px; - border-left-color: #fff; - } - - .enketo .leaflet-tooltip-right:before { - left: 0; - margin-left: -12px; - border-right-color: #fff; - } - - .enketo .question.or-appearance-list-nolabel, - .enketo .question.or-appearance-label { - margin: -0.9em 0 -0.7em 0; - } - - .enketo .question.or-appearance-list-nolabel legend, - .enketo .question.or-appearance-label legend { - float: left; - border: none; - line-height: 17px; - width: 35%; - min-height: 1px; - } - - .enketo .question.or-appearance-list-nolabel .option-wrapper, - .enketo .question.or-appearance-label .option-wrapper { - /*IE10*/ - display: flex; - -moz-flex-direction: row; - flex-direction: row; - flex-wrap: nowrap; - } - - .enketo .question.or-appearance-list-nolabel .option-wrapper label, - .enketo .question.or-appearance-label .option-wrapper label { - flex: 1; - text-align: center; - padding: 4px 0; - word-break: break-word; - } - - .enketo .question.or-appearance-list-nolabel .option-wrapper label .active, - .enketo .question.or-appearance-label .option-wrapper label .active { - margin: 0 auto; - } - - .enketo .question.or-appearance-list-nolabel .option-label.active, - .enketo .question.or-appearance-label .option-label.active { - text-align: center; - } - - .enketo .or[dir="rtl"] .question.or-appearance-list-nolabel, - .enketo .or[dir="rtl"] .question.or-appearance-label { - margin: -0.9em 0 -0.7em 0; - } - - .enketo .or[dir="rtl"] .question.or-appearance-list-nolabel legend, - .enketo .or[dir="rtl"] .question.or-appearance-label legend { - float: right; - } - - .enketo .or[dir="rtl"] .question.or-appearance-list-nolabel input[type=radio], - .enketo .or[dir="rtl"] .question.or-appearance-list-nolabel input[type=checkbox] { - float: none; - margin: 0; - } - - .enketo .question.or-appearance-list-nolabel label .active { - display: none; - float: none; - } - - .enketo .question.or-appearance-list-nolabel input[type=radio], - .enketo .question.or-appearance-list-nolabel input[type=checkbox] { - float: none; - text-align: center; - display: inline-block; - margin: 0; - vertical-align: middle; - } - - .enketo .question.or-appearance-label .option-wrapper > label { - margin-bottom: 6px; - } - - .enketo .question.or-appearance-label .option-wrapper > label:hover { - background-color: transparent; - } - - .enketo .question.or-appearance-label input[type=radio], - .enketo .question.or-appearance-label input[type=checkbox] { - display: none; - } - - .enketo .question.or-appearance-label img { - max-height: 30px; - max-width: 30px; - float: none; - } - - .enketo .or[dir="rtl"] .question.or-appearance-label .option-wrapper > label img { - float: none; - } - - .enketo .datepicker { - padding: 4px; - border-radius: 4px; - direction: ltr; - } - - .enketo .datepicker-inline { - width: 220px; - } - - .enketo .datepicker-rtl { - direction: rtl; - } - - .enketo .datepicker-rtl.dropdown-menu { - left: auto; - } - - .enketo .datepicker-rtl table tr td span { - float: right; - } - - .enketo .datepicker-dropdown { - top: 0; - left: 0; - } - - .enketo .datepicker-dropdown:before { - content: ''; - display: inline-block; - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid #999; - border-top: 0; - border-bottom-color: rgba(0, 0, 0, 0.2); - position: absolute; - } - - .enketo .datepicker-dropdown:after { - content: ''; - display: inline-block; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-bottom: 6px solid #fff; - border-top: 0; - position: absolute; - } - - .enketo .datepicker-dropdown.datepicker-orient-left:before { - left: 6px; - } - - .enketo .datepicker-dropdown.datepicker-orient-left:after { - left: 7px; - } - - .enketo .datepicker-dropdown.datepicker-orient-right:before { - right: 6px; - } - - .enketo .datepicker-dropdown.datepicker-orient-right:after { - right: 7px; - } - - .enketo .datepicker-dropdown.datepicker-orient-bottom:before { - top: -7px; - } - - .enketo .datepicker-dropdown.datepicker-orient-bottom:after { - top: -6px; - } - - .enketo .datepicker-dropdown.datepicker-orient-top:before { - bottom: -7px; - border-bottom: 0; - border-top: 7px solid #999; - } - - .enketo .datepicker-dropdown.datepicker-orient-top:after { - bottom: -6px; - border-bottom: 0; - border-top: 6px solid #fff; - } - - .enketo .datepicker table { - margin: 0; - -webkit-touch-callout: none; - -webkit-user-select: none; - user-select: none; - } - - .enketo .datepicker td, - .enketo .datepicker th { - text-align: center; - width: 20px; - height: 20px; - border-radius: 4px; - border: none; - } - - .enketo .table-striped .datepicker table tr td, - .enketo .table-striped .datepicker table tr th { - background-color: transparent; - } - - .enketo .datepicker table tr td.day.focused, - .enketo .datepicker table tr td.day:hover { - background: #eee; - cursor: pointer; - } - - .enketo .datepicker table tr td.new, - .enketo .datepicker table tr td.old { - color: #999; - } - - .enketo .datepicker table tr td.disabled, - .enketo .datepicker table tr td.disabled:hover { - background: 0 0; - color: #999; - cursor: default; - } - - .enketo .datepicker table tr td.highlighted { - background: #d9edf7; - border-radius: 0; - } - - .enketo .datepicker table tr td.today, - .enketo .datepicker table tr td.today.disabled, - .enketo .datepicker table tr td.today.disabled:hover, - .enketo .datepicker table tr td.today:hover { - background-color: #fde19a; - background-image: linear-gradient(to bottom, #fdd49a, #fdf59a); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0); - border-color: #fdf59a #fdf59a #fbed50; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - color: #000; - } - - .enketo .datepicker table tr td.today.active, - .enketo .datepicker table tr td.today.disabled, - .enketo .datepicker table tr td.today.disabled.active, - .enketo .datepicker table tr td.today.disabled.disabled, - .enketo .datepicker table tr td.today.disabled:active, - .enketo .datepicker table tr td.today.disabled:hover, - .enketo .datepicker table tr td.today.disabled:hover.active, - .enketo .datepicker table tr td.today.disabled:hover.disabled, - .enketo .datepicker table tr td.today.disabled:hover:active, - .enketo .datepicker table tr td.today.disabled:hover:hover, - .enketo .datepicker table tr td.today.disabled:hover[disabled], - .enketo .datepicker table tr td.today.disabled[disabled], - .enketo .datepicker table tr td.today:active, - .enketo .datepicker table tr td.today:hover, - .enketo .datepicker table tr td.today:hover.active, - .enketo .datepicker table tr td.today:hover.disabled, - .enketo .datepicker table tr td.today:hover:active, - .enketo .datepicker table tr td.today:hover:hover, - .enketo .datepicker table tr td.today:hover[disabled], - .enketo .datepicker table tr td.today[disabled] { - background-color: #fdf59a; - } - - .enketo .datepicker table tr td.today.active, - .enketo .datepicker table tr td.today.disabled.active, - .enketo .datepicker table tr td.today.disabled:active, - .enketo .datepicker table tr td.today.disabled:hover.active, - .enketo .datepicker table tr td.today.disabled:hover:active, - .enketo .datepicker table tr td.today:active, - .enketo .datepicker table tr td.today:hover.active, - .enketo .datepicker table tr td.today:hover:active { - background-color: #fbf069 \9; - } - - .enketo .datepicker table tr td.today:hover:hover { - color: #000; - } - - .enketo .datepicker table tr td.today.active:hover { - color: #fff; - } - - .enketo .datepicker table tr td.range, - .enketo .datepicker table tr td.range.disabled, - .enketo .datepicker table tr td.range.disabled:hover, - .enketo .datepicker table tr td.range:hover { - background: #eee; - border-radius: 0; - } - - .enketo .datepicker table tr td.range.today, - .enketo .datepicker table tr td.range.today.disabled, - .enketo .datepicker table tr td.range.today.disabled:hover, - .enketo .datepicker table tr td.range.today:hover { - background-color: #f3d17a; - background-image: linear-gradient(to bottom, #f3c17a, #f3e97a); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0); - border-color: #f3e97a #f3e97a #edde34; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - border-radius: 0; - } - - .enketo .datepicker table tr td.range.today.active, - .enketo .datepicker table tr td.range.today.disabled, - .enketo .datepicker table tr td.range.today.disabled.active, - .enketo .datepicker table tr td.range.today.disabled.disabled, - .enketo .datepicker table tr td.range.today.disabled:active, - .enketo .datepicker table tr td.range.today.disabled:hover, - .enketo .datepicker table tr td.range.today.disabled:hover.active, - .enketo .datepicker table tr td.range.today.disabled:hover.disabled, - .enketo .datepicker table tr td.range.today.disabled:hover:active, - .enketo .datepicker table tr td.range.today.disabled:hover:hover, - .enketo .datepicker table tr td.range.today.disabled:hover[disabled], - .enketo .datepicker table tr td.range.today.disabled[disabled], - .enketo .datepicker table tr td.range.today:active, - .enketo .datepicker table tr td.range.today:hover, - .enketo .datepicker table tr td.range.today:hover.active, - .enketo .datepicker table tr td.range.today:hover.disabled, - .enketo .datepicker table tr td.range.today:hover:active, - .enketo .datepicker table tr td.range.today:hover:hover, - .enketo .datepicker table tr td.range.today:hover[disabled], - .enketo .datepicker table tr td.range.today[disabled] { - background-color: #f3e97a; - } - - .enketo .datepicker table tr td.range.today.active, - .enketo .datepicker table tr td.range.today.disabled.active, - .enketo .datepicker table tr td.range.today.disabled:active, - .enketo .datepicker table tr td.range.today.disabled:hover.active, - .enketo .datepicker table tr td.range.today.disabled:hover:active, - .enketo .datepicker table tr td.range.today:active, - .enketo .datepicker table tr td.range.today:hover.active, - .enketo .datepicker table tr td.range.today:hover:active { - background-color: #efe24b \9; - } - - .enketo .datepicker table tr td.selected, - .enketo .datepicker table tr td.selected.disabled, - .enketo .datepicker table tr td.selected.disabled:hover, - .enketo .datepicker table tr td.selected:hover { - background-color: #9e9e9e; - background-image: linear-gradient(to bottom, #b3b3b3, grey); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0); - border-color: grey grey #595959; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - color: #fff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - } - - .enketo .datepicker table tr td.selected.active, - .enketo .datepicker table tr td.selected.disabled, - .enketo .datepicker table tr td.selected.disabled.active, - .enketo .datepicker table tr td.selected.disabled.disabled, - .enketo .datepicker table tr td.selected.disabled:active, - .enketo .datepicker table tr td.selected.disabled:hover, - .enketo .datepicker table tr td.selected.disabled:hover.active, - .enketo .datepicker table tr td.selected.disabled:hover.disabled, - .enketo .datepicker table tr td.selected.disabled:hover:active, - .enketo .datepicker table tr td.selected.disabled:hover:hover, - .enketo .datepicker table tr td.selected.disabled:hover[disabled], - .enketo .datepicker table tr td.selected.disabled[disabled], - .enketo .datepicker table tr td.selected:active, - .enketo .datepicker table tr td.selected:hover, - .enketo .datepicker table tr td.selected:hover.active, - .enketo .datepicker table tr td.selected:hover.disabled, - .enketo .datepicker table tr td.selected:hover:active, - .enketo .datepicker table tr td.selected:hover:hover, - .enketo .datepicker table tr td.selected:hover[disabled], - .enketo .datepicker table tr td.selected[disabled] { - background-color: grey; - } - - .enketo .datepicker table tr td.selected.active, - .enketo .datepicker table tr td.selected.disabled.active, - .enketo .datepicker table tr td.selected.disabled:active, - .enketo .datepicker table tr td.selected.disabled:hover.active, - .enketo .datepicker table tr td.selected.disabled:hover:active, - .enketo .datepicker table tr td.selected:active, - .enketo .datepicker table tr td.selected:hover.active, - .enketo .datepicker table tr td.selected:hover:active { - background-color: #666 \9; - } - - .enketo .datepicker table tr td.active, - .enketo .datepicker table tr td.active.disabled, - .enketo .datepicker table tr td.active.disabled:hover, - .enketo .datepicker table tr td.active:hover { - background-color: #006dcc; - background-image: linear-gradient(to bottom, #08c, #04c); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0); - border-color: #04c #04c #002a80; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - color: #fff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - } - - .enketo .datepicker table tr td.active.active, - .enketo .datepicker table tr td.active.disabled, - .enketo .datepicker table tr td.active.disabled.active, - .enketo .datepicker table tr td.active.disabled.disabled, - .enketo .datepicker table tr td.active.disabled:active, - .enketo .datepicker table tr td.active.disabled:hover, - .enketo .datepicker table tr td.active.disabled:hover.active, - .enketo .datepicker table tr td.active.disabled:hover.disabled, - .enketo .datepicker table tr td.active.disabled:hover:active, - .enketo .datepicker table tr td.active.disabled:hover:hover, - .enketo .datepicker table tr td.active.disabled:hover[disabled], - .enketo .datepicker table tr td.active.disabled[disabled], - .enketo .datepicker table tr td.active:active, - .enketo .datepicker table tr td.active:hover, - .enketo .datepicker table tr td.active:hover.active, - .enketo .datepicker table tr td.active:hover.disabled, - .enketo .datepicker table tr td.active:hover:active, - .enketo .datepicker table tr td.active:hover:hover, - .enketo .datepicker table tr td.active:hover[disabled], - .enketo .datepicker table tr td.active[disabled] { - background-color: #04c; - } - - .enketo .datepicker table tr td.active.active, - .enketo .datepicker table tr td.active.disabled.active, - .enketo .datepicker table tr td.active.disabled:active, - .enketo .datepicker table tr td.active.disabled:hover.active, - .enketo .datepicker table tr td.active.disabled:hover:active, - .enketo .datepicker table tr td.active:active, - .enketo .datepicker table tr td.active:hover.active, - .enketo .datepicker table tr td.active:hover:active { - background-color: #039 \9; - } - - .enketo .datepicker table tr td span { - display: block; - width: 23%; - height: 54px; - line-height: 54px; - float: left; - margin: 1%; - cursor: pointer; - border-radius: 4px; - } - - .enketo .datepicker table tr td span.focused, - .enketo .datepicker table tr td span:hover { - background: #eee; - } - - .enketo .datepicker table tr td span.disabled, - .enketo .datepicker table tr td span.disabled:hover { - background: 0 0; - color: #999; - cursor: default; - } - - .enketo .datepicker table tr td span.active, - .enketo .datepicker table tr td span.active.disabled, - .enketo .datepicker table tr td span.active.disabled:hover, - .enketo .datepicker table tr td span.active:hover { - background-color: #006dcc; - background-image: linear-gradient(to bottom, #08c, #04c); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0); - border-color: #04c #04c #002a80; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - color: #fff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - } - - .enketo .datepicker table tr td span.active.active, - .enketo .datepicker table tr td span.active.disabled, - .enketo .datepicker table tr td span.active.disabled.active, - .enketo .datepicker table tr td span.active.disabled.disabled, - .enketo .datepicker table tr td span.active.disabled:active, - .enketo .datepicker table tr td span.active.disabled:hover, - .enketo .datepicker table tr td span.active.disabled:hover.active, - .enketo .datepicker table tr td span.active.disabled:hover.disabled, - .enketo .datepicker table tr td span.active.disabled:hover:active, - .enketo .datepicker table tr td span.active.disabled:hover:hover, - .enketo .datepicker table tr td span.active.disabled:hover[disabled], - .enketo .datepicker table tr td span.active.disabled[disabled], - .enketo .datepicker table tr td span.active:active, - .enketo .datepicker table tr td span.active:hover, - .enketo .datepicker table tr td span.active:hover.active, - .enketo .datepicker table tr td span.active:hover.disabled, - .enketo .datepicker table tr td span.active:hover:active, - .enketo .datepicker table tr td span.active:hover:hover, - .enketo .datepicker table tr td span.active:hover[disabled], - .enketo .datepicker table tr td span.active[disabled] { - background-color: #04c; - } - - .enketo .datepicker table tr td span.active.active, - .enketo .datepicker table tr td span.active.disabled.active, - .enketo .datepicker table tr td span.active.disabled:active, - .enketo .datepicker table tr td span.active.disabled:hover.active, - .enketo .datepicker table tr td span.active.disabled:hover:active, - .enketo .datepicker table tr td span.active:active, - .enketo .datepicker table tr td span.active:hover.active, - .enketo .datepicker table tr td span.active:hover:active { - background-color: #039 \9; - } - - .enketo .datepicker table tr td span.new, - .enketo .datepicker table tr td span.old { - color: #999; - } - - .enketo .datepicker .datepicker-switch { - width: 145px; - } - - .enketo .datepicker .datepicker-switch, - .enketo .datepicker .next, - .enketo .datepicker .prev, - .enketo .datepicker tfoot tr th { - cursor: pointer; - } - - .enketo .datepicker .datepicker-switch:hover, - .enketo .datepicker .next:hover, - .enketo .datepicker .prev:hover, - .enketo .datepicker tfoot tr th:hover { - background: #eee; - } - - .enketo .datepicker .next.disabled, - .enketo .datepicker .prev.disabled { - visibility: hidden; - } - - .enketo .datepicker .cw { - font-size: 10px; - width: 12px; - padding: 0 2px 0 5px; - vertical-align: middle; - } - - .enketo .input-append.date .add-on, - .enketo .input-prepend.date .add-on { - cursor: pointer; - } - - .enketo .input-append.date .add-on i, - .enketo .input-prepend.date .add-on i { - margin-top: 3px; - } - - .enketo .input-daterange input { - text-align: center; - } - - .enketo .input-daterange input:first-child { - border-radius: 3px 0 0 3px; - } - - .enketo .input-daterange input:last-child { - border-radius: 0 3px 3px 0; - } - - .enketo .input-daterange .add-on { - display: inline-block; - width: auto; - min-width: 16px; - height: 18px; - padding: 4px 5px; - font-weight: 400; - line-height: 18px; - text-align: center; - text-shadow: 0 1px 0 #fff; - vertical-align: middle; - background-color: #eee; - border: 1px solid #ccc; - margin-left: -5px; - margin-right: -5px; - } - - .enketo .question .date input[type="text"] { - display: inline-block; - width: 240px; - min-width: 0; - } - - .enketo table { - max-width: 100%; - background-color: transparent; - } - - .enketo th { - text-align: left; - } - - .enketo .table-condensed > thead > tr > th, - .enketo .table-condensed > thead > tr > td, - .enketo .table-condensed > tbody > tr > th, - .enketo .table-condensed > tbody > tr > td, - .enketo .table-condensed > tfoot > tr > th, - .enketo .table-condensed > tfoot > tr > td { - padding: 5px; - } - - .enketo .table-hover > tbody > tr:hover > td, - .enketo .table-hover > tbody > tr:hover > th { - background-color: whitesmoke; - } - - .enketo table col[class*="col-"] { - position: static; - float: none; - display: table-column; - } - - .enketo table td[class*="col-"], - .enketo table th[class*="col-"] { - position: static; - float: none; - display: table-cell; - } - - .enketo .table > thead > tr > td.active, - .enketo .table > thead > tr > th.active, - .enketo .table > thead > tr.active > td, - .enketo .table > thead > tr.active > th, - .enketo .table > tbody > tr > td.active, - .enketo .table > tbody > tr > th.active, - .enketo .table > tbody > tr.active > td, - .enketo .table > tbody > tr.active > th, - .enketo .table > tfoot > tr > td.active, - .enketo .table > tfoot > tr > th.active, - .enketo .table > tfoot > tr.active > td, - .enketo .table > tfoot > tr.active > th { - background-color: whitesmoke; - } - - .enketo .table-hover > tbody > tr > td.active:hover, - .enketo .table-hover > tbody > tr > th.active:hover, - .enketo .table-hover > tbody > tr.active:hover > td, - .enketo .table-hover > tbody > tr.active:hover > th { - background-color: #e8e8e8; - } - - .enketo .timepicker { - position: relative; - } - - .enketo .timepicker.pull-right .timepicker-widget.dropdown-menu { - left: auto; - right: 0; - } - - .enketo .timepicker.pull-right .timepicker-widget.dropdown-menu:before { - left: auto; - right: 12px; - } - - .enketo .timepicker.pull-right .timepicker-widget.dropdown-menu:after { - left: auto; - right: 13px; - } - - .enketo .timepicker .input-group-addon { - cursor: pointer; - } - - .enketo .timepicker .input-group-addon i { - display: inline-block; - width: 16px; - height: 16px; - } - - .enketo .timepicker-widget.dropdown-menu { - padding: 4px; - } - - .enketo .timepicker-widget.dropdown-menu.open { - display: inline-block; - } - - .enketo .timepicker-widget.dropdown-menu:before { - border-bottom: 7px solid rgba(0, 0, 0, 0.2); - border-left: 7px solid transparent; - border-right: 7px solid transparent; - content: ""; - display: inline-block; - position: absolute; - } - - .enketo .timepicker-widget.dropdown-menu:after { - border-bottom: 6px solid #FFFFFF; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - content: ""; - display: inline-block; - position: absolute; - } - - .enketo .timepicker-widget.timepicker-orient-left:before { - left: 6px; - } - - .enketo .timepicker-widget.timepicker-orient-left:after { - left: 7px; - } - - .enketo .timepicker-widget.timepicker-orient-right:before { - right: 6px; - } - - .enketo .timepicker-widget.timepicker-orient-right:after { - right: 7px; - } - - .enketo .timepicker-widget.timepicker-orient-top:before { - top: -7px; - } - - .enketo .timepicker-widget.timepicker-orient-top:after { - top: -6px; - } - - .enketo .timepicker-widget.timepicker-orient-bottom:before { - bottom: -7px; - border-bottom: 0; - border-top: 7px solid #999; - } - - .enketo .timepicker-widget.timepicker-orient-bottom:after { - bottom: -6px; - border-bottom: 0; - border-top: 6px solid #ffffff; - } - - .enketo .timepicker-widget a.btn, - .enketo .timepicker-widget input { - border-radius: 4px; - } - - .enketo .timepicker-widget table { - width: 100%; - margin: 0; - } - - .enketo .timepicker-widget table td { - text-align: center; - height: 30px; - margin: 0; - padding: 2px; - } - - .enketo .timepicker-widget table td:not(.separator) { - min-width: 30px; - } - - .enketo .timepicker-widget table td span { - width: 100%; - } - - .enketo .timepicker-widget table td a { - border: 1px transparent solid; - width: 100%; - display: inline-block; - margin: 0; - padding: 8px 0; - outline: 0; - color: #333; - } - - .enketo .timepicker-widget table td a:hover { - text-decoration: none; - background-color: #eee; - border-radius: 4px; - border-color: #ddd; - } - - .enketo .timepicker-widget table td a i { - margin-top: 2px; - font-size: 18px; - } - - .enketo .timepicker-widget table td input { - width: 25px; - margin: 0; - text-align: center; - } - - .enketo .timepicker input[type="text"] { - display: inline-block; - width: 240px; - } - - .enketo .timepicker-widget.dropdown-menu input { - width: 50px; - margin: 0 auto; - } - - .enketo .timepicker-widget table td span { - width: 12px; - } - - .enketo .timepicker-widget table td a i { - width: 11px; - height: 17px; - display: inline-block; - } - - .enketo .datetimepicker .date, - .enketo .datetimepicker .timepicker { - margin-right: 10px; - display: inline-block; - } - - .enketo .datetimepicker .date { - margin-right: 10px; - } - - .enketo .or[dir="rtl"] .datetimepicker .date { - margin-right: 0; - } - - .enketo .touch .timepicker-widget.dropdown-menu input { - width: 50px; - margin: 0 auto; - } - - .enketo .file-picker .fake-file-input { - display: block; - height: 34px; - padding: 6px 12px; - font-family: 'OpenSans', Arial, sans-serif; - font-weight: normal; - font-style: normal; - font-size: 15px; - line-height: 1.42857; - color: #555555; - background-color: white; - background-image: none; - border: 1px solid #cccccc; - border-radius: 4px; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; - display: inline-block; - width: 80%; - text-align: start; - } - - .enketo .file-picker .fake-file-input:focus { - border-color: #66afe9; - outline: 0; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo .file-picker .fake-file-input::-moz-placeholder { - color: #999999; - opacity: 1; - } - - .enketo .file-picker .fake-file-input:-ms-input-placeholder { - color: #999999; - } - - .enketo .file-picker .fake-file-input::-webkit-input-placeholder { - color: #999999; - } - - .enketo .file-picker .fake-file-input[disabled], - .enketo .file-picker .fake-file-input[readonly], - .enketo fieldset[disabled] .file-picker .fake-file-input { - cursor: not-allowed; - background-color: #eeeeee; - opacity: 1; - } - - .enketo .file-picker .file-feedback, - .enketo .file-picker .file-preview { - font-family: 'OpenSans', Arial, sans-serif; - font-weight: normal; - font-style: normal; - } - - .enketo .file-picker .file-feedback.error { - font-weight: bold; - padding-top: 5px; - font-size: 0.85em; - color: #a94442; - } - - .enketo .file-picker .file-feedback.warning { - font-weight: bold; - padding-top: 5px; - font-size: 0.85em; - color: #a94442; - color: #8a6d3b; - } - - .enketo .file-picker .file-preview { - margin-top: 10px; - } - - .enketo .file-picker .btn-download { - margin-right: 0; - } - - .enketo .file-picker .btn-download[href=""] { - display: none; - } - - .enketo .or-columns-initialized .option-wrapper { - /*IE10*/ - display: flex; - flex-wrap: wrap; - -moz-flex-direction: row; - flex-direction: row; - } - - .enketo .or-columns-initialized label, - .enketo .or-columns-initialized .filler { - flex: 1 0 30%; - } - - .enketo .or-columns-initialized .filler, - .enketo .or-columns-initialized .filler:hover, - .enketo .or-columns-initialized .filler:focus { - border: none !important; - background: transparent !important; - } - - .enketo .or-appearance-columns-pack .option-wrapper { - /*IE10*/ - display: flex; - flex-wrap: wrap; - -moz-flex-direction: row; - flex-direction: row; - } - - .enketo .or-appearance-columns-pack label { - display: inline-block; - } - - .enketo .question.or-appearance-columns.or-appearance-no-buttons legend, - .enketo .question.or-appearance-columns-pack.or-appearance-no-buttons legend { - border: none; - } - - .enketo .question.or-appearance-columns.or-appearance-no-buttons .option-wrapper > label, - .enketo .question.or-appearance-columns-pack.or-appearance-no-buttons .option-wrapper > label { - display: inline-block; - margin: 0; - padding: 10px !important; - } - - .enketo .question.or-appearance-columns.or-appearance-no-buttons .option-wrapper > label:hover, - .enketo .question.or-appearance-columns-pack.or-appearance-no-buttons .option-wrapper > label:hover { - background: none; - } - - .enketo .question.or-appearance-columns.or-appearance-no-buttons .option-wrapper > label .option-label, - .enketo .question.or-appearance-columns-pack.or-appearance-no-buttons .option-wrapper > label .option-label { - padding: 2px; - } - - .enketo .question.or-appearance-columns.or-appearance-no-buttons .option-wrapper > label .active, - .enketo .question.or-appearance-columns-pack.or-appearance-no-buttons .option-wrapper > label .active { - display: inline-block; - margin-left: 0; - margin-right: 0; - max-width: 150px; - max-height: 150px; - float: none; - border: 2px solid transparent; - } - - .enketo .question.or-appearance-columns.or-appearance-no-buttons .option-wrapper > label input, - .enketo .question.or-appearance-columns-pack.or-appearance-no-buttons .option-wrapper > label input { - width: 1px; - height: 1px; - position: relative; - top: 15px; - left: 15px; - z-index: -1; - } - - .enketo .question.or-appearance-columns.or-appearance-no-buttons .option-wrapper > label input:not([disabled]):not([readonly]) ~ .active:hover, - .enketo .question.or-appearance-columns-pack.or-appearance-no-buttons .option-wrapper > label input:not([disabled]):not([readonly]) ~ .active:hover { - border-color: #9fc4e4; - } - - .enketo .question.or-appearance-columns.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active, - .enketo .question.or-appearance-columns.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active:hover, - .enketo .question.or-appearance-columns.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active, - .enketo .question.or-appearance-columns.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active:hover, - .enketo .question.or-appearance-columns-pack.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active, - .enketo .question.or-appearance-columns-pack.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active:hover, - .enketo .question.or-appearance-columns-pack.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active, - .enketo .question.or-appearance-columns-pack.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active:hover { - border-color: #555555; - } - - .enketo .question.or-appearance-columns.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active, - .enketo .question.or-appearance-columns.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active:hover, - .enketo .question.or-appearance-columns-pack.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active, - .enketo .question.or-appearance-columns-pack.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active:hover { - border-color: #337ab7; - } - - .enketo .question.or-appearance-columns.or-appearance-no-buttons .option-wrapper > label input:focus ~ .active, - .enketo .question.or-appearance-columns-pack.or-appearance-no-buttons .option-wrapper > label input:focus ~ .active { - outline: 0; - box-shadow: 0 0 0 1px #66afe9, 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo .question.or-appearance-columns-1.or-appearance-no-buttons legend { - border: none; - } - - .enketo .question.or-appearance-columns-1.or-appearance-no-buttons .option-wrapper > label { - display: inline-block; - margin: 0; - padding: 10px !important; - } - - .enketo .question.or-appearance-columns-1.or-appearance-no-buttons .option-wrapper > label:hover { - background: none; - } - - .enketo .question.or-appearance-columns-1.or-appearance-no-buttons .option-wrapper > label .option-label { - padding: 2px; - } - - .enketo .question.or-appearance-columns-1.or-appearance-no-buttons .option-wrapper > label .active { - display: inline-block; - margin-left: 0; - margin-right: 0; - max-width: 150px; - max-height: 150px; - float: none; - border: 2px solid transparent; - } - - .enketo .question.or-appearance-columns-1.or-appearance-no-buttons .option-wrapper > label input { - width: 1px; - height: 1px; - position: relative; - top: 15px; - left: 15px; - z-index: -1; - } - - .enketo .question.or-appearance-columns-1.or-appearance-no-buttons .option-wrapper > label input:not([disabled]):not([readonly]) ~ .active:hover { - border-color: #9fc4e4; - } - - .enketo .question.or-appearance-columns-1.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active, - .enketo .question.or-appearance-columns-1.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active:hover, - .enketo .question.or-appearance-columns-1.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active, - .enketo .question.or-appearance-columns-1.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active:hover { - border-color: #555555; - } - - .enketo .question.or-appearance-columns-1.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active, - .enketo .question.or-appearance-columns-1.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active:hover { - border-color: #337ab7; - } - - .enketo .question.or-appearance-columns-1.or-appearance-no-buttons .option-wrapper > label input:focus ~ .active { - outline: 0; - box-shadow: 0 0 0 1px #66afe9, 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo .question.or-appearance-columns-1.or-appearance-no-buttons label { - width: 100%; - } - - .enketo .question.or-appearance-columns-1.or-appearance-no-buttons label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .question.or-appearance-columns-1 .option-wrapper { - -moz-flex-direction: row; - flex-direction: row; - flex-wrap: wrap; - } - - .enketo .question.or-appearance-columns-1 label { - width: calc(100% - 20px); - } - - .enketo .question.or-appearance-columns-1 label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .question.or-appearance-columns-2.or-appearance-no-buttons legend { - border: none; - } - - .enketo .question.or-appearance-columns-2.or-appearance-no-buttons .option-wrapper > label { - display: inline-block; - margin: 0; - padding: 10px !important; - } - - .enketo .question.or-appearance-columns-2.or-appearance-no-buttons .option-wrapper > label:hover { - background: none; - } - - .enketo .question.or-appearance-columns-2.or-appearance-no-buttons .option-wrapper > label .option-label { - padding: 2px; - } - - .enketo .question.or-appearance-columns-2.or-appearance-no-buttons .option-wrapper > label .active { - display: inline-block; - margin-left: 0; - margin-right: 0; - max-width: 150px; - max-height: 150px; - float: none; - border: 2px solid transparent; - } - - .enketo .question.or-appearance-columns-2.or-appearance-no-buttons .option-wrapper > label input { - width: 1px; - height: 1px; - position: relative; - top: 15px; - left: 15px; - z-index: -1; - } - - .enketo .question.or-appearance-columns-2.or-appearance-no-buttons .option-wrapper > label input:not([disabled]):not([readonly]) ~ .active:hover { - border-color: #9fc4e4; - } - - .enketo .question.or-appearance-columns-2.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active, - .enketo .question.or-appearance-columns-2.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active:hover, - .enketo .question.or-appearance-columns-2.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active, - .enketo .question.or-appearance-columns-2.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active:hover { - border-color: #555555; - } - - .enketo .question.or-appearance-columns-2.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active, - .enketo .question.or-appearance-columns-2.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active:hover { - border-color: #337ab7; - } - - .enketo .question.or-appearance-columns-2.or-appearance-no-buttons .option-wrapper > label input:focus ~ .active { - outline: 0; - box-shadow: 0 0 0 1px #66afe9, 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo .question.or-appearance-columns-2.or-appearance-no-buttons label { - width: 50%; - } - - .enketo .question.or-appearance-columns-2.or-appearance-no-buttons label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .question.or-appearance-columns-2 .option-wrapper { - -moz-flex-direction: row; - flex-direction: row; - flex-wrap: wrap; - } - - .enketo .question.or-appearance-columns-2 label { - width: calc(50% - 20px); - } - - .enketo .question.or-appearance-columns-2 label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .question.or-appearance-columns-3.or-appearance-no-buttons legend { - border: none; - } - - .enketo .question.or-appearance-columns-3.or-appearance-no-buttons .option-wrapper > label { - display: inline-block; - margin: 0; - padding: 10px !important; - } - - .enketo .question.or-appearance-columns-3.or-appearance-no-buttons .option-wrapper > label:hover { - background: none; - } - - .enketo .question.or-appearance-columns-3.or-appearance-no-buttons .option-wrapper > label .option-label { - padding: 2px; - } - - .enketo .question.or-appearance-columns-3.or-appearance-no-buttons .option-wrapper > label .active { - display: inline-block; - margin-left: 0; - margin-right: 0; - max-width: 150px; - max-height: 150px; - float: none; - border: 2px solid transparent; - } - - .enketo .question.or-appearance-columns-3.or-appearance-no-buttons .option-wrapper > label input { - width: 1px; - height: 1px; - position: relative; - top: 15px; - left: 15px; - z-index: -1; - } - - .enketo .question.or-appearance-columns-3.or-appearance-no-buttons .option-wrapper > label input:not([disabled]):not([readonly]) ~ .active:hover { - border-color: #9fc4e4; - } - - .enketo .question.or-appearance-columns-3.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active, - .enketo .question.or-appearance-columns-3.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active:hover, - .enketo .question.or-appearance-columns-3.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active, - .enketo .question.or-appearance-columns-3.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active:hover { - border-color: #555555; - } - - .enketo .question.or-appearance-columns-3.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active, - .enketo .question.or-appearance-columns-3.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active:hover { - border-color: #337ab7; - } - - .enketo .question.or-appearance-columns-3.or-appearance-no-buttons .option-wrapper > label input:focus ~ .active { - outline: 0; - box-shadow: 0 0 0 1px #66afe9, 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo .question.or-appearance-columns-3.or-appearance-no-buttons label { - width: 33.33333333%; - } - - .enketo .question.or-appearance-columns-3.or-appearance-no-buttons label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .question.or-appearance-columns-3 .option-wrapper { - -moz-flex-direction: row; - flex-direction: row; - flex-wrap: wrap; - } - - .enketo .question.or-appearance-columns-3 label { - width: calc(33.33333333% - 20px); - } - - .enketo .question.or-appearance-columns-3 label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .question.or-appearance-columns-4.or-appearance-no-buttons legend { - border: none; - } - - .enketo .question.or-appearance-columns-4.or-appearance-no-buttons .option-wrapper > label { - display: inline-block; - margin: 0; - padding: 10px !important; - } - - .enketo .question.or-appearance-columns-4.or-appearance-no-buttons .option-wrapper > label:hover { - background: none; - } - - .enketo .question.or-appearance-columns-4.or-appearance-no-buttons .option-wrapper > label .option-label { - padding: 2px; - } - - .enketo .question.or-appearance-columns-4.or-appearance-no-buttons .option-wrapper > label .active { - display: inline-block; - margin-left: 0; - margin-right: 0; - max-width: 150px; - max-height: 150px; - float: none; - border: 2px solid transparent; - } - - .enketo .question.or-appearance-columns-4.or-appearance-no-buttons .option-wrapper > label input { - width: 1px; - height: 1px; - position: relative; - top: 15px; - left: 15px; - z-index: -1; - } - - .enketo .question.or-appearance-columns-4.or-appearance-no-buttons .option-wrapper > label input:not([disabled]):not([readonly]) ~ .active:hover { - border-color: #9fc4e4; - } - - .enketo .question.or-appearance-columns-4.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active, - .enketo .question.or-appearance-columns-4.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active:hover, - .enketo .question.or-appearance-columns-4.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active, - .enketo .question.or-appearance-columns-4.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active:hover { - border-color: #555555; - } - - .enketo .question.or-appearance-columns-4.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active, - .enketo .question.or-appearance-columns-4.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active:hover { - border-color: #337ab7; - } - - .enketo .question.or-appearance-columns-4.or-appearance-no-buttons .option-wrapper > label input:focus ~ .active { - outline: 0; - box-shadow: 0 0 0 1px #66afe9, 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo .question.or-appearance-columns-4.or-appearance-no-buttons label { - width: 25%; - } - - .enketo .question.or-appearance-columns-4.or-appearance-no-buttons label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .question.or-appearance-columns-4 .option-wrapper { - -moz-flex-direction: row; - flex-direction: row; - flex-wrap: wrap; - } - - .enketo .question.or-appearance-columns-4 label { - width: calc(25% - 20px); - } - - .enketo .question.or-appearance-columns-4 label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .question.or-appearance-columns-5.or-appearance-no-buttons legend { - border: none; - } - - .enketo .question.or-appearance-columns-5.or-appearance-no-buttons .option-wrapper > label { - display: inline-block; - margin: 0; - padding: 10px !important; - } - - .enketo .question.or-appearance-columns-5.or-appearance-no-buttons .option-wrapper > label:hover { - background: none; - } - - .enketo .question.or-appearance-columns-5.or-appearance-no-buttons .option-wrapper > label .option-label { - padding: 2px; - } - - .enketo .question.or-appearance-columns-5.or-appearance-no-buttons .option-wrapper > label .active { - display: inline-block; - margin-left: 0; - margin-right: 0; - max-width: 150px; - max-height: 150px; - float: none; - border: 2px solid transparent; - } - - .enketo .question.or-appearance-columns-5.or-appearance-no-buttons .option-wrapper > label input { - width: 1px; - height: 1px; - position: relative; - top: 15px; - left: 15px; - z-index: -1; - } - - .enketo .question.or-appearance-columns-5.or-appearance-no-buttons .option-wrapper > label input:not([disabled]):not([readonly]) ~ .active:hover { - border-color: #9fc4e4; - } - - .enketo .question.or-appearance-columns-5.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active, - .enketo .question.or-appearance-columns-5.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active:hover, - .enketo .question.or-appearance-columns-5.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active, - .enketo .question.or-appearance-columns-5.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active:hover { - border-color: #555555; - } - - .enketo .question.or-appearance-columns-5.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active, - .enketo .question.or-appearance-columns-5.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active:hover { - border-color: #337ab7; - } - - .enketo .question.or-appearance-columns-5.or-appearance-no-buttons .option-wrapper > label input:focus ~ .active { - outline: 0; - box-shadow: 0 0 0 1px #66afe9, 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo .question.or-appearance-columns-5.or-appearance-no-buttons label { - width: 20%; - } - - .enketo .question.or-appearance-columns-5.or-appearance-no-buttons label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .question.or-appearance-columns-5 .option-wrapper { - -moz-flex-direction: row; - flex-direction: row; - flex-wrap: wrap; - } - - .enketo .question.or-appearance-columns-5 label { - width: calc(20% - 20px); - } - - .enketo .question.or-appearance-columns-5 label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .question.or-appearance-columns-6.or-appearance-no-buttons legend { - border: none; - } - - .enketo .question.or-appearance-columns-6.or-appearance-no-buttons .option-wrapper > label { - display: inline-block; - margin: 0; - padding: 10px !important; - } - - .enketo .question.or-appearance-columns-6.or-appearance-no-buttons .option-wrapper > label:hover { - background: none; - } - - .enketo .question.or-appearance-columns-6.or-appearance-no-buttons .option-wrapper > label .option-label { - padding: 2px; - } - - .enketo .question.or-appearance-columns-6.or-appearance-no-buttons .option-wrapper > label .active { - display: inline-block; - margin-left: 0; - margin-right: 0; - max-width: 150px; - max-height: 150px; - float: none; - border: 2px solid transparent; - } - - .enketo .question.or-appearance-columns-6.or-appearance-no-buttons .option-wrapper > label input { - width: 1px; - height: 1px; - position: relative; - top: 15px; - left: 15px; - z-index: -1; - } - - .enketo .question.or-appearance-columns-6.or-appearance-no-buttons .option-wrapper > label input:not([disabled]):not([readonly]) ~ .active:hover { - border-color: #9fc4e4; - } - - .enketo .question.or-appearance-columns-6.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active, - .enketo .question.or-appearance-columns-6.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active:hover, - .enketo .question.or-appearance-columns-6.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active, - .enketo .question.or-appearance-columns-6.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active:hover { - border-color: #555555; - } - - .enketo .question.or-appearance-columns-6.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active, - .enketo .question.or-appearance-columns-6.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active:hover { - border-color: #337ab7; - } - - .enketo .question.or-appearance-columns-6.or-appearance-no-buttons .option-wrapper > label input:focus ~ .active { - outline: 0; - box-shadow: 0 0 0 1px #66afe9, 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo .question.or-appearance-columns-6.or-appearance-no-buttons label { - width: 16.66666667%; - } - - .enketo .question.or-appearance-columns-6.or-appearance-no-buttons label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .question.or-appearance-columns-6 .option-wrapper { - -moz-flex-direction: row; - flex-direction: row; - flex-wrap: wrap; - } - - .enketo .question.or-appearance-columns-6 label { - width: calc(16.66666667% - 20px); - } - - .enketo .question.or-appearance-columns-6 label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .question.or-appearance-columns-7.or-appearance-no-buttons legend { - border: none; - } - - .enketo .question.or-appearance-columns-7.or-appearance-no-buttons .option-wrapper > label { - display: inline-block; - margin: 0; - padding: 10px !important; - } - - .enketo .question.or-appearance-columns-7.or-appearance-no-buttons .option-wrapper > label:hover { - background: none; - } - - .enketo .question.or-appearance-columns-7.or-appearance-no-buttons .option-wrapper > label .option-label { - padding: 2px; - } - - .enketo .question.or-appearance-columns-7.or-appearance-no-buttons .option-wrapper > label .active { - display: inline-block; - margin-left: 0; - margin-right: 0; - max-width: 150px; - max-height: 150px; - float: none; - border: 2px solid transparent; - } - - .enketo .question.or-appearance-columns-7.or-appearance-no-buttons .option-wrapper > label input { - width: 1px; - height: 1px; - position: relative; - top: 15px; - left: 15px; - z-index: -1; - } - - .enketo .question.or-appearance-columns-7.or-appearance-no-buttons .option-wrapper > label input:not([disabled]):not([readonly]) ~ .active:hover { - border-color: #9fc4e4; - } - - .enketo .question.or-appearance-columns-7.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active, - .enketo .question.or-appearance-columns-7.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active:hover, - .enketo .question.or-appearance-columns-7.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active, - .enketo .question.or-appearance-columns-7.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active:hover { - border-color: #555555; - } - - .enketo .question.or-appearance-columns-7.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active, - .enketo .question.or-appearance-columns-7.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active:hover { - border-color: #337ab7; - } - - .enketo .question.or-appearance-columns-7.or-appearance-no-buttons .option-wrapper > label input:focus ~ .active { - outline: 0; - box-shadow: 0 0 0 1px #66afe9, 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo .question.or-appearance-columns-7.or-appearance-no-buttons label { - width: 14.28571429%; - } - - .enketo .question.or-appearance-columns-7.or-appearance-no-buttons label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .question.or-appearance-columns-7 .option-wrapper { - -moz-flex-direction: row; - flex-direction: row; - flex-wrap: wrap; - } - - .enketo .question.or-appearance-columns-7 label { - width: calc(14.28571429% - 20px); - } - - .enketo .question.or-appearance-columns-7 label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .question.or-appearance-columns-8.or-appearance-no-buttons legend { - border: none; - } - - .enketo .question.or-appearance-columns-8.or-appearance-no-buttons .option-wrapper > label { - display: inline-block; - margin: 0; - padding: 10px !important; - } - - .enketo .question.or-appearance-columns-8.or-appearance-no-buttons .option-wrapper > label:hover { - background: none; - } - - .enketo .question.or-appearance-columns-8.or-appearance-no-buttons .option-wrapper > label .option-label { - padding: 2px; - } - - .enketo .question.or-appearance-columns-8.or-appearance-no-buttons .option-wrapper > label .active { - display: inline-block; - margin-left: 0; - margin-right: 0; - max-width: 150px; - max-height: 150px; - float: none; - border: 2px solid transparent; - } - - .enketo .question.or-appearance-columns-8.or-appearance-no-buttons .option-wrapper > label input { - width: 1px; - height: 1px; - position: relative; - top: 15px; - left: 15px; - z-index: -1; - } - - .enketo .question.or-appearance-columns-8.or-appearance-no-buttons .option-wrapper > label input:not([disabled]):not([readonly]) ~ .active:hover { - border-color: #9fc4e4; - } - - .enketo .question.or-appearance-columns-8.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active, - .enketo .question.or-appearance-columns-8.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active:hover, - .enketo .question.or-appearance-columns-8.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active, - .enketo .question.or-appearance-columns-8.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active:hover { - border-color: #555555; - } - - .enketo .question.or-appearance-columns-8.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active, - .enketo .question.or-appearance-columns-8.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active:hover { - border-color: #337ab7; - } - - .enketo .question.or-appearance-columns-8.or-appearance-no-buttons .option-wrapper > label input:focus ~ .active { - outline: 0; - box-shadow: 0 0 0 1px #66afe9, 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo .question.or-appearance-columns-8.or-appearance-no-buttons label { - width: 12.5%; - } - - .enketo .question.or-appearance-columns-8.or-appearance-no-buttons label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .question.or-appearance-columns-8 .option-wrapper { - -moz-flex-direction: row; - flex-direction: row; - flex-wrap: wrap; - } - - .enketo .question.or-appearance-columns-8 label { - width: calc(12.5% - 20px); - } - - .enketo .question.or-appearance-columns-8 label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .question.or-appearance-columns-9.or-appearance-no-buttons legend { - border: none; - } - - .enketo .question.or-appearance-columns-9.or-appearance-no-buttons .option-wrapper > label { - display: inline-block; - margin: 0; - padding: 10px !important; - } - - .enketo .question.or-appearance-columns-9.or-appearance-no-buttons .option-wrapper > label:hover { - background: none; - } - - .enketo .question.or-appearance-columns-9.or-appearance-no-buttons .option-wrapper > label .option-label { - padding: 2px; - } - - .enketo .question.or-appearance-columns-9.or-appearance-no-buttons .option-wrapper > label .active { - display: inline-block; - margin-left: 0; - margin-right: 0; - max-width: 150px; - max-height: 150px; - float: none; - border: 2px solid transparent; - } - - .enketo .question.or-appearance-columns-9.or-appearance-no-buttons .option-wrapper > label input { - width: 1px; - height: 1px; - position: relative; - top: 15px; - left: 15px; - z-index: -1; - } - - .enketo .question.or-appearance-columns-9.or-appearance-no-buttons .option-wrapper > label input:not([disabled]):not([readonly]) ~ .active:hover { - border-color: #9fc4e4; - } - - .enketo .question.or-appearance-columns-9.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active, - .enketo .question.or-appearance-columns-9.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active:hover, - .enketo .question.or-appearance-columns-9.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active, - .enketo .question.or-appearance-columns-9.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active:hover { - border-color: #555555; - } - - .enketo .question.or-appearance-columns-9.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active, - .enketo .question.or-appearance-columns-9.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active:hover { - border-color: #337ab7; - } - - .enketo .question.or-appearance-columns-9.or-appearance-no-buttons .option-wrapper > label input:focus ~ .active { - outline: 0; - box-shadow: 0 0 0 1px #66afe9, 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo .question.or-appearance-columns-9.or-appearance-no-buttons label { - width: 11.11111111%; - } - - .enketo .question.or-appearance-columns-9.or-appearance-no-buttons label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .question.or-appearance-columns-9 .option-wrapper { - -moz-flex-direction: row; - flex-direction: row; - flex-wrap: wrap; - } - - .enketo .question.or-appearance-columns-9 label { - width: calc(11.11111111% - 20px); - } - - .enketo .question.or-appearance-columns-9 label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .question.or-appearance-columns-10.or-appearance-no-buttons legend { - border: none; - } - - .enketo .question.or-appearance-columns-10.or-appearance-no-buttons .option-wrapper > label { - display: inline-block; - margin: 0; - padding: 10px !important; - } - - .enketo .question.or-appearance-columns-10.or-appearance-no-buttons .option-wrapper > label:hover { - background: none; - } - - .enketo .question.or-appearance-columns-10.or-appearance-no-buttons .option-wrapper > label .option-label { - padding: 2px; - } - - .enketo .question.or-appearance-columns-10.or-appearance-no-buttons .option-wrapper > label .active { - display: inline-block; - margin-left: 0; - margin-right: 0; - max-width: 150px; - max-height: 150px; - float: none; - border: 2px solid transparent; - } - - .enketo .question.or-appearance-columns-10.or-appearance-no-buttons .option-wrapper > label input { - width: 1px; - height: 1px; - position: relative; - top: 15px; - left: 15px; - z-index: -1; - } - - .enketo .question.or-appearance-columns-10.or-appearance-no-buttons .option-wrapper > label input:not([disabled]):not([readonly]) ~ .active:hover { - border-color: #9fc4e4; - } - - .enketo .question.or-appearance-columns-10.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active, - .enketo .question.or-appearance-columns-10.or-appearance-no-buttons .option-wrapper > label input[disabled]:checked ~ .active:hover, - .enketo .question.or-appearance-columns-10.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active, - .enketo .question.or-appearance-columns-10.or-appearance-no-buttons .option-wrapper > label input[readonly]:checked ~ .active:hover { - border-color: #555555; - } - - .enketo .question.or-appearance-columns-10.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active, - .enketo .question.or-appearance-columns-10.or-appearance-no-buttons .option-wrapper > label input:checked ~ .active:hover { - border-color: #337ab7; - } - - .enketo .question.or-appearance-columns-10.or-appearance-no-buttons .option-wrapper > label input:focus ~ .active { - outline: 0; - box-shadow: 0 0 0 1px #66afe9, 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo .question.or-appearance-columns-10.or-appearance-no-buttons label { - width: 10%; - } - - .enketo .question.or-appearance-columns-10.or-appearance-no-buttons label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .question.or-appearance-columns-10 .option-wrapper { - -moz-flex-direction: row; - flex-direction: row; - flex-wrap: wrap; - } - - .enketo .question.or-appearance-columns-10 label { - width: calc(10% - 20px); - } - - .enketo .question.or-appearance-columns-10 label img.active { - max-width: 100%; - max-height: 100%; - } - - .enketo .touch .question:not(.or-appearance-no-buttons):not(.or-appearance-label):not(.or-appearance-list-nolabel):not(.or-appearance-likert).or-columns-initialized .option-wrapper > label { - margin-right: 10px; - } - - .enketo .touch .or[dir=rtl] .question:not(.or-appearance-no-buttons):not(.or-appearance-label):not(.or-appearance-list-nolabel):not(.or-appearance-likert).or-columns-initialized .option-wrapper > label { - margin-left: 10px; - margin-right: inherit; - } - - .enketo [type=range] { - padding: 2.5px; - width: 100%; - background: transparent; - font: 1em/1 arial, sans-serif; - z-index: 10; - } - - .enketo [type=range], - .enketo [type=range]::-webkit-slider-thumb { - -webkit-appearance: none; - } - - .enketo [type=range]::-webkit-slider-runnable-track { - box-sizing: border-box; - border: none; - width: 100%; - height: 1px; - background: #333333; - border-radius: 0.5px; - } - - .enketo [type=range]::-moz-range-track { - box-sizing: border-box; - border: none; - width: 100%; - height: 1px; - background: #333333; - border-radius: 0.5px; - } - - .enketo [type=range]::-ms-track { - box-sizing: border-box; - border: none; - width: 100%; - height: 1px; - background: #333333; - border-radius: 0.5px; - } - - .enketo [type=range]::-webkit-slider-thumb { - margin-top: -9.5px; - box-sizing: border-box; - border: 1px solid #337ab7; - width: 20px; - height: 20px; - border-radius: 50%; - background: #337ab7; - cursor: pointer; - } - - .enketo [type=range]::-moz-range-thumb { - box-sizing: border-box; - border: 1px solid #337ab7; - width: 20px; - height: 20px; - border-radius: 50%; - background: #337ab7; - cursor: pointer; - } - - .enketo [type=range]::-ms-thumb { - margin-top: 0; - box-sizing: border-box; - border: 1px solid #337ab7; - width: 20px; - height: 20px; - border-radius: 50%; - background: #337ab7; - cursor: pointer; - } - - .enketo [type=range]::-ms-tooltip { - display: none; - } - - .enketo [type=range]:focus { - outline: 0; - } - - .enketo [type=range]:focus::-webkit-slider-thumb { - outline: 0; - box-shadow: 0 0 0 1px #66afe9, 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo [type=range]:focus::-moz-range-thumb { - outline: 0; - box-shadow: 0 0 0 1px #66afe9, 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo [type=range]:focus::-ms-thumb { - outline: 0; - box-shadow: 0 0 0 1px #66afe9, 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo [type=range].empty::-webkit-slider-thumb { - background: transparent; - border-color: transparent; - } - - .enketo [type=range].empty::-moz-range-thumb { - background: transparent; - border-color: transparent; - } - - .enketo [type=range].empty::-ms-thumb { - background: transparent; - border-color: transparent; - } - - .enketo [type=range][disabled]::-webkit-slider-thumb { - opacity: 0.7; - } - - .enketo [type=range][disabled]::-moz-range-thumb { - opacity: 0.7; - } - - .enketo [type=range][disabled]::-ms-thumb { - opacity: 0.7; - } - - .enketo .range-widget { - position: relative; - } - - .enketo .range-widget__wrap { - width: 100%; - height: 200px; - z-index: 0; - text-align: center; - } - - .enketo .range-widget__current { - padding-bottom: 10px; - vertical-align: middle; - line-height: 98.5px; - min-height: 108.5px; - } - - .enketo .range-widget__ticks { - height: 20px; - box-sizing: border-box; - margin-left: 12px; - margin-right: 12px; - display: flex; - flex-direction: row; - flex-wrap: nowrap; - } - - .enketo .range-widget__ticks span { - flex: 1; - border-left: 1px solid #333333; - } - - .enketo .range-widget__ticks span:last-child { - border-right: 1px solid #333333; - } - - .enketo .range-widget__scale { - display: flex; - padding-top: 10px; - justify-content: space-between; - } - - .enketo .range-widget__scale__start, - .enketo .range-widget__scale__end, - .enketo .range-widget__scale__between { - width: 20px; - opacity: 0.7; - font-weight: normal; - } - - .enketo .range-widget [type=range] { - position: absolute; - top: 93.5px; - left: 0; - } - - .enketo .range-widget .btn-reset { - margin: 15px; - } - - .enketo .or-appearance-vertical input[type=range], - .enketo .or-appearance-distress input[type=range] { - transform: rotate(-90deg); - width: 350px; - margin: 0 10px; - top: 158px; - left: -85px; - right: -85px; - } - - .enketo .or-appearance-vertical .range-widget__wrap, - .enketo .or-appearance-distress .range-widget__wrap { - display: flex; - flex-wrap: nowrap; - flex-direction: row; - height: 350px; - width: 200px; - margin-top: 20px; - } - - .enketo .or-appearance-vertical .range-widget__current, - .enketo .or-appearance-distress .range-widget__current { - flex: 1; - padding-right: 10px; - padding-bottom: 0; - line-height: 350px; - } - - .enketo .or-appearance-vertical .range-widget__ticks, - .enketo .or-appearance-distress .range-widget__ticks { - width: 20px; - height: auto; - border-right: none; - margin-left: 0; - margin-right: 0; - margin-top: 12px; - margin-bottom: 12px; - flex-direction: column; - } - - .enketo .or-appearance-vertical .range-widget__ticks span, - .enketo .or-appearance-distress .range-widget__ticks span { - border-top: 1px solid #333333; - border-left: none; - } - - .enketo .or-appearance-vertical .range-widget__ticks span:last-child, - .enketo .or-appearance-distress .range-widget__ticks span:last-child { - border-bottom: 1px solid #333333; - border-right: none; - } - - .enketo .or-appearance-vertical .range-widget__scale, - .enketo .or-appearance-distress .range-widget__scale { - flex: 1; - padding-top: 0; - padding-left: 10px; - flex-direction: column-reverse; - } - - .enketo .or[dir=rtl] .or-appearance-vertical input[type=range], - .enketo .or[dir=rtl] .or-appearance-distress input[type=range] { - transform: rotate(90deg); - } - - .enketo .or-appearance-distress input[type=range] { - top: 173px; - left: -127.5px; - right: -127.5px; - } - - .enketo .or-appearance-distress input[type=range]::-webkit-slider-runnable-track { - box-sizing: border-box; - border: none; - width: 100%; - height: 4px; - background: linear-gradient(to bottom, #f9f9f9 0%, whitesmoke 100%); - border-radius: 2px; - } - - .enketo .or-appearance-distress input[type=range]::-moz-range-track { - box-sizing: border-box; - border: none; - width: 100%; - height: 4px; - background: linear-gradient(to bottom, #f9f9f9 0%, whitesmoke 100%); - border-radius: 2px; - } - - .enketo .or-appearance-distress input[type=range]::-ms-track { - box-sizing: border-box; - border: none; - width: 100%; - height: 4px; - background: linear-gradient(to bottom, #f9f9f9 0%, whitesmoke 100%); - border-radius: 2px; - } - - .enketo .or-appearance-distress input[type=range]:not(.empty)::-webkit-slider-thumb { - margin-top: -8px; - box-sizing: border-box; - border: 1px solid #3a94a5; - width: 20px; - height: 20px; - border-radius: 50%; - background: #3a94a5; - cursor: pointer; - } - - .enketo .or-appearance-distress input[type=range]:not(.empty)::-moz-range-thumb { - box-sizing: border-box; - border: 1px solid #3a94a5; - width: 20px; - height: 20px; - border-radius: 50%; - background: #3a94a5; - cursor: pointer; - } - - .enketo .or-appearance-distress input[type=range]:not(.empty)::-ms-thumb { - box-sizing: border-box; - border: 1px solid #3a94a5; - width: 20px; - height: 20px; - border-radius: 50%; - background: #3a94a5; - cursor: pointer; - } - - .enketo .or-appearance-distress .range-widget__wrap { - width: 115px; - flex-direction: row-reverse; - flex-wrap: wrap; - padding-top: 15px; - height: 410px; - } - - .enketo .or-appearance-distress .range-widget__current { - visibility: hidden; - padding: 0 8.5px; - } - - .enketo .or-appearance-distress .range-widget__current:empty:after { - display: block; - content: '-'; - } - - .enketo .or-appearance-distress .range-widget__ticks { - width: 6px; - } - - .enketo .or-appearance-distress .range-widget__bg { - width: 30px; - border-radius: 15px; - border: 1px solid #aaaaaa; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - border-bottom: none; - margin-top: -15px; - background-image: linear-gradient(#e20418, #fdd303 50%, #3cb643); - background-repeat: no-repeat; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFE20418', endColorstr='#FF3CB643', GradientType=0); - z-index: 1; - } - - .enketo .or-appearance-distress .range-widget__scale { - position: relative; - text-align: end; - align-items: flex-end; - padding: 0 5.5px; - } - - .enketo .or-appearance-distress .range-widget__bulb { - width: 60px; - height: 60px; - border: 1px solid #aaaaaa; - border-radius: 30px; - margin: -7px auto 10px auto; - background: #3cb643; - position: relative; - } - - .enketo .or-appearance-distress .range-widget__bulb__inner { - width: 24px; - height: 24px; - border-radius: 12px; - background: #3a94a5; - margin: 17px; - } - - .enketo .or-appearance-distress .range-widget__bulb__mercury { - position: absolute; - left: calc(50% - 4px / 2); - right: calc(50% - 4px / 2); - bottom: 30px; - background: #3a94a5; - min-height: 25px; - width: 4px; - z-index: 100; - } - - .enketo .or-appearance-distress .range-widget .btn-reset { - position: absolute; - top: 140px; - left: 70px; - right: 70px; - } - - .enketo .url-widget { - margin-top: 20px; - } - - .enketo .or-appearance-rating { - /* plain stars, hover behavior */ - } - - .enketo .or-appearance-rating .rating-widget__rating { - display: inline-block; - width: 100%; - height: auto; - } - - .enketo .or-appearance-rating input[type=radio].rating-widget__rating__star, - .enketo .or-appearance-rating input[type=radio].rating-widget__rating__star:checked { - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; - -ms-appearance: none; - display: inline-block; - width: 40px; - height: 40px; - margin-right: 5px; - margin-bottom: 0; - margin-top: 0; - border-style: solid; - background-color: transparent; - background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%27-6%201%2053%2050%27%3E%200%203%20%3Cpath%20d%3D%27m25%2C1%206%2C17h18l-14%2C11%205%2C17-15-10-15%2C10%205-17-14-11h18z%27%20style%3D%27fill%3A%23337ab7%27%20%2F%3E%200%204%20%3C%2Fsvg%3E"); - background-size: 35px 25px; - background-position: -3px; - background-repeat: no-repeat; - border-color: transparent !important; - border-radius: 0; - } - - .enketo .or-appearance-rating .empty input.rating-widget__rating__star:not(:hover), - .enketo .or-appearance-rating .empty input.rating-widget__rating__star:hover:disabled, - .enketo .or-appearance-rating .rating-widget__rating__star:checked ~ .rating-widget__rating__star:not(:hover), - .enketo .or-appearance-rating .rating-widget__rating__star:checked ~ .rating-widget__rating__star:hover:disabled { - background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%27-6%201%2053%2050%27%3E%200%203%20%3Cpath%20d%3D%27m25%2C1%206%2C17h18l-14%2C11%205%2C17-15-10-15%2C10%205-17-14-11h18z%27%20style%3D%27stroke%3A%20black%3B%20fill%3A%20transparent%3B%27%2F%3E%200%204%20%3C%2Fsvg%3E"); - } - - .enketo .or-appearance-my-widget input[type="range"].empty { - opacity: 0.5; - } - - .enketo .or-appearance-likert .option-wrapper { - /*IE10*/ - display: flex; - flex-wrap: nowrap; - -moz-flex-direction: row; - flex-direction: row; - } - - .enketo .or-appearance-likert .option-wrapper > label { - flex: 1; - /*IE10*/ - display: flex; - flex-wrap: nowrap; - -moz-flex-direction: column; - flex-direction: column; - margin: 0; - float: none; - padding-left: 0 !important; - padding-right: 0; - } - - .enketo .or-appearance-likert .option-wrapper > label input[type=radio], - .enketo .or-appearance-likert .option-wrapper > label input[type=checkbox] { - position: relative; - left: 50%; - padding: 0; - margin-left: -10px; - background-color: white; - z-index: 10; - } - - .enketo .or-appearance-likert .option-wrapper > label .active { - margin: 0; - } - - .enketo .or-appearance-likert .option-wrapper > label img.active { - margin: 0 auto; - } - - .enketo .or-appearance-likert .option-wrapper > label .option-label { - position: relative; - text-align: center; - margin-top: -8.5px; - padding-top: 15px; - border-top: 3px solid #cccccc; - font-size: 12px; - font-family: 'OpenSans', Arial, sans-serif; - font-weight: normal; - font-style: normal; - } - - .enketo .or-appearance-likert .option-wrapper > label:first-of-type .option-label::after { - content: ''; - display: block; - position: absolute; - top: -3px; - width: 50%; - background-color: white; - height: 10px; - left: 0; - } - - .enketo .or-appearance-likert .option-wrapper > label:last-of-type .option-label::after { - content: ''; - display: block; - position: absolute; - top: -3px; - width: 50%; - background-color: white; - height: 10px; - right: 0; - } - - .enketo .or-appearance-likert .option-wrapper > label:hover { - background-color: transparent; - } - - .enketo .or-appearance-likert:hover .option-wrapper > label:first-of-type .option-label::after, - .enketo .or-appearance-likert:hover .option-wrapper > label:last-of-type .option-label::after { - background-color: white; - } - - .enketo .or-appearance-likert.focus .option-wrapper > label:first-of-type .option-label::after, - .enketo .or-appearance-likert.focus .option-wrapper > label:last-of-type .option-label::after { - background-color: white; - } - - .enketo .or[dir="rtl"] .or-appearance-likert .option-wrapper > label { - margin-right: 0; - } - - .enketo .or[dir="rtl"] .or-appearance-likert .option-wrapper > label:first-of-type .option-label::after { - left: auto; - right: 0; - } - - .enketo .or[dir="rtl"] .or-appearance-likert .option-wrapper > label:last-of-type .option-label::after { - right: auto; - left: 0; - } - - .enketo .or[dir="rtl"] .or-appearance-likert .option-wrapper > label input[type=radio], - .enketo .or[dir="rtl"] .or-appearance-likert .option-wrapper > label input[type=checkbox] { - right: 50%; - margin-right: -10px; - } - - .enketo .or[dir="rtl"] .or-appearance-likert .option-wrapper .option-label { - margin-right: 0; - } - - .enketo .or-repeat .or-appearance-likert .option-wrapper > label:first-of-type .option-label::after, - .enketo .or-repeat .or-appearance-likert .option-wrapper > label:last-of-type .option-label::after, - .enketo .or-repeat .or-appearance-likert .option-wrapper > label input[type=radio], - .enketo .or-repeat .or-appearance-likert .option-wrapper > label input[type=checkbox] { - background-color: white; - } - - .enketo .bootstrap-select { - margin-top: 15px; - } - - .enketo .bootstrap-select .dropdown-toggle { - width: 374.3272px; - font-family: 'OpenSans', Arial, sans-serif; - font-weight: normal; - font-style: normal; - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; - text-align: left; - } - - .enketo .bootstrap-select .dropdown-toggle .caret { - position: absolute; - top: 14px; - right: 12px; - } - - .enketo .bootstrap-select .dropdown-toggle .selected { - width: calc(100% - 12px); - display: inline-block; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - - .enketo .bootstrap-select .dropdown-toggle ~ .dropdown-menu { - max-height: 200px; - max-width: 100%; - overflow: auto; - } - - .enketo .bootstrap-select .dropdown-toggle ~ .dropdown-menu .option-wrapper { - padding-left: 5px; - background-color: transparent; - color: black; - text-decoration: none; - } - - .enketo .bootstrap-select .dropdown-toggle ~ .dropdown-menu .option-wrapper label { - font-family: 'OpenSans', Arial, sans-serif; - font-weight: normal; - font-style: normal; - padding-top: 2px; - padding-bottom: 2px; - padding-left: 0px; - font-size: 15px; - } - - .enketo .bootstrap-select .dropdown-toggle ~ .dropdown-menu .option-wrapper label:hover { - background: transparent; - } - - .enketo .bootstrap-select .dropdown-toggle ~ .dropdown-menu .option-wrapper label .option-label { - margin-top: 1px; - } - - .enketo .readonly .bootstrap-select .dropdown-toggle { - opacity: 0.7; - } - - .enketo .or[dir="rtl"] .bootstrap-select .dropdown-toggle { - text-align: right; - } - - .enketo .or[dir="rtl"] .bootstrap-select .dropdown-toggle .caret { - margin-left: 0; - margin-right: 10px; - left: 12px; - right: auto; - } - - .enketo .btn-group { - position: relative; - vertical-align: middle; - } - - .enketo .btn-group > .btn { - position: relative; - } - - .enketo .btn-group > .btn:hover, - .enketo .btn-group > .btn:focus, - .enketo .btn-group > .btn:active, - .enketo .btn-group > .btn.active { - z-index: 2; - } - - .enketo .btn-group .dropdown-toggle:active, - .enketo .btn-group.open .dropdown-toggle { - outline: 0; - } - - .enketo .btn-group.open .dropdown-toggle { - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - } - - .enketo .btn-group.open .dropdown-toggle.btn-link { - box-shadow: none; - } - - .enketo .btn .caret { - margin-left: 0; - } - - .enketo .mobileselect { - margin-left: 10px; - } - - .enketo .or-analog-scale-initialized { - position: relative; - } - - .enketo .or-analog-scale-initialized .label-content { - display: flex; - flex-direction: column; - } - - .enketo .or-analog-scale-initialized .label-content .question-label.active { - display: inline; - } - - .enketo .or-analog-scale-initialized .label-content .question-label.active[lang] { - display: none; - } - - .enketo .or-analog-scale-initialized .range-widget__current { - visibility: hidden; - } - - .enketo .or-analog-scale-initialized > .widget:not(.or-comment-widget) { - margin: 0 0 9px 0; - } - - .enketo .or-analog-scale-initialized .show-value__box { - background-color: black; - text-align: center; - color: white; - max-width: 170px; - padding: 10px 35px; - margin: 20px auto; - font-family: 'OpenSans', Arial, sans-serif; - font-weight: normal; - font-style: normal; - } - - .enketo .or-analog-scale-initialized .show-value__value { - font-weight: bold; - font-size: 18.75px; - padding: 8px; - display: block; - min-width: 1px; - min-height: 40.75px; - } - - .enketo .or-analog-scale-initialized .max-label, - .enketo .or-analog-scale-initialized .min-label { - font-family: 'OpenSans', Arial, sans-serif; - font-weight: normal; - font-style: normal; - text-align: center; - } - - .enketo .or-analog-scale-initialized .min-label { - order: 1; - } - - .enketo .or-analog-scale-initialized .range-widget { - order: 4; - } - - .enketo .or-analog-scale-initialized .max-label { - order: 5; - } - - .enketo .or-analog-scale-initialized:not(.or-appearance-no-ticks) .range-widget__ticks span { - padding: 0 25%; - background-image: linear-gradient(0deg, black 1px, transparent 0px); - background-repeat: repeat-y; - background-origin: content-box; - background-size: 100% 10%; - } - - .enketo .or-analog-scale-initialized:not(.or-appearance-no-ticks) .range-widget__ticks__scale__start, - .enketo .or-analog-scale-initialized:not(.or-appearance-no-ticks) .range-widget__ticks__scale__end { - display: none; - } - - .enketo .or-analog-scale-initialized:not(.or-appearance-no-ticks).or-appearance-horizontal .range-widget__ticks span { - padding: 4px 0; - background-image: linear-gradient(270deg, black 1px, transparent 0px); - background-repeat: repeat-x; - background-origin: content-box; - background-size: 10% 100%; - } - - .enketo .or-analog-scale-initialized.or-appearance-no-ticks .range-widget__scale__start, - .enketo .or-analog-scale-initialized.or-appearance-no-ticks .range-widget__scale__end { - display: none; - } - - .enketo .or-analog-scale-initialized.or-appearance-horizontal .analog-scale-widget { - display: flex; - } - - .enketo .or-analog-scale-initialized.or-appearance-horizontal .range-widget { - flex: 100%; - } - - .enketo .or-analog-scale-initialized.or-appearance-horizontal .range-widget__wrap { - height: 117px; - } - - .enketo .or-analog-scale-initialized.or-appearance-horizontal .range-widget__current { - line-height: 38.5px; - min-height: 48.5px; - } - - .enketo .or-analog-scale-initialized.or-appearance-horizontal .range-widget [type=range] { - top: 33.5px; - } - - .enketo .or-analog-scale-initialized.or-appearance-horizontal .range-widget .btn-reset { - margin-left: auto; - margin-right: auto; - } - - .enketo .or-analog-scale-initialized.or-appearance-horizontal .max-label, - .enketo .or-analog-scale-initialized.or-appearance-horizontal .min-label { - width: 80px; - align-self: center; - } - - .enketo .or-analog-scale-initialized.or-appearance-vertical:not(.disabled) { - /*IE10*/ - display: flex; - flex: 100%; - -moz-flex-direction: row; - flex-direction: row; - } - - .enketo .or-analog-scale-initialized.or-appearance-vertical:not(.disabled) .label-content { - flex: 100%; - } - - .enketo .or-analog-scale-initialized.or-appearance-vertical:not(.disabled) .analog-scale-widget { - width: 200px; - } - - .enketo .or-analog-scale-initialized.or-appearance-show-scale:not(.or-appearance-horizontal) .range-widget__wrap { - flex-direction: row-reverse; - flex-wrap: wrap; - } - - .enketo .or-analog-scale-initialized.or-appearance-show-scale:not(.or-appearance-horizontal) .range-widget__scale { - position: relative; - text-align: end; - align-items: flex-end; - padding: 0 13px; - } - - .enketo .or-analog-scale-initialized.or-appearance-show-scale:not(.or-appearance-horizontal) .range-widget__scale__start, - .enketo .or-analog-scale-initialized.or-appearance-show-scale:not(.or-appearance-horizontal) .range-widget__scale__end, - .enketo .or-analog-scale-initialized.or-appearance-show-scale:not(.or-appearance-horizontal) .range-widget__scale__between { - width: 24px; - } - - .enketo .or-analog-scale-initialized.or-appearance-show-scale:not(.or-appearance-horizontal) .range-widget__current { - padding: 0 13px; - } - - .enketo .or-analog-scale-initialized.or-appearance-show-scale:not(.or-appearance-horizontal) .range-widget .btn-reset { - position: absolute; - top: 140px; - left: 100px; - } - - .enketo .or-analog-scale-initialized [class*="or-constraint"], - .enketo .or-analog-scale-initialized .or-required-msg { - order: 5; - } - - .enketo .pages.or [role="page"].or-analog-scale-initialized.current:not(.or-appearance-horizontal) { - /*IE10*/ - display: flex; - } - - .enketo .pages.or [role="page"].or-analog-scale-initialized:not(.current) { - display: none; - } - - .enketo .datalist { - list-style: none; - display: none; - background: white; - position: absolute; - left: 0; - top: 0; - max-height: 300px; - overflow-y: auto; - z-index: 10; - padding: 0; - border: 1px solid #555555; - } - - .enketo .datalist:empty { - display: none !important; - } - - .enketo .datalist li { - padding: 5px; - } - - .enketo .datalist li.active { - background: #3875d7; - color: white; - } - - .enketo input[type=text].autocomplete { - width: 374.3272px; - } - - .enketo input[type=text].autocomplete.notfound { - color: #999999; - } - - .enketo .touch input[type=text].autocomplete { - width: 100%; - } - - @media screen and (max-width: 720px) { - .enketo body { - padding: 0 !important; - margin: 0; - } - .enketo .main { - margin: 0; - padding: 0; - } - .enketo .preview-header { - top: -5px; - } - .enketo .paper { - border-radius: 0; - padding-top: 0; - } - .enketo .form-header { - position: relative; - top: 0; - padding: 0 14px; - border-bottom: 1px solid #bbbbbb; - min-height: 0; - margin-left: -45px; - margin-right: -45px; - width: calc(100% + (2 * 45px)); - } - .enketo .form-header .form-language-selector { - padding-top: 16px; - padding-bottom: 16px; - } - .enketo .form-header .form-language-selector span { - display: none; - } - .enketo #form-title { - padding-top: 25px; - } - } - - @media screen and (max-width: 600px) { - .enketo body { - line-height: 1.4999985; - } - .enketo .or-group:not(.or-appearance-no-collapse) > h4 { - margin-left: 8px; - } - .enketo .touch .question.simple-select .option-wrapper > label { - padding: 10px 5px; - } - .enketo .main .paper { - padding: 0 30px 30px 30px; - } - .enketo .form-header { - margin-left: -30px; - margin-right: -30px; - width: calc(100% + (2 * 30px)); - } - .enketo .form-footer { - margin: 30px -30px -30px -30px; - } - } - - @media screen and (max-width: 400px) { - .enketo body { - line-height: 1.5571413; - } - .enketo input[type="text"], - .enketo input[type="password"], - .enketo input[type="url"], - .enketo input[type="email"], - .enketo input[type="date"], - .enketo input[type="number"], - .enketo input[type="time"], - .enketo input[type="datetime-local"], - .enketo input[type="file"], - .enketo input[type="tel"] { - width: 100%; - } - .enketo select, - .enketo textarea { - width: 100%; - } - .enketo .or-group:not(.or-appearance-no-collapse) > h4 { - margin-left: 15px; - } - .enketo .main .paper { - padding: 0 20px 20px 20px; - } - .enketo .form-header { - margin-left: -20px; - margin-right: -20px; - width: calc(100% + (2 * 20px)); - } - .enketo .form-header .form-language-selector { - border-right: none; - } - .enketo .form-footer { - margin: 20px -20px -20px -20px; - } - } - - .enketo input[type=text], - .enketo .print-input-text, - .enketo input[type=tel], - .enketo input[type=password], - .enketo input[type=url], - .enketo input[type=email], - .enketo input[type=file], - .enketo input[type=date], - .enketo input[type=month], - .enketo input[type=time], - .enketo input[type=datetime-local], - .enketo input[type=number], - .enketo select, - .enketo textarea, - .enketo input[type="tel"] { - display: block; - height: 34px; - padding: 6px 12px; - font-family: 'OpenSans', Arial, sans-serif; - font-weight: normal; - font-style: normal; - font-size: 15px; - line-height: 1.42857; - color: #555555; - background-color: white; - background-image: none; - border: 1px solid #cccccc; - border-radius: 4px; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; - } - - .enketo input[type=text]:focus, - .enketo .print-input-text:focus, - .enketo input[type=tel]:focus, - .enketo input[type=password]:focus, - .enketo input[type=url]:focus, - .enketo input[type=email]:focus, - .enketo input[type=file]:focus, - .enketo input[type=date]:focus, - .enketo input[type=month]:focus, - .enketo input[type=time]:focus, - .enketo input[type=datetime-local]:focus, - .enketo input[type=number]:focus, - .enketo select:focus, - .enketo textarea:focus { - border-color: #66afe9; - outline: 0; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo input[type=text]::-moz-placeholder, - .enketo .print-input-text::-moz-placeholder, - .enketo input[type=tel]::-moz-placeholder, - .enketo input[type=password]::-moz-placeholder, - .enketo input[type=url]::-moz-placeholder, - .enketo input[type=email]::-moz-placeholder, - .enketo input[type=file]::-moz-placeholder, - .enketo input[type=date]::-moz-placeholder, - .enketo input[type=month]::-moz-placeholder, - .enketo input[type=time]::-moz-placeholder, - .enketo input[type=datetime-local]::-moz-placeholder, - .enketo input[type=number]::-moz-placeholder, - .enketo select::-moz-placeholder, - .enketo textarea::-moz-placeholder { - color: #999999; - opacity: 1; - } - - .enketo input[type=text]:-ms-input-placeholder, - .enketo .print-input-text:-ms-input-placeholder, - .enketo input[type=tel]:-ms-input-placeholder, - .enketo input[type=password]:-ms-input-placeholder, - .enketo input[type=url]:-ms-input-placeholder, - .enketo input[type=email]:-ms-input-placeholder, - .enketo input[type=file]:-ms-input-placeholder, - .enketo input[type=date]:-ms-input-placeholder, - .enketo input[type=month]:-ms-input-placeholder, - .enketo input[type=time]:-ms-input-placeholder, - .enketo input[type=datetime-local]:-ms-input-placeholder, - .enketo input[type=number]:-ms-input-placeholder, - .enketo select:-ms-input-placeholder, - .enketo textarea:-ms-input-placeholder { - color: #999999; - } - - .enketo input[type=text]::-webkit-input-placeholder, - .enketo .print-input-text::-webkit-input-placeholder, - .enketo input[type=tel]::-webkit-input-placeholder, - .enketo input[type=password]::-webkit-input-placeholder, - .enketo input[type=url]::-webkit-input-placeholder, - .enketo input[type=email]::-webkit-input-placeholder, - .enketo input[type=file]::-webkit-input-placeholder, - .enketo input[type=date]::-webkit-input-placeholder, - .enketo input[type=month]::-webkit-input-placeholder, - .enketo input[type=time]::-webkit-input-placeholder, - .enketo input[type=datetime-local]::-webkit-input-placeholder, - .enketo input[type=number]::-webkit-input-placeholder, - .enketo select::-webkit-input-placeholder, - .enketo textarea::-webkit-input-placeholder { - color: #999999; - } - - .enketo input[type=text][disabled], - .enketo input[type=text][readonly], - .enketo fieldset[disabled] input[type=text], - .enketo .print-input-text[disabled], - .enketo .print-input-text[readonly], - .enketo fieldset[disabled] .print-input-text, - .enketo input[type=tel][disabled], - .enketo input[type=tel][readonly], - .enketo fieldset[disabled] input[type=tel], - .enketo input[type=password][disabled], - .enketo input[type=password][readonly], - .enketo fieldset[disabled] input[type=password], - .enketo input[type=url][disabled], - .enketo input[type=url][readonly], - .enketo fieldset[disabled] input[type=url], - .enketo input[type=email][disabled], - .enketo input[type=email][readonly], - .enketo fieldset[disabled] input[type=email], - .enketo input[type=file][disabled], - .enketo input[type=file][readonly], - .enketo fieldset[disabled] input[type=file], - .enketo input[type=date][disabled], - .enketo input[type=date][readonly], - .enketo fieldset[disabled] input[type=date], - .enketo input[type=month][disabled], - .enketo input[type=month][readonly], - .enketo fieldset[disabled] input[type=month], - .enketo input[type=time][disabled], - .enketo input[type=time][readonly], - .enketo fieldset[disabled] input[type=time], - .enketo input[type=datetime-local][disabled], - .enketo input[type=datetime-local][readonly], - .enketo fieldset[disabled] input[type=datetime-local], - .enketo input[type=number][disabled], - .enketo input[type=number][readonly], - .enketo fieldset[disabled] input[type=number], - .enketo select[disabled], - .enketo select[readonly], - .enketo fieldset[disabled] select, - .enketo textarea[disabled], - .enketo textarea[readonly], - .enketo fieldset[disabled] textarea { - cursor: not-allowed; - background-color: #eeeeee; - opacity: 1; - } - - .enketo input:not([readonly]) + .widget input[type=text][readonly], - .enketo input:not([readonly]) + .widget input[type=tel][readonly], - .enketo input:not([readonly]) + .widget input[type=password][readonly], - .enketo input:not([readonly]) + .widget input[type=url][readonly], - .enketo input:not([readonly]) + .widget input[type=email][readonly], - .enketo input:not([readonly]) + .widget input[type=file][readonly], - .enketo input:not([readonly]) + .widget input[type=date][readonly], - .enketo input:not([readonly]) + .widget input[type=month][readonly], - .enketo input:not([readonly]) + .widget input[type=time][readonly], - .enketo input:not([readonly]) + .widget input[type=datetime-local][readonly], - .enketo input:not([readonly]) + .widget input[type=number][readonly], - .enketo input:not([readonly]) + .widget select[readonly], - .enketo input:not([readonly]) + .widget textarea[readonly] { - background-color: white; - cursor: auto; - } - - .enketo input:not([readonly]) + .widget input[type=text][readonly]:hover, - .enketo input:not([readonly]) + .widget input[type=tel][readonly]:hover, - .enketo input:not([readonly]) + .widget input[type=password][readonly]:hover, - .enketo input:not([readonly]) + .widget input[type=url][readonly]:hover, - .enketo input:not([readonly]) + .widget input[type=email][readonly]:hover, - .enketo input:not([readonly]) + .widget input[type=file][readonly]:hover, - .enketo input:not([readonly]) + .widget input[type=date][readonly]:hover, - .enketo input:not([readonly]) + .widget input[type=month][readonly]:hover, - .enketo input:not([readonly]) + .widget input[type=time][readonly]:hover, - .enketo input:not([readonly]) + .widget input[type=datetime-local][readonly]:hover, - .enketo input:not([readonly]) + .widget input[type=number][readonly]:hover, - .enketo input:not([readonly]) + .widget select[readonly]:hover, - .enketo input:not([readonly]) + .widget textarea[readonly]:hover { - background-color: white; - } - - .enketo fieldset { - padding: 0; - margin: 0; - border: 0; - min-width: 0; - } - - .enketo input[type="search"] { - box-sizing: border-box; - } - - .enketo input[type="radio"], - .enketo input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - /* IE8-9 */ - line-height: normal; - } - - .enketo input[type="file"] { - display: block; - } - - .enketo input[type="range"] { - display: block; - width: 100%; - } - - .enketo select[multiple], - .enketo select[size] { - height: auto; - } - - .enketo input[type="file"]:focus, - .enketo input[type="radio"]:focus, - .enketo input[type="checkbox"]:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; - } - - .enketo input[type="search"] { - -webkit-appearance: none; - } - - .enketo input[type="date"] { - line-height: 34px; - } - - .enketo input[type="radio"][disabled], - .enketo fieldset[disabled] input[type="radio"], - .enketo input[type="checkbox"][disabled], - .enketo fieldset[disabled] input[type="checkbox"] { - cursor: not-allowed; - } - - .enketo .option-wrapper { - line-height: 20px; - } - - .enketo .question input[type=radio] { - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; - -ms-appearance: none; - display: inline-block; - width: 20px; - height: 20px; - margin-right: 10px; - margin-bottom: 0; - margin-top: 0; - border-width: 3px; - border-style: solid; - border-radius: 0; - background-color: transparent; - border-color: #cccccc; - border-radius: 10px; - } - - .enketo .question input[type=radio]:disabled, - .enketo .question input[type=radio][readonly] { - border-color: #d9d9d9; - } - - .enketo .question input[type=radio]:focus { - outline: 0; - box-shadow: 0 0 0 1px #66afe9, 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo .question input[type=radio]:checked { - border-color: #4f93ce; - background-image: radial-gradient(4px, #4f93ce 0%, #4f93ce 99%, transparent 100%); - } - - .enketo .question input[type=radio]:checked:focus { - outline: 0; - box-shadow: 0 0 0 1px #66afe9, 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo .question input[type=checkbox] { - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; - -ms-appearance: none; - display: inline-block; - width: 20px; - height: 20px; - margin-right: 10px; - margin-bottom: 0; - margin-top: 0; - border-width: 3px; - border-style: solid; - border-radius: 0; - background-color: transparent; - border-color: #cccccc; - } - - .enketo .question input[type=checkbox]:disabled, - .enketo .question input[type=checkbox][readonly] { - border-color: #d9d9d9; - } - - .enketo .question input[type=checkbox]:focus { - outline: 0; - box-shadow: 0 0 0 1px #66afe9, 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo .question input[type=checkbox]:checked { - border-color: #4f93ce; - background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20stroke%3D%27%234f93ce%27%20fill%3D%27%234f93ce%27%20width%3D%2732%27%20height%3D%2732%27%20viewBox%3D%270%200%2032%2032%27%3E%3Cpath%20d%3D%27M25.1%2012.5l-3.4-3.3-8%208-2.9-3-3.4%203.4%206.3%206.3z%27%2F%3E%3C%2Fsvg%3E"); - background-size: 20px 20px; - background-position: -3px; - } - - .enketo .question input[type=checkbox]:checked:focus { - outline: 0; - box-shadow: 0 0 0 1px #66afe9, 0 0 8px rgba(102, 175, 233, 0.6); - } - - .enketo .touch .question.simple-select .option-wrapper .option-label { - margin-left: 35px; - } - - .enketo .or[dir="rtl"] .question input[type=checkbox], - .enketo .or[dir="rtl"] .question input[type=radio], - .enketo [dir="rtl"] .form-footer .question input[type=checkbox], - .enketo [dir="rtl"] .form-footer .question input[type=radio] { - margin-right: 0; - margin-left: 10px; - } - - .enketo .or-appearance-likert .option-wrapper > label .option-label { - margin-top: -11.5px; - } - - .enketo .or-appearance-analog-scale .slider-vertical .slider-handle { - margin-left: -4px; - } - - .enketo .or-appearance-analog-scale .slider-horizontal .slider-handle { - margin-top: -3px; - } - - .enketo .or-group { - border-top: none; - } - - .enketo { - position: relative; - } - - .enketo form #form-languages { - display: none; - } - - .enketo form .option-wrapper .option-label { - white-space: normal; - word-break: normal; - } - - .enketo #form-title { - border-bottom: 1px solid #E0E0E0; - } - - .enketo h2 { - font-size: 1.5rem; - } - - .enketo h3 { - font-size: 1.25rem; - } - - .enketo h4 { - font-size: 1.125rem; - } - - .enketo .or-repeat .remove { - display: inline-block; - } - - .enketo .btn-primary { - background-color: #007AC0; - } - - .enketo .btn-icon-only { - padding: 0; - width: inherit; - } - - .enketo .icon { - position: relative; - top: 1px; - } - - .enketo .or-group { - margin: 15px 0 0 0; - } - - .enketo .or-group > h4 { - margin: 0; - } - - .enketo .or-group > h4::before { - display: none; - } - - .enketo .or h2, - .enketo .or h3, - .enketo .or h4 { - padding: 15px 20px; - text-align: left; - } - - .enketo .or .question-label { - display: inline; - } - - .enketo .or-group .or-group { - margin: 0; - } - - .enketo .or-group .or-group > h4 { - color: inherit; - font-weight: normal; - padding-bottom: 5px; - } - - .enketo .or-group .or-group > h4 .active { - font-size: 1.125rem; - } - - .enketo .or-group > h4::before { - display: none !important; - } - - .enketo .or > h3 { - color: inherit; - padding-top: 20px; - padding-bottom: 20px; - } - - .enketo .question-label { - font-size: 1.125rem; - } - - .enketo label, - .enketo legend, - .enketo .btn, - .enketo .or-required-msg.active, - .enketo .or-constraint-msg.active, - .enketo .or-hint.active, - .enketo input[type=text], - .enketo input[type=password], - .enketo input[type=url], - .enketo input[type=email], - .enketo input[type=file], - .enketo input[type=date], - .enketo input[type=time], - .enketo input[type=datetime], - .enketo input[type=number], - .enketo select, - .enketo textarea, - .enketo input[type="tel"], - .enketo input[type="tel"] { - font-size: inherit; - line-height: inherit; - } - - .enketo legend { - color: #333333; - } - - .enketo legend > span { - vertical-align: inherit; - } - - .enketo .required-subtle { - font-size: 0.875rem; - } - - .enketo .form-footer { - margin: 0; - margin-bottom: 10px; - padding: 0 20px; - text-align: right; - } - - .enketo .form-footer .previous-page::before { - content: "< "; - } - - .enketo .form-footer .next-page::after { - content: " >"; - } - - .enketo .form-footer .btn.cancel { - display: inline-block; - float: left; - } - - .enketo label, - .enketo .question { - padding-left: 20px; - padding-right: 20px; - } - - .enketo .container { - padding: 0; - } - - .enketo .container, - .enketo .form-footer { - width: 100%; - } - - .enketo .or-appearance-hidden { - display: none !important; - } - - .enketo .question input[type="text"], - .enketo .question input[type="password"], - .enketo .question input[type="url"], - .enketo .question input[type="email"], - .enketo .question input[type="file"], - .enketo .question textarea, - .enketo .question input[type="tel"] { - width: 100%; - } - - .enketo .question .timepicker input[type="text"] { - width: 180px; - } - - .enketo .required { - color: inherit; - position: inherit; - top: inherit; - left: 5px; - } - - .enketo .question { - margin: 0; - padding-top: 15px; - padding-bottom: 15px; - } - - .enketo .question .geopicker input { - width: 80%; - } - - .enketo .question input[type="tel"] { - /* inherit all standard TEXT input styles */ - } - - .enketo .question input[type=radio], - .enketo .question input[type=checkbox] { - height: 24px; - width: 24px; - margin-top: -2px; - } - - .enketo .question input[type=radio] { - border-radius: 50%; - } - - .enketo .question input[type=checkbox]:checked { - background-position: -1px; - } - - .enketo .question .date input[type=text] { - width: 180px; - } - - .enketo input[type="tel"] { - /* inherit all standard TEXT input styles */ - } - - .enketo .readonly { - font-weight: normal; - } - - .enketo .invalid-constraint, - .enketo .invalid-required { - margin: 0; - padding-left: 20px; - padding-right: 20px; - border-radius: 0; - } - - .enketo .or-required-msg.active, - .enketo .or-constraint-msg.active { - padding-top: 0; - } - - .enketo .horizontal-options a.icon { - width: inherit; - } - - .enketo em { - font-style: italic; - } - - .enketo .or-appearance-countdown-timer input { - display: none; - } - - .enketo .or-appearance-countdown-timer canvas { - width: 100%; - max-width: 320px; - display: block; - } - - .enketo .or-appearance-mrdt-verify .mrdt-verify, - .enketo .or-appearance-mrdt-verify .mrdt-preview { - margin: 8px 0; - } - - .enketo .or-appearance-mrdt-verify input, - .enketo .or-appearance-mrdt-verify textarea { - display: none; - } - - .enketo .or-appearance-android-app-launcher .android-app-launcher-actions { - margin: 0; - padding: 15px 20px; - } - - .enketo .option-wrapper > label:not(.filler) { - margin-right: 10px; - padding-top: 8px; - padding-bottom: 8px; - border-radius: 4px; - } - - .enketo button[disabled] .icon-plus, - .enketo button[disabled] .icon-minus { - opacity: 0.2; - } - - .enketo .or-appearance-allow-new .add-new { - padding-top: 3px; - } - - .enketo input:not([type="radio"]):not([type="checkbox"]), - .enketo select, - .enketo textarea { - height: 45px; - } - - .enketo .or-appearance-summary .or-appearance-center { - text-align: center; - } - - .enketo .or-appearance-summary label .question-label { - display: block; - } - - .enketo .or-appearance-summary .or-appearance-h1:not(.disabled) { - padding: 5px; - padding-left: 2.5rem; - text-align: center; - font-weight: bold; - margin-top: 20px; - } - - .enketo .or-appearance-summary .or-appearance-h1:not(.disabled).or-appearance-red { - background-color: #e00900; - color: #fff; - } - - .enketo .or-appearance-summary .or-appearance-h1:not(.disabled).or-appearance-green { - background-color: #75b2b2; - color: #fff; - } - - .enketo .or-appearance-summary .or-appearance-h1:not(.disabled).or-appearance-blue { - background-color: #6b9acd; - color: #fff; - } - - .enketo .or-appearance-summary .or-appearance-h1:not(.disabled).or-appearance-yellow { - background-color: #e2b100; - color: #fff; - } - - .enketo .or-appearance-summary .or-appearance-h1:not(.disabled).or-appearance-lime { - background-color: #b5bd21; - color: #fff; - } - - .enketo .or-appearance-summary .or-appearance-h1:not(.disabled) i.fa { - position: absolute; - left: 0; - top: 0; - margin: 10px; - } - - .enketo .or-appearance-summary .or-appearance-h1:not(.disabled) .question-label { - font-size: 1.5rem; - } - - .enketo .or-appearance-summary .or-appearance-h2 { - padding: 5px 0 5px; - margin: 0 10px; - text-align: center; - font-weight: bold; - } - - .enketo .or-appearance-summary .or-appearance-h2.or-appearance-red { - border-bottom: 2px solid #e00900; - color: #e00900; - } - - .enketo .or-appearance-summary .or-appearance-h2.or-appearance-green { - border-bottom: 2px solid #75b2b2; - color: #75b2b2; - } - - .enketo .or-appearance-summary .or-appearance-h2.or-appearance-blue { - border-bottom: 2px solid #6b9acd; - color: #6b9acd; - } - - .enketo .or-appearance-summary .or-appearance-h2.or-appearance-yellow { - border-bottom: 2px solid #e2b100; - color: #e2b100; - } - - .enketo .or-appearance-summary .or-appearance-h2.or-appearance-lime { - border-bottom: 2px solid #b5bd21; - color: #b5bd21; - } - - .enketo .or-appearance-summary .or-appearance-h2 .question-label { - font-size: 1.25rem; - } - - .enketo .or-appearance-summary .or-appearance-h3 { - font-weight: bold; - } - - .enketo .or-appearance-summary .or-appearance-h3.or-appearance-red { - margin: 0 20px; - border-bottom: 1px solid #ccc; - color: #e00900; - } - - .enketo .or-appearance-summary .or-appearance-h3.or-appearance-green { - margin: 0 20px; - border-bottom: 1px solid #ccc; - color: #75b2b2; - } - - .enketo .or-appearance-summary .or-appearance-h3.or-appearance-blue { - margin: 0 20px; - border-bottom: 1px solid #ccc; - color: #6b9acd; - } - - .enketo .or-appearance-summary .or-appearance-h3.or-appearance-yellow { - margin: 0 20px; - border-bottom: 1px solid #ccc; - color: #e2b100; - } - - .enketo .or-appearance-summary .or-appearance-h3.or-appearance-lime { - margin: 0 20px; - border-bottom: 1px solid #ccc; - color: #b5bd21; - } - - .enketo .or-appearance-summary .or-appearance-li:not(.disabled) { - margin: 0 20px; - padding-top: 3px; - padding-bottom: 3px; - } - - .enketo .or-appearance-summary .or-appearance-li:not(.disabled):nth-child(1) { - padding-top: 7px; - } - - .enketo .or-appearance-summary .or-appearance-li:not(.disabled) br { - display: none; - } - - .enketo .or-appearance-summary .or-appearance-li:not(.disabled):before { - content: '»'; - position: absolute; - left: 0; - } - - .enketo .select2-container .select2-selection--single { - height: 45px; - } - - .enketo .select2-container--default .select2-selection--single .select2-selection__rendered { - line-height: 45px; - } - - .enketo .select2-container--default .select2-selection--single .select2-selection__arrow { - height: 39px; - } - - .enketo .question input[type=checkbox]:checked { - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%234f93ce' fill='%234f93ce' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M25.1 12.5l-3.4-3.3-8 8-2.9-3-3.4 3.4 6.3 6.3z'/%3E%3C/svg%3E"); - } - - .enketo .pages.or .or-repeat-info[role="page"] { - display: block; - } - - @media (max-width: 767px) { - .enketo #form-title { - display: none; - } - .enketo .option-wrapper > label:not(.filler) { - padding-top: 10px; - padding-bottom: 10px; - } - .enketo .option-wrapper > label:not(.filler):hover { - background-color: #ffa500; - color: white; - } - .enketo input[data-mm-android-dp]:hover { - background-color: #ffa500; - } - .enketo .form-footer .btn.btn-link.cancel { - display: none; - } - .enketo .form-footer .previous-page { - float: left; - } - } - - .message-error { - color: #E33030; - font-size: 0.875rem; - } - - .message-error:before { - font-family: FontAwesome; - margin-right: 5px; - vertical-align: baseline; - content: '\f071'; - } - - .partner-image img { - max-height: 150px; - max-width: 150px; - margin: 40px; - } - - .form-group.required label::after { - content: '*'; - margin-left: 5px; - } - - .form-actions .error, - .form-group .error, - .form-footer .error { - color: #E33030; - font-weight: bold; - } - - .form-footer .error { - text-align: right; - clear: right; - } - - .form-actions { - line-height: 20px; - } - - .form-actions .success { - display: inline-block !important; - opacity: 1; - transition: all linear 0s; - } - - .form-actions .success.ng-hide, - .form-actions .success.ng-hide-add.ng-hide-add-active { - opacity: 0; - } - - .form-actions .success.ng-hide-add { - transition: all linear 1s; - opacity: 1; - } - - ol, - ul { - margin: 0; - padding: 0; - } - - ol.horizontal li, - ul.horizontal li { - display: inline; - } - - .sender .position { - color: #777777; - white-space: normal; - } - - .sender .name { - font-weight: bold; - } - - .select2-results .sender span, - .select2-choice .sender span { - margin-right: 10px; - } - - .select2-results .everyone-at, - .select2-choice .everyone-at { - font-weight: bold; - } - - .select2-results .fa, - .select2-choice .fa { - color: #A0BA62; - } - - .select2-results .select2-highlighted .sender .position { - color: #ffffff; - } - - .lineage { - margin-bottom: 0; - } - - .lineage li:after { - content: '\2022'; - /* bullet */ - padding: 0 5px; - } - - .lineage li:last-child:after { - content: ''; - padding: 0; - } - - #privacy-policy-wrapper { - z-index: 11; - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - overflow: hidden; - background: white; - } - - #privacy-policy-wrapper .container { - height: 100%; - } - - #privacy-policy-wrapper .container > .loader { - top: 50%; - margin-top: -20px; - } - - #privacy-policy-wrapper .container .content { - height: 100%; - padding-bottom: 67px; - position: relative; - } - - #privacy-policy-wrapper .container .content .html-content { - height: 100%; - overflow-y: auto; - } - - #privacy-policy-wrapper .container .content .footer { - position: absolute; - border-top: 1px solid #E0E0E0; - padding: 15px; - width: 100%; - bottom: 0; - } - - .container-fluid { - overflow: hidden; - } - - body { - overflow-y: hidden; - } - - body .app-root.messages .header .tabs .selected, - body .app-root.messages .filters { - background-color: #63A2C6; - } - - body .app-root.tasks .header .tabs .selected, - body .app-root.tasks .filters { - background-color: #7193EE; - } - - body .app-root.reports .header .tabs .selected, - body .app-root.reports .filters { - background-color: #E9AA22; - } - - body .app-root.analytics .header .tabs .selected, - body .app-root.analytics .filters { - background-color: #76B0B0; - } - - body .app-root.contacts .header .tabs .selected, - body .app-root.contacts .filters { - background-color: #F47B63; - } - - body .app-root.user .header .tabs .selected, - body .app-root.user .filters { - background-color: #777777; - } - - body .app-root.about .header .tabs .selected, - body .app-root.testing .header .tabs .selected, - body .app-root.privacy-policy .header .tabs .selected, - body .app-root.about .filters, - body .app-root.testing .filters, - body .app-root.privacy-policy .filters { - background-color: #777777; - } - - body .app-root.about .filters, - body .app-root.testing .filters, - body .app-root.privacy-policy .filters { - height: 0; - } - - body .app-root.about .page, - body .app-root.testing .page, - body .app-root.privacy-policy .page { - top: 75px; - } - - body .app-root.about .partners > h3, - body .app-root.testing .partners > h3, - body .app-root.privacy-policy .partners > h3 { - margin-top: 100px; - } - - body .app-root.error .header .tabs .selected, - body .app-root.testing .header .tabs .selected, - body .app-root.error .filters, - body .app-root.testing .filters { - background-color: #E33030; - } - - .bootstrap-layer { - z-index: 11; - background-color: #f2f2f3; - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - display: flex; - align-items: center; - justify-content: center; - text-align: center; - padding: 30px; - } - - .bootstrapped .bootstrap-layer { - display: none; - } - - .row .inner { - max-width: 1170px; - margin: 0 auto; - } - - .header { - background-color: #333333; - text-align: center; - padding-top: 5px; - z-index: 3; - position: relative; - color: #E0E0E0; - text-shadow: rgba(0, 0, 0, 0.5) 1px 1px 2px; - } - - .header svg { - filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.5)); - } - - .header svg circle, - .header svg path { - fill: #E0E0E0; - } - - .header .inner { - height: 60px; - } - - .header a { - color: #E0E0E0; - text-shadow: rgba(0, 0, 0, 0.5) 1px 1px 2px; - outline: 0; - padding-top: 3px; - } - - .header a svg { - filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.5)); - } - - .header a svg circle, - .header a svg path { - fill: #E0E0E0; - } - - .header .mm-icon { - margin: 0 auto; - font-size: 1.5rem; - } - - .header .logo { - float: left; - opacity: 0.9; - padding: 2px 10px; - } - - .header .logo img { - height: 50px; - } - - .header .extras, - .header .tabs, - .header .extras a, - .header .tabs a { - height: 100%; - } - - .header .extras a, - .header .tabs a { - display: inline-block; - } - - .header .extras { - float: right; - padding-right: 5px; - } - - .header .extras a { - width: 40px; - margin-top: 10px; - border-radius: 10px 10px 0 0; - } - - .header .extras a .mm-icon { - width: inherit; - } - - .header .extras .dropdown-menu a { - border-radius: 0; - } - - .header .extras .open > a { - background-color: #ffffff; - } - - .header .extras .open > a .mm-icon { - color: #333333; - } - - .header .dropdown ul a { - width: 100%; - height: auto; - } - - .header .options .dropdown-menu { - width: 250px; - left: auto; - margin-top: 30px; - font-size: 0; - } - - .header .options .dropdown-menu a { - text-shadow: none; - padding: 10px 20px; - color: #262626; - margin-top: 0; - white-space: normal; - font-size: 1rem; - } - - .header .options .dropdown-menu .disabled a { - color: #999999; - } - - .header .options .dropdown-menu .divider { - margin: 0; - } - - .header .options .dropdown-menu .sync-status { - margin-top: 10px; - } - - .header .options .dropdown-menu .sync-status a { - padding-top: 0; - padding-bottom: 0; - color: #777777; - } - - .header .options .dropdown-menu .sync-status a:hover { - background-color: transparent; - cursor: default; - } - - .header .options .dropdown-menu .sync-status .success { - color: #A0BA62; - } - - .header .options .dropdown-menu .sync-status .required { - color: #E33030; - } - - .header .tabs { - overflow: hidden; - white-space: nowrap; - } - - .header .tabs .button-label { - top: -5px; - position: relative; - } - - .header .tabs a { - border-radius: 10px 10px 0 0; - cursor: pointer; - min-width: 80px; - padding-left: 5px; - padding-right: 5px; - } - - .header .tabs a .mm-icon { - display: block; - padding: 5px 0; - } - - .header .tabs a .mm-icon svg, - .header .tabs a .mm-icon span:not(.mm-badge-overlay):not(.mm-badge), - .header .tabs a .mm-icon img, - .header .tabs a .mm-icon svg:before, - .header .tabs a .mm-icon span:not(.mm-badge-overlay):not(.mm-badge):before, - .header .tabs a .mm-icon img:before { - display: block; - margin: auto; - height: 24px; - max-width: 24px; - overflow: hidden; - } - - .header .tabs a.selected .button-label, - .header .tabs a.selected .mm-icon:hover, - .header .tabs a.selected .resource-icon { - color: #333333; - text-shadow: rgba(255, 255, 255, 0.5) 1px 1px 2px; - } - - .header .tabs a.selected .button-label svg, - .header .tabs a.selected .mm-icon:hover svg, - .header .tabs a.selected .resource-icon svg { - filter: drop-shadow(1px 1px 2px rgba(255, 255, 255, 0.5)); - } - - .header .tabs a.selected .button-label svg circle, - .header .tabs a.selected .mm-icon:hover svg circle, - .header .tabs a.selected .resource-icon svg circle, - .header .tabs a.selected .button-label svg path, - .header .tabs a.selected .mm-icon:hover svg path, - .header .tabs a.selected .resource-icon svg path { - fill: #333333; - } - - @media (hover: hover) { - .header .tabs a:hover:not(.selected).messages-tab, - .header .tabs a:hover:not(.selected).messages-tab .mm-icon-inverse, - .header .tabs a:hover:not(.selected).messages-tab .mm-icon-inverse:hover, - .header .tabs a:hover:not(.selected).messages-tab .resource-icon svg * { - color: #63A2C6; - fill: #63A2C6; - } - .header .tabs a:hover:not(.selected).tasks-tab, - .header .tabs a:hover:not(.selected).tasks-tab .mm-icon-inverse, - .header .tabs a:hover:not(.selected).tasks-tab .mm-icon-inverse:hover, - .header .tabs a:hover:not(.selected).tasks-tab .resource-icon svg * { - color: #7193EE; - fill: #7193EE; - } - .header .tabs a:hover:not(.selected).reports-tab, - .header .tabs a:hover:not(.selected).reports-tab .mm-icon-inverse, - .header .tabs a:hover:not(.selected).reports-tab .mm-icon-inverse:hover, - .header .tabs a:hover:not(.selected).reports-tab .resource-icon svg * { - color: #E9AA22; - fill: #E9AA22; - } - .header .tabs a:hover:not(.selected).analytics-tab, - .header .tabs a:hover:not(.selected).analytics-tab .mm-icon-inverse, - .header .tabs a:hover:not(.selected).analytics-tab .mm-icon-inverse:hover, - .header .tabs a:hover:not(.selected).analytics-tab .resource-icon svg * { - color: #76B0B0; - fill: #76B0B0; - } - .header .tabs a:hover:not(.selected).contacts-tab, - .header .tabs a:hover:not(.selected).contacts-tab .mm-icon-inverse, - .header .tabs a:hover:not(.selected).contacts-tab .mm-icon-inverse:hover, - .header .tabs a:hover:not(.selected).contacts-tab .resource-icon svg * { - color: #F47B63; - fill: #F47B63; - } - } - - .header .tabs a:hover, - .header .tabs a:focus { - text-decoration: none; - } - - .configuration-form { - margin-bottom: 20px; - } - - .configuration-form .delete { - float: right; - } - - .filters { - height: 58px; - white-space: nowrap; - padding: 5px 0; - } - - .filters .navigation { - display: none; - float: left; - text-align: center; - padding-right: 50px; - } - - .filters .navigation a { - display: inline-block; - text-align: center; - color: #333333; - font-size: 1.5rem; - float: left; - width: 50px; - line-height: 38px; - } - - .filters .inner { - position: relative; - } - - .filters .filter { - width: 18%; - margin: 0 1% 0 0; - text-align: left; - display: inline-block; - vertical-align: top; - } - - .filters .filter .dropdown-menu { - padding-top: 0; - } - - .filters .filter .mm-dropdown { - display: block; - } - - .filters .dropdown-menu .fa { - margin-left: -5px; - } - - .filters .mm-button-text { - display: inline-block; - overflow: hidden; - width: 88%; - } - - .filters .mm-button { - width: 100%; - } - - .filters .basic-filters, - .filters .navigation { - padding-top: 3px; - } - - .filters .basic-filters { - position: absolute; - top: 0; - left: 0; - right: 0; - display: flex; - } - - .filters .freetext-filter { - padding-right: 28px; - } - - .filters .freetext-filter input, - .filters .freetext-filter .btn { - height: 40px; - background-color: rgba(255, 255, 255, 0.45); - border: 0; - } - - .filters .freetext-filter input { - padding: 5px 5px 5px 10px; - color: #000000; - margin-right: -28px; - } - - .filters .freetext-filter .input-group-btn { - float: right; - } - - .filters .reset-filter, - .filters .sort-results { - line-height: 38px; - } - - .filters .reset-filter > a, - .filters .sort-results > a { - color: #333333; - display: inline-block; - text-align: center; - padding: 0 10px; - } - - .filters .reset-filter > a.disabled, - .filters .sort-results > a.disabled { - cursor: default; - color: #A0A0A0; - } - - .filters .mobile-freetext-filter { - display: none; - } - - .filters .right-pane { - padding-left: 0; - } - - .filters h2 { - line-height: 40px; - overflow: hidden; - font-weight: bold; - margin: 0; - display: none; - } - - .container-fluid { - background-color: #F2F2F2; - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - } - - .content .page { - top: 123px; - bottom: 0; - position: absolute; - width: 100%; - max-width: 1170px; - z-index: 2; - } - - .content .inbox { - background-color: #F2F2F2; - } - - .inbox-items, - .item-content { - overflow-y: auto; - overflow-x: hidden; - height: 100%; - background-color: #F2F2F2; - } - - .content .item-content.empty-selection { - text-align: center; - color: #c2c2c2; - text-shadow: 1px 1px 4px #ffffff; - font-size: 1.5rem; - } - - .content .item-content.empty-selection > div { - display: flex; - align-items: center; - justify-content: center; - height: 100%; - margin: 0; - } - - .content-pane { - height: 100%; - } - - .message-content-wrapper { - height: 100%; - } - - .message-content-wrapper .item-content { - bottom: 57px; - top: 30px; - position: absolute; - height: auto; - right: 0; - } - - .message-content-wrapper .name-header, - .message-content-wrapper .reply { - padding: 10px 20px; - } - - .message-content-wrapper .name-header { - border-bottom: 1px solid #E0E0E0; - } - - .message-content-wrapper .name-header .name { - display: block; - font-size: 1.25rem; - } - - .message-content-wrapper .reply { - border-top: 1px solid #E0E0E0; - } - - .message-content-wrapper .reply div { - padding: 0; - } - - .message-content-wrapper .reply textarea { - width: 100%; - height: 40px; - padding: 7px; - resize: none; - overflow: hidden; - } - - .message-content-wrapper .reply .message-actions { - display: block; - text-align: right; - } - - .message-content-wrapper .reply .message-actions .btn-link { - float: left; - } - - .message-content-wrapper .reply .message-actions .note { - margin-right: 15px; - } - - .message-content-wrapper .reply.sending textarea { - height: 100px; - overflow: auto; - } - - .message-content-wrapper .recipient { - display: none; - } - - .reports.select-mode .report-body .item-summary { - cursor: pointer; - } - - .report-image { - max-width: 100%; - } - - .contacts .fa-star.primary { - color: #C78330; - font-size: 12px; - vertical-align: middle; - } - - .contacts .card .resource-icon img { - width: 30px; - height: 30px; - } - - .contacts .card.children .row a:hover { - border-color: #F47B63; - } - - .contacts .card.tasks .row a:hover { - border-color: #7193EE; - } - - .contacts .card.reports .row a:hover { - border-color: #E9AA22; - } - - .contacts .action-header { - overflow: auto; - } - - .contacts .action-header h3 { - float: left; - } - - .contacts .action-header .table-filter { - float: right; - display: flex; - font-size: 0.875rem; - } - - .contacts .action-header .table-filter a { - padding-left: 0; - padding-right: 0; - color: #777777; - text-decoration: none; - } - - .contacts .action-header .table-filter a.selected { - color: #000; - font-weight: bold; - } - - .contacts .action-header .table-filter a::after { - content: ' |'; - /* asymmetrical because there's already whitespace after */ - color: #777777; - font-weight: normal; - } - - .contacts .action-header .table-filter a:last-child::after { - content: ''; - } - - .contacts .card.children .content-row.muted h4 { - color: #A0A0A0; - } - - .tasks .item-content .action-header { - overflow: auto; - } - - .tasks .item-content .actions a { - margin-right: 10px; - margin-bottom: 10px; - } - - .tasks .item-content .body > div > ul > li:first-child { - border-top: 0; - } - - .inbox-items { - padding: 0; - background-color: #FFFFFF; - border: 1px solid #E0E0E0; - border-top: 0; - border-bottom: 0; - } - - .inbox-items .alert { - margin: 10px; - } - - .inbox-items .padding { - height: 120px; - } - - .loading-status { - margin: 10px; - text-align: center; - font-size: 0.875rem; - color: #777777; - } - - .scheduled-tasks { - padding: 10px 20px; - } - - .scheduled-tasks .loader { - font-size: 6px; - } - - .task-state { - color: #777777; - font-size: 0.875rem; - min-height: 20px; - } - - .task-state .state { - font-weight: bold; - } - - .task-state .state:before { - content: '\f111'; - font-family: FontAwesome; - font-size: 8px; - margin-right: 5px; - vertical-align: middle; - } - - .task-state .state.received:before { - content: ''; - margin-right: 0; - } - - .task-state .state.scheduled:before { - color: #63A2C6; - } - - .task-state .state.pending:before { - color: #E9AA22; - } - - .task-state .state.forwarded-to-gateway:before { - color: #E9AA22; - } - - .task-state .state.forwarded-by-gateway:before { - color: #E9AA22; - } - - .task-state .state.received-by-gateway:before { - color: #E9AA22; - } - - .task-state .state.sent:before { - color: #218E7F; - } - - .task-state .state.delivered:before { - color: #218E7F; - } - - .task-state .state.muted:before { - color: #A0A0A0; - } - - .task-state .state.cleared:before { - color: #A0A0A0; - } - - .task-state .state.denied:before { - color: #A0A0A0; - } - - .task-state .state.failed:before { - color: #E33030; - } - - .task-state.has-error .state.scheduled, - .task-state.has-error .state.scheduled:before { - color: #E33030; - } - - .item-content { - padding: 30px; - } - - .item-content .body p { - word-break: break-word; - margin: 0; - } - - .item-content > div { - margin-bottom: 10px; - } - - .item-content .padding { - height: 80px; - clear: left; - } - - .item-content .deselect { - float: right; - clear: right; - margin-right: -10px; - margin-top: -14px; - } - - .item-content .action-icon { - float: left; - } - - .incomplete .body h2 { - color: #E33030; - } - - a.fa:hover { - text-decoration: none; - } - - .messages .item-content .body .actions { - width: 35px; - float: left; - visibility: hidden; - } - - .messages .item-content .body .actions a { - padding: 0 10px; - } - - .messages .item-content .body .marker { - font-size: 0.875rem; - font-weight: bold; - background-color: #F2F2F2; - margin: 10px 0; - padding: 5px; - text-align: center; - box-shadow: 0 5px 5px -2px rgba(50, 50, 50, 0.45); - position: relative; - } - - .messages .item-content .body .marker:after { - position: absolute; - bottom: -10px; - left: 48%; - border-style: solid; - border-color: #F2F2F2 transparent; - display: block; - width: 0; - border-width: 15px 15px 0; - content: ''; - margin: 0 auto; - } - - .messages .item-content .body ul .message-body:hover .actions, - .messages .item-content .body ul .selected .actions { - visibility: visible; - } - - .messages .item-content .body ul .message-body { - display: inline-block; - width: 100%; - margin-top: 16px; - } - - .messages .item-content .body ul .data p { - display: inline-block; - padding: 10px 20px; - margin-bottom: 10px; - max-width: 90%; - } - - .messages .item-content .body ul .incoming .message-body .data p { - border-radius: 0 4px 4px 0; - background-color: #E0E0E0; - } - - .messages .item-content .body ul .outgoing .message-body .data p { - border-radius: 4px 0 0 4px; - background-color: #63A2C6; - color: #ffffff; - float: right; - } - - .messages .item-content .body ul .outgoing .message-body .actions { - float: right; - } - - .messages .item-content .body ul .outgoing .message-body .task-state { - text-align: right; - } - - .messages .item-content .body ul .task-state { - clear: right; - display: block; - margin: 0 20px; - } - - .reports .item-content .body, - .messages .item-content .body, - .tasks .item-content .body { - background-color: #FFFFFF; - border: 1px solid #E0E0E0; - border-radius: 4px; - } - - .reports .item-content .body > div > ul > li, - .messages .item-content .body > div > ul > li, - .tasks .item-content .body > div > ul > li { - border-top: 1px solid #E0E0E0; - padding: 10px 30px 10px 20px; - margin: 0; - } - - .reports .item-content .body > div > ul > li.indent-1, - .messages .item-content .body > div > ul > li.indent-1, - .tasks .item-content .body > div > ul > li.indent-1 { - padding-left: 30px; - } - - .reports .item-content .body > div > ul > li.indent-2, - .messages .item-content .body > div > ul > li.indent-2, - .tasks .item-content .body > div > ul > li.indent-2 { - padding-left: 40px; - } - - .reports .item-content .body > div > ul > li.indent-3, - .messages .item-content .body > div > ul > li.indent-3, - .tasks .item-content .body > div > ul > li.indent-3 { - padding-left: 50px; - } - - .reports .item-content .body .missing p, - .messages .item-content .body .missing p, - .tasks .item-content .body .missing p { - color: #A0A0A0; - } - - .reports .item-content label, - .messages .item-content label, - .tasks .item-content label { - display: block; - margin: 0; - word-break: break-word; - } - - .reports .item-content .task-list > li, - .messages .item-content .task-list > li, - .tasks .item-content .task-list > li { - margin-top: 10px; - } - - .reports .item-content .task-list > li:first-child, - .messages .item-content .task-list > li:first-child, - .tasks .item-content .task-list > li:first-child { - margin-top: 0; - } - - .inbox-items .selection-count { - padding: 5px 10px; - margin: 0; - background-color: #777777; - color: #ffffff; - font-size: 0.875rem; - font-weight: bold; - } - - .inbox-items .selection-count, - .general-actions .delete-all { - display: none; - } - - .tasks .warning { - overflow: initial; - color: #E33030; - } - - .action-container { - overflow: visible; - position: fixed; - bottom: 0; - top: inherit; - z-index: 10; - background: transparent; - pointer-events: none; - } - - .action-container .actions { - max-width: 500px; - background-color: #777777; - background-color: rgba(0, 0, 0, 0.65); - border-color: #E0E0E0; - border-color: rgba(0, 0, 0, 0.8); - border-width: 1px; - border-style: solid; - text-align: center; - margin: 0 auto 10px; - pointer-events: auto; - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.63); - display: flex; - flex-direction: row; - justify-content: center; - min-height: 78px; - } - - .action-container .actions .dropdown-menu { - overflow-y: auto; - max-height: 350px; - width: 100%; - } - - .action-container .actions > * { - margin: 10px 0 0; - flex-grow: 1; - max-width: 120px; - outline: 0; - border-bottom: 5px solid transparent; - } - - .action-container .actions > * > .mm-icon { - display: block; - height: 100%; - width: 100%; - } - - .action-container .actions .mm-icon .fa { - font-size: 30px; - } - - .action-container .actions .mm-icon:hover { - text-decoration: none; - } - - .action-container .actions .mm-icon svg { - width: 30px; - height: 30px; - } - - .action-container .actions .fa-stack { - width: 30px; - height: 30px; - line-height: inherit; - } - - .action-container .actions .fa-stack .fa-plus { - left: 8px; - top: -4px; - text-shadow: 0 0 2px #ffffff; - font-size: 20px; - color: #000000; - } - - .action-container .actions .sub-actions { - background-color: #ffffff; - height: 56px; - padding: 0; - margin: 0 0 1px 0; - border-radius: 0; - border: none; - display: flex; - max-width: none; - overflow-y: hidden; - box-shadow: 0 -6px 12px rgba(0, 0, 0, 0.4); - } - - .action-container .actions .sub-actions .mm-icon-caption { - border: none; - line-height: 1; - color: #777777; - max-width: none; - padding: 6px 0 0; - } - - .action-container .actions .sub-actions .mm-icon-caption .verify-icon { - display: block; - margin: 0 auto 3px auto; - } - - .action-container .actions .sub-actions .mm-icon-caption .verify-icon svg { - width: 24px; - height: 24px; - } - - .action-container .actions .sub-actions .mm-icon-caption .verify-icon svg path { - fill: #A0A0A0; - } - - .action-container .actions .sub-actions .verify-error.active { - color: #E33030; - } - - .action-container .actions .sub-actions .verify-error.active svg path { - fill: #E33030; - } - - .action-container .actions .sub-actions .verify-valid.active { - color: #218E7F; - } - - .action-container .actions .sub-actions .verify-valid.active svg path { - fill: #218E7F; - } - - .messages .action-container .actions > :hover { - border-bottom-color: #63A2C6; - } - - .reports .action-container .actions > *:hover, - .reports .action-container .actions > *.active { - border-bottom-color: #E9AA22; - } - - .contacts .action-container .actions > :hover { - border-bottom-color: #F47B63; - } - - .action-container .actions > .mm-icon-disabled:hover { - border-bottom-color: transparent; - } - - .reporting, - .about, - .configuration, - .theme, - .testing { - background-color: #ffffff; - border: 1px solid #E0E0E0; - border-width: 0 1px; - overflow-y: auto; - overflow-x: hidden; - } - - .page.scrolling { - overflow-y: auto; - overflow-x: hidden; - } - - .clear-both { - clear: both; - } - - .filter-daterangepicker { - padding: 0; - margin: 0; - } - - .modal .datepicker { - max-width: 300px; - } - - .tour-select { - z-index: 2000; - } - - .tour-select .tour-option { - width: 100px; - margin: 10px; - padding: 0.5em 0; - color: #333333; - text-shadow: rgba(255, 255, 255, 0.5) 1px 1px 2px; - } - - .tour-select .tour-option svg { - filter: drop-shadow(1px 1px 2px rgba(255, 255, 255, 0.5)); - } - - .tour-select .tour-option svg circle, - .tour-select .tour-option svg path { - fill: #333333; - } - - .tour-select .tour-option .button-label { - white-space: normal; - } - - .tour-select .modal-body { - text-align: center; - } - - .tour-select .fa { - font-size: 20px; - } - - .tour-select .tour-option-messages { - background-color: #63A2C6; - } - - .tour-select .tour-option-tasks { - background-color: #7193EE; - } - - .tour-select .tour-option-reports { - background-color: #E9AA22; - } - - .tour-select .tour-option-contacts { - background-color: #F47B63; - } - - .tour-select .tour-option-analytics { - background-color: #76B0B0; - } - - .tour-select .tour-option-admin { - background-color: #777777; - } - - .daterangepicker.dropdown-menu { - z-index: 1050; - } - - .screenshot { - text-align: center; - margin-top: 10px; - } - - .horizontal-options a { - display: inline-block; - outline: none; - margin: 5px; - } - - .horizontal-options .fa { - margin-right: 2px; - } - - .horizontal-options .circle, - .horizontal-options .rectangle { - display: inline-block; - background-color: #F2F2F2; - border: 1px solid #E0E0E0; - } - - .horizontal-options .circle { - border-radius: 100px; - } - - .horizontal-options .rectangle { - padding: 5px 10px; - } - - .horizontal-options .selected .circle, - .horizontal-options .selected .rectangle { - background-color: #A0BA62; - color: #ffffff; - } - - .guided-setup .panel-group .panel-body { - text-align: center; - } - - .guided-setup .horizontal-options .icon { - background-size: contain; - background-repeat: no-repeat; - padding-top: 100px; - } - - .guided-setup .horizontal-options .contact-pregnant { - background-image: url('/img/icon-pregnant.svg'); - } - - .guided-setup .horizontal-options .contact-pregnant.selected { - background-image: url('/img/icon-pregnant-selected.svg'); - } - - .guided-setup .horizontal-options .contact-chw { - background-image: url('/img/icon-chw.svg'); - } - - .guided-setup .horizontal-options .contact-chw.selected { - background-image: url('/img/icon-chw-selected.svg'); - } - - .guided-setup .horizontal-options .contact-nurse { - background-image: url('/img/icon-nurse.svg'); - } - - .guided-setup .horizontal-options .contact-nurse.selected { - background-image: url('/img/icon-nurse-selected.svg'); - } - - .guided-setup .primary-contact-content .horizontal-options a { - width: 100px; - vertical-align: top; - } - - .guided-setup .primary-contact-content .horizontal-options a .circle { - height: 100px; - width: 100px; - } - - .guided-setup .registration-form-content .horizontal-options a { - width: 150px; - vertical-align: top; - } - - .guided-setup .registration-form-content .horizontal-options a .circle { - height: 20px; - width: 20px; - font-size: 14px; - } - - .guided-setup .registration-form-content .horizontal-options a .circle .fa { - visibility: hidden; - margin: 0px; - } - - .guided-setup .registration-form-content .horizontal-options a .description { - display: inline-block; - } - - .guided-setup .registration-form-content .horizontal-options a.selected .fa { - visibility: visible; - } - - .guided-setup .modem-setup-content label { - margin-top: 10px; - margin-bottom: 0; - display: block; - } - - .section { - margin-top: 30px; - } - - .mobile-only, - #mobile-detection { - display: none; - } - - #medic-reporter-modal .modal-body { - padding: 0; - } - - #medic-reporter-modal .modal-body iframe { - height: 470px; - border: 0; - width: 100%; - } - - .upgrade-config .status { - text-align: center; - } - - .deceased svg path, - .muted svg path, - .deceased svg circle, - .muted svg circle { - fill: #A0A0A0; - } - - .about .content .inner, - .analytics .content .inner, - .theme .content .inner { - /* allow the scrollable content to grow to full width */ - max-width: inherit; - } - - .about .content .inner .page:not(.target-aggregates), - .analytics .content .inner .page:not(.target-aggregates), - .theme .content .inner .page:not(.target-aggregates) { - max-width: inherit; - /* set the max with and center all the children again */ - } - - .about .content .inner .page:not(.target-aggregates) > div, - .analytics .content .inner .page:not(.target-aggregates) > div, - .theme .content .inner .page:not(.target-aggregates) > div { - max-width: 1170px; - margin: 0 auto; - } - - .about .content .inner .target-aggregates, - .analytics .content .inner .target-aggregates, - .theme .content .inner .target-aggregates { - /* position this absolute div in the horizontal center */ - left: 0; - right: 0; - margin-left: auto; - margin-right: auto; - } - - .about .filters .inner, - .analytics .filters .inner, - .theme .filters .inner { - max-width: 1170px; - } - - @media (max-width: 767px) { - #mobile-detection { - display: inline; - } - .item-content { - padding: 0; - } - .inbox .inbox-items { - border-left: 0; - } - .inbox .inbox-items li.selected { - background-color: inherit; - } - .inbox .inbox-items .padding { - height: 60px; - } - .inbox-items .selection-count, - .general-actions .delete-all { - display: block; - } - .contacts h4 { - padding-left: 0; - } - .filters { - height: 46px; - padding: 0; - } - .filters .navigation { - display: inline-block; - } - .filters .filter { - margin: 0; - } - .filters .mm-button { - padding-left: 0; - } - .filters .mm-button-icon { - padding: 5px 0 0 5px; - } - .filters .right-pane { - position: absolute; - top: 0; - } - .filters .right-pane .filter-bar-back a:hover, - .filters .right-pane .filter-bar-back a:active { - color: #777777; - } - .filters h2 { - display: initial; - } - .filters .dropdown, - .filters .navigation .mm-button { - vertical-align: top; - } - .filters .dropdown.analytics-module { - width: 80px; - } - .filters .mm-button-text { - width: 0; - visibility: hidden; - } - .filters .basic-filters { - left: 2px; - } - .filters .freetext-filter { - display: none; - } - .filters .show-one-filter .freetext-filter, - .filters .show-one-filter .filter { - display: inline-block; - width: auto; - } - .filters .mobile-freetext-filter { - display: block; - } - .filters .mobile-freetext-filter .search-pane { - padding: 10px; - } - .filters .reset-filter { - padding-left: 10px; - } - .filters .sort-dropdown { - position: absolute; - right: 0; - } - .header .dropdown-menu { - margin: 0; - top: 8px; - right: 5px; - } - .header .tabs { - display: flex; - flex-direction: row; - } - .header .tabs a { - flex-grow: 1; - min-width: 70px; - max-width: 100px; - } - .header .logo { - display: none; - } - .header .extras a { - padding-top: 2px; - margin-top: 2px; - } - .header .extras a .fa-bars { - font-size: 1.5rem; - } - .left-pane, - .right-pane { - width: 100%; - } - .inbox-items, - .content-pane { - position: absolute; - padding-top: 0; - } - .content .page { - top: 111px; - } - .content .meta { - padding-bottom: 0; - } - .content .item-content .body { - padding-bottom: 0; - border-radius: 0; - border-width: 1px 0; - } - .reports .content .item-content .body > div > ul > li, - .tasks .content .item-content .body > div > ul > li { - padding: 10px; - } - .reports .content .item-content .body > div > ul > li.indent-1, - .tasks .content .item-content .body > div > ul > li.indent-1 { - padding-left: 20px; - } - .reports .content .item-content .body > div > ul > li.indent-2, - .tasks .content .item-content .body > div > ul > li.indent-2 { - padding-left: 30px; - } - .reports .content .item-content .body > div > ul > li.indent-3, - .tasks .content .item-content .body > div > ul > li.indent-3 { - padding-left: 40px; - } - #tasks-group .action-header { - display: none; - } - .messages .content .item-content .body { - margin-bottom: 0; - } - .item-content .reply .note { - display: inline; - } - .action-container .inner > div { - padding: 0; - position: absolute; - bottom: 0; - width: 100%; - } - .action-container .inner > div .actions { - box-shadow: none; - border-width: 1px 0 0 0; - margin: 0; - padding: 0; - border-radius: 0; - max-width: 100%; - } - .left-pane { - left: 0; - } - .right-pane { - left: 100%; - } - .app-root.show-content .header { - display: none; - } - .app-root.show-content .content .page { - top: 46px; - } - .app-root.show-content .left-pane { - left: -100%; - } - .app-root.show-content .right-pane { - left: 0; - } - .filter-daterangepicker { - width: 255px; - height: 320px; - } - .filter-daterangepicker .calendar { - transition: left 500ms ease 0s; - position: absolute; - float: none; - } - .filter-daterangepicker .range_inputs { - display: none; - } - .show-from .left { - left: 0; - } - .show-from .right { - left: 100%; - } - .show-to .left { - left: -100%; - } - .show-to .right { - left: 0; - } - .mm-button { - padding-left: 5px; - } - .mm-button-dropdown { - padding-right: 5px; - } - .mm-button-icon { - padding-right: 1px; - } - .message-content-wrapper .name-header { - display: none; - } - .message-content-wrapper .item-content { - top: 0; - } - .deceased-page .material .card.persons .cell { - display: none; - } - } - - @media (max-width: 400px) { - .logo { - display: none; - } - .filters .filter { - width: 17%; - } - .header .tabs { - padding-left: 2px; - } - .header .tabs a { - min-width: 40px; - } - .header .tabs a .button-label { - font-size: 0.625rem; - } - .header .tabs a:first-child:nth-last-child(1) .button-label, - .header .tabs a:first-child:nth-last-child(1) ~ a .button-label { - font-size: 0.8125rem; - } - .header .tabs a:first-child:nth-last-child(2) .button-label, - .header .tabs a:first-child:nth-last-child(2) ~ a .button-label { - font-size: 0.8125rem; - } - .header .tabs a:first-child:nth-last-child(3) .button-label, - .header .tabs a:first-child:nth-last-child(3) ~ a .button-label { - font-size: 0.8125rem; - } - .header .tabs a:first-child:nth-last-child(4) .button-label, - .header .tabs a:first-child:nth-last-child(4) ~ a .button-label { - font-size: 0.8125rem; - } - .header .mm-badge-overlay { - right: 10%; - } - .header .inner { - height: 60px; - } - .action-container .actions { - min-height: 50px; - } - .action-container .actions p { - display: none; - } - .action-container .actions .fa-stack { - height: 20px; - } - .action-container .actions .mm-icon { - min-height: 50px; - } - .content .page { - top: 111px; - } - .mobile-only { - display: initial; - } - .desktop-only { - display: none; - } - .app-root.about .page, - .app-root.testing .page { - top: 55px; - } - } - - - /*# sourceMappingURL=styles.css.map*/ \ No newline at end of file diff --git a/ext/xsl-paths.js b/ext/xsl-paths.js deleted file mode 100644 index b796e6cb..00000000 --- a/ext/xsl-paths.js +++ /dev/null @@ -1,6 +0,0 @@ -const path = require('path'); - -module.exports = { - FORM_STYLESHEET: path.join(__dirname, '../ext/xsl/openrosa2html5form.xsl'), - MODEL_STYLESHEET: path.join(__dirname, '../ext/enketo-transformer/xsl/openrosa2xmlmodel.xsl'), -}; diff --git a/package-lock.json b/package-lock.json index c509ee50..e173b02b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cht-conf-test-harness", - "version": "3.0.15", + "version": "4.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cht-conf-test-harness", - "version": "3.0.15", + "version": "4.0.0", "dependencies": { "lodash": "^4.17.15", "luxon": "^1.27.0", @@ -16,7 +16,8 @@ "pouchdb-adapter-memory": "^7.2.2", "puppeteer-chromium-resolver": "^10.0.0", "semver": "^7.3.5", - "sinon": "^7.5.0", + "sinon": "^10.0.1", + "util": "^0.12.5", "uuid": "^3.4.0" }, "devDependencies": { @@ -25,14 +26,15 @@ "chai": "^4.2.0", "chai-as-promised": "^7.1.1", "chai-exclude": "^2.0.2", - "cht-core-4-0": "git+https://github.com/medic/cht-core.git#enketo-service-refactor", "couchdb-compile": "^1.11.0", + "css-loader": "^6.8.1", "eslint": "^6.8.0", "jquery": "^3.5.1", "jsdoc": "^3.6.3", "mocha": "^6.1.4", "raw-loader": "^1.0.0", "rewire": "^4.0.1", + "style-loader": "^3.3.3", "webpack": "^5.37.0", "webpack-clean-console-plugin": "^0.0.7", "webpack-cli": "^3.3.0" @@ -83,36 +85,35 @@ "dev": true }, "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dependencies": { "type-detect": "4.0.8" } }, - "node_modules/@sinonjs/formatio": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.2.tgz", - "integrity": "sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ==", + "node_modules/@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", "dependencies": { - "@sinonjs/commons": "^1", - "@sinonjs/samsam": "^3.1.0" + "@sinonjs/commons": "^1.7.0" } }, "node_modules/@sinonjs/samsam": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz", - "integrity": "sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz", + "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==", "dependencies": { - "@sinonjs/commons": "^1.3.0", - "array-from": "^2.1.1", - "lodash": "^4.17.15" + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" } }, "node_modules/@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==" + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==" }, "node_modules/@types/eslint": { "version": "7.2.12", @@ -141,9 +142,9 @@ "dev": true }, "node_modules/@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "node_modules/@types/node": { @@ -540,11 +541,6 @@ "is-extended": "~0.0.3" } }, - "node_modules/array-from": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", - "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=" - }, "node_modules/array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", @@ -598,6 +594,17 @@ "node": ">= 4.5.0" } }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -891,10 +898,9 @@ } }, "node_modules/buffer-from": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", - "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "node_modules/cache-base": { "version": "1.0.1", @@ -917,13 +923,13 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1081,17 +1087,6 @@ "node": ">=6.0" } }, - "node_modules/cht-core-4-0": { - "name": "medic", - "version": "4.0.0", - "resolved": "git+ssh://git@github.com/medic/cht-core.git#228a9944a22f1c8f594563ac961198fb7845f618", - "dev": true, - "license": "AGPL-3.0-only", - "engines": { - "node": ">=16.12.0", - "npm": ">=8.3.1" - } - }, "node_modules/circular-json": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", @@ -1423,6 +1418,44 @@ "node": "*" } }, + "node_modules/css-loader": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", + "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.21", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.3", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/date-extended": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/date-extended/-/date-extended-0.0.6.tgz", @@ -1449,11 +1482,6 @@ } } }, - "node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", @@ -1506,6 +1534,19 @@ "node": ">=6" } }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -1587,6 +1628,7 @@ "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, "engines": { "node": ">=0.3.1" } @@ -1897,12 +1939,6 @@ } } }, - "node_modules/eslint/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/eslint/node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -2291,9 +2327,9 @@ } }, "node_modules/fetch-cookie": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-0.10.1.tgz", - "integrity": "sha512-beB+VEd4cNeVG1PY+ee74+PkuCQnik78pgLi5Ah/7qdUfov8IctU0vLUbBT8/10Ma5GMBeI4wtxhGrEfKNYs2g==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-0.11.0.tgz", + "integrity": "sha512-BQm7iZLFhMWFy5CZ/162sAGjBfdNWb7a8LEqqnzsHFhxT/X/SVj/z2t2nu3aJvjlbQkrAlTUApplPRjWyH4mhA==", "dependencies": { "tough-cookie": "^2.3.3 || ^3.0.1 || ^4.0.0" }, @@ -2449,6 +2485,14 @@ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, "node_modules/for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -2481,10 +2525,12 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function-extended": { "version": "0.0.9", @@ -2539,14 +2585,14 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2669,6 +2715,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", @@ -2721,15 +2778,51 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, "engines": { "node": ">=4" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true, + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, "engines": { "node": ">= 0.4" }, @@ -2781,6 +2874,17 @@ "node": ">=0.10.0" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -2837,6 +2941,18 @@ "node": ">=0.10.0" } }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", @@ -3088,6 +3204,21 @@ "node": ">=0.10.0" } }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-bigint": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", @@ -3121,7 +3252,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -3225,6 +3355,20 @@ "node": ">=0.10.0" } }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", @@ -3346,6 +3490,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -3794,6 +3952,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" + }, "node_modules/log-symbols": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", @@ -3806,11 +3969,6 @@ "node": ">=4" } }, - "node_modules/lolex": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-4.2.0.tgz", - "integrity": "sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==" - }, "node_modules/lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", @@ -3827,9 +3985,9 @@ "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" }, "node_modules/luxon": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.27.0.tgz", - "integrity": "sha512-VKsFsPggTA0DvnxtJdiExAucKdAnwbCCNlMM5ENvHlxubqWd0xhZcdb4XgZ7QFNhaRhilXCFxHuoObP5BNA4PA==", + "version": "1.28.1", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.28.1.tgz", + "integrity": "sha512-gYHAa180mKrNIUJCbwpmD0aTu9kV0dREDrwNnuyFAsO1Wt0EVYSZelPnJlbj9HplzXX/YWXHFTL45kvZ53M0pw==", "engines": { "node": "*" } @@ -4067,9 +4225,12 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/mixin-deep": { "version": "1.3.2", @@ -4294,10 +4455,9 @@ } }, "node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/mute-stream": { "version": "0.0.8", @@ -4305,6 +4465,24 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -4351,23 +4529,39 @@ "dev": true }, "node_modules/nise": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.5.3.tgz", - "integrity": "sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz", + "integrity": "sha512-VJuPIfUFaXNRzETTQEEItTOP8Y171ijr+JLq42wHes3DiryR8vT+1TXQW/Rx8JNUhyYYWyIvjXTU6dOhJcs9Nw==", "dependencies": { - "@sinonjs/formatio": "^3.2.1", + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "^10.0.2", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", - "lolex": "^5.0.1", "path-to-regexp": "^1.7.0" } }, - "node_modules/nise/node_modules/lolex": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz", - "integrity": "sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==", + "node_modules/nise/node_modules/@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", "dependencies": { - "@sinonjs/commons": "^1.7.0" + "type-detect": "4.0.8" + } + }, + "node_modules/nise/node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/nise/node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dependencies": { + "type-detect": "4.0.8" } }, "node_modules/node-environment-flags": { @@ -4745,6 +4939,12 @@ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "node_modules/ping-monitor": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/ping-monitor/-/ping-monitor-0.6.1.tgz", @@ -4784,17 +4984,123 @@ "node": ">=0.10.0" } }, + "node_modules/postcss": { + "version": "8.4.33", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", + "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", + "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.0.tgz", + "integrity": "sha512-SaIbK8XW+MZbd0xHPf7kdfA/3eOt7vxJ72IRecn3EzuZVLr1r0orzf0MX/pN8m+NMDoo6X/SQd8oeKqGZd8PXg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, "node_modules/pouchdb": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb/-/pouchdb-7.2.2.tgz", - "integrity": "sha512-5gf5nw5XH/2H/DJj8b0YkvG9fhA/4Jt6kL0Y8QjtztVjb1y4J19Rg4rG+fUbXu96gsUrlyIvZ3XfM0b4mogGmw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb/-/pouchdb-7.3.1.tgz", + "integrity": "sha512-oanSnM3SD9lPRuVRwEZWVbtWKYluw0q5phT5BXWi2b9Zqd5mJUPWKbKWJu03cDPM9wySmKKd7yfl9O9/eIQ5fg==", "dependencies": { "abort-controller": "3.0.0", "argsarray": "0.0.1", - "buffer-from": "1.1.1", + "buffer-from": "1.1.2", "clone-buffer": "1.0.0", "double-ended-queue": "2.1.0-0", - "fetch-cookie": "0.10.1", + "fetch-cookie": "0.11.0", "immediate": "3.3.0", "inherits": "2.0.4", "level": "6.0.1", @@ -4803,151 +5109,147 @@ "leveldown": "5.6.0", "levelup": "4.4.0", "ltgt": "2.2.1", - "node-fetch": "2.6.0", + "node-fetch": "2.6.7", "readable-stream": "1.1.14", - "spark-md5": "3.0.1", + "spark-md5": "3.0.2", "through2": "3.0.2", - "uuid": "8.1.0", + "uuid": "8.3.2", "vuvuzela": "1.0.3" } }, "node_modules/pouchdb-adapter-leveldb-core": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-leveldb-core/-/pouchdb-adapter-leveldb-core-7.2.2.tgz", - "integrity": "sha512-K9UGf1Ivwe87mjrMqN+1D07tO/DfU7ariVDrGffuOjvl+3BcvUF25IWrxsBObd4iPOYCH7NVQWRpojhBgxULtQ==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-adapter-leveldb-core/-/pouchdb-adapter-leveldb-core-7.3.1.tgz", + "integrity": "sha512-mxShHlqLMPz2gChrgtA9okV1ogFmQrRAoM/O4EN0CrQWPLXqYtpL1f7sI2asIvFe7SmpnvbLx7kkZyFmLTfwjA==", "dependencies": { "argsarray": "0.0.1", - "buffer-from": "1.1.1", + "buffer-from": "1.1.2", "double-ended-queue": "2.1.0-0", "levelup": "4.4.0", - "pouchdb-adapter-utils": "7.2.2", - "pouchdb-binary-utils": "7.2.2", - "pouchdb-collections": "7.2.2", - "pouchdb-errors": "7.2.2", - "pouchdb-json": "7.2.2", - "pouchdb-md5": "7.2.2", - "pouchdb-merge": "7.2.2", - "pouchdb-utils": "7.2.2", - "sublevel-pouchdb": "7.2.2", + "pouchdb-adapter-utils": "7.3.1", + "pouchdb-binary-utils": "7.3.1", + "pouchdb-collections": "7.3.1", + "pouchdb-errors": "7.3.1", + "pouchdb-json": "7.3.1", + "pouchdb-md5": "7.3.1", + "pouchdb-merge": "7.3.1", + "pouchdb-utils": "7.3.1", + "sublevel-pouchdb": "7.3.1", "through2": "3.0.2" } }, - "node_modules/pouchdb-adapter-leveldb-core/node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, "node_modules/pouchdb-adapter-memory": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-memory/-/pouchdb-adapter-memory-7.2.2.tgz", - "integrity": "sha512-9o+zdItPEq7rIrxdkUxgsLNaZkDJAGEqqoYgeYdrHidOCZnlhxhX3g7/R/HcpDKC513iEPqJWDJQSfeT6nVKkw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-adapter-memory/-/pouchdb-adapter-memory-7.3.1.tgz", + "integrity": "sha512-iHdWGJAHONqQv0we3Oi1MYen69ZS8McLW9wUyaAYcWTJnAIIAr2ZM0/TeTDVSHfMUwYqEYk7X8jRtJZEMwLnwg==", "dependencies": { "memdown": "1.4.1", - "pouchdb-adapter-leveldb-core": "7.2.2", - "pouchdb-utils": "7.2.2" + "pouchdb-adapter-leveldb-core": "7.3.1", + "pouchdb-utils": "7.3.1" } }, "node_modules/pouchdb-adapter-utils": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-utils/-/pouchdb-adapter-utils-7.2.2.tgz", - "integrity": "sha512-2CzZkTyTyHZkr3ePiWFMTiD5+56lnembMjaTl8ohwegM0+hYhRyJux0biAZafVxgIL4gnCUC4w2xf6WVztzKdg==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-adapter-utils/-/pouchdb-adapter-utils-7.3.1.tgz", + "integrity": "sha512-uKLG6dClwTs/sLIJ4WkLAi9wlnDBpOnfyhpeAgOjlOGN/XLz5nKHrA4UJRnURDyc+uv79S9r/Unc4hVpmbSPUw==", "dependencies": { - "pouchdb-binary-utils": "7.2.2", - "pouchdb-collections": "7.2.2", - "pouchdb-errors": "7.2.2", - "pouchdb-md5": "7.2.2", - "pouchdb-merge": "7.2.2", - "pouchdb-utils": "7.2.2" + "pouchdb-binary-utils": "7.3.1", + "pouchdb-collections": "7.3.1", + "pouchdb-errors": "7.3.1", + "pouchdb-md5": "7.3.1", + "pouchdb-merge": "7.3.1", + "pouchdb-utils": "7.3.1" } }, "node_modules/pouchdb-binary-utils": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-binary-utils/-/pouchdb-binary-utils-7.2.2.tgz", - "integrity": "sha512-shacxlmyHbUrNfE6FGYpfyAJx7Q0m91lDdEAaPoKZM3SzAmbtB1i+OaDNtYFztXjJl16yeudkDb3xOeokVL3Qw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-binary-utils/-/pouchdb-binary-utils-7.3.1.tgz", + "integrity": "sha512-crZJNfAEOnUoRk977Qtmk4cxEv6sNKllQ6vDDKgQrQLFjMUXma35EHzNyIJr1s76J77Q4sqKQAmxz9Y40yHGtw==", "dependencies": { - "buffer-from": "1.1.1" + "buffer-from": "1.1.2" } }, - "node_modules/pouchdb-binary-utils/node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, "node_modules/pouchdb-collections": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-collections/-/pouchdb-collections-7.2.2.tgz", - "integrity": "sha512-6O9zyAYlp3UdtfneiMYuOCWdUCQNo2bgdjvNsMSacQX+3g8WvIoFQCYJjZZCpTttQGb+MHeRMr8m2U95lhJTew==" + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-collections/-/pouchdb-collections-7.3.1.tgz", + "integrity": "sha512-yUyDqR+OJmtwgExOSJegpBJXDLAEC84TWnbAYycyh+DZoA51Yw0+XVQF5Vh8Ii90/Ut2xo88fmrmp0t6kqom8w==" }, "node_modules/pouchdb-errors": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-errors/-/pouchdb-errors-7.2.2.tgz", - "integrity": "sha512-6GQsiWc+7uPfgEHeavG+7wuzH3JZW29Dnrvz8eVbDFE50kVFxNDVm3EkYHskvo5isG7/IkOx7PV7RPTA3keG3g==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-errors/-/pouchdb-errors-7.3.1.tgz", + "integrity": "sha512-Zktz4gnXEUcZcty8FmyvtYUYsHskoST05m6H5/E2gg/0mCfEXq/XeyyLkZHaZmqD0ZPS9yNmASB1VaFWEKEaDw==", "dependencies": { "inherits": "2.0.4" } }, "node_modules/pouchdb-json": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-json/-/pouchdb-json-7.2.2.tgz", - "integrity": "sha512-3b2S2ynN+aoB7aCNyDZc/4c0IAdx/ir3nsHB+/RrKE9cM3QkQYbnnE3r/RvOD1Xvr6ji/KOCBie+Pz/6sxoaug==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-json/-/pouchdb-json-7.3.1.tgz", + "integrity": "sha512-AyOKsmc85/GtHjMZyEacqzja8qLVfycS1hh1oskR+Bm5PIITX52Fb8zyi0hEetV6VC0yuGbn0RqiLjJxQePeqQ==", "dependencies": { "vuvuzela": "1.0.3" } }, "node_modules/pouchdb-md5": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-md5/-/pouchdb-md5-7.2.2.tgz", - "integrity": "sha512-c/RvLp2oSh8PLAWU5vFBnp6ejJABIdKqboZwRRUrWcfGDf+oyX8RgmJFlYlzMMOh4XQLUT1IoaDV8cwlsuryZw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-md5/-/pouchdb-md5-7.3.1.tgz", + "integrity": "sha512-aDV8ui/mprnL3xmt0gT/81DFtTtJiKyn+OxIAbwKPMfz/rDFdPYvF0BmDC9QxMMzGfkV+JJUjU6at0PPs2mRLg==", "dependencies": { - "pouchdb-binary-utils": "7.2.2", - "spark-md5": "3.0.1" + "pouchdb-binary-utils": "7.3.1", + "spark-md5": "3.0.2" } }, "node_modules/pouchdb-merge": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-merge/-/pouchdb-merge-7.2.2.tgz", - "integrity": "sha512-6yzKJfjIchBaS7Tusuk8280WJdESzFfQ0sb4jeMUNnrqs4Cx3b0DIEOYTRRD9EJDM+je7D3AZZ4AT0tFw8gb4A==" + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-merge/-/pouchdb-merge-7.3.1.tgz", + "integrity": "sha512-FeK3r35mKimokf2PQ2tUI523QWyZ4lYZ0Yd75FfSch/SPY6wIokz5XBZZ6PHdu5aOJsEKzoLUxr8CpSg9DhcAw==" }, "node_modules/pouchdb-utils": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-utils/-/pouchdb-utils-7.2.2.tgz", - "integrity": "sha512-XmeM5ioB4KCfyB2MGZXu1Bb2xkElNwF1qG+zVFbQsKQij0zvepdOUfGuWvLRHxTOmt4muIuSOmWZObZa3NOgzQ==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-utils/-/pouchdb-utils-7.3.1.tgz", + "integrity": "sha512-R3hHBo1zTdTu/NFs3iqkcaQAPwhIH0gMIdfVKd5lbDYlmP26rCG5pdS+v7NuoSSFLJ4xxnaGV+Gjf4duYsJ8wQ==", "dependencies": { "argsarray": "0.0.1", "clone-buffer": "1.0.0", "immediate": "3.3.0", "inherits": "2.0.4", - "pouchdb-collections": "7.2.2", - "pouchdb-errors": "7.2.2", - "pouchdb-md5": "7.2.2", - "uuid": "8.1.0" + "pouchdb-collections": "7.3.1", + "pouchdb-errors": "7.3.1", + "pouchdb-md5": "7.3.1", + "uuid": "8.3.2" } }, "node_modules/pouchdb-utils/node_modules/uuid": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.1.0.tgz", - "integrity": "sha512-CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "bin": { "uuid": "dist/bin/uuid" } }, - "node_modules/pouchdb/node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, "node_modules/pouchdb/node_modules/node-fetch": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", - "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==", + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, "engines": { "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, "node_modules/pouchdb/node_modules/uuid": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.1.0.tgz", - "integrity": "sha512-CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "bin": { "uuid": "dist/bin/uuid" } @@ -5006,9 +5308,9 @@ "dev": true }, "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" }, "node_modules/pump": { "version": "3.0.0", @@ -5123,6 +5425,11 @@ "node": ">=0.4.0" } }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -5241,6 +5548,11 @@ "node": ">=0.10.0" } }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, "node_modules/requizzle": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", @@ -5891,9 +6203,9 @@ } }, "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5935,6 +6247,20 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -5984,22 +6310,53 @@ } }, "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/sinon": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-7.5.0.tgz", - "integrity": "sha512-AoD0oJWerp0/rY9czP/D6hDTTUYGpObhZjMpd7Cl/A6+j0xBE+ayL/ldfggkBXUs0IkvIiM1ljM8+WkOc5k78Q==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-10.0.1.tgz", + "integrity": "sha512-1rf86mvW4Mt7JitEIgmNaLXaWnrWd/UrVKZZlL+kbeOujXVf9fmC4kQEQ/YeHoiIA23PLNngYWK+dngIx/AumA==", + "deprecated": "16.1.1", + "dependencies": { + "@sinonjs/commons": "^1.8.1", + "@sinonjs/fake-timers": "^7.0.4", + "@sinonjs/samsam": "^6.0.1", + "diff": "^4.0.2", + "nise": "^5.0.1", + "supports-color": "^7.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, + "node_modules/sinon/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/sinon/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/sinon/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { - "@sinonjs/commons": "^1.4.0", - "@sinonjs/formatio": "^3.2.1", - "@sinonjs/samsam": "^3.3.3", - "diff": "^3.5.0", - "lolex": "^4.2.0", - "nise": "^1.5.2", - "supports-color": "^5.5.0" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/slice-ansi": { @@ -6197,6 +6554,15 @@ "node": ">=0.8.0" } }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", @@ -6238,9 +6604,9 @@ "dev": true }, "node_modules/spark-md5": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.1.tgz", - "integrity": "sha512-0tF3AGSD1ppQeuffsLDIOWlKUd3lS92tFxcsrh5Pe3ZphhnoK+oXIBTzOAThZCiuINZLvpiLH/1VS1/ANEJVig==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz", + "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==" }, "node_modules/split-string": { "version": "3.1.0", @@ -6385,10 +6751,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/style-loader": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", + "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, "node_modules/sublevel-pouchdb": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/sublevel-pouchdb/-/sublevel-pouchdb-7.2.2.tgz", - "integrity": "sha512-y5uYgwKDgXVyPZceTDGWsSFAhpSddY29l9PJbXqMJLfREdPmQTY8InpatohlEfCXX7s1LGcrfYAhxPFZaJOLnQ==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/sublevel-pouchdb/-/sublevel-pouchdb-7.3.1.tgz", + "integrity": "sha512-n+4fK72F/ORdqPwoGgMGYeOrW2HaPpW9o9k80bT1B3Cim5BSvkKkr9WbWOWynni/GHkbCEdvLVFJL1ktosAdhQ==", "dependencies": { "inherits": "2.0.4", "level-codec": "9.0.2", @@ -6400,6 +6782,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -6722,18 +7105,24 @@ } }, "node_modules/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", - "universalify": "^0.1.2" + "universalify": "^0.2.0", + "url-parse": "^1.5.3" }, "engines": { "node": ">=6" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, "node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -6843,9 +7232,9 @@ } }, "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "engines": { "node": ">= 4.0.0" } @@ -6920,6 +7309,15 @@ "deprecated": "Please see https://github.com/lydell/urix#deprecated", "dev": true }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -6929,6 +7327,18 @@ "node": ">=0.10.0" } }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -6967,6 +7377,11 @@ "node": ">=10.13.0" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, "node_modules/webpack": { "version": "5.37.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.37.0.tgz", @@ -7205,6 +7620,15 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -7239,6 +7663,24 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, + "node_modules/which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", @@ -7586,36 +8028,35 @@ "dev": true }, "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "requires": { "type-detect": "4.0.8" } }, - "@sinonjs/formatio": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.2.tgz", - "integrity": "sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ==", + "@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", "requires": { - "@sinonjs/commons": "^1", - "@sinonjs/samsam": "^3.1.0" + "@sinonjs/commons": "^1.7.0" } }, "@sinonjs/samsam": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz", - "integrity": "sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz", + "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==", "requires": { - "@sinonjs/commons": "^1.3.0", - "array-from": "^2.1.1", - "lodash": "^4.17.15" + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" } }, "@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==" + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==" }, "@types/eslint": { "version": "7.2.12", @@ -7644,9 +8085,9 @@ "dev": true }, "@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "@types/node": { @@ -7984,11 +8425,6 @@ "is-extended": "~0.0.3" } }, - "array-from": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", - "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=" - }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", @@ -8024,6 +8460,11 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -8248,10 +8689,9 @@ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, "buffer-from": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", - "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "cache-base": { "version": "1.0.1", @@ -8271,13 +8711,13 @@ } }, "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" } }, "caller-path": { @@ -8394,11 +8834,6 @@ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true }, - "cht-core-4-0": { - "version": "git+ssh://git@github.com/medic/cht-core.git#228a9944a22f1c8f594563ac961198fb7845f618", - "dev": true, - "from": "cht-core-4-0@git+https://github.com/medic/cht-core.git#enketo-service-refactor" - }, "circular-json": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", @@ -8678,6 +9113,28 @@ "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" }, + "css-loader": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", + "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "dev": true, + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.21", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.3", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, "date-extended": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/date-extended/-/date-extended-0.0.6.tgz", @@ -8694,13 +9151,6 @@ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "requires": { "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } } }, "decamelize": { @@ -8743,6 +9193,16 @@ "inherits": "^2.0.3" } }, + "define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -8807,7 +9267,8 @@ "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true }, "doctrine": { "version": "3.0.0", @@ -9024,12 +9485,6 @@ "ms": "2.1.2" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -9368,9 +9823,9 @@ } }, "fetch-cookie": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-0.10.1.tgz", - "integrity": "sha512-beB+VEd4cNeVG1PY+ee74+PkuCQnik78pgLi5Ah/7qdUfov8IctU0vLUbBT8/10Ma5GMBeI4wtxhGrEfKNYs2g==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-0.11.0.tgz", + "integrity": "sha512-BQm7iZLFhMWFy5CZ/162sAGjBfdNWb7a8LEqqnzsHFhxT/X/SVj/z2t2nu3aJvjlbQkrAlTUApplPRjWyH4mhA==", "requires": { "tough-cookie": "^2.3.3 || ^3.0.1 || ^4.0.0" } @@ -9482,6 +9937,14 @@ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -9508,10 +9971,9 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, "function-extended": { "version": "0.0.9", @@ -9557,14 +10019,14 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" } }, "get-stream": { @@ -9653,6 +10115,14 @@ "type-fest": "^0.8.1" } }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "graceful-fs": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", @@ -9692,13 +10162,34 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "requires": { + "get-intrinsic": "^1.2.2" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" }, "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } }, "has-unicode": { "version": "2.0.1", @@ -9737,6 +10228,14 @@ } } }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "requires": { + "function-bind": "^1.1.2" + } + }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -9781,6 +10280,12 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true + }, "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", @@ -9973,6 +10478,15 @@ } } }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, "is-bigint": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", @@ -9996,8 +10510,7 @@ "is-callable": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" }, "is-data-descriptor": { "version": "0.1.4", @@ -10072,6 +10585,14 @@ "number-is-nan": "^1.0.0" } }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", @@ -10153,6 +10674,14 @@ "has-symbols": "^1.0.2" } }, + "is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "requires": { + "which-typed-array": "^1.1.11" + } + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -10518,6 +11047,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" + }, "log-symbols": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", @@ -10527,11 +11061,6 @@ "chalk": "^2.0.1" } }, - "lolex": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-4.2.0.tgz", - "integrity": "sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==" - }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", @@ -10548,9 +11077,9 @@ "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" }, "luxon": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.27.0.tgz", - "integrity": "sha512-VKsFsPggTA0DvnxtJdiExAucKdAnwbCCNlMM5ENvHlxubqWd0xhZcdb4XgZ7QFNhaRhilXCFxHuoObP5BNA4PA==" + "version": "1.28.1", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.28.1.tgz", + "integrity": "sha512-gYHAa180mKrNIUJCbwpmD0aTu9kV0dREDrwNnuyFAsO1Wt0EVYSZelPnJlbj9HplzXX/YWXHFTL45kvZ53M0pw==" }, "map-cache": { "version": "0.2.2", @@ -10747,9 +11276,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" }, "mixin-deep": { "version": "1.3.2", @@ -10933,10 +11462,9 @@ } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "mute-stream": { "version": "0.0.8", @@ -10944,6 +11472,12 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true + }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -10987,23 +11521,41 @@ "dev": true }, "nise": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.5.3.tgz", - "integrity": "sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz", + "integrity": "sha512-VJuPIfUFaXNRzETTQEEItTOP8Y171ijr+JLq42wHes3DiryR8vT+1TXQW/Rx8JNUhyYYWyIvjXTU6dOhJcs9Nw==", "requires": { - "@sinonjs/formatio": "^3.2.1", + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "^10.0.2", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", - "lolex": "^5.0.1", "path-to-regexp": "^1.7.0" }, "dependencies": { - "lolex": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz", - "integrity": "sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==", + "@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "requires": { - "@sinonjs/commons": "^1.7.0" + "@sinonjs/commons": "^3.0.0" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "requires": { + "type-detect": "4.0.8" + } + } } } } @@ -11289,6 +11841,12 @@ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "ping-monitor": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/ping-monitor/-/ping-monitor-0.6.1.tgz", @@ -11315,17 +11873,79 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, + "postcss": { + "version": "8.4.33", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", + "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "dev": true, + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true + }, + "postcss-modules-local-by-default": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", + "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.0.tgz", + "integrity": "sha512-SaIbK8XW+MZbd0xHPf7kdfA/3eOt7vxJ72IRecn3EzuZVLr1r0orzf0MX/pN8m+NMDoo6X/SQd8oeKqGZd8PXg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, "pouchdb": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb/-/pouchdb-7.2.2.tgz", - "integrity": "sha512-5gf5nw5XH/2H/DJj8b0YkvG9fhA/4Jt6kL0Y8QjtztVjb1y4J19Rg4rG+fUbXu96gsUrlyIvZ3XfM0b4mogGmw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb/-/pouchdb-7.3.1.tgz", + "integrity": "sha512-oanSnM3SD9lPRuVRwEZWVbtWKYluw0q5phT5BXWi2b9Zqd5mJUPWKbKWJu03cDPM9wySmKKd7yfl9O9/eIQ5fg==", "requires": { "abort-controller": "3.0.0", "argsarray": "0.0.1", - "buffer-from": "1.1.1", + "buffer-from": "1.1.2", "clone-buffer": "1.0.0", "double-ended-queue": "2.1.0-0", - "fetch-cookie": "0.10.1", + "fetch-cookie": "0.11.0", "immediate": "3.3.0", "inherits": "2.0.4", "level": "6.0.1", @@ -11334,151 +11954,135 @@ "leveldown": "5.6.0", "levelup": "4.4.0", "ltgt": "2.2.1", - "node-fetch": "2.6.0", + "node-fetch": "2.6.7", "readable-stream": "1.1.14", - "spark-md5": "3.0.1", + "spark-md5": "3.0.2", "through2": "3.0.2", - "uuid": "8.1.0", + "uuid": "8.3.2", "vuvuzela": "1.0.3" }, "dependencies": { - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, "node-fetch": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", - "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } }, "uuid": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.1.0.tgz", - "integrity": "sha512-CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg==" + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" } } }, "pouchdb-adapter-leveldb-core": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-leveldb-core/-/pouchdb-adapter-leveldb-core-7.2.2.tgz", - "integrity": "sha512-K9UGf1Ivwe87mjrMqN+1D07tO/DfU7ariVDrGffuOjvl+3BcvUF25IWrxsBObd4iPOYCH7NVQWRpojhBgxULtQ==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-adapter-leveldb-core/-/pouchdb-adapter-leveldb-core-7.3.1.tgz", + "integrity": "sha512-mxShHlqLMPz2gChrgtA9okV1ogFmQrRAoM/O4EN0CrQWPLXqYtpL1f7sI2asIvFe7SmpnvbLx7kkZyFmLTfwjA==", "requires": { "argsarray": "0.0.1", - "buffer-from": "1.1.1", + "buffer-from": "1.1.2", "double-ended-queue": "2.1.0-0", "levelup": "4.4.0", - "pouchdb-adapter-utils": "7.2.2", - "pouchdb-binary-utils": "7.2.2", - "pouchdb-collections": "7.2.2", - "pouchdb-errors": "7.2.2", - "pouchdb-json": "7.2.2", - "pouchdb-md5": "7.2.2", - "pouchdb-merge": "7.2.2", - "pouchdb-utils": "7.2.2", - "sublevel-pouchdb": "7.2.2", + "pouchdb-adapter-utils": "7.3.1", + "pouchdb-binary-utils": "7.3.1", + "pouchdb-collections": "7.3.1", + "pouchdb-errors": "7.3.1", + "pouchdb-json": "7.3.1", + "pouchdb-md5": "7.3.1", + "pouchdb-merge": "7.3.1", + "pouchdb-utils": "7.3.1", + "sublevel-pouchdb": "7.3.1", "through2": "3.0.2" - }, - "dependencies": { - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - } } }, "pouchdb-adapter-memory": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-memory/-/pouchdb-adapter-memory-7.2.2.tgz", - "integrity": "sha512-9o+zdItPEq7rIrxdkUxgsLNaZkDJAGEqqoYgeYdrHidOCZnlhxhX3g7/R/HcpDKC513iEPqJWDJQSfeT6nVKkw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-adapter-memory/-/pouchdb-adapter-memory-7.3.1.tgz", + "integrity": "sha512-iHdWGJAHONqQv0we3Oi1MYen69ZS8McLW9wUyaAYcWTJnAIIAr2ZM0/TeTDVSHfMUwYqEYk7X8jRtJZEMwLnwg==", "requires": { "memdown": "1.4.1", - "pouchdb-adapter-leveldb-core": "7.2.2", - "pouchdb-utils": "7.2.2" + "pouchdb-adapter-leveldb-core": "7.3.1", + "pouchdb-utils": "7.3.1" } }, "pouchdb-adapter-utils": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-utils/-/pouchdb-adapter-utils-7.2.2.tgz", - "integrity": "sha512-2CzZkTyTyHZkr3ePiWFMTiD5+56lnembMjaTl8ohwegM0+hYhRyJux0biAZafVxgIL4gnCUC4w2xf6WVztzKdg==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-adapter-utils/-/pouchdb-adapter-utils-7.3.1.tgz", + "integrity": "sha512-uKLG6dClwTs/sLIJ4WkLAi9wlnDBpOnfyhpeAgOjlOGN/XLz5nKHrA4UJRnURDyc+uv79S9r/Unc4hVpmbSPUw==", "requires": { - "pouchdb-binary-utils": "7.2.2", - "pouchdb-collections": "7.2.2", - "pouchdb-errors": "7.2.2", - "pouchdb-md5": "7.2.2", - "pouchdb-merge": "7.2.2", - "pouchdb-utils": "7.2.2" + "pouchdb-binary-utils": "7.3.1", + "pouchdb-collections": "7.3.1", + "pouchdb-errors": "7.3.1", + "pouchdb-md5": "7.3.1", + "pouchdb-merge": "7.3.1", + "pouchdb-utils": "7.3.1" } }, "pouchdb-binary-utils": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-binary-utils/-/pouchdb-binary-utils-7.2.2.tgz", - "integrity": "sha512-shacxlmyHbUrNfE6FGYpfyAJx7Q0m91lDdEAaPoKZM3SzAmbtB1i+OaDNtYFztXjJl16yeudkDb3xOeokVL3Qw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-binary-utils/-/pouchdb-binary-utils-7.3.1.tgz", + "integrity": "sha512-crZJNfAEOnUoRk977Qtmk4cxEv6sNKllQ6vDDKgQrQLFjMUXma35EHzNyIJr1s76J77Q4sqKQAmxz9Y40yHGtw==", "requires": { - "buffer-from": "1.1.1" - }, - "dependencies": { - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - } + "buffer-from": "1.1.2" } }, "pouchdb-collections": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-collections/-/pouchdb-collections-7.2.2.tgz", - "integrity": "sha512-6O9zyAYlp3UdtfneiMYuOCWdUCQNo2bgdjvNsMSacQX+3g8WvIoFQCYJjZZCpTttQGb+MHeRMr8m2U95lhJTew==" + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-collections/-/pouchdb-collections-7.3.1.tgz", + "integrity": "sha512-yUyDqR+OJmtwgExOSJegpBJXDLAEC84TWnbAYycyh+DZoA51Yw0+XVQF5Vh8Ii90/Ut2xo88fmrmp0t6kqom8w==" }, "pouchdb-errors": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-errors/-/pouchdb-errors-7.2.2.tgz", - "integrity": "sha512-6GQsiWc+7uPfgEHeavG+7wuzH3JZW29Dnrvz8eVbDFE50kVFxNDVm3EkYHskvo5isG7/IkOx7PV7RPTA3keG3g==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-errors/-/pouchdb-errors-7.3.1.tgz", + "integrity": "sha512-Zktz4gnXEUcZcty8FmyvtYUYsHskoST05m6H5/E2gg/0mCfEXq/XeyyLkZHaZmqD0ZPS9yNmASB1VaFWEKEaDw==", "requires": { "inherits": "2.0.4" } }, "pouchdb-json": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-json/-/pouchdb-json-7.2.2.tgz", - "integrity": "sha512-3b2S2ynN+aoB7aCNyDZc/4c0IAdx/ir3nsHB+/RrKE9cM3QkQYbnnE3r/RvOD1Xvr6ji/KOCBie+Pz/6sxoaug==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-json/-/pouchdb-json-7.3.1.tgz", + "integrity": "sha512-AyOKsmc85/GtHjMZyEacqzja8qLVfycS1hh1oskR+Bm5PIITX52Fb8zyi0hEetV6VC0yuGbn0RqiLjJxQePeqQ==", "requires": { "vuvuzela": "1.0.3" } }, "pouchdb-md5": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-md5/-/pouchdb-md5-7.2.2.tgz", - "integrity": "sha512-c/RvLp2oSh8PLAWU5vFBnp6ejJABIdKqboZwRRUrWcfGDf+oyX8RgmJFlYlzMMOh4XQLUT1IoaDV8cwlsuryZw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-md5/-/pouchdb-md5-7.3.1.tgz", + "integrity": "sha512-aDV8ui/mprnL3xmt0gT/81DFtTtJiKyn+OxIAbwKPMfz/rDFdPYvF0BmDC9QxMMzGfkV+JJUjU6at0PPs2mRLg==", "requires": { - "pouchdb-binary-utils": "7.2.2", - "spark-md5": "3.0.1" + "pouchdb-binary-utils": "7.3.1", + "spark-md5": "3.0.2" } }, "pouchdb-merge": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-merge/-/pouchdb-merge-7.2.2.tgz", - "integrity": "sha512-6yzKJfjIchBaS7Tusuk8280WJdESzFfQ0sb4jeMUNnrqs4Cx3b0DIEOYTRRD9EJDM+je7D3AZZ4AT0tFw8gb4A==" + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-merge/-/pouchdb-merge-7.3.1.tgz", + "integrity": "sha512-FeK3r35mKimokf2PQ2tUI523QWyZ4lYZ0Yd75FfSch/SPY6wIokz5XBZZ6PHdu5aOJsEKzoLUxr8CpSg9DhcAw==" }, "pouchdb-utils": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/pouchdb-utils/-/pouchdb-utils-7.2.2.tgz", - "integrity": "sha512-XmeM5ioB4KCfyB2MGZXu1Bb2xkElNwF1qG+zVFbQsKQij0zvepdOUfGuWvLRHxTOmt4muIuSOmWZObZa3NOgzQ==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-utils/-/pouchdb-utils-7.3.1.tgz", + "integrity": "sha512-R3hHBo1zTdTu/NFs3iqkcaQAPwhIH0gMIdfVKd5lbDYlmP26rCG5pdS+v7NuoSSFLJ4xxnaGV+Gjf4duYsJ8wQ==", "requires": { "argsarray": "0.0.1", "clone-buffer": "1.0.0", "immediate": "3.3.0", "inherits": "2.0.4", - "pouchdb-collections": "7.2.2", - "pouchdb-errors": "7.2.2", - "pouchdb-md5": "7.2.2", - "uuid": "8.1.0" + "pouchdb-collections": "7.3.1", + "pouchdb-errors": "7.3.1", + "pouchdb-md5": "7.3.1", + "uuid": "8.3.2" }, "dependencies": { "uuid": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.1.0.tgz", - "integrity": "sha512-CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg==" + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" } } }, @@ -11530,9 +12134,9 @@ "dev": true }, "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" }, "pump": { "version": "3.0.0", @@ -11624,6 +12228,11 @@ } } }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -11719,6 +12328,11 @@ } } }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, "requizzle": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", @@ -12250,9 +12864,9 @@ } }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "requires": { "lru-cache": "^6.0.0" }, @@ -12287,6 +12901,17 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, + "set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "requires": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -12326,22 +12951,41 @@ "dev": true }, "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "sinon": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-7.5.0.tgz", - "integrity": "sha512-AoD0oJWerp0/rY9czP/D6hDTTUYGpObhZjMpd7Cl/A6+j0xBE+ayL/ldfggkBXUs0IkvIiM1ljM8+WkOc5k78Q==", - "requires": { - "@sinonjs/commons": "^1.4.0", - "@sinonjs/formatio": "^3.2.1", - "@sinonjs/samsam": "^3.3.3", - "diff": "^3.5.0", - "lolex": "^4.2.0", - "nise": "^1.5.2", - "supports-color": "^5.5.0" + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-10.0.1.tgz", + "integrity": "sha512-1rf86mvW4Mt7JitEIgmNaLXaWnrWd/UrVKZZlL+kbeOujXVf9fmC4kQEQ/YeHoiIA23PLNngYWK+dngIx/AumA==", + "requires": { + "@sinonjs/commons": "^1.8.1", + "@sinonjs/fake-timers": "^7.0.4", + "@sinonjs/samsam": "^6.0.1", + "diff": "^4.0.2", + "nise": "^5.0.1", + "supports-color": "^7.1.0" + }, + "dependencies": { + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } } }, "slice-ansi": { @@ -12505,6 +13149,12 @@ "amdefine": ">=0.0.4" } }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, "source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", @@ -12543,9 +13193,9 @@ "dev": true }, "spark-md5": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.1.tgz", - "integrity": "sha512-0tF3AGSD1ppQeuffsLDIOWlKUd3lS92tFxcsrh5Pe3ZphhnoK+oXIBTzOAThZCiuINZLvpiLH/1VS1/ANEJVig==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz", + "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==" }, "split-string": { "version": "3.1.0", @@ -12653,10 +13303,16 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, + "style-loader": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", + "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==", + "dev": true + }, "sublevel-pouchdb": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/sublevel-pouchdb/-/sublevel-pouchdb-7.2.2.tgz", - "integrity": "sha512-y5uYgwKDgXVyPZceTDGWsSFAhpSddY29l9PJbXqMJLfREdPmQTY8InpatohlEfCXX7s1LGcrfYAhxPFZaJOLnQ==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/sublevel-pouchdb/-/sublevel-pouchdb-7.3.1.tgz", + "integrity": "sha512-n+4fK72F/ORdqPwoGgMGYeOrW2HaPpW9o9k80bT1B3Cim5BSvkKkr9WbWOWynni/GHkbCEdvLVFJL1ktosAdhQ==", "requires": { "inherits": "2.0.4", "level-codec": "9.0.2", @@ -12668,6 +13324,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -12922,15 +13579,21 @@ } }, "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "requires": { "psl": "^1.1.33", "punycode": "^2.1.1", - "universalify": "^0.1.2" + "universalify": "^0.2.0", + "url-parse": "^1.5.3" } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -13019,9 +13682,9 @@ } }, "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==" }, "unset-value": { "version": "1.0.0", @@ -13084,12 +13747,33 @@ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, + "util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -13121,6 +13805,11 @@ "graceful-fs": "^4.1.2" } }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, "webpack": { "version": "5.37.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.37.0.tgz", @@ -13298,6 +13987,15 @@ } } }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -13326,6 +14024,18 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, + "which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", diff --git a/package.json b/package.json index 25b30c30..ade7088a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cht-conf-test-harness", - "version": "3.0.15", + "version": "4.0.0", "description": "Test Framework for CHT Projects", "main": "./src/harness.js", "scripts": { @@ -9,7 +9,7 @@ "docs": "npx jsdoc src/*.js src/**/*.js ./JSDOC.md -d docs", "explore": "node ./project-explorer/build-assets.js --path=./test/collateral/project-without-source --formPath=./test/collateral && cd project-explorer && webpack && google-chrome ./project-explorer.html", "eslint": "npx eslint .", - "travis": "npm run build && npm run eslint && npm test" + "build-ci": "npm run docs && npm run eslint && ./build.sh --force && npm test" }, "dependencies": { "lodash": "^4.17.15", @@ -20,7 +20,8 @@ "pouchdb-adapter-memory": "^7.2.2", "puppeteer-chromium-resolver": "^10.0.0", "semver": "^7.3.5", - "sinon": "^7.5.0", + "sinon": "^10.0.1", + "util": "^0.12.5", "uuid": "^3.4.0" }, "devDependencies": { @@ -29,14 +30,15 @@ "chai": "^4.2.0", "chai-as-promised": "^7.1.1", "chai-exclude": "^2.0.2", - "cht-core-4-0": "git+https://github.com/medic/cht-core.git#enketo-service-refactor", "couchdb-compile": "^1.11.0", + "css-loader": "^6.8.1", "eslint": "^6.8.0", "jquery": "^3.5.1", "jsdoc": "^3.6.3", "mocha": "^6.1.4", "raw-loader": "^1.0.0", "rewire": "^4.0.1", + "style-loader": "^3.3.3", "webpack": "^5.37.0", "webpack-clean-console-plugin": "^0.0.7", "webpack-cli": "^3.3.0" diff --git a/patches/enketo-handle-no-active-pages.patch b/patches/enketo-handle-no-active-pages.patch deleted file mode 100644 index 8b6cfff1..00000000 --- a/patches/enketo-handle-no-active-pages.patch +++ /dev/null @@ -1,21 +0,0 @@ -*** webapp/node_modules/enketo-core/src/js/page.js 2019-09-10 13:09:07.407455858 +1200 ---- webapp/node_modules/enketo-core/src/js/page.new.js 2019-09-10 13:09:35.278897963 +1200 -*************** -*** 274,280 **** - .eq( 0 ) - .trigger( 'fakefocus' ); - -! pageEl.scrollIntoView(); - }, - toggleButtons: function( index ) { - var i = index || this.getCurrentIndex(), ---- 274,282 ---- - .eq( 0 ) - .trigger( 'fakefocus' ); - -! if (pageEl) { -! pageEl.scrollIntoView(); -! } - }, - toggleButtons: function( index ) { - var i = index || this.getCurrentIndex(), diff --git a/patches/generate-xform.patch b/patches/generate-xform.patch new file mode 100644 index 00000000..729589c1 --- /dev/null +++ b/patches/generate-xform.patch @@ -0,0 +1,40 @@ +--- generate-xform_new.js 2023-10-26 21:18:12.796185727 -0500 +*************** +*** 6,13 **** + const path = require('path'); + const htmlParser = require('node-html-parser'); + const logger = require('../logger'); +! const db = require('../db'); +! const formsService = require('./forms'); + const markdown = require('../enketo-transformer/markdown'); + + const MODEL_ROOT_OPEN = ''; +--- 6,13 ---- + const path = require('path'); + const htmlParser = require('node-html-parser'); + const logger = require('../logger'); +! // const db = require('../db'); +! // const formsService = require('./forms'); + const markdown = require('../enketo-transformer/markdown'); + + const MODEL_ROOT_OPEN = ''; +*************** +*** 15,22 **** + const JAVAROSA_SRC = / src="jr:\/\//gi; + const MEDIA_SRC_ATTR = ' data-media-src="'; + +! const FORM_STYLESHEET = path.join(__dirname, '../xsl/openrosa2html5form.xsl'); +! const MODEL_STYLESHEET = path.join(__dirname, '../enketo-transformer/xsl/openrosa2xmlmodel.xsl'); + const XSLTPROC_CMD = 'xsltproc'; + + const processErrorHandler = (xsltproc, err, reject) => { +--- 15,23 ---- + const JAVAROSA_SRC = / src="jr:\/\//gi; + const MEDIA_SRC_ATTR = ' data-media-src="'; + +! // const FORM_STYLESHEET = path.join(__dirname, '../xsl/openrosa2html5form.xsl'); +! // const MODEL_STYLESHEET = path.join(__dirname, '../enketo-transformer/xsl/openrosa2xmlmodel.xsl'); +! const { FORM_STYLESHEET, MODEL_STYLESHEET } = require('../xsl/xsl-paths'); + const XSLTPROC_CMD = 'xsltproc'; + + const processErrorHandler = (xsltproc, err, reject) => { diff --git a/project-explorer/build-assets.js b/project-explorer/build-assets.js index 24616de0..35f4475b 100644 --- a/project-explorer/build-assets.js +++ b/project-explorer/build-assets.js @@ -86,8 +86,10 @@ if (!fs.existsSync(formPath)) { console.log(`Converting ${formPath}`); try { const { form, model } = await harness.core.convertFormXmlToXFormModel(appFormContent); - const outputHtmlPath = path.resolve(__dirname, '../build', path.basename(formPath, '.xml') + '.html'); - const outputModelPath = path.resolve(__dirname, '../build', path.basename(formPath, '.xml') + '.model'); + const buildPath = path.resolve(__dirname, '../build'); + fs.mkdirSync(buildPath, { recursive: true }); + const outputHtmlPath = path.resolve(buildPath, path.basename(formPath, '.xml') + '.html'); + const outputModelPath = path.resolve(buildPath, path.basename(formPath, '.xml') + '.model'); fs.writeFileSync(outputHtmlPath, form); fs.writeFileSync(outputModelPath, model); diff --git a/project-explorer/index.js b/project-explorer/index.js index ec994083..e2655601 100644 --- a/project-explorer/index.js +++ b/project-explorer/index.js @@ -19,6 +19,11 @@ ${htmlLinksToAppForms} ${htmlLinksToContactForms}`); $('.formLink').click(function() { + if(window.unload) { + // Unload current form + window.unload(); + } + const formType = $(this).attr('data-type'); const formName = $(this).attr('data-name'); diff --git a/project-explorer/project-explorer.css b/project-explorer/project-explorer.css index ec297eae..10a37204 100644 --- a/project-explorer/project-explorer.css +++ b/project-explorer/project-explorer.css @@ -1,11 +1,6 @@ /* The sidebar menu */ .left { height: 100%; /* Full-height: remove this if you want "auto" height */ - width: 160px; /* Set the width of the sidebar */ - position: fixed; /* Fixed Sidebar (stay in place on scroll) */ - z-index: 1; /* Stay on top */ - top: 0; /* Stay at the top */ - left: 0; background-color: #111; /* Black */ overflow-x: hidden; /* Disable horizontal scroll */ padding-top: 20px; @@ -24,12 +19,6 @@ color: #f1f1f1; } -/* Style page content */ -.right { - margin-left: 160px; /* Same as the width of the sidebar */ - padding: 0px 10px; -} - /* On smaller screens, where height is less than 450px, change the style of the sidebar (less padding and a smaller font size) */ @media screen and (max-height: 450px) { .left {padding-top: 15px;} diff --git a/project-explorer/project-explorer.html b/project-explorer/project-explorer.html index 472292d9..7f63639a 100644 --- a/project-explorer/project-explorer.html +++ b/project-explorer/project-explorer.html @@ -2,16 +2,16 @@ Project Explorer - +